@sikka/hawa 0.26.31 → 0.26.33

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 (218) hide show
  1. package/dist/{Toast-pOd4uGZz.d.ts → Toast-YaClwi7z.d.ts} +9 -1
  2. package/dist/{Toast-VBd4UvlM.d.mts → Toast-ySvjL_-K.d.mts} +9 -1
  3. package/dist/accordion/index.mjs +7 -4
  4. package/dist/accordion/index.mjs.map +1 -1
  5. package/dist/alert/index.js +4 -4
  6. package/dist/alert/index.js.map +1 -1
  7. package/dist/alert/index.mjs +11 -8
  8. package/dist/alert/index.mjs.map +1 -1
  9. package/dist/appLayout/index.js +2 -1
  10. package/dist/appLayout/index.js.map +1 -1
  11. package/dist/appLayout/index.mjs +9 -5
  12. package/dist/appLayout/index.mjs.map +1 -1
  13. package/dist/appMenubar/index.mjs +9 -4
  14. package/dist/appMenubar/index.mjs.map +1 -1
  15. package/dist/appTabs/index.mjs +9 -4
  16. package/dist/appTabs/index.mjs.map +1 -1
  17. package/dist/appTopbar/index.mjs +9 -4
  18. package/dist/appTopbar/index.mjs.map +1 -1
  19. package/dist/avatar/index.js +2 -1
  20. package/dist/avatar/index.js.map +1 -1
  21. package/dist/avatar/index.mjs +9 -5
  22. package/dist/avatar/index.mjs.map +1 -1
  23. package/dist/backToTop/index.js +6 -3
  24. package/dist/backToTop/index.js.map +1 -1
  25. package/dist/backToTop/index.mjs +13 -7
  26. package/dist/backToTop/index.mjs.map +1 -1
  27. package/dist/badge/index.js +4 -3
  28. package/dist/badge/index.js.map +1 -1
  29. package/dist/badge/index.mjs +13 -7
  30. package/dist/badge/index.mjs.map +1 -1
  31. package/dist/button/index.mjs +7 -4
  32. package/dist/button/index.mjs.map +1 -1
  33. package/dist/card/index.mjs +9 -4
  34. package/dist/card/index.mjs.map +1 -1
  35. package/dist/carousel/index.js +10 -10
  36. package/dist/carousel/index.js.map +1 -1
  37. package/dist/carousel/index.mjs +19 -14
  38. package/dist/carousel/index.mjs.map +1 -1
  39. package/dist/checkbox/index.mjs +9 -4
  40. package/dist/checkbox/index.mjs.map +1 -1
  41. package/dist/chip/index.mjs +9 -4
  42. package/dist/chip/index.mjs.map +1 -1
  43. package/dist/chunk-A3ERTYS4.mjs +29 -0
  44. package/dist/codeBlock/index.js +1 -1
  45. package/dist/codeBlock/index.js.map +1 -1
  46. package/dist/codeBlock/index.mjs +84 -24
  47. package/dist/codeBlock/index.mjs.map +1 -1
  48. package/dist/collapsible/index.mjs +0 -2
  49. package/dist/collapsible/index.mjs.map +1 -1
  50. package/dist/colorPicker/index.js +2 -1
  51. package/dist/colorPicker/index.js.map +1 -1
  52. package/dist/colorPicker/index.mjs +92 -20
  53. package/dist/colorPicker/index.mjs.map +1 -1
  54. package/dist/combobox/index.js +4 -3
  55. package/dist/combobox/index.js.map +1 -1
  56. package/dist/combobox/index.mjs +445 -27
  57. package/dist/combobox/index.mjs.map +1 -1
  58. package/dist/command/index.mjs +429 -11
  59. package/dist/command/index.mjs.map +1 -1
  60. package/dist/dataTable/index.js +36 -27
  61. package/dist/dataTable/index.js.map +1 -1
  62. package/dist/dataTable/index.mjs +43 -31
  63. package/dist/dataTable/index.mjs.map +1 -1
  64. package/dist/destroyableCard/index.js +2 -2
  65. package/dist/destroyableCard/index.js.map +1 -1
  66. package/dist/destroyableCard/index.mjs +9 -6
  67. package/dist/destroyableCard/index.mjs.map +1 -1
  68. package/dist/dialog/index.mjs +9 -4
  69. package/dist/dialog/index.mjs.map +1 -1
  70. package/dist/docsLayout/index.js +2 -2
  71. package/dist/docsLayout/index.js.map +1 -1
  72. package/dist/docsLayout/index.mjs +9 -6
  73. package/dist/docsLayout/index.mjs.map +1 -1
  74. package/dist/docsSidebar/index.js +2 -2
  75. package/dist/docsSidebar/index.js.map +1 -1
  76. package/dist/docsSidebar/index.mjs +11 -6
  77. package/dist/docsSidebar/index.mjs.map +1 -1
  78. package/dist/dropdownMenu/index.mjs +9 -4
  79. package/dist/dropdownMenu/index.mjs.map +1 -1
  80. package/dist/elements/index.d.mts +4 -2
  81. package/dist/elements/index.d.ts +4 -2
  82. package/dist/elements/index.js +8 -135
  83. package/dist/elements/index.mjs +10 -14
  84. package/dist/fileDropzone/index.js +12 -11
  85. package/dist/fileDropzone/index.js.map +1 -1
  86. package/dist/fileDropzone/index.mjs +21 -17
  87. package/dist/fileDropzone/index.mjs.map +1 -1
  88. package/dist/fileUploader/index.js +2 -1
  89. package/dist/fileUploader/index.js.map +1 -1
  90. package/dist/fileUploader/index.mjs +2 -1
  91. package/dist/fileUploader/index.mjs.map +1 -1
  92. package/dist/glow/index.js +24 -17
  93. package/dist/glow/index.js.map +1 -1
  94. package/dist/glow/index.mjs +24 -17
  95. package/dist/glow/index.mjs.map +1 -1
  96. package/dist/hooks/index.d.mts +9 -18
  97. package/dist/hooks/index.d.ts +9 -18
  98. package/dist/hooks/index.mjs +146 -27
  99. package/dist/index.d.mts +18 -17
  100. package/dist/index.d.ts +18 -17
  101. package/dist/index.js +167 -172
  102. package/dist/index.mjs +589 -594
  103. package/dist/input/index.js +3 -2
  104. package/dist/input/index.js.map +1 -1
  105. package/dist/input/index.mjs +118 -19
  106. package/dist/input/index.mjs.map +1 -1
  107. package/dist/interfaceSettings/index.js +6 -4
  108. package/dist/interfaceSettings/index.js.map +1 -1
  109. package/dist/interfaceSettings/index.mjs +130 -28
  110. package/dist/interfaceSettings/index.mjs.map +1 -1
  111. package/dist/label/index.mjs +7 -4
  112. package/dist/label/index.mjs.map +1 -1
  113. package/dist/loading/index.mjs +9 -4
  114. package/dist/loading/index.mjs.map +1 -1
  115. package/dist/navbar/index.js +3 -2
  116. package/dist/navbar/index.js.map +1 -1
  117. package/dist/navbar/index.mjs +10 -6
  118. package/dist/navbar/index.mjs.map +1 -1
  119. package/dist/navigationMenu/index.mjs +9 -4
  120. package/dist/navigationMenu/index.mjs.map +1 -1
  121. package/dist/pagination/index.mjs +9 -4
  122. package/dist/pagination/index.mjs.map +1 -1
  123. package/dist/passwordInput/index.js +3 -2
  124. package/dist/passwordInput/index.js.map +1 -1
  125. package/dist/passwordInput/index.mjs +12 -6
  126. package/dist/passwordInput/index.mjs.map +1 -1
  127. package/dist/phoneInput/index.js +10 -5
  128. package/dist/phoneInput/index.js.map +1 -1
  129. package/dist/phoneInput/index.mjs +19 -11
  130. package/dist/phoneInput/index.mjs.map +1 -1
  131. package/dist/pinInput/index.js +3 -3
  132. package/dist/pinInput/index.js.map +1 -1
  133. package/dist/pinInput/index.mjs +12 -7
  134. package/dist/pinInput/index.mjs.map +1 -1
  135. package/dist/popover/index.mjs +9 -4
  136. package/dist/popover/index.mjs.map +1 -1
  137. package/dist/progress/index.mjs +9 -4
  138. package/dist/progress/index.mjs.map +1 -1
  139. package/dist/progressCircle/index.js +2 -2
  140. package/dist/progressCircle/index.js.map +1 -1
  141. package/dist/progressCircle/index.mjs +11 -6
  142. package/dist/progressCircle/index.mjs.map +1 -1
  143. package/dist/radio/index.js +6 -4
  144. package/dist/radio/index.js.map +1 -1
  145. package/dist/radio/index.mjs +13 -8
  146. package/dist/radio/index.mjs.map +1 -1
  147. package/dist/scrollArea/index.mjs +9 -4
  148. package/dist/scrollArea/index.mjs.map +1 -1
  149. package/dist/scrollIndicator/index.js +2 -1
  150. package/dist/scrollIndicator/index.js.map +1 -1
  151. package/dist/scrollIndicator/index.mjs +2 -1
  152. package/dist/scrollIndicator/index.mjs.map +1 -1
  153. package/dist/select/index.js +6 -2
  154. package/dist/select/index.js.map +1 -1
  155. package/dist/select/index.mjs +15 -8
  156. package/dist/select/index.mjs.map +1 -1
  157. package/dist/separator/index.mjs +9 -4
  158. package/dist/separator/index.mjs.map +1 -1
  159. package/dist/sheet/index.mjs +9 -4
  160. package/dist/sheet/index.mjs.map +1 -1
  161. package/dist/sidebar/index.mjs +9 -4
  162. package/dist/sidebar/index.mjs.map +1 -1
  163. package/dist/signature/index.js +31 -11
  164. package/dist/signature/index.js.map +1 -1
  165. package/dist/signature/index.mjs +40 -15
  166. package/dist/signature/index.mjs.map +1 -1
  167. package/dist/simpleTable/index.js +18 -14
  168. package/dist/simpleTable/index.js.map +1 -1
  169. package/dist/simpleTable/index.mjs +25 -18
  170. package/dist/simpleTable/index.mjs.map +1 -1
  171. package/dist/skeleton/index.mjs +9 -4
  172. package/dist/skeleton/index.mjs.map +1 -1
  173. package/dist/slider/index.mjs +9 -4
  174. package/dist/slider/index.mjs.map +1 -1
  175. package/dist/sortButton/index.mjs +268 -11
  176. package/dist/sortButton/index.mjs.map +1 -1
  177. package/dist/splitButton/index.mjs +267 -12
  178. package/dist/splitButton/index.mjs.map +1 -1
  179. package/dist/switch/index.js +2 -1
  180. package/dist/switch/index.js.map +1 -1
  181. package/dist/switch/index.mjs +11 -5
  182. package/dist/switch/index.mjs.map +1 -1
  183. package/dist/table/index.mjs +9 -4
  184. package/dist/table/index.mjs.map +1 -1
  185. package/dist/tabs/index.mjs +7 -4
  186. package/dist/tabs/index.mjs.map +1 -1
  187. package/dist/textarea/index.js +4 -4
  188. package/dist/textarea/index.js.map +1 -1
  189. package/dist/textarea/index.mjs +11 -8
  190. package/dist/textarea/index.mjs.map +1 -1
  191. package/dist/toast/index.d.mts +9 -1
  192. package/dist/toast/index.d.ts +9 -1
  193. package/dist/toast/index.js +3 -3
  194. package/dist/toast/index.js.map +1 -1
  195. package/dist/toast/index.mjs +145 -10
  196. package/dist/toast/index.mjs.map +1 -1
  197. package/dist/toaster/index.d.mts +5 -0
  198. package/dist/toaster/index.d.ts +5 -0
  199. package/dist/toaster/index.js +17 -142
  200. package/dist/toaster/index.js.map +1 -1
  201. package/dist/toaster/index.mjs +142 -135
  202. package/dist/toaster/index.mjs.map +1 -1
  203. package/package.json +1 -1
  204. package/dist/chunk-3ODWQVIA.mjs +0 -12
  205. package/dist/chunk-3ODWQVIA.mjs.map +0 -1
  206. package/dist/chunk-53OZVR57.mjs +0 -108
  207. package/dist/chunk-53OZVR57.mjs.map +0 -1
  208. package/dist/chunk-CBRGWUZG.mjs +0 -11
  209. package/dist/chunk-CBRGWUZG.mjs.map +0 -1
  210. package/dist/chunk-HYXZRCZW.mjs +0 -265
  211. package/dist/chunk-HYXZRCZW.mjs.map +0 -1
  212. package/dist/chunk-JNUGOUYJ.mjs +0 -154
  213. package/dist/chunk-JX5YLRCU.mjs +0 -443
  214. package/dist/chunk-JX5YLRCU.mjs.map +0 -1
  215. package/dist/chunk-NV3KR5Y7.mjs +0 -82
  216. package/dist/chunk-NV3KR5Y7.mjs.map +0 -1
  217. package/dist/chunk-OQ7MNEYW.mjs +0 -151
  218. package/dist/chunk-OQ7MNEYW.mjs.map +0 -1
