impact-nova 2.1.0-alpha.4 → 2.1.0-alpha.6

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 (153) hide show
  1. package/dist/components/data/ag-grid-react/ag-grid-tooltip-overflow.d.ts +3 -0
  2. package/dist/components/data/ag-grid-react/ag-grid-tooltip-overflow.js +6 -0
  3. package/dist/components/data/ag-grid-react/ag-grid.types.d.ts +15 -21
  4. package/dist/components/data/ag-grid-react/cell-renderers/date-display-renderer.js +1 -1
  5. package/dist/components/data/ag-grid-react/cell-renderers/default-text-cell-renderer.d.ts +1 -2
  6. package/dist/components/data/ag-grid-react/cell-renderers/default-text-cell-renderer.js +12 -6
  7. package/dist/components/data/ag-grid-react/cell-renderers/editors/textarea-cell-editor.js +19 -19
  8. package/dist/components/data/ag-grid-react/cell-renderers/select-display-renderer.js +1 -1
  9. package/dist/components/data/ag-grid-react/cell-renderers/switch-display-renderer.js +15 -15
  10. package/dist/components/data/ag-grid-react/headers/advanced-filter/advanced-filter-dialog.js +1 -1
  11. package/dist/components/data/ag-grid-react/headers/advanced-filter/column-filter-section.js +33 -33
  12. package/dist/components/data/ag-grid-react/headers/components/header-info.js +66 -62
  13. package/dist/components/data/ag-grid-react/headers/components/info-modal.js +6 -6
  14. package/dist/components/data/ag-grid-react/headers/components/section-renderers.js +18 -18
  15. package/dist/components/data/ag-grid-react/headers/custom-header-group.js +40 -29
  16. package/dist/components/data/ag-grid-react/headers/custom-header.js +102 -98
  17. package/dist/components/data/ag-grid-react/index.d.ts +1 -1
  18. package/dist/components/data/ag-grid-react/index.js +136 -127
  19. package/dist/components/data/ag-grid-react/notify-column-indicator-sync.d.ts +7 -0
  20. package/dist/components/data/ag-grid-react/notify-column-indicator-sync.js +6 -0
  21. package/dist/components/data/ag-grid-react/theme.js +8 -4
  22. package/dist/components/data/ag-grid-react/use-ag-grid-truncation-tooltip.d.ts +5 -0
  23. package/dist/components/data/ag-grid-react/use-ag-grid-truncation-tooltip.js +13 -0
  24. package/dist/components/data/ag-grid-react/useGridAutoSizeStrategyOnResize.js +8 -5
  25. package/dist/components/data/data-table/build-column-tree-from-grid.d.ts +14 -0
  26. package/dist/components/data/data-table/build-column-tree-from-grid.js +95 -0
  27. package/dist/components/data/data-table/data-table-column-apply.d.ts +29 -0
  28. package/dist/components/data/data-table/data-table-column-apply.js +102 -0
  29. package/dist/components/data/data-table/data-table-column-def-pin.d.ts +25 -0
  30. package/dist/components/data/data-table/data-table-column-def-pin.js +66 -0
  31. package/dist/components/data/data-table/data-table-column-list-sync.d.ts +8 -0
  32. package/dist/components/data/data-table/data-table-column-list-sync.js +15 -0
  33. package/dist/components/data/data-table/data-table-column-list.d.ts +14 -4
  34. package/dist/components/data/data-table/data-table-column-list.js +74 -277
  35. package/dist/components/data/data-table/data-table-constants.d.ts +3 -4
  36. package/dist/components/data/data-table/data-table-context.d.ts +3 -6
  37. package/dist/components/data/data-table/data-table-context.js +21 -10
  38. package/dist/components/data/data-table/data-table-saved-views.js +26 -26
  39. package/dist/components/data/data-table/data-table-sheet-portal-store.d.ts +13 -0
  40. package/dist/components/data/data-table/data-table-sheet-portal-store.js +36 -0
  41. package/dist/components/data/data-table/data-table-sheet.d.ts +3 -6
  42. package/dist/components/data/data-table/data-table-sheet.js +4 -2
  43. package/dist/components/data/data-table/data-table-view-menu.js +40 -40
  44. package/dist/components/data/data-table/data-table.d.ts +8 -10
  45. package/dist/components/data/data-table/data-table.js +138 -111
  46. package/dist/components/data/data-table/data-table.types.d.ts +35 -0
  47. package/dist/components/data/data-table/index.js +28 -27
  48. package/dist/components/data/data-table/indicator-legend.js +6 -6
  49. package/dist/components/data/data-table/use-data-table-column-list-sync.d.ts +16 -0
  50. package/dist/components/data/data-table/use-data-table-column-list-sync.js +222 -0
  51. package/dist/components/data/expandable-list-item/expandable-list-item-attributes.d.ts +8 -0
  52. package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +72 -0
  53. package/dist/components/data/expandable-list-item/expandable-list-item-context.d.ts +13 -0
  54. package/dist/components/data/expandable-list-item/expandable-list-item-context.js +25 -0
  55. package/dist/components/data/expandable-list-item/expandable-list-item-metrics.d.ts +6 -0
  56. package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +41 -0
  57. package/dist/components/data/expandable-list-item/expandable-list-item-parts.d.ts +31 -0
  58. package/dist/components/data/expandable-list-item/expandable-list-item-parts.js +233 -0
  59. package/dist/components/data/expandable-list-item/expandable-list-item-preset.d.ts +18 -0
  60. package/dist/components/data/expandable-list-item/expandable-list-item-preset.js +133 -0
  61. package/dist/components/data/expandable-list-item/expandable-list-item.d.ts +5 -0
  62. package/dist/components/data/{expandable-sku/expandable-sku.types.d.ts → expandable-list-item/expandable-list-item.types.d.ts} +7 -7
  63. package/dist/components/data/expandable-list-item/index.d.ts +5 -0
  64. package/dist/components/data/expandable-list-item/index.js +19 -0
  65. package/dist/components/data/nested-list/components/NestedListHeader.js +11 -11
  66. package/dist/components/data/nested-list/components/SortableItem.js +2 -2
  67. package/dist/components/data-display/avatar/avatar.types.d.ts +2 -0
  68. package/dist/components/data-display/badge/badge.types.d.ts +2 -0
  69. package/dist/components/data-display/calendar/calendar-day-picker-classnames.js +11 -11
  70. package/dist/components/data-display/calendar/calendar-month-picker-panel.js +7 -7
  71. package/dist/components/data-display/calendar/calendar-week-number-cell.js +31 -31
  72. package/dist/components/data-display/card/card.js +8 -8
  73. package/dist/components/data-display/chart/chart.types.d.ts +9 -0
  74. package/dist/components/data-display/skeleton/skeleton.js +6 -6
  75. package/dist/components/data-display/statistics-card/statistics-card.js +14 -14
  76. package/dist/components/feedback/alert-dialog/alert-dialog.js +19 -19
  77. package/dist/components/feedback/dialog/dialog.js +1 -1
  78. package/dist/components/feedback/drawer/drawer.js +18 -18
  79. package/dist/components/feedback/dropdown-menu/dropdown-menu.js +70 -57
  80. package/dist/components/feedback/popover/popover.js +1 -1
  81. package/dist/components/feedback/sheet/sheet.js +1 -1
  82. package/dist/components/feedback/tooltip/tooltip.js +22 -22
  83. package/dist/components/feedback/tooltip/tooltip.variants.js +1 -1
  84. package/dist/components/flows/command-palette/command-palette.js +104 -104
  85. package/dist/components/flows/command-palette/shortcut-settings.js +34 -34
  86. package/dist/components/flows/filter-strip/filter-tag-list.js +4 -4
  87. package/dist/components/flows/notification-panel/notification-list.js +17 -17
  88. package/dist/components/flows/notification-panel/notification-panel.js +4 -4
  89. package/dist/components/flows/notification-panel/notification-panel.types.d.ts +3 -0
  90. package/dist/components/flows/wizard/wizard.js +8 -8
  91. package/dist/components/forms/combobox/combobox.js +20 -20
  92. package/dist/components/forms/date-picker/date-picker.js +17 -17
  93. package/dist/components/forms/date-picker/date-range-picker.js +3 -3
  94. package/dist/components/forms/date-picker/month-picker.js +1 -1
  95. package/dist/components/forms/date-picker/month-range-picker.js +42 -42
  96. package/dist/components/forms/date-picker/week-picker.js +15 -15
  97. package/dist/components/forms/date-picker/week-range-picker.js +3 -3
  98. package/dist/components/forms/file-upload/file-upload.js +33 -33
  99. package/dist/components/forms/input/input.js +8 -8
  100. package/dist/components/forms/input/input.variants.js +3 -3
  101. package/dist/components/forms/select/components/SelectMenuPanel.d.ts +1 -2
  102. package/dist/components/forms/select/components/SelectMenuPanel.js +18 -20
  103. package/dist/components/forms/select/components/SelectTrigger.d.ts +9 -6
  104. package/dist/components/forms/select/components/SelectTrigger.js +120 -122
  105. package/dist/components/forms/select/components/Submenu.js +8 -8
  106. package/dist/components/forms/select/hooks/useSelectKeyboardHandlers.d.ts +1 -1
  107. package/dist/components/forms/select/hooks/useSelectValueState.d.ts +19 -0
  108. package/dist/components/forms/select/hooks/useSelectValueState.js +41 -0
  109. package/dist/components/forms/select/index.js +4 -3
  110. package/dist/components/forms/select/select.js +180 -175
  111. package/dist/components/forms/select/select.types.d.ts +3 -2
  112. package/dist/components/forms/select/select.variants.js +4 -4
  113. package/dist/components/forms/select/utils/select.d.ts +2 -1
  114. package/dist/components/forms/select/utils/select.js +47 -37
  115. package/dist/components/layout/sidebar/sidebar.d.ts +7 -50
  116. package/dist/components/layout/sidebar/sidebar.js +12 -11
  117. package/dist/components/layout/sidebar/sidebar.types.d.ts +35 -1
  118. package/dist/components/primitives/button-group/button-group.js +32 -32
  119. package/dist/components/primitives/chips/chips.variants.js +5 -5
  120. package/dist/components/primitives/empty-container/empty-container.types.d.ts +3 -0
  121. package/dist/components/primitives/kbd/kbd.variants.js +3 -3
  122. package/dist/components/primitives/stepper/stepper.js +6 -6
  123. package/dist/impact-nova-components.css +113 -7
  124. package/dist/impact-nova-tokens.scss +2 -4
  125. package/dist/impact-nova.css +1 -1
  126. package/dist/index.d.ts +1 -1
  127. package/dist/index.js +467 -433
  128. package/dist/lib/compose-refs.d.ts +8 -0
  129. package/dist/lib/compose-refs.js +14 -0
  130. package/dist/lib/primitives/field.types.d.ts +8 -2
  131. package/dist/lib/virtualized/index.d.ts +3 -0
  132. package/dist/lib/virtualized/index.js +33 -16
  133. package/dist/lib/virtualized/useVirtualizedList.d.ts +2 -0
  134. package/dist/lib/virtualized/useVirtualizedList.js +115 -109
  135. package/dist/lib/virtualized/virtualized-list-context.d.ts +12 -0
  136. package/dist/lib/virtualized/virtualized-list-context.js +21 -0
  137. package/dist/lib/virtualized/virtualized-list-parts.d.ts +51 -0
  138. package/dist/lib/virtualized/virtualized-list-parts.js +175 -0
  139. package/dist/lib/virtualized/virtualized-list-utils.d.ts +5 -0
  140. package/dist/lib/virtualized/virtualized-list-utils.js +6 -0
  141. package/dist/llms/rules/ag-grid.js +1 -1
  142. package/dist/llms/rules/installation.js +1 -1
  143. package/dist/llms/rules/migration.js +1 -1
  144. package/dist/llms/rules/real-world-patterns.js +1 -1
  145. package/dist/llms/rules/requirements.js +1 -1
  146. package/package.json +24 -15
  147. package/tailwind.config.js +1 -0
  148. package/dist/components/data/ag-grid-react/headers/components/truncated-text.d.ts +0 -15
  149. package/dist/components/data/ag-grid-react/headers/components/truncated-text.js +0 -27
  150. package/dist/components/data/expandable-sku/expandable-sku.d.ts +0 -38
  151. package/dist/components/data/expandable-sku/expandable-sku.js +0 -245
  152. package/dist/components/data/expandable-sku/index.d.ts +0 -2
  153. package/dist/components/data/expandable-sku/index.js +0 -4
