@eightshift/ui-components 6.1.1 → 6.3.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 (73) hide show
  1. package/dist/{Button-CFnNdpNZ.js → Button-DtRmB6b8.js} +7 -6
  2. package/dist/{Dialog-D0jMcN-a.js → Dialog-DTIxSDhz.js} +115 -52
  3. package/dist/{FocusScope-BJhC1-1e.js → FocusScope-CjFQ7cbd.js} +16 -16
  4. package/dist/{Hidden-Rfj-STx7.js → Hidden-DOH36apC.js} +23 -6
  5. package/dist/{Input-B4X6-x6r.js → Input-BG9DaxYN.js} +6 -6
  6. package/dist/{Label-BDlf9vIY.js → Label-_aSf9-8u.js} +1 -1
  7. package/dist/{ListBox-BaN0n5h3.js → ListBox-DXFyyj_r.js} +15 -12
  8. package/dist/{OverlayArrow-Dy0qw7WL.js → OverlayArrow-Fuxj-1QM.js} +27 -9
  9. package/dist/{RadioGroup-CjCAbUr4.js → RadioGroup-DCeiLxLK.js} +9 -9
  10. package/dist/{SearchField-CafsA525.js → SearchField-B_yKFXRk.js} +11 -11
  11. package/dist/{SelectionManager-oojq6MOy.js → SelectionManager-B02LcxLr.js} +143 -96
  12. package/dist/{Slider-BIbaMdUE.js → Slider-bR3fAmim.js} +7 -7
  13. package/dist/{VisuallyHidden-CqnizvzQ.js → VisuallyHidden-DZnWrkn8.js} +1 -1
  14. package/dist/assets/style-admin.css +637 -327
  15. package/dist/assets/style-editor.css +637 -327
  16. package/dist/assets/style.css +637 -327
  17. package/dist/assets/wp-overrides/allow-full-width-blocks.css +1 -1
  18. package/dist/assets/wp-overrides/fix-label-text-case.css +1 -1
  19. package/dist/assets/wp-overrides/increase-sidebar-width.css +1 -1
  20. package/dist/assets/wp-overrides/make-block-messages-nicer.css +7 -7
  21. package/dist/assets/wp-overrides/replace-fonts.css +5 -5
  22. package/dist/assets/wp-overrides/restyle-tooltips.css +3 -3
  23. package/dist/assets/wp-overrides/round-corners.css +1 -1
  24. package/dist/assets/wp-overrides/unify-button-sizes.css +1 -1
  25. package/dist/components/base-control/base-control.js +1 -1
  26. package/dist/components/base-control/container.js +1 -1
  27. package/dist/components/button/button.js +12 -9
  28. package/dist/components/checkbox/checkbox.js +10 -10
  29. package/dist/components/color-pickers/solid-color-picker.js +10 -10
  30. package/dist/components/expandable/expandable.js +5 -5
  31. package/dist/components/input-field/input-field.js +6 -9
  32. package/dist/components/link-input/link-input.js +191 -68
  33. package/dist/components/matrix-align/matrix-align.js +1 -1
  34. package/dist/components/menu/menu.js +5 -5
  35. package/dist/components/modal/modal.js +11 -8
  36. package/dist/components/notice/notice.js +3 -3
  37. package/dist/components/number-picker/number-picker.js +7 -7
  38. package/dist/components/options-panel/options-panel.js +6 -6
  39. package/dist/components/popover/popover.js +8 -7
  40. package/dist/components/radio/radio.js +2 -2
  41. package/dist/components/responsive/mini-responsive.js +81 -70
  42. package/dist/components/responsive/responsive.js +24 -40
  43. package/dist/components/responsive-preview/responsive-preview.js +1 -1
  44. package/dist/components/rich-label/rich-label.js +11 -5
  45. package/dist/components/select/async-multi-select.js +89 -47
  46. package/dist/components/select/async-select.js +90 -47
  47. package/dist/components/select/multi-select.js +161 -117
  48. package/dist/components/select/shared.js +5 -4
  49. package/dist/components/select/single-select.js +159 -115
  50. package/dist/components/slider/column-config-slider.js +3 -3
  51. package/dist/components/slider/slider.js +3 -3
  52. package/dist/components/tabs/tabs.js +39 -8
  53. package/dist/components/toggle/switch.js +5 -5
  54. package/dist/components/toggle/toggle.js +1 -1
  55. package/dist/components/toggle-button/toggle-button.js +6 -6
  56. package/dist/components/tooltip/tooltip.js +11 -9
  57. package/dist/{proxy-DFlYXk07.js → proxy-CNEXmkdK.js} +205 -137
  58. package/dist/{shared-CMLCUova.js → shared-CNH8QfV9.js} +50 -15
  59. package/dist/{textSelection-CeoEP4rL.js → textSelection-DA3VcKpG.js} +1 -1
  60. package/dist/{useButton-5YL_nmpZ.js → useButton-DyMX0EVr.js} +2 -2
  61. package/dist/{useEvent-Zze2g7CX.js → useEvent-Bfy68GHZ.js} +1 -1
  62. package/dist/{useFilter-8S94U4xM.js → useFilter-Bg5C34XC.js} +1 -1
  63. package/dist/{useFocusRing-rUOwLdTK.js → useFocusRing-B2glEZ25.js} +9 -7
  64. package/dist/{useFormReset-BxtOoO5Q.js → useFormReset-BoxsKyJ9.js} +1 -1
  65. package/dist/{useFormValidation-DTmPrTD8.js → useFormValidation-BrbMhS2N.js} +4 -3
  66. package/dist/{useHover-CmyvqeWX.js → useHover-DkmPQdGE.js} +76 -58
  67. package/dist/{useListState-B22CApJO.js → useListState-BjnzKozj.js} +3 -3
  68. package/dist/{useNumberField-CTkI-U9a.js → useNumberField-CsygZKz9.js} +45 -15
  69. package/dist/{usePress-CNefMs8d.js → usePress-Ck5xMtDr.js} +21 -21
  70. package/dist/{useToggle-CFFOmZWi.js → useToggle-Ddc7N8pR.js} +4 -4
  71. package/dist/{useToggleState-BWrKKisg.js → useToggleState-H_lORSWO.js} +1 -1
  72. package/package.json +22 -21
  73. package/dist/useSingleSelectListState-CDZGQDLC.js +0 -38
