@gspa/ui 0.1.3 → 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 (280) hide show
  1. package/README.md +35 -0
  2. package/dist/Button.vue_vue_type_script_setup_true_lang-B3TkBTvG.js +205 -0
  3. package/dist/Button.vue_vue_type_script_setup_true_lang-DZxttvYH.cjs +1 -0
  4. package/dist/DataTable.css +1 -0
  5. package/dist/DataTableToolBar.css +1 -0
  6. package/dist/FormField.vue_vue_type_script_setup_true_lang-DimMUyA-.js +205 -0
  7. package/dist/FormField.vue_vue_type_script_setup_true_lang-mEO-VA6R.cjs +1 -0
  8. package/dist/Header.css +1 -0
  9. package/dist/Input.vue_vue_type_script_setup_true_lang-C1OQn24h.cjs +1 -0
  10. package/dist/Input.vue_vue_type_script_setup_true_lang-CpBoY97r.js +137 -0
  11. package/dist/Loader.css +1 -0
  12. package/dist/ReminderConfig.css +1 -0
  13. package/dist/ReusableForm.css +1 -0
  14. package/dist/Sidebar.css +1 -0
  15. package/dist/Toast.css +1 -0
  16. package/dist/_plugin-vue_export-helper-BHFhmbuH.cjs +1 -0
  17. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  18. package/dist/components/Accordion.cjs +1 -0
  19. package/dist/components/Accordion.js +192 -0
  20. package/dist/components/AccordionItem.cjs +1 -0
  21. package/dist/components/AccordionItem.js +109 -0
  22. package/dist/components/AddReminderModal.cjs +1 -0
  23. package/dist/components/AddReminderModal.js +107 -0
  24. package/dist/components/Alert.cjs +1 -0
  25. package/dist/components/Alert.js +227 -0
  26. package/dist/components/Avatar.cjs +1 -0
  27. package/dist/components/Avatar.js +86 -0
  28. package/dist/components/Badge.cjs +1 -0
  29. package/dist/components/Badge.js +109 -0
  30. package/dist/components/Breadcrumb.cjs +1 -0
  31. package/dist/components/Breadcrumb.js +72 -0
  32. package/dist/components/Button.cjs +1 -0
  33. package/dist/components/Button.js +4 -0
  34. package/dist/components/ButtonGroup.cjs +1 -0
  35. package/dist/components/ButtonGroup.js +46 -0
  36. package/dist/components/Calendar.cjs +1 -0
  37. package/dist/components/Calendar.js +341 -0
  38. package/dist/components/Card.cjs +1 -0
  39. package/dist/components/Card.js +316 -0
  40. package/dist/components/CardBody.cjs +1 -0
  41. package/dist/components/CardBody.js +34 -0
  42. package/dist/components/CardContent.cjs +1 -0
  43. package/dist/components/CardContent.js +17 -0
  44. package/dist/components/CardFooter.cjs +1 -0
  45. package/dist/components/CardFooter.js +34 -0
  46. package/dist/components/CardHeader.cjs +1 -0
  47. package/dist/components/CardHeader.js +91 -0
  48. package/dist/components/CardTitle.cjs +1 -0
  49. package/dist/components/CardTitle.js +17 -0
  50. package/dist/components/Checkbox.cjs +1 -0
  51. package/dist/components/Checkbox.js +185 -0
  52. package/dist/components/CircularProgress.cjs +1 -0
  53. package/dist/components/CircularProgress.js +141 -0
  54. package/dist/components/DataTable.cjs +1 -0
  55. package/dist/components/DataTable.js +863 -0
  56. package/dist/components/DataTableCell.cjs +1 -0
  57. package/dist/components/DataTableCell.js +95 -0
  58. package/dist/components/DataTableFilters.cjs +1 -0
  59. package/dist/components/DataTableFilters.js +519 -0
  60. package/dist/components/DataTableHeader.cjs +1 -0
  61. package/dist/components/DataTableHeader.js +116 -0
  62. package/dist/components/DataTablePagination.cjs +1 -0
  63. package/dist/components/DataTablePagination.js +290 -0
  64. package/dist/components/DataTableRow.cjs +1 -0
  65. package/dist/components/DataTableRow.js +199 -0
  66. package/dist/components/DataTableToolBar.cjs +1 -0
  67. package/dist/components/DataTableToolBar.js +477 -0
  68. package/dist/components/DatePicker.cjs +1 -0
  69. package/dist/components/DatePicker.js +401 -0
  70. package/dist/components/Divider.cjs +1 -0
  71. package/dist/components/Divider.js +103 -0
  72. package/dist/components/Dropdown.cjs +1 -0
  73. package/dist/components/Dropdown.js +104 -0
  74. package/dist/components/DropdownItem.cjs +1 -0
  75. package/dist/components/DropdownItem.js +60 -0
  76. package/dist/components/EventsCalendar.cjs +1 -0
  77. package/dist/components/EventsCalendar.js +863 -0
  78. package/dist/components/FileUpload.cjs +1 -0
  79. package/dist/components/FileUpload.js +195 -0
  80. package/dist/components/FilterDrawer.cjs +1 -0
  81. package/dist/components/FilterDrawer.js +412 -0
  82. package/dist/components/Footer.cjs +1 -0
  83. package/dist/components/Footer.js +157 -0
  84. package/dist/components/FormField.cjs +1 -0
  85. package/dist/components/FormField.js +4 -0
  86. package/dist/components/Graph.cjs +1 -0
  87. package/dist/components/Graph.js +164 -0
  88. package/dist/components/GraphFilters.cjs +1 -0
  89. package/dist/components/GraphFilters.js +305 -0
  90. package/dist/components/Header.cjs +1 -0
  91. package/dist/components/Header.js +674 -0
  92. package/dist/components/Icon.cjs +1 -0
  93. package/dist/components/Icon.js +58 -0
  94. package/dist/components/Image.cjs +1 -0
  95. package/dist/components/Image.js +112 -0
  96. package/dist/components/Input.cjs +1 -0
  97. package/dist/components/Input.js +4 -0
  98. package/dist/components/InputGroup.cjs +1 -0
  99. package/dist/components/InputGroup.js +45 -0
  100. package/dist/components/Label.cjs +1 -0
  101. package/dist/components/Label.js +46 -0
  102. package/dist/components/Link.cjs +1 -0
  103. package/dist/components/Link.js +119 -0
  104. package/dist/components/ListItem.cjs +1 -0
  105. package/dist/components/ListItem.js +89 -0
  106. package/dist/components/Loader.cjs +1 -0
  107. package/dist/components/Loader.js +154 -0
  108. package/dist/components/Logo.cjs +1 -0
  109. package/dist/components/Logo.js +67 -0
  110. package/dist/components/MenuItem.cjs +1 -0
  111. package/dist/components/MenuItem.js +66 -0
  112. package/dist/components/Modal.cjs +1 -0
  113. package/dist/components/Modal.js +110 -0
  114. package/dist/components/ModalBody.cjs +1 -0
  115. package/dist/components/ModalBody.js +33 -0
  116. package/dist/components/ModalFooter.cjs +1 -0
  117. package/dist/components/ModalFooter.js +33 -0
  118. package/dist/components/ModalHeader.cjs +1 -0
  119. package/dist/components/ModalHeader.js +24 -0
  120. package/dist/components/MultiSelect.cjs +1 -0
  121. package/dist/components/MultiSelect.js +211 -0
  122. package/dist/components/Notification.cjs +1 -0
  123. package/dist/components/Notification.js +121 -0
  124. package/dist/components/Option.cjs +1 -0
  125. package/dist/components/Option.js +44 -0
  126. package/dist/components/Progress.cjs +1 -0
  127. package/dist/components/Progress.js +77 -0
  128. package/dist/components/ProgressBar.cjs +1 -0
  129. package/dist/components/ProgressBar.js +101 -0
  130. package/dist/components/Radio.cjs +1 -0
  131. package/dist/components/Radio.js +81 -0
  132. package/dist/components/RailNav.cjs +1 -0
  133. package/dist/components/RailNav.js +124 -0
  134. package/dist/components/ReminderConfig.cjs +1 -0
  135. package/dist/components/ReminderConfig.js +375 -0
  136. package/dist/components/ReusableForm.cjs +1 -0
  137. package/dist/components/ReusableForm.js +686 -0
  138. package/dist/components/ReusableFormModal.cjs +1 -0
  139. package/dist/components/ReusableFormModal.js +112 -0
  140. package/dist/components/RightDrawer.cjs +1 -0
  141. package/dist/components/RightDrawer.js +143 -0
  142. package/dist/components/Search.cjs +1 -0
  143. package/dist/components/Search.js +252 -0
  144. package/dist/components/Select.cjs +1 -0
  145. package/dist/components/Select.js +243 -0
  146. package/dist/components/Sidebar.cjs +1 -0
  147. package/dist/components/Sidebar.js +372 -0
  148. package/dist/components/Slider.cjs +1 -0
  149. package/dist/components/Slider.js +42 -0
  150. package/dist/components/Spinner.cjs +1 -0
  151. package/dist/components/Spinner.js +87 -0
  152. package/dist/components/Stepper.cjs +1 -0
  153. package/dist/components/Stepper.js +12 -0
  154. package/dist/components/StepperItem.cjs +1 -0
  155. package/dist/components/StepperItem.js +33 -0
  156. package/dist/components/Switch.cjs +1 -0
  157. package/dist/components/Switch.js +112 -0
  158. package/dist/components/Tab.cjs +1 -0
  159. package/dist/components/Tab.js +134 -0
  160. package/dist/components/TabPanel.cjs +1 -0
  161. package/dist/components/TabPanel.js +49 -0
  162. package/dist/components/Text.cjs +1 -0
  163. package/dist/components/Text.js +84 -0
  164. package/dist/components/Textarea.cjs +1 -0
  165. package/dist/components/Textarea.js +102 -0
  166. package/dist/components/ThemeConfigurator.cjs +1 -0
  167. package/dist/components/ThemeConfigurator.js +73 -0
  168. package/dist/components/Timeline.cjs +1 -0
  169. package/dist/components/Timeline.js +24 -0
  170. package/dist/components/TimelineItem.cjs +1 -0
  171. package/dist/components/TimelineItem.js +63 -0
  172. package/dist/components/Toast.cjs +1 -0
  173. package/dist/components/Toast.js +231 -0
  174. package/dist/components/Tooltip.cjs +1 -0
  175. package/dist/components/Tooltip.js +124 -0
  176. package/dist/components/Typography.cjs +1 -0
  177. package/dist/components/Typography.js +267 -0
  178. package/dist/components/charts/BarChart.cjs +1 -0
  179. package/dist/components/charts/BarChart.js +323 -0
  180. package/dist/components/charts/LineChart.cjs +1 -0
  181. package/dist/components/charts/LineChart.js +322 -0
  182. package/dist/components/charts/PieChart.cjs +1 -0
  183. package/dist/components/charts/PieChart.js +311 -0
  184. package/dist/components/charts/StackedBarChart.cjs +1 -0
  185. package/dist/components/charts/StackedBarChart.js +348 -0
  186. package/dist/components/widgets/DashboardWidget.cjs +1 -0
  187. package/dist/components/widgets/DashboardWidget.js +309 -0
  188. package/dist/directives/tooltip.cjs +47 -0
  189. package/dist/directives/tooltip.js +115 -0
  190. package/dist/gspa-ui.css +1 -1
  191. package/dist/index.cjs +1 -0
  192. package/dist/index.esm.js +315 -19546
  193. package/dist/layouts/AuthLayout.cjs +1 -0
  194. package/dist/layouts/AuthLayout.js +188 -0
  195. package/dist/layouts/DashboardLayout.cjs +1 -0
  196. package/dist/layouts/DashboardLayout.js +244 -0
  197. package/dist/layouts/DefaultLayout.cjs +1 -0
  198. package/dist/layouts/DefaultLayout.js +94 -0
  199. package/dist/layouts/ErrorLayout.cjs +1 -0
  200. package/dist/layouts/ErrorLayout.js +452 -0
  201. package/dist/lib/auth.cjs +1 -0
  202. package/dist/lib/auth.js +4 -0
  203. package/dist/lib/form-field.cjs +1 -0
  204. package/dist/lib/form-field.js +4 -0
  205. package/dist/lib/icon.cjs +1 -0
  206. package/dist/lib/icon.js +4 -0
  207. package/dist/lib/theme.cjs +1 -0
  208. package/dist/lib/theme.js +145 -0
  209. package/dist/lib/toast.cjs +1 -0
  210. package/dist/lib/toast.js +81 -0
  211. package/dist/src/components/Alert.vue.d.ts.map +1 -1
  212. package/dist/src/components/Button.vue.d.ts +127 -29
  213. package/dist/src/components/Button.vue.d.ts.map +1 -1
  214. package/dist/src/components/Checkbox.vue.d.ts +2 -2
  215. package/dist/src/components/DataTable.vue.d.ts +1 -1
  216. package/dist/src/components/FormField.vue.d.ts +106 -38
  217. package/dist/src/components/FormField.vue.d.ts.map +1 -1
  218. package/dist/src/components/Icon.vue.d.ts.map +1 -1
  219. package/dist/src/components/Input.vue.d.ts +137 -33
  220. package/dist/src/components/Input.vue.d.ts.map +1 -1
  221. package/dist/src/components/ReusableForm.vue.d.ts +1 -1
  222. package/dist/src/components/ReusableForm.vue.d.ts.map +1 -1
  223. package/dist/src/components/ReusableFormModal.vue.d.ts +1 -1
  224. package/dist/src/components/Textarea.vue.d.ts +2 -2
  225. package/dist/src/index.d.ts +9 -4
  226. package/dist/src/index.d.ts.map +1 -1
  227. package/dist/src/layouts/AuthLayout.vue.d.ts +2 -0
  228. package/dist/src/layouts/AuthLayout.vue.d.ts.map +1 -1
  229. package/dist/src/lib/form-field.d.ts +2 -0
  230. package/dist/src/lib/form-field.d.ts.map +1 -0
  231. package/dist/src/lib/icon.d.ts +2 -0
  232. package/dist/src/lib/icon.d.ts.map +1 -0
  233. package/dist/src/lib/theme.d.ts +4 -0
  234. package/dist/src/lib/theme.d.ts.map +1 -1
  235. package/dist/src/types.d.ts +44 -0
  236. package/dist/src/types.d.ts.map +1 -0
  237. package/dist/styles/auth-layout.css +1 -0
  238. package/dist/styles/button.css +1 -0
  239. package/dist/styles/form-field.css +1 -0
  240. package/dist/styles/input.css +1 -0
  241. package/dist/styles/tokens.css +1 -0
  242. package/dist/tsconfig.tsbuildinfo +1 -1
  243. package/dist/utils/cn.cjs +1 -0
  244. package/dist/utils/cn.js +7 -0
  245. package/package.json +45 -8
  246. package/dist/index.js +0 -605
  247. package/dist/src/__tests__/Alert.spec.d.ts +0 -2
  248. package/dist/src/__tests__/Alert.spec.d.ts.map +0 -1
  249. package/dist/src/__tests__/App.spec.d.ts +0 -2
  250. package/dist/src/__tests__/App.spec.d.ts.map +0 -1
  251. package/dist/src/__tests__/AuthLayout.spec.d.ts +0 -2
  252. package/dist/src/__tests__/AuthLayout.spec.d.ts.map +0 -1
  253. package/dist/src/__tests__/Badge.spec.d.ts +0 -2
  254. package/dist/src/__tests__/Badge.spec.d.ts.map +0 -1
  255. package/dist/src/__tests__/Button.spec.d.ts +0 -2
  256. package/dist/src/__tests__/Button.spec.d.ts.map +0 -1
  257. package/dist/src/__tests__/Card.spec.d.ts +0 -2
  258. package/dist/src/__tests__/Card.spec.d.ts.map +0 -1
  259. package/dist/src/__tests__/Checkbox.spec.d.ts +0 -2
  260. package/dist/src/__tests__/Checkbox.spec.d.ts.map +0 -1
  261. package/dist/src/__tests__/Dropdown.spec.d.ts +0 -2
  262. package/dist/src/__tests__/Dropdown.spec.d.ts.map +0 -1
  263. package/dist/src/__tests__/Input.spec.d.ts +0 -2
  264. package/dist/src/__tests__/Input.spec.d.ts.map +0 -1
  265. package/dist/src/__tests__/Modal.spec.d.ts +0 -2
  266. package/dist/src/__tests__/Modal.spec.d.ts.map +0 -1
  267. package/dist/src/__tests__/Radio.spec.d.ts +0 -2
  268. package/dist/src/__tests__/Radio.spec.d.ts.map +0 -1
  269. package/dist/src/__tests__/ReusableForm.spec.d.ts +0 -2
  270. package/dist/src/__tests__/ReusableForm.spec.d.ts.map +0 -1
  271. package/dist/src/__tests__/Tabs.spec.d.ts +0 -2
  272. package/dist/src/__tests__/Tabs.spec.d.ts.map +0 -1
  273. package/dist/src/__tests__/integration/CardIntegration.spec.d.ts +0 -2
  274. package/dist/src/__tests__/integration/CardIntegration.spec.d.ts.map +0 -1
  275. package/dist/src/__tests__/integration/FormIntegration.spec.d.ts +0 -2
  276. package/dist/src/__tests__/integration/FormIntegration.spec.d.ts.map +0 -1
  277. package/dist/src/__tests__/integration/ModalIntegration.spec.d.ts +0 -2
  278. package/dist/src/__tests__/integration/ModalIntegration.spec.d.ts.map +0 -1
  279. package/dist/src/__tests__/integration/NavigationIntegration.spec.d.ts +0 -2
  280. package/dist/src/__tests__/integration/NavigationIntegration.spec.d.ts.map +0 -1
