@carto/ps-react-ui 4.4.2 → 4.5.0

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 (157) hide show
  1. package/dist/download-config-DemuQ3Jm.js +56 -0
  2. package/dist/download-config-DemuQ3Jm.js.map +1 -0
  3. package/dist/error-Cj8eUMrl.js +40 -0
  4. package/dist/error-Cj8eUMrl.js.map +1 -0
  5. package/dist/formatter-B9Bxn1k7.js +6 -0
  6. package/dist/formatter-B9Bxn1k7.js.map +1 -0
  7. package/dist/no-data-DkIt7Qt1.js +61 -0
  8. package/dist/no-data-DkIt7Qt1.js.map +1 -0
  9. package/dist/row-D4VOhcNI.js +34 -0
  10. package/dist/row-D4VOhcNI.js.map +1 -0
  11. package/dist/series-Bola3CmD.js +90 -0
  12. package/dist/series-Bola3CmD.js.map +1 -0
  13. package/dist/styles-Y8q7Jff3.js +118 -0
  14. package/dist/styles-Y8q7Jff3.js.map +1 -0
  15. package/dist/types/widgets/actions/brush-toggle/types.d.ts +8 -2
  16. package/dist/types/widgets/category/components/category-row-multi.d.ts +2 -1
  17. package/dist/types/widgets/category/components/category-row-single.d.ts +2 -1
  18. package/dist/types/widgets/category/types.d.ts +1 -0
  19. package/dist/types/widgets/echart/shared-resize-observer.d.ts +12 -0
  20. package/dist/types/widgets/echart/types.d.ts +2 -0
  21. package/dist/types/widgets/histogram/config.d.ts +15 -3
  22. package/dist/types/widgets/histogram/index.d.ts +2 -1
  23. package/dist/types/widgets/histogram/types.d.ts +6 -3
  24. package/dist/types/widgets/stores/index.d.ts +2 -1
  25. package/dist/types/widgets/stores/types.d.ts +2 -0
  26. package/dist/types/widgets/stores/use-widget-selector.d.ts +35 -0
  27. package/dist/types/widgets/stores/widget-store-performance.test.d.ts +1 -0
  28. package/dist/types/widgets/stores/widget-store.d.ts +49 -27
  29. package/dist/types/widgets/table/types.d.ts +1 -1
  30. package/dist/types/widgets/utils/chart-config/index.d.ts +1 -1
  31. package/dist/types/widgets/utils/chart-config/option-builders.d.ts +13 -8
  32. package/dist/types/widgets/utils/formatter.d.ts +1 -0
  33. package/dist/types/widgets/utils/index.d.ts +1 -1
  34. package/dist/use-widget-ref-BFazQvJK.js +22 -0
  35. package/dist/use-widget-ref-BFazQvJK.js.map +1 -0
  36. package/dist/use-widget-selector-DqRmWQ1K.js +12 -0
  37. package/dist/use-widget-selector-DqRmWQ1K.js.map +1 -0
  38. package/dist/widget-store-CIrb9RKP.js +263 -0
  39. package/dist/widget-store-CIrb9RKP.js.map +1 -0
  40. package/dist/widgets/actions.js +799 -817
  41. package/dist/widgets/actions.js.map +1 -1
  42. package/dist/widgets/bar.js +53 -47
  43. package/dist/widgets/bar.js.map +1 -1
  44. package/dist/widgets/category.js +261 -255
  45. package/dist/widgets/category.js.map +1 -1
  46. package/dist/widgets/echart.js +109 -99
  47. package/dist/widgets/echart.js.map +1 -1
  48. package/dist/widgets/error.js +1 -1
  49. package/dist/widgets/formula.js +71 -63
  50. package/dist/widgets/formula.js.map +1 -1
  51. package/dist/widgets/histogram.js +119 -80
  52. package/dist/widgets/histogram.js.map +1 -1
  53. package/dist/widgets/loader.js +53 -60
  54. package/dist/widgets/loader.js.map +1 -1
  55. package/dist/widgets/markdown.js +51 -50
  56. package/dist/widgets/markdown.js.map +1 -1
  57. package/dist/widgets/no-data.js +1 -1
  58. package/dist/widgets/pie.js +111 -99
  59. package/dist/widgets/pie.js.map +1 -1
  60. package/dist/widgets/range.js +146 -144
  61. package/dist/widgets/range.js.map +1 -1
  62. package/dist/widgets/scatterplot.js +50 -44
  63. package/dist/widgets/scatterplot.js.map +1 -1
  64. package/dist/widgets/skeleton-loader.js +18 -17
  65. package/dist/widgets/skeleton-loader.js.map +1 -1
  66. package/dist/widgets/spread.js +110 -94
  67. package/dist/widgets/spread.js.map +1 -1
  68. package/dist/widgets/stores.js +5 -2
  69. package/dist/widgets/stores.js.map +1 -1
  70. package/dist/widgets/table.js +422 -436
  71. package/dist/widgets/table.js.map +1 -1
  72. package/dist/widgets/timeseries.js +52 -46
  73. package/dist/widgets/timeseries.js.map +1 -1
  74. package/dist/widgets/toolbar-actions.js +101 -6693
  75. package/dist/widgets/toolbar-actions.js.map +1 -1
  76. package/dist/widgets/utils.js +16 -14
  77. package/dist/widgets/utils.js.map +1 -1
  78. package/dist/widgets/wrapper.js +156 -158
  79. package/dist/widgets/wrapper.js.map +1 -1
  80. package/dist/widgets.js +4 -4
  81. package/package.json +5 -4
  82. package/src/hooks/use-widget-ref.ts +3 -4
  83. package/src/widgets/README.md +3 -3
  84. package/src/widgets/actions/brush-toggle/brush-toggle.tsx +60 -79
  85. package/src/widgets/actions/brush-toggle/types.ts +8 -2
  86. package/src/widgets/actions/change-column/change-column.tsx +15 -15
  87. package/src/widgets/actions/change-column/sortable-column-item.tsx +3 -1
  88. package/src/widgets/actions/download/download.tsx +4 -3
  89. package/src/widgets/actions/fullscreen/fullscreen.tsx +7 -11
  90. package/src/widgets/actions/lock-selection/lock-selection.tsx +12 -15
  91. package/src/widgets/actions/relative-data/relative-data.tsx +22 -26
  92. package/src/widgets/actions/searcher/searcher-toggle.tsx +11 -12
  93. package/src/widgets/actions/searcher/searcher.tsx +20 -21
  94. package/src/widgets/actions/stack-toggle/stack-toggle.tsx +15 -21
  95. package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +27 -43
  96. package/src/widgets/bar/config.ts +22 -14
  97. package/src/widgets/category/category-ui.tsx +31 -27
  98. package/src/widgets/category/components/category-row-multi.tsx +6 -2
  99. package/src/widgets/category/components/category-row-single.tsx +5 -1
  100. package/src/widgets/category/types.ts +1 -0
  101. package/src/widgets/echart/echart-ui.test.tsx +20 -16
  102. package/src/widgets/echart/echart-ui.tsx +6 -12
  103. package/src/widgets/echart/echart.tsx +13 -27
  104. package/src/widgets/echart/shared-resize-observer.ts +45 -0
  105. package/src/widgets/echart/types.ts +2 -0
  106. package/src/widgets/error/error.tsx +7 -9
  107. package/src/widgets/formula/components/prefix.tsx +4 -6
  108. package/src/widgets/formula/components/row.tsx +4 -4
  109. package/src/widgets/formula/components/series.tsx +4 -6
  110. package/src/widgets/formula/components/suffix.tsx +4 -6
  111. package/src/widgets/formula/components/value.tsx +9 -16
  112. package/src/widgets/histogram/config.ts +101 -20
  113. package/src/widgets/histogram/index.ts +6 -1
  114. package/src/widgets/histogram/types.ts +9 -3
  115. package/src/widgets/loader/loader.tsx +31 -44
  116. package/src/widgets/markdown/markdown.tsx +4 -7
  117. package/src/widgets/no-data/no-data.tsx +7 -10
  118. package/src/widgets/pie/config.ts +17 -5
  119. package/src/widgets/range/components/range-item.tsx +20 -18
  120. package/src/widgets/scatterplot/config.ts +8 -3
  121. package/src/widgets/skeleton-loader/skeleton-loader.tsx +2 -5
  122. package/src/widgets/spread/components/max-value.tsx +14 -16
  123. package/src/widgets/spread/components/min-value.tsx +14 -16
  124. package/src/widgets/stores/index.ts +2 -1
  125. package/src/widgets/stores/types.ts +2 -0
  126. package/src/widgets/stores/use-widget-selector.ts +47 -0
  127. package/src/widgets/stores/widget-store-performance.test.ts +750 -0
  128. package/src/widgets/stores/widget-store.test.ts +81 -0
  129. package/src/widgets/stores/widget-store.ts +225 -44
  130. package/src/widgets/table/config.ts +0 -1
  131. package/src/widgets/table/hooks/use-pagination.ts +28 -52
  132. package/src/widgets/table/hooks/use-selection.ts +20 -24
  133. package/src/widgets/table/hooks/use-sort.ts +22 -39
  134. package/src/widgets/table/types.ts +1 -1
  135. package/src/widgets/timeseries/config.ts +21 -13
  136. package/src/widgets/utils/chart-config/index.ts +1 -1
  137. package/src/widgets/utils/chart-config/option-builders.ts +22 -12
  138. package/src/widgets/utils/formatter.ts +2 -1
  139. package/src/widgets/utils/index.ts +1 -1
  140. package/src/widgets/wrapper/wrapper-ui.tsx +12 -13
  141. package/src/widgets/wrapper/wrapper.tsx +4 -6
  142. package/dist/error-CEkRPccv.js +0 -39
  143. package/dist/error-CEkRPccv.js.map +0 -1
  144. package/dist/formatter-B1Xh8XDH.js +0 -5
  145. package/dist/formatter-B1Xh8XDH.js.map +0 -1
  146. package/dist/no-data-hR3KcJ-_.js +0 -60
  147. package/dist/no-data-hR3KcJ-_.js.map +0 -1
  148. package/dist/row-DTCV0Ocm.js +0 -35
  149. package/dist/row-DTCV0Ocm.js.map +0 -1
  150. package/dist/series-CYNOu2Ju.js +0 -91
  151. package/dist/series-CYNOu2Ju.js.map +0 -1
  152. package/dist/styles-C_8vOEep.js +0 -167
  153. package/dist/styles-C_8vOEep.js.map +0 -1
  154. package/dist/use-widget-ref-wtFLDFCD.js +0 -25
  155. package/dist/use-widget-ref-wtFLDFCD.js.map +0 -1
  156. package/dist/widget-store-CzDt8oSK.js +0 -163
  157. package/dist/widget-store-CzDt8oSK.js.map +0 -1
