@serendie/ui 0.1.16 → 0.2.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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -9
  3. package/dist/components/{Accordion.d.ts → Accordion/Accordion.d.ts} +2 -2
  4. package/dist/components/{Accordion.js → Accordion/Accordion.js} +10 -10
  5. package/dist/components/Accordion/index.d.ts +1 -0
  6. package/dist/components/AccordionGroup.js +4 -4
  7. package/dist/components/Avatar.js +4 -4
  8. package/dist/components/Badge.js +4 -4
  9. package/dist/components/Banner.js +4 -4
  10. package/dist/components/BottomNavigation.js +3 -3
  11. package/dist/components/BottomNavigationItem.js +4 -4
  12. package/dist/components/Button.js +7 -7
  13. package/dist/components/CheckBox.js +4 -4
  14. package/dist/components/ChoiceBox.js +10 -10
  15. package/dist/components/DashboardWidget.js +4 -4
  16. package/dist/components/Divider.js +4 -4
  17. package/dist/components/Drawer.js +4 -4
  18. package/dist/components/DropdownMenu.js +4 -4
  19. package/dist/components/IconButton.js +4 -4
  20. package/dist/components/ListItem.js +4 -4
  21. package/dist/components/ModalDialog.js +4 -4
  22. package/dist/components/NotificationBadge.js +4 -4
  23. package/dist/components/ProgressIndicator.js +4 -4
  24. package/dist/components/RadioButton.js +4 -4
  25. package/dist/components/Search.js +6 -6
  26. package/dist/components/Select.js +4 -4
  27. package/dist/components/Switch.js +4 -4
  28. package/dist/components/TabItem.js +4 -4
  29. package/dist/components/Tabs.js +4 -4
  30. package/dist/components/TextArea.js +4 -4
  31. package/dist/components/TextField.js +4 -4
  32. package/dist/components/Toast.js +3 -3
  33. package/dist/components/TopAppBar.js +4 -4
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +89 -89
  36. package/dist/node_modules/@ark-ui/react/dist/components/accordion/accordion-item-content.js +3 -4
  37. package/dist/node_modules/@ark-ui/react/dist/components/accordion/accordion-item-indicator.js +4 -5
  38. package/dist/node_modules/@ark-ui/react/dist/components/accordion/accordion-item-trigger.js +0 -1
  39. package/dist/node_modules/@ark-ui/react/dist/components/accordion/accordion-item.js +3 -4
  40. package/dist/node_modules/@ark-ui/react/dist/components/accordion/accordion-root.js +2 -3
  41. package/dist/node_modules/@ark-ui/react/dist/components/avatar/avatar-fallback.js +6 -7
  42. package/dist/node_modules/@ark-ui/react/dist/components/avatar/avatar-image.js +5 -6
  43. package/dist/node_modules/@ark-ui/react/dist/components/avatar/avatar-root.js +2 -3
  44. package/dist/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-control.js +5 -6
  45. package/dist/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-hidden-input.js +0 -1
  46. package/dist/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-label.js +0 -1
  47. package/dist/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root.js +4 -5
  48. package/dist/node_modules/@ark-ui/react/dist/components/collapsible/collapsible-content.js +8 -9
  49. package/dist/node_modules/@ark-ui/react/dist/components/collapsible/collapsible-root.js +0 -1
  50. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-content.js +3 -4
  51. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-control.js +5 -6
  52. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-input.js +6 -7
  53. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-item-group.js +0 -1
  54. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-item-text.js +3 -4
  55. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-item.js +0 -1
  56. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-positioner.js +5 -6
  57. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-root.js +4 -5
  58. package/dist/node_modules/@ark-ui/react/dist/components/combobox/combobox-trigger.js +5 -6
  59. package/dist/node_modules/@ark-ui/react/dist/components/dialog/dialog-backdrop.js +4 -5
  60. package/dist/node_modules/@ark-ui/react/dist/components/dialog/dialog-close-trigger.js +5 -6
  61. package/dist/node_modules/@ark-ui/react/dist/components/dialog/dialog-content.js +0 -1
  62. package/dist/node_modules/@ark-ui/react/dist/components/dialog/dialog-description.js +0 -1
  63. package/dist/node_modules/@ark-ui/react/dist/components/dialog/dialog-positioner.js +5 -6
  64. package/dist/node_modules/@ark-ui/react/dist/components/dialog/dialog-root.js +4 -5
  65. package/dist/node_modules/@ark-ui/react/dist/components/dialog/dialog-title.js +0 -1
  66. package/dist/node_modules/@ark-ui/react/dist/components/menu/menu-content.js +3 -4
  67. package/dist/node_modules/@ark-ui/react/dist/components/menu/menu-item-group.js +0 -1
  68. package/dist/node_modules/@ark-ui/react/dist/components/menu/menu-item.js +2 -3
  69. package/dist/node_modules/@ark-ui/react/dist/components/menu/menu-positioner.js +3 -4
  70. package/dist/node_modules/@ark-ui/react/dist/components/menu/menu-root.js +2 -3
  71. package/dist/node_modules/@ark-ui/react/dist/components/menu/menu-trigger.js +3 -4
  72. package/dist/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-control.js +3 -4
  73. package/dist/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-hidden-input.js +0 -1
  74. package/dist/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-text.js +4 -5
  75. package/dist/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item.js +3 -4
  76. package/dist/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-root.js +3 -4
  77. package/dist/node_modules/@ark-ui/react/dist/components/select/select-content.js +3 -4
  78. package/dist/node_modules/@ark-ui/react/dist/components/select/select-control.js +6 -7
  79. package/dist/node_modules/@ark-ui/react/dist/components/select/select-item.js +0 -1
  80. package/dist/node_modules/@ark-ui/react/dist/components/select/select-label.js +4 -5
  81. package/dist/node_modules/@ark-ui/react/dist/components/select/select-positioner.js +4 -5
  82. package/dist/node_modules/@ark-ui/react/dist/components/select/select-root.js +7 -7
  83. package/dist/node_modules/@ark-ui/react/dist/components/select/select-trigger.js +5 -6
  84. package/dist/node_modules/@ark-ui/react/dist/components/select/select-value-text.js +5 -6
  85. package/dist/node_modules/@ark-ui/react/dist/components/select/use-select.js +35 -31
  86. package/dist/node_modules/@ark-ui/react/dist/components/switch/switch-control.js +4 -5
  87. package/dist/node_modules/@ark-ui/react/dist/components/switch/switch-hidden-input.js +4 -5
  88. package/dist/node_modules/@ark-ui/react/dist/components/switch/switch-label.js +4 -5
  89. package/dist/node_modules/@ark-ui/react/dist/components/switch/switch-root.js +8 -9
  90. package/dist/node_modules/@ark-ui/react/dist/components/switch/switch-thumb.js +4 -5
  91. package/dist/node_modules/@ark-ui/react/dist/components/tabs/tab-list.js +3 -4
  92. package/dist/node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js +3 -4
  93. package/dist/node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js +10 -10
  94. package/dist/node_modules/@ark-ui/react/dist/components/toast/toast-root.js +0 -1
  95. package/dist/node_modules/@ark-ui/react/dist/components/toast/toast-title.js +0 -1
  96. package/dist/node_modules/@ark-ui/react/dist/components/toast/toaster.js +4 -4
  97. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +361 -303
  98. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +229 -216
  99. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +19 -19
  100. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +39 -38
  101. package/dist/node_modules/@serendie/design-token/dist/panda-tokens.js +823 -20
  102. package/dist/node_modules/@serendie/design-token/dist/tokens.js +346 -25
  103. package/dist/node_modules/@zag-js/accordion/dist/index.js +12 -12
  104. package/dist/node_modules/@zag-js/aria-hidden/dist/index.js +13 -62
  105. package/dist/node_modules/@zag-js/avatar/dist/index.js +12 -10
  106. package/dist/node_modules/@zag-js/checkbox/dist/index.js +99 -92
  107. package/dist/node_modules/@zag-js/collapsible/dist/index.js +5 -5
  108. package/dist/node_modules/@zag-js/collection/dist/index.js +21 -21
  109. package/dist/node_modules/@zag-js/combobox/dist/index.js +30 -31
  110. package/dist/node_modules/@zag-js/core/dist/index.js +285 -320
  111. package/dist/node_modules/@zag-js/dialog/dist/index.js +56 -62
  112. package/dist/node_modules/@zag-js/dismissable/dist/index.js +3 -3
  113. package/dist/node_modules/@zag-js/dom-event/dist/index.js +88 -115
  114. package/dist/node_modules/@zag-js/dom-query/dist/index.js +2 -2
  115. package/dist/node_modules/@zag-js/focus-visible/dist/index.js +73 -0
  116. package/dist/node_modules/@zag-js/interact-outside/dist/index.js +33 -33
  117. package/dist/node_modules/@zag-js/menu/dist/index.js +81 -77
  118. package/dist/node_modules/@zag-js/popper/dist/index.js +86 -79
  119. package/dist/node_modules/@zag-js/radio-group/dist/index.js +116 -109
  120. package/dist/node_modules/@zag-js/react/dist/index.js +44 -43
  121. package/dist/node_modules/@zag-js/select/dist/index.js +203 -231
  122. package/dist/node_modules/@zag-js/store/dist/index.js +110 -110
  123. package/dist/node_modules/@zag-js/switch/dist/index.js +62 -55
  124. package/dist/node_modules/@zag-js/tabs/dist/index.js +64 -61
  125. package/dist/node_modules/@zag-js/toast/dist/index.js +174 -173
  126. package/dist/node_modules/@zag-js/utils/dist/index.js +93 -71
  127. package/dist/node_modules/aria-hidden/dist/es2015/index.js +52 -0
  128. package/dist/node_modules/focus-trap/dist/focus-trap.esm.js +217 -219
  129. package/dist/preset.d.ts +807 -4
  130. package/dist/{ui/styled-system → styled-system}/css/css.js +5 -6
  131. package/dist/{ui/styled-system → styled-system}/css/cva.js +4 -4
  132. package/dist/{ui/styled-system → styled-system}/css/sva.js +3 -3
  133. package/dist/styled-system/jsx/is-valid-prop.js +6 -0
  134. package/dist/styles.css +1 -1
  135. package/dist/tokens/getToken.d.ts +324 -3
  136. package/dist/tokens/index.d.ts +806 -3
  137. package/package.json +31 -5
  138. package/styled-system/css/css.js +1 -1
  139. package/styled-system/jsx/is-valid-prop.js +1 -1
  140. package/styled-system/themes/theme-asagi.json +1 -1
  141. package/styled-system/themes/theme-kurikawa.json +1 -1
  142. package/styled-system/themes/theme-sumire.json +1 -1
  143. package/styled-system/themes/theme-tsutsuji.json +1 -1
  144. package/styled-system/tokens/index.js +1238 -54
  145. package/styled-system/tokens/tokens.d.ts +3 -3
  146. package/styled-system/types/conditions.d.ts +2 -2
  147. package/styled-system/types/prop-type.d.ts +1 -1
  148. package/dist/ui/styled-system/jsx/is-valid-prop.js +0 -6
  149. /package/dist/{ui/styled-system → styled-system}/css/conditions.js +0 -0
  150. /package/dist/{ui/styled-system → styled-system}/css/cx.js +0 -0
  151. /package/dist/{ui/styled-system → styled-system}/helpers.js +0 -0
  152. /package/dist/{ui/styled-system → styled-system}/jsx/box.js +0 -0
  153. /package/dist/{ui/styled-system → styled-system}/jsx/factory-helper.js +0 -0
  154. /package/dist/{ui/styled-system → styled-system}/jsx/factory.js +0 -0
  155. /package/dist/{ui/styled-system → styled-system}/patterns/box.js +0 -0