@@ -1,5 +1,5 @@
1
1
  import { jsx as u, jsxs as Z } from "react/jsx-runtime";
2
- import ee, { useState as M, useRef as S } from "react";
2
+ import ee, { useState as x, useRef as S } from "react";
3
3
  import * as te from "@radix-ui/react-popover";
4
4
  import { useVirtualizer as ut } from "@tanstack/react-virtual";
5
5
  import { SelectMenuFooter as dt } from "./components/SelectMenuFooter.js";
@@ -11,24 +11,25 @@ import { cn as le } from "../../../lib/utils.js";
11
11
  import { useFieldChrome as ht } from "../../../lib/primitives/use-field-chrome.js";
12
12
  import { isOptionArray as gt, getSequence as bt } from "./utils/select.js";
13
13
  import { useImpactNovaI18n as Ot } from "../../../i18n/use-impact-nova-i18n.js";
14
- import { useFlattenOptions as Ct } from "./hooks/useFlattenOptions.js";
15
- import { useSelectKeyboardHandlers as Mt } from "./hooks/useSelectKeyboardHandlers.js";
14
+ import { useFlattenOptions as Mt } from "./hooks/useFlattenOptions.js";
15
+ import { useSelectKeyboardHandlers as Ct } from "./hooks/useSelectKeyboardHandlers.js";
16
+ import { useSelectValueState as It } from "./hooks/useSelectValueState.js";
16
17
  import { useSelectMenuHeight as Vt } from "./hooks/useSelectMenuHeight.js";
