@sectile/vue 0.2.1

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 (287) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/dist/accordion.d.ts +250 -0
  4. package/dist/accordion.d.ts.map +1 -0
  5. package/dist/accordion.js +242 -0
  6. package/dist/accordion.js.map +1 -0
  7. package/dist/alert-dialog.d.ts +16 -0
  8. package/dist/alert-dialog.d.ts.map +1 -0
  9. package/dist/alert-dialog.js +18 -0
  10. package/dist/alert-dialog.js.map +1 -0
  11. package/dist/calendar.d.ts +232 -0
  12. package/dist/calendar.d.ts.map +1 -0
  13. package/dist/calendar.js +109 -0
  14. package/dist/calendar.js.map +1 -0
  15. package/dist/carousel.d.ts +365 -0
  16. package/dist/carousel.d.ts.map +1 -0
  17. package/dist/carousel.js +140 -0
  18. package/dist/carousel.js.map +1 -0
  19. package/dist/cascade-select.d.ts +442 -0
  20. package/dist/cascade-select.d.ts.map +1 -0
  21. package/dist/cascade-select.js +111 -0
  22. package/dist/cascade-select.js.map +1 -0
  23. package/dist/checkbox-group.d.ts +206 -0
  24. package/dist/checkbox-group.d.ts.map +1 -0
  25. package/dist/checkbox-group.js +98 -0
  26. package/dist/checkbox-group.js.map +1 -0
  27. package/dist/checkbox.d.ts +152 -0
  28. package/dist/checkbox.d.ts.map +1 -0
  29. package/dist/checkbox.js +164 -0
  30. package/dist/checkbox.js.map +1 -0
  31. package/dist/color-picker.d.ts +602 -0
  32. package/dist/color-picker.d.ts.map +1 -0
  33. package/dist/color-picker.js +129 -0
  34. package/dist/color-picker.js.map +1 -0
  35. package/dist/combobox.d.ts +320 -0
  36. package/dist/combobox.d.ts.map +1 -0
  37. package/dist/combobox.js +176 -0
  38. package/dist/combobox.js.map +1 -0
  39. package/dist/date-field.d.ts +15 -0
  40. package/dist/date-field.d.ts.map +1 -0
  41. package/dist/date-field.js +19 -0
  42. package/dist/date-field.js.map +1 -0
  43. package/dist/date-picker.d.ts +554 -0
  44. package/dist/date-picker.d.ts.map +1 -0
  45. package/dist/date-picker.js +18 -0
  46. package/dist/date-picker.js.map +1 -0
  47. package/dist/date-range-field.d.ts +129 -0
  48. package/dist/date-range-field.d.ts.map +1 -0
  49. package/dist/date-range-field.js +134 -0
  50. package/dist/date-range-field.js.map +1 -0
  51. package/dist/date-range-picker.d.ts +594 -0
  52. package/dist/date-range-picker.d.ts.map +1 -0
  53. package/dist/date-range-picker.js +19 -0
  54. package/dist/date-range-picker.js.map +1 -0
  55. package/dist/date-time-field.d.ts +15 -0
  56. package/dist/date-time-field.d.ts.map +1 -0
  57. package/dist/date-time-field.js +19 -0
  58. package/dist/date-time-field.js.map +1 -0
  59. package/dist/date-time-picker.d.ts +635 -0
  60. package/dist/date-time-picker.d.ts.map +1 -0
  61. package/dist/date-time-picker.js +20 -0
  62. package/dist/date-time-picker.js.map +1 -0
  63. package/dist/date-time-range-picker.d.ts +755 -0
  64. package/dist/date-time-range-picker.d.ts.map +1 -0
  65. package/dist/date-time-range-picker.js +23 -0
  66. package/dist/date-time-range-picker.js.map +1 -0
  67. package/dist/dialog.d.ts +16 -0
  68. package/dist/dialog.d.ts.map +1 -0
  69. package/dist/dialog.js +15 -0
  70. package/dist/dialog.js.map +1 -0
  71. package/dist/disclosure.d.ts +147 -0
  72. package/dist/disclosure.d.ts.map +1 -0
  73. package/dist/disclosure.js +129 -0
  74. package/dist/disclosure.js.map +1 -0
  75. package/dist/editable.d.ts +300 -0
  76. package/dist/editable.d.ts.map +1 -0
  77. package/dist/editable.js +181 -0
  78. package/dist/editable.js.map +1 -0
  79. package/dist/feed.d.ts +216 -0
  80. package/dist/feed.d.ts.map +1 -0
  81. package/dist/feed.js +85 -0
  82. package/dist/feed.js.map +1 -0
  83. package/dist/form.d.ts +356 -0
  84. package/dist/form.d.ts.map +1 -0
  85. package/dist/form.js +752 -0
  86. package/dist/form.js.map +1 -0
  87. package/dist/grid.d.ts +254 -0
  88. package/dist/grid.d.ts.map +1 -0
  89. package/dist/grid.js +95 -0
  90. package/dist/grid.js.map +1 -0
  91. package/dist/host-provider.d.ts +46 -0
  92. package/dist/host-provider.d.ts.map +1 -0
  93. package/dist/host-provider.js +39 -0
  94. package/dist/host-provider.js.map +1 -0
  95. package/dist/index.d.ts +124 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +61 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/internal/date-picker.d.ts +539 -0
  100. package/dist/internal/date-picker.d.ts.map +1 -0
  101. package/dist/internal/date-picker.js +522 -0
  102. package/dist/internal/date-picker.js.map +1 -0
  103. package/dist/internal/form-control-inventory.d.ts +154 -0
  104. package/dist/internal/form-control-inventory.d.ts.map +1 -0
  105. package/dist/internal/form-control-inventory.js +43 -0
  106. package/dist/internal/form-control-inventory.js.map +1 -0
  107. package/dist/internal/form-control.d.ts +41 -0
  108. package/dist/internal/form-control.d.ts.map +1 -0
  109. package/dist/internal/form-control.js +52 -0
  110. package/dist/internal/form-control.js.map +1 -0
  111. package/dist/internal/native-field.d.ts +49 -0
  112. package/dist/internal/native-field.d.ts.map +1 -0
  113. package/dist/internal/native-field.js +81 -0
  114. package/dist/internal/native-field.js.map +1 -0
  115. package/dist/internal/native-input.d.ts +9 -0
  116. package/dist/internal/native-input.d.ts.map +1 -0
  117. package/dist/internal/native-input.js +9 -0
  118. package/dist/internal/native-input.js.map +1 -0
  119. package/dist/internal/part-contract.d.ts +9 -0
  120. package/dist/internal/part-contract.d.ts.map +1 -0
  121. package/dist/internal/part-contract.js +12 -0
  122. package/dist/internal/part-contract.js.map +1 -0
  123. package/dist/internal/popup.d.ts +99 -0
  124. package/dist/internal/popup.d.ts.map +1 -0
  125. package/dist/internal/popup.js +238 -0
  126. package/dist/internal/popup.js.map +1 -0
  127. package/dist/internal/tabs-context.d.ts +25 -0
  128. package/dist/internal/tabs-context.d.ts.map +1 -0
  129. package/dist/internal/tabs-context.js +9 -0
  130. package/dist/internal/tabs-context.js.map +1 -0
  131. package/dist/listbox.d.ts +275 -0
  132. package/dist/listbox.d.ts.map +1 -0
  133. package/dist/listbox.js +258 -0
  134. package/dist/listbox.js.map +1 -0
  135. package/dist/menu-button.d.ts +2 -0
  136. package/dist/menu-button.d.ts.map +1 -0
  137. package/dist/menu-button.js +2 -0
  138. package/dist/menu-button.js.map +1 -0
  139. package/dist/menu.d.ts +638 -0
  140. package/dist/menu.d.ts.map +1 -0
  141. package/dist/menu.js +167 -0
  142. package/dist/menu.js.map +1 -0
  143. package/dist/menubar.d.ts +2 -0
  144. package/dist/menubar.d.ts.map +1 -0
  145. package/dist/menubar.js +2 -0
  146. package/dist/menubar.js.map +1 -0
  147. package/dist/month-picker.d.ts +353 -0
  148. package/dist/month-picker.d.ts.map +1 -0
  149. package/dist/month-picker.js +10 -0
  150. package/dist/month-picker.js.map +1 -0
  151. package/dist/month-range-picker.d.ts +393 -0
  152. package/dist/month-range-picker.d.ts.map +1 -0
  153. package/dist/month-range-picker.js +11 -0
  154. package/dist/month-range-picker.js.map +1 -0
  155. package/dist/multi-thumb-slider.d.ts +299 -0
  156. package/dist/multi-thumb-slider.d.ts.map +1 -0
  157. package/dist/multi-thumb-slider.js +204 -0
  158. package/dist/multi-thumb-slider.js.map +1 -0
  159. package/dist/navigation-menu.d.ts +114 -0
  160. package/dist/navigation-menu.d.ts.map +1 -0
  161. package/dist/navigation-menu.js +36 -0
  162. package/dist/navigation-menu.js.map +1 -0
  163. package/dist/number-field.d.ts +12 -0
  164. package/dist/number-field.d.ts.map +1 -0
  165. package/dist/number-field.js +21 -0
  166. package/dist/number-field.js.map +1 -0
  167. package/dist/pagination.d.ts +294 -0
  168. package/dist/pagination.d.ts.map +1 -0
  169. package/dist/pagination.js +145 -0
  170. package/dist/pagination.js.map +1 -0
  171. package/dist/pin-input.d.ts +207 -0
  172. package/dist/pin-input.d.ts.map +1 -0
  173. package/dist/pin-input.js +129 -0
  174. package/dist/pin-input.js.map +1 -0
  175. package/dist/popover.d.ts +17 -0
  176. package/dist/popover.d.ts.map +1 -0
  177. package/dist/popover.js +16 -0
  178. package/dist/popover.js.map +1 -0
  179. package/dist/primitive.d.ts +41 -0
  180. package/dist/primitive.d.ts.map +1 -0
  181. package/dist/primitive.js +27 -0
  182. package/dist/primitive.js.map +1 -0
  183. package/dist/quantity-field.d.ts +249 -0
  184. package/dist/quantity-field.d.ts.map +1 -0
  185. package/dist/quantity-field.js +131 -0
  186. package/dist/quantity-field.js.map +1 -0
  187. package/dist/radio-group.d.ts +225 -0
  188. package/dist/radio-group.d.ts.map +1 -0
  189. package/dist/radio-group.js +198 -0
  190. package/dist/radio-group.js.map +1 -0
  191. package/dist/range-calendar.d.ts +336 -0
  192. package/dist/range-calendar.d.ts.map +1 -0
  193. package/dist/range-calendar.js +15 -0
  194. package/dist/range-calendar.js.map +1 -0
  195. package/dist/rating.d.ts +228 -0
  196. package/dist/rating.d.ts.map +1 -0
  197. package/dist/rating.js +118 -0
  198. package/dist/rating.js.map +1 -0
  199. package/dist/reorder.d.ts +209 -0
  200. package/dist/reorder.d.ts.map +1 -0
  201. package/dist/reorder.js +186 -0
  202. package/dist/reorder.js.map +1 -0
  203. package/dist/select.d.ts +352 -0
  204. package/dist/select.d.ts.map +1 -0
  205. package/dist/select.js +191 -0
  206. package/dist/select.js.map +1 -0
  207. package/dist/slider.d.ts +269 -0
  208. package/dist/slider.d.ts.map +1 -0
  209. package/dist/slider.js +197 -0
  210. package/dist/slider.js.map +1 -0
  211. package/dist/spin-button.d.ts +272 -0
  212. package/dist/spin-button.d.ts.map +1 -0
  213. package/dist/spin-button.js +190 -0
  214. package/dist/spin-button.js.map +1 -0
  215. package/dist/stepper.d.ts +310 -0
  216. package/dist/stepper.d.ts.map +1 -0
  217. package/dist/stepper.js +87 -0
  218. package/dist/stepper.js.map +1 -0
  219. package/dist/switch.d.ts +149 -0
  220. package/dist/switch.d.ts.map +1 -0
  221. package/dist/switch.js +140 -0
  222. package/dist/switch.js.map +1 -0
  223. package/dist/tabs.d.ts +290 -0
  224. package/dist/tabs.d.ts.map +1 -0
  225. package/dist/tabs.js +258 -0
  226. package/dist/tabs.js.map +1 -0
  227. package/dist/tags-input.d.ts +297 -0
  228. package/dist/tags-input.d.ts.map +1 -0
  229. package/dist/tags-input.js +196 -0
  230. package/dist/tags-input.js.map +1 -0
  231. package/dist/text.d.ts +138 -0
  232. package/dist/text.d.ts.map +1 -0
  233. package/dist/text.js +125 -0
  234. package/dist/text.js.map +1 -0
  235. package/dist/time-field.d.ts +15 -0
  236. package/dist/time-field.d.ts.map +1 -0
  237. package/dist/time-field.js +19 -0
  238. package/dist/time-field.js.map +1 -0
  239. package/dist/time-range-field.d.ts +128 -0
  240. package/dist/time-range-field.d.ts.map +1 -0
  241. package/dist/time-range-field.js +44 -0
  242. package/dist/time-range-field.js.map +1 -0
  243. package/dist/timer.d.ts +232 -0
  244. package/dist/timer.d.ts.map +1 -0
  245. package/dist/timer.js +51 -0
  246. package/dist/timer.js.map +1 -0
  247. package/dist/toast.d.ts +189 -0
  248. package/dist/toast.d.ts.map +1 -0
  249. package/dist/toast.js +78 -0
  250. package/dist/toast.js.map +1 -0
  251. package/dist/toggle-button.d.ts +81 -0
  252. package/dist/toggle-button.d.ts.map +1 -0
  253. package/dist/toggle-button.js +75 -0
  254. package/dist/toggle-button.js.map +1 -0
  255. package/dist/toggle-group.d.ts +228 -0
  256. package/dist/toggle-group.d.ts.map +1 -0
  257. package/dist/toggle-group.js +143 -0
  258. package/dist/toggle-group.js.map +1 -0
  259. package/dist/toolbar.d.ts +202 -0
  260. package/dist/toolbar.d.ts.map +1 -0
  261. package/dist/toolbar.js +82 -0
  262. package/dist/toolbar.js.map +1 -0
  263. package/dist/tooltip.d.ts +13 -0
  264. package/dist/tooltip.d.ts.map +1 -0
  265. package/dist/tooltip.js +15 -0
  266. package/dist/tooltip.js.map +1 -0
  267. package/dist/tree-grid.d.ts +359 -0
  268. package/dist/tree-grid.d.ts.map +1 -0
  269. package/dist/tree-grid.js +125 -0
  270. package/dist/tree-grid.js.map +1 -0
  271. package/dist/tree-view.d.ts +304 -0
  272. package/dist/tree-view.d.ts.map +1 -0
  273. package/dist/tree-view.js +131 -0
  274. package/dist/tree-view.js.map +1 -0
  275. package/dist/window-splitter.d.ts +204 -0
  276. package/dist/window-splitter.d.ts.map +1 -0
  277. package/dist/window-splitter.js +82 -0
  278. package/dist/window-splitter.js.map +1 -0
  279. package/dist/year-picker.d.ts +353 -0
  280. package/dist/year-picker.d.ts.map +1 -0
  281. package/dist/year-picker.js +10 -0
  282. package/dist/year-picker.js.map +1 -0
  283. package/dist/year-range-picker.d.ts +393 -0
  284. package/dist/year-range-picker.d.ts.map +1 -0
  285. package/dist/year-range-picker.js +11 -0
  286. package/dist/year-range-picker.js.map +1 -0
  287. package/package.json +356 -0
