asterui 0.12.49 → 0.12.50

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 (200) hide show
  1. package/dist/components/Alert.js +18 -18
  2. package/dist/components/Alert.js.map +1 -1
  3. package/dist/components/Anchor.js +53 -53
  4. package/dist/components/Anchor.js.map +1 -1
  5. package/dist/components/Autocomplete.js +115 -114
  6. package/dist/components/Autocomplete.js.map +1 -1
  7. package/dist/components/Avatar.js +33 -32
  8. package/dist/components/Avatar.js.map +1 -1
  9. package/dist/components/Badge.js +99 -99
  10. package/dist/components/Badge.js.map +1 -1
  11. package/dist/components/Breadcrumb.js +12 -11
  12. package/dist/components/Breadcrumb.js.map +1 -1
  13. package/dist/components/Browser.js +10 -10
  14. package/dist/components/Browser.js.map +1 -1
  15. package/dist/components/Button.js +80 -79
  16. package/dist/components/Button.js.map +1 -1
  17. package/dist/components/Card.d.ts +2 -0
  18. package/dist/components/Card.js +111 -110
  19. package/dist/components/Card.js.map +1 -1
  20. package/dist/components/Carousel.js +59 -59
  21. package/dist/components/Carousel.js.map +1 -1
  22. package/dist/components/Cascader.js +175 -174
  23. package/dist/components/Cascader.js.map +1 -1
  24. package/dist/components/Chat.js +27 -27
  25. package/dist/components/Chat.js.map +1 -1
  26. package/dist/components/Checkbox.js +98 -97
  27. package/dist/components/Checkbox.js.map +1 -1
  28. package/dist/components/Code.js +11 -11
  29. package/dist/components/Code.js.map +1 -1
  30. package/dist/components/Collapse.js +46 -46
  31. package/dist/components/Collapse.js.map +1 -1
  32. package/dist/components/ColorPicker.d.ts +1 -1
  33. package/dist/components/ColorPicker.js +93 -91
  34. package/dist/components/ColorPicker.js.map +1 -1
  35. package/dist/components/Command.js +120 -120
  36. package/dist/components/Command.js.map +1 -1
  37. package/dist/components/ConfigProvider.d.ts +1 -1
  38. package/dist/components/ConfigProvider.js +9 -9
  39. package/dist/components/ConfigProvider.js.map +1 -1
  40. package/dist/components/ContextMenu.js +33 -33
  41. package/dist/components/ContextMenu.js.map +1 -1
  42. package/dist/components/CopyButton.js +74 -73
  43. package/dist/components/CopyButton.js.map +1 -1
  44. package/dist/components/Countdown.js +60 -59
  45. package/dist/components/Countdown.js.map +1 -1
  46. package/dist/components/DatePicker.d.ts +1 -1
  47. package/dist/components/DatePicker.js +54 -53
  48. package/dist/components/DatePicker.js.map +1 -1
  49. package/dist/components/Diff.js +10 -10
  50. package/dist/components/Diff.js.map +1 -1
  51. package/dist/components/Divider.js +21 -20
  52. package/dist/components/Divider.js.map +1 -1
  53. package/dist/components/Dock.js +28 -27
  54. package/dist/components/Dock.js.map +1 -1
  55. package/dist/components/Drawer.js +43 -43
  56. package/dist/components/Drawer.js.map +1 -1
  57. package/dist/components/Dropdown.js +127 -127
  58. package/dist/components/Dropdown.js.map +1 -1
  59. package/dist/components/Empty.js +16 -15
  60. package/dist/components/Empty.js.map +1 -1
  61. package/dist/components/Fieldset.js +11 -10
  62. package/dist/components/Fieldset.js.map +1 -1
  63. package/dist/components/FileInput.js +30 -29
  64. package/dist/components/FileInput.js.map +1 -1
  65. package/dist/components/Filter.d.ts +1 -1
  66. package/dist/components/Filter.js +32 -30
  67. package/dist/components/Filter.js.map +1 -1
  68. package/dist/components/FloatButton.js +83 -83
  69. package/dist/components/FloatButton.js.map +1 -1
  70. package/dist/components/Footer.js +14 -13
  71. package/dist/components/Footer.js.map +1 -1
  72. package/dist/components/Form.js +133 -132
  73. package/dist/components/Form.js.map +1 -1
  74. package/dist/components/Hero.js +12 -11
  75. package/dist/components/Hero.js.map +1 -1
  76. package/dist/components/HoverGallery.js +7 -7
  77. package/dist/components/HoverGallery.js.map +1 -1
  78. package/dist/components/Image.js +40 -40
  79. package/dist/components/Image.js.map +1 -1
  80. package/dist/components/Input.js +171 -169
  81. package/dist/components/Input.js.map +1 -1
  82. package/dist/components/InputNumber.js +84 -83
  83. package/dist/components/InputNumber.js.map +1 -1
  84. package/dist/components/Join.js +11 -10
  85. package/dist/components/Join.js.map +1 -1
  86. package/dist/components/Kbd.js +15 -15
  87. package/dist/components/Kbd.js.map +1 -1
  88. package/dist/components/Layout.js +66 -66
  89. package/dist/components/Layout.js.map +1 -1
  90. package/dist/components/List.d.ts +1 -1
  91. package/dist/components/List.js +75 -72
  92. package/dist/components/List.js.map +1 -1
  93. package/dist/components/Loading.d.ts +1 -1
  94. package/dist/components/Loading.js +31 -29
  95. package/dist/components/Loading.js.map +1 -1
  96. package/dist/components/Mask.js +31 -31
  97. package/dist/components/Mask.js.map +1 -1
  98. package/dist/components/Mention.js +61 -61
  99. package/dist/components/Mention.js.map +1 -1
  100. package/dist/components/Menu.js +84 -84
  101. package/dist/components/Menu.js.map +1 -1
  102. package/dist/components/Message.js +30 -29
  103. package/dist/components/Message.js.map +1 -1
  104. package/dist/components/Modal.js +117 -116
  105. package/dist/components/Modal.js.map +1 -1
  106. package/dist/components/MonthCalendar.d.ts +31 -0
  107. package/dist/components/MonthCalendar.js +205 -0
  108. package/dist/components/MonthCalendar.js.map +1 -0
  109. package/dist/components/Navbar.js +25 -25
  110. package/dist/components/Navbar.js.map +1 -1
  111. package/dist/components/Notification.js +56 -55
  112. package/dist/components/Notification.js.map +1 -1
  113. package/dist/components/OTPInput.js +69 -68
  114. package/dist/components/OTPInput.js.map +1 -1
  115. package/dist/components/Pagination.d.ts +1 -1
  116. package/dist/components/Pagination.js +60 -58
  117. package/dist/components/Pagination.js.map +1 -1
  118. package/dist/components/Phone.js +10 -10
  119. package/dist/components/Phone.js.map +1 -1
  120. package/dist/components/Popconfirm.js +60 -60
  121. package/dist/components/Popconfirm.js.map +1 -1
  122. package/dist/components/Progress.js +17 -17
  123. package/dist/components/Progress.js.map +1 -1
  124. package/dist/components/QRCode.js +23 -23
  125. package/dist/components/QRCode.js.map +1 -1
  126. package/dist/components/RadialProgress.js +17 -17
  127. package/dist/components/RadialProgress.js.map +1 -1
  128. package/dist/components/Radio.js +41 -40
  129. package/dist/components/Radio.js.map +1 -1
  130. package/dist/components/Range.d.ts +1 -1
  131. package/dist/components/Range.js +39 -37
  132. package/dist/components/Range.js.map +1 -1
  133. package/dist/components/Rating.js +79 -78
  134. package/dist/components/Rating.js.map +1 -1
  135. package/dist/components/ResponsiveDrawer.js +27 -27
  136. package/dist/components/ResponsiveDrawer.js.map +1 -1
  137. package/dist/components/RichTextEditor.d.ts +32 -0
  138. package/dist/components/RichTextEditor.js +335 -0
  139. package/dist/components/RichTextEditor.js.map +1 -0
  140. package/dist/components/Segmented.d.ts +1 -1
  141. package/dist/components/Segmented.js +48 -46
  142. package/dist/components/Segmented.js.map +1 -1
  143. package/dist/components/Select.js +55 -54
  144. package/dist/components/Select.js.map +1 -1
  145. package/dist/components/Skeleton.js +9 -9
  146. package/dist/components/Skeleton.js.map +1 -1
  147. package/dist/components/Splitter.js +93 -93
  148. package/dist/components/Splitter.js.map +1 -1
  149. package/dist/components/Stat.js +17 -16
  150. package/dist/components/Stat.js.map +1 -1
  151. package/dist/components/Status.js +29 -29
  152. package/dist/components/Status.js.map +1 -1
  153. package/dist/components/Steps.js +61 -61
  154. package/dist/components/Steps.js.map +1 -1
  155. package/dist/components/Table.js +256 -256
  156. package/dist/components/Table.js.map +1 -1
  157. package/dist/components/Tabs.js +65 -65
  158. package/dist/components/Tabs.js.map +1 -1
  159. package/dist/components/Tag.js +147 -147
  160. package/dist/components/Tag.js.map +1 -1
  161. package/dist/components/TextRotate.js +6 -6
  162. package/dist/components/TextRotate.js.map +1 -1
  163. package/dist/components/Textarea.js +35 -34
  164. package/dist/components/Textarea.js.map +1 -1
  165. package/dist/components/ThemeController.d.ts +1 -1
  166. package/dist/components/ThemeController.js +71 -68
  167. package/dist/components/ThemeController.js.map +1 -1
  168. package/dist/components/TimePicker.d.ts +1 -1
  169. package/dist/components/TimePicker.js +133 -129
  170. package/dist/components/TimePicker.js.map +1 -1
  171. package/dist/components/Timeline.js +79 -79
  172. package/dist/components/Timeline.js.map +1 -1
  173. package/dist/components/Toggle.js +33 -32
  174. package/dist/components/Toggle.js.map +1 -1
  175. package/dist/components/Tooltip.js +25 -25
  176. package/dist/components/Tooltip.js.map +1 -1
  177. package/dist/components/Tour.js +126 -126
  178. package/dist/components/Tour.js.map +1 -1
  179. package/dist/components/Transfer.js +93 -92
  180. package/dist/components/Transfer.js.map +1 -1
  181. package/dist/components/Tree.js +200 -200
  182. package/dist/components/Tree.js.map +1 -1
  183. package/dist/components/TreeSelect.js +255 -254
  184. package/dist/components/TreeSelect.js.map +1 -1
  185. package/dist/components/Typography.js +71 -70
  186. package/dist/components/Typography.js.map +1 -1
  187. package/dist/components/Upload.js +81 -81
  188. package/dist/components/Upload.js.map +1 -1
  189. package/dist/components/WeekCalendar.d.ts +35 -0
  190. package/dist/components/WeekCalendar.js +204 -0
  191. package/dist/components/WeekCalendar.js.map +1 -0
  192. package/dist/components/Window.js +7 -7
  193. package/dist/components/Window.js.map +1 -1
  194. package/dist/editor.d.ts +1 -0
  195. package/dist/editor.js +5 -0
  196. package/dist/editor.js.map +1 -0
  197. package/dist/index.d.ts +4 -0
  198. package/dist/index.js +211 -207
  199. package/dist/index.js.map +1 -1
  200. package/package.json +30 -1
