@carto/ps-react-ui 4.3.9 → 4.3.10

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 (90) hide show
  1. package/dist/components.js +692 -700
  2. package/dist/components.js.map +1 -1
  3. package/dist/{lasso-tool-jl4YK02H.js → lasso-tool-BYbxrJ-7.js} +184 -190
  4. package/dist/lasso-tool-BYbxrJ-7.js.map +1 -0
  5. package/dist/{row-BKmVAUN5.js → row-DTCV0Ocm.js} +2 -2
  6. package/dist/row-DTCV0Ocm.js.map +1 -0
  7. package/dist/{series-D1pynfeh.js → series-CYNOu2Ju.js} +2 -2
  8. package/dist/{series-D1pynfeh.js.map → series-CYNOu2Ju.js.map} +1 -1
  9. package/dist/smart-tooltip-D4vwQpFf.js +37 -0
  10. package/dist/smart-tooltip-D4vwQpFf.js.map +1 -0
  11. package/dist/{styles-DrPyd0y5.js → styles-CAroD5Rc.js} +12 -12
  12. package/dist/styles-CAroD5Rc.js.map +1 -0
  13. package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +1 -1
  14. package/dist/types/widgets/category/config.d.ts +3 -10
  15. package/dist/types/widgets/range/config.d.ts +0 -4
  16. package/dist/types/widgets/spread/config.d.ts +0 -5
  17. package/dist/types/widgets/table/config.d.ts +1 -2
  18. package/dist/types/widgets/table/table-ui.d.ts +1 -1
  19. package/dist/types/widgets/wrapper/components/options.d.ts +1 -1
  20. package/dist/widgets/actions.js +607 -621
  21. package/dist/widgets/actions.js.map +1 -1
  22. package/dist/widgets/bar.js +48 -49
  23. package/dist/widgets/bar.js.map +1 -1
  24. package/dist/widgets/category.js +28 -28
  25. package/dist/widgets/category.js.map +1 -1
  26. package/dist/widgets/formula.js +3 -3
  27. package/dist/widgets/histogram.js +50 -50
  28. package/dist/widgets/histogram.js.map +1 -1
  29. package/dist/widgets/markdown.js +1 -1
  30. package/dist/widgets/pie.js +9 -9
  31. package/dist/widgets/pie.js.map +1 -1
  32. package/dist/widgets/range.js +1 -1
  33. package/dist/widgets/range.js.map +1 -1
  34. package/dist/widgets/scatterplot.js +13 -13
  35. package/dist/widgets/scatterplot.js.map +1 -1
  36. package/dist/widgets/spread.js +3 -3
  37. package/dist/widgets/spread.js.map +1 -1
  38. package/dist/widgets/table.js +1 -1
  39. package/dist/widgets/table.js.map +1 -1
  40. package/dist/widgets/timeseries.js +3 -3
  41. package/dist/widgets/timeseries.js.map +1 -1
  42. package/dist/widgets/wrapper.js +152 -162
  43. package/dist/widgets/wrapper.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/components/basemaps/basemaps.tsx +3 -1
  46. package/src/components/geolocation-controls/geolocation-controls.tsx +10 -6
  47. package/src/components/lasso-tool/lasso-tool-inline.tsx +6 -2
  48. package/src/components/lasso-tool/lasso-tool.tsx +9 -3
  49. package/src/components/list-data/list-data-skeleton.tsx +1 -1
  50. package/src/components/list-data/list-data.tsx +5 -3
  51. package/src/components/measurement-tools/measurement-tools.tsx +5 -1
  52. package/src/components/smart-tooltip/smart-tooltip.tsx +3 -1
  53. package/src/widgets/_shared/chart-config/option-builders.test.ts +2 -2
  54. package/src/widgets/_shared/chart-config/option-builders.ts +6 -4
  55. package/src/widgets/actions/download/download.test.tsx +6 -2
  56. package/src/widgets/actions/download/download.tsx +3 -1
  57. package/src/widgets/actions/fullscreen/fullscreen.tsx +8 -1
  58. package/src/widgets/actions/relative-data/relative-data.tsx +2 -6
  59. package/src/widgets/actions/searcher/searcher.tsx +0 -6
  60. package/src/widgets/bar/config.ts +8 -4
  61. package/src/widgets/bar/skeleton.tsx +1 -1
  62. package/src/widgets/category/components/category-row-multi.tsx +1 -1
  63. package/src/widgets/category/config.ts +1 -11
  64. package/src/widgets/formula/components/row.tsx +1 -1
  65. package/src/widgets/histogram/config.ts +7 -2
  66. package/src/widgets/histogram/skeleton.tsx +2 -2
  67. package/src/widgets/pie/skeleton.tsx +1 -1
  68. package/src/widgets/range/config.ts +0 -5
  69. package/src/widgets/scatterplot/skeleton.tsx +2 -2
  70. package/src/widgets/spread/config.ts +0 -6
  71. package/src/widgets/table/config.ts +1 -1
  72. package/src/widgets/table/table-ui.tsx +1 -1
  73. package/src/widgets/timeseries/skeleton.tsx +1 -1
  74. package/src/widgets/wrapper/components/actions.test.tsx +6 -2
  75. package/src/widgets/wrapper/components/actions.tsx +3 -1
  76. package/src/widgets/wrapper/components/options.test.tsx +12 -4
  77. package/src/widgets/wrapper/components/options.tsx +8 -3
  78. package/src/widgets/wrapper/wrapper-ui.tsx +5 -2
  79. package/src/widgets/wrapper/wrapper.tsx +2 -4
  80. package/dist/lasso-tool-jl4YK02H.js.map +0 -1
  81. package/dist/row-BKmVAUN5.js.map +0 -1
  82. package/dist/smart-tooltip-BEtBaIdz.js +0 -39
  83. package/dist/smart-tooltip-BEtBaIdz.js.map +0 -1
  84. package/dist/styles-DrPyd0y5.js.map +0 -1
  85. package/dist/types/widgets/actions/relative-data/style.d.ts +0 -8
  86. package/dist/types/widgets/actions/zoom-toggle/index.d.ts +0 -2
  87. package/dist/types/widgets/table/components/index.d.ts +0 -4
  88. package/src/widgets/actions/relative-data/style.ts +0 -9
  89. package/src/widgets/actions/zoom-toggle/index.ts +0 -2
  90. package/src/widgets/table/components/index.ts +0 -4