@@ -1,12 +1,269 @@
1
- import {
2
- Button,
3
- cn
4
- } from "../chunk-HYXZRCZW.mjs";
5
-
6
1
  // elements/sortButton/SortButton.tsx
2
+ import React3 from "react";
3
+
4
+ // util/index.ts
5
+ import { clsx } from "clsx";
6
+ import { twMerge } from "tailwind-merge";
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+
11
+ // elements/button/Button.tsx
12
+ import * as React2 from "react";
13
+ import { cva } from "class-variance-authority";
14
+
15
+ // elements/loading/Loading.tsx
7
16
  import React from "react";
17
+ var Loading = ({
18
+ design = "spinner",
19
+ size = "sm",
20
+ themeMode = "light",
21
+ color,
22
+ ...props
23
+ }) => {
24
+ let sizeStyles = {
25
+ button: "hawa-h-4 hawa-w-4",
26
+ xs: "hawa-h-1 hawa-w-1",
27
+ sm: "hawa-h-6 hawa-w-6",
28
+ normal: "hawa-h-8 hawa-w-8",
29
+ lg: "hawa-h-14 hawa-w-14",
30
+ xl: "hawa-h-24 hawa-w-24"
31
+ };
32
+ let animationStyles = {
33
+ pulse: "hawa-animate-in hawa-fade-in hawa-duration-1000",
34
+ bounce: "hawa-animate-bounce"
35
+ };
36
+ switch (design.split("-")[0]) {
37
+ case "dots":
38
+ return /* @__PURE__ */ React.createElement(
39
+ "div",
40
+ {
41
+ className: cn("hawa-flex hawa-flex-row hawa-gap-2", props.className)
42
+ },
43
+ /* @__PURE__ */ React.createElement(
44
+ "div",
45
+ {
46
+ className: cn(
47
+ "hawa-animate-bounce hawa-rounded-full hawa-delay-100 hawa-repeat-infinite",
48
+ size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
49
+ animationStyles[design.split("-")[1]],
50
+ color ? color : "hawa-bg-primary"
51
+ )
52
+ }
53
+ ),
54
+ /* @__PURE__ */ React.createElement(
55
+ "div",
56
+ {
57
+ className: cn(
58
+ "hawa-animate-bounce hawa-rounded-full hawa-delay-200 hawa-repeat-infinite",
59
+ size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
60
+ animationStyles[design.split("-")[1]],
61
+ color ? color : "hawa-bg-primary"
62
+ )
63
+ }
64
+ ),
65
+ /* @__PURE__ */ React.createElement(
66
+ "div",
67
+ {
68
+ className: cn(
69
+ "hawa-animate-bounce hawa-rounded-full hawa-delay-300 hawa-repeat-infinite",
70
+ size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
71
+ animationStyles[design.split("-")[1]],
72
+ color ? color : "hawa-bg-primary"
73
+ )
74
+ }
75
+ )
76
+ );
77
+ case "square":
78
+ return /* @__PURE__ */ React.createElement(
79
+ "svg",
80
+ {
81
+ className: cn("squircle-container", sizeStyles[size]),
82
+ viewBox: "0 0 35 35",
83
+ height: "35",
84
+ width: "35"
85
+ },
86
+ /* @__PURE__ */ React.createElement(
87
+ "rect",
88
+ {
89
+ className: "squircle-track",
90
+ x: "2.5",
91
+ y: "2.5",
92
+ fill: "none",
93
+ strokeWidth: "5px",
94
+ width: "32.5",
95
+ height: "32.5"
96
+ }
97
+ ),
98
+ /* @__PURE__ */ React.createElement(
99
+ "rect",
100
+ {
101
+ className: "square-car",
102
+ x: "2.5",
103
+ y: "2.5",
104
+ fill: "none",
105
+ strokeWidth: "5px",
106
+ width: "32.5",
107
+ height: "32.5",
108
+ pathLength: "100"
109
+ }
110
+ )
111
+ );
112
+ case "squircle":
113
+ return /* @__PURE__ */ React.createElement(
114
+ "svg",
115
+ {
116
+ className: cn("squircle-container", sizeStyles[size]),
117
+ x: "0px",
118
+ y: "0px",
119
+ viewBox: "0 0 37 37",
120
+ height: "37",
121
+ width: "37",
122
+ preserveAspectRatio: "xMidYMid meet"
123
+ },
124
+ /* @__PURE__ */ React.createElement(
125
+ "path",
126
+ {
127
+ className: "squircle-track",
128
+ fill: "none",
129
+ strokeWidth: "5",
130
+ pathLength: "100",
131
+ d: "M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5"
132
+ }
133
+ ),
134
+ /* @__PURE__ */ React.createElement(
135
+ "path",
136
+ {
137
+ className: "squircle-car",
138
+ fill: "none",
139
+ strokeWidth: "5",
140
+ pathLength: "100",
141
+ d: "M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5"
142
+ }
143
+ )
144
+ );
145
+ case "progress":
146
+ return /* @__PURE__ */ React.createElement("div", { className: "progress-loading" });
147
+ case "orbit":
148
+ return /* @__PURE__ */ React.createElement("div", { className: "orbit-container" });
149
+ default:
150
+ return /* @__PURE__ */ React.createElement(
151
+ "svg",
152
+ {
153
+ className: cn("circle-container", sizeStyles[size]),
154
+ viewBox: "0 0 40 40",
155
+ height: "40",
156
+ width: "40"
157
+ },
158
+ /* @__PURE__ */ React.createElement(
159
+ "circle",
160
+ {
161
+ className: cn("circle-track", {
162
+ "hawa-stroke-primary-foreground": themeMode === "dark",
163
+ "hawa-stroke-primary": themeMode === "light"
164
+ }),
165
+ cx: "20",
166
+ cy: "20",
167
+ r: "17.5",
168
+ pathLength: "100",
169
+ strokeWidth: "5px",
170
+ fill: "none"
171
+ }
172
+ ),
173
+ /* @__PURE__ */ React.createElement(
174
+ "circle",
175
+ {
176
+ className: cn("circle-car", {
177
+ "hawa-stroke-primary-foreground": themeMode === "dark",
178
+ "hawa-stroke-primary": themeMode === "light"
179
+ }),
180
+ cx: "20",
181
+ cy: "20",
182
+ r: "17.5",
183
+ pathLength: "100",
184
+ strokeWidth: "5px",
185
+ fill: "none"
186
+ }
187
+ )
188
+ );
189
+ }
190
+ };
191
+
192
+ // elements/button/Button.tsx
193
+ var buttonVariants = cva(
194
+ "hawa-inline-flex hawa-items-center hawa-select-none hawa-rounded-md hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-colors focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-pointer-events-none disabled:hawa-opacity-50",
195
+ {
196
+ variants: {
197
+ variant: {
198
+ default: "hawa-bg-primary hawa-text-primary-foreground hover:hawa-bg-primary/90",
199
+ light: "hawa-bg-primary/20 hawa-text-primary hover:hawa-bg-primary/40",
200
+ destructive: "hawa-bg-destructive hawa-text-destructive-foreground hover:hawa-bg-destructive/90",
201
+ outline: "hawa-border hawa-border-input hawa-bg-transparent hover:hawa-bg-accent hover:hawa-text-accent-foreground",
202
+ secondary: "hawa-bg-secondary hawa-text-secondary-foreground hover:hawa-bg-secondary/80",
203
+ ghost: "hover:hawa-bg-accent hover:hawa-text-accent-foreground",
204
+ link: "hawa-text-primary hawa-underline-offset-4 hover:hawa-underline",
205
+ combobox: "hawa-bg-background hawa-border",
206
+ neoBrutalism: "neo-brutalism"
207
+ // "hawa-cursor-pointer hawa-transition-all hawa-uppercase hawa-font-mono dark:hawa-bg-black hawa-font-bold hawa-py-2 hawa-px-4 hawa-rounded hawa-border-2 hawa-border-primary hawa-shadow-color-primary hawa-transition-[hawa-transform_50ms, hawa-box-shadow_50ms] active:hawa-translate-x-0.5 active:hawa-translate-y-0.5 active:hawa-shadow-color-primary-active shadow-color-primary active:shadow-color-primary-active",
208
+ },
209
+ size: {
210
+ default: "hawa-h-10 hawa-px-4 hawa-py-2",
211
+ heightless: "hawa-px-4 hawa-py-4",
212
+ xs: "hawa-h-fit hawa-min-h-[25px] hawa-py-1 hawa-text-[10px] hawa-px-2 ",
213
+ sm: "hawa-h-9 hawa-text-[11px] hawa-rounded-md hawa-px-3",
214
+ lg: "hawa-h-11 hawa-rounded-md hawa-px-8",
215
+ xl: "hawa-h-14 hawa-rounded-md hawa-px-10",
216
+ icon: "hawa-h-10 hawa-w-10",
217
+ smallIcon: "hawa-h-7 hawa-w-7"
218
+ }
219
+ },
220
+ defaultVariants: {
221
+ variant: "default",
222
+ size: "default"
223
+ }
224
+ }
225
+ );
226
+ var Button = React2.forwardRef(
227
+ ({
228
+ className,
229
+ variant,
230
+ size,
231
+ asChild = false,
232
+ centered = true,
233
+ isLoading,
234
+ children,
235
+ ...props
236
+ }, ref) => {
237
+ const Comp = "button";
238
+ const loadingColor = variant === "outline" || variant === "ghost" || variant === "neoBrutalism" ? "hawa-bg-primary" : "hawa-bg-primary-foreground";
239
+ return /* @__PURE__ */ React2.createElement(
240
+ Comp,
241
+ {
242
+ className: cn(
243
+ buttonVariants({ variant, size, className }),
244
+ centered && "hawa-justify-center"
245
+ // "hawa-bg-red-500"
246
+ ),
247
+ ref,
248
+ ...props
249
+ },
250
+ isLoading ? /* @__PURE__ */ React2.createElement(
251
+ Loading,
252
+ {
253
+ design: size === "icon" || size === "smallIcon" ? "spinner" : "dots-pulse",
254
+ themeMode: variant === "outline" ? "light" : "dark",
255
+ color: loadingColor,
256
+ size: size === "sm" || size === "xs" ? "xs" : "button"
257
+ }
258
+ ) : children
259
+ );
260
+ }
261
+ );
262
+ Button.displayName = "Button";
263
+
264
+ // elements/sortButton/SortButton.tsx
8
265
  var SortButton = (props) => {
9
- return /* @__PURE__ */ React.createElement(
266
+ return /* @__PURE__ */ React3.createElement(
10
267
  Button,
11
268
  {
12
269
  variant: "ghost",
@@ -18,7 +275,7 @@ var SortButton = (props) => {
18
275
  onClick: props.onSort
19
276
  },
20
277
  props.label,
21
- /* @__PURE__ */ React.createElement(
278
+ /* @__PURE__ */ React3.createElement(
22
279
  "svg",
23
280
  {
24
281
  xmlns: "http://www.w3.org/2000/svg",
@@ -30,10 +287,10 @@ var SortButton = (props) => {
30
287
  strokeLinejoin: "round",
31
288
  className: props.condensed ? "hawa-h-3 hawa-w-3" : "hawa-icon"
32
289
  },
33
- /* @__PURE__ */ React.createElement("path", { d: "m21 16-4 4-4-4" }),
34
- /* @__PURE__ */ React.createElement("path", { d: "M17 20V4" }),
35
- /* @__PURE__ */ React.createElement("path", { d: "m3 8 4-4 4 4" }),
36
- /* @__PURE__ */ React.createElement("path", { d: "M7 4v16" })
290
+ /* @__PURE__ */ React3.createElement("path", { d: "m21 16-4 4-4-4" }),
291
+ /* @__PURE__ */ React3.createElement("path", { d: "M17 20V4" }),
292
+ /* @__PURE__ */ React3.createElement("path", { d: "m3 8 4-4 4 4" }),
293
+ /* @__PURE__ */ React3.createElement("path", { d: "M7 4v16" })
37
294
  )
38
295
  );
39
296
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/sortButton/SortButton.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"@util/index\";\nimport { Button } from \"../button\";\n\ntype SortButtonProps = {\n onSort: () => void;\n label: string;\n condensed?: boolean;\n};\n\nexport const SortButton: React.FC<SortButtonProps> = (props) => {\n return (\n <Button\n variant=\"ghost\"\n centered={false}\n className={cn(\n \"hawa-flex hawa-w-full hawa-flex-row hawa-items-start hawa-justify-start hawa-gap-2 hawa-text-start\",\n props.condensed && \"hawa-h-6\"\n )}\n onClick={props.onSort}\n >\n {props.label}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={props.condensed ? \"hawa-h-3 hawa-w-3\" : \"hawa-icon\"}\n >\n <path d=\"m21 16-4 4-4-4\" />\n <path d=\"M17 20V4\" />\n <path d=\"m3 8 4-4 4 4\" />\n <path d=\"M7 4v16\" />\n </svg>\n </Button>\n );\n};\n"],"mappings":";;;;;;AAAA,OAAO,WAAW;AAWX,IAAM,aAAwC,CAAC,UAAU;AAC9D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,UAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,MAAM,aAAa;AAAA,MACrB;AAAA,MACA,SAAS,MAAM;AAAA;AAAA,IAEd,MAAM;AAAA,IACP;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,WAAW,MAAM,YAAY,sBAAsB;AAAA;AAAA,MAEnD,oCAAC,UAAK,GAAE,kBAAiB;AAAA,MACzB,oCAAC,UAAK,GAAE,YAAW;AAAA,MACnB,oCAAC,UAAK,GAAE,gBAAe;AAAA,MACvB,oCAAC,UAAK,GAAE,WAAU;AAAA,IACpB;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../elements/sortButton/SortButton.tsx","../../util/index.ts","../../elements/button/Button.tsx","../../elements/loading/Loading.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"@util/index\";\nimport { Button } from \"../button\";\n\ntype SortButtonProps = {\n onSort: () => void;\n label: string;\n condensed?: boolean;\n};\n\nexport const SortButton: React.FC<SortButtonProps> = (props) => {\n return (\n <Button\n variant=\"ghost\"\n centered={false}\n className={cn(\n \"hawa-flex hawa-w-full hawa-flex-row hawa-items-start hawa-justify-start hawa-gap-2 hawa-text-start\",\n props.condensed && \"hawa-h-6\"\n )}\n onClick={props.onSort}\n >\n {props.label}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={props.condensed ? \"hawa-h-3 hawa-w-3\" : \"hawa-icon\"}\n >\n <path d=\"m21 16-4 4-4-4\" />\n <path d=\"M17 20V4\" />\n <path d=\"m3 8 4-4 4 4\" />\n <path d=\"M7 4v16\" />\n </svg>\n </Button>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import * as React from \"react\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@util/index\";\nimport { Loading } from \"../loading/Loading\";\n\nconst buttonVariants = cva(\n \"hawa-inline-flex hawa-items-center hawa-select-none hawa-rounded-md hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-colors focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-pointer-events-none disabled:hawa-opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"hawa-bg-primary hawa-text-primary-foreground hover:hawa-bg-primary/90\",\n light: \"hawa-bg-primary/20 hawa-text-primary hover:hawa-bg-primary/40\",\n destructive:\n \"hawa-bg-destructive hawa-text-destructive-foreground hover:hawa-bg-destructive/90\",\n outline:\n \"hawa-border hawa-border-input hawa-bg-transparent hover:hawa-bg-accent hover:hawa-text-accent-foreground\",\n secondary:\n \"hawa-bg-secondary hawa-text-secondary-foreground hover:hawa-bg-secondary/80\",\n ghost: \"hover:hawa-bg-accent hover:hawa-text-accent-foreground\",\n link: \"hawa-text-primary hawa-underline-offset-4 hover:hawa-underline\",\n combobox: \"hawa-bg-background hawa-border\",\n neoBrutalism: \"neo-brutalism\"\n // \"hawa-cursor-pointer hawa-transition-all hawa-uppercase hawa-font-mono dark:hawa-bg-black hawa-font-bold hawa-py-2 hawa-px-4 hawa-rounded hawa-border-2 hawa-border-primary hawa-shadow-color-primary hawa-transition-[hawa-transform_50ms, hawa-box-shadow_50ms] active:hawa-translate-x-0.5 active:hawa-translate-y-0.5 active:hawa-shadow-color-primary-active shadow-color-primary active:shadow-color-primary-active\",\n },\n size: {\n default: \"hawa-h-10 hawa-px-4 hawa-py-2\",\n heightless: \"hawa-px-4 hawa-py-4\",\n xs: \"hawa-h-fit hawa-min-h-[25px] hawa-py-1 hawa-text-[10px] hawa-px-2 \",\n sm: \"hawa-h-9 hawa-text-[11px] hawa-rounded-md hawa-px-3\",\n lg: \"hawa-h-11 hawa-rounded-md hawa-px-8\",\n xl: \"hawa-h-14 hawa-rounded-md hawa-px-10\",\n icon: \"hawa-h-10 hawa-w-10\",\n smallIcon: \"hawa-h-7 hawa-w-7\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n centered?: boolean;\n isLoading?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n asChild = false,\n centered = true,\n isLoading,\n children,\n ...props\n },\n ref\n ) => {\n const Comp = \"button\";\n\n // Determine the color for the HawaLoading component based on the variant\n const loadingColor =\n variant === \"outline\" || variant === \"ghost\" || variant === \"neoBrutalism\"\n ? \"hawa-bg-primary\"\n : \"hawa-bg-primary-foreground\";\n\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size, className }),\n centered && \"hawa-justify-center\",\n // \"hawa-bg-red-500\"\n )}\n ref={ref}\n {...props}\n >\n {isLoading ? (\n <Loading\n design={\n size === \"icon\" || size === \"smallIcon\" ? \"spinner\" : \"dots-pulse\"\n }\n themeMode={variant === \"outline\" ? \"light\" : \"dark\"}\n color={loadingColor}\n size={size === \"sm\" || size === \"xs\" ? \"xs\" : \"button\"}\n />\n ) : (\n children\n )}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import React, { FC } from \"react\";\n\nimport { cn } from \"@util/index\";\n\ntype LoadingTypes = {\n /** Specifies the size of the loading component.*/\n size?: \"button\" | \"xs\" | \"sm\" | \"normal\" | \"lg\" | \"xl\";\n /** Determines the design of the loading animation.*/\n design?:\n | \"spinner\"\n | \"dots-bounce\"\n | \"dots-pulse\"\n | \"pulse\"\n | \"spinner-dots\"\n | \"squircle\"\n | \"square\"\n | \"progress\"\n | \"orbit\";\n /** Specifies the color of the loading component. By default it will inherit the value of <span className=\"inline-code\">--primary</span> global CSS variable*/\n color?: string;\n className?: string;\n themeMode?: \"dark\" | \"light\";\n};\n\nexport const Loading: FC<LoadingTypes> = ({\n design = \"spinner\",\n size = \"sm\",\n themeMode = \"light\",\n color,\n ...props\n}) => {\n let sizeStyles = {\n button: \"hawa-h-4 hawa-w-4\",\n xs: \"hawa-h-1 hawa-w-1\",\n sm: \"hawa-h-6 hawa-w-6\",\n normal: \"hawa-h-8 hawa-w-8\",\n lg: \"hawa-h-14 hawa-w-14\",\n xl: \"hawa-h-24 hawa-w-24\"\n };\n\n let animationStyles: any = {\n pulse: \"hawa-animate-in hawa-fade-in hawa-duration-1000\",\n bounce: \"hawa-animate-bounce\"\n };\n switch (design.split(\"-\")[0]) {\n case \"dots\":\n return (\n <div\n className={cn(\"hawa-flex hawa-flex-row hawa-gap-2\", props.className)}\n >\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-100 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\"\n )}\n ></div>\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-200 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\"\n )}\n ></div>\n <div\n className={cn(\n \"hawa-animate-bounce hawa-rounded-full hawa-delay-300 hawa-repeat-infinite\",\n size === \"button\" ? \"hawa-h-2 hawa-w-2\" : sizeStyles[size],\n animationStyles[design.split(\"-\")[1]],\n color ? color : \"hawa-bg-primary\"\n )}\n ></div>\n </div>\n );\n case \"square\":\n return (\n <svg\n className={cn(\"squircle-container\", sizeStyles[size])}\n viewBox=\"0 0 35 35\"\n height=\"35\"\n width=\"35\"\n >\n <rect\n className=\"squircle-track\"\n x=\"2.5\"\n y=\"2.5\"\n fill=\"none\"\n strokeWidth=\"5px\"\n width=\"32.5\"\n height=\"32.5\"\n />\n <rect\n className=\"square-car\"\n x=\"2.5\"\n y=\"2.5\"\n fill=\"none\"\n strokeWidth=\"5px\"\n width=\"32.5\"\n height=\"32.5\"\n pathLength=\"100\"\n />\n </svg>\n );\n case \"squircle\":\n return (\n <svg\n className={cn(\"squircle-container\", sizeStyles[size])}\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 37 37\"\n height=\"37\"\n width=\"37\"\n preserveAspectRatio=\"xMidYMid meet\"\n >\n <path\n className=\"squircle-track\"\n fill=\"none\"\n strokeWidth=\"5\"\n pathLength=\"100\"\n d=\"M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5\"\n ></path>\n <path\n className=\"squircle-car\"\n fill=\"none\"\n strokeWidth=\"5\"\n pathLength=\"100\"\n d=\"M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5\"\n ></path>\n </svg>\n );\n case \"progress\":\n return <div className=\"progress-loading\"></div>;\n case \"orbit\":\n return <div className=\"orbit-container\"></div>;\n\n default:\n return (\n <svg\n className={cn(\"circle-container\", sizeStyles[size])}\n viewBox=\"0 0 40 40\"\n height=\"40\"\n width=\"40\"\n >\n <circle\n className={cn(\"circle-track\", {\n \"hawa-stroke-primary-foreground\": themeMode === \"dark\",\n \"hawa-stroke-primary\": themeMode === \"light\"\n })}\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n pathLength=\"100\"\n strokeWidth=\"5px\"\n fill=\"none\"\n />\n <circle\n className={cn(\"circle-car\", {\n \"hawa-stroke-primary-foreground\": themeMode === \"dark\",\n \"hawa-stroke-primary\": themeMode === \"light\"\n })}\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n pathLength=\"100\"\n strokeWidth=\"5px\"\n fill=\"none\"\n />\n </svg>\n );\n // return (\n // <div\n // className={cn(\n // \"hawa-flex hawa-flex-row hawa-gap-x-3\",\n // props.className\n // )}\n // >\n // <div aria-label=\"Loading...\" role=\"status\">\n // <svg\n // className={cn(sizeStyles[size], \"hawa-animate-spin\")}\n // viewBox=\"3 3 18 18\"\n // >\n // <path\n // className=\"hawa-fill-primary/20\"\n // d=\"M12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5ZM3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12Z\"\n // ></path>\n // <path\n // className={color ? color : \"hawa-fill-primary\"}\n // d=\"M16.9497 7.05015C14.2161 4.31648 9.78392 4.31648 7.05025 7.05015C6.65973 7.44067 6.02656 7.44067 5.63604 7.05015C5.24551 6.65962 5.24551 6.02646 5.63604 5.63593C9.15076 2.12121 14.8492 2.12121 18.364 5.63593C18.7545 6.02646 18.7545 6.65962 18.364 7.05015C17.9734 7.44067 17.3403 7.44067 16.9497 7.05015Z\"\n // ></path>\n // </svg>\n // </div>\n // </div>\n // );\n }\n};\n"],"mappings":";AAAA,OAAOA,YAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACLA,YAAYC,YAAW;AAEvB,SAAS,WAA8B;;;ACFvC,OAAO,WAAmB;AAwBnB,IAAM,UAA4B,CAAC;AAAA,EACxC,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,aAAa;AAAA,IACf,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAEA,MAAI,kBAAuB;AAAA,IACzB,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACA,UAAQ,OAAO,MAAM,GAAG,EAAE,CAAC,GAAG;AAAA,IAC5B,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,GAAG,sCAAsC,MAAM,SAAS;AAAA;AAAA,QAEnE;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,SAAS,WAAW,sBAAsB,WAAW,IAAI;AAAA,cACzD,gBAAgB,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,cACpC,QAAQ,QAAQ;AAAA,YAClB;AAAA;AAAA,QACD;AAAA,QACD;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,SAAS,WAAW,sBAAsB,WAAW,IAAI;AAAA,cACzD,gBAAgB,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,cACpC,QAAQ,QAAQ;AAAA,YAClB;AAAA;AAAA,QACD;AAAA,QACD;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,SAAS,WAAW,sBAAsB,WAAW,IAAI;AAAA,cACzD,gBAAgB,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,cACpC,QAAQ,QAAQ;AAAA,YAClB;AAAA;AAAA,QACD;AAAA,MACH;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,GAAG,sBAAsB,WAAW,IAAI,CAAC;AAAA,UACpD,SAAQ;AAAA,UACR,QAAO;AAAA,UACP,OAAM;AAAA;AAAA,QAEN;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,GAAE;AAAA,YACF,GAAE;AAAA,YACF,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,OAAM;AAAA,YACN,QAAO;AAAA;AAAA,QACT;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,GAAE;AAAA,YACF,GAAE;AAAA,YACF,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,OAAM;AAAA,YACN,QAAO;AAAA,YACP,YAAW;AAAA;AAAA,QACb;AAAA,MACF;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,GAAG,sBAAsB,WAAW,IAAI,CAAC;AAAA,UACpD,GAAE;AAAA,UACF,GAAE;AAAA,UACF,SAAQ;AAAA,UACR,QAAO;AAAA,UACP,OAAM;AAAA,UACN,qBAAoB;AAAA;AAAA,QAEpB;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,YAAW;AAAA,YACX,GAAE;AAAA;AAAA,QACH;AAAA,QACD;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,YAAW;AAAA,YACX,GAAE;AAAA;AAAA,QACH;AAAA,MACH;AAAA,IAEJ,KAAK;AACH,aAAO,oCAAC,SAAI,WAAU,oBAAmB;AAAA,IAC3C,KAAK;AACH,aAAO,oCAAC,SAAI,WAAU,mBAAkB;AAAA,IAE1C;AACE,aACE;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,GAAG,oBAAoB,WAAW,IAAI,CAAC;AAAA,UAClD,SAAQ;AAAA,UACR,QAAO;AAAA,UACP,OAAM;AAAA;AAAA,QAEN;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,gBAAgB;AAAA,cAC5B,kCAAkC,cAAc;AAAA,cAChD,uBAAuB,cAAc;AAAA,YACvC,CAAC;AAAA,YACD,IAAG;AAAA,YACH,IAAG;AAAA,YACH,GAAE;AAAA,YACF,YAAW;AAAA,YACX,aAAY;AAAA,YACZ,MAAK;AAAA;AAAA,QACP;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,cAAc;AAAA,cAC1B,kCAAkC,cAAc;AAAA,cAChD,uBAAuB,cAAc;AAAA,YACvC,CAAC;AAAA,YACD,IAAG;AAAA,YACH,IAAG;AAAA,YACH,GAAE;AAAA,YACF,YAAW;AAAA,YACX,aAAY;AAAA,YACZ,MAAK;AAAA;AAAA,QACP;AAAA,MACF;AAAA,EA0BN;AACF;;;AD7LA,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,OAAO;AAAA,QACP,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,cAAc;AAAA;AAAA,MAEhB;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAUA,IAAM,SAAe;AAAA,EACnB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,OAAO;AAGb,UAAM,eACJ,YAAY,aAAa,YAAY,WAAW,YAAY,iBACxD,oBACA;AAEN,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC;AAAA,UAC3C,YAAY;AAAA;AAAA,QAEd;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,MAEH,YACC;AAAA,QAAC;AAAA;AAAA,UACC,QACE,SAAS,UAAU,SAAS,cAAc,YAAY;AAAA,UAExD,WAAW,YAAY,YAAY,UAAU;AAAA,UAC7C,OAAO;AAAA,UACP,MAAM,SAAS,QAAQ,SAAS,OAAO,OAAO;AAAA;AAAA,MAChD,IAEA;AAAA,IAEJ;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;;;AF3Fd,IAAM,aAAwC,CAAC,UAAU;AAC9D,SACE,gBAAAC,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,UAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,MAAM,aAAa;AAAA,MACrB;AAAA,MACA,SAAS,MAAM;AAAA;AAAA,IAEd,MAAM;AAAA,IACP,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,WAAW,MAAM,YAAY,sBAAsB;AAAA;AAAA,MAEnD,gBAAAA,OAAA,cAAC,UAAK,GAAE,kBAAiB;AAAA,MACzB,gBAAAA,OAAA,cAAC,UAAK,GAAE,YAAW;AAAA,MACnB,gBAAAA,OAAA,cAAC,UAAK,GAAE,gBAAe;AAAA,MACvB,gBAAAA,OAAA,cAAC,UAAK,GAAE,WAAU;AAAA,IACpB;AAAA,EACF;AAEJ;","names":["React","React","React"]}
@@ -1,10 +1,12 @@
1
- import {
2
- Button,
3
- cn
4
- } from "../chunk-HYXZRCZW.mjs";
5
-
6
1
  // elements/splitButton/SplitButton.tsx
7
- import * as React2 from "react";
2
+ import * as React4 from "react";
3
+
4
+ // util/index.ts
5
+ import { clsx } from "clsx";
6
+ import { twMerge } from "tailwind-merge";
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
8
10
 
9
11
  // elements/dropdownMenu/DropdownMenu.tsx
10
12
  import * as React from "react";
@@ -334,6 +336,259 @@ var DropdownMenu = ({
334
336
  );
335
337
  };
336
338
 
339
+ // elements/button/Button.tsx
340
+ import * as React3 from "react";
341
+ import { cva } from "class-variance-authority";
342
+
343
+ // elements/loading/Loading.tsx
344
+ import React2 from "react";
345
+ var Loading = ({
346
+ design = "spinner",
347
+ size = "sm",
348
+ themeMode = "light",
349
+ color,
350
+ ...props
351
+ }) => {
352
+ let sizeStyles = {
353
+ button: "hawa-h-4 hawa-w-4",
354
+ xs: "hawa-h-1 hawa-w-1",
355
+ sm: "hawa-h-6 hawa-w-6",
356
+ normal: "hawa-h-8 hawa-w-8",
357
+ lg: "hawa-h-14 hawa-w-14",
358
+ xl: "hawa-h-24 hawa-w-24"
359
+ };
360
+ let animationStyles = {
361
+ pulse: "hawa-animate-in hawa-fade-in hawa-duration-1000",
362
+ bounce: "hawa-animate-bounce"
363
+ };
364
+ switch (design.split("-")[0]) {
365
+ case "dots":
366
+ return /* @__PURE__ */ React2.createElement(
367
+ "div",
368
+ {
369
+ className: cn("hawa-flex hawa-flex-row hawa-gap-2", props.className)
370
+ },
371
+ /* @__PURE__ */ React2.createElement(
372
+ "div",
373
+ {
374
+ className: cn(
375
+ "hawa-animate-bounce hawa-rounded-full hawa-delay-100 hawa-repeat-infinite",
376
+ size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
377
+ animationStyles[design.split("-")[1]],
378
+ color ? color : "hawa-bg-primary"
379
+ )
380
+ }
381
+ ),
382
+ /* @__PURE__ */ React2.createElement(
383
+ "div",
384
+ {
385
+ className: cn(
386
+ "hawa-animate-bounce hawa-rounded-full hawa-delay-200 hawa-repeat-infinite",
387
+ size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
388
+ animationStyles[design.split("-")[1]],
389
+ color ? color : "hawa-bg-primary"
390
+ )
391
+ }
392
+ ),
393
+ /* @__PURE__ */ React2.createElement(
394
+ "div",
395
+ {
396
+ className: cn(
397
+ "hawa-animate-bounce hawa-rounded-full hawa-delay-300 hawa-repeat-infinite",
398
+ size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
399
+ animationStyles[design.split("-")[1]],
400
+ color ? color : "hawa-bg-primary"
401
+ )
402
+ }
403
+ )
404
+ );
405
+ case "square":
406
+ return /* @__PURE__ */ React2.createElement(
407
+ "svg",
408
+ {
409
+ className: cn("squircle-container", sizeStyles[size]),
410
+ viewBox: "0 0 35 35",
411
+ height: "35",
412
+ width: "35"
413
+ },
414
+ /* @__PURE__ */ React2.createElement(
415
+ "rect",
416
+ {
417
+ className: "squircle-track",
418
+ x: "2.5",
419
+ y: "2.5",
420
+ fill: "none",
421
+ strokeWidth: "5px",
422
+ width: "32.5",
423
+ height: "32.5"
424
+ }
425
+ ),
426
+ /* @__PURE__ */ React2.createElement(
427
+ "rect",
428
+ {
429
+ className: "square-car",
430
+ x: "2.5",
431
+ y: "2.5",
432
+ fill: "none",
433
+ strokeWidth: "5px",
434
+ width: "32.5",
435
+ height: "32.5",
436
+ pathLength: "100"
437
+ }
438
+ )
439
+ );
440
+ case "squircle":
441
+ return /* @__PURE__ */ React2.createElement(
442
+ "svg",
443
+ {
444
+ className: cn("squircle-container", sizeStyles[size]),
445
+ x: "0px",
446
+ y: "0px",
447
+ viewBox: "0 0 37 37",
448
+ height: "37",
449
+ width: "37",
450
+ preserveAspectRatio: "xMidYMid meet"
451
+ },
452
+ /* @__PURE__ */ React2.createElement(
453
+ "path",
454
+ {
455
+ className: "squircle-track",
456
+ fill: "none",
457
+ strokeWidth: "5",
458
+ pathLength: "100",
459
+ d: "M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5"
460
+ }
461
+ ),
462
+ /* @__PURE__ */ React2.createElement(
463
+ "path",
464
+ {
465
+ className: "squircle-car",
466
+ fill: "none",
467
+ strokeWidth: "5",
468
+ pathLength: "100",
469
+ d: "M0.37 18.5 C0.37 5.772 5.772 0.37 18.5 0.37 S36.63 5.772 36.63 18.5 S31.228 36.63 18.5 36.63 S0.37 31.228 0.37 18.5"
470
+ }
471
+ )
472
+ );
473
+ case "progress":
474
+ return /* @__PURE__ */ React2.createElement("div", { className: "progress-loading" });
475
+ case "orbit":
476
+ return /* @__PURE__ */ React2.createElement("div", { className: "orbit-container" });
477
+ default:
478
+ return /* @__PURE__ */ React2.createElement(
479
+ "svg",
480
+ {
481
+ className: cn("circle-container", sizeStyles[size]),
482
+ viewBox: "0 0 40 40",
483
+ height: "40",
484
+ width: "40"
485
+ },
486
+ /* @__PURE__ */ React2.createElement(
487
+ "circle",
488
+ {
489
+ className: cn("circle-track", {
490
+ "hawa-stroke-primary-foreground": themeMode === "dark",
491
+ "hawa-stroke-primary": themeMode === "light"
492
+ }),
493
+ cx: "20",
494
+ cy: "20",
495
+ r: "17.5",
496
+ pathLength: "100",
497
+ strokeWidth: "5px",
498
+ fill: "none"
499
+ }
500
+ ),
501
+ /* @__PURE__ */ React2.createElement(
502
+ "circle",
503
+ {
504
+ className: cn("circle-car", {
505
+ "hawa-stroke-primary-foreground": themeMode === "dark",
506
+ "hawa-stroke-primary": themeMode === "light"
507
+ }),
508
+ cx: "20",
509
+ cy: "20",
510
+ r: "17.5",
511
+ pathLength: "100",
512
+ strokeWidth: "5px",
513
+ fill: "none"
514
+ }
515
+ )
516
+ );
517
+ }
518
+ };
519
+
520
+ // elements/button/Button.tsx
521
+ var buttonVariants = cva(
522
+ "hawa-inline-flex hawa-items-center hawa-select-none hawa-rounded-md hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-colors focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-pointer-events-none disabled:hawa-opacity-50",
523
+ {
524
+ variants: {
525
+ variant: {
526
+ default: "hawa-bg-primary hawa-text-primary-foreground hover:hawa-bg-primary/90",
527
+ light: "hawa-bg-primary/20 hawa-text-primary hover:hawa-bg-primary/40",
528
+ destructive: "hawa-bg-destructive hawa-text-destructive-foreground hover:hawa-bg-destructive/90",
529
+ outline: "hawa-border hawa-border-input hawa-bg-transparent hover:hawa-bg-accent hover:hawa-text-accent-foreground",
530
+ secondary: "hawa-bg-secondary hawa-text-secondary-foreground hover:hawa-bg-secondary/80",
531
+ ghost: "hover:hawa-bg-accent hover:hawa-text-accent-foreground",
532
+ link: "hawa-text-primary hawa-underline-offset-4 hover:hawa-underline",
533
+ combobox: "hawa-bg-background hawa-border",
534
+ neoBrutalism: "neo-brutalism"
535
+ // "hawa-cursor-pointer hawa-transition-all hawa-uppercase hawa-font-mono dark:hawa-bg-black hawa-font-bold hawa-py-2 hawa-px-4 hawa-rounded hawa-border-2 hawa-border-primary hawa-shadow-color-primary hawa-transition-[hawa-transform_50ms, hawa-box-shadow_50ms] active:hawa-translate-x-0.5 active:hawa-translate-y-0.5 active:hawa-shadow-color-primary-active shadow-color-primary active:shadow-color-primary-active",
536
+ },
537
+ size: {
538
+ default: "hawa-h-10 hawa-px-4 hawa-py-2",
539
+ heightless: "hawa-px-4 hawa-py-4",
540
+ xs: "hawa-h-fit hawa-min-h-[25px] hawa-py-1 hawa-text-[10px] hawa-px-2 ",
541
+ sm: "hawa-h-9 hawa-text-[11px] hawa-rounded-md hawa-px-3",
542
+ lg: "hawa-h-11 hawa-rounded-md hawa-px-8",
543
+ xl: "hawa-h-14 hawa-rounded-md hawa-px-10",
544
+ icon: "hawa-h-10 hawa-w-10",
545
+ smallIcon: "hawa-h-7 hawa-w-7"
546
+ }
547
+ },
548
+ defaultVariants: {
549
+ variant: "default",
550
+ size: "default"
551
+ }
552
+ }
553
+ );
554
+ var Button = React3.forwardRef(
555
+ ({
556
+ className,
557
+ variant,
558
+ size,
559
+ asChild = false,
560
+ centered = true,
561
+ isLoading,
562
+ children,
563
+ ...props
564
+ }, ref) => {
565
+ const Comp = "button";
566
+ const loadingColor = variant === "outline" || variant === "ghost" || variant === "neoBrutalism" ? "hawa-bg-primary" : "hawa-bg-primary-foreground";
567
+ return /* @__PURE__ */ React3.createElement(
568
+ Comp,
569
+ {
570
+ className: cn(
571
+ buttonVariants({ variant, size, className }),
572
+ centered && "hawa-justify-center"
573
+ // "hawa-bg-red-500"
574
+ ),
575
+ ref,
576
+ ...props
577
+ },
578
+ isLoading ? /* @__PURE__ */ React3.createElement(
579
+ Loading,
580
+ {
581
+ design: size === "icon" || size === "smallIcon" ? "spinner" : "dots-pulse",
582
+ themeMode: variant === "outline" ? "light" : "dark",
583
+ color: loadingColor,
584
+ size: size === "sm" || size === "xs" ? "xs" : "button"
585
+ }
586
+ ) : children
587
+ );
588
+ }
589
+ );
590
+ Button.displayName = "Button";
591
+
337
592
  // elements/splitButton/SplitButton.tsx
338
593
  var SplitButton = ({
339
594
  variant,
@@ -341,13 +596,13 @@ var SplitButton = ({
341
596
  menuItems = [],
342
597
  children,
343
598
  ...props
344
- }) => /* @__PURE__ */ React2.createElement(
599
+ }) => /* @__PURE__ */ React4.createElement(
345
600
  "div",
346
601
  {
347
602
  dir: "ltr",
348
603
  className: cn("hawa-row hawa-flex hawa-h-fit hawa-justify-center")
349
604
  },
350
- /* @__PURE__ */ React2.createElement(
605
+ /* @__PURE__ */ React4.createElement(
351
606
  Button,
352
607
  {
353
608
  variant,
@@ -356,7 +611,7 @@ var SplitButton = ({
356
611
  },
357
612
  children
358
613
  ),
359
- /* @__PURE__ */ React2.createElement(
614
+ /* @__PURE__ */ React4.createElement(
360
615
  DropdownMenu,
361
616
  {
362
617
  size: "sm",
@@ -364,7 +619,7 @@ var SplitButton = ({
364
619
  direction,
365
620
  align: direction === "rtl" ? "start" : "end",
366
621
  items: menuItems,
367
- trigger: /* @__PURE__ */ React2.createElement(
622
+ trigger: /* @__PURE__ */ React4.createElement(
368
623
  Button,
369
624
  {
370
625
  asChild: true,
@@ -375,7 +630,7 @@ var SplitButton = ({
375
630
  props.className
376
631
  )
377
632
  },
378
- /* @__PURE__ */ React2.createElement(
633
+ /* @__PURE__ */ React4.createElement(
379
634
  "svg",
380
635
  {
381
636
  xmlns: "http://www.w3.org/2000/svg",
@@ -388,7 +643,7 @@ var SplitButton = ({
388
643
  strokeLinecap: "round",
389
644
  strokeLinejoin: "round"
390
645
  },
391
- /* @__PURE__ */ React2.createElement("path", { d: "m6 9 6 6 6-6" })
646
+ /* @__PURE__ */ React4.createElement("path", { d: "m6 9 6 6 6-6" })
392
647
  )
393
648
  )
394
649
  }