@embeddable.com/remarkable-ui 0.1.31 → 0.1.33

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.
Files changed (88) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +3 -3
  2. package/dist/BarChartDefaultPro.js +3 -3
  3. package/dist/BarChartGroupedHorizontalPro.js +3 -3
  4. package/dist/BarChartGroupedPro.js +3 -3
  5. package/dist/BarChartStackedHorizontalPro.js +3 -3
  6. package/dist/BarChartStackedPro.js +3 -3
  7. package/dist/{BaseButton-Bf7IgH4E.js → BaseButton-D3Nh2VwK.js} +2 -2
  8. package/dist/{BaseButton-Bf7IgH4E.js.map → BaseButton-D3Nh2VwK.js.map} +1 -1
  9. package/dist/{ChartCard-CACbKXZ7.js → ChartCard-BMfUGlQC.js} +13 -13
  10. package/dist/{ChartCard-CACbKXZ7.js.map → ChartCard-BMfUGlQC.js.map} +1 -1
  11. package/dist/{ComparisonPeriod.type.emb-Q_A2MmQY.js → ComparisonPeriod.type.emb-9nwxR9Tl.js} +2 -2
  12. package/dist/{ComparisonPeriod.type.emb-Q_A2MmQY.js.map → ComparisonPeriod.type.emb-9nwxR9Tl.js.map} +1 -1
  13. package/dist/ComparisonPeriodSelectFieldPro.js +4 -4
  14. package/dist/DateRangeSelectFieldPro.js +2 -2
  15. package/dist/DonutChartPro.js +2 -2
  16. package/dist/DonutLabelChartPro.js +2 -2
  17. package/dist/{EditorCard-CNU8sUaR.js → EditorCard-tBhUO9qV.js} +9 -9
  18. package/dist/{EditorCard-CNU8sUaR.js.map → EditorCard-tBhUO9qV.js.map} +1 -1
  19. package/dist/{KpiChart-C-SmtMQp.js → KpiChart-CqS9-4MK.js} +2 -2
  20. package/dist/{KpiChart-C-SmtMQp.js.map → KpiChart-CqS9-4MK.js.map} +1 -1
  21. package/dist/KpiChartNumberComparisonPro.js +39 -39
  22. package/dist/KpiChartNumberComparisonPro.js.map +1 -1
  23. package/dist/KpiChartNumberPro.js +4 -4
  24. package/dist/LineChartComparisonDefaultPro.js +5 -5
  25. package/dist/LineChartDefaultPro.js +3 -3
  26. package/dist/LineChartGroupedPro.js +3 -3
  27. package/dist/MultiSelectFieldPro.js +2 -2
  28. package/dist/PieChartPro.js +2 -2
  29. package/dist/SingleSelectField-BwQahxL2.js +96 -0
  30. package/dist/SingleSelectField-BwQahxL2.js.map +1 -0
  31. package/dist/SingleSelectFieldPro.js +2 -2
  32. package/dist/{bars.utils-BaxcPPid.js → bars.utils-BS6hyz6a.js} +4 -4
  33. package/dist/{bars.utils-BaxcPPid.js.map → bars.utils-BS6hyz6a.js.map} +1 -1
  34. package/dist/{charts.utils-CQtEx-IN.js → charts.utils-CtjnpTZZ.js} +3 -3
  35. package/dist/{charts.utils-CQtEx-IN.js.map → charts.utils-CtjnpTZZ.js.map} +1 -1
  36. package/dist/{component.constants-B1QqUi2G.js → component.constants-BtSbiLSA.js} +1676 -1659
  37. package/dist/component.constants-BtSbiLSA.js.map +1 -0
  38. package/dist/embeddable-components.json +12 -12
  39. package/dist/{formatter.utils-B3HZzPUm.js → formatter.utils-DsSqaQLy.js} +2 -2
  40. package/dist/{formatter.utils-B3HZzPUm.js.map → formatter.utils-DsSqaQLy.js.map} +1 -1
  41. package/dist/index-0EU9wBvd.js +210 -0
  42. package/dist/index-0EU9wBvd.js.map +1 -0
  43. package/dist/{index-DyMUkLDE.js → index-BFMal406.js} +8 -8
  44. package/dist/{index-DyMUkLDE.js.map → index-BFMal406.js.map} +1 -1
  45. package/dist/{index-Fs7N8msy.js → index-Bgt_jnmA.js} +13 -13
  46. package/dist/{index-Fs7N8msy.js.map → index-Bgt_jnmA.js.map} +1 -1
  47. package/dist/{index-SdQVlaEz.js → index-CVNg2zPD.js} +11 -11
  48. package/dist/{index-SdQVlaEz.js.map → index-CVNg2zPD.js.map} +1 -1
  49. package/dist/{index-Dye21BCa.js → index-CuyqPNAk.js} +5 -5
  50. package/dist/{index-Dye21BCa.js.map → index-CuyqPNAk.js.map} +1 -1
  51. package/dist/{index-DXHlr-gm.js → index-Fhr_BPX0.js} +4 -4
  52. package/dist/{index-DXHlr-gm.js.map → index-Fhr_BPX0.js.map} +1 -1
  53. package/dist/index.js +100 -99
  54. package/dist/{pies.utils-CPE4fxFn.js → pies.utils-DCRmuFgI.js} +4 -4
  55. package/dist/{pies.utils-CPE4fxFn.js.map → pies.utils-DCRmuFgI.js.map} +1 -1
  56. package/dist/remarkable-ui/editors/InputField/InputField.d.ts +4 -0
  57. package/dist/remarkable-ui/editors/InputField/InputField.d.ts.map +1 -1
  58. package/dist/remarkable-ui/editors/NumberField/NumberField.d.ts +2 -0
  59. package/dist/remarkable-ui/editors/NumberField/NumberField.d.ts.map +1 -1
  60. package/dist/remarkable-ui/editors/NumberField/NumberField.stories.d.ts +4 -0
  61. package/dist/remarkable-ui/editors/NumberField/NumberField.stories.d.ts.map +1 -1
  62. package/dist/remarkable-ui/editors/TextField/TextField.d.ts +2 -0
  63. package/dist/remarkable-ui/editors/TextField/TextField.d.ts.map +1 -1
  64. package/dist/remarkable-ui/editors/TextField/TextField.stories.d.ts +5 -0
  65. package/dist/remarkable-ui/editors/TextField/TextField.stories.d.ts.map +1 -1
  66. package/dist/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.d.ts +2 -0
  67. package/dist/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.d.ts.map +1 -1
  68. package/dist/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.stories.d.ts +2 -0
  69. package/dist/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.stories.d.ts.map +1 -1
  70. package/dist/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.d.ts +2 -0
  71. package/dist/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.d.ts.map +1 -1
  72. package/dist/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.stories.d.ts +2 -0
  73. package/dist/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.stories.d.ts.map +1 -1
  74. package/dist/remarkable-ui/editors/select/shared/SelectButton/SelectButton.d.ts +1 -0
  75. package/dist/remarkable-ui/editors/select/shared/SelectButton/SelectButton.d.ts.map +1 -1
  76. package/dist/remarkable-ui/index.d.ts +1 -0
  77. package/dist/remarkable-ui/index.d.ts.map +1 -1
  78. package/dist/remarkable-ui/shared/FieldErrorMessage/FieldErrorMessage.d.ts +5 -0
  79. package/dist/remarkable-ui/shared/FieldErrorMessage/FieldErrorMessage.d.ts.map +1 -0
  80. package/dist/remarkable-ui.css +1 -1
  81. package/dist/{timeRange.utils-C0iy3N-l.js → timeRange.utils-CWIlCcfG.js} +2 -2
  82. package/dist/{timeRange.utils-C0iy3N-l.js.map → timeRange.utils-CWIlCcfG.js.map} +1 -1
  83. package/package.json +1 -1
  84. package/dist/SingleSelectField-AZ79m6bQ.js +0 -88
  85. package/dist/SingleSelectField-AZ79m6bQ.js.map +0 -1
  86. package/dist/component.constants-B1QqUi2G.js.map +0 -1
  87. package/dist/index-BcXLOYYi.js +0 -203
  88. package/dist/index-BcXLOYYi.js.map +0 -1
