@brumaombra/ui-vintage 0.1.0 → 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 (116) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +75 -78
  3. package/dist/{AlertDialogTitle.vue_vue_type_script_setup_true_lang-CWCr2erD.js → AlertDialogTitle.vue_vue_type_script_setup_true_lang-Ca0g2mVz.js} +8 -8
  4. package/dist/{Busy-B65Nd9ec.js → Busy-DSyPtpVD.js} +1 -1
  5. package/dist/BusyIndicator-D-4YHN2L.js +4 -0
  6. package/dist/{CalendarPrevButton.vue_vue_type_script_setup_true_lang-C-WnFnvj.js → CalendarPrevButton.vue_vue_type_script_setup_true_lang-Dqz6DIGp.js} +22 -22
  7. package/dist/{Collection-CmOoLBo7.js → Collection-Coi6nyvb.js} +1 -1
  8. package/dist/ConfirmDialog-Zu4m9TY-.js +4 -0
  9. package/dist/{DialogClose-BNlqG4G2.js → DialogClose-DDtZ0Em0.js} +2 -2
  10. package/dist/{x-2_VzbDS9.js → DialogPortal-BTVR2QvT.js} +12 -12
  11. package/dist/{DialogTitle-DXj0nkXn.js → DialogTitle-CLuntLBB.js} +5 -5
  12. package/dist/{DialogTitle.vue_vue_type_script_setup_true_lang-Bw40D4AK.js → DialogTitle.vue_vue_type_script_setup_true_lang-83YQbiAn.js} +4 -4
  13. package/dist/{DialogTrigger-CpyKnu11.js → DialogTrigger-CjJ8QNL_.js} +3 -3
  14. package/dist/{FocusScope-C3mcVwsf.js → FocusScope-DYbCtSNc.js} +4 -4
  15. package/dist/{Input.vue_vue_type_script_setup_true_lang-U778IWa0.js → Input.vue_vue_type_script_setup_true_lang-6SfPeT8d.js} +1 -1
  16. package/dist/{Label.vue_vue_type_script_setup_true_lang-B_fwvfJ-.js → Label.vue_vue_type_script_setup_true_lang-pMIzCHzV.js} +2 -2
  17. package/dist/MessageDialog-ChS4d2qN.js +4 -0
  18. package/dist/{NativeSelectOption.vue_vue_type_script_setup_true_lang-DS87OTLT.js → NativeSelectOption.vue_vue_type_script_setup_true_lang-CWhL2Lw8.js} +2 -2
  19. package/dist/{PopoverTrigger.vue_vue_type_script_setup_true_lang-KTcg6Jnl.js → PopoverTrigger.vue_vue_type_script_setup_true_lang-DFZJvU_P.js} +9 -9
  20. package/dist/{PopperContent-BiM0YLO3.js → PopperContent-h-thLTz8.js} +3 -3
  21. package/dist/{Separator.vue_vue_type_script_setup_true_lang-COrZ60NR.js → Separator.vue_vue_type_script_setup_true_lang-CMRkdntA.js} +1 -1
  22. package/dist/{SheetTitle.vue_vue_type_script_setup_true_lang-DLoXGMbx.js → SheetTitle.vue_vue_type_script_setup_true_lang-fx9jbBwT.js} +4 -4
  23. package/dist/{Slider.vue_vue_type_script_setup_true_lang-D-cAN-4Q.js → Slider.vue_vue_type_script_setup_true_lang-C_CsSGAt.js} +7 -7
  24. package/dist/{Switch.vue_vue_type_script_setup_true_lang-BWKCycMm.js → Switch.vue_vue_type_script_setup_true_lang-BG6nkPSO.js} +5 -5
  25. package/dist/{Teleport-CuUn4UkG.js → Teleport-CV0tKbq5.js} +3 -3
  26. package/dist/{TooltipTrigger.vue_vue_type_script_setup_true_lang-BRyHTWgw.js → TooltipTrigger.vue_vue_type_script_setup_true_lang-DEPKysA_.js} +5 -5
  27. package/dist/{VisuallyHiddenInput-DLAsRwUw.js → VisuallyHiddenInput-1G1IEkBL.js} +1 -1
  28. package/dist/alert-dialog.js +161 -9
  29. package/dist/busy-indicator.js +64 -4
  30. package/dist/busy.js +1 -1
  31. package/dist/calendar.js +1 -1
  32. package/dist/card.js +110 -7
  33. package/dist/command.js +20 -20
  34. package/dist/components/dashboard-shell/DashboardShell.vue.d.ts +1 -1
  35. package/dist/components/ui/button/index.d.ts +1 -1
  36. package/dist/components/ui/sidebar/SidebarMenuButton.vue.d.ts +1 -1
  37. package/dist/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +1 -1
  38. package/dist/confirm-dialog.js +228 -7
  39. package/dist/dashboard-shell.js +170 -3
  40. package/dist/date-picker.js +91 -3
  41. package/dist/dialog.js +140 -6
  42. package/dist/field.js +2 -2
  43. package/dist/{index-C1_fxYhb.js → index-Cq9Ekgtb.js} +2 -2
  44. package/dist/{index-Dfi5ESP2.js → index-qGMU40e1.js} +1 -1
  45. package/dist/input.js +1 -1
  46. package/dist/label.js +1 -1
  47. package/dist/message-dialog.js +240 -6
  48. package/dist/native-select.js +1 -1
  49. package/dist/popover.js +62 -5
  50. package/dist/select.js +2122 -12
  51. package/dist/separator.js +1 -1
  52. package/dist/sheet.js +61 -5
  53. package/dist/sidebar.js +6 -6
  54. package/dist/slider-form-component.js +58 -3
  55. package/dist/slider.js +1 -1
  56. package/dist/style.css +4 -4016
  57. package/dist/switch-form-component.js +38 -3
  58. package/dist/switch.js +1 -1
  59. package/dist/tooltip.js +27 -3
  60. package/dist/{useFocusGuards-tgErlvMF.js → useFocusGuards-WYWvpJy2.js} +1 -1
  61. package/dist/{useFormControl-7ytzz-r7.js → useFormControl-CyoJwp9r.js} +1 -1
  62. package/dist/{useForwardExpose-CNVHwdF2.js → useForwardExpose-BiRQH8eO.js} +1 -1
  63. package/dist/{usePrimitiveElement-CijaRBgF.js → usePrimitiveElement-Bk3ZOslv.js} +1 -1
  64. package/dist/{useSize-DO9Z3wC4.js → useSize-BLYTFgnQ.js} +1 -1
  65. package/dist/{useTypeahead-Dqe1QXq1.js → useTypeahead-KTl4-oeq.js} +2 -2
  66. package/dist/{utils-RRmyeqLm.js → utils-BXBXPGDA.js} +1 -1
  67. package/package.json +188 -186
  68. package/dist/AlertDialogTrigger.vue_vue_type_script_setup_true_lang-vNwxOYhM.js +0 -158
  69. package/dist/BusyIndicator-CnWzSMDb.js +0 -4
  70. package/dist/BusyIndicator.vue_vue_type_script_setup_true_lang-CYeXMI_V.js +0 -66
  71. package/dist/CardTitle.vue_vue_type_script_setup_true_lang-DVAd7AWF.js +0 -112
  72. package/dist/ConfirmDialog-DEsvF0b_.js +0 -4
  73. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-BAd1l1zF.js +0 -230
  74. package/dist/DashboardShell.vue_vue_type_script_setup_true_lang-CT2SQBXv.js +0 -171
  75. package/dist/DatePicker.vue_vue_type_script_setup_true_lang-D8mev2ha.js +0 -92
  76. package/dist/DialogTrigger.vue_vue_type_script_setup_true_lang-DLrFiCsw.js +0 -141
  77. package/dist/MessageDialog-BrowppID.js +0 -4
  78. package/dist/MessageDialog.vue_vue_type_script_setup_true_lang-Ddih5Isd.js +0 -242
  79. package/dist/PopoverAnchor.vue_vue_type_script_setup_true_lang-CsfybvZp.js +0 -61
  80. package/dist/SelectValue.vue_vue_type_script_setup_true_lang-DGAI4hw5.js +0 -2124
  81. package/dist/SheetTrigger.vue_vue_type_script_setup_true_lang-CE2XJNHy.js +0 -62
  82. package/dist/SliderFormComponent.vue_vue_type_script_setup_true_lang-KPzC_Lmr.js +0 -59
  83. package/dist/SwitchFormComponent.vue_vue_type_script_setup_true_lang-XOBEs3pa.js +0 -39
  84. package/dist/TooltipProvider.vue_vue_type_script_setup_true_lang-DwIfCQjY.js +0 -28
  85. package/dist/alert-dialog.d.ts +0 -2
  86. package/dist/alert.d.ts +0 -2
  87. package/dist/background-grid.d.ts +0 -6
  88. package/dist/busy-indicator.d.ts +0 -2
  89. package/dist/busy.d.ts +0 -2
  90. package/dist/button.d.ts +0 -2
  91. package/dist/calendar.d.ts +0 -2
  92. package/dist/card.d.ts +0 -2
  93. package/dist/command.d.ts +0 -2
  94. package/dist/confirm-dialog.d.ts +0 -2
  95. package/dist/dashboard-shell.d.ts +0 -6
  96. package/dist/date-picker.d.ts +0 -6
  97. package/dist/dialog.d.ts +0 -2
  98. package/dist/field.d.ts +0 -2
  99. package/dist/index.d.ts +0 -28
  100. package/dist/index.js +0 -171
  101. package/dist/input.d.ts +0 -2
  102. package/dist/label.d.ts +0 -2
  103. package/dist/message-dialog.d.ts +0 -2
  104. package/dist/native-select.d.ts +0 -2
  105. package/dist/popover.d.ts +0 -2
  106. package/dist/select.d.ts +0 -2
  107. package/dist/separator.d.ts +0 -2
  108. package/dist/sheet.d.ts +0 -2
  109. package/dist/sidebar.d.ts +0 -2
  110. package/dist/skeleton.d.ts +0 -2
  111. package/dist/slider-form-component.d.ts +0 -6
  112. package/dist/slider.d.ts +0 -2
  113. package/dist/switch-form-component.d.ts +0 -6
  114. package/dist/switch.d.ts +0 -2
  115. package/dist/tooltip.d.ts +0 -2
  116. package/dist/utils.d.ts +0 -2
