@gspa/ui 0.1.3 → 0.1.4

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 (196) hide show
  1. package/README.md +18 -0
  2. package/dist/_plugin-vue_export-helper-BHFhmbuH.cjs +1 -0
  3. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  4. package/dist/components/Accordion.cjs +1 -0
  5. package/dist/components/Accordion.js +192 -0
  6. package/dist/components/AccordionItem.cjs +1 -0
  7. package/dist/components/AccordionItem.js +109 -0
  8. package/dist/components/AddReminderModal.cjs +1 -0
  9. package/dist/components/AddReminderModal.js +107 -0
  10. package/dist/components/Alert.cjs +1 -0
  11. package/dist/components/Alert.js +222 -0
  12. package/dist/components/Avatar.cjs +1 -0
  13. package/dist/components/Avatar.js +86 -0
  14. package/dist/components/Badge.cjs +1 -0
  15. package/dist/components/Badge.js +109 -0
  16. package/dist/components/Breadcrumb.cjs +1 -0
  17. package/dist/components/Breadcrumb.js +72 -0
  18. package/dist/components/Button.cjs +1 -0
  19. package/dist/components/Button.js +190 -0
  20. package/dist/components/ButtonGroup.cjs +1 -0
  21. package/dist/components/ButtonGroup.js +46 -0
  22. package/dist/components/Calendar.cjs +1 -0
  23. package/dist/components/Calendar.js +341 -0
  24. package/dist/components/Card.cjs +1 -0
  25. package/dist/components/Card.js +316 -0
  26. package/dist/components/CardBody.cjs +1 -0
  27. package/dist/components/CardBody.js +34 -0
  28. package/dist/components/CardContent.cjs +1 -0
  29. package/dist/components/CardContent.js +17 -0
  30. package/dist/components/CardFooter.cjs +1 -0
  31. package/dist/components/CardFooter.js +34 -0
  32. package/dist/components/CardHeader.cjs +1 -0
  33. package/dist/components/CardHeader.js +91 -0
  34. package/dist/components/CardTitle.cjs +1 -0
  35. package/dist/components/CardTitle.js +17 -0
  36. package/dist/components/Checkbox.cjs +1 -0
  37. package/dist/components/Checkbox.js +185 -0
  38. package/dist/components/CircularProgress.cjs +1 -0
  39. package/dist/components/CircularProgress.js +141 -0
  40. package/dist/components/DataTable.cjs +1 -0
  41. package/dist/components/DataTable.js +863 -0
  42. package/dist/components/DataTableCell.cjs +1 -0
  43. package/dist/components/DataTableCell.js +95 -0
  44. package/dist/components/DataTableFilters.cjs +1 -0
  45. package/dist/components/DataTableFilters.js +519 -0
  46. package/dist/components/DataTableHeader.cjs +1 -0
  47. package/dist/components/DataTableHeader.js +116 -0
  48. package/dist/components/DataTablePagination.cjs +1 -0
  49. package/dist/components/DataTablePagination.js +290 -0
  50. package/dist/components/DataTableRow.cjs +1 -0
  51. package/dist/components/DataTableRow.js +199 -0
  52. package/dist/components/DataTableToolBar.cjs +1 -0
  53. package/dist/components/DataTableToolBar.js +477 -0
  54. package/dist/components/DatePicker.cjs +1 -0
  55. package/dist/components/DatePicker.js +401 -0
  56. package/dist/components/Divider.cjs +1 -0
  57. package/dist/components/Divider.js +103 -0
  58. package/dist/components/Dropdown.cjs +1 -0
  59. package/dist/components/Dropdown.js +104 -0
  60. package/dist/components/DropdownItem.cjs +1 -0
  61. package/dist/components/DropdownItem.js +60 -0
  62. package/dist/components/EventsCalendar.cjs +1 -0
  63. package/dist/components/EventsCalendar.js +863 -0
  64. package/dist/components/FileUpload.cjs +1 -0
  65. package/dist/components/FileUpload.js +195 -0
  66. package/dist/components/FilterDrawer.cjs +1 -0
  67. package/dist/components/FilterDrawer.js +412 -0
  68. package/dist/components/Footer.cjs +1 -0
  69. package/dist/components/Footer.js +157 -0
  70. package/dist/components/FormField.cjs +1 -0
  71. package/dist/components/FormField.js +190 -0
  72. package/dist/components/Graph.cjs +1 -0
  73. package/dist/components/Graph.js +164 -0
  74. package/dist/components/GraphFilters.cjs +1 -0
  75. package/dist/components/GraphFilters.js +305 -0
  76. package/dist/components/Header.cjs +1 -0
  77. package/dist/components/Header.js +674 -0
  78. package/dist/components/Icon.cjs +1 -0
  79. package/dist/components/Icon.js +51 -0
  80. package/dist/components/Image.cjs +1 -0
  81. package/dist/components/Image.js +112 -0
  82. package/dist/components/Input.cjs +1 -0
  83. package/dist/components/Input.js +166 -0
  84. package/dist/components/InputGroup.cjs +1 -0
  85. package/dist/components/InputGroup.js +45 -0
  86. package/dist/components/Label.cjs +1 -0
  87. package/dist/components/Label.js +46 -0
  88. package/dist/components/Link.cjs +1 -0
  89. package/dist/components/Link.js +119 -0
  90. package/dist/components/ListItem.cjs +1 -0
  91. package/dist/components/ListItem.js +89 -0
  92. package/dist/components/Loader.cjs +1 -0
  93. package/dist/components/Loader.js +154 -0
  94. package/dist/components/Logo.cjs +1 -0
  95. package/dist/components/Logo.js +67 -0
  96. package/dist/components/MenuItem.cjs +1 -0
  97. package/dist/components/MenuItem.js +66 -0
  98. package/dist/components/Modal.cjs +1 -0
  99. package/dist/components/Modal.js +110 -0
  100. package/dist/components/ModalBody.cjs +1 -0
  101. package/dist/components/ModalBody.js +33 -0
  102. package/dist/components/ModalFooter.cjs +1 -0
  103. package/dist/components/ModalFooter.js +33 -0
  104. package/dist/components/ModalHeader.cjs +1 -0
  105. package/dist/components/ModalHeader.js +24 -0
  106. package/dist/components/MultiSelect.cjs +1 -0
  107. package/dist/components/MultiSelect.js +211 -0
  108. package/dist/components/Notification.cjs +1 -0
  109. package/dist/components/Notification.js +121 -0
  110. package/dist/components/Option.cjs +1 -0
  111. package/dist/components/Option.js +44 -0
  112. package/dist/components/Progress.cjs +1 -0
  113. package/dist/components/Progress.js +77 -0
  114. package/dist/components/ProgressBar.cjs +1 -0
  115. package/dist/components/ProgressBar.js +101 -0
  116. package/dist/components/Radio.cjs +1 -0
  117. package/dist/components/Radio.js +81 -0
  118. package/dist/components/RailNav.cjs +1 -0
  119. package/dist/components/RailNav.js +124 -0
  120. package/dist/components/ReminderConfig.cjs +1 -0
  121. package/dist/components/ReminderConfig.js +375 -0
  122. package/dist/components/ReusableForm.cjs +1 -0
  123. package/dist/components/ReusableForm.js +657 -0
  124. package/dist/components/ReusableFormModal.cjs +1 -0
  125. package/dist/components/ReusableFormModal.js +112 -0
  126. package/dist/components/RightDrawer.cjs +1 -0
  127. package/dist/components/RightDrawer.js +143 -0
  128. package/dist/components/Search.cjs +1 -0
  129. package/dist/components/Search.js +252 -0
  130. package/dist/components/Select.cjs +1 -0
  131. package/dist/components/Select.js +243 -0
  132. package/dist/components/Sidebar.cjs +1 -0
  133. package/dist/components/Sidebar.js +372 -0
  134. package/dist/components/Slider.cjs +1 -0
  135. package/dist/components/Slider.js +42 -0
  136. package/dist/components/Spinner.cjs +1 -0
  137. package/dist/components/Spinner.js +87 -0
  138. package/dist/components/Stepper.cjs +1 -0
  139. package/dist/components/Stepper.js +12 -0
  140. package/dist/components/StepperItem.cjs +1 -0
  141. package/dist/components/StepperItem.js +33 -0
  142. package/dist/components/Switch.cjs +1 -0
  143. package/dist/components/Switch.js +112 -0
  144. package/dist/components/Tab.cjs +1 -0
  145. package/dist/components/Tab.js +134 -0
  146. package/dist/components/TabPanel.cjs +1 -0
  147. package/dist/components/TabPanel.js +49 -0
  148. package/dist/components/Text.cjs +1 -0
  149. package/dist/components/Text.js +84 -0
  150. package/dist/components/Textarea.cjs +1 -0
  151. package/dist/components/Textarea.js +102 -0
  152. package/dist/components/ThemeConfigurator.cjs +1 -0
  153. package/dist/components/ThemeConfigurator.js +50 -0
  154. package/dist/components/Timeline.cjs +1 -0
  155. package/dist/components/Timeline.js +24 -0
  156. package/dist/components/TimelineItem.cjs +1 -0
  157. package/dist/components/TimelineItem.js +63 -0
  158. package/dist/components/Toast.cjs +1 -0
  159. package/dist/components/Toast.js +231 -0
  160. package/dist/components/Tooltip.cjs +1 -0
  161. package/dist/components/Tooltip.js +124 -0
  162. package/dist/components/Typography.cjs +1 -0
  163. package/dist/components/Typography.js +267 -0
  164. package/dist/components/charts/BarChart.cjs +1 -0
  165. package/dist/components/charts/BarChart.js +323 -0
  166. package/dist/components/charts/LineChart.cjs +1 -0
  167. package/dist/components/charts/LineChart.js +322 -0
  168. package/dist/components/charts/PieChart.cjs +1 -0
  169. package/dist/components/charts/PieChart.js +311 -0
  170. package/dist/components/charts/StackedBarChart.cjs +1 -0
  171. package/dist/components/charts/StackedBarChart.js +348 -0
  172. package/dist/components/widgets/DashboardWidget.cjs +1 -0
  173. package/dist/components/widgets/DashboardWidget.js +309 -0
  174. package/dist/directives/tooltip.cjs +47 -0
  175. package/dist/directives/tooltip.js +115 -0
  176. package/dist/index.cjs +1 -0
  177. package/dist/index.esm.js +311 -19548
  178. package/dist/layouts/AuthLayout.cjs +1 -0
  179. package/dist/layouts/AuthLayout.js +190 -0
  180. package/dist/layouts/DashboardLayout.cjs +1 -0
  181. package/dist/layouts/DashboardLayout.js +244 -0
  182. package/dist/layouts/DefaultLayout.cjs +1 -0
  183. package/dist/layouts/DefaultLayout.js +94 -0
  184. package/dist/layouts/ErrorLayout.cjs +1 -0
  185. package/dist/layouts/ErrorLayout.js +452 -0
  186. package/dist/lib/auth.cjs +1 -0
  187. package/dist/lib/auth.js +4 -0
  188. package/dist/lib/theme.cjs +1 -0
  189. package/dist/lib/theme.js +135 -0
  190. package/dist/lib/toast.cjs +1 -0
  191. package/dist/lib/toast.js +81 -0
  192. package/dist/tsconfig.tsbuildinfo +1 -1
  193. package/dist/utils/cn.cjs +1 -0
  194. package/dist/utils/cn.js +7 -0
  195. package/package.json +37 -7
  196. package/dist/index.js +0 -605