@@ -1,203 +0,0 @@
1
- import { a4 as B, j as t, a7 as $, a6 as A, ad as R, ag as E, ah as V, ae as v, af as w, r as z, U } from "./component.constants-B1QqUi2G.js";
2
- import { g as J } from "./formatter.utils-B3HZzPUm.js";
3
- import { useTheme as K } from "@embeddable.com/react";
4
- import { u as X, d as G, I as H, S as Q, E as W } from "./EditorCard-CNU8sUaR.js";
5
- import { useState as g, useRef as Y, useEffect as C, useMemo as Z } from "react";
6
- import { B as ee } from "./BaseButton-Bf7IgH4E.js";
7
- /**
8
- * @license @tabler/icons-react v3.34.1 - MIT
9
- *
10
- * This source code is licensed under the MIT license.
11
- * See the LICENSE file in the root directory of this source tree.
12
- */
13
- const te = [["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" }]], se = B("outline", "square", "Square", te);
14
- /**
15
- * @license @tabler/icons-react v3.34.1 - MIT
16
- *
17
- * This source code is licensed under the MIT license.
18
- * See the LICENSE file in the root directory of this source tree.
19
- */
20
- const le = [["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" }]], ae = B("filled", "square-check-filled", "SquareCheckFilled", le), ne = "_icon_14m1u_1", oe = "_buttonMedium_14m1u_6", ce = "_buttonSmall_14m1u_14", ie = "_buttonText_14m1u_22", ue = "_buttonTextMedium_14m1u_26", re = "_buttonTextSmall_14m1u_35", x = {
21
- icon: ne,
22
- buttonMedium: oe,
23
- buttonSmall: ce,
24
- buttonText: ie,
25
- buttonTextMedium: ue,
26
- buttonTextSmall: re
27
- }, me = ({
28
- variant: r,
29
- startIcon: m,
30
- endIcon: n,
31
- children: d,
32
- size: i,
33
- ...o
34
- }) => /* @__PURE__ */ t.jsxs(
35
- ee,
36
- {
37
- variant: r,
38
- ...o,
39
- className: i === "medium" ? x.buttonMedium : x.buttonSmall,
40
- size: i,
41
- children: [
42
- m && /* @__PURE__ */ t.jsx(m, { className: x.icon }),
43
- /* @__PURE__ */ t.jsx(
44
- $,
45
- {
46
- as: "span",
47
- className: A(
48
- x.buttonText,
49
- x[`buttonText${i.charAt(0).toUpperCase() + i.slice(1)}`]
50
- ),
51
- children: d
52
- }
53
- ),
54
- n && /* @__PURE__ */ t.jsx(n, { className: x.icon })
55
- ]
56
- }
57
- ), de = "_submitButton_1e96n_1", be = {
58
- submitButton: de
59
- }, pe = ({
60
- disabled: r,
61
- isClearable: m,
62
- isLoading: n,
63
- isSearchable: d,
64
- noOptionsMessage: i,
65
- options: o,
66
- placeholder: h,
67
- submitLabel: T = "Apply",
68
- values: s = [],
69
- onChange: _,
70
- onSearch: l
71
- }) => {
72
- const [b, f] = g(!1), [S, p] = g(""), [c, u] = g(s), [F, M] = g(""), O = Y(null);
73
- X(b, O), C(() => {
74
- u(s);
75
- }, [JSON.stringify(s)]), C(() => {
76
- if (n)
77
- return;
78
- if (!s || s.length === 0) {
79
- M("");
80
- return;
81
- }
82
- const e = s.map(
83
- (a) => {
84
- var j;
85
- return ((j = o.find((D) => D.value === a)) == null ? void 0 : j.label) ?? a;
86
- }
87
- );
88
- if (e.length > 0) {
89
- const a = e.join(", ");
90
- M(`(${e.length}) ${a}`);
91
- }
92
- }, [s, o, n]);
93
- const y = Z(() => l ? G(l) : void 0, [l]), N = d && !l ? o.filter((e) => e.label.toLowerCase().includes(S.toLowerCase())) : o, I = c.every((e) => s.includes(e)) && s.every((e) => c.includes(e)), L = (e, a) => {
94
- e.preventDefault(), a && (c.includes(a) ? u(c.filter((j) => j !== a)) : u([...c, a]));
95
- }, k = (e) => {
96
- p(e), y == null || y(e);
97
- }, q = (e) => {
98
- _(e), f(!1), p(""), l == null || l("");
99
- }, P = () => {
100
- p(""), l == null || l(""), _([]);
101
- };
102
- return /* @__PURE__ */ t.jsx(
103
- R,
104
- {
105
- open: b,
106
- onOpenChange: f,
107
- disabled: r,
108
- triggerComponent: /* @__PURE__ */ t.jsx(
109
- w,
110
- {
111
- "aria-label": "Select options",
112
- placeholder: h,
113
- disabled: r,
114
- valueLabel: F,
115
- onClear: P,
116
- isClearable: m,
117
- isLoading: n
118
- }
119
- ),
120
- children: /* @__PURE__ */ t.jsxs(E, { children: [
121
- d && /* @__PURE__ */ t.jsx(
122
- V,
123
- {
124
- ref: O,
125
- startIcon: H,
126
- "aria-label": "Search options",
127
- placeholder: "Search…",
128
- role: "searchbox",
129
- value: S,
130
- onKeyDown: (e) => e.stopPropagation(),
131
- onChange: k
132
- }
133
- ),
134
- /* @__PURE__ */ t.jsxs(Q, { disabled: n, children: [
135
- N.map((e) => /* @__PURE__ */ t.jsx(
136
- v,
137
- {
138
- onClick: (a) => L(a, e.value),
139
- startIcon: c.includes(e.value) ? /* @__PURE__ */ t.jsx(ae, {}) : /* @__PURE__ */ t.jsx(se, {}),
140
- ...e
141
- },
142
- (e == null ? void 0 : e.value) ?? e.label
143
- )),
144
- i && /* @__PURE__ */ t.jsx(v, { disabled: !0, value: "empty", label: i })
145
- ] }),
146
- /* @__PURE__ */ t.jsx(
147
- me,
148
- {
149
- className: be.submitButton,
150
- disabled: I || n,
151
- variant: "primary",
152
- size: "medium",
153
- onClick: () => q(c),
154
- role: "button",
155
- children: T
156
- }
157
- )
158
- ] })
159
- }
160
- );
161
- }, xe = 200, he = (r) => {
162
- var p, c;
163
- const m = K(), n = J(m), {
164
- title: d,
165
- description: i,
166
- dimension: o,
167
- optionalSecondDimension: h,
168
- placeholder: T,
169
- results: s,
170
- selectedValues: _,
171
- setSearchValue: l,
172
- onChange: b
173
- } = z(r), f = ((p = s.data) == null ? void 0 : p.map((u) => ({
174
- value: h ? u[h.name] : u[o.name],
175
- label: n.data(o, u[o.name])
176
- }))) ?? [], S = !s.isLoading && (((c = s.data) == null ? void 0 : c.length) ?? 0) === 0;
177
- return /* @__PURE__ */ t.jsx(W, { title: d, subtitle: i, children: /* @__PURE__ */ t.jsx(
178
- pe,
179
- {
180
- isClearable: !0,
181
- isSearchable: !0,
182
- isLoading: s.isLoading,
183
- values: _ ?? [],
184
- options: f,
185
- placeholder: T,
186
- noOptionsMessage: S ? U.t("common.noOptionsFound") : void 0,
187
- onChange: (u) => b == null ? void 0 : b(u),
188
- onSearch: l
189
- }
190
- ) });
191
- }, ye = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
192
- __proto__: null,
193
- MAX_OPTIONS: xe,
194
- default: he
195
- }, Symbol.toStringTag, { value: "Module" }));
196
- export {
197
- me as B,
198
- xe as M,
199
- he as a,
200
- pe as b,
201
- ye as i
202
- };
203
- //# sourceMappingURL=index-BcXLOYYi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BcXLOYYi.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.34.1 - 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.34.1 - 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} from '../shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';\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 { 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';\n\nexport type MultiSelectFieldProps = {\n disabled?: boolean;\n isClearable?: boolean;\n isLoading?: boolean;\n isSearchable?: boolean;\n noOptionsMessage?: string;\n options: SelectListOptionProps[];\n placeholder?: string;\n submitLabel?: string;\n values?: string[];\n onChange: (value: string[]) => void;\n onSearch?: (search: string) => void;\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}) => {\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 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 return (\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 />\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 {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 && <SelectListOption disabled value=\"empty\" label={noOptionsMessage} />}\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 );\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","isOpen","setIsOpen","useState","searchValue","setSearchValue","preValues","setPreValues","selectedLabel","setSelectedLabel","searchFieldRef","useRef","useSelectSearchFocus","useEffect","selectedOptions","value","_a","o","newLabel","debouncedSearch","useMemo","debounce","displayOptions","option","isSubmitDisabled","preValue","handleSelectOption","newValue","v","handleSearch","newSearch","handleSave","newValues","handleClearAll","Dropdown","SelectButton","SelectList","TextField","IconSearch","SelectListOptions","SelectListOption","e","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]}