@@ -1,184 +1,185 @@
1
- import { jsxs as s, jsx as e, Fragment as N } from "react/jsx-runtime";
2
- import Q, { forwardRef as u } from "react";
3
- const U = {
4
- xs: "card-xs",
5
- sm: "card-sm",
6
- md: "card-md",
7
- lg: "card-lg",
8
- xl: "card-xl"
9
- }, W = {
1
+ import { jsxs as s, jsx as e, Fragment as u } from "react/jsx-runtime";
2
+ import Z, { forwardRef as v } from "react";
3
+ const _ = "card", E = "card-xs", J = "card-sm", L = "card-md", ee = "card-lg", se = "card-xl", de = "card-border", ae = "card-dash", le = "card-side", k = "card-body", T = "card-title", M = "card-actions", r = "skeleton", re = "tab", ce = "tab-active", te = "tab-disabled", ie = "tabs", ne = {
4
+ xs: E,
5
+ sm: J,
6
+ md: L,
7
+ lg: ee,
8
+ xl: se
9
+ }, oe = {
10
10
  default: "shadow-sm",
11
- border: "card-border",
12
- dash: "card-dash",
11
+ border: de,
12
+ dash: ae,
13
13
  borderless: ""
14
- }, $ = {
14
+ }, A = {
15
15
  start: "justify-start",
16
16
  center: "justify-center",
17
17
  end: "justify-end"
18
- }, C = u(
19
- ({ children: i, hoverable: a = !1, className: r = "", "data-testid": t, ...n }, m) => {
20
- const c = [
18
+ }, B = v(
19
+ ({ children: t, hoverable: d = !1, className: c = "", "data-testid": i, ...n }, h) => {
20
+ const o = [
21
21
  "p-6 border border-base-content/10",
22
- a && "cursor-pointer hover:shadow-md transition-shadow",
23
- r
22
+ d && "cursor-pointer hover:shadow-md transition-shadow",
23
+ c
24
24
  ].filter(Boolean).join(" ");
25
- return /* @__PURE__ */ e("div", { ref: m, className: c, "data-testid": t, ...n, children: i });
25
+ return /* @__PURE__ */ e("div", { ref: h, className: o, "data-testid": i, ...n, children: t });
26
26
  }
27
27
  );
28
- C.displayName = "Card.Grid";
29
- const M = u(
30
- ({ avatar: i, title: a, description: r, className: t = "", "data-testid": n, ...m }, c) => /* @__PURE__ */ s("div", { ref: c, className: `flex gap-4 ${t}`, "data-testid": n, ...m, children: [
31
- i && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: i }),
28
+ B.displayName = "Card.Grid";
29
+ const S = v(
30
+ ({ avatar: t, title: d, description: c, className: i = "", "data-testid": n, ...h }, o) => /* @__PURE__ */ s("div", { ref: o, className: `flex gap-4 ${i}`, "data-testid": n, ...h, children: [
31
+ t && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: t }),
32
32
  /* @__PURE__ */ s("div", { className: "flex-1 min-w-0", children: [
33
- a && /* @__PURE__ */ e("div", { className: "font-medium", children: a }),
34
- r && /* @__PURE__ */ e("div", { className: "text-sm opacity-70 mt-1", children: r })
33
+ d && /* @__PURE__ */ e("div", { className: "font-medium", children: d }),
34
+ c && /* @__PURE__ */ e("div", { className: "text-sm opacity-70 mt-1", children: c })
35
35
  ] })
36
36
  ] })
37
37
  );
38
- M.displayName = "Card.Meta";
39
- const G = u(
38
+ S.displayName = "Card.Meta";
39
+ const G = v(
40
40
  ({
41
- children: i,
42
- title: a,
43
- extra: r,
44
- cover: t,
41
+ children: t,
42
+ title: d,
43
+ extra: c,
44
+ cover: i,
45
45
  actions: n,
46
- className: m = "",
47
- size: c,
46
+ className: h = "",
47
+ size: o,
48
48
  bordered: R,
49
- variant: T,
50
- type: A,
51
- side: B = !1,
52
- imageFull: v = !1,
53
- actionsJustify: b = "end",
54
- loading: I = !1,
55
- hoverable: K = !1,
56
- avatar: o,
57
- description: h,
58
- tabList: f,
49
+ variant: D,
50
+ type: I,
51
+ side: K = !1,
52
+ imageFull: b = !1,
53
+ actionsJustify: $ = "end",
54
+ loading: X = !1,
55
+ hoverable: H = !1,
56
+ avatar: m,
57
+ description: f,
58
+ tabList: N,
59
59
  activeTabKey: y,
60
- defaultActiveTabKey: H,
61
- onTabChange: O,
62
- tabBarExtraContent: w,
63
- "data-testid": S,
64
- ...x
65
- }, k) => {
66
- const l = S ?? "card", [V, q] = Q.useState(
67
- H ?? f?.[0]?.key
68
- ), g = y ?? V, z = (d) => {
69
- y === void 0 && q(d), O?.(d);
70
- }, D = T ?? (R === !1 ? "borderless" : "default"), p = [
71
- "card",
60
+ defaultActiveTabKey: O,
61
+ onTabChange: V,
62
+ tabBarExtraContent: C,
63
+ bodyClassName: q,
64
+ "data-testid": z,
65
+ ...w
66
+ }, x) => {
67
+ const l = z ?? "card", [F, P] = Z.useState(
68
+ O ?? N?.[0]?.key
69
+ ), g = y ?? F, Q = (a) => {
70
+ y === void 0 && P(a), V?.(a);
71
+ }, U = D ?? (R === !1 ? "borderless" : "default"), p = [
72
+ _,
72
73
  "bg-base-100",
73
- c && U[c],
74
+ o && ne[o],
74
75
  // Don't add variant styling when imageFull is used (it breaks the overlay effect)
75
- !v && W[D],
76
- B && "card-side",
77
- v && "image-full shadow-sm",
78
- K && "transition-shadow hover:shadow-lg cursor-pointer",
79
- A === "inner" && "bg-base-200",
80
- m
76
+ !b && oe[U],
77
+ K && le,
78
+ b && "image-full shadow-sm",
79
+ H && "transition-shadow hover:shadow-lg cursor-pointer",
80
+ I === "inner" && "bg-base-200",
81
+ h
81
82
  ].filter(Boolean).join(" ");
82
- if (I)
83
+ if (X)
83
84
  return /* @__PURE__ */ s(
84
85
  "div",
85
86
  {
86
- ref: k,
87
+ ref: x,
87
88
  className: p,
88
89
  "data-testid": l,
89
90
  "data-loading": "true",
90
- ...x,
91
+ ...w,
91
92
  children: [
92
- t && /* @__PURE__ */ e("figure", { children: /* @__PURE__ */ e("div", { className: "skeleton h-48 w-full rounded-none" }) }),
93
- /* @__PURE__ */ s("div", { className: "card-body", children: [
94
- (o || a) && /* @__PURE__ */ s("div", { className: "flex gap-4 mb-4", children: [
95
- o && /* @__PURE__ */ e("div", { className: "skeleton w-12 h-12 rounded-full flex-shrink-0" }),
93
+ i && /* @__PURE__ */ e("figure", { children: /* @__PURE__ */ e("div", { className: `${r} h-48 w-full rounded-none` }) }),
94
+ /* @__PURE__ */ s("div", { className: k, children: [
95
+ (m || d) && /* @__PURE__ */ s("div", { className: "flex gap-4 mb-4", children: [
96
+ m && /* @__PURE__ */ e("div", { className: `${r} w-12 h-12 rounded-full flex-shrink-0` }),
96
97
  /* @__PURE__ */ s("div", { className: "flex-1 space-y-2", children: [
97
- /* @__PURE__ */ e("div", { className: "skeleton h-6 w-2/3" }),
98
- h && /* @__PURE__ */ e("div", { className: "skeleton h-4 w-full" })
98
+ /* @__PURE__ */ e("div", { className: `${r} h-6 w-2/3` }),
99
+ f && /* @__PURE__ */ e("div", { className: `${r} h-4 w-full` })
99
100
  ] })
100
101
  ] }),
101
- !o && !a && /* @__PURE__ */ s(N, { children: [
102
- /* @__PURE__ */ e("div", { className: "skeleton h-6 w-2/3 mb-4" }),
102
+ !m && !d && /* @__PURE__ */ s(u, { children: [
103
+ /* @__PURE__ */ e("div", { className: `${r} h-6 w-2/3 mb-4` }),
103
104
  /* @__PURE__ */ s("div", { className: "space-y-2", children: [
104
- /* @__PURE__ */ e("div", { className: "skeleton h-4 w-full" }),
105
- /* @__PURE__ */ e("div", { className: "skeleton h-4 w-5/6" }),
106
- /* @__PURE__ */ e("div", { className: "skeleton h-4 w-4/6" })
105
+ /* @__PURE__ */ e("div", { className: `${r} h-4 w-full` }),
106
+ /* @__PURE__ */ e("div", { className: `${r} h-4 w-5/6` }),
107
+ /* @__PURE__ */ e("div", { className: `${r} h-4 w-4/6` })
107
108
  ] })
108
109
  ] }),
109
- n && /* @__PURE__ */ s("div", { className: `card-actions ${$[b]} mt-4`, children: [
110
- /* @__PURE__ */ e("div", { className: "skeleton h-10 w-20" }),
111
- /* @__PURE__ */ e("div", { className: "skeleton h-10 w-20" })
110
+ n && /* @__PURE__ */ s("div", { className: `${M} ${A[$]} mt-4`, children: [
111
+ /* @__PURE__ */ e("div", { className: `${r} h-10 w-20` }),
112
+ /* @__PURE__ */ e("div", { className: `${r} h-10 w-20` })
112
113
  ] })
113
114
  ] })
114
115
  ]
115
116
  }
116
117
  );
117
- const F = o || a && h, j = () => !a && !r ? null : r ? /* @__PURE__ */ s(
118
+ const W = m || d && f, j = () => !d && !c ? null : c ? /* @__PURE__ */ s(
118
119
  "div",
119
120
  {
120
121
  className: "flex justify-between items-start gap-4",
121
122
  "data-testid": `${l}-header`,
122
123
  children: [
123
- a && /* @__PURE__ */ e("h2", { className: "card-title", children: a }),
124
- /* @__PURE__ */ e("div", { className: "flex-shrink-0", "data-testid": `${l}-extra`, children: r })
124
+ d && /* @__PURE__ */ e("h2", { className: T, children: d }),
125
+ /* @__PURE__ */ e("div", { className: "flex-shrink-0", "data-testid": `${l}-extra`, children: c })
125
126
  ]
126
127
  }
127
- ) : a ? /* @__PURE__ */ e("h2", { className: "card-title", children: a }) : null, P = () => !f || f.length === 0 ? null : /* @__PURE__ */ e(
128
+ ) : d ? /* @__PURE__ */ e("h2", { className: T, children: d }) : null, Y = () => !N || N.length === 0 ? null : /* @__PURE__ */ e(
128
129
  "div",
129
130
  {
130
131
  className: "border-b border-base-300 px-4",
131
132
  "data-testid": `${l}-tabs`,
132
133
  children: /* @__PURE__ */ s("div", { className: "flex items-center justify-between", children: [
133
- /* @__PURE__ */ e("div", { role: "tablist", className: "tabs", children: f.map((d) => /* @__PURE__ */ e(
134
+ /* @__PURE__ */ e("div", { role: "tablist", className: ie, children: N.map((a) => /* @__PURE__ */ e(
134
135
  "button",
135
136
  {
136
137
  role: "tab",
137
138
  className: [
138
- "tab",
139
- g === d.key && "tab-active",
140
- d.disabled && "tab-disabled"
139
+ re,
140
+ g === a.key && ce,
141
+ a.disabled && te
141
142
  ].filter(Boolean).join(" "),
142
- onClick: () => !d.disabled && z(d.key),
143
- disabled: d.disabled,
144
- "aria-selected": g === d.key,
145
- "data-testid": `${l}-tab-${d.key}`,
146
- children: d.label
143
+ onClick: () => !a.disabled && Q(a.key),
144
+ disabled: a.disabled,
145
+ "aria-selected": g === a.key,
146
+ "data-testid": `${l}-tab-${a.key}`,
147
+ children: a.label
147
148
  },
148
- d.key
149
+ a.key
149
150
  )) }),
150
- w && /* @__PURE__ */ e("div", { "data-testid": `${l}-tab-extra`, children: w })
151
+ C && /* @__PURE__ */ e("div", { "data-testid": `${l}-tab-extra`, children: C })
151
152
  ] })
152
153
  }
153
154
  );
154
155
  return /* @__PURE__ */ s(
155
156
  "div",
156
157
  {
157
- ref: k,
158
+ ref: x,
158
159
  className: p,
159
160
  "data-testid": l,
160
- ...x,
161
+ ...w,
161
162
  children: [
162
- t && /* @__PURE__ */ e("figure", { "data-testid": `${l}-cover`, children: t }),
163
- P(),
164
- /* @__PURE__ */ s("div", { className: "card-body", "data-testid": `${l}-body`, children: [
165
- F ? /* @__PURE__ */ s(N, { children: [
163
+ i && /* @__PURE__ */ e("figure", { "data-testid": `${l}-cover`, children: i }),
164
+ Y(),
165
+ /* @__PURE__ */ s("div", { className: `${k} ${q || ""}`, "data-testid": `${l}-body`, children: [
166
+ W ? /* @__PURE__ */ s(u, { children: [
166
167
  /* @__PURE__ */ s("div", { className: "flex gap-4", children: [
167
- o && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: o }),
168
+ m && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: m }),
168
169
  /* @__PURE__ */ s("div", { className: "flex-1 min-w-0", children: [
169
170
  j(),
170
- h && /* @__PURE__ */ e("p", { className: "text-sm opacity-70 mt-1", children: h })
171
+ f && /* @__PURE__ */ e("p", { className: "text-sm opacity-70 mt-1", children: f })
171
172
  ] })
172
173
  ] }),
173
- i
174
- ] }) : /* @__PURE__ */ s(N, { children: [
174
+ t
175
+ ] }) : /* @__PURE__ */ s(u, { children: [
175
176
  j(),
176
- i
177
+ t
177
178
  ] }),
178
179
  n && /* @__PURE__ */ e(
179
180
  "div",
180
181
  {
181
- className: `card-actions ${$[b]}`,
182
+ className: `${M} ${A[$]}`,
182
183
  "data-testid": `${l}-actions`,
183
184
  children: n
184
185
  }
@@ -190,12 +191,12 @@ const G = u(
190
191
  }
191
192
  );
192
193
  G.displayName = "Card";
193
- const Z = Object.assign(G, {
194
- Grid: C,
195
- Meta: M
194
+ const fe = Object.assign(G, {
195
+ Grid: B,
196
+ Meta: S
196
197
  });
197
198
  export {
198
- Z as Card,
199
- Z as default
199
+ fe as Card,
200
+ fe as default
200
201
  };
201
202
  //# sourceMappingURL=Card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sources":["../../src/components/Card.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nexport type CardSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\nexport type CardVariant = 'default' | 'border' | 'dash' | 'borderless'\n\nexport interface CardTabItem {\n key: string\n label: React.ReactNode\n disabled?: boolean\n}\n\nexport interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children?: React.ReactNode\n title?: React.ReactNode\n /** Content in the top-right corner of the card header */\n extra?: React.ReactNode\n cover?: React.ReactNode\n actions?: React.ReactNode\n size?: CardSize\n /** @deprecated Use variant instead */\n bordered?: boolean\n /** Card style variant */\n variant?: CardVariant\n /** Inner card style (nested cards) */\n type?: 'inner'\n side?: boolean\n imageFull?: boolean\n actionsJustify?: 'start' | 'center' | 'end'\n loading?: boolean\n hoverable?: boolean\n // Meta props for avatar + description layout\n avatar?: React.ReactNode\n description?: React.ReactNode\n // Tab support\n tabList?: CardTabItem[]\n activeTabKey?: string\n defaultActiveTabKey?: string\n onTabChange?: (key: string) => void\n tabBarExtraContent?: React.ReactNode\n 'data-testid'?: string\n}\n\nexport interface CardMetaProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Avatar or icon element */\n avatar?: React.ReactNode\n /** Title content */\n title?: React.ReactNode\n /** Description content */\n description?: React.ReactNode\n 'data-testid'?: string\n}\n\nexport interface CardGridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n hoverable?: boolean\n 'data-testid'?: string\n}\n\nconst sizeClasses: Record<CardSize, string> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n}\n\nconst variantClasses: Record<CardVariant, string> = {\n default: 'shadow-sm',\n border: 'card-border',\n dash: 'card-dash',\n borderless: '',\n}\n\nconst justifyClasses: Record<string, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n}\n\nconst CardGrid = forwardRef<HTMLDivElement, CardGridProps>(\n ({ children, hoverable = false, className = '', 'data-testid': testId, ...rest }, ref) => {\n const classes = [\n 'p-6 border border-base-content/10',\n hoverable && 'cursor-pointer hover:shadow-md transition-shadow',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div ref={ref} className={classes} data-testid={testId} {...rest}>\n {children}\n </div>\n )\n }\n)\n\nCardGrid.displayName = 'Card.Grid'\n\nconst CardMeta = forwardRef<HTMLDivElement, CardMetaProps>(\n ({ avatar, title, description, className = '', 'data-testid': testId, ...rest }, ref) => {\n return (\n <div ref={ref} className={`flex gap-4 ${className}`} data-testid={testId} {...rest}>\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {title && <div className=\"font-medium\">{title}</div>}\n {description && <div className=\"text-sm opacity-70 mt-1\">{description}</div>}\n </div>\n </div>\n )\n }\n)\n\nCardMeta.displayName = 'Card.Meta'\n\nconst CardRoot = forwardRef<HTMLDivElement, CardProps>(\n (\n {\n children,\n title,\n extra,\n cover,\n actions,\n className = '',\n size,\n bordered,\n variant,\n type,\n side = false,\n imageFull = false,\n actionsJustify = 'end',\n loading = false,\n hoverable = false,\n avatar,\n description,\n tabList,\n activeTabKey,\n defaultActiveTabKey,\n onTabChange,\n tabBarExtraContent,\n 'data-testid': testId,\n ...rest\n },\n ref\n ) => {\n const baseTestId = testId ?? 'card'\n\n // Handle activeTabKey state\n const [internalActiveKey, setInternalActiveKey] = React.useState(\n defaultActiveTabKey ?? tabList?.[0]?.key\n )\n const currentTabKey = activeTabKey ?? internalActiveKey\n\n const handleTabChange = (key: string) => {\n if (activeTabKey === undefined) {\n setInternalActiveKey(key)\n }\n onTabChange?.(key)\n }\n\n // Resolve variant from bordered prop for backwards compatibility\n const resolvedVariant = variant ?? (bordered === false ? 'borderless' : 'default')\n\n const classes = [\n 'card',\n 'bg-base-100',\n size && sizeClasses[size],\n // Don't add variant styling when imageFull is used (it breaks the overlay effect)\n !imageFull && variantClasses[resolvedVariant],\n side && 'card-side',\n imageFull && 'image-full shadow-sm',\n hoverable && 'transition-shadow hover:shadow-lg cursor-pointer',\n type === 'inner' && 'bg-base-200',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Render loading skeleton\n if (loading) {\n return (\n <div\n ref={ref}\n className={classes}\n data-testid={baseTestId}\n data-loading=\"true\"\n {...rest}\n >\n {cover && (\n <figure>\n <div className=\"skeleton h-48 w-full rounded-none\" />\n </figure>\n )}\n <div className=\"card-body\">\n {(avatar || title) && (\n <div className=\"flex gap-4 mb-4\">\n {avatar && <div className=\"skeleton w-12 h-12 rounded-full flex-shrink-0\" />}\n <div className=\"flex-1 space-y-2\">\n <div className=\"skeleton h-6 w-2/3\" />\n {description && <div className=\"skeleton h-4 w-full\" />}\n </div>\n </div>\n )}\n {!avatar && !title && (\n <>\n <div className=\"skeleton h-6 w-2/3 mb-4\" />\n <div className=\"space-y-2\">\n <div className=\"skeleton h-4 w-full\" />\n <div className=\"skeleton h-4 w-5/6\" />\n <div className=\"skeleton h-4 w-4/6\" />\n </div>\n </>\n )}\n {actions && (\n <div className={`card-actions ${justifyClasses[actionsJustify]} mt-4`}>\n <div className=\"skeleton h-10 w-20\" />\n <div className=\"skeleton h-10 w-20\" />\n </div>\n )}\n </div>\n </div>\n )\n }\n\n // Render with avatar + title + description layout (meta style)\n const hasMetaLayout = avatar || (title && description)\n\n // Header with title and extra\n const renderHeader = () => {\n if (!title && !extra) return null\n\n if (extra) {\n return (\n <div\n className=\"flex justify-between items-start gap-4\"\n data-testid={`${baseTestId}-header`}\n >\n {title && <h2 className=\"card-title\">{title}</h2>}\n <div className=\"flex-shrink-0\" data-testid={`${baseTestId}-extra`}>\n {extra}\n </div>\n </div>\n )\n }\n\n return title ? <h2 className=\"card-title\">{title}</h2> : null\n }\n\n // Render tabs\n const renderTabs = () => {\n if (!tabList || tabList.length === 0) return null\n\n return (\n <div\n className=\"border-b border-base-300 px-4\"\n data-testid={`${baseTestId}-tabs`}\n >\n <div className=\"flex items-center justify-between\">\n <div role=\"tablist\" className=\"tabs\">\n {tabList.map((tab) => (\n <button\n key={tab.key}\n role=\"tab\"\n className={[\n 'tab',\n currentTabKey === tab.key && 'tab-active',\n tab.disabled && 'tab-disabled',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => !tab.disabled && handleTabChange(tab.key)}\n disabled={tab.disabled}\n aria-selected={currentTabKey === tab.key}\n data-testid={`${baseTestId}-tab-${tab.key}`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n {tabBarExtraContent && (\n <div data-testid={`${baseTestId}-tab-extra`}>{tabBarExtraContent}</div>\n )}\n </div>\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={classes}\n data-testid={baseTestId}\n {...rest}\n >\n {cover && (\n <figure data-testid={`${baseTestId}-cover`}>{cover}</figure>\n )}\n {renderTabs()}\n <div className=\"card-body\" data-testid={`${baseTestId}-body`}>\n {hasMetaLayout ? (\n <>\n <div className=\"flex gap-4\">\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {renderHeader()}\n {description && <p className=\"text-sm opacity-70 mt-1\">{description}</p>}\n </div>\n </div>\n {children}\n </>\n ) : (\n <>\n {renderHeader()}\n {children}\n </>\n )}\n {actions && (\n <div\n className={`card-actions ${justifyClasses[actionsJustify]}`}\n data-testid={`${baseTestId}-actions`}\n >\n {actions}\n </div>\n )}\n </div>\n </div>\n )\n }\n)\n\nCardRoot.displayName = 'Card'\n\nexport const Card = Object.assign(CardRoot, {\n Grid: CardGrid,\n Meta: CardMeta,\n})\n\nexport default Card\n"],"names":["sizeClasses","variantClasses","justifyClasses","CardGrid","forwardRef","children","hoverable","className","testId","rest","ref","classes","jsx","CardMeta","avatar","title","description","jsxs","CardRoot","extra","cover","actions","size","bordered","variant","type","side","imageFull","actionsJustify","loading","tabList","activeTabKey","defaultActiveTabKey","onTabChange","tabBarExtraContent","baseTestId","internalActiveKey","setInternalActiveKey","React","currentTabKey","handleTabChange","key","resolvedVariant","Fragment","hasMetaLayout","renderHeader","renderTabs","tab","Card"],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","sources":["../../src/components/Card.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\n// DaisyUI classes\nconst dCard = 'card'\nconst dCardXs = 'card-xs'\nconst dCardSm = 'card-sm'\nconst dCardMd = 'card-md'\nconst dCardLg = 'card-lg'\nconst dCardXl = 'card-xl'\nconst dCardBorder = 'card-border'\nconst dCardDash = 'card-dash'\nconst dCardSide = 'card-side'\nconst dCardBody = 'card-body'\nconst dCardTitle = 'card-title'\nconst dCardActions = 'card-actions'\nconst dSkeleton = 'skeleton'\nconst dTab = 'tab'\nconst dTabActive = 'tab-active'\nconst dTabDisabled = 'tab-disabled'\nconst dTabs = 'tabs'\n\nexport type CardSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\nexport type CardVariant = 'default' | 'border' | 'dash' | 'borderless'\n\nexport interface CardTabItem {\n key: string\n label: React.ReactNode\n disabled?: boolean\n}\n\nexport interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children?: React.ReactNode\n title?: React.ReactNode\n /** Content in the top-right corner of the card header */\n extra?: React.ReactNode\n cover?: React.ReactNode\n actions?: React.ReactNode\n size?: CardSize\n /** @deprecated Use variant instead */\n bordered?: boolean\n /** Card style variant */\n variant?: CardVariant\n /** Inner card style (nested cards) */\n type?: 'inner'\n side?: boolean\n imageFull?: boolean\n actionsJustify?: 'start' | 'center' | 'end'\n loading?: boolean\n hoverable?: boolean\n // Meta props for avatar + description layout\n avatar?: React.ReactNode\n description?: React.ReactNode\n // Tab support\n tabList?: CardTabItem[]\n activeTabKey?: string\n defaultActiveTabKey?: string\n onTabChange?: (key: string) => void\n tabBarExtraContent?: React.ReactNode\n /** Additional classes for the card-body element */\n bodyClassName?: string\n 'data-testid'?: string\n}\n\nexport interface CardMetaProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Avatar or icon element */\n avatar?: React.ReactNode\n /** Title content */\n title?: React.ReactNode\n /** Description content */\n description?: React.ReactNode\n 'data-testid'?: string\n}\n\nexport interface CardGridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n hoverable?: boolean\n 'data-testid'?: string\n}\n\nconst sizeClasses: Record<CardSize, string> = {\n xs: dCardXs,\n sm: dCardSm,\n md: dCardMd,\n lg: dCardLg,\n xl: dCardXl,\n}\n\nconst variantClasses: Record<CardVariant, string> = {\n default: 'shadow-sm',\n border: dCardBorder,\n dash: dCardDash,\n borderless: '',\n}\n\nconst justifyClasses: Record<string, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n}\n\nconst CardGrid = forwardRef<HTMLDivElement, CardGridProps>(\n ({ children, hoverable = false, className = '', 'data-testid': testId, ...rest }, ref) => {\n const classes = [\n 'p-6 border border-base-content/10',\n hoverable && 'cursor-pointer hover:shadow-md transition-shadow',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div ref={ref} className={classes} data-testid={testId} {...rest}>\n {children}\n </div>\n )\n }\n)\n\nCardGrid.displayName = 'Card.Grid'\n\nconst CardMeta = forwardRef<HTMLDivElement, CardMetaProps>(\n ({ avatar, title, description, className = '', 'data-testid': testId, ...rest }, ref) => {\n return (\n <div ref={ref} className={`flex gap-4 ${className}`} data-testid={testId} {...rest}>\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {title && <div className=\"font-medium\">{title}</div>}\n {description && <div className=\"text-sm opacity-70 mt-1\">{description}</div>}\n </div>\n </div>\n )\n }\n)\n\nCardMeta.displayName = 'Card.Meta'\n\nconst CardRoot = forwardRef<HTMLDivElement, CardProps>(\n (\n {\n children,\n title,\n extra,\n cover,\n actions,\n className = '',\n size,\n bordered,\n variant,\n type,\n side = false,\n imageFull = false,\n actionsJustify = 'end',\n loading = false,\n hoverable = false,\n avatar,\n description,\n tabList,\n activeTabKey,\n defaultActiveTabKey,\n onTabChange,\n tabBarExtraContent,\n bodyClassName,\n 'data-testid': testId,\n ...rest\n },\n ref\n ) => {\n const baseTestId = testId ?? 'card'\n\n // Handle activeTabKey state\n const [internalActiveKey, setInternalActiveKey] = React.useState(\n defaultActiveTabKey ?? tabList?.[0]?.key\n )\n const currentTabKey = activeTabKey ?? internalActiveKey\n\n const handleTabChange = (key: string) => {\n if (activeTabKey === undefined) {\n setInternalActiveKey(key)\n }\n onTabChange?.(key)\n }\n\n // Resolve variant from bordered prop for backwards compatibility\n const resolvedVariant = variant ?? (bordered === false ? 'borderless' : 'default')\n\n const classes = [\n dCard,\n 'bg-base-100',\n size && sizeClasses[size],\n // Don't add variant styling when imageFull is used (it breaks the overlay effect)\n !imageFull && variantClasses[resolvedVariant],\n side && dCardSide,\n imageFull && 'image-full shadow-sm',\n hoverable && 'transition-shadow hover:shadow-lg cursor-pointer',\n type === 'inner' && 'bg-base-200',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n // Render loading skeleton\n if (loading) {\n return (\n <div\n ref={ref}\n className={classes}\n data-testid={baseTestId}\n data-loading=\"true\"\n {...rest}\n >\n {cover && (\n <figure>\n <div className={`${dSkeleton} h-48 w-full rounded-none`} />\n </figure>\n )}\n <div className={dCardBody}>\n {(avatar || title) && (\n <div className=\"flex gap-4 mb-4\">\n {avatar && <div className={`${dSkeleton} w-12 h-12 rounded-full flex-shrink-0`} />}\n <div className=\"flex-1 space-y-2\">\n <div className={`${dSkeleton} h-6 w-2/3`} />\n {description && <div className={`${dSkeleton} h-4 w-full`} />}\n </div>\n </div>\n )}\n {!avatar && !title && (\n <>\n <div className={`${dSkeleton} h-6 w-2/3 mb-4`} />\n <div className=\"space-y-2\">\n <div className={`${dSkeleton} h-4 w-full`} />\n <div className={`${dSkeleton} h-4 w-5/6`} />\n <div className={`${dSkeleton} h-4 w-4/6`} />\n </div>\n </>\n )}\n {actions && (\n <div className={`${dCardActions} ${justifyClasses[actionsJustify]} mt-4`}>\n <div className={`${dSkeleton} h-10 w-20`} />\n <div className={`${dSkeleton} h-10 w-20`} />\n </div>\n )}\n </div>\n </div>\n )\n }\n\n // Render with avatar + title + description layout (meta style)\n const hasMetaLayout = avatar || (title && description)\n\n // Header with title and extra\n const renderHeader = () => {\n if (!title && !extra) return null\n\n if (extra) {\n return (\n <div\n className=\"flex justify-between items-start gap-4\"\n data-testid={`${baseTestId}-header`}\n >\n {title && <h2 className={dCardTitle}>{title}</h2>}\n <div className=\"flex-shrink-0\" data-testid={`${baseTestId}-extra`}>\n {extra}\n </div>\n </div>\n )\n }\n\n return title ? <h2 className={dCardTitle}>{title}</h2> : null\n }\n\n // Render tabs\n const renderTabs = () => {\n if (!tabList || tabList.length === 0) return null\n\n return (\n <div\n className=\"border-b border-base-300 px-4\"\n data-testid={`${baseTestId}-tabs`}\n >\n <div className=\"flex items-center justify-between\">\n <div role=\"tablist\" className={dTabs}>\n {tabList.map((tab) => (\n <button\n key={tab.key}\n role=\"tab\"\n className={[\n dTab,\n currentTabKey === tab.key && dTabActive,\n tab.disabled && dTabDisabled,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => !tab.disabled && handleTabChange(tab.key)}\n disabled={tab.disabled}\n aria-selected={currentTabKey === tab.key}\n data-testid={`${baseTestId}-tab-${tab.key}`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n {tabBarExtraContent && (\n <div data-testid={`${baseTestId}-tab-extra`}>{tabBarExtraContent}</div>\n )}\n </div>\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={classes}\n data-testid={baseTestId}\n {...rest}\n >\n {cover && (\n <figure data-testid={`${baseTestId}-cover`}>{cover}</figure>\n )}\n {renderTabs()}\n <div className={`${dCardBody} ${bodyClassName || ''}`} data-testid={`${baseTestId}-body`}>\n {hasMetaLayout ? (\n <>\n <div className=\"flex gap-4\">\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {renderHeader()}\n {description && <p className=\"text-sm opacity-70 mt-1\">{description}</p>}\n </div>\n </div>\n {children}\n </>\n ) : (\n <>\n {renderHeader()}\n {children}\n </>\n )}\n {actions && (\n <div\n className={`${dCardActions} ${justifyClasses[actionsJustify]}`}\n data-testid={`${baseTestId}-actions`}\n >\n {actions}\n </div>\n )}\n </div>\n </div>\n )\n }\n)\n\nCardRoot.displayName = 'Card'\n\nexport const Card = Object.assign(CardRoot, {\n Grid: CardGrid,\n Meta: CardMeta,\n})\n\nexport default Card\n"],"names":["dCard","dCardXs","dCardSm","dCardMd","dCardLg","dCardXl","dCardBorder","dCardDash","dCardSide","dCardBody","dCardTitle","dCardActions","dSkeleton","dTab","dTabActive","dTabDisabled","dTabs","sizeClasses","variantClasses","justifyClasses","CardGrid","forwardRef","children","hoverable","className","testId","rest","ref","classes","jsx","CardMeta","avatar","title","description","jsxs","CardRoot","extra","cover","actions","size","bordered","variant","type","side","imageFull","actionsJustify","loading","tabList","activeTabKey","defaultActiveTabKey","onTabChange","tabBarExtraContent","bodyClassName","baseTestId","internalActiveKey","setInternalActiveKey","React","currentTabKey","handleTabChange","key","resolvedVariant","Fragment","hasMetaLayout","renderHeader","renderTabs","tab","Card"],"mappings":"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"}
@@ -1,85 +1,85 @@
1
- import { jsxs as R, jsx as i, Fragment as ae } from "react/jsx-runtime";
2
- import { forwardRef as T, useState as D, useRef as L, Children as re, isValidElement as ne, useCallback as y, useImperativeHandle as ie, useEffect as ce, cloneElement as ue } from "react";
3
- const z = T(
4
- ({ children: g, className: b = "", "data-testid": w, ...c }, p) => /* @__PURE__ */ i(
1
+ import { jsxs as P, jsx as i, Fragment as ae } from "react/jsx-runtime";
2
+ import { forwardRef as L, useState as I, useRef as R, Children as re, isValidElement as ne, useCallback as y, useImperativeHandle as ie, useEffect as ce, cloneElement as ue } from "react";
3
+ const de = "carousel", fe = "carousel-vertical", me = "carousel-item", be = "btn", pe = "btn-circle", he = "btn-sm", T = L(
4
+ ({ children: $, className: b = "", "data-testid": g, ...c }, p) => /* @__PURE__ */ i(
5
5
  "div",
6
6
  {
7
7
  ref: p,
8
8
  role: "group",
9
9
  "aria-roledescription": "slide",
10
- className: `carousel-item w-full flex-shrink-0 ${b}`,
11
- "data-testid": w,
10
+ className: `${me} w-full flex-shrink-0 ${b}`,
11
+ "data-testid": g,
12
12
  ...c,
13
- children: g
13
+ children: $
14
14
  }
15
15
  )
16
16
  );
17
- z.displayName = "Carousel.Item";
18
- const B = T(
17
+ T.displayName = "Carousel.Item";
18
+ const z = L(
19
19
  ({
20
- children: g,
20
+ children: $,
21
21
  activeIndex: b,
22
- defaultActiveIndex: w = 0,
22
+ defaultActiveIndex: g = 0,
23
23
  autoplay: c = !1,
24
24
  autoplaySpeed: p = 3e3,
25
25
  speed: h = 500,
26
26
  arrows: K = !0,
27
27
  dots: d = !0,
28
- dotPlacement: F = "bottom",
29
- effect: $ = "scrollx",
28
+ dotPlacement: V = "bottom",
29
+ effect: w = "scrollx",
30
30
  infinite: v = !0,
31
- pauseOnHover: I = !0,
31
+ pauseOnHover: D = !0,
32
32
  vertical: a = !1,
33
- beforeChange: A,
34
- afterChange: x,
35
- className: G = "",
33
+ beforeChange: S,
34
+ afterChange: C,
35
+ className: F = "",
36
36
  "data-testid": r,
37
- ...U
38
- }, V) => {
39
- const C = b !== void 0, [X, Y] = D(w), o = C ? b : X, [S, E] = D(!1), [M, j] = D(!1), _ = L(null), k = L(null), N = re.toArray(g).filter(ne), l = N.length, u = y(
37
+ ...G
38
+ }, U) => {
39
+ const x = b !== void 0, [X, Y] = I(g), o = x ? b : X, [A, E] = I(!1), [M, j] = I(!1), _ = R(null), k = R(null), N = re.toArray($).filter(ne), s = N.length, u = y(
40
40
  (e, t = !0) => {
41
- if (M || l === 0) return;
42
- let s = e;
43
- v ? s = (e % l + l) % l : s = Math.max(0, Math.min(e, l - 1)), s !== o && (A?.(o, s), t ? (j(!0), setTimeout(() => {
44
- j(!1), x?.(s);
45
- }, h)) : x?.(s), C || Y(s));
41
+ if (M || s === 0) return;
42
+ let l = e;
43
+ v ? l = (e % s + s) % s : l = Math.max(0, Math.min(e, s - 1)), l !== o && (S?.(o, l), t ? (j(!0), setTimeout(() => {
44
+ j(!1), C?.(l);
45
+ }, h)) : C?.(l), x || Y(l));
46
46
  },
47
- [o, l, v, C, A, x, h, M]
47
+ [o, s, v, x, S, C, h, M]
48
48
  ), n = y(() => {
49
49
  u(o + 1);
50
50
  }, [u, o]), f = y(() => {
51
51
  u(o - 1);
52
52
  }, [u, o]);
53
- ie(V, () => ({
53
+ ie(U, () => ({
54
54
  goTo: (e, t = !0) => u(e, t),
55
55
  next: n,
56
56
  prev: f
57
- })), ce(() => (c && !S && l > 1 && (k.current = setInterval(() => {
57
+ })), ce(() => (c && !A && s > 1 && (k.current = setInterval(() => {
58
58
  n();
59
59
  }, p)), () => {
60
60
  k.current && clearInterval(k.current);
61
- }), [c, S, p, n, l]);
61
+ }), [c, A, p, n, s]);
62
62
  const q = y(
63
63
  (e) => {
64
64
  a ? e.key === "ArrowUp" ? (e.preventDefault(), f()) : e.key === "ArrowDown" && (e.preventDefault(), n()) : e.key === "ArrowLeft" ? (e.preventDefault(), f()) : e.key === "ArrowRight" && (e.preventDefault(), n());
65
65
  },
66
66
  [a, f, n]
67
67
  ), H = () => {
68
- I && c && E(!0);
68
+ D && c && E(!0);
69
69
  }, J = () => {
70
- I && c && E(!1);
70
+ D && c && E(!1);
71
71
  }, Q = [
72
- "carousel",
73
- a ? "carousel-vertical" : "",
74
- G
75
- ].filter(Boolean).join(" "), W = (e) => $ === "fade" ? {
72
+ de,
73
+ a ? fe : "",
74
+ F
75
+ ].filter(Boolean).join(" "), W = (e) => w === "fade" ? {
76
76
  position: e === 0 ? "relative" : "absolute",
77
77
  top: 0,
78
78
  left: 0,
79
79
  opacity: e === o ? 1 : 0,
80
80
  transition: `opacity ${h}ms ease-in-out`,
81
81
  zIndex: e === o ? 1 : 0
82
- } : {}, Z = $ === "scrollx" ? {
82
+ } : {}, Z = w === "scrollx" ? {
83
83
  display: "flex",
84
84
  flexDirection: a ? "column" : "row",
85
85
  transform: a ? `translateY(-${o * 100}%)` : `translateX(-${o * 100}%)`,
@@ -94,26 +94,26 @@ const B = T(
94
94
  bottom: "bottom-2 left-1/2 -translate-x-1/2 flex-row",
95
95
  start: "left-2 top-1/2 -translate-y-1/2 flex-col",
96
96
  end: "right-2 top-1/2 -translate-y-1/2 flex-col"
97
- }, te = d === !0 || typeof d == "object" && d !== null, oe = typeof d == "object" ? d.className : "", P = ({
97
+ }, te = d === !0 || typeof d == "object" && d !== null, oe = typeof d == "object" ? d.className : "", B = ({
98
98
  direction: e,
99
99
  onClick: t,
100
- disabled: s
100
+ disabled: l
101
101
  }) => {
102
- const m = e === "prev", le = a ? m ? "top-2 left-1/2 -translate-x-1/2" : "bottom-2 left-1/2 -translate-x-1/2" : m ? "left-2 top-1/2 -translate-y-1/2" : "right-2 top-1/2 -translate-y-1/2", se = a ? m ? "▲" : "▼" : m ? "❮" : "❯";
102
+ const m = e === "prev", se = a ? m ? "top-2 left-1/2 -translate-x-1/2" : "bottom-2 left-1/2 -translate-x-1/2" : m ? "left-2 top-1/2 -translate-y-1/2" : "right-2 top-1/2 -translate-y-1/2", le = a ? m ? "▲" : "▼" : m ? "❮" : "❯";
103
103
  return /* @__PURE__ */ i(
104
104
  "button",
105
105
  {
106
106
  type: "button",
107
107
  onClick: t,
108
- disabled: s,
108
+ disabled: l,
109
109
  "aria-label": m ? "Previous slide" : "Next slide",
110
- className: `absolute ${le} btn btn-circle btn-sm bg-base-100/80 hover:bg-base-100 border-none shadow-md z-10 disabled:opacity-50 disabled:cursor-not-allowed`,
110
+ className: `absolute ${se} ${be} ${pe} ${he} bg-base-100/80 hover:bg-base-100 border-none shadow-md z-10 disabled:opacity-50 disabled:cursor-not-allowed`,
111
111
  "data-testid": r ? `${r}-${e}` : void 0,
112
- children: se
112
+ children: le
113
113
  }
114
114
  );
115
115
  };
116
- return /* @__PURE__ */ R(
116
+ return /* @__PURE__ */ P(
117
117
  "div",
118
118
  {
119
119
  ref: _,
@@ -127,22 +127,22 @@ const B = T(
127
127
  className: `relative overflow-hidden focus:outline-none focus-visible:ring-2 focus-visible:ring-primary ${Q}`,
128
128
  "data-testid": r,
129
129
  "data-active-index": o,
130
- ...U,
130
+ ...G,
131
131
  children: [
132
132
  /* @__PURE__ */ i(
133
133
  "div",
134
134
  {
135
- className: $ === "fade" ? "relative w-full h-full" : a ? "h-full" : "",
135
+ className: w === "fade" ? "relative w-full h-full" : a ? "h-full" : "",
136
136
  style: Z,
137
137
  "aria-live": "polite",
138
138
  children: N.map((e, t) => {
139
- const s = e;
140
- return ue(s, {
139
+ const l = e;
140
+ return ue(l, {
141
141
  key: t,
142
142
  "aria-hidden": t !== o,
143
- "aria-label": `Slide ${t + 1} of ${l}`,
143
+ "aria-label": `Slide ${t + 1} of ${s}`,
144
144
  style: {
145
- ...s.props.style,
145
+ ...l.props.style,
146
146
  ...O(),
147
147
  ...W(t)
148
148
  },
@@ -151,9 +151,9 @@ const B = T(
151
151
  })
152
152
  }
153
153
  ),
154
- K && l > 1 && /* @__PURE__ */ R(ae, { children: [
154
+ K && s > 1 && /* @__PURE__ */ P(ae, { children: [
155
155
  /* @__PURE__ */ i(
156
- P,
156
+ B,
157
157
  {
158
158
  direction: "prev",
159
159
  onClick: f,
@@ -161,18 +161,18 @@ const B = T(
161
161
  }
162
162
  ),
163
163
  /* @__PURE__ */ i(
164
- P,
164
+ B,
165
165
  {
166
166
  direction: "next",
167
167
  onClick: n,
168
- disabled: !v && o === l - 1
168
+ disabled: !v && o === s - 1
169
169
  }
170
170
  )
171
171
  ] }),
172
- te && l > 1 && /* @__PURE__ */ i(
172
+ te && s > 1 && /* @__PURE__ */ i(
173
173
  "div",
174
174
  {
175
- className: `absolute flex gap-2 ${ee[F]} ${oe || ""}`,
175
+ className: `absolute flex gap-2 ${ee[V]} ${oe || ""}`,
176
176
  role: "tablist",
177
177
  "aria-label": "Slide indicators",
178
178
  "data-testid": r ? `${r}-dots` : void 0,
@@ -196,10 +196,10 @@ const B = T(
196
196
  );
197
197
  }
198
198
  );
199
- B.displayName = "Carousel";
200
- const de = B;
201
- de.Item = z;
199
+ z.displayName = "Carousel";
200
+ const ve = z;
201
+ ve.Item = T;
202
202
  export {
203
- de as Carousel
203
+ ve as Carousel
204
204
  };
205
205
  //# sourceMappingURL=Carousel.js.map