@sprawlify/vue 0.0.65 → 0.0.67

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 (68) hide show
  1. package/dist/clean-props-BDv2zb5M.js +9 -0
  2. package/dist/collapsible-DQfAISmg.js +259 -0
  3. package/dist/collection-Ba0Aeh5P.js +218 -0
  4. package/dist/components/accordion/index.d.ts +195 -0
  5. package/dist/components/accordion/index.js +361 -0
  6. package/dist/components/angle-slider/index.d.ts +230 -0
  7. package/dist/components/angle-slider/index.js +371 -0
  8. package/dist/components/avatar/index.d.ts +116 -0
  9. package/dist/components/avatar/index.js +177 -0
  10. package/dist/components/bottom-sheet/index.d.ts +241 -0
  11. package/dist/components/bottom-sheet/index.js +429 -0
  12. package/dist/components/carousel/index.d.ts +306 -0
  13. package/dist/components/carousel/index.js +500 -0
  14. package/dist/components/checkbox/index.d.ts +273 -0
  15. package/dist/components/checkbox/index.js +500 -0
  16. package/dist/components/client-only/index.d.ts +20 -0
  17. package/dist/components/client-only/index.js +22 -0
  18. package/dist/components/clipboard/index.d.ts +204 -0
  19. package/dist/components/clipboard/index.js +297 -0
  20. package/dist/components/collapsible/index.d.ts +15 -23
  21. package/dist/components/collapsible/index.js +5 -325
  22. package/dist/components/collection/index.d.ts +2 -0
  23. package/dist/components/collection/index.js +4 -0
  24. package/dist/components/color-picker/index.d.ts +610 -0
  25. package/dist/components/color-picker/index.js +1127 -0
  26. package/dist/components/combobox/index.d.ts +618 -0
  27. package/dist/components/combobox/index.js +802 -0
  28. package/dist/components/date-picker/index.d.ts +597 -0
  29. package/dist/components/date-picker/index.js +1110 -0
  30. package/dist/components/dialog/index.d.ts +270 -0
  31. package/dist/components/dialog/index.js +433 -0
  32. package/dist/components/download-trigger/index.d.ts +29 -0
  33. package/dist/components/download-trigger/index.js +68 -0
  34. package/dist/components/editable/index.d.ts +288 -0
  35. package/dist/components/editable/index.js +459 -0
  36. package/dist/components/field/index.d.ts +326 -0
  37. package/dist/components/field/index.js +7 -0
  38. package/dist/components/fieldset/index.d.ts +161 -0
  39. package/dist/components/fieldset/index.js +7 -0
  40. package/dist/components/highlight/index.d.ts +35 -0
  41. package/dist/components/highlight/index.js +57 -0
  42. package/dist/components/menu/index.d.ts +498 -0
  43. package/dist/components/menu/index.js +885 -0
  44. package/dist/components/presence/index.d.ts +3 -0
  45. package/dist/components/presence/index.js +6 -0
  46. package/dist/components/select/index.d.ts +430 -0
  47. package/dist/components/select/index.js +769 -0
  48. package/dist/{use-forward-expose-BIk4OI3R.js → core-DNndr38p.js} +2 -170
  49. package/dist/create-split-props-YZ3qgXe_.js +11 -0
  50. package/dist/factory-BH3WrWd2.js +68 -0
  51. package/dist/factory-D_ge_w76.d.ts +8 -0
  52. package/dist/field-DnHnX3Tf.js +501 -0
  53. package/dist/fieldset-DzhN7Zrg.js +278 -0
  54. package/dist/{types-BQfkZGpL.d.ts → index-B66Om_3U.d.ts} +1 -9
  55. package/dist/index-BBHms9-0.d.ts +91 -0
  56. package/dist/index-CDQghZtv.d.ts +57 -0
  57. package/dist/index-DqRk-Yea.d.ts +199 -0
  58. package/dist/index.d.ts +4 -92
  59. package/dist/index.js +4 -50
  60. package/dist/presence-CvUnYMZQ.js +105 -0
  61. package/dist/presence-types-Bv1E60Cw.d.ts +13 -0
  62. package/dist/providers-B2CNPFg1.js +108 -0
  63. package/dist/types-Bj-dS2Hc.d.ts +9 -0
  64. package/dist/use-forward-expose-4p5AGAI3.js +67 -0
  65. package/dist/use-render-strategy-BkxoN6ll.js +7 -0
  66. package/dist/use-render-strategy-CHj_pCfT.d.ts +9 -0
  67. package/dist/utils-B4FuOOE-.js +51 -0
  68. package/package.json +86 -2