@@ -1,15 +1,15 @@
1
1
  import { createAnatomy as U } from "../../anatomy/dist/index.js";
2
- import { Collection as F } from "../../collection/dist/index.js";
2
+ import { ListCollection as k } from "../../collection/dist/index.js";
3
3
  import { createMachine as W, guards as K } from "../../core/dist/index.js";
4
- import { isLeftClick as $, getEventKey as k } from "../../dom-event/dist/index.js";
5
- import { createScope as B, dataAttr as s, getByTypeahead as N, ariaAttr as Y, visuallyHiddenStyle as q, isSelfTarget as j, isValidTabEvent as J, isEditableElement as Q, raf as y, observeAttributes as X, getInitialFocus as Z, scrollIntoView as z } from "../../dom-query/dist/index.js";
6
- import { getPlacementStyles as x, getPlacement as H } from "../../popper/dist/index.js";
7
- import { trackDismissableElement as ee } from "../../dismissable/dist/index.js";
8
- import { trackFormControl as te } from "../../form-utils/dist/index.js";
9
- import { compact as ie, isEqual as P, addOrRemove as le } from "../../utils/dist/index.js";
4
+ import { getEventKey as F } from "../../dom-event/dist/index.js";
5
+ import { createScope as $, raf as y, getInitialFocus as B, observeAttributes as Y, scrollIntoView as q, getByTypeahead as A, isSelfTarget as j, isValidTabEvent as J, isEditableElement as Q, visuallyHiddenStyle as X, dataAttr as d, ariaAttr as Z } from "../../dom-query/dist/index.js";
6
+ import { getPlacement as H, getPlacementStyles as z } from "../../popper/dist/index.js";
7
+ import { trackDismissableElement as x } from "../../dismissable/dist/index.js";
8
+ import { trackFormControl as ee } from "../../form-utils/dist/index.js";
9
+ import { compact as te, isEqual as P, addOrRemove as ie } from "../../utils/dist/index.js";
10
10
  import { createProps as S } from "../../types/dist/index.js";
11
11
  import { ref as D } from "../../store/dist/index.js";