@@ -0,0 +1,258 @@
1
+ import { computed, defineComponent, h, inject, mergeProps, nextTick, provide, ref, shallowRef, watch, } from 'vue';
2
+ import { createListboxControllerFromItems, getListboxItemAttributes, getListboxRootAttributes, } from '@sectile/dom/listbox';
3
+ import { Primitive } from './primitive.js';
4
+ import { visuallyHiddenInputStyle } from './internal/native-input.js';
5
+ import { hiddenSelectSubmissionCapabilities, useCompositeFormControl } from './internal/form-control.js';
6
+ import { useHostDirection } from './host-provider.js';
7
+ const listboxRootContextKey = Symbol('SectileListboxRoot');
8
+ const listboxItemContextKey = Symbol('SectileListboxItem');
9
+ const listboxPartProps = {
10
+ as: { type: [String, Object, Function], default: 'span' },
11
+ asChild: { type: Boolean, default: false },
12
+ };
13
+ export const ListboxRoot = defineComponent({
14
+ name: 'SectileListboxRoot',
15
+ inheritAttrs: false,
16
+ props: {
17
+ items: { type: Array, required: true },
18
+ selectionMode: { type: String, default: 'single' },
19
+ modelValue: { type: [String, Array], default: undefined },
20
+ defaultValue: { type: [String, Array], default: undefined },
21
+ disabledItems: { type: Array, default: () => [] },
22
+ disabled: { type: Boolean, default: false },
23
+ readonly: { type: Boolean, default: false },
24
+ orientation: { type: String, default: 'vertical' },
25
+ name: { type: String, default: undefined },
26
+ form: { type: String, default: undefined },
27
+ required: { type: Boolean, default: false },
28
+ textValue: { type: Function, default: undefined },
29
+ as: { type: [String, Object, Function], default: 'div' },
30
+ asChild: { type: Boolean, default: false },
31
+ },
32
+ emits: {
33
+ 'update:modelValue': (_value) => true,
34
+ highlight: (_value) => true,
35
+ activate: (_value) => true,
36
+ },
37
+ slots: Object,
38
+ setup(props, { attrs, emit, slots }) {
39
+ const direction = useHostDirection();
40
+ const rootElement = ref(null);
41
+ const submissionElement = ref(null);
42
+ const participation = useCompositeFormControl({
43
+ root: rootElement,
44
+ submissions: [{ element: submissionElement, capabilities: hiddenSelectSubmissionCapabilities }],
45
+ });
46
+ const controlled = props.modelValue !== undefined;
47
+ const controller = shallowRef(createController(controlled, toIDs(controlled ? props.modelValue : props.defaultValue, props.selectionMode), { ...props, direction: direction.value }, emit));
48
+ const snapshot = shallowRef(controller.value.getSnapshot());
49
+ const rebuild = () => {
50
+ const value = controlled
51
+ ? toIDs(props.modelValue, props.selectionMode)
52
+ : snapshot.value.state.selection.selected;
53
+ controller.value = createController(controlled, value, { ...props, direction: direction.value }, emit);
54
+ snapshot.value = controller.value.getSnapshot();
55
+ };
56
+ watch(() => props.modelValue, (value) => {
57
+ if (!controlled || value === undefined)
58
+ return;
59
+ const result = controller.value.syncControlledValues({
60
+ value: toIDs(value, props.selectionMode),
61
+ });
62
+ if (!result.ok)
63
+ throw new TypeError(result.error.message);
64
+ snapshot.value = result.value;
65
+ });
66
+ watch([() => props.items, () => props.selectionMode, () => props.disabledItems,
67
+ () => props.disabled, () => props.readonly, () => props.orientation, () => props.textValue, direction], rebuild);
68
+ const selectedIDs = computed(() => snapshot.value.state.selection.selected);
69
+ const highlightedValue = computed(() => snapshot.value.state.cursor.current);
70
+ const disabled = computed(() => props.disabled);
71
+ const readonly = computed(() => props.readonly);
72
+ const disabledItems = computed(() => new Set(props.disabledItems));
73
+ const slotProps = computed(() => Object.freeze({
74
+ value: fromIDs(selectedIDs.value, props.selectionMode),
75
+ highlightedValue: highlightedValue.value,
76
+ disabled: disabled.value,
77
+ readonly: readonly.value,
78
+ }));
79
+ const applyResult = (result, root) => {
80
+ if (!result.ok)
81
+ return false;
82
+ snapshot.value = result.snapshot;
83
+ applyEffects(result.commands, emit);
84
+ if (root !== undefined)
85
+ void nextTick(() => focusListboxItem(root, result.snapshot.state.cursor.current));
86
+ return true;
87
+ };
88
+ const select = (id, target) => {
89
+ const event = props.selectionMode === 'multiple'
90
+ ? { type: 'toggle', id }
91
+ : { type: 'activate', id };
92
+ applyResult(controller.value.handleEvent(event), target.closest('[role="listbox"]'));
93
+ };
94
+ const handleKeydown = (event) => {
95
+ const result = controller.value.handleKeyboardInput(event);
96
+ if (!applyResult(result, event.currentTarget))
97
+ return;
98
+ event.preventDefault();
99
+ };
100
+ provide(listboxRootContextKey, {
101
+ selectedIDs,
102
+ highlightedValue,
103
+ disabled,
104
+ readonly,
105
+ disabledItems,
106
+ select,
107
+ });
108
+ const rootAttributes = computed(() => getListboxRootAttributes({
109
+ selectionMode: props.selectionMode,
110
+ orientation: props.orientation,
111
+ direction: direction.value,
112
+ disabled: props.disabled,
113
+ readOnly: props.readonly,
114
+ }));
115
+ return () => {
116
+ const root = h(Primitive, mergeProps(attrs, rootAttributes.value, {
117
+ as: props.as, asChild: props.asChild, onKeydown: handleKeydown,
118
+ elementRef: (element) => { rootElement.value = element; },
119
+ }, participation.controlProps.value), { default: () => slots['default']?.(slotProps.value) });
120
+ if (!participation.participating && props.name === undefined && props.form === undefined && !props.required)
121
+ return root;
122
+ return [root, h('select', {
123
+ ref: submissionElement,
124
+ name: props.name,
125
+ form: props.form,
126
+ required: props.required,
127
+ multiple: props.selectionMode === 'multiple',
128
+ tabindex: -1,
129
+ 'aria-hidden': 'true',
130
+ style: visuallyHiddenInputStyle,
131
+ }, props.items.map((id) => h('option', {
132
+ value: id,
133
+ selected: selectedIDs.value.includes(id),
134
+ }, id)))];
135
+ };
136
+ },
137
+ });
138
+ export const ListboxItem = defineComponent({
139
+ name: 'SectileListboxItem',
140
+ inheritAttrs: false,
141
+ props: {
142
+ value: { type: String, required: true },
143
+ disabled: { type: Boolean, default: false },
144
+ as: { type: [String, Object, Function], default: 'div' },
145
+ asChild: { type: Boolean, default: false },
146
+ },
147
+ slots: Object,
148
+ setup(props, { attrs, slots }) {
149
+ const root = useListboxRootContext('ListboxItem');
150
+ const slotProps = computed(() => Object.freeze({
151
+ value: props.value,
152
+ selected: root.selectedIDs.value.includes(props.value),
153
+ highlighted: root.highlightedValue.value === props.value,
154
+ disabled: root.disabled.value || props.disabled || root.disabledItems.value.has(props.value),
155
+ }));
156
+ provide(listboxItemContextKey, { slotProps });
157
+ const attributes = computed(() => getListboxItemAttributes({
158
+ cursor: { current: root.highlightedValue.value },
159
+ selection: { has: (id) => root.selectedIDs.value.includes(id) },
160
+ }, { id: props.value, disabled: props.disabled }, { disabled: slotProps.value.disabled }));
161
+ const handleClick = (event) => {
162
+ if (!event.defaultPrevented && !slotProps.value.disabled) {
163
+ root.select(props.value, event.currentTarget);
164
+ }
165
+ };
166
+ return () => h(Primitive, mergeProps(attrs, attributes.value, { as: props.as, asChild: props.asChild, onClick: handleClick }), { default: () => slots['default']?.(slotProps.value) });
167
+ },
168
+ });
169
+ export const ListboxItemText = defineComponent({
170
+ name: 'SectileListboxItemText',
171
+ inheritAttrs: false,
172
+ props: listboxPartProps,
173
+ slots: Object,
174
+ setup(props, { attrs, slots }) {
175
+ const item = useListboxItemContext('ListboxItemText');
176
+ return () => h(Primitive, mergeProps(attrs, {
177
+ as: props.as,
178
+ asChild: props.asChild,
179
+ 'data-scope': 'listbox',
180
+ 'data-part': 'item-text',
181
+ 'data-state': item.slotProps.value.selected ? 'checked' : 'unchecked',
182
+ }), { default: () => slots['default']?.(item.slotProps.value) });
183
+ },
184
+ });
185
+ export const ListboxItemIndicator = defineComponent({
186
+ name: 'SectileListboxItemIndicator',
187
+ inheritAttrs: false,
188
+ props: listboxPartProps,
189
+ slots: Object,
190
+ setup(props, { attrs, slots }) {
191
+ const item = useListboxItemContext('ListboxItemIndicator');
192
+ return () => h(Primitive, mergeProps(attrs, {
193
+ as: props.as,
194
+ asChild: props.asChild,
195
+ hidden: !item.slotProps.value.selected,
196
+ 'aria-hidden': 'true',
197
+ 'data-scope': 'listbox',
198
+ 'data-part': 'item-indicator',
199
+ 'data-state': item.slotProps.value.selected ? 'checked' : 'unchecked',
200
+ }), { default: () => slots['default']?.(item.slotProps.value) });
201
+ },
202
+ });
203
+ function useListboxRootContext(part) {
204
+ const context = inject(listboxRootContextKey);
205
+ if (context === undefined)
206
+ throw new TypeError(`${part} must be used inside ListboxRoot.`);
207
+ return context;
208
+ }
209
+ function useListboxItemContext(part) {
210
+ const context = inject(listboxItemContextKey);
211
+ if (context === undefined)
212
+ throw new TypeError(`${part} must be used inside ListboxItem.`);
213
+ return context;
214
+ }
215
+ function createController(controlled, value, props, emit) {
216
+ const result = createListboxControllerFromItems({
217
+ items: props.items,
218
+ selectionMode: props.selectionMode,
219
+ disabledItems: props.disabledItems,
220
+ disabled: props.disabled,
221
+ readOnly: props.readonly,
222
+ orientation: props.orientation,
223
+ direction: props.direction,
224
+ typeahead: { textValue: props.textValue ?? ((id) => id) },
225
+ ...(controlled ? { value } : { defaultValue: value }),
226
+ defaultHighlightedValue: value[0] ?? props.items.find((id) => !props.disabledItems.includes(id)) ?? null,
227
+ onValueChange: (change) => emit('update:modelValue', fromIDs(change.value, props.selectionMode)),
228
+ onHighlightedValueChange: (change) => emit('highlight', change.value),
229
+ });
230
+ if (!result.ok)
231
+ throw new TypeError(result.error.message);
232
+ return result.value;
233
+ }
234
+ function applyEffects(effects, emit) {
235
+ for (const effect of effects) {
236
+ if (effect.type === 'dispatch-activation')
237
+ emit('activate', effect.id);
238
+ }
239
+ }
240
+ function toIDs(value, mode) {
241
+ if (value === undefined || value === '')
242
+ return [];
243
+ if (Array.isArray(value))
244
+ return mode === 'single' ? value.slice(0, 1) : value;
245
+ return [value];
246
+ }
247
+ function fromIDs(value, mode) {
248
+ return mode === 'single' ? value[0] ?? '' : value;
249
+ }
250
+ function focusListboxItem(root, id) {
251
+ if (id === null)
252
+ return;
253
+ for (const item of root.querySelectorAll('[data-listbox-id]')) {
254
+ if (item.dataset['listboxId'] === id)
255
+ item.focus();
256
+ }
257
+ }
258
+ //# sourceMappingURL=listbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listbox.js","sourceRoot":"","sources":["../src/listbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { MenuButtonContent, MenuButtonRoot, MenuButtonTrigger, MenuItem, MenuSeparator, MenuSubContent, type MenuButtonRootProps, type MenuItemProps, type MenuItemSlotProps, type MenuPartProps, type MenuRootSlotProps, type MenuSubContentProps, } from './menu.js';
2
+ //# sourceMappingURL=menu-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-button.d.ts","sourceRoot":"","sources":["../src/menu-button.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MenuButtonContent, MenuButtonRoot, MenuButtonTrigger, MenuItem, MenuSeparator, MenuSubContent, } from './menu.js';
2
+ //# sourceMappingURL=menu-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-button.js","sourceRoot":"","sources":["../src/menu-button.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,cAAc,GAOf,MAAM,WAAW,CAAC"}