@gspa/ui 0.1.1 → 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 (205) 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 +310 -19533
  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/src/__tests__/AuthLayout.spec.d.ts +2 -0
  193. package/dist/src/__tests__/AuthLayout.spec.d.ts.map +1 -0
  194. package/dist/src/layouts/AuthLayout.vue.d.ts +10 -6
  195. package/dist/src/layouts/AuthLayout.vue.d.ts.map +1 -1
  196. package/dist/tsconfig.tsbuildinfo +1 -1
  197. package/dist/utils/cn.cjs +1 -0
  198. package/dist/utils/cn.js +7 -0
  199. package/package.json +43 -11
  200. package/dist/applogo.png +0 -0
  201. package/dist/favicon.ico +0 -0
  202. package/dist/index.js +0 -605
  203. package/dist/logo.png +0 -0
  204. package/dist/stlbacklogo.jpeg +0 -0
  205. package/dist/stlbacklogo.png +0 -0
@@ -0,0 +1,185 @@
1
+ import { ref as q, computed as a, useId as N, watch as j, createElementBlock as v, openBlock as o, createElementVNode as n, normalizeClass as u, createBlock as h, createCommentVNode as g, renderSlot as D, createTextVNode as E, toDisplayString as k, h as c } from "vue";
2
+ const M = { class: "flex items-center gap-3" }, R = { class: "relative" }, $ = ["id", "checked", "indeterminate", "disabled", "required", "aria-describedby"], O = { class: "flex-1" }, T = ["for"], G = {
3
+ __name: "Checkbox",
4
+ props: {
5
+ modelValue: {
6
+ type: [Boolean, Array],
7
+ default: !1
8
+ },
9
+ value: {
10
+ type: [String, Number, Boolean],
11
+ default: null
12
+ },
13
+ label: {
14
+ type: String,
15
+ default: null
16
+ },
17
+ description: {
18
+ type: String,
19
+ default: null
20
+ },
21
+ disabled: {
22
+ type: Boolean,
23
+ default: !1
24
+ },
25
+ required: {
26
+ type: Boolean,
27
+ default: !1
28
+ },
29
+ indeterminate: {
30
+ type: Boolean,
31
+ default: !1
32
+ },
33
+ size: {
34
+ type: String,
35
+ default: "md",
36
+ validator: (t) => ["sm", "md", "lg"].includes(t)
37
+ },
38
+ variant: {
39
+ type: String,
40
+ default: "default",
41
+ validator: (t) => ["default", "error"].includes(t)
42
+ },
43
+ id: {
44
+ type: String,
45
+ default: null
46
+ },
47
+ error: {
48
+ type: String,
49
+ default: null
50
+ }
51
+ },
52
+ emits: ["update:modelValue", "change"],
53
+ setup(t, { emit: y }) {
54
+ const p = {
55
+ render() {
56
+ return c("svg", {
57
+ fill: "none",
58
+ viewBox: "0 0 24 24",
59
+ "stroke-width": "2",
60
+ stroke: "currentColor"
61
+ }, [
62
+ c("path", {
63
+ "stroke-linecap": "round",
64
+ "stroke-linejoin": "round",
65
+ d: "m4.5 12.75 6 6 9-13.5"
66
+ })
67
+ ]);
68
+ }
69
+ }, x = {
70
+ render() {
71
+ return c("svg", {
72
+ fill: "none",
73
+ viewBox: "0 0 24 24",
74
+ "stroke-width": "2",
75
+ stroke: "currentColor"
76
+ }, [
77
+ c("path", {
78
+ "stroke-linecap": "round",
79
+ "stroke-linejoin": "round",
80
+ d: "M5 12h14"
81
+ })
82
+ ]);
83
+ }
84
+ }, e = t, f = y, l = q(null), m = a(() => e.id || N()), r = a(() => Array.isArray(e.modelValue) ? e.modelValue.includes(e.value) : e.modelValue), w = (i) => {
85
+ const d = i.target.checked;
86
+ if (Array.isArray(e.modelValue)) {
87
+ const s = [...e.modelValue];
88
+ if (d)
89
+ s.push(e.value);
90
+ else {
91
+ const b = s.indexOf(e.value);
92
+ b > -1 && s.splice(b, 1);
93
+ }
94
+ f("update:modelValue", s);
95
+ } else
96
+ f("update:modelValue", d);
97
+ f("change", d);
98
+ }, C = () => {
99
+ !e.disabled && l.value && l.value.click();
100
+ }, V = a(() => {
101
+ if (e.error) return `${m.value}-error`;
102
+ }), B = a(() => ({
103
+ sm: "w-4 h-4",
104
+ md: "w-5 h-5",
105
+ lg: "w-6 h-6"
106
+ })[e.size]), S = a(() => [
107
+ "absolute inset-0 w-full h-full opacity-0 cursor-pointer",
108
+ {
109
+ "cursor-not-allowed": e.disabled
110
+ }
111
+ ]), z = a(() => [
112
+ "flex items-center justify-center rounded border-2 transition-all duration-200",
113
+ "cursor-pointer select-none",
114
+ B.value,
115
+ {
116
+ "ui-primary-bg border-(--ui-primary) ui-text": r.value && !e.disabled && e.variant === "default",
117
+ "ui-danger-bg border-(--ui-danger) ui-text": r.value && !e.disabled && e.variant === "error",
118
+ "ui-bg ui-border-strong ui-text": r.value && e.disabled,
119
+ "ui-surface ui-border-strong hover:border-(--ui-border-strong)": !r.value && !e.disabled && e.variant === "default",
120
+ "ui-surface border-(--ui-danger-soft) hover:border-(--ui-danger-soft)": !r.value && !e.disabled && e.variant === "error",
121
+ "ui-surface-muted ui-border-strong ": !r.value && e.disabled,
122
+ "cursor-not-allowed": e.disabled,
123
+ "focus-within:ring-2 focus-within:ring-offset-2": !e.disabled,
124
+ "focus-within:ring-(--ui-primary)": !e.disabled && e.variant === "default",
125
+ "focus-within:ring-(--ui-danger)": !e.disabled && e.variant === "error"
126
+ }
127
+ ]), A = a(() => [
128
+ "text-sm font-medium cursor-pointer select-none",
129
+ {
130
+ "ui-text": !e.disabled,
131
+ "ui-text-muted": e.disabled
132
+ }
133
+ ]), I = a(() => [
134
+ "text-xs ui-text mt-1"
135
+ ]);
136
+ return j(() => e.indeterminate, (i) => {
137
+ l.value && (l.value.indeterminate = i);
138
+ }, { immediate: !0 }), (i, d) => (o(), v("div", M, [
139
+ n("div", R, [
140
+ n("input", {
141
+ id: m.value,
142
+ ref_key: "checkboxRef",
143
+ ref: l,
144
+ type: "checkbox",
145
+ checked: r.value,
146
+ indeterminate: t.indeterminate,
147
+ disabled: t.disabled,
148
+ required: t.required,
149
+ class: u(S.value),
150
+ "aria-describedby": V.value,
151
+ onChange: w
152
+ }, null, 42, $),
153
+ n("div", {
154
+ class: u(z.value),
155
+ onClick: C
156
+ }, [
157
+ r.value && !t.indeterminate ? (o(), h(p, {
158
+ key: 0,
159
+ class: "w-3 h-3"
160
+ })) : t.indeterminate ? (o(), h(x, {
161
+ key: 1,
162
+ class: "w-3 h-3"
163
+ })) : g("", !0)
164
+ ], 2)
165
+ ]),
166
+ n("div", O, [
167
+ n("label", {
168
+ for: m.value,
169
+ class: u(A.value)
170
+ }, [
171
+ D(i.$slots, "default", {}, () => [
172
+ E(k(t.label), 1)
173
+ ])
174
+ ], 10, T),
175
+ t.description ? (o(), v("p", {
176
+ key: 0,
177
+ class: u(I.value)
178
+ }, k(t.description), 3)) : g("", !0)
179
+ ])
180
+ ]));
181
+ }
182
+ };
183
+ export {
184
+ G as default
185
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),v=require("../utils/cn.cjs"),w=["width","height","viewBox"],C=["cx","cy","r","stroke","stroke-width"],S=["cx","cy","r","stroke","stroke-width","stroke-dasharray","stroke-dashoffset","stroke-linecap"],b={key:0,class:"absolute inset-0 flex items-center justify-center"},B={__name:"CircularProgress",props:{value:{type:[Number,String],default:0},max:{type:[Number,String],default:100},size:{type:String,default:"md",validator:r=>["xs","sm","md","lg","xl"].includes(r)},variant:{type:String,default:"default",validator:r=>["default","success","warning","danger"].includes(r)},showValue:{type:Boolean,default:!0},showRawValue:{type:Boolean,default:!1},dynamicColor:{type:Boolean,default:!0},dynamicColorStops:{type:Array,default:()=>[{max:39,stroke:"#ef4444",textClass:"text-red-700"},{max:79,stroke:"#f97316",textClass:"text-orange-700"},{max:100,stroke:"#22c55e",textClass:"text-green-700"}]},dynamicFallbackStroke:{type:String,default:"#22c55e"},dynamicFallbackTextClass:{type:String,default:"text-green-700"},strokeLinecap:{type:String,default:"round",validator:r=>["butt","round","square"].includes(r)}},setup(r){const a=r,d=e.computed(()=>parseFloat(a.value)||0),p=e.computed(()=>parseFloat(a.max)||100),l=e.computed(()=>{const t=d.value/p.value*100;return Math.min(Math.max(t,0),100)}),s=e.computed(()=>({xs:42,sm:48,md:64,lg:80,xl:96})[a.size]||64),n=e.computed(()=>({xs:2.5,sm:4,md:5,lg:6,xl:7})[a.size]||5),o=e.computed(()=>s.value/2),u=e.computed(()=>o.value-n.value/2),c=e.computed(()=>2*Math.PI*u.value),f=e.computed(()=>c.value-l.value/100*c.value),m=e.computed(()=>{const t=l.value;return[...Array.isArray(a.dynamicColorStops)?a.dynamicColorStops:[]].sort((i,h)=>Number(i?.max??0)-Number(h?.max??0)).find(i=>t<=Number(i?.max??0))||null}),x=e.computed(()=>{if(a.dynamicColor)return m.value?.stroke||a.dynamicFallbackStroke;const t={default:"var(--ui-primary)",success:"var(--ui-success)",warning:"var(--ui-warning)",danger:"var(--ui-danger)"};return t[a.variant]||t.default}),y=e.computed(()=>"var(--ui-border-strong)"),k=e.computed(()=>{if(a.dynamicColor)return m.value?.textClass||a.dynamicFallbackTextClass;const t={default:"ui-primary",success:"ui-success",warning:"ui-warning",danger:"ui-danger"};return t[a.variant]||t.default});return(t,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(v.cn)("relative inline-flex items-center justify-center",t.$attrs.class))},[(e.openBlock(),e.createElementBlock("svg",{width:s.value,height:s.value,viewBox:`0 0 ${s.value} ${s.value}`,class:"transform -rotate-90"},[e.createElementVNode("circle",{cx:o.value,cy:o.value,r:u.value,stroke:y.value,"stroke-width":n.value,fill:"none"},null,8,C),e.createElementVNode("circle",{cx:o.value,cy:o.value,r:u.value,stroke:x.value,"stroke-width":n.value,fill:"none","stroke-dasharray":c.value,"stroke-dashoffset":f.value,"stroke-linecap":r.strokeLinecap,class:"transition-all duration-300 ease-in-out"},null,8,S)],8,w)),r.showValue?(e.openBlock(),e.createElementBlock("div",b,[e.createElementVNode("span",{class:e.normalizeClass(e.unref(v.cn)("text-xs font-medium",k.value))},e.toDisplayString(r.showRawValue?d.value.toFixed(2):Math.round(l.value)+"%"),3)])):e.createCommentVNode("",!0)],2))}};exports.default=B;
@@ -0,0 +1,141 @@
1
+ import { computed as t, createElementBlock as d, openBlock as m, normalizeClass as y, unref as p, createCommentVNode as z, createElementVNode as v, toDisplayString as B } from "vue";
2
+ import { cn as g } from "../utils/cn.js";
3
+ const F = ["width", "height", "viewBox"], N = ["cx", "cy", "r", "stroke", "stroke-width"], _ = ["cx", "cy", "r", "stroke", "stroke-width", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap"], M = {
4
+ key: 0,
5
+ class: "absolute inset-0 flex items-center justify-center"
6
+ }, j = {
7
+ __name: "CircularProgress",
8
+ props: {
9
+ value: {
10
+ type: [Number, String],
11
+ default: 0
12
+ },
13
+ max: {
14
+ type: [Number, String],
15
+ default: 100
16
+ },
17
+ size: {
18
+ type: String,
19
+ default: "md",
20
+ validator: (r) => ["xs", "sm", "md", "lg", "xl"].includes(r)
21
+ },
22
+ variant: {
23
+ type: String,
24
+ default: "default",
25
+ validator: (r) => ["default", "success", "warning", "danger"].includes(r)
26
+ },
27
+ showValue: {
28
+ type: Boolean,
29
+ default: !0
30
+ },
31
+ showRawValue: {
32
+ type: Boolean,
33
+ default: !1
34
+ },
35
+ dynamicColor: {
36
+ type: Boolean,
37
+ default: !0
38
+ },
39
+ dynamicColorStops: {
40
+ type: Array,
41
+ default: () => [
42
+ { max: 39, stroke: "#ef4444", textClass: "text-red-700" },
43
+ { max: 79, stroke: "#f97316", textClass: "text-orange-700" },
44
+ { max: 100, stroke: "#22c55e", textClass: "text-green-700" }
45
+ ]
46
+ },
47
+ dynamicFallbackStroke: {
48
+ type: String,
49
+ default: "#22c55e"
50
+ },
51
+ dynamicFallbackTextClass: {
52
+ type: String,
53
+ default: "text-green-700"
54
+ },
55
+ strokeLinecap: {
56
+ type: String,
57
+ default: "round",
58
+ validator: (r) => ["butt", "round", "square"].includes(r)
59
+ }
60
+ },
61
+ setup(r) {
62
+ const a = r, f = t(() => parseFloat(a.value) || 0), k = t(() => parseFloat(a.max) || 100), l = t(() => {
63
+ const e = f.value / k.value * 100;
64
+ return Math.min(Math.max(e, 0), 100);
65
+ }), s = t(() => ({
66
+ xs: 42,
67
+ sm: 48,
68
+ md: 64,
69
+ lg: 80,
70
+ xl: 96
71
+ })[a.size] || 64), n = t(() => ({
72
+ xs: 2.5,
73
+ sm: 4,
74
+ md: 5,
75
+ lg: 6,
76
+ xl: 7
77
+ })[a.size] || 5), o = t(() => s.value / 2), u = t(() => o.value - n.value / 2), c = t(() => 2 * Math.PI * u.value), h = t(() => c.value - l.value / 100 * c.value), x = t(() => {
78
+ const e = l.value;
79
+ return [...Array.isArray(a.dynamicColorStops) ? a.dynamicColorStops : []].sort((i, V) => Number(i?.max ?? 0) - Number(V?.max ?? 0)).find((i) => e <= Number(i?.max ?? 0)) || null;
80
+ }), w = t(() => {
81
+ if (a.dynamicColor)
82
+ return x.value?.stroke || a.dynamicFallbackStroke;
83
+ const e = {
84
+ default: "var(--ui-primary)",
85
+ success: "var(--ui-success)",
86
+ warning: "var(--ui-warning)",
87
+ danger: "var(--ui-danger)"
88
+ };
89
+ return e[a.variant] || e.default;
90
+ }), C = t(() => "var(--ui-border-strong)"), S = t(() => {
91
+ if (a.dynamicColor)
92
+ return x.value?.textClass || a.dynamicFallbackTextClass;
93
+ const e = {
94
+ default: "ui-primary",
95
+ success: "ui-success",
96
+ warning: "ui-warning",
97
+ danger: "ui-danger"
98
+ };
99
+ return e[a.variant] || e.default;
100
+ });
101
+ return (e, b) => (m(), d("div", {
102
+ class: y(p(g)("relative inline-flex items-center justify-center", e.$attrs.class))
103
+ }, [
104
+ (m(), d("svg", {
105
+ width: s.value,
106
+ height: s.value,
107
+ viewBox: `0 0 ${s.value} ${s.value}`,
108
+ class: "transform -rotate-90"
109
+ }, [
110
+ v("circle", {
111
+ cx: o.value,
112
+ cy: o.value,
113
+ r: u.value,
114
+ stroke: C.value,
115
+ "stroke-width": n.value,
116
+ fill: "none"
117
+ }, null, 8, N),
118
+ v("circle", {
119
+ cx: o.value,
120
+ cy: o.value,
121
+ r: u.value,
122
+ stroke: w.value,
123
+ "stroke-width": n.value,
124
+ fill: "none",
125
+ "stroke-dasharray": c.value,
126
+ "stroke-dashoffset": h.value,
127
+ "stroke-linecap": r.strokeLinecap,
128
+ class: "transition-all duration-300 ease-in-out"
129
+ }, null, 8, _)
130
+ ], 8, F)),
131
+ r.showValue ? (m(), d("div", M, [
132
+ v("span", {
133
+ class: y(p(g)("text-xs font-medium", S.value))
134
+ }, B(r.showRawValue ? f.value.toFixed(2) : Math.round(l.value) + "%"), 3)
135
+ ])) : z("", !0)
136
+ ], 2));
137
+ }
138
+ };
139
+ export {
140
+ j as default
141
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),S=require("class-variance-authority"),m=require("../utils/cn.cjs"),Te=require("./Checkbox.cjs"),De=require("./DataTableHeader.cjs"),Re=require("./DataTableRow.cjs"),Ae=require("./DataTableToolBar.cjs"),ze=require("./DataTablePagination.cjs"),$e=require("./FilterDrawer.cjs"),I=require("./Icon.cjs"),R=require("./Loader.cjs"),Pe=require("./Button.cjs"),Le=require("./Tooltip.cjs"),Fe=require("./Modal.cjs"),je=require("../_plugin-vue_export-helper-BHFhmbuH.cjs"),qe={key:0,class:"inline-flex items-center justify-center min-w-5 h-5 rounded-full text-xs ui-primary-bg text-white px-1"},Oe={class:"relative"},Me={class:"flex items-center justify-center"},Ke=["onClick"],Ue={class:"flex items-center gap-2"},Ie={key:1,class:"flex flex-col"},He=["onClick"],Je={key:1},Ge={key:1,class:"flex items-center gap-1 justify-center"},Qe={key:1,class:"text-xs"},Xe={key:2},Ye=["colspan"],Ze={class:"flex flex-col items-center justify-center py-12"},We={class:"ui-text mb-4 flex justify-center"},_e={class:"ui-text text-lg font-medium mb-2"},et={class:"ui-text text-sm"},tt={class:"p-6"},lt={class:"text-xl font-bold ui-text whitespace-pre-wrap wrap-break-word"},at={__name:"DataTable",props:{data:{type:Array,required:!0},columns:{type:Array,required:!0},title:{type:String,default:null},description:{type:String,default:null},selectable:{type:Boolean,default:!1},selectedItems:{type:Array,default:()=>[]},sortBy:{type:String,default:null},sortOrder:{type:String,default:"asc",validator:a=>["asc","desc"].includes(a)},pageSize:{type:Number,default:10},showPagination:{type:Boolean,default:!0},striped:{type:Boolean,default:!0},hoverable:{type:Boolean,default:!0},clickableRows:{type:Boolean,default:!1},highlightUnreadRows:{type:Boolean,default:!0},unreadCreatedAtField:{type:String,default:""},unreadMode:{type:String,default:"all",validator:a=>["all","new-only"].includes(a)},unreadPersistKey:{type:String,default:""},emptyText:{type:String,default:"No data available"},emptySubtitle:{type:String,default:"Try adjusting your search or filter criteria"},rowKey:{type:String,default:"id"},variant:{type:String,default:"default",validator:a=>["default","bordered","minimal"].includes(a)},density:{type:String,default:"compact",validator:a=>["compact","normal","comfortable"].includes(a)},headerVariant:{type:String,default:"default"},headerPadding:{type:String,default:"normal"},paginationVariant:{type:String,default:"default"},paginationPadding:{type:String,default:"normal"},actions:{type:Array,default:()=>[]},showActionsColumn:{type:Boolean,default:!0},addButton:{type:Object,default:()=>({})},loading:{type:Boolean,default:!1},dataLoading:{type:Boolean,default:!1},sortLoading:{type:Boolean,default:!1},paginationLoading:{type:Boolean,default:!1},bulkLoading:{type:Boolean,default:!1},rowLoading:{type:Object,default:()=>({})},loadingType:{type:String,default:"dots",validator:a=>["spin","pulse","bounce","ripple","bars","dots","ring"].includes(a)},loadingSize:{type:String,default:"medium",validator:a=>["small","medium","large","xl"].includes(a)},loadingColor:{type:String,default:"#3b82f6"},loadingText:{type:String,default:"Loading..."},loadingTextPosition:{type:String,default:"bottom",validator:a=>["top","bottom"].includes(a)},loadingBackground:{type:String,default:"rgba(255, 255, 255, 0.95)"},showSkeleton:{type:Boolean,default:!0},skeletonRows:{type:Number,default:10},showToolbar:{type:Boolean,default:!1},showDensityToggle:{type:Boolean,default:!0},showColumnToggle:{type:Boolean,default:!0},showRefresh:{type:Boolean,default:!0},showFilterDrawer:{type:Boolean,default:!1},filterFields:{type:Array,default:()=>[]},filterRules:{type:Object,default:()=>({logic:"all",rules:[]})},defaultFilterRules:{type:Object,default:()=>({logic:"all",rules:[]})},themeScope:{type:String,default:"default",validator:a=>["default","module"].includes(a)}},emits:["selection-change","sort-change","row-click","page-change","page-size-change","refresh","action","update:density","toggle-column","add","add-button-click","update:filterRules"],setup(a,{expose:H,emit:J}){const n=a,u=J,G=e.useSlots(),k=e.ref(1),b=e.ref(n.pageSize),p=e.ref(n.columns.map(t=>t.key)),g=e.ref(n.sortBy),y=e.ref(n.sortOrder),h=e.ref(!1),w=e.ref(""),V=e.ref(!1),C=e.ref(new Set),A=e.ref(Date.now()),Q=(t,l)=>{if(!(!t||!l))return String(l).split(".").reduce((r,o)=>r?.[o],t)},N=e.computed(()=>Array.isArray(n.filterRules?.rules)?n.filterRules.rules.length:0),X=t=>{if(t&&typeof t=="object"){const l=t.from||"",r=t.to||"";return l&&r?`${l} to ${r}`:l||r||""}return String(t??"")},Y=()=>u("update:filterRules",{logic:"all",rules:[]}),Z=e.computed(()=>(n.filterRules?.rules||[]).map(t=>({id:t.id,label:t.label,value:X(t.value)}))),W=S.cva("border ui-border-strong rounded-2xl relative overflow-hidden flex flex-col gap-y-2 px-2 pb-2",{variants:{variant:{default:"shadow-sm ui-border-strong",bordered:"border-2 ui-border-strong",minimal:"border-none ui-border-strong shadow-none bg-transparent"}},defaultVariants:{variant:"default"}}),_=S.cva("min-w-full",{variants:{variant:{default:"divide-y divide-(--ui-border-strong)",bordered:"border-collapse [&_td]:border [&_th]:border [&_td]:border-(--ui-border-strong) [&_th]:border-(--ui-border-strong)",minimal:"divide-y divide-(--ui-border-strong)"}},defaultVariants:{variant:"default"}}),ee=S.cva("",{variants:{variant:{default:" border-b border-(--ui-border-strong)",bordered:" border-b-2 border-(--ui-border-strong)",minimal:"bg-transparent border-b border-(--ui-border-strong)"}},defaultVariants:{variant:"default"}}),te=S.cva("divide-y",{variants:{variant:{default:" divide-(--ui-border-strong)",bordered:" divide-(--ui-border-strong)",minimal:"bg-transparent divide-(--ui-border-strong)"}},defaultVariants:{variant:"default"}}),f=e.computed(()=>{let t=[...n.data];if(g.value){const l=n.columns.find(r=>r.key===g.value);l&&t.sort((r,o)=>{const c=T(r,l),i=T(o,l);return c<i?y.value==="asc"?-1:1:c>i?y.value==="asc"?1:-1:0})}return t}),z=e.computed(()=>Math.ceil(f.value.length/b.value)),$=e.computed(()=>{if(!n.showPagination)return f.value;const t=(k.value-1)*b.value,l=t+b.value;return f.value.slice(t,l)}),B=e.computed(()=>n.columns.filter(t=>p.value.includes(t.key))),le=e.computed(()=>n.columns.filter(t=>t.toggleable!==!1)),ae=(t,l)=>{l?p.value.includes(t)||p.value.push(t):p.value=p.value.filter(r=>r!==t),u("toggle-column",{key:t,visible:l})},E=e.computed(()=>n.showActionsColumn?G.actions?!0:!n.actions||n.actions.length===0?!1:n.actions.some(l=>l.permission===void 0?!0:typeof l.permission=="boolean"?l.permission===!0:typeof l.permission=="function"):!1),ne=e.computed(()=>{let t=n.columns.length;return n.selectable&&t++,E.value&&t++,t}),oe=t=>n.actions.filter(l=>{if(l.permission!==void 0){if(typeof l.permission=="function"){if(!l.permission(t))return!1}else if(!l.permission)return!1}return l.visible&&typeof l.visible=="function"?l.visible(t):!0}),P=(t,l)=>t.permission&&typeof t.permission=="function"?t.permission(l):!0,L=(t,l)=>t.disabled&&typeof t.disabled=="function"?t.disabled(l):!1,re=(t,l)=>{L(t,l)||!P(t,l)||(u("action",{action:t.key,item:l,actionConfig:t}),t.onClick&&typeof t.onClick=="function"&&t.onClick(l))},se=t=>({default:"default",primary:"gradient",secondary:"secondary",danger:"danger",success:"success",warning:"warning",info:"info",subtle:"subtle",dark:"dark",light:"light",primaryOutline:"primaryOutline",dangerOutline:"dangerOutline",successOutline:"successOutline",outline:"outline",link:"link",ghost:"ghost"})[t]||"ghost",F=e.computed(()=>f.value.length>0&&f.value.every(t=>D(t))),ie=e.computed(()=>{const t=f.value.filter(l=>D(l)).length;return t>0&&t<f.value.length}),T=(t,l)=>l.accessor?l.accessor(t):l.key.split(".").reduce((r,o)=>r?.[o],t),v=(t,l)=>t[n.rowKey]||l,D=t=>n.selectedItems.some(l=>v(l)===v(t)),de=t=>{const l=[...n.selectedItems],r=l.findIndex(o=>v(o)===v(t));r>-1?l.splice(r,1):l.push(t),u("selection-change",l)},j=()=>{if(n.loading||n.dataLoading)return;const t=F.value?[]:[...f.value];u("selection-change",t)},ue=async t=>{!t.sortable||n.loading||n.sortLoading||(g.value===t.key?y.value=y.value==="asc"?"desc":"asc":(g.value=t.key,y.value="asc"),u("sort-change",{column:t.key,direction:y.value}))},ce=t=>{if(!n.loading){if(n.highlightUnreadRows){const l=v(t.item,t.index);C.value.add(String(l)),ye()}u("row-click",t)}},fe=(t,l)=>{if(!n.highlightUnreadRows)return!1;const r=String(v(t,l));if(C.value.has(r))return!1;if(n.unreadMode==="all")return!0;const o=n.unreadCreatedAtField;if(!o)return!1;const c=o.includes(".")?Q(t,o):t?.[o];if(!c)return!1;const i=String(c).trim();let d=new Date(i).getTime();if(Number.isNaN(d)){const s=i.match(/^(\d{2})[-/](\d{2})[-/](\d{4})$/);if(s){const[,U,Ne,Ee]=s;d=new Date(`${Ee}-${Ne}-${U}T00:00:00`).getTime()}}if(Number.isNaN(d))return!1;if(/^\d{4}-\d{2}-\d{2}$/.test(i)){const s=new Date(A.value);return s.setHours(0,0,0,0),d>=s.getTime()}return d>=A.value},me=(t,l)=>n.highlightUnreadRows?fe(t,l)?"font-bold !bg-[color:color-mix(in_oklab,var(--module-soft,var(--ui-primary-soft))_62%,var(--ui-surface)_38%)]":"font-normal !bg-[color:color-mix(in_oklab,var(--module-soft-alt,var(--ui-surface-soft))_42%,var(--ui-surface)_58%)]":"",ge=()=>{if(!(!n.unreadPersistKey||typeof window>"u"))try{const t=window.localStorage.getItem(n.unreadPersistKey);if(!t)return;const l=JSON.parse(t);Array.isArray(l)&&(C.value=new Set(l.map(String)))}catch{}},ye=()=>{if(!(!n.unreadPersistKey||typeof window>"u"))try{window.localStorage.setItem(n.unreadPersistKey,JSON.stringify(Array.from(C.value)))}catch{}},q=async t=>{n.paginationLoading||n.loading||(k.value=t,u("page-change",t))},pe=async t=>{n.paginationLoading||n.loading||(b.value=t,k.value=1,u("page-size-change",t))},ve=e.computed(()=>m.cn(W({variant:n.variant}),n.themeScope==="module"&&"kv-module-themed-table")),be=e.computed(()=>m.cn(_({variant:n.variant}))),ke=e.computed(()=>m.cn(ee({variant:n.variant}))),he=e.computed(()=>m.cn(te({variant:n.variant}))),we=t=>{const l={compact:"px-3.5 py-1.5",normal:"px-6 py-3",comfortable:"px-8 py-4"};return m.cn(l[n.density],"text-left text-sm font-extrabold ui-text uppercase tracking-wider",{"cursor-pointer hover:bg-(--ui-surface) transition-colors":t.sortable&&!n.loading&&!n.sortLoading,"cursor-not-allowed opacity-50":n.loading||n.sortLoading&&g.value===t.key})},Ce=()=>{const t={compact:"px-3.5 py-1.5",normal:"px-6 py-4",comfortable:"px-8 py-6"};return m.cn(t[n.density],"whitespace-nowrap text-sm ui-text")},x=(t,l)=>{const r=T(t,l);return typeof l=="object"&&l.formatter?l.formatter(r,t):r==null?"":r instanceof Date?r.toLocaleDateString():Array.isArray(r)?r.join(", "):r},Be=(t,l=10)=>{if(!t)return t;const r=t.toString().split(" ");return r.length<=l?t:r.slice(0,l).join(" ")+"..."},xe=t=>{w.value||(w.value=t,h.value=!0)},Se=()=>{h.value=!1,w.value=""},O=e.computed(()=>{const t={compact:"px-3.5 py-1.5",normal:"px-6 py-4",comfortable:"px-8 py-6"};return m.cn(t[n.density],"whitespace-nowrap text-sm ui-text w-12")}),M=e.computed(()=>{const t={compact:"px-3.5 py-1.5",normal:"px-6 py-4",comfortable:"px-8 py-6"};return m.cn(t[n.density],"whitespace-nowrap text-md font-extrabold text-center")}),Ve=e.computed(()=>{const t={compact:"px-4 py-4",normal:"px-6 py-6",comfortable:"px-8 py-8"};return m.cn(t[n.density],"text-center")}),K=(t,l)=>m.cn({"ui-primary":g.value===t.key&&y.value===l,"ui-text":g.value!==t.key||y.value!==l});return e.watch(()=>n.selectedItems,()=>{},{deep:!0}),e.watch(()=>n.pageSize,t=>{b.value=t}),e.watch(()=>n.columns,t=>{p.value=t.map(l=>l.key)},{deep:!0}),H({refresh:()=>{u("refresh")},goToPage:t=>{q(t)},selectAll:()=>{j()},clearSelection:()=>{u("selection-change",[])},getCurrentPage:()=>k.value,getTotalPages:()=>z.value,getSelectedItems:()=>n.selectedItems}),ge(),(t,l)=>{const r=e.resolveComponent("font-awesome-icon");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(ve.value)},[a.title||a.description||t.$slots.header?(e.openBlock(),e.createBlock(De.default,{key:0,title:a.title,description:a.description,variant:a.headerVariant,padding:a.headerPadding},{header:e.withCtx(()=>[e.renderSlot(t.$slots,"header",{},void 0,!0)]),filters:e.withCtx(()=>[e.renderSlot(t.$slots,"filters",{},void 0,!0)]),_:3},8,["title","description","variant","padding"])):e.createCommentVNode("",!0),a.showToolbar?(e.openBlock(),e.createBlock(Ae.default,{key:1,"selected-items":a.selectedItems,"total-items":f.value.length,"show-density-toggle":a.showDensityToggle,"show-column-toggle":a.showColumnToggle,"show-refresh":a.showRefresh,"active-filters":a.showFilterDrawer?Z.value:[],"default-filter-rules":a.defaultFilterRules,"add-button":a.addButton,density:a.density,"toggleable-columns":le.value,"visible-columns":p.value,"onUpdate:density":l[1]||(l[1]=o=>u("update:density",o)),onToggleColumn:ae,onRefresh:l[2]||(l[2]=o=>t.$emit("refresh")),onAdd:l[3]||(l[3]=o=>u("add")),onAddButtonClick:l[4]||(l[4]=o=>u("add-button-click",o))},{actions:e.withCtx(()=>[e.renderSlot(t.$slots,"toolbar-actions",{},void 0,!0)]),"actions-after-add":e.withCtx(()=>[a.showFilterDrawer?(e.openBlock(),e.createElementBlock("button",{key:0,class:"px-3 py-2 text-sm border ui-border-strong rounded-md hover:bg-(--ui-surface) flex items-center gap-2",onClick:l[0]||(l[0]=o=>V.value=!0)},[e.createVNode(r,{icon:"filter"}),l[8]||(l[8]=e.createTextVNode(" Filter ",-1)),N.value>0?(e.openBlock(),e.createElementBlock("span",qe,e.toDisplayString(N.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"toolbar-actions-after-add",{},void 0,!0)]),"active-filter-actions":e.withCtx(()=>[a.showFilterDrawer&&N.value>0?(e.openBlock(),e.createElementBlock("button",{key:0,class:"ml-1 px-2 py-1 text-sm border border-(--ui-primary) rounded-md ui-primary hover:bg-(--ui-primary-soft)",onClick:Y}," Clear filter ")):e.createCommentVNode("",!0)]),_:3},8,["selected-items","total-items","show-density-toggle","show-column-toggle","show-refresh","active-filters","default-filter-rules","add-button","density","toggleable-columns","visible-columns"])):e.createCommentVNode("",!0),a.showFilterDrawer?(e.openBlock(),e.createBlock($e.default,{key:2,open:V.value,fields:a.filterFields,"model-value":a.filterRules,"onUpdate:modelValue":l[5]||(l[5]=o=>t.$emit("update:filterRules",o)),onClose:l[6]||(l[6]=o=>V.value=!1)},null,8,["open","fields","model-value"])):e.createCommentVNode("",!0),e.createElementVNode("div",Oe,[a.loading?(e.openBlock(),e.createBlock(R.default,{key:0,loading:!0,type:a.loadingType,size:a.loadingSize,color:a.loadingColor,overlay:!0,text:a.loadingText,"text-position":a.loadingTextPosition,"background-color":a.loadingBackground,class:"table-loading-overlay"},null,8,["type","size","color","text","text-position","background-color"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["overflow-x-auto",{"opacity-50":a.loading}])},[e.createElementVNode("table",{class:e.normalizeClass(be.value)},[e.createElementVNode("thead",{class:e.normalizeClass(ke.value)},[e.createElementVNode("tr",null,[a.selectable?(e.openBlock(),e.createElementBlock("th",{key:0,class:e.normalizeClass(O.value)},[e.createElementVNode("div",Me,[a.bulkLoading?(e.openBlock(),e.createBlock(R.default,{key:0,loading:!0,type:"spin",size:"small",color:a.loadingColor},null,8,["color"])):(e.openBlock(),e.createBlock(Te.default,{key:1,"model-value":F.value,indeterminate:ie.value,disabled:a.loading||a.dataLoading,"onUpdate:modelValue":j},null,8,["model-value","indeterminate","disabled"]))])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,o=>(e.openBlock(),e.createElementBlock("th",{key:o.key,class:e.normalizeClass(we(o)),onClick:c=>ue(o)},[e.createElementVNode("div",Ue,[e.createElementVNode("span",null,e.toDisplayString(o.label),1),a.sortLoading&&g.value===o.key?(e.openBlock(),e.createBlock(R.default,{key:0,loading:!0,type:"spin",size:"small",color:a.loadingColor},null,8,["color"])):o.sortable?(e.openBlock(),e.createElementBlock("div",Ie,[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass([K(o,"asc"),"w-3 h-3 transition-colors"]),fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[...l[9]||(l[9]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"},null,-1)])],2)),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass([K(o,"desc"),"w-3 h-3 transition-colors"]),fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[...l[10]||(l[10]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"},null,-1)])],2))])):e.createCommentVNode("",!0)])],10,Ke))),128)),E.value?(e.openBlock(),e.createElementBlock("th",{key:1,class:e.normalizeClass(M.value)}," Actions ",2)):e.createCommentVNode("",!0)])],2),e.createElementVNode("tbody",{class:e.normalizeClass(he.value)},[a.showSkeleton&&(a.loading||a.dataLoading)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(a.skeletonRows,o=>(e.openBlock(),e.createElementBlock("tr",{key:`skeleton-${o}`,class:"animate-pulse"},[a.selectable?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(O.value)},[...l[11]||(l[11]=[e.createElementVNode("div",{class:"w-4 h-4 ui-bg rounded"},null,-1)])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,c=>(e.openBlock(),e.createElementBlock("td",{key:c.key,class:e.normalizeClass(Ce())},[...l[12]||(l[12]=[e.createElementVNode("div",{class:"h-4 ui-bg rounded w-3/4"},null,-1)])],2))),128)),E.value?(e.openBlock(),e.createElementBlock("td",{key:1,class:e.normalizeClass(M.value)},[...l[13]||(l[13]=[e.createElementVNode("div",{class:"flex gap-2 justify-center"},[e.createElementVNode("div",{class:"w-6 h-6 ui-surface rounded"}),e.createElementVNode("div",{class:"w-6 h-6 ui-surface rounded"})],-1)])],2)):e.createCommentVNode("",!0)]))),128)):$.value.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList($.value,(o,c)=>(e.openBlock(),e.createBlock(Re.default,{key:v(o,c),item:o,columns:B.value,index:c,selectable:a.selectable,"is-selected":D(o),striped:a.striped,hoverable:a.hoverable,"clickable-rows":a.clickableRows,"row-class":me(o,c),density:a.density,variant:a.variant,onToggleSelection:de,onRowClick:ce},e.createSlots({actions:e.withCtx(({item:i,index:d})=>[t.$slots.actions?e.renderSlot(t.$slots,"actions",{key:0,item:i,index:d},void 0,!0):a.actions.length>0?(e.openBlock(),e.createElementBlock("div",Ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(oe(i),s=>(e.openBlock(),e.createBlock(Le.default,{key:s.key,content:typeof s.tooltip=="function"?s.tooltip(i):s.tooltip||s.label||s.key,placement:"top"},{default:e.withCtx(()=>[e.createVNode(Pe.default,{variant:se(s.variant),size:"xs",disabled:L(s,i)||!P(s,i),class:e.normalizeClass(["h-8 w-8",typeof s.class=="function"?s.class(i):s.class]),onClick:e.withModifiers(U=>re(s,i),["stop"])},{default:e.withCtx(()=>[s.icon?(e.openBlock(),e.createBlock(I.default,{key:0,icon:s.icon,class:"w-4 h-4"},null,8,["icon"])):s.label?(e.openBlock(),e.createElementBlock("span",Qe,e.toDisplayString(s.label),1)):e.createCommentVNode("",!0)]),_:2},1032,["variant","disabled","class","onClick"])]),_:2},1032,["content"]))),128))])):e.createCommentVNode("",!0)]),_:2},[e.renderList(B.value,i=>({name:`cell-${i.key}`,fn:e.withCtx(d=>[e.renderSlot(t.$slots,`cell-${i.key}`,e.mergeProps({ref_for:!0},d),()=>[x(d.item,d.column).toString().split(" ").length>10?(e.openBlock(),e.createElementBlock("span",{key:0,class:"cursor-pointer ui-primary hover:text-(--ui-primary)",onClick:e.withModifiers(s=>xe(x(d.item,d.column)),["stop"])},e.toDisplayString(Be(x(d.item,d.column))),9,He)):(e.openBlock(),e.createElementBlock("span",Je,e.toDisplayString(x(d.item,d.column)),1))],!0)])}))]),1032,["item","columns","index","selectable","is-selected","striped","hoverable","clickable-rows","row-class","density","variant"]))),128)):(e.openBlock(),e.createElementBlock("tr",Xe,[e.createElementVNode("td",{colspan:ne.value,class:e.normalizeClass(Ve.value)},[e.renderSlot(t.$slots,"empty",{},()=>[e.createElementVNode("div",Ze,[e.createElementVNode("div",We,[e.createVNode(I.default,{icon:"search",class:"w-16 h-16"})]),e.createElementVNode("p",_e,e.toDisplayString(a.emptyText),1),e.createElementVNode("p",et,e.toDisplayString(a.emptySubtitle),1)])],!0)],10,Ye)]))],2)],2)],2)]),a.showPagination||t.$slots.footer?(e.openBlock(),e.createBlock(ze.default,{key:3,"current-page":k.value,"total-pages":z.value,total:f.value.length,"page-size":b.value,"show-pagination":a.showPagination,selectable:a.selectable,"selected-count":a.selectedItems.length,variant:a.paginationVariant,padding:a.paginationPadding,loading:a.paginationLoading,disabled:a.loading||a.dataLoading,"onUpdate:currentPage":q,"onUpdate:pageSize":pe},{footer:e.withCtx(()=>[e.renderSlot(t.$slots,"footer",{},void 0,!0)]),_:3},8,["current-page","total-pages","total","page-size","show-pagination","selectable","selected-count","variant","padding","loading","disabled"])):e.createCommentVNode("",!0),e.createVNode(Fe.default,{modelValue:h.value,"onUpdate:modelValue":l[7]||(l[7]=o=>h.value=o),size:"lg",onClose:Se},{default:e.withCtx(()=>[e.createElementVNode("div",tt,[l[14]||(l[14]=e.createElementVNode("h3",{class:"text-md font-semibold mb-4"}," Full Text ",-1)),e.createElementVNode("div",lt,e.toDisplayString(w.value),1)])]),_:1},8,["modelValue"])],2)}}},nt=je._export_sfc(at,[["__scopeId","data-v-dc691687"]]);exports.default=nt;