12
- var oe = U("select").parts(
12
+ var le = U("select").parts(
13
13
  "label",
14
14
  "positioner",
15
15
  "trigger",
@@ -25,9 +25,9 @@ var oe = U("select").parts(
25
25
  "root",
26
26
  "control",
27
27
  "valueText"
28
- ), u = oe.build(), _ = (t) => D(new F(t));
29
- _.empty = () => D(new F({ items: [] }));
30
- var n = B({
28
+ ), u = le.build(), _ = (t) => D(new k(t));
29
+ _.empty = () => D(new k({ items: [] }));
30
+ var r = $({
31
31
  getRootId: (t) => {
32
32
  var l;
33
33
  return ((l = t.ids) == null ? void 0 : l.root) ?? `select:${t.id}`;
@@ -72,37 +72,37 @@ var n = B({
72
72
  var e, i;
73
73
  return ((i = (e = t.ids) == null ? void 0 : e.itemGroupLabel) == null ? void 0 : i.call(e, l)) ?? `select:${t.id}:optgroup-label:${l}`;
74
74
  },
75
- getHiddenSelectEl: (t) => n.getById(t, n.getHiddenSelectId(t)),
76
- getContentEl: (t) => n.getById(t, n.getContentId(t)),
77
- getControlEl: (t) => n.getById(t, n.getControlId(t)),
78
- getTriggerEl: (t) => n.getById(t, n.getTriggerId(t)),
79
- getClearTriggerEl: (t) => n.getById(t, n.getClearTriggerId(t)),
80
- getPositionerEl: (t) => n.getById(t, n.getPositionerId(t)),
75
+ getHiddenSelectEl: (t) => r.getById(t, r.getHiddenSelectId(t)),
76
+ getContentEl: (t) => r.getById(t, r.getContentId(t)),
77
+ getControlEl: (t) => r.getById(t, r.getControlId(t)),
78
+ getTriggerEl: (t) => r.getById(t, r.getTriggerId(t)),
79
+ getClearTriggerEl: (t) => r.getById(t, r.getClearTriggerId(t)),
80
+ getPositionerEl: (t) => r.getById(t, r.getPositionerId(t)),
81
81
  getHighlightedOptionEl(t) {
82
- return t.highlightedValue ? n.getById(t, n.getItemId(t, t.highlightedValue)) : null;
82
+ return t.highlightedValue ? r.getById(t, r.getItemId(t, t.highlightedValue)) : null;
83
83
  }
84
84
  });
85
- function Te(t, l, e) {
86
- const i = t.context.isDisabled, r = t.context.invalid, g = t.context.readOnly, m = t.context.isInteractive, h = t.context.composite, I = t.hasTag("open"), O = t.matches("focused"), T = t.context.highlightedValue, G = t.context.highlightedItem, w = t.context.selectedItems, A = t.context.isTypingAhead, C = t.context.collection, L = T ? n.getItemId(t.context, T) : void 0;
85
+ function Ee(t, l, e) {
86
+ const i = t.context.isDisabled, n = t.context.invalid, s = t.context.readOnly, m = t.context.isInteractive, h = t.context.composite, I = t.hasTag("open"), T = t.matches("focused"), v = t.context.highlightedValue, G = t.context.highlightedItem, w = t.context.selectedItems, V = t.context.isTypingAhead, C = t.context.collection, L = v ? r.getItemId(t.context, v) : void 0;
87
87
  function f(o) {
88
88
  const a = C.getItemDisabled(o.item), c = C.getItemValue(o.item);
89
89
  return {
90
90
  value: c,
91
91
  disabled: !!(i || a),
92
- highlighted: T === c,
92
+ highlighted: v === c,
93
93
  selected: t.context.value.includes(c)
94
94
  };
95
95
  }
96
- const M = x({
96
+ const M = z({
97
97
  ...t.context.positioning,
98
98
  placement: t.context.currentPlacement
99
99
  });
100
100
  return {
101
101
  open: I,
102
- focused: O,
102
+ focused: T,
103
103
  empty: t.context.value.length === 0,
104
104
  highlightedItem: G,
105
- highlightedValue: T,
105
+ highlightedValue: v,
106
106
  selectedItems: w,
107
107
  hasSelectedItems: t.context.hasSelectedItems,
108
108
  value: t.context.value,
@@ -116,7 +116,7 @@ function Te(t, l, e) {
116
116
  },
117
117
  focus() {
118
118
  var o;
119
- (o = n.getTriggerEl(t.context)) == null || o.focus({ preventScroll: !0 });
119
+ (o = r.getTriggerEl(t.context)) == null || o.focus({ preventScroll: !0 });
120
120
  },
121
121
  setOpen(o) {
122
122
  o !== I && l(o ? "OPEN" : "CLOSE");
@@ -141,23 +141,23 @@ function Te(t, l, e) {
141
141
  return e.element({
142
142
  ...u.root.attrs,
143
143
  dir: t.context.dir,
144
- id: n.getRootId(t.context),
145
- "data-invalid": s(r),
146
- "data-readonly": s(g)
144
+ id: r.getRootId(t.context),
145
+ "data-invalid": d(n),
146
+ "data-readonly": d(s)
147
147
  });
148
148
  },
149
149
  getLabelProps() {
150
150
  return e.label({
151
151
  dir: t.context.dir,
152
- id: n.getLabelId(t.context),
152
+ id: r.getLabelId(t.context),
153
153
  ...u.label.attrs,
154
- "data-disabled": s(i),
155
- "data-invalid": s(r),
156
- "data-readonly": s(g),
157
- htmlFor: n.getHiddenSelectId(t.context),
154
+ "data-disabled": d(i),
155
+ "data-invalid": d(n),
156
+ "data-readonly": d(s),
157
+ htmlFor: r.getHiddenSelectId(t.context),
158
158
  onClick(o) {
159
159
  var a;
160
- o.defaultPrevented || i || (a = n.getTriggerEl(t.context)) == null || a.focus({ preventScroll: !0 });
160
+ o.defaultPrevented || i || (a = r.getTriggerEl(t.context)) == null || a.focus({ preventScroll: !0 });
161
161
  }
162
162
  });
163
163
  },
@@ -165,46 +165,43 @@ function Te(t, l, e) {
165
165
  return e.element({
166
166
  ...u.control.attrs,
167
167
  dir: t.context.dir,
168
- id: n.getControlId(t.context),
168
+ id: r.getControlId(t.context),
169
169
  "data-state": I ? "open" : "closed",
170
- "data-focus": s(O),
171
- "data-disabled": s(i),
172
- "data-invalid": s(r)
170
+ "data-focus": d(T),
171
+ "data-disabled": d(i),
172
+ "data-invalid": d(n)
173
173
  });
174
174
  },
175
175
  getValueTextProps() {
176
176
  return e.element({
177
177
  ...u.valueText.attrs,
178
178
  dir: t.context.dir,
179
- "data-disabled": s(i),
180
- "data-invalid": s(r),
181
- "data-focus": s(O)
179
+ "data-disabled": d(i),
180
+ "data-invalid": d(n),
181
+ "data-focus": d(T)
182
182
  });
183
183
  },
184
184
  getTriggerProps() {
185
185
  return e.button({
186
- id: n.getTriggerId(t.context),
186
+ id: r.getTriggerId(t.context),
187
187
  disabled: i,
188
188
  dir: t.context.dir,
189
189
  type: "button",
190
190
  role: "combobox",
191
- "aria-controls": n.getContentId(t.context),
191
+ "aria-controls": r.getContentId(t.context),
192
192
  "aria-expanded": I,
193
193
  "aria-haspopup": "listbox",
194
194
  "data-state": I ? "open" : "closed",
195
- "aria-invalid": r,
196
- "aria-labelledby": n.getLabelId(t.context),
195
+ "aria-invalid": n,
196
+ "aria-labelledby": r.getLabelId(t.context),
197
197
  ...u.trigger.attrs,
198
- "data-disabled": s(i),
199
- "data-invalid": s(r),
200
- "data-readonly": s(g),
198
+ "data-disabled": d(i),
199
+ "data-invalid": d(n),
200
+ "data-readonly": d(s),
201
201
  "data-placement": t.context.currentPlacement,
202
- "data-placeholder-shown": s(!t.context.hasSelectedItems),
203
- onPointerDown(o) {
204
- $(o) && m && (o.currentTarget.dataset.pointerType = o.pointerType, !(i || o.pointerType === "touch") && l({ type: "TRIGGER.CLICK" }));
205
- },
202
+ "data-placeholder-shown": d(!t.context.hasSelectedItems),
206
203
  onClick(o) {
207
- !m || o.button || o.currentTarget.dataset.pointerType === "touch" && l({ type: "TRIGGER.CLICK" });
204
+ m && (o.defaultPrevented || l({ type: "TRIGGER.CLICK" }));
208
205
  },
209
206
  onFocus() {
210
207
  l("TRIGGER.FOCUS");
@@ -237,14 +234,14 @@ function Te(t, l, e) {
237
234
  l({ type: "TRIGGER.ENTER" });
238
235
  },
239
236
  Space(p) {
240
- l(A ? { type: "TRIGGER.TYPEAHEAD", key: p.key } : { type: "TRIGGER.ENTER" });
237
+ l(V ? { type: "TRIGGER.TYPEAHEAD", key: p.key } : { type: "TRIGGER.ENTER" });
241
238
  }
242
- }[k(o, t.context)];
239
+ }[F(o, t.context)];
243
240
  if (c) {
244
241
  c(o), o.preventDefault();
245
242
  return;
246
243
  }
247
- N.isValidEvent(o) && (l({ type: "TRIGGER.TYPEAHEAD", key: o.key }), o.preventDefault());
244
+ A.isValidEvent(o) && (l({ type: "TRIGGER.TYPEAHEAD", key: o.key }), o.preventDefault());
248
245
  }
249
246
  });
250
247
  },
@@ -254,35 +251,32 @@ function Te(t, l, e) {
254
251
  dir: t.context.dir,
255
252
  "aria-hidden": !0,
256
253
  "data-state": I ? "open" : "closed",
257
- "data-disabled": s(i),
258
- "data-invalid": s(r),
259
- "data-readonly": s(g)
254
+ "data-disabled": d(i),
255
+ "data-invalid": d(n),
256
+ "data-readonly": d(s)
260
257
  });
261
258
  },
262
259
  getItemProps(o) {
263
260
  const a = f(o);
264
261
  return e.element({
265
- id: n.getItemId(t.context, a.value),
262
+ id: r.getItemId(t.context, a.value),
266
263
  role: "option",
267
264
  ...u.item.attrs,
268
265
  dir: t.context.dir,
269
266
  "data-value": a.value,
270
267
  "aria-selected": a.selected,
271
268
  "data-state": a.selected ? "checked" : "unchecked",
272
- "data-highlighted": s(a.highlighted),
273
- "data-disabled": s(a.disabled),
274
- "aria-disabled": Y(a.disabled),
269
+ "data-highlighted": d(a.highlighted),
270
+ "data-disabled": d(a.disabled),
271
+ "aria-disabled": Z(a.disabled),
275
272
  onPointerMove(c) {
276
273
  a.disabled || c.pointerType !== "mouse" || a.value !== t.context.highlightedValue && l({ type: "ITEM.POINTER_MOVE", value: a.value });
277
274
  },
278
- onPointerUp() {
279
- a.disabled || l({ type: "ITEM.CLICK", src: "pointerup", value: a.value });
275
+ onClick(c) {
276
+ c.defaultPrevented || a.disabled || l({ type: "ITEM.CLICK", src: "pointerup", value: a.value });
280
277
  },
281
278
  onPointerLeave(c) {
282
- a.disabled || o.persistFocus || c.pointerType !== "mouse" || ["CONTENT.ARROW_UP", "CONTENT.ARROW_DOWN"].includes(t.event.type) || l({ type: "ITEM.POINTER_LEAVE" });
283
- },
284
- onTouchEnd(c) {
285
- c.preventDefault(), c.stopPropagation();
279
+ a.disabled || o.persistFocus || c.pointerType !== "mouse" || !t.previousEvent.type.includes("POINTER") || l({ type: "ITEM.POINTER_LEAVE" });
286
280
  }
287
281
  });
288
282
  },
@@ -291,8 +285,8 @@ function Te(t, l, e) {
291
285
  return e.element({
292
286
  ...u.itemText.attrs,
293
287
  "data-state": a.selected ? "checked" : "unchecked",
294
- "data-disabled": s(a.disabled),
295
- "data-highlighted": s(a.highlighted)
288
+ "data-disabled": d(a.disabled),
289
+ "data-highlighted": d(a.highlighted)
296
290
  });
297
291
  },
298
292
  getItemIndicatorProps(o) {
@@ -308,7 +302,7 @@ function Te(t, l, e) {
308
302
  const { htmlFor: a } = o;
309
303
  return e.element({
310
304
  ...u.itemGroupLabel.attrs,
311
- id: n.getItemGroupLabelId(t.context, a),
305
+ id: r.getItemGroupLabelId(t.context, a),
312
306
  role: "group",
313
307
  dir: t.context.dir
314
308
  });
@@ -317,19 +311,19 @@ function Te(t, l, e) {
317
311
  const { id: a } = o;
318
312
  return e.element({
319
313
  ...u.itemGroup.attrs,
320
- "data-disabled": s(i),
321
- id: n.getItemGroupId(t.context, a),
322
- "aria-labelledby": n.getItemGroupLabelId(t.context, a),
314
+ "data-disabled": d(i),
315
+ id: r.getItemGroupId(t.context, a),
316
+ "aria-labelledby": r.getItemGroupLabelId(t.context, a),
323
317
  dir: t.context.dir
324
318
  });
325
319
  },
326
320
  getClearTriggerProps() {
327
321
  return e.button({
328
322
  ...u.clearTrigger.attrs,
329
- id: n.getClearTriggerId(t.context),
323
+ id: r.getClearTriggerId(t.context),
330
324
  type: "button",
331
325
  "aria-label": "Clear value",
332
- "data-invalid": s(r),
326
+ "data-invalid": d(n),
333
327
  disabled: i,
334
328
  hidden: !t.context.hasSelectedItems,
335
329
  dir: t.context.dir,
@@ -346,24 +340,24 @@ function Te(t, l, e) {
346
340
  multiple: t.context.multiple,
347
341
  required: t.context.required,
348
342
  "aria-hidden": !0,
349
- id: n.getHiddenSelectId(t.context),
343
+ id: r.getHiddenSelectId(t.context),
350
344
  defaultValue: t.context.multiple ? t.context.value : t.context.value[0],
351
- style: q,
345
+ style: X,
352
346
  tabIndex: -1,
353
347
  // Some browser extensions will focus the hidden select.
354
348
  // Let's forward the focus to the trigger.
355
349
  onFocus() {
356
350
  var o;
357
- (o = n.getTriggerEl(t.context)) == null || o.focus({ preventScroll: !0 });
351
+ (o = r.getTriggerEl(t.context)) == null || o.focus({ preventScroll: !0 });
358
352
  },
359
- "aria-labelledby": n.getLabelId(t.context)
353
+ "aria-labelledby": r.getLabelId(t.context)
360
354
  });
361
355
  },
362
356
  getPositionerProps() {
363
357
  return e.element({
364
358
  ...u.positioner.attrs,
365
359
  dir: t.context.dir,
366
- id: n.getPositionerId(t.context),
360
+ id: r.getPositionerId(t.context),
367
361
  style: M.floating
368
362
  });
369
363
  },
@@ -371,7 +365,7 @@ function Te(t, l, e) {
371
365
  return e.element({
372
366
  hidden: !I,
373
367
  dir: t.context.dir,
374
- id: n.getContentId(t.context),
368
+ id: r.getContentId(t.context),
375
369
  role: h ? "listbox" : "dialog",
376
370
  ...u.content.attrs,
377
371
  "data-state": I ? "open" : "closed",
@@ -379,7 +373,7 @@ function Te(t, l, e) {
379
373
  "data-activedescendant": L,
380
374
  "aria-activedescendant": h ? L : void 0,
381
375
  "aria-multiselectable": t.context.multiple && h ? !0 : void 0,
382
- "aria-labelledby": n.getLabelId(t.context),
376
+ "aria-labelledby": r.getLabelId(t.context),
383
377
  tabIndex: 0,
384
378
  onKeyDown(o) {
385
379
  if (!m || !j(o)) return;
@@ -404,15 +398,15 @@ function Te(t, l, e) {
404
398
  l({ type: "ITEM.CLICK", src: "keydown.enter" });
405
399
  },
406
400
  Space(p) {
407
- var V;
408
- A ? l({ type: "CONTENT.TYPEAHEAD", key: p.key }) : (V = a.Enter) == null || V.call(a, p);
401
+ var N;
402
+ V ? l({ type: "CONTENT.TYPEAHEAD", key: p.key }) : (N = a.Enter) == null || N.call(a, p);
409
403
  }
410
- }, c = a[k(o)];
404
+ }, c = a[F(o)];
411
405
  if (c) {
412
406
  c(o), o.preventDefault();
413
407
  return;
414
408
  }
415
- Q(o.target) || N.isValidEvent(o) && (l({ type: "CONTENT.TYPEAHEAD", key: o.key }), o.preventDefault());
409
+ Q(o.target) || A.isValidEvent(o) && (l({ type: "CONTENT.TYPEAHEAD", key: o.key }), o.preventDefault());
416
410
  }
417
411
  });
418
412
  },
@@ -421,16 +415,16 @@ function Te(t, l, e) {
421
415
  ...u.list.attrs,
422
416
  tabIndex: 0,
423
417
  role: h ? void 0 : "listbox",
424
- "aria-labelledby": n.getTriggerId(t.context),
418
+ "aria-labelledby": r.getTriggerId(t.context),
425
419
  "aria-activedescendant": h ? void 0 : L,
426
420
  "aria-multiselectable": !h && t.context.multiple ? !0 : void 0
427
421
  });
428
422
  }
429
423
  };
430
424
  }
431
- var { and: v, not: E, or: ne } = K;
425
+ var { and: O, not: E, or: oe } = K;
432
426
  function ve(t) {
433
- const l = ie(t);
427
+ const l = te(t);
434
428
  return W(
435
429
  {
436
430
  id: "select",
@@ -447,9 +441,8 @@ function ve(t) {
447
441
  selectedItems: [],
448
442
  valueAsString: "",
449
443
  collection: l.collection ?? _.empty(),
450
- typeahead: N.defaultOptions,
444
+ typeahead: A.defaultOptions,
451
445
  fieldsetDisabled: !1,
452
- restoreFocus: !0,
453
446
  positioning: {
454
447
  placement: "bottom-start",
455
448
  gutter: 8,
@@ -503,10 +496,11 @@ function ve(t) {
503
496
  {
504
497
  guard: "isTriggerClickEvent",
505
498
  target: "open",
506
- actions: ["highlightFirstSelectedItem"]
499
+ actions: ["setInitialFocus", "highlightFirstSelectedItem"]
507
500
  },
508
501
  {
509
- target: "open"
502
+ target: "open",
503
+ actions: ["setInitialFocus"]
510
504
  }
511
505
  ],
512
506
  "TRIGGER.CLICK": [
@@ -516,7 +510,7 @@ function ve(t) {
516
510
  },
517
511
  {
518
512
  target: "open",
519
- actions: ["invokeOnOpen", "highlightFirstSelectedItem"]
513
+ actions: ["invokeOnOpen", "setInitialFocus", "highlightFirstSelectedItem"]
520
514
  }
521
515
  ],
522
516
  "TRIGGER.FOCUS": {
@@ -529,33 +523,33 @@ function ve(t) {
529
523
  },
530
524
  {
531
525
  target: "open",
532
- actions: ["invokeOnOpen"]
526
+ actions: ["setInitialFocus", "invokeOnOpen"]
533
527
  }
534
528
  ]
535
529
  }
536
530
  },
537
531
  focused: {
538
532
  tags: ["closed"],
539
- entry: ["focusTriggerEl"],
540
533
  on: {
541
534
  "CONTROLLED.OPEN": [
542
535
  {
543
536
  guard: "isTriggerClickEvent",
544
537
  target: "open",
545
- actions: ["highlightFirstSelectedItem"]
538
+ actions: ["setInitialFocus", "highlightFirstSelectedItem"]
546
539
  },
547
540
  {
548
541
  guard: "isTriggerArrowUpEvent",
549
542
  target: "open",
550
- actions: ["highlightComputedLastItem"]
543
+ actions: ["setInitialFocus", "highlightComputedLastItem"]
551
544
  },
552
545
  {
553
- guard: ne("isTriggerArrowDownEvent", "isTriggerEnterEvent"),
546
+ guard: oe("isTriggerArrowDownEvent", "isTriggerEnterEvent"),
554
547
  target: "open",
555
- actions: ["highlightComputedFirstItem"]
548
+ actions: ["setInitialFocus", "highlightComputedFirstItem"]
556
549
  },
557
550
  {
558
- target: "open"
551
+ target: "open",
552
+ actions: ["setInitialFocus"]
559
553
  }
560
554
  ],
561
555
  OPEN: [
@@ -565,7 +559,7 @@ function ve(t) {
565
559
  },
566
560
  {
567
561
  target: "open",
568
- actions: ["invokeOnOpen"]
562
+ actions: ["setInitialFocus", "invokeOnOpen"]
569
563
  }
570
564
  ],
571
565
  "TRIGGER.BLUR": {
@@ -578,7 +572,7 @@ function ve(t) {
578
572
  },
579
573
  {
580
574
  target: "open",
581
- actions: ["invokeOnOpen", "highlightFirstSelectedItem"]
575
+ actions: ["setInitialFocus", "invokeOnOpen", "highlightFirstSelectedItem"]
582
576
  }
583
577
  ],
584
578
  "TRIGGER.ENTER": [
@@ -588,7 +582,7 @@ function ve(t) {
588
582
  },
589
583
  {
590
584
  target: "open",
591
- actions: ["invokeOnOpen", "highlightComputedFirstItem"]
585
+ actions: ["setInitialFocus", "invokeOnOpen", "highlightComputedFirstItem"]
592
586
  }
593
587
  ],
594
588
  "TRIGGER.ARROW_UP": [
@@ -598,7 +592,7 @@ function ve(t) {
598
592
  },
599
593
  {
600
594
  target: "open",
601
- actions: ["invokeOnOpen", "highlightComputedLastItem"]
595
+ actions: ["setInitialFocus", "invokeOnOpen", "highlightComputedLastItem"]
602
596
  }
603
597
  ],
604
598
  "TRIGGER.ARROW_DOWN": [
@@ -608,12 +602,12 @@ function ve(t) {
608
602
  },
609
603
  {
610
604
  target: "open",
611
- actions: ["invokeOnOpen", "highlightComputedFirstItem"]
605
+ actions: ["setInitialFocus", "invokeOnOpen", "highlightComputedFirstItem"]
612
606
  }
613
607
  ],
614
608
  "TRIGGER.ARROW_LEFT": [
615
609
  {
616
- guard: v(E("multiple"), "hasSelectedItems"),
610
+ guard: O(E("multiple"), "hasSelectedItems"),
617
611
  actions: ["selectPreviousItem"]
618
612
  },
619
613
  {
@@ -623,7 +617,7 @@ function ve(t) {
623
617
  ],
624
618
  "TRIGGER.ARROW_RIGHT": [
625
619
  {
626
- guard: v(E("multiple"), "hasSelectedItems"),
620
+ guard: O(E("multiple"), "hasSelectedItems"),
627
621
  actions: ["selectNextItem"]
628
622
  },
629
623
  {
@@ -647,21 +641,13 @@ function ve(t) {
647
641
  },
648
642
  open: {
649
643
  tags: ["open"],
650
- entry: ["setInitialFocus"],
651
644
  exit: ["scrollContentToTop"],
652
645
  activities: ["trackDismissableElement", "computePlacement", "scrollToHighlightedItem"],
653
646
  on: {
654
- "CONTROLLED.CLOSE": [
655
- {
656
- guard: "shouldRestoreFocus",
657
- target: "focused",
658
- actions: ["clearHighlightedItem"]
659
- },
660
- {
661
- target: "idle",
662
- actions: ["clearHighlightedItem"]
663
- }
664
- ],
647
+ "CONTROLLED.CLOSE": {
648
+ target: "focused",
649
+ actions: ["focusTriggerEl", "clearHighlightedItem"]
650
+ },
665
651
  CLOSE: [
666
652
  {
667
653
  guard: "isOpenControlled",
@@ -669,7 +655,7 @@ function ve(t) {
669
655
  },
670
656
  {
671
657
  target: "focused",
672
- actions: ["invokeOnClose", "clearHighlightedItem"]
658
+ actions: ["invokeOnClose", "focusTriggerEl", "clearHighlightedItem"]
673
659
  }
674
660
  ],
675
661
  "TRIGGER.CLICK": [
@@ -684,39 +670,18 @@ function ve(t) {
684
670
  ],
685
671
  "ITEM.CLICK": [
686
672
  {
687
- guard: v("closeOnSelect", "isOpenControlled"),
673
+ guard: O("closeOnSelect", "isOpenControlled"),
688
674
  actions: ["selectHighlightedItem", "invokeOnClose"]
689
675
  },
690
676
  {
691
677
  guard: "closeOnSelect",
692
678
  target: "focused",
693
- actions: ["selectHighlightedItem", "invokeOnClose", "clearHighlightedItem"]
679
+ actions: ["selectHighlightedItem", "invokeOnClose", "focusTriggerEl", "clearHighlightedItem"]
694
680
  },
695
681
  {
696
682
  actions: ["selectHighlightedItem"]
697
683
  }
698
684
  ],
699
- "CONTENT.INTERACT_OUTSIDE": [
700
- // == group 1 ==
701
- {
702
- guard: v("shouldRestoreFocus", "isOpenControlled"),
703
- actions: ["invokeOnClose"]
704
- },
705
- {
706
- guard: "shouldRestoreFocus",
707
- target: "focused",
708
- actions: ["invokeOnClose", "clearHighlightedItem"]
709
- },
710
- // == group 2 ==
711
- {
712
- guard: "isOpenControlled",
713
- actions: ["invokeOnClose"]
714
- },
715
- {
716
- target: "idle",
717
- actions: ["invokeOnClose", "clearHighlightedItem"]
718
- }
719
- ],
720
685
  "CONTENT.HOME": {
721
686
  actions: ["highlightFirstItem"]
722
687
  },
@@ -725,7 +690,7 @@ function ve(t) {
725
690
  },
726
691
  "CONTENT.ARROW_DOWN": [
727
692
  {
728
- guard: v("hasHighlightedItem", "loop", "isLastItemHighlighted"),
693
+ guard: O("hasHighlightedItem", "loop", "isLastItemHighlighted"),
729
694
  actions: ["highlightFirstItem"]
730
695
  },
731
696
  {
@@ -738,7 +703,7 @@ function ve(t) {
738
703
  ],
739
704
  "CONTENT.ARROW_UP": [
740
705
  {
741
- guard: v("hasHighlightedItem", "loop", "isFirstItemHighlighted"),
706
+ guard: O("hasHighlightedItem", "loop", "isFirstItemHighlighted"),
742
707
  actions: ["highlightLastItem"]
743
708
  },
744
709
  {
@@ -774,201 +739,207 @@ function ve(t) {
774
739
  isFirstItemHighlighted: (e) => e.highlightedValue === e.collection.firstValue,
775
740
  isLastItemHighlighted: (e) => e.highlightedValue === e.collection.lastValue,
776
741
  closeOnSelect: (e, i) => !!(i.closeOnSelect ?? e.closeOnSelect),
777
- shouldRestoreFocus: (e) => !!e.restoreFocus,
778
742
  // guard assertions (for controlled mode)
779
743
  isOpenControlled: (e) => !!e["open.controlled"],
780
744
  isTriggerClickEvent: (e, i) => {
781
- var r;
782
- return ((r = i.previousEvent) == null ? void 0 : r.type) === "TRIGGER.CLICK";
745
+ var n;
746
+ return ((n = i.previousEvent) == null ? void 0 : n.type) === "TRIGGER.CLICK";
783
747
  },
784
748
  isTriggerEnterEvent: (e, i) => {
785
- var r;
786
- return ((r = i.previousEvent) == null ? void 0 : r.type) === "TRIGGER.ENTER";
749
+ var n;
750
+ return ((n = i.previousEvent) == null ? void 0 : n.type) === "TRIGGER.ENTER";
787
751
  },
788
752
  isTriggerArrowUpEvent: (e, i) => {
789
- var r;
790
- return ((r = i.previousEvent) == null ? void 0 : r.type) === "TRIGGER.ARROW_UP";
753
+ var n;
754
+ return ((n = i.previousEvent) == null ? void 0 : n.type) === "TRIGGER.ARROW_UP";
791
755
  },
792
756
  isTriggerArrowDownEvent: (e, i) => {
793
- var r;
794
- return ((r = i.previousEvent) == null ? void 0 : r.type) === "TRIGGER.ARROW_DOWN";
757
+ var n;
758
+ return ((n = i.previousEvent) == null ? void 0 : n.type) === "TRIGGER.ARROW_DOWN";
795
759
  }
796
760
  },
797
761
  activities: {
798
- trackFormControlState(e, i, { initialContext: r }) {
799
- return te(n.getHiddenSelectEl(e), {
800
- onFieldsetDisabledChange(g) {
801
- e.fieldsetDisabled = g;
762
+ trackFormControlState(e, i, { initialContext: n }) {
763
+ return ee(r.getHiddenSelectEl(e), {
764
+ onFieldsetDisabledChange(s) {
765
+ e.fieldsetDisabled = s;
802
766
  },
803
767
  onFormReset() {
804
- d.selectedItems(e, r.value);
768
+ g.selectedItems(e, n.value);
805
769
  }
806
770
  });
807
771
  },
808
- trackDismissableElement(e, i, { send: r }) {
809
- return ee(() => n.getContentEl(e), {
772
+ trackDismissableElement(e, i, { send: n }) {
773
+ const s = () => r.getContentEl(e);
774
+ let m = !0;
775
+ return x(s, {
810
776
  defer: !0,
811
- exclude: [n.getTriggerEl(e), n.getClearTriggerEl(e)],
777
+ exclude: [r.getTriggerEl(e), r.getClearTriggerEl(e)],
812
778
  onFocusOutside: e.onFocusOutside,
813
779
  onPointerDownOutside: e.onPointerDownOutside,
814
- onInteractOutside(m) {
815
- var h;
816
- (h = e.onInteractOutside) == null || h.call(e, m), e.restoreFocus = !m.detail.focusable;
780
+ onInteractOutside(h) {
781
+ var I;
782
+ (I = e.onInteractOutside) == null || I.call(e, h), m = !(h.detail.focusable || h.detail.contextmenu);
817
783
  },
818
784
  onDismiss() {
819
- r({ type: "CONTENT.INTERACT_OUTSIDE" });
785
+ n({ type: "CLOSE", src: "interact-outside", restoreFocus: m });
820
786
  }
821
787
  });
822
788
  },
823
789
  computePlacement(e) {
824
- return e.currentPlacement = e.positioning.placement, H(() => n.getTriggerEl(e), () => n.getPositionerEl(e), {
790
+ return e.currentPlacement = e.positioning.placement, H(() => r.getTriggerEl(e), () => r.getPositionerEl(e), {
825
791
  defer: !0,
826
792
  ...e.positioning,
827
- onComplete(g) {
828
- e.currentPlacement = g.placement;
793
+ onComplete(s) {
794
+ e.currentPlacement = s.placement;
829
795
  }
830
796
  });
831
797
  },
832
- scrollToHighlightedItem(e, i, { getState: r }) {
833
- const g = (h) => {
834
- if (e.highlightedValue == null || r().event.type.includes("POINTER")) return;
835
- const O = n.getHighlightedOptionEl(e), T = n.getContentEl(e);
798
+ scrollToHighlightedItem(e, i, { getState: n }) {
799
+ const s = (h) => {
800
+ if (e.highlightedValue == null || n().event.type.includes("POINTER")) return;
801
+ const T = r.getHighlightedOptionEl(e), v = r.getContentEl(e);
836
802
  if (e.scrollToIndexFn) {
837
803
  const G = e.collection.indexOf(e.highlightedValue);
838
804
  e.scrollToIndexFn({ index: G, immediate: h });
839
805
  return;
840
806
  }
841
- z(O, { rootEl: T, block: "nearest" });
807
+ q(T, { rootEl: v, block: "nearest" });
842
808
  };
843
- return y(() => g(!0)), X(() => n.getContentEl(e), {
809
+ return y(() => s(!0)), Y(() => r.getContentEl(e), {
844
810
  defer: !0,
845
811
  attributes: ["data-activedescendant"],
846
812
  callback() {
847
- g(!1);
813
+ s(!1);
848
814
  }
849
815
  });
850
816
  }
851
817
  },
852
818
  actions: {
853
819
  reposition(e, i) {
854
- const r = () => n.getPositionerEl(e);
855
- H(n.getTriggerEl(e), r, {
820
+ const n = () => r.getPositionerEl(e);
821
+ H(r.getTriggerEl(e), n, {
856
822
  ...e.positioning,
857
823
  ...i.options,
858
824
  defer: !0,
859
825
  listeners: !1,
860
- onComplete(g) {
861
- e.currentPlacement = g.placement;
826
+ onComplete(s) {
827
+ e.currentPlacement = s.placement;
862
828
  }
863
829
  });
864
830
  },
865
- toggleVisibility(e, i, { send: r }) {
866
- r({ type: e.open ? "CONTROLLED.OPEN" : "CONTROLLED.CLOSE", previousEvent: i });
831
+ toggleVisibility(e, i, { send: n }) {
832
+ n({ type: e.open ? "CONTROLLED.OPEN" : "CONTROLLED.CLOSE", previousEvent: i });
867
833
  },
868
834
  highlightPreviousItem(e) {
869
835
  if (e.highlightedValue == null) return;
870
836
  const i = e.collection.getPreviousValue(e.highlightedValue);
871
- d.highlightedItem(e, i);
837
+ g.highlightedItem(e, i);
872
838
  },
873
839
  highlightNextItem(e) {
874
840
  if (e.highlightedValue == null) return;
875
841
  const i = e.collection.getNextValue(e.highlightedValue);
876
- d.highlightedItem(e, i);
842
+ g.highlightedItem(e, i);
877
843
  },
878
844
  highlightFirstItem(e) {
879
845
  const i = e.collection.firstValue;
880
- d.highlightedItem(e, i);
846
+ g.highlightedItem(e, i);
881
847
  },
882
848
  highlightLastItem(e) {
883
849
  const i = e.collection.lastValue;
884
- d.highlightedItem(e, i);
850
+ g.highlightedItem(e, i);
885
851
  },
886
852
  setInitialFocus(e) {
887
853
  y(() => {
888
- const i = Z({
889
- root: n.getContentEl(e)
854
+ const i = B({
855
+ root: r.getContentEl(e)
890
856
  });
891
857
  i == null || i.focus({ preventScroll: !0 });
892
858
  });
893
859
  },
894
- focusTriggerEl(e) {
895
- y(() => {
896
- var i;
897
- (i = n.getTriggerEl(e)) == null || i.focus({ preventScroll: !0 });
860
+ focusTriggerEl(e, i) {
861
+ var s;
862
+ const n = i.restoreFocus ?? ((s = i.previousEvent) == null ? void 0 : s.restoreFocus);
863
+ n != null && !n || y(() => {
864
+ const m = r.getTriggerEl(e);
865
+ m == null || m.focus({ preventScroll: !0 });
898
866
  });
899
867
  },
900
868
  selectHighlightedItem(e, i) {
901
- const r = i.value ?? e.highlightedValue;
902
- r != null && d.selectedItem(e, r);
869
+ let n = i.value ?? e.highlightedValue;
870
+ if (n == null) return;
871
+ const s = e.deselectable && !e.multiple && e.value.includes(n);
872
+ n = s ? null : n, g.selectedItem(e, n, s);
903
873
  },
904
874
  highlightComputedFirstItem(e) {
905
875
  const i = e.hasSelectedItems ? e.collection.sort(e.value)[0] : e.collection.firstValue;
906
- d.highlightedItem(e, i);
876
+ g.highlightedItem(e, i);
907
877
  },
908
878
  highlightComputedLastItem(e) {
909
879
  const i = e.hasSelectedItems ? e.collection.sort(e.value)[0] : e.collection.lastValue;
910
- d.highlightedItem(e, i);
880
+ g.highlightedItem(e, i);
911
881
  },
912
882
  highlightFirstSelectedItem(e) {
913
883
  if (!e.hasSelectedItems) return;
914
884
  const [i] = e.collection.sort(e.value);
915
- d.highlightedItem(e, i);
885
+ g.highlightedItem(e, i);
916
886
  },
917
887
  highlightItem(e, i) {
918
- d.highlightedItem(e, i.value);
888
+ g.highlightedItem(e, i.value);
919
889
  },
920
890
  highlightMatchingItem(e, i) {
921
- const r = e.collection.search(i.key, {
891
+ const n = e.collection.search(i.key, {
922
892
  state: e.typeahead,
923
893
  currentValue: e.highlightedValue
924
894
  });
925
- r != null && d.highlightedItem(e, r);
895
+ n != null && g.highlightedItem(e, n);
926
896
  },
927
897
  setHighlightedItem(e, i) {
928
- d.highlightedItem(e, i.value);
898
+ g.highlightedItem(e, i.value);
929
899
  },
930
900
  clearHighlightedItem(e) {
931
- d.highlightedItem(e, null, !0);
901
+ g.highlightedItem(e, null, !0);
932
902
  },
933
903
  selectItem(e, i) {
934
- d.selectedItem(e, i.value);
904
+ const n = e.deselectable && !e.multiple && e.value.includes(i.value), s = n ? null : i.value;
905
+ g.selectedItem(e, s, n);
935
906
  },
936
907
  clearItem(e, i) {
937
- const r = e.value.filter((g) => g !== i.value);
938
- d.selectedItems(e, r);
908
+ const n = e.value.filter((s) => s !== i.value);
909
+ g.selectedItems(e, n);
939
910
  },
940
911
  setSelectedItems(e, i) {
941
- d.selectedItems(e, i.value);
912
+ g.selectedItems(e, i.value);
942
913
  },
943
914
  clearSelectedItems(e) {
944
- d.selectedItems(e, []);
915
+ g.selectedItems(e, []);
945
916
  },
946
917
  selectPreviousItem(e) {
947
918
  const i = e.collection.getPreviousValue(e.value[0]);
948
- d.selectedItem(e, i);
919
+ g.selectedItem(e, i);
949
920
  },
950
921
  selectNextItem(e) {
951
922
  const i = e.collection.getNextValue(e.value[0]);
952
- d.selectedItem(e, i);
923
+ g.selectedItem(e, i);
953
924
  },
954
925
  selectFirstItem(e) {
955
926
  const i = e.collection.firstValue;
956
- d.selectedItem(e, i);
927
+ g.selectedItem(e, i);
957
928
  },
958
929
  selectLastItem(e) {
959
930
  const i = e.collection.lastValue;
960
- d.selectedItem(e, i);
931
+ g.selectedItem(e, i);
961
932
  },
962
933
  selectMatchingItem(e, i) {
963
- const r = e.collection.search(i.key, {
934
+ const n = e.collection.search(i.key, {
964
935
  state: e.typeahead,
965
936
  currentValue: e.value[0]
966
937
  });
967
- r != null && d.selectedItem(e, r);
938
+ n != null && g.selectedItem(e, n);
968
939
  },
969
940
  scrollContentToTop(e) {
970
941
  var i;
971
- e.scrollToIndexFn ? e.scrollToIndexFn({ index: 0, immediate: !0 }) : (i = n.getContentEl(e)) == null || i.scrollTo(0, 0);
942
+ e.scrollToIndexFn ? e.scrollToIndexFn({ index: 0, immediate: !0 }) : (i = r.getContentEl(e)) == null || i.scrollTo(0, 0);
972
943
  },
973
944
  invokeOnOpen(e) {
974
945
  var i;
@@ -979,22 +950,22 @@ function ve(t) {
979
950
  (i = e.onOpenChange) == null || i.call(e, { open: !1 });
980
951
  },
981
952
  syncSelectElement(e) {
982
- const i = n.getHiddenSelectEl(e);
953
+ const i = r.getHiddenSelectEl(e);
983
954
  if (i) {
984
955
  if (e.value.length === 0 && !e.multiple) {
985
956
  i.selectedIndex = -1;
986
957
  return;
987
958
  }
988
- for (const r of i.options)
989
- r.selected = e.value.includes(r.value);
959
+ for (const n of i.options)
960
+ n.selected = e.value.includes(n.value);
990
961
  }
991
962
  },
992
963
  setCollection(e, i) {
993
964
  e.collection = i.value;
994
965
  },
995
966
  syncCollection(e) {
996
- const i = e.collection.findMany(e.value), r = e.collection.stringifyItems(i);
997
- e.highlightedItem = e.collection.find(e.highlightedValue), e.selectedItems = i, e.valueAsString = r;
967
+ const i = e.collection.findMany(e.value), n = e.collection.stringifyItems(i);
968
+ e.highlightedItem = e.collection.find(e.highlightedValue), e.selectedItems = i, e.valueAsString = n;
998
969
  },
999
970
  syncSelectedItems(e) {
1000
971
  b.valueChange(e);
@@ -1006,11 +977,11 @@ function ve(t) {
1006
977
  }
1007
978
  );
1008
979
  }
1009
- function re(t) {
980
+ function ne(t) {
1010
981
  y(() => {
1011
- const l = n.getHiddenSelectEl(t);
982
+ const l = r.getHiddenSelectEl(t);
1012
983
  if (!l) return;
1013
- const e = n.getWin(t), i = new e.Event("change", { bubbles: !0, composed: !0 });
984
+ const e = r.getWin(t), i = new e.Event("change", { bubbles: !0, composed: !0 });
1014
985
  l.dispatchEvent(i);
1015
986
  });
1016
987
  }
@@ -1018,7 +989,7 @@ var b = {
1018
989
  valueChange: (t) => {
1019
990
  const l = t.selectedItems;
1020
991
  t.selectedItems = t.value.map((e) => {
1021
- const i = l.find((r) => t.collection.getItemValue(r) === e);
992
+ const i = l.find((n) => t.collection.getItemValue(n) === e);
1022
993
  return i || t.collection.find(e);
1023
994
  }), t.valueAsString = t.collection.stringifyItems(t.selectedItems);
1024
995
  },
@@ -1031,7 +1002,7 @@ var b = {
1031
1002
  b.valueChange(t), (l = t.onValueChange) == null || l.call(t, {
1032
1003
  value: Array.from(t.value),
1033
1004
  items: Array.from(t.selectedItems)
1034
- }), re(t);
1005
+ }), ne(t);
1035
1006
  },
1036
1007
  highlightChange: (t) => {
1037
1008
  var l;
@@ -1041,14 +1012,14 @@ var b = {
1041
1012
  highlightedIndex: t.collection.indexOf(t.highlightedValue)
1042
1013
  });
1043
1014
  }
1044
- }, d = {
1015
+ }, g = {
1045
1016
  selectedItem: (t, l, e = !1) => {
1046
1017
  if (!P(t.value, l) && !(l == null && !e)) {
1047
1018
  if (l == null && e) {
1048
1019
  t.value = [], R.valueChange(t);
1049
1020
  return;
1050
1021
  }
1051
- t.value = t.multiple ? le(t.value, l) : [l], R.valueChange(t);
1022
+ t.value = t.multiple ? ie(t.value, l) : [l], R.valueChange(t);
1052
1023
  }
1053
1024
  },
1054
1025
  selectedItems: (t, l) => {
@@ -1063,6 +1034,7 @@ S()([
1063
1034
  "collection",
1064
1035
  "dir",
1065
1036
  "disabled",
1037
+ "deselectable",
1066
1038
  "form",
1067
1039
  "getRootNode",
1068
1040
  "highlightedValue",
@@ -1091,8 +1063,8 @@ S()(["item", "persistFocus"]);
1091
1063
  S()(["id"]);
1092
1064
  S()(["htmlFor"]);
1093
1065
  export {
1094
- oe as anatomy,
1066
+ le as anatomy,
1095
1067
  _ as collection,
1096
- Te as connect,
1068
+ Ee as connect,
1097
1069
  ve as machine
1098
1070
  };