@sikka/hawa 0.2.38 → 0.2.41-next
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.
- package/README.md +65 -65
- package/dist/index.css +2451 -0
- package/dist/index.d.mts +299 -3
- package/dist/index.d.ts +299 -3
- package/dist/index.js +1931 -0
- package/dist/index.mjs +1832 -0
- package/package.json +73 -153
- package/dist/index.cjs.js +0 -8
- package/dist/index.esm.js +0 -8
- package/dist/tailwind.css +0 -3966
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,1832 @@
|
|
|
1
|
+
// components/elements/Button.tsx
|
|
2
|
+
import * as React2 from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
|
|
5
|
+
// components/util.ts
|
|
6
|
+
import { clsx } from "clsx";
|
|
7
|
+
import { twMerge } from "tailwind-merge";
|
|
8
|
+
function cn(...inputs) {
|
|
9
|
+
return twMerge(clsx(inputs));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// components/elements/Loading.tsx
|
|
13
|
+
import React from "react";
|
|
14
|
+
import clsx2 from "clsx";
|
|
15
|
+
var Loading = ({
|
|
16
|
+
design = "spinner",
|
|
17
|
+
size = "sm",
|
|
18
|
+
color,
|
|
19
|
+
...props
|
|
20
|
+
}) => {
|
|
21
|
+
let sizeStyles = {
|
|
22
|
+
button: "hawa-h-4 hawa-w-4",
|
|
23
|
+
xs: "hawa-h-1 hawa-w-1",
|
|
24
|
+
sm: "hawa-h-6 hawa-w-6",
|
|
25
|
+
normal: "hawa-h-8 hawa-w-8",
|
|
26
|
+
lg: "hawa-h-14 hawa-w-14",
|
|
27
|
+
xl: "hawa-h-24 hawa-w-24"
|
|
28
|
+
};
|
|
29
|
+
let animationStyles = {
|
|
30
|
+
pulse: "hawa-animate-in hawa-fade-in hawa-duration-1000",
|
|
31
|
+
bounce: "hawa-animate-bounce"
|
|
32
|
+
};
|
|
33
|
+
switch (design.split("-")[0]) {
|
|
34
|
+
case "dots":
|
|
35
|
+
return /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-2" }, /* @__PURE__ */ React.createElement(
|
|
36
|
+
"div",
|
|
37
|
+
{
|
|
38
|
+
className: clsx2(
|
|
39
|
+
"hawa-animate-bounce hawa-rounded-full hawa-delay-100 hawa-repeat-infinite",
|
|
40
|
+
size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
|
|
41
|
+
animationStyles[design.split("-")[1]],
|
|
42
|
+
color ? color : "hawa-bg-primary"
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
), /* @__PURE__ */ React.createElement(
|
|
46
|
+
"div",
|
|
47
|
+
{
|
|
48
|
+
className: clsx2(
|
|
49
|
+
"hawa-animate-bounce hawa-rounded-full hawa-delay-200 hawa-repeat-infinite",
|
|
50
|
+
size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
|
|
51
|
+
animationStyles[design.split("-")[1]],
|
|
52
|
+
color ? color : "hawa-bg-primary"
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
), /* @__PURE__ */ React.createElement(
|
|
56
|
+
"div",
|
|
57
|
+
{
|
|
58
|
+
className: clsx2(
|
|
59
|
+
"hawa-animate-bounce hawa-rounded-full hawa-delay-300 hawa-repeat-infinite",
|
|
60
|
+
size === "button" ? "hawa-h-2 hawa-w-2" : sizeStyles[size],
|
|
61
|
+
animationStyles[design.split("-")[1]],
|
|
62
|
+
color ? color : "hawa-bg-primary"
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
));
|
|
66
|
+
default:
|
|
67
|
+
return /* @__PURE__ */ React.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-x-3" }, /* @__PURE__ */ React.createElement("div", { "aria-label": "Loading...", role: "status" }, /* @__PURE__ */ React.createElement(
|
|
68
|
+
"svg",
|
|
69
|
+
{
|
|
70
|
+
className: clsx2(sizeStyles[size], "hawa-animate-spin"),
|
|
71
|
+
viewBox: "3 3 18 18"
|
|
72
|
+
},
|
|
73
|
+
/* @__PURE__ */ React.createElement(
|
|
74
|
+
"path",
|
|
75
|
+
{
|
|
76
|
+
className: "hawa-fill-primary/20",
|
|
77
|
+
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"
|
|
78
|
+
}
|
|
79
|
+
),
|
|
80
|
+
/* @__PURE__ */ React.createElement(
|
|
81
|
+
"path",
|
|
82
|
+
{
|
|
83
|
+
className: color ? color : "hawa-fill-primary",
|
|
84
|
+
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"
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
)));
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// components/elements/Button.tsx
|
|
92
|
+
var buttonVariants = cva(
|
|
93
|
+
"hawa-inline-flex hawa-items-center hawa-justify-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",
|
|
94
|
+
{
|
|
95
|
+
variants: {
|
|
96
|
+
variant: {
|
|
97
|
+
default: "hawa-bg-primary hawa-text-primary-foreground hover:hawa-bg-primary/90",
|
|
98
|
+
light: "hawa-bg-primary/20 hawa-text-primary hover:hawa-bg-primary/40",
|
|
99
|
+
destructive: "hawa-bg-destructive hawa-text-destructive-foreground hover:hawa-bg-destructive/90",
|
|
100
|
+
outline: "hawa-border hawa-border-input hawa-bg-transparent hover:hawa-bg-accent hover:hawa-text-accent-foreground",
|
|
101
|
+
secondary: "hawa-bg-secondary hawa-text-secondary-foreground hover:hawa-bg-secondary/80",
|
|
102
|
+
ghost: "hover:hawa-bg-accent hover:hawa-text-accent-foreground",
|
|
103
|
+
link: "hawa-text-primary hawa-underline-offset-4 hover:hawa-underline",
|
|
104
|
+
neoBrutalism: "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"
|
|
105
|
+
},
|
|
106
|
+
size: {
|
|
107
|
+
default: "hawa-h-10 hawa-px-4 hawa-py-2",
|
|
108
|
+
heightless: "hawa-px-4 hawa-py-4",
|
|
109
|
+
xs: "hawa-h-fit hawa-py-1 hawa-text-[10px] hawa-px-2 ",
|
|
110
|
+
sm: "hawa-h-9 hawa-text-[11px] hawa-rounded-md hawa-px-3",
|
|
111
|
+
lg: "hawa-h-11 hawa-rounded-md hawa-px-8",
|
|
112
|
+
xl: "hawa-h-14 hawa-rounded-md hawa-px-10",
|
|
113
|
+
icon: "hawa-h-10 hawa-w-10",
|
|
114
|
+
smallIcon: "hawa-h-7 hawa-w-7"
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
defaultVariants: {
|
|
118
|
+
variant: "default",
|
|
119
|
+
size: "default"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
);
|
|
123
|
+
var Button = React2.forwardRef(
|
|
124
|
+
({
|
|
125
|
+
className,
|
|
126
|
+
variant,
|
|
127
|
+
size,
|
|
128
|
+
asChild = false,
|
|
129
|
+
isLoading,
|
|
130
|
+
children,
|
|
131
|
+
...props
|
|
132
|
+
}, ref) => {
|
|
133
|
+
const Comp = "button";
|
|
134
|
+
const loadingColor = variant === "outline" || variant === "ghost" || variant === "neoBrutalism" ? "hawa-bg-primary" : "hawa-bg-primary-foreground";
|
|
135
|
+
return /* @__PURE__ */ React2.createElement(
|
|
136
|
+
Comp,
|
|
137
|
+
{
|
|
138
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
139
|
+
ref,
|
|
140
|
+
...props
|
|
141
|
+
},
|
|
142
|
+
isLoading ? /* @__PURE__ */ React2.createElement(
|
|
143
|
+
Loading,
|
|
144
|
+
{
|
|
145
|
+
design: "dots-pulse",
|
|
146
|
+
color: loadingColor,
|
|
147
|
+
size: size === "sm" ? "xs" : "button"
|
|
148
|
+
}
|
|
149
|
+
) : children
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
Button.displayName = "Button";
|
|
154
|
+
|
|
155
|
+
// components/elements/Dialog.tsx
|
|
156
|
+
import * as React3 from "react";
|
|
157
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
158
|
+
var Dialog = DialogPrimitive.Root;
|
|
159
|
+
var DialogTrigger = DialogPrimitive.Trigger;
|
|
160
|
+
var DialogPortal = ({ ...props }) => /* @__PURE__ */ React3.createElement(DialogPrimitive.Portal, { ...props });
|
|
161
|
+
DialogPortal.displayName = DialogPrimitive.Portal.displayName;
|
|
162
|
+
var DialogOverlay = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React3.createElement(
|
|
163
|
+
DialogPrimitive.Overlay,
|
|
164
|
+
{
|
|
165
|
+
ref,
|
|
166
|
+
className: cn(
|
|
167
|
+
"hawa-fixed hawa-inset-0 hawa-z-50 hawa-bg-background/80 hawa-backdrop-blur-sm data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0",
|
|
168
|
+
className
|
|
169
|
+
),
|
|
170
|
+
...props
|
|
171
|
+
}
|
|
172
|
+
));
|
|
173
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
174
|
+
var DialogContent = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React3.createElement(DialogPortal, null, /* @__PURE__ */ React3.createElement(DialogOverlay, null), /* @__PURE__ */ React3.createElement(
|
|
175
|
+
DialogPrimitive.Content,
|
|
176
|
+
{
|
|
177
|
+
onPointerDownOutside: (e) => {
|
|
178
|
+
if (props.persist) {
|
|
179
|
+
e.preventDefault();
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
ref,
|
|
183
|
+
className: cn(
|
|
184
|
+
"hawa-fixed hawa-left-[50%] hawa-top-[50%] hawa-z-50 hawa-grid hawa-w-full hawa-max-w-lg hawa-translate-x-[-50%] hawa-translate-y-[-50%] hawa-gap-4 hawa-border hawa-bg-background hawa-p-6 hawa-shadow-lg hawa-duration-200 data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[state=closed]:hawa-slide-out-to-left-1/2 data-[state=closed]:hawa-slide-out-to-top-[48%] data-[state=open]:hawa-slide-in-from-left-1/2 data-[state=open]:hawa-slide-in-from-top-[48%] sm:hawa-rounded md:hawa-w-full",
|
|
185
|
+
className
|
|
186
|
+
),
|
|
187
|
+
...props
|
|
188
|
+
},
|
|
189
|
+
children,
|
|
190
|
+
/* @__PURE__ */ React3.createElement(
|
|
191
|
+
DialogPrimitive.Close,
|
|
192
|
+
{
|
|
193
|
+
className: cn(
|
|
194
|
+
"hawa-absolute hawa-top-4 hawa-rounded hawa-opacity-70 hawa-ring-offset-background hawa-transition-opacity hover:hawa-opacity-100 focus:hawa-outline-none focus:hawa-ring-2 focus:hawa-ring-ring focus:hawa-ring-offset-2 disabled:hawa-pointer-events-none data-[state=open]:hawa-bg-accent data-[state=open]:hawa-text-muted-foreground",
|
|
195
|
+
props.dir === "rtl" ? " hawa-left-4" : " hawa-right-4"
|
|
196
|
+
)
|
|
197
|
+
},
|
|
198
|
+
/* @__PURE__ */ React3.createElement(
|
|
199
|
+
"svg",
|
|
200
|
+
{
|
|
201
|
+
"aria-label": "Close Icon",
|
|
202
|
+
"aria-hidden": "true",
|
|
203
|
+
className: "hawa-h-5 hawa-w-5",
|
|
204
|
+
fill: "currentColor",
|
|
205
|
+
viewBox: "0 0 20 20"
|
|
206
|
+
},
|
|
207
|
+
/* @__PURE__ */ React3.createElement(
|
|
208
|
+
"path",
|
|
209
|
+
{
|
|
210
|
+
fillRule: "evenodd",
|
|
211
|
+
d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
|
|
212
|
+
clipRule: "evenodd"
|
|
213
|
+
}
|
|
214
|
+
)
|
|
215
|
+
),
|
|
216
|
+
/* @__PURE__ */ React3.createElement("span", { className: "hawa-sr-only" }, "Close")
|
|
217
|
+
)
|
|
218
|
+
)));
|
|
219
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
220
|
+
var DialogHeader = ({
|
|
221
|
+
className,
|
|
222
|
+
...props
|
|
223
|
+
}) => /* @__PURE__ */ React3.createElement(
|
|
224
|
+
"div",
|
|
225
|
+
{
|
|
226
|
+
className: cn(
|
|
227
|
+
"hawa-flex hawa-flex-col hawa-space-y-1.5 hawa-text-center sm:hawa-text-left",
|
|
228
|
+
className
|
|
229
|
+
),
|
|
230
|
+
...props
|
|
231
|
+
}
|
|
232
|
+
);
|
|
233
|
+
DialogHeader.displayName = "DialogHeader";
|
|
234
|
+
var DialogTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React3.createElement(
|
|
235
|
+
DialogPrimitive.Title,
|
|
236
|
+
{
|
|
237
|
+
ref,
|
|
238
|
+
className: cn(
|
|
239
|
+
"hawa-text-start hawa-text-lg hawa-font-semibold hawa-leading-none hawa-tracking-tight",
|
|
240
|
+
className
|
|
241
|
+
),
|
|
242
|
+
...props
|
|
243
|
+
}
|
|
244
|
+
));
|
|
245
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
246
|
+
var DialogDescription = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React3.createElement(
|
|
247
|
+
DialogPrimitive.Description,
|
|
248
|
+
{
|
|
249
|
+
ref,
|
|
250
|
+
className: cn(
|
|
251
|
+
"hawa-text-start hawa-text-sm hawa-text-muted-foreground",
|
|
252
|
+
className
|
|
253
|
+
),
|
|
254
|
+
...props
|
|
255
|
+
}
|
|
256
|
+
));
|
|
257
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
258
|
+
var DialogFooter = ({
|
|
259
|
+
className,
|
|
260
|
+
...props
|
|
261
|
+
}) => /* @__PURE__ */ React3.createElement(
|
|
262
|
+
"div",
|
|
263
|
+
{
|
|
264
|
+
className: cn(
|
|
265
|
+
"hawa-flex hawa-flex-col-reverse sm:hawa-flex-row sm:hawa-justify-end sm:hawa-gap-2",
|
|
266
|
+
className
|
|
267
|
+
),
|
|
268
|
+
...props
|
|
269
|
+
}
|
|
270
|
+
);
|
|
271
|
+
DialogFooter.displayName = "DialogFooter";
|
|
272
|
+
|
|
273
|
+
// components/elements/Card.tsx
|
|
274
|
+
import * as React4 from "react";
|
|
275
|
+
var Card = React4.forwardRef(
|
|
276
|
+
({ className, clickable = false, ...props }, ref) => /* @__PURE__ */ React4.createElement(
|
|
277
|
+
"div",
|
|
278
|
+
{
|
|
279
|
+
ref,
|
|
280
|
+
className: cn(
|
|
281
|
+
"hawa-rounded-lg hawa-border hawa-bg-card hawa-text-card-foreground hawa-shadow-sm",
|
|
282
|
+
clickable && "hawa-cursor-pointer hawa-transition-all hover:hawa-drop-shadow-md dark:hover:hawa-shadow-dark",
|
|
283
|
+
className
|
|
284
|
+
),
|
|
285
|
+
...props
|
|
286
|
+
}
|
|
287
|
+
)
|
|
288
|
+
);
|
|
289
|
+
Card.displayName = "Card";
|
|
290
|
+
var CardHeader = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
|
|
291
|
+
"div",
|
|
292
|
+
{
|
|
293
|
+
ref,
|
|
294
|
+
className: cn(
|
|
295
|
+
"hawa-flex hawa-flex-col hawa-space-y-1.5 hawa-p-6",
|
|
296
|
+
className
|
|
297
|
+
),
|
|
298
|
+
...props
|
|
299
|
+
}
|
|
300
|
+
));
|
|
301
|
+
CardHeader.displayName = "CardHeader";
|
|
302
|
+
var CardTitle = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
|
|
303
|
+
"h3",
|
|
304
|
+
{
|
|
305
|
+
ref,
|
|
306
|
+
className: cn(
|
|
307
|
+
"hawa-text-2xl hawa-font-semibold hawa-leading-none hawa-tracking-tight",
|
|
308
|
+
className
|
|
309
|
+
),
|
|
310
|
+
...props
|
|
311
|
+
}
|
|
312
|
+
));
|
|
313
|
+
CardTitle.displayName = "CardTitle";
|
|
314
|
+
var CardDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
|
|
315
|
+
"p",
|
|
316
|
+
{
|
|
317
|
+
ref,
|
|
318
|
+
className: cn("hawa-text-sm hawa-text-muted-foreground", className),
|
|
319
|
+
...props
|
|
320
|
+
}
|
|
321
|
+
));
|
|
322
|
+
CardDescription.displayName = "CardDescription";
|
|
323
|
+
var CardContent = React4.forwardRef(
|
|
324
|
+
({ headless, className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
|
|
325
|
+
"div",
|
|
326
|
+
{
|
|
327
|
+
ref,
|
|
328
|
+
className: cn(
|
|
329
|
+
"hawa-p-6",
|
|
330
|
+
headless ? "hawa-pt-6" : "hawa-pt-0",
|
|
331
|
+
className
|
|
332
|
+
),
|
|
333
|
+
...props
|
|
334
|
+
}
|
|
335
|
+
)
|
|
336
|
+
);
|
|
337
|
+
CardContent.displayName = "CardContent";
|
|
338
|
+
var CardFooter = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
|
|
339
|
+
"div",
|
|
340
|
+
{
|
|
341
|
+
ref,
|
|
342
|
+
className: cn("hawa-flex hawa-items-center hawa-p-6 hawa-pt-0", className),
|
|
343
|
+
...props
|
|
344
|
+
}
|
|
345
|
+
));
|
|
346
|
+
CardFooter.displayName = "CardFooter";
|
|
347
|
+
|
|
348
|
+
// components/elements/Breadcrumb.tsx
|
|
349
|
+
import React5 from "react";
|
|
350
|
+
var Breadcrumb = ({ breadcrumbLinks, separator = ">" }) => {
|
|
351
|
+
return /* @__PURE__ */ React5.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 hawa-text-sm" }, breadcrumbLinks.map((singleBreadcrumbLink, index) => /* @__PURE__ */ React5.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-justify-center hawa-gap-2" }, /* @__PURE__ */ React5.createElement(
|
|
352
|
+
"a",
|
|
353
|
+
{
|
|
354
|
+
href: singleBreadcrumbLink.href,
|
|
355
|
+
className: index + 1 === breadcrumbLinks.length ? "hawa-pointer-events-none" : "hawa-underline-offset-4 hawa-transition-all hover:hawa-text-primary hover:hawa-underline hover:hawa-decoration-2"
|
|
356
|
+
},
|
|
357
|
+
singleBreadcrumbLink.label
|
|
358
|
+
), index != breadcrumbLinks.length - 1 ? typeof separator == "string" ? /* @__PURE__ */ React5.createElement("div", null, separator) : /* @__PURE__ */ React5.createElement("div", null, separator) : null)));
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
// components/elements/Tooltip.tsx
|
|
362
|
+
import React6 from "react";
|
|
363
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
364
|
+
var TooltipContent = React6.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React6.createElement(
|
|
365
|
+
TooltipPrimitive.Content,
|
|
366
|
+
{
|
|
367
|
+
ref,
|
|
368
|
+
sideOffset,
|
|
369
|
+
className: cn(
|
|
370
|
+
"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
|
|
371
|
+
className
|
|
372
|
+
),
|
|
373
|
+
...props
|
|
374
|
+
}
|
|
375
|
+
));
|
|
376
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
377
|
+
var TooltipArrow = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React6.createElement(TooltipPrimitive.Arrow, { ref, className: cn(className), ...props }));
|
|
378
|
+
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
|
379
|
+
var Tooltip = ({
|
|
380
|
+
side,
|
|
381
|
+
open,
|
|
382
|
+
content,
|
|
383
|
+
children,
|
|
384
|
+
defaultOpen,
|
|
385
|
+
onOpenChange,
|
|
386
|
+
delayDuration = 300,
|
|
387
|
+
...props
|
|
388
|
+
}) => {
|
|
389
|
+
return /* @__PURE__ */ React6.createElement(TooltipPrimitive.TooltipProvider, { delayDuration }, /* @__PURE__ */ React6.createElement(
|
|
390
|
+
TooltipPrimitive.Root,
|
|
391
|
+
{
|
|
392
|
+
open,
|
|
393
|
+
defaultOpen,
|
|
394
|
+
onOpenChange
|
|
395
|
+
},
|
|
396
|
+
/* @__PURE__ */ React6.createElement(TooltipPrimitive.Trigger, { asChild: true }, children),
|
|
397
|
+
/* @__PURE__ */ React6.createElement(TooltipContent, { side, align: "center", ...props }, content)
|
|
398
|
+
));
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
// components/elements/CodeBlock.tsx
|
|
402
|
+
import React7, { useState as useState2 } from "react";
|
|
403
|
+
|
|
404
|
+
// components/hooks/useClipboard.ts
|
|
405
|
+
import { useState } from "react";
|
|
406
|
+
function useClipboard({ timeout = 2e3 } = {}) {
|
|
407
|
+
const [error, setError] = useState(null);
|
|
408
|
+
const [copied, setCopied] = useState(false);
|
|
409
|
+
const [copyTimeout, setCopyTimeout] = useState(null);
|
|
410
|
+
const handleCopyResult = (value) => {
|
|
411
|
+
clearTimeout(copyTimeout);
|
|
412
|
+
setCopyTimeout(setTimeout(() => setCopied(false), timeout));
|
|
413
|
+
setCopied(value);
|
|
414
|
+
};
|
|
415
|
+
const copy = (valueToCopy) => {
|
|
416
|
+
if ("clipboard" in navigator) {
|
|
417
|
+
navigator.clipboard.writeText(valueToCopy).then(() => handleCopyResult(true)).catch((err) => setError(err));
|
|
418
|
+
} else {
|
|
419
|
+
setError(new Error("useClipboard: navigator.clipboard is not supported"));
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
const reset = () => {
|
|
423
|
+
setCopied(false);
|
|
424
|
+
setError(null);
|
|
425
|
+
clearTimeout(copyTimeout);
|
|
426
|
+
};
|
|
427
|
+
return { copy, reset, error, copied };
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
// components/elements/CodeBlock.tsx
|
|
431
|
+
var CodeBlock = ({
|
|
432
|
+
tabs,
|
|
433
|
+
code,
|
|
434
|
+
fileName,
|
|
435
|
+
width = "full"
|
|
436
|
+
}) => {
|
|
437
|
+
const clipboard = useClipboard();
|
|
438
|
+
const [selectedTab, setSelectedTab] = useState2(0);
|
|
439
|
+
let widthStyles = {
|
|
440
|
+
full: "hawa-w-full",
|
|
441
|
+
md: "hawa-w-full hawa-max-w-md",
|
|
442
|
+
sm: "hawa-w-full hawa-max-w-sm",
|
|
443
|
+
xs: "hawa-w-full hawa-max-w-xs"
|
|
444
|
+
};
|
|
445
|
+
return /* @__PURE__ */ React7.createElement(
|
|
446
|
+
"div",
|
|
447
|
+
{
|
|
448
|
+
className: cn(
|
|
449
|
+
widthStyles[width],
|
|
450
|
+
"hawa-w-full hawa-flex-col hawa-items-center hawa-rounded hawa-bg-background hawa-text-left hawa-text-white sm:hawa-text-base"
|
|
451
|
+
)
|
|
452
|
+
},
|
|
453
|
+
tabs && /* @__PURE__ */ React7.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-2 hawa-rounded-t hawa-bg-gray-200 dark:hawa-bg-muted hawa-p-2 hawa-pb-0 hawa-text-foreground hawa-font-mono " }, tabs.map((tab, i) => /* @__PURE__ */ React7.createElement(
|
|
454
|
+
"div",
|
|
455
|
+
{
|
|
456
|
+
className: cn(
|
|
457
|
+
selectedTab === i ? " hawa-border-b-2 hawa-border-primary" : "hawa-bg-transparent"
|
|
458
|
+
)
|
|
459
|
+
},
|
|
460
|
+
/* @__PURE__ */ React7.createElement(
|
|
461
|
+
"div",
|
|
462
|
+
{
|
|
463
|
+
onClick: () => setSelectedTab(i),
|
|
464
|
+
className: cn(
|
|
465
|
+
"hawa-mb-1 hawa-transition-all hawa-w-full hawa-max-w-[52px] hawa-cursor-pointer hawa-rounded-inner hawa-p-2 hawa-py-1 hawa-text-center hawa-text-[1rem] hover:hawa-bg-muted-foreground/20"
|
|
466
|
+
)
|
|
467
|
+
},
|
|
468
|
+
tab.title
|
|
469
|
+
)
|
|
470
|
+
))),
|
|
471
|
+
fileName && /* @__PURE__ */ React7.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-2 hawa-rounded-t hawa-bg-gray-200 dark:hawa-bg-muted hawa-p-2 hawa-pb-0 hawa-text-foreground hawa-font-mono" }, /* @__PURE__ */ React7.createElement(
|
|
472
|
+
"div",
|
|
473
|
+
{
|
|
474
|
+
className: cn(
|
|
475
|
+
"hawa-mb-1 hawa-w-full hawa-max-w-[52px] hawa-rounded-inner hawa-p-2 hawa-py-1 hawa-text-center hawa-text-[1rem]"
|
|
476
|
+
)
|
|
477
|
+
},
|
|
478
|
+
fileName
|
|
479
|
+
)),
|
|
480
|
+
/* @__PURE__ */ React7.createElement("pre", null, /* @__PURE__ */ React7.createElement(
|
|
481
|
+
"code",
|
|
482
|
+
{
|
|
483
|
+
className: cn(
|
|
484
|
+
"hawa-relative hawa-flex hawa-w-full hawa-flex-row hawa-items-start hawa-justify-between hawa-p-0 hawa-text-left hawa-text-sm sm:hawa-text-base hawa-bg-gray-300 ",
|
|
485
|
+
tabs || fileName ? "hawa-rounded-b hawa-rounded-t-none" : "hawa-rounded"
|
|
486
|
+
)
|
|
487
|
+
},
|
|
488
|
+
/* @__PURE__ */ React7.createElement("div", { className: "hawa-flex hawa-min-h-[37.75px] hawa-w-full hawa-flex-row hawa-justify-start hawa-overflow-auto hawa-p-4 hawa-text-foreground hawa-bg-background/70 hawa-font-mono " }, tabs ? tabs[selectedTab].code : code),
|
|
489
|
+
/* @__PURE__ */ React7.createElement("div", { className: "hawa-absolute hawa-right-0 hawa-flex hawa-w-fit hawa-flex-row hawa-items-center hawa-gap-2 hawa-p-2" }, /* @__PURE__ */ React7.createElement(
|
|
490
|
+
Tooltip,
|
|
491
|
+
{
|
|
492
|
+
open: clipboard.copied,
|
|
493
|
+
side: "left",
|
|
494
|
+
content: /* @__PURE__ */ React7.createElement("div", null, "Copied!")
|
|
495
|
+
},
|
|
496
|
+
/* @__PURE__ */ React7.createElement(
|
|
497
|
+
Button,
|
|
498
|
+
{
|
|
499
|
+
size: "icon",
|
|
500
|
+
onClick: () => clipboard.copy(tabs ? tabs[selectedTab].code : code),
|
|
501
|
+
variant: "outline",
|
|
502
|
+
className: "hawa-opacity-50 sm:hawa-opacity-100 hawa-text-foreground"
|
|
503
|
+
},
|
|
504
|
+
/* @__PURE__ */ React7.createElement(
|
|
505
|
+
"svg",
|
|
506
|
+
{
|
|
507
|
+
"aria-label": "Copy Icon",
|
|
508
|
+
stroke: "currentColor",
|
|
509
|
+
fill: "none",
|
|
510
|
+
strokeWidth: "2",
|
|
511
|
+
viewBox: "0 0 24 24",
|
|
512
|
+
strokeLinecap: "round",
|
|
513
|
+
strokeLinejoin: "round",
|
|
514
|
+
height: "1em",
|
|
515
|
+
width: "1em"
|
|
516
|
+
},
|
|
517
|
+
/* @__PURE__ */ React7.createElement("rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2" }),
|
|
518
|
+
/* @__PURE__ */ React7.createElement("path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" })
|
|
519
|
+
)
|
|
520
|
+
)
|
|
521
|
+
))
|
|
522
|
+
))
|
|
523
|
+
);
|
|
524
|
+
};
|
|
525
|
+
|
|
526
|
+
// components/elements/Checkbox.tsx
|
|
527
|
+
import * as React8 from "react";
|
|
528
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
529
|
+
var Checkbox = ({
|
|
530
|
+
id,
|
|
531
|
+
label,
|
|
532
|
+
sublabel,
|
|
533
|
+
helperText,
|
|
534
|
+
...checkboxProps
|
|
535
|
+
}) => {
|
|
536
|
+
return /* @__PURE__ */ React8.createElement("div", { className: "hawa-items-top hawa-flex hawa-gap-2 " }, /* @__PURE__ */ React8.createElement(CheckboxElement, { id, ...checkboxProps }), (label || helperText) && /* @__PURE__ */ React8.createElement("div", { className: "hawa-grid hawa-gap-1.5 hawa-leading-none" }, label && /* @__PURE__ */ React8.createElement(
|
|
537
|
+
"label",
|
|
538
|
+
{
|
|
539
|
+
role: "checkbox",
|
|
540
|
+
htmlFor: id,
|
|
541
|
+
className: cn(
|
|
542
|
+
"hawa-cursor-pointer hawa-select-none hawa-text-sm hawa-font-medium hawa-leading-none hawa-pt-0.5",
|
|
543
|
+
checkboxProps.disabled && "hawa-cursor-not-allowed hawa-text-muted-foreground hawa-opacity-70 "
|
|
544
|
+
)
|
|
545
|
+
},
|
|
546
|
+
label
|
|
547
|
+
), sublabel && /* @__PURE__ */ React8.createElement(
|
|
548
|
+
"label",
|
|
549
|
+
{
|
|
550
|
+
role: "checkbox",
|
|
551
|
+
htmlFor: id,
|
|
552
|
+
className: cn(
|
|
553
|
+
"hawa-cursor-pointer hawa-select-none hawa-text-sm hawa-text-muted-foreground",
|
|
554
|
+
checkboxProps.disabled && "hawa-cursor-not-allowed hawa-text-muted-foreground hawa-opacity-70"
|
|
555
|
+
)
|
|
556
|
+
},
|
|
557
|
+
sublabel
|
|
558
|
+
), helperText && !checkboxProps.disabled && /* @__PURE__ */ React8.createElement(
|
|
559
|
+
"label",
|
|
560
|
+
{
|
|
561
|
+
role: "checkbox",
|
|
562
|
+
htmlFor: id,
|
|
563
|
+
className: cn(
|
|
564
|
+
"hawa-select-none hawa-text-xs hawa-text-red-500",
|
|
565
|
+
checkboxProps.disabled && "hawa-cursor-not-allowed hawa-opacity-70"
|
|
566
|
+
)
|
|
567
|
+
},
|
|
568
|
+
helperText
|
|
569
|
+
)));
|
|
570
|
+
};
|
|
571
|
+
var CheckboxElement = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React8.createElement(
|
|
572
|
+
CheckboxPrimitive.Root,
|
|
573
|
+
{
|
|
574
|
+
ref,
|
|
575
|
+
className: cn(
|
|
576
|
+
"hawa-peer hawa-h-4 hawa-w-4 hawa-shrink-0 hawa-rounded-sm hawa-border hawa-border-primary hawa-ring-offset-background focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-cursor-not-allowed disabled:hawa-opacity-50 data-[state=checked]:hawa-bg-primary data-[state=checked]:hawa-text-primary-foreground",
|
|
577
|
+
className
|
|
578
|
+
),
|
|
579
|
+
...props
|
|
580
|
+
},
|
|
581
|
+
/* @__PURE__ */ React8.createElement(
|
|
582
|
+
CheckboxPrimitive.Indicator,
|
|
583
|
+
{
|
|
584
|
+
className: cn(
|
|
585
|
+
"hawa-flex hawa-items-center hawa-justify-center hawa-text-current"
|
|
586
|
+
)
|
|
587
|
+
},
|
|
588
|
+
/* @__PURE__ */ React8.createElement(
|
|
589
|
+
"svg",
|
|
590
|
+
{
|
|
591
|
+
"aria-label": "Check Mark",
|
|
592
|
+
stroke: "currentColor",
|
|
593
|
+
fill: "currentColor",
|
|
594
|
+
strokeWidth: "0",
|
|
595
|
+
viewBox: "0 0 512 512",
|
|
596
|
+
height: "0.60em",
|
|
597
|
+
width: "0.60em"
|
|
598
|
+
},
|
|
599
|
+
/* @__PURE__ */ React8.createElement("path", { d: "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z" })
|
|
600
|
+
),
|
|
601
|
+
" "
|
|
602
|
+
)
|
|
603
|
+
));
|
|
604
|
+
CheckboxElement.displayName = CheckboxPrimitive.Root.displayName;
|
|
605
|
+
|
|
606
|
+
// components/elements/Toast.tsx
|
|
607
|
+
import * as React9 from "react";
|
|
608
|
+
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
609
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
610
|
+
var toastVariants = cva2(
|
|
611
|
+
"hawa-group hawa-pointer-events-auto hawa-relative hawa-flex hawa-w-full hawa-items-center hawa-justify-between hawa-space-x-4 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-shadow-lg hawa-transition-all data-[swipe=cancel]:hawa-translate-x-0 data-[swipe=end]:hawa-translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:hawa-translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:hawa-transition-none data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[swipe=end]:hawa-animate-out data-[state=closed]:hawa-fade-out-80 data-[state=open]:hawa-slide-in-from-top-full data-[state=open]:sm:hawa-slide-in-from-bottom-full",
|
|
612
|
+
{
|
|
613
|
+
variants: {
|
|
614
|
+
variant: {
|
|
615
|
+
default: "hawa-border hawa-bg-background hawa-text-foreground",
|
|
616
|
+
destructive: "hawa-destructive hawa-group hawa-border-destructive hawa-bg-destructive hawa-text-destructive-foreground"
|
|
617
|
+
},
|
|
618
|
+
severity: {
|
|
619
|
+
info: "hawa-info hawa-group hawa-text-info-foreground hawa-bg-info",
|
|
620
|
+
warning: "hawa-warning hawa-group hawa-text-warning-foreground hawa-bg-warning",
|
|
621
|
+
error: "hawa-error hawa-group hawa-border-error hawa-bg-error hawa-text-error-foreground",
|
|
622
|
+
success: "hawa-success hawa-group hawa-text-success-foreground hawa-bg-success",
|
|
623
|
+
none: ""
|
|
624
|
+
}
|
|
625
|
+
},
|
|
626
|
+
defaultVariants: {
|
|
627
|
+
variant: "default"
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
);
|
|
631
|
+
var ToastProvider = ToastPrimitives.Provider;
|
|
632
|
+
var ToastViewport = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React9.createElement(
|
|
633
|
+
ToastPrimitives.Viewport,
|
|
634
|
+
{
|
|
635
|
+
ref,
|
|
636
|
+
className: cn(
|
|
637
|
+
"hawa-fixed hawa-top-0 hawa-z-[100] hawa-flex hawa-max-h-screen hawa-w-full hawa-flex-col-reverse hawa-p-4 sm:hawa-bottom-0 sm:hawa-right-0 sm:hawa-top-auto sm:hawa-flex-col md:hawa-max-w-[420px]",
|
|
638
|
+
className
|
|
639
|
+
),
|
|
640
|
+
...props
|
|
641
|
+
}
|
|
642
|
+
));
|
|
643
|
+
ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
|
|
644
|
+
var Toast = React9.forwardRef(({ className, variant, severity = "none", direction, ...props }, ref) => {
|
|
645
|
+
return /* @__PURE__ */ React9.createElement(
|
|
646
|
+
ToastPrimitives.Root,
|
|
647
|
+
{
|
|
648
|
+
ref,
|
|
649
|
+
className: cn(
|
|
650
|
+
toastVariants({ variant, severity }),
|
|
651
|
+
className,
|
|
652
|
+
direction === "rtl" ? "hawa-p-6 hawa-pl-0 hawa-pr-10 data-[state=closed]:hawa-slide-out-to-left-full" : "hawa-p-6 hawa-pr-8 data-[state=closed]:hawa-slide-out-to-right-full"
|
|
653
|
+
),
|
|
654
|
+
dir: direction,
|
|
655
|
+
...props
|
|
656
|
+
}
|
|
657
|
+
);
|
|
658
|
+
});
|
|
659
|
+
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
660
|
+
var ToastAction = React9.forwardRef(({ className, ...props }, ref) => {
|
|
661
|
+
return /* @__PURE__ */ React9.createElement(
|
|
662
|
+
ToastPrimitives.Action,
|
|
663
|
+
{
|
|
664
|
+
ref,
|
|
665
|
+
className: cn(
|
|
666
|
+
"hawa-inline-flex hawa-h-8 hawa-shrink-0 hawa-items-center hawa-justify-center hawa-rounded-md hawa-border hawa-bg-transparent hawa-px-3 hawa-text-sm hawa-font-medium hawa-ring-offset-background hawa-transition-colors hover:hawa-bg-secondary hover:hawa-text-secondary-foreground focus:hawa-outline-none focus:hawa-ring-2 focus:hawa-ring-ring focus:hawa-ring-offset-2 disabled:hawa-pointer-events-none disabled:hawa-opacity-50",
|
|
667
|
+
"group-[.info]:hawa-border-muted/40 group-[.info]:hover:hawa-border-info/30 group-[.info]:hover:hawa-bg-info group-[.info]:hover:hawa-text-info-foreground group-[.info]:focus:hawa-ring-info",
|
|
668
|
+
"group-[.error]:hawa-border-muted/40 group-[.error]:hover:hawa-border-error/30 group-[.error]:hover:hawa-bg-error group-[.error]:hover:hawa-text-error-foreground group-[.error]:focus:hawa-ring-error",
|
|
669
|
+
"group-[.success]:hawa-border-muted/40 group-[.success]:hover:hawa-border-success/30 group-[.success]:hover:hawa-bg-success group-[.success]:hover:hawa-text-success-foreground group-[.success]:focus:hawa-ring-success",
|
|
670
|
+
"group-[.warning]:hawa-border-muted/40 group-[.warning]:hover:hawa-border-warning/30 group-[.warning]:hover:hawa-bg-warning group-[.warning]:hover:hawa-text-warning-foreground group-[.warning]:focus:hawa-ring-warning",
|
|
671
|
+
className
|
|
672
|
+
),
|
|
673
|
+
...props
|
|
674
|
+
}
|
|
675
|
+
);
|
|
676
|
+
});
|
|
677
|
+
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
678
|
+
var ToastClose = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React9.createElement(
|
|
679
|
+
ToastPrimitives.Close,
|
|
680
|
+
{
|
|
681
|
+
ref,
|
|
682
|
+
className: cn(
|
|
683
|
+
"hawa-absolute hawa-right-2 hawa-top-2 hawa-rounded-md hawa-p-1 hawa-text-foreground/50 hawa-opacity-0 hawa-transition-opacity hover:hawa-text-foreground focus:hawa-opacity-100 focus:hawa-outline-none focus:hawa-ring-2 group-hover:hawa-opacity-100 group-[.destructive]:hawa-text-red-300 group-[.destructive]:hover:hawa-text-red-50 group-[.destructive]:focus:hawa-ring-red-400 group-[.destructive]:focus:hawa-ring-offset-red-600",
|
|
684
|
+
className
|
|
685
|
+
),
|
|
686
|
+
"toast-close": "",
|
|
687
|
+
...props
|
|
688
|
+
},
|
|
689
|
+
/* @__PURE__ */ React9.createElement(
|
|
690
|
+
"svg",
|
|
691
|
+
{
|
|
692
|
+
"aria-label": "Close Icon",
|
|
693
|
+
"aria-hidden": "true",
|
|
694
|
+
className: "hawa-h-4 hawa-w-4",
|
|
695
|
+
fill: "currentColor",
|
|
696
|
+
viewBox: "0 0 20 20"
|
|
697
|
+
},
|
|
698
|
+
/* @__PURE__ */ React9.createElement(
|
|
699
|
+
"path",
|
|
700
|
+
{
|
|
701
|
+
fillRule: "evenodd",
|
|
702
|
+
d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
|
|
703
|
+
clipRule: "evenodd"
|
|
704
|
+
}
|
|
705
|
+
)
|
|
706
|
+
)
|
|
707
|
+
));
|
|
708
|
+
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
709
|
+
var ToastTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React9.createElement(
|
|
710
|
+
ToastPrimitives.Title,
|
|
711
|
+
{
|
|
712
|
+
ref,
|
|
713
|
+
className: cn("hawa-text-sm hawa-font-semibold", className),
|
|
714
|
+
...props
|
|
715
|
+
}
|
|
716
|
+
));
|
|
717
|
+
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
718
|
+
var ToastDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React9.createElement(
|
|
719
|
+
ToastPrimitives.Description,
|
|
720
|
+
{
|
|
721
|
+
ref,
|
|
722
|
+
className: cn("hawa-text-sm hawa-opacity-90", className),
|
|
723
|
+
...props
|
|
724
|
+
}
|
|
725
|
+
));
|
|
726
|
+
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
727
|
+
|
|
728
|
+
// components/elements/Toaster.tsx
|
|
729
|
+
import React11 from "react";
|
|
730
|
+
|
|
731
|
+
// components/hooks/useToast.ts
|
|
732
|
+
import * as React10 from "react";
|
|
733
|
+
var TOAST_LIMIT = 5;
|
|
734
|
+
var TOAST_REMOVE_DELAY = 1e5;
|
|
735
|
+
var count = 0;
|
|
736
|
+
function genId() {
|
|
737
|
+
count = (count + 1) % Number.MAX_VALUE;
|
|
738
|
+
return count.toString();
|
|
739
|
+
}
|
|
740
|
+
var toastTimeouts = /* @__PURE__ */ new Map();
|
|
741
|
+
var addToRemoveQueue = (toastId) => {
|
|
742
|
+
if (toastTimeouts.has(toastId)) {
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
const timeout = setTimeout(() => {
|
|
746
|
+
toastTimeouts.delete(toastId);
|
|
747
|
+
dispatch({
|
|
748
|
+
type: "REMOVE_TOAST",
|
|
749
|
+
toastId
|
|
750
|
+
});
|
|
751
|
+
}, TOAST_REMOVE_DELAY);
|
|
752
|
+
toastTimeouts.set(toastId, timeout);
|
|
753
|
+
};
|
|
754
|
+
var reducer = (state, action) => {
|
|
755
|
+
switch (action.type) {
|
|
756
|
+
case "ADD_TOAST":
|
|
757
|
+
return {
|
|
758
|
+
...state,
|
|
759
|
+
toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)
|
|
760
|
+
};
|
|
761
|
+
case "UPDATE_TOAST":
|
|
762
|
+
return {
|
|
763
|
+
...state,
|
|
764
|
+
toasts: state.toasts.map(
|
|
765
|
+
(t) => t.id === action.toast.id ? { ...t, ...action.toast } : t
|
|
766
|
+
)
|
|
767
|
+
};
|
|
768
|
+
case "DISMISS_TOAST": {
|
|
769
|
+
const { toastId } = action;
|
|
770
|
+
if (toastId) {
|
|
771
|
+
addToRemoveQueue(toastId);
|
|
772
|
+
} else {
|
|
773
|
+
state.toasts.forEach((toast2) => {
|
|
774
|
+
addToRemoveQueue(toast2.id);
|
|
775
|
+
});
|
|
776
|
+
}
|
|
777
|
+
return {
|
|
778
|
+
...state,
|
|
779
|
+
toasts: state.toasts.map(
|
|
780
|
+
(t) => t.id === toastId || toastId === void 0 ? { ...t, open: false } : t
|
|
781
|
+
)
|
|
782
|
+
};
|
|
783
|
+
}
|
|
784
|
+
case "REMOVE_TOAST":
|
|
785
|
+
if (action.toastId === void 0) {
|
|
786
|
+
return { ...state, toasts: [] };
|
|
787
|
+
}
|
|
788
|
+
return {
|
|
789
|
+
...state,
|
|
790
|
+
toasts: state.toasts.filter((t) => t.id !== action.toastId)
|
|
791
|
+
};
|
|
792
|
+
}
|
|
793
|
+
};
|
|
794
|
+
var listeners = [];
|
|
795
|
+
var memoryState = { toasts: [] };
|
|
796
|
+
function dispatch(action) {
|
|
797
|
+
memoryState = reducer(memoryState, action);
|
|
798
|
+
listeners.forEach((listener) => {
|
|
799
|
+
listener(memoryState);
|
|
800
|
+
});
|
|
801
|
+
}
|
|
802
|
+
function toast({ ...props }) {
|
|
803
|
+
const id = genId();
|
|
804
|
+
const update = (props2) => dispatch({
|
|
805
|
+
type: "UPDATE_TOAST",
|
|
806
|
+
toast: { ...props2, id }
|
|
807
|
+
});
|
|
808
|
+
const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
|
|
809
|
+
dispatch({
|
|
810
|
+
type: "ADD_TOAST",
|
|
811
|
+
toast: {
|
|
812
|
+
...props,
|
|
813
|
+
id,
|
|
814
|
+
open: true,
|
|
815
|
+
onOpenChange: (open) => {
|
|
816
|
+
if (!open)
|
|
817
|
+
dismiss();
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
});
|
|
821
|
+
return {
|
|
822
|
+
id,
|
|
823
|
+
dismiss,
|
|
824
|
+
update
|
|
825
|
+
};
|
|
826
|
+
}
|
|
827
|
+
function useToast() {
|
|
828
|
+
const [state, setState] = React10.useState(memoryState);
|
|
829
|
+
React10.useEffect(() => {
|
|
830
|
+
listeners.push(setState);
|
|
831
|
+
return () => {
|
|
832
|
+
const index = listeners.indexOf(setState);
|
|
833
|
+
if (index > -1) {
|
|
834
|
+
listeners.splice(index, 1);
|
|
835
|
+
}
|
|
836
|
+
};
|
|
837
|
+
}, [state]);
|
|
838
|
+
return {
|
|
839
|
+
...state,
|
|
840
|
+
toast,
|
|
841
|
+
dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
|
|
842
|
+
};
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
// components/elements/Toaster.tsx
|
|
846
|
+
function Toaster(props) {
|
|
847
|
+
const { toasts } = useToast();
|
|
848
|
+
let isRTL = props.direction === "rtl";
|
|
849
|
+
return /* @__PURE__ */ React11.createElement(ToastProvider, { swipeDirection: isRTL ? "left" : "right" }, toasts.map(function({ id, title, description, action, ...toastProps }) {
|
|
850
|
+
return /* @__PURE__ */ React11.createElement(Toast, { direction: props.direction, key: id, ...toastProps }, /* @__PURE__ */ React11.createElement("div", { className: "hawa-grid hawa-gap-1 hawa-text-start" }, title && /* @__PURE__ */ React11.createElement(ToastTitle, null, title), description && /* @__PURE__ */ React11.createElement(ToastDescription, null, description)), action, /* @__PURE__ */ React11.createElement(ToastClose, null));
|
|
851
|
+
}), /* @__PURE__ */ React11.createElement(
|
|
852
|
+
ToastViewport,
|
|
853
|
+
{
|
|
854
|
+
className: cn("hawa-gap-2", isRTL && "hawa-fixed hawa-left-0")
|
|
855
|
+
}
|
|
856
|
+
));
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
// components/elements/Switch.tsx
|
|
860
|
+
import * as React12 from "react";
|
|
861
|
+
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
862
|
+
var rootSize = {
|
|
863
|
+
default: "hawa-h-[25px] hawa-w-[42px]",
|
|
864
|
+
sm: "hawa-h-[20px] hawa-w-[37px]",
|
|
865
|
+
lg: "hawa-h-[30px] hawa-w-[47px]"
|
|
866
|
+
};
|
|
867
|
+
var thumbSize = {
|
|
868
|
+
default: "hawa-h-[21px] hawa-w-[21px]",
|
|
869
|
+
sm: "hawa-h-[16px] hawa-w-[16px]",
|
|
870
|
+
lg: "hawa-h-[26px] hawa-w-[26px]"
|
|
871
|
+
};
|
|
872
|
+
var Switch = React12.forwardRef(({ className, size = "default", label, ...props }, ref) => {
|
|
873
|
+
const [parentDirection, setParentDirection] = React12.useState(
|
|
874
|
+
null
|
|
875
|
+
);
|
|
876
|
+
const parentRef = React12.useRef(null);
|
|
877
|
+
React12.useEffect(() => {
|
|
878
|
+
const parentNode = parentRef.current?.parentNode;
|
|
879
|
+
if (parentNode) {
|
|
880
|
+
const dir = window.getComputedStyle(parentNode).direction;
|
|
881
|
+
setParentDirection(dir);
|
|
882
|
+
}
|
|
883
|
+
});
|
|
884
|
+
return /* @__PURE__ */ React12.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center", ref: parentRef }, /* @__PURE__ */ React12.createElement(
|
|
885
|
+
SwitchPrimitives.Root,
|
|
886
|
+
{
|
|
887
|
+
className: cn(
|
|
888
|
+
"hawa-relative hawa-cursor-pointer hawa-rounded-full hawa-bg-primary/20 hawa-outline-none data-[state=checked]:hawa-bg-primary",
|
|
889
|
+
className,
|
|
890
|
+
rootSize[size]
|
|
891
|
+
),
|
|
892
|
+
...props,
|
|
893
|
+
ref
|
|
894
|
+
},
|
|
895
|
+
/* @__PURE__ */ React12.createElement(
|
|
896
|
+
SwitchPrimitives.Thumb,
|
|
897
|
+
{
|
|
898
|
+
className: cn(
|
|
899
|
+
thumbSize[size],
|
|
900
|
+
"hawa-block hawa-rounded-full hawa-bg-white hawa-transition-transform hawa-duration-100 hawa-will-change-transform data-[state=checked]:hawa-bg-primary-foreground dark:hawa-bg-background",
|
|
901
|
+
parentDirection === "rtl" ? "hawa--translate-x-0.5 data-[state=checked]:hawa--translate-x-[19px]" : "hawa-translate-x-0.5 data-[state=checked]:hawa-translate-x-[19px]"
|
|
902
|
+
)
|
|
903
|
+
}
|
|
904
|
+
)
|
|
905
|
+
), label && /* @__PURE__ */ React12.createElement("span", { className: "hawa-mx-2 hawa-text-sm hawa-font-medium hawa-text-gray-900 dark:hawa-text-gray-300" }, label));
|
|
906
|
+
});
|
|
907
|
+
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
908
|
+
|
|
909
|
+
// components/elements/Radio.tsx
|
|
910
|
+
import React13, { useState as useState5, useRef as useRef2, useEffect as useEffect3 } from "react";
|
|
911
|
+
var Radio = ({
|
|
912
|
+
design = "default",
|
|
913
|
+
width = "default",
|
|
914
|
+
orientation = "horizontal",
|
|
915
|
+
...props
|
|
916
|
+
}) => {
|
|
917
|
+
const [selectedOption, setSelectedOption] = useState5(props.defaultValue);
|
|
918
|
+
let activeTabStyle = "hawa-inline-block hawa-py-2 hawa-px-4 hawa-w-full hawa-text-primary-foreground hawa-bg-primary hawa-active dark:hawa-bg-primary ";
|
|
919
|
+
let inactiveTabStyle = "hawa-inline-block hawa-py-2 hawa-px-4 hawa-w-full hawa-transition-all hover:hawa-bg-primary/10 dark:hawa-bg-background hawa-bg-primary/5 hover:hawa-text-gray-900 dark:hover:hawa-bg-primary/10 dark:hover:hawa-text-white dark:hawa-bg-primary/5";
|
|
920
|
+
let orientationStyle = {
|
|
921
|
+
horizontal: "hawa-flex hawa-flex-row",
|
|
922
|
+
vertical: "hawa-flex hawa-flex-col"
|
|
923
|
+
};
|
|
924
|
+
let widthStyle = {
|
|
925
|
+
default: "hawa-max-w-fit",
|
|
926
|
+
full: "hawa-w-full"
|
|
927
|
+
};
|
|
928
|
+
const [parentDirection, setParentDirection] = React13.useState(
|
|
929
|
+
null
|
|
930
|
+
);
|
|
931
|
+
const parentRef = useRef2(null);
|
|
932
|
+
useEffect3(() => {
|
|
933
|
+
const parentNode = parentRef.current?.parentNode;
|
|
934
|
+
if (parentNode) {
|
|
935
|
+
const dir = window.getComputedStyle(parentNode).direction;
|
|
936
|
+
setParentDirection(dir);
|
|
937
|
+
}
|
|
938
|
+
});
|
|
939
|
+
switch (design) {
|
|
940
|
+
case "tabs":
|
|
941
|
+
return /* @__PURE__ */ React13.createElement(
|
|
942
|
+
"ul",
|
|
943
|
+
{
|
|
944
|
+
ref: parentRef,
|
|
945
|
+
className: cn(
|
|
946
|
+
props.options && props.options?.length > 2 ? "hawa-flex-wrap xs:hawa-max-w-full xs:hawa-flex-nowrap" : "",
|
|
947
|
+
"hawa-select-none hawa-whitespace-nowrap hawa-rounded hawa-border hawa-text-center hawa-text-sm hawa-font-medium",
|
|
948
|
+
widthStyle[width],
|
|
949
|
+
orientationStyle[orientation]
|
|
950
|
+
)
|
|
951
|
+
},
|
|
952
|
+
props.options?.map((opt, o) => /* @__PURE__ */ React13.createElement(
|
|
953
|
+
"li",
|
|
954
|
+
{
|
|
955
|
+
"aria-current": "page",
|
|
956
|
+
onClick: () => {
|
|
957
|
+
setSelectedOption(opt.value);
|
|
958
|
+
props.onChangeTab(opt.value);
|
|
959
|
+
},
|
|
960
|
+
className: cn(
|
|
961
|
+
"hawa-w-full hawa-cursor-pointer ",
|
|
962
|
+
orientation === "horizontal" && parentDirection === "ltr" && "hawa-rounded-none first:hawa-rounded-l last:hawa-rounded-r",
|
|
963
|
+
orientation === "horizontal" && parentDirection === "rtl" && "hawa-rounded-none first:hawa-rounded-r last:hawa-rounded-l",
|
|
964
|
+
orientation === "vertical" && "hawa-rounded-none first:hawa-rounded-t last:hawa-rounded-b",
|
|
965
|
+
"hawa-last hawa-flex hawa-flex-row hawa-items-center hawa-justify-center hawa-gap-2 ",
|
|
966
|
+
selectedOption === opt.value ? activeTabStyle : inactiveTabStyle
|
|
967
|
+
),
|
|
968
|
+
key: o
|
|
969
|
+
},
|
|
970
|
+
opt.icon && opt.icon,
|
|
971
|
+
opt.label
|
|
972
|
+
))
|
|
973
|
+
);
|
|
974
|
+
case "bordered":
|
|
975
|
+
return /* @__PURE__ */ React13.createElement("div", { className: cn(orientationStyle[orientation], "hawa-gap-4") }, props.options && props.options.map((opt, i) => /* @__PURE__ */ React13.createElement("div", { className: "hawa-rounded hawa-border hawa-border-gray-200 " }, /* @__PURE__ */ React13.createElement(
|
|
976
|
+
"div",
|
|
977
|
+
{
|
|
978
|
+
className: "radio-item radio-item-bordered hawa-flex hawa-items-center hawa-transition-all",
|
|
979
|
+
key: i + 1
|
|
980
|
+
},
|
|
981
|
+
/* @__PURE__ */ React13.createElement(
|
|
982
|
+
"input",
|
|
983
|
+
{
|
|
984
|
+
disabled: opt.disabled,
|
|
985
|
+
id: opt.value.toString(),
|
|
986
|
+
type: "radio",
|
|
987
|
+
value: opt.value,
|
|
988
|
+
name: "bordered-radio"
|
|
989
|
+
}
|
|
990
|
+
),
|
|
991
|
+
/* @__PURE__ */ React13.createElement(
|
|
992
|
+
"label",
|
|
993
|
+
{
|
|
994
|
+
htmlFor: opt.value.toString(),
|
|
995
|
+
className: cn(
|
|
996
|
+
"hawa-ml-2 hawa-w-full hawa-p-4 hawa-pl-3 hawa-text-sm hawa-font-medium dark:hawa-text-white",
|
|
997
|
+
opt.disabled ? "hawa-opacity-50" : "hawa-cursor-pointer hawa-text-gray-900"
|
|
998
|
+
)
|
|
999
|
+
},
|
|
1000
|
+
opt.label
|
|
1001
|
+
)
|
|
1002
|
+
))));
|
|
1003
|
+
case "cards":
|
|
1004
|
+
return /* @__PURE__ */ React13.createElement("ul", { className: cn(orientationStyle[orientation], "hawa-gap-4") }, props.options?.map((opt, o) => /* @__PURE__ */ React13.createElement("li", null, /* @__PURE__ */ React13.createElement(
|
|
1005
|
+
"input",
|
|
1006
|
+
{
|
|
1007
|
+
type: "radio",
|
|
1008
|
+
id: opt.value.toString(),
|
|
1009
|
+
name: "cards-radio",
|
|
1010
|
+
value: opt.value.toString(),
|
|
1011
|
+
className: "hawa-peer hawa-hidden",
|
|
1012
|
+
required: true,
|
|
1013
|
+
disabled: opt.disabled
|
|
1014
|
+
}
|
|
1015
|
+
), /* @__PURE__ */ React13.createElement(
|
|
1016
|
+
"label",
|
|
1017
|
+
{
|
|
1018
|
+
htmlFor: opt.value.toString(),
|
|
1019
|
+
className: cn(
|
|
1020
|
+
"hawa-inline-flex hawa-h-full hawa-w-full hawa-items-center hawa-justify-between hawa-rounded-lg hawa-border hawa-border-gray-200 hawa-bg-white hawa-p-5 hawa-text-gray-500 peer-checked:hawa-border-blue-600 peer-checked:hawa-text-blue-600 dark:hawa-border-gray-700 dark:hawa-bg-gray-800 dark:hawa-text-gray-400 dark:peer-checked:hawa-text-primary",
|
|
1021
|
+
opt.disabled ? "hawa-opacity-50" : "hawa-cursor-pointer hover:hawa-bg-gray-100 hover:hawa-text-gray-600 dark:hover:hawa-bg-gray-700 dark:hover:hawa-text-gray-300"
|
|
1022
|
+
)
|
|
1023
|
+
},
|
|
1024
|
+
/* @__PURE__ */ React13.createElement("div", { className: "hawa-block hawa-h-full hawa-w-full" }, /* @__PURE__ */ React13.createElement("div", { className: "hawa-w-full hawa-text-lg hawa-font-semibold" }, opt.label), /* @__PURE__ */ React13.createElement("div", { className: "hawa-w-full" }, opt.sublabel))
|
|
1025
|
+
))));
|
|
1026
|
+
default:
|
|
1027
|
+
return /* @__PURE__ */ React13.createElement("div", { className: cn(orientationStyle[orientation], "hawa-gap-2") }, props.options && props.options.map((opt, i) => /* @__PURE__ */ React13.createElement(
|
|
1028
|
+
"div",
|
|
1029
|
+
{
|
|
1030
|
+
className: "radio-item radio-item-default hawa-flex hawa-items-center hawa-transition-all",
|
|
1031
|
+
key: i + 1
|
|
1032
|
+
},
|
|
1033
|
+
/* @__PURE__ */ React13.createElement(
|
|
1034
|
+
"input",
|
|
1035
|
+
{
|
|
1036
|
+
disabled: opt.disabled,
|
|
1037
|
+
id: opt.value.toString(),
|
|
1038
|
+
type: "radio",
|
|
1039
|
+
value: opt.value,
|
|
1040
|
+
name: "default-radio"
|
|
1041
|
+
}
|
|
1042
|
+
),
|
|
1043
|
+
/* @__PURE__ */ React13.createElement(
|
|
1044
|
+
"label",
|
|
1045
|
+
{
|
|
1046
|
+
htmlFor: opt.value.toString(),
|
|
1047
|
+
className: cn(
|
|
1048
|
+
"hawa-text-sm hawa-font-medium dark:hawa-text-white",
|
|
1049
|
+
opt.disabled ? "hawa-text-gray-400" : "hawa-cursor-pointer hawa-text-gray-900"
|
|
1050
|
+
)
|
|
1051
|
+
},
|
|
1052
|
+
opt.label
|
|
1053
|
+
)
|
|
1054
|
+
)));
|
|
1055
|
+
}
|
|
1056
|
+
};
|
|
1057
|
+
|
|
1058
|
+
// components/elements/Skeleton.tsx
|
|
1059
|
+
import React14 from "react";
|
|
1060
|
+
function Skeleton({ className, animation = "pulse", ...props }) {
|
|
1061
|
+
return /* @__PURE__ */ React14.createElement(
|
|
1062
|
+
"div",
|
|
1063
|
+
{
|
|
1064
|
+
className: cn(
|
|
1065
|
+
animation === "pulse" ? "hawa-animate-pulse hawa-rounded hawa-bg-muted" : "hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10",
|
|
1066
|
+
className
|
|
1067
|
+
),
|
|
1068
|
+
...props
|
|
1069
|
+
}
|
|
1070
|
+
);
|
|
1071
|
+
}
|
|
1072
|
+
{
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
// components/elements/Chip.tsx
|
|
1076
|
+
import React15 from "react";
|
|
1077
|
+
import clsx3 from "clsx";
|
|
1078
|
+
var Chip = ({
|
|
1079
|
+
label,
|
|
1080
|
+
size = "normal",
|
|
1081
|
+
icon,
|
|
1082
|
+
color,
|
|
1083
|
+
dot,
|
|
1084
|
+
dotType = "available"
|
|
1085
|
+
}) => {
|
|
1086
|
+
let defaultStyles = "hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-rounded hawa-px-2.5 hawa-py-0.5 hawa-font-bold hawa-text-blue-800 hawa-bg-blue-200 dark:hawa-text-blue-800";
|
|
1087
|
+
let sizeStyles = {
|
|
1088
|
+
small: "hawa-h-full hawa-leading-4 hawa-px-1 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 ",
|
|
1089
|
+
normal: "hawa-h-fit hawa-text-xs",
|
|
1090
|
+
large: ""
|
|
1091
|
+
};
|
|
1092
|
+
let dotStyles = {
|
|
1093
|
+
small: "hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full",
|
|
1094
|
+
normal: "hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full",
|
|
1095
|
+
large: "hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full"
|
|
1096
|
+
};
|
|
1097
|
+
let dotTypeStyles = {
|
|
1098
|
+
available: "hawa-bg-green-500",
|
|
1099
|
+
unavailable: "hawa-bg-red-500"
|
|
1100
|
+
};
|
|
1101
|
+
return /* @__PURE__ */ React15.createElement(
|
|
1102
|
+
"span",
|
|
1103
|
+
{
|
|
1104
|
+
className: clsx3(
|
|
1105
|
+
defaultStyles,
|
|
1106
|
+
sizeStyles[size],
|
|
1107
|
+
color ? `hawa-bg-${color}-100 hawa-text-${color}-500` : "hawa-bg-layoutPrimary-500"
|
|
1108
|
+
)
|
|
1109
|
+
},
|
|
1110
|
+
dot && /* @__PURE__ */ React15.createElement("span", { className: clsx3(dotStyles[size], dotTypeStyles[dotType]) }),
|
|
1111
|
+
icon && icon,
|
|
1112
|
+
label
|
|
1113
|
+
);
|
|
1114
|
+
};
|
|
1115
|
+
|
|
1116
|
+
// components/elements/Label.tsx
|
|
1117
|
+
import * as React16 from "react";
|
|
1118
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
1119
|
+
import { cva as cva3 } from "class-variance-authority";
|
|
1120
|
+
var labelVariants = cva3(
|
|
1121
|
+
"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70"
|
|
1122
|
+
);
|
|
1123
|
+
var Label = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React16.createElement(
|
|
1124
|
+
LabelPrimitive.Root,
|
|
1125
|
+
{
|
|
1126
|
+
ref,
|
|
1127
|
+
className: cn(labelVariants(), className),
|
|
1128
|
+
...props
|
|
1129
|
+
}
|
|
1130
|
+
));
|
|
1131
|
+
Label.displayName = LabelPrimitive.Root.displayName;
|
|
1132
|
+
|
|
1133
|
+
// components/elements/Alert.tsx
|
|
1134
|
+
import React17, { useRef as useRef3, useState as useState6, useEffect as useEffect4 } from "react";
|
|
1135
|
+
import clsx4 from "clsx";
|
|
1136
|
+
var Alert = ({
|
|
1137
|
+
variant = "normal",
|
|
1138
|
+
direction = "ltr",
|
|
1139
|
+
severity = "info",
|
|
1140
|
+
duration,
|
|
1141
|
+
icon,
|
|
1142
|
+
className,
|
|
1143
|
+
...props
|
|
1144
|
+
}) => {
|
|
1145
|
+
const alertRef = useRef3(null);
|
|
1146
|
+
const [closed, setClosed] = useState6(false);
|
|
1147
|
+
useEffect4(() => {
|
|
1148
|
+
if (duration) {
|
|
1149
|
+
const timeoutHide = setTimeout(() => {
|
|
1150
|
+
setClosed(true);
|
|
1151
|
+
}, duration);
|
|
1152
|
+
const timeoutDestroy = setTimeout(() => {
|
|
1153
|
+
setClosed(true);
|
|
1154
|
+
if (alertRef?.current) {
|
|
1155
|
+
alertRef?.current.removeChild(alertRef?.current.children[0]);
|
|
1156
|
+
}
|
|
1157
|
+
}, duration + 1e3);
|
|
1158
|
+
return () => {
|
|
1159
|
+
clearTimeout(timeoutHide);
|
|
1160
|
+
clearTimeout(timeoutDestroy);
|
|
1161
|
+
};
|
|
1162
|
+
}
|
|
1163
|
+
}, [duration]);
|
|
1164
|
+
let closeButtonStyle = {
|
|
1165
|
+
none: "hover:hawa-bg-gray-300",
|
|
1166
|
+
info: "hover:hawa-bg-blue-300",
|
|
1167
|
+
warning: "hover:hawa-bg-yellow-300",
|
|
1168
|
+
error: "hover:hawa-bg-red-300",
|
|
1169
|
+
success: "hover:hawa-bg-green-300"
|
|
1170
|
+
};
|
|
1171
|
+
let styleVariant = {
|
|
1172
|
+
// normal: {
|
|
1173
|
+
none: "hawa-text-gray-700 hawa-bg-gray-100 dark:hawa-bg-gray-200 dark:hawa-text-gray-800",
|
|
1174
|
+
info: "hawa-text-blue-700 hawa-bg-blue-100 dark:hawa-bg-blue-200 dark:hawa-text-blue-800",
|
|
1175
|
+
warning: "hawa-text-yellow-700 hawa-bg-yellow-100 dark:hawa-bg-yellow-200 dark:hawa-text-yellow-800",
|
|
1176
|
+
error: "hawa-text-red-700 hawa-bg-red-100 dark:hawa-bg-red-200 dark:hawa-text-red-800",
|
|
1177
|
+
success: "hawa-text-green-700 hawa-bg-green-100 dark:hawa-bg-green-200 dark:hawa-text-green-800"
|
|
1178
|
+
};
|
|
1179
|
+
return /* @__PURE__ */ React17.createElement("div", { ref: alertRef }, /* @__PURE__ */ React17.createElement(
|
|
1180
|
+
"div",
|
|
1181
|
+
{
|
|
1182
|
+
className: clsx4(
|
|
1183
|
+
"hawa-relative hawa-mb-4 hawa-flex hawa-flex-col hawa-rounded hawa-p-4 hawa-text-sm hawa-transition-all",
|
|
1184
|
+
styleVariant[severity],
|
|
1185
|
+
closed ? "hawa-opacity-0" : "hawa-opacity-100",
|
|
1186
|
+
className
|
|
1187
|
+
),
|
|
1188
|
+
role: "alert",
|
|
1189
|
+
dir: direction
|
|
1190
|
+
},
|
|
1191
|
+
/* @__PURE__ */ React17.createElement("div", { className: "hawa-flex hawa-flex-row" }, icon && /* @__PURE__ */ React17.createElement(
|
|
1192
|
+
"div",
|
|
1193
|
+
{
|
|
1194
|
+
className: direction === "rtl" ? "hawa-pl-2 hawa-pt-1" : "hawa-pr-2 hawa-pt-1"
|
|
1195
|
+
},
|
|
1196
|
+
icon
|
|
1197
|
+
), /* @__PURE__ */ React17.createElement("div", { className: "hawa-flex hawa-flex-col" }, /* @__PURE__ */ React17.createElement(
|
|
1198
|
+
"span",
|
|
1199
|
+
{
|
|
1200
|
+
className: clsx4(
|
|
1201
|
+
"font-medium",
|
|
1202
|
+
direction === "rtl" ? "hawa-ml-8" : "hawa-mr-8"
|
|
1203
|
+
)
|
|
1204
|
+
},
|
|
1205
|
+
props.title
|
|
1206
|
+
), /* @__PURE__ */ React17.createElement("span", null, props.text), props.actions && /* @__PURE__ */ React17.createElement("div", { className: "hawa-mt-2 hawa-flex hawa-flex-row hawa-gap-2" }, props.actions.map((act, index) => /* @__PURE__ */ React17.createElement(
|
|
1207
|
+
Button,
|
|
1208
|
+
{
|
|
1209
|
+
key: index,
|
|
1210
|
+
variant: act.variant,
|
|
1211
|
+
onClick: act.onClick()
|
|
1212
|
+
},
|
|
1213
|
+
act.label
|
|
1214
|
+
))))),
|
|
1215
|
+
!props.persistant && /* @__PURE__ */ React17.createElement(
|
|
1216
|
+
"button",
|
|
1217
|
+
{
|
|
1218
|
+
type: "button",
|
|
1219
|
+
className: clsx4(
|
|
1220
|
+
"hawa-absolute hawa-top-2 hawa-inline-flex hawa-h-9 hawa-w-9 hawa-items-center hawa-justify-center hawa-rounded-inner hawa-p-1.5 hawa-text-gray-400 hawa-transition-all hover:hawa-text-gray-900",
|
|
1221
|
+
closeButtonStyle[severity],
|
|
1222
|
+
direction === "rtl" ? "hawa-left-2" : "hawa-right-2"
|
|
1223
|
+
),
|
|
1224
|
+
"data-dismiss-target": "#alert-default",
|
|
1225
|
+
"aria-label": "Close",
|
|
1226
|
+
onClick: () => {
|
|
1227
|
+
setClosed(true);
|
|
1228
|
+
setTimeout(() => {
|
|
1229
|
+
if (alertRef?.current) {
|
|
1230
|
+
alertRef?.current.removeChild(alertRef?.current.children[0]);
|
|
1231
|
+
}
|
|
1232
|
+
}, 200);
|
|
1233
|
+
}
|
|
1234
|
+
},
|
|
1235
|
+
/* @__PURE__ */ React17.createElement("span", { className: "sr-only" }, "Close"),
|
|
1236
|
+
/* @__PURE__ */ React17.createElement(
|
|
1237
|
+
"svg",
|
|
1238
|
+
{
|
|
1239
|
+
"aria-label": "Close Icon",
|
|
1240
|
+
"aria-hidden": "true",
|
|
1241
|
+
className: "hawa-h-5 hawa-w-5",
|
|
1242
|
+
fill: "currentColor",
|
|
1243
|
+
viewBox: "0 0 20 20"
|
|
1244
|
+
},
|
|
1245
|
+
/* @__PURE__ */ React17.createElement(
|
|
1246
|
+
"path",
|
|
1247
|
+
{
|
|
1248
|
+
fillRule: "evenodd",
|
|
1249
|
+
d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
|
|
1250
|
+
clipRule: "evenodd"
|
|
1251
|
+
}
|
|
1252
|
+
)
|
|
1253
|
+
)
|
|
1254
|
+
)
|
|
1255
|
+
));
|
|
1256
|
+
};
|
|
1257
|
+
|
|
1258
|
+
// components/elements/Popover.tsx
|
|
1259
|
+
import * as React18 from "react";
|
|
1260
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
1261
|
+
var PopoverContent = React18.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React18.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React18.createElement(
|
|
1262
|
+
PopoverPrimitive.Content,
|
|
1263
|
+
{
|
|
1264
|
+
ref,
|
|
1265
|
+
align,
|
|
1266
|
+
sideOffset,
|
|
1267
|
+
className: cn(
|
|
1268
|
+
"hawa-z-50 hawa-rounded hawa-border hawa-bg-popover hawa-p-4 hawa-text-popover-foreground hawa-shadow-md hawa-outline-none data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2 dark:hawa-shadow-dark",
|
|
1269
|
+
className
|
|
1270
|
+
),
|
|
1271
|
+
...props
|
|
1272
|
+
}
|
|
1273
|
+
)));
|
|
1274
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1275
|
+
var Popover = ({
|
|
1276
|
+
trigger,
|
|
1277
|
+
children,
|
|
1278
|
+
className,
|
|
1279
|
+
align = "center",
|
|
1280
|
+
side,
|
|
1281
|
+
sideOffset = 4,
|
|
1282
|
+
open,
|
|
1283
|
+
disableTrigger,
|
|
1284
|
+
...props
|
|
1285
|
+
}) => /* @__PURE__ */ React18.createElement(PopoverPrimitive.Root, { open, ...props }, /* @__PURE__ */ React18.createElement(PopoverPrimitive.Trigger, { disabled: disableTrigger }, trigger), /* @__PURE__ */ React18.createElement(
|
|
1286
|
+
PopoverContent,
|
|
1287
|
+
{
|
|
1288
|
+
side,
|
|
1289
|
+
className,
|
|
1290
|
+
align,
|
|
1291
|
+
sideOffset
|
|
1292
|
+
},
|
|
1293
|
+
children
|
|
1294
|
+
));
|
|
1295
|
+
|
|
1296
|
+
// components/elements/Textarea.tsx
|
|
1297
|
+
import * as React19 from "react";
|
|
1298
|
+
var Textarea = React19.forwardRef(
|
|
1299
|
+
({ className, ...props }, ref) => {
|
|
1300
|
+
return /* @__PURE__ */ React19.createElement(
|
|
1301
|
+
"textarea",
|
|
1302
|
+
{
|
|
1303
|
+
className: cn(
|
|
1304
|
+
"hawa-flex hawa-min-h-[80px] hawa-w-full hawa-rounded-md hawa-border hawa-border-input hawa-bg-background hawa-px-3 hawa-py-2 hawa-text-sm hawa-ring-offset-background placeholder:hawa-text-muted-foreground focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-2 disabled:hawa-cursor-not-allowed disabled:hawa-opacity-50",
|
|
1305
|
+
className
|
|
1306
|
+
),
|
|
1307
|
+
ref,
|
|
1308
|
+
...props
|
|
1309
|
+
}
|
|
1310
|
+
);
|
|
1311
|
+
}
|
|
1312
|
+
);
|
|
1313
|
+
Textarea.displayName = "Textarea";
|
|
1314
|
+
|
|
1315
|
+
// components/elements/Slider.tsx
|
|
1316
|
+
import * as React20 from "react";
|
|
1317
|
+
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
1318
|
+
var Slider = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React20.createElement(
|
|
1319
|
+
SliderPrimitive.Root,
|
|
1320
|
+
{
|
|
1321
|
+
ref,
|
|
1322
|
+
className: cn(
|
|
1323
|
+
"hawa-relative hawa-flex hawa-w-full hawa-touch-none hawa-select-none hawa-items-center",
|
|
1324
|
+
className
|
|
1325
|
+
),
|
|
1326
|
+
...props
|
|
1327
|
+
},
|
|
1328
|
+
/* @__PURE__ */ React20.createElement(SliderPrimitive.Track, { className: "hawa-relative hawa-h-2 hawa-w-full hawa-grow hawa-overflow-hidden hawa-rounded-full hawa-bg-secondary" }, /* @__PURE__ */ React20.createElement(SliderPrimitive.Range, { className: "hawa-absolute hawa-h-full hawa-bg-primary" })),
|
|
1329
|
+
/* @__PURE__ */ React20.createElement(SliderPrimitive.Thumb, { className: "hawa-block hawa-h-5 hawa-w-5 hawa-rounded-full hawa-border-2 hawa-border-primary hawa-bg-background 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" })
|
|
1330
|
+
));
|
|
1331
|
+
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
1332
|
+
|
|
1333
|
+
// components/elements/DropdownMenu.tsx
|
|
1334
|
+
import * as React21 from "react";
|
|
1335
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
1336
|
+
var DropdownMenuRoot = DropdownMenuPrimitive.Root;
|
|
1337
|
+
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1338
|
+
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
1339
|
+
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
1340
|
+
var DropdownMenuSubTrigger = React21.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ React21.createElement(
|
|
1341
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
1342
|
+
{
|
|
1343
|
+
ref,
|
|
1344
|
+
className: cn(
|
|
1345
|
+
"hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-justify-between hawa-rounded-sm hawa-px-2 hawa-py-3 hawa-text-sm hawa-outline-none focus:hawa-bg-accent data-[state=open]:hawa-bg-accent",
|
|
1346
|
+
inset && "hawa-pl-8",
|
|
1347
|
+
className
|
|
1348
|
+
),
|
|
1349
|
+
...props
|
|
1350
|
+
},
|
|
1351
|
+
/* @__PURE__ */ React21.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2" }, children),
|
|
1352
|
+
" ",
|
|
1353
|
+
/* @__PURE__ */ React21.createElement(
|
|
1354
|
+
"svg",
|
|
1355
|
+
{
|
|
1356
|
+
"aria-label": "Chevron Right Icon",
|
|
1357
|
+
stroke: "currentColor",
|
|
1358
|
+
fill: "currentColor",
|
|
1359
|
+
strokeWidth: "0",
|
|
1360
|
+
viewBox: "0 0 16 16",
|
|
1361
|
+
height: "1em",
|
|
1362
|
+
width: "1em",
|
|
1363
|
+
className: cn(props.dir === "rtl" ? "hawa-rotate-180" : "")
|
|
1364
|
+
},
|
|
1365
|
+
/* @__PURE__ */ React21.createElement(
|
|
1366
|
+
"path",
|
|
1367
|
+
{
|
|
1368
|
+
fillRule: "evenodd",
|
|
1369
|
+
d: "M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"
|
|
1370
|
+
}
|
|
1371
|
+
)
|
|
1372
|
+
)
|
|
1373
|
+
));
|
|
1374
|
+
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1375
|
+
var DropdownMenuSubContent = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React21.createElement(
|
|
1376
|
+
DropdownMenuPrimitive.SubContent,
|
|
1377
|
+
{
|
|
1378
|
+
ref,
|
|
1379
|
+
className: cn(
|
|
1380
|
+
"hawa-z-50 hawa-min-w-[8rem] hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-p-1 hawa-text-popover-foreground hawa-shadow-lg data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
|
|
1381
|
+
className
|
|
1382
|
+
),
|
|
1383
|
+
...props
|
|
1384
|
+
}
|
|
1385
|
+
));
|
|
1386
|
+
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1387
|
+
var DropdownMenuContent = React21.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React21.createElement(DropdownMenuPrimitive.Portal, null, /* @__PURE__ */ React21.createElement(
|
|
1388
|
+
DropdownMenuPrimitive.Content,
|
|
1389
|
+
{
|
|
1390
|
+
ref,
|
|
1391
|
+
sideOffset,
|
|
1392
|
+
className: cn(
|
|
1393
|
+
"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-p-1 hawa-text-popover-foreground hawa-shadow-md data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
|
|
1394
|
+
className
|
|
1395
|
+
),
|
|
1396
|
+
...props
|
|
1397
|
+
}
|
|
1398
|
+
)));
|
|
1399
|
+
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1400
|
+
var DropdownMenuItem = React21.forwardRef(({ className, inset, ...props }, ref) => {
|
|
1401
|
+
console.log("sdsdsds", props.children);
|
|
1402
|
+
return /* @__PURE__ */ React21.createElement(
|
|
1403
|
+
DropdownMenuPrimitive.Item,
|
|
1404
|
+
{
|
|
1405
|
+
disabled: props.disabled,
|
|
1406
|
+
ref,
|
|
1407
|
+
className: cn(
|
|
1408
|
+
"hawa-relative hawa-flex hawa-cursor-pointer hawa-select-none hawa-items-center hawa-justify-between hawa-rounded-sm hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50",
|
|
1409
|
+
inset && "hawa-pl-8",
|
|
1410
|
+
props.end && Array.isArray(props.children) && props.children[1] && "hawa-gap-6",
|
|
1411
|
+
className
|
|
1412
|
+
),
|
|
1413
|
+
...props
|
|
1414
|
+
},
|
|
1415
|
+
/* @__PURE__ */ React21.createElement("div", { className: "hawa-flex hawa-flex-row hawa-items-center hawa-gap-2 " }, props.children),
|
|
1416
|
+
props.end && props.end
|
|
1417
|
+
);
|
|
1418
|
+
});
|
|
1419
|
+
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1420
|
+
var DropdownMenuCheckboxItem = React21.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ React21.createElement(
|
|
1421
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
1422
|
+
{
|
|
1423
|
+
ref,
|
|
1424
|
+
className: cn(
|
|
1425
|
+
"hawa-relative hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-rounded-sm hawa-py-1.5 hawa-pl-8 hawa-pr-2 hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-bg-accent focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50",
|
|
1426
|
+
className
|
|
1427
|
+
),
|
|
1428
|
+
checked,
|
|
1429
|
+
...props
|
|
1430
|
+
},
|
|
1431
|
+
/* @__PURE__ */ React21.createElement("span", { className: "hawa-absolute hawa-left-2 hawa-flex hawa-h-3.5 hawa-w-3.5 hawa-items-center hawa-justify-center" }, /* @__PURE__ */ React21.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React21.createElement(
|
|
1432
|
+
"svg",
|
|
1433
|
+
{
|
|
1434
|
+
"aria-label": "Check Mark",
|
|
1435
|
+
stroke: "currentColor",
|
|
1436
|
+
fill: "currentColor",
|
|
1437
|
+
strokeWidth: "0",
|
|
1438
|
+
viewBox: "0 0 512 512",
|
|
1439
|
+
height: "0.60em",
|
|
1440
|
+
width: "0.60em"
|
|
1441
|
+
},
|
|
1442
|
+
/* @__PURE__ */ React21.createElement("path", { d: "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z" })
|
|
1443
|
+
), " ")),
|
|
1444
|
+
children
|
|
1445
|
+
));
|
|
1446
|
+
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1447
|
+
var DropdownMenuRadioItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React21.createElement(
|
|
1448
|
+
DropdownMenuPrimitive.RadioItem,
|
|
1449
|
+
{
|
|
1450
|
+
ref,
|
|
1451
|
+
className: cn(
|
|
1452
|
+
"hawa-relative hawa-flex hawa-cursor-default hawa-select-none hawa-items-center hawa-rounded-sm hawa-py-1.5 hawa-pl-8 hawa-pr-2 hawa-text-sm hawa-outline-none hawa-transition-colors focus:hawa-bg-accent focus:hawa-text-accent-foreground data-[disabled]:hawa-pointer-events-none data-[disabled]:hawa-opacity-50",
|
|
1453
|
+
className
|
|
1454
|
+
),
|
|
1455
|
+
...props
|
|
1456
|
+
},
|
|
1457
|
+
/* @__PURE__ */ React21.createElement("span", { className: "hawa-absolute hawa-left-2 hawa-flex hawa-h-3.5 hawa-w-3.5 hawa-items-center hawa-justify-center" }, /* @__PURE__ */ React21.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React21.createElement(
|
|
1458
|
+
"svg",
|
|
1459
|
+
{
|
|
1460
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1461
|
+
width: "24",
|
|
1462
|
+
"aria-label": "Circle",
|
|
1463
|
+
height: "24",
|
|
1464
|
+
viewBox: "0 0 24 24",
|
|
1465
|
+
fill: "none",
|
|
1466
|
+
stroke: "currentColor",
|
|
1467
|
+
strokeWidth: "2",
|
|
1468
|
+
strokeLinecap: "round",
|
|
1469
|
+
strokeLinejoin: "round",
|
|
1470
|
+
className: "hawa-h-2 hawa-w-2 hawa-fill-current"
|
|
1471
|
+
},
|
|
1472
|
+
/* @__PURE__ */ React21.createElement("circle", { cx: "12", cy: "12", r: "10" })
|
|
1473
|
+
))),
|
|
1474
|
+
children
|
|
1475
|
+
));
|
|
1476
|
+
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1477
|
+
var DropdownMenuLabel = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ React21.createElement(
|
|
1478
|
+
DropdownMenuPrimitive.Label,
|
|
1479
|
+
{
|
|
1480
|
+
ref,
|
|
1481
|
+
className: cn(
|
|
1482
|
+
"hawa-px-2 hawa-py-1.5 hawa-text-sm hawa-font-semibold",
|
|
1483
|
+
inset && "hawa-pl-8",
|
|
1484
|
+
className
|
|
1485
|
+
),
|
|
1486
|
+
...props
|
|
1487
|
+
}
|
|
1488
|
+
));
|
|
1489
|
+
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1490
|
+
var DropdownMenuSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React21.createElement(
|
|
1491
|
+
DropdownMenuPrimitive.Separator,
|
|
1492
|
+
{
|
|
1493
|
+
ref,
|
|
1494
|
+
className: cn("hawa--mx-1 hawa-my-1 hawa-h-px hawa-bg-muted", className),
|
|
1495
|
+
...props
|
|
1496
|
+
}
|
|
1497
|
+
));
|
|
1498
|
+
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
1499
|
+
var DropdownMenuShortcut = ({
|
|
1500
|
+
className,
|
|
1501
|
+
...props
|
|
1502
|
+
}) => {
|
|
1503
|
+
return /* @__PURE__ */ React21.createElement(
|
|
1504
|
+
"span",
|
|
1505
|
+
{
|
|
1506
|
+
className: cn(
|
|
1507
|
+
"hawa-ml-auto hawa-text-xs hawa-tracking-widest hawa-opacity-60",
|
|
1508
|
+
className
|
|
1509
|
+
),
|
|
1510
|
+
...props
|
|
1511
|
+
}
|
|
1512
|
+
);
|
|
1513
|
+
};
|
|
1514
|
+
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1515
|
+
var DropdownMenu = ({
|
|
1516
|
+
trigger,
|
|
1517
|
+
items,
|
|
1518
|
+
direction,
|
|
1519
|
+
sideOffset,
|
|
1520
|
+
side,
|
|
1521
|
+
className,
|
|
1522
|
+
triggerClassname,
|
|
1523
|
+
align,
|
|
1524
|
+
alignOffset,
|
|
1525
|
+
onItemSelect,
|
|
1526
|
+
size = "default",
|
|
1527
|
+
width = "default"
|
|
1528
|
+
}) => {
|
|
1529
|
+
const widthStyles = {
|
|
1530
|
+
default: "hawa-min-w-[8rem]",
|
|
1531
|
+
sm: "hawa-w-fit",
|
|
1532
|
+
lg: "hawa-w-[200px]",
|
|
1533
|
+
parent: "ddm-w-parent"
|
|
1534
|
+
};
|
|
1535
|
+
const sizeStyles = {
|
|
1536
|
+
default: "hawa-px-2 hawa-py-3 ",
|
|
1537
|
+
sm: "hawa-text-xs hawa-px-1.5 hawa-py-1.5"
|
|
1538
|
+
};
|
|
1539
|
+
return /* @__PURE__ */ React21.createElement(DropdownMenuRoot, { dir: direction }, /* @__PURE__ */ React21.createElement(DropdownMenuTrigger, { asChild: true, className: triggerClassname }, trigger), /* @__PURE__ */ React21.createElement(DropdownMenuPortal, null, /* @__PURE__ */ React21.createElement(
|
|
1540
|
+
DropdownMenuContent,
|
|
1541
|
+
{
|
|
1542
|
+
side,
|
|
1543
|
+
sideOffset,
|
|
1544
|
+
className: cn(
|
|
1545
|
+
className,
|
|
1546
|
+
widthStyles[width],
|
|
1547
|
+
"hawa-flex hawa-flex-col hawa-gap-2"
|
|
1548
|
+
),
|
|
1549
|
+
align,
|
|
1550
|
+
alignOffset
|
|
1551
|
+
},
|
|
1552
|
+
items && items.map((item, index) => {
|
|
1553
|
+
if (item.itemType === "separator") {
|
|
1554
|
+
return /* @__PURE__ */ React21.createElement(DropdownMenuSeparator, { key: index });
|
|
1555
|
+
} else if (item.itemType === "label") {
|
|
1556
|
+
return /* @__PURE__ */ React21.createElement(DropdownMenuLabel, { key: index }, item.label);
|
|
1557
|
+
} else {
|
|
1558
|
+
return item.subitems ? /* @__PURE__ */ React21.createElement(DropdownMenuSub, { key: index }, /* @__PURE__ */ React21.createElement(
|
|
1559
|
+
DropdownMenuSubTrigger,
|
|
1560
|
+
{
|
|
1561
|
+
className: cn(sizeStyles[size]),
|
|
1562
|
+
dir: direction
|
|
1563
|
+
},
|
|
1564
|
+
item.icon && item.icon,
|
|
1565
|
+
item.label && item.label
|
|
1566
|
+
), /* @__PURE__ */ React21.createElement(DropdownMenuPortal, null, /* @__PURE__ */ React21.createElement(DropdownMenuSubContent, null, item.subitems.map((subitem, subIndex) => /* @__PURE__ */ React21.createElement(
|
|
1567
|
+
DropdownMenuItem,
|
|
1568
|
+
{
|
|
1569
|
+
key: subIndex,
|
|
1570
|
+
className: cn(
|
|
1571
|
+
sizeStyles[size],
|
|
1572
|
+
!item.icon && !item.label ? "hawa-px-0 hawa-py-0 focus:hawa-bg-transparent" : "focus:hawa-bg-accent"
|
|
1573
|
+
),
|
|
1574
|
+
disabled: subitem.disabled,
|
|
1575
|
+
onSelect: () => {
|
|
1576
|
+
subitem.action && subitem.action();
|
|
1577
|
+
if (onItemSelect) {
|
|
1578
|
+
onItemSelect(subitem.value);
|
|
1579
|
+
}
|
|
1580
|
+
}
|
|
1581
|
+
},
|
|
1582
|
+
subitem.icon && subitem.icon,
|
|
1583
|
+
subitem.label && subitem.label
|
|
1584
|
+
))))) : /* @__PURE__ */ React21.createElement(
|
|
1585
|
+
DropdownMenuItem,
|
|
1586
|
+
{
|
|
1587
|
+
key: index,
|
|
1588
|
+
disabled: item.disabled,
|
|
1589
|
+
onSelect: (e) => {
|
|
1590
|
+
if (item.presist) {
|
|
1591
|
+
e.preventDefault();
|
|
1592
|
+
}
|
|
1593
|
+
if (item.action) {
|
|
1594
|
+
item.action();
|
|
1595
|
+
if (onItemSelect) {
|
|
1596
|
+
onItemSelect(item.value);
|
|
1597
|
+
}
|
|
1598
|
+
} else {
|
|
1599
|
+
if (onItemSelect) {
|
|
1600
|
+
onItemSelect(item.value);
|
|
1601
|
+
}
|
|
1602
|
+
}
|
|
1603
|
+
},
|
|
1604
|
+
end: item.end,
|
|
1605
|
+
className: cn(
|
|
1606
|
+
sizeStyles[size],
|
|
1607
|
+
!item.icon && !item.label ? "hawa-px-0 hawa-py-0 focus:hawa-bg-transparent " : "focus:hawa-bg-accent ",
|
|
1608
|
+
item.presist && "focus:hawa-bg-transparent"
|
|
1609
|
+
)
|
|
1610
|
+
},
|
|
1611
|
+
item.icon && item.icon,
|
|
1612
|
+
item.label && item.label
|
|
1613
|
+
);
|
|
1614
|
+
}
|
|
1615
|
+
})
|
|
1616
|
+
)));
|
|
1617
|
+
};
|
|
1618
|
+
|
|
1619
|
+
// components/elements/PinInput.tsx
|
|
1620
|
+
import React22, { useEffect as useEffect5, useState as useState7 } from "react";
|
|
1621
|
+
import clsx5 from "clsx";
|
|
1622
|
+
var PinInput = ({
|
|
1623
|
+
label,
|
|
1624
|
+
icon,
|
|
1625
|
+
digits,
|
|
1626
|
+
width = "normal",
|
|
1627
|
+
getPins,
|
|
1628
|
+
...props
|
|
1629
|
+
}) => {
|
|
1630
|
+
const [pin, setPin] = useState7(Array.from(Array(digits)));
|
|
1631
|
+
const handleKeyDown = (e, index) => {
|
|
1632
|
+
let backTo = 0;
|
|
1633
|
+
if (e.key === "Backspace") {
|
|
1634
|
+
e.target.value.length === 0 ? backTo = index - 1 : backTo = index;
|
|
1635
|
+
const previousInput = document.getElementById(`input-${backTo}`);
|
|
1636
|
+
previousInput?.focus();
|
|
1637
|
+
}
|
|
1638
|
+
};
|
|
1639
|
+
useEffect5(() => {
|
|
1640
|
+
let unfilled = pin.includes(void 0);
|
|
1641
|
+
if (!unfilled && getPins) {
|
|
1642
|
+
getPins(pin);
|
|
1643
|
+
}
|
|
1644
|
+
});
|
|
1645
|
+
const handleChange = (e, index) => {
|
|
1646
|
+
if (!/^\d*$/.test(e.target.value)) {
|
|
1647
|
+
const newPin = [...pin];
|
|
1648
|
+
newPin[index] = "";
|
|
1649
|
+
setPin(newPin);
|
|
1650
|
+
return;
|
|
1651
|
+
} else {
|
|
1652
|
+
const newPin = [...pin];
|
|
1653
|
+
newPin[index] = e.target.value;
|
|
1654
|
+
setPin(newPin);
|
|
1655
|
+
if (e.target.value.length === 1) {
|
|
1656
|
+
const nextInput = document.getElementById(`input-${index + 1}`);
|
|
1657
|
+
nextInput?.focus();
|
|
1658
|
+
} else if (e.target.value.length === 0) {
|
|
1659
|
+
const previousInput = document.getElementById(`input-${index - 1}`);
|
|
1660
|
+
previousInput?.focus();
|
|
1661
|
+
}
|
|
1662
|
+
}
|
|
1663
|
+
};
|
|
1664
|
+
return /* @__PURE__ */ React22.createElement("div", { className: "hawa-flex hawa-w-full hawa-flex-row hawa-justify-center hawa-gap-2" }, pin.map((value, index) => /* @__PURE__ */ React22.createElement(
|
|
1665
|
+
"input",
|
|
1666
|
+
{
|
|
1667
|
+
key: index,
|
|
1668
|
+
type: "text",
|
|
1669
|
+
maxLength: 1,
|
|
1670
|
+
value,
|
|
1671
|
+
id: `input-${index}`,
|
|
1672
|
+
pattern: "[0-9]*",
|
|
1673
|
+
className: clsx5(
|
|
1674
|
+
"hawa-h-10 hawa-rounded hawa-border hawa-bg-background hawa-text-center",
|
|
1675
|
+
width === "full" ? "hawa-w-full" : "hawa-w-10"
|
|
1676
|
+
),
|
|
1677
|
+
onChange: (e) => handleChange(e, index),
|
|
1678
|
+
onKeyDown: (e) => handleKeyDown(e, index),
|
|
1679
|
+
onFocus: (e) => e.target.select(),
|
|
1680
|
+
...props
|
|
1681
|
+
}
|
|
1682
|
+
)));
|
|
1683
|
+
};
|
|
1684
|
+
|
|
1685
|
+
// components/elements/ActionCard.tsx
|
|
1686
|
+
import React23, { useState as useState8 } from "react";
|
|
1687
|
+
var ActionCard = (props) => {
|
|
1688
|
+
const [hovered, setHovered] = useState8(false);
|
|
1689
|
+
return /* @__PURE__ */ React23.createElement("div", { className: "hawa-flex hawa-h-full hawa-w-full hawa-flex-col hawa-gap-1" }, /* @__PURE__ */ React23.createElement(
|
|
1690
|
+
"div",
|
|
1691
|
+
{
|
|
1692
|
+
className: "hawa-group hawa-relative hawa-h-full hawa-w-full hawa-rounded hawa-border hawa-bg-background hawa-bg-cover hawa-bg-center hawa-transition-all hawa-duration-500 hover:hawa-drop-shadow-2xl",
|
|
1693
|
+
style: {
|
|
1694
|
+
backgroundImage: `url(${props.blank ? "" : props.cardImage})`
|
|
1695
|
+
},
|
|
1696
|
+
onMouseEnter: () => setHovered(true),
|
|
1697
|
+
onMouseLeave: () => setHovered(false)
|
|
1698
|
+
},
|
|
1699
|
+
props.blank ? /* @__PURE__ */ React23.createElement("div", { className: "hawa-flex hawa-h-full hawa-flex-col hawa-items-center hawa-justify-center " }, /* @__PURE__ */ React23.createElement(
|
|
1700
|
+
"svg",
|
|
1701
|
+
{
|
|
1702
|
+
className: "hawa-h-10 hawa-w-10 hawa-text-foreground",
|
|
1703
|
+
stroke: "currentColor",
|
|
1704
|
+
fill: "currentColor",
|
|
1705
|
+
"stroke-width": "0",
|
|
1706
|
+
viewBox: "0 0 24 24",
|
|
1707
|
+
height: "1em",
|
|
1708
|
+
width: "1em",
|
|
1709
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
1710
|
+
},
|
|
1711
|
+
/* @__PURE__ */ React23.createElement("path", { d: "M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z" })
|
|
1712
|
+
)) : /* @__PURE__ */ React23.createElement("div", { className: "hawa-absolute hawa-inset-0 hawa-rounded hawa-bg-black hawa-opacity-50" }),
|
|
1713
|
+
/* @__PURE__ */ React23.createElement("div", { className: "hawa-absolute hawa-bottom-2 hawa-right-2 hawa-z-10 hawa-opacity-0 hawa-transition-all hawa-duration-200 group-hover:hawa-opacity-100" }, props.inCardActions),
|
|
1714
|
+
!props.blank && /* @__PURE__ */ React23.createElement("div", { className: "hawa-relative hawa-p-4" }, /* @__PURE__ */ React23.createElement("h1", { className: "hawa-text-white" }, props.title), /* @__PURE__ */ React23.createElement("p", { className: "hawa-text-white" }, props.subtitle))
|
|
1715
|
+
), /* @__PURE__ */ React23.createElement(
|
|
1716
|
+
"div",
|
|
1717
|
+
{
|
|
1718
|
+
className: `hawa-flex hawa-flex-row hawa-justify-between hawa-text-sm hawa-transition-all hawa-duration-200 ${hovered ? "hawa-opacity-100" : "hawa-opacity-0"}`
|
|
1719
|
+
},
|
|
1720
|
+
props.bottomElement
|
|
1721
|
+
));
|
|
1722
|
+
};
|
|
1723
|
+
|
|
1724
|
+
// components/elements/AppStores.tsx
|
|
1725
|
+
import React24 from "react";
|
|
1726
|
+
var AppStores = (props) => {
|
|
1727
|
+
return /* @__PURE__ */ React24.createElement("div", { className: "hawa-flex hawa-justify-center" }, /* @__PURE__ */ React24.createElement("div", null, props.store === "apple" ? props.mode === "dark" ? /* @__PURE__ */ React24.createElement("div", { className: "hawa-mt-3 hawa-flex hawa-h-14 hawa-w-48 hawa-items-center hawa-justify-center hawa-rounded-lg hawa-bg-black hawa-text-white" }, /* @__PURE__ */ React24.createElement("div", { className: "hawa-mr-3" }, /* @__PURE__ */ React24.createElement("svg", { viewBox: "0 0 384 512", width: "30" }, /* @__PURE__ */ React24.createElement(
|
|
1728
|
+
"path",
|
|
1729
|
+
{
|
|
1730
|
+
fill: "currentColor",
|
|
1731
|
+
d: "M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"
|
|
1732
|
+
}
|
|
1733
|
+
))), /* @__PURE__ */ React24.createElement("div", null, /* @__PURE__ */ React24.createElement("div", { className: "hawa-text-xs" }, "Download on the"), /* @__PURE__ */ React24.createElement("div", { className: "hawa-font-sans hawa--mt-1 hawa-text-2xl hawa-font-semibold" }, "App Store"))) : /* @__PURE__ */ React24.createElement("div", { className: "hawa-mt-3 hawa-flex hawa-h-14 hawa-w-48 hawa-items-center hawa-justify-center hawa-rounded-lg hawa-border hawa-border-black hawa-bg-transparent hawa-text-black" }, /* @__PURE__ */ React24.createElement("div", { className: "hawa-mr-3" }, /* @__PURE__ */ React24.createElement("svg", { viewBox: "0 0 384 512", width: "30" }, /* @__PURE__ */ React24.createElement(
|
|
1734
|
+
"path",
|
|
1735
|
+
{
|
|
1736
|
+
fill: "currentColor",
|
|
1737
|
+
d: "M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"
|
|
1738
|
+
}
|
|
1739
|
+
))), /* @__PURE__ */ React24.createElement("div", null, /* @__PURE__ */ React24.createElement("div", { className: "hawa-text-xs" }, "Download on the"), /* @__PURE__ */ React24.createElement("div", { className: "hawa-font-sans hawa--mt-1 hawa-text-2xl hawa-font-semibold" }, "App Store"))) : props.mode === "dark" ? /* @__PURE__ */ React24.createElement("div", { className: "hawa-mt-3 hawa-flex hawa-h-14 hawa-w-48 hawa-items-center hawa-justify-center hawa-rounded-lg hawa-bg-black hawa-text-white" }, /* @__PURE__ */ React24.createElement("div", { className: "hawa-mr-3" }, /* @__PURE__ */ React24.createElement("svg", { viewBox: "30 336.7 120.9 129.2", width: "30" }, /* @__PURE__ */ React24.createElement(
|
|
1740
|
+
"path",
|
|
1741
|
+
{
|
|
1742
|
+
fill: "#FFD400",
|
|
1743
|
+
d: "M119.2,421.2c15.3-8.4,27-14.8,28-15.3c3.2-1.7,6.5-6.2,0-9.7 c-2.1-1.1-13.4-7.3-28-15.3l-20.1,20.2L119.2,421.2z"
|
|
1744
|
+
}
|
|
1745
|
+
), /* @__PURE__ */ React24.createElement(
|
|
1746
|
+
"path",
|
|
1747
|
+
{
|
|
1748
|
+
fill: "#FF3333",
|
|
1749
|
+
d: "M99.1,401.1l-64.2,64.7c1.5,0.2,3.2-0.2,5.2-1.3 c4.2-2.3,48.8-26.7,79.1-43.3L99.1,401.1L99.1,401.1z"
|
|
1750
|
+
}
|
|
1751
|
+
), /* @__PURE__ */ React24.createElement(
|
|
1752
|
+
"path",
|
|
1753
|
+
{
|
|
1754
|
+
fill: "#48FF48",
|
|
1755
|
+
d: "M99.1,401.1l20.1-20.2c0,0-74.6-40.7-79.1-43.1 c-1.7-1-3.6-1.3-5.3-1L99.1,401.1z"
|
|
1756
|
+
}
|
|
1757
|
+
), /* @__PURE__ */ React24.createElement(
|
|
1758
|
+
"path",
|
|
1759
|
+
{
|
|
1760
|
+
fill: "#3BCCFF",
|
|
1761
|
+
d: "M99.1,401.1l-64.3-64.3c-2.6,0.6-4.8,2.9-4.8,7.6 c0,7.5,0,107.5,0,113.8c0,4.3,1.7,7.4,4.9,7.7L99.1,401.1z"
|
|
1762
|
+
}
|
|
1763
|
+
))), /* @__PURE__ */ React24.createElement("div", null, /* @__PURE__ */ React24.createElement("div", { className: "hawa-text-xs" }, "GET IT ON"), /* @__PURE__ */ React24.createElement("div", { className: "hawa-font-sans hawa--mt-1 hawa-text-xl hawa-font-semibold" }, "Google Play"))) : /* @__PURE__ */ React24.createElement("div", { className: "hawa-mt-3 hawa-flex hawa-h-14 hawa-w-48 hawa-items-center hawa-justify-center hawa-rounded-lg hawa-border hawa-border-black hawa-bg-white hawa-text-black" }, /* @__PURE__ */ React24.createElement("div", { className: "hawa-mr-3" }, /* @__PURE__ */ React24.createElement("svg", { viewBox: "30 336.7 120.9 129.2", width: "30" }, /* @__PURE__ */ React24.createElement(
|
|
1764
|
+
"path",
|
|
1765
|
+
{
|
|
1766
|
+
fill: "#FFD400",
|
|
1767
|
+
d: "M119.2,421.2c15.3-8.4,27-14.8,28-15.3c3.2-1.7,6.5-6.2,0-9.7 c-2.1-1.1-13.4-7.3-28-15.3l-20.1,20.2L119.2,421.2z"
|
|
1768
|
+
}
|
|
1769
|
+
), /* @__PURE__ */ React24.createElement(
|
|
1770
|
+
"path",
|
|
1771
|
+
{
|
|
1772
|
+
fill: "#FF3333",
|
|
1773
|
+
d: "M99.1,401.1l-64.2,64.7c1.5,0.2,3.2-0.2,5.2-1.3 c4.2-2.3,48.8-26.7,79.1-43.3L99.1,401.1L99.1,401.1z"
|
|
1774
|
+
}
|
|
1775
|
+
), /* @__PURE__ */ React24.createElement(
|
|
1776
|
+
"path",
|
|
1777
|
+
{
|
|
1778
|
+
fill: "#48FF48",
|
|
1779
|
+
d: "M99.1,401.1l20.1-20.2c0,0-74.6-40.7-79.1-43.1 c-1.7-1-3.6-1.3-5.3-1L99.1,401.1z"
|
|
1780
|
+
}
|
|
1781
|
+
), /* @__PURE__ */ React24.createElement(
|
|
1782
|
+
"path",
|
|
1783
|
+
{
|
|
1784
|
+
fill: "#3BCCFF",
|
|
1785
|
+
d: "M99.1,401.1l-64.3-64.3c-2.6,0.6-4.8,2.9-4.8,7.6 c0,7.5,0,107.5,0,113.8c0,4.3,1.7,7.4,4.9,7.7L99.1,401.1z"
|
|
1786
|
+
}
|
|
1787
|
+
))), /* @__PURE__ */ React24.createElement("div", null, /* @__PURE__ */ React24.createElement("div", { className: "hawa-text-xs" }, "GET IT ON"), /* @__PURE__ */ React24.createElement("div", { className: "hawa-font-sans hawa--mt-1 hawa-text-xl hawa-font-semibold" }, "Google Play")))));
|
|
1788
|
+
};
|
|
1789
|
+
export {
|
|
1790
|
+
ActionCard,
|
|
1791
|
+
Alert,
|
|
1792
|
+
AppStores,
|
|
1793
|
+
Breadcrumb,
|
|
1794
|
+
Button,
|
|
1795
|
+
Card,
|
|
1796
|
+
CardContent,
|
|
1797
|
+
CardDescription,
|
|
1798
|
+
CardFooter,
|
|
1799
|
+
CardHeader,
|
|
1800
|
+
CardTitle,
|
|
1801
|
+
Checkbox,
|
|
1802
|
+
Chip,
|
|
1803
|
+
CodeBlock,
|
|
1804
|
+
Dialog,
|
|
1805
|
+
DialogContent,
|
|
1806
|
+
DialogDescription,
|
|
1807
|
+
DialogFooter,
|
|
1808
|
+
DialogHeader,
|
|
1809
|
+
DialogTitle,
|
|
1810
|
+
DialogTrigger,
|
|
1811
|
+
DropdownMenu,
|
|
1812
|
+
Label,
|
|
1813
|
+
Loading,
|
|
1814
|
+
PinInput,
|
|
1815
|
+
Popover,
|
|
1816
|
+
PopoverContent,
|
|
1817
|
+
Radio,
|
|
1818
|
+
Skeleton,
|
|
1819
|
+
Slider,
|
|
1820
|
+
Switch,
|
|
1821
|
+
Textarea,
|
|
1822
|
+
Toast,
|
|
1823
|
+
ToastAction,
|
|
1824
|
+
ToastClose,
|
|
1825
|
+
ToastDescription,
|
|
1826
|
+
ToastProvider,
|
|
1827
|
+
ToastTitle,
|
|
1828
|
+
ToastViewport,
|
|
1829
|
+
Toaster,
|
|
1830
|
+
Tooltip,
|
|
1831
|
+
buttonVariants
|
|
1832
|
+
};
|