@sigx/daisyui 0.1.6

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 (146) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/dist/buttons/Button.d.ts +18 -0
  4. package/dist/buttons/Button.d.ts.map +1 -0
  5. package/dist/buttons/ButtonGroup.d.ts +18 -0
  6. package/dist/buttons/ButtonGroup.d.ts.map +1 -0
  7. package/dist/buttons/index.d.ts +5 -0
  8. package/dist/buttons/index.d.ts.map +1 -0
  9. package/dist/buttons/index.js +2 -0
  10. package/dist/buttons-Dtj_5Uc3.js +61 -0
  11. package/dist/buttons-Dtj_5Uc3.js.map +1 -0
  12. package/dist/data/Table.d.ts +92 -0
  13. package/dist/data/Table.d.ts.map +1 -0
  14. package/dist/data/index.d.ts +3 -0
  15. package/dist/data/index.d.ts.map +1 -0
  16. package/dist/data/index.js +2 -0
  17. package/dist/data-wxNpnX83.js +153 -0
  18. package/dist/data-wxNpnX83.js.map +1 -0
  19. package/dist/feedback/Accordion.d.ts +87 -0
  20. package/dist/feedback/Accordion.d.ts.map +1 -0
  21. package/dist/feedback/Badge.d.ts +73 -0
  22. package/dist/feedback/Badge.d.ts.map +1 -0
  23. package/dist/feedback/Countdown.d.ts +33 -0
  24. package/dist/feedback/Countdown.d.ts.map +1 -0
  25. package/dist/feedback/Diff.d.ts +43 -0
  26. package/dist/feedback/Diff.d.ts.map +1 -0
  27. package/dist/feedback/FileInput.d.ts +28 -0
  28. package/dist/feedback/FileInput.d.ts.map +1 -0
  29. package/dist/feedback/Indicator.d.ts +47 -0
  30. package/dist/feedback/Indicator.d.ts.map +1 -0
  31. package/dist/feedback/Kbd.d.ts +31 -0
  32. package/dist/feedback/Kbd.d.ts.map +1 -0
  33. package/dist/feedback/Modal.d.ts +51 -0
  34. package/dist/feedback/Modal.d.ts.map +1 -0
  35. package/dist/feedback/RadialProgress.d.ts +35 -0
  36. package/dist/feedback/RadialProgress.d.ts.map +1 -0
  37. package/dist/feedback/Rating.d.ts +34 -0
  38. package/dist/feedback/Rating.d.ts.map +1 -0
  39. package/dist/feedback/Skeleton.d.ts +24 -0
  40. package/dist/feedback/Skeleton.d.ts.map +1 -0
  41. package/dist/feedback/Steps.d.ts +60 -0
  42. package/dist/feedback/Steps.d.ts.map +1 -0
  43. package/dist/feedback/Swap.d.ts +53 -0
  44. package/dist/feedback/Swap.d.ts.map +1 -0
  45. package/dist/feedback/Timeline.d.ts +76 -0
  46. package/dist/feedback/Timeline.d.ts.map +1 -0
  47. package/dist/feedback/Toast.d.ts +30 -0
  48. package/dist/feedback/Toast.d.ts.map +1 -0
  49. package/dist/feedback/index.d.ts +31 -0
  50. package/dist/feedback/index.d.ts.map +1 -0
  51. package/dist/feedback/index.js +2 -0
  52. package/dist/feedback-DFutN-Kz.js +817 -0
  53. package/dist/feedback-DFutN-Kz.js.map +1 -0
  54. package/dist/forms/Checkbox.d.ts +15 -0
  55. package/dist/forms/Checkbox.d.ts.map +1 -0
  56. package/dist/forms/FormField.d.ts +16 -0
  57. package/dist/forms/FormField.d.ts.map +1 -0
  58. package/dist/forms/Input.d.ts +19 -0
  59. package/dist/forms/Input.d.ts.map +1 -0
  60. package/dist/forms/Radio.d.ts +78 -0
  61. package/dist/forms/Radio.d.ts.map +1 -0
  62. package/dist/forms/Range.d.ts +15 -0
  63. package/dist/forms/Range.d.ts.map +1 -0
  64. package/dist/forms/Select.d.ts +28 -0
  65. package/dist/forms/Select.d.ts.map +1 -0
  66. package/dist/forms/Textarea.d.ts +17 -0
  67. package/dist/forms/Textarea.d.ts.map +1 -0
  68. package/dist/forms/Toggle.d.ts +15 -0
  69. package/dist/forms/Toggle.d.ts.map +1 -0
  70. package/dist/forms/index.d.ts +17 -0
  71. package/dist/forms/index.d.ts.map +1 -0
  72. package/dist/forms/index.js +2 -0
  73. package/dist/forms-CuvlRMro.js +362 -0
  74. package/dist/forms-CuvlRMro.js.map +1 -0
  75. package/dist/index.d.ts +38 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +9 -0
  78. package/dist/layout/Card.d.ts +65 -0
  79. package/dist/layout/Card.d.ts.map +1 -0
  80. package/dist/layout/Carousel.d.ts +56 -0
  81. package/dist/layout/Carousel.d.ts.map +1 -0
  82. package/dist/layout/Chat.d.ts +54 -0
  83. package/dist/layout/Chat.d.ts.map +1 -0
  84. package/dist/layout/Container.d.ts +17 -0
  85. package/dist/layout/Container.d.ts.map +1 -0
  86. package/dist/layout/Divider.d.ts +22 -0
  87. package/dist/layout/Divider.d.ts.map +1 -0
  88. package/dist/layout/Flex.d.ts +59 -0
  89. package/dist/layout/Flex.d.ts.map +1 -0
  90. package/dist/layout/Footer.d.ts +25 -0
  91. package/dist/layout/Footer.d.ts.map +1 -0
  92. package/dist/layout/Hero.d.ts +52 -0
  93. package/dist/layout/Hero.d.ts.map +1 -0
  94. package/dist/layout/Join.d.ts +40 -0
  95. package/dist/layout/Join.d.ts.map +1 -0
  96. package/dist/layout/Link.d.ts +20 -0
  97. package/dist/layout/Link.d.ts.map +1 -0
  98. package/dist/layout/Mask.d.ts +26 -0
  99. package/dist/layout/Mask.d.ts.map +1 -0
  100. package/dist/layout/Mockup.d.ts +95 -0
  101. package/dist/layout/Mockup.d.ts.map +1 -0
  102. package/dist/layout/Stack.d.ts +45 -0
  103. package/dist/layout/Stack.d.ts.map +1 -0
  104. package/dist/layout/index.d.ts +46 -0
  105. package/dist/layout/index.d.ts.map +1 -0
  106. package/dist/layout/index.js +2 -0
  107. package/dist/layout-0aaJX4B2.js +554 -0
  108. package/dist/layout-0aaJX4B2.js.map +1 -0
  109. package/dist/navigation/Breadcrumbs.d.ts +22 -0
  110. package/dist/navigation/Breadcrumbs.d.ts.map +1 -0
  111. package/dist/navigation/Drawer.d.ts +25 -0
  112. package/dist/navigation/Drawer.d.ts.map +1 -0
  113. package/dist/navigation/Dropdown.d.ts +40 -0
  114. package/dist/navigation/Dropdown.d.ts.map +1 -0
  115. package/dist/navigation/MenuComponent.d.ts +54 -0
  116. package/dist/navigation/MenuComponent.d.ts.map +1 -0
  117. package/dist/navigation/Navbar.d.ts +23 -0
  118. package/dist/navigation/Navbar.d.ts.map +1 -0
  119. package/dist/navigation/Pagination.d.ts +12 -0
  120. package/dist/navigation/Pagination.d.ts.map +1 -0
  121. package/dist/navigation/Tabs.d.ts +35 -0
  122. package/dist/navigation/Tabs.d.ts.map +1 -0
  123. package/dist/navigation/index.d.ts +15 -0
  124. package/dist/navigation/index.d.ts.map +1 -0
  125. package/dist/navigation/index.js +2 -0
  126. package/dist/navigation-4cwyfLvr.js +285 -0
  127. package/dist/navigation-4cwyfLvr.js.map +1 -0
  128. package/dist/shared/styles.d.ts +79 -0
  129. package/dist/shared/styles.d.ts.map +1 -0
  130. package/dist/styles-DFkMxi90.js +126 -0
  131. package/dist/styles-DFkMxi90.js.map +1 -0
  132. package/dist/theme/ThemeProvider.d.ts +73 -0
  133. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  134. package/dist/theme/index.d.ts +3 -0
  135. package/dist/theme/index.d.ts.map +1 -0
  136. package/dist/theme/index.js +2 -0
  137. package/dist/theme-D9CUMvuT.js +118 -0
  138. package/dist/theme-D9CUMvuT.js.map +1 -0
  139. package/dist/typography/Text.d.ts +47 -0
  140. package/dist/typography/Text.d.ts.map +1 -0
  141. package/dist/typography/index.d.ts +3 -0
  142. package/dist/typography/index.d.ts.map +1 -0
  143. package/dist/typography/index.js +2 -0
  144. package/dist/typography-CU1RMGKA.js +112 -0
  145. package/dist/typography-CU1RMGKA.js.map +1 -0
  146. package/package.json +88 -0
