@embeddable.com/remarkable-ui 0.1.46 → 0.1.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  import { useTheme as v, defineComponent as h } from "@embeddable.com/react";
2
2
  import { ad as y, a2 as P, i as f, r as b, j as l, U as C, t as S, c as F, ae as R, V as d } from "./component.constants-CFaxyNCw.js";
3
3
  import { useMemo as M, useEffect as k } from "react";
4
- import { S as D } from "./SingleSelectField-BH5Dhjd8.js";
4
+ import { S as D } from "./SingleSelectField-CJNiLfee.js";
5
5
  import { g as T, u as j, a as x } from "./editors.timeRange.utils-D9m6B3r1.js";
6
- import { E as L } from "./EditorCard-Qax7pQpf.js";
6
+ import { E as L } from "./EditorCard-CJoUz4uM.js";
7
7
  import { C as s } from "./ComparisonPeriod.type.emb-C1o3iM9L.js";
8
8
  /**
9
9
  * @license @tabler/icons-react v3.35.0 - MIT
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as t } from "@embeddable.com/react";
2
2
  import { t as l, c as n, ae as r, V as a } from "./component.constants-CFaxyNCw.js";
3
- import { D as o } from "./index-C6Uh1mjr.js";
3
+ import { D as o } from "./index-DvMr1tvf.js";
4
4
  const i = {
5
5
  name: "DateRangeSelectFieldPro",
6
6
  label: "Date Range Select Field",
@@ -1,4 +1,4 @@
1
- import { ad as u, j as a, ag as g, i as m, ai as y, aj as _, am as p, an as h, U as x, aQ as f } from "./component.constants-CFaxyNCw.js";
1
+ import { ad as u, j as a, ag as m, i as y, ai as g, aj as _, am as p, an as h, U as x, aQ as f } from "./component.constants-CFaxyNCw.js";
2
2
  import { useEffect as j } from "react";
3
3
  import { useTheme as C } from "@embeddable.com/react";
4
4
  /**
@@ -7,10 +7,10 @@ import { useTheme as C } from "@embeddable.com/react";
7
7
  * This source code is licensed under the MIT license.
8
8
  * See the LICENSE file in the root directory of this source tree.
9
9
  */