@@ -1,21 +1,22 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { _ as __ } from "../../default-i18n-CnQeC5Pl.js";
3
3
  import { BaseControl } from "../base-control/base-control.js";
4
- import { $ as $d2f53cda644affe3$export$2f2b9559550c7bbc, a as $440f4836bcb56932$export$b94867ecbd698f21 } from "../../SearchField-CafsA525.js";
5
- import { $ as $d2b4bc8c273e7be6$export$353f5b6fc5456de1 } from "../../Button-CFnNdpNZ.js";
6
- import { $ as $3985021b0ad6602f$export$f5b8910cec6cf069 } from "../../Input-B4X6-x6r.js";
7
- import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-BDlf9vIY.js";
8
- import { $ as $eed445e0843c11d0$export$41f133550aa26f48 } from "../../ListBox-BaN0n5h3.js";
9
- import { f as $07b14b47974efb58$export$5b6b19405a83ff9d } from "../../Dialog-D0jMcN-a.js";
10
- import { $ as $82d7e5349645de74$export$ef9b1a59e592288f, a as $82d7e5349645de74$export$e288731fd71264f0, S as SelectClearButton, O as OptionItemBase } from "../../shared-CMLCUova.js";
11
- import { useRef, cloneElement } from "react";
4
+ import { $ as $d2f53cda644affe3$export$2f2b9559550c7bbc, a as $440f4836bcb56932$export$b94867ecbd698f21 } from "../../SearchField-B_yKFXRk.js";
5
+ import { $ as $d2b4bc8c273e7be6$export$353f5b6fc5456de1 } from "../../Button-DtRmB6b8.js";
6
+ import { f as $07b14b47974efb58$export$5b6b19405a83ff9d, i as $72a5793c14baf454$export$8b251419efc915eb } from "../../Dialog-DTIxSDhz.js";
7
+ import { $ as $3985021b0ad6602f$export$f5b8910cec6cf069 } from "../../Input-BG9DaxYN.js";
8
+ import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-_aSf9-8u.js";
9
+ import { $ as $eed445e0843c11d0$export$41f133550aa26f48, a as $eed445e0843c11d0$export$dca12b0bb56e4fc } from "../../ListBox-DXFyyj_r.js";
10
+ import { g as getGroupedOptions, $ as $82d7e5349645de74$export$ef9b1a59e592288f, a as $82d7e5349645de74$export$e288731fd71264f0, S as SelectClearButton, O as OptionItemBase } from "../../shared-CNH8QfV9.js";
11
+ import { $ as $e1995378a142960e$export$fb8073518f34e6ec } from "../../SelectionManager-B02LcxLr.js";
12
+ import { useRef, useState, useMemo, cloneElement } from "react";
12
13
  import { icons } from "../../icons/icons.js";
13
14
  import "../../react-jsx-parser.min-DAh4myol.js";
14
15
  import { c as clsx } from "../../clsx-DgYk2OaC.js";
15
16
  import { RichLabel } from "../rich-label/rich-label.js";
16
17
  import { c as cva } from "../../index-BHpUy2Ix.js";
17
18
  import { randomId } from "../../utilities/hash.js";
18
- import { $ as $bb77f239b46e8c72$export$3274cf84b703fff } from "../../useFilter-8S94U4xM.js";
19
+ import { $ as $bb77f239b46e8c72$export$3274cf84b703fff } from "../../useFilter-Bg5C34XC.js";
19
20
  /**
20
21
  * Select menu.
21
22
  *
@@ -31,6 +32,8 @@ import { $ as $bb77f239b46e8c72$export$3274cf84b703fff } from "../../useFilter-8
31
32
  * @param {string|{label: string, value: string, metadata: Object<string, any>?}} props.value - Current value of the select.
32
33
  * @param {Function} props.onChange - Function to call when the value changes.
33
34
  * @param {boolean} [props.simpleValue=false] - If `true`, instead of using a `{label: '', value: ''}` value type, a string is used (just the value).
35
+ * @param {string} [props.groupKey] - If provided, the options will be grouped by this key.
36
+ * @param {Object} [props.groupValueMapping] - If provided, the group headers will be mapped to these labels/icons.
34
37
  * @param {boolean} [props.clearable] - Whether the select is clearable.
35
38
  * @param {boolean} [props.disabled] - Whether the select is disabled.
36
39
  * @param {string} [props.placeholder] - Placeholder text to show when no value is selected.
@@ -78,6 +81,8 @@ const Select = (props) => {
78
81
  onChange,
79
82
  options,
80
83
  simpleValue = false,
84
+ groupKey,
85
+ groupValueMapping,
81
86
  disabled = false,
82
87
  clearable = false,
83
88
  placeholder = __("Select...", "eightshift-ui-components"),
@@ -92,9 +97,45 @@ const Select = (props) => {
92
97
  hidden,
93
98
  ...rest
94
99
  } = props;
95
- const ref = useRef();
96
- const currentValue = simpleValue ? value ?? null : value?.value ?? null;
100
+ const ref = useRef(null);
101
+ const [searchTerm, setSearchTerm] = useState("");
97
102
  const { contains } = $bb77f239b46e8c72$export$3274cf84b703fff({ sensitivity: "base" });
103
+ const filteredOptions = useMemo(() => {
104
+ if (!searchable || searchTerm.length === 0) {
105
+ return options;
106
+ }
107
+ return options?.filter((item) => {
108
+ return contains(item.label ?? "", searchTerm) || contains(item?.subtitle ?? "", searchTerm);
109
+ });
110
+ }, [options, searchable, searchTerm, contains]);
111
+ const groupedOptions = useMemo(() => getGroupedOptions(filteredOptions, groupKey, groupValueMapping), [filteredOptions, groupKey, groupValueMapping]);
112
+ const currentValue = simpleValue ? value ?? null : value?.value ?? null;
113
+ const renderItem = (item) => {
114
+ let icon2 = item?.icon ?? null;
115
+ if (typeof item?.icon === "string") {
116
+ icon2 = icons?.[item.icon] ?? null;
117
+ }
118
+ return /* @__PURE__ */ jsxs(
119
+ OptionItemBase,
120
+ {
121
+ id: item?.value ?? randomId(8),
122
+ className: item?.className,
123
+ selectIndicator: true,
124
+ children: [
125
+ customMenuOption && customMenuOption(item),
126
+ !customMenuOption && /* @__PURE__ */ jsx(
127
+ RichLabel,
128
+ {
129
+ icon: icon2,
130
+ label: item?.label,
131
+ subtitle: item?.subtitle,
132
+ noColor: true
133
+ }
134
+ )
135
+ ]
136
+ }
137
+ );
138
+ };
98
139
  if (hidden) {
99
140
  return null;
100
141
  }