@@ -0,0 +1,885 @@
1
+ import { t as __exportAll } from "../../chunk-BN_g-Awi.js";
2
+ import { n as useMachine, r as normalizeProps$1, t as mergeProps$1 } from "../../core-DNndr38p.js";
3
+ import { a as useLocaleContext, c as useEnvironmentContext, i as DEFAULT_LOCALE, s as DEFAULT_ENVIRONMENT } from "../../providers-B2CNPFg1.js";
4
+ import { r as createContext, t as useForwardExpose } from "../../use-forward-expose-4p5AGAI3.js";
5
+ import { t as sprawlify } from "../../factory-BH3WrWd2.js";
6
+ import { t as cleanProps } from "../../clean-props-BDv2zb5M.js";
7
+ import { t as RenderStrategyPropsProvider } from "../../use-render-strategy-BkxoN6ll.js";
8
+ import { i as usePresence, n as PresenceProvider, r as usePresenceContext } from "../../presence-CvUnYMZQ.js";
9
+ import { computed, createBlock, createCommentVNode, defineComponent, guardReactiveProps, mergeDefaults, mergeProps, normalizeProps, onBeforeUnmount, onMounted, openBlock, renderSlot, toValue, unref, useId, withCtx } from "vue";
10
+ import * as menu from "@sprawlify/primitives/machines/menu";
11
+ import { anatomy as menuAnatomy } from "@sprawlify/primitives/machines/menu";
12
+
13
+ //#region src/components/menu/use-menu-context.ts
14
+ const [MenuProvider, useMenuContext] = createContext("MenuContext");
15
+
16
+ //#endregion
17
+ //#region src/components/menu/menu-arrow-tip.vue?vue&type=script&setup=true&lang.ts
18
+ var menu_arrow_tip_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
19
+ __name: "menu-arrow-tip",
20
+ props: { asChild: {
21
+ type: Boolean,
22
+ required: false
23
+ } },
24
+ setup(__props) {
25
+ const menu = useMenuContext();
26
+ useForwardExpose();
27
+ return (_ctx, _cache) => {
28
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getArrowTipProps(), { "as-child": __props.asChild }), {
29
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
30
+ _: 3
31
+ }, 16, ["as-child"]);
32
+ };
33
+ }
34
+ });
35
+
36
+ //#endregion
37
+ //#region src/components/menu/menu-arrow-tip.vue
38
+ var menu_arrow_tip_default = menu_arrow_tip_vue_vue_type_script_setup_true_lang_default;
39
+
40
+ //#endregion
41
+ //#region src/components/menu/menu-arrow.vue?vue&type=script&setup=true&lang.ts
42
+ var menu_arrow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
43
+ __name: "menu-arrow",
44
+ props: { asChild: {
45
+ type: Boolean,
46
+ required: false
47
+ } },
48
+ setup(__props) {
49
+ const menu = useMenuContext();
50
+ useForwardExpose();
51
+ return (_ctx, _cache) => {
52
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getArrowProps(), { "as-child": __props.asChild }), {
53
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
54
+ _: 3
55
+ }, 16, ["as-child"]);
56
+ };
57
+ }
58
+ });
59
+
60
+ //#endregion
61
+ //#region src/components/menu/menu-arrow.vue
62
+ var menu_arrow_default = menu_arrow_vue_vue_type_script_setup_true_lang_default;
63
+
64
+ //#endregion
65
+ //#region src/components/menu/use-menu-item-context.ts
66
+ const [MenuItemProvider, useMenuItemContext] = createContext("MenuItemContext");
67
+
68
+ //#endregion
69
+ //#region src/components/menu/use-menu-option-item-props-context.ts
70
+ const [MenuItemPropsProvider, useMenuItemPropsContext] = createContext("MenuItemPropsContext");
71
+
72
+ //#endregion
73
+ //#region src/components/menu/menu-checkbox-item.vue?vue&type=script&setup=true&lang.ts
74
+ var menu_checkbox_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
75
+ __name: "menu-checkbox-item",
76
+ props: /* @__PURE__ */ mergeDefaults({
77
+ checked: {
78
+ type: Boolean,
79
+ required: true
80
+ },
81
+ value: {
82
+ type: String,
83
+ required: true
84
+ },
85
+ disabled: {
86
+ type: Boolean,
87
+ required: false,
88
+ skipCheck: true
89
+ },
90
+ valueText: {
91
+ type: null,
92
+ required: false
93
+ },
94
+ closeOnSelect: {
95
+ type: Boolean,
96
+ required: false,
97
+ skipCheck: true
98
+ },
99
+ asChild: {
100
+ type: Boolean,
101
+ required: false
102
+ }
103
+ }, {
104
+ checked: void 0,
105
+ disabled: void 0,
106
+ closeOnSelect: void 0
107
+ }),
108
+ emits: ["update:checked"],
109
+ setup(__props, { emit: __emit }) {
110
+ const props = __props;
111
+ const emits = __emit;
112
+ const menu = useMenuContext();
113
+ const optionItemProps = computed(() => ({
114
+ ...props,
115
+ type: "checkbox",
116
+ onCheckedChange: (e) => emits("update:checked", e)
117
+ }));
118
+ MenuItemProvider(computed(() => menu.value.getOptionItemState(optionItemProps.value)));
119
+ MenuItemPropsProvider(optionItemProps);
120
+ useForwardExpose();
121
+ return (_ctx, _cache) => {
122
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getOptionItemProps(optionItemProps.value), { "as-child": __props.asChild }), {
123
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
124
+ _: 3
125
+ }, 16, ["as-child"]);
126
+ };
127
+ }
128
+ });
129
+
130
+ //#endregion
131
+ //#region src/components/menu/menu-checkbox-item.vue
132
+ var menu_checkbox_item_default = menu_checkbox_item_vue_vue_type_script_setup_true_lang_default;
133
+
134
+ //#endregion
135
+ //#region src/components/menu/menu-content.vue?vue&type=script&setup=true&lang.ts
136
+ var menu_content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
137
+ __name: "menu-content",
138
+ props: { asChild: {
139
+ type: Boolean,
140
+ required: false
141
+ } },
142
+ setup(__props) {
143
+ const menu = useMenuContext();
144
+ const presence = usePresenceContext();
145
+ const mergedProps = computed(() => mergeProps$1(menu.value.getContentProps(), presence.value.presenceProps));
146
+ useForwardExpose();
147
+ return (_ctx, _cache) => {
148
+ return !unref(presence).unmounted ? (openBlock(), createBlock(unref(sprawlify).div, mergeProps({ key: 0 }, mergedProps.value, { "as-child": __props.asChild }), {
149
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
150
+ _: 3
151
+ }, 16, ["as-child"])) : createCommentVNode("v-if", true);
152
+ };
153
+ }
154
+ });
155
+
156
+ //#endregion
157
+ //#region src/components/menu/menu-content.vue
158
+ var menu_content_default = menu_content_vue_vue_type_script_setup_true_lang_default;
159
+
160
+ //#endregion
161
+ //#region src/components/menu/menu-context-trigger.vue?vue&type=script&setup=true&lang.ts
162
+ var menu_context_trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
163
+ __name: "menu-context-trigger",
164
+ props: { asChild: {
165
+ type: Boolean,
166
+ required: false
167
+ } },
168
+ setup(__props) {
169
+ const menu = useMenuContext();
170
+ useForwardExpose();
171
+ return (_ctx, _cache) => {
172
+ return openBlock(), createBlock(unref(sprawlify).button, mergeProps(unref(menu).getContextTriggerProps(), { "as-child": __props.asChild }), {
173
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
174
+ _: 3
175
+ }, 16, ["as-child"]);
176
+ };
177
+ }
178
+ });
179
+
180
+ //#endregion
181
+ //#region src/components/menu/menu-context-trigger.vue
182
+ var menu_context_trigger_default = menu_context_trigger_vue_vue_type_script_setup_true_lang_default;
183
+
184
+ //#endregion
185
+ //#region src/components/menu/menu-context.vue?vue&type=script&setup=true&lang.ts
186
+ var menu_context_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
187
+ __name: "menu-context",
188
+ setup(__props) {
189
+ const menu = useMenuContext();
190
+ return (_ctx, _cache) => {
191
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(menu))));
192
+ };
193
+ }
194
+ });
195
+
196
+ //#endregion
197
+ //#region src/components/menu/menu-context.vue
198
+ var menu_context_default = menu_context_vue_vue_type_script_setup_true_lang_default;
199
+
200
+ //#endregion
201
+ //#region src/components/menu/menu-indicator.vue?vue&type=script&setup=true&lang.ts
202
+ var menu_indicator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
203
+ __name: "menu-indicator",
204
+ props: { asChild: {
205
+ type: Boolean,
206
+ required: false
207
+ } },
208
+ setup(__props) {
209
+ const menu = useMenuContext();
210
+ useForwardExpose();
211
+ return (_ctx, _cache) => {
212
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getIndicatorProps(), { "as-child": __props.asChild }), {
213
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
214
+ _: 3
215
+ }, 16, ["as-child"]);
216
+ };
217
+ }
218
+ });
219
+
220
+ //#endregion
221
+ //#region src/components/menu/menu-indicator.vue
222
+ var menu_indicator_default = menu_indicator_vue_vue_type_script_setup_true_lang_default;
223
+
224
+ //#endregion
225
+ //#region src/components/menu/menu-item-context.vue?vue&type=script&setup=true&lang.ts
226
+ var menu_item_context_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
227
+ __name: "menu-item-context",
228
+ setup(__props) {
229
+ const item = useMenuItemContext();
230
+ return (_ctx, _cache) => {
231
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(item))));
232
+ };
233
+ }
234
+ });
235
+
236
+ //#endregion
237
+ //#region src/components/menu/menu-item-context.vue
238
+ var menu_item_context_default = menu_item_context_vue_vue_type_script_setup_true_lang_default;
239
+
240
+ //#endregion
241
+ //#region src/components/menu/use-menu-item-group-context.ts
242
+ const [MenuItemGroupProvider, useMenuItemGroupContext] = createContext("MenuItemGroupContext");
243
+
244
+ //#endregion
245
+ //#region src/components/menu/menu-item-group-label.vue?vue&type=script&setup=true&lang.ts
246
+ var menu_item_group_label_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
247
+ __name: "menu-item-group-label",
248
+ props: { asChild: {
249
+ type: Boolean,
250
+ required: false
251
+ } },
252
+ setup(__props) {
253
+ const menu = useMenuContext();
254
+ const itemGroup = useMenuItemGroupContext();
255
+ useForwardExpose();
256
+ return (_ctx, _cache) => {
257
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getItemGroupLabelProps({ htmlFor: unref(itemGroup).id }), { "as-child": __props.asChild }), {
258
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
259
+ _: 3
260
+ }, 16, ["as-child"]);
261
+ };
262
+ }
263
+ });
264
+
265
+ //#endregion
266
+ //#region src/components/menu/menu-item-group-label.vue
267
+ var menu_item_group_label_default = menu_item_group_label_vue_vue_type_script_setup_true_lang_default;
268
+
269
+ //#endregion
270
+ //#region src/components/menu/menu-item-group.vue?vue&type=script&setup=true&lang.ts
271
+ var menu_item_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
272
+ __name: "menu-item-group",
273
+ props: {
274
+ id: {
275
+ type: String,
276
+ required: false
277
+ },
278
+ asChild: {
279
+ type: Boolean,
280
+ required: false
281
+ }
282
+ },
283
+ setup(__props) {
284
+ const props = __props;
285
+ const menu = useMenuContext();
286
+ const uid = useId();
287
+ const id = props.id ?? uid;
288
+ const itemGroupProps = computed(() => ({ id }));
289
+ MenuItemGroupProvider(itemGroupProps);
290
+ useForwardExpose();
291
+ return (_ctx, _cache) => {
292
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getItemGroupProps(itemGroupProps.value), { "as-child": __props.asChild }), {
293
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
294
+ _: 3
295
+ }, 16, ["as-child"]);
296
+ };
297
+ }
298
+ });
299
+
300
+ //#endregion
301
+ //#region src/components/menu/menu-item-group.vue
302
+ var menu_item_group_default = menu_item_group_vue_vue_type_script_setup_true_lang_default;
303
+
304
+ //#endregion
305
+ //#region src/components/menu/menu-item-indicator.vue?vue&type=script&setup=true&lang.ts
306
+ var menu_item_indicator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
307
+ __name: "menu-item-indicator",
308
+ props: { asChild: {
309
+ type: Boolean,
310
+ required: false
311
+ } },
312
+ setup(__props) {
313
+ const menu = useMenuContext();
314
+ const itemProps = useMenuItemPropsContext();
315
+ useForwardExpose();
316
+ return (_ctx, _cache) => {
317
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getItemIndicatorProps(unref(itemProps)), { "as-child": __props.asChild }), {
318
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
319
+ _: 3
320
+ }, 16, ["as-child"]);
321
+ };
322
+ }
323
+ });
324
+
325
+ //#endregion
326
+ //#region src/components/menu/menu-item-indicator.vue
327
+ var menu_item_indicator_default = menu_item_indicator_vue_vue_type_script_setup_true_lang_default;
328
+
329
+ //#endregion
330
+ //#region src/components/menu/menu-item-text.vue?vue&type=script&setup=true&lang.ts
331
+ var menu_item_text_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
332
+ __name: "menu-item-text",
333
+ props: { asChild: {
334
+ type: Boolean,
335
+ required: false
336
+ } },
337
+ setup(__props) {
338
+ const menu = useMenuContext();
339
+ const itemProps = useMenuItemPropsContext();
340
+ useForwardExpose();
341
+ return (_ctx, _cache) => {
342
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getItemTextProps(unref(itemProps)), { "as-child": __props.asChild }), {
343
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
344
+ _: 3
345
+ }, 16, ["as-child"]);
346
+ };
347
+ }
348
+ });
349
+
350
+ //#endregion
351
+ //#region src/components/menu/menu-item-text.vue
352
+ var menu_item_text_default = menu_item_text_vue_vue_type_script_setup_true_lang_default;
353
+
354
+ //#endregion
355
+ //#region src/components/menu/menu-item.vue?vue&type=script&setup=true&lang.ts
356
+ var menu_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
357
+ __name: "menu-item",
358
+ props: /* @__PURE__ */ mergeDefaults({
359
+ value: {
360
+ type: String,
361
+ required: true
362
+ },
363
+ disabled: {
364
+ type: Boolean,
365
+ required: false,
366
+ skipCheck: true
367
+ },
368
+ valueText: {
369
+ type: null,
370
+ required: false
371
+ },
372
+ closeOnSelect: {
373
+ type: Boolean,
374
+ required: false,
375
+ skipCheck: true
376
+ },
377
+ asChild: {
378
+ type: Boolean,
379
+ required: false
380
+ }
381
+ }, {
382
+ disabled: void 0,
383
+ closeOnSelect: void 0
384
+ }),
385
+ emits: ["select"],
386
+ setup(__props, { emit: __emit }) {
387
+ const props = __props;
388
+ const emit = __emit;
389
+ const menu = useMenuContext();
390
+ const itemState = computed(() => menu.value.getItemState(props));
391
+ MenuItemPropsProvider(computed(() => props));
392
+ MenuItemProvider(itemState);
393
+ onMounted(() => {
394
+ const cleanup = menu.value.addItemListener({
395
+ id: itemState.value.id,
396
+ onSelect: () => emit("select")
397
+ });
398
+ onBeforeUnmount(() => cleanup?.());
399
+ });
400
+ useForwardExpose();
401
+ return (_ctx, _cache) => {
402
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getItemProps(props), { "as-child": __props.asChild }), {
403
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
404
+ _: 3
405
+ }, 16, ["as-child"]);
406
+ };
407
+ }
408
+ });
409
+
410
+ //#endregion
411
+ //#region src/components/menu/menu-item.vue
412
+ var menu_item_default = menu_item_vue_vue_type_script_setup_true_lang_default;
413
+
414
+ //#endregion
415
+ //#region src/components/menu/menu-positioner.vue?vue&type=script&setup=true&lang.ts
416
+ var menu_positioner_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
417
+ __name: "menu-positioner",
418
+ props: { asChild: {
419
+ type: Boolean,
420
+ required: false
421
+ } },
422
+ setup(__props) {
423
+ const menu = useMenuContext();
424
+ const presence = usePresenceContext();
425
+ useForwardExpose();
426
+ return (_ctx, _cache) => {
427
+ return !unref(presence).unmounted ? (openBlock(), createBlock(unref(sprawlify).div, mergeProps({ key: 0 }, unref(menu).getPositionerProps(), { "as-child": __props.asChild }), {
428
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
429
+ _: 3
430
+ }, 16, ["as-child"])) : createCommentVNode("v-if", true);
431
+ };
432
+ }
433
+ });
434
+
435
+ //#endregion
436
+ //#region src/components/menu/menu-positioner.vue
437
+ var menu_positioner_default = menu_positioner_vue_vue_type_script_setup_true_lang_default;
438
+
439
+ //#endregion
440
+ //#region src/components/menu/menu-radio-item-group.vue?vue&type=script&setup=true&lang.ts
441
+ var menu_radio_item_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
442
+ __name: "menu-radio-item-group",
443
+ props: {
444
+ id: {
445
+ type: String,
446
+ required: false
447
+ },
448
+ modelValue: {
449
+ type: String,
450
+ required: false
451
+ },
452
+ asChild: {
453
+ type: Boolean,
454
+ required: false
455
+ }
456
+ },
457
+ emits: ["update:modelValue"],
458
+ setup(__props, { emit: __emit }) {
459
+ const props = __props;
460
+ const emits = __emit;
461
+ const menu = useMenuContext();
462
+ const uid = useId();
463
+ const id = props.id ?? uid;
464
+ const itemGroupProps = computed(() => ({
465
+ id,
466
+ value: props.modelValue,
467
+ onValueChange: (e) => emits("update:modelValue", e.value)
468
+ }));
469
+ MenuItemGroupProvider(itemGroupProps);
470
+ useForwardExpose();
471
+ return (_ctx, _cache) => {
472
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getItemGroupProps(itemGroupProps.value), { "as-child": __props.asChild }), {
473
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
474
+ _: 3
475
+ }, 16, ["as-child"]);
476
+ };
477
+ }
478
+ });
479
+
480
+ //#endregion
481
+ //#region src/components/menu/menu-radio-item-group.vue
482
+ var menu_radio_item_group_default = menu_radio_item_group_vue_vue_type_script_setup_true_lang_default;
483
+
484
+ //#endregion
485
+ //#region src/components/menu/menu-radio-item.vue?vue&type=script&setup=true&lang.ts
486
+ var menu_radio_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
487
+ __name: "menu-radio-item",
488
+ props: /* @__PURE__ */ mergeDefaults({
489
+ value: {
490
+ type: String,
491
+ required: true
492
+ },
493
+ disabled: {
494
+ type: Boolean,
495
+ required: false,
496
+ skipCheck: true
497
+ },
498
+ valueText: {
499
+ type: null,
500
+ required: false
501
+ },
502
+ closeOnSelect: {
503
+ type: Boolean,
504
+ required: false,
505
+ skipCheck: true
506
+ },
507
+ asChild: {
508
+ type: Boolean,
509
+ required: false
510
+ }
511
+ }, {
512
+ disabled: void 0,
513
+ closeOnSelect: void 0
514
+ }),
515
+ setup(__props) {
516
+ const props = __props;
517
+ const menu = useMenuContext();
518
+ const itemGroup = useMenuItemGroupContext();
519
+ const optionItemProps = computed(() => ({
520
+ ...props,
521
+ checked: itemGroup.value.value === props.value,
522
+ type: "radio",
523
+ onCheckedChange: () => itemGroup.value.onValueChange?.({ value: props.value })
524
+ }));
525
+ MenuItemProvider(computed(() => menu.value.getOptionItemState(optionItemProps.value)));
526
+ MenuItemPropsProvider(optionItemProps);
527
+ useForwardExpose();
528
+ return (_ctx, _cache) => {
529
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(menu).getOptionItemProps(optionItemProps.value), { "as-child": __props.asChild }), {
530
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
531
+ _: 3
532
+ }, 16, ["as-child"]);
533
+ };
534
+ }
535
+ });
536
+
537
+ //#endregion
538
+ //#region src/components/menu/menu-radio-item.vue
539
+ var menu_radio_item_default = menu_radio_item_vue_vue_type_script_setup_true_lang_default;
540
+
541
+ //#endregion
542
+ //#region src/components/menu/use-menu-machine-context.ts
543
+ const [MenuMachineProvider, useMenuMachineContext] = createContext("MenuMachineContext");
544
+
545
+ //#endregion
546
+ //#region src/components/menu/use-menu-trigger-item-context.ts
547
+ const [MenuTriggerItemProvider, useMenuTriggerItemContext] = createContext("MenuTriggerItemContext");
548
+
549
+ //#endregion
550
+ //#region src/components/menu/menu-root-provider.vue?vue&type=script&setup=true&lang.ts
551
+ var menu_root_provider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
552
+ __name: "menu-root-provider",
553
+ props: {
554
+ value: {
555
+ type: Object,
556
+ required: true
557
+ },
558
+ lazyMount: {
559
+ type: Boolean,
560
+ required: false
561
+ },
562
+ unmountOnExit: {
563
+ type: Boolean,
564
+ required: false
565
+ },
566
+ asChild: {
567
+ type: Boolean,
568
+ required: false
569
+ }
570
+ },
571
+ emits: ["exitComplete"],
572
+ setup(__props, { emit: __emit }) {
573
+ const props = __props;
574
+ const emits = __emit;
575
+ const { value: { machine, api } } = props;
576
+ const presence = usePresence(computed(() => ({
577
+ present: api.value.open,
578
+ lazyMount: props.lazyMount,
579
+ unmountOnExit: props.unmountOnExit
580
+ })), emits);
581
+ const parentApi = useMenuContext();
582
+ const parentMachine = useMenuMachineContext();
583
+ onMounted(() => {
584
+ if (!parentMachine) return;
585
+ parentApi.value.setChild(machine);
586
+ api.value.setParent(parentMachine);
587
+ });
588
+ MenuTriggerItemProvider(computed(() => parentApi.value.getTriggerItemProps(api.value)));
589
+ MenuMachineProvider(machine);
590
+ MenuProvider(api);
591
+ PresenceProvider(presence);
592
+ RenderStrategyPropsProvider(computed(() => ({
593
+ lazyMount: props.lazyMount,
594
+ unmountOnExit: props.unmountOnExit
595
+ })));
596
+ useForwardExpose();
597
+ return (_ctx, _cache) => {
598
+ return renderSlot(_ctx.$slots, "default");
599
+ };
600
+ }
601
+ });
602
+
603
+ //#endregion
604
+ //#region src/components/menu/menu-root-provider.vue
605
+ var menu_root_provider_default = menu_root_provider_vue_vue_type_script_setup_true_lang_default;
606
+
607
+ //#endregion
608
+ //#region src/components/menu/use-menu.ts
609
+ const useMenu = (props = {}, emit) => {
610
+ const id = useId();
611
+ const env = useEnvironmentContext(DEFAULT_ENVIRONMENT);
612
+ const locale = useLocaleContext(DEFAULT_LOCALE);
613
+ const context = computed(() => {
614
+ const localeProps = toValue(props);
615
+ return {
616
+ id,
617
+ dir: locale.value.dir,
618
+ getRootNode: env?.value.getRootNode,
619
+ ...cleanProps(localeProps),
620
+ onOpenChange: (details) => {
621
+ emit?.("openChange", details);
622
+ emit?.("update:open", details.open);
623
+ localeProps.onOpenChange?.(details);
624
+ },
625
+ onEscapeKeyDown: (details) => {
626
+ emit?.("escapeKeyDown", details);
627
+ localeProps.onEscapeKeyDown?.(details);
628
+ },
629
+ onFocusOutside: (details) => {
630
+ emit?.("focusOutside", details);
631
+ localeProps.onFocusOutside?.(details);
632
+ },
633
+ onHighlightChange: (details) => {
634
+ emit?.("highlightChange", details);
635
+ emit?.("update:highlightedValue", details.highlightedValue);
636
+ localeProps.onHighlightChange?.(details);
637
+ },
638
+ onInteractOutside: (details) => {
639
+ emit?.("interactOutside", details);
640
+ localeProps.onInteractOutside?.(details);
641
+ },
642
+ onPointerDownOutside: (details) => {
643
+ emit?.("pointerDownOutside", details);
644
+ localeProps.onPointerDownOutside?.(details);
645
+ },
646
+ onSelect: (details) => {
647
+ emit?.("select", details);
648
+ localeProps.onSelect?.(details);
649
+ }
650
+ };
651
+ });
652
+ const machine = useMachine(menu.machine, context);
653
+ return {
654
+ api: computed(() => menu.connect(machine, normalizeProps$1)),
655
+ machine
656
+ };
657
+ };
658
+
659
+ //#endregion
660
+ //#region src/components/menu/menu-root.vue?vue&type=script&setup=true&lang.ts
661
+ var menu_root_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
662
+ __name: "menu-root",
663
+ props: /* @__PURE__ */ mergeDefaults({
664
+ anchorPoint: {
665
+ type: null,
666
+ required: false
667
+ },
668
+ "aria-label": {
669
+ type: String,
670
+ required: false
671
+ },
672
+ closeOnSelect: {
673
+ type: Boolean,
674
+ required: false
675
+ },
676
+ composite: {
677
+ type: Boolean,
678
+ required: false
679
+ },
680
+ defaultHighlightedValue: {
681
+ type: String,
682
+ required: false
683
+ },
684
+ defaultOpen: {
685
+ type: Boolean,
686
+ required: false
687
+ },
688
+ highlightedValue: {
689
+ type: String,
690
+ required: false
691
+ },
692
+ id: {
693
+ type: String,
694
+ required: false
695
+ },
696
+ ids: {
697
+ type: Object,
698
+ required: false
699
+ },
700
+ loopFocus: {
701
+ type: Boolean,
702
+ required: false
703
+ },
704
+ navigate: {
705
+ type: Function,
706
+ required: false
707
+ },
708
+ open: {
709
+ type: Boolean,
710
+ required: false
711
+ },
712
+ positioning: {
713
+ type: null,
714
+ required: false
715
+ },
716
+ typeahead: {
717
+ type: Boolean,
718
+ required: false
719
+ },
720
+ lazyMount: {
721
+ type: Boolean,
722
+ required: false
723
+ },
724
+ unmountOnExit: {
725
+ type: Boolean,
726
+ required: false
727
+ },
728
+ asChild: {
729
+ type: Boolean,
730
+ required: false
731
+ }
732
+ }, {
733
+ closeOnSelect: void 0,
734
+ composite: void 0,
735
+ defaultOpen: void 0,
736
+ loopFocus: void 0,
737
+ open: void 0,
738
+ typeahead: void 0
739
+ }),
740
+ emits: [
741
+ "escapeKeyDown",
742
+ "exitComplete",
743
+ "focusOutside",
744
+ "highlightChange",
745
+ "interactOutside",
746
+ "openChange",
747
+ "pointerDownOutside",
748
+ "requestDismiss",
749
+ "select",
750
+ "update:open",
751
+ "update:highlightedValue"
752
+ ],
753
+ setup(__props, { emit: __emit }) {
754
+ const props = __props;
755
+ const emits = __emit;
756
+ const { api, machine } = useMenu(props, emits);
757
+ const presence = usePresence(computed(() => ({
758
+ present: api.value.open,
759
+ lazyMount: props.lazyMount,
760
+ unmountOnExit: props.unmountOnExit
761
+ })), emits);
762
+ const parentApi = useMenuContext();
763
+ const parentMachine = useMenuMachineContext();
764
+ onMounted(() => {
765
+ if (!parentMachine) return;
766
+ parentApi.value.setChild(machine);
767
+ api.value.setParent(parentMachine);
768
+ });
769
+ MenuTriggerItemProvider(computed(() => parentApi.value.getTriggerItemProps(api.value)));
770
+ MenuMachineProvider(machine);
771
+ MenuProvider(api);
772
+ PresenceProvider(presence);
773
+ RenderStrategyPropsProvider(computed(() => ({
774
+ lazyMount: props.lazyMount,
775
+ unmountOnExit: props.unmountOnExit
776
+ })));
777
+ useForwardExpose();
778
+ return (_ctx, _cache) => {
779
+ return renderSlot(_ctx.$slots, "default");
780
+ };
781
+ }
782
+ });
783
+
784
+ //#endregion
785
+ //#region src/components/menu/menu-root.vue
786
+ var menu_root_default = menu_root_vue_vue_type_script_setup_true_lang_default;
787
+
788
+ //#endregion
789
+ //#region src/components/menu/menu-separator.vue?vue&type=script&setup=true&lang.ts
790
+ var menu_separator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
791
+ __name: "menu-separator",
792
+ props: { asChild: {
793
+ type: Boolean,
794
+ required: false
795
+ } },
796
+ setup(__props) {
797
+ const menu = useMenuContext();
798
+ useForwardExpose();
799
+ return (_ctx, _cache) => {
800
+ return openBlock(), createBlock(unref(sprawlify).hr, mergeProps(unref(menu).getSeparatorProps(), { "as-child": __props.asChild }), null, 16, ["as-child"]);
801
+ };
802
+ }
803
+ });
804
+
805
+ //#endregion
806
+ //#region src/components/menu/menu-separator.vue
807
+ var menu_separator_default = menu_separator_vue_vue_type_script_setup_true_lang_default;
808
+
809
+ //#endregion
810
+ //#region src/components/menu/menu-trigger-item.vue?vue&type=script&setup=true&lang.ts
811
+ var menu_trigger_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
812
+ __name: "menu-trigger-item",
813
+ props: { asChild: {
814
+ type: Boolean,
815
+ required: false
816
+ } },
817
+ setup(__props) {
818
+ const triggerItemProps = useMenuTriggerItemContext();
819
+ MenuItemPropsProvider(computed(() => ({ value: triggerItemProps.value?.["data-value"] })));
820
+ useForwardExpose();
821
+ return (_ctx, _cache) => {
822
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(triggerItemProps), { "as-child": __props.asChild }), {
823
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
824
+ _: 3
825
+ }, 16, ["as-child"]);
826
+ };
827
+ }
828
+ });
829
+
830
+ //#endregion
831
+ //#region src/components/menu/menu-trigger-item.vue
832
+ var menu_trigger_item_default = menu_trigger_item_vue_vue_type_script_setup_true_lang_default;
833
+
834
+ //#endregion
835
+ //#region src/components/menu/menu-trigger.vue?vue&type=script&setup=true&lang.ts
836
+ var menu_trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
837
+ __name: "menu-trigger",
838
+ props: { asChild: {
839
+ type: Boolean,
840
+ required: false
841
+ } },
842
+ setup(__props) {
843
+ const menu = useMenuContext();
844
+ useForwardExpose();
845
+ return (_ctx, _cache) => {
846
+ return openBlock(), createBlock(unref(sprawlify).button, mergeProps(unref(menu).getTriggerProps(), { "as-child": __props.asChild }), {
847
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
848
+ _: 3
849
+ }, 16, ["as-child"]);
850
+ };
851
+ }
852
+ });
853
+
854
+ //#endregion
855
+ //#region src/components/menu/menu-trigger.vue
856
+ var menu_trigger_default = menu_trigger_vue_vue_type_script_setup_true_lang_default;
857
+
858
+ //#endregion
859
+ //#region src/components/menu/menu.ts
860
+ var menu_exports = /* @__PURE__ */ __exportAll({
861
+ Arrow: () => menu_arrow_default,
862
+ ArrowTip: () => menu_arrow_tip_default,
863
+ CheckboxItem: () => menu_checkbox_item_default,
864
+ Content: () => menu_content_default,
865
+ Context: () => menu_context_default,
866
+ ContextTrigger: () => menu_context_trigger_default,
867
+ Indicator: () => menu_indicator_default,
868
+ Item: () => menu_item_default,
869
+ ItemContext: () => menu_item_context_default,
870
+ ItemGroup: () => menu_item_group_default,
871
+ ItemGroupLabel: () => menu_item_group_label_default,
872
+ ItemIndicator: () => menu_item_indicator_default,
873
+ ItemText: () => menu_item_text_default,
874
+ Positioner: () => menu_positioner_default,
875
+ RadioItem: () => menu_radio_item_default,
876
+ RadioItemGroup: () => menu_radio_item_group_default,
877
+ Root: () => menu_root_default,
878
+ RootProvider: () => menu_root_provider_default,
879
+ Separator: () => menu_separator_default,
880
+ Trigger: () => menu_trigger_default,
881
+ TriggerItem: () => menu_trigger_item_default
882
+ });
883
+
884
+ //#endregion
885
+ export { menu_exports as Menu, menu_arrow_default as MenuArrow, menu_arrow_tip_default as MenuArrowTip, menu_checkbox_item_default as MenuCheckboxItem, menu_content_default as MenuContent, menu_context_default as MenuContext, menu_context_trigger_default as MenuContextTrigger, menu_indicator_default as MenuIndicator, menu_item_default as MenuItem, menu_item_context_default as MenuItemContext, menu_item_group_default as MenuItemGroup, menu_item_group_label_default as MenuItemGroupLabel, menu_item_indicator_default as MenuItemIndicator, menu_item_text_default as MenuItemText, menu_positioner_default as MenuPositioner, menu_radio_item_default as MenuRadioItem, menu_radio_item_group_default as MenuRadioItemGroup, menu_root_default as MenuRoot, menu_root_provider_default as MenuRootProvider, menu_separator_default as MenuSeparator, menu_trigger_default as MenuTrigger, menu_trigger_item_default as MenuTriggerItem, menuAnatomy, useMenu, useMenuContext, useMenuItemContext };