@@ -1,171 +0,0 @@
1
- import { defineComponent, openBlock, createBlock, unref, withCtx, createVNode, renderSlot, createCommentVNode, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString, resolveDynamicComponent, mergeProps, createElementVNode, normalizeClass } from "vue";
2
- import { B as BackgroundGrid } from "./BackgroundGrid-Cxvbtefm.js";
3
- import { _ as _sfc_main$e } from "./Separator.vue_vue_type_script_setup_true_lang-COrZ60NR.js";
4
- import { SidebarProvider as _sfc_main$1, Sidebar as _sfc_main$2, SidebarHeader as _sfc_main$3, SidebarContent as _sfc_main$4, SidebarGroup as _sfc_main$5, SidebarGroupLabel as _sfc_main$6, SidebarGroupContent as _sfc_main$7, SidebarMenu as _sfc_main$8, SidebarMenuItem as _sfc_main$9, SidebarMenuButton as _sfc_main$a, SidebarFooter as _sfc_main$b, SidebarInset as _sfc_main$c, SidebarTrigger as _sfc_main$d } from "./sidebar.js";
5
- import { c as cn } from "./utils-Bz4m9VPB.js";
6
- const _hoisted_1 = { class: "grid min-w-0 flex-1 text-left leading-tight" };
7
- const _hoisted_2 = { class: "truncate font-semibold" };
8
- const _hoisted_3 = {
9
- key: 0,
10
- class: "mt-0.5 text-[11px] leading-4 text-sidebar-foreground/65"
11
- };
12
- const _hoisted_4 = { class: "min-w-0 flex-1" };
13
- const _hoisted_5 = { class: "truncate text-sm font-medium" };
14
- const _hoisted_6 = {
15
- key: 0,
16
- class: "truncate text-xs text-muted-foreground"
17
- };
18
- const _hoisted_7 = { class: "relative z-10 min-w-0 flex-1" };
19
- const _hoisted_8 = { class: "pb-4" };
20
- const _sfc_main = /* @__PURE__ */ defineComponent({
21
- __name: "DashboardShell",
22
- props: {
23
- title: { default: "" },
24
- description: { default: "" },
25
- collapsible: { default: "offcanvas" },
26
- sidebarSections: { default: () => [] },
27
- sidebarLinkComponent: { default: "a" },
28
- showBackground: { type: Boolean, default: true },
29
- insetClass: {},
30
- topbarClass: {},
31
- contentContainerClass: {}
32
- },
33
- setup(__props) {
34
- const props = __props;
35
- const getSidebarItemLinkProps = (item) => {
36
- if (props.sidebarLinkComponent === "a") {
37
- return { href: item.href ?? "#" };
38
- }
39
- return { to: item.to ?? item.href ?? "/" };
40
- };
41
- return (_ctx, _cache) => {
42
- return openBlock(), createBlock(unref(_sfc_main$1), null, {
43
- default: withCtx(() => [
44
- createVNode(unref(_sfc_main$2), {
45
- collapsible: props.collapsible
46
- }, {
47
- default: withCtx(() => [
48
- _ctx.$slots["sidebar-header"] ? (openBlock(), createBlock(unref(_sfc_main$3), {
49
- key: 0,
50
- class: "h-16 justify-center border-b border-sidebar-border"
51
- }, {
52
- default: withCtx(() => [
53
- renderSlot(_ctx.$slots, "sidebar-header")
54
- ]),
55
- _: 3
56
- })) : createCommentVNode("", true),
57
- props.sidebarSections.length ? (openBlock(), createBlock(unref(_sfc_main$4), { key: 1 }, {
58
- default: withCtx(() => [
59
- (openBlock(true), createElementBlock(Fragment, null, renderList(props.sidebarSections, (section) => {
60
- return openBlock(), createBlock(unref(_sfc_main$5), {
61
- key: section.id
62
- }, {
63
- default: withCtx(() => [
64
- section.label ? (openBlock(), createBlock(unref(_sfc_main$6), { key: 0 }, {
65
- default: withCtx(() => [
66
- createTextVNode(toDisplayString(section.label), 1)
67
- ]),
68
- _: 2
69
- }, 1024)) : createCommentVNode("", true),
70
- createVNode(unref(_sfc_main$7), null, {
71
- default: withCtx(() => [
72
- createVNode(unref(_sfc_main$8), { class: "gap-3" }, {
73
- default: withCtx(() => [
74
- (openBlock(true), createElementBlock(Fragment, null, renderList(section.items, (item) => {
75
- return openBlock(), createBlock(unref(_sfc_main$9), {
76
- key: item.id
77
- }, {
78
- default: withCtx(() => [
79
- createVNode(unref(_sfc_main$a), {
80
- "as-child": "",
81
- "is-active": item.active,
82
- class: "group h-auto min-h-12 items-start rounded border border-[var(--border-light)] px-3 py-2.5 text-[var(--text-secondary-light)] transition-all duration-200 hover:border-[var(--border-hover-light)] hover:bg-[var(--bg-selected-light)] hover:text-[var(--text-primary-light)] data-[active=true]:border-[var(--border-hover-light)] data-[active=true]:bg-[var(--bg-selected-light)] data-[active=true]:text-[var(--text-primary-light)] dark:border-[var(--border-dark)] dark:text-[var(--text-secondary-dark)] dark:hover:border-[var(--border-hover-dark)] dark:hover:bg-[var(--bg-selected-dark)] dark:hover:text-[var(--text-primary-dark)] dark:data-[active=true]:border-[var(--border-hover-dark)] dark:data-[active=true]:bg-[var(--bg-selected-dark)] dark:data-[active=true]:text-[var(--text-primary-dark)] sm:px-4 sm:py-3"
83
- }, {
84
- default: withCtx(() => [
85
- (openBlock(), createBlock(resolveDynamicComponent(props.sidebarLinkComponent), mergeProps({ ref_for: true }, getSidebarItemLinkProps(item)), {
86
- default: withCtx(() => [
87
- item.icon ? (openBlock(), createBlock(resolveDynamicComponent(item.icon), {
88
- key: 0,
89
- "stroke-width": 1.8,
90
- class: "mt-0.5 h-4 w-4 shrink-0 opacity-90 transition-opacity duration-200 group-hover:opacity-100 sm:h-5 sm:w-5"
91
- })) : createCommentVNode("", true),
92
- createElementVNode("div", _hoisted_1, [
93
- createElementVNode("span", _hoisted_2, toDisplayString(item.label), 1),
94
- item.description ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(item.description), 1)) : createCommentVNode("", true)
95
- ])
96
- ]),
97
- _: 2
98
- }, 1040))
99
- ]),
100
- _: 2
101
- }, 1032, ["is-active"])
102
- ]),
103
- _: 2
104
- }, 1024);
105
- }), 128))
106
- ]),
107
- _: 2
108
- }, 1024)
109
- ]),
110
- _: 2
111
- }, 1024)
112
- ]),
113
- _: 2
114
- }, 1024);
115
- }), 128))
116
- ]),
117
- _: 1
118
- })) : createCommentVNode("", true),
119
- _ctx.$slots["sidebar-footer"] ? (openBlock(), createBlock(unref(_sfc_main$b), {
120
- key: 2,
121
- class: "border-t border-sidebar-border"
122
- }, {
123
- default: withCtx(() => [
124
- renderSlot(_ctx.$slots, "sidebar-footer")
125
- ]),
126
- _: 3
127
- })) : createCommentVNode("", true)
128
- ]),
129
- _: 3
130
- }, 8, ["collapsible"]),
131
- createVNode(unref(_sfc_main$c), {
132
- class: normalizeClass(unref(cn)("relative min-h-screen min-w-0 bg-background text-foreground", props.insetClass))
133
- }, {
134
- default: withCtx(() => [
135
- props.showBackground ? (openBlock(), createBlock(BackgroundGrid, { key: 0 })) : createCommentVNode("", true),
136
- createElementVNode("header", {
137
- class: normalizeClass(unref(cn)("sticky top-0 z-20 flex h-16 shrink-0 items-center gap-2 border-b border-sidebar-border bg-sidebar px-4 backdrop-blur", props.topbarClass))
138
- }, [
139
- createVNode(unref(_sfc_main$d), { class: "-ml-1" }),
140
- createVNode(unref(_sfc_main$e), {
141
- orientation: "vertical",
142
- class: "mr-2 data-[orientation=vertical]:h-4"
143
- }),
144
- renderSlot(_ctx.$slots, "topbar-leading"),
145
- createElementVNode("div", _hoisted_4, [
146
- createElementVNode("div", _hoisted_5, toDisplayString(props.title), 1),
147
- props.description ? (openBlock(), createElementBlock("div", _hoisted_6, toDisplayString(props.description), 1)) : createCommentVNode("", true)
148
- ]),
149
- renderSlot(_ctx.$slots, "topbar-trailing")
150
- ], 2),
151
- createElementVNode("main", _hoisted_7, [
152
- createElementVNode("div", {
153
- class: normalizeClass(unref(cn)("mx-auto flex w-full min-w-0 max-w-6xl flex-col gap-6 p-3 sm:p-6 lg:p-8", props.contentContainerClass))
154
- }, [
155
- createElementVNode("div", _hoisted_8, [
156
- renderSlot(_ctx.$slots, "default")
157
- ])
158
- ], 2)
159
- ])
160
- ]),
161
- _: 3
162
- }, 8, ["class"])
163
- ]),
164
- _: 3
165
- });
166
- };
167
- }
168
- });
169
- export {
170
- _sfc_main as _
171
- };
@@ -1,92 +0,0 @@
1
- import { defineComponent, ref, computed, openBlock, createBlock, unref, withCtx, createVNode, normalizeClass, createTextVNode, toDisplayString } from "vue";
2
- import { $ as $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3, l as $14e0f24ef4ac5c92$export$aa8b41735afcabd2, m as $fb18d541ea1ad717$export$ad991b66133851cf, _ as _sfc_main$5 } from "./CalendarPrevButton.vue_vue_type_script_setup_true_lang-C-WnFnvj.js";
3
- import { c as cn } from "./utils-Bz4m9VPB.js";
4
- import { Button as _sfc_main$3 } from "./button.js";
5
- import { _ as _sfc_main$1, b as _sfc_main$2, a as _sfc_main$4 } from "./PopoverTrigger.vue_vue_type_script_setup_true_lang-KTcg6Jnl.js";
6
- import { c as createLucideIcon } from "./createLucideIcon-CCMB2vDW.js";
7
- /**
8
- * @license lucide-vue-next v1.0.0 - ISC
9
- *
10
- * This source code is licensed under the ISC license.
11
- * See the LICENSE file in the root directory of this source tree.
12
- */
13
- const Calendar = createLucideIcon("calendar", [
14
- ["path", { d: "M8 2v4", key: "1cmpym" }],
15
- ["path", { d: "M16 2v4", key: "4m81vk" }],
16
- ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
17
- ["path", { d: "M3 10h18", key: "8toen8" }]
18
- ]);
19
- const _sfc_main = /* @__PURE__ */ defineComponent({
20
- __name: "DatePicker",
21
- props: {
22
- defaultValue: {},
23
- modelValue: {},
24
- placeholder: { default: "Pick a date" },
25
- disabled: { type: Boolean, default: false },
26
- class: {},
27
- contentClass: {}
28
- },
29
- emits: ["update:modelValue"],
30
- setup(__props, { emit: __emit }) {
31
- const props = __props;
32
- const emits = __emit;
33
- const internalDate = ref(props.defaultValue);
34
- const isControlled = computed(() => props.modelValue !== void 0);
35
- const date = computed({
36
- get: () => isControlled.value ? props.modelValue : internalDate.value,
37
- set: (value) => {
38
- if (!isControlled.value)
39
- internalDate.value = value;
40
- emits("update:modelValue", value);
41
- }
42
- });
43
- const defaultPlaceholder = computed(() => date.value ?? $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3($14e0f24ef4ac5c92$export$aa8b41735afcabd2()));
44
- const formatter = new $fb18d541ea1ad717$export$ad991b66133851cf("en-US", {
45
- dateStyle: "long"
46
- });
47
- return (_ctx, _cache) => {
48
- return openBlock(), createBlock(unref(_sfc_main$1), null, {
49
- default: withCtx(({ close }) => [
50
- createVNode(unref(_sfc_main$2), { "as-child": "" }, {
51
- default: withCtx(() => [
52
- createVNode(unref(_sfc_main$3), {
53
- variant: "outline",
54
- disabled: _ctx.disabled,
55
- class: normalizeClass(unref(cn)("w-[240px] justify-start text-left font-normal", !date.value && "text-muted-foreground", props.class))
56
- }, {
57
- default: withCtx(() => [
58
- createVNode(unref(Calendar), { class: "size-4" }),
59
- createTextVNode(" " + toDisplayString(date.value ? unref(formatter).format(date.value.toDate(unref($14e0f24ef4ac5c92$export$aa8b41735afcabd2)())) : _ctx.placeholder), 1)
60
- ]),
61
- _: 1
62
- }, 8, ["disabled", "class"])
63
- ]),
64
- _: 1
65
- }),
66
- createVNode(unref(_sfc_main$4), {
67
- class: normalizeClass(unref(cn)("w-auto p-0", props.contentClass)),
68
- align: "start"
69
- }, {
70
- default: withCtx(() => [
71
- createVNode(unref(_sfc_main$5), {
72
- modelValue: date.value,
73
- "onUpdate:modelValue": [
74
- _cache[0] || (_cache[0] = ($event) => date.value = $event),
75
- close
76
- ],
77
- "default-placeholder": defaultPlaceholder.value,
78
- layout: "month-and-year",
79
- "initial-focus": ""
80
- }, null, 8, ["modelValue", "default-placeholder", "onUpdate:modelValue"])
81
- ]),
82
- _: 2
83
- }, 1032, ["class"])
84
- ]),
85
- _: 1
86
- });
87
- };
88
- }
89
- });
90
- export {
91
- _sfc_main as _
92
- };
@@ -1,141 +0,0 @@
1
- import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot, createElementBlock, normalizeClass, createVNode, createTextVNode, createCommentVNode, createElementVNode } from "vue";
2
- import { D as DialogClose_default } from "./DialogClose-BNlqG4G2.js";
3
- import { c as cn } from "./utils-Bz4m9VPB.js";
4
- import { Button as _sfc_main$4 } from "./button.js";
5
- import { u as useForwardPropsEmits } from "./useForwardPropsEmits-DmumnZO5.js";
6
- import { D as DialogOverlay_default, a as DialogContent_default } from "./DialogTitle-DXj0nkXn.js";
7
- import { D as DialogPortal_default, X } from "./x-2_VzbDS9.js";
8
- import { r as reactiveOmit } from "./index-Dfi5ESP2.js";
9
- import { D as DialogTrigger_default } from "./DialogTrigger-CpyKnu11.js";
10
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
11
- __name: "DialogClose",
12
- props: {
13
- asChild: { type: Boolean },
14
- as: {}
15
- },
16
- setup(__props) {
17
- const props = __props;
18
- return (_ctx, _cache) => {
19
- return openBlock(), createBlock(unref(DialogClose_default), mergeProps({ "data-slot": "dialog-close" }, props), {
20
- default: withCtx(() => [
21
- renderSlot(_ctx.$slots, "default")
22
- ]),
23
- _: 3
24
- }, 16);
25
- };
26
- }
27
- });
28
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
29
- __name: "DialogFooter",
30
- props: {
31
- class: {},
32
- showCloseButton: { type: Boolean, default: false }
33
- },
34
- setup(__props) {
35
- const props = __props;
36
- return (_ctx, _cache) => {
37
- return openBlock(), createElementBlock("div", {
38
- "data-slot": "dialog-footer",
39
- class: normalizeClass(unref(cn)("flex flex-col-reverse gap-3 border-t border-border px-5 py-4 sm:flex-row-reverse sm:px-6", props.class))
40
- }, [
41
- renderSlot(_ctx.$slots, "default"),
42
- _ctx.showCloseButton ? (openBlock(), createBlock(unref(DialogClose_default), {
43
- key: 0,
44
- "as-child": ""
45
- }, {
46
- default: withCtx(() => [
47
- createVNode(unref(_sfc_main$4), { variant: "outline" }, {
48
- default: withCtx(() => _cache[0] || (_cache[0] = [
49
- createTextVNode(" Close ")
50
- ])),
51
- _: 1
52
- })
53
- ]),
54
- _: 1
55
- })) : createCommentVNode("", true)
56
- ], 2);
57
- };
58
- }
59
- });
60
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
61
- ...{
62
- inheritAttrs: false
63
- },
64
- __name: "DialogScrollContent",
65
- props: {
66
- forceMount: { type: Boolean },
67
- disableOutsidePointerEvents: { type: Boolean },
68
- asChild: { type: Boolean },
69
- as: {},
70
- class: {}
71
- },
72
- emits: ["escapeKeyDown", "pointerDownOutside", "focusOutside", "interactOutside", "openAutoFocus", "closeAutoFocus"],
73
- setup(__props, { emit: __emit }) {
74
- const props = __props;
75
- const emits = __emit;
76
- const delegatedProps = reactiveOmit(props, "class");
77
- const forwarded = useForwardPropsEmits(delegatedProps, emits);
78
- return (_ctx, _cache) => {
79
- return openBlock(), createBlock(unref(DialogPortal_default), null, {
80
- default: withCtx(() => [
81
- createVNode(unref(DialogOverlay_default), { class: "fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/45 backdrop-blur-[2px] transition-[opacity,backdrop-filter] ease-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" }, {
82
- default: withCtx(() => [
83
- createVNode(unref(DialogContent_default), mergeProps({
84
- class: unref(cn)(
85
- "relative z-50 my-8 grid w-[95%] max-w-lg gap-0 overflow-hidden rounded border border-border bg-card text-card-foreground shadow-2xl duration-200 md:w-full",
86
- props.class
87
- )
88
- }, { ..._ctx.$attrs, ...unref(forwarded) }, {
89
- onPointerDownOutside: _cache[0] || (_cache[0] = (event) => {
90
- const originalEvent = event.detail.originalEvent;
91
- const target = originalEvent.target;
92
- if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
93
- event.preventDefault();
94
- }
95
- })
96
- }), {
97
- default: withCtx(() => [
98
- renderSlot(_ctx.$slots, "default"),
99
- createVNode(unref(DialogClose_default), { class: "absolute top-4 right-4 rounded border border-border bg-card p-1 text-muted-foreground transition-all duration-200 hover:bg-accent hover:text-foreground" }, {
100
- default: withCtx(() => [
101
- createVNode(unref(X), { class: "w-4 h-4" }),
102
- _cache[1] || (_cache[1] = createElementVNode("span", { class: "sr-only" }, "Close", -1))
103
- ]),
104
- _: 1
105
- })
106
- ]),
107
- _: 3
108
- }, 16, ["class"])
109
- ]),
110
- _: 3
111
- })
112
- ]),
113
- _: 3
114
- });
115
- };
116
- }
117
- });
118
- const _sfc_main = /* @__PURE__ */ defineComponent({
119
- __name: "DialogTrigger",
120
- props: {
121
- asChild: { type: Boolean },
122
- as: {}
123
- },
124
- setup(__props) {
125
- const props = __props;
126
- return (_ctx, _cache) => {
127
- return openBlock(), createBlock(unref(DialogTrigger_default), mergeProps({ "data-slot": "dialog-trigger" }, props), {
128
- default: withCtx(() => [
129
- renderSlot(_ctx.$slots, "default")
130
- ]),
131
- _: 3
132
- }, 16);
133
- };
134
- }
135
- });
136
- export {
137
- _sfc_main$3 as _,
138
- _sfc_main$2 as a,
139
- _sfc_main$1 as b,
140
- _sfc_main as c
141
- };
@@ -1,4 +0,0 @@
1
- import { _ as _sfc_main } from "./MessageDialog.vue_vue_type_script_setup_true_lang-Ddih5Isd.js";
2
- export {
3
- _sfc_main as default
4
- };
@@ -1,242 +0,0 @@
1
- import { reactive, render, h, markRaw, defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, normalizeClass, resolveDynamicComponent, createVNode, createTextVNode, toDisplayString, createCommentVNode } from "vue";
2
- import { _ as _sfc_main$1, a as _sfc_main$2, d as _sfc_main$3, e as _sfc_main$4, b as _sfc_main$5, c as _sfc_main$6 } from "./AlertDialogTitle.vue_vue_type_script_setup_true_lang-CWCr2erD.js";
3
- import { Button as _sfc_main$7 } from "./button.js";
4
- import { I as Info } from "./info-DZrSmi42.js";
5
- import { c as createLucideIcon } from "./createLucideIcon-CCMB2vDW.js";
6
- import { C as Check } from "./check-iejznCzf.js";
7
- /**
8
- * @license lucide-vue-next v1.0.0 - ISC
9
- *
10
- * This source code is licensed under the ISC license.
11
- * See the LICENSE file in the root directory of this source tree.
12
- */
13
- const CircleAlert = createLucideIcon("circle-alert", [
14
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
15
- ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
16
- ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
17
- ]);
18
- const messageDialogQueue = [];
19
- let nextMessageDialogId = 0;
20
- const DIALOG_CLOSE_DURATION_MS = 300;
21
- let closeTimer = null;
22
- let messageDialogMountPromise = null;
23
- const MESSAGE_DIALOG_ROOT_ID = "ui-vintage-message-dialog-root";
24
- const messageDialogState = reactive({
25
- current: null,
26
- busy: false,
27
- isOpen: false
28
- });
29
- const markIcon = (icon) => icon ? markRaw(icon) : null;
30
- const ensureMessageDialogMounted = () => {
31
- if (typeof document === "undefined") {
32
- return Promise.resolve();
33
- }
34
- const existingRoot = document.getElementById(MESSAGE_DIALOG_ROOT_ID);
35
- if (existingRoot) {
36
- return Promise.resolve();
37
- }
38
- if (messageDialogMountPromise) {
39
- return messageDialogMountPromise;
40
- }
41
- messageDialogMountPromise = (async () => {
42
- const { default: MessageDialog } = await import("./MessageDialog-BrowppID.js");
43
- if (document.getElementById(MESSAGE_DIALOG_ROOT_ID)) {
44
- return;
45
- }
46
- const container = document.createElement("div");
47
- container.id = MESSAGE_DIALOG_ROOT_ID;
48
- document.body.appendChild(container);
49
- render(h(MessageDialog), container);
50
- })().finally(() => {
51
- messageDialogMountPromise = null;
52
- });
53
- return messageDialogMountPromise;
54
- };
55
- const openNextMessageDialog = () => {
56
- const nextDialog = messageDialogQueue.shift() ?? null;
57
- messageDialogState.current = nextDialog;
58
- messageDialogState.isOpen = Boolean(nextDialog);
59
- };
60
- const enqueueMessageDialog = (request) => {
61
- messageDialogQueue.push(request);
62
- if (!messageDialogState.current) {
63
- openNextMessageDialog();
64
- }
65
- };
66
- const clearCurrentMessageDialog = () => {
67
- messageDialogState.busy = false;
68
- messageDialogState.isOpen = false;
69
- messageDialogState.current = null;
70
- openNextMessageDialog();
71
- };
72
- const scheduleCloseCurrentMessageDialog = () => {
73
- if (!messageDialogState.current || !messageDialogState.isOpen) {
74
- return;
75
- }
76
- messageDialogState.isOpen = false;
77
- if (closeTimer) {
78
- clearTimeout(closeTimer);
79
- }
80
- closeTimer = setTimeout(() => {
81
- closeTimer = null;
82
- clearCurrentMessageDialog();
83
- }, DIALOG_CLOSE_DURATION_MS);
84
- };
85
- const closeMessageDialog = () => {
86
- const current = messageDialogState.current;
87
- if (!current || !messageDialogState.isOpen) {
88
- return;
89
- }
90
- current.resolve();
91
- scheduleCloseCurrentMessageDialog();
92
- };
93
- const resolveActiveMessageDialog = () => {
94
- const current = messageDialogState.current;
95
- if (!current || messageDialogState.busy) {
96
- return;
97
- }
98
- current.resolve();
99
- scheduleCloseCurrentMessageDialog();
100
- };
101
- const showMessageDialog = (options) => {
102
- void ensureMessageDialogMounted();
103
- return new Promise((resolve) => {
104
- enqueueMessageDialog({
105
- id: nextMessageDialogId += 1,
106
- options: {
107
- type: options.type ?? "Info",
108
- title: options.title ?? "",
109
- message: options.message,
110
- closeText: options.closeText ?? "Close",
111
- icon: markIcon(options.icon),
112
- closeButtonIcon: markIcon(options.closeButtonIcon)
113
- },
114
- resolve
115
- });
116
- });
117
- };
118
- const _hoisted_1 = { class: "px-5 pb-5 pt-5 sm:px-6 sm:pb-4 sm:pt-6" };
119
- const _hoisted_2 = { class: "flex flex-col gap-4 sm:flex-row sm:items-start" };
120
- const _sfc_main = /* @__PURE__ */ defineComponent({
121
- __name: "MessageDialog",
122
- setup(__props) {
123
- const currentDialog = computed(() => messageDialogState.current);
124
- const messageIcon = computed(() => {
125
- const current = currentDialog.value;
126
- if (!current) {
127
- return Info;
128
- }
129
- if (current.options.icon) {
130
- return current.options.icon;
131
- }
132
- if (current.options.type === "Error") {
133
- return CircleAlert;
134
- }
135
- if (current.options.type === "Success") {
136
- return Check;
137
- }
138
- return Info;
139
- });
140
- const messageIconClasses = computed(() => {
141
- const current = currentDialog.value;
142
- if (!current) {
143
- return "border-[var(--border)] bg-[var(--bg-surface-light)] dark:bg-[var(--bg-surface-dark)]";
144
- }
145
- if (current.options.type === "Error") {
146
- return "border-red-200 bg-red-50 dark:border-red-900/50 dark:bg-red-950/30";
147
- }
148
- if (current.options.type === "Success") {
149
- return "border-green-200 bg-green-50 dark:border-green-900/50 dark:bg-green-950/30";
150
- }
151
- return "border-[var(--border)] bg-[var(--bg-surface-light)] dark:bg-[var(--bg-surface-dark)]";
152
- });
153
- const messageGlyphClasses = computed(() => {
154
- const current = currentDialog.value;
155
- if (!current) {
156
- return "text-blue-600";
157
- }
158
- if (current.options.type === "Error") {
159
- return "text-red-600";
160
- }
161
- if (current.options.type === "Success") {
162
- return "text-green-600";
163
- }
164
- return "text-blue-600";
165
- });
166
- const handleOpenChange = (open) => {
167
- if (!open) {
168
- closeMessageDialog();
169
- }
170
- };
171
- return (_ctx, _cache) => {
172
- return openBlock(), createBlock(unref(_sfc_main$1), {
173
- open: unref(messageDialogState).isOpen,
174
- "onUpdate:open": handleOpenChange
175
- }, {
176
- default: withCtx(() => [
177
- currentDialog.value ? (openBlock(), createBlock(unref(_sfc_main$2), { key: 0 }, {
178
- default: withCtx(() => [
179
- createElementVNode("div", _hoisted_1, [
180
- createElementVNode("div", _hoisted_2, [
181
- createElementVNode("div", {
182
- class: normalizeClass(["flex size-12 shrink-0 self-center items-center justify-center rounded border sm:size-10 sm:self-start", messageIconClasses.value])
183
- }, [
184
- (openBlock(), createBlock(resolveDynamicComponent(messageIcon.value), {
185
- "stroke-width": 1.8,
186
- class: normalizeClass(["size-6", messageGlyphClasses.value])
187
- }, null, 8, ["class"]))
188
- ], 2),
189
- createVNode(unref(_sfc_main$3), { class: "sm:pt-0" }, {
190
- default: withCtx(() => [
191
- createVNode(unref(_sfc_main$4), null, {
192
- default: withCtx(() => [
193
- createTextVNode(toDisplayString(currentDialog.value.options.title), 1)
194
- ]),
195
- _: 1
196
- }),
197
- createVNode(unref(_sfc_main$5), null, {
198
- default: withCtx(() => [
199
- createTextVNode(toDisplayString(currentDialog.value.options.message), 1)
200
- ]),
201
- _: 1
202
- })
203
- ]),
204
- _: 1
205
- })
206
- ])
207
- ]),
208
- createVNode(unref(_sfc_main$6), { class: "items-end" }, {
209
- default: withCtx(() => [
210
- createVNode(unref(_sfc_main$7), {
211
- variant: "outline",
212
- disabled: unref(messageDialogState).busy,
213
- onClick: unref(resolveActiveMessageDialog)
214
- }, {
215
- default: withCtx(() => [
216
- currentDialog.value.options.closeButtonIcon ? (openBlock(), createBlock(resolveDynamicComponent(currentDialog.value.options.closeButtonIcon), {
217
- key: 0,
218
- class: "size-4"
219
- })) : createCommentVNode("", true),
220
- createTextVNode(" " + toDisplayString(currentDialog.value.options.closeText), 1)
221
- ]),
222
- _: 1
223
- }, 8, ["disabled", "onClick"])
224
- ]),
225
- _: 1
226
- })
227
- ]),
228
- _: 1
229
- })) : createCommentVNode("", true)
230
- ]),
231
- _: 1
232
- }, 8, ["open"]);
233
- };
234
- }
235
- });
236
- export {
237
- _sfc_main as _,
238
- closeMessageDialog as c,
239
- messageDialogState as m,
240
- resolveActiveMessageDialog as r,
241
- showMessageDialog as s
242
- };