@embeddable.com/remarkable-ui 0.0.1

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 (166) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/ChartCard-LJ6ahXjM.js +16970 -0
  4. package/dist/ChartCard-LJ6ahXjM.js.map +1 -0
  5. package/dist/DonutChartPro.js +93 -0
  6. package/dist/DonutChartPro.js.map +1 -0
  7. package/dist/DonutLabelChartPro.js +122 -0
  8. package/dist/DonutLabelChartPro.js.map +1 -0
  9. package/dist/EditorCard-ESCNXU4p.js +62 -0
  10. package/dist/EditorCard-ESCNXU4p.js.map +1 -0
  11. package/dist/MultiSelectFieldPro.js +259 -0
  12. package/dist/MultiSelectFieldPro.js.map +1 -0
  13. package/dist/PieChartPro.js +93 -0
  14. package/dist/PieChartPro.js.map +1 -0
  15. package/dist/SingleSelectFieldPro.js +197 -0
  16. package/dist/SingleSelectFieldPro.js.map +1 -0
  17. package/dist/component.constants-DeKHmTqm.js +15141 -0
  18. package/dist/component.constants-DeKHmTqm.js.map +1 -0
  19. package/dist/embeddable-components.json +11 -0
  20. package/dist/embeddable-lifecycle.js +28 -0
  21. package/dist/embeddable-theme-294e9.js +18632 -0
  22. package/dist/embeddable-types-d41d8.js +2 -0
  23. package/dist/embeddable-types.js.map +1 -0
  24. package/dist/globalHooks.json +6 -0
  25. package/dist/index.d.ts +5 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/remarkable-pro/components/charts/charts.utils.d.ts +5 -0
  28. package/dist/remarkable-pro/components/charts/charts.utils.d.ts.map +1 -0
  29. package/dist/remarkable-pro/components/charts/pies/DonutChartPro/index.d.ts +5 -0
  30. package/dist/remarkable-pro/components/charts/pies/DonutChartPro/index.d.ts.map +1 -0
  31. package/dist/remarkable-pro/components/charts/pies/DonutLabelChartPro/index.d.ts +10 -0
  32. package/dist/remarkable-pro/components/charts/pies/DonutLabelChartPro/index.d.ts.map +1 -0
  33. package/dist/remarkable-pro/components/charts/pies/PieChartPro/index.d.ts +5 -0
  34. package/dist/remarkable-pro/components/charts/pies/PieChartPro/index.d.ts.map +1 -0
  35. package/dist/remarkable-pro/components/charts/pies/pies.types.d.ts +16 -0
  36. package/dist/remarkable-pro/components/charts/pies/pies.types.d.ts.map +1 -0
  37. package/dist/remarkable-pro/components/charts/pies/pies.utils.d.ts +17 -0
  38. package/dist/remarkable-pro/components/charts/pies/pies.utils.d.ts.map +1 -0
  39. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCard.d.ts +15 -0
  40. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCard.d.ts.map +1 -0
  41. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCard.stories.d.ts +19 -0
  42. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCard.stories.d.ts.map +1 -0
  43. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.d.ts +2 -0
  44. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.d.ts.map +1 -0
  45. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCardMenu/ChartCardMenu.d.ts +6 -0
  46. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCardMenu/ChartCardMenu.d.ts.map +1 -0
  47. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCardMenu/ChartCardMenu.stories.d.ts +15 -0
  48. package/dist/remarkable-pro/components/charts/shared/ChartCard/ChartCardMenu/ChartCardMenu.stories.d.ts.map +1 -0
  49. package/dist/remarkable-pro/components/component.constants.d.ts +97 -0
  50. package/dist/remarkable-pro/components/component.constants.d.ts.map +1 -0
  51. package/dist/remarkable-pro/components/component.utils.d.ts +2 -0
  52. package/dist/remarkable-pro/components/component.utils.d.ts.map +1 -0
  53. package/dist/remarkable-pro/components/editors/MultiSelectFieldPro/index.d.ts +17 -0
  54. package/dist/remarkable-pro/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -0
  55. package/dist/remarkable-pro/components/editors/SingleSelectFieldPro/index.d.ts +17 -0
  56. package/dist/remarkable-pro/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -0
  57. package/dist/remarkable-pro/components/editors/shared/EditorCard/EditorCard.d.ts +10 -0
  58. package/dist/remarkable-pro/components/editors/shared/EditorCard/EditorCard.d.ts.map +1 -0
  59. package/dist/remarkable-pro/components/editors/shared/EditorCard/EditorCard.stories.d.ts +12 -0
  60. package/dist/remarkable-pro/components/editors/shared/EditorCard/EditorCard.stories.d.ts.map +1 -0
  61. package/dist/remarkable-pro/theme/formatter/formatter.constants.d.ts +3 -0
  62. package/dist/remarkable-pro/theme/formatter/formatter.constants.d.ts.map +1 -0
  63. package/dist/remarkable-pro/theme/formatter/formatter.types.d.ts +19 -0
  64. package/dist/remarkable-pro/theme/formatter/formatter.types.d.ts.map +1 -0
  65. package/dist/remarkable-pro/theme/formatter/formatter.utils.d.ts +9 -0
  66. package/dist/remarkable-pro/theme/formatter/formatter.utils.d.ts.map +1 -0
  67. package/dist/remarkable-pro/theme/i18n/i18n.d.ts +5 -0
  68. package/dist/remarkable-pro/theme/i18n/i18n.d.ts.map +1 -0
  69. package/dist/remarkable-pro/theme/i18n/translations/de.d.ts +3 -0
  70. package/dist/remarkable-pro/theme/i18n/translations/de.d.ts.map +1 -0
  71. package/dist/remarkable-pro/theme/i18n/translations/en.d.ts +3 -0
  72. package/dist/remarkable-pro/theme/i18n/translations/en.d.ts.map +1 -0
  73. package/dist/remarkable-pro/theme/styles/styles.constants.d.ts +2 -0
  74. package/dist/remarkable-pro/theme/styles/styles.constants.d.ts.map +1 -0
  75. package/dist/remarkable-pro/theme/styles/styles.types.d.ts +3 -0
  76. package/dist/remarkable-pro/theme/styles/styles.types.d.ts.map +1 -0
  77. package/dist/remarkable-pro/theme/styles/styles.utils.d.ts +3 -0
  78. package/dist/remarkable-pro/theme/styles/styles.utils.d.ts.map +1 -0
  79. package/dist/remarkable-pro/theme/theme.constants.d.ts +17 -0
  80. package/dist/remarkable-pro/theme/theme.constants.d.ts.map +1 -0
  81. package/dist/remarkable-pro/theme/theme.types.d.ts +36 -0
  82. package/dist/remarkable-pro/theme/theme.types.d.ts.map +1 -0
  83. package/dist/remarkable-pro/theme/utils/export.utils.d.ts +5 -0
  84. package/dist/remarkable-pro/theme/utils/export.utils.d.ts.map +1 -0
  85. package/dist/remarkable-pro/utils.ts/cache.utils.d.ts +6 -0
  86. package/dist/remarkable-pro/utils.ts/cache.utils.d.ts.map +1 -0
  87. package/dist/remarkable-pro/utils.ts/data.utils.d.ts +2 -0
  88. package/dist/remarkable-pro/utils.ts/data.utils.d.ts.map +1 -0
  89. package/dist/remarkable-ui/charts/charts.constants.d.ts +2 -0
  90. package/dist/remarkable-ui/charts/charts.constants.d.ts.map +1 -0
  91. package/dist/remarkable-ui/charts/pies/DonutChart.d.ts +8 -0
  92. package/dist/remarkable-ui/charts/pies/DonutChart.d.ts.map +1 -0
  93. package/dist/remarkable-ui/charts/pies/DonutChart.stories.d.ts +8 -0
  94. package/dist/remarkable-ui/charts/pies/DonutChart.stories.d.ts.map +1 -0
  95. package/dist/remarkable-ui/charts/pies/PieChart.d.ts +5 -0
  96. package/dist/remarkable-ui/charts/pies/PieChart.d.ts.map +1 -0
  97. package/dist/remarkable-ui/charts/pies/PieChart.stories.d.ts +8 -0
  98. package/dist/remarkable-ui/charts/pies/PieChart.stories.d.ts.map +1 -0
  99. package/dist/remarkable-ui/charts/pies/pies.constants.d.ts +6 -0
  100. package/dist/remarkable-ui/charts/pies/pies.constants.d.ts.map +1 -0
  101. package/dist/remarkable-ui/charts/pies/pies.mock.d.ts +7 -0
  102. package/dist/remarkable-ui/charts/pies/pies.mock.d.ts.map +1 -0
  103. package/dist/remarkable-ui/charts/pies/pies.types.d.ts +8 -0
  104. package/dist/remarkable-ui/charts/pies/pies.types.d.ts.map +1 -0
  105. package/dist/remarkable-ui/charts/pies/pies.utils.d.ts +5 -0
  106. package/dist/remarkable-ui/charts/pies/pies.utils.d.ts.map +1 -0
  107. package/dist/remarkable-ui/editors/TextField/TextField.d.ts +9 -0
  108. package/dist/remarkable-ui/editors/TextField/TextField.d.ts.map +1 -0
  109. package/dist/remarkable-ui/editors/TextField/TextField.stories.d.ts +18 -0
  110. package/dist/remarkable-ui/editors/TextField/TextField.stories.d.ts.map +1 -0
  111. package/dist/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.d.ts +17 -0
  112. package/dist/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.d.ts.map +1 -0
  113. package/dist/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.stories.d.ts +11 -0
  114. package/dist/remarkable-ui/editors/select/MultiSelectField/MultiSelectField.stories.d.ts.map +1 -0
  115. package/dist/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.d.ts +16 -0
  116. package/dist/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.d.ts.map +1 -0
  117. package/dist/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.stories.d.ts +11 -0
  118. package/dist/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.stories.d.ts.map +1 -0
  119. package/dist/remarkable-ui/editors/select/shared/SelectButton/SelectButton.d.ts +8 -0
  120. package/dist/remarkable-ui/editors/select/shared/SelectButton/SelectButton.d.ts.map +1 -0
  121. package/dist/remarkable-ui/editors/select/shared/SelectList/SelectList.d.ts +8 -0
  122. package/dist/remarkable-ui/editors/select/shared/SelectList/SelectList.d.ts.map +1 -0
  123. package/dist/remarkable-ui/editors/select/shared/SelectList/SelectListOptions/SelectListOption/SelectListOption.d.ts +10 -0
  124. package/dist/remarkable-ui/editors/select/shared/SelectList/SelectListOptions/SelectListOption/SelectListOption.d.ts.map +1 -0
  125. package/dist/remarkable-ui/editors/select/shared/SelectList/SelectListOptions/SelectListOptions.d.ts +7 -0
  126. package/dist/remarkable-ui/editors/select/shared/SelectList/SelectListOptions/SelectListOptions.d.ts.map +1 -0
  127. package/dist/remarkable-ui/editors/select/shared/useSelectSearchFocus.hook.d.ts +2 -0
  128. package/dist/remarkable-ui/editors/select/shared/useSelectSearchFocus.hook.d.ts.map +1 -0
  129. package/dist/remarkable-ui/index.d.ts +19 -0
  130. package/dist/remarkable-ui/index.d.ts.map +1 -0
  131. package/dist/remarkable-ui/shared/Button/Button.d.ts +11 -0
  132. package/dist/remarkable-ui/shared/Button/Button.d.ts.map +1 -0
  133. package/dist/remarkable-ui/shared/Button/Button.stories.d.ts +17 -0
  134. package/dist/remarkable-ui/shared/Button/Button.stories.d.ts.map +1 -0
  135. package/dist/remarkable-ui/shared/Card/Card.d.ts +16 -0
  136. package/dist/remarkable-ui/shared/Card/Card.d.ts.map +1 -0
  137. package/dist/remarkable-ui/shared/Card/Card.stories.d.ts +8 -0
  138. package/dist/remarkable-ui/shared/Card/Card.stories.d.ts.map +1 -0
  139. package/dist/remarkable-ui/shared/Card/CardContentInfo/CardContentInfo.d.ts +10 -0
  140. package/dist/remarkable-ui/shared/Card/CardContentInfo/CardContentInfo.d.ts.map +1 -0
  141. package/dist/remarkable-ui/shared/Dropdown/Dropdown.d.ts +10 -0
  142. package/dist/remarkable-ui/shared/Dropdown/Dropdown.d.ts.map +1 -0
  143. package/dist/remarkable-ui/shared/Foundations/Colors.stories.d.ts +6 -0
  144. package/dist/remarkable-ui/shared/Foundations/Colors.stories.d.ts.map +1 -0
  145. package/dist/remarkable-ui/shared/IconButton/IconButton.d.ts +7 -0
  146. package/dist/remarkable-ui/shared/IconButton/IconButton.d.ts.map +1 -0
  147. package/dist/remarkable-ui/shared/IconButton/IconButton.stories.d.ts +11 -0
  148. package/dist/remarkable-ui/shared/IconButton/IconButton.stories.d.ts.map +1 -0
  149. package/dist/remarkable-ui/shared/Skeleton/Skeleton.d.ts +2 -0
  150. package/dist/remarkable-ui/shared/Skeleton/Skeleton.d.ts.map +1 -0
  151. package/dist/remarkable-ui/shared/Skeleton/Skeleton.stories.d.ts +6 -0
  152. package/dist/remarkable-ui/shared/Skeleton/Skeleton.stories.d.ts.map +1 -0
  153. package/dist/remarkable-ui/shared/Typography/Typography.d.ts +10 -0
  154. package/dist/remarkable-ui/shared/Typography/Typography.d.ts.map +1 -0
  155. package/dist/remarkable-ui/shared/Typography/Typography.stories.d.ts +9 -0
  156. package/dist/remarkable-ui/shared/Typography/Typography.stories.d.ts.map +1 -0
  157. package/dist/remarkable-ui/shared/Typography/Typography.types.d.ts +13 -0
  158. package/dist/remarkable-ui/shared/Typography/Typography.types.d.ts.map +1 -0
  159. package/dist/remarkable-ui/styles/styles.constants.d.ts +467 -0
  160. package/dist/remarkable-ui/styles/styles.constants.d.ts.map +1 -0
  161. package/dist/remarkable-ui/styles/styles.utils.d.ts +4 -0
  162. package/dist/remarkable-ui/styles/styles.utils.d.ts.map +1 -0
  163. package/dist/remarkable-ui/utils/debounce.utils.d.ts +2 -0
  164. package/dist/remarkable-ui/utils/debounce.utils.d.ts.map +1 -0
  165. package/dist/remarkable-ui.css +1 -0
  166. package/package.json +105 -0
