asterui 0.12.49 → 0.12.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/components/Alert.js +18 -18
  2. package/dist/components/Alert.js.map +1 -1
  3. package/dist/components/Autocomplete.js +115 -114
  4. package/dist/components/Autocomplete.js.map +1 -1
  5. package/dist/components/Avatar.js +33 -32
  6. package/dist/components/Avatar.js.map +1 -1
  7. package/dist/components/Badge.js +99 -99
  8. package/dist/components/Badge.js.map +1 -1
  9. package/dist/components/Breadcrumb.js +12 -11
  10. package/dist/components/Breadcrumb.js.map +1 -1
  11. package/dist/components/Browser.js +10 -10
  12. package/dist/components/Browser.js.map +1 -1
  13. package/dist/components/Button.js +80 -79
  14. package/dist/components/Button.js.map +1 -1
  15. package/dist/components/Card.d.ts +2 -0
  16. package/dist/components/Card.js +111 -110
  17. package/dist/components/Card.js.map +1 -1
  18. package/dist/components/Carousel.js +59 -59
  19. package/dist/components/Carousel.js.map +1 -1
  20. package/dist/components/Cascader.js +175 -174
  21. package/dist/components/Cascader.js.map +1 -1
  22. package/dist/components/Chat.js +27 -27
  23. package/dist/components/Chat.js.map +1 -1
  24. package/dist/components/Checkbox.js +98 -97
  25. package/dist/components/Checkbox.js.map +1 -1
  26. package/dist/components/Code.js +11 -11
  27. package/dist/components/Code.js.map +1 -1
  28. package/dist/components/Collapse.js +46 -46
  29. package/dist/components/Collapse.js.map +1 -1
  30. package/dist/components/ColorPicker.d.ts +1 -1
  31. package/dist/components/ColorPicker.js +93 -91
  32. package/dist/components/ColorPicker.js.map +1 -1
  33. package/dist/components/Command.js +120 -120
  34. package/dist/components/Command.js.map +1 -1
  35. package/dist/components/ConfigProvider.d.ts +1 -1
  36. package/dist/components/ConfigProvider.js +9 -9
  37. package/dist/components/ConfigProvider.js.map +1 -1
  38. package/dist/components/ContextMenu.js +33 -33
  39. package/dist/components/ContextMenu.js.map +1 -1
  40. package/dist/components/CopyButton.js +74 -73
  41. package/dist/components/CopyButton.js.map +1 -1
  42. package/dist/components/Countdown.js +60 -59
  43. package/dist/components/Countdown.js.map +1 -1
  44. package/dist/components/DatePicker.d.ts +1 -1
  45. package/dist/components/DatePicker.js +54 -53
  46. package/dist/components/DatePicker.js.map +1 -1
  47. package/dist/components/Diff.js +10 -10
  48. package/dist/components/Diff.js.map +1 -1
  49. package/dist/components/Divider.js +21 -20
  50. package/dist/components/Divider.js.map +1 -1
  51. package/dist/components/Dock.js +28 -27
  52. package/dist/components/Dock.js.map +1 -1
  53. package/dist/components/Drawer.js +43 -43
  54. package/dist/components/Drawer.js.map +1 -1
  55. package/dist/components/Dropdown.js +127 -127
  56. package/dist/components/Dropdown.js.map +1 -1
  57. package/dist/components/Empty.js +16 -15
  58. package/dist/components/Empty.js.map +1 -1
  59. package/dist/components/Fieldset.js +11 -10
  60. package/dist/components/Fieldset.js.map +1 -1
  61. package/dist/components/FileInput.js +30 -29
  62. package/dist/components/FileInput.js.map +1 -1
  63. package/dist/components/Filter.d.ts +1 -1
  64. package/dist/components/Filter.js +32 -30
  65. package/dist/components/Filter.js.map +1 -1
  66. package/dist/components/FloatButton.js +83 -83
  67. package/dist/components/FloatButton.js.map +1 -1
  68. package/dist/components/Footer.js +14 -13
  69. package/dist/components/Footer.js.map +1 -1
  70. package/dist/components/Form.js +133 -132
  71. package/dist/components/Form.js.map +1 -1
  72. package/dist/components/Hero.js +12 -11
  73. package/dist/components/Hero.js.map +1 -1
  74. package/dist/components/HoverGallery.js +7 -7
  75. package/dist/components/HoverGallery.js.map +1 -1
  76. package/dist/components/Image.js +40 -40
  77. package/dist/components/Image.js.map +1 -1
  78. package/dist/components/Input.js +171 -169
  79. package/dist/components/Input.js.map +1 -1
  80. package/dist/components/InputNumber.js +84 -83
  81. package/dist/components/InputNumber.js.map +1 -1
  82. package/dist/components/Join.js +11 -10
  83. package/dist/components/Join.js.map +1 -1
  84. package/dist/components/Kbd.js +15 -15
  85. package/dist/components/Kbd.js.map +1 -1
  86. package/dist/components/List.d.ts +1 -1
  87. package/dist/components/List.js +75 -72
  88. package/dist/components/List.js.map +1 -1
  89. package/dist/components/Loading.d.ts +1 -1
  90. package/dist/components/Loading.js +31 -29
  91. package/dist/components/Loading.js.map +1 -1
  92. package/dist/components/Mask.js +31 -31
  93. package/dist/components/Mask.js.map +1 -1
  94. package/dist/components/Mention.js +61 -61
  95. package/dist/components/Mention.js.map +1 -1
  96. package/dist/components/Menu.js +84 -84
  97. package/dist/components/Menu.js.map +1 -1
  98. package/dist/components/Message.js +30 -29
  99. package/dist/components/Message.js.map +1 -1
  100. package/dist/components/Modal.js +117 -116
  101. package/dist/components/Modal.js.map +1 -1
  102. package/dist/components/MonthCalendar.d.ts +31 -0
  103. package/dist/components/MonthCalendar.js +205 -0
  104. package/dist/components/MonthCalendar.js.map +1 -0
  105. package/dist/components/Navbar.js +25 -25
  106. package/dist/components/Navbar.js.map +1 -1
  107. package/dist/components/Notification.js +56 -55
  108. package/dist/components/Notification.js.map +1 -1
  109. package/dist/components/OTPInput.js +69 -68
  110. package/dist/components/OTPInput.js.map +1 -1
  111. package/dist/components/Pagination.d.ts +1 -1
  112. package/dist/components/Pagination.js +60 -58
  113. package/dist/components/Pagination.js.map +1 -1
  114. package/dist/components/Phone.js +10 -10
  115. package/dist/components/Phone.js.map +1 -1
  116. package/dist/components/Popconfirm.js +60 -60
  117. package/dist/components/Popconfirm.js.map +1 -1
  118. package/dist/components/Progress.js +17 -17
  119. package/dist/components/Progress.js.map +1 -1
  120. package/dist/components/QRCode.js +23 -23
  121. package/dist/components/QRCode.js.map +1 -1
  122. package/dist/components/RadialProgress.js +17 -17
  123. package/dist/components/RadialProgress.js.map +1 -1
  124. package/dist/components/Radio.js +41 -40
  125. package/dist/components/Radio.js.map +1 -1
  126. package/dist/components/Range.d.ts +1 -1
  127. package/dist/components/Range.js +39 -37
  128. package/dist/components/Range.js.map +1 -1
  129. package/dist/components/Rating.js +79 -78
  130. package/dist/components/Rating.js.map +1 -1
  131. package/dist/components/ResponsiveDrawer.js +27 -27
  132. package/dist/components/ResponsiveDrawer.js.map +1 -1
  133. package/dist/components/RichTextEditor.d.ts +32 -0
  134. package/dist/components/RichTextEditor.js +335 -0
  135. package/dist/components/RichTextEditor.js.map +1 -0
  136. package/dist/components/Segmented.d.ts +1 -1
  137. package/dist/components/Segmented.js +48 -46
  138. package/dist/components/Segmented.js.map +1 -1
  139. package/dist/components/Select.js +55 -54
  140. package/dist/components/Select.js.map +1 -1
  141. package/dist/components/Skeleton.js +9 -9
  142. package/dist/components/Skeleton.js.map +1 -1
  143. package/dist/components/Splitter.js +1 -3
  144. package/dist/components/Splitter.js.map +1 -1
  145. package/dist/components/Stat.js +17 -16
  146. package/dist/components/Stat.js.map +1 -1
  147. package/dist/components/Status.js +29 -29
  148. package/dist/components/Status.js.map +1 -1
  149. package/dist/components/Steps.js +61 -61
  150. package/dist/components/Steps.js.map +1 -1
  151. package/dist/components/Table.js +256 -256
  152. package/dist/components/Table.js.map +1 -1
  153. package/dist/components/Tabs.js +65 -65
  154. package/dist/components/Tabs.js.map +1 -1
  155. package/dist/components/Tag.js +147 -147
  156. package/dist/components/Tag.js.map +1 -1
  157. package/dist/components/TextRotate.js +6 -6
  158. package/dist/components/TextRotate.js.map +1 -1
  159. package/dist/components/Textarea.js +35 -34
  160. package/dist/components/Textarea.js.map +1 -1
  161. package/dist/components/ThemeController.d.ts +1 -1
  162. package/dist/components/ThemeController.js +71 -68
  163. package/dist/components/ThemeController.js.map +1 -1
  164. package/dist/components/TimePicker.d.ts +1 -1
  165. package/dist/components/TimePicker.js +133 -129
  166. package/dist/components/TimePicker.js.map +1 -1
  167. package/dist/components/Timeline.js +79 -79
  168. package/dist/components/Timeline.js.map +1 -1
  169. package/dist/components/Toggle.js +33 -32
  170. package/dist/components/Toggle.js.map +1 -1
  171. package/dist/components/Tooltip.js +25 -25
  172. package/dist/components/Tooltip.js.map +1 -1
  173. package/dist/components/Tour.js +126 -126
  174. package/dist/components/Tour.js.map +1 -1
  175. package/dist/components/Transfer.js +93 -92
  176. package/dist/components/Transfer.js.map +1 -1
  177. package/dist/components/Tree.js +200 -200
  178. package/dist/components/Tree.js.map +1 -1
  179. package/dist/components/TreeSelect.js +255 -254
  180. package/dist/components/TreeSelect.js.map +1 -1
  181. package/dist/components/Typography.js +71 -70
  182. package/dist/components/Typography.js.map +1 -1
  183. package/dist/components/Upload.js +81 -81
  184. package/dist/components/Upload.js.map +1 -1
  185. package/dist/components/WeekCalendar.d.ts +35 -0
  186. package/dist/components/WeekCalendar.js +204 -0
  187. package/dist/components/WeekCalendar.js.map +1 -0
  188. package/dist/components/Window.js +7 -7
  189. package/dist/components/Window.js.map +1 -1
  190. package/dist/editor.d.ts +1 -0
  191. package/dist/editor.js +5 -0
  192. package/dist/editor.js.map +1 -0
  193. package/dist/index.d.ts +4 -0
  194. package/dist/index.js +211 -207
  195. package/dist/index.js.map +1 -1
  196. package/package.json +30 -1