@@ -1,14 +1,14 @@
1
- import { jsx as d, jsxs as j, Fragment as F } from "react/jsx-runtime";
2
- import { c as B } from "react/compiler-runtime";
3
- import { Box as z, IconButton as D, MenuItem as H, ListItemIcon as N, ListItemText as G, Menu as U, Typography as V, LinearProgress as q, AccordionSummary as J, AccordionDetails as K, Accordion as Q } from "@mui/material";
4
- import { MoreVert as R } from "@mui/icons-material";
5
- import { useState as X, useEffect as Y } from "react";
6
- import "../lasso-tool-jl4YK02H.js";
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";
6
+ import "../lasso-tool-BYbxrJ-7.js";
7
7
  import "../cjs-D4KH3azB.js";
8
- import { S as Z } from "../smart-tooltip-BEtBaIdz.js";
9
- import { u as _ } from "../widget-store-CzDt8oSK.js";
10
- import { useShallow as P } from "zustand/shallow";
11
- const A = {
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 = {
12
12
  root: {
13
13
  ".Mui-disabled .MuiAccordionSummary-expandIconWrapper": {
14
14
  display: "none"
@@ -108,188 +108,178 @@ const A = {
108
108
  spacing: t
109
109
  }) => t(0.5)
110
110
  }
111
- };
112
- function ee(t) {
113
- const e = B(6), {
114
- actions: l
115
- } = t;
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];
116
118
  let i;
117
- e[0] !== l ? (i = l === void 0 ? [] : l, e[0] = l, e[1] = i) : i = e[1];
118
- const n = i;
119
- let o;
120
- e[2] !== n ? (o = n.map(te), e[2] = n, e[3] = o) : o = e[3];
121
- let s;
122
- return e[4] !== o ? (s = /* @__PURE__ */ d(z, { sx: A.actions, className: "widget-wrapper-actions", children: o }), e[4] = o, e[5] = s) : s = e[5], s;
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;
123
120
  }
124
- function te(t, e) {
125
- const l = t && typeof t == "object" && "key" in t && t.key != null ? t.key : e;
126
- return /* @__PURE__ */ d(z, { onClick: ie, children: t }, l);
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);
127
124
  }