@@ -0,0 +1,154 @@
1
+ import { computed as v, createElementBlock as t, createCommentVNode as d, openBlock as l, normalizeStyle as s, normalizeClass as f, createElementVNode as r, toDisplayString as y, Fragment as u, renderList as c } from "vue";
2
+ import { _ as b } from "../_plugin-vue_export-helper-CHgC5LLL.js";
3
+ const x = {
4
+ key: 0,
5
+ class: "loader__backdrop"
6
+ }, _ = { class: "loader__container" }, k = {
7
+ key: 0,
8
+ class: "loader__text loader__text--top"
9
+ }, g = {
10
+ key: 1,
11
+ class: "loader__spin"
12
+ }, p = {
13
+ key: 2,
14
+ class: "loader__pulse"
15
+ }, h = {
16
+ key: 3,
17
+ class: "loader__bounce"
18
+ }, S = {
19
+ key: 4,
20
+ class: "loader__ripple"
21
+ }, $ = {
22
+ key: 5,
23
+ class: "loader__bars"
24
+ }, B = {
25
+ key: 6,
26
+ class: "loader__dots"
27
+ }, D = {
28
+ key: 7,
29
+ class: "loader__ring"
30
+ }, z = {
31
+ key: 8,
32
+ class: "loader__spinner-text"
33
+ }, C = {
34
+ key: 9,
35
+ class: "loader__text loader__text--bottom"
36
+ }, L = {
37
+ __name: "Loader",
38
+ props: {
39
+ loading: {
40
+ type: Boolean,
41
+ default: !0
42
+ },
43
+ type: {
44
+ type: String,
45
+ default: "spin",
46
+ validator: (e) => [
47
+ "spin",
48
+ "pulse",
49
+ "bounce",
50
+ "ripple",
51
+ "bars",
52
+ "dots",
53
+ "ring",
54
+ "spinner-text"
55
+ ].includes(e)
56
+ },
57
+ size: {
58
+ type: String,
59
+ default: "medium",
60
+ validator: (e) => ["small", "medium", "large", "xl", "2xl", "3xl"].includes(e)
61
+ },
62
+ color: {
63
+ type: String,
64
+ default: "var(--ui-primary)"
65
+ },
66
+ backgroundColor: {
67
+ type: String,
68
+ default: "color-mix(in oklab, var(--ui-surface), transparent 8%)"
69
+ },
70
+ blur: {
71
+ type: [Number, String],
72
+ default: 0
73
+ },
74
+ text: {
75
+ type: String,
76
+ default: ""
77
+ },
78
+ textPosition: {
79
+ type: String,
80
+ default: "bottom",
81
+ validator: (e) => ["top", "bottom"].includes(e)
82
+ },
83
+ overlay: {
84
+ type: Boolean,
85
+ default: !1
86
+ },
87
+ fullscreen: {
88
+ type: Boolean,
89
+ default: !1
90
+ }
91
+ },
92
+ setup(e) {
93
+ const o = e, m = v(() => {
94
+ if (o.blur === null || o.blur === void 0 || o.blur === "") return "0px";
95
+ if (typeof o.blur == "number") return `${o.blur}px`;
96
+ const n = o.blur.trim();
97
+ return n ? /^-?\d*\.?\d+$/.test(n) ? `${n}px` : n : "0px";
98
+ });
99
+ return (n, i) => e.loading ? (l(), t("div", {
100
+ key: 0,
101
+ class: f([
102
+ "loader",
103
+ `loader--${e.type}`,
104
+ `loader--${e.size}`,
105
+ e.overlay && !e.fullscreen ? "loader--overlay" : "",
106
+ e.fullscreen ? "loader--fullscreen" : ""
107
+ ]),
108
+ style: s({
109
+ "--loader-color": e.color,
110
+ "--loader-bg": e.backgroundColor,
111
+ "--loader-blur": m.value
112
+ })
113
+ }, [
114
+ e.overlay || e.fullscreen ? (l(), t("div", x)) : d("", !0),
115
+ r("div", _, [
116
+ e.text && e.textPosition === "top" ? (l(), t("div", k, y(e.text), 1)) : d("", !0),
117
+ e.type === "spin" ? (l(), t("div", g)) : e.type === "pulse" ? (l(), t("div", p)) : e.type === "bounce" ? (l(), t("div", h, [
118
+ (l(), t(u, null, c(3, (a) => r("div", {
119
+ key: a,
120
+ class: "loader__bounce-dot",
121
+ style: s({ animationDelay: `${(a - 1) * 0.1}s` })
122
+ }, null, 4)), 64))
123
+ ])) : e.type === "ripple" ? (l(), t("div", S, [
124
+ (l(), t(u, null, c(2, (a) => r("div", {
125
+ key: a,
126
+ class: "loader__ripple-ring",
127
+ style: s({ animationDelay: `${(a - 1) * 0.5}s` })
128
+ }, null, 4)), 64))
129
+ ])) : e.type === "bars" ? (l(), t("div", $, [
130
+ (l(), t(u, null, c(5, (a) => r("div", {
131
+ key: a,
132
+ class: "loader__bar",
133
+ style: s({ animationDelay: `${(a - 1) * 0.1}s` })
134
+ }, null, 4)), 64))
135
+ ])) : e.type === "dots" ? (l(), t("div", B, [
136
+ (l(), t(u, null, c(3, (a) => r("div", {
137
+ key: a,
138
+ class: "loader__dot",
139
+ style: s({ animationDelay: `${(a - 1) * 0.16}s` })
140
+ }, null, 4)), 64))
141
+ ])) : e.type === "ring" ? (l(), t("div", D, [...i[0] || (i[0] = [
142
+ r("div", { class: "loader__ring-track" }, null, -1),
143
+ r("div", { class: "loader__ring-fill" }, null, -1)
144
+ ])])) : e.type === "spinner-text" ? (l(), t("div", z, [...i[1] || (i[1] = [
145
+ r("div", { class: "loader__spinner" }, null, -1)
146
+ ])])) : d("", !0),
147
+ e.text && e.textPosition === "bottom" ? (l(), t("div", C, y(e.text), 1)) : d("", !0)
148
+ ])
149
+ ], 6)) : d("", !0);
150
+ }
151
+ }, V = /* @__PURE__ */ b(L, [["__scopeId", "data-v-4cf22c8b"]]);
152
+ export {
153
+ V as default
154
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),i=require("class-variance-authority"),s=require("../utils/cn.cjs"),r=["src","alt"],u={__name:"Logo",props:{src:String,alt:String,text:String,size:{type:String,default:"md",validator:t=>["sm","md","lg","xl"].includes(t)},variant:{type:String,default:"default",validator:t=>["default","minimal"].includes(t)},class:String},setup(t){const l=t,a=i.cva("flex items-center",{variants:{size:{sm:"h-6",md:"h-8",lg:"h-10",xl:"h-12"}}}),c=e.computed(()=>s.cn(a({size:l.size}),l.class)),n=e.computed(()=>s.cn("h-full w-auto object-contain")),o=e.computed(()=>s.cn("font-bold ui-text",{"text-lg":l.size==="sm","text-xl":l.size==="md","text-2xl":l.size==="lg","text-3xl":l.size==="xl"}));return(m,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[t.src?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.src,alt:t.alt||"Logo",class:e.normalizeClass(n.value)},null,10,r)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(o.value)},e.toDisplayString(t.text||"Logo"),3))],2))}};exports.default=u;
@@ -0,0 +1,67 @@
1
+ import { computed as s, createElementBlock as l, openBlock as a, normalizeClass as i, toDisplayString as d } from "vue";
2
+ import { cva as g } from "class-variance-authority";
3
+ import { cn as o } from "../utils/cn.js";
4
+ const u = ["src", "alt"], S = {
5
+ __name: "Logo",
6
+ props: {
7
+ src: String,
8
+ alt: String,
9
+ text: String,
10
+ size: {
11
+ type: String,
12
+ default: "md",
13
+ validator: (t) => ["sm", "md", "lg", "xl"].includes(t)
14
+ },
15
+ variant: {
16
+ type: String,
17
+ default: "default",
18
+ validator: (t) => ["default", "minimal"].includes(t)
19
+ },
20
+ class: String
21
+ },
22
+ setup(t) {
23
+ const e = t, n = g(
24
+ "flex items-center",
25
+ {
26
+ variants: {
27
+ size: {
28
+ sm: "h-6",
29
+ md: "h-8",
30
+ lg: "h-10",
31
+ xl: "h-12"
32
+ }
33
+ }
34
+ }
35
+ ), c = s(
36
+ () => o(n({ size: e.size }), e.class)
37
+ ), r = s(
38
+ () => o("h-full w-auto object-contain")
39
+ ), m = s(
40
+ () => o(
41
+ "font-bold ui-text",
42
+ {
43
+ "text-lg": e.size === "sm",
44
+ "text-xl": e.size === "md",
45
+ "text-2xl": e.size === "lg",
46
+ "text-3xl": e.size === "xl"
47
+ }
48
+ )
49
+ );
50
+ return (x, f) => (a(), l("div", {
51
+ class: i(c.value)
52
+ }, [
53
+ t.src ? (a(), l("img", {
54
+ key: 0,
55
+ src: t.src,
56
+ alt: t.alt || "Logo",
57
+ class: i(r.value)
58
+ }, null, 10, u)) : (a(), l("div", {
59
+ key: 1,
60
+ class: i(m.value)
61
+ }, d(t.text || "Logo"), 3))
62
+ ], 2));
63
+ }
64
+ };
65
+ export {
66
+ S as default
67
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),u=require("class-variance-authority"),d=require("../utils/cn.cjs"),o=require("./Icon.cjs"),m={key:1,class:"ml-auto text-xs tracking-widest opacity-60"},f={__name:"MenuItem",props:{href:String,icon:String,shortcut:String,disabled:Boolean,hasSubmenu:Boolean,variant:{type:String,default:"default",validator:t=>["default","danger"].includes(t)}},emits:["click"],setup(t,{emit:r}){const n=t,c=r,i=u.cva("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-(--ui-surface) focus:text-(--ui-text) data-[disabled]:pointer-events-none data-[disabled]:opacity-50 w-full text-left",{variants:{variant:{default:"hover:bg-(--ui-surface) hover:text-(--ui-text)",danger:"ui-danger hover:bg-(--ui-danger-soft) hover:text-(--ui-danger)"}}}),l=e.computed(()=>d.cn(i({variant:n.variant}))),s=a=>{n.disabled||c("click",a)};return(a,h)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.href?"a":"button"),{href:t.href,class:e.normalizeClass(l.value),disabled:t.disabled,role:"menuitem",onClick:s},{default:e.withCtx(()=>[t.icon?(e.openBlock(),e.createBlock(o.default,{key:0,name:t.icon,class:"mr-2 h-4 w-4"},null,8,["name"])):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default"),t.shortcut?(e.openBlock(),e.createElementBlock("span",m,e.toDisplayString(t.shortcut),1)):e.createCommentVNode("",!0),t.hasSubmenu?(e.openBlock(),e.createBlock(o.default,{key:2,name:"chevron-right",class:"ml-auto h-4 w-4"})):e.createCommentVNode("",!0)]),_:3},8,["href","class","disabled"]))}};exports.default=f;
@@ -0,0 +1,66 @@
1
+ import { computed as m, createBlock as n, openBlock as t, resolveDynamicComponent as f, normalizeClass as h, withCtx as v, createCommentVNode as i, renderSlot as g, createElementBlock as b, toDisplayString as x } from "vue";
2
+ import { cva as k } from "class-variance-authority";
3
+ import { cn as y } from "../utils/cn.js";
4
+ import r from "./Icon.js";
5
+ const S = {
6
+ key: 1,
7
+ class: "ml-auto text-xs tracking-widest opacity-60"
8
+ }, V = {
9
+ __name: "MenuItem",
10
+ props: {
11
+ href: String,
12
+ icon: String,
13
+ shortcut: String,
14
+ disabled: Boolean,
15
+ hasSubmenu: Boolean,
16
+ variant: {
17
+ type: String,
18
+ default: "default",
19
+ validator: (e) => ["default", "danger"].includes(e)
20
+ }
21
+ },
22
+ emits: ["click"],
23
+ setup(e, { emit: s }) {
24
+ const o = e, l = s, c = k(
25
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-(--ui-surface) focus:text-(--ui-text) data-[disabled]:pointer-events-none data-[disabled]:opacity-50 w-full text-left",
26
+ {
27
+ variants: {
28
+ variant: {
29
+ default: "hover:bg-(--ui-surface) hover:text-(--ui-text)",
30
+ danger: "ui-danger hover:bg-(--ui-danger-soft) hover:text-(--ui-danger)"
31
+ }
32
+ }
33
+ }
34
+ ), u = m(
35
+ () => y(c({ variant: o.variant }))
36
+ ), d = (a) => {
37
+ o.disabled || l("click", a);
38
+ };
39
+ return (a, C) => (t(), n(f(e.href ? "a" : "button"), {
40
+ href: e.href,
41
+ class: h(u.value),
42
+ disabled: e.disabled,
43
+ role: "menuitem",
44
+ onClick: d
45
+ }, {
46
+ default: v(() => [
47
+ e.icon ? (t(), n(r, {
48
+ key: 0,
49
+ name: e.icon,
50
+ class: "mr-2 h-4 w-4"
51
+ }, null, 8, ["name"])) : i("", !0),
52
+ g(a.$slots, "default"),
53
+ e.shortcut ? (t(), b("span", S, x(e.shortcut), 1)) : i("", !0),
54
+ e.hasSubmenu ? (t(), n(r, {
55
+ key: 2,
56
+ name: "chevron-right",
57
+ class: "ml-auto h-4 w-4"
58
+ })) : i("", !0)
59
+ ]),
60
+ _: 3
61
+ }, 8, ["href", "class", "disabled"]));
62
+ }
63
+ };
64
+ export {
65
+ V as default
66
+ };
@@ -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"),m=require("../utils/cn.cjs"),x=require("./Icon.cjs"),f={__name:"Modal",props:{modelValue:Boolean,showClose:{type:Boolean,default:!0},closeOnBackdrop:{type:Boolean,default:!0},size:{type:String,default:"4xl",validator:l=>["sm","md","lg","xl","2xl","3xl","4xl","5xl","6xl","7xl","8xl","full"].includes(l)},class:{type:String,default:""},resizable:{type:Boolean,default:!1}},emits:["update:modelValue","close"],setup(l,{emit:r}){const c=d.cva("ui-surface-soft ui-border relative w-full max-h-[100vh] overflow-y-auto rounded-xl shadow-lg duration-200 p-4 overflow-hidden",{variants:{size:{sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl","3xl":"max-w-3xl","4xl":"max-w-4xl","5xl":"max-w-5xl","6xl":"max-w-6xl","7xl":"max-w-7xl","8xl":"max-w-8xl",full:"max-w-full"}},defaultVariants:{size:"6xl"}}),a=l,i=r,s=()=>{i("update:modelValue",!1),i("close")},u=o=>{a.closeOnBackdrop&&o.target===o.currentTarget&&!a.resizable&&s()};let t=null;return e.watch(()=>a.modelValue,o=>{o?(t=n=>{n.key==="Escape"&&s()},document.addEventListener("keydown",t)):t&&(document.removeEventListener("keydown",t),t=null)},{immediate:!0}),e.onUnmounted(()=>{t&&(document.removeEventListener("keydown",t),t=null)}),(o,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-opacity duration-300","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-300","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:e.withCtx(()=>[l.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["fixed inset-0 z-9999 backdrop-blur-2xs flex items-center justify-center",{"pointer-events-none":l.resizable}]),onClick:u},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(m.cn)(e.unref(c)({size:l.size}),a.class,l.resizable?"resize overflow-hidden pointer-events-auto relative":"")),style:e.normalizeStyle(l.resizable?"min-width: 400px; min-height: 700px; resize: both;":"")},[l.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":"Close",class:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",onClick:s},[e.createVNode(x.default,{icon:"x",class:"h-4 w-4"}),n[0]||(n[0]=e.createElementVNode("span",{class:"sr-only"},"Close",-1))])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default")],6)],2)):e.createCommentVNode("",!0)]),_:3})]))}};exports.default=f;
@@ -0,0 +1,110 @@
1
+ import { watch as y, onUnmounted as v, createBlock as h, openBlock as n, Teleport as k, createVNode as r, Transition as g, withCtx as z, createElementBlock as c, createCommentVNode as d, normalizeClass as m, createElementVNode as u, normalizeStyle as b, unref as x, renderSlot as B } from "vue";
2
+ import { cva as C } from "class-variance-authority";
3
+ import { cn as V } from "../utils/cn.js";
4
+ import E from "./Icon.js";
5
+ const M = {
6
+ __name: "Modal",
7
+ props: {
8
+ modelValue: Boolean,
9
+ showClose: {
10
+ type: Boolean,
11
+ default: !0
12
+ },
13
+ closeOnBackdrop: {
14
+ type: Boolean,
15
+ default: !0
16
+ },
17
+ size: {
18
+ type: String,
19
+ default: "4xl",
20
+ validator: (e) => ["sm", "md", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "7xl", "8xl", "full"].includes(e)
21
+ },
22
+ class: {
23
+ type: String,
24
+ default: ""
25
+ },
26
+ resizable: {
27
+ type: Boolean,
28
+ default: !1
29
+ }
30
+ },
31
+ emits: ["update:modelValue", "close"],
32
+ setup(e, { emit: f }) {
33
+ const p = C(
34
+ "ui-surface-soft ui-border relative w-full max-h-[100vh] overflow-y-auto rounded-xl shadow-lg duration-200 p-4 overflow-hidden",
35
+ {
36
+ variants: {
37
+ size: {
38
+ sm: "max-w-sm",
39
+ md: "max-w-md",
40
+ lg: "max-w-lg",
41
+ xl: "max-w-xl",
42
+ "2xl": "max-w-2xl",
43
+ "3xl": "max-w-3xl",
44
+ "4xl": "max-w-4xl",
45
+ "5xl": "max-w-5xl",
46
+ "6xl": "max-w-6xl",
47
+ "7xl": "max-w-7xl",
48
+ "8xl": "max-w-8xl",
49
+ full: "max-w-full"
50
+ }
51
+ },
52
+ defaultVariants: {
53
+ size: "6xl"
54
+ }
55
+ }
56
+ ), a = e, i = f, s = () => {
57
+ i("update:modelValue", !1), i("close");
58
+ }, w = (t) => {
59
+ a.closeOnBackdrop && t.target === t.currentTarget && !a.resizable && s();
60
+ };
61
+ let l = null;
62
+ return y(() => a.modelValue, (t) => {
63
+ t ? (l = (o) => {
64
+ o.key === "Escape" && s();
65
+ }, document.addEventListener("keydown", l)) : l && (document.removeEventListener("keydown", l), l = null);
66
+ }, { immediate: !0 }), v(() => {
67
+ l && (document.removeEventListener("keydown", l), l = null);
68
+ }), (t, o) => (n(), h(k, { to: "body" }, [
69
+ r(g, {
70
+ "enter-active-class": "transition-opacity duration-300",
71
+ "enter-from-class": "opacity-0",
72
+ "enter-to-class": "opacity-100",
73
+ "leave-active-class": "transition-opacity duration-300",
74
+ "leave-from-class": "opacity-100",
75
+ "leave-to-class": "opacity-0"
76
+ }, {
77
+ default: z(() => [
78
+ e.modelValue ? (n(), c("div", {
79
+ key: 0,
80
+ class: m(["fixed inset-0 z-9999 backdrop-blur-2xs flex items-center justify-center", { "pointer-events-none": e.resizable }]),
81
+ onClick: w
82
+ }, [
83
+ u("div", {
84
+ class: m(x(V)(x(p)({ size: e.size }), a.class, e.resizable ? "resize overflow-hidden pointer-events-auto relative" : "")),
85
+ style: b(e.resizable ? "min-width: 400px; min-height: 700px; resize: both;" : "")
86
+ }, [
87
+ e.showClose ? (n(), c("button", {
88
+ key: 0,
89
+ "aria-label": "Close",
90
+ class: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
91
+ onClick: s
92
+ }, [
93
+ r(E, {
94
+ icon: "x",
95
+ class: "h-4 w-4"
96
+ }),
97
+ o[0] || (o[0] = u("span", { class: "sr-only" }, "Close", -1))
98
+ ])) : d("", !0),
99
+ B(t.$slots, "default")
100
+ ], 6)
101
+ ], 2)) : d("", !0)
102
+ ]),
103
+ _: 3
104
+ })
105
+ ]));
106
+ }
107
+ };
108
+ export {
109
+ M as default
110
+ };
@@ -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"),c=require("../utils/cn.cjs"),l={__name:"ModalBody",props:{variant:{type:String,default:"default",validator:t=>["default","compact"].includes(t)}},setup(t){const a=t,r=n.cva("",{variants:{variant:{default:"py-4",compact:"py-2"}}}),s=e.computed(()=>c.cn(r({variant:a.variant})));return(o,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.value)},[e.renderSlot(o.$slots,"default")],2))}};exports.default=l;
@@ -0,0 +1,33 @@
1
+ import { computed as n, createElementBlock as s, openBlock as c, normalizeClass as l, renderSlot as p } from "vue";
2
+ import { cva as d } from "class-variance-authority";
3
+ import { cn as i } from "../utils/cn.js";
4
+ const y = {
5
+ __name: "ModalBody",
6
+ props: {
7
+ variant: {
8
+ type: String,
9
+ default: "default",
10
+ validator: (a) => ["default", "compact"].includes(a)
11
+ }
12
+ },
13
+ setup(a) {
14
+ const t = a, o = d("", {
15
+ variants: {
16
+ variant: {
17
+ default: "py-4",
18
+ compact: "py-2"
19
+ }
20
+ }
21
+ }), e = n(
22
+ () => i(o({ variant: t.variant }))
23
+ );
24
+ return (r, m) => (c(), s("div", {
25
+ class: l(e.value)
26
+ }, [
27
+ p(r.$slots, "default")
28
+ ], 2));
29
+ }
30
+ };
31
+ export {
32
+ y as default
33
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("class-variance-authority"),l=require("../utils/cn.cjs"),c={__name:"ModalFooter",props:{variant:{type:String,default:"default",validator:t=>["default","center"].includes(t)}},setup(t){const r=t,a=o.cva("flex gap-2 pt-4",{variants:{variant:{default:"flex-col-reverse sm:flex-row sm:justify-end",center:"justify-center"}}}),s=e.computed(()=>l.cn(a({variant:r.variant})));return(n,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.value)},[e.renderSlot(n.$slots,"default")],2))}};exports.default=c;
@@ -0,0 +1,33 @@
1
+ import { computed as s, createElementBlock as n, openBlock as l, normalizeClass as c, renderSlot as f } from "vue";
2
+ import { cva as i } from "class-variance-authority";
3
+ import { cn as p } from "../utils/cn.js";
4
+ const _ = {
5
+ __name: "ModalFooter",
6
+ props: {
7
+ variant: {
8
+ type: String,
9
+ default: "default",
10
+ validator: (e) => ["default", "center"].includes(e)
11
+ }
12
+ },
13
+ setup(e) {
14
+ const t = e, r = i("flex gap-2 pt-4", {
15
+ variants: {
16
+ variant: {
17
+ default: "flex-col-reverse sm:flex-row sm:justify-end",
18
+ center: "justify-center"
19
+ }
20
+ }
21
+ }), a = s(
22
+ () => p(r({ variant: t.variant }))
23
+ );
24
+ return (o, u) => (l(), n("div", {
25
+ class: c(a.value)
26
+ }, [
27
+ f(o.$slots, "default")
28
+ ], 2));
29
+ }
30
+ };
31
+ export {
32
+ _ as default
33
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l={class:"flex flex-col space-y-1.5 text-center sm:text-left"},n={key:0,class:"text-lg font-semibold leading-none tracking-tight"},c={key:1,class:"text-sm ui-text"},i={__name:"ModalHeader",props:{title:String,description:String},setup(t){return(o,s)=>(e.openBlock(),e.createElementBlock("div",l,[t.title?(e.openBlock(),e.createElementBlock("h2",n,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("p",c,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default")]))}};exports.default=i;
@@ -0,0 +1,24 @@
1
+ import { createElementBlock as e, openBlock as i, createCommentVNode as n, renderSlot as l, toDisplayString as o } from "vue";
2
+ const c = { class: "flex flex-col space-y-1.5 text-center sm:text-left" }, r = {
3
+ key: 0,
4
+ class: "text-lg font-semibold leading-none tracking-tight"
5
+ }, a = {
6
+ key: 1,
7
+ class: "text-sm ui-text"
8
+ }, f = {
9
+ __name: "ModalHeader",
10
+ props: {
11
+ title: String,
12
+ description: String
13
+ },
14
+ setup(t) {
15
+ return (s, d) => (i(), e("div", c, [
16
+ t.title ? (i(), e("h2", r, o(t.title), 1)) : n("", !0),
17
+ t.description ? (i(), e("p", a, o(t.description), 1)) : n("", !0),
18
+ l(s.$slots, "default")
19
+ ]));
20
+ }
21
+ };
22
+ export {
23
+ f as default
24
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),I=require("./Badge.cjs"),L={class:"relative"},T=["id","disabled"],z={key:0,class:"ui-text-muted"},H={key:1,class:"flex flex-wrap gap-1.5"},R={class:"px-3 py-2.5 border-b ui-border-strong ui-surface-muted"},P=["onClick"],W={class:"flex items-center gap-3"},A=["checked"],$={key:1,class:"px-4 py-6 text-sm ui-text text-center"},c=12,v=4,V=320,q=180,G=10050,K={__name:"MultiSelect",props:{modelValue:{type:Array,default:()=>[]},options:{type:Array,required:!0,validator:r=>r.every(m=>m.value!==void 0&&m.label)},id:{type:String,default:null},disabled:{type:Boolean,default:!1},placeholder:{type:String,default:"Select options"},hasError:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(r,{emit:m}){const l=r,D=m,a=e.ref(!1),u=e.ref(""),k=e.ref(null),s=e.ref([...l.options]),d=e.ref(null),y=e.ref(null),x=e.ref({}),b=e.computed(()=>l.options.filter(t=>l.modelValue.includes(t.value)).map(t=>t.label)),h=()=>{a.value=!1,u.value="",s.value=[...l.options]},i=()=>{if(!d.value||!a.value)return;const t=d.value.getBoundingClientRect(),o=window.innerWidth,n=window.innerHeight,p=Math.max(0,n-t.bottom-v-c),B=Math.max(0,t.top-v-c),E=B>p,O=Math.max(Math.min(V,E?B:p),Math.min(q,V)),S=Math.max(0,o-c*2),w=Math.min(t.width,S);let f=t.left;f+w>o-c&&(f=o-c-w),f<c&&(f=c),x.value={position:"fixed",left:`${f}px`,width:`${w}px`,maxHeight:`${O}px`,zIndex:G,...E?{bottom:`${n-t.top+v}px`}:{top:`${t.bottom+v}px`}}},N=()=>{l.disabled||(a.value?h():(a.value=!0,e.nextTick(()=>{i(),k.value?.focus()})))},M=t=>{let o;l.modelValue.includes(t)?o=l.modelValue.filter(n=>n!==t):o=[...l.modelValue,t],D("update:modelValue",o),e.nextTick(()=>{i()})},_=()=>{if(!u.value.trim())s.value=[...l.options];else{const t=u.value.toLowerCase();s.value=l.options.filter(o=>o.label.toLowerCase().includes(t))}},C=t=>{t.key==="Escape"&&h()},g=t=>{if(!d.value)return;const o=t.target;if(!o)return;const n=y.value&&y.value.contains(o),p=d.value.contains(o);!n&&!p&&h()};return e.onMounted(()=>{document.addEventListener("click",g),window.addEventListener("scroll",i,!0),window.addEventListener("resize",i)}),e.onUnmounted(()=>{document.removeEventListener("click",g),window.removeEventListener("scroll",i,!0),window.removeEventListener("resize",i)}),e.watch(()=>l.options,t=>{s.value=[...t]},{immediate:!0}),e.watch(()=>l.modelValue,()=>{a.value&&e.nextTick(()=>{i()})}),e.watch(s,()=>{a.value&&e.nextTick(()=>{i()})}),e.watch(a,t=>{t&&i()}),(t,o)=>(e.openBlock(),e.createElementBlock("div",L,[e.createElementVNode("button",{id:r.id,ref_key:"buttonRef",ref:d,type:"button",disabled:r.disabled,class:e.normalizeClass(["w-full px-3 py-2.5 text-left border rounded-md focus:outline-none focus:ring-2 focus:ring-(--ui-primary) ui-surface min-h-[42px]",r.hasError?"border-(--ui-danger)":"ui-border-strong ",r.disabled?"ui-surface-muted cursor-not-allowed opacity-50":"hover:border-(--ui-border-strong)"]),onClick:N,onKeydown:C},[b.value.length===0?(e.openBlock(),e.createElementBlock("div",z,e.toDisplayString(r.placeholder||"Select options"),1)):(e.openBlock(),e.createElementBlock("div",H,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,n=>(e.openBlock(),e.createBlock(I.default,{key:n,variant:"primary",size:"sm"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n),1)]),_:2},1024))),128))])),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["absolute right-3 top-1/2 -translate-y-1/2 h-5 w-5 ui-text pointer-events-none transition-transform duration-200",{"rotate-180":a.value}]),fill:"currentColor",viewBox:"0 0 20 20"},[...o[3]||(o[3]=[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1)])],2))],42,T),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition ease-out duration-100","enter-from-class":"transform opacity-0 scale-95","enter-to-class":"transform opacity-100 scale-100","leave-active-class":"transition ease-in duration-75","leave-from-class":"transform opacity-100 scale-100","leave-to-class":"transform opacity-0 scale-95"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:y,style:e.normalizeStyle(x.value),"data-multiselect-dropdown":"",class:"shadow-lg rounded-md text-base ring-1 ring-(--ui-border-strong) ring-opacity-5 overflow-hidden focus:outline-none ui-surface flex flex-col overscroll-contain"},[e.createElementVNode("div",R,[e.withDirectives(e.createElementVNode("input",{ref_key:"searchInput",ref:k,"onUpdate:modelValue":o[0]||(o[0]=n=>u.value=n),type:"text",placeholder:"Search options...",class:"w-full px-3 py-2 text-sm border ui-border-strong rounded-md focus:outline-none focus:ring-2 focus:ring-(--ui-primary) focus:border-transparent ui-surface placeholder:text-(--ui-text-muted)",onInput:_,onKeydown:o[1]||(o[1]=e.withModifiers(()=>{},["stop"]))},null,544),[[e.vModelText,u.value]])]),s.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"overflow-y-auto py-1 flex-1 overscroll-contain",onWheel:o[2]||(o[2]=e.withModifiers(()=>{},["stop"]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,n=>(e.openBlock(),e.createElementBlock("button",{key:n.value,type:"button",class:e.normalizeClass(["cursor-pointer select-none relative py-2.5 pl-3 pr-9 w-full text-left hover:bg-(--ui-primary-soft) focus:bg-(--ui-primary-soft) focus:outline-none transition-colors duration-150",{"ui-primary-soft":r.modelValue.includes(n.value)}]),onClick:p=>M(n.value)},[e.createElementVNode("div",W,[e.createElementVNode("input",{type:"checkbox",checked:r.modelValue.includes(n.value),class:"h-4 w-4 ui-primary focus:ring-(--ui-primary) ui-border-strong rounded cursor-pointer pointer-events-none",readonly:"",tabindex:"-1"},null,8,A),e.createElementVNode("span",{class:e.normalizeClass(["block font-normal truncate",{"ui-primary font-medium":r.modelValue.includes(n.value)}])},e.toDisplayString(n.label),3)])],10,P))),128))],32)):(e.openBlock(),e.createElementBlock("div",$," No options found "))],4)):e.createCommentVNode("",!0)]),_:1})]))]))}};exports.default=K;