@@ -1,5 +1,6 @@
1
- import { d as i } from "../formatter-B1Xh8XDH.js";
2
- import { a as l, b as p, c, d as f, e as d, f as m, g as u, h as C, i as b, j as g, n as x, s as F } from "../styles-C_8vOEep.js";
1
+ import { d as i, a as n } from "../formatter-B9Bxn1k7.js";
2
+ import { c as f, f as p, s as c } from "../download-config-DemuQ3Jm.js";
3
+ import { a as m, b as u, c as C, d as b, e as x, f as g, g as F, h as y, n as A } from "../styles-Y8q7Jff3.js";
3
4
  function r({
4
5
  type: a,
5
6
  getOptions: e
@@ -13,19 +14,20 @@ function r({
13
14
  };
14
15
  }
15
16
  export {
16
- l as applyXAxisFormatter,
17
- p as applyYAxisFormatter,
18
- c as baseSkeletonStyles,
19
- f as buildGridConfig,
20
- d as buildLegendConfig,
21
- m as createAxisLabelFormatter,
22
- u as createChartDownloadConfig,
17
+ m as applyXAxisFormatter,
18
+ u as applyYAxisFormatter,
19
+ C as baseSkeletonStyles,
20
+ b as buildGridConfig,
21
+ x as buildLegendConfig,
22
+ g as createAxisLabelFormatter,
23
+ f as createChartDownloadConfig,
23
24
  r as createChartWidgetConfig,
24
- C as createTooltipFormatter,
25
- b as createTooltipPositioner,
25
+ F as createTooltipFormatter,
26
+ y as createTooltipPositioner,
26
27
  i as defaultFormatter,
27
- g as flattenObjectArrayToCSV,
28
- x as niceNum,
29
- F as scatterplotDataToCSV
28
+ n as defaultLabelFormatter,
29
+ p as flattenObjectArrayToCSV,
30
+ A as niceNum,
31
+ c as scatterplotDataToCSV
30
32
  };
31
33
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/widgets/utils/chart-config/config-factory.ts"],"sourcesContent":["import type { EchartOptionsProps, EchartWidgetData } from '../../echart'\n\n/**\n * Base configuration interface for chart widgets\n */\nexport interface ChartWidgetBaseConfig<TData = EchartWidgetData> {\n data?: TData\n}\n\n/**\n * Parameters for creating a chart widget configuration\n */\nexport interface CreateChartWidgetConfigParams<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n> {\n /** Widget type identifier (e.g., 'bar', 'pie', 'histogram') */\n type: TType\n /** Function to get EChart options from config */\n getOptions: (config: TConfig) => EchartOptionsProps\n}\n\n/**\n * Return type of the chart widget config function\n */\nexport type ChartWidgetConfigResult<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n> = TConfig & {\n type: TType\n}\n\n/**\n * Factory function to create a standardized chart widget config function.\n * This eliminates duplication across chart widgets by providing a common structure.\n *\n * @example\n * ```ts\n * export const barConfig = createChartWidgetConfig({\n * type: 'bar' as const,\n * getOptions: ({ data, theme }) => ({\n * // EChart configuration\n * }),\n * csvModifier: (data) => flattenObjectArrayToCSV(data),\n * })\n * ```\n */\nexport function createChartWidgetConfig<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n>({\n type,\n getOptions,\n}: CreateChartWidgetConfigParams<TData, TConfig, TType>): (\n config: TConfig,\n) => ChartWidgetConfigResult<TData, TConfig, TType> {\n return function (config: TConfig) {\n return {\n ...config,\n option: getOptions(config),\n type: type,\n } as ChartWidgetConfigResult<TData, TConfig, TType>\n }\n}\n"],"names":["createChartWidgetConfig","type","getOptions","config","option"],"mappings":";;AAiDO,SAASA,EAId;AAAA,EACAC,MAAAA;AAAAA,EACAC,YAAAA;AACoD,GAEF;AAClD,SAAO,SAAUC,GAAiB;AAChC,WAAO;AAAA,MACL,GAAGA;AAAAA,MACHC,QAAQF,EAAWC,CAAM;AAAA,MACzBF,MAAAA;AAAAA,IAAAA;AAAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/widgets/utils/chart-config/config-factory.ts"],"sourcesContent":["import type { EchartOptionsProps, EchartWidgetData } from '../../echart'\n\n/**\n * Base configuration interface for chart widgets\n */\nexport interface ChartWidgetBaseConfig<TData = EchartWidgetData> {\n data?: TData\n}\n\n/**\n * Parameters for creating a chart widget configuration\n */\nexport interface CreateChartWidgetConfigParams<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n> {\n /** Widget type identifier (e.g., 'bar', 'pie', 'histogram') */\n type: TType\n /** Function to get EChart options from config */\n getOptions: (config: TConfig) => EchartOptionsProps\n}\n\n/**\n * Return type of the chart widget config function\n */\nexport type ChartWidgetConfigResult<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n> = TConfig & {\n type: TType\n}\n\n/**\n * Factory function to create a standardized chart widget config function.\n * This eliminates duplication across chart widgets by providing a common structure.\n *\n * @example\n * ```ts\n * export const barConfig = createChartWidgetConfig({\n * type: 'bar' as const,\n * getOptions: ({ data, theme }) => ({\n * // EChart configuration\n * }),\n * csvModifier: (data) => flattenObjectArrayToCSV(data),\n * })\n * ```\n */\nexport function createChartWidgetConfig<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n>({\n type,\n getOptions,\n}: CreateChartWidgetConfigParams<TData, TConfig, TType>): (\n config: TConfig,\n) => ChartWidgetConfigResult<TData, TConfig, TType> {\n return function (config: TConfig) {\n return {\n ...config,\n option: getOptions(config),\n type: type,\n } as ChartWidgetConfigResult<TData, TConfig, TType>\n }\n}\n"],"names":["createChartWidgetConfig","type","getOptions","config","option"],"mappings":";;;AAiDO,SAASA,EAId;AAAA,EACAC,MAAAA;AAAAA,EACAC,YAAAA;AACoD,GAEF;AAClD,SAAO,SAAUC,GAAiB;AAChC,WAAO;AAAA,MACL,GAAGA;AAAAA,MACHC,QAAQF,EAAWC,CAAM;AAAA,MACzBF,MAAAA;AAAAA,IAAAA;AAAAA,EAEJ;AACF;"}
@@ -1,14 +1,14 @@
1
- import { jsx as a, jsxs as B, Fragment as N } from "react/jsx-runtime";
2
- import { c as _ } from "react/compiler-runtime";
3
- import { Box as L, IconButton as j, MenuItem as z, ListItemIcon as Y, ListItemText as F, Menu as D, Typography as H, LinearProgress as G, AccordionSummary as U, AccordionDetails as V, Accordion as q } from "@mui/material";
4
- import { MoreVert as J } from "@mui/icons-material";
5
- import { useState as K, useLayoutEffect as Q } from "react";
1
+ import { jsx as p, jsxs as A, Fragment as P } from "react/jsx-runtime";
2
+ import { c as w } from "react/compiler-runtime";
3
+ import { Box as E, IconButton as _, MenuItem as W, ListItemIcon as $, ListItemText as B, Menu as L, Typography as N, LinearProgress as j, AccordionSummary as z, AccordionDetails as F, Accordion as Y } from "@mui/material";
4
+ import { MoreVert as D } from "@mui/icons-material";
5
+ import { useState as H, useLayoutEffect as G } from "react";
6
6
  import "../lasso-tool-BYbxrJ-7.js";
7
7
  import "../cjs-D4KH3azB.js";
8
- import { S as R } from "../smart-tooltip-D4vwQpFf.js";
9
- import { u as P } from "../widget-store-CzDt8oSK.js";
10
- import { useShallow as $ } from "zustand/shallow";
11
- const T = {
8
+ import { S as U } from "../smart-tooltip-D4vwQpFf.js";
9
+ import { u as V } from "../use-widget-selector-DqRmWQ1K.js";
10
+ import { w as M } from "../widget-store-CIrb9RKP.js";
11
+ const k = {
12
12
  root: {
13
13
  ".Mui-disabled .MuiAccordionSummary-expandIconWrapper": {
14
14
  display: "none"
@@ -108,178 +108,176 @@ const T = {
108
108
  spacing: t
109
109
  }) => t(0.5)
110
110
  }
111
- }, X = [];
112
- function Z(t) {
113
- const e = _(4), {
114
- actions: n
115
- } = t, o = n === void 0 ? X : n;
116
- let l;
117
- e[0] !== o ? (l = o.map(ee), e[0] = o, e[1] = l) : l = e[1];
118
- let i;
119
- return e[2] !== l ? (i = /* @__PURE__ */ a(L, { sx: T.actions, className: "widget-wrapper-actions", children: l }), e[2] = l, e[3] = i) : i = e[3], i;
111
+ }, q = [];
112
+ function J(t) {
113
+ const e = w(4), {
114
+ actions: i
115
+ } = t, l = i === void 0 ? q : i;
116
+ let n;
117
+ e[0] !== l ? (n = l.map(K), e[0] = l, e[1] = n) : n = e[1];
118
+ let o;
119
+ return e[2] !== n ? (o = /* @__PURE__ */ p(E, { sx: k.actions, className: "widget-wrapper-actions", children: n }), e[2] = n, e[3] = o) : o = e[3], o;
120
120
  }
121
- function ee(t, e) {
122
- const n = t && typeof t == "object" && "key" in t && t.key != null ? t.key : e;
123
- return /* @__PURE__ */ a(L, { onClick: te, children: t }, n);
121
+ function K(t, e) {
122
+ const i = t && typeof t == "object" && "key" in t && t.key != null ? t.key : e;
123
+ return /* @__PURE__ */ p(E, { onClick: Q, children: t }, i);
124
124
  }
125
- function te(t) {
125
+ function Q(t) {
126
126
  t.stopPropagation();
127
127
  }
128
- const oe = [];
129
- function ie(t) {
130
- const e = _(19), {
131
- labels: n,
132
- options: o
133
- } = t, l = o === void 0 ? oe : o, [i, r] = K(null);
128
+ const R = [];
129
+ function X(t) {
130
+ const e = w(19), {
131
+ labels: i,
132
+ options: l
133
+ } = t, n = l === void 0 ? R : l, [o, s] = H(null);
134
+ let f;
135
+ e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = (c, d) => {
136
+ c.stopPropagation(), d.onClick(), s(null);
137
+ }, e[0] = f) : f = e[0];
138
+ const v = f, x = i?.title ?? "Options";
139
+ let h, b;
140
+ e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (h = (c) => {
141
+ c.stopPropagation(), s(c.currentTarget);
142
+ }, b = /* @__PURE__ */ p(D, {}), e[1] = h, e[2] = b) : (h = e[1], b = e[2]);
134
143
  let m;
135
- e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = (y, c) => {
136
- y.stopPropagation(), c.onClick(), r(null);
137
- }, e[0] = m) : m = e[0];
138
- const S = m, x = n?.title ?? "Options";
139
- let f, g;
140
- e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = (y) => {
141
- y.stopPropagation(), r(y.currentTarget);
142
- }, g = /* @__PURE__ */ a(J, {}), e[1] = f, e[2] = g) : (f = e[1], g = e[2]);
143
- let s;
144
- e[3] !== x ? (s = /* @__PURE__ */ a(j, { sx: T.options.trigger, size: "small", "aria-label": x, "aria-controls": "options-menu", "aria-haspopup": "true", onClick: f, children: g }), e[3] = x, e[4] = s) : s = e[4];
145
- let d, b;
146
- e[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (d = {
144
+ e[3] !== x ? (m = /* @__PURE__ */ p(_, { sx: k.options.trigger, size: "small", "aria-label": x, "aria-controls": "options-menu", "aria-haspopup": "true", onClick: h, children: b }), e[3] = x, e[4] = m) : m = e[4];
145
+ let u, g;
146
+ e[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (u = {
147
147
  vertical: "top",
148
148
  horizontal: "right"
149
- }, b = {
149
+ }, g = {
150
150
  vertical: "top",
151
151
  horizontal: "right"
152
- }, e[5] = d, e[6] = b) : (d = e[5], b = e[6]);
153
- const h = !!i;
154
- let v, p;
155
- e[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (v = () => r(null), p = {
152
+ }, e[5] = u, e[6] = g) : (u = e[5], g = e[6]);
153
+ const C = !!o;
154
+ let r, I;
155
+ e[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (r = () => s(null), I = {
156
156
  sx: {
157
157
  paddingBottom: 0
158
158
  }
159
- }, e[7] = v, e[8] = p) : (v = e[7], p = e[8]);
160
- let C;
161
- if (e[9] !== l) {
162
- let y;
163
- e[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (y = (c) => /* @__PURE__ */ B(z, { disabled: c.disabled, onClick: (w) => S(w, c), children: [
164
- c.icon && /* @__PURE__ */ a(Y, { children: c.icon }),
165
- /* @__PURE__ */ a(F, { children: c.label })
166
- ] }, c.label), e[11] = y) : y = e[11], C = l.map(y), e[9] = l, e[10] = C;
159
+ }, e[7] = r, e[8] = I) : (r = e[7], I = e[8]);
160
+ let a;
161
+ if (e[9] !== n) {
162
+ let c;
163
+ e[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (c = (d) => /* @__PURE__ */ A(W, { disabled: d.disabled, onClick: (T) => v(T, d), children: [
164
+ d.icon && /* @__PURE__ */ p($, { children: d.icon }),
165
+ /* @__PURE__ */ p(B, { children: d.label })
166
+ ] }, d.label), e[11] = c) : c = e[11], a = n.map(c), e[9] = n, e[10] = a;
167
167
  } else
168
- C = e[10];
169
- let u;
170
- e[12] !== i || e[13] !== C || e[14] !== h ? (u = /* @__PURE__ */ a(D, { variant: "menu", elevation: 8, anchorOrigin: d, transformOrigin: b, anchorEl: i, open: h, onClose: v, MenuListProps: p, children: C }), e[12] = i, e[13] = C, e[14] = h, e[15] = u) : u = e[15];
171
- let I;
172
- return e[16] !== u || e[17] !== s ? (I = /* @__PURE__ */ B(N, { children: [
173
- s,
174
- u
175
- ] }), e[16] = u, e[17] = s, e[18] = I) : I = e[18], I;
168
+ a = e[10];
169
+ let y;
170
+ e[12] !== o || e[13] !== a || e[14] !== C ? (y = /* @__PURE__ */ p(L, { variant: "menu", elevation: 8, anchorOrigin: u, transformOrigin: g, anchorEl: o, open: C, onClose: r, MenuListProps: I, children: a }), e[12] = o, e[13] = a, e[14] = C, e[15] = y) : y = e[15];
171
+ let S;
172
+ return e[16] !== y || e[17] !== m ? (S = /* @__PURE__ */ A(P, { children: [
173
+ m,
174
+ y
175
+ ] }), e[16] = y, e[17] = m, e[18] = S) : S = e[18], S;
176
176
  }
177
- function ne(t) {
178
- const e = _(5), {
179
- label: n,
180
- children: o
181
- } = t, l = n ?? (typeof o == "string" ? o : "");
182
- let i;
183
- e[0] !== o ? (i = (m) => {
177
+ function Z(t) {
178
+ const e = w(5), {
179
+ label: i,
180
+ children: l
181
+ } = t, n = i ?? (typeof l == "string" ? l : "");
182
+ let o;
183
+ e[0] !== l ? (o = (f) => {
184
184
  const {
185
- ref: S
186
- } = m;
187
- return /* @__PURE__ */ a(L, { sx: T.title.container, children: /* @__PURE__ */ a(H, { sx: T.title.text, ref: S, variant: "subtitle1", textTransform: "none", children: o }) });
188
- }, e[0] = o, e[1] = i) : i = e[1];
189
- let r;
190
- return e[2] !== l || e[3] !== i ? (r = /* @__PURE__ */ a(R, { title: l, children: i }), e[2] = l, e[3] = i, e[4] = r) : r = e[4], r;
185
+ ref: v
186
+ } = f;
187
+ return /* @__PURE__ */ p(E, { sx: k.title.container, children: /* @__PURE__ */ p(N, { sx: k.title.text, ref: v, variant: "subtitle1", textTransform: "none", children: l }) });
188
+ }, e[0] = l, e[1] = o) : o = e[1];
189
+ let s;
190
+ return e[2] !== n || e[3] !== o ? (s = /* @__PURE__ */ p(U, { title: n, children: o }), e[2] = n, e[3] = o, e[4] = s) : s = e[4], s;
191
191
  }
192
- const le = [], se = [];
193
- function re(t) {
194
- const e = _(34), {
195
- children: n,
196
- id: o,
197
- actions: l,
198
- sx: i,
199
- labels: r,
200
- options: m,
201
- onChangeCollapsed: S
202
- } = t, x = l === void 0 ? le : l, f = m === void 0 ? se : m;
203
- let g;
204
- e[0] !== o ? (g = (k) => k.getWidget(o)?.title, e[0] = o, e[1] = g) : g = e[1];
205
- const s = P($(g));
206
- let d;
207
- e[2] !== o ? (d = (k) => k.getWidget(o)?.collapsed, e[2] = o, e[3] = d) : d = e[3];
208
- const b = P($(d));
209
- let h;
210
- e[4] !== o ? (h = (k) => k.getWidget(o)?.disabled, e[4] = o, e[5] = h) : h = e[5];
211
- const v = P($(h));
212
- let p;
213
- e[6] !== o ? (p = (k) => k.getWidget(o)?.isFetching, e[6] = o, e[7] = p) : p = e[7];
214
- const C = P($(p)), u = b ? "collapsed" : "";
215
- let I;
216
- e[8] !== i ? (I = {
217
- ...T.root,
218
- ...i
219
- }, e[8] = i, e[9] = I) : I = e[9];
220
- const y = !b;
192
+ const ee = [], te = [];
193
+ function oe(t) {
194
+ const e = w(26), {
195
+ children: i,
196
+ id: l,
197
+ actions: n,
198
+ sx: o,
199
+ labels: s,
200
+ options: f,
201
+ onChangeCollapsed: v
202
+ } = t, x = n === void 0 ? ee : n, h = f === void 0 ? te : f, {
203
+ title: b,
204
+ collapsed: m,
205
+ disabled: u,
206
+ isFetching: g
207
+ } = V(l, ie), C = m ? "collapsed" : "";
208
+ let r;
209
+ e[0] !== o ? (r = {
210
+ ...k.root,
211
+ ...o
212
+ }, e[0] = o, e[1] = r) : r = e[1];
213
+ const I = !m;
214
+ let a;
215
+ e[2] !== g ? (a = g && /* @__PURE__ */ p(j, { sx: k.loading, color: "primary" }), e[2] = g, e[3] = a) : a = e[3];
216
+ let y;
217
+ e[4] !== b ? (y = /* @__PURE__ */ p(Z, { children: b }), e[4] = b, e[5] = y) : y = e[5];
218
+ let S;
219
+ e[6] !== x ? (S = !!x.length && /* @__PURE__ */ p(J, { actions: x }), e[6] = x, e[7] = S) : S = e[7];
221
220
  let c;
222
- e[10] !== C ? (c = C && /* @__PURE__ */ a(G, { sx: T.loading, color: "primary" }), e[10] = C, e[11] = c) : c = e[11];
223
- let w;
224
- e[12] !== s ? (w = /* @__PURE__ */ a(ne, { children: s }), e[12] = s, e[13] = w) : w = e[13];
221
+ e[8] !== s?.options || e[9] !== h ? (c = !!h.length && /* @__PURE__ */ p(X, { labels: s?.options, options: h }), e[8] = s?.options, e[9] = h, e[10] = c) : c = e[10];
222
+ let d;
223
+ e[11] !== a || e[12] !== y || e[13] !== S || e[14] !== c ? (d = /* @__PURE__ */ A(z, { sx: k.summary, children: [
224
+ a,
225
+ y,
226
+ S,
227
+ c
228
+ ] }), e[11] = a, e[12] = y, e[13] = S, e[14] = c, e[15] = d) : d = e[15];
229
+ let T;
230
+ e[16] !== i ? (T = /* @__PURE__ */ p(F, { sx: k.detail, children: i }), e[16] = i, e[17] = T) : T = e[17];
225
231
  let O;
226
- e[14] !== x ? (O = !!x.length && /* @__PURE__ */ a(Z, { actions: x }), e[14] = x, e[15] = O) : O = e[15];
227
- let W;
228
- e[16] !== r?.options || e[17] !== f ? (W = !!f.length && /* @__PURE__ */ a(ie, { labels: r?.options, options: f }), e[16] = r?.options, e[17] = f, e[18] = W) : W = e[18];
229
- let E;
230
- e[19] !== c || e[20] !== w || e[21] !== O || e[22] !== W ? (E = /* @__PURE__ */ B(U, { sx: T.summary, children: [
231
- c,
232
- w,
233
- O,
234
- W
235
- ] }), e[19] = c, e[20] = w, e[21] = O, e[22] = W, e[23] = E) : E = e[23];
236
- let M;
237
- e[24] !== n ? (M = /* @__PURE__ */ a(V, { sx: T.detail, children: n }), e[24] = n, e[25] = M) : M = e[25];
238
- let A;
239
- return e[26] !== v || e[27] !== S || e[28] !== E || e[29] !== M || e[30] !== u || e[31] !== I || e[32] !== y ? (A = /* @__PURE__ */ B(q, { className: u, sx: I, expanded: y, onChange: S, disabled: v, children: [
240
- E,
241
- M
242
- ] }), e[26] = v, e[27] = S, e[28] = E, e[29] = M, e[30] = u, e[31] = I, e[32] = y, e[33] = A) : A = e[33], A;
232
+ return e[18] !== u || e[19] !== v || e[20] !== d || e[21] !== T || e[22] !== C || e[23] !== r || e[24] !== I ? (O = /* @__PURE__ */ A(Y, { className: C, sx: r, expanded: I, onChange: v, disabled: u, children: [
233
+ d,
234
+ T
235
+ ] }), e[18] = u, e[19] = v, e[20] = d, e[21] = T, e[22] = C, e[23] = r, e[24] = I, e[25] = O) : O = e[25], O;
236
+ }
237
+ function ie(t) {
238
+ return {
239
+ title: t?.title,
240
+ collapsed: t?.collapsed,
241
+ disabled: t?.disabled,
242
+ isFetching: t?.isFetching
243
+ };
243
244
  }
244
- function be(t) {
245
- const e = _(19), {
246
- id: n,
247
- title: o,
248
- defaultCollapsed: l,
249
- disabled: i,
250
- sx: r,
251
- actions: m,
252
- options: S,
245
+ function he(t) {
246
+ const e = w(17), {
247
+ id: i,
248
+ title: l,
249
+ defaultCollapsed: n,
250
+ disabled: o,
251
+ sx: s,
252
+ actions: f,
253
+ options: v,
253
254
  labels: x,
254
- children: f,
255
- onChangeCollapsed: g
256
- } = t, s = P(ae);
257
- let d, b;
258
- e[0] !== l || e[1] !== i || e[2] !== n || e[3] !== s || e[4] !== o ? (d = () => {
259
- s(n, {
260
- collapsed: l,
261
- disabled: i,
262
- title: o
255
+ children: h,
256
+ onChangeCollapsed: b
257
+ } = t;
258
+ let m, u;
259
+ e[0] !== n || e[1] !== o || e[2] !== i || e[3] !== l ? (m = () => {
260
+ M.setWidget(i, {
261
+ collapsed: n,
262
+ disabled: o,
263
+ title: l
263
264
  });
264
- }, b = [l, i, o, n, s], e[0] = l, e[1] = i, e[2] = n, e[3] = s, e[4] = o, e[5] = d, e[6] = b) : (d = e[5], b = e[6]), Q(d, b);
265
- let h;
266
- e[7] !== n || e[8] !== g || e[9] !== s ? (h = (C, u) => {
267
- g?.(C, u), s(n, {
268
- collapsed: !u
265
+ }, u = [n, o, l, i], e[0] = n, e[1] = o, e[2] = i, e[3] = l, e[4] = m, e[5] = u) : (m = e[4], u = e[5]), G(m, u);
266
+ let g;
267
+ e[6] !== i || e[7] !== b ? (g = (I, a) => {
268
+ b?.(I, a), M.setWidget(i, {
269
+ collapsed: !a
269
270
  });
270
- }, e[7] = n, e[8] = g, e[9] = s, e[10] = h) : h = e[10];
271
- const v = h;
272
- let p;
273
- return e[11] !== m || e[12] !== f || e[13] !== v || e[14] !== n || e[15] !== x || e[16] !== S || e[17] !== r ? (p = /* @__PURE__ */ a(re, { id: n, labels: x, actions: m, options: S, sx: r, onChangeCollapsed: v, children: f }), e[11] = m, e[12] = f, e[13] = v, e[14] = n, e[15] = x, e[16] = S, e[17] = r, e[18] = p) : p = e[18], p;
274
- }
275
- function ae(t) {
276
- return t.setWidget;
271
+ }, e[6] = i, e[7] = b, e[8] = g) : g = e[8];
272
+ const C = g;
273
+ let r;
274
+ return e[9] !== f || e[10] !== h || e[11] !== C || e[12] !== i || e[13] !== x || e[14] !== v || e[15] !== s ? (r = /* @__PURE__ */ p(oe, { id: i, labels: x, actions: f, options: v, sx: s, onChangeCollapsed: C, children: h }), e[9] = f, e[10] = h, e[11] = C, e[12] = i, e[13] = x, e[14] = v, e[15] = s, e[16] = r) : r = e[16], r;
277
275
  }
278
276
  export {
279
- Z as Actions,
280
- ie as Options,
281
- ne as Title,
282
- be as WidgetWrapper,
283
- re as WrapperUI
277
+ J as Actions,
278
+ X as Options,
279
+ Z as Title,
280
+ he as WidgetWrapper,
281
+ oe as WrapperUI
284
282
  };
285
283
  //# sourceMappingURL=wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.js","sources":["../../src/widgets/wrapper/styles.ts","../../src/widgets/wrapper/components/actions.tsx","../../src/widgets/wrapper/components/options.tsx","../../src/widgets/wrapper/components/title.tsx","../../src/widgets/wrapper/wrapper-ui.tsx","../../src/widgets/wrapper/wrapper.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n '.Mui-disabled .MuiAccordionSummary-expandIconWrapper': {\n display: 'none',\n },\n '.widget-wrapper-actions > *': {\n opacity: 1,\n transition: ({ transitions }) =>\n transitions.create('opacity', {\n duration: transitions.duration.standard,\n easing: transitions.easing.easeInOut,\n }),\n\n '@media (hover: hover)': {\n opacity: 0,\n },\n\n '&:has(.active)': {\n opacity: 1,\n },\n },\n '&:hover': {\n '& .widget-wrapper-actions > *': {\n opacity: 1,\n },\n },\n\n '&.collapsed .widget-wrapper-actions > *': {\n opacity: 0,\n pointerEvents: 'none',\n\n '&:has(.active)': {\n opacity: 1,\n },\n },\n },\n summary: {\n minHeight: ({ spacing }) => spacing(7),\n '& .MuiAccordionSummary-content': {\n gap: ({ spacing }) => spacing(0.5),\n paddingInlineEnd: ({ spacing }) => spacing(0.75),\n },\n },\n loading: {\n height: ({ spacing }) => spacing(0.35),\n left: 0,\n position: 'absolute',\n top: 0,\n width: '100%',\n zIndex: 1,\n },\n title: {\n wrapper: {\n flexGrow: 1,\n flexShrink: 1,\n minWidth: 0,\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1,\n minHeight: ({ spacing }) => spacing(3),\n },\n text: {\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n },\n },\n actions: {\n display: 'flex',\n gap: ({ spacing }) => spacing(0.5),\n alignItems: 'center',\n flexShrink: 0,\n justifyContent: 'flex-end',\n '& > div': {\n pointerEvents: 'auto',\n },\n },\n options: {\n trigger: {\n pointerEvents: 'auto',\n },\n },\n detail: {\n display: 'flex',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n paddingTop: ({ spacing }) => spacing(0.5),\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { WrapperActionsProps } from '../types'\nimport { styles } from '../styles'\n\nconst EMPTY_ACTIONS: NonNullable<WrapperActionsProps['actions']> = []\n\n/**\n * Renders action buttons in the widget wrapper header. Each action click event is stopped from propagating to the accordion.\n */\nexport function Actions({ actions = EMPTY_ACTIONS }: WrapperActionsProps) {\n return (\n <Box sx={styles.actions} className='widget-wrapper-actions'>\n {actions.map((action, index) => {\n // Prefer action.key if present (React elements), else fallback to index\n const key =\n action &&\n typeof action === 'object' &&\n 'key' in action &&\n action.key != null\n ? action.key\n : index\n return (\n <Box\n key={key}\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n {action}\n </Box>\n )\n })}\n </Box>\n )\n}\n","import { MoreVert } from '@mui/icons-material'\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n} from '@mui/material'\nimport type { WrapperOptionsProps } from '../types'\nimport { useState } from 'react'\nimport { styles } from '../styles'\n\nconst EMPTY_OPTIONS: NonNullable<WrapperOptionsProps['options']> = []\n\n/**\n * Renders a dropdown options menu in the widget wrapper header, triggered by a vertical ellipsis icon button.\n */\nexport function Options({\n labels,\n options = EMPTY_OPTIONS,\n}: WrapperOptionsProps) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const handleOptionAction = (\n e: React.MouseEvent<HTMLElement>,\n option: NonNullable<WrapperOptionsProps['options']>[number],\n ) => {\n e.stopPropagation()\n option.onClick()\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={styles.options.trigger}\n size='small'\n aria-label={labels?.title ?? 'Options'}\n aria-controls='options-menu'\n aria-haspopup='true'\n onClick={(e) => {\n e.stopPropagation()\n setAnchorEl(e.currentTarget)\n }}\n >\n <MoreVert />\n </IconButton>\n <Menu\n variant='menu'\n elevation={8}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n sx: {\n paddingBottom: 0,\n },\n }}\n >\n {options.map((option) => (\n <MenuItem\n key={option.label}\n disabled={option.disabled}\n onClick={(e) => handleOptionAction(e, option)}\n >\n {option.icon && <ListItemIcon>{option.icon}</ListItemIcon>}\n <ListItemText>{option.label}</ListItemText>\n </MenuItem>\n ))}\n </Menu>\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../styles'\nimport { SmartTooltip } from '../../../components'\nimport type { ReactNode } from 'react'\nimport type { WrapperOptionsProps } from '../types'\n\n/**\n * Renders the widget title text inside the wrapper header with smart tooltip support for truncated titles.\n */\nexport function Title({\n label,\n children,\n}: {\n children: ReactNode\n label?: NonNullable<WrapperOptionsProps['labels']>['title']\n}) {\n return (\n <SmartTooltip\n title={label ?? (typeof children === 'string' ? children : '')}\n >\n {({ ref }) => (\n <Box sx={styles.title.container}>\n <Typography\n sx={styles.title.text}\n ref={ref}\n variant='subtitle1'\n textTransform='none'\n >\n {children}\n </Typography>\n </Box>\n )}\n </SmartTooltip>\n )\n}\n","import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n LinearProgress,\n} from '@mui/material'\nimport { styles } from './styles'\nimport { Title } from './components/title'\nimport type { WrapperState, WrapperUIProps } from './types'\nimport { Options } from './components/options'\nimport { Actions } from './components/actions'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nconst EMPTY_ACTIONS: NonNullable<WrapperUIProps['actions']> = []\nconst EMPTY_OPTIONS: NonNullable<WrapperUIProps['options']> = []\n\n/**\n * Presentational wrapper component that renders the widget accordion UI with title, actions, options menu, and loading indicator. For uncontrolled usage without automatic widget store synchronization, use this instead of WidgetWrapper.\n *\n * @example\n * ```tsx\n * <WrapperUI\n * id=\"my-widget\"\n * actions={[<Download key=\"download\" id=\"my-widget\" />]}\n * onChangeCollapsed={(e, collapsed) => console.log(collapsed)}\n * >\n * <div>Content</div>\n * </WrapperUI>\n * ```\n */\nexport function WrapperUI({\n children,\n id,\n actions = EMPTY_ACTIONS,\n sx,\n labels,\n options = EMPTY_OPTIONS,\n onChangeCollapsed,\n}: WrapperUIProps) {\n const title = useWidgetStore(\n useShallow((state) => state.getWidget<WrapperState>(id)?.title),\n )\n const collapsed = useWidgetStore(\n useShallow((state) => state.getWidget<WrapperState>(id)?.collapsed),\n )\n const disabled = useWidgetStore(\n useShallow((state) => state.getWidget<WrapperState>(id)?.disabled),\n )\n const isFetching = useWidgetStore(\n useShallow((state) => state.getWidget<WrapperState>(id)?.isFetching),\n )\n\n return (\n <Accordion\n className={collapsed ? 'collapsed' : ''}\n sx={{ ...styles.root, ...sx }}\n expanded={!collapsed}\n onChange={onChangeCollapsed}\n disabled={disabled}\n >\n <AccordionSummary sx={styles.summary}>\n {isFetching && <LinearProgress sx={styles.loading} color='primary' />}\n <Title>{title}</Title>\n {!!actions.length && <Actions actions={actions} />}\n {!!options.length && (\n <Options labels={labels?.options} options={options} />\n )}\n </AccordionSummary>\n <AccordionDetails sx={styles.detail}>{children}</AccordionDetails>\n </Accordion>\n )\n}\n","import type { WrapperProps, WrapperState } from './types'\nimport { WrapperUI } from './wrapper-ui'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { useLayoutEffect } from 'react'\n\n/**\n * Container component providing a collapsible header with title, action buttons, and options menu for widgets. Syncs collapse, disabled, and title state with the widget store.\n *\n * @example\n * ```tsx\n * <WidgetWrapper\n * id=\"my-widget\"\n * title=\"Sales Overview\"\n * actions={[<Download key=\"download\" id=\"my-widget\" items={downloads} />]}\n * >\n * {children}\n * </WidgetWrapper>\n * ```\n */\nexport function WidgetWrapper({\n id,\n title,\n defaultCollapsed,\n disabled,\n sx,\n actions,\n options,\n labels,\n children,\n onChangeCollapsed,\n}: WrapperProps) {\n const setWidget = useWidgetStore((state) => state.setWidget)\n\n useLayoutEffect(() => {\n setWidget<WrapperState>(id, {\n collapsed: defaultCollapsed,\n disabled,\n title,\n })\n }, [defaultCollapsed, disabled, title, id, setWidget])\n\n const handleChangeCollapsed = (\n event: React.SyntheticEvent<Element, Event>,\n expanded: boolean,\n ) => {\n onChangeCollapsed?.(event, expanded)\n setWidget<WrapperState>(id, { collapsed: !expanded })\n }\n\n return (\n <WrapperUI\n id={id}\n labels={labels}\n actions={actions}\n options={options}\n sx={sx}\n onChangeCollapsed={handleChangeCollapsed}\n >\n {children}\n </WrapperUI>\n )\n}\n"],"names":["styles","root","display","opacity","transition","transitions","create","duration","standard","easing","easeInOut","pointerEvents","summary","minHeight","spacing","gap","paddingInlineEnd","loading","height","left","position","top","width","zIndex","title","container","alignItems","flexGrow","text","wordBreak","overflow","WebkitLineClamp","WebkitBoxOrient","actions","flexShrink","justifyContent","options","trigger","detail","flexDirection","paddingTop","EMPTY_ACTIONS","Actions","t0","$","_c","t1","undefined","t2","map","_temp2","t3","Box","action","index","key","jsx","_temp","e","stopPropagation","EMPTY_OPTIONS","Options","labels","anchorEl","setAnchorEl","useState","Symbol","for","option","onClick","handleOptionAction","t4","t5","e_0","currentTarget","MoreVert","t6","IconButton","t7","t8","vertical","horizontal","t9","Boolean","t10","t11","sx","paddingBottom","t12","t13","option_0","jsxs","MenuItem","disabled","e_1","icon","ListItemIcon","ListItemText","label","Menu","t14","Title","children","ref","Typography","SmartTooltip","WrapperUI","id","onChangeCollapsed","state","getWidget","useWidgetStore","useShallow","state_0","collapsed","state_1","state_2","isFetching","LinearProgress","length","AccordionSummary","t15","AccordionDetails","t16","Accordion","WidgetWrapper","defaultCollapsed","setWidget","useLayoutEffect","event","expanded","handleChangeCollapsed"],"mappings":"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"}
1
+ {"version":3,"file":"wrapper.js","sources":["../../src/widgets/wrapper/styles.ts","../../src/widgets/wrapper/components/actions.tsx","../../src/widgets/wrapper/components/options.tsx","../../src/widgets/wrapper/components/title.tsx","../../src/widgets/wrapper/wrapper-ui.tsx","../../src/widgets/wrapper/wrapper.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n '.Mui-disabled .MuiAccordionSummary-expandIconWrapper': {\n display: 'none',\n },\n '.widget-wrapper-actions > *': {\n opacity: 1,\n transition: ({ transitions }) =>\n transitions.create('opacity', {\n duration: transitions.duration.standard,\n easing: transitions.easing.easeInOut,\n }),\n\n '@media (hover: hover)': {\n opacity: 0,\n },\n\n '&:has(.active)': {\n opacity: 1,\n },\n },\n '&:hover': {\n '& .widget-wrapper-actions > *': {\n opacity: 1,\n },\n },\n\n '&.collapsed .widget-wrapper-actions > *': {\n opacity: 0,\n pointerEvents: 'none',\n\n '&:has(.active)': {\n opacity: 1,\n },\n },\n },\n summary: {\n minHeight: ({ spacing }) => spacing(7),\n '& .MuiAccordionSummary-content': {\n gap: ({ spacing }) => spacing(0.5),\n paddingInlineEnd: ({ spacing }) => spacing(0.75),\n },\n },\n loading: {\n height: ({ spacing }) => spacing(0.35),\n left: 0,\n position: 'absolute',\n top: 0,\n width: '100%',\n zIndex: 1,\n },\n title: {\n wrapper: {\n flexGrow: 1,\n flexShrink: 1,\n minWidth: 0,\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1,\n minHeight: ({ spacing }) => spacing(3),\n },\n text: {\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n },\n },\n actions: {\n display: 'flex',\n gap: ({ spacing }) => spacing(0.5),\n alignItems: 'center',\n flexShrink: 0,\n justifyContent: 'flex-end',\n '& > div': {\n pointerEvents: 'auto',\n },\n },\n options: {\n trigger: {\n pointerEvents: 'auto',\n },\n },\n detail: {\n display: 'flex',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n paddingTop: ({ spacing }) => spacing(0.5),\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { WrapperActionsProps } from '../types'\nimport { styles } from '../styles'\n\nconst EMPTY_ACTIONS: NonNullable<WrapperActionsProps['actions']> = []\n\n/**\n * Renders action buttons in the widget wrapper header. Each action click event is stopped from propagating to the accordion.\n */\nexport function Actions({ actions = EMPTY_ACTIONS }: WrapperActionsProps) {\n return (\n <Box sx={styles.actions} className='widget-wrapper-actions'>\n {actions.map((action, index) => {\n // Prefer action.key if present (React elements), else fallback to index\n const key =\n action &&\n typeof action === 'object' &&\n 'key' in action &&\n action.key != null\n ? action.key\n : index\n return (\n <Box\n key={key}\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n {action}\n </Box>\n )\n })}\n </Box>\n )\n}\n","import { MoreVert } from '@mui/icons-material'\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n} from '@mui/material'\nimport type { WrapperOptionsProps } from '../types'\nimport { useState } from 'react'\nimport { styles } from '../styles'\n\nconst EMPTY_OPTIONS: NonNullable<WrapperOptionsProps['options']> = []\n\n/**\n * Renders a dropdown options menu in the widget wrapper header, triggered by a vertical ellipsis icon button.\n */\nexport function Options({\n labels,\n options = EMPTY_OPTIONS,\n}: WrapperOptionsProps) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const handleOptionAction = (\n e: React.MouseEvent<HTMLElement>,\n option: NonNullable<WrapperOptionsProps['options']>[number],\n ) => {\n e.stopPropagation()\n option.onClick()\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={styles.options.trigger}\n size='small'\n aria-label={labels?.title ?? 'Options'}\n aria-controls='options-menu'\n aria-haspopup='true'\n onClick={(e) => {\n e.stopPropagation()\n setAnchorEl(e.currentTarget)\n }}\n >\n <MoreVert />\n </IconButton>\n <Menu\n variant='menu'\n elevation={8}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n sx: {\n paddingBottom: 0,\n },\n }}\n >\n {options.map((option) => (\n <MenuItem\n key={option.label}\n disabled={option.disabled}\n onClick={(e) => handleOptionAction(e, option)}\n >\n {option.icon && <ListItemIcon>{option.icon}</ListItemIcon>}\n <ListItemText>{option.label}</ListItemText>\n </MenuItem>\n ))}\n </Menu>\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../styles'\nimport { SmartTooltip } from '../../../components'\nimport type { ReactNode } from 'react'\nimport type { WrapperOptionsProps } from '../types'\n\n/**\n * Renders the widget title text inside the wrapper header with smart tooltip support for truncated titles.\n */\nexport function Title({\n label,\n children,\n}: {\n children: ReactNode\n label?: NonNullable<WrapperOptionsProps['labels']>['title']\n}) {\n return (\n <SmartTooltip\n title={label ?? (typeof children === 'string' ? children : '')}\n >\n {({ ref }) => (\n <Box sx={styles.title.container}>\n <Typography\n sx={styles.title.text}\n ref={ref}\n variant='subtitle1'\n textTransform='none'\n >\n {children}\n </Typography>\n </Box>\n )}\n </SmartTooltip>\n )\n}\n","import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n LinearProgress,\n} from '@mui/material'\nimport { styles } from './styles'\nimport { Title } from './components/title'\nimport type { WrapperState, WrapperUIProps } from './types'\nimport { Options } from './components/options'\nimport { Actions } from './components/actions'\nimport { useWidgetSelector } from '../stores/use-widget-selector'\n\nconst EMPTY_ACTIONS: NonNullable<WrapperUIProps['actions']> = []\nconst EMPTY_OPTIONS: NonNullable<WrapperUIProps['options']> = []\n\n/**\n * Presentational wrapper component that renders the widget accordion UI with title, actions, options menu, and loading indicator. For uncontrolled usage without automatic widget store synchronization, use this instead of WidgetWrapper.\n *\n * @example\n * ```tsx\n * <WrapperUI\n * id=\"my-widget\"\n * actions={[<Download key=\"download\" id=\"my-widget\" />]}\n * onChangeCollapsed={(e, collapsed) => console.log(collapsed)}\n * >\n * <div>Content</div>\n * </WrapperUI>\n * ```\n */\nexport function WrapperUI({\n children,\n id,\n actions = EMPTY_ACTIONS,\n sx,\n labels,\n options = EMPTY_OPTIONS,\n onChangeCollapsed,\n}: WrapperUIProps) {\n // Single consolidated subscription instead of 4 separate ones.\n const { title, collapsed, disabled, isFetching } = useWidgetSelector(\n id,\n (w) => {\n return {\n title: (w as WrapperState | undefined)?.title,\n collapsed: (w as WrapperState | undefined)?.collapsed,\n disabled: (w as WrapperState | undefined)?.disabled,\n isFetching: w?.isFetching,\n }\n },\n )\n\n return (\n <Accordion\n className={collapsed ? 'collapsed' : ''}\n sx={{ ...styles.root, ...sx }}\n expanded={!collapsed}\n onChange={onChangeCollapsed}\n disabled={disabled}\n >\n <AccordionSummary sx={styles.summary}>\n {isFetching && <LinearProgress sx={styles.loading} color='primary' />}\n <Title>{title}</Title>\n {!!actions.length && <Actions actions={actions} />}\n {!!options.length && (\n <Options labels={labels?.options} options={options} />\n )}\n </AccordionSummary>\n <AccordionDetails sx={styles.detail}>{children}</AccordionDetails>\n </Accordion>\n )\n}\n","import type { WrapperProps, WrapperState } from './types'\nimport { WrapperUI } from './wrapper-ui'\nimport { widgetStoreActions } from '../stores/widget-store'\nimport { useLayoutEffect } from 'react'\n\n/**\n * Container component providing a collapsible header with title, action buttons, and options menu for widgets. Syncs collapse, disabled, and title state with the widget store.\n *\n * @example\n * ```tsx\n * <WidgetWrapper\n * id=\"my-widget\"\n * title=\"Sales Overview\"\n * actions={[<Download key=\"download\" id=\"my-widget\" items={downloads} />]}\n * >\n * {children}\n * </WidgetWrapper>\n * ```\n */\nexport function WidgetWrapper({\n id,\n title,\n defaultCollapsed,\n disabled,\n sx,\n actions,\n options,\n labels,\n children,\n onChangeCollapsed,\n}: WrapperProps) {\n useLayoutEffect(() => {\n widgetStoreActions.setWidget<WrapperState>(id, {\n collapsed: defaultCollapsed,\n disabled,\n title,\n })\n }, [defaultCollapsed, disabled, title, id])\n\n const handleChangeCollapsed = (\n event: React.SyntheticEvent<Element, Event>,\n expanded: boolean,\n ) => {\n onChangeCollapsed?.(event, expanded)\n widgetStoreActions.setWidget<WrapperState>(id, { collapsed: !expanded })\n }\n\n return (\n <WrapperUI\n id={id}\n labels={labels}\n actions={actions}\n options={options}\n sx={sx}\n onChangeCollapsed={handleChangeCollapsed}\n >\n {children}\n </WrapperUI>\n )\n}\n"],"names":["styles","root","display","opacity","transition","transitions","create","duration","standard","easing","easeInOut","pointerEvents","summary","minHeight","spacing","gap","paddingInlineEnd","loading","height","left","position","top","width","zIndex","title","container","alignItems","flexGrow","text","wordBreak","overflow","WebkitLineClamp","WebkitBoxOrient","actions","flexShrink","justifyContent","options","trigger","detail","flexDirection","paddingTop","EMPTY_ACTIONS","Actions","t0","$","_c","t1","undefined","t2","map","_temp2","t3","Box","action","index","key","jsx","_temp","e","stopPropagation","EMPTY_OPTIONS","Options","labels","anchorEl","setAnchorEl","useState","Symbol","for","option","onClick","handleOptionAction","t4","t5","e_0","currentTarget","MoreVert","t6","IconButton","t7","t8","vertical","horizontal","t9","Boolean","t10","t11","sx","paddingBottom","t12","t13","option_0","jsxs","MenuItem","disabled","e_1","icon","ListItemIcon","ListItemText","label","Menu","t14","Title","children","ref","Typography","SmartTooltip","WrapperUI","id","onChangeCollapsed","collapsed","isFetching","useWidgetSelector","LinearProgress","length","AccordionSummary","AccordionDetails","Accordion","w","WidgetWrapper","defaultCollapsed","widgetStoreActions","setWidget","useLayoutEffect","event","expanded","handleChangeCollapsed"],"mappings":"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"}
package/dist/widgets.js CHANGED
@@ -1,7 +1,7 @@
1
- import { u as r } from "./widget-store-CzDt8oSK.js";
2
- import { u as W } from "./use-widget-ref-wtFLDFCD.js";
3
- import { W as s } from "./no-data-hR3KcJ-_.js";
4
- import { W as d } from "./error-CEkRPccv.js";
1
+ import { u as r } from "./widget-store-CIrb9RKP.js";
2
+ import { u as W } from "./use-widget-ref-BFazQvJK.js";
3
+ import { W as s } from "./no-data-DkIt7Qt1.js";
4
+ import { W as d } from "./error-Cj8eUMrl.js";
5
5
  import { W as i } from "./note-t51drNe0.js";
6
6
  export {
7
7
  d as WidgetError,
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@carto/ps-react-ui",
3
- "version": "4.4.2",
3
+ "version": "4.5.0",
4
4
  "description": "CARTO's Professional Service React Material library",
5
5
  "type": "module",
6
6
  "devDependencies": {
7
- "@carto/meridian-ds": "2.10.1",
7
+ "@carto/meridian-ds": "2.14.0",
8
8
  "@dnd-kit/core": "6.3.1",
9
9
  "@dnd-kit/sortable": "10.0.0",
10
10
  "@dnd-kit/utilities": "3.2.2",
@@ -14,15 +14,16 @@
14
14
  "echarts": "6.0.0",
15
15
  "html2canvas": "1.4.1",
16
16
  "react-markdown": "10.1.0",
17
- "zustand": "5.0.11",
17
+ "zustand": "5.0.12",
18
18
  "@carto/ps-common-types": "1.0.0",
19
19
  "@carto/ps-utils": "2.0.1"
20
20
  },
21
21
  "peerDependencies": {
22
+ "@carto/meridian-ds": "^2.0.0",
22
23
  "@dnd-kit/core": "^6.0.0",
23
24
  "@dnd-kit/sortable": "^10.0.0",
24
25
  "@dnd-kit/utilities": "^3.0.0",
25
- "@emotion/styled": "^11.14.1",
26
+ "@emotion/styled": "^11.0.0",
26
27
  "@mui/icons-material": "^5.0.0",
27
28
  "@mui/material": "^5.0.0",
28
29
  "echarts": "^6.0.0",
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useRef } from 'react'
2
- import { useWidgetStore } from '../widgets/stores/widget-store'
2
+ import { widgetStoreActions } from '../widgets/stores/widget-store'
3
3
 
4
4
  /**
5
5
  * Registers a DOM element ref and an ECharts instance ref with the widget store.
@@ -22,13 +22,12 @@ export function useWidgetRef<T extends HTMLElement = HTMLElement>(
22
22
  ) {
23
23
  const ref = useRef<T | null>(null)
24
24
  const instance = useRef<echarts.ECharts | null>(null)
25
- const setWidget = useWidgetStore((store) => store.setWidget)
26
25
 
27
26
  useEffect(() => {
28
27
  if (ref.current) {
29
- setWidget(widgetId, { refUI: ref, instance: instance })
28
+ widgetStoreActions.setWidget(widgetId, { refUI: ref, instance: instance })
30
29
  }
31
- }, [widgetId, setWidget])
30
+ }, [widgetId])
32
31
 
33
32
  return { ref, instance }
34
33
  }
@@ -70,7 +70,7 @@ export const myWidgetConfig = createChartWidgetConfig({
70
70
  type: 'my-widget',
71
71
  getOptions: ({ data, theme }) => ({
72
72
  // EChart configuration
73
- legend: buildLegendConfig(hasLegend),
73
+ legend: buildLegendConfig({ hasLegend }),
74
74
  // ...
75
75
  }),
76
76
  csvModifier: (data) => flattenObjectArrayToCSV(data),
@@ -88,7 +88,7 @@ export const myWidgetConfig = createChartWidgetConfig({
88
88
 
89
89
  **File:** `utils/chart-config/option-builders.ts`
90
90
 
91
- - `buildLegendConfig(hasLegend)` - Standard legend configuration
91
+ - `buildLegendConfig({ hasLegend, labelFormatter? })` - Standard legend configuration
92
92
  - `buildGridConfig(hasLegend, theme, additionalConfig?)` - Grid with legend-aware spacing
93
93
  - `createTooltipPositioner(theme)` - Tooltip positioning with overflow handling
94
94
 
@@ -159,7 +159,7 @@ export const myWidgetConfig = createChartWidgetConfig({
159
159
  }: Omit<MyConfig, 'refUI'>): EchartOptionsProps {
160
160
  const hasLegend = (data?.length ?? 0) > 1
161
161
  return {
162
- legend: buildLegendConfig(hasLegend),
162
+ legend: buildLegendConfig({ hasLegend }),
163
163
  grid: buildGridConfig(hasLegend, theme),
164
164
  // ... widget-specific configuration
165
165
  }