17
18
  import { useSelectMenuScroll as vt } from "./hooks/useSelectMenuScroll.js";
18
- import { useSelectOpenEffects as It } from "./hooks/useSelectOpenEffects.js";
19
- import { useSelectOutsideScrollLock as Lt } from "./hooks/useSelectOutsideScrollLock.js";
20
- import { useSelectSearchFocus as xt } from "./hooks/useSelectSearchFocus.js";
21
- import { useSelectSelectionHandlers as At } from "./hooks/useSelectSelectionHandlers.js";
22
- import { useSelectionModel as yt } from "./hooks/useSelectionModel.js";
23
- import { useVisibleStats as Rt } from "./hooks/useVisibleStats.js";
24
- import { SELECT_ALL_INDEX as Pt } from "./select.constants.js";
25
- import { getSelectableOptionIndices as wt } from "./utils/getSelectableOptionIndices.js";
19
+ import { useSelectOpenEffects as Lt } from "./hooks/useSelectOpenEffects.js";
20
+ import { useSelectOutsideScrollLock as xt } from "./hooks/useSelectOutsideScrollLock.js";
21
+ import { useSelectSearchFocus as At } from "./hooks/useSelectSearchFocus.js";
22
+ import { useSelectSelectionHandlers as yt } from "./hooks/useSelectSelectionHandlers.js";
23
+ import { useSelectionModel as Rt } from "./hooks/useSelectionModel.js";
24
+ import { useVisibleStats as Pt } from "./hooks/useVisibleStats.js";
25
+ import { SELECT_ALL_INDEX as wt } from "./select.constants.js";
26
+ import { getSelectableOptionIndices as Et } from "./utils/getSelectableOptionIndices.js";
26
27
  const qt = (oe) => {
27
28
  const {
28
- options: V,
29
- value: F,
30
- defaultValue: ne,
31
- onChange: se,
29
+ options: C,
30
+ value: ne,
31
+ defaultValue: se,
32
+ onChange: F,
32
33
  isMulti: re,
33
34
  multiple: ie,
34
35
  isDisabled: ae,
@@ -44,185 +45,190 @@ const qt = (oe) => {
44
45
  defaultMenuIsOpen: pe = !1,
45
46
  scrollToSelectedOnOpen: Se = !1,
46
47
  maxSelectableOptions: g,
47
- showSequence: N,
48
+ showSequence: T,
48
49
  selectionOrder: he,
49
50
  label: d,
50
51
  required: ge,
51
52
  isRequired: be,
52
53
  error: Oe,
53
- helperText: Ce,
54
- helperTextPosition: Me = "absolute",
54
+ helperText: Me,
55
+ helperTextPosition: Ce = "absolute",
55
56
  id: m,
56
- className: Ve,
57
- parentClassName: ve,
58
- onMenuScrollToBottom: Ie,
57
+ className: Ie,
58
+ parentClassName: Ve,
59
+ onMenuScrollToBottom: ve,
59
60
  totalCount: Le,
60
61
  name: xe,
61
- isSelectAllEnabled: y = !0,
62
- isReadOnly: s = !1,
62
+ isSelectAllEnabled: A = !0,
63
+ isReadOnly: n = !1,
63
64
  searchPosition: b = "menu",
64
- footerContent: T,
65
+ footerContent: N,
65
66
  onInputChange: Ae,
66
67
  getOptionLabel: H,
67
68
  renderOption: ye,
68
69
  onMenuOpen: Re,
69
- onMenuClose: K,
70
- labelOrientation: z = "top",
70
+ onMenuClose: B,
71
+ labelOrientation: K = "top",
71
72
  size: Pe = "default",
72
73
  leftContent: we,
73
- ignoreCase: qe,
74
- ignoreAccents: De,
75
- matchFrom: Ee,
74
+ ignoreCase: Ee,
75
+ ignoreAccents: qe,
76
+ matchFrom: De,
76
77
  stringify: Fe,
77
- trim: Ne,
78
- filterOption: Te,
79
- enableSubMenus: v = !1,
80
- enableGroups: R = !1,
78
+ trim: Te,
79
+ filterOption: Ne,
80
+ enableSubMenus: I = !1,
81
+ enableGroups: y = !1,
81
82
  enableInvertedSelection: He,
82
- fetchError: I,
83
- onRefetch: Ke,
84
- menuWidth: ze,
85
- onClearAll: Be,
83
+ fetchError: V,
84
+ onRefetch: Be,
85
+ menuWidth: Ke,
86
+ onClearAll: ze,
86
87
  onFocus: $e,
87
88
  onBlur: _e
88
- } = oe, t = ie ?? re ?? !1, i = ce ?? ae ?? !1, ke = ge ?? be ?? !1, je = fe ?? !t, { t: O } = Ot(), P = de ?? O("select.placeholder"), [l, B] = M(pe), [f, L] = M(""), w = F !== void 0, [Ge, Ue] = M(
89
- ne ?? (t ? [] : null)
90
- ), o = w ? F : Ge, We = ee.useCallback(
91
- (e) => {
92
- w || Ue(e);
93
- },
94
- [w]
95
- ), [Xe, $] = M(null), [a, _] = M(-1), k = S(!1), Je = ee.useId(), p = m ?? Je, j = `${p}-listbox`, Qe = l && a >= 0 ? a === Pt ? `${p}-option-select-all` : `${p}-option-${a}` : void 0, G = S(null), q = S(null), Ye = S(null), D = S(null), E = S(null);
96
- xt(l, h, b, E);
97
- const { flatOptions: n, isProcessing: c, totalOptionsCount: U, workerSelectAll: Ze } = Ct(V, f, {
98
- ignoreCase: qe,
99
- ignoreAccents: De,
100
- matchFrom: Ee,
89
+ } = oe, t = ie ?? re ?? !1, i = ce ?? ae ?? !1, je = ge ?? be ?? !1, ke = fe ?? !t, { t: O } = Ot(), R = de ?? O("select.placeholder"), [l, z] = x(pe), [f, v] = x(""), {
90
+ usesMenuSession: Ge,
91
+ currentValue: s,
92
+ setCurrentValue: We,
93
+ beginMenuSession: Xe,
94
+ endMenuSession: Je
95
+ } = It({
96
+ value: ne,
97
+ defaultValue: se,
98
+ isMulti: !!t,
99
+ onChange: F
100
+ }), [Qe, $] = x(null), [a, _] = x(-1), j = S(!1), Ue = ee.useId(), p = m ?? Ue, k = `${p}-listbox`, Ye = l && a >= 0 ? a === wt ? `${p}-option-select-all` : `${p}-option-${a}` : void 0, G = S(null), P = S(null), Ze = S(null), w = S(null), E = S(null);
101
+ At(l, h, b, E);
102
+ const { flatOptions: o, isProcessing: c, totalOptionsCount: W, workerSelectAll: et } = Mt(C, f, {
103
+ ignoreCase: Ee,
104
+ ignoreAccents: qe,
105
+ matchFrom: De,
101
106
  stringify: Fe,
102
- trim: Ne,
103
- filterOption: Te,
104
- enableSubMenus: v,
105
- enableGroups: R
106
- }), et = Vt(
107
+ trim: Te,
108
+ filterOption: Ne,
109
+ enableSubMenus: I,
110
+ enableGroups: y
111
+ }), tt = Vt(
107
112
  l,
108
113
  !!r,
109
114
  c,
110
- q
111
- ), C = yt(o, t ?? !1), { stats: W, getGroupStats: tt } = Rt(
112
- n,
113
- U,
114
- f,
115
- C,
115
+ P
116
+ ), M = Rt(s, t ?? !1), { stats: X, getGroupStats: lt } = Pt(
116
117
  o,
118
+ W,
119
+ f,
120
+ M,
121
+ s,
117
122
  t ?? !1
118
- ), x = ut({
119
- count: n.length,
120
- getScrollElement: () => D.current,
123
+ ), L = ut({
124
+ count: o.length,
125
+ getScrollElement: () => w.current,
121
126
  estimateSize: () => 34,
122
127
  overscan: 5
123
128
  });
124
- It({
129
+ Lt({
125
130
  isOpen: l,
126
131
  isSearchable: h,
127
132
  searchPosition: b,
128
- isReadOnly: s,
133
+ isReadOnly: n,
129
134
  isLoading: r,
130
135
  isProcessing: c,
131
- fetchError: I,
136
+ fetchError: V,
132
137
  isMulti: t,
133
- isSelectAllEnabled: y,
134
- flatOptions: n,
138
+ isSelectAllEnabled: A,
139
+ flatOptions: o,
135
140
  searchValue: f,
136
141
  highlightedIndex: a,
137
142
  setHighlightedIndex: _,
138
- openedViaKeyboardRef: k,
143
+ openedViaKeyboardRef: j,
139
144
  scrollToSelectedOnOpen: Se,
140
- selectionModel: C,
141
- internalValue: o,
142
- rowVirtualizer: x
145
+ selectionModel: M,
146
+ internalValue: s,
147
+ rowVirtualizer: L
143
148
  }), vt({
144
149
  isOpen: l,
145
150
  isLoading: r,
146
151
  isProcessing: c,
147
- flatOptions: n,
148
- listRef: D,
149
- rowVirtualizer: x,
150
- onMenuScrollToBottom: Ie
152
+ flatOptions: o,
153
+ listRef: w,
154
+ rowVirtualizer: L,
155
+ onMenuScrollToBottom: ve
151
156
  });
152
- const A = (e) => {
157
+ const q = (e) => {
153
158
  if (!(i && e))
154
- if (B(e), e)
155
- Re?.();
159
+ if (z(e), e)
160
+ Xe(), Re?.();
156
161
  else {
157
- const it = o, at = t && gt(o) ? o.map((ct) => ct.value) : void 0;
158
- K?.(it, at), L(""), $(null);
162
+ const D = Ge ? Je() : s, at = t && gt(D) ? D.map((ct) => ct.value) : void 0;
163
+ B?.(D, at), v(""), $(null);
159
164
  }
160
165
  };
161
- Lt(l, q);
162
- const X = (e) => H ? H(e) : e.label, { handleSelect: J, handleSelectAll: Q, clearValue: lt } = At({
166
+ xt(l, P), ee.useEffect(() => {
167
+ }, [l]);
168
+ const J = (e) => H ? H(e) : e.label, { handleSelect: Q, handleSelectAll: U, clearValue: ot } = yt({
163
169
  isMulti: t,
164
170
  isDisabled: i,
165
- isReadOnly: s,
166
- internalValue: o,
171
+ isReadOnly: n,
172
+ internalValue: s,
167
173
  setInternalValue: We,
168
- onChange: se,
169
- onMenuClose: K,
170
- onClearAll: Be,
171
- enableSubMenus: v,
172
- enableGroups: R,
174
+ onChange: F,
175
+ onMenuClose: B,
176
+ onClearAll: ze,
177
+ enableSubMenus: I,
178
+ enableGroups: y,
173
179
  enableInvertedSelection: He,
174
180
  maxSelectableOptions: g,
175
- closeMenuOnSelect: je,
176
- options: V,
177
- flatOptions: n,
181
+ closeMenuOnSelect: ke,
182
+ options: C,
183
+ flatOptions: o,
178
184
  searchValue: f,
179
- selectionModel: C,
180
- visibleStats: W,
181
- workerSelectAll: Ze,
182
- setIsOpen: B,
183
- setSearchValue: L
184
- }), ot = (e) => bt(
185
+ selectionModel: M,
186
+ visibleStats: X,
187
+ workerSelectAll: et,
188
+ setIsOpen: z,
189
+ setSearchValue: v
190
+ }), nt = (e) => bt(
185
191
  e,
186
- N ?? !1,
192
+ T ?? !1,
187
193
  t ?? !1,
188
194
  he,
189
- o
190
- ), nt = () => wt({
195
+ s
196
+ ), st = () => Et({
191
197
  isLoading: !!r,
192
198
  isProcessing: c,
193
- fetchError: I,
199
+ fetchError: V,
194
200
  isMulti: t,
195
- isSelectAllEnabled: y,
196
- isReadOnly: s,
197
- flatOptions: n,
198
- enableSubMenus: v
199
- }), { handleTriggerKeyDown: st, handleSearchKeyDown: rt } = Mt({
201
+ isSelectAllEnabled: A,
202
+ isReadOnly: n,
203
+ flatOptions: o,
204
+ enableSubMenus: I
205
+ }), { handleTriggerKeyDown: rt, handleSearchKeyDown: it } = Ct({
200
206
  isDisabled: i,
201
- isReadOnly: s,
207
+ isReadOnly: n,
202
208
  isOpen: l,
203
209
  isSearchable: h,
204
210
  searchPosition: b,
205
- getSelectableIndices: nt,
211
+ getSelectableIndices: st,
206
212
  highlightedIndex: a,
207
213
  setHighlightedIndex: _,
208
- flatOptions: n,
209
- rowVirtualizer: x,
210
- handleOpenChange: A,
211
- handleSelect: J,
212
- handleSelectAll: Q,
213
- openedViaKeyboardRef: k,
214
+ flatOptions: o,
215
+ rowVirtualizer: L,
216
+ handleOpenChange: q,
217
+ handleSelect: Q,
218
+ handleSelectAll: U,
219
+ openedViaKeyboardRef: j,
214
220
  searchInputRef: E,
215
221
  triggerRef: G
216
222
  }), Y = ht({
217
223
  label: d,
218
- helperText: Ce,
219
- helperTextPosition: Me,
220
- labelOrientation: z,
224
+ helperText: Me,
225
+ helperTextPosition: Ce,
226
+ labelOrientation: K,
221
227
  error: Oe,
222
- required: ke,
228
+ required: je,
223
229
  disabled: i,
224
- className: le(z === "left" && "w-fit items-center"),
225
- rootClassName: ve
230
+ className: le(K === "left" && "w-fit items-center"),
231
+ rootClassName: Ve
226
232
  });
227
233
  return /* @__PURE__ */ u(
228
234
  "div",
@@ -230,20 +236,20 @@ const qt = (oe) => {
230
236
  "data-testid": `select-${m || "default"}`,
231
237
  "data-component": "select",
232
238
  children: Y.wrapControl(
233
- /* @__PURE__ */ Z(te.Root, { open: l && !i, onOpenChange: A, modal: !1, children: [
239
+ /* @__PURE__ */ Z(te.Root, { open: l && !i, onOpenChange: q, modal: !1, children: [
234
240
  /* @__PURE__ */ u(te.Anchor, { asChild: !0, children: /* @__PURE__ */ u(
235
241
  St,
236
242
  {
237
243
  triggerRef: G,
238
- inputRef: Ye,
244
+ inputRef: Ze,
239
245
  selectFieldId: p,
240
- listboxId: j,
246
+ listboxId: k,
241
247
  id: m,
242
- className: Ve,
248
+ className: Ie,
243
249
  size: Pe,
244
250
  error: Y.hasError,
245
251
  isDisabled: i,
246
- isReadOnly: s,
252
+ isReadOnly: n,
247
253
  isOpen: l,
248
254
  isLoading: r,
249
255
  isProcessing: c,
@@ -251,65 +257,64 @@ const qt = (oe) => {
251
257
  isSearchable: h,
252
258
  searchPosition: b,
253
259
  searchValue: f,
254
- setSearchValue: L,
260
+ setSearchValue: v,
255
261
  autoFocus: me,
256
262
  name: xe,
257
263
  label: d,
258
- placeholder: P,
264
+ placeholder: R,
259
265
  leftContent: we,
260
- activeDescendantId: Qe,
261
- internalValue: o,
266
+ activeDescendantId: Ye,
267
+ internalValue: s,
262
268
  totalCount: Le,
263
- totalOptionsCount: U,
269
+ totalOptionsCount: W,
264
270
  formatSelectedCount: (e) => O("select.selectedCount", { count: e }),
265
- resolveOptionLabel: X,
271
+ resolveOptionLabel: J,
266
272
  isMulti: t,
267
273
  onFocus: $e,
268
274
  onBlur: _e,
269
- onKeyDown: st,
270
- onOpenChange: A,
271
- onClear: lt
275
+ onKeyDown: rt,
276
+ onToggle: () => q(!l),
277
+ onClear: ot
272
278
  }
273
279
  ) }),
274
- l ? /* @__PURE__ */ Z(
280
+ /* @__PURE__ */ Z(
275
281
  pt,
276
282
  {
277
- menuRef: q,
278
- menuMinHeight: et,
279
- menuWidth: ze,
280
- isReadOnly: s,
283
+ menuRef: P,
284
+ menuMinHeight: tt,
285
+ menuWidth: Ke,
286
+ isReadOnly: n,
281
287
  id: m,
282
- menuLabel: String(d || P),
283
- onClose: () => A(!1),
288
+ menuLabel: String(d || R),
284
289
  children: [
285
290
  /* @__PURE__ */ u(
286
291
  mt,
287
292
  {
288
293
  id: m,
289
294
  selectFieldId: p,
290
- isReadOnly: s,
295
+ isReadOnly: n,
291
296
  isDisabled: i,
292
297
  isMulti: t,
293
298
  isSearchable: h,
294
299
  searchPosition: b,
295
- fetchError: I,
300
+ fetchError: V,
296
301
  isLoading: r,
297
302
  isProcessing: c,
298
- isSelectAllEnabled: y ?? !1,
299
- flatOptionsLength: n.length,
303
+ isSelectAllEnabled: A ?? !1,
304
+ flatOptionsLength: o.length,
300
305
  searchInputRef: E,
301
306
  searchValue: f,
302
307
  searchPlaceholder: O("select.searchHere"),
303
308
  highlightedIndex: a,
304
309
  maxSelectableOptions: g,
305
- visibleStats: W,
310
+ visibleStats: X,
306
311
  selectAllLabel: O("select.selectAll"),
307
312
  unselectAllLabel: O("select.unselectAll"),
308
313
  onSearchChange: (e) => {
309
- L(e), Ae?.(e);
314
+ v(e), Ae?.(e);
310
315
  },
311
- onSearchKeyDown: rt,
312
- onSelectAll: Q
316
+ onSearchKeyDown: it,
317
+ onSelectAll: U
313
318
  }
314
319
  ),
315
320
  /* @__PURE__ */ u(
@@ -317,39 +322,39 @@ const qt = (oe) => {
317
322
  {
318
323
  className: le(
319
324
  "flex min-h-0 flex-1 flex-col overflow-hidden",
320
- !(T || g || V.length > 5e3) && "rounded-b-[12px]"
325
+ !(N || g || C.length > 5e3) && "rounded-b-[12px]"
321
326
  ),
322
327
  children: /* @__PURE__ */ u(
323
328
  ft,
324
329
  {
325
- fetchError: I,
326
- onRefetch: Ke,
327
- flatOptions: n,
330
+ fetchError: V,
331
+ onRefetch: Be,
332
+ flatOptions: o,
328
333
  isLoading: r,
329
334
  isProcessing: c,
330
335
  isMulti: t,
331
- isReadOnly: s,
332
- enableGroups: R,
333
- enableSubMenus: v,
334
- showSequence: N,
336
+ isReadOnly: n,
337
+ enableGroups: y,
338
+ enableSubMenus: I,
339
+ showSequence: T,
335
340
  maxSelectableOptions: g,
336
- listRef: D,
337
- listboxId: j,
338
- listboxLabel: d ? String(d) : P,
339
- rowVirtualizer: x,
341
+ listRef: w,
342
+ listboxId: k,
343
+ listboxLabel: d ? String(d) : R,
344
+ rowVirtualizer: L,
340
345
  selectFieldId: p,
341
346
  id: m,
342
347
  highlightedIndex: a,
343
- activeSubmenu: Xe,
348
+ activeSubmenu: Qe,
344
349
  setActiveSubmenu: $,
345
- internalValue: o,
346
- selectionMode: C.mode,
347
- selectionSet: C.set,
348
- resolveOptionLabel: X,
349
- getSequenceForOption: ot,
350
+ internalValue: s,
351
+ selectionMode: M.mode,
352
+ selectionSet: M.set,
353
+ resolveOptionLabel: J,
354
+ getSequenceForOption: nt,
350
355
  renderOption: ye,
351
- onSelect: J,
352
- getGroupStats: tt
356
+ onSelect: Q,
357
+ getGroupStats: lt
353
358
  }
354
359
  )
355
360
  }
@@ -357,14 +362,14 @@ const qt = (oe) => {
357
362
  /* @__PURE__ */ u(
358
363
  dt,
359
364
  {
360
- footerContent: T,
365
+ footerContent: N,
361
366
  maxSelectableOptions: g,
362
- optionCount: V.length
367
+ optionCount: C.length
363
368
  }
364
369
  )
365
370
  ]
366
371
  }
367
- ) : null
372
+ )
368
373
  ] })
369
374
  )
370
375
  }
@@ -82,8 +82,9 @@ export interface SelectProps<OptionType extends Option = Option, IsMulti extends
82
82
  defaultValue?: PropsValue<OptionType>;
83
83
  /**
84
84
  * Callback fired when the value changes.
85
- * Optional - if not provided, component will use internal state only.
86
- * Use `onMenuClose` for batched updates when menu closes.
85
+ * Optional - if not provided, the select keeps in-menu edits locally and
86
+ * commits through `onMenuClose` when the menu closes (controlled mode).
87
+ * Use `onChange` for immediate parent updates on every selection.
87
88
  */
88
89
  onChange?: (newValue: OnChangeValue<OptionType, IsMulti>, actionMeta: ActionMeta<OptionType>) => void;
89
90
  /**
@@ -11,7 +11,7 @@ const s = e(
11
11
  },
12
12
  error: {
13
13
  true: "border-destructive focus-visible:ring-destructive",
14
- false: "border-stroke-field hover:border-stroke focus-visible:border-brand focus-visible:ring-1 focus-visible:ring-focus-ring"
14
+ false: "border-stroke-field hover:border-stroke-strong focus-visible:border-brand focus-visible:ring-1 focus-visible:ring-brand"
15
15
  },
16
16
  disabled: {
17
17
  true: "bg-canvas-disabled cursor-not-allowed opacity-75",
@@ -22,7 +22,7 @@ const s = e(
22
22
  false: ""
23
23
  },
24
24
  open: {
25
- true: "ring-1 ring-focus-ring border-brand",
25
+ true: "ring-1 ring-brand border-brand",
26
26
  false: ""
27
27
  }
28
28
  },
@@ -54,11 +54,11 @@ const s = e(
54
54
  false: ""
55
55
  },
56
56
  selected: {
57
- true: "bg-brand-subtle text-foreground",
57
+ true: "bg-brand-tint text-content",
58
58
  false: ""
59
59
  },
60
60
  highlighted: {
61
- true: "ring-2 ring-inset ring-brand bg-brand-subtle",
61
+ true: "ring-2 ring-inset ring-brand bg-brand-tint",
62
62
  false: ""
63
63
  }
64
64
  },
@@ -1,4 +1,4 @@
1
- import { Option, Group, MultiValue, SingleValue, InvertedSelection } from '../select.types';
1
+ import { Option, Group, MultiValue, SingleValue, InvertedSelection, PropsValue } from '../select.types';
2
2
  export declare const cx: (...classes: (string | undefined | null | false)[]) => string;
3
3
  export declare const isInvertedSelection: <OptionType extends Option>(value: MultiValue<OptionType>) => value is InvertedSelection;
4
4
  export declare const isOptionArray: <OptionType extends Option>(value: MultiValue<OptionType>) => value is readonly OptionType[];
@@ -10,3 +10,4 @@ export declare const getSequence: <OptionType extends Option>(option: Option | {
10
10
  value: string;
11
11
  }, showSequence: boolean, isMulti: boolean, selectionOrder: string[] | undefined, internalValue: MultiValue<OptionType> | SingleValue<OptionType> | undefined) => number | undefined;
12
12
  export declare const getSelectedCount: <OptionType extends Option>(option: Option, isMulti: boolean, internalValue: MultiValue<OptionType> | OptionType | null) => number;
13
+ export declare function cloneSelectValue<OptionType extends Option>(value: PropsValue<OptionType> | undefined | null, isMulti: boolean): PropsValue<OptionType>;