@sprawlify/vue 0.0.66 → 0.0.70

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 (101) hide show
  1. package/dist/{collapsible-BBV8R9Wm.js → collapsible-D1Mx4C0H.js} +4 -3
  2. package/dist/components/accordion/index.d.ts +18 -18
  3. package/dist/components/accordion/index.js +7 -6
  4. package/dist/components/angle-slider/index.d.ts +17 -17
  5. package/dist/components/angle-slider/index.js +4 -3
  6. package/dist/components/avatar/index.d.ts +11 -11
  7. package/dist/components/avatar/index.js +4 -3
  8. package/dist/components/bottom-sheet/index.d.ts +19 -19
  9. package/dist/components/bottom-sheet/index.js +7 -6
  10. package/dist/components/carousel/index.d.ts +25 -25
  11. package/dist/components/carousel/index.js +4 -3
  12. package/dist/components/checkbox/index.d.ts +24 -24
  13. package/dist/components/checkbox/index.js +6 -5
  14. package/dist/components/client-only/index.d.ts +2 -2
  15. package/dist/components/clipboard/index.d.ts +17 -17
  16. package/dist/components/clipboard/index.js +4 -3
  17. package/dist/components/collapsible/index.d.ts +16 -16
  18. package/dist/components/collapsible/index.js +5 -4
  19. package/dist/components/collection/index.d.ts +1 -1
  20. package/dist/components/collection/index.js +1 -1
  21. package/dist/components/color-picker/index.d.ts +610 -0
  22. package/dist/components/color-picker/index.js +1128 -0
  23. package/dist/components/combobox/index.d.ts +618 -0
  24. package/dist/components/combobox/index.js +803 -0
  25. package/dist/components/date-picker/index.d.ts +597 -0
  26. package/dist/components/date-picker/index.js +1111 -0
  27. package/dist/components/dialog/index.d.ts +270 -0
  28. package/dist/components/dialog/index.js +434 -0
  29. package/dist/components/download-trigger/index.d.ts +29 -0
  30. package/dist/components/download-trigger/index.js +69 -0
  31. package/dist/components/editable/index.d.ts +288 -0
  32. package/dist/components/editable/index.js +460 -0
  33. package/dist/components/field/index.d.ts +26 -26
  34. package/dist/components/field/index.js +5 -4
  35. package/dist/components/fieldset/index.d.ts +13 -13
  36. package/dist/components/fieldset/index.js +5 -4
  37. package/dist/components/file-upload/index.d.ts +329 -0
  38. package/dist/components/file-upload/index.js +597 -0
  39. package/dist/components/floating-panel/index.d.ts +326 -0
  40. package/dist/components/floating-panel/index.js +568 -0
  41. package/dist/components/focus-trap/index.d.ts +48 -0
  42. package/dist/components/focus-trap/index.js +96 -0
  43. package/dist/components/format/index.d.ts +40 -0
  44. package/dist/components/format/index.js +148 -0
  45. package/dist/components/frame/index.d.ts +39 -0
  46. package/dist/components/frame/index.js +111 -0
  47. package/dist/components/highlight/index.d.ts +35 -0
  48. package/dist/components/highlight/index.js +57 -0
  49. package/dist/components/hover-card/index.d.ts +200 -0
  50. package/dist/components/hover-card/index.js +335 -0
  51. package/dist/components/image-cropper/index.d.ts +211 -0
  52. package/dist/components/image-cropper/index.js +381 -0
  53. package/dist/components/json-tree-view/index.d.ts +91 -0
  54. package/dist/components/json-tree-view/index.js +490 -0
  55. package/dist/components/listbox/index.d.ts +325 -0
  56. package/dist/components/listbox/index.js +533 -0
  57. package/dist/components/marquee/index.d.ts +268 -0
  58. package/dist/components/marquee/index.js +340 -0
  59. package/dist/components/menu/index.d.ts +498 -0
  60. package/dist/components/menu/index.js +886 -0
  61. package/dist/components/navigation-menu/index.d.ts +272 -0
  62. package/dist/components/navigation-menu/index.js +559 -0
  63. package/dist/components/number-input/index.d.ts +253 -0
  64. package/dist/components/number-input/index.js +427 -0
  65. package/dist/components/pagination/index.d.ts +211 -0
  66. package/dist/components/pagination/index.js +346 -0
  67. package/dist/components/password-input/index.d.ts +213 -0
  68. package/dist/components/password-input/index.js +325 -0
  69. package/dist/components/pin-input/index.d.ts +198 -0
  70. package/dist/components/pin-input/index.js +346 -0
  71. package/dist/components/popover/index.d.ts +318 -0
  72. package/dist/components/popover/index.js +486 -0
  73. package/dist/components/presence/index.d.ts +2 -2
  74. package/dist/components/presence/index.js +4 -3
  75. package/dist/components/select/index.d.ts +36 -35
  76. package/dist/components/select/index.js +8 -7
  77. package/dist/components/tree-view/index.d.ts +6 -0
  78. package/dist/components/tree-view/index.js +11 -0
  79. package/dist/create-context-Ds1GbsVc.js +16 -0
  80. package/dist/{field-DnHnX3Tf.js → field-CtPR24u6.js} +4 -3
  81. package/dist/{fieldset-DzhN7Zrg.js → fieldset-D5SznrKY.js} +4 -3
  82. package/dist/index-ByYmM8LZ.d.ts +447 -0
  83. package/dist/{index-rHf4D8np.d.ts → index-Cjk1WhUx.d.ts} +11 -11
  84. package/dist/index-D0_ID5xv.d.ts +91 -0
  85. package/dist/index.d.ts +4 -93
  86. package/dist/index.js +3 -2
  87. package/dist/{presence-CvUnYMZQ.js → presence-BK6rPXK7.js} +3 -2
  88. package/dist/{providers-B2CNPFg1.js → providers-DNBWT-O_.js} +1 -1
  89. package/dist/tree-view-CzfDgztL.js +737 -0
  90. package/dist/{use-forward-expose-4p5AGAI3.js → use-forward-expose-CCAmHTUB.js} +2 -15
  91. package/dist/{use-render-strategy-BkxoN6ll.js → use-render-strategy-DMa_QmB6.js} +1 -1
  92. package/package.json +102 -2
  93. /package/dist/{collection-DR2kMzrX.js → collection-DiwGNCAy.js} +0 -0
  94. /package/dist/{create-split-props-YZ3qgXe_.js → create-split-props-BDJ_VWs3.js} +0 -0
  95. /package/dist/{factory-BH3WrWd2.js → factory-Co08Aw8u.js} +0 -0
  96. /package/dist/{factory-D_ge_w76.d.ts → factory-Dg6Whljf.d.ts} +0 -0
  97. /package/dist/{index-B66Om_3U.d.ts → index-DI09ccnU.d.ts} +0 -0
  98. /package/dist/{index-DqRk-Yea.d.ts → index-ECeveDvH.d.ts} +0 -0
  99. /package/dist/{presence-types-Bv1E60Cw.d.ts → presence-types-BaQ7PILD.d.ts} +0 -0
  100. /package/dist/{types-Bj-dS2Hc.d.ts → types-BkS9kMJ5.d.ts} +0 -0
  101. /package/dist/{use-render-strategy-CHj_pCfT.d.ts → use-render-strategy-bdLKqL57.d.ts} +0 -0