10
- const b = [["path", { d: "M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0", key: "svg-0" }], ["path", { d: "M21 21l-6 -6", key: "svg-1" }]], $ = u("outline", "search", "Search", b), v = "_listOptions_2o1ip_1", S = "_disabled_2o1ip_6", c = {
11
- listOptions: v,
12
- disabled: S
13
- }, A = ({ children: t, disabled: s, ...e }) => /* @__PURE__ */ a.jsx("div", { className: g(c.listOptions, s && c.disabled), ...e, children: t }), L = "_category_1govg_1", N = "_categoryLabel_1govg_9", n = {
10
+ const b = [["path", { d: "M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0", key: "svg-0" }], ["path", { d: "M21 21l-6 -6", key: "svg-1" }]], $ = u("outline", "search", "Search", b), S = "_listOptions_2o1ip_1", v = "_disabled_2o1ip_6", c = {
11
+ listOptions: S,
12
+ disabled: v
13
+ }, A = ({ children: t, disabled: s, ...e }) => /* @__PURE__ */ a.jsx("div", { className: m(c.listOptions, s && c.disabled), ...e, children: t }), L = "_category_1p6u3_1", N = "_categoryLabel_1p6u3_11", n = {
14
14
  category: L,
15
15
  categoryLabel: N
16
16
  }, B = ({ label: t }) => /* @__PURE__ */ a.jsx("div", { className: n.category, children: /* @__PURE__ */ a.jsx("span", { className: n.categoryLabel, children: t }) });
@@ -49,7 +49,7 @@ const H = (t) => {
49
49
  ...o
50
50
  }) => {
51
51
  const l = C();
52
- m(l);
52
+ y(l);
53
53
  const d = () => r ? /* @__PURE__ */ a.jsx(
54
54
  h,
55
55
  {
@@ -59,7 +59,7 @@ const H = (t) => {
59
59
  message: r
60
60
  }
61
61
  ) : e;
62
- return /* @__PURE__ */ a.jsxs(y, { className: i.card, ...o, children: [
62
+ return /* @__PURE__ */ a.jsxs(g, { className: i.card, ...o, children: [
63
63
  /* @__PURE__ */ a.jsx(_, { title: t, subtitle: s }),
64
64
  /* @__PURE__ */ a.jsx(p, { children: d() })
65
65
  ] });
@@ -73,4 +73,4 @@ export {
73
73
  H as g,
74
74
  M as u
75
75
  };
76
- //# sourceMappingURL=EditorCard-Qax7pQpf.js.map
76
+ //# sourceMappingURL=EditorCard-CJoUz4uM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorCard-Qax7pQpf.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs","../src/remarkable-ui/editors/select/shared/SelectList/SelectListOptions/SelectListOptions.tsx","../src/remarkable-ui/editors/select/shared/SelectList/SelectListOptions/SelectListCategory/SelectListCategory.tsx","../src/remarkable-ui/utils/debounce.utils.ts","../src/remarkable-ui/editors/select/shared/SelectList/selectList.utils.ts","../src/remarkable-ui/editors/select/shared/useSelectSearchFocus.hook.ts","../src/remarkable-pro/components/editors/shared/EditorCard/EditorCard.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M21 21l-6 -6\", \"key\": \"svg-1\" }]];\nconst IconSearch = createReactComponent(\"outline\", \"search\", \"Search\", __iconNode);\n\nexport { __iconNode, IconSearch as default };\n//# sourceMappingURL=IconSearch.mjs.map\n","import { FC } from 'react';\nimport styles from './SelectListOptions.module.css';\nimport clsx from 'clsx';\n\nexport type SelectListOptionsProps = React.HTMLAttributes<HTMLDivElement> & {\n children: React.ReactNode;\n disabled?: boolean;\n};\n\nexport const SelectListOptions: FC<SelectListOptionsProps> = ({ children, disabled, ...props }) => {\n return (\n <div className={clsx(styles.listOptions, disabled && styles.disabled)} {...props}>\n {children}\n </div>\n );\n};\n","import { FC } from 'react';\nimport styles from './SelectListCategory.module.css';\n\ntype SelectListCategoryProps = {\n label: string;\n};\n\nexport const SelectListCategory: FC<SelectListCategoryProps> = ({ label }) => {\n return (\n <div className={styles.category}>\n <span className={styles.categoryLabel}>{label}</span>\n </div>\n );\n};\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function debounce<T extends (...args: any[]) => void>(\n fn: T,\n delay = 300,\n): (...args: Parameters<T>) => void {\n let timer: NodeJS.Timeout;\n return (...args: Parameters<T>) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n","import {\n SelectListOptionProps,\n SelectListOptionPropsWithCategory,\n} from './SelectListOptions/SelectListOption/SelectListOption';\n\ntype GroupedOptions = {\n [category: string]: SelectListOptionPropsWithCategory[];\n};\n\nexport const groupOptionsByCategory = (\n options: (SelectListOptionProps | SelectListOptionPropsWithCategory)[],\n): GroupedOptions | null => {\n const result = options.reduce<GroupedOptions>((acc, option) => {\n if ('category' in option && option.category) {\n const category = option.category;\n if (!acc[category]) {\n acc[category] = [];\n }\n acc[category].push(option);\n }\n return acc;\n }, {});\n\n // Return null if no categories were found\n return Object.keys(result).length === 0 ? null : result;\n};\n","import { useEffect } from 'react';\n\nexport const useSelectSearchFocus = (\n isOpen: boolean,\n searchFieldRef: React.RefObject<HTMLInputElement | null>,\n) => {\n useEffect(() => {\n if (isOpen) {\n setTimeout(() => {\n (searchFieldRef.current as unknown as HTMLInputElement)?.focus();\n }, 100);\n }\n }, [isOpen, searchFieldRef]);\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport styles from './EditorCard.module.css';\nimport { FC } from 'react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { Card, CardContent, CardContentInfo, CardHeader } from '../../../../../remarkable-ui';\nimport { IconAlertCircle } from '@tabler/icons-react';\n\ntype EditorCardProps = {\n title?: string;\n subtitle?: string;\n children: React.ReactNode;\n errorMessage?: string;\n};\n\nexport const EditorCard: FC<EditorCardProps> = ({\n title,\n subtitle,\n children,\n errorMessage,\n ...props\n}) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const getDisplay = () => {\n if (errorMessage) {\n return (\n <CardContentInfo\n className={styles.error}\n icon={IconAlertCircle}\n title={i18n.t('editors.errorTitle')}\n message={errorMessage}\n />\n );\n }\n\n return children;\n };\n\n return (\n <Card className={styles.card} {...props}>\n <CardHeader title={title} subtitle={subtitle} />\n <CardContent>{getDisplay()}</CardContent>\n </Card>\n );\n};\n"],"names":["__iconNode","IconSearch","createReactComponent","SelectListOptions","children","disabled","props","jsx","clsx","styles","SelectListCategory","label","debounce","fn","delay","timer","args","groupOptionsByCategory","options","result","acc","option","category","useSelectSearchFocus","isOpen","searchFieldRef","useEffect","_a","EditorCard","title","subtitle","errorMessage","theme","useTheme","i18nSetup","getDisplay","CardContentInfo","IconAlertCircle","i18n","Card","CardHeader","CardContent"],"mappings":";;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,8CAA8C,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,gBAAgB,KAAO,QAAO,CAAE,CAAC,GAChJC,IAAaC,EAAqB,WAAW,UAAU,UAAUF,CAAU;;;GCDpEG,IAAgD,CAAC,EAAE,UAAAC,GAAU,UAAAC,GAAU,GAAGC,QAEnFC,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAWC,EAAKC,EAAO,aAAaJ,KAAYI,EAAO,QAAQ,GAAI,GAAGH,GACxE,UAAAF,EAAA,CACH;;;GCNSM,IAAkD,CAAC,EAAE,OAAAC,QAE9DJ,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAWE,EAAO,UACrB,UAAAF,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAWE,EAAO,eAAgB,UAAAE,EAAA,CAAM,GAChD;ACVG,SAASC,EACdC,GACAC,IAAQ,KAC0B;AAClC,MAAIC;AACJ,SAAO,IAAIC,MAAwB;AACjC,iBAAaD,CAAK,GAClBA,IAAQ,WAAW,MAAM;AACvB,MAAAF,EAAG,GAAGG,CAAI;AAAA,IACZ,GAAGF,CAAK;AAAA,EACV;AACF;ACHO,MAAMG,IAAyB,CACpCC,MAC0B;AAC1B,QAAMC,IAASD,EAAQ,OAAuB,CAACE,GAAKC,MAAW;AAC7D,QAAI,cAAcA,KAAUA,EAAO,UAAU;AAC3C,YAAMC,IAAWD,EAAO;AACxB,MAAKD,EAAIE,CAAQ,MACfF,EAAIE,CAAQ,IAAI,CAAA,IAElBF,EAAIE,CAAQ,EAAE,KAAKD,CAAM;AAAA,IAC3B;AACA,WAAOD;AAAA,EACT,GAAG,CAAA,CAAE;AAGL,SAAO,OAAO,KAAKD,CAAM,EAAE,WAAW,IAAI,OAAOA;AACnD,GCvBaI,IAAuB,CAClCC,GACAC,MACG;AACH,EAAAC,EAAU,MAAM;AACd,IAAIF,KACF,WAAW,MAAM;;AACd,OAAAG,IAAAF,EAAe,YAAf,QAAAE,EAAwD;AAAA,IAC3D,GAAG,GAAG;AAAA,EAEV,GAAG,CAACH,GAAQC,CAAc,CAAC;AAC7B;;;GCEaG,IAAkC,CAAC;AAAA,EAC9C,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAA1B;AAAA,EACA,cAAA2B;AAAA,EACA,GAAGzB;AACL,MAAM;AACJ,QAAM0B,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAMG,IAAa,MACbJ,IAEAxB,gBAAAA,EAAAA;AAAAA,IAAC6B;AAAA,IAAA;AAAA,MACC,WAAW3B,EAAO;AAAA,MAClB,MAAM4B;AAAA,MACN,OAAOC,EAAK,EAAE,oBAAoB;AAAA,MAClC,SAASP;AAAA,IAAA;AAAA,EAAA,IAKR3B;AAGT,gCACGmC,GAAA,EAAK,WAAW9B,EAAO,MAAO,GAAGH,GAChC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACiC,GAAA,EAAW,OAAAX,GAAc,UAAAC,EAAA,CAAoB;AAAA,IAC9CvB,gBAAAA,EAAAA,IAACkC,GAAA,EAAa,UAAAN,EAAA,EAAW,CAAE;AAAA,EAAA,GAC7B;AAEJ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"EditorCard-CJoUz4uM.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs","../src/remarkable-ui/editors/select/shared/SelectList/SelectListOptions/SelectListOptions.tsx","../src/remarkable-ui/editors/select/shared/SelectList/SelectListOptions/SelectListCategory/SelectListCategory.tsx","../src/remarkable-ui/utils/debounce.utils.ts","../src/remarkable-ui/editors/select/shared/SelectList/selectList.utils.ts","../src/remarkable-ui/editors/select/shared/useSelectSearchFocus.hook.ts","../src/remarkable-pro/components/editors/shared/EditorCard/EditorCard.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M21 21l-6 -6\", \"key\": \"svg-1\" }]];\nconst IconSearch = createReactComponent(\"outline\", \"search\", \"Search\", __iconNode);\n\nexport { __iconNode, IconSearch as default };\n//# sourceMappingURL=IconSearch.mjs.map\n","import { FC } from 'react';\nimport styles from './SelectListOptions.module.css';\nimport clsx from 'clsx';\n\nexport type SelectListOptionsProps = React.HTMLAttributes<HTMLDivElement> & {\n children: React.ReactNode;\n disabled?: boolean;\n};\n\nexport const SelectListOptions: FC<SelectListOptionsProps> = ({ children, disabled, ...props }) => {\n return (\n <div className={clsx(styles.listOptions, disabled && styles.disabled)} {...props}>\n {children}\n </div>\n );\n};\n","import { FC } from 'react';\nimport styles from './SelectListCategory.module.css';\n\ntype SelectListCategoryProps = {\n label: string;\n};\n\nexport const SelectListCategory: FC<SelectListCategoryProps> = ({ label }) => {\n return (\n <div className={styles.category}>\n <span className={styles.categoryLabel}>{label}</span>\n </div>\n );\n};\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function debounce<T extends (...args: any[]) => void>(\n fn: T,\n delay = 300,\n): (...args: Parameters<T>) => void {\n let timer: NodeJS.Timeout;\n return (...args: Parameters<T>) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}\n","import {\n SelectListOptionProps,\n SelectListOptionPropsWithCategory,\n} from './SelectListOptions/SelectListOption/SelectListOption';\n\ntype GroupedOptions = {\n [category: string]: SelectListOptionPropsWithCategory[];\n};\n\nexport const groupOptionsByCategory = (\n options: (SelectListOptionProps | SelectListOptionPropsWithCategory)[],\n): GroupedOptions | null => {\n const result = options.reduce<GroupedOptions>((acc, option) => {\n if ('category' in option && option.category) {\n const category = option.category;\n if (!acc[category]) {\n acc[category] = [];\n }\n acc[category].push(option);\n }\n return acc;\n }, {});\n\n // Return null if no categories were found\n return Object.keys(result).length === 0 ? null : result;\n};\n","import { useEffect } from 'react';\n\nexport const useSelectSearchFocus = (\n isOpen: boolean,\n searchFieldRef: React.RefObject<HTMLInputElement | null>,\n) => {\n useEffect(() => {\n if (isOpen) {\n setTimeout(() => {\n (searchFieldRef.current as unknown as HTMLInputElement)?.focus();\n }, 100);\n }\n }, [isOpen, searchFieldRef]);\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport styles from './EditorCard.module.css';\nimport { FC } from 'react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { Card, CardContent, CardContentInfo, CardHeader } from '../../../../../remarkable-ui';\nimport { IconAlertCircle } from '@tabler/icons-react';\n\ntype EditorCardProps = {\n title?: string;\n subtitle?: string;\n children: React.ReactNode;\n errorMessage?: string;\n};\n\nexport const EditorCard: FC<EditorCardProps> = ({\n title,\n subtitle,\n children,\n errorMessage,\n ...props\n}) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const getDisplay = () => {\n if (errorMessage) {\n return (\n <CardContentInfo\n className={styles.error}\n icon={IconAlertCircle}\n title={i18n.t('editors.errorTitle')}\n message={errorMessage}\n />\n );\n }\n\n return children;\n };\n\n return (\n <Card className={styles.card} {...props}>\n <CardHeader title={title} subtitle={subtitle} />\n <CardContent>{getDisplay()}</CardContent>\n </Card>\n );\n};\n"],"names":["__iconNode","IconSearch","createReactComponent","SelectListOptions","children","disabled","props","jsx","clsx","styles","SelectListCategory","label","debounce","fn","delay","timer","args","groupOptionsByCategory","options","result","acc","option","category","useSelectSearchFocus","isOpen","searchFieldRef","useEffect","_a","EditorCard","title","subtitle","errorMessage","theme","useTheme","i18nSetup","getDisplay","CardContentInfo","IconAlertCircle","i18n","Card","CardHeader","CardContent"],"mappings":";;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,8CAA8C,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,gBAAgB,KAAO,QAAO,CAAE,CAAC,GAChJC,IAAaC,EAAqB,WAAW,UAAU,UAAUF,CAAU;;;GCDpEG,IAAgD,CAAC,EAAE,UAAAC,GAAU,UAAAC,GAAU,GAAGC,QAEnFC,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAWC,EAAKC,EAAO,aAAaJ,KAAYI,EAAO,QAAQ,GAAI,GAAGH,GACxE,UAAAF,EAAA,CACH;;;GCNSM,IAAkD,CAAC,EAAE,OAAAC,QAE9DJ,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAWE,EAAO,UACrB,UAAAF,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAWE,EAAO,eAAgB,UAAAE,EAAA,CAAM,GAChD;ACVG,SAASC,EACdC,GACAC,IAAQ,KAC0B;AAClC,MAAIC;AACJ,SAAO,IAAIC,MAAwB;AACjC,iBAAaD,CAAK,GAClBA,IAAQ,WAAW,MAAM;AACvB,MAAAF,EAAG,GAAGG,CAAI;AAAA,IACZ,GAAGF,CAAK;AAAA,EACV;AACF;ACHO,MAAMG,IAAyB,CACpCC,MAC0B;AAC1B,QAAMC,IAASD,EAAQ,OAAuB,CAACE,GAAKC,MAAW;AAC7D,QAAI,cAAcA,KAAUA,EAAO,UAAU;AAC3C,YAAMC,IAAWD,EAAO;AACxB,MAAKD,EAAIE,CAAQ,MACfF,EAAIE,CAAQ,IAAI,CAAA,IAElBF,EAAIE,CAAQ,EAAE,KAAKD,CAAM;AAAA,IAC3B;AACA,WAAOD;AAAA,EACT,GAAG,CAAA,CAAE;AAGL,SAAO,OAAO,KAAKD,CAAM,EAAE,WAAW,IAAI,OAAOA;AACnD,GCvBaI,IAAuB,CAClCC,GACAC,MACG;AACH,EAAAC,EAAU,MAAM;AACd,IAAIF,KACF,WAAW,MAAM;;AACd,OAAAG,IAAAF,EAAe,YAAf,QAAAE,EAAwD;AAAA,IAC3D,GAAG,GAAG;AAAA,EAEV,GAAG,CAACH,GAAQC,CAAc,CAAC;AAC7B;;;GCEaG,IAAkC,CAAC;AAAA,EAC9C,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAA1B;AAAA,EACA,cAAA2B;AAAA,EACA,GAAGzB;AACL,MAAM;AACJ,QAAM0B,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAMG,IAAa,MACbJ,IAEAxB,gBAAAA,EAAAA;AAAAA,IAAC6B;AAAA,IAAA;AAAA,MACC,WAAW3B,EAAO;AAAA,MAClB,MAAM4B;AAAA,MACN,OAAOC,EAAK,EAAE,oBAAoB;AAAA,MAClC,SAASP;AAAA,IAAA;AAAA,EAAA,IAKR3B;AAGT,gCACGmC,GAAA,EAAK,WAAW9B,EAAO,MAAO,GAAGH,GAChC,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACiC,GAAA,EAAW,OAAAX,GAAc,UAAAC,EAAA,CAAoB;AAAA,IAC9CvB,gBAAAA,EAAAA,IAACkC,GAAA,EAAa,UAAAN,EAAA,EAAW,CAAE;AAAA,EAAA,GAC7B;AAEJ;","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as i } from "@embeddable.com/react";
2
2
  import { d as r, z as s, t as d, c as u, ae as m, V as t, o as c } from "./component.constants-CFaxyNCw.js";
3
- import { M as p, a as f } from "./index-DQyhe1sV.js";
3
+ import { M as p, a as f } from "./index-DvEWwlqq.js";
4
4
  const g = {
5
5
  name: "MultiSelectFieldPro",
6
6
  label: "Multi Select Field",
@@ -1,6 +1,6 @@
1
1
  import { j as s, ap as D, as as N, at as q, aq as x, ar as w, ao as K } from "./component.constants-CFaxyNCw.js";
2
2
  import { useState as b, useRef as P, useEffect as T, useMemo as O } from "react";
3
- import { u as z, d as A, g as G, I as H, S as J, a as M } from "./EditorCard-Qax7pQpf.js";
3
+ import { u as z, d as A, g as G, I as H, S as J, a as M } from "./EditorCard-CJoUz4uM.js";
4
4
  const Q = "_selectField_73cni_1", U = {
5
5
  selectField: Q
6
6
  }, Y = ({
@@ -104,4 +104,4 @@ const Q = "_selectField_73cni_1", U = {
104
104
  export {
105
105
  Y as S
106
106
  };
107
- //# sourceMappingURL=SingleSelectField-BH5Dhjd8.js.map
107
+ //# sourceMappingURL=SingleSelectField-CJNiLfee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleSelectField-BH5Dhjd8.js","sources":["../src/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.tsx"],"sourcesContent":["import { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport { TextField } from '../../TextField/TextField';\nimport { SelectButton } from '../shared/SelectButton/SelectButton';\nimport { Dropdown } from '../../../shared/Dropdown/Dropdown';\nimport { SelectList } from '../shared/SelectList/SelectList';\nimport { SelectListOptions } from '../shared/SelectList/SelectListOptions/SelectListOptions';\nimport {\n SelectListOption,\n SelectListOptionProps,\n SelectListOptionPropsWithCategory,\n} from '../shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';\nimport { SelectListCategory } from '../shared/SelectList/SelectListOptions/SelectListCategory/SelectListCategory';\nimport { groupOptionsByCategory } from '../shared/SelectList/selectList.utils';\nimport { debounce } from '../../../utils/debounce.utils';\nimport { IconSearch, TablerIcon } from '@tabler/icons-react';\nimport { useSelectSearchFocus } from '../shared/useSelectSearchFocus.hook';\nimport styles from './SingleSelectField.module.css';\nimport { FieldErrorMessage } from '../../../shared/FieldErrorMessage/FieldErrorMessage';\n\nexport type SingleSelectFieldProps = {\n options: (SelectListOptionProps | SelectListOptionPropsWithCategory)[];\n startIcon?: TablerIcon;\n value?: string;\n disabled?: boolean;\n placeholder?: string;\n isSearchable?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n noOptionsMessage?: string;\n onChange: (value: string) => void;\n onSearch?: (search: string) => void;\n error?: boolean;\n errorMessage?: string;\n};\n\nexport const SingleSelectField: FC<SingleSelectFieldProps> = ({\n value = '',\n startIcon,\n options,\n disabled,\n placeholder,\n isSearchable,\n isClearable,\n isLoading,\n noOptionsMessage = 'No options available',\n onChange,\n onSearch,\n error = false,\n errorMessage,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchValue, setSearchValue] = useState<string>('');\n const [selectedLabel, setSelectedLabel] = useState<string>(value);\n\n const searchFieldRef = useRef<HTMLInputElement>(null);\n useSelectSearchFocus(isOpen, searchFieldRef);\n\n useEffect(() => {\n if (!value) {\n setSelectedLabel('');\n return;\n }\n\n const option = options.find((opt) => opt.value === value);\n if (option) {\n setSelectedLabel(option.label);\n }\n }, [value, options]);\n\n const debouncedSearch = useMemo(() => (onSearch ? debounce(onSearch) : undefined), [onSearch]);\n\n const displayOptions =\n isSearchable && !onSearch\n ? options.filter((option) => option.label.toLowerCase().includes(searchValue.toLowerCase()))\n : options;\n\n const groupedOptions = useMemo(() => groupOptionsByCategory(displayOptions), [displayOptions]);\n\n const handleChange = (newValue?: string) => {\n setSearchValue('');\n onChange(newValue ?? '');\n onSearch?.('');\n\n if (newValue === '') {\n setSelectedLabel('');\n } else {\n const option = options.find((opt) => opt.value === newValue);\n if (option) setSelectedLabel(option.label);\n }\n };\n\n const handleSearch = (newSearch: string) => {\n setSearchValue(newSearch);\n debouncedSearch?.(newSearch);\n };\n\n const hasError = error || !!errorMessage;\n\n return (\n <div className={styles.selectField}>\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n disabled={disabled}\n triggerComponent={\n <SelectButton\n startIcon={startIcon}\n aria-label=\"Select option\"\n placeholder={placeholder}\n disabled={disabled}\n valueLabel={selectedLabel}\n onClear={() => handleChange('')}\n isClearable={isClearable}\n isLoading={isLoading}\n error={hasError}\n />\n }\n >\n <SelectList>\n {isSearchable && (\n <TextField\n ref={searchFieldRef}\n startIcon={IconSearch}\n aria-label=\"Search options\"\n placeholder=\"Search…\"\n role=\"searchbox\"\n value={searchValue}\n onKeyDown={(e) => e.stopPropagation()}\n onChange={handleSearch}\n />\n )}\n <SelectListOptions disabled={isLoading}>\n {groupedOptions\n ? Object.entries(groupedOptions).map(([category, categoryOptions]) => (\n <div key={category}>\n <SelectListCategory label={category} />\n {categoryOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={() => handleChange(option?.value)}\n isSelected={option.value === value}\n {...option}\n />\n ))}\n </div>\n ))\n : displayOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={() => handleChange(option?.value)}\n isSelected={option.value === value}\n {...option}\n />\n ))}\n {options.length === 0 && (\n <SelectListOption disabled value=\"empty\" label={noOptionsMessage} />\n )}\n </SelectListOptions>\n </SelectList>\n </Dropdown>\n {errorMessage && <FieldErrorMessage message={errorMessage} />}\n </div>\n );\n};\n"],"names":["SingleSelectField","value","startIcon","options","disabled","placeholder","isSearchable","isClearable","isLoading","noOptionsMessage","onChange","onSearch","error","errorMessage","isOpen","setIsOpen","useState","searchValue","setSearchValue","selectedLabel","setSelectedLabel","searchFieldRef","useRef","useSelectSearchFocus","useEffect","option","opt","debouncedSearch","useMemo","debounce","displayOptions","groupedOptions","groupOptionsByCategory","handleChange","newValue","handleSearch","newSearch","hasError","jsxs","styles","jsx","Dropdown","SelectButton","SelectList","TextField","IconSearch","SelectListOptions","category","categoryOptions","SelectListCategory","SelectListOption","FieldErrorMessage"],"mappings":"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"}
1
+ {"version":3,"file":"SingleSelectField-CJNiLfee.js","sources":["../src/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.tsx"],"sourcesContent":["import { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport { TextField } from '../../TextField/TextField';\nimport { SelectButton } from '../shared/SelectButton/SelectButton';\nimport { Dropdown } from '../../../shared/Dropdown/Dropdown';\nimport { SelectList } from '../shared/SelectList/SelectList';\nimport { SelectListOptions } from '../shared/SelectList/SelectListOptions/SelectListOptions';\nimport {\n SelectListOption,\n SelectListOptionProps,\n SelectListOptionPropsWithCategory,\n} from '../shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';\nimport { SelectListCategory } from '../shared/SelectList/SelectListOptions/SelectListCategory/SelectListCategory';\nimport { groupOptionsByCategory } from '../shared/SelectList/selectList.utils';\nimport { debounce } from '../../../utils/debounce.utils';\nimport { IconSearch, TablerIcon } from '@tabler/icons-react';\nimport { useSelectSearchFocus } from '../shared/useSelectSearchFocus.hook';\nimport styles from './SingleSelectField.module.css';\nimport { FieldErrorMessage } from '../../../shared/FieldErrorMessage/FieldErrorMessage';\n\nexport type SingleSelectFieldProps = {\n options: (SelectListOptionProps | SelectListOptionPropsWithCategory)[];\n startIcon?: TablerIcon;\n value?: string;\n disabled?: boolean;\n placeholder?: string;\n isSearchable?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n noOptionsMessage?: string;\n onChange: (value: string) => void;\n onSearch?: (search: string) => void;\n error?: boolean;\n errorMessage?: string;\n};\n\nexport const SingleSelectField: FC<SingleSelectFieldProps> = ({\n value = '',\n startIcon,\n options,\n disabled,\n placeholder,\n isSearchable,\n isClearable,\n isLoading,\n noOptionsMessage = 'No options available',\n onChange,\n onSearch,\n error = false,\n errorMessage,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchValue, setSearchValue] = useState<string>('');\n const [selectedLabel, setSelectedLabel] = useState<string>(value);\n\n const searchFieldRef = useRef<HTMLInputElement>(null);\n useSelectSearchFocus(isOpen, searchFieldRef);\n\n useEffect(() => {\n if (!value) {\n setSelectedLabel('');\n return;\n }\n\n const option = options.find((opt) => opt.value === value);\n if (option) {\n setSelectedLabel(option.label);\n }\n }, [value, options]);\n\n const debouncedSearch = useMemo(() => (onSearch ? debounce(onSearch) : undefined), [onSearch]);\n\n const displayOptions =\n isSearchable && !onSearch\n ? options.filter((option) => option.label.toLowerCase().includes(searchValue.toLowerCase()))\n : options;\n\n const groupedOptions = useMemo(() => groupOptionsByCategory(displayOptions), [displayOptions]);\n\n const handleChange = (newValue?: string) => {\n setSearchValue('');\n onChange(newValue ?? '');\n onSearch?.('');\n\n if (newValue === '') {\n setSelectedLabel('');\n } else {\n const option = options.find((opt) => opt.value === newValue);\n if (option) setSelectedLabel(option.label);\n }\n };\n\n const handleSearch = (newSearch: string) => {\n setSearchValue(newSearch);\n debouncedSearch?.(newSearch);\n };\n\n const hasError = error || !!errorMessage;\n\n return (\n <div className={styles.selectField}>\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n disabled={disabled}\n triggerComponent={\n <SelectButton\n startIcon={startIcon}\n aria-label=\"Select option\"\n placeholder={placeholder}\n disabled={disabled}\n valueLabel={selectedLabel}\n onClear={() => handleChange('')}\n isClearable={isClearable}\n isLoading={isLoading}\n error={hasError}\n />\n }\n >\n <SelectList>\n {isSearchable && (\n <TextField\n ref={searchFieldRef}\n startIcon={IconSearch}\n aria-label=\"Search options\"\n placeholder=\"Search…\"\n role=\"searchbox\"\n value={searchValue}\n onKeyDown={(e) => e.stopPropagation()}\n onChange={handleSearch}\n />\n )}\n <SelectListOptions disabled={isLoading}>\n {groupedOptions\n ? Object.entries(groupedOptions).map(([category, categoryOptions]) => (\n <div key={category}>\n <SelectListCategory label={category} />\n {categoryOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={() => handleChange(option?.value)}\n isSelected={option.value === value}\n {...option}\n />\n ))}\n </div>\n ))\n : displayOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={() => handleChange(option?.value)}\n isSelected={option.value === value}\n {...option}\n />\n ))}\n {options.length === 0 && (\n <SelectListOption disabled value=\"empty\" label={noOptionsMessage} />\n )}\n </SelectListOptions>\n </SelectList>\n </Dropdown>\n {errorMessage && <FieldErrorMessage message={errorMessage} />}\n </div>\n );\n};\n"],"names":["SingleSelectField","value","startIcon","options","disabled","placeholder","isSearchable","isClearable","isLoading","noOptionsMessage","onChange","onSearch","error","errorMessage","isOpen","setIsOpen","useState","searchValue","setSearchValue","selectedLabel","setSelectedLabel","searchFieldRef","useRef","useSelectSearchFocus","useEffect","option","opt","debouncedSearch","useMemo","debounce","displayOptions","groupedOptions","groupOptionsByCategory","handleChange","newValue","handleSearch","newSearch","hasError","jsxs","styles","jsx","Dropdown","SelectButton","SelectList","TextField","IconSearch","SelectListOptions","category","categoryOptions","SelectListCategory","SelectListOption","FieldErrorMessage"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as i } from "@embeddable.com/react";
2
2
  import { d as s, z as r, t as d, c as m, ae as c, V as n, o as u } from "./component.constants-CFaxyNCw.js";
3
- import { M as p, S as g } from "./index-BXRc9wyf.js";
3
+ import { M as p, S as g } from "./index-C4BiW71l.js";
4
4
  const f = {
5
5
  name: "SingleSelectFieldPro",
6
6
  label: "Single Select Field",
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "components": [
3
- "BarChartGroupedHorizontalPro",
4
- "BarChartGroupedPro",
3
+ "MultiSelectFieldPro",
4
+ "BarChartStackedPro",
5
5
  "SingleSelectFieldPro",
6
- "KpiChartNumberPro",
7
- "ComparisonPeriodSelectFieldPro",
8
- "BarChartDefaultHorizontalPro",
6
+ "KpiChartNumberComparisonPro",
9
7
  "BarChartDefaultPro",
10
- "LineChartGroupedPro",
11
- "PieChartPro",
12
8
  "BarChartStackedHorizontalPro",
13
- "DateRangeSelectFieldPro",
9
+ "ComparisonPeriodSelectFieldPro",
14
10
  "DonutLabelChartPro",
15
- "PivotTablePro",
16
- "KpiChartNumberComparisonPro",
17
- "MultiSelectFieldPro",
18
- "BarChartStackedPro",
19
- "LineChartDefaultPro",
20
11
  "DonutChartPro",
12
+ "KpiChartNumberPro",
13
+ "DateRangeSelectFieldPro",
14
+ "LineChartDefaultPro",
15
+ "BarChartDefaultHorizontalPro",
16
+ "PieChartPro",
17
+ "LineChartGroupedPro",
21
18
  "LineChartComparisonDefaultPro",
19
+ "PivotTablePro",
20
+ "BarChartGroupedHorizontalPro",
21
+ "BarChartGroupedPro",
22
22
  "TableChartPaginated"
23
23
  ],
24
24
  "editors": [],
@@ -6,7 +6,7 @@ const c = (t) => {
6
6
  `;
7
7
  }), o;
8
8
  }, r = (t) => {
9
- const o = `:root {
9
+ const o = `:root, :host {
10
10
  ${c(t)}}`, n = "remarkable-ui-embeddable-style";
11
11
  let e = document.getElementById(n);
12
12
  return e ? e.textContent = o : (e = document.createElement("style"), e.id = n, e.textContent = o, document.head.appendChild(e)), () => e == null ? void 0 : e.remove();
@@ -1,8 +1,8 @@
1
1
  import { r as b, j as i, U as O } from "./component.constants-CFaxyNCw.js";
2
- import { S as j } from "./SingleSelectField-BH5Dhjd8.js";
2
+ import { S as j } from "./SingleSelectField-CJNiLfee.js";
3
3
  import { g as x } from "./formatter.utils-Cu4uKJSZ.js";
4
4
  import { useTheme as v } from "@embeddable.com/react";
5
- import { E as F } from "./EditorCard-Qax7pQpf.js";
5
+ import { E as F } from "./EditorCard-CJoUz4uM.js";
6
6
  const M = 200, _ = (l) => {
7
7
  var a, r;
8
8
  const m = v(), c = x(m), {
@@ -43,4 +43,4 @@ export {
43
43
  _ as S,
44
44
  C as i
45
45
  };
46
- //# sourceMappingURL=index-BXRc9wyf.js.map
46
+ //# sourceMappingURL=index-C4BiW71l.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BXRc9wyf.js","sources":["../src/remarkable-pro/components/editors/SingleSelectFieldPro/index.tsx"],"sourcesContent":["import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { SingleSelectField } from '../../../../remarkable-ui/editors/select/SingleSelectField/SingleSelectField';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\n\nexport const MAX_OPTIONS = 200;\n\ntype SingleSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValue: string;\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (selectedValue: string) => void;\n};\n\nconst SingleSelectFieldPro = (props: SingleSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValue,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n value={selectedValue}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValue) => onChange?.(newValue)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default SingleSelectFieldPro;\n"],"names":["MAX_OPTIONS","SingleSelectFieldPro","props","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","placeholder","results","selectedValue","setSearchValue","onChange","resolveI18nProps","options","_a","data","showNoOptionsMessage","_b","jsx","EditorCard","SingleSelectField","i18n","newValue"],"mappings":";;;;;AASO,MAAMA,IAAc,KAerBC,IAAuB,CAACC,MAAqC;;AACjE,QAAMC,IAAeC,EAAA,GACfC,IAAiBC,EAAkBH,CAAK,GAExC;AAAA,IACJ,OAAAI;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,MACJC,IAAAN,EAAQ,SAAR,gBAAAM,EAAc,IAAI,CAACC,OACV;AAAA,IACL,OAAOT,IAA0BS,EAAKT,EAAwB,IAAI,IAAIS,EAAKV,EAAU,IAAI;AAAA,IACzF,OAAOJ,EAAe,KAAKI,GAAWU,EAAKV,EAAU,IAAI,CAAC;AAAA,EAAA,QAExD,CAAA,GAEFW,IAA+B,CAACR,EAAQ,gBAAcS,IAAAT,EAAQ,SAAR,gBAAAS,EAAc,WAAU,OAAO;AAE3F,SACEC,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAhB,GAAc,UAAUC,GAClC,UAAAc,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,cAAY;AAAA,MACZ,WAAWZ,EAAQ;AAAA,MACnB,OAAOC;AAAA,MACP,SAAAI;AAAA,MACA,aAAAN;AAAA,MACA,kBAAkBS,IAAuBK,EAAK,EAAE,uBAAuB,IAAI;AAAA,MAC3E,UAAU,CAACC,MAAaX,KAAA,gBAAAA,EAAWW;AAAA,MACnC,UAAUZ;AAAA,IAAA;AAAA,EAAA,GAEd;AAEJ;;;;;"}
1
+ {"version":3,"file":"index-C4BiW71l.js","sources":["../src/remarkable-pro/components/editors/SingleSelectFieldPro/index.tsx"],"sourcesContent":["import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { SingleSelectField } from '../../../../remarkable-ui/editors/select/SingleSelectField/SingleSelectField';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\n\nexport const MAX_OPTIONS = 200;\n\ntype SingleSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValue: string;\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (selectedValue: string) => void;\n};\n\nconst SingleSelectFieldPro = (props: SingleSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValue,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n value={selectedValue}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValue) => onChange?.(newValue)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default SingleSelectFieldPro;\n"],"names":["MAX_OPTIONS","SingleSelectFieldPro","props","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","placeholder","results","selectedValue","setSearchValue","onChange","resolveI18nProps","options","_a","data","showNoOptionsMessage","_b","jsx","EditorCard","SingleSelectField","i18n","newValue"],"mappings":";;;;;AASO,MAAMA,IAAc,KAerBC,IAAuB,CAACC,MAAqC;;AACjE,QAAMC,IAAeC,EAAA,GACfC,IAAiBC,EAAkBH,CAAK,GAExC;AAAA,IACJ,OAAAI;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,MACJC,IAAAN,EAAQ,SAAR,gBAAAM,EAAc,IAAI,CAACC,OACV;AAAA,IACL,OAAOT,IAA0BS,EAAKT,EAAwB,IAAI,IAAIS,EAAKV,EAAU,IAAI;AAAA,IACzF,OAAOJ,EAAe,KAAKI,GAAWU,EAAKV,EAAU,IAAI,CAAC;AAAA,EAAA,QAExD,CAAA,GAEFW,IAA+B,CAACR,EAAQ,gBAAcS,IAAAT,EAAQ,SAAR,gBAAAS,EAAc,WAAU,OAAO;AAE3F,SACEC,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAhB,GAAc,UAAUC,GAClC,UAAAc,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,cAAY;AAAA,MACZ,WAAWZ,EAAQ;AAAA,MACnB,OAAOC;AAAA,MACP,SAAAI;AAAA,MACA,aAAAN;AAAA,MACA,kBAAkBS,IAAuBK,EAAK,EAAE,uBAAuB,IAAI;AAAA,MAC3E,UAAU,CAACC,MAAaX,KAAA,gBAAAA,EAAWW;AAAA,MACnC,UAAUZ;AAAA,IAAA;AAAA,EAAA,GAEd;AAEJ;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { ad as $, j as t, af as J, ah as K, ag as X, ap as G, as as H, at as Q, aq as M, ar as W, ao as Y, r as Z, U as ee } from "./component.constants-CFaxyNCw.js";
2
2
  import { g as te } from "./formatter.utils-Cu4uKJSZ.js";
3
3
  import { useTheme as se } from "@embeddable.com/react";
4
- import { u as le, d as ae, g as ne, I as oe, S as ce, a as ie, E as re } from "./EditorCard-Qax7pQpf.js";
4
+ import { u as le, d as ae, g as ne, I as oe, S as ce, a as ie, E as re } from "./EditorCard-CJoUz4uM.js";
5
5
  import { useState as y, useRef as ue, useEffect as k, useMemo as q } from "react";
6
6
  /**
7
7
  * @license @tabler/icons-react v3.35.0 - MIT
@@ -217,4 +217,4 @@ export {
217
217
  ve as b,
218
218
  Ne as i
219
219
  };
220
- //# sourceMappingURL=index-DQyhe1sV.js.map
220
+ //# sourceMappingURL=index-DvEWwlqq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DQyhe1sV.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs","../node_modules/@tabler/icons-react/dist/esm/icons/IconSquareCheckFilled.mjs","../src/remarkable-ui/shared/Button/Button.tsx","../src/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.tsx","../src/remarkable-pro/components/editors/MultiSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z\", \"key\": \"svg-0\" }]];\nconst IconSquare = createReactComponent(\"outline\", \"square\", \"Square\", __iconNode);\n\nexport { __iconNode, IconSquare as default };\n//# sourceMappingURL=IconSquare.mjs.map\n","/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.626 7.293a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z\", \"key\": \"svg-0\" }]];\nconst IconSquareCheckFilled = createReactComponent(\"filled\", \"square-check-filled\", \"SquareCheckFilled\", __iconNode);\n\nexport { __iconNode, IconSquareCheckFilled as default };\n//# sourceMappingURL=IconSquareCheckFilled.mjs.map\n","import { TablerIcon } from '@tabler/icons-react';\nimport styles from './Button.module.css';\nimport { BaseButton, type BaseButtonProps } from '../BaseButton';\nimport { Typography } from '../Typography/Typography';\nimport clsx from 'clsx';\n\ntype ButtonProps = BaseButtonProps & {\n startIcon?: TablerIcon;\n endIcon?: TablerIcon;\n children: string;\n size: 'small' | 'medium';\n};\n\nexport const Button: React.FC<ButtonProps> = ({\n variant,\n startIcon: StartIcon,\n endIcon: EndIcon,\n children,\n size,\n ...props\n}) => {\n return (\n <BaseButton\n variant={variant}\n {...props}\n className={size === 'medium' ? styles.buttonMedium : styles.buttonSmall}\n size={size}\n >\n {StartIcon && <StartIcon className={styles.icon} />}\n <Typography\n as=\"span\"\n className={clsx(\n styles.buttonText,\n styles[`buttonText${size.charAt(0).toUpperCase() + size.slice(1)}`],\n )}\n >\n {children}\n </Typography>\n {EndIcon && <EndIcon className={styles.icon} />}\n </BaseButton>\n );\n};\n","import { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n SelectListOption,\n SelectListOptionProps,\n SelectListOptionPropsWithCategory,\n} from '../shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';\nimport { SelectListCategory } from '../shared/SelectList/SelectListOptions/SelectListCategory/SelectListCategory';\nimport { debounce } from '../../../utils/debounce.utils';\nimport { Dropdown } from '../../../shared/Dropdown/Dropdown';\nimport { SelectButton } from '../shared/SelectButton/SelectButton';\nimport { SelectList } from '../shared/SelectList/SelectList';\nimport { groupOptionsByCategory } from '../shared/SelectList/selectList.utils';\nimport { TextField } from '../../TextField/TextField';\nimport { SelectListOptions } from '../shared/SelectList/SelectListOptions/SelectListOptions';\nimport { IconSearch, IconSquare, IconSquareCheckFilled } from '@tabler/icons-react';\nimport { Button } from '../../../shared/Button/Button';\nimport styles from './MultiSelectField.module.css';\nimport { useSelectSearchFocus } from '../shared/useSelectSearchFocus.hook';\nimport { FieldErrorMessage } from '../../../shared/FieldErrorMessage/FieldErrorMessage';\n\nexport type MultiSelectFieldProps = {\n disabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isSearchable?: boolean;\n noOptionsMessage?: string;\n options: (SelectListOptionProps | SelectListOptionPropsWithCategory)[];\n placeholder?: string;\n submitLabel?: string;\n values?: string[];\n onChange: (value: string[]) => void;\n onSearch?: (search: string) => void;\n error?: boolean;\n errorMessage?: string;\n};\n\nexport const MultiSelectField: FC<MultiSelectFieldProps> = ({\n disabled,\n isClearable,\n isLoading,\n isSearchable,\n noOptionsMessage,\n options,\n placeholder,\n submitLabel = 'Apply',\n values = [],\n onChange,\n onSearch,\n error = false,\n errorMessage,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchValue, setSearchValue] = useState<string>('');\n const [preValues, setPreValues] = useState<string[]>(values);\n const [selectedLabel, setSelectedLabel] = useState<string>('');\n\n const searchFieldRef = useRef<HTMLInputElement>(null);\n useSelectSearchFocus(isOpen, searchFieldRef);\n\n useEffect(() => {\n setPreValues(values);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(values)]);\n\n useEffect(() => {\n if (isLoading) {\n return;\n }\n\n if (!values || values.length === 0) {\n setSelectedLabel('');\n return;\n }\n const selectedOptions = values.map(\n (value) => options.find((o) => o.value === value)?.label ?? value,\n );\n\n if (selectedOptions.length > 0) {\n const newLabel = selectedOptions.join(', ');\n setSelectedLabel(`(${selectedOptions.length}) ${newLabel}`);\n }\n }, [values, options, isLoading]);\n\n const debouncedSearch = useMemo(() => (onSearch ? debounce(onSearch) : undefined), [onSearch]);\n\n const displayOptions =\n isSearchable && !onSearch\n ? options.filter((option) => option.label.toLowerCase().includes(searchValue.toLowerCase()))\n : options;\n\n const groupedOptions = useMemo(() => groupOptionsByCategory(displayOptions), [displayOptions]);\n\n const isSubmitDisabled =\n preValues.every((preValue) => values.includes(preValue)) &&\n values.every((value) => preValues.includes(value));\n\n const handleSelectOption = (\n e: React.MouseEvent<HTMLDivElement, MouseEvent>,\n newValue?: string,\n ) => {\n e.preventDefault();\n\n if (!newValue) return;\n\n if (preValues.includes(newValue)) {\n setPreValues(preValues.filter((v) => v !== newValue));\n } else {\n setPreValues([...preValues, newValue]);\n }\n };\n\n const handleSearch = (newSearch: string) => {\n setSearchValue(newSearch);\n debouncedSearch?.(newSearch);\n };\n\n const handleSave = (newValues: string[]) => {\n onChange(newValues);\n setIsOpen(false);\n setSearchValue('');\n onSearch?.('');\n };\n\n const handleClearAll = () => {\n setSearchValue('');\n onSearch?.('');\n onChange([]);\n };\n\n const hasError = error || !!errorMessage;\n\n return (\n <div className={styles.selectField}>\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n disabled={disabled}\n triggerComponent={\n <SelectButton\n aria-label=\"Select options\"\n placeholder={placeholder}\n disabled={disabled}\n valueLabel={selectedLabel}\n onClear={handleClearAll}\n isClearable={isClearable}\n isLoading={isLoading}\n error={hasError}\n />\n }\n >\n <SelectList>\n {isSearchable && (\n <TextField\n ref={searchFieldRef}\n startIcon={IconSearch}\n aria-label=\"Search options\"\n placeholder=\"Search…\"\n role=\"searchbox\"\n value={searchValue}\n onKeyDown={(e) => e.stopPropagation()}\n onChange={handleSearch}\n />\n )}\n <SelectListOptions disabled={isLoading}>\n {groupedOptions\n ? Object.entries(groupedOptions).map(([category, categoryOptions]) => (\n <div key={category}>\n <SelectListCategory label={category} />\n {categoryOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={(e) => handleSelectOption(e, option.value)}\n startIcon={\n preValues.includes(option.value!) ? (\n <IconSquareCheckFilled />\n ) : (\n <IconSquare />\n )\n }\n {...option}\n />\n ))}\n </div>\n ))\n : displayOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={(e) => handleSelectOption(e, option.value)}\n startIcon={\n preValues.includes(option.value!) ? <IconSquareCheckFilled /> : <IconSquare />\n }\n {...option}\n />\n ))}\n {noOptionsMessage && displayOptions.length === 0 && (\n <SelectListOption disabled value=\"empty\" label={noOptionsMessage} />\n )}\n </SelectListOptions>\n <Button\n className={styles.submitButton}\n disabled={isSubmitDisabled || isLoading}\n variant=\"primary\"\n size=\"medium\"\n onClick={() => handleSave(preValues)}\n role=\"button\"\n >\n {submitLabel}\n </Button>\n </SelectList>\n </Dropdown>\n {errorMessage && <FieldErrorMessage message={errorMessage} />}\n </div>\n );\n};\n","import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { MultiSelectField } from '../../../../remarkable-ui';\n\nexport const MAX_OPTIONS = 200;\n\ntype MultiSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValues: string[];\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (newValues: string[]) => void;\n};\n\nconst MultiSelectFieldPro = (props: MultiSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValues,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <MultiSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n values={selectedValues ?? []}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValues) => onChange?.(newValues)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default MultiSelectFieldPro;\n"],"names":["__iconNode","IconSquare","createReactComponent","IconSquareCheckFilled","Button","variant","StartIcon","EndIcon","children","size","props","jsxs","BaseButton","styles","jsx","Typography","clsx","MultiSelectField","disabled","isClearable","isLoading","isSearchable","noOptionsMessage","options","placeholder","submitLabel","values","onChange","onSearch","error","errorMessage","isOpen","setIsOpen","useState","searchValue","setSearchValue","preValues","setPreValues","selectedLabel","setSelectedLabel","searchFieldRef","useRef","useSelectSearchFocus","useEffect","selectedOptions","value","_a","o","newLabel","debouncedSearch","useMemo","debounce","displayOptions","option","groupedOptions","groupOptionsByCategory","isSubmitDisabled","preValue","handleSelectOption","newValue","v","handleSearch","newSearch","handleSave","newValues","handleClearAll","hasError","Dropdown","SelectButton","SelectList","TextField","IconSearch","SelectListOptions","category","categoryOptions","SelectListCategory","SelectListOption","e","FieldErrorMessage","MAX_OPTIONS","MultiSelectFieldPro","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","results","selectedValues","resolveI18nProps","data","showNoOptionsMessage","_b","EditorCard","i18n"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,mFAAmF,KAAO,QAAO,CAAE,CAAC,GAClIC,IAAaC,EAAqB,WAAW,UAAU,UAAUF,EAAU;ACVjF;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,8XAA8X,KAAO,QAAO,CAAE,CAAC,GAC7aG,IAAwBD,EAAqB,UAAU,uBAAuB,qBAAqBF,EAAU;;;;;;;GCGtGI,KAAgC,CAAC;AAAA,EAC5C,SAAAC;AAAA,EACA,WAAWC;AAAA,EACX,SAASC;AAAA,EACT,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACL,MAEIC,gBAAAA,EAAAA;AAAAA,EAACC;AAAA,EAAA;AAAA,IACC,SAAAP;AAAA,IACC,GAAGK;AAAA,IACJ,WAAWD,MAAS,WAAWI,EAAO,eAAeA,EAAO;AAAA,IAC5D,MAAAJ;AAAA,IAEC,UAAA;AAAA,MAAAH,KAAaQ,gBAAAA,EAAAA,IAACR,GAAA,EAAU,WAAWO,EAAO,MAAM;AAAA,MACjDC,gBAAAA,EAAAA;AAAAA,QAACC;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,WAAWC;AAAA,YACTH,EAAO;AAAA,YACPA,EAAO,aAAaJ,EAAK,OAAO,CAAC,EAAE,YAAA,IAAgBA,EAAK,MAAM,CAAC,CAAC,EAAE;AAAA,UAAA;AAAA,UAGnE,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,MAEFD,KAAWO,gBAAAA,EAAAA,IAACP,GAAA,EAAQ,WAAWM,EAAO,KAAA,CAAM;AAAA,IAAA;AAAA,EAAA;AAAA;;;GCFtCI,KAA8C,CAAC;AAAA,EAC1D,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,QAAAC,IAAS,CAAA;AAAA,EACT,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,cAAAC;AACF,MAAM;AACJ,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpC,CAACC,GAAaC,CAAc,IAAIF,EAAiB,EAAE,GACnD,CAACG,GAAWC,CAAY,IAAIJ,EAAmBP,CAAM,GACrD,CAACY,GAAeC,CAAgB,IAAIN,EAAiB,EAAE,GAEvDO,IAAiBC,GAAyB,IAAI;AACpD,EAAAC,GAAqBX,GAAQS,CAAc,GAE3CG,EAAU,MAAM;AACd,IAAAN,EAAaX,CAAM;AAAA,EAErB,GAAG,CAAC,KAAK,UAAUA,CAAM,CAAC,CAAC,GAE3BiB,EAAU,MAAM;AACd,QAAIvB;AACF;AAGF,QAAI,CAACM,KAAUA,EAAO,WAAW,GAAG;AAClC,MAAAa,EAAiB,EAAE;AACnB;AAAA,IACF;AACA,UAAMK,IAAkBlB,EAAO;AAAA,MAC7B,CAACmB,MAAA;;AAAU,iBAAAC,IAAAvB,EAAQ,KAAK,CAACwB,MAAMA,EAAE,UAAUF,CAAK,MAArC,gBAAAC,EAAwC,UAASD;AAAA;AAAA,IAAA;AAG9D,QAAID,EAAgB,SAAS,GAAG;AAC9B,YAAMI,IAAWJ,EAAgB,KAAK,IAAI;AAC1C,MAAAL,EAAiB,IAAIK,EAAgB,MAAM,KAAKI,CAAQ,EAAE;AAAA,IAC5D;AAAA,EACF,GAAG,CAACtB,GAAQH,GAASH,CAAS,CAAC;AAE/B,QAAM6B,IAAkBC,EAAQ,MAAOtB,IAAWuB,GAASvB,CAAQ,IAAI,QAAY,CAACA,CAAQ,CAAC,GAEvFwB,IACJ/B,KAAgB,CAACO,IACbL,EAAQ,OAAO,CAAC8B,MAAWA,EAAO,MAAM,cAAc,SAASnB,EAAY,YAAA,CAAa,CAAC,IACzFX,GAEA+B,IAAiBJ,EAAQ,MAAMK,GAAuBH,CAAc,GAAG,CAACA,CAAc,CAAC,GAEvFI,IACJpB,EAAU,MAAM,CAACqB,MAAa/B,EAAO,SAAS+B,CAAQ,CAAC,KACvD/B,EAAO,MAAM,CAACmB,MAAUT,EAAU,SAASS,CAAK,CAAC,GAE7Ca,IAAqB,CACzB,GACAC,MACG;AAGH,IAFA,EAAE,eAAA,GAEGA,MAEDvB,EAAU,SAASuB,CAAQ,IAC7BtB,EAAaD,EAAU,OAAO,CAACwB,MAAMA,MAAMD,CAAQ,CAAC,IAEpDtB,EAAa,CAAC,GAAGD,GAAWuB,CAAQ,CAAC;AAAA,EAEzC,GAEME,IAAe,CAACC,MAAsB;AAC1C,IAAA3B,EAAe2B,CAAS,GACxBb,KAAA,QAAAA,EAAkBa;AAAA,EACpB,GAEMC,IAAa,CAACC,MAAwB;AAC1C,IAAArC,EAASqC,CAAS,GAClBhC,EAAU,EAAK,GACfG,EAAe,EAAE,GACjBP,KAAA,QAAAA,EAAW;AAAA,EACb,GAEMqC,IAAiB,MAAM;AAC3B,IAAA9B,EAAe,EAAE,GACjBP,KAAA,QAAAA,EAAW,KACXD,EAAS,CAAA,CAAE;AAAA,EACb,GAEMuC,IAAWrC,KAAS,CAAC,CAACC;AAE5B,SACEnB,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWE,EAAO,aACrB,UAAA;AAAA,IAAAC,gBAAAA,EAAAA;AAAAA,MAACqD;AAAA,MAAA;AAAA,QACC,MAAMpC;AAAA,QACN,cAAcC;AAAA,QACd,UAAAd;AAAA,QACA,kBACEJ,gBAAAA,EAAAA;AAAAA,UAACsD;AAAA,UAAA;AAAA,YACC,cAAW;AAAA,YACX,aAAA5C;AAAA,YACA,UAAAN;AAAA,YACA,YAAYoB;AAAA,YACZ,SAAS2B;AAAA,YACT,aAAA9C;AAAA,YACA,WAAAC;AAAA,YACA,OAAO8C;AAAA,UAAA;AAAA,QAAA;AAAA,QAIX,iCAACG,GAAA,EACE,UAAA;AAAA,UAAAhD,KACCP,gBAAAA,EAAAA;AAAAA,YAACwD;AAAA,YAAA;AAAA,cACC,KAAK9B;AAAA,cACL,WAAW+B;AAAA,cACX,cAAW;AAAA,cACX,aAAY;AAAA,cACZ,MAAK;AAAA,cACL,OAAOrC;AAAA,cACP,WAAW,CAAC,MAAM,EAAE,gBAAA;AAAA,cACpB,UAAU2B;AAAA,YAAA;AAAA,UAAA;AAAA,UAGdlD,gBAAAA,EAAAA,KAAC6D,IAAA,EAAkB,UAAUpD,GAC1B,UAAA;AAAA,YAAAkC,IACG,OAAO,QAAQA,CAAc,EAAE,IAAI,CAAC,CAACmB,GAAUC,CAAe,MAC5D/D,gBAAAA,EAAAA,KAAC,OAAA,EACC,UAAA;AAAA,cAAAG,gBAAAA,EAAAA,IAAC6D,IAAA,EAAmB,OAAOF,EAAA,CAAU;AAAA,cACpCC,EAAgB,IAAI,CAACrB,MACpBvC,gBAAAA,EAAAA;AAAAA,gBAAC8D;AAAA,gBAAA;AAAA,kBAEC,SAAS,CAACC,MAAMnB,EAAmBmB,GAAGxB,EAAO,KAAK;AAAA,kBAClD,WACEjB,EAAU,SAASiB,EAAO,KAAM,IAC9BvC,gBAAAA,MAACX,GAAA,CAAA,CAAsB,IAEvBW,gBAAAA,MAACb,GAAA,CAAA,CAAW;AAAA,kBAGf,GAAGoD;AAAA,gBAAA;AAAA,iBATCA,KAAA,gBAAAA,EAAQ,UAASA,EAAO;AAAA,cAAA,CAWhC;AAAA,YAAA,EAAA,GAfOoB,CAgBV,CACD,IACDrB,EAAe,IAAI,CAACC,MAClBvC,gBAAAA,EAAAA;AAAAA,cAAC8D;AAAA,cAAA;AAAA,gBAEC,SAAS,CAACC,MAAMnB,EAAmBmB,GAAGxB,EAAO,KAAK;AAAA,gBAClD,WACEjB,EAAU,SAASiB,EAAO,KAAM,IAAIvC,gBAAAA,MAACX,GAAA,CAAA,CAAsB,IAAKW,gBAAAA,MAACb,GAAA,CAAA,CAAW;AAAA,gBAE7E,GAAGoD;AAAA,cAAA;AAAA,eALCA,KAAA,gBAAAA,EAAQ,UAASA,EAAO;AAAA,YAAA,CAOhC;AAAA,YACJ/B,KAAoB8B,EAAe,WAAW,KAC7CtC,gBAAAA,EAAAA,IAAC8D,GAAA,EAAiB,UAAQ,IAAC,OAAM,SAAQ,OAAOtD,EAAA,CAAkB;AAAA,UAAA,GAEtE;AAAA,UACAR,gBAAAA,EAAAA;AAAAA,YAACV;AAAA,YAAA;AAAA,cACC,WAAWS,EAAO;AAAA,cAClB,UAAU2C,KAAoBpC;AAAA,cAC9B,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,SAAS,MAAM2C,EAAW3B,CAAS;AAAA,cACnC,MAAK;AAAA,cAEJ,UAAAX;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAEDK,KAAgBhB,gBAAAA,EAAAA,IAACgE,GAAA,EAAkB,SAAShD,EAAA,CAAc;AAAA,EAAA,GAC7D;AAEJ,GC5MaiD,KAAc,KAerBC,KAAsB,CAACtE,MAAoC;;AAC/D,QAAMuE,IAAeC,GAAA,GACfC,IAAiBC,GAAkBH,CAAK,GACxC;AAAA,IACJ,OAAAI;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,aAAAhE;AAAA,IACA,SAAAiE;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAvD;AAAA,IACA,UAAAR;AAAA,EAAA,IACEgE,EAAiBjF,CAAK,GAEpBa,MACJuB,IAAA2C,EAAQ,SAAR,gBAAA3C,EAAc,IAAI,CAAC8C,OACV;AAAA,IACL,OAAOJ,IAA0BI,EAAKJ,EAAwB,IAAI,IAAII,EAAKL,EAAU,IAAI;AAAA,IACzF,OAAOJ,EAAe,KAAKI,GAAWK,EAAKL,EAAU,IAAI,CAAC;AAAA,EAAA,QAExD,CAAA,GAEFM,IAA+B,CAACJ,EAAQ,gBAAcK,IAAAL,EAAQ,SAAR,gBAAAK,EAAc,WAAU,OAAO;AAE3F,SACEhF,gBAAAA,EAAAA,IAACiF,IAAA,EAAW,OAAAV,GAAc,UAAUC,GAClC,UAAAxE,gBAAAA,EAAAA;AAAAA,IAACG;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,cAAY;AAAA,MACZ,WAAWwE,EAAQ;AAAA,MACnB,QAAQC,KAAkB,CAAA;AAAA,MAC1B,SAAAnE;AAAA,MACA,aAAAC;AAAA,MACA,kBAAkBqE,IAAuBG,GAAK,EAAE,uBAAuB,IAAI;AAAA,MAC3E,UAAU,CAAChC,MAAcrC,KAAA,gBAAAA,EAAWqC;AAAA,MACpC,UAAU7B;AAAA,IAAA;AAAA,EAAA,GAEd;AAEJ;;;;;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index-DvEWwlqq.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs","../node_modules/@tabler/icons-react/dist/esm/icons/IconSquareCheckFilled.mjs","../src/remarkable-ui/shared/Button/Button.tsx","../src/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.tsx","../src/remarkable-pro/components/editors/MultiSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z\", \"key\": \"svg-0\" }]];\nconst IconSquare = createReactComponent(\"outline\", \"square\", \"Square\", __iconNode);\n\nexport { __iconNode, IconSquare as default };\n//# sourceMappingURL=IconSquare.mjs.map\n","/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.626 7.293a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z\", \"key\": \"svg-0\" }]];\nconst IconSquareCheckFilled = createReactComponent(\"filled\", \"square-check-filled\", \"SquareCheckFilled\", __iconNode);\n\nexport { __iconNode, IconSquareCheckFilled as default };\n//# sourceMappingURL=IconSquareCheckFilled.mjs.map\n","import { TablerIcon } from '@tabler/icons-react';\nimport styles from './Button.module.css';\nimport { BaseButton, type BaseButtonProps } from '../BaseButton';\nimport { Typography } from '../Typography/Typography';\nimport clsx from 'clsx';\n\ntype ButtonProps = BaseButtonProps & {\n startIcon?: TablerIcon;\n endIcon?: TablerIcon;\n children: string;\n size: 'small' | 'medium';\n};\n\nexport const Button: React.FC<ButtonProps> = ({\n variant,\n startIcon: StartIcon,\n endIcon: EndIcon,\n children,\n size,\n ...props\n}) => {\n return (\n <BaseButton\n variant={variant}\n {...props}\n className={size === 'medium' ? styles.buttonMedium : styles.buttonSmall}\n size={size}\n >\n {StartIcon && <StartIcon className={styles.icon} />}\n <Typography\n as=\"span\"\n className={clsx(\n styles.buttonText,\n styles[`buttonText${size.charAt(0).toUpperCase() + size.slice(1)}`],\n )}\n >\n {children}\n </Typography>\n {EndIcon && <EndIcon className={styles.icon} />}\n </BaseButton>\n );\n};\n","import { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n SelectListOption,\n SelectListOptionProps,\n SelectListOptionPropsWithCategory,\n} from '../shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';\nimport { SelectListCategory } from '../shared/SelectList/SelectListOptions/SelectListCategory/SelectListCategory';\nimport { debounce } from '../../../utils/debounce.utils';\nimport { Dropdown } from '../../../shared/Dropdown/Dropdown';\nimport { SelectButton } from '../shared/SelectButton/SelectButton';\nimport { SelectList } from '../shared/SelectList/SelectList';\nimport { groupOptionsByCategory } from '../shared/SelectList/selectList.utils';\nimport { TextField } from '../../TextField/TextField';\nimport { SelectListOptions } from '../shared/SelectList/SelectListOptions/SelectListOptions';\nimport { IconSearch, IconSquare, IconSquareCheckFilled } from '@tabler/icons-react';\nimport { Button } from '../../../shared/Button/Button';\nimport styles from './MultiSelectField.module.css';\nimport { useSelectSearchFocus } from '../shared/useSelectSearchFocus.hook';\nimport { FieldErrorMessage } from '../../../shared/FieldErrorMessage/FieldErrorMessage';\n\nexport type MultiSelectFieldProps = {\n disabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isSearchable?: boolean;\n noOptionsMessage?: string;\n options: (SelectListOptionProps | SelectListOptionPropsWithCategory)[];\n placeholder?: string;\n submitLabel?: string;\n values?: string[];\n onChange: (value: string[]) => void;\n onSearch?: (search: string) => void;\n error?: boolean;\n errorMessage?: string;\n};\n\nexport const MultiSelectField: FC<MultiSelectFieldProps> = ({\n disabled,\n isClearable,\n isLoading,\n isSearchable,\n noOptionsMessage,\n options,\n placeholder,\n submitLabel = 'Apply',\n values = [],\n onChange,\n onSearch,\n error = false,\n errorMessage,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchValue, setSearchValue] = useState<string>('');\n const [preValues, setPreValues] = useState<string[]>(values);\n const [selectedLabel, setSelectedLabel] = useState<string>('');\n\n const searchFieldRef = useRef<HTMLInputElement>(null);\n useSelectSearchFocus(isOpen, searchFieldRef);\n\n useEffect(() => {\n setPreValues(values);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(values)]);\n\n useEffect(() => {\n if (isLoading) {\n return;\n }\n\n if (!values || values.length === 0) {\n setSelectedLabel('');\n return;\n }\n const selectedOptions = values.map(\n (value) => options.find((o) => o.value === value)?.label ?? value,\n );\n\n if (selectedOptions.length > 0) {\n const newLabel = selectedOptions.join(', ');\n setSelectedLabel(`(${selectedOptions.length}) ${newLabel}`);\n }\n }, [values, options, isLoading]);\n\n const debouncedSearch = useMemo(() => (onSearch ? debounce(onSearch) : undefined), [onSearch]);\n\n const displayOptions =\n isSearchable && !onSearch\n ? options.filter((option) => option.label.toLowerCase().includes(searchValue.toLowerCase()))\n : options;\n\n const groupedOptions = useMemo(() => groupOptionsByCategory(displayOptions), [displayOptions]);\n\n const isSubmitDisabled =\n preValues.every((preValue) => values.includes(preValue)) &&\n values.every((value) => preValues.includes(value));\n\n const handleSelectOption = (\n e: React.MouseEvent<HTMLDivElement, MouseEvent>,\n newValue?: string,\n ) => {\n e.preventDefault();\n\n if (!newValue) return;\n\n if (preValues.includes(newValue)) {\n setPreValues(preValues.filter((v) => v !== newValue));\n } else {\n setPreValues([...preValues, newValue]);\n }\n };\n\n const handleSearch = (newSearch: string) => {\n setSearchValue(newSearch);\n debouncedSearch?.(newSearch);\n };\n\n const handleSave = (newValues: string[]) => {\n onChange(newValues);\n setIsOpen(false);\n setSearchValue('');\n onSearch?.('');\n };\n\n const handleClearAll = () => {\n setSearchValue('');\n onSearch?.('');\n onChange([]);\n };\n\n const hasError = error || !!errorMessage;\n\n return (\n <div className={styles.selectField}>\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n disabled={disabled}\n triggerComponent={\n <SelectButton\n aria-label=\"Select options\"\n placeholder={placeholder}\n disabled={disabled}\n valueLabel={selectedLabel}\n onClear={handleClearAll}\n isClearable={isClearable}\n isLoading={isLoading}\n error={hasError}\n />\n }\n >\n <SelectList>\n {isSearchable && (\n <TextField\n ref={searchFieldRef}\n startIcon={IconSearch}\n aria-label=\"Search options\"\n placeholder=\"Search…\"\n role=\"searchbox\"\n value={searchValue}\n onKeyDown={(e) => e.stopPropagation()}\n onChange={handleSearch}\n />\n )}\n <SelectListOptions disabled={isLoading}>\n {groupedOptions\n ? Object.entries(groupedOptions).map(([category, categoryOptions]) => (\n <div key={category}>\n <SelectListCategory label={category} />\n {categoryOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={(e) => handleSelectOption(e, option.value)}\n startIcon={\n preValues.includes(option.value!) ? (\n <IconSquareCheckFilled />\n ) : (\n <IconSquare />\n )\n }\n {...option}\n />\n ))}\n </div>\n ))\n : displayOptions.map((option) => (\n <SelectListOption\n key={option?.value ?? option.label}\n onClick={(e) => handleSelectOption(e, option.value)}\n startIcon={\n preValues.includes(option.value!) ? <IconSquareCheckFilled /> : <IconSquare />\n }\n {...option}\n />\n ))}\n {noOptionsMessage && displayOptions.length === 0 && (\n <SelectListOption disabled value=\"empty\" label={noOptionsMessage} />\n )}\n </SelectListOptions>\n <Button\n className={styles.submitButton}\n disabled={isSubmitDisabled || isLoading}\n variant=\"primary\"\n size=\"medium\"\n onClick={() => handleSave(preValues)}\n role=\"button\"\n >\n {submitLabel}\n </Button>\n </SelectList>\n </Dropdown>\n {errorMessage && <FieldErrorMessage message={errorMessage} />}\n </div>\n );\n};\n","import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { MultiSelectField } from '../../../../remarkable-ui';\n\nexport const MAX_OPTIONS = 200;\n\ntype MultiSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValues: string[];\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (newValues: string[]) => void;\n};\n\nconst MultiSelectFieldPro = (props: MultiSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValues,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <MultiSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n values={selectedValues ?? []}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValues) => onChange?.(newValues)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default MultiSelectFieldPro;\n"],"names":["__iconNode","IconSquare","createReactComponent","IconSquareCheckFilled","Button","variant","StartIcon","EndIcon","children","size","props","jsxs","BaseButton","styles","jsx","Typography","clsx","MultiSelectField","disabled","isClearable","isLoading","isSearchable","noOptionsMessage","options","placeholder","submitLabel","values","onChange","onSearch","error","errorMessage","isOpen","setIsOpen","useState","searchValue","setSearchValue","preValues","setPreValues","selectedLabel","setSelectedLabel","searchFieldRef","useRef","useSelectSearchFocus","useEffect","selectedOptions","value","_a","o","newLabel","debouncedSearch","useMemo","debounce","displayOptions","option","groupedOptions","groupOptionsByCategory","isSubmitDisabled","preValue","handleSelectOption","newValue","v","handleSearch","newSearch","handleSave","newValues","handleClearAll","hasError","Dropdown","SelectButton","SelectList","TextField","IconSearch","SelectListOptions","category","categoryOptions","SelectListCategory","SelectListOption","e","FieldErrorMessage","MAX_OPTIONS","MultiSelectFieldPro","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","results","selectedValues","resolveI18nProps","data","showNoOptionsMessage","_b","EditorCard","i18n"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,9 +1,9 @@
1
1
  import { ad as S, a2 as R, r as b, j as d, U as O } from "./component.constants-CFaxyNCw.js";
2
2
  import { useTheme as j } from "@embeddable.com/react";
3
3
  import { useState as C, useEffect as c } from "react";
4
- import { S as y } from "./SingleSelectField-BH5Dhjd8.js";
4
+ import { S as y } from "./SingleSelectField-CJNiLfee.js";
5
5
  import { g as x, u as F } from "./editors.timeRange.utils-D9m6B3r1.js";
6
- import { E as T } from "./EditorCard-Qax7pQpf.js";
6
+ import { E as T } from "./EditorCard-CJoUz4uM.js";
7
7
  /**
8
8
  * @license @tabler/icons-react v3.35.0 - MIT
9
9
  *
@@ -53,4 +53,4 @@ export {
53
53
  z as D,
54
54
  A as i
55
55
  };
56
- //# sourceMappingURL=index-C6Uh1mjr.js.map
56
+ //# sourceMappingURL=index-DvMr1tvf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-C6Uh1mjr.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarFilled.mjs","../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.utils.ts","../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M16 2a1 1 0 0 1 .993 .883l.007 .117v1h1a3 3 0 0 1 2.995 2.824l.005 .176v12a3 3 0 0 1 -2.824 2.995l-.176 .005h-12a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-12a3 3 0 0 1 2.824 -2.995l.176 -.005h1v-1a1 1 0 0 1 1.993 -.117l.007 .117v1h6v-1a1 1 0 0 1 1 -1zm3 7h-14v9.625c0 .705 .386 1.286 .883 1.366l.117 .009h12c.513 0 .936 -.53 .993 -1.215l.007 -.16v-9.625z\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 12a1 1 0 0 1 .993 .883l.007 .117v3a1 1 0 0 1 -1.993 .117l-.007 -.117v-2a1 1 0 0 1 -.117 -1.993l.117 -.007h1z\", \"key\": \"svg-1\" }]];\nconst IconCalendarFilled = createReactComponent(\"filled\", \"calendar-filled\", \"CalendarFilled\", __iconNode);\n\nexport { __iconNode, IconCalendarFilled as default };\n//# sourceMappingURL=IconCalendarFilled.mjs.map\n","import { DateRangeSelectFieldProOption } from './DateRangeSelectFieldPro.types';\nimport { SelectListOptionProps } from '../../../../remarkable-ui';\nimport { getTimeRangeLabel } from '../editors.timeRange.utils';\nimport { resolveI18nString } from '../../component.utils';\n\nexport const getDateRangeSelectFieldProOptions = (\n dateRangeSelectFieldProOptions: DateRangeSelectFieldProOption[],\n): SelectListOptionProps[] => {\n return dateRangeSelectFieldProOptions.map((option) => {\n return {\n rightLabel: getTimeRangeLabel(option.getRange(), option.dateFormat),\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '../../../../remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils.ts/date.utils';\nimport { getDateRangeSelectFieldProOptions } from './DateRangeSelectFieldPro.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarFilled } from '@tabler/icons-react';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { useEffect, useState } from 'react';\n\ntype DateRangeSelectFieldProProps = {\n description?: string;\n onChange: (newDateRange: TimeRange) => void;\n placeholder?: string;\n selectedValue: TimeRange;\n title?: string;\n};\n\nconst DateRangeSelectFieldPro = (props: DateRangeSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n const { selectedValue, onChange } = props;\n const [internalValue, setInternalValue] = useState<string | undefined>(\n selectedValue?.relativeTimeString,\n );\n\n // When updation the selectedValue in the builder, the defined value value can:\n // 1. exist in the options: relativeTimeString converted into TimeRange and onChange is called with the TimeRange\n // 2. not exist in the options: onChange is called with undefined (resets)\n\n const dateRangeOptions = theme.defaults.dateRangesOptions;\n\n const selectedValueRelativeTimeString = selectedValue?.relativeTimeString;\n\n useEffect(() => {\n if (!selectedValueRelativeTimeString) return;\n\n const matchedOption = dateRangeOptions.find(\n (option) => option.value === selectedValueRelativeTimeString,\n );\n\n setInternalValue(matchedOption ? matchedOption.value : undefined);\n }, [selectedValueRelativeTimeString, dateRangeOptions]);\n\n useEffect(() => {\n if (!selectedValue && !internalValue) return;\n\n const matchedOption = dateRangeOptions.find((option) => option.value === internalValue);\n\n const newChangeValue = matchedOption ? matchedOption.getRange() : undefined;\n\n onChange(newChangeValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalValue, dateRangeOptions]);\n\n useEffect(() => {\n if (!selectedValue) {\n setInternalValue(undefined);\n }\n }, [selectedValue]);\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const { description, placeholder, title } = resolveI18nProps(props);\n\n const options = getDateRangeSelectFieldProOptions(dateRangeOptions);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n startIcon={IconCalendarFilled}\n isClearable\n placeholder={placeholder}\n value={internalValue}\n onChange={(value) => setInternalValue(value || undefined)}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n />\n </EditorCard>\n );\n};\n\nexport default DateRangeSelectFieldPro;\n"],"names":["__iconNode","IconCalendarFilled","createReactComponent","getDateRangeSelectFieldProOptions","dateRangeSelectFieldProOptions","option","getTimeRangeLabel","resolveI18nString","DateRangeSelectFieldPro","props","theme","useTheme","dayjsLocaleReady","useLoadDayjsLocale","selectedValue","onChange","internalValue","setInternalValue","useState","dateRangeOptions","selectedValueRelativeTimeString","useEffect","matchedOption","newChangeValue","description","placeholder","title","resolveI18nProps","options","jsx","EditorCard","SingleSelectField","value","i18n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,iWAAiW,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,oHAAoH,KAAO,QAAO,CAAE,CAAC,GACviBC,IAAqBC,EAAqB,UAAU,mBAAmB,kBAAkBF,CAAU,GCL5FG,IAAoC,CAC/CC,MAEOA,EAA+B,IAAI,CAACC,OAClC;AAAA,EACL,YAAYC,EAAkBD,EAAO,SAAA,GAAYA,EAAO,UAAU;AAAA,EAClE,OAAOA,EAAO;AAAA,EACd,OAAOE,EAAkBF,EAAO,KAAK;AAAA,EAExC,GCMGG,IAA0B,CAACC,MAAwC;AACvE,QAAMC,IAAeC,EAAA,GACf,EAAE,kBAAAC,EAAA,IAAqBC,EAAA,GAEvB,EAAE,eAAAC,GAAe,UAAAC,EAAA,IAAaN,GAC9B,CAACO,GAAeC,CAAgB,IAAIC;AAAA,IACxCJ,KAAA,gBAAAA,EAAe;AAAA,EAAA,GAOXK,IAAmBT,EAAM,SAAS,mBAElCU,IAAkCN,KAAA,gBAAAA,EAAe;AA6BvD,MA3BAO,EAAU,MAAM;AACd,QAAI,CAACD,EAAiC;AAEtC,UAAME,IAAgBH,EAAiB;AAAA,MACrC,CAACd,MAAWA,EAAO,UAAUe;AAAA,IAAA;AAG/B,IAAAH,EAAiBK,IAAgBA,EAAc,QAAQ,MAAS;AAAA,EAClE,GAAG,CAACF,GAAiCD,CAAgB,CAAC,GAEtDE,EAAU,MAAM;AACd,QAAI,CAACP,KAAiB,CAACE,EAAe;AAEtC,UAAMM,IAAgBH,EAAiB,KAAK,CAACd,MAAWA,EAAO,UAAUW,CAAa,GAEhFO,IAAiBD,IAAgBA,EAAc,SAAA,IAAa;AAElE,IAAAP,EAASQ,CAAc;AAAA,EAEzB,GAAG,CAACP,GAAeG,CAAgB,CAAC,GAEpCE,EAAU,MAAM;AACd,IAAKP,KACHG,EAAiB,MAAS;AAAA,EAE9B,GAAG,CAACH,CAAa,CAAC,GAEd,CAACF;AACH,WAAO;AAGT,QAAM,EAAE,aAAAY,GAAa,aAAAC,GAAa,OAAAC,EAAA,IAAUC,EAAiBlB,CAAK,GAE5DmB,IAAUzB,EAAkCgB,CAAgB;AAElE,SACEU,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAJ,GAAc,UAAUF,GAClC,UAAAK,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAW9B;AAAA,MACX,aAAW;AAAA,MACX,aAAAwB;AAAA,MACA,OAAOT;AAAA,MACP,UAAU,CAACgB,MAAUf,EAAiBe,KAAS,MAAS;AAAA,MACxD,SAAAJ;AAAA,MACA,kBAAkBK,EAAK,EAAE,2BAA2B;AAAA,IAAA;AAAA,EAAA,GAExD;AAEJ;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-DvMr1tvf.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarFilled.mjs","../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.utils.ts","../src/remarkable-pro/components/editors/DateRangeSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M16 2a1 1 0 0 1 .993 .883l.007 .117v1h1a3 3 0 0 1 2.995 2.824l.005 .176v12a3 3 0 0 1 -2.824 2.995l-.176 .005h-12a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-12a3 3 0 0 1 2.824 -2.995l.176 -.005h1v-1a1 1 0 0 1 1.993 -.117l.007 .117v1h6v-1a1 1 0 0 1 1 -1zm3 7h-14v9.625c0 .705 .386 1.286 .883 1.366l.117 .009h12c.513 0 .936 -.53 .993 -1.215l.007 -.16v-9.625z\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 12a1 1 0 0 1 .993 .883l.007 .117v3a1 1 0 0 1 -1.993 .117l-.007 -.117v-2a1 1 0 0 1 -.117 -1.993l.117 -.007h1z\", \"key\": \"svg-1\" }]];\nconst IconCalendarFilled = createReactComponent(\"filled\", \"calendar-filled\", \"CalendarFilled\", __iconNode);\n\nexport { __iconNode, IconCalendarFilled as default };\n//# sourceMappingURL=IconCalendarFilled.mjs.map\n","import { DateRangeSelectFieldProOption } from './DateRangeSelectFieldPro.types';\nimport { SelectListOptionProps } from '../../../../remarkable-ui';\nimport { getTimeRangeLabel } from '../editors.timeRange.utils';\nimport { resolveI18nString } from '../../component.utils';\n\nexport const getDateRangeSelectFieldProOptions = (\n dateRangeSelectFieldProOptions: DateRangeSelectFieldProOption[],\n): SelectListOptionProps[] => {\n return dateRangeSelectFieldProOptions.map((option) => {\n return {\n rightLabel: getTimeRangeLabel(option.getRange(), option.dateFormat),\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '../../../../remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils.ts/date.utils';\nimport { getDateRangeSelectFieldProOptions } from './DateRangeSelectFieldPro.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarFilled } from '@tabler/icons-react';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { useEffect, useState } from 'react';\n\ntype DateRangeSelectFieldProProps = {\n description?: string;\n onChange: (newDateRange: TimeRange) => void;\n placeholder?: string;\n selectedValue: TimeRange;\n title?: string;\n};\n\nconst DateRangeSelectFieldPro = (props: DateRangeSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n const { selectedValue, onChange } = props;\n const [internalValue, setInternalValue] = useState<string | undefined>(\n selectedValue?.relativeTimeString,\n );\n\n // When updation the selectedValue in the builder, the defined value value can:\n // 1. exist in the options: relativeTimeString converted into TimeRange and onChange is called with the TimeRange\n // 2. not exist in the options: onChange is called with undefined (resets)\n\n const dateRangeOptions = theme.defaults.dateRangesOptions;\n\n const selectedValueRelativeTimeString = selectedValue?.relativeTimeString;\n\n useEffect(() => {\n if (!selectedValueRelativeTimeString) return;\n\n const matchedOption = dateRangeOptions.find(\n (option) => option.value === selectedValueRelativeTimeString,\n );\n\n setInternalValue(matchedOption ? matchedOption.value : undefined);\n }, [selectedValueRelativeTimeString, dateRangeOptions]);\n\n useEffect(() => {\n if (!selectedValue && !internalValue) return;\n\n const matchedOption = dateRangeOptions.find((option) => option.value === internalValue);\n\n const newChangeValue = matchedOption ? matchedOption.getRange() : undefined;\n\n onChange(newChangeValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalValue, dateRangeOptions]);\n\n useEffect(() => {\n if (!selectedValue) {\n setInternalValue(undefined);\n }\n }, [selectedValue]);\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const { description, placeholder, title } = resolveI18nProps(props);\n\n const options = getDateRangeSelectFieldProOptions(dateRangeOptions);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n startIcon={IconCalendarFilled}\n isClearable\n placeholder={placeholder}\n value={internalValue}\n onChange={(value) => setInternalValue(value || undefined)}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n />\n </EditorCard>\n );\n};\n\nexport default DateRangeSelectFieldPro;\n"],"names":["__iconNode","IconCalendarFilled","createReactComponent","getDateRangeSelectFieldProOptions","dateRangeSelectFieldProOptions","option","getTimeRangeLabel","resolveI18nString","DateRangeSelectFieldPro","props","theme","useTheme","dayjsLocaleReady","useLoadDayjsLocale","selectedValue","onChange","internalValue","setInternalValue","useState","dateRangeOptions","selectedValueRelativeTimeString","useEffect","matchedOption","newChangeValue","description","placeholder","title","resolveI18nProps","options","jsx","EditorCard","SingleSelectField","value","i18n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,iWAAiW,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,oHAAoH,KAAO,QAAO,CAAE,CAAC,GACviBC,IAAqBC,EAAqB,UAAU,mBAAmB,kBAAkBF,CAAU,GCL5FG,IAAoC,CAC/CC,MAEOA,EAA+B,IAAI,CAACC,OAClC;AAAA,EACL,YAAYC,EAAkBD,EAAO,SAAA,GAAYA,EAAO,UAAU;AAAA,EAClE,OAAOA,EAAO;AAAA,EACd,OAAOE,EAAkBF,EAAO,KAAK;AAAA,EAExC,GCMGG,IAA0B,CAACC,MAAwC;AACvE,QAAMC,IAAeC,EAAA,GACf,EAAE,kBAAAC,EAAA,IAAqBC,EAAA,GAEvB,EAAE,eAAAC,GAAe,UAAAC,EAAA,IAAaN,GAC9B,CAACO,GAAeC,CAAgB,IAAIC;AAAA,IACxCJ,KAAA,gBAAAA,EAAe;AAAA,EAAA,GAOXK,IAAmBT,EAAM,SAAS,mBAElCU,IAAkCN,KAAA,gBAAAA,EAAe;AA6BvD,MA3BAO,EAAU,MAAM;AACd,QAAI,CAACD,EAAiC;AAEtC,UAAME,IAAgBH,EAAiB;AAAA,MACrC,CAACd,MAAWA,EAAO,UAAUe;AAAA,IAAA;AAG/B,IAAAH,EAAiBK,IAAgBA,EAAc,QAAQ,MAAS;AAAA,EAClE,GAAG,CAACF,GAAiCD,CAAgB,CAAC,GAEtDE,EAAU,MAAM;AACd,QAAI,CAACP,KAAiB,CAACE,EAAe;AAEtC,UAAMM,IAAgBH,EAAiB,KAAK,CAACd,MAAWA,EAAO,UAAUW,CAAa,GAEhFO,IAAiBD,IAAgBA,EAAc,SAAA,IAAa;AAElE,IAAAP,EAASQ,CAAc;AAAA,EAEzB,GAAG,CAACP,GAAeG,CAAgB,CAAC,GAEpCE,EAAU,MAAM;AACd,IAAKP,KACHG,EAAiB,MAAS;AAAA,EAE9B,GAAG,CAACH,CAAa,CAAC,GAEd,CAACF;AACH,WAAO;AAGT,QAAM,EAAE,aAAAY,GAAa,aAAAC,GAAa,OAAAC,EAAA,IAAUC,EAAiBlB,CAAK,GAE5DmB,IAAUzB,EAAkCgB,CAAgB;AAElE,SACEU,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAJ,GAAc,UAAUF,GAClC,UAAAK,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAW9B;AAAA,MACX,aAAW;AAAA,MACX,aAAAwB;AAAA,MACA,OAAOT;AAAA,MACP,UAAU,CAACgB,MAAUf,EAAiBe,KAAS,MAAS;AAAA,MACxD,SAAAJ;AAAA,MACA,kBAAkBK,EAAK,EAAE,2BAA2B;AAAA,IAAA;AAAA,EAAA,GAExD;AAEJ;;;;","x_google_ignoreList":[0]}
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@ import { C as xs, S as bs } from "./ChartCard-CMgDz_bs.js";
2
2
  import { j as s, af as w, ag as u, ah as _, ai as I, aj as S, ak as N, al as T, am as P } from "./component.constants-CFaxyNCw.js";
3
3
  import { an as _s, av as fs, ap as Cs, ao as gs, a0 as ys, au as js, aw as vs, ar as ws, as as Is, aq as Ss, a6 as Ns, a7 as Ts, ay as Ps, at as $s, T as ks, d as As, ax as Bs, c as Ls, z as Ms, aL as Ds, ac as Fs, W as Rs, b as zs, aK as Os, a9 as Ws, aM as Es, Y as Gs, Z as Ks, a5 as qs, X as Hs, F as Vs, C as Xs, a8 as Us, U as Ys, i as Js, a3 as Zs, A as Qs, w as sa, a as aa, ae as ea, r as ta, p as oa, h as na, s as ra, g as ia, e as ca, aN as la, B as ua, f as ma, aG as ha, ab as da, a1 as xa, aF as ba, aH as pa, aE as _a, aB as fa, a4 as Ca, aC as ga, aI as ya, aD as ja, az as va, aA as wa, aa as Ia, aJ as Sa, t as Na, x as Ta, v as Pa, l as $a, k as ka, y as Aa, n as Ba, u as La, q as Ma } from "./component.constants-CFaxyNCw.js";
4
4
  import { useRef as $, useState as k, useEffect as A } from "react";
5
- import { E as Fa, S as Ra } from "./EditorCard-Qax7pQpf.js";
6
- import { B as g } from "./index-DQyhe1sV.js";
7
- import { b as Oa, i as Wa } from "./index-DQyhe1sV.js";
8
- import { S as Ga } from "./SingleSelectField-BH5Dhjd8.js";
5
+ import { E as Fa, S as Ra } from "./EditorCard-CJoUz4uM.js";
6
+ import { B as g } from "./index-DvEWwlqq.js";
7
+ import { b as Oa, i as Wa } from "./index-DvEWwlqq.js";
8
+ import { S as Ga } from "./SingleSelectField-CJNiLfee.js";
9
9
  import { K as qa } from "./KpiChart-C6zepuhF.js";
10
10
  import { P as Va } from "./PivotTable-SNPquHl0.js";
11
11
  import { r as Ua, s as Ya } from "./charts.utils-HfNL9dVl.js";
@@ -15,8 +15,8 @@ import { a as ee, g as te } from "./pies.utils-JpKM3rVw.js";
15
15
  import { i as ne } from "./index-DW-LmiPi.js";
16
16
  import { i as ie } from "./index-BAfVF5iP.js";
17
17
  import { i as le } from "./index-CxxeUDMD.js";
18
- import { i as me } from "./index-BXRc9wyf.js";
19
- import { i as de } from "./index-C6Uh1mjr.js";
18
+ import { i as me } from "./index-C4BiW71l.js";
19
+ import { i as de } from "./index-DvMr1tvf.js";
20
20
  import { C as be } from "./ComparisonPeriod.type.emb-C1o3iM9L.js";
21
21
  import { i as _e, s as fe } from "./color.utils-CVyp-fGP.js";
22
22
  const B = "_container_436fl_1", L = "_column_436fl_10", M = "_box_436fl_20", D = "_short_436fl_26", F = "_tall_436fl_34", e = {
@@ -1 +1 @@
1
- {"version":3,"file":"object.utils-D_Zzon-H.js","sources":["../src/remarkable-pro/theme/styles/styles.utils.ts","../src/remarkable-pro/utils.ts/object.utils.ts"],"sourcesContent":["const generateCssVariables = (variables: Record<string, string>) => {\n let textContent = '';\n Object.keys(variables).forEach((key) => {\n const value = variables[key];\n textContent += `${key}: ${value};\\n`;\n });\n return textContent;\n};\n\n// TODO: check the possibility of injecting via CSS (future)\nexport const injectCssVariables = (styles: Record<string, string>) => {\n const css = `:root {\\n${generateCssVariables(styles)}}`;\n const styleId = 'remarkable-ui-embeddable-style';\n let styleEl = document.getElementById(styleId) as HTMLStyleElement | null;\n\n if (styleEl) {\n // Overwrite the old vars\n styleEl.textContent = css;\n } else {\n styleEl = document.createElement('style');\n styleEl.id = styleId;\n styleEl.textContent = css;\n document.head.appendChild(styleEl);\n }\n\n return () => styleEl?.remove();\n};\n\nconst colorsMap = new Map<string, Map<string, string>>();\nconst colorsInUse = new Map<string, Set<string>>();\n\n/* \nWe save the colors to session storage so that they are persistent across refreshes. \nThis is important, for example, if the user is looking at multiple tabs, or if the user refreshes the page.\n*/\nconst STORAGE_KEY = 'embeddable';\n\nconst saveColorsMap = () => {\n const obj: Record<string, Record<string, string>> = {};\n for (const [cat, m] of colorsMap) {\n obj[cat] = Object.fromEntries(m);\n }\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(obj));\n};\n\nconst loadColorMap = () => {\n if (typeof window === 'undefined' || typeof document === 'undefined') return;\n\n const data = sessionStorage.getItem(STORAGE_KEY);\n if (!data) return;\n const obj: Record<string, Record<string, string>> = JSON.parse(data);\n for (const cat in obj) {\n const m = new Map(Object.entries(obj[cat] ?? {}));\n colorsMap.set(cat, m);\n colorsInUse.set(cat, new Set(m.values()));\n }\n};\n\nloadColorMap();\n\nexport const getColor = (key: string, value: string, palette: string[], idx: number): string => {\n if (typeof window === 'undefined' || typeof document === 'undefined') return '';\n\n // Initialize structures if needed\n if (!colorsMap.has(key)) {\n colorsMap.set(key, new Map());\n colorsInUse.set(key, new Set());\n }\n\n const catMap = colorsMap.get(key)!;\n\n // Return existing color if already assigned\n if (catMap.has(value)) return catMap.get(value)!;\n\n // Find first colorsInUse color, fallback to indexed one\n const color = palette[idx % palette.length];\n\n if (typeof color !== 'string') {\n throw new Error('No valid color found in palette');\n }\n\n // Save mapping and mark as colorsInUse\n catMap.set(value, color);\n saveColorsMap();\n\n return color;\n};\n","export const getObjectStableKey = (obj: unknown): string => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const stableStringify = (o: any): string => {\n if (o && typeof o === 'object' && !Array.isArray(o)) {\n return (\n '{' +\n Object.keys(o)\n .sort()\n .map((k) => `\"${k}\":${stableStringify(o[k])}`)\n .join(',') +\n '}'\n );\n } else if (Array.isArray(o)) {\n return '[' + o.map(stableStringify).join(',') + ']';\n }\n return JSON.stringify(o);\n };\n\n const json = stableStringify(obj);\n\n // FNV-1a 32-bit hash\n let hash = 0x811c9dc5;\n for (let i = 0; i < json.length; i++) {\n hash ^= json.charCodeAt(i);\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n }\n\n return (hash >>> 0).toString(16);\n};\n"],"names":["colorsMap","colorsInUse","STORAGE_KEY","saveColorsMap","obj","cat","m","loadColorMap","data","getColor","key","value","palette","idx","catMap","color","getObjectStableKey","stableStringify","o","k","json","hash","i"],"mappings":"AA4BA,MAAMA,wBAAgB,IAAA,GAChBC,wBAAkB,IAAA,GAMlBC,IAAc,cAEdC,IAAgB,MAAM;AAC1B,QAAMC,IAA8C,CAAA;AACpD,aAAW,CAACC,GAAKC,CAAC,KAAKN;AACrB,IAAAI,EAAIC,CAAG,IAAI,OAAO,YAAYC,CAAC;AAEjC,iBAAe,QAAQJ,GAAa,KAAK,UAAUE,CAAG,CAAC;AACzD,GAEMG,IAAe,MAAM;AACzB,MAAI,OAAO,SAAW,OAAe,OAAO,WAAa,IAAa;AAEtE,QAAMC,IAAO,eAAe,QAAQN,CAAW;AAC/C,MAAI,CAACM,EAAM;AACX,QAAMJ,IAA8C,KAAK,MAAMI,CAAI;AACnE,aAAWH,KAAOD,GAAK;AACrB,UAAME,IAAI,IAAI,IAAI,OAAO,QAAQF,EAAIC,CAAG,KAAK,CAAA,CAAE,CAAC;AAChD,IAAAL,EAAU,IAAIK,GAAKC,CAAC,GACpBL,EAAY,IAAII,GAAK,IAAI,IAAIC,EAAE,OAAA,CAAQ,CAAC;AAAA,EAC1C;AACF;AAEAC,EAAA;AAEO,MAAME,IAAW,CAACC,GAAaC,GAAeC,GAAmBC,MAAwB;AAC9F,MAAI,OAAO,SAAW,OAAe,OAAO,WAAa,IAAa,QAAO;AAG7E,EAAKb,EAAU,IAAIU,CAAG,MACpBV,EAAU,IAAIU,GAAK,oBAAI,IAAA,CAAK,GAC5BT,EAAY,IAAIS,GAAK,oBAAI,IAAA,CAAK;AAGhC,QAAMI,IAASd,EAAU,IAAIU,CAAG;AAGhC,MAAII,EAAO,IAAIH,CAAK,EAAG,QAAOG,EAAO,IAAIH,CAAK;AAG9C,QAAMI,IAAQH,EAAQC,IAAMD,EAAQ,MAAM;AAE1C,MAAI,OAAOG,KAAU;AACnB,UAAM,IAAI,MAAM,iCAAiC;AAInD,SAAAD,EAAO,IAAIH,GAAOI,CAAK,GACvBZ,EAAA,GAEOY;AACT,GCtFaC,IAAqB,CAACZ,MAAyB;AAE1D,QAAMa,IAAkB,CAACC,MACnBA,KAAK,OAAOA,KAAM,YAAY,CAAC,MAAM,QAAQA,CAAC,IAE9C,MACA,OAAO,KAAKA,CAAC,EACV,OACA,IAAI,CAACC,MAAM,IAAIA,CAAC,KAAKF,EAAgBC,EAAEC,CAAC,CAAC,CAAC,EAAE,EAC5C,KAAK,GAAG,IACX,MAEO,MAAM,QAAQD,CAAC,IACjB,MAAMA,EAAE,IAAID,CAAe,EAAE,KAAK,GAAG,IAAI,MAE3C,KAAK,UAAUC,CAAC,GAGnBE,IAAOH,EAAgBb,CAAG;AAGhC,MAAIiB,IAAO;AACX,WAASC,IAAI,GAAGA,IAAIF,EAAK,QAAQE;AAC/B,IAAAD,KAAQD,EAAK,WAAWE,CAAC,GACzBD,MAASA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ;AAG3E,UAAQA,MAAS,GAAG,SAAS,EAAE;AACjC;"}
1
+ {"version":3,"file":"object.utils-D_Zzon-H.js","sources":["../src/remarkable-pro/theme/styles/styles.utils.ts","../src/remarkable-pro/utils.ts/object.utils.ts"],"sourcesContent":["const generateCssVariables = (variables: Record<string, string>) => {\n let textContent = '';\n Object.keys(variables).forEach((key) => {\n const value = variables[key];\n textContent += `${key}: ${value};\\n`;\n });\n return textContent;\n};\n\n// TODO: check the possibility of injecting via CSS (future)\nexport const injectCssVariables = (styles: Record<string, string>) => {\n const css = `:root, :host {\\n${generateCssVariables(styles)}}`;\n const styleId = 'remarkable-ui-embeddable-style';\n let styleEl = document.getElementById(styleId) as HTMLStyleElement | null;\n\n if (styleEl) {\n // Overwrite the old vars\n styleEl.textContent = css;\n } else {\n styleEl = document.createElement('style');\n styleEl.id = styleId;\n styleEl.textContent = css;\n document.head.appendChild(styleEl);\n }\n\n return () => styleEl?.remove();\n};\n\nconst colorsMap = new Map<string, Map<string, string>>();\nconst colorsInUse = new Map<string, Set<string>>();\n\n/* \nWe save the colors to session storage so that they are persistent across refreshes. \nThis is important, for example, if the user is looking at multiple tabs, or if the user refreshes the page.\n*/\nconst STORAGE_KEY = 'embeddable';\n\nconst saveColorsMap = () => {\n const obj: Record<string, Record<string, string>> = {};\n for (const [cat, m] of colorsMap) {\n obj[cat] = Object.fromEntries(m);\n }\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(obj));\n};\n\nconst loadColorMap = () => {\n if (typeof window === 'undefined' || typeof document === 'undefined') return;\n\n const data = sessionStorage.getItem(STORAGE_KEY);\n if (!data) return;\n const obj: Record<string, Record<string, string>> = JSON.parse(data);\n for (const cat in obj) {\n const m = new Map(Object.entries(obj[cat] ?? {}));\n colorsMap.set(cat, m);\n colorsInUse.set(cat, new Set(m.values()));\n }\n};\n\nloadColorMap();\n\nexport const getColor = (key: string, value: string, palette: string[], idx: number): string => {\n if (typeof window === 'undefined' || typeof document === 'undefined') return '';\n\n // Initialize structures if needed\n if (!colorsMap.has(key)) {\n colorsMap.set(key, new Map());\n colorsInUse.set(key, new Set());\n }\n\n const catMap = colorsMap.get(key)!;\n\n // Return existing color if already assigned\n if (catMap.has(value)) return catMap.get(value)!;\n\n // Find first colorsInUse color, fallback to indexed one\n const color = palette[idx % palette.length];\n\n if (typeof color !== 'string') {\n throw new Error('No valid color found in palette');\n }\n\n // Save mapping and mark as colorsInUse\n catMap.set(value, color);\n saveColorsMap();\n\n return color;\n};\n","export const getObjectStableKey = (obj: unknown): string => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const stableStringify = (o: any): string => {\n if (o && typeof o === 'object' && !Array.isArray(o)) {\n return (\n '{' +\n Object.keys(o)\n .sort()\n .map((k) => `\"${k}\":${stableStringify(o[k])}`)\n .join(',') +\n '}'\n );\n } else if (Array.isArray(o)) {\n return '[' + o.map(stableStringify).join(',') + ']';\n }\n return JSON.stringify(o);\n };\n\n const json = stableStringify(obj);\n\n // FNV-1a 32-bit hash\n let hash = 0x811c9dc5;\n for (let i = 0; i < json.length; i++) {\n hash ^= json.charCodeAt(i);\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n }\n\n return (hash >>> 0).toString(16);\n};\n"],"names":["colorsMap","colorsInUse","STORAGE_KEY","saveColorsMap","obj","cat","m","loadColorMap","data","getColor","key","value","palette","idx","catMap","color","getObjectStableKey","stableStringify","o","k","json","hash","i"],"mappings":"AA4BA,MAAMA,wBAAgB,IAAA,GAChBC,wBAAkB,IAAA,GAMlBC,IAAc,cAEdC,IAAgB,MAAM;AAC1B,QAAMC,IAA8C,CAAA;AACpD,aAAW,CAACC,GAAKC,CAAC,KAAKN;AACrB,IAAAI,EAAIC,CAAG,IAAI,OAAO,YAAYC,CAAC;AAEjC,iBAAe,QAAQJ,GAAa,KAAK,UAAUE,CAAG,CAAC;AACzD,GAEMG,IAAe,MAAM;AACzB,MAAI,OAAO,SAAW,OAAe,OAAO,WAAa,IAAa;AAEtE,QAAMC,IAAO,eAAe,QAAQN,CAAW;AAC/C,MAAI,CAACM,EAAM;AACX,QAAMJ,IAA8C,KAAK,MAAMI,CAAI;AACnE,aAAWH,KAAOD,GAAK;AACrB,UAAME,IAAI,IAAI,IAAI,OAAO,QAAQF,EAAIC,CAAG,KAAK,CAAA,CAAE,CAAC;AAChD,IAAAL,EAAU,IAAIK,GAAKC,CAAC,GACpBL,EAAY,IAAII,GAAK,IAAI,IAAIC,EAAE,OAAA,CAAQ,CAAC;AAAA,EAC1C;AACF;AAEAC,EAAA;AAEO,MAAME,IAAW,CAACC,GAAaC,GAAeC,GAAmBC,MAAwB;AAC9F,MAAI,OAAO,SAAW,OAAe,OAAO,WAAa,IAAa,QAAO;AAG7E,EAAKb,EAAU,IAAIU,CAAG,MACpBV,EAAU,IAAIU,GAAK,oBAAI,IAAA,CAAK,GAC5BT,EAAY,IAAIS,GAAK,oBAAI,IAAA,CAAK;AAGhC,QAAMI,IAASd,EAAU,IAAIU,CAAG;AAGhC,MAAII,EAAO,IAAIH,CAAK,EAAG,QAAOG,EAAO,IAAIH,CAAK;AAG9C,QAAMI,IAAQH,EAAQC,IAAMD,EAAQ,MAAM;AAE1C,MAAI,OAAOG,KAAU;AACnB,UAAM,IAAI,MAAM,iCAAiC;AAInD,SAAAD,EAAO,IAAIH,GAAOI,CAAK,GACvBZ,EAAA,GAEOY;AACT,GCtFaC,IAAqB,CAACZ,MAAyB;AAE1D,QAAMa,IAAkB,CAACC,MACnBA,KAAK,OAAOA,KAAM,YAAY,CAAC,MAAM,QAAQA,CAAC,IAE9C,MACA,OAAO,KAAKA,CAAC,EACV,OACA,IAAI,CAACC,MAAM,IAAIA,CAAC,KAAKF,EAAgBC,EAAEC,CAAC,CAAC,CAAC,EAAE,EAC5C,KAAK,GAAG,IACX,MAEO,MAAM,QAAQD,CAAC,IACjB,MAAMA,EAAE,IAAID,CAAe,EAAE,KAAK,GAAG,IAAI,MAE3C,KAAK,UAAUC,CAAC,GAGnBE,IAAOH,EAAgBb,CAAG;AAGhC,MAAIiB,IAAO;AACX,WAASC,IAAI,GAAGA,IAAIF,EAAK,QAAQE;AAC/B,IAAAD,KAAQD,EAAK,WAAWE,CAAC,GACzBD,MAASA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ;AAG3E,UAAQA,MAAS,GAAG,SAAS,EAAE;AACjC;"}
@@ -584,4 +584,4 @@
584
584
  --em-box-shadow-default-position-y: 1px;
585
585
  --em-box-shadow-default-spread: 0px;
586
586
  }
587
- ._card_ekfxn_1{position:relative;display:flex;flex-direction:column;gap:var(--em-card-gap-default, 2rem);padding:var(--em-card-padding-default, 2rem);border-radius:var(--em-card-border-radius-default, 2rem);background:var(--em-background-color-default, #f7f7f8);box-sizing:border-box}._content_ekfxn_12{display:flex;flex-direction:column;flex-grow:1;overflow:auto}._header_ekfxn_19{width:100%;display:flex;gap:var(--em-card-title-padding-default, 1rem);justify-content:space-between;position:relative;align-items:center}._titles_ekfxn_28{display:flex;flex-direction:column;gap:var(--em-card-title-padding-default, 1rem)}._title_ekfxn_28{color:var(--em-card-title-color-default, #212129);font-size:var(--em-card-title-font-size, 1.25rem);font-style:normal;font-weight:var(--em-card-title-font-weight, 700);line-height:var(--em-card-title-font-line-height, 1.1875rem)}._subtitle_ekfxn_42{color:var(--em-foreground-color-muted, #5c5c66);font-family:var(--em-card-subtitle-font-font-family, Inter);font-size:var(--em-card-subtitle-font-size, .875rem);font-style:normal;font-weight:var(--em-card-subtitle-font-weight, 400);line-height:var(--em-card-subtitle-font-line-height, .875rem)}._typography_1vbmb_1{font-family:var(--em-font-default, "Inter", sans-serif);margin:unset}._info_11vdf_1{display:flex;flex-direction:column;align-items:center;margin:auto;gap:var(--em-card-info-padding-default, .75rem)}._title_11vdf_9{color:var(--em-card-empty-title-color-default, #212129);text-align:center;font-size:var(--em-card-empty-title-font-size, .875rem);font-style:normal;font-weight:var(--em-card-empty-title-font-weight, 500);line-height:var(--em-card-empty-title-font-line-height, 1rem)}._message_11vdf_18{color:var(--em-card-empty-subtitle-color-default, #5c5c66);text-align:center;font-size:var(--em-card-empty-subtitle-font-size, .875rem);font-style:normal;font-weight:var(--em-card-empty-subtitle-font-weight, 400);line-height:var(--em-card-empty-subtitle-font-line-height, 1rem)}._errorMessage_1cos3_1{color:var(--em-text-input-label-color-error, #bc1010);font-family:var(--em-text-input-label-font-font-family, Inter);font-size:var(--em-text-input-label-font-size, .75rem);font-weight:var(--em-text-input-label-font-weight-default, 500)}._iconButton_134uf_1{width:var(--em-icon-btn-size-width, 1.25rem);height:var(--em-icon-btn-size-height, 2rem);padding:var(--em-icon-btn-padding-top, .5rem) var(--em-icon-btn-padding-right, .125rem) var(--em-icon-btn-padding-bottom, .5rem) var(--em-icon-btn-padding-left, .125rem)}._icon_134uf_1{width:var(--em-icon-btn-icon-size-width, 1rem);height:var(--em-icon-btn-icon-size-height, 1rem)}._baseButton_zbrmc_1{border:none;cursor:pointer;outline:none;display:inline-flex;align-items:center;justify-content:center}._baseButton_zbrmc_1:disabled{cursor:unset;pointer-events:none}._primary_zbrmc_15{background:var(--em-primary-btn-background-color-default, #5c5c66);color:var(--em-primary-btn-label-color-default, #fff);border-radius:var(--em-primary-btn-border-radius-default, 624.9375rem)}._primary_zbrmc_15:hover,._primary_zbrmc_15:focus{background:var(--em-primary-btn-background-color-hover, #212129)}._primary_zbrmc_15:active{background:var(--em-primary-btn-background-color-pressed, #000)}._primary_zbrmc_15:disabled{background:var(--em-primary-btn-background-color-disabled, #ededf1);color:var(--em-primary-btn-label-color-disabled, #b8b8bd)}._secondary_zbrmc_34{background:var(--em-secondary-btn-background-color-default, #ededf1);color:var(--em-secondary-btn-label-color-default, #212129);border-radius:var(--em-primary-btn-border-radius-default, 624.9375rem)}._secondary_zbrmc_34:hover,._secondary_zbrmc_34:focus{background:var(--em-secondary-btn-background-color-hover, #e4e4ea)}._secondary_zbrmc_34:active{background:var(--em-secondary-btn-background-color-pressed, #d2d2d5)}._secondary_zbrmc_34:disabled{background:var(--em-secondary-btn-background-color-disabled, #ededf1);color:var(--em-secondary-btn-label-color-disabled, #b8b8bd)}._icon_zbrmc_55{width:var(--em-primary-btn-icon-size-width, 1rem);height:var(--em-primary-btn-icon-size-height, 1rem)}._listItem_snhc5_1{box-sizing:border-box;height:var(--em-select-list-item-size-height, 2rem);max-height:var(--em-select-list-item-size-height, 2rem);padding:var(--em-select-list-item-padding-default, .5rem);border-radius:var(--em-select-list-item-border-radius-default, .5rem);background:var(--em-select-list-item-background-color-default, #fff);color:var(--em-select-list-item-label-color-default, #212129);font-style:normal;display:flex;outline:none;cursor:pointer;align-items:center;justify-content:space-between;width:100%;overflow:hidden}._listItem_snhc5_1 ._leftContent_snhc5_20{display:flex;flex:0 0 auto;white-space:nowrap;color:var(--em-select-list-item-left-label-color-default, #212129);align-items:center}._listItem_snhc5_1 ._rightContent_snhc5_28{flex:1 1 auto;min-width:0;color:var(--em-select-list-item-right-label-color-default, #5c5c66)}._listItem_snhc5_1 ._leftContent_snhc5_20 p,._listItem_snhc5_1 ._rightContent_snhc5_28 p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._listItem_snhc5_1 ._rightContent_snhc5_28 p{white-space:nowrap;text-overflow:ellipsis;text-align:right}._listItem_snhc5_1:hover,._listItem_snhc5_1:focus{background:var(--em-select-list-item-background-color-hover, #f7f7f8)}._listItem_snhc5_1:active{background:var(--em-select-list-item-background-color-pressed, #ededf1)}._listItem_snhc5_1._disabled_snhc5_56{color:var(--em-select-list-item-label-color-disabled, #b8b8bd);pointer-events:none;-webkit-user-select:none;user-select:none}._listItem_snhc5_1 ._leftContent_snhc5_20 p{padding:0 var(--em-select-list-item-label-padding-default, .5rem);font-size:var(--em-select-list-item-left-label-font-size, .75rem);font-weight:var(--em-select-list-item-left-label-font-weight, 500);line-height:var(--em-select-list-item-left-label-font-line-height, .875rem)}._listItem_snhc5_1 ._rightContent_snhc5_28 p{color:var(--em-select-list-item-right-label-color-default, #5c5c66);padding:0 var(--em-select-list-item-label-padding-default, .5rem);font-size:var(--em-select-list-item-right-label-font-size, .75rem);font-weight:var(--em-select-list-item-right-label-font-weight, 400);line-height:var(--em-select-list-item-right-label-font-line-height, .875rem)}._listItem_snhc5_1._selected_snhc5_79{background:var(--em-select-list-item-background-color-selected, #212129);color:var(--em-select-list-item-left-label-color-selected, #fff)}._listItem_snhc5_1._selected_snhc5_79 span{color:var(--em-select-list-item-left-label-color-selected, #fff)}._listItem_snhc5_1._selected_snhc5_79 ._leftContent_snhc5_20 p,._listItem_snhc5_1._selected_snhc5_79 ._rightContent_snhc5_28 p{color:inherit}._listItem_snhc5_1 svg,._listItem_snhc5_1 img{width:var(--em-select-list-item-icon-size-width, 1rem);height:var(--em-select-list-item-icon-size-height, 1rem);color:inherit}._button_10cpl_1{display:flex;align-items:center;justify-content:space-between;padding:var(--em-select-menu-padding-default, .75rem);border-radius:var(--em-select-menu-border-radius-default, .75rem);border:var(--em-select-menu-border-width-default, 1px) solid var(--em-select-menu-border-color-default, #d2d2d5);background:var(--em-select-menu-background-color-default, #fff);cursor:pointer;color:var(--em-select-menu-label-color-default, #212129);height:var(--em-select-menu-size-height-default, 2rem);max-height:var(--em-select-menu-size-height-default, 2rem);min-width:var(--em-select-menu-size-width-min-width, 10rem);width:100%;outline:none}._button_10cpl_1 ._rightContent_10cpl_19{flex-shrink:0}._button_10cpl_1 ._leftContent_10cpl_23{display:flex;flex-grow:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._button_10cpl_1 ._leftContent_10cpl_23 span{text-align:left;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--em-select-menu-label-padding-default, .5rem);font-size:var(--em-select-menu-label-font-size, .75rem);font-style:normal;font-weight:var(--em-select-menu-label-font-weight, 500);line-height:var(--em-select-menu-label-font-line-height, .875rem)}._button_10cpl_1:hover,._button_10cpl_1:focus{background:var(--em-select-menu-background-color-hover, #f7f7f8)}._button_10cpl_1:active{background:var(--em-select-menu-background-color-pressed, #ededf1)}._button_10cpl_1._hasValue_10cpl_55{background:var(--em-select-menu-background-color-selected, #212129);color:var(--em-select-menu-label-color-selected, #fff)}._button_10cpl_1:disabled{background:var(--em-select-menu-background-color-disabled, #fff);color:var(--em-select-menu-label-color-disabled, #b8b8bd);cursor:unset}._button_10cpl_1 span svg{width:var(--em-select-menu-icon-size-width, 1rem);height:var(--em-select-menu-icon-size-height, 1rem)}@keyframes _spin_10cpl_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._loading_10cpl_80{animation:_spin_10cpl_1 1s linear infinite}._buttonError_10cpl_84{border:var(--em-text-input-border-width-error, 2px) solid var(--em-status-negative-foreground, #bc1010)}._list_18km3_1{display:flex;flex-direction:column;outline:none;box-sizing:border-box;max-width:max(var(--radix-dropdown-menu-trigger-width),var(--em-select-menu-size-width-max-width, 25rem));min-width:var(--radix-dropdown-menu-trigger-width);padding:var(--em-select-menu-list-padding-default, .5rem);max-height:var(--em-select-menu-list-size-max-height, 20rem);gap:var(--em-select-menu-list-gap-default, .5rem);border-radius:var(--em-select-menu-list-border-radius-default, .75rem);background:var(--em-background-color-neutral, #fff);box-shadow:var(--em-box-shadow-default-position-x, 0) var(--em-box-shadow-default-position-y, 1px) var(--em-box-shadow-default-blur, 40px) var(--em-box-shadow-default-spread, 0) var(--em-box-shadow-default-color, rgba(33, 33, 41, .25))}._input_ties8_1{display:flex;align-items:center;box-sizing:border-box;height:var(--em-text-input-size-height, 2rem);width:100%;padding:var(--em-text-input-padding-default, .5rem);border-radius:var(--em-text-input-border-radius-default, .5rem);border:var(--em-text-input-border-width-default, 1px) solid var(--em-text-input-border-color-default, #d2d2d5);background:var(--em-text-input-background-color-default, #f7f7f8);color:var(--em-text-input-label-color-filled, #212129)}._input_ties8_1:hover{background:var(--em-text-input-background-color-hover, #e4e4ea);color:var(--em-text-input-label-color-hover, #5c5c66)}._input_ties8_1:focus-within{background:var(--em-text-input-background-color-hover, #e4e4ea);color:var(--em-text-input-label-color-focused, #212129)}._input_ties8_1 svg{width:var(--em-select-menu-icon-size-width, 1rem);height:var(--em-select-menu-icon-size-height, 1rem)}._input_ties8_1 input{border:none;background:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none;color:inherit;width:100%;padding:0 var(--em-text-input-padding-default, .5rem);font-size:var(--em-text-input-label-font-size, .75rem);font-style:normal;font-weight:var(--em-text-input-label-font-weight, 500);line-height:var(--em-text-input-label-font-line-height, .875rem)}._input_ties8_1 input:focus{color:var(--em-text-input-label-color-focused, #212129)}._input_ties8_1:has(input:disabled){color:var(--em-text-input-label-color-disabled, #b8b8bd);border:var(--em-text-input-border-width-default, 1px) solid var(--em-text-input-border-color-default, #d2d2d5);background:var(--em-text-input-background-color-disabled, #fff)}._input_ties8_1 input::placeholder{color:var(--em-text-input-label-color-default, #5c5c66)}._input_ties8_1 input:disabled::placeholder{color:var(--em-text-input-label-color-disabled, #b8b8bd)}._input_ties8_1 div{display:flex}._clearIcon_ties8_71{cursor:pointer}._inputContainer_ties8_75{display:flex;flex-direction:column;gap:var(--em-form-padding-small, .5rem)}._requiredText_ties8_81{padding-bottom:var(--em-form-padding-small, .5rem);display:flex;align-items:center;justify-content:flex-end;font-size:var(--em-form-form-font-font-size-required, .75rem);font-weight:var(--em-form-form-font-font-weight, 400);line-height:var(--em-form-form-font-line-height, 1rem);color:var(--em-form-section-font-font-color, #212129)}._inputError_ties8_92{border:var(--em-text-input-border-width-error, 2px) solid var(--em-text-input-border-color-error, #bc1010)}._textField_aiklj_1{display:flex;flex-direction:column;gap:var(--em-form-padding-small, .5rem)}._textField_aiklj_1 ._characterCount_aiklj_5{display:flex;justify-content:flex-start;font-family:var(--em-form-section-font-font-family, Inter);font-size:var(--em-form-form-font-font-size-required, .75rem);font-weight:var(--em-form-form-font-font-weight, 400);line-height:var(--em-form-form-font-line-height, 1rem);color:var(--em-form-section-font-font-color, #212129)}._chartContainer_18rs7_1{flex-grow:1;min-height:0;position:relative}._tableContainer_ih7qn_1{background:var(--em-table-background-color-default-header, #fff);display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;border:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);box-sizing:border-box;border-radius:var(--em-table-border-radius-default, .75rem)}._scrollX_ih7qn_14{overflow-x:auto;overflow-y:hidden;flex:1}._table_ih7qn_1{width:100%;border-collapse:collapse}._table_ih7qn_1 th,._table_ih7qn_1 td{border:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);box-sizing:border-box;cursor:pointer;height:var(--em-table-size-cell-height_R, 2.5rem);max-height:var(--em-table-size-cell-height_R, 2.5rem);min-width:var(--em-table-size-min-width_R, 3rem);padding:var(--em-table-padding-medium_R, .5rem)}._table_ih7qn_1 th:hover,._table_ih7qn_1 th:focus-within{background:var(--em-table-background-color-hover-header_R, #f7f7f8)}._table_ih7qn_1 tr:has(td:hover){background:var(--em-table-background-color-hover-row_R, #fafafa)}._table_ih7qn_1 th:first-child,._table_ih7qn_1 td:first-child{border-left:none}._table_ih7qn_1 th:last-child,._table_ih7qn_1 td:last-child{border-right:none}._table_ih7qn_1 tr:first-child th,._table_ih7qn_1 tr:first-child td{border-top:none}._tablePagination_eu6nu_1{height:3rem;display:flex;justify-content:center;align-items:center;width:100%}._tablePaginationCentral_eu6nu_10{gap:1rem;display:flex;align-items:center;color:var(--em-table-text-default_R, #212129);font-size:var(--em-table-font-font-size_R, .75rem);font-style:normal;font-weight:var(--em-table-font-font-weight-medium_R, 500);line-height:var(--em-table-font-line-height_R, .875rem)}._tablePaginationCentralButtons_eu6nu_24{display:flex;align-items:center;gap:var(--em-table-padding-medium_R, .5rem)}._tableHead_1wclr_1 tr th{padding:unset}._tableHead_1wclr_1 tr th._tableHeadIndex_1wclr_4{position:sticky;left:0;z-index:1;pointer-events:none;min-width:var(--em-table-size-min-width_R, 3rem);width:var(--em-table-size-min-width_R, 3rem);background:var(--em-table-background-color-default-header_R, #fff)}._tableHead_1wclr_1 tr th._tableHeadIndex_1wclr_4 button p{color:var(--em-table-text-muted, #5c5c66)}._tableHead_1wclr_1 tr th._tableHeadIndex_1wclr_4:after{content:"";position:absolute;top:0;bottom:0;right:calc(-1 * var(--em-table-border-width-default, 1px));width:var(--em-table-border-width-default, 1px);background:var(--em-table-border-color-default, #ededf1)}._tableHead_1wclr_1 tr th ._tableHeadCell_1wclr_29{cursor:pointer;width:100%;border:unset;background-color:unset;display:flex;justify-content:space-between;padding:var(--em-table-padding-medium_R, .5rem)}._tableHead_1wclr_1 tr th ._tableHeadCell_1wclr_29 svg{width:var(--em-table-icon-size-width, 1rem);height:var(--em-table-icon-size-height, 1rem)}._tableHead_1wclr_1 tr th ._tableHeadCell_1wclr_29 p{white-space:nowrap;padding:0 var(--em-table-padding-small, .25rem);color:var(--em-table-text-default, #212129);font-size:var(--em-table-font-size, .75rem);font-style:normal;font-weight:var(--em-table-font-font-weight-medium, 500);line-height:var(--em-table-font-line-height, .875rem)}._tableBody_zz1co_1 td._tableBodyCellIndex_zz1co_1{position:sticky;left:0;z-index:1;pointer-events:none;background:var(--em-table-background-color-default-header_R, #fff)}._tableBody_zz1co_1 td._tableBodyCellIndex_zz1co_1:after{content:"";position:absolute;top:0;bottom:0;right:calc(-1 * var(--em-table-border-width-default, 1px));width:var(--em-table-border-width-default, 1px);background:var(--em-table-border-color-default, #ededf1)}._tableBody_zz1co_1 td._tableBodyCellIndex_zz1co_1 p{color:var(--em-table-text-muted, #5c5c66)}._tableBodyCell_zz1co_1{position:relative}._tableBodyCell_zz1co_1 p{white-space:nowrap;padding:0 var(--em-table-padding-small, .25rem);color:var(--em-table-text-default, #212129);font-size:var(--em-table-font-size, .75rem);font-style:normal;font-weight:var(--em-table-font-weight-regular, 400);line-height:.875rem}._copyButton_zz1co_38{position:absolute;top:50%;right:var(--em-table-padding-medium_R, .5rem);transform:translateY(-50%);opacity:0}._copyButton_zz1co_38._leftAlign_zz1co_46{left:var(--em-table-padding-medium_R, .5rem);right:auto}._tableBodyCell_zz1co_1:hover ._copyButton_zz1co_38{opacity:1}@keyframes _shimmer_12e7h_1{0%{background-position:100%}to{background-position:-100%}}._skeleton_12e7h_10{animation:_shimmer_12e7h_1 1.5s infinite;background:linear-gradient(90deg,#ededf166 29%,#d2d2d566 46.21%,#ededf166 78.5%);background-size:200% 100%;height:100%;width:100%;border-radius:var(--em-border-radius-300, 12px)}._chartCard_1edc9_1{height:100%;width:100%}._error_1edc9_6 svg,._error_1edc9_6 h2,._error_1edc9_6 p{color:var(--em-card-error-subtitle-color-default, #d03109)}._rightContent_1edc9_12{position:relative;right:0}._fixedContent_1edc9_17{z-index:3;background:var(--em-background-color-default, #f7f7f8);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._fixedContent_1edc9_17._loading_1edc9_26{z-index:4;display:block}._fixedContent_1edc9_17._hidden_1edc9_31{display:none}@keyframes _spin_7lgag_1{to{transform:rotate(360deg)}}._loading_7lgag_7{padding:var(--em-card-loader-padding-default, .25rem);border-radius:var(--em-card-loader-border-radius-default, 9999px);background:var(--em-background-color-default, #f7f7f8);width:var(--em-card-loader-icon-size-width, 1.5rem);height:var(--em-card-loader-icon-size-height, 1.5rem);animation:_spin_7lgag_1 2s linear infinite}._list_mwshn_1{width:auto}._kpiChartContainer_joxtc_1{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}._kpiChartContainer_joxtc_1>p{width:100%;font-size:52px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--em-kpi-kpi-font-font-color, #212129);font-style:normal;font-weight:var(--em-kpi-kpi-font-font-weight, 700);line-height:normal}._kpiComparisonContainer_joxtc_26{align-items:center;display:flex;flex-direction:column;padding:var(--em-chart-grid-padding-lg, 1rem) 0 0 0;gap:var(--em-chart-grid-padding-default, .5rem);font-size:var(--em-kpi-trend-font-font-size, 1rem)}._kpiComparisonContainer_joxtc_26>p{text-align:center;color:var(--em-chart-grid-font-color-default, #000);font-size:.875em;font-style:normal;font-weight:var(--em-kpi-trend-font-font-weight, 500)}._kpiChangeHidden_joxtc_47{visibility:hidden}._kpiChartChangeContainer_13m4l_1{display:flex;align-items:center;gap:var(--em-chart-grid-padding-default, .5rem);color:var(--em-chart-grid-font-color-default, #000)}._kpiChartChangeContainer_13m4l_1>p{font-size:.875em;color:inherit}._kpiChangeBadge_13m4l_13{display:flex;justify-content:center;align-items:center;padding:var(--em-kpi-trend-padding-default, .25rem);border-radius:var(--em-kpi-trend-border-radius-default, .375rem)}._kpiChangeBadge_13m4l_13>svg{width:1em;height:1em}._kpiChangeBadge_13m4l_13>p{padding:0 var(--em-kpi-trend-padding-default, .25rem);font-size:1em;font-style:normal;font-weight:var(--em-kpi-trend-font-font-weight, 500);line-height:var(--em-kpi-trend-font-line-height, 1rem)}._kpiChangeBadge_13m4l_13._positive_13m4l_36{background:var(--em-kpi-trend-background-color-positive, #e1f0e9);color:var(--em-kpi-trend-label-color-positive, #0f955a)}._kpiChangeBadge_13m4l_13._negative_13m4l_41{background:var(--em-kpi-trend-background-color-negative, #f6e2e2);color:var(--em-kpi-trend-label-color-negative, #bc1010)}._tableContainer_2e613_3{background:var(--em-table-background-color-default-header, #fff);display:flex;flex-direction:column;width:100%;max-height:100%;border:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);border-radius:var(--em-table-border-radius-default, .75rem);overflow-x:auto;overflow-y:auto;position:relative;box-sizing:border-box}._table_2e613_3{width:100%;border-spacing:0;background:var(--em-table-background-color-default-header, #fff);box-sizing:content-box}._table_2e613_3 tbody td,._table_2e613_3 tfoot td{text-align:right}._table_2e613_3 tfoot:last-of-type tr{position:sticky;bottom:0;z-index:1}._table_2e613_3 tfoot:last-of-type tr th,._table_2e613_3 tfoot:last-of-type tr td{border-top:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);border-bottom:unset;font-weight:700}._table_2e613_3 tbody tr:last-of-type th,._table_2e613_3 tbody tr:last-of-type td{border-bottom:unset}._table_2e613_3 thead{position:sticky;top:0;z-index:2}._table_2e613_3 thead tr th:first-of-type,._table_2e613_3 tbody tr th:first-of-type,._table_2e613_3 tfoot tr th:first-of-type{position:sticky;left:0;z-index:1;width:150px;max-width:150px;min-width:150px}._table_2e613_3 thead tr th:last-of-type,._table_2e613_3 tbody tr td:last-of-type,._table_2e613_3 tfoot tr td:last-of-type{border-right:unset}._cell_2e613_78{box-sizing:border-box;cursor:pointer;height:var(--em-table-size-cell-height_R, 2.5rem);max-height:var(--em-table-size-cell-height_R, 2.5rem);padding:var(--em-table-padding-medium_R, .5rem);border-bottom:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);border-right:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);background:var(--em-table-background-color-default-header, #fff);width:100px;max-width:100px;min-width:100px}._cell_2e613_78 p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--em-table-font-family, Inter, sans-serif);font-size:var(--em-table-font-size, .75rem);font-weight:var(--em-table-font-font-weight-regular, 400);font-style:normal;line-height:var(--em-table-font-line-height, .875rem);color:var(--em-table-text-default, #212129)}._cell_2e613_78._header_2e613_106 p{color:var(--em-table-text-default, #212129);font-weight:var(--em-table-font-font-weight-medium, 500)}._cell_2e613_78._bold_2e613_111 p{font-weight:var(--em-table-font-font-weight-medium, 700)}._listOptions_2o1ip_1{height:100%;overflow:auto}._listOptions_2o1ip_1._disabled_2o1ip_6{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}._category_1govg_1{display:flex;padding:var(--em-select-list-item-isolate-padding-default, 4px);flex:1 0 0;border-radius:var(--em-select-list-item-isolate-border-radius-default, 2px);background:var(--em-select-list-item-isolate-background-color-default, #ededf1)}._categoryLabel_1govg_9{color:var(--em-select-list-item-isolate-label-color-default, #212129);font-family:var(--em-select-list-item-isolate-label-font-font-family, Inter);font-size:var(--em-select-list-item-isolate-label-font-size, 12px);font-weight:var(--em-select-list-item-isolate-label-font-weight, 500);line-height:var(--em-select-list-item-isolate-label-font-line-height, 16px)}._error_1xvr5_1 svg,._error_1xvr5_1 h2,._error_1xvr5_1 p{color:var(--em-card-error-subtitle-color-default, #d03109)}._card_1xvr5_7{background:unset;padding:unset}._selectField_73cni_1{display:flex;flex-direction:column;gap:var(--em-form-padding-small, .5rem)}._icon_14m1u_1{width:var(--em-primary-btn-icon-size-width, 1rem);height:var(--em-primary-btn-icon-size-height, 1rem)}._buttonMedium_14m1u_6{height:var(--em-primary-btn-size-default-height, 2.5rem);padding:var(--em-primary-btn-padding-default-top, .75rem) var(--em-primary-btn-padding-default-right, .75rem) var(--em-primary-btn-padding-default-bottom, .75rem) var(--em-primary-btn-padding-default-left, .75rem)}._buttonSmall_14m1u_14{height:var(--em-primary-btn-size-small-height, 2rem);padding:var(--em-primary-btn-padding-small-top, .375rem) var(--em-primary-btn-padding-small-right, .375rem) var(--em-primary-btn-padding-small-bottom, .375rem) var(--em-primary-btn-padding-small-left, .375rem)}._buttonText_14m1u_22{padding:0 var(--em-primary-btn-label-padding-default, .5rem)}._buttonTextMedium_14m1u_26{font-size:var(--em-primary-btn-label-font-default-size, .875rem);font-style:normal;font-weight:var(--em-primary-btn-label-font-default-weight, 700);line-height:var(--em-primary-btn-label-font-default-line-height, 1rem)}._buttonTextSmall_14m1u_35{font-size:var(--em-primary-btn-label-font-small-size, .75rem);font-style:normal;font-weight:var(--em-primary-btn-label-font-small-weight, 500);line-height:var(--em-primary-btn-label-font-small-line-height, .875rem)}._submitButton_gpe2a_1{justify-content:center}._selectField_gpe2a_5{display:flex;flex-direction:column;gap:var(--em-form-padding-small, .5rem)}._container_436fl_1{width:100%;height:100%;display:flex;gap:var(--em-empty-state-padding-default, 1rem);overflow:hidden;box-sizing:border-box}._column_436fl_10{display:flex;flex-direction:column;gap:var(--em-empty-state-padding-default, 1rem);min-width:var(--em-empty-state-skeleton-size-min-width, 8rem);max-width:var(--em-empty-state-skeleton-size-max-width, 16rem);flex:1;height:100%}._box_436fl_20{background-color:var(--em-empty-state-background-color-default, #f7f7f8);border-radius:var(--em-card-border-radius-default, 2rem);opacity:var(--em-empty-state-opacity-default, .6)}._short_436fl_26{width:100%;aspect-ratio:1;min-height:var(--em-empty-state-skeleton-size-min-width, 8rem);max-height:var(--em-empty-state-skeleton-size-max-width, 16rem);flex-shrink:0}._tall_436fl_34{width:100%;flex:1;min-height:var(--em-empty-state-skeleton-size-min-width, 8rem)}._icon_bk4b5_1{width:var(--em-icon-btn-icon-size-width, 1rem);height:var(--em-icon-btn-icon-size-height, 1rem)}._iconPrimary_bk4b5_6{color:var(--em-primary-btn-icon-color-default, #ffffff)}._iconSecondary_bk4b5_9{color:var(--em-secondary-btn-icon-color-default, #212129)}._buttonIcon_bk4b5_12{height:var(--em-primary-btn-size-default-height, 2.5rem);padding:var(--em-primary-btn-padding-default-top, .75rem) var(--em-primary-btn-padding-default-right, .75rem) var(--em-primary-btn-padding-default-bottom, .75rem) var(--em-primary-btn-padding-default-left, .75rem)}._ghostButton_1cvh9_1{border:none;cursor:pointer;outline:none;display:inline-flex;align-items:center;justify-content:center;height:var(--em-ghost-btn-size-height, 1.25rem);padding:var(--em-ghost-btn-padding-default, .125rem);flex-shrink:0;background:transparent;color:var(--em-ghost-btn-label-color-default, #212129);font-family:var(--em-ghost-btn-label-font-default-font-family, Inter);font-size:var(--em-ghost-btn-label-font-default-size, .75rem);font-style:normal;font-weight:var(--em-ghost-btn-label-font-default-weight, 400);line-height:var(--em-ghost-btn-label-font-default-line-height, .875rem)}._ghostButton_1cvh9_1:hover,._ghostButton_1cvh9_1:focus{border-radius:var(--em-border-radius-100, .25rem);background:var(--em-ghost-btn-background-color-hover, #f7f7f8)}._ghostButton_1cvh9_1:active{border-radius:var(--em-border-radius-100, .25rem);background:var(--em-ghost-btn-background-color-pressed, #ededf1)}._ghostButton_1cvh9_1:disabled{cursor:unset;pointer-events:none;background:transparent;color:var(--em-ghost-btn-label-color-disabled, #b8b8bd)}._icon_1cvh9_38{width:var(--em-ghost-btn-icon-size-width, .75rem);height:var(--em-ghost-btn-icon-size-height, .75rem)}._label_1cvh9_42{display:flex;padding:0 var(--em-ghost-btn-label-padding-default, .25rem);align-items:center}._overlay_1wzuc_1{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--em-foreground-color-neutral);z-index:9999;display:flex;align-items:center;justify-content:center}._actions_pvzr9_1{display:flex;gap:var(--em-form-padding-small, .5rem);justify-content:flex-end;padding-top:var(--em-card-padding-default);overflow:unset}._switchContainer_5ud0u_1{display:inline-flex;align-items:center;justify-content:center;gap:var(--em-switch-container-gap, .75rem)}._switchLabel_5ud0u_8{position:relative;display:inline-block;cursor:pointer;-webkit-user-select:none;user-select:none}._switchLabel_5ud0u_8 ._switchInput_5ud0u_14{position:absolute;opacity:0;width:0;height:0}._switchLabel_5ud0u_8 ._switchInput_5ud0u_14:focus+._switchTrack_5ud0u_21{outline:var(--em-border-width-default) solid var(--em-switch-focus-color, #0066cc);outline-offset:var(--em-border-width-default)}._switchLabel_5ud0u_8 ._switchInput_5ud0u_14:focus:not(:focus-visible)+._switchTrack_5ud0u_21{outline:none}@media(prefers-contrast:high){._switchLabel_5ud0u_8 ._switchInput_5ud0u_14:focus+._switchTrack_5ud0u_21{outline:var(--em-border-width-default, .0625rem) solid;outline-offset:var(--em-border-width-default, .0625rem)}}._switchLabel_5ud0u_8 ._switchTrack_5ud0u_21{position:relative;display:inline-flex;justify-content:flex-end;align-items:center;width:var(--em-switch-size-width, 2rem);height:var(--em-switch-size-height, 1rem);border-radius:var(--em-border-radius-500, 624.9375rem);background:var(--em-switch-background-color-off, #e4e4ea);transition:all .2s ease-in-out;vertical-align:middle}._switchLabel_5ud0u_8 ._switchTrack_5ud0u_21 ._switchThumb_5ud0u_51{position:absolute;top:50%;left:var(--em-switch-thumb-padding, .125rem);transform:translateY(-50%);background:var(--em-switch-thumb-background-color, #ffffff);border-radius:50%;transition:all .2s ease-in-out;box-shadow:var(--em-switch-thumb-shadow, 0 2px 4px rgba(0, 0, 0, .1));width:var(--em-switch-slider-size-width, .75rem);height:var(--em-switch-slider-size-height, .75rem)}._switchLabel_5ud0u_8._checked_5ud0u_66 ._switchTrack_5ud0u_21{background:var(--em-switch-background-color-on, #212129)}._switchLabel_5ud0u_8._checked_5ud0u_66 ._switchThumb_5ud0u_51{left:calc(100% - var(--em-switch-padding, .125rem));transform:translate(-100%,-50%)}._switchLabel_5ud0u_8._disabled_5ud0u_78{cursor:not-allowed}._switchLabel_5ud0u_8._disabled_5ud0u_78 ._switchTrack_5ud0u_21{background:var(--em-switch-track-background-color-disabled, #f5f5f6);cursor:not-allowed}._switchLabel_5ud0u_8._disabled_5ud0u_78 ._switchThumb_5ud0u_51{background:var(--em-switch-thumb-background-color-disabled, #d2d2d5);box-shadow:none}._switchLabel_5ud0u_8._disabled_5ud0u_78 ._labelText_5ud0u_91{color:var(--em-switch-label-color-disabled, #b8b8bd);cursor:not-allowed}._switchLabel_5ud0u_8 ._labelText_5ud0u_91{color:var(--em-form-section-font-font-color, #212129);font-size:var(--em-form-form-font-font-size-title, .875rem);font-style:normal;font-weight:var(--em-form-form-font-font-weight, 400);line-height:var(--em-form-form-font-line-height, 1rem);display:inline-block;vertical-align:middle;margin-left:var(--em-form-padding-small, .5rem)}@media(prefers-reduced-motion:reduce){._switchTrack_5ud0u_21,._switchThumb_5ud0u_51{transition:none}}
587
+ ._card_ekfxn_1{position:relative;display:flex;flex-direction:column;gap:var(--em-card-gap-default, 2rem);padding:var(--em-card-padding-default, 2rem);border-radius:var(--em-card-border-radius-default, 2rem);background:var(--em-background-color-default, #f7f7f8);box-sizing:border-box}._content_ekfxn_12{display:flex;flex-direction:column;flex-grow:1;overflow:auto}._header_ekfxn_19{width:100%;display:flex;gap:var(--em-card-title-padding-default, 1rem);justify-content:space-between;position:relative;align-items:center}._titles_ekfxn_28{display:flex;flex-direction:column;gap:var(--em-card-title-padding-default, 1rem)}._title_ekfxn_28{color:var(--em-card-title-color-default, #212129);font-size:var(--em-card-title-font-size, 1.25rem);font-style:normal;font-weight:var(--em-card-title-font-weight, 700);line-height:var(--em-card-title-font-line-height, 1.1875rem)}._subtitle_ekfxn_42{color:var(--em-foreground-color-muted, #5c5c66);font-family:var(--em-card-subtitle-font-font-family, Inter);font-size:var(--em-card-subtitle-font-size, .875rem);font-style:normal;font-weight:var(--em-card-subtitle-font-weight, 400);line-height:var(--em-card-subtitle-font-line-height, .875rem)}._typography_1vbmb_1{font-family:var(--em-font-default, "Inter", sans-serif);margin:unset}._info_11vdf_1{display:flex;flex-direction:column;align-items:center;margin:auto;gap:var(--em-card-info-padding-default, .75rem)}._title_11vdf_9{color:var(--em-card-empty-title-color-default, #212129);text-align:center;font-size:var(--em-card-empty-title-font-size, .875rem);font-style:normal;font-weight:var(--em-card-empty-title-font-weight, 500);line-height:var(--em-card-empty-title-font-line-height, 1rem)}._message_11vdf_18{color:var(--em-card-empty-subtitle-color-default, #5c5c66);text-align:center;font-size:var(--em-card-empty-subtitle-font-size, .875rem);font-style:normal;font-weight:var(--em-card-empty-subtitle-font-weight, 400);line-height:var(--em-card-empty-subtitle-font-line-height, 1rem)}._errorMessage_1cos3_1{color:var(--em-text-input-label-color-error, #bc1010);font-family:var(--em-text-input-label-font-font-family, Inter);font-size:var(--em-text-input-label-font-size, .75rem);font-weight:var(--em-text-input-label-font-weight-default, 500)}._iconButton_134uf_1{width:var(--em-icon-btn-size-width, 1.25rem);height:var(--em-icon-btn-size-height, 2rem);padding:var(--em-icon-btn-padding-top, .5rem) var(--em-icon-btn-padding-right, .125rem) var(--em-icon-btn-padding-bottom, .5rem) var(--em-icon-btn-padding-left, .125rem)}._icon_134uf_1{width:var(--em-icon-btn-icon-size-width, 1rem);height:var(--em-icon-btn-icon-size-height, 1rem)}._baseButton_zbrmc_1{border:none;cursor:pointer;outline:none;display:inline-flex;align-items:center;justify-content:center}._baseButton_zbrmc_1:disabled{cursor:unset;pointer-events:none}._primary_zbrmc_15{background:var(--em-primary-btn-background-color-default, #5c5c66);color:var(--em-primary-btn-label-color-default, #fff);border-radius:var(--em-primary-btn-border-radius-default, 624.9375rem)}._primary_zbrmc_15:hover,._primary_zbrmc_15:focus{background:var(--em-primary-btn-background-color-hover, #212129)}._primary_zbrmc_15:active{background:var(--em-primary-btn-background-color-pressed, #000)}._primary_zbrmc_15:disabled{background:var(--em-primary-btn-background-color-disabled, #ededf1);color:var(--em-primary-btn-label-color-disabled, #b8b8bd)}._secondary_zbrmc_34{background:var(--em-secondary-btn-background-color-default, #ededf1);color:var(--em-secondary-btn-label-color-default, #212129);border-radius:var(--em-primary-btn-border-radius-default, 624.9375rem)}._secondary_zbrmc_34:hover,._secondary_zbrmc_34:focus{background:var(--em-secondary-btn-background-color-hover, #e4e4ea)}._secondary_zbrmc_34:active{background:var(--em-secondary-btn-background-color-pressed, #d2d2d5)}._secondary_zbrmc_34:disabled{background:var(--em-secondary-btn-background-color-disabled, #ededf1);color:var(--em-secondary-btn-label-color-disabled, #b8b8bd)}._icon_zbrmc_55{width:var(--em-primary-btn-icon-size-width, 1rem);height:var(--em-primary-btn-icon-size-height, 1rem)}._listItem_snhc5_1{box-sizing:border-box;height:var(--em-select-list-item-size-height, 2rem);max-height:var(--em-select-list-item-size-height, 2rem);padding:var(--em-select-list-item-padding-default, .5rem);border-radius:var(--em-select-list-item-border-radius-default, .5rem);background:var(--em-select-list-item-background-color-default, #fff);color:var(--em-select-list-item-label-color-default, #212129);font-style:normal;display:flex;outline:none;cursor:pointer;align-items:center;justify-content:space-between;width:100%;overflow:hidden}._listItem_snhc5_1 ._leftContent_snhc5_20{display:flex;flex:0 0 auto;white-space:nowrap;color:var(--em-select-list-item-left-label-color-default, #212129);align-items:center}._listItem_snhc5_1 ._rightContent_snhc5_28{flex:1 1 auto;min-width:0;color:var(--em-select-list-item-right-label-color-default, #5c5c66)}._listItem_snhc5_1 ._leftContent_snhc5_20 p,._listItem_snhc5_1 ._rightContent_snhc5_28 p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._listItem_snhc5_1 ._rightContent_snhc5_28 p{white-space:nowrap;text-overflow:ellipsis;text-align:right}._listItem_snhc5_1:hover,._listItem_snhc5_1:focus{background:var(--em-select-list-item-background-color-hover, #f7f7f8)}._listItem_snhc5_1:active{background:var(--em-select-list-item-background-color-pressed, #ededf1)}._listItem_snhc5_1._disabled_snhc5_56{color:var(--em-select-list-item-label-color-disabled, #b8b8bd);pointer-events:none;-webkit-user-select:none;user-select:none}._listItem_snhc5_1 ._leftContent_snhc5_20 p{padding:0 var(--em-select-list-item-label-padding-default, .5rem);font-size:var(--em-select-list-item-left-label-font-size, .75rem);font-weight:var(--em-select-list-item-left-label-font-weight, 500);line-height:var(--em-select-list-item-left-label-font-line-height, .875rem)}._listItem_snhc5_1 ._rightContent_snhc5_28 p{color:var(--em-select-list-item-right-label-color-default, #5c5c66);padding:0 var(--em-select-list-item-label-padding-default, .5rem);font-size:var(--em-select-list-item-right-label-font-size, .75rem);font-weight:var(--em-select-list-item-right-label-font-weight, 400);line-height:var(--em-select-list-item-right-label-font-line-height, .875rem)}._listItem_snhc5_1._selected_snhc5_79{background:var(--em-select-list-item-background-color-selected, #212129);color:var(--em-select-list-item-left-label-color-selected, #fff)}._listItem_snhc5_1._selected_snhc5_79 span{color:var(--em-select-list-item-left-label-color-selected, #fff)}._listItem_snhc5_1._selected_snhc5_79 ._leftContent_snhc5_20 p,._listItem_snhc5_1._selected_snhc5_79 ._rightContent_snhc5_28 p{color:inherit}._listItem_snhc5_1 svg,._listItem_snhc5_1 img{width:var(--em-select-list-item-icon-size-width, 1rem);height:var(--em-select-list-item-icon-size-height, 1rem);color:inherit}._button_10cpl_1{display:flex;align-items:center;justify-content:space-between;padding:var(--em-select-menu-padding-default, .75rem);border-radius:var(--em-select-menu-border-radius-default, .75rem);border:var(--em-select-menu-border-width-default, 1px) solid var(--em-select-menu-border-color-default, #d2d2d5);background:var(--em-select-menu-background-color-default, #fff);cursor:pointer;color:var(--em-select-menu-label-color-default, #212129);height:var(--em-select-menu-size-height-default, 2rem);max-height:var(--em-select-menu-size-height-default, 2rem);min-width:var(--em-select-menu-size-width-min-width, 10rem);width:100%;outline:none}._button_10cpl_1 ._rightContent_10cpl_19{flex-shrink:0}._button_10cpl_1 ._leftContent_10cpl_23{display:flex;flex-grow:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._button_10cpl_1 ._leftContent_10cpl_23 span{text-align:left;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--em-select-menu-label-padding-default, .5rem);font-size:var(--em-select-menu-label-font-size, .75rem);font-style:normal;font-weight:var(--em-select-menu-label-font-weight, 500);line-height:var(--em-select-menu-label-font-line-height, .875rem)}._button_10cpl_1:hover,._button_10cpl_1:focus{background:var(--em-select-menu-background-color-hover, #f7f7f8)}._button_10cpl_1:active{background:var(--em-select-menu-background-color-pressed, #ededf1)}._button_10cpl_1._hasValue_10cpl_55{background:var(--em-select-menu-background-color-selected, #212129);color:var(--em-select-menu-label-color-selected, #fff)}._button_10cpl_1:disabled{background:var(--em-select-menu-background-color-disabled, #fff);color:var(--em-select-menu-label-color-disabled, #b8b8bd);cursor:unset}._button_10cpl_1 span svg{width:var(--em-select-menu-icon-size-width, 1rem);height:var(--em-select-menu-icon-size-height, 1rem)}@keyframes _spin_10cpl_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._loading_10cpl_80{animation:_spin_10cpl_1 1s linear infinite}._buttonError_10cpl_84{border:var(--em-text-input-border-width-error, 2px) solid var(--em-status-negative-foreground, #bc1010)}._list_18km3_1{display:flex;flex-direction:column;outline:none;box-sizing:border-box;max-width:max(var(--radix-dropdown-menu-trigger-width),var(--em-select-menu-size-width-max-width, 25rem));min-width:var(--radix-dropdown-menu-trigger-width);padding:var(--em-select-menu-list-padding-default, .5rem);max-height:var(--em-select-menu-list-size-max-height, 20rem);gap:var(--em-select-menu-list-gap-default, .5rem);border-radius:var(--em-select-menu-list-border-radius-default, .75rem);background:var(--em-background-color-neutral, #fff);box-shadow:var(--em-box-shadow-default-position-x, 0) var(--em-box-shadow-default-position-y, 1px) var(--em-box-shadow-default-blur, 40px) var(--em-box-shadow-default-spread, 0) var(--em-box-shadow-default-color, rgba(33, 33, 41, .25))}._input_ties8_1{display:flex;align-items:center;box-sizing:border-box;height:var(--em-text-input-size-height, 2rem);width:100%;padding:var(--em-text-input-padding-default, .5rem);border-radius:var(--em-text-input-border-radius-default, .5rem);border:var(--em-text-input-border-width-default, 1px) solid var(--em-text-input-border-color-default, #d2d2d5);background:var(--em-text-input-background-color-default, #f7f7f8);color:var(--em-text-input-label-color-filled, #212129)}._input_ties8_1:hover{background:var(--em-text-input-background-color-hover, #e4e4ea);color:var(--em-text-input-label-color-hover, #5c5c66)}._input_ties8_1:focus-within{background:var(--em-text-input-background-color-hover, #e4e4ea);color:var(--em-text-input-label-color-focused, #212129)}._input_ties8_1 svg{width:var(--em-select-menu-icon-size-width, 1rem);height:var(--em-select-menu-icon-size-height, 1rem)}._input_ties8_1 input{border:none;background:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none;color:inherit;width:100%;padding:0 var(--em-text-input-padding-default, .5rem);font-size:var(--em-text-input-label-font-size, .75rem);font-style:normal;font-weight:var(--em-text-input-label-font-weight, 500);line-height:var(--em-text-input-label-font-line-height, .875rem)}._input_ties8_1 input:focus{color:var(--em-text-input-label-color-focused, #212129)}._input_ties8_1:has(input:disabled){color:var(--em-text-input-label-color-disabled, #b8b8bd);border:var(--em-text-input-border-width-default, 1px) solid var(--em-text-input-border-color-default, #d2d2d5);background:var(--em-text-input-background-color-disabled, #fff)}._input_ties8_1 input::placeholder{color:var(--em-text-input-label-color-default, #5c5c66)}._input_ties8_1 input:disabled::placeholder{color:var(--em-text-input-label-color-disabled, #b8b8bd)}._input_ties8_1 div{display:flex}._clearIcon_ties8_71{cursor:pointer}._inputContainer_ties8_75{display:flex;flex-direction:column;gap:var(--em-form-padding-small, .5rem)}._requiredText_ties8_81{padding-bottom:var(--em-form-padding-small, .5rem);display:flex;align-items:center;justify-content:flex-end;font-size:var(--em-form-form-font-font-size-required, .75rem);font-weight:var(--em-form-form-font-font-weight, 400);line-height:var(--em-form-form-font-line-height, 1rem);color:var(--em-form-section-font-font-color, #212129)}._inputError_ties8_92{border:var(--em-text-input-border-width-error, 2px) solid var(--em-text-input-border-color-error, #bc1010)}._textField_aiklj_1{display:flex;flex-direction:column;gap:var(--em-form-padding-small, .5rem)}._textField_aiklj_1 ._characterCount_aiklj_5{display:flex;justify-content:flex-start;font-family:var(--em-form-section-font-font-family, Inter);font-size:var(--em-form-form-font-font-size-required, .75rem);font-weight:var(--em-form-form-font-font-weight, 400);line-height:var(--em-form-form-font-line-height, 1rem);color:var(--em-form-section-font-font-color, #212129)}._chartContainer_18rs7_1{flex-grow:1;min-height:0;position:relative}._tableContainer_ih7qn_1{background:var(--em-table-background-color-default-header, #fff);display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;border:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);box-sizing:border-box;border-radius:var(--em-table-border-radius-default, .75rem)}._scrollX_ih7qn_14{overflow-x:auto;overflow-y:hidden;flex:1}._table_ih7qn_1{width:100%;border-collapse:collapse}._table_ih7qn_1 th,._table_ih7qn_1 td{border:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);box-sizing:border-box;cursor:pointer;height:var(--em-table-size-cell-height_R, 2.5rem);max-height:var(--em-table-size-cell-height_R, 2.5rem);min-width:var(--em-table-size-min-width_R, 3rem);padding:var(--em-table-padding-medium_R, .5rem)}._table_ih7qn_1 th:hover,._table_ih7qn_1 th:focus-within{background:var(--em-table-background-color-hover-header_R, #f7f7f8)}._table_ih7qn_1 tr:has(td:hover){background:var(--em-table-background-color-hover-row_R, #fafafa)}._table_ih7qn_1 th:first-child,._table_ih7qn_1 td:first-child{border-left:none}._table_ih7qn_1 th:last-child,._table_ih7qn_1 td:last-child{border-right:none}._table_ih7qn_1 tr:first-child th,._table_ih7qn_1 tr:first-child td{border-top:none}._tablePagination_eu6nu_1{height:3rem;display:flex;justify-content:center;align-items:center;width:100%}._tablePaginationCentral_eu6nu_10{gap:1rem;display:flex;align-items:center;color:var(--em-table-text-default_R, #212129);font-size:var(--em-table-font-font-size_R, .75rem);font-style:normal;font-weight:var(--em-table-font-font-weight-medium_R, 500);line-height:var(--em-table-font-line-height_R, .875rem)}._tablePaginationCentralButtons_eu6nu_24{display:flex;align-items:center;gap:var(--em-table-padding-medium_R, .5rem)}._tableHead_1wclr_1 tr th{padding:unset}._tableHead_1wclr_1 tr th._tableHeadIndex_1wclr_4{position:sticky;left:0;z-index:1;pointer-events:none;min-width:var(--em-table-size-min-width_R, 3rem);width:var(--em-table-size-min-width_R, 3rem);background:var(--em-table-background-color-default-header_R, #fff)}._tableHead_1wclr_1 tr th._tableHeadIndex_1wclr_4 button p{color:var(--em-table-text-muted, #5c5c66)}._tableHead_1wclr_1 tr th._tableHeadIndex_1wclr_4:after{content:"";position:absolute;top:0;bottom:0;right:calc(-1 * var(--em-table-border-width-default, 1px));width:var(--em-table-border-width-default, 1px);background:var(--em-table-border-color-default, #ededf1)}._tableHead_1wclr_1 tr th ._tableHeadCell_1wclr_29{cursor:pointer;width:100%;border:unset;background-color:unset;display:flex;justify-content:space-between;padding:var(--em-table-padding-medium_R, .5rem)}._tableHead_1wclr_1 tr th ._tableHeadCell_1wclr_29 svg{width:var(--em-table-icon-size-width, 1rem);height:var(--em-table-icon-size-height, 1rem)}._tableHead_1wclr_1 tr th ._tableHeadCell_1wclr_29 p{white-space:nowrap;padding:0 var(--em-table-padding-small, .25rem);color:var(--em-table-text-default, #212129);font-size:var(--em-table-font-size, .75rem);font-style:normal;font-weight:var(--em-table-font-font-weight-medium, 500);line-height:var(--em-table-font-line-height, .875rem)}._tableBody_zz1co_1 td._tableBodyCellIndex_zz1co_1{position:sticky;left:0;z-index:1;pointer-events:none;background:var(--em-table-background-color-default-header_R, #fff)}._tableBody_zz1co_1 td._tableBodyCellIndex_zz1co_1:after{content:"";position:absolute;top:0;bottom:0;right:calc(-1 * var(--em-table-border-width-default, 1px));width:var(--em-table-border-width-default, 1px);background:var(--em-table-border-color-default, #ededf1)}._tableBody_zz1co_1 td._tableBodyCellIndex_zz1co_1 p{color:var(--em-table-text-muted, #5c5c66)}._tableBodyCell_zz1co_1{position:relative}._tableBodyCell_zz1co_1 p{white-space:nowrap;padding:0 var(--em-table-padding-small, .25rem);color:var(--em-table-text-default, #212129);font-size:var(--em-table-font-size, .75rem);font-style:normal;font-weight:var(--em-table-font-weight-regular, 400);line-height:.875rem}._copyButton_zz1co_38{position:absolute;top:50%;right:var(--em-table-padding-medium_R, .5rem);transform:translateY(-50%);opacity:0}._copyButton_zz1co_38._leftAlign_zz1co_46{left:var(--em-table-padding-medium_R, .5rem);right:auto}._tableBodyCell_zz1co_1:hover ._copyButton_zz1co_38{opacity:1}@keyframes _shimmer_12e7h_1{0%{background-position:100%}to{background-position:-100%}}._skeleton_12e7h_10{animation:_shimmer_12e7h_1 1.5s infinite;background:linear-gradient(90deg,#ededf166 29%,#d2d2d566 46.21%,#ededf166 78.5%);background-size:200% 100%;height:100%;width:100%;border-radius:var(--em-border-radius-300, 12px)}._chartCard_1edc9_1{height:100%;width:100%}._error_1edc9_6 svg,._error_1edc9_6 h2,._error_1edc9_6 p{color:var(--em-card-error-subtitle-color-default, #d03109)}._rightContent_1edc9_12{position:relative;right:0}._fixedContent_1edc9_17{z-index:3;background:var(--em-background-color-default, #f7f7f8);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._fixedContent_1edc9_17._loading_1edc9_26{z-index:4;display:block}._fixedContent_1edc9_17._hidden_1edc9_31{display:none}@keyframes _spin_7lgag_1{to{transform:rotate(360deg)}}._loading_7lgag_7{padding:var(--em-card-loader-padding-default, .25rem);border-radius:var(--em-card-loader-border-radius-default, 9999px);background:var(--em-background-color-default, #f7f7f8);width:var(--em-card-loader-icon-size-width, 1.5rem);height:var(--em-card-loader-icon-size-height, 1.5rem);animation:_spin_7lgag_1 2s linear infinite}._list_mwshn_1{width:auto}._kpiChartContainer_joxtc_1{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}._kpiChartContainer_joxtc_1>p{width:100%;font-size:52px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--em-kpi-kpi-font-font-color, #212129);font-style:normal;font-weight:var(--em-kpi-kpi-font-font-weight, 700);line-height:normal}._kpiComparisonContainer_joxtc_26{align-items:center;display:flex;flex-direction:column;padding:var(--em-chart-grid-padding-lg, 1rem) 0 0 0;gap:var(--em-chart-grid-padding-default, .5rem);font-size:var(--em-kpi-trend-font-font-size, 1rem)}._kpiComparisonContainer_joxtc_26>p{text-align:center;color:var(--em-chart-grid-font-color-default, #000);font-size:.875em;font-style:normal;font-weight:var(--em-kpi-trend-font-font-weight, 500)}._kpiChangeHidden_joxtc_47{visibility:hidden}._kpiChartChangeContainer_13m4l_1{display:flex;align-items:center;gap:var(--em-chart-grid-padding-default, .5rem);color:var(--em-chart-grid-font-color-default, #000)}._kpiChartChangeContainer_13m4l_1>p{font-size:.875em;color:inherit}._kpiChangeBadge_13m4l_13{display:flex;justify-content:center;align-items:center;padding:var(--em-kpi-trend-padding-default, .25rem);border-radius:var(--em-kpi-trend-border-radius-default, .375rem)}._kpiChangeBadge_13m4l_13>svg{width:1em;height:1em}._kpiChangeBadge_13m4l_13>p{padding:0 var(--em-kpi-trend-padding-default, .25rem);font-size:1em;font-style:normal;font-weight:var(--em-kpi-trend-font-font-weight, 500);line-height:var(--em-kpi-trend-font-line-height, 1rem)}._kpiChangeBadge_13m4l_13._positive_13m4l_36{background:var(--em-kpi-trend-background-color-positive, #e1f0e9);color:var(--em-kpi-trend-label-color-positive, #0f955a)}._kpiChangeBadge_13m4l_13._negative_13m4l_41{background:var(--em-kpi-trend-background-color-negative, #f6e2e2);color:var(--em-kpi-trend-label-color-negative, #bc1010)}._tableContainer_2e613_3{background:var(--em-table-background-color-default-header, #fff);display:flex;flex-direction:column;width:100%;max-height:100%;border:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);border-radius:var(--em-table-border-radius-default, .75rem);overflow-x:auto;overflow-y:auto;position:relative;box-sizing:border-box}._table_2e613_3{width:100%;border-spacing:0;background:var(--em-table-background-color-default-header, #fff);box-sizing:content-box}._table_2e613_3 tbody td,._table_2e613_3 tfoot td{text-align:right}._table_2e613_3 tfoot:last-of-type tr{position:sticky;bottom:0;z-index:1}._table_2e613_3 tfoot:last-of-type tr th,._table_2e613_3 tfoot:last-of-type tr td{border-top:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);border-bottom:unset;font-weight:700}._table_2e613_3 tbody tr:last-of-type th,._table_2e613_3 tbody tr:last-of-type td{border-bottom:unset}._table_2e613_3 thead{position:sticky;top:0;z-index:2}._table_2e613_3 thead tr th:first-of-type,._table_2e613_3 tbody tr th:first-of-type,._table_2e613_3 tfoot tr th:first-of-type{position:sticky;left:0;z-index:1;width:150px;max-width:150px;min-width:150px}._table_2e613_3 thead tr th:last-of-type,._table_2e613_3 tbody tr td:last-of-type,._table_2e613_3 tfoot tr td:last-of-type{border-right:unset}._cell_2e613_78{box-sizing:border-box;cursor:pointer;height:var(--em-table-size-cell-height_R, 2.5rem);max-height:var(--em-table-size-cell-height_R, 2.5rem);padding:var(--em-table-padding-medium_R, .5rem);border-bottom:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);border-right:var(--em-table-border-width-default, 1px) solid var(--em-table-border-color-default, #ededf1);background:var(--em-table-background-color-default-header, #fff);width:100px;max-width:100px;min-width:100px}._cell_2e613_78 p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--em-table-font-family, Inter, sans-serif);font-size:var(--em-table-font-size, .75rem);font-weight:var(--em-table-font-font-weight-regular, 400);font-style:normal;line-height:var(--em-table-font-line-height, .875rem);color:var(--em-table-text-default, #212129)}._cell_2e613_78._header_2e613_106 p{color:var(--em-table-text-default, #212129);font-weight:var(--em-table-font-font-weight-medium, 500)}._cell_2e613_78._bold_2e613_111 p{font-weight:var(--em-table-font-font-weight-medium, 700)}._listOptions_2o1ip_1{height:100%;overflow:auto}._listOptions_2o1ip_1._disabled_2o1ip_6{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}._category_1p6u3_1{display:flex;padding:var(--em-select-list-item-isolate-padding-default, 4px);flex:1 0 0;border-radius:var(--em-select-list-item-isolate-border-radius-default, 2px);background:var(--em-select-list-item-isolate-background-color-default, #ededf1);position:sticky;top:0}._categoryLabel_1p6u3_11{color:var(--em-select-list-item-isolate-label-color-default, #212129);font-family:var(--em-select-list-item-isolate-label-font-font-family, Inter);font-size:var(--em-select-list-item-isolate-label-font-size, 12px);font-weight:var(--em-select-list-item-isolate-label-font-weight, 500);line-height:var(--em-select-list-item-isolate-label-font-line-height, 16px)}._error_1xvr5_1 svg,._error_1xvr5_1 h2,._error_1xvr5_1 p{color:var(--em-card-error-subtitle-color-default, #d03109)}._card_1xvr5_7{background:unset;padding:unset}._selectField_73cni_1{display:flex;flex-direction:column;gap:var(--em-form-padding-small, .5rem)}._icon_14m1u_1{width:var(--em-primary-btn-icon-size-width, 1rem);height:var(--em-primary-btn-icon-size-height, 1rem)}._buttonMedium_14m1u_6{height:var(--em-primary-btn-size-default-height, 2.5rem);padding:var(--em-primary-btn-padding-default-top, .75rem) var(--em-primary-btn-padding-default-right, .75rem) var(--em-primary-btn-padding-default-bottom, .75rem) var(--em-primary-btn-padding-default-left, .75rem)}._buttonSmall_14m1u_14{height:var(--em-primary-btn-size-small-height, 2rem);padding:var(--em-primary-btn-padding-small-top, .375rem) var(--em-primary-btn-padding-small-right, .375rem) var(--em-primary-btn-padding-small-bottom, .375rem) var(--em-primary-btn-padding-small-left, .375rem)}._buttonText_14m1u_22{padding:0 var(--em-primary-btn-label-padding-default, .5rem)}._buttonTextMedium_14m1u_26{font-size:var(--em-primary-btn-label-font-default-size, .875rem);font-style:normal;font-weight:var(--em-primary-btn-label-font-default-weight, 700);line-height:var(--em-primary-btn-label-font-default-line-height, 1rem)}._buttonTextSmall_14m1u_35{font-size:var(--em-primary-btn-label-font-small-size, .75rem);font-style:normal;font-weight:var(--em-primary-btn-label-font-small-weight, 500);line-height:var(--em-primary-btn-label-font-small-line-height, .875rem)}._submitButton_gpe2a_1{justify-content:center}._selectField_gpe2a_5{display:flex;flex-direction:column;gap:var(--em-form-padding-small, .5rem)}._container_436fl_1{width:100%;height:100%;display:flex;gap:var(--em-empty-state-padding-default, 1rem);overflow:hidden;box-sizing:border-box}._column_436fl_10{display:flex;flex-direction:column;gap:var(--em-empty-state-padding-default, 1rem);min-width:var(--em-empty-state-skeleton-size-min-width, 8rem);max-width:var(--em-empty-state-skeleton-size-max-width, 16rem);flex:1;height:100%}._box_436fl_20{background-color:var(--em-empty-state-background-color-default, #f7f7f8);border-radius:var(--em-card-border-radius-default, 2rem);opacity:var(--em-empty-state-opacity-default, .6)}._short_436fl_26{width:100%;aspect-ratio:1;min-height:var(--em-empty-state-skeleton-size-min-width, 8rem);max-height:var(--em-empty-state-skeleton-size-max-width, 16rem);flex-shrink:0}._tall_436fl_34{width:100%;flex:1;min-height:var(--em-empty-state-skeleton-size-min-width, 8rem)}._icon_bk4b5_1{width:var(--em-icon-btn-icon-size-width, 1rem);height:var(--em-icon-btn-icon-size-height, 1rem)}._iconPrimary_bk4b5_6{color:var(--em-primary-btn-icon-color-default, #ffffff)}._iconSecondary_bk4b5_9{color:var(--em-secondary-btn-icon-color-default, #212129)}._buttonIcon_bk4b5_12{height:var(--em-primary-btn-size-default-height, 2.5rem);padding:var(--em-primary-btn-padding-default-top, .75rem) var(--em-primary-btn-padding-default-right, .75rem) var(--em-primary-btn-padding-default-bottom, .75rem) var(--em-primary-btn-padding-default-left, .75rem)}._ghostButton_1cvh9_1{border:none;cursor:pointer;outline:none;display:inline-flex;align-items:center;justify-content:center;height:var(--em-ghost-btn-size-height, 1.25rem);padding:var(--em-ghost-btn-padding-default, .125rem);flex-shrink:0;background:transparent;color:var(--em-ghost-btn-label-color-default, #212129);font-family:var(--em-ghost-btn-label-font-default-font-family, Inter);font-size:var(--em-ghost-btn-label-font-default-size, .75rem);font-style:normal;font-weight:var(--em-ghost-btn-label-font-default-weight, 400);line-height:var(--em-ghost-btn-label-font-default-line-height, .875rem)}._ghostButton_1cvh9_1:hover,._ghostButton_1cvh9_1:focus{border-radius:var(--em-border-radius-100, .25rem);background:var(--em-ghost-btn-background-color-hover, #f7f7f8)}._ghostButton_1cvh9_1:active{border-radius:var(--em-border-radius-100, .25rem);background:var(--em-ghost-btn-background-color-pressed, #ededf1)}._ghostButton_1cvh9_1:disabled{cursor:unset;pointer-events:none;background:transparent;color:var(--em-ghost-btn-label-color-disabled, #b8b8bd)}._icon_1cvh9_38{width:var(--em-ghost-btn-icon-size-width, .75rem);height:var(--em-ghost-btn-icon-size-height, .75rem)}._label_1cvh9_42{display:flex;padding:0 var(--em-ghost-btn-label-padding-default, .25rem);align-items:center}._overlay_1wzuc_1{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--em-foreground-color-neutral);z-index:9999;display:flex;align-items:center;justify-content:center}._actions_pvzr9_1{display:flex;gap:var(--em-form-padding-small, .5rem);justify-content:flex-end;padding-top:var(--em-card-padding-default);overflow:unset}._switchContainer_5ud0u_1{display:inline-flex;align-items:center;justify-content:center;gap:var(--em-switch-container-gap, .75rem)}._switchLabel_5ud0u_8{position:relative;display:inline-block;cursor:pointer;-webkit-user-select:none;user-select:none}._switchLabel_5ud0u_8 ._switchInput_5ud0u_14{position:absolute;opacity:0;width:0;height:0}._switchLabel_5ud0u_8 ._switchInput_5ud0u_14:focus+._switchTrack_5ud0u_21{outline:var(--em-border-width-default) solid var(--em-switch-focus-color, #0066cc);outline-offset:var(--em-border-width-default)}._switchLabel_5ud0u_8 ._switchInput_5ud0u_14:focus:not(:focus-visible)+._switchTrack_5ud0u_21{outline:none}@media(prefers-contrast:high){._switchLabel_5ud0u_8 ._switchInput_5ud0u_14:focus+._switchTrack_5ud0u_21{outline:var(--em-border-width-default, .0625rem) solid;outline-offset:var(--em-border-width-default, .0625rem)}}._switchLabel_5ud0u_8 ._switchTrack_5ud0u_21{position:relative;display:inline-flex;justify-content:flex-end;align-items:center;width:var(--em-switch-size-width, 2rem);height:var(--em-switch-size-height, 1rem);border-radius:var(--em-border-radius-500, 624.9375rem);background:var(--em-switch-background-color-off, #e4e4ea);transition:all .2s ease-in-out;vertical-align:middle}._switchLabel_5ud0u_8 ._switchTrack_5ud0u_21 ._switchThumb_5ud0u_51{position:absolute;top:50%;left:var(--em-switch-thumb-padding, .125rem);transform:translateY(-50%);background:var(--em-switch-thumb-background-color, #ffffff);border-radius:50%;transition:all .2s ease-in-out;box-shadow:var(--em-switch-thumb-shadow, 0 2px 4px rgba(0, 0, 0, .1));width:var(--em-switch-slider-size-width, .75rem);height:var(--em-switch-slider-size-height, .75rem)}._switchLabel_5ud0u_8._checked_5ud0u_66 ._switchTrack_5ud0u_21{background:var(--em-switch-background-color-on, #212129)}._switchLabel_5ud0u_8._checked_5ud0u_66 ._switchThumb_5ud0u_51{left:calc(100% - var(--em-switch-padding, .125rem));transform:translate(-100%,-50%)}._switchLabel_5ud0u_8._disabled_5ud0u_78{cursor:not-allowed}._switchLabel_5ud0u_8._disabled_5ud0u_78 ._switchTrack_5ud0u_21{background:var(--em-switch-track-background-color-disabled, #f5f5f6);cursor:not-allowed}._switchLabel_5ud0u_8._disabled_5ud0u_78 ._switchThumb_5ud0u_51{background:var(--em-switch-thumb-background-color-disabled, #d2d2d5);box-shadow:none}._switchLabel_5ud0u_8._disabled_5ud0u_78 ._labelText_5ud0u_91{color:var(--em-switch-label-color-disabled, #b8b8bd);cursor:not-allowed}._switchLabel_5ud0u_8 ._labelText_5ud0u_91{color:var(--em-form-section-font-font-color, #212129);font-size:var(--em-form-form-font-font-size-title, .875rem);font-style:normal;font-weight:var(--em-form-form-font-font-weight, 400);line-height:var(--em-form-form-font-line-height, 1rem);display:inline-block;vertical-align:middle;margin-left:var(--em-form-padding-small, .5rem)}@media(prefers-reduced-motion:reduce){._switchTrack_5ud0u_21,._switchThumb_5ud0u_51{transition:none}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@embeddable.com/remarkable-ui",
3
3
  "author": "embeddable (https://embeddable.com)",
4
- "version": "0.1.46",
4
+ "version": "0.1.48",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",