@@ -0,0 +1,93 @@
1
+ import { i as f, r as V, m as k, j as m, P as v, d as w, a as x, b as L, t as S, c as j, s as D, e as I, f as T, g as y, V as A, l as M } from "./component.constants-DeKHmTqm.js";
2
+ import { useTheme as O, defineComponent as E } from "@embeddable.com/react";
3
+ import "react";
4
+ import { g as F, a as R, C as _ } from "./ChartCard-LJ6ahXjM.js";
5
+ const q = (e) => {
6
+ const s = O();
7
+ f(s);
8
+ const {
9
+ description: l,
10
+ dimension: t,
11
+ maxLegendItems: d,
12
+ measure: n,
13
+ results: a,
14
+ showLegend: c,
15
+ showTooltips: h,
16
+ showValueLabels: u,
17
+ title: p,
18
+ onSegmentClick: C
19
+ } = V(e), g = F({ data: a.data, dimension: t, measure: n, maxLegendItems: d }, s), P = k(
20
+ R(
21
+ {
22
+ measure: n,
23
+ showTooltips: h,
24
+ showLegend: c,
25
+ showValueLabels: u
26
+ },
27
+ s
28
+ ),
29
+ s.charts.pieChartOverrides ?? {}
30
+ ), b = (o) => {
31
+ var i, r;
32
+ C({
33
+ dimensionValue: o === void 0 || (r = (i = a.data) == null ? void 0 : i[o]) == null ? void 0 : r[t.name]
34
+ });
35
+ };
36
+ return /* @__PURE__ */ m.jsx(
37
+ _,
38
+ {
39
+ data: a,
40
+ dimensionsAndMeasures: [t, n],
41
+ errorMessage: a.error,
42
+ subtitle: l,
43
+ title: p,
44
+ children: /* @__PURE__ */ m.jsx(v, { data: g, options: P, onSegmentClick: b })
45
+ }
46
+ );
47
+ }, z = {
48
+ name: "PieChartPro",
49
+ label: "Pie Chart",
50
+ category: "Pie Charts",
51
+ inputs: [
52
+ w,
53
+ x,
54
+ L,
55
+ S,
56
+ j,
57
+ D,
58
+ I,
59
+ T,
60
+ y
61
+ ],
62
+ events: [
63
+ {
64
+ name: "onSegmentClick",
65
+ label: "A segment is clicked",
66
+ properties: [
67
+ {
68
+ name: "dimensionValue",
69
+ label: "Clicked Dimension",
70
+ type: "string"
71
+ }
72
+ ]
73
+ }
74
+ ]
75
+ }, K = E(q, z, {
76
+ props: (e) => ({
77
+ ...e,
78
+ results: M({
79
+ from: e.dataset,
80
+ select: [e.measure, e.dimension]
81
+ })
82
+ }),
83
+ events: {
84
+ onSegmentClick: (e) => ({
85
+ dimensionValue: e.dimensionValue || A.noFilter()
86
+ })
87
+ }
88
+ });
89
+ export {
90
+ K as default,
91
+ z as meta
92
+ };
93
+ //# sourceMappingURL=PieChartPro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PieChartPro.js","sources":["../src/remarkable-pro/components/charts/pies/PieChartPro/index.tsx","../src/remarkable-pro/components/charts/pies/PieChartPro/PieChartPro.emb.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { PieChart } from '../../../../../remarkable-ui';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DefaultPieChartOptions, getDefaultPieChartOptions, getPieChartData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype PieChartProProps = DefaultPieChartProps;\n\nconst PieChartPro = (props: PieChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const data = getPieChartData({ data: results.data, dimension, measure, maxLegendItems }, theme);\n\n const options = mergician(\n getDefaultPieChartOptions(\n {\n measure,\n showTooltips,\n showLegend,\n showValueLabels,\n } as DefaultPieChartOptions,\n theme,\n ),\n theme.charts.pieChartOverrides ?? {},\n );\n\n const handleSegmentClick = (index: number | undefined) => {\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <PieChart data={data} options={options} onSegmentClick={handleSegmentClick} />\n </ChartCard>\n );\n};\n\nexport default PieChartPro;\n","import { Value, loadData } from '@embeddable.com/core';\nimport { defineComponent, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\n\nimport ReadyMadePieChart from './index';\nimport {\n dimension,\n dataset,\n description,\n measure,\n maxLegendItems,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n} from '../../../component.constants';\n\nexport const meta = {\n name: 'PieChartPro',\n label: 'Pie Chart',\n category: 'Pie Charts',\n inputs: [\n dataset,\n measure,\n dimension,\n title,\n description,\n showLegend,\n maxLegendItems,\n showTooltips,\n showValueLabels,\n ],\n events: [\n {\n name: 'onSegmentClick',\n label: 'A segment is clicked',\n properties: [\n {\n name: 'dimensionValue',\n label: 'Clicked Dimension',\n type: 'string',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport default defineComponent(ReadyMadePieChart, meta, {\n props: (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n results: loadData({\n from: inputs.dataset,\n select: [inputs.measure, inputs.dimension],\n }),\n };\n },\n events: {\n onSegmentClick: (value) => {\n return {\n dimensionValue: value.dimensionValue || Value.noFilter(),\n };\n },\n },\n});\n"],"names":["PieChartPro","props","theme","useTheme","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","onSegmentClick","resolveI18nProps","data","getPieChartData","options","mergician","getDefaultPieChartOptions","handleSegmentClick","index","_b","_a","jsx","ChartCard","PieChart","meta","dataset","PieChartPro_emb","defineComponent","ReadyMadePieChart","inputs","loadData","value","Value"],"mappings":";;;;AAYA,MAAMA,IAAc,CAACC,MAA4B;AAC/C,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,IAAOC,EAAgB,EAAE,MAAMR,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA,GAAkBL,CAAK,GAExFgB,IAAUC;AAAA,IACdC;AAAA,MACE;AAAA,QACE,SAAAZ;AAAA,QACA,cAAAG;AAAA,QACA,YAAAD;AAAA,QACA,iBAAAE;AAAA,MAAA;AAAA,MAEFV;AAAA,IAAA;AAAA,IAEFA,EAAM,OAAO,qBAAqB,CAAA;AAAA,EAAC,GAG/BmB,IAAqB,CAACC,MAA8B;;AACxD,IAAAR,EAAe;AAAA,MACb,gBAAgBQ,MAAU,WAAwBC,KAAAC,IAAAf,EAAQ,SAAR,gBAAAe,EAAeF,OAAf,OAAZ,SAAYC,EAAwBjB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH;AAEA,SACEmB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMjB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,UAAUJ;AAAA,MACV,OAAAQ;AAAA,MAEA,UAAAY,gBAAAA,EAAAA,IAACE,GAAA,EAAS,MAAAX,GAAY,SAAAE,GAAkB,gBAAgBG,EAAA,CAAoB;AAAA,IAAA;AAAA,EAAA;AAGlF,GC7CaO,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC;AAAA,IACArB;AAAA,IACAF;AAAA,IACAO;AAAA,IACAR;AAAA,IACAK;AAAA,IACAH;AAAA,IACAI;AAAA,IACAC;AAAA,EAAA;AAAA,EAEF,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAEAkB,IAAeC,EAAgBC,GAAmBJ,GAAM;AAAA,EACtD,OAAO,CAACK,OACC;AAAA,IACL,GAAGA;AAAA,IACH,SAASC,EAAS;AAAA,MAChB,MAAMD,EAAO;AAAA,MACb,QAAQ,CAACA,EAAO,SAASA,EAAO,SAAS;AAAA,IAAA,CAC1C;AAAA,EAAA;AAAA,EAGL,QAAQ;AAAA,IACN,gBAAgB,CAACE,OACR;AAAA,MACL,gBAAgBA,EAAM,kBAAkBC,EAAM,SAAA;AAAA,IAAS;AAAA,EAE3D;AAEJ,CAAC;"}
@@ -0,0 +1,197 @@
1
+ import { useTheme as P, defineComponent as I } from "@embeddable.com/react";
2
+ import { j as n, q as E, S as M, B as T, u as F, E as q, r as w, h as B, n as R, d as A, b as y, t as N, c as _, F as k, V, l as H } from "./component.constants-DeKHmTqm.js";
3
+ import { useState as C, useRef as K, useEffect as W, useMemo as X } from "react";
4
+ import { u as z, d as G, I as J, S as Q, E as U } from "./EditorCard-ESCNXU4p.js";
5
+ const Y = ({
6
+ value: a = "",
7
+ options: l,
8
+ disabled: i,
9
+ placeholder: c,
10
+ isSearchable: r,
11
+ isClearable: u,
12
+ isLoading: m,
13
+ noOptionsMessage: f,
14
+ onChange: d,
15
+ onSearch: s
16
+ }) => {
17
+ const [g, p] = C(!1), [h, b] = C(""), [S, o] = C(a), t = K(null);
18
+ z(g, t), W(() => {
19
+ if (!a) {
20
+ o("");
21
+ return;
22
+ }
23
+ const e = l.find((v) => v.value === a);
24
+ e && o(e.label);
25
+ }, [a, l]);
26
+ const x = X(() => s ? G(s) : void 0, [s]), j = r && !s ? l.filter((e) => e.label.toLowerCase().includes(h.toLowerCase())) : l, O = (e) => {
27
+ if (b(""), d(e ?? ""), s == null || s(""), e === "")
28
+ o("");
29
+ else {
30
+ const v = l.find((D) => D.value === e);
31
+ v && o(v.label);
32
+ }
33
+ }, L = (e) => {
34
+ b(e), x == null || x(e);
35
+ };
36
+ return /* @__PURE__ */ n.jsx(
37
+ E,
38
+ {
39
+ open: g,
40
+ onOpenChange: p,
41
+ disabled: i,
42
+ triggerComponent: /* @__PURE__ */ n.jsx(
43
+ q,
44
+ {
45
+ "aria-label": "Select option",
46
+ placeholder: c,
47
+ disabled: i,
48
+ valueLabel: S,
49
+ onClear: () => O(""),
50
+ isClearable: u,
51
+ isLoading: m
52
+ }
53
+ ),
54
+ children: /* @__PURE__ */ n.jsxs(M, { children: [
55
+ r && /* @__PURE__ */ n.jsx(
56
+ T,
57
+ {
58
+ ref: t,
59
+ startIcon: J,
60
+ "aria-label": "Search options",
61
+ placeholder: "Search…",
62
+ role: "searchbox",
63
+ value: h,
64
+ onKeyDown: (e) => e.stopPropagation(),
65
+ onChange: L
66
+ }
67
+ ),
68
+ /* @__PURE__ */ n.jsxs(Q, { disabled: m, children: [
69
+ j.map((e) => /* @__PURE__ */ n.jsx(
70
+ F,
71
+ {
72
+ onClick: () => O(e == null ? void 0 : e.value),
73
+ ...e
74
+ },
75
+ (e == null ? void 0 : e.value) ?? e.label
76
+ )),
77
+ f && /* @__PURE__ */ n.jsx(F, { disabled: !0, value: "empty", label: f })
78
+ ] })
79
+ ] })
80
+ }
81
+ );
82
+ }, Z = 200, $ = (a) => {
83
+ var S, o;
84
+ const l = P(), i = B(l), {
85
+ title: c,
86
+ description: r,
87
+ dimension: u,
88
+ optionalSecondDimension: m,
89
+ placeholder: f,
90
+ results: d,
91
+ selectedValue: s,
92
+ setSearchValue: g,
93
+ onChange: p
94
+ } = w(a), h = ((S = d.data) == null ? void 0 : S.map((t) => ({
95
+ value: m ? t[m.name] : t[u.name],
96
+ label: i.data(u, t[u.name])
97
+ }))) ?? [], b = !d.isLoading && (((o = d.data) == null ? void 0 : o.length) ?? 0) === 0;
98
+ return /* @__PURE__ */ n.jsx(U, { title: c, subtitle: r, children: /* @__PURE__ */ n.jsx(
99
+ Y,
100
+ {
101
+ isClearable: !0,
102
+ isSearchable: !0,
103
+ isLoading: d.isLoading,
104
+ value: s,
105
+ options: h,
106
+ placeholder: f,
107
+ noOptionsMessage: b ? R.t("common.noOptionsFound") : void 0,
108
+ onChange: (t) => p == null ? void 0 : p(t),
109
+ onSearch: g
110
+ }
111
+ ) });
112
+ }, ee = {
113
+ name: "SingleSelectFieldPro",
114
+ label: "Single Select Field",
115
+ category: "Dropdowns",
116
+ defaultWidth: 200,
117
+ defaultHeight: 40,
118
+ inputs: [
119
+ A,
120
+ { ...y, label: "Dimension (to load Dropdown values)" },
121
+ {
122
+ ...y,
123
+ required: !1,
124
+ name: "optionalSecondDimension",
125
+ label: "Optional second dimension for filtering",
126
+ description: "A hidden dimension applied for filtering instead of the main dimension. Must be unique."
127
+ },
128
+ N,
129
+ _,
130
+ { ...k, defaultValue: "Select value..." },
131
+ {
132
+ name: "selectedValue",
133
+ type: "string",
134
+ label: "Selected Value",
135
+ category: "Pre-configured variables"
136
+ },
137
+ {
138
+ name: "maxOptions",
139
+ type: "number",
140
+ label: "Maximum options",
141
+ category: "Pre-configured variables",
142
+ defaultValue: Z
143
+ }
144
+ ],
145
+ events: [
146
+ {
147
+ name: "onChange",
148
+ label: "Change",
149
+ properties: [
150
+ {
151
+ name: "value",
152
+ type: "string"
153
+ }
154
+ ]
155
+ }
156
+ ],
157
+ variables: [
158
+ {
159
+ name: "Single-select value",
160
+ type: "string",
161
+ defaultValue: V.noFilter(),
162
+ inputs: ["selectedValue"],
163
+ events: [{ name: "onChange", property: "value" }]
164
+ }
165
+ ]
166
+ }, te = I($, ee, {
167
+ props: (a, [l, i]) => {
168
+ const c = a.dimension.nativeType === "string" ? "contains" : "equals";
169
+ return {
170
+ ...a,
171
+ maxOptions: a.maxOptions,
172
+ setSearchValue: (r) => i({ searchValue: r }),
173
+ results: H({
174
+ limit: a.maxOptions,
175
+ from: a.dataset,
176
+ select: [a.dimension, a.optionalSecondDimension].filter(Boolean),
177
+ filters: l != null && l.searchValue ? [
178
+ {
179
+ operator: c,
180
+ property: a.dimension,
181
+ value: l.searchValue
182
+ }
183
+ ] : void 0
184
+ })
185
+ };
186
+ },
187
+ events: {
188
+ onChange: (a) => ({
189
+ value: a || V.noFilter()
190
+ })
191
+ }
192
+ });
193
+ export {
194
+ te as default,
195
+ ee as meta
196
+ };
197
+ //# sourceMappingURL=SingleSelectFieldPro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleSelectFieldPro.js","sources":["../src/remarkable-ui/editors/select/SingleSelectField/SingleSelectField.tsx","../src/remarkable-pro/components/editors/SingleSelectFieldPro/index.tsx","../src/remarkable-pro/components/editors/SingleSelectFieldPro/SingleSelectFieldPro.emb.ts"],"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} from '../shared/SelectList/SelectListOptions/SelectListOption/SelectListOption';\nimport { debounce } from '../../../utils/debounce.utils';\nimport { IconSearch } from '@tabler/icons-react';\nimport { useSelectSearchFocus } from '../shared/useSelectSearchFocus.hook';\n\nexport type SingleSelectFieldProps = {\n options: SelectListOptionProps[];\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};\n\nexport const SingleSelectField: FC<SingleSelectFieldProps> = ({\n value = '',\n options,\n disabled,\n placeholder,\n isSearchable,\n isClearable,\n isLoading,\n noOptionsMessage,\n onChange,\n onSearch,\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 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 return (\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n disabled={disabled}\n triggerComponent={\n <SelectButton\n aria-label=\"Select option\"\n placeholder={placeholder}\n disabled={disabled}\n valueLabel={selectedLabel}\n onClear={() => handleChange('')}\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={() => handleChange(option?.value)}\n {...option}\n />\n ))}\n {noOptionsMessage && <SelectListOption disabled value=\"empty\" label={noOptionsMessage} />}\n </SelectListOptions>\n </SelectList>\n </Dropdown>\n );\n};\n","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","import { defineComponent, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport { Value, loadData } from '@embeddable.com/core';\nimport { dataset, description, dimension, placeholder, title } from '../../component.constants';\nimport SingleSelectFieldPro, { MAX_OPTIONS } from '.';\n\nexport const meta = {\n name: 'SingleSelectFieldPro',\n label: 'Single Select Field',\n category: 'Dropdowns',\n defaultWidth: 200,\n defaultHeight: 40,\n inputs: [\n dataset,\n { ...dimension, label: 'Dimension (to load Dropdown values)' },\n {\n ...dimension,\n required: false,\n name: 'optionalSecondDimension',\n label: 'Optional second dimension for filtering',\n description:\n 'A hidden dimension applied for filtering instead of the main dimension. Must be unique.',\n },\n title,\n description,\n { ...placeholder, defaultValue: 'Select value...' },\n {\n name: 'selectedValue',\n type: 'string',\n label: 'Selected Value',\n category: 'Pre-configured variables',\n },\n {\n name: 'maxOptions',\n type: 'number',\n label: 'Maximum options',\n category: 'Pre-configured variables',\n defaultValue: MAX_OPTIONS,\n },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Change',\n properties: [\n {\n name: 'value',\n type: 'string',\n },\n ],\n },\n ],\n variables: [\n {\n name: 'Single-select value',\n type: 'string',\n defaultValue: Value.noFilter(),\n inputs: ['selectedValue'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\ntype SingleSelectDropdownState = {\n searchValue?: string;\n};\n\nexport default defineComponent(SingleSelectFieldPro, meta, {\n props: (\n inputs: Inputs<typeof meta>,\n [state, setState]: [SingleSelectDropdownState, (state: SingleSelectDropdownState) => void],\n ) => {\n const operator = inputs.dimension.nativeType === 'string' ? 'contains' : 'equals';\n return {\n ...inputs,\n maxOptions: inputs.maxOptions,\n setSearchValue: (searchValue: string) => setState({ searchValue: searchValue }),\n results: loadData({\n limit: inputs.maxOptions,\n from: inputs.dataset,\n select: [inputs.dimension, inputs.optionalSecondDimension].filter(Boolean),\n filters: state?.searchValue\n ? [\n {\n operator,\n property: inputs.dimension,\n value: state.searchValue,\n },\n ]\n : undefined,\n }),\n };\n },\n events: {\n onChange: (selectedValue: string) => {\n return {\n value: selectedValue || Value.noFilter(),\n };\n },\n },\n});\n"],"names":["SingleSelectField","value","options","disabled","placeholder","isSearchable","isClearable","isLoading","noOptionsMessage","onChange","onSearch","isOpen","setIsOpen","useState","searchValue","setSearchValue","selectedLabel","setSelectedLabel","searchFieldRef","useRef","useSelectSearchFocus","useEffect","option","opt","debouncedSearch","useMemo","debounce","displayOptions","handleChange","newValue","handleSearch","newSearch","jsx","Dropdown","SelectButton","SelectList","TextField","IconSearch","jsxs","SelectListOptions","SelectListOption","MAX_OPTIONS","SingleSelectFieldPro","props","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","results","selectedValue","resolveI18nProps","_a","data","showNoOptionsMessage","_b","EditorCard","i18n","meta","dataset","Value","SingleSelectFieldPro_emb","defineComponent","inputs","state","setState","operator","loadData"],"mappings":"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"}