@@ -173,6 +214,11 @@ const Select = (props) => {
173
214
  {
174
215
  isDisabled: disabled,
175
216
  value: currentValue,
217
+ onOpenChange: (isOpen) => {
218
+ if (!isOpen) {
219
+ setSearchTerm("");
220
+ }
221
+ },
176
222
  onChange: (selected) => {
177
223
  if (selected === null || selected === void 0) {
178
224
  onChange(null);
@@ -190,12 +236,7 @@ const Select = (props) => {
190
236
  if (item && "id" in item) {
191
237
  delete item.id;
192
238
  }
193
- onChange({
194
- label: item?.label,
195
- value: item?.value,
196
- subtitle: item?.subtitle,
197
- meta: item?.meta
198
- });
239
+ onChange(item);
199
240
  },
200
241
  placeholder,
201
242
  ...rest,
@@ -270,7 +311,8 @@ const Select = (props) => {
270
311
  $07b14b47974efb58$export$5b6b19405a83ff9d,
271
312
  {
272
313
  className: ({ isEntering, isExiting }) => clsx(
273
- "es:w-(--trigger-width) es:min-w-72",
314
+ "es:font-sans",
315
+ "es:w-(--select-width) es:min-w-72",
274
316
  "es:outline-hidden",
275
317
  searchable ? "es:rounded-b-xl es:rounded-t-3xl" : "es:rounded-2xl",
276
318
  "es:overflow-clip es:grid es:grid-cols-1",
@@ -293,95 +335,100 @@ const Select = (props) => {
293
335
  isExiting && "es:placement-top:motion-translate-y-out-[0.5rem] es:placement-bottom:motion-translate-y-out-[-0.5rem]"
294
336
  ),
295
337
  placement: "bottom left",
296
- maxHeight: 240,
338
+ maxHeight: 260,
297
339
  triggerRef: ref,
340
+ style: { "--select-width": ref.current ? `${ref.current.offsetWidth}px` : "var(--trigger-width)" },
298
341
  children: [
299
- searchable && /* @__PURE__ */ jsxs($d2f53cda644affe3$export$2f2b9559550c7bbc, { filter: contains, children: [
300
- /* @__PURE__ */ jsxs(
301
- $440f4836bcb56932$export$b94867ecbd698f21,
302
- {
303
- "aria-label": __("Search", "eightshift-ui-components"),
304
- className: "es:flex es:items-center es:relative",
305
- autoFocus: true,
306
- children: [
307
- /* @__PURE__ */ jsx(
308
- $3985021b0ad6602f$export$f5b8910cec6cf069,
309
- {
310
- placeholder: __("Search...", "eightshift-ui-components"),
311
- className: clsx(
312
- "es:peer es:size-full es:h-9.5 es:outline-hidden! es:pl-3.5 es:pr-9 es:shadow-none! es:text-13! es:placeholder:text-surface-500 es:[&::-webkit-search-cancel-button]:hidden",
313
- "es:bg-accent-900/8 es:m-1.5 es:rounded-3xl es:border-none!",
314
- "es:inset-ring! es:inset-ring-accent-950/7 es:focus:inset-ring-accent-950/20",
315
- "es:text-accent-950 es:placeholder:text-accent-700/50",
316
- "es:transition"
317
- )
318
- }
319
- ),
320
- /* @__PURE__ */ jsx(
321
- $d2b4bc8c273e7be6$export$353f5b6fc5456de1,
322
- {
323
- "aria-label": __("Clear", "eightshift-ui-components"),
324
- className: clsx(
325
- "es:absolute es:right-3 es:top-0 es:bottom-0 es:my-auto es:border-none es:bg-transparent",
326
- "es:flex es:size-7 es:items-center es:justify-center es:rounded-3xl es:text-sm es:text-surface-700 es:transition es:hover:bg-accent-50 es:hover:text-accent-800 es:any-focus:outline-hidden es:focus:ring-2 es:focus:ring-accent-500/50 es:disabled:text-secondary-300",
327
- "es:peer-placeholder-shown:opacity-0"
328
- ),
329
- children: icons.clearAlt
330
- }
331
- )
332
- ]
333
- }
334
- ),
335
- /* @__PURE__ */ jsx(
336
- $eed445e0843c11d0$export$41f133550aa26f48,
337
- {
338
- className: "es:space-y-0.75 es:p-1.5 es:pt-0 es:any-focus:outline-hidden es:h-full es:overflow-y-auto es:rounded-t-xl",
339
- items: options,
340
- renderEmptyState: () => /* @__PURE__ */ jsx(
341
- RichLabel,
342
+ searchable && /* @__PURE__ */ jsxs(
343
+ $d2f53cda644affe3$export$2f2b9559550c7bbc,
344
+ {
345
+ filter: () => true,
346
+ inputValue: searchTerm,
347
+ onInputChange: setSearchTerm,
348
+ children: [
349
+ /* @__PURE__ */ jsxs(
350
+ $440f4836bcb56932$export$b94867ecbd698f21,
342
351
  {
343
- icon: icons.searchEmpty,
344
- label: __("No results", "eightshift-ui-components"),
345
- subtitle: __("Try a different search term", "eightshift-ui-components"),
346
- className: "es:min-h-14 es:p-2 es:w-fit es:mx-auto es:motion-preset-slide-up es:motion-ease-spring-bouncy es:motion-duration-200 es:shrink-0",
347
- iconClassName: "es:text-accent-700 es:icon:size-7!",
348
- noColor: true
352
+ "aria-label": __("Search", "eightshift-ui-components"),
353
+ className: "es:flex es:items-center es:relative",
354
+ autoFocus: true,
355
+ children: [
356
+ /* @__PURE__ */ jsx(
357
+ $3985021b0ad6602f$export$f5b8910cec6cf069,
358
+ {
359
+ placeholder: __("Search...", "eightshift-ui-components"),
360
+ className: clsx(
361
+ "es:peer es:size-full es:h-9.5 es:outline-hidden! es:pl-3.5 es:pr-9 es:shadow-none! es:text-13! es:placeholder:text-surface-500 es:[&::-webkit-search-cancel-button]:hidden",
362
+ "es:bg-accent-900/8 es:m-1.5 es:rounded-3xl! es:border-none!",
363
+ "es:inset-ring! es:inset-ring-accent-950/7 es:focus:inset-ring-accent-950/20",
364
+ "es:text-accent-950 es:placeholder:text-accent-700/50",
365
+ "es:transition"
366
+ )
367
+ }
368
+ ),
369
+ /* @__PURE__ */ jsx(
370
+ $d2b4bc8c273e7be6$export$353f5b6fc5456de1,
371
+ {
372
+ slot: "clear",
373
+ "aria-label": __("Clear", "eightshift-ui-components"),
374
+ className: clsx(
375
+ "es:absolute es:right-3 es:top-0 es:bottom-0 es:my-auto es:border-none es:bg-transparent",
376
+ "es:flex es:size-7 es:items-center es:justify-center es:rounded-3xl es:text-sm es:text-surface-700 es:transition es:hover:bg-accent-50 es:hover:text-accent-800 es:any-focus:outline-hidden es:focus:ring-2 es:focus:ring-accent-500/50 es:disabled:text-secondary-300",
377
+ "es:peer-placeholder-shown:opacity-0"
378
+ ),
379
+ children: icons.clearAlt
380
+ }
381
+ )
382
+ ]
349
383
  }
350
384
  ),
351
- children: (item) => {
352
- let icon2 = item?.icon ?? null;
353
- if (typeof item?.icon === "string") {
354
- icon2 = icons?.[item.icon] ?? null;
385
+ /* @__PURE__ */ jsxs(
386
+ $eed445e0843c11d0$export$41f133550aa26f48,
387
+ {
388
+ className: "es:space-y-0.75 es:p-1.5 es:pt-0 es:any-focus:outline-hidden es:h-full es:overflow-y-auto es:rounded-t-xl",
389
+ renderEmptyState: () => /* @__PURE__ */ jsx(
390
+ RichLabel,
391
+ {
392
+ icon: icons.searchEmpty,
393
+ label: __("No results", "eightshift-ui-components"),
394
+ subtitle: __("Try a different search term", "eightshift-ui-components"),
395
+ className: "es:min-h-14 es:p-2 es:w-fit es:mx-auto es:motion-preset-slide-up es:motion-ease-spring-bouncy es:motion-duration-200 es:shrink-0",
396
+ iconClassName: "es:text-accent-700 es:icon:size-7!",
397
+ noColor: true
398
+ }
399
+ ),
400
+ children: [
401
+ groupedOptions && /* @__PURE__ */ jsx($e1995378a142960e$export$fb8073518f34e6ec, { items: groupedOptions, children: (item) => /* @__PURE__ */ jsxs(
402
+ $eed445e0843c11d0$export$dca12b0bb56e4fc,
403
+ {
404
+ id: item.key,
405
+ className: "es:flex es:flex-col es:gap-0.75",
406
+ children: [
407
+ /* @__PURE__ */ jsx($72a5793c14baf454$export$8b251419efc915eb, { className: "es:px-2.5 es:pb-1 es:pt-3 es:select-none", children: /* @__PURE__ */ jsx(
408
+ RichLabel,
409
+ {
410
+ icon: item?.icon,
411
+ label: item?.label,
412
+ subtitle: item?.subtitle,
413
+ endIcon: item?.endIcon,
414
+ fullWidth: true
415
+ }
416
+ ) }),
417
+ /* @__PURE__ */ jsx($e1995378a142960e$export$fb8073518f34e6ec, { items: item.options, children: (subItem) => renderItem(subItem) })
418
+ ]
419
+ }
420
+ ) }),
421
+ !groupedOptions && /* @__PURE__ */ jsx($e1995378a142960e$export$fb8073518f34e6ec, { items: searchable ? filteredOptions : options, children: (item) => renderItem(item) })
422
+ ]
355
423
  }
356
- return /* @__PURE__ */ jsxs(
357
- OptionItemBase,
358
- {
359
- id: item?.value ?? randomId(8),
360
- className: item?.className,
361
- selectIndicator: true,
362
- children: [
363
- customMenuOption && customMenuOption(item),
364
- !customMenuOption && /* @__PURE__ */ jsx(
365
- RichLabel,
366
- {
367
- icon: icon2,
368
- label: item?.label,
369
- subtitle: item?.subtitle,
370
- noColor: true
371
- }
372
- )
373
- ]
374
- }
375
- );
376
- }
377
- }
378
- )
379
- ] }),
380
- !searchable && /* @__PURE__ */ jsx(
424
+ )
425
+ ]
426
+ }
427
+ ),
428
+ !searchable && /* @__PURE__ */ jsxs(
381
429
  $eed445e0843c11d0$export$41f133550aa26f48,
382
430
  {
383
431
  className: "es:space-y-0.75 es:p-1.5 es:any-focus:outline-hidden es:h-full es:overflow-y-auto es:rounded-t-xl",
384
- items: options,
385
432
  renderEmptyState: () => /* @__PURE__ */ jsx(
386
433
  RichLabel,
387
434
  {
@@ -393,32 +440,29 @@ const Select = (props) => {
393
440
  noColor: true
394
441
  }
395
442
  ),
396
- children: (item) => {
397
- let icon2 = item?.icon ?? null;
398
- if (typeof item?.icon === "string") {
399
- icon2 = icons?.[item.icon] ?? null;
400
- }
401
- return /* @__PURE__ */ jsxs(
402
- OptionItemBase,
443
+ children: [
444
+ groupedOptions && /* @__PURE__ */ jsx($e1995378a142960e$export$fb8073518f34e6ec, { items: groupedOptions, children: (item) => /* @__PURE__ */ jsxs(
445
+ $eed445e0843c11d0$export$dca12b0bb56e4fc,
403
446
  {
404
- id: item.value,
405
- className: item?.className,
406
- selectIndicator: true,
447
+ id: item.key,
448
+ className: "es:flex es:flex-col es:gap-0.75",
407
449
  children: [
408
- customMenuOption && customMenuOption(item),
409
- !customMenuOption && /* @__PURE__ */ jsx(
450
+ /* @__PURE__ */ jsx($72a5793c14baf454$export$8b251419efc915eb, { className: "es:px-2.5 es:pb-1 es:pt-3 es:select-none", children: /* @__PURE__ */ jsx(
410
451
  RichLabel,
411
452
  {
412
- icon: icon2,
453
+ icon: item?.icon,
413
454
  label: item?.label,
414
455
  subtitle: item?.subtitle,
415
- noColor: true
456
+ endIcon: item?.endIcon,
457
+ fullWidth: true
416
458
  }
417
- )
459
+ ) }),
460
+ /* @__PURE__ */ jsx($e1995378a142960e$export$fb8073518f34e6ec, { items: item.options, children: (subItem) => renderItem(subItem) })
418
461
  ]
419
462
  }
420
- );
421
- }
463
+ ) }),
464
+ !groupedOptions && /* @__PURE__ */ jsx($e1995378a142960e$export$fb8073518f34e6ec, { items: options, children: (item) => renderItem(item) })
465
+ ]
422
466
  }
423
467
  )
424
468
  ]
@@ -1,13 +1,13 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { s as sprintf } from "../../sprintf-DmNrJSYG.js";
3
3
  import { _ as __ } from "../../default-i18n-CnQeC5Pl.js";
4
- import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-BDlf9vIY.js";
5
- import { $ as $6f909507e6374d18$export$472062a354075cee, a as $6f909507e6374d18$export$105594979f116971, b as $6f909507e6374d18$export$2c1b491743890dec, c as $6f909507e6374d18$export$a590f758a961cb5b } from "../../Slider-BIbaMdUE.js";
4
+ import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-_aSf9-8u.js";
5
+ import { $ as $6f909507e6374d18$export$472062a354075cee, a as $6f909507e6374d18$export$105594979f116971, b as $6f909507e6374d18$export$2c1b491743890dec, c as $6f909507e6374d18$export$a590f758a961cb5b } from "../../Slider-bR3fAmim.js";
6
6
  import { BaseControl } from "../base-control/base-control.js";
7
7
  import { icons } from "../../icons/icons.js";
8
8
  import { getColumnConfigOutputText } from "./utils.js";
9
9
  import { c as clsx } from "../../clsx-DgYk2OaC.js";
10
- import { A as AnimatePresence, m as motion } from "../../proxy-DFlYXk07.js";
10
+ import { A as AnimatePresence, m as motion } from "../../proxy-CNEXmkdK.js";
11
11
  /**
12
12
  * A two-thumb slider for selecting a range of columns.
13
13
  *
@@ -1,13 +1,13 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-BDlf9vIY.js";
4
- import { $ as $6f909507e6374d18$export$472062a354075cee, a as $6f909507e6374d18$export$105594979f116971, b as $6f909507e6374d18$export$2c1b491743890dec, c as $6f909507e6374d18$export$a590f758a961cb5b } from "../../Slider-BIbaMdUE.js";
3
+ import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-_aSf9-8u.js";
4
+ import { $ as $6f909507e6374d18$export$472062a354075cee, a as $6f909507e6374d18$export$105594979f116971, b as $6f909507e6374d18$export$2c1b491743890dec, c as $6f909507e6374d18$export$a590f758a961cb5b } from "../../Slider-bR3fAmim.js";
5
5
  import { BaseControl } from "../base-control/base-control.js";
6
6
  import { c as clsx } from "../../clsx-DgYk2OaC.js";
7
7
  import { NumberPicker } from "../number-picker/number-picker.js";
8
8
  import { generateMarkers, generateGridTemplate } from "./utils.js";
9
9
  import { HStack } from "../layout/hstack.js";
10
- import { A as AnimatePresence, m as motion } from "../../proxy-DFlYXk07.js";
10
+ import { A as AnimatePresence, m as motion } from "../../proxy-CNEXmkdK.js";
11
11
  /**
12
12
  * A single/multi-thumb slider component.
13
13
  *
@@ -1,19 +1,18 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { c as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, b as $3ef42575df84b30b$export$9d1611c77c2fe928, d as $bdb11010cef70236$export$f680877a34711e37, k as $df56164dff5785e2$export$4338b53315abf666, h as $64fa3d84918910a7$export$4d86445c2cf5e3, a as $64fa3d84918910a7$export$df3a06d6289f983e, $ as $64fa3d84918910a7$export$29f1550f4b0d4415, e as $64fa3d84918910a7$export$fabf2dc03a41866e, i as $64fa3d84918910a7$export$2881499e37b75b9a } from "../../utils-Cr3pLd9c.js";
3
- import { e as $880e95eb8b93ba9a$export$ecf600387e221c37, m as $ae20dd8cbca75726$export$d6daf82dcd84e87c, h as $e1995378a142960e$export$18af5c7a9e9b3664, g as $e1995378a142960e$export$fb8073518f34e6ec, f as $e1995378a142960e$export$bf788dd355e3a401, n as $23b9f4fcf0fe224b$export$d68d59712b04d9d1, j as $7135fc7d473fd974$export$4feb769f8ddf26c5, o as $7135fc7d473fd974$export$90e00781bc59d8f9, p as $7135fc7d473fd974$export$a164736487e3f0ae } from "../../SelectionManager-oojq6MOy.js";
3
+ import { f as $880e95eb8b93ba9a$export$ecf600387e221c37, o as $ae20dd8cbca75726$export$d6daf82dcd84e87c, j as $e1995378a142960e$export$18af5c7a9e9b3664, $ as $e1995378a142960e$export$fb8073518f34e6ec, g as $e1995378a142960e$export$bf788dd355e3a401, p as $23b9f4fcf0fe224b$export$d68d59712b04d9d1, l as $7135fc7d473fd974$export$4feb769f8ddf26c5, q as $7135fc7d473fd974$export$90e00781bc59d8f9, r as $7135fc7d473fd974$export$a164736487e3f0ae } from "../../SelectionManager-B02LcxLr.js";
4
4
  import { $ as $1d5b8b8664671ef2$export$c9549807523555e0 } from "../../SelectionIndicator-D7WMzeAW.js";
5
5
  import { $ as $c8a5a149f625efcf$export$758399f318e6385a } from "../../SharedElementTransition-CtoWSaF0.js";
6
- import { $ as $f39a9eba43920ace$export$86427a43e3e48ebb } from "../../Hidden-Rfj-STx7.js";
6
+ import { $ as $f39a9eba43920ace$export$86427a43e3e48ebb } from "../../Hidden-DOH36apC.js";
7
7
  import { $ as $65484d02dcb7eb3e$export$457c3d6518dd4c6f } from "../../filterDOMProps-eGTqWSTd.js";
8
- import { b as $cdc5a6778b766db2$export$a9d04c5684123369 } from "../../useListState-B22CApJO.js";
8
+ import { a as $e72dd72e1c76a225$export$2f645645f7bca764, b as $cdc5a6778b766db2$export$a9d04c5684123369 } from "../../useListState-BjnzKozj.js";
9
9
  import { $ as $d3f049242431219c$export$45fda7c47f93fd48, a as $d3f049242431219c$export$6d3443f2c48bfc20 } from "../../animation-Dfl8uEb3.js";
10
10
  import $dbSRa$react__default, { useState, useMemo, useRef, useEffect, useContext, forwardRef, createContext, isValidElement, useId, cloneElement } from "react";
11
- import { E as $ea8dcbcb9ea1b556$export$7e924b3091a3bd18, $ as $f645667febf57a63$export$4c014de7c8940b4c, x as $6179b936705e76d3$export$ae780daf29e6d456 } from "../../useHover-CmyvqeWX.js";
11
+ import { F as $ea8dcbcb9ea1b556$export$7e924b3091a3bd18, $ as $f645667febf57a63$export$4c014de7c8940b4c, a as $458b0a5536c1a7cf$export$40bfa8c7b0832715, y as $6179b936705e76d3$export$ae780daf29e6d456 } from "../../useHover-DkmPQdGE.js";
12
12
  import { $ as $313b98861ee5dd6c$export$d6875122194c7b44 } from "../../useLabels-D8O3gOdV.js";
13
- import { a as $9bf71ea28793e738$export$2d6ec8fc375ceafa } from "../../FocusScope-BJhC1-1e.js";
13
+ import { a as $9bf71ea28793e738$export$2d6ec8fc375ceafa } from "../../FocusScope-CjFQ7cbd.js";
14
14
  import { $ as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7 } from "../../context-iUFQCK8m.js";
15
- import { a as $f7dceffc5ad7768b$export$4e328f61c538687f } from "../../useFocusRing-rUOwLdTK.js";
16
- import { $ as $a0d645289fe9b86b$export$e7f05e985daf4b5f } from "../../useSingleSelectListState-CDZGQDLC.js";
15
+ import { a as $f7dceffc5ad7768b$export$4e328f61c538687f } from "../../useFocusRing-B2glEZ25.js";
17
16
  import { s as sprintf } from "../../sprintf-DmNrJSYG.js";
18
17
  import { _ as __ } from "../../default-i18n-CnQeC5Pl.js";
19
18
  import { c as clsx } from "../../clsx-DgYk2OaC.js";
@@ -206,6 +205,38 @@ function $58d314389b21fa3f$export$773e389e644c5874(props, state, ref) {
206
205
  }
207
206
  };
208
207
  }
208
+ function $a0d645289fe9b86b$export$e7f05e985daf4b5f(props) {
209
+ var _props_defaultSelectedKey;
210
+ let [selectedKey, setSelectedKey] = $458b0a5536c1a7cf$export$40bfa8c7b0832715(props.selectedKey, (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : null, props.onSelectionChange);
211
+ let selectedKeys = useMemo(() => selectedKey != null ? [
212
+ selectedKey
213
+ ] : [], [
214
+ selectedKey
215
+ ]);
216
+ let { collection, disabledKeys, selectionManager } = $e72dd72e1c76a225$export$2f645645f7bca764({
217
+ ...props,
218
+ selectionMode: "single",
219
+ disallowEmptySelection: true,
220
+ allowDuplicateSelectionEvents: true,
221
+ selectedKeys,
222
+ onSelectionChange: (keys) => {
223
+ if (keys === "all") return;
224
+ var _keys_values_next_value;
225
+ let key = (_keys_values_next_value = keys.values().next().value) !== null && _keys_values_next_value !== void 0 ? _keys_values_next_value : null;
226
+ if (key === selectedKey && props.onSelectionChange) props.onSelectionChange(key);
227
+ setSelectedKey(key);
228
+ }
229
+ });
230
+ let selectedItem = selectedKey != null ? collection.getItem(selectedKey) : null;
231
+ return {
232
+ collection,
233
+ disabledKeys,
234
+ selectionManager,
235
+ selectedKey,
236
+ setSelectedKey,
237
+ selectedItem
238
+ };
239
+ }
209
240
  function $76f919a04c5a7d14$export$4ba071daf4e486(props) {
210
241
  var _props_defaultSelectedKey, _ref;
211
242
  let state = $a0d645289fe9b86b$export$e7f05e985daf4b5f({
@@ -721,7 +752,7 @@ const Tab = (props) => {
721
752
  "es:any-focus:outline-hidden",
722
753
  "es:contrast-more:inset-ring es:contrast-more:inset-ring-accent-500/0 es:contrast-more:focus-visible:inset-ring-accent-500",
723
754
  "es:disabled:text-secondary-400",
724
- 'es:font-variation-["wdth"_120,"YTLC"_560,"wght"_375] es:selected:font-variation-["wdth"_120,"YTLC"_560,"wght"_375,"GRAD"_80]',
755
+ 'es:font-variation-["wdth"_102,"wght"_325,"ROND"_0,"slnt"_0,"GRAD"_0] es:hover:font-variation-["wdth"_102,"wght"_325,"ROND"_100,"slnt"_0,"GRAD"_0] es:selected:font-variation-["wdth"_102,"wght"_325,"ROND"_50,"slnt"_0,"GRAD"_50]',
725
756
  invisible && "es:hidden",
726
757
  className
727
758
  ],
@@ -2,11 +2,11 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { $ as $64fa3d84918910a7$export$29f1550f4b0d4415, k as $df56164dff5785e2$export$4338b53315abf666, l as $5dc95899b306f630$export$c9058316764c140e, g as $64fa3d84918910a7$export$ef03459518577ad4, h as $64fa3d84918910a7$export$4d86445c2cf5e3, a as $64fa3d84918910a7$export$df3a06d6289f983e, b as $3ef42575df84b30b$export$9d1611c77c2fe928 } from "../../utils-Cr3pLd9c.js";
3
3
  import { $ as $65484d02dcb7eb3e$export$457c3d6518dd4c6f } from "../../filterDOMProps-eGTqWSTd.js";
4
4
  import $dbSRa$react__default, { forwardRef, createContext } from "react";
5
- import { $ as $3017fa7ffdddec74$export$8042c6c013fd5226 } from "../../useToggleState-BWrKKisg.js";
6
- import { $ as $d2c8e2b0480f3f34$export$cbe85ee05b554577 } from "../../useToggle-CFFOmZWi.js";
7
- import { a as $f7dceffc5ad7768b$export$4e328f61c538687f } from "../../useFocusRing-rUOwLdTK.js";
8
- import { x as $6179b936705e76d3$export$ae780daf29e6d456 } from "../../useHover-CmyvqeWX.js";
9
- import { $ as $5c3e21d68f1c4674$export$439d29a4e110a164 } from "../../VisuallyHidden-CqnizvzQ.js";
5
+ import { $ as $3017fa7ffdddec74$export$8042c6c013fd5226 } from "../../useToggleState-H_lORSWO.js";
6
+ import { $ as $d2c8e2b0480f3f34$export$cbe85ee05b554577 } from "../../useToggle-Ddc7N8pR.js";
7
+ import { a as $f7dceffc5ad7768b$export$4e328f61c538687f } from "../../useFocusRing-B2glEZ25.js";
8
+ import { y as $6179b936705e76d3$export$ae780daf29e6d456 } from "../../useHover-DkmPQdGE.js";
9
+ import { $ as $5c3e21d68f1c4674$export$439d29a4e110a164 } from "../../VisuallyHidden-DZnWrkn8.js";
10
10
  import { c as cva } from "../../index-BHpUy2Ix.js";
11
11
  function $b418ec0c85c52f27$export$d853f7095ae95f88(props, state, ref) {
12
12
  let { labelProps, inputProps, isSelected, isPressed, isDisabled, isReadOnly } = $d2c8e2b0480f3f34$export$cbe85ee05b554577(props, state, ref);
@@ -1,5 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-BDlf9vIY.js";
2
+ import { $ as $01b77f81d0f07f68$export$b04be29aa201d4f5 } from "../../Label-_aSf9-8u.js";
3
3
  import { Switch } from "./switch.js";
4
4
  import { RichLabel } from "../rich-label/rich-label.js";
5
5
  import { c as clsx } from "../../clsx-DgYk2OaC.js";
@@ -3,10 +3,10 @@ import { o as $ff5963eb1fccf552$export$e08e3b67e392101e, b as $3ef42575df84b30b$
3
3
  import { $ as $1d5b8b8664671ef2$export$c9549807523555e0 } from "../../SelectionIndicator-D7WMzeAW.js";
4
4
  import $dbSRa$react__default, { createContext, forwardRef, useContext } from "react";
5
5
  import { $ as $65484d02dcb7eb3e$export$457c3d6518dd4c6f } from "../../filterDOMProps-eGTqWSTd.js";
6
- import { $ as $3017fa7ffdddec74$export$8042c6c013fd5226 } from "../../useToggleState-BWrKKisg.js";
7
- import { $ as $701a24aa0da5b062$export$ea18c227d4417cc3 } from "../../useButton-5YL_nmpZ.js";
8
- import { a as $f7dceffc5ad7768b$export$4e328f61c538687f } from "../../useFocusRing-rUOwLdTK.js";
9
- import { x as $6179b936705e76d3$export$ae780daf29e6d456 } from "../../useHover-CmyvqeWX.js";
6
+ import { $ as $3017fa7ffdddec74$export$8042c6c013fd5226 } from "../../useToggleState-H_lORSWO.js";
7
+ import { $ as $701a24aa0da5b062$export$ea18c227d4417cc3 } from "../../useButton-DyMX0EVr.js";
8
+ import { a as $f7dceffc5ad7768b$export$4e328f61c538687f } from "../../useFocusRing-B2glEZ25.js";
9
+ import { y as $6179b936705e76d3$export$ae780daf29e6d456 } from "../../useHover-DkmPQdGE.js";
10
10
  import { c as cva } from "../../index-BHpUy2Ix.js";
11
11
  import { Tooltip } from "../tooltip/tooltip.js";
12
12
  function $55f54f7887471b58$export$51e84d46ca0bc451(props, state, ref) {
@@ -180,7 +180,7 @@ const ToggleButton2 = (props) => {
180
180
  }
181
181
  const componentClasses = cva(
182
182
  [
183
- 'es:font-variation-["wdth"_80,"YTLC"_520,"wdth"_64,"wght"_375]',
183
+ 'es:font-variation-["wdth"_85,"wght"_325,"ROND"_100,"GRAD"_0,"slnt"_0] es:not-aria-pressed:hover:font-variation-["wdth"_85,"wght"_325,"ROND"_100,"GRAD"_75,"slnt"_0] es:aria-pressed:font-variation-["wdth"_85,"wght"_325,"ROND"_100,"GRAD"_75,"slnt"_-2]',
184
184
  "es:flex es:items-center",
185
185
  "es:transition-plus es:duration-300 es:ease-spring-snappy es:text-13",
186
186
  "es:any-focus:outline-hidden",
@@ -260,7 +260,7 @@ const ToggleButton2 = (props) => {
260
260
  disabled: false,
261
261
  selected: true,
262
262
  class: [
263
- 'es:font-variation-["wdth"_80,"YTLC"_520,"wdth"_64,"wght"_375,"GRAD"_150]',
263
+ 'es:font-variation-["wdth"_80,"wdth"_64,"wght"_375,"GRAD"_150]',
264
264
  "es:any-icon:drop-shadow-xs es:any-icon:drop-shadow-accent-800/25",
265
265
  "es:text-white es:text-shadow-xs es:text-shadow-accent-900/30",
266
266
  "es:bg-linear-to-b es:from-accent-800/10 es:to-accent-800/30 es:bg-accent-500 es:from-30%",
@@ -1,9 +1,9 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { $ as $fc909762b330b746$export$61c6a8c84e605fb6, a as $2a41e45df1593e64$export$d39e1813b3bdd0e1, b as $44f671af83e7d9e0$export$2de4954e8ae13b9f, c as $44f671af83e7d9e0$export$746d02f47f4d381 } from "../../OverlayArrow-Dy0qw7WL.js";
2
+ import { $ as $fc909762b330b746$export$61c6a8c84e605fb6, a as $2a41e45df1593e64$export$d39e1813b3bdd0e1, b as $44f671af83e7d9e0$export$2de4954e8ae13b9f, c as $44f671af83e7d9e0$export$746d02f47f4d381 } from "../../OverlayArrow-Fuxj-1QM.js";
3
3
  import { m as $b5e257d569688ac6$export$535bd6ca7f90a273, b as $3ef42575df84b30b$export$9d1611c77c2fe928, d as $bdb11010cef70236$export$f680877a34711e37, i as $64fa3d84918910a7$export$2881499e37b75b9a, $ as $64fa3d84918910a7$export$29f1550f4b0d4415, h as $64fa3d84918910a7$export$4d86445c2cf5e3, a as $64fa3d84918910a7$export$df3a06d6289f983e } from "../../utils-Cr3pLd9c.js";
4
4
  import { $ as $65484d02dcb7eb3e$export$457c3d6518dd4c6f } from "../../filterDOMProps-eGTqWSTd.js";
5
5
  import { $ as $d3f049242431219c$export$45fda7c47f93fd48, a as $d3f049242431219c$export$6d3443f2c48bfc20 } from "../../animation-Dfl8uEb3.js";
6
- import { x as $6179b936705e76d3$export$ae780daf29e6d456, $ as $f645667febf57a63$export$4c014de7c8940b4c, v as $507fabe10e71c6fb$export$630ff653c5ada6a9, m as $507fabe10e71c6fb$export$b9b3dfddab17db27, z as $f645667febf57a63$export$13f3202a3e5ddd5 } from "../../useHover-CmyvqeWX.js";
6
+ import { y as $6179b936705e76d3$export$ae780daf29e6d456, $ as $f645667febf57a63$export$4c014de7c8940b4c, v as $507fabe10e71c6fb$export$630ff653c5ada6a9, m as $507fabe10e71c6fb$export$b9b3dfddab17db27, z as $f645667febf57a63$export$13f3202a3e5ddd5 } from "../../useHover-DkmPQdGE.js";
7
7
  import $dbSRa$react__default, { useContext, useState, useMemo, useRef, useEffect, forwardRef, createContext } from "react";
8
8
  import { a as $96b38030c423d352$export$9fc1347d4195ccb3 } from "../../PortalProvider-BQ1X8vGX.js";
9
9
  import { $ as $dbSRa$reactdom } from "../../index-BL5gdWX4.js";
@@ -226,12 +226,14 @@ function $8796f90736e175cb$export$4d40659c25ecb50b(props = {}) {
226
226
  let warmupTooltip = () => {
227
227
  closeOpenTooltips();
228
228
  ensureTooltipEntry();
229
- if (!isOpen && !$8796f90736e175cb$var$globalWarmUpTimeout && !$8796f90736e175cb$var$globalWarmedUp) $8796f90736e175cb$var$globalWarmUpTimeout = setTimeout(() => {
230
- $8796f90736e175cb$var$globalWarmUpTimeout = null;
231
- $8796f90736e175cb$var$globalWarmedUp = true;
232
- showTooltip();
233
- }, delay);
234
- else if (!isOpen) showTooltip();
229
+ if (!isOpen && !$8796f90736e175cb$var$globalWarmedUp) {
230
+ if ($8796f90736e175cb$var$globalWarmUpTimeout) clearTimeout($8796f90736e175cb$var$globalWarmUpTimeout);
231
+ $8796f90736e175cb$var$globalWarmUpTimeout = setTimeout(() => {
232
+ $8796f90736e175cb$var$globalWarmUpTimeout = null;
233
+ $8796f90736e175cb$var$globalWarmedUp = true;
234
+ showTooltip();
235
+ }, delay);
236
+ } else if (!isOpen) showTooltip();
235
237
  };
236
238
  useEffect(() => {
237
239
  closeCallback.current = close;
@@ -431,7 +433,7 @@ const Tooltip2 = (props) => {
431
433
  crossOffset,
432
434
  className: ({ isEntering, isExiting }) => clsx(
433
435
  "es:group es:pointer-events-none",
434
- 'es:font-variation-["wdth"_72,"YTLC"_520,"wght"_380]',
436
+ 'es:font-variation-["wdth"_72,"wght"_380,"ROND"_100]',
435
437
  "es:z-40 es:select-none es:rounded-lg es:inset-ring es:px-2.5 es:py-2 es:text-13 es:leading-none es:shadow es:backdrop-blur-xl es:backdrop-brightness-105 es:backdrop-saturate-125 es:will-change-[transform,opacity] es:fill-mode-forwards",
436
438
  theme === "light" && "es:inset-ring-surface-800/5 es:bg-surface-50/90 es:text-secondary-700",
437
439
  theme === "dark" && "es:inset-ring-surface-200/15 es:bg-surface-800/80 es:text-secondary-100",