{"version":3,"sources":["../../../src/components/Meter/index.tsx","../../../src/components/Meter/styles.css.ts"],"sourcesContent":["import { Meter as BaseMeter } from \"@base-ui/react/meter\";\nimport type React from \"react\";\nimport { type CSSProperties, forwardRef, useMemo } from \"react\";\nimport {\n  type MeterState,\n  meterIndicatorVariants,\n  meterLabelClass,\n  meterRootClass,\n  meterTrackClass,\n} from \"./styles.css\";\n\ninterface MeterProps {\n  value: number;\n  min?: number;\n  max?: number;\n  low?: number;\n  high?: number;\n  optimum?: number;\n  label?: React.ReactNode;\n  showValue?: boolean;\n  className?: string;\n  style?: CSSProperties;\n}\n\nexport const Meter = forwardRef<HTMLDivElement, MeterProps>(function Meter(\n  {\n    value,\n    min = 0,\n    max = 100,\n    low,\n    high,\n    optimum,\n    label,\n    showValue,\n    className,\n    style,\n  },\n  ref,\n) {\n  const state: MeterState = useMemo(() => {\n    if (low !== undefined && high !== undefined && optimum !== undefined) {\n      if (value < low || value > high) return \"outOfRange\";\n      if (\n        (optimum <= low && value <= low) ||\n        (optimum >= high && value >= high)\n      ) {\n        return \"suboptimal\";\n      }\n    }\n    return \"optimal\";\n  }, [value, low, high, optimum]);\n\n  const percentage = ((value - min) / (max - min)) * 100;\n\n  return (\n    <BaseMeter.Root\n      ref={ref}\n      value={value}\n      min={min}\n      max={max}\n      className={`${meterRootClass}${className ? ` ${className}` : \"\"}`}\n      style={style}\n    >\n      {(label || showValue) && (\n        <div className={meterLabelClass}>\n          {label && <BaseMeter.Label>{label}</BaseMeter.Label>}\n          {showValue && <BaseMeter.Value />}\n        </div>\n      )}\n      <BaseMeter.Track className={meterTrackClass}>\n        <BaseMeter.Indicator\n          className={meterIndicatorVariants[state]}\n          style={{ width: `${percentage}%` }}\n        />\n      </BaseMeter.Track>\n    </BaseMeter.Root>\n  );\n});\n\nMeter.displayName = \"Meter\";\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1d247buhV9P19BHL80QBzofjtPMxkEzVvRFuhjQEmUrRlZ8kjy2J6i_15QtiVeNmlppiiKghEmQaK1Nvfa2hJphQv-1m_JjvzKSYEPVf_34S-_bC_ddt5b4KJ__obQep01VdN2631b7nB7XlflZtuTrh-BVoJWxMc29v5Q49sRbidolacBCR01fAQ7FGy7heeD4GviI9xN0CqLbNdOYThuX0asl6BV7FmxVSixTNZ-glaBbTlWwKFbkssFCeCCTNgpbAgXY4SOwAguBAWKRYjhIgxQtgAYLsANx2SZwuLPpKqao6w_S9CqKEiaRWr4FDwf0HkUe0r0iCUDNvMDG8KKhSgGdOo6BYhma7GhNcuizM5VUCbjLS1cHIRC4TYtIbVcjTJBqzQjbk6U6Cn0c4JWUZzHmTL0CH1J0MqPsyKzAahYiipBK4dkcRpCYLYSuwSt7DwOokiBZLKtE7SyisD1MYdNqwOR69AMVcuLolCBp8B72nBBpsaOyNcErVw3BZFiEVqaro1hLFuDbgBGWZbBQCbTfoAGcRxz0KbF9QYowiFBqx8_nqLHJzV8Cv42oB_j6EGJHrHHARs_-iGEFUtxGtDhk-OBaLYY5wStvn_3f9hKKJPx-3CRPc_iy9GRrKnzX4o7xKYzyIP_PXz4cY_FTCN0HgnDx6fo8Q5potDZxHt6dIIHNUWslE3nFCd8iLzvGhJbMJvOLHYQ-q6jZ7Bq6PxiPXiOzadWk0Pf4mp93Jb9NDXbwfBkK8ROvqHlCtN5pgjooSEw6dDphuT0UOMn9DDjBPQA0VJJ6cwTYnrAeK6adPLxPXoowWzmdPJxhl8gPK1wxgSnk481_OLQRXkiuVh0Ahf9ghXiFkLcbovz5tjJhd4kyNqfhh_n-ueVaP_4OvzVlk853h9A2Cno9m5Q-s_enaDSZSvvhqUho3thuav7fDcmjWcHM4KyZX2Zwgr5uO61rMOQviJuf943mxbvt-d1gXdlJS817SpBv_-l2e_Luvv9K-pwTe_wtiykAEdCrw5dWG0OFWaS3CXIuzUIgN-RvDzsJnidIF8D78iuTJsqnwhNggINgQfvExQC4C7DFVnnZbev8HldNHX_t_KduSleE-R4-9MdXlXW5M-Eb9I2QU50l0lH_IfA7HSpbgnOy3oDpNonyLGUA954UKoHrUh2RDHVN12qaZNDJT0myFaPNpCgJE9aeeNYYoZnuAkvrAzv-7KpgSTfE2Q7ytFuPCBPx0qG23nGiEKqjg3fABdit8NVJSfqOMlwq2tZUJqu9ipMo4lJekw9uz3OaGecTt0E8BM0xh0BzPkgQZF4njkdsuW7nZ-eEk7E9urtfDWdjxPkOtL4DABTARKARaQJ8sYUW5yXh47NMGMEXs8y-eWMvOtZJjRh2-p6mh26YNXfzrOADSef7HDdl9matG0zPXidrfAJecR1hywjHaOlFD43jciyLpoJ9ix8shhhR9zWZb2ZkC_CZ9L3n3VOTuu8bfZ5c6wnYEX79tZIV9SuyTGjdZcg2xYgfdNUfbmfQDWtqATCzOLQaRJkuzfIrrncfxxinyDbt3YdB6mbdsem85og1xJBXdUcJ0g73ME3SNbs9k1N6p4uokiV_6yLZryD1znpXvqGUdKxvaHn9jitCJN_z97Md6hNT5h2PbANxzDLen_o1xVOSaVJ-W0Ju8LthnlwHZdwhbWCc1IIBsnDw2zinhV1Brlipem8EC0ji8m71hLl1xi8BtdeFIK75K7DTqSzuJICd1EVhhCCAE8r4PK7su9cX3v5BTbfd26whCsKD5eQBcmRtu8ErtB3brykXoq-wx-IIWhIF4Xg-y7TNg3ElRTki4cXBZAZEbbDkkfuuoJdOei5Qs9t5jNFyVt2PaOnClJLdqmgZ4rd9syugOZQpbRf5iuGO62ar1vos12C_JmXGO6yeoF6qMeaGdrTps1J-9fLCk_qtD2ziJwTQGi314V0sQDtQr6gv2MWyHPoYvf1Mx6UQABJxmGhDLgR35aq4btRv8xR8SUtp6VaoMY83w-yx_nwYV9qyfdkfFM1KwDfkp61kC7o9-zhKtzvixufV-45ye3d3Sy20JGeuzB7uCE97ypiYRhBi7-wFHxDesFVyyK6JCX8UBRBSaRR0pGKZOp-9GJNLQWueDXxAipfu1STcHroe-ZVklSxTLF0FHlCjXLFw1CkCfcbmTmaWJtC8biCeZLIzTK6oHU7N2n-qqgWOiBNSvl5EVvI-CVBjubqgKtBr1KsD3iSmOdOsSDiWUJ-tV4cvPzzGsUCCGJJee5nqYMb4HWWRuHyt4r1HkCSku3mKYUufa_Xyc2D656cmPoeEmRprwtPLrNmenHmvd3IyNLea3ICD3X-kwt1XBjqUj1BzIkG0T2iBDav5nxjIwucndUZSGrel4W6vOLmtPhWsoTLKfHtKxdZ4HpRObqow3cWBbreSLwOd26DXdm8Em9hWzApSGL8j8WCOs0P5nYaH4QXFy7rEjkfSWL0oYhQ-8Uz248LwcvDH2keTTOmy-IND0peVDa7FwcyLydf2j5jApIS8qFQYCMWsxuRjcEr2yzsGjEbSd_2IwGhLizndiETgdf2_IGm0fTgy6xwmhcifqVfROtehvg7-EMzROVXCH4NvzmAmMIKzG8WJAyvw3zFOyRNBCH91wXpcysyv12SPbQu87sFyQOLM7_X8mm3Ah-a_IN-tTzSxGzfFP-jIvKEJFWvhkSa2BynmWkqGuM8M1u4K97nJs21RGAlyJ1NE1MObP3nAoHNZxw4t404__rt29UPgNsXwQzgLTADuLkVWPz2YZ0ZANhZrjYD6Hbsf9IMoPMZyGYA3a590QwAFERlBtB5DEZgpNm5_wkzgMpfIJsBAPE6M4CHHSLssNSYAYLAzTXoEUv3Y8Yk8GDsJ80ARZG7IRxYNgMUBYkwX2CNGcAKXMuBdtdDZgBge73KDKDetf8pM4DaYyCbAQDrgtoMQPdierEKzJsBgC32CjOAct_-Z8wASoeBbAYAbAs6M4Cb22IDa8wAwNZ6pRkgy_xCsWcfMAMURZjPNAMURZwqXAayGaAo0jji-3eGGcAKbF94YN43A1jYc-x7Q00UZ84ufdgMgCMv05AkM4CXp06gyQwyA4Rhmkf8M0VjBrByeoBo2AxgB_TQEAQzgF3QQ42f0HTGcTE9QDRoBogwPWC8ZAbQOQ0AM4DGxgCYAZQb_P-LZgD7uimd_rSbFP_J8f2vtx_rmxV8kZ0BA876OhzffP8LMNI0znbZOKxZgBsnsIRxVJaBeyOFX2T_AD-SqAh0EcwdhrMUcOOEkiLYWHBvpOgL5DLgh7pJMl4D4zWYmMZrYLwGxmswIozXwHgNjNfAeA2M18B4DYzXwHgNblzjNTBeA-M1MF4D4zWYEcB4DYzXwHgNjNfAeA2M18B4DYzXwHgNjNfAeA2M18B4DS4xjNfAeA2M18B4DWbQjNfgP-w1SEmPBa-Bv8BrkBXEL2A_AOQ1iHEW6-DTfy7Snc8pjhRgyGtg41DcDqj0GtieX6Szv3jAyt0i4jcJmy8eMF88YL54wHzxgPnigQvYfPGA-eIBCW2-eMB88YD54gFjBjBmAGMGMGYAYwb4_zQDsO8djBnAmAGMGcCYARaEMGYAYwYwZoD7TGMGuAQwZoAFAYwZwJgBjBnAmAGMGcCYAS40YwYwZgBjBjBmAGMGMGYAYwYwZgBjBjBmAGMGmEM1ZoBrAGMGUNGMGWAG-3_QDPBvr-DT6oiQAAA';\nimport 'src/components/Meter/styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA5WSQW_bMAyF7_kVugxYDwrsNCk69badBgwYUAy7GrRF21poyaPoJN6w_z7YjttmBtrsZEgU-b73zHWUnjBmDQryYwjyiSDGLDt5pvJnon6vlLIutgS9USXh6WGlxq-2jrEQF7xRRaCu8UOlgtaoA_B7rWMLhfOVPp1ilqXbvI7bw2Z3M7w6Oiu1UWmSvHtY_VmtXzJ8gRzpAiIdIcrgRUf3C41Kt-2EMVyV0DjqZ1Hp21AxtHV_LmiLJXQkTwgp3Tz1HtFVtRh1lyTDXREo8DxpPETtsRMG0hZ4_zwjH2eQ86jr84zNGYpQBHl2b1SyTndTZRHjjy6KK3tdBC_oxaihCXWOckQc4wRylddOsIlGFegFeRHYN4ZifxHYZgxsBruf1HMo9hWHzlv9mk8ampCfrd6PVvPAFlkzWNfFuXU66Re_txgfhwNySeFoVO2snZy0IbppWRgJxB1wYeSzt64ACfwRIl4Yur0wNK3NfzIJg58JxvVTyfo2KoT4Csh3YAdeYhZacQ3QzLMded5ItGJEv1i_YfvelItd_o_i7hrFHonCcSFZXiMZOvlaPoKvcJa8u0aS0S70Pgx6fwGcH46rWAQAAA';\nexport var meterIndicatorVariants = {optimal:'styles_meterIndicatorVariants_optimal__xnrlfq4 styles_meterIndicatorBaseClass__xnrlfq3',suboptimal:'styles_meterIndicatorVariants_suboptimal__xnrlfq5 styles_meterIndicatorBaseClass__xnrlfq3',outOfRange:'styles_meterIndicatorVariants_outOfRange__xnrlfq6 styles_meterIndicatorBaseClass__xnrlfq3'};\nexport var meterLabelClass = 'styles_meterLabelClass__xnrlfq1';\nexport var meterRootClass = 'styles_meterRootClass__xnrlfq0';\nexport var meterTrackClass = 'styles_meterTrackClass__xnrlfq2';"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AAEnC,mBAAwD;;;ACAjD,IAAI,yBAAyB,EAAC,SAAQ,0FAAyF,YAAW,6FAA4F,YAAW,4FAA2F;AAC5U,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;;;AD2DrB;AAxCD,IAAM,YAAQ,yBAAuC,SAASA,OACnE;AAAA,EACE;AAAA,EACA,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACA,KACA;AACA,QAAM,YAAoB,sBAAQ,MAAM;AACtC,QAAI,QAAQ,UAAa,SAAS,UAAa,YAAY,QAAW;AACpE,UAAI,QAAQ,OAAO,QAAQ,KAAM,QAAO;AACxC,UACG,WAAW,OAAO,SAAS,OAC3B,WAAW,QAAQ,SAAS,MAC7B;AACA,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE9B,QAAM,cAAe,QAAQ,QAAQ,MAAM,OAAQ;AAEnD,SACE;AAAA,IAAC,aAAAC,MAAU;AAAA,IAAV;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,GAAG,cAAc,GAAG,YAAY,IAAI,SAAS,KAAK,EAAE;AAAA,MAC/D;AAAA,MAEE;AAAA,kBAAS,cACT,6CAAC,SAAI,WAAW,iBACb;AAAA,mBAAS,4CAAC,aAAAA,MAAU,OAAV,EAAiB,iBAAM;AAAA,UACjC,aAAa,4CAAC,aAAAA,MAAU,OAAV,EAAgB;AAAA,WACjC;AAAA,QAEF,4CAAC,aAAAA,MAAU,OAAV,EAAgB,WAAW,iBAC1B;AAAA,UAAC,aAAAA,MAAU;AAAA,UAAV;AAAA,YACC,WAAW,uBAAuB,KAAK;AAAA,YACvC,OAAO,EAAE,OAAO,GAAG,UAAU,IAAI;AAAA;AAAA,QACnC,GACF;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;AAED,MAAM,cAAc;","names":["Meter","BaseMeter"]}