@@ -1,71 +1,71 @@
1
- import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
- import K, { useState as g, useRef as h, useEffect as M } from "react";
3
- const W = ({
4
- children: c,
5
- title: x,
1
+ import { jsxs as s, jsx as n } from "react/jsx-runtime";
2
+ import G, { useState as b, useRef as h, useEffect as K } from "react";
3
+ const x = "btn", v = "btn-sm", M = "btn-primary", T = "btn-secondary", X = "btn-accent", q = "btn-success", D = "btn-warning", F = "btn-error", H = "btn-info", J = "btn-ghost", Q = "loading", U = "loading-spinner", V = "loading-xs", _ = ({
4
+ children: i,
5
+ title: C,
6
6
  description: d,
7
7
  onConfirm: m,
8
- onCancel: v,
9
- okText: C = "OK",
10
- cancelText: w = "Cancel",
11
- okType: N = "primary",
12
- cancelType: k = "ghost",
8
+ onCancel: y,
9
+ okText: w = "OK",
10
+ cancelText: N = "Cancel",
11
+ okType: k = "primary",
12
+ cancelType: $ = "ghost",
13
13
  placement: f = "top",
14
- disabled: y = !1,
14
+ disabled: B = !1,
15
15
  icon: p,
16
16
  showCancel: L = !0,
17
- className: $,
17
+ className: E,
18
18
  ...O
19
19
  }) => {
20
- const [a, o] = g(!1), [l, u] = g(!1), r = h(null), i = h(null);
21
- M(() => {
22
- const t = (s) => {
23
- r.current && !r.current.contains(s.target) && i.current && !i.current.contains(s.target) && o(!1);
20
+ const [o, a] = b(!1), [l, u] = b(!1), r = h(null), c = h(null);
21
+ K(() => {
22
+ const t = (e) => {
23
+ r.current && !r.current.contains(e.target) && c.current && !c.current.contains(e.target) && a(!1);
24
24
  };
25
- if (a)
25
+ if (o)
26
26
  return document.addEventListener("mousedown", t), () => document.removeEventListener("mousedown", t);
27
- }, [a]);
28
- const j = (t) => {
29
- y || (t.stopPropagation(), o(!a));
30
- }, E = async () => {
27
+ }, [o]);
28
+ const P = (t) => {
29
+ B || (t.stopPropagation(), a(!o));
30
+ }, S = async () => {
31
31
  if (m) {
32
32
  u(!0);
33
33
  try {
34
- await m(), o(!1);
34
+ await m(), a(!1);
35
35
  } finally {
36
36
  u(!1);
37
37
  }
38
38
  } else
39
- o(!1);
40
- }, P = () => {
41
- v?.(), o(!1);
39
+ a(!1);
40
+ }, j = () => {
41
+ y?.(), a(!1);
42
42
  }, R = () => `absolute z-50 ${{
43
43
  top: "bottom-full left-1/2 -translate-x-1/2 mb-3",
44
44
  bottom: "top-full left-1/2 -translate-x-1/2 mt-3",
45
45
  left: "right-full top-1/2 -translate-y-1/2 mr-3",
46
46
  right: "left-full top-1/2 -translate-y-1/2 ml-3"
47
- }[f]}`, z = () => "bg-base-100 rounded-lg p-4 min-w-[200px] max-w-[300px] shadow-lg", B = () => `absolute w-2.5 h-2.5 bg-base-100 rotate-45 shadow-lg ${{
47
+ }[f]}`, z = () => "bg-base-100 rounded-lg p-4 min-w-[200px] max-w-[300px] shadow-lg", I = () => `absolute w-2.5 h-2.5 bg-base-100 rotate-45 shadow-lg ${{
48
48
  top: "bottom-[-5px] left-1/2 -translate-x-1/2",
49
49
  bottom: "top-[-5px] left-1/2 -translate-x-1/2",
50
50
  left: "right-[-5px] top-1/2 -translate-y-1/2",
51
51
  right: "left-[-5px] top-1/2 -translate-y-1/2"
52
- }[f]}`, I = {
53
- primary: "btn-primary",
54
- secondary: "btn-secondary",
55
- accent: "btn-accent",
56
- success: "btn-success",
57
- warning: "btn-warning",
58
- error: "btn-error",
59
- info: "btn-info",
60
- ghost: "btn-ghost"
61
- }, b = (t) => I[t], A = /* @__PURE__ */ e(
52
+ }[f]}`, A = {
53
+ primary: M,
54
+ secondary: T,
55
+ accent: X,
56
+ success: q,
57
+ warning: D,
58
+ error: F,
59
+ info: H,
60
+ ghost: J
61
+ }, g = (t) => A[t], W = /* @__PURE__ */ n(
62
62
  "svg",
63
63
  {
64
64
  className: "w-5 h-5 text-warning",
65
65
  fill: "none",
66
66
  stroke: "currentColor",
67
67
  viewBox: "0 0 24 24",
68
- children: /* @__PURE__ */ e(
68
+ children: /* @__PURE__ */ n(
69
69
  "path",
70
70
  {
71
71
  strokeLinecap: "round",
@@ -76,50 +76,50 @@ const W = ({
76
76
  )
77
77
  }
78
78
  );
79
- return /* @__PURE__ */ n("div", { ref: r, className: `relative inline-block ${$ || ""}`, "data-state": a ? "open" : "closed", ...O, children: [
80
- K.cloneElement(c, {
79
+ return /* @__PURE__ */ s("div", { ref: r, className: `relative inline-block ${E || ""}`, "data-state": o ? "open" : "closed", ...O, children: [
80
+ G.cloneElement(i, {
81
81
  onClick: (t) => {
82
- j(t);
83
- const s = c.props?.onClick;
84
- s && s(t);
82
+ P(t);
83
+ const e = i.props?.onClick;
84
+ e && e(t);
85
85
  }
86
86
  }),
87
- a && /* @__PURE__ */ e("div", { className: R(), children: /* @__PURE__ */ n("div", { ref: i, className: z(), children: [
88
- /* @__PURE__ */ n("div", { className: "flex gap-3 relative z-10", children: [
89
- /* @__PURE__ */ e("div", { className: "flex-shrink-0 mt-0.5", children: p !== void 0 ? p : A }),
90
- /* @__PURE__ */ n("div", { className: "flex-1", children: [
91
- /* @__PURE__ */ e("div", { className: "font-semibold text-base-content mb-1", children: x }),
92
- d && /* @__PURE__ */ e("div", { className: "text-sm text-base-content/70 mb-3", children: d }),
93
- /* @__PURE__ */ n("div", { className: "flex justify-end gap-2 mt-3", children: [
94
- L && /* @__PURE__ */ e(
87
+ o && /* @__PURE__ */ n("div", { className: R(), children: /* @__PURE__ */ s("div", { ref: c, className: z(), children: [
88
+ /* @__PURE__ */ s("div", { className: "flex gap-3 relative z-10", children: [
89
+ /* @__PURE__ */ n("div", { className: "flex-shrink-0 mt-0.5", children: p !== void 0 ? p : W }),
90
+ /* @__PURE__ */ s("div", { className: "flex-1", children: [
91
+ /* @__PURE__ */ n("div", { className: "font-semibold text-base-content mb-1", children: C }),
92
+ d && /* @__PURE__ */ n("div", { className: "text-sm text-base-content/70 mb-3", children: d }),
93
+ /* @__PURE__ */ s("div", { className: "flex justify-end gap-2 mt-3", children: [
94
+ L && /* @__PURE__ */ n(
95
95
  "button",
96
96
  {
97
- className: `btn btn-sm ${b(k)}`,
98
- onClick: P,
97
+ className: `${x} ${v} ${g($)}`,
98
+ onClick: j,
99
99
  disabled: l,
100
- children: w
100
+ children: N
101
101
  }
102
102
  ),
103
- /* @__PURE__ */ n(
103
+ /* @__PURE__ */ s(
104
104
  "button",
105
105
  {
106
- className: `btn btn-sm ${b(N)}`,
107
- onClick: E,
106
+ className: `${x} ${v} ${g(k)}`,
107
+ onClick: S,
108
108
  disabled: l,
109
109
  children: [
110
- l && /* @__PURE__ */ e("span", { className: "loading loading-spinner loading-xs" }),
111
- C
110
+ l && /* @__PURE__ */ n("span", { className: `${Q} ${U} ${V}` }),
111
+ w
112
112
  ]
113
113
  }
114
114
  )
115
115
  ] })
116
116
  ] })
117
117
  ] }),
118
- /* @__PURE__ */ e("div", { className: B() })
118
+ /* @__PURE__ */ n("div", { className: I() })
119
119
  ] }) })
120
120
  ] });
121
121
  };
122
122
  export {
123
- W as Popconfirm
123
+ _ as Popconfirm
124
124
  };
125
125
  //# sourceMappingURL=Popconfirm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popconfirm.js","sources":["../../src/components/Popconfirm.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react'\n\nexport interface PopconfirmProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children: React.ReactElement\n title: React.ReactNode\n description?: React.ReactNode\n onConfirm?: () => void | Promise<void>\n onCancel?: () => void\n okText?: string\n cancelText?: string\n okType?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\n cancelType?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info' | 'ghost'\n placement?: 'top' | 'bottom' | 'left' | 'right'\n disabled?: boolean\n icon?: React.ReactNode\n showCancel?: boolean\n}\n\nexport const Popconfirm: React.FC<PopconfirmProps> = ({\n children,\n title,\n description,\n onConfirm,\n onCancel,\n okText = 'OK',\n cancelText = 'Cancel',\n okType = 'primary',\n cancelType = 'ghost',\n placement = 'top',\n disabled = false,\n icon,\n showCancel = true,\n className,\n ...rest\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const [loading, setLoading] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n const popupRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node) &&\n popupRef.current &&\n !popupRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen])\n\n const handleTriggerClick = (e: React.MouseEvent) => {\n if (disabled) return\n e.stopPropagation()\n setIsOpen(!isOpen)\n }\n\n const handleConfirm = async () => {\n if (onConfirm) {\n setLoading(true)\n try {\n await onConfirm()\n setIsOpen(false)\n } finally {\n setLoading(false)\n }\n } else {\n setIsOpen(false)\n }\n }\n\n const handleCancel = () => {\n onCancel?.()\n setIsOpen(false)\n }\n\n const getPopupContainerClasses = () => {\n const positions = {\n top: 'bottom-full left-1/2 -translate-x-1/2 mb-3',\n bottom: 'top-full left-1/2 -translate-x-1/2 mt-3',\n left: 'right-full top-1/2 -translate-y-1/2 mr-3',\n right: 'left-full top-1/2 -translate-y-1/2 ml-3',\n }\n\n return `absolute z-50 ${positions[placement]}`\n }\n\n const getPopupClasses = () => {\n return 'bg-base-100 rounded-lg p-4 min-w-[200px] max-w-[300px] shadow-lg'\n }\n\n const getArrowClasses = () => {\n const base = 'absolute w-2.5 h-2.5 bg-base-100 rotate-45 shadow-lg'\n\n const positions = {\n top: 'bottom-[-5px] left-1/2 -translate-x-1/2',\n bottom: 'top-[-5px] left-1/2 -translate-x-1/2',\n left: 'right-[-5px] top-1/2 -translate-y-1/2',\n right: 'left-[-5px] top-1/2 -translate-y-1/2',\n }\n\n return `${base} ${positions[placement]}`\n }\n\n const buttonClasses = {\n primary: 'btn-primary',\n secondary: 'btn-secondary',\n accent: 'btn-accent',\n success: 'btn-success',\n warning: 'btn-warning',\n error: 'btn-error',\n info: 'btn-info',\n ghost: 'btn-ghost',\n } as const\n\n const getButtonClass = (type: keyof typeof buttonClasses) => {\n return buttonClasses[type]\n }\n\n const defaultIcon = (\n <svg\n className=\"w-5 h-5 text-warning\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n )\n\n return (\n <div ref={containerRef} className={`relative inline-block ${className || ''}`} data-state={isOpen ? 'open' : 'closed'} {...rest}>\n {React.cloneElement(children, {\n onClick: (e: React.MouseEvent) => {\n handleTriggerClick(e)\n const originalOnClick = (children.props as any)?.onClick\n if (originalOnClick) {\n originalOnClick(e)\n }\n },\n } as any)}\n\n {isOpen && (\n <div className={getPopupContainerClasses()}>\n <div ref={popupRef} className={getPopupClasses()}>\n <div className=\"flex gap-3 relative z-10\">\n <div className=\"flex-shrink-0 mt-0.5\">\n {icon !== undefined ? icon : defaultIcon}\n </div>\n <div className=\"flex-1\">\n <div className=\"font-semibold text-base-content mb-1\">{title}</div>\n {description && (\n <div className=\"text-sm text-base-content/70 mb-3\">{description}</div>\n )}\n <div className=\"flex justify-end gap-2 mt-3\">\n {showCancel && (\n <button\n className={`btn btn-sm ${getButtonClass(cancelType)}`}\n onClick={handleCancel}\n disabled={loading}\n >\n {cancelText}\n </button>\n )}\n <button\n className={`btn btn-sm ${getButtonClass(okType)}`}\n onClick={handleConfirm}\n disabled={loading}\n >\n {loading && <span className=\"loading loading-spinner loading-xs\"></span>}\n {okText}\n </button>\n </div>\n </div>\n </div>\n <div className={getArrowClasses()} />\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["Popconfirm","children","title","description","onConfirm","onCancel","okText","cancelText","okType","cancelType","placement","disabled","icon","showCancel","className","rest","isOpen","setIsOpen","useState","loading","setLoading","containerRef","useRef","popupRef","useEffect","handleClickOutside","event","handleTriggerClick","e","handleConfirm","handleCancel","getPopupContainerClasses","getPopupClasses","getArrowClasses","buttonClasses","getButtonClass","type","defaultIcon","jsx","jsxs","React","originalOnClick"],"mappings":"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"}
1
+ {"version":3,"file":"Popconfirm.js","sources":["../../src/components/Popconfirm.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react'\n\n// DaisyUI classes\nconst dBtn = 'btn'\nconst dBtnSm = 'btn-sm'\nconst dBtnPrimary = 'btn-primary'\nconst dBtnSecondary = 'btn-secondary'\nconst dBtnAccent = 'btn-accent'\nconst dBtnSuccess = 'btn-success'\nconst dBtnWarning = 'btn-warning'\nconst dBtnError = 'btn-error'\nconst dBtnInfo = 'btn-info'\nconst dBtnGhost = 'btn-ghost'\nconst dLoading = 'loading'\nconst dLoadingSpinner = 'loading-spinner'\nconst dLoadingXs = 'loading-xs'\n\nexport interface PopconfirmProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children: React.ReactElement\n title: React.ReactNode\n description?: React.ReactNode\n onConfirm?: () => void | Promise<void>\n onCancel?: () => void\n okText?: string\n cancelText?: string\n okType?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\n cancelType?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info' | 'ghost'\n placement?: 'top' | 'bottom' | 'left' | 'right'\n disabled?: boolean\n icon?: React.ReactNode\n showCancel?: boolean\n}\n\nexport const Popconfirm: React.FC<PopconfirmProps> = ({\n children,\n title,\n description,\n onConfirm,\n onCancel,\n okText = 'OK',\n cancelText = 'Cancel',\n okType = 'primary',\n cancelType = 'ghost',\n placement = 'top',\n disabled = false,\n icon,\n showCancel = true,\n className,\n ...rest\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n const [loading, setLoading] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n const popupRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node) &&\n popupRef.current &&\n !popupRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen])\n\n const handleTriggerClick = (e: React.MouseEvent) => {\n if (disabled) return\n e.stopPropagation()\n setIsOpen(!isOpen)\n }\n\n const handleConfirm = async () => {\n if (onConfirm) {\n setLoading(true)\n try {\n await onConfirm()\n setIsOpen(false)\n } finally {\n setLoading(false)\n }\n } else {\n setIsOpen(false)\n }\n }\n\n const handleCancel = () => {\n onCancel?.()\n setIsOpen(false)\n }\n\n const getPopupContainerClasses = () => {\n const positions = {\n top: 'bottom-full left-1/2 -translate-x-1/2 mb-3',\n bottom: 'top-full left-1/2 -translate-x-1/2 mt-3',\n left: 'right-full top-1/2 -translate-y-1/2 mr-3',\n right: 'left-full top-1/2 -translate-y-1/2 ml-3',\n }\n\n return `absolute z-50 ${positions[placement]}`\n }\n\n const getPopupClasses = () => {\n return 'bg-base-100 rounded-lg p-4 min-w-[200px] max-w-[300px] shadow-lg'\n }\n\n const getArrowClasses = () => {\n const base = 'absolute w-2.5 h-2.5 bg-base-100 rotate-45 shadow-lg'\n\n const positions = {\n top: 'bottom-[-5px] left-1/2 -translate-x-1/2',\n bottom: 'top-[-5px] left-1/2 -translate-x-1/2',\n left: 'right-[-5px] top-1/2 -translate-y-1/2',\n right: 'left-[-5px] top-1/2 -translate-y-1/2',\n }\n\n return `${base} ${positions[placement]}`\n }\n\n const buttonClasses = {\n primary: dBtnPrimary,\n secondary: dBtnSecondary,\n accent: dBtnAccent,\n success: dBtnSuccess,\n warning: dBtnWarning,\n error: dBtnError,\n info: dBtnInfo,\n ghost: dBtnGhost,\n } as const\n\n const getButtonClass = (type: keyof typeof buttonClasses) => {\n return buttonClasses[type]\n }\n\n const defaultIcon = (\n <svg\n className=\"w-5 h-5 text-warning\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n )\n\n return (\n <div ref={containerRef} className={`relative inline-block ${className || ''}`} data-state={isOpen ? 'open' : 'closed'} {...rest}>\n {React.cloneElement(children, {\n onClick: (e: React.MouseEvent) => {\n handleTriggerClick(e)\n const originalOnClick = (children.props as any)?.onClick\n if (originalOnClick) {\n originalOnClick(e)\n }\n },\n } as any)}\n\n {isOpen && (\n <div className={getPopupContainerClasses()}>\n <div ref={popupRef} className={getPopupClasses()}>\n <div className=\"flex gap-3 relative z-10\">\n <div className=\"flex-shrink-0 mt-0.5\">\n {icon !== undefined ? icon : defaultIcon}\n </div>\n <div className=\"flex-1\">\n <div className=\"font-semibold text-base-content mb-1\">{title}</div>\n {description && (\n <div className=\"text-sm text-base-content/70 mb-3\">{description}</div>\n )}\n <div className=\"flex justify-end gap-2 mt-3\">\n {showCancel && (\n <button\n className={`${dBtn} ${dBtnSm} ${getButtonClass(cancelType)}`}\n onClick={handleCancel}\n disabled={loading}\n >\n {cancelText}\n </button>\n )}\n <button\n className={`${dBtn} ${dBtnSm} ${getButtonClass(okType)}`}\n onClick={handleConfirm}\n disabled={loading}\n >\n {loading && <span className={`${dLoading} ${dLoadingSpinner} ${dLoadingXs}`}></span>}\n {okText}\n </button>\n </div>\n </div>\n </div>\n <div className={getArrowClasses()} />\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["dBtn","dBtnSm","dBtnPrimary","dBtnSecondary","dBtnAccent","dBtnSuccess","dBtnWarning","dBtnError","dBtnInfo","dBtnGhost","dLoading","dLoadingSpinner","dLoadingXs","Popconfirm","children","title","description","onConfirm","onCancel","okText","cancelText","okType","cancelType","placement","disabled","icon","showCancel","className","rest","isOpen","setIsOpen","useState","loading","setLoading","containerRef","useRef","popupRef","useEffect","handleClickOutside","event","handleTriggerClick","e","handleConfirm","handleCancel","getPopupContainerClasses","getPopupClasses","getArrowClasses","buttonClasses","getButtonClass","type","defaultIcon","jsx","jsxs","React","originalOnClick"],"mappings":"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"}
@@ -1,23 +1,23 @@
1
- import { jsx as c } from "react/jsx-runtime";
2
- const p = {
3
- neutral: "progress-neutral",
4
- primary: "progress-primary",
5
- secondary: "progress-secondary",
6
- accent: "progress-accent",
7
- info: "progress-info",
8
- success: "progress-success",
9
- warning: "progress-warning",
10
- error: "progress-error"
1
+ import { jsx as g } from "react/jsx-runtime";
2
+ const t = "progress", a = "progress-neutral", p = "progress-primary", d = "progress-secondary", i = "progress-accent", P = "progress-info", l = "progress-success", u = "progress-warning", f = "progress-error", m = {
3
+ neutral: a,
4
+ primary: p,
5
+ secondary: d,
6
+ accent: i,
7
+ info: P,
8
+ success: l,
9
+ warning: u,
10
+ error: f
11
11
  };
12
- function t({ value: s, max: e = 100, type: r, className: o = "", ...n }) {
13
- const a = [
14
- "progress",
15
- r && p[r],
16
- o
12
+ function j({ value: s, max: o = 100, type: r, className: e = "", ...n }) {
13
+ const c = [
14
+ t,
15
+ r && m[r],
16
+ e
17
17
  ].filter(Boolean).join(" ");
18
- return /* @__PURE__ */ c("progress", { className: a, value: s, max: e, ...n });
18
+ return /* @__PURE__ */ g("progress", { className: c, value: s, max: o, ...n });
19
19
  }
20
20
  export {
21
- t as Progress
21
+ j as Progress
22
22
  };
23
23
  //# sourceMappingURL=Progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.js","sources":["../../src/components/Progress.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface ProgressProps extends React.ProgressHTMLAttributes<HTMLProgressElement> {\n type?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n}\n\nconst typeClasses = {\n neutral: 'progress-neutral',\n primary: 'progress-primary',\n secondary: 'progress-secondary',\n accent: 'progress-accent',\n info: 'progress-info',\n success: 'progress-success',\n warning: 'progress-warning',\n error: 'progress-error',\n} as const\n\nexport function Progress({ value, max = 100, type, className = '', ...rest }: ProgressProps) {\n const classes = [\n 'progress',\n type && typeClasses[type],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <progress className={classes} value={value} max={max} {...rest} />\n}\n"],"names":["typeClasses","Progress","value","max","type","className","rest","classes"],"mappings":";AAMA,MAAMA,IAAc;AAAA,EAClB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;AAEO,SAASC,EAAS,EAAE,OAAAC,GAAO,KAAAC,IAAM,KAAK,MAAAC,GAAM,WAAAC,IAAY,IAAI,GAAGC,KAAuB;AAC3F,QAAMC,IAAU;AAAA,IACd;AAAA,IACAH,KAAQJ,EAAYI,CAAI;AAAA,IACxBC;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BAAQ,YAAA,EAAS,WAAWE,GAAS,OAAAL,GAAc,KAAAC,GAAW,GAAGG,GAAM;AACzE;"}
1
+ {"version":3,"file":"Progress.js","sources":["../../src/components/Progress.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dProgress = 'progress'\nconst dProgressNeutral = 'progress-neutral'\nconst dProgressPrimary = 'progress-primary'\nconst dProgressSecondary = 'progress-secondary'\nconst dProgressAccent = 'progress-accent'\nconst dProgressInfo = 'progress-info'\nconst dProgressSuccess = 'progress-success'\nconst dProgressWarning = 'progress-warning'\nconst dProgressError = 'progress-error'\n\nexport interface ProgressProps extends React.ProgressHTMLAttributes<HTMLProgressElement> {\n type?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n}\n\nconst typeClasses = {\n neutral: dProgressNeutral,\n primary: dProgressPrimary,\n secondary: dProgressSecondary,\n accent: dProgressAccent,\n info: dProgressInfo,\n success: dProgressSuccess,\n warning: dProgressWarning,\n error: dProgressError,\n} as const\n\nexport function Progress({ value, max = 100, type, className = '', ...rest }: ProgressProps) {\n const classes = [\n dProgress,\n type && typeClasses[type],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <progress className={classes} value={value} max={max} {...rest} />\n}\n"],"names":["dProgress","dProgressNeutral","dProgressPrimary","dProgressSecondary","dProgressAccent","dProgressInfo","dProgressSuccess","dProgressWarning","dProgressError","typeClasses","Progress","value","max","type","className","rest","classes"],"mappings":";AAGA,MAAMA,IAAY,YACZC,IAAmB,oBACnBC,IAAmB,oBACnBC,IAAqB,sBACrBC,IAAkB,mBAClBC,IAAgB,iBAChBC,IAAmB,oBACnBC,IAAmB,oBACnBC,IAAiB,kBAMjBC,IAAc;AAAA,EAClB,SAASR;AAAA,EACT,SAASC;AAAA,EACT,WAAWC;AAAA,EACX,QAAQC;AAAA,EACR,MAAMC;AAAA,EACN,SAASC;AAAA,EACT,SAASC;AAAA,EACT,OAAOC;AACT;AAEO,SAASE,EAAS,EAAE,OAAAC,GAAO,KAAAC,IAAM,KAAK,MAAAC,GAAM,WAAAC,IAAY,IAAI,GAAGC,KAAuB;AAC3F,QAAMC,IAAU;AAAA,IACdhB;AAAA,IACAa,KAAQJ,EAAYI,CAAI;AAAA,IACxBC;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BAAQ,YAAA,EAAS,WAAWE,GAAS,OAAAL,GAAc,KAAAC,GAAW,GAAGG,GAAM;AACzE;"}
@@ -1,20 +1,20 @@
1
1
  import { jsx as e, jsxs as b } from "react/jsx-runtime";
2
2
  import { useRef as R, useEffect as C } from "react";
3
3
  import w from "qrcode";
4
- const Q = ({
4
+ const Q = "loading", j = "loading-spinner", F = "loading-lg", L = "btn", $ = "btn-sm", k = "btn-primary", B = ({
5
5
  value: o,
6
- size: a = 160,
7
- errorLevel: v = "M",
6
+ size: t = 160,
7
+ errorLevel: g = "M",
8
8
  icon: m,
9
- iconSize: t = 40,
9
+ iconSize: n = 40,
10
10
  type: f = "canvas",
11
- color: g = "#000000",
11
+ color: v = "#000000",
12
12
  bgColor: h = "#FFFFFF",
13
- bordered: n = !0,
13
+ bordered: a = !0,
14
14
  status: s = "active",
15
15
  onRefresh: x,
16
16
  className: y = "",
17
- ...l
17
+ ...r
18
18
  }) => {
19
19
  const c = R(null);
20
20
  C(() => {
@@ -23,20 +23,20 @@ const Q = ({
23
23
  if (c.current)
24
24
  try {
25
25
  if (await w.toCanvas(c.current, o, {
26
- width: a,
26
+ width: t,
27
27
  margin: 1,
28
28
  color: {
29
- dark: g,
29
+ dark: v,
30
30
  light: h
31
31
  },
32
- errorCorrectionLevel: v
32
+ errorCorrectionLevel: g
33
33
  }), m && c.current) {
34
34
  const i = c.current.getContext("2d");
35
35
  if (i) {
36
36
  const d = new Image();
37
37
  d.crossOrigin = "anonymous", d.onload = () => {
38
- const u = (a - t) / 2, N = (a - t) / 2;
39
- i.fillStyle = h, i.fillRect(u - 4, N - 4, t + 8, t + 8), i.drawImage(d, u, N, t, t);
38
+ const u = (t - n) / 2, N = (t - n) / 2;
39
+ i.fillStyle = h, i.fillRect(u - 4, N - 4, n + 8, n + 8), i.drawImage(d, u, N, n, n);
40
40
  }, d.src = m;
41
41
  }
42
42
  }
@@ -44,17 +44,17 @@ const Q = ({
44
44
  console.error("QR Code generation error:", p);
45
45
  }
46
46
  })();
47
- }, [o, a, v, m, t, f, g, h, s]);
48
- const r = [
47
+ }, [o, t, g, m, n, f, v, h, s]);
48
+ const l = [
49
49
  "inline-flex items-center justify-center",
50
- n && "border border-base-content/20 p-3",
50
+ a && "border border-base-content/20 p-3",
51
51
  "bg-base-100",
52
52
  y
53
53
  ].filter(Boolean).join(" ");
54
- return s === "loading" ? /* @__PURE__ */ e("div", { className: r, style: { width: a + (n ? 24 : 0), height: a + (n ? 24 : 0) }, "data-state": "loading", ...l, children: /* @__PURE__ */ b("div", { className: "flex flex-col items-center justify-center gap-2", children: [
55
- /* @__PURE__ */ e("span", { className: "loading loading-spinner loading-lg" }),
54
+ return s === "loading" ? /* @__PURE__ */ e("div", { className: l, style: { width: t + (a ? 24 : 0), height: t + (a ? 24 : 0) }, "data-state": "loading", ...r, children: /* @__PURE__ */ b("div", { className: "flex flex-col items-center justify-center gap-2", children: [
55
+ /* @__PURE__ */ e("span", { className: `${Q} ${j} ${F}` }),
56
56
  /* @__PURE__ */ e("span", { className: "text-sm text-base-content/70", children: "Loading..." })
57
- ] }) }) : s === "expired" ? /* @__PURE__ */ e("div", { className: r, style: { width: a + (n ? 24 : 0), height: a + (n ? 24 : 0) }, "data-state": "expired", ...l, children: /* @__PURE__ */ b("div", { className: "flex flex-col items-center justify-center gap-2", children: [
57
+ ] }) }) : s === "expired" ? /* @__PURE__ */ e("div", { className: l, style: { width: t + (a ? 24 : 0), height: t + (a ? 24 : 0) }, "data-state": "expired", ...r, children: /* @__PURE__ */ b("div", { className: "flex flex-col items-center justify-center gap-2", children: [
58
58
  /* @__PURE__ */ e("svg", { className: "w-12 h-12 text-base-content/30", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ e(
59
59
  "path",
60
60
  {
@@ -64,12 +64,12 @@ const Q = ({
64
64
  }
65
65
  ) }),
66
66
  /* @__PURE__ */ e("span", { className: "text-sm text-base-content/70", children: "QR Code Expired" }),
67
- x && /* @__PURE__ */ e("button", { className: "btn btn-sm btn-primary", onClick: x, children: "Refresh" })
68
- ] }) }) : f === "canvas" ? /* @__PURE__ */ e("div", { className: "inline-block", "data-state": "active", ...l, children: /* @__PURE__ */ e("div", { className: r, children: /* @__PURE__ */ e("canvas", { ref: c, style: { display: "block" } }) }) }) : /* @__PURE__ */ e("div", { className: "inline-block", "data-state": "active", ...l, children: /* @__PURE__ */ e("div", { className: r, children: /* @__PURE__ */ e("div", { style: { width: a, height: a }, className: "bg-base-content/5", children: /* @__PURE__ */ e("span", { className: "text-xs text-base-content/50", children: "SVG mode placeholder" }) }) }) });
67
+ x && /* @__PURE__ */ e("button", { className: `${L} ${$} ${k}`, onClick: x, children: "Refresh" })
68
+ ] }) }) : f === "canvas" ? /* @__PURE__ */ e("div", { className: "inline-block", "data-state": "active", ...r, children: /* @__PURE__ */ e("div", { className: l, children: /* @__PURE__ */ e("canvas", { ref: c, style: { display: "block" } }) }) }) : /* @__PURE__ */ e("div", { className: "inline-block", "data-state": "active", ...r, children: /* @__PURE__ */ e("div", { className: l, children: /* @__PURE__ */ e("div", { style: { width: t, height: t }, className: "bg-base-content/5", children: /* @__PURE__ */ e("span", { className: "text-xs text-base-content/50", children: "SVG mode placeholder" }) }) }) });
69
69
  };
70
- Q.displayName = "QRCode";
70
+ B.displayName = "QRCode";
71
71
  export {
72
- Q as QRCode,
73
- Q as default
72
+ B as QRCode,
73
+ B as default
74
74
  };
75
75
  //# sourceMappingURL=QRCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QRCode.js","sources":["../../src/components/QRCode.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\nimport QRCodeLib from 'qrcode'\n\nexport type QRCodeErrorLevel = 'L' | 'M' | 'Q' | 'H'\nexport type QRCodeType = 'canvas' | 'svg'\nexport type QRCodeStatus = 'active' | 'loading' | 'expired'\n\nexport interface QRCodeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n value: string\n size?: number\n errorLevel?: QRCodeErrorLevel\n icon?: string\n iconSize?: number\n type?: QRCodeType\n color?: string\n bgColor?: string\n bordered?: boolean\n status?: QRCodeStatus\n onRefresh?: () => void\n}\n\nexport const QRCode: React.FC<QRCodeProps> = ({\n value,\n size = 160,\n errorLevel = 'M',\n icon,\n iconSize = 40,\n type = 'canvas',\n color = '#000000',\n bgColor = '#FFFFFF',\n bordered = true,\n status = 'active',\n onRefresh,\n className = '',\n ...rest\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n\n useEffect(() => {\n if (status !== 'active' || !value || type !== 'canvas') return\n\n const generateQRCode = async () => {\n if (!canvasRef.current) return\n\n try {\n await QRCodeLib.toCanvas(canvasRef.current, value, {\n width: size,\n margin: 1,\n color: {\n dark: color,\n light: bgColor,\n },\n errorCorrectionLevel: errorLevel,\n })\n\n if (icon && canvasRef.current) {\n const canvas = canvasRef.current\n const ctx = canvas.getContext('2d')\n if (ctx) {\n const img = new Image()\n img.crossOrigin = 'anonymous'\n img.onload = () => {\n const iconX = (size - iconSize) / 2\n const iconY = (size - iconSize) / 2\n ctx.fillStyle = bgColor\n ctx.fillRect(iconX - 4, iconY - 4, iconSize + 8, iconSize + 8)\n ctx.drawImage(img, iconX, iconY, iconSize, iconSize)\n }\n img.src = icon\n }\n }\n } catch (error) {\n console.error('QR Code generation error:', error)\n }\n }\n\n generateQRCode()\n }, [value, size, errorLevel, icon, iconSize, type, color, bgColor, status])\n\n // Download functionality can be implemented by consumers\n // by accessing the canvas ref and converting to data URL\n\n const containerClasses = [\n 'inline-flex items-center justify-center',\n bordered && 'border border-base-content/20 p-3',\n 'bg-base-100',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n if (status === 'loading') {\n return (\n <div className={containerClasses} style={{ width: size + (bordered ? 24 : 0), height: size + (bordered ? 24 : 0) }} data-state=\"loading\" {...rest}>\n <div className=\"flex flex-col items-center justify-center gap-2\">\n <span className=\"loading loading-spinner loading-lg\"></span>\n <span className=\"text-sm text-base-content/70\">Loading...</span>\n </div>\n </div>\n )\n }\n\n if (status === 'expired') {\n return (\n <div className={containerClasses} style={{ width: size + (bordered ? 24 : 0), height: size + (bordered ? 24 : 0) }} data-state=\"expired\" {...rest}>\n <div className=\"flex flex-col items-center justify-center gap-2\">\n <svg className=\"w-12 h-12 text-base-content/30\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n <span className=\"text-sm text-base-content/70\">QR Code Expired</span>\n {onRefresh && (\n <button className=\"btn btn-sm btn-primary\" onClick={onRefresh}>\n Refresh\n </button>\n )}\n </div>\n </div>\n )\n }\n\n if (type === 'canvas') {\n return (\n <div className=\"inline-block\" data-state=\"active\" {...rest}>\n <div className={containerClasses}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"inline-block\" data-state=\"active\" {...rest}>\n <div className={containerClasses}>\n <div style={{ width: size, height: size }} className=\"bg-base-content/5\">\n <span className=\"text-xs text-base-content/50\">SVG mode placeholder</span>\n </div>\n </div>\n </div>\n )\n}\n\nQRCode.displayName = 'QRCode'\n\nexport default QRCode\n"],"names":["QRCode","value","size","errorLevel","icon","iconSize","type","color","bgColor","bordered","status","onRefresh","className","rest","canvasRef","useRef","useEffect","QRCodeLib","ctx","img","iconX","iconY","error","containerClasses","jsx","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"QRCode.js","sources":["../../src/components/QRCode.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\nimport QRCodeLib from 'qrcode'\n\n// DaisyUI classes\nconst dLoading = 'loading'\nconst dLoadingSpinner = 'loading-spinner'\nconst dLoadingLg = 'loading-lg'\nconst dBtn = 'btn'\nconst dBtnSm = 'btn-sm'\nconst dBtnPrimary = 'btn-primary'\n\nexport type QRCodeErrorLevel = 'L' | 'M' | 'Q' | 'H'\nexport type QRCodeType = 'canvas' | 'svg'\nexport type QRCodeStatus = 'active' | 'loading' | 'expired'\n\nexport interface QRCodeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n value: string\n size?: number\n errorLevel?: QRCodeErrorLevel\n icon?: string\n iconSize?: number\n type?: QRCodeType\n color?: string\n bgColor?: string\n bordered?: boolean\n status?: QRCodeStatus\n onRefresh?: () => void\n}\n\nexport const QRCode: React.FC<QRCodeProps> = ({\n value,\n size = 160,\n errorLevel = 'M',\n icon,\n iconSize = 40,\n type = 'canvas',\n color = '#000000',\n bgColor = '#FFFFFF',\n bordered = true,\n status = 'active',\n onRefresh,\n className = '',\n ...rest\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n\n useEffect(() => {\n if (status !== 'active' || !value || type !== 'canvas') return\n\n const generateQRCode = async () => {\n if (!canvasRef.current) return\n\n try {\n await QRCodeLib.toCanvas(canvasRef.current, value, {\n width: size,\n margin: 1,\n color: {\n dark: color,\n light: bgColor,\n },\n errorCorrectionLevel: errorLevel,\n })\n\n if (icon && canvasRef.current) {\n const canvas = canvasRef.current\n const ctx = canvas.getContext('2d')\n if (ctx) {\n const img = new Image()\n img.crossOrigin = 'anonymous'\n img.onload = () => {\n const iconX = (size - iconSize) / 2\n const iconY = (size - iconSize) / 2\n ctx.fillStyle = bgColor\n ctx.fillRect(iconX - 4, iconY - 4, iconSize + 8, iconSize + 8)\n ctx.drawImage(img, iconX, iconY, iconSize, iconSize)\n }\n img.src = icon\n }\n }\n } catch (error) {\n console.error('QR Code generation error:', error)\n }\n }\n\n generateQRCode()\n }, [value, size, errorLevel, icon, iconSize, type, color, bgColor, status])\n\n // Download functionality can be implemented by consumers\n // by accessing the canvas ref and converting to data URL\n\n const containerClasses = [\n 'inline-flex items-center justify-center',\n bordered && 'border border-base-content/20 p-3',\n 'bg-base-100',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n if (status === 'loading') {\n return (\n <div className={containerClasses} style={{ width: size + (bordered ? 24 : 0), height: size + (bordered ? 24 : 0) }} data-state=\"loading\" {...rest}>\n <div className=\"flex flex-col items-center justify-center gap-2\">\n <span className={`${dLoading} ${dLoadingSpinner} ${dLoadingLg}`}></span>\n <span className=\"text-sm text-base-content/70\">Loading...</span>\n </div>\n </div>\n )\n }\n\n if (status === 'expired') {\n return (\n <div className={containerClasses} style={{ width: size + (bordered ? 24 : 0), height: size + (bordered ? 24 : 0) }} data-state=\"expired\" {...rest}>\n <div className=\"flex flex-col items-center justify-center gap-2\">\n <svg className=\"w-12 h-12 text-base-content/30\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n <span className=\"text-sm text-base-content/70\">QR Code Expired</span>\n {onRefresh && (\n <button className={`${dBtn} ${dBtnSm} ${dBtnPrimary}`} onClick={onRefresh}>\n Refresh\n </button>\n )}\n </div>\n </div>\n )\n }\n\n if (type === 'canvas') {\n return (\n <div className=\"inline-block\" data-state=\"active\" {...rest}>\n <div className={containerClasses}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"inline-block\" data-state=\"active\" {...rest}>\n <div className={containerClasses}>\n <div style={{ width: size, height: size }} className=\"bg-base-content/5\">\n <span className=\"text-xs text-base-content/50\">SVG mode placeholder</span>\n </div>\n </div>\n </div>\n )\n}\n\nQRCode.displayName = 'QRCode'\n\nexport default QRCode\n"],"names":["dLoading","dLoadingSpinner","dLoadingLg","dBtn","dBtnSm","dBtnPrimary","QRCode","value","size","errorLevel","icon","iconSize","type","color","bgColor","bordered","status","onRefresh","className","rest","canvasRef","useRef","useEffect","QRCodeLib","ctx","img","iconX","iconY","error","containerClasses","jsx","jsxs"],"mappings":";;;AAIA,MAAMA,IAAW,WACXC,IAAkB,mBAClBC,IAAa,cACbC,IAAO,OACPC,IAAS,UACTC,IAAc,eAoBPC,IAAgC,CAAC;AAAA,EAC5C,OAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,YAAAC,IAAa;AAAA,EACb,MAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,QAAAC,IAAS;AAAA,EACT,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAYC,EAA0B,IAAI;AAEhD,EAAAC,EAAU,MAAM;AACd,QAAIN,MAAW,YAAY,CAACT,KAASK,MAAS,SAAU;AAqCxD,KAnCuB,YAAY;AACjC,UAAKQ,EAAU;AAEf,YAAI;AAWF,cAVA,MAAMG,EAAU,SAASH,EAAU,SAASb,GAAO;AAAA,YACjD,OAAOC;AAAA,YACP,QAAQ;AAAA,YACR,OAAO;AAAA,cACL,MAAMK;AAAA,cACN,OAAOC;AAAA,YAAA;AAAA,YAET,sBAAsBL;AAAA,UAAA,CACvB,GAEGC,KAAQU,EAAU,SAAS;AAE7B,kBAAMI,IADSJ,EAAU,QACN,WAAW,IAAI;AAClC,gBAAII,GAAK;AACP,oBAAMC,IAAM,IAAI,MAAA;AAChB,cAAAA,EAAI,cAAc,aAClBA,EAAI,SAAS,MAAM;AACjB,sBAAMC,KAASlB,IAAOG,KAAY,GAC5BgB,KAASnB,IAAOG,KAAY;AAClC,gBAAAa,EAAI,YAAYV,GAChBU,EAAI,SAASE,IAAQ,GAAGC,IAAQ,GAAGhB,IAAW,GAAGA,IAAW,CAAC,GAC7Da,EAAI,UAAUC,GAAKC,GAAOC,GAAOhB,GAAUA,CAAQ;AAAA,cACrD,GACAc,EAAI,MAAMf;AAAA,YACZ;AAAA,UACF;AAAA,QACF,SAASkB,GAAO;AACd,kBAAQ,MAAM,6BAA6BA,CAAK;AAAA,QAClD;AAAA,IACF,GAEA;AAAA,EACF,GAAG,CAACrB,GAAOC,GAAMC,GAAYC,GAAMC,GAAUC,GAAMC,GAAOC,GAASE,CAAM,CAAC;AAK1E,QAAMa,IAAmB;AAAA,IACvB;AAAA,IACAd,KAAY;AAAA,IACZ;AAAA,IACAG;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SAAIF,MAAW,YAEX,gBAAAc,EAAC,OAAA,EAAI,WAAWD,GAAkB,OAAO,EAAE,OAAOrB,KAAQO,IAAW,KAAK,IAAI,QAAQP,KAAQO,IAAW,KAAK,GAAA,GAAM,cAAW,WAAW,GAAGI,GAC3I,UAAA,gBAAAY,EAAC,OAAA,EAAI,WAAU,mDACb,UAAA;AAAA,IAAA,gBAAAD,EAAC,QAAA,EAAK,WAAW,GAAG9B,CAAQ,IAAIC,CAAe,IAAIC,CAAU,GAAA,CAAI;AAAA,IACjE,gBAAA4B,EAAC,QAAA,EAAK,WAAU,gCAA+B,UAAA,aAAA,CAAU;AAAA,EAAA,EAAA,CAC3D,EAAA,CACF,IAIAd,MAAW,YAEX,gBAAAc,EAAC,OAAA,EAAI,WAAWD,GAAkB,OAAO,EAAE,OAAOrB,KAAQO,IAAW,KAAK,IAAI,QAAQP,KAAQO,IAAW,KAAK,GAAA,GAAM,cAAW,WAAW,GAAGI,GAC3I,UAAA,gBAAAY,EAAC,OAAA,EAAI,WAAU,mDACb,UAAA;AAAA,IAAA,gBAAAD,EAAC,SAAI,WAAU,kCAAiC,MAAK,gBAAe,SAAQ,aAC1E,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA,QACF,UAAS;AAAA,MAAA;AAAA,IAAA,GAEb;AAAA,IACA,gBAAAA,EAAC,QAAA,EAAK,WAAU,gCAA+B,UAAA,mBAAe;AAAA,IAC7Db,KACC,gBAAAa,EAAC,UAAA,EAAO,WAAW,GAAG3B,CAAI,IAAIC,CAAM,IAAIC,CAAW,IAAI,SAASY,GAAW,UAAA,UAAA,CAE3E;AAAA,EAAA,EAAA,CAEJ,EAAA,CACF,IAIAL,MAAS,WAET,gBAAAkB,EAAC,SAAI,WAAU,gBAAe,cAAW,UAAU,GAAGX,GACpD,UAAA,gBAAAW,EAAC,OAAA,EAAI,WAAWD,GACd,UAAA,gBAAAC,EAAC,UAAA,EAAO,KAAKV,GAAW,OAAO,EAAE,SAAS,QAAA,GAAW,EAAA,CACvD,EAAA,CACF,IAKF,gBAAAU,EAAC,OAAA,EAAI,WAAU,gBAAe,cAAW,UAAU,GAAGX,GACpD,UAAA,gBAAAW,EAAC,OAAA,EAAI,WAAWD,GACd,4BAAC,OAAA,EAAI,OAAO,EAAE,OAAOrB,GAAM,QAAQA,EAAA,GAAQ,WAAU,qBACnD,UAAA,gBAAAsB,EAAC,QAAA,EAAK,WAAU,gCAA+B,UAAA,uBAAA,CAAoB,EAAA,CACrE,GACF,GACF;AAEJ;AAEAxB,EAAO,cAAc;"}
@@ -1,5 +1,5 @@
1
- import { jsx as p } from "react/jsx-runtime";
2
- const f = {
1
+ import { jsx as x } from "react/jsx-runtime";
2
+ const p = "radial-progress", f = "--value", m = "--size", y = "--thickness", g = {
3
3
  primary: "text-primary",
4
4
  secondary: "text-secondary",
5
5
  accent: "text-accent",
@@ -8,41 +8,41 @@ const f = {
8
8
  error: "text-error",
9
9
  info: "text-info",
10
10
  neutral: "text-neutral"
11
- }, y = ({
12
- value: s,
11
+ }, C = ({
12
+ value: t,
13
13
  size: e,
14
- thickness: t,
15
- color: a,
14
+ thickness: s,
15
+ color: o,
16
16
  showValue: i = !0,
17
- children: o,
17
+ children: a,
18
18
  className: n = "",
19
19
  style: c,
20
20
  ...l
21
21
  }) => {
22
22
  const u = () => {
23
- const r = ["radial-progress"];
24
- return a && r.push(f[a]), n && r.push(n), r.join(" ");
25
- }, x = () => {
23
+ const r = [p];
24
+ return o && r.push(g[o]), n && r.push(n), r.join(" ");
25
+ }, d = () => {
26
26
  const r = {
27
- "--value": s
27
+ [f]: t
28
28
  };
29
- return e !== void 0 && (r["--size"] = typeof e == "number" ? `${e}rem` : e), t !== void 0 && (r["--thickness"] = typeof t == "number" ? `${t}px` : t), r;
29
+ return e !== void 0 && (r[m] = typeof e == "number" ? `${e}rem` : e), s !== void 0 && (r[y] = typeof s == "number" ? `${s}px` : s), r;
30
30
  };
31
- return /* @__PURE__ */ p(
31
+ return /* @__PURE__ */ x(
32
32
  "div",
33
33
  {
34
34
  className: u(),
35
- style: { ...x(), ...c },
35
+ style: { ...d(), ...c },
36
36
  role: "progressbar",
37
- "aria-valuenow": s,
37
+ "aria-valuenow": t,
38
38
  "aria-valuemin": 0,
39
39
  "aria-valuemax": 100,
40
40
  ...l,
41
- children: o !== void 0 ? o : i ? `${s}%` : null
41
+ children: a !== void 0 ? a : i ? `${t}%` : null
42
42
  }
43
43
  );
44
44
  };
45
45
  export {
46
- y as RadialProgress
46
+ C as RadialProgress
47
47
  };
48
48
  //# sourceMappingURL=RadialProgress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadialProgress.js","sources":["../../src/components/RadialProgress.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface RadialProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n value: number\n size?: string | number\n thickness?: string | number\n color?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info' | 'neutral'\n showValue?: boolean\n children?: React.ReactNode\n}\n\nconst colorClasses = {\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n info: 'text-info',\n neutral: 'text-neutral',\n} as const\n\nexport const RadialProgress: React.FC<RadialProgressProps> = ({\n value,\n size,\n thickness,\n color,\n showValue = true,\n children,\n className = '',\n style,\n ...rest\n}) => {\n const getClasses = () => {\n const classes = ['radial-progress']\n\n if (color) {\n classes.push(colorClasses[color])\n }\n\n if (className) {\n classes.push(className)\n }\n\n return classes.join(' ')\n }\n\n const getStyle = (): React.CSSProperties => {\n const style: Record<string, string | number> = {\n '--value': value,\n }\n\n if (size !== undefined) {\n style['--size'] = typeof size === 'number' ? `${size}rem` : size\n }\n\n if (thickness !== undefined) {\n style['--thickness'] = typeof thickness === 'number' ? `${thickness}px` : thickness\n }\n\n return style as React.CSSProperties\n }\n\n return (\n <div\n className={getClasses()}\n style={{ ...getStyle(), ...style }}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={100}\n {...rest}\n >\n {children !== undefined ? children : showValue ? `${value}%` : null}\n </div>\n )\n}\n"],"names":["colorClasses","RadialProgress","value","size","thickness","color","showValue","children","className","style","rest","getClasses","classes","getStyle","jsx"],"mappings":";AAWA,MAAMA,IAAe;AAAA,EACnB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AACX,GAEaC,IAAgD,CAAC;AAAA,EAC5D,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAa,MAAM;AACvB,UAAMC,IAAU,CAAC,iBAAiB;AAElC,WAAIP,KACFO,EAAQ,KAAKZ,EAAaK,CAAK,CAAC,GAG9BG,KACFI,EAAQ,KAAKJ,CAAS,GAGjBI,EAAQ,KAAK,GAAG;AAAA,EACzB,GAEMC,IAAW,MAA2B;AAC1C,UAAMJ,IAAyC;AAAA,MAC7C,WAAWP;AAAA,IAAA;AAGb,WAAIC,MAAS,WACXM,EAAM,QAAQ,IAAI,OAAON,KAAS,WAAW,GAAGA,CAAI,QAAQA,IAG1DC,MAAc,WAChBK,EAAM,aAAa,IAAI,OAAOL,KAAc,WAAW,GAAGA,CAAS,OAAOA,IAGrEK;AAAAA,EACT;AAEA,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWH,EAAA;AAAA,MACX,OAAO,EAAE,GAAGE,EAAA,GAAY,GAAGJ,EAAA;AAAA,MAC3B,MAAK;AAAA,MACL,iBAAeP;AAAA,MACf,iBAAe;AAAA,MACf,iBAAe;AAAA,MACd,GAAGQ;AAAA,MAEH,gBAAa,SAAYH,IAAWD,IAAY,GAAGJ,CAAK,MAAM;AAAA,IAAA;AAAA,EAAA;AAGrE;"}
1
+ {"version":3,"file":"RadialProgress.js","sources":["../../src/components/RadialProgress.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dRadialProgress = 'radial-progress'\nconst dCssValue = '--value'\nconst dCssSize = '--size'\nconst dCssThickness = '--thickness'\n\nexport interface RadialProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n value: number\n size?: string | number\n thickness?: string | number\n color?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info' | 'neutral'\n showValue?: boolean\n children?: React.ReactNode\n}\n\nconst colorClasses = {\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n info: 'text-info',\n neutral: 'text-neutral',\n} as const\n\nexport const RadialProgress: React.FC<RadialProgressProps> = ({\n value,\n size,\n thickness,\n color,\n showValue = true,\n children,\n className = '',\n style,\n ...rest\n}) => {\n const getClasses = () => {\n const classes = [dRadialProgress]\n\n if (color) {\n classes.push(colorClasses[color])\n }\n\n if (className) {\n classes.push(className)\n }\n\n return classes.join(' ')\n }\n\n const getStyle = (): React.CSSProperties => {\n const style: Record<string, string | number> = {\n [dCssValue]: value,\n }\n\n if (size !== undefined) {\n style[dCssSize] = typeof size === 'number' ? `${size}rem` : size\n }\n\n if (thickness !== undefined) {\n style[dCssThickness] = typeof thickness === 'number' ? `${thickness}px` : thickness\n }\n\n return style as React.CSSProperties\n }\n\n return (\n <div\n className={getClasses()}\n style={{ ...getStyle(), ...style }}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={100}\n {...rest}\n >\n {children !== undefined ? children : showValue ? `${value}%` : null}\n </div>\n )\n}\n"],"names":["dRadialProgress","dCssValue","dCssSize","dCssThickness","colorClasses","RadialProgress","value","size","thickness","color","showValue","children","className","style","rest","getClasses","classes","getStyle","jsx"],"mappings":";AAGA,MAAMA,IAAkB,mBAClBC,IAAY,WACZC,IAAW,UACXC,IAAgB,eAWhBC,IAAe;AAAA,EACnB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AACX,GAEaC,IAAgD,CAAC;AAAA,EAC5D,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAa,MAAM;AACvB,UAAMC,IAAU,CAAChB,CAAe;AAEhC,WAAIS,KACFO,EAAQ,KAAKZ,EAAaK,CAAK,CAAC,GAG9BG,KACFI,EAAQ,KAAKJ,CAAS,GAGjBI,EAAQ,KAAK,GAAG;AAAA,EACzB,GAEMC,IAAW,MAA2B;AAC1C,UAAMJ,IAAyC;AAAA,MAC7C,CAACZ,CAAS,GAAGK;AAAA,IAAA;AAGf,WAAIC,MAAS,WACXM,EAAMX,CAAQ,IAAI,OAAOK,KAAS,WAAW,GAAGA,CAAI,QAAQA,IAG1DC,MAAc,WAChBK,EAAMV,CAAa,IAAI,OAAOK,KAAc,WAAW,GAAGA,CAAS,OAAOA,IAGrEK;AAAAA,EACT;AAEA,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWH,EAAA;AAAA,MACX,OAAO,EAAE,GAAGE,EAAA,GAAY,GAAGJ,EAAA;AAAA,MAC3B,MAAK;AAAA,MACL,iBAAeP;AAAA,MACf,iBAAe;AAAA,MACf,iBAAe;AAAA,MACd,GAAGQ;AAAA,MAEH,gBAAa,SAAYH,IAAWD,IAAY,GAAGJ,CAAK,MAAM;AAAA,IAAA;AAAA,EAAA;AAGrE;"}