@@ -0,0 +1,434 @@
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-DNBWT-O_.js";
4
+ import { t as createContext } from "../../create-context-Ds1GbsVc.js";
5
+ import { t as useForwardExpose } from "../../use-forward-expose-CCAmHTUB.js";
6
+ import { t as sprawlify } from "../../factory-Co08Aw8u.js";
7
+ import { t as cleanProps } from "../../clean-props-ChPEW0vT.js";
8
+ import { n as useRenderStrategyProps, t as RenderStrategyPropsProvider } from "../../use-render-strategy-DMa_QmB6.js";
9
+ import { i as usePresence, n as PresenceProvider, r as usePresenceContext } from "../../presence-BK6rPXK7.js";
10
+ import { computed, createBlock, createCommentVNode, defineComponent, guardReactiveProps, mergeDefaults, mergeProps, normalizeProps, openBlock, renderSlot, toValue, unref, useId, withCtx } from "vue";
11
+ import * as dialog from "@sprawlify/primitives/machines/dialog";
12
+ import { anatomy as dialogAnatomy } from "@sprawlify/primitives/machines/dialog";
13
+
14
+ //#region src/components/dialog/use-dialog-context.ts
15
+ const [DialogProvider, useDialogContext] = createContext("DialogContext");
16
+
17
+ //#endregion
18
+ //#region src/components/dialog/dialog-backdrop.vue?vue&type=script&setup=true&lang.ts
19
+ var dialog_backdrop_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
20
+ __name: "dialog-backdrop",
21
+ props: { asChild: {
22
+ type: Boolean,
23
+ required: false
24
+ } },
25
+ setup(__props) {
26
+ const dialog = useDialogContext();
27
+ const renderStrategy = useRenderStrategyProps();
28
+ const presence = usePresence(computed(() => ({
29
+ ...renderStrategy.value,
30
+ present: dialog.value.open
31
+ })));
32
+ const mergedProps = computed(() => mergeProps$1(dialog.value.getBackdropProps(), presence.value.presenceProps));
33
+ useForwardExpose();
34
+ return (_ctx, _cache) => {
35
+ return !unref(presence).unmounted ? (openBlock(), createBlock(unref(sprawlify).div, mergeProps({ key: 0 }, mergedProps.value, { "as-child": __props.asChild }), {
36
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
37
+ _: 3
38
+ }, 16, ["as-child"])) : createCommentVNode("v-if", true);
39
+ };
40
+ }
41
+ });
42
+
43
+ //#endregion
44
+ //#region src/components/dialog/dialog-backdrop.vue
45
+ var dialog_backdrop_default = dialog_backdrop_vue_vue_type_script_setup_true_lang_default;
46
+
47
+ //#endregion
48
+ //#region src/components/dialog/dialog-close-trigger.vue?vue&type=script&setup=true&lang.ts
49
+ var dialog_close_trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
50
+ __name: "dialog-close-trigger",
51
+ props: { asChild: {
52
+ type: Boolean,
53
+ required: false
54
+ } },
55
+ setup(__props) {
56
+ const dialog = useDialogContext();
57
+ useForwardExpose();
58
+ return (_ctx, _cache) => {
59
+ return openBlock(), createBlock(unref(sprawlify).button, mergeProps(unref(dialog).getCloseTriggerProps(), { "as-child": __props.asChild }), {
60
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
61
+ _: 3
62
+ }, 16, ["as-child"]);
63
+ };
64
+ }
65
+ });
66
+
67
+ //#endregion
68
+ //#region src/components/dialog/dialog-close-trigger.vue
69
+ var dialog_close_trigger_default = dialog_close_trigger_vue_vue_type_script_setup_true_lang_default;
70
+
71
+ //#endregion
72
+ //#region src/components/dialog/dialog-content.vue?vue&type=script&setup=true&lang.ts
73
+ var dialog_content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
74
+ __name: "dialog-content",
75
+ props: { asChild: {
76
+ type: Boolean,
77
+ required: false
78
+ } },
79
+ setup(__props) {
80
+ const dialog = useDialogContext();
81
+ const presence = usePresenceContext();
82
+ const mergedProps = computed(() => mergeProps$1(dialog.value.getContentProps(), presence.value.presenceProps));
83
+ useForwardExpose();
84
+ return (_ctx, _cache) => {
85
+ return !unref(presence).unmounted ? (openBlock(), createBlock(unref(sprawlify).div, mergeProps({ key: 0 }, mergedProps.value, { "as-child": __props.asChild }), {
86
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
87
+ _: 3
88
+ }, 16, ["as-child"])) : createCommentVNode("v-if", true);
89
+ };
90
+ }
91
+ });
92
+
93
+ //#endregion
94
+ //#region src/components/dialog/dialog-content.vue
95
+ var dialog_content_default = dialog_content_vue_vue_type_script_setup_true_lang_default;
96
+
97
+ //#endregion
98
+ //#region src/components/dialog/dialog-context.vue?vue&type=script&setup=true&lang.ts
99
+ var dialog_context_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
100
+ __name: "dialog-context",
101
+ setup(__props) {
102
+ const dialog = useDialogContext();
103
+ return (_ctx, _cache) => {
104
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(dialog))));
105
+ };
106
+ }
107
+ });
108
+
109
+ //#endregion
110
+ //#region src/components/dialog/dialog-context.vue
111
+ var dialog_context_default = dialog_context_vue_vue_type_script_setup_true_lang_default;
112
+
113
+ //#endregion
114
+ //#region src/components/dialog/dialog-description.vue?vue&type=script&setup=true&lang.ts
115
+ var dialog_description_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
116
+ __name: "dialog-description",
117
+ props: { asChild: {
118
+ type: Boolean,
119
+ required: false
120
+ } },
121
+ setup(__props) {
122
+ const dialog = useDialogContext();
123
+ useForwardExpose();
124
+ return (_ctx, _cache) => {
125
+ return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(dialog).getDescriptionProps(), { "as-child": __props.asChild }), {
126
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
127
+ _: 3
128
+ }, 16, ["as-child"]);
129
+ };
130
+ }
131
+ });
132
+
133
+ //#endregion
134
+ //#region src/components/dialog/dialog-description.vue
135
+ var dialog_description_default = dialog_description_vue_vue_type_script_setup_true_lang_default;
136
+
137
+ //#endregion
138
+ //#region src/components/dialog/dialog-positioner.vue?vue&type=script&setup=true&lang.ts
139
+ var dialog_positioner_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
140
+ __name: "dialog-positioner",
141
+ props: { asChild: {
142
+ type: Boolean,
143
+ required: false
144
+ } },
145
+ setup(__props) {
146
+ const dialog = useDialogContext();
147
+ const presence = usePresenceContext();
148
+ useForwardExpose();
149
+ return (_ctx, _cache) => {
150
+ return !unref(presence).unmounted ? (openBlock(), createBlock(unref(sprawlify).div, mergeProps({ key: 0 }, unref(dialog).getPositionerProps(), { "as-child": __props.asChild }), {
151
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
152
+ _: 3
153
+ }, 16, ["as-child"])) : createCommentVNode("v-if", true);
154
+ };
155
+ }
156
+ });
157
+
158
+ //#endregion
159
+ //#region src/components/dialog/dialog-positioner.vue
160
+ var dialog_positioner_default = dialog_positioner_vue_vue_type_script_setup_true_lang_default;
161
+
162
+ //#endregion
163
+ //#region src/components/dialog/dialog-root-provider.vue?vue&type=script&setup=true&lang.ts
164
+ var dialog_root_provider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
165
+ __name: "dialog-root-provider",
166
+ props: {
167
+ value: {
168
+ type: null,
169
+ required: true
170
+ },
171
+ lazyMount: {
172
+ type: Boolean,
173
+ required: false
174
+ },
175
+ unmountOnExit: {
176
+ type: Boolean,
177
+ required: false
178
+ }
179
+ },
180
+ emits: ["exitComplete"],
181
+ setup(__props, { emit: __emit }) {
182
+ const props = __props;
183
+ const emits = __emit;
184
+ const dialog = computed(() => props.value);
185
+ const presence = usePresence(computed(() => ({
186
+ present: dialog.value.open,
187
+ lazyMount: props.lazyMount,
188
+ unmountOnExit: props.unmountOnExit
189
+ })), emits);
190
+ DialogProvider(dialog);
191
+ PresenceProvider(presence);
192
+ RenderStrategyPropsProvider(computed(() => ({
193
+ lazyMount: props.lazyMount,
194
+ unmountOnExit: props.unmountOnExit
195
+ })));
196
+ useForwardExpose();
197
+ return (_ctx, _cache) => {
198
+ return renderSlot(_ctx.$slots, "default");
199
+ };
200
+ }
201
+ });
202
+
203
+ //#endregion
204
+ //#region src/components/dialog/dialog-root-provider.vue
205
+ var dialog_root_provider_default = dialog_root_provider_vue_vue_type_script_setup_true_lang_default;
206
+
207
+ //#endregion
208
+ //#region src/components/dialog/use-dialog.ts
209
+ const useDialog = (props = {}, emit) => {
210
+ const id = useId();
211
+ const env = useEnvironmentContext(DEFAULT_ENVIRONMENT);
212
+ const locale = useLocaleContext(DEFAULT_LOCALE);
213
+ const context = computed(() => {
214
+ const localeProps = toValue(props);
215
+ return {
216
+ id,
217
+ dir: locale.value.dir,
218
+ getRootNode: env?.value.getRootNode,
219
+ ...cleanProps(props),
220
+ onOpenChange: (details) => {
221
+ emit?.("openChange", details);
222
+ emit?.("update:open", details.open);
223
+ localeProps.onOpenChange?.(details);
224
+ },
225
+ onEscapeKeyDown: (details) => {
226
+ emit?.("escapeKeyDown", details);
227
+ localeProps.onEscapeKeyDown?.(details);
228
+ },
229
+ onFocusOutside: (details) => {
230
+ emit?.("focusOutside", details);
231
+ localeProps.onFocusOutside?.(details);
232
+ },
233
+ onInteractOutside: (details) => {
234
+ emit?.("interactOutside", details);
235
+ localeProps.onInteractOutside?.(details);
236
+ },
237
+ onPointerDownOutside: (details) => {
238
+ emit?.("pointerDownOutside", details);
239
+ localeProps.onPointerDownOutside?.(details);
240
+ },
241
+ onRequestDismiss: (details) => {
242
+ emit?.("requestDismiss", details);
243
+ localeProps.onRequestDismiss?.(details);
244
+ }
245
+ };
246
+ });
247
+ const service = useMachine(dialog.machine, context);
248
+ return computed(() => dialog.connect(service, normalizeProps$1));
249
+ };
250
+
251
+ //#endregion
252
+ //#region src/components/dialog/dialog-root.vue?vue&type=script&setup=true&lang.ts
253
+ var dialog_root_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
254
+ __name: "dialog-root",
255
+ props: /* @__PURE__ */ mergeDefaults({
256
+ "aria-label": {
257
+ type: String,
258
+ required: false
259
+ },
260
+ closeOnEscape: {
261
+ type: Boolean,
262
+ required: false
263
+ },
264
+ closeOnInteractOutside: {
265
+ type: Boolean,
266
+ required: false
267
+ },
268
+ defaultOpen: {
269
+ type: Boolean,
270
+ required: false
271
+ },
272
+ finalFocusEl: {
273
+ type: Function,
274
+ required: false
275
+ },
276
+ id: {
277
+ type: String,
278
+ required: false
279
+ },
280
+ ids: {
281
+ type: Object,
282
+ required: false
283
+ },
284
+ initialFocusEl: {
285
+ type: Function,
286
+ required: false
287
+ },
288
+ modal: {
289
+ type: Boolean,
290
+ required: false
291
+ },
292
+ open: {
293
+ type: Boolean,
294
+ required: false
295
+ },
296
+ persistentElements: {
297
+ type: Array,
298
+ required: false
299
+ },
300
+ preventScroll: {
301
+ type: Boolean,
302
+ required: false
303
+ },
304
+ restoreFocus: {
305
+ type: Boolean,
306
+ required: false
307
+ },
308
+ role: {
309
+ type: String,
310
+ required: false
311
+ },
312
+ trapFocus: {
313
+ type: Boolean,
314
+ required: false
315
+ },
316
+ lazyMount: {
317
+ type: Boolean,
318
+ required: false
319
+ },
320
+ unmountOnExit: {
321
+ type: Boolean,
322
+ required: false
323
+ }
324
+ }, {
325
+ closeOnEscape: void 0,
326
+ closeOnInteractOutside: void 0,
327
+ defaultOpen: void 0,
328
+ modal: void 0,
329
+ open: void 0,
330
+ preventScroll: void 0,
331
+ restoreFocus: void 0,
332
+ trapFocus: void 0
333
+ }),
334
+ emits: [
335
+ "escapeKeyDown",
336
+ "exitComplete",
337
+ "focusOutside",
338
+ "interactOutside",
339
+ "openChange",
340
+ "pointerDownOutside",
341
+ "requestDismiss",
342
+ "update:open"
343
+ ],
344
+ setup(__props, { emit: __emit }) {
345
+ const props = __props;
346
+ const emits = __emit;
347
+ const dialog = useDialog(props, emits);
348
+ const presence = usePresence(computed(() => ({
349
+ present: dialog.value.open,
350
+ lazyMount: props.lazyMount,
351
+ unmountOnExit: props.unmountOnExit
352
+ })), emits);
353
+ DialogProvider(dialog);
354
+ PresenceProvider(presence);
355
+ RenderStrategyPropsProvider(computed(() => ({
356
+ lazyMount: props.lazyMount,
357
+ unmountOnExit: props.unmountOnExit
358
+ })));
359
+ useForwardExpose();
360
+ return (_ctx, _cache) => {
361
+ return renderSlot(_ctx.$slots, "default");
362
+ };
363
+ }
364
+ });
365
+
366
+ //#endregion
367
+ //#region src/components/dialog/dialog-root.vue
368
+ var dialog_root_default = dialog_root_vue_vue_type_script_setup_true_lang_default;
369
+
370
+ //#endregion
371
+ //#region src/components/dialog/dialog-title.vue?vue&type=script&setup=true&lang.ts
372
+ var dialog_title_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
373
+ __name: "dialog-title",
374
+ props: { asChild: {
375
+ type: Boolean,
376
+ required: false
377
+ } },
378
+ setup(__props) {
379
+ const dialog = useDialogContext();
380
+ useForwardExpose();
381
+ return (_ctx, _cache) => {
382
+ return openBlock(), createBlock(unref(sprawlify).h2, mergeProps(unref(dialog).getTitleProps(), { "as-child": __props.asChild }), {
383
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
384
+ _: 3
385
+ }, 16, ["as-child"]);
386
+ };
387
+ }
388
+ });
389
+
390
+ //#endregion
391
+ //#region src/components/dialog/dialog-title.vue
392
+ var dialog_title_default = dialog_title_vue_vue_type_script_setup_true_lang_default;
393
+
394
+ //#endregion
395
+ //#region src/components/dialog/dialog-trigger.vue?vue&type=script&setup=true&lang.ts
396
+ var dialog_trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
397
+ __name: "dialog-trigger",
398
+ props: { asChild: {
399
+ type: Boolean,
400
+ required: false
401
+ } },
402
+ setup(__props) {
403
+ const dialog = useDialogContext();
404
+ useForwardExpose();
405
+ return (_ctx, _cache) => {
406
+ return openBlock(), createBlock(unref(sprawlify).button, mergeProps(unref(dialog).getTriggerProps(), { "as-child": __props.asChild }), {
407
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
408
+ _: 3
409
+ }, 16, ["as-child"]);
410
+ };
411
+ }
412
+ });
413
+
414
+ //#endregion
415
+ //#region src/components/dialog/dialog-trigger.vue
416
+ var dialog_trigger_default = dialog_trigger_vue_vue_type_script_setup_true_lang_default;
417
+
418
+ //#endregion
419
+ //#region src/components/dialog/dialog.ts
420
+ var dialog_exports = /* @__PURE__ */ __exportAll({
421
+ Backdrop: () => dialog_backdrop_default,
422
+ CloseTrigger: () => dialog_close_trigger_default,
423
+ Content: () => dialog_content_default,
424
+ Context: () => dialog_context_default,
425
+ Description: () => dialog_description_default,
426
+ Positioner: () => dialog_positioner_default,
427
+ Root: () => dialog_root_default,
428
+ RootProvider: () => dialog_root_provider_default,
429
+ Title: () => dialog_title_default,
430
+ Trigger: () => dialog_trigger_default
431
+ });
432
+
433
+ //#endregion
434
+ export { dialog_exports as Dialog, dialog_backdrop_default as DialogBackdrop, dialog_close_trigger_default as DialogCloseTrigger, dialog_content_default as DialogContent, dialog_context_default as DialogContext, dialog_description_default as DialogDescription, dialog_positioner_default as DialogPositioner, dialog_root_default as DialogRoot, dialog_root_provider_default as DialogRootProvider, dialog_title_default as DialogTitle, dialog_trigger_default as DialogTrigger, dialogAnatomy, useDialog, useDialogContext };
@@ -0,0 +1,29 @@
1
+ import { t as PolymorphicProps } from "../../factory-Dg6Whljf.js";
2
+ import { i as MaybePromise } from "../../types-BkS9kMJ5.js";
3
+ import * as vue121 from "vue";
4
+ import { ButtonHTMLAttributes } from "vue";
5
+ import { FileMimeType } from "@sprawlify/primitives/file-utils";
6
+
7
+ //#region src/components/download-trigger/download-trigger.vue.d.ts
8
+ type DownloadableData = string | Blob | File;
9
+ interface DownloadTriggerBaseProps extends PolymorphicProps {
10
+ fileName: string;
11
+ data: DownloadableData | (() => MaybePromise<DownloadableData>);
12
+ mimeType: FileMimeType;
13
+ }
14
+ interface DownloadTriggerProps extends DownloadTriggerBaseProps,
15
+ /**
16
+ * @vue-ignore
17
+ */
18
+ ButtonHTMLAttributes {}
19
+ declare const _default: typeof __VLS_export;
20
+ declare const __VLS_export: __VLS_WithSlots<vue121.DefineComponent<DownloadTriggerProps, {}, {}, {}, {}, vue121.ComponentOptionsMixin, vue121.ComponentOptionsMixin, {}, string, vue121.PublicProps, Readonly<DownloadTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, vue121.ComponentProvideOptions, false, {}, any>, {
21
+ default?: (props: {}) => any;
22
+ }>;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
28
+ //#endregion
29
+ export { _default as DownloadTrigger, type DownloadTriggerBaseProps, type DownloadTriggerProps };
@@ -0,0 +1,69 @@
1
+ import "../../core-DNndr38p.js";
2
+ import { c as useEnvironmentContext, s as DEFAULT_ENVIRONMENT } from "../../providers-DNBWT-O_.js";
3
+ import "../../create-context-Ds1GbsVc.js";
4
+ import { t as useForwardExpose } from "../../use-forward-expose-CCAmHTUB.js";
5
+ import { t as sprawlify } from "../../factory-Co08Aw8u.js";
6
+ import { createBlock, defineComponent, openBlock, renderSlot, unref, withCtx } from "vue";
7
+ import { downloadFile } from "@sprawlify/primitives/file-utils";
8
+
9
+ //#region src/components/download-trigger/download-trigger.vue?vue&type=script&setup=true&lang.ts
10
+ var download_trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
11
+ __name: "download-trigger",
12
+ props: {
13
+ fileName: {
14
+ type: String,
15
+ required: true
16
+ },
17
+ data: {
18
+ type: [String, Function],
19
+ required: true,
20
+ skipCheck: true
21
+ },
22
+ mimeType: {
23
+ type: null,
24
+ required: true
25
+ },
26
+ asChild: {
27
+ type: Boolean,
28
+ required: false
29
+ }
30
+ },
31
+ setup(__props) {
32
+ const props = __props;
33
+ const env = useEnvironmentContext(DEFAULT_ENVIRONMENT);
34
+ const download = (data) => {
35
+ downloadFile({
36
+ file: data,
37
+ name: props.fileName,
38
+ type: props.mimeType,
39
+ win: env?.value.getWindow() || window
40
+ });
41
+ };
42
+ const handleClick = (e) => {
43
+ if (e.defaultPrevented) return;
44
+ if (typeof props.data === "function") {
45
+ const maybePromise = props.data();
46
+ if (maybePromise instanceof Promise) maybePromise.then((data) => download(data));
47
+ else download(maybePromise);
48
+ } else download(props.data);
49
+ };
50
+ useForwardExpose();
51
+ return (_ctx, _cache) => {
52
+ return openBlock(), createBlock(unref(sprawlify).button, {
53
+ "as-child": __props.asChild,
54
+ type: "button",
55
+ onClick: handleClick
56
+ }, {
57
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
58
+ _: 3
59
+ }, 8, ["as-child"]);
60
+ };
61
+ }
62
+ });
63
+
64
+ //#endregion
65
+ //#region src/components/download-trigger/download-trigger.vue
66
+ var download_trigger_default = download_trigger_vue_vue_type_script_setup_true_lang_default;
67
+
68
+ //#endregion
69
+ export { download_trigger_default as DownloadTrigger };