@@ -0,0 +1,817 @@
1
+ import { Portal, component, compound, effect, onMounted } from "sigx";
2
+ import { jsx, jsxs } from "sigx/jsx-runtime";
3
+ const Modal = compound(component(({ props, slots, emit }) => {
4
+ let dialogRef = null;
5
+ const close = () => {
6
+ if (props.model) props.model.value = false;
7
+ };
8
+ const handleClose = () => {
9
+ close();
10
+ };
11
+ const handleClick = (e) => {
12
+ if (e.target === dialogRef) close();
13
+ };
14
+ onMounted(() => {
15
+ effect(() => {
16
+ if (!dialogRef) return;
17
+ const isOpen = props.model?.value;
18
+ const isDialogOpen = dialogRef.open;
19
+ if (isOpen && !isDialogOpen) dialogRef.showModal();
20
+ else if (!isOpen && isDialogOpen) dialogRef.close();
21
+ });
22
+ });
23
+ return () => {
24
+ return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsxs("dialog", {
25
+ ref: (el) => dialogRef = el,
26
+ class: "modal",
27
+ onClose: handleClose,
28
+ onClick: handleClick,
29
+ children: [/* @__PURE__ */ jsx("div", {
30
+ class: `modal-box ${props.class ?? ""}`,
31
+ children: slots.default?.()
32
+ }), /* @__PURE__ */ jsx("form", {
33
+ method: "dialog",
34
+ class: "modal-backdrop",
35
+ children: /* @__PURE__ */ jsx("button", { children: "close" })
36
+ })]
37
+ }) });
38
+ };
39
+ }), {
40
+ Header: component(({ props, slots, emit }) => {
41
+ return () => /* @__PURE__ */ jsxs("div", {
42
+ class: `flex items-center justify-between ${props.class ?? ""}`,
43
+ children: [/* @__PURE__ */ jsx("h3", {
44
+ class: "text-lg font-bold",
45
+ children: slots.default?.()
46
+ }), /* @__PURE__ */ jsx("form", {
47
+ method: "dialog",
48
+ children: /* @__PURE__ */ jsx("button", {
49
+ type: "button",
50
+ class: "btn btn-sm btn-circle btn-ghost",
51
+ onClick: () => emit("close"),
52
+ children: "✕"
53
+ })
54
+ })]
55
+ });
56
+ }),
57
+ Body: component(({ props, slots }) => {
58
+ return () => /* @__PURE__ */ jsx("div", {
59
+ class: `py-4 ${props.class ?? ""}`,
60
+ children: slots.default?.()
61
+ });
62
+ }),
63
+ Actions: component(({ props, slots }) => {
64
+ return () => /* @__PURE__ */ jsx("div", {
65
+ class: `modal-action ${props.class ?? ""}`,
66
+ children: slots.default?.()
67
+ });
68
+ })
69
+ });
70
+ var badgeVariantClasses = {
71
+ primary: "badge-primary",
72
+ secondary: "badge-secondary",
73
+ accent: "badge-accent",
74
+ info: "badge-info",
75
+ success: "badge-success",
76
+ warning: "badge-warning",
77
+ error: "badge-error",
78
+ ghost: "badge-ghost",
79
+ neutral: "badge-neutral"
80
+ };
81
+ var badgeSizeClasses = {
82
+ xs: "badge-xs",
83
+ sm: "badge-sm",
84
+ md: "",
85
+ lg: "badge-lg"
86
+ };
87
+ const Badge = component(({ props, slots }) => {
88
+ const getClasses = () => {
89
+ const classes = ["badge"];
90
+ if (props.variant) classes.push(badgeVariantClasses[props.variant]);
91
+ if (props.size) {
92
+ const sizeClass = badgeSizeClasses[props.size];
93
+ if (sizeClass) classes.push(sizeClass);
94
+ }
95
+ if (props.outline) classes.push("badge-outline");
96
+ if (props.class) classes.push(props.class);
97
+ return classes.join(" ");
98
+ };
99
+ return () => /* @__PURE__ */ jsx("span", {
100
+ class: getClasses(),
101
+ children: slots.default?.()
102
+ });
103
+ });
104
+ var loadingTypeClasses = {
105
+ spinner: "loading-spinner",
106
+ dots: "loading-dots",
107
+ ring: "loading-ring",
108
+ ball: "loading-ball",
109
+ bars: "loading-bars",
110
+ infinity: "loading-infinity"
111
+ };
112
+ var loadingSizeClasses = {
113
+ xs: "loading-xs",
114
+ sm: "loading-sm",
115
+ md: "loading-md",
116
+ lg: "loading-lg"
117
+ };
118
+ const Loading = component(({ props }) => {
119
+ const getClasses = () => {
120
+ const classes = ["loading"];
121
+ classes.push(loadingTypeClasses[props.type ?? "spinner"]);
122
+ classes.push(loadingSizeClasses[props.size ?? "md"]);
123
+ if (props.class) classes.push(props.class);
124
+ return classes.join(" ");
125
+ };
126
+ return () => /* @__PURE__ */ jsx("span", { class: getClasses() });
127
+ });
128
+ var alertVariantClasses = {
129
+ info: "alert-info",
130
+ success: "alert-success",
131
+ warning: "alert-warning",
132
+ error: "alert-error"
133
+ };
134
+ var defaultIcons = {
135
+ info: "ℹ️",
136
+ success: "✅",
137
+ warning: "⚠️",
138
+ error: "❌"
139
+ };
140
+ const Alert = component(({ props, slots }) => {
141
+ const getClasses = () => {
142
+ const classes = ["alert"];
143
+ if (props.variant) classes.push(alertVariantClasses[props.variant]);
144
+ if (props.class) classes.push(props.class);
145
+ return classes.join(" ");
146
+ };
147
+ return () => /* @__PURE__ */ jsxs("div", {
148
+ role: "alert",
149
+ class: getClasses(),
150
+ children: [slots.icon?.() ?? (props.variant && /* @__PURE__ */ jsx("span", { children: defaultIcons[props.variant] })), /* @__PURE__ */ jsx("span", { children: slots.default?.() })]
151
+ });
152
+ });
153
+ var progressColorClasses = {
154
+ primary: "progress-primary",
155
+ secondary: "progress-secondary",
156
+ accent: "progress-accent",
157
+ info: "progress-info",
158
+ success: "progress-success",
159
+ warning: "progress-warning",
160
+ error: "progress-error"
161
+ };
162
+ const Progress = component(({ props }) => {
163
+ const getClasses = () => {
164
+ const classes = ["progress", "w-full"];
165
+ if (props.color) classes.push(progressColorClasses[props.color]);
166
+ if (props.class) classes.push(props.class);
167
+ return classes.join(" ");
168
+ };
169
+ return () => /* @__PURE__ */ jsx("progress", {
170
+ class: getClasses(),
171
+ value: props.value,
172
+ max: props.max ?? 100
173
+ });
174
+ });
175
+ var tooltipPositionClasses = {
176
+ top: "tooltip-top",
177
+ bottom: "tooltip-bottom",
178
+ left: "tooltip-left",
179
+ right: "tooltip-right"
180
+ };
181
+ var tooltipColorClasses = {
182
+ primary: "tooltip-primary",
183
+ secondary: "tooltip-secondary",
184
+ accent: "tooltip-accent",
185
+ info: "tooltip-info",
186
+ success: "tooltip-success",
187
+ warning: "tooltip-warning",
188
+ error: "tooltip-error"
189
+ };
190
+ const Tooltip = component(({ props, slots }) => {
191
+ const getClasses = () => {
192
+ const classes = ["tooltip"];
193
+ if (props.position) classes.push(tooltipPositionClasses[props.position]);
194
+ if (props.color) classes.push(tooltipColorClasses[props.color]);
195
+ if (props.open) classes.push("tooltip-open");
196
+ if (props.class) classes.push(props.class);
197
+ return classes.join(" ");
198
+ };
199
+ return () => /* @__PURE__ */ jsx("div", {
200
+ class: getClasses(),
201
+ "data-tip": props.tip,
202
+ children: slots.default?.()
203
+ });
204
+ });
205
+ const Accordion = compound(component(({ props, slots, emit }) => {
206
+ const name = `accordion-${Math.random().toString(36).slice(2)}`;
207
+ const getVariantClass = () => {
208
+ if (props.variant === "arrow") return "collapse-arrow";
209
+ if (props.variant === "plus") return "collapse-plus";
210
+ return "";
211
+ };
212
+ const handleChange = (id, checked) => {
213
+ if (checked) {
214
+ if (props.activeId) props.activeId.value = id;
215
+ emit("change", id);
216
+ } else if (props.activeId?.value === id) {
217
+ if (props.activeId) props.activeId.value = "";
218
+ emit("change", "");
219
+ }
220
+ };
221
+ const handleDetailsToggle = (id, e) => {
222
+ const details = e.target;
223
+ handleChange(id, details.open);
224
+ };
225
+ return () => {
226
+ const variantClass = getVariantClass();
227
+ const containerClass = props.join ? "join join-vertical bg-base-100 w-full" : "w-full space-y-2";
228
+ const itemBorderClass = props.join ? "join-item border-base-300 border" : "border border-base-300";
229
+ const useDetails = props.type === "details";
230
+ const defaultContent = slots.default?.();
231
+ if (Array.isArray(defaultContent) && defaultContent.length > 0) return /* @__PURE__ */ jsx("div", {
232
+ class: `${containerClass} ${props.class ?? ""}`,
233
+ children: defaultContent
234
+ });
235
+ if (useDetails) return /* @__PURE__ */ jsx("div", {
236
+ class: `${containerClass} ${props.class ?? ""}`,
237
+ children: props.items?.map((item) => /* @__PURE__ */ jsxs("details", {
238
+ class: `collapse ${variantClass} bg-base-100 ${itemBorderClass}`,
239
+ name,
240
+ open: props.activeId?.value === item.id,
241
+ onToggle: (e) => handleDetailsToggle(item.id, e),
242
+ children: [/* @__PURE__ */ jsx("summary", {
243
+ class: "collapse-title font-semibold",
244
+ children: item.title
245
+ }), /* @__PURE__ */ jsx("div", {
246
+ class: "collapse-content text-sm",
247
+ children: /* @__PURE__ */ jsx("p", { children: item.content })
248
+ })]
249
+ }))
250
+ });
251
+ return /* @__PURE__ */ jsx("div", {
252
+ class: `${containerClass} ${props.class ?? ""}`,
253
+ children: props.items?.map((item) => /* @__PURE__ */ jsxs("div", {
254
+ class: `collapse ${variantClass} bg-base-100 ${itemBorderClass}`,
255
+ children: [
256
+ /* @__PURE__ */ jsx("input", {
257
+ type: "radio",
258
+ name,
259
+ checked: props.activeId?.value === item.id,
260
+ onChange: (e) => handleChange(item.id, e.target.checked)
261
+ }),
262
+ /* @__PURE__ */ jsx("div", {
263
+ class: "collapse-title font-semibold",
264
+ children: item.title
265
+ }),
266
+ /* @__PURE__ */ jsx("div", {
267
+ class: "collapse-content text-sm",
268
+ children: /* @__PURE__ */ jsx("p", { children: item.content })
269
+ })
270
+ ]
271
+ }))
272
+ });
273
+ };
274
+ }), {
275
+ Item: component(({ props, slots, emit }) => {
276
+ const getVariantClass = () => {
277
+ if (props.variant === "arrow") return "collapse-arrow";
278
+ if (props.variant === "plus") return "collapse-plus";
279
+ return "";
280
+ };
281
+ const getForceClass = () => {
282
+ if (props.forceOpen) return "collapse-open";
283
+ if (props.forceClose) return "collapse-close";
284
+ return "";
285
+ };
286
+ return () => {
287
+ const baseClass = `collapse ${getVariantClass()} ${getForceClass()} bg-base-100 border border-base-300 ${props.class ?? ""}`;
288
+ const useDetails = props.type === "details";
289
+ const titleContent = slots.title?.();
290
+ const title = Array.isArray(titleContent) && titleContent.length > 0 ? titleContent : props.title;
291
+ if (useDetails) return /* @__PURE__ */ jsxs("details", {
292
+ class: baseClass,
293
+ name: props.name ?? "accordion",
294
+ open: props.open,
295
+ onToggle: (e) => emit("toggle", e.target.open),
296
+ children: [/* @__PURE__ */ jsx("summary", {
297
+ class: "collapse-title font-semibold",
298
+ children: title
299
+ }), /* @__PURE__ */ jsx("div", {
300
+ class: "collapse-content text-sm",
301
+ children: slots.default?.()
302
+ })]
303
+ });
304
+ return /* @__PURE__ */ jsxs("div", {
305
+ class: baseClass,
306
+ children: [
307
+ /* @__PURE__ */ jsx("input", {
308
+ type: "radio",
309
+ name: props.name ?? "accordion",
310
+ checked: props.open,
311
+ onChange: (e) => emit("toggle", e.target.checked)
312
+ }),
313
+ /* @__PURE__ */ jsx("div", {
314
+ class: "collapse-title font-semibold",
315
+ children: title
316
+ }),
317
+ /* @__PURE__ */ jsx("div", {
318
+ class: "collapse-content text-sm",
319
+ children: slots.default?.()
320
+ })
321
+ ]
322
+ });
323
+ };
324
+ }),
325
+ Collapse: component(({ props, slots, emit }) => {
326
+ const getVariantClass = () => {
327
+ if (props.variant === "arrow") return "collapse-arrow";
328
+ if (props.variant === "plus") return "collapse-plus";
329
+ return "";
330
+ };
331
+ const getForceClass = () => {
332
+ if (props.forceOpen) return "collapse-open";
333
+ if (props.forceClose) return "collapse-close";
334
+ return "";
335
+ };
336
+ const handleChange = (e) => {
337
+ const checked = e.target.checked;
338
+ if (props.model) props.model.value = checked;
339
+ emit("toggle", checked);
340
+ };
341
+ return () => {
342
+ const variantClass = getVariantClass();
343
+ const forceClass = getForceClass();
344
+ const titleContent = slots.title?.();
345
+ const title = Array.isArray(titleContent) && titleContent.length > 0 ? titleContent : props.title;
346
+ return /* @__PURE__ */ jsxs("div", {
347
+ class: `collapse ${variantClass} ${forceClass} bg-base-100 border border-base-300 ${props.class ?? ""}`,
348
+ children: [
349
+ /* @__PURE__ */ jsx("input", {
350
+ type: "checkbox",
351
+ checked: props.model?.value ?? false,
352
+ onChange: handleChange
353
+ }),
354
+ /* @__PURE__ */ jsx("div", {
355
+ class: "collapse-title font-semibold",
356
+ children: title
357
+ }),
358
+ /* @__PURE__ */ jsx("div", {
359
+ class: "collapse-content text-sm",
360
+ children: slots.default?.()
361
+ })
362
+ ]
363
+ });
364
+ };
365
+ })
366
+ });
367
+ var fileInputSizeClasses = {
368
+ xs: "file-input-xs",
369
+ sm: "file-input-sm",
370
+ md: "",
371
+ lg: "file-input-lg"
372
+ };
373
+ var fileInputColorClasses = {
374
+ primary: "file-input-primary",
375
+ secondary: "file-input-secondary",
376
+ accent: "file-input-accent",
377
+ info: "file-input-info",
378
+ success: "file-input-success",
379
+ warning: "file-input-warning",
380
+ error: "file-input-error"
381
+ };
382
+ const FileInput = component(({ props, emit }) => {
383
+ const getClasses = () => {
384
+ const classes = ["file-input", "w-full"];
385
+ if (props.size) {
386
+ const sizeClass = fileInputSizeClasses[props.size];
387
+ if (sizeClass) classes.push(sizeClass);
388
+ }
389
+ if (props.color) classes.push(fileInputColorClasses[props.color]);
390
+ if (props.bordered) classes.push("file-input-bordered");
391
+ if (props.ghost) classes.push("file-input-ghost");
392
+ if (props.class) classes.push(props.class);
393
+ return classes.join(" ");
394
+ };
395
+ const handleChange = (e) => {
396
+ const target = e.target;
397
+ emit("change", target.files);
398
+ };
399
+ return () => /* @__PURE__ */ jsx("input", {
400
+ type: "file",
401
+ class: getClasses(),
402
+ accept: props.accept,
403
+ multiple: props.multiple,
404
+ disabled: props.disabled,
405
+ onChange: handleChange
406
+ });
407
+ });
408
+ var ratingSizeClasses = {
409
+ xs: "rating-xs",
410
+ sm: "rating-sm",
411
+ md: "",
412
+ lg: "rating-lg"
413
+ };
414
+ var ratingMaskClasses = {
415
+ "star": "mask-star",
416
+ "star-2": "mask-star-2",
417
+ "heart": "mask-heart",
418
+ "circle": "mask-circle",
419
+ "diamond": "mask-diamond",
420
+ "hexagon": "mask-hexagon",
421
+ "decagon": "mask-decagon",
422
+ "triangle": "mask-triangle"
423
+ };
424
+ var ratingColorClasses = {
425
+ primary: "bg-primary",
426
+ secondary: "bg-secondary",
427
+ accent: "bg-accent",
428
+ info: "bg-info",
429
+ success: "bg-success",
430
+ warning: "bg-warning",
431
+ error: "bg-error"
432
+ };
433
+ const Rating = component(({ props, emit }) => {
434
+ const max = () => props.max ?? 5;
435
+ const name = `rating-${Math.random().toString(36).slice(2)}`;
436
+ const getContainerClasses = () => {
437
+ const classes = ["rating"];
438
+ if (props.size) {
439
+ const sizeClass = ratingSizeClasses[props.size];
440
+ if (sizeClass) classes.push(sizeClass);
441
+ }
442
+ if (props.half) classes.push("rating-half");
443
+ if (props.class) classes.push(props.class);
444
+ return classes.join(" ");
445
+ };
446
+ const getInputClasses = (value) => {
447
+ const classes = ["mask"];
448
+ classes.push(ratingMaskClasses[props.mask ?? "star-2"]);
449
+ if (props.color) classes.push(ratingColorClasses[props.color]);
450
+ else classes.push("bg-orange-400");
451
+ if (props.half && value % 1 === .5) classes.push("rating-half", "mask-half-1");
452
+ else if (props.half && value % 1 === 0) classes.push("mask-half-2");
453
+ return classes.join(" ");
454
+ };
455
+ const handleChange = (value) => {
456
+ if (!props.readOnly) {
457
+ if (props.model) props.model.value = value;
458
+ emit("change", value);
459
+ }
460
+ };
461
+ return () => {
462
+ const values = props.half ? Array.from({ length: max() * 2 }, (_, i) => (i + 1) * .5) : Array.from({ length: max() }, (_, i) => i + 1);
463
+ return /* @__PURE__ */ jsxs("div", {
464
+ class: getContainerClasses(),
465
+ children: [/* @__PURE__ */ jsx("input", {
466
+ type: "radio",
467
+ name,
468
+ class: "rating-hidden",
469
+ checked: (props.model?.value ?? 0) === 0,
470
+ onChange: () => handleChange(0),
471
+ disabled: props.readOnly
472
+ }), values.map((value) => /* @__PURE__ */ jsx("input", {
473
+ type: "radio",
474
+ name,
475
+ class: getInputClasses(value),
476
+ checked: (props.model?.value ?? 0) === value,
477
+ onChange: () => handleChange(value),
478
+ disabled: props.readOnly
479
+ }))]
480
+ });
481
+ };
482
+ });
483
+ const Skeleton = component(({ props }) => {
484
+ const getClasses = () => {
485
+ const classes = ["skeleton"];
486
+ if (props.circle) classes.push("rounded-full");
487
+ if (props.class) classes.push(props.class);
488
+ return classes.join(" ");
489
+ };
490
+ const getStyle = () => {
491
+ const style = {};
492
+ if (props.width) style.width = props.width;
493
+ if (props.height) style.height = props.height;
494
+ return style;
495
+ };
496
+ return () => /* @__PURE__ */ jsx("div", {
497
+ class: getClasses(),
498
+ style: getStyle()
499
+ });
500
+ });
501
+ const Steps = compound(component(({ props, slots, emit }) => {
502
+ const getClasses = () => {
503
+ const classes = ["steps"];
504
+ if (props.vertical) classes.push("steps-vertical");
505
+ else classes.push("w-full");
506
+ if (props.class) classes.push(props.class);
507
+ return classes.join(" ");
508
+ };
509
+ const isStepCompleted = (stepId) => {
510
+ return (props.items?.findIndex((s) => s.id === stepId) ?? -1) <= (props.items?.findIndex((s) => s.id === props.model?.value) ?? -1);
511
+ };
512
+ const handleStepClick = (stepId) => {
513
+ if (props.model) props.model.value = stepId;
514
+ emit("change", stepId);
515
+ };
516
+ return () => {
517
+ if (slots.default) return /* @__PURE__ */ jsx("ul", {
518
+ class: getClasses(),
519
+ children: slots.default()
520
+ });
521
+ return /* @__PURE__ */ jsx("ul", {
522
+ class: getClasses(),
523
+ children: props.items?.map((step) => {
524
+ const completed = isStepCompleted(step.id);
525
+ return /* @__PURE__ */ jsx("li", {
526
+ class: `step ${step.color && completed ? `step-${step.color}` : completed ? "step-primary" : ""}`,
527
+ "data-content": step.content,
528
+ onClick: () => handleStepClick(step.id),
529
+ children: step.label
530
+ });
531
+ })
532
+ });
533
+ };
534
+ }), { Step: component(({ props, slots, emit }) => {
535
+ const getClasses = () => {
536
+ const classes = ["step"];
537
+ if (props.completed || props.active) if (props.color) classes.push(`step-${props.color}`);
538
+ else classes.push("step-primary");
539
+ if (props.class) classes.push(props.class);
540
+ return classes.join(" ");
541
+ };
542
+ return () => /* @__PURE__ */ jsx("li", {
543
+ class: getClasses(),
544
+ "data-content": props.content,
545
+ onClick: () => props.id && emit("click", props.id),
546
+ children: slots.default?.()
547
+ });
548
+ }) });
549
+ const Timeline = compound(component(({ props, slots }) => {
550
+ const getClasses = () => {
551
+ const classes = ["timeline"];
552
+ if (props.vertical) classes.push("timeline-vertical");
553
+ if (props.snap) classes.push("timeline-snap-icon");
554
+ if (props.compact) classes.push("timeline-compact");
555
+ if (props.class) classes.push(props.class);
556
+ return classes.join(" ");
557
+ };
558
+ if (slots.default) return () => /* @__PURE__ */ jsx("ul", {
559
+ class: getClasses(),
560
+ children: slots.default?.()
561
+ });
562
+ return () => /* @__PURE__ */ jsx("ul", {
563
+ class: getClasses(),
564
+ children: props.items?.map((item, index) => /* @__PURE__ */ jsxs("li", { children: [
565
+ index > 0 && /* @__PURE__ */ jsx("hr", { class: item.color ? `bg-${item.color}` : "" }),
566
+ item.time && /* @__PURE__ */ jsx("div", {
567
+ class: "timeline-start",
568
+ children: item.time
569
+ }),
570
+ /* @__PURE__ */ jsx("div", {
571
+ class: "timeline-middle",
572
+ children: item.icon ? /* @__PURE__ */ jsx("span", { children: item.icon }) : /* @__PURE__ */ jsx("svg", {
573
+ xmlns: "http://www.w3.org/2000/svg",
574
+ viewBox: "0 0 20 20",
575
+ fill: "currentColor",
576
+ class: "w-5 h-5",
577
+ children: /* @__PURE__ */ jsx("path", {
578
+ "fill-rule": "evenodd",
579
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",
580
+ "clip-rule": "evenodd"
581
+ })
582
+ })
583
+ }),
584
+ /* @__PURE__ */ jsxs("div", {
585
+ class: "timeline-end timeline-box",
586
+ children: [/* @__PURE__ */ jsx("div", {
587
+ class: "font-medium",
588
+ children: item.title
589
+ }), item.description && /* @__PURE__ */ jsx("p", {
590
+ class: "text-sm opacity-70",
591
+ children: item.description
592
+ })]
593
+ }),
594
+ index < (props.items?.length ?? 0) - 1 && /* @__PURE__ */ jsx("hr", { class: props.items?.[index + 1]?.color ? `bg-${props.items[index + 1].color}` : "" })
595
+ ] }))
596
+ });
597
+ }), {
598
+ Item: component(({ props, slots }) => {
599
+ return () => /* @__PURE__ */ jsxs("li", {
600
+ class: props.class,
601
+ children: [
602
+ slots.start && /* @__PURE__ */ jsx("div", {
603
+ class: "timeline-start",
604
+ children: slots.start()
605
+ }),
606
+ slots.middle && /* @__PURE__ */ jsx("div", {
607
+ class: "timeline-middle",
608
+ children: slots.middle()
609
+ }),
610
+ slots.end && /* @__PURE__ */ jsx("div", {
611
+ class: "timeline-end",
612
+ children: slots.end()
613
+ }),
614
+ slots.default?.()
615
+ ]
616
+ });
617
+ }),
618
+ Start: component(({ props, slots }) => {
619
+ return () => /* @__PURE__ */ jsx("div", {
620
+ class: `timeline-start ${props.class ?? ""}`,
621
+ children: slots.default?.()
622
+ });
623
+ }),
624
+ Middle: component(({ props, slots }) => {
625
+ return () => /* @__PURE__ */ jsx("div", {
626
+ class: `timeline-middle ${props.class ?? ""}`,
627
+ children: slots.default?.() ?? /* @__PURE__ */ jsx("svg", {
628
+ xmlns: "http://www.w3.org/2000/svg",
629
+ viewBox: "0 0 20 20",
630
+ fill: "currentColor",
631
+ class: "w-5 h-5",
632
+ children: /* @__PURE__ */ jsx("path", {
633
+ "fill-rule": "evenodd",
634
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",
635
+ "clip-rule": "evenodd"
636
+ })
637
+ })
638
+ });
639
+ }),
640
+ End: component(({ props, slots }) => {
641
+ const getClasses = () => {
642
+ const classes = ["timeline-end"];
643
+ if (props.boxed) classes.push("timeline-box");
644
+ if (props.class) classes.push(props.class);
645
+ return classes.join(" ");
646
+ };
647
+ return () => /* @__PURE__ */ jsx("div", {
648
+ class: getClasses(),
649
+ children: slots.default?.()
650
+ });
651
+ })
652
+ });
653
+ var toastPositionClasses = {
654
+ "top-start": "toast-top toast-start",
655
+ "top-center": "toast-top toast-center",
656
+ "top-end": "toast-top toast-end",
657
+ "middle-start": "toast-middle toast-start",
658
+ "middle-center": "toast-middle toast-center",
659
+ "middle-end": "toast-middle toast-end",
660
+ "bottom-start": "toast-bottom toast-start",
661
+ "bottom-center": "toast-bottom toast-center",
662
+ "bottom-end": "toast-bottom toast-end"
663
+ };
664
+ const Toast = component(({ props, slots }) => {
665
+ const getClasses = () => {
666
+ const classes = ["toast"];
667
+ const position = props.position ?? "bottom-end";
668
+ classes.push(toastPositionClasses[position]);
669
+ if (props.class) classes.push(props.class);
670
+ return classes.join(" ");
671
+ };
672
+ return () => /* @__PURE__ */ jsx("div", {
673
+ class: getClasses(),
674
+ children: slots.default?.()
675
+ });
676
+ });
677
+ var kbdSizeClasses = {
678
+ xs: "kbd-xs",
679
+ sm: "kbd-sm",
680
+ md: "",
681
+ lg: "kbd-lg"
682
+ };
683
+ const Kbd = component(({ props, slots }) => {
684
+ const getClasses = () => {
685
+ const classes = ["kbd"];
686
+ if (props.size) {
687
+ const sizeClass = kbdSizeClasses[props.size];
688
+ if (sizeClass) classes.push(sizeClass);
689
+ }
690
+ if (props.class) classes.push(props.class);
691
+ return classes.join(" ");
692
+ };
693
+ return () => /* @__PURE__ */ jsx("kbd", {
694
+ class: getClasses(),
695
+ children: slots.default?.()
696
+ });
697
+ });
698
+ const RadialProgress = component(({ props, slots }) => {
699
+ const getClasses = () => {
700
+ const classes = ["radial-progress"];
701
+ if (props.color) classes.push(`text-${props.color}`);
702
+ if (props.class) classes.push(props.class);
703
+ return classes.join(" ");
704
+ };
705
+ const getStyle = () => {
706
+ const style = { "--value": String(props.value ?? 0) };
707
+ if (props.size) style["--size"] = props.size;
708
+ if (props.thickness) style["--thickness"] = props.thickness;
709
+ return style;
710
+ };
711
+ return () => /* @__PURE__ */ jsx("div", {
712
+ class: getClasses(),
713
+ style: getStyle(),
714
+ role: "progressbar",
715
+ children: slots.default?.() ?? `${props.value}%`
716
+ });
717
+ });
718
+ const Countdown = component(({ props }) => {
719
+ const getClasses = () => {
720
+ const classes = ["countdown"];
721
+ if (props.class) classes.push(props.class);
722
+ return classes.join(" ");
723
+ };
724
+ return () => /* @__PURE__ */ jsx("span", {
725
+ class: getClasses(),
726
+ children: /* @__PURE__ */ jsx("span", { style: { "--value": props.value ?? 0 } })
727
+ });
728
+ });
729
+ const Diff = component(({ props, slots }) => {
730
+ const getClasses = () => {
731
+ const classes = ["diff"];
732
+ if (!props.aspectRatio) classes.push("aspect-[16/9]");
733
+ if (props.class) classes.push(props.class);
734
+ return classes.join(" ");
735
+ };
736
+ const getStyle = () => {
737
+ if (props.aspectRatio) return { aspectRatio: props.aspectRatio };
738
+ return {};
739
+ };
740
+ return () => /* @__PURE__ */ jsxs("div", {
741
+ class: getClasses(),
742
+ style: getStyle(),
743
+ children: [
744
+ /* @__PURE__ */ jsx("div", {
745
+ class: "diff-item-1",
746
+ children: slots.first?.()
747
+ }),
748
+ /* @__PURE__ */ jsx("div", {
749
+ class: "diff-item-2",
750
+ children: slots.second?.()
751
+ }),
752
+ /* @__PURE__ */ jsx("div", { class: "diff-resizer" })
753
+ ]
754
+ });
755
+ });
756
+ const Swap = component(({ props, slots, emit }) => {
757
+ const getClasses = () => {
758
+ const classes = ["swap"];
759
+ if (props.rotate) classes.push("swap-rotate");
760
+ if (props.flip) classes.push("swap-flip");
761
+ if (props.active || props.model?.value) classes.push("swap-active");
762
+ if (props.class) classes.push(props.class);
763
+ return classes.join(" ");
764
+ };
765
+ const handleChange = (e) => {
766
+ const checked = e.target.checked;
767
+ if (props.model) props.model.value = checked;
768
+ emit("change", checked);
769
+ };
770
+ return () => /* @__PURE__ */ jsxs("label", {
771
+ class: getClasses(),
772
+ children: [
773
+ /* @__PURE__ */ jsx("input", {
774
+ type: "checkbox",
775
+ checked: props.model?.value ?? props.active ?? false,
776
+ onChange: handleChange
777
+ }),
778
+ /* @__PURE__ */ jsx("div", {
779
+ class: "swap-on",
780
+ children: slots.on?.()
781
+ }),
782
+ /* @__PURE__ */ jsx("div", {
783
+ class: "swap-off",
784
+ children: slots.off?.()
785
+ })
786
+ ]
787
+ });
788
+ });
789
+ var indicatorPositionClasses = {
790
+ "top-start": "indicator-top indicator-start",
791
+ "top-center": "indicator-top indicator-center",
792
+ "top-end": "indicator-top indicator-end",
793
+ "middle-start": "indicator-middle indicator-start",
794
+ "middle-center": "indicator-middle indicator-center",
795
+ "middle-end": "indicator-middle indicator-end",
796
+ "bottom-start": "indicator-bottom indicator-start",
797
+ "bottom-center": "indicator-bottom indicator-center",
798
+ "bottom-end": "indicator-bottom indicator-end"
799
+ };
800
+ const Indicator = component(({ props, slots }) => {
801
+ const positionClass = indicatorPositionClasses[props.position ?? "top-end"];
802
+ const getClasses = () => {
803
+ const classes = ["indicator"];
804
+ if (props.class) classes.push(props.class);
805
+ return classes.join(" ");
806
+ };
807
+ return () => /* @__PURE__ */ jsxs("div", {
808
+ class: getClasses(),
809
+ children: [/* @__PURE__ */ jsx("span", {
810
+ class: `indicator-item ${positionClass}`,
811
+ children: slots.indicator?.()
812
+ }), slots.default?.()]
813
+ });
814
+ });
815
+ export { Progress as _, RadialProgress as a, Timeline as c, Rating as d, FileInput as f, Loading as g, Badge as h, Countdown as i, Steps as l, Alert as m, Swap as n, Kbd as o, Accordion as p, Diff as r, Toast as s, Indicator as t, Skeleton as u, Tooltip as v, Modal as y };
816
+
817
+ //# sourceMappingURL=feedback-DFutN-Kz.js.map