package/README.md CHANGED
@@ -190,6 +190,24 @@ describe('Component', () => {
190
190
 
191
191
  This document provides comprehensive usage examples and API reference for all Vue components and directives in GSPA UI.
192
192
 
193
+ ## Importing components
194
+
195
+ Import individual components when the application does not need the global plugin. Granular exports keep unrelated components out of the application bundle:
196
+
197
+ ```js
198
+ import Button from '@gspa/ui/components/Button'
199
+ import AuthLayout from '@gspa/ui/layouts/AuthLayout'
200
+ import '@gspa/ui/css'
201
+ ```
202
+
203
+ Nested components use the same convention:
204
+
205
+ ```js
206
+ import BarChart from '@gspa/ui/components/charts/BarChart'
207
+ ```
208
+
209
+ Named imports from `@gspa/ui` remain tree-shakeable. The default `VueUI` plugin intentionally registers every component and should only be used when an application needs the complete library.
210
+
193
211
  ## Button Authorization Access Control
194
212
 
195
213
  `Button` supports access-control props directly:
@@ -0,0 +1 @@
1
+ "use strict";const e=(t,o)=>{const c=t.__vccOpts||t;for(const[r,s]of o)c[r]=s;return c};exports._export_sfc=e;
@@ -0,0 +1,9 @@
1
+ const s = (t, r) => {
2
+ const o = t.__vccOpts || t;
3
+ for (const [c, e] of r)
4
+ o[c] = e;
5
+ return o;
6
+ };
7
+ export {
8
+ s as _
9
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("class-variance-authority"),c=require("../utils/cn.cjs"),B=["id","aria-expanded","aria-controls","onClick"],_={class:"flex items-center flex-1 min-w-0"},z={key:0},E=["id","aria-labelledby"],$={key:0},N={__name:"Accordion",props:{items:{type:Array,required:!0},modelValue:{type:[Number,Array],default:null},multiple:Boolean,variant:{type:String,default:"default",validator:i=>["default","bordered","filled","flush"].includes(i)},size:{type:String,default:"md",validator:i=>["sm","md","lg"].includes(i)},disabled:Boolean},emits:["update:modelValue","change"],setup(i,{emit:m}){const v={render(){return e.h("svg",{fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})])}},t=i,u=m,l=e.ref(t.multiple?Array.isArray(t.modelValue)?[...t.modelValue]:[]:typeof t.modelValue=="number"?[t.modelValue]:[]),p=a=>{if(!(t.disabled||t.items[a]?.disabled)){if(t.multiple){const n=l.value.indexOf(a);n>-1?l.value.splice(n,1):l.value.push(a),u("update:modelValue",[...l.value])}else{const n=l.value.includes(a)?null:a;l.value=n!==null?[n]:[],u("update:modelValue",n)}u("change",{index:a,expanded:l.value.includes(a)})}},s=a=>l.value.includes(a),f=d.cva("w-full",{variants:{variant:{default:"space-y-1",bordered:"space-y-3",filled:"space-y-3",flush:"divide-y divide-slate-200"}}}),h=d.cva("transition-all duration-200",{variants:{variant:{default:" border ui-border-strong rounded-lg overflow-hidden shadow-sm hover:shadow-md",bordered:" border-2 ui-border-strong rounded-xl overflow-hidden hover:border-(--ui-border)",filled:" border ui-border-strong rounded-xl overflow-hidden shadow-sm",flush:""}}}),b=d.cva("flex items-center justify-between w-full text-left transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-(--ui-primary) focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",{variants:{variant:{default:"hover:bg-(--ui-surface-strong)",bordered:"hover:bg-[color:color-mix(in oklab, var(--ui-primary-soft), transparent 50%)]",filled:"hover:bg-[color:color-mix(in oklab, var(--ui-surface), transparent 30%)]",flush:"hover:bg-(--ui-surface)"},size:{sm:"px-4 py-3",md:"px-5 py-4",lg:"px-6 py-5"}}}),y=d.cva("ml-4 shrink-0 ui-text transition-all duration-200",{variants:{expanded:{true:"rotate-180 ui-primary",false:""}}}),g=d.cva("overflow-hidden ui-text ui-surface",{variants:{size:{sm:"px-4 py-3 text-sm",md:"px-5 py-4 text-sm",lg:"px-6 py-5 text-base"}}}),k=e.computed(()=>c.cn(f({variant:t.variant}))),V=e.computed(()=>c.cn(h({variant:t.variant}))),C=a=>c.cn(b({variant:t.variant,size:t.size}),s(a)&&t.variant==="bordered"&&"bg-[color:color-mix(in oklab, var(--ui-primary-soft), transparent 70%)] border-(--ui-border-strong)",s(a)&&t.variant==="filled"&&"ui-surface",s(a)&&t.variant==="default"&&"ui-bg",(t.disabled||t.items[a]?.disabled)&&"cursor-not-allowed opacity-50"),w=a=>c.cn(y({expanded:s(a)})),x=e.computed(()=>c.cn(g({size:t.size})));return e.watch(()=>t.modelValue,a=>{t.multiple?l.value=Array.isArray(a)?[...a]:[]:l.value=typeof a=="number"?[a]:[]}),(a,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(k.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.items,(o,r)=>(e.openBlock(),e.createElementBlock("div",{key:o.id||r,class:e.normalizeClass(V.value)},[e.createElementVNode("button",{id:`header-${o.id||r}`,class:e.normalizeClass(C(r)),"aria-expanded":s(r),"aria-controls":`panel-${o.id||r}`,onClick:S=>p(r)},[e.createElementVNode("div",_,[e.renderSlot(a.$slots,`header-${r}`,{item:o,index:r,isExpanded:s(r)},()=>[o.title?(e.openBlock(),e.createElementBlock("div",z,e.toDisplayString(o.title),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("div",{class:e.normalizeClass(w(r))},[e.createVNode(v,{class:"w-5 h-5 transition-transform duration-200"})],2)],10,B),e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"opacity-0 max-h-0","enter-to-class":"opacity-100 max-h-[600px]","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"opacity-100 max-h-[600px]","leave-to-class":"opacity-0 max-h-0"},{default:e.withCtx(()=>[s(r)?(e.openBlock(),e.createElementBlock("div",{key:0,id:`panel-${o.id||r}`,class:e.normalizeClass(x.value),"aria-labelledby":`header-${o.id||r}`,role:"region"},[e.renderSlot(a.$slots,`content-${r}`,{item:o,index:r},()=>[e.renderSlot(a.$slots,"content",{item:o,index:r},()=>[o.content?(e.openBlock(),e.createElementBlock("div",$,e.toDisplayString(o.content),1)):e.createCommentVNode("",!0)])])],10,E)):e.createCommentVNode("",!0)]),_:2},1024)],2))),128))],2))}};exports.default=N;
@@ -0,0 +1,192 @@
1
+ import { ref as j, computed as m, watch as D, createElementBlock as n, openBlock as d, normalizeClass as u, Fragment as q, renderList as F, createElementVNode as f, createVNode as y, renderSlot as h, createCommentVNode as b, toDisplayString as g, Transition as L, withCtx as O, h as w } from "vue";
2
+ import { cva as c } from "class-variance-authority";
3
+ import { cn as p } from "../utils/cn.js";
4
+ const T = ["id", "aria-expanded", "aria-controls", "onClick"], G = { class: "flex items-center flex-1 min-w-0" }, H = { key: 0 }, J = ["id", "aria-labelledby"], K = { key: 0 }, U = {
5
+ __name: "Accordion",
6
+ props: {
7
+ items: {
8
+ type: Array,
9
+ required: !0
10
+ },
11
+ modelValue: {
12
+ type: [Number, Array],
13
+ default: null
14
+ },
15
+ multiple: Boolean,
16
+ variant: {
17
+ type: String,
18
+ default: "default",
19
+ validator: (i) => ["default", "bordered", "filled", "flush"].includes(i)
20
+ },
21
+ size: {
22
+ type: String,
23
+ default: "md",
24
+ validator: (i) => ["sm", "md", "lg"].includes(i)
25
+ },
26
+ disabled: Boolean
27
+ },
28
+ emits: ["update:modelValue", "change"],
29
+ setup(i, { emit: k }) {
30
+ const x = {
31
+ render() {
32
+ return w("svg", {
33
+ fill: "none",
34
+ viewBox: "0 0 24 24",
35
+ "stroke-width": "1.5",
36
+ stroke: "currentColor"
37
+ }, [
38
+ w("path", {
39
+ "stroke-linecap": "round",
40
+ "stroke-linejoin": "round",
41
+ d: "m19.5 8.25-7.5 7.5-7.5-7.5"
42
+ })
43
+ ]);
44
+ }
45
+ }, a = i, v = k, o = j(
46
+ a.multiple ? Array.isArray(a.modelValue) ? [...a.modelValue] : [] : typeof a.modelValue == "number" ? [a.modelValue] : []
47
+ ), V = (e) => {
48
+ if (!(a.disabled || a.items[e]?.disabled)) {
49
+ if (a.multiple) {
50
+ const l = o.value.indexOf(e);
51
+ l > -1 ? o.value.splice(l, 1) : o.value.push(e), v("update:modelValue", [...o.value]);
52
+ } else {
53
+ const l = o.value.includes(e) ? null : e;
54
+ o.value = l !== null ? [l] : [], v("update:modelValue", l);
55
+ }
56
+ v("change", { index: e, expanded: o.value.includes(e) });
57
+ }
58
+ }, s = (e) => o.value.includes(e), C = c("w-full", {
59
+ variants: {
60
+ variant: {
61
+ default: "space-y-1",
62
+ bordered: "space-y-3",
63
+ filled: "space-y-3",
64
+ flush: "divide-y divide-slate-200"
65
+ }
66
+ }
67
+ }), _ = c("transition-all duration-200", {
68
+ variants: {
69
+ variant: {
70
+ default: " border ui-border-strong rounded-lg overflow-hidden shadow-sm hover:shadow-md",
71
+ bordered: " border-2 ui-border-strong rounded-xl overflow-hidden hover:border-(--ui-border)",
72
+ filled: " border ui-border-strong rounded-xl overflow-hidden shadow-sm",
73
+ flush: ""
74
+ }
75
+ }
76
+ }), $ = c(
77
+ "flex items-center justify-between w-full text-left transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-(--ui-primary) focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
78
+ {
79
+ variants: {
80
+ variant: {
81
+ default: "hover:bg-(--ui-surface-strong)",
82
+ bordered: "hover:bg-[color:color-mix(in oklab, var(--ui-primary-soft), transparent 50%)]",
83
+ filled: "hover:bg-[color:color-mix(in oklab, var(--ui-surface), transparent 30%)]",
84
+ flush: "hover:bg-(--ui-surface)"
85
+ },
86
+ size: {
87
+ sm: "px-4 py-3",
88
+ md: "px-5 py-4",
89
+ lg: "px-6 py-5"
90
+ }
91
+ }
92
+ }
93
+ ), z = c("ml-4 shrink-0 ui-text transition-all duration-200", {
94
+ variants: {
95
+ expanded: {
96
+ true: "rotate-180 ui-primary",
97
+ false: ""
98
+ }
99
+ }
100
+ }), A = c("overflow-hidden ui-text ui-surface", {
101
+ variants: {
102
+ size: {
103
+ sm: "px-4 py-3 text-sm",
104
+ md: "px-5 py-4 text-sm",
105
+ lg: "px-6 py-5 text-base"
106
+ }
107
+ }
108
+ }), B = m(
109
+ () => p(C({ variant: a.variant }))
110
+ ), E = m(
111
+ () => p(_({ variant: a.variant }))
112
+ ), N = (e) => p(
113
+ $({ variant: a.variant, size: a.size }),
114
+ s(e) && a.variant === "bordered" && "bg-[color:color-mix(in oklab, var(--ui-primary-soft), transparent 70%)] border-(--ui-border-strong)",
115
+ s(e) && a.variant === "filled" && "ui-surface",
116
+ s(e) && a.variant === "default" && "ui-bg",
117
+ (a.disabled || a.items[e]?.disabled) && "cursor-not-allowed opacity-50"
118
+ ), S = (e) => p(z({ expanded: s(e) })), I = m(
119
+ () => p(A({ size: a.size }))
120
+ );
121
+ return D(
122
+ () => a.modelValue,
123
+ (e) => {
124
+ a.multiple ? o.value = Array.isArray(e) ? [...e] : [] : o.value = typeof e == "number" ? [e] : [];
125
+ }
126
+ ), (e, l) => (d(), n("div", {
127
+ class: u(B.value)
128
+ }, [
129
+ (d(!0), n(q, null, F(i.items, (t, r) => (d(), n("div", {
130
+ key: t.id || r,
131
+ class: u(E.value)
132
+ }, [
133
+ f("button", {
134
+ id: `header-${t.id || r}`,
135
+ class: u(N(r)),
136
+ "aria-expanded": s(r),
137
+ "aria-controls": `panel-${t.id || r}`,
138
+ onClick: (M) => V(r)
139
+ }, [
140
+ f("div", G, [
141
+ h(e.$slots, `header-${r}`, {
142
+ item: t,
143
+ index: r,
144
+ isExpanded: s(r)
145
+ }, () => [
146
+ t.title ? (d(), n("div", H, g(t.title), 1)) : b("", !0)
147
+ ])
148
+ ]),
149
+ f("div", {
150
+ class: u(S(r))
151
+ }, [
152
+ y(x, { class: "w-5 h-5 transition-transform duration-200" })
153
+ ], 2)
154
+ ], 10, T),
155
+ y(L, {
156
+ "enter-active-class": "transition-all duration-300 ease-out",
157
+ "enter-from-class": "opacity-0 max-h-0",
158
+ "enter-to-class": "opacity-100 max-h-[600px]",
159
+ "leave-active-class": "transition-all duration-200 ease-in",
160
+ "leave-from-class": "opacity-100 max-h-[600px]",
161
+ "leave-to-class": "opacity-0 max-h-0"
162
+ }, {
163
+ default: O(() => [
164
+ s(r) ? (d(), n("div", {
165
+ key: 0,
166
+ id: `panel-${t.id || r}`,
167
+ class: u(I.value),
168
+ "aria-labelledby": `header-${t.id || r}`,
169
+ role: "region"
170
+ }, [
171
+ h(e.$slots, `content-${r}`, {
172
+ item: t,
173
+ index: r
174
+ }, () => [
175
+ h(e.$slots, "content", {
176
+ item: t,
177
+ index: r
178
+ }, () => [
179
+ t.content ? (d(), n("div", K, g(t.content), 1)) : b("", !0)
180
+ ])
181
+ ])
182
+ ], 10, J)) : b("", !0)
183
+ ]),
184
+ _: 2
185
+ }, 1024)
186
+ ], 2))), 128))
187
+ ], 2));
188
+ }
189
+ };
190
+ export {
191
+ U as default
192
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=require("class-variance-authority"),s=require("../utils/cn.cjs"),p=require("./Button.cjs"),h={__name:"AccordionItem",props:{variant:{type:String,default:"default",validator:a=>["default","bordered","filled","flush"].includes(a)},size:{type:String,default:"md",validator:a=>["sm","md","lg"].includes(a)}},setup(a){const l={render(){return e.h("svg",{fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})])}},r=a,t=e.ref(!1),i=()=>t.value=!t.value,c=n.cva("",{variants:{variant:{default:"",bordered:"border ui-border-strong rounded-lg overflow-hidden",filled:"ui-surface-strong border ui-border-strong rounded-lg overflow-hidden",flush:""}}}),u=n.cva("flex items-center justify-between w-full text-left transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-(--ui-primary) focus:ring-offset-2",{variants:{size:{sm:"p-3 text-sm",md:"p-4 text-base",lg:"p-6 text-lg"}}}),d=n.cva("overflow-hidden ui-text border-t ui-border-strong ",{variants:{size:{sm:"p-3 text-sm",md:"p-4 text-base",lg:"p-6 text-lg"}}}),m=e.computed(()=>s.cn(c({variant:r.variant}))),v=e.computed(()=>s.cn(u({size:r.size}))),f=e.computed(()=>s.cn(d({size:r.size})));return(o,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(m.value)},[e.createVNode(p.default,{class:e.normalizeClass(v.value),"aria-expanded":t.value,onClick:i},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"header",{isOpen:t.value}),e.createVNode(l,{class:e.normalizeClass(e.unref(s.cn)("w-5 h-5 transition-transform ml-2",{"rotate-180":t.value}))},null,8,["class"])]),_:3},8,["class","aria-expanded"]),e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"opacity-0 max-h-0","enter-to-class":"opacity-100 max-h-96","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"opacity-100 max-h-96","leave-to-class":"opacity-0 max-h-0"},{default:e.withCtx(()=>[t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(f.value)},[e.renderSlot(o.$slots,"content",{isOpen:t.value})],2)):e.createCommentVNode("",!0)]),_:3})],2))}};exports.default=h;
@@ -0,0 +1,109 @@
1
+ import { ref as C, computed as o, createElementBlock as d, openBlock as c, normalizeClass as a, createVNode as n, withCtx as u, renderSlot as f, unref as k, Transition as z, createCommentVNode as _, h as m } from "vue";
2
+ import { cva as i } from "class-variance-authority";
3
+ import { cn as s } from "../utils/cn.js";
4
+ import V from "./Button.js";
5
+ const I = {
6
+ __name: "AccordionItem",
7
+ props: {
8
+ variant: {
9
+ type: String,
10
+ default: "default",
11
+ validator: (t) => ["default", "bordered", "filled", "flush"].includes(t)
12
+ },
13
+ size: {
14
+ type: String,
15
+ default: "md",
16
+ validator: (t) => ["sm", "md", "lg"].includes(t)
17
+ }
18
+ },
19
+ setup(t) {
20
+ const v = {
21
+ render() {
22
+ return m("svg", {
23
+ fill: "none",
24
+ viewBox: "0 0 24 24",
25
+ "stroke-width": "1.5",
26
+ stroke: "currentColor"
27
+ }, [
28
+ m("path", {
29
+ "stroke-linecap": "round",
30
+ "stroke-linejoin": "round",
31
+ d: "m19.5 8.25-7.5 7.5-7.5-7.5"
32
+ })
33
+ ]);
34
+ }
35
+ }, r = t, e = C(!1), p = () => e.value = !e.value, g = i("", {
36
+ variants: {
37
+ variant: {
38
+ default: "",
39
+ bordered: "border ui-border-strong rounded-lg overflow-hidden",
40
+ filled: "ui-surface-strong border ui-border-strong rounded-lg overflow-hidden",
41
+ flush: ""
42
+ }
43
+ }
44
+ }), h = i(
45
+ "flex items-center justify-between w-full text-left transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-(--ui-primary) focus:ring-offset-2",
46
+ {
47
+ variants: {
48
+ size: {
49
+ sm: "p-3 text-sm",
50
+ md: "p-4 text-base",
51
+ lg: "p-6 text-lg"
52
+ }
53
+ }
54
+ }
55
+ ), x = i("overflow-hidden ui-text border-t ui-border-strong ", {
56
+ variants: {
57
+ size: {
58
+ sm: "p-3 text-sm",
59
+ md: "p-4 text-base",
60
+ lg: "p-6 text-lg"
61
+ }
62
+ }
63
+ }), b = o(
64
+ () => s(g({ variant: r.variant }))
65
+ ), w = o(
66
+ () => s(h({ size: r.size }))
67
+ ), y = o(
68
+ () => s(x({ size: r.size }))
69
+ );
70
+ return (l, B) => (c(), d("div", {
71
+ class: a(b.value)
72
+ }, [
73
+ n(V, {
74
+ class: a(w.value),
75
+ "aria-expanded": e.value,
76
+ onClick: p
77
+ }, {
78
+ default: u(() => [
79
+ f(l.$slots, "header", { isOpen: e.value }),
80
+ n(v, {
81
+ class: a(k(s)("w-5 h-5 transition-transform ml-2", { "rotate-180": e.value }))
82
+ }, null, 8, ["class"])
83
+ ]),
84
+ _: 3
85
+ }, 8, ["class", "aria-expanded"]),
86
+ n(z, {
87
+ "enter-active-class": "transition-all duration-300 ease-out",
88
+ "enter-from-class": "opacity-0 max-h-0",
89
+ "enter-to-class": "opacity-100 max-h-96",
90
+ "leave-active-class": "transition-all duration-200 ease-in",
91
+ "leave-from-class": "opacity-100 max-h-96",
92
+ "leave-to-class": "opacity-0 max-h-0"
93
+ }, {
94
+ default: u(() => [
95
+ e.value ? (c(), d("div", {
96
+ key: 0,
97
+ class: a(y.value)
98
+ }, [
99
+ f(l.$slots, "content", { isOpen: e.value })
100
+ ], 2)) : _("", !0)
101
+ ]),
102
+ _: 3
103
+ })
104
+ ], 2));
105
+ }
106
+ };
107
+ export {
108
+ I as default
109
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),y=require("./Modal.cjs"),V=require("./MultiSelect.cjs"),x={class:"p-6 space-y-6"},b={class:"text-sm ui-text"},N={class:"font-medium"},E={class:"space-y-1.5"},g={class:"space-y-2"},k={class:"flex flex-wrap gap-2"},C=["onClick"],B={class:"space-y-2"},S={__name:"AddReminderModal",props:{modelValue:Boolean,availableRecipients:{type:Array,default:()=>[]},sendTypeOptions:{type:Array,default:()=>[]},modelName:{type:String,default:""}},emits:["update:modelValue","save"],setup(u,{emit:c}){const i=c,r=u,s=e.computed({get:()=>r.modelValue,set:o=>i("update:modelValue",o)}),a=e.ref(0),n=e.ref("Email"),d=e.ref([]),p=e.computed(()=>r.availableRecipients.map(o=>({value:o,label:o}))),m=()=>{a.value=0,n.value="Email",d.value=[]},v=()=>{i("save",{days:Number(a.value)||0,sendType:n.value,recipients:[...d.value]}),s.value=!1,m()},f=()=>{s.value=!1,m()};return(o,t)=>(e.openBlock(),e.createBlock(y.default,{modelValue:s.value,"onUpdate:modelValue":t[2]||(t[2]=l=>s.value=l),size:"xl"},{default:e.withCtx(()=>[e.createElementVNode("div",x,[e.createElementVNode("div",null,[t[4]||(t[4]=e.createElementVNode("h3",{class:"text-xl font-semibold ui-text"}," Add Reminder ",-1)),e.createElementVNode("p",b,[t[3]||(t[3]=e.createTextVNode(" Configure reminder rules for ",-1)),e.createElementVNode("span",N,e.toDisplayString(u.modelName),1)])]),e.createElementVNode("div",E,[t[5]||(t[5]=e.createElementVNode("label",{class:"text-sm font-medium ui-text"}," Days Before Due Date ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=l=>a.value=l),type:"number",min:"0",class:"w-full px-3 py-2.5 border rounded-md focus:ring-2 focus:ring-(--ui-primary) focus:outline-none ui-surface"},null,512),[[e.vModelText,a.value]])]),e.createElementVNode("div",g,[t[6]||(t[6]=e.createElementVNode("label",{class:"text-sm font-medium ui-text"}," Notification Channel ",-1)),e.createElementVNode("div",k,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.sendTypeOptions,l=>(e.openBlock(),e.createElementBlock("button",{key:l.value,type:"button",class:e.normalizeClass(["px-4 py-2 rounded-md text-sm font-medium transition",n.value===l.value?"ui-primary-bg ui-text shadow":" border ui-surface ui-text hover:brightness-105"]),onClick:T=>n.value=l.value},e.toDisplayString(l.label),11,C))),128))])]),e.createElementVNode("div",B,[t[7]||(t[7]=e.createElementVNode("label",{class:"text-sm font-medium ui-text"}," Recipients ",-1)),e.createVNode(V.default,{modelValue:d.value,"onUpdate:modelValue":t[1]||(t[1]=l=>d.value=l),options:p.value,placeholder:"Select recipients..."},null,8,["modelValue","options"])]),e.createElementVNode("div",{class:"flex justify-end gap-3 pt-4 border-t"},[e.createElementVNode("button",{type:"button",class:"px-4 py-2 rounded-md border ui-surface ui-text hover:brightness-105",onClick:f}," Cancel "),e.createElementVNode("button",{type:"button",class:"px-5 py-2 rounded-md ui-primary-bg ui-text hover:bg-(--ui-primary-strong) shadow",onClick:v}," Add Reminder ")])])]),_:1},8,["modelValue"]))}};exports.default=S;
@@ -0,0 +1,107 @@
1
+ import { computed as v, ref as d, createBlock as C, openBlock as r, withCtx as k, createElementVNode as t, createTextVNode as N, toDisplayString as f, withDirectives as _, vModelText as w, createElementBlock as y, Fragment as R, renderList as T, normalizeClass as h, createVNode as A } from "vue";
2
+ import B from "./Modal.js";
3
+ import D from "./MultiSelect.js";
4
+ const E = { class: "p-6 space-y-6" }, O = { class: "text-sm ui-text" }, S = { class: "font-medium" }, U = { class: "space-y-1.5" }, $ = { class: "space-y-2" }, z = { class: "flex flex-wrap gap-2" }, M = ["onClick"], j = { class: "space-y-2" }, H = {
5
+ __name: "AddReminderModal",
6
+ props: {
7
+ modelValue: Boolean,
8
+ availableRecipients: {
9
+ type: Array,
10
+ default: () => []
11
+ },
12
+ sendTypeOptions: {
13
+ type: Array,
14
+ default: () => []
15
+ },
16
+ modelName: {
17
+ type: String,
18
+ default: ""
19
+ }
20
+ },
21
+ emits: ["update:modelValue", "save"],
22
+ setup(u, { emit: x }) {
23
+ const m = x, p = u, a = v({
24
+ get: () => p.modelValue,
25
+ set: (l) => m("update:modelValue", l)
26
+ }), o = d(0), i = d("Email"), n = d([]), b = v(
27
+ () => p.availableRecipients.map((l) => ({
28
+ value: l,
29
+ label: l
30
+ }))
31
+ ), c = () => {
32
+ o.value = 0, i.value = "Email", n.value = [];
33
+ }, g = () => {
34
+ m("save", {
35
+ days: Number(o.value) || 0,
36
+ sendType: i.value,
37
+ recipients: [...n.value]
38
+ }), a.value = !1, c();
39
+ }, V = () => {
40
+ a.value = !1, c();
41
+ };
42
+ return (l, e) => (r(), C(B, {
43
+ modelValue: a.value,
44
+ "onUpdate:modelValue": e[2] || (e[2] = (s) => a.value = s),
45
+ size: "xl"
46
+ }, {
47
+ default: k(() => [
48
+ t("div", E, [
49
+ t("div", null, [
50
+ e[4] || (e[4] = t("h3", { class: "text-xl font-semibold ui-text" }, " Add Reminder ", -1)),
51
+ t("p", O, [
52
+ e[3] || (e[3] = N(" Configure reminder rules for ", -1)),
53
+ t("span", S, f(u.modelName), 1)
54
+ ])
55
+ ]),
56
+ t("div", U, [
57
+ e[5] || (e[5] = t("label", { class: "text-sm font-medium ui-text" }, " Days Before Due Date ", -1)),
58
+ _(t("input", {
59
+ "onUpdate:modelValue": e[0] || (e[0] = (s) => o.value = s),
60
+ type: "number",
61
+ min: "0",
62
+ class: "w-full px-3 py-2.5 border rounded-md focus:ring-2 focus:ring-(--ui-primary) focus:outline-none ui-surface"
63
+ }, null, 512), [
64
+ [w, o.value]
65
+ ])
66
+ ]),
67
+ t("div", $, [
68
+ e[6] || (e[6] = t("label", { class: "text-sm font-medium ui-text" }, " Notification Channel ", -1)),
69
+ t("div", z, [
70
+ (r(!0), y(R, null, T(u.sendTypeOptions, (s) => (r(), y("button", {
71
+ key: s.value,
72
+ type: "button",
73
+ class: h(["px-4 py-2 rounded-md text-sm font-medium transition", i.value === s.value ? "ui-primary-bg ui-text shadow" : " border ui-surface ui-text hover:brightness-105"]),
74
+ onClick: (F) => i.value = s.value
75
+ }, f(s.label), 11, M))), 128))
76
+ ])
77
+ ]),
78
+ t("div", j, [
79
+ e[7] || (e[7] = t("label", { class: "text-sm font-medium ui-text" }, " Recipients ", -1)),
80
+ A(D, {
81
+ modelValue: n.value,
82
+ "onUpdate:modelValue": e[1] || (e[1] = (s) => n.value = s),
83
+ options: b.value,
84
+ placeholder: "Select recipients..."
85
+ }, null, 8, ["modelValue", "options"])
86
+ ]),
87
+ t("div", { class: "flex justify-end gap-3 pt-4 border-t" }, [
88
+ t("button", {
89
+ type: "button",
90
+ class: "px-4 py-2 rounded-md border ui-surface ui-text hover:brightness-105",
91
+ onClick: V
92
+ }, " Cancel "),
93
+ t("button", {
94
+ type: "button",
95
+ class: "px-5 py-2 rounded-md ui-primary-bg ui-text hover:bg-(--ui-primary-strong) shadow",
96
+ onClick: g
97
+ }, " Add Reminder ")
98
+ ])
99
+ ])
100
+ ]),
101
+ _: 1
102
+ }, 8, ["modelValue"]));
103
+ }
104
+ };
105
+ export {
106
+ H as default
107
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),p=require("class-variance-authority"),C=require("../utils/cn.cjs"),y=require("./Button.cjs"),x={class:"flex items-start gap-3"},B={key:0,class:"shrink-0 mt-0.5"},b={class:"flex-1 min-w-0"},V={key:0,class:"font-medium text-sm mb-1"},N={key:1,class:"mt-3 flex gap-2"},z=["aria-label"],M=Object.assign({inheritAttrs:!1},{__name:"Alert",props:{variant:{type:String,default:"info",validator:t=>["info","success","warning","error","default","danger"].includes(t)},title:String,message:String,dismissible:{type:Boolean,default:!1},dismissLabel:{type:String,default:"Dismiss alert"},showIcon:{type:Boolean,default:!0},actions:{type:Array,default:()=>[]},autoClose:{type:[Boolean,Number],default:!1}},emits:["dismiss","action"],setup(t,{emit:u}){const o=t,s=u,a=e.ref(!0),i=()=>{a.value=!1,s("dismiss")},d=r=>{s("action",r),r.onClick&&r.onClick()};if(o.autoClose){const r=typeof o.autoClose=="number"?o.autoClose:5e3;setTimeout(i,r)}const l={render(){return e.h("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01M21 12A9 9 0 1112 3a9 9 0 019 9z"})])}},m={render(){return e.h("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2l4-4m5 2a9 9 0 11-18 0a9 9 0 0118 0z"})])}},g={render(){return e.h("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01M10.29 3.86L1.82 18a1.5 1.5 0 001.29 2.25h18.78a1.5 1.5 0 001.29-2.25L13.71 3.86a1.5 1.5 0 00-2.42 0z"})])}},c={render(){return e.h("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0a9 9 0 0118 0z"})])}},v={render(){return e.h("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e.h("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})])}},f=e.computed(()=>({info:l,success:m,warning:g,error:c,default:l,danger:c})[o.variant]),h=p.cva("relative w-full rounded-lg border p-4 flex items-start gap-3 ",{variants:{variant:{default:"ui-surface ui-text ",danger:"ui-danger-soft ui-danger",info:"ui-primary-soft ui-primary",success:"ui-success-soft ui-success",warning:"ui-warning-soft ui-warning",error:"ui-danger-soft ui-danger"}},defaultVariants:{variant:"default"}}),k=e.computed(()=>["w-5 h-5",{info:"ui-primary",success:"ui-success",warning:"ui-warning",error:"ui-danger",default:"ui-text",danger:"ui-danger"}[o.variant]]),w=e.computed(()=>["shrink-0 p-1 rounded-md transition-colors duration-200",{info:"ui-primary hover:text-(--ui-primary) hover:bg-(--ui-primary-soft)",success:"ui-success hover:text-(--ui-success) hover:bg-(--ui-success-soft)",warning:"ui-warning hover:text-(--ui-warning) hover:bg-(--ui-warning-soft)",error:"ui-danger hover:text-(--ui-danger) hover:bg-(--ui-danger-soft)",default:"ui-text hover:text-(--ui-text) hover:bg-(--ui-surface)",danger:"ui-danger hover:text-(--ui-danger) hover:bg-(--ui-danger-soft)"}[o.variant]]);return(r,S)=>(e.openBlock(),e.createBlock(e.Transition,{"enter-active-class":"transition-all duration-300","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-200","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(C.cn)(e.unref(h)({variant:t.variant}),r.$attrs.class)),role:"alert"},[e.createElementVNode("div",x,[t.showIcon?(e.openBlock(),e.createElementBlock("div",B,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.value),{class:e.normalizeClass(k.value)},null,8,["class"]))])):e.createCommentVNode("",!0),e.createElementVNode("div",b,[t.title?(e.openBlock(),e.createElementBlock("h4",V,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["text-sm",{"mt-0":!t.title,"mt-1":t.title}])},[e.renderSlot(r.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)])],2),r.$slots.actions||t.actions.length>0?(e.openBlock(),e.createElementBlock("div",N,[e.renderSlot(r.$slots,"actions",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,n=>(e.openBlock(),e.createBlock(y.default,{key:n.label,variant:n.variant||"outline",size:n.size||"sm",onClick:E=>d(n)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["variant","size","onClick"]))),128))])])):e.createCommentVNode("",!0)]),t.dismissible?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(w.value),"aria-label":t.dismissLabel,onClick:i},[e.createVNode(v,{class:"w-4 h-4"})],10,z)):e.createCommentVNode("",!0)])],2)):e.createCommentVNode("",!0)]),_:3}))}});exports.default=M;