128
- function ie(t) {
125
+ function te(t) {
129
126
  t.stopPropagation();
130
127
  }
131
- function oe(t) {
132
- const e = B(21), {
133
- labels: l,
134
- options: i
135
- } = t;
136
- let n;
137
- e[0] !== i ? (n = i === void 0 ? [] : i, e[0] = i, e[1] = n) : n = e[1];
138
- const o = n, [s, p] = X(null);
139
- let f;
140
- e[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = (c, b) => {
141
- c.stopPropagation(), b.onClick(), p(null);
142
- }, e[2] = f) : f = e[2];
143
- const v = f, x = l?.title ?? "Options";
144
- let u, r;
145
- e[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (u = (c) => {
146
- c.stopPropagation(), p(c.currentTarget);
147
- }, r = /* @__PURE__ */ d(R, {}), e[3] = u, e[4] = r) : (u = e[3], r = e[4]);
148
- let a;
149
- e[5] !== x ? (a = /* @__PURE__ */ d(D, { sx: A.options.trigger, size: "small", "aria-label": x, "aria-controls": "options-menu", "aria-haspopup": "true", onClick: u, children: r }), e[5] = x, e[6] = a) : a = e[6];
150
- let y, m;
151
- e[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (y = {
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);
134
+ 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 = {
152
147
  vertical: "top",
153
148
  horizontal: "right"
154
- }, m = {
149
+ }, b = {
155
150
  vertical: "top",
156
151
  horizontal: "right"
157
- }, e[7] = y, e[8] = m) : (y = e[7], m = e[8]);
158
- const C = !!s;
159
- let g, w;
160
- e[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = () => p(null), w = {
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 = {
161
156
  sx: {
162
157
  paddingBottom: 0
163
158
  }
164
- }, e[9] = g, e[10] = w) : (g = e[9], w = e[10]);
165
- let h;
166
- if (e[11] !== o) {
167
- let c;
168
- e[13] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (c = (b, W) => /* @__PURE__ */ j(H, { disabled: b.disabled, onClick: (I) => v(I, b), children: [
169
- b.icon && /* @__PURE__ */ d(N, { children: b.icon }),
170
- /* @__PURE__ */ d(G, { children: b.label })
171
- ] }, `${b.label}-${W}`), e[13] = c) : c = e[13], h = o.map(c), e[11] = o, e[12] = h;
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;
172
167
  } else
173
- h = e[12];
174
- let k;
175
- e[14] !== s || e[15] !== C || e[16] !== h ? (k = /* @__PURE__ */ d(U, { variant: "menu", elevation: 8, anchorOrigin: y, transformOrigin: m, anchorEl: s, open: C, onClose: g, MenuListProps: w, children: h }), e[14] = s, e[15] = C, e[16] = h, e[17] = k) : k = e[17];
176
- let S;
177
- return e[18] !== k || e[19] !== a ? (S = /* @__PURE__ */ j(F, { children: [
178
- a,
179
- k
180
- ] }), e[18] = k, e[19] = a, e[20] = S) : S = e[20], S;
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;
181
176
  }
182
- function le(t) {
183
- const e = B(5), {
184
- label: l,
185
- children: i
186
- } = t, n = l ?? (typeof i == "string" ? i : "");
187
- let o;
188
- e[0] !== i ? (o = (p) => {
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) => {
189
184
  const {
190
- ref: f
191
- } = p;
192
- return /* @__PURE__ */ d(z, { sx: A.title.container, children: /* @__PURE__ */ d(V, { sx: A.title.text, ref: f, variant: "subtitle1", textTransform: "none", children: i }) });
193
- }, e[0] = i, e[1] = o) : o = e[1];
194
- let s;
195
- return e[2] !== n || e[3] !== o ? (s = /* @__PURE__ */ d(Z, { title: n, children: o }), e[2] = n, e[3] = o, e[4] = s) : s = e[4], s;
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;
196
191
  }
197
- function ne(t) {
198
- const e = B(38), {
199
- children: l,
200
- id: i,
201
- actions: n,
202
- sx: o,
203
- labels: s,
204
- options: p,
205
- onChangeCollapsed: f
206
- } = t;
207
- let v;
208
- e[0] !== n ? (v = n === void 0 ? [] : n, e[0] = n, e[1] = v) : v = e[1];
209
- const x = v;
210
- let u;
211
- e[2] !== p ? (u = p === void 0 ? [] : p, e[2] = p, e[3] = u) : u = e[3];
212
- const r = u;
213
- let a;
214
- e[4] !== i ? (a = ($) => $.getWidget(i)?.title, e[4] = i, e[5] = a) : a = e[5];
215
- const y = _(P(a));
216
- let m;
217
- e[6] !== i ? (m = ($) => $.getWidget(i)?.collapsed, e[6] = i, e[7] = m) : m = e[7];
218
- const C = _(P(m));
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;
219
203
  let g;
220
- e[8] !== i ? (g = ($) => $.getWidget(i)?.disabled, e[8] = i, e[9] = g) : g = e[9];
221
- const w = _(P(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));
222
209
  let h;
223
- e[10] !== i ? (h = ($) => $.getWidget(i)?.isFetching, e[10] = i, e[11] = h) : h = e[11];
224
- const k = _(P(h)), S = C ? "collapsed" : "";
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;
225
221
  let c;
226
- e[12] !== o ? (c = {
227
- ...A.root,
228
- ...o
229
- }, e[12] = o, e[13] = c) : c = e[13];
230
- const b = !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];
225
+ let O;
226
+ e[14] !== x ? (O = !!x.length && /* @__PURE__ */ a(Z, { actions: x }), e[14] = x, e[15] = O) : O = e[15];
231
227
  let W;
232
- e[14] !== k ? (W = k && /* @__PURE__ */ d(q, { sx: A.loading, color: "primary" }), e[14] = k, e[15] = W) : W = e[15];
233
- let I;
234
- e[16] !== y ? (I = /* @__PURE__ */ d(le, { children: y }), e[16] = y, e[17] = I) : I = e[17];
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];
235
229
  let E;
236
- e[18] !== x ? (E = !!x.length && /* @__PURE__ */ d(ee, { actions: x }), e[18] = x, e[19] = E) : E = e[19];
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];
237
236
  let M;
238
- e[20] !== s?.options || e[21] !== r ? (M = !!r.length && /* @__PURE__ */ d(oe, { labels: s?.options, options: r }), e[20] = s?.options, e[21] = r, e[22] = M) : M = e[22];
239
- let O;
240
- e[23] !== W || e[24] !== I || e[25] !== E || e[26] !== M ? (O = /* @__PURE__ */ j(J, { sx: A.summary, children: [
241
- W,
242
- I,
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: [
243
240
  E,
244
241
  M
245
- ] }), e[23] = W, e[24] = I, e[25] = E, e[26] = M, e[27] = O) : O = e[27];
246
- let T;
247
- e[28] !== l ? (T = /* @__PURE__ */ d(K, { sx: A.detail, children: l }), e[28] = l, e[29] = T) : T = e[29];
248
- let L;
249
- return e[30] !== w || e[31] !== f || e[32] !== c || e[33] !== b || e[34] !== O || e[35] !== T || e[36] !== S ? (L = /* @__PURE__ */ j(Q, { className: S, sx: c, expanded: b, onChange: f, disabled: w, children: [
250
- O,
251
- T
252
- ] }), e[30] = w, e[31] = f, e[32] = c, e[33] = b, e[34] = O, e[35] = T, e[36] = S, e[37] = L) : L = e[37], L;
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;
253
243
  }
254
- function ye(t) {
255
- const e = B(19), {
256
- id: l,
257
- title: i,
258
- defaultCollapsed: n,
259
- disabled: o,
260
- sx: s,
261
- actions: p,
262
- options: f,
263
- labels: v,
264
- children: x,
265
- onChangeCollapsed: u
266
- } = t, r = _(se);
267
- let a, y;
268
- e[0] !== n || e[1] !== o || e[2] !== l || e[3] !== r || e[4] !== i ? (a = () => {
269
- r(l, {
270
- collapsed: n,
271
- disabled: o,
272
- title: i
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,
253
+ 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
273
263
  });
274
- }, y = [n, o, i, l, r], e[0] = n, e[1] = o, e[2] = l, e[3] = r, e[4] = i, e[5] = a, e[6] = y) : (a = e[5], y = e[6]), Y(a, y);
275
- let m;
276
- e[7] !== l || e[8] !== u || e[9] !== r ? (m = (w, h) => {
277
- u?.(w, h), r(l, {
278
- collapsed: !h
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
279
269
  });
280
- }, e[7] = l, e[8] = u, e[9] = r, e[10] = m) : m = e[10];
281
- const C = m;
282
- let g;
283
- return e[11] !== p || e[12] !== x || e[13] !== C || e[14] !== l || e[15] !== v || e[16] !== f || e[17] !== s ? (g = /* @__PURE__ */ d(ne, { id: l, labels: v, actions: p, options: f, sx: s, onChangeCollapsed: C, children: x }), e[11] = p, e[12] = x, e[13] = C, e[14] = l, e[15] = v, e[16] = f, e[17] = s, e[18] = g) : g = e[18], g;
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;
284
274
  }
285
- function se(t) {
275
+ function ae(t) {
286
276
  return t.setWidget;
287
277
  }
288
278
  export {
289
- ee as Actions,
290
- oe as Options,
291
- le as Title,
292
- ye as WidgetWrapper,
293
- ne as WrapperUI
279
+ Z as Actions,
280
+ ie as Options,
281
+ ne as Title,
282
+ be as WidgetWrapper,
283
+ re as WrapperUI
294
284
  };
295
285
  //# 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\nexport function Actions({ 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\nexport function Options({ labels, options = [] }: 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, idx) => (\n <MenuItem\n key={`${option.label}-${idx}`}\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\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\nexport function WrapperUI({\n children,\n id,\n actions = [],\n sx,\n labels,\n 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 { useEffect } from 'react'\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 // Consolidated effect: batch all wrapper state updates into a single store update\n // This prevents 3 separate re-render cycles on mount and prop changes\n useEffect(() => {\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","Actions","t0","$","_c","t1","t2","undefined","t3","map","_temp2","t4","Box","action","index","key","jsx","_temp","e","stopPropagation","Options","labels","anchorEl","setAnchorEl","useState","Symbol","for","option","onClick","handleOptionAction","t5","t6","e_0","currentTarget","MoreVert","t7","IconButton","t8","t9","vertical","horizontal","t10","Boolean","t11","t12","sx","paddingBottom","t13","t14","option_0","idx","MenuItem","disabled","e_1","icon","ListItemIcon","ListItemText","label","Menu","t15","Title","children","ref","Typography","SmartTooltip","WrapperUI","id","onChangeCollapsed","state","getWidget","useWidgetStore","useShallow","state_0","collapsed","state_1","state_2","isFetching","LinearProgress","length","t16","jsxs","AccordionSummary","t17","AccordionDetails","t18","Accordion","WidgetWrapper","defaultCollapsed","setWidget","useEffect","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\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\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\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\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\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carto/ps-react-ui",
3
- "version": "4.3.9",
3
+ "version": "4.3.10",
4
4
  "description": "CARTO's Professional Service React Material library",
5
5
  "type": "module",
6
6
  "devDependencies": {
@@ -10,8 +10,10 @@ import { Group } from './group'
10
10
  import { ResponsiveDrawer } from '../responsive-drawer/responsive-drawer'
11
11
  import { Tooltip } from '../tooltip/tooltip'
12
12
 
13
+ const EMPTY_OPTIONS: BasemapsUIProps['options'] = []
14
+
13
15
  export function BasemapsUI({
14
- options = [],
16
+ options = EMPTY_OPTIONS,
15
17
  labels: _labels,
16
18
  position = 'bottom-right',
17
19
  selected = null,
@@ -4,7 +4,7 @@ import {
4
4
  LocationDisabledOutlined,
5
5
  } from '@mui/icons-material'
6
6
  import type { GeolocationControlProps } from './types'
7
- import { useCallback, useEffect, useRef, useState, type JSX } from 'react'
7
+ import { useCallback, useEffect, useReducer, useRef, type JSX } from 'react'
8
8
  import { ariaLabel, tooltipLabelsDefault } from './const'
9
9
  import { Tooltip } from '../tooltip/tooltip'
10
10
 
@@ -19,20 +19,24 @@ export function GeolocationControls({
19
19
  }: GeolocationControlProps): JSX.Element {
20
20
  const watchRef = useRef<number>(null)
21
21
  const hasGeolocation = 'geolocation' in navigator
22
- const [allowed, setAllowed] = useState(hasGeolocation)
22
+
23
+ const [allowed, dispatch] = useReducer(
24
+ (_: boolean, action: 'granted' | 'denied') => action === 'granted',
25
+ hasGeolocation,
26
+ )
23
27
 
24
28
  useEffect(() => {
25
29
  if (hasGeolocation) {
26
30
  navigator.permissions
27
31
  .query({ name: 'geolocation' })
28
32
  .then((result) => {
29
- setAllowed(result.state === 'granted')
33
+ dispatch(result.state === 'granted' ? 'granted' : 'denied')
30
34
  result.onchange = () => {
31
- setAllowed(result.state === 'granted')
35
+ dispatch(result.state === 'granted' ? 'granted' : 'denied')
32
36
  }
33
37
  })
34
38
  .catch((error: Parameters<PositionErrorCallback>[0]) => {
35
- setAllowed(false)
39
+ dispatch('denied')
36
40
  onError?.(error)
37
41
  })
38
42
  }
@@ -53,7 +57,7 @@ export function GeolocationControls({
53
57
 
54
58
  const error = useCallback(
55
59
  (error: Parameters<PositionErrorCallback>[0]) => {
56
- setAllowed(false)
60
+ dispatch('denied')
57
61
  onError?.(error)
58
62
  },
59
63
  [onError],
@@ -20,15 +20,19 @@ import deepmerge from 'deepmerge'
20
20
  import { LassoToolsUIChip } from './chip'
21
21
  import { Tooltip } from '../tooltip/tooltip'
22
22
 
23
+ const EMPTY_VALUES: LassoToolsInlineComponentProps['values'] = []
24
+ const EMPTY_BOX_PROPS: NonNullable<LassoToolsInlineComponentProps['BoxProps']> =
25
+ {}
26
+
23
27
  export function LassoToolsInlineUI({
24
28
  enabled,
25
- values = [],
29
+ values = EMPTY_VALUES,
26
30
  chipProps,
27
31
  labels,
28
32
  modes,
29
33
  modesMapping,
30
34
  modeSelected,
31
- BoxProps: { sx, ...BoxProps } = {},
35
+ BoxProps: { sx, ...BoxProps } = EMPTY_BOX_PROPS,
32
36
  onChipToggle,
33
37
  onDelete,
34
38
  onChangeMode,
@@ -32,16 +32,20 @@ import { LASSO_TOOLS_LABELS } from './const'
32
32
  import { styles } from './styles'
33
33
  import type { LassoToolsComponentProps, OptionsChildrenProps } from './types'
34
34
 
35
+ const EMPTY_VALUES: LassoToolsComponentProps['values'] = []
36
+ const EMPTY_PAPER_PROPS: NonNullable<LassoToolsComponentProps['PaperProps']> =
37
+ {}
38
+
35
39
  export function LassoToolsUI({
36
40
  enabled,
37
- values = [],
41
+ values = EMPTY_VALUES,
38
42
  actionProps,
39
43
  chipProps,
40
44
  labels,
41
45
  modes,
42
46
  modesMapping,
43
47
  modeSelected,
44
- PaperProps: { sx, ...PaperProps } = {},
48
+ PaperProps: { sx, ...PaperProps } = EMPTY_PAPER_PROPS,
45
49
  onActionToggle,
46
50
  onChipToggle,
47
51
  onDelete,
@@ -130,8 +134,10 @@ function LassoToolsUIAction({
130
134
  )
131
135
  }
132
136
 
137
+ const EMPTY_TRIGGER_PROPS: { Icon?: ReactNode; sx?: SxProps<Theme> } = {}
138
+
133
139
  function Options({
134
- TriggerProps = {},
140
+ TriggerProps = EMPTY_TRIGGER_PROPS,
135
141
  MenuProps,
136
142
  children,
137
143
  }: {
@@ -8,7 +8,7 @@ export function ListDataSkeleton({ length = 5 }: ListDataSkeletonProps) {
8
8
  return (
9
9
  <Box aria-label='List Data skeleton'>
10
10
  {new Array(length).fill(null).map((_, idx) => (
11
- <Grid key={idx} container spacing={1}>
11
+ <Grid key={`skeleton-${idx}`} container spacing={1}>
12
12
  <Grid
13
13
  container
14
14
  item