@sikka/hawa 0.46.0-next → 0.46.3-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/dist/blocks/auth/index.js +31 -13
- package/dist/blocks/auth/index.mjs +4 -4
- package/dist/blocks/feedback/index.js +6 -0
- package/dist/blocks/feedback/index.mjs +5 -5
- package/dist/blocks/index.js +31 -13
- package/dist/blocks/index.mjs +2 -2
- package/dist/blocks/misc/index.js +31 -13
- package/dist/blocks/misc/index.mjs +5 -5
- package/dist/blocks/pricing/index.js +6 -0
- package/dist/blocks/pricing/index.mjs +4 -4
- package/dist/{chunk-6LI35F6L.mjs → chunk-6UOJKVIA.mjs} +6 -0
- package/dist/{chunk-JKZQWCAQ.mjs → chunk-7L5VUKZ7.mjs} +27 -15
- package/dist/{chunk-D3B3MKLS.mjs → chunk-7O555VJR.mjs} +1 -1
- package/dist/{chunk-XC6FSDW7.mjs → chunk-CIMTNOLA.mjs} +1 -1
- package/dist/{chunk-FIUKVRL5.mjs → chunk-EHJXQQDP.mjs} +1 -1
- package/dist/{chunk-3B7UZCET.mjs → chunk-HJVL6X7I.mjs} +6 -0
- package/dist/{chunk-IEB2ANWU.mjs → chunk-QLUJEUIB.mjs} +33 -21
- package/dist/{chunk-YABFWOF3.mjs → chunk-R37QEYSB.mjs} +1 -1
- package/dist/{chunk-FUYMZP4J.mjs → chunk-U72MOMEK.mjs} +1 -1
- package/dist/{chunk-JDCQLGWW.mjs → chunk-YXUHXKKK.mjs} +1 -1
- package/dist/colorPicker/index.js +6 -0
- package/dist/colorPicker/index.js.map +1 -1
- package/dist/colorPicker/index.mjs +6 -0
- package/dist/colorPicker/index.mjs.map +1 -1
- package/dist/combobox/index.js +7 -0
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/index.mjs +7 -0
- package/dist/combobox/index.mjs.map +1 -1
- package/dist/command/index.js +1 -0
- package/dist/command/index.js.map +1 -1
- package/dist/command/index.mjs +1 -0
- package/dist/command/index.mjs.map +1 -1
- package/dist/dataTable/index.js +31 -13
- package/dist/dataTable/index.js.map +1 -1
- package/dist/dataTable/index.mjs +32 -14
- package/dist/dataTable/index.mjs.map +1 -1
- package/dist/elements/index.d.mts +4 -3
- package/dist/elements/index.d.ts +4 -3
- package/dist/elements/index.js +32 -13
- package/dist/elements/index.mjs +4 -3
- package/dist/index.css +1 -1
- package/dist/index.d.mts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +32 -13
- package/dist/index.mjs +139 -120
- package/dist/input/index.d.mts +2 -2
- package/dist/input/index.d.ts +2 -2
- package/dist/input/index.js +31 -13
- package/dist/input/index.js.map +1 -1
- package/dist/input/index.mjs +32 -14
- package/dist/input/index.mjs.map +1 -1
- package/dist/layout/index.js +6 -0
- package/dist/layout/index.mjs +2 -2
- package/dist/passwordInput/index.js +31 -13
- package/dist/passwordInput/index.js.map +1 -1
- package/dist/passwordInput/index.mjs +42 -24
- package/dist/passwordInput/index.mjs.map +1 -1
- package/dist/phoneInput/index.js +6 -0
- package/dist/phoneInput/index.js.map +1 -1
- package/dist/phoneInput/index.mjs +6 -0
- package/dist/phoneInput/index.mjs.map +1 -1
- package/dist/select/index.js +6 -0
- package/dist/select/index.js.map +1 -1
- package/dist/select/index.mjs +6 -0
- package/dist/select/index.mjs.map +1 -1
- package/dist/simpleTable/index.js +6 -0
- package/dist/simpleTable/index.js.map +1 -1
- package/dist/simpleTable/index.mjs +6 -0
- package/dist/simpleTable/index.mjs.map +1 -1
- package/dist/skeleton/index.d.mts +2 -1
- package/dist/skeleton/index.d.ts +2 -1
- package/dist/skeleton/index.js +6 -0
- package/dist/skeleton/index.js.map +1 -1
- package/dist/skeleton/index.mjs +6 -0
- package/dist/skeleton/index.mjs.map +1 -1
- package/dist/stats/index.js +6 -0
- package/dist/stats/index.js.map +1 -1
- package/dist/stats/index.mjs +6 -0
- package/dist/stats/index.mjs.map +1 -1
- package/dist/textarea/index.js +6 -0
- package/dist/textarea/index.js.map +1 -1
- package/dist/textarea/index.mjs +6 -0
- package/dist/textarea/index.mjs.map +1 -1
- package/package.json +1 -1
@@ -274,6 +274,7 @@ function Skeleton({
|
|
274
274
|
content,
|
275
275
|
animation = "pulse",
|
276
276
|
fade,
|
277
|
+
as = "div",
|
277
278
|
...props
|
278
279
|
}) {
|
279
280
|
const animationStyles = {
|
@@ -287,6 +288,10 @@ function Skeleton({
|
|
287
288
|
right: "hawa-mask-fade-right",
|
288
289
|
left: "hawa-mask-fade-left "
|
289
290
|
};
|
291
|
+
const styledAs = {
|
292
|
+
div: "",
|
293
|
+
input: "!h-[38px] !w-full"
|
294
|
+
};
|
290
295
|
return /* @__PURE__ */ import_react6.default.createElement(
|
291
296
|
"div",
|
292
297
|
{
|
@@ -294,6 +299,7 @@ function Skeleton({
|
|
294
299
|
animationStyles[animation],
|
295
300
|
content && "hawa-flex hawa-flex-col hawa-items-center hawa-justify-center",
|
296
301
|
fade && fadeStyle[fade],
|
302
|
+
styledAs[as],
|
297
303
|
className
|
298
304
|
),
|
299
305
|
...props
|
@@ -317,6 +323,7 @@ var Input = (0, import_react7.forwardRef)(
|
|
317
323
|
...props
|
318
324
|
}, ref) => {
|
319
325
|
var _a;
|
326
|
+
const [value, setValue] = (0, import_react7.useState)(props.value || "");
|
320
327
|
let marginStyles = {
|
321
328
|
none: "hawa-mb-0",
|
322
329
|
normal: "hawa-mb-3",
|
@@ -332,6 +339,7 @@ var Input = (0, import_react7.forwardRef)(
|
|
332
339
|
let defaultInputStyle = "hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm placeholder:hawa-text-muted-foreground";
|
333
340
|
const handleChange = (e) => {
|
334
341
|
let newValue = e.target.value;
|
342
|
+
setValue(newValue);
|
335
343
|
if (props.prefixText) {
|
336
344
|
if (newValue.length < props.prefixText.length) {
|
337
345
|
newValue = props.prefixText;
|
@@ -343,9 +351,26 @@ var Input = (0, import_react7.forwardRef)(
|
|
343
351
|
}
|
344
352
|
}
|
345
353
|
if (props.onChange) {
|
346
|
-
|
347
|
-
|
354
|
+
if (props.type === "number" && props.maxLength) {
|
355
|
+
console.log("type is ", props.type);
|
356
|
+
console.log("max length is ", props.maxLength);
|
357
|
+
let v = newValue.replace(/[^0-9]/g, "").slice(0, props.maxLength);
|
358
|
+
const newEvent = { ...e, target: { ...e.target, value: v } };
|
359
|
+
setValue(v);
|
360
|
+
props.onChange(newEvent);
|
361
|
+
} else {
|
362
|
+
console.log("NETIHERRRER");
|
363
|
+
const newEvent = { ...e, target: { ...e.target, value: newValue } };
|
364
|
+
setValue(newValue);
|
365
|
+
props.onChange(newEvent);
|
366
|
+
}
|
367
|
+
}
|
368
|
+
};
|
369
|
+
const handleKeyDown = (e) => {
|
370
|
+
if (props.type === "number" && ["e", "E", "+", "-", "."].includes(e.key)) {
|
371
|
+
e.preventDefault();
|
348
372
|
}
|
373
|
+
props.onKeyDown && props.onKeyDown(e);
|
349
374
|
};
|
350
375
|
return /* @__PURE__ */ import_react7.default.createElement(
|
351
376
|
"div",
|
@@ -359,16 +384,7 @@ var Input = (0, import_react7.forwardRef)(
|
|
359
384
|
)
|
360
385
|
},
|
361
386
|
props.label && /* @__PURE__ */ import_react7.default.createElement(Label, { ...labelProps }, props.label),
|
362
|
-
/* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-w-full hawa-items-center" }, props.outsidePrefix && /* @__PURE__ */ import_react7.default.createElement(
|
363
|
-
"span",
|
364
|
-
{
|
365
|
-
className: cn(
|
366
|
-
"hawa-me-2 hawa-opacity-90",
|
367
|
-
!forceHideHelperText && "hawa-mb-2"
|
368
|
-
)
|
369
|
-
},
|
370
|
-
props.outsidePrefix
|
371
|
-
), props.isLoading ? /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react7.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react7.default.createElement(
|
387
|
+
/* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-w-full hawa-items-center" }, props.outsidePrefix && /* @__PURE__ */ import_react7.default.createElement("span", { className: cn("hawa-me-2 hawa-opacity-90", !forceHideHelperText && "hawa-mb-2") }, props.outsidePrefix), props.isLoading ? /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react7.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ import_react7.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react7.default.createElement(
|
372
388
|
Skeleton,
|
373
389
|
{
|
374
390
|
animation: "none",
|
@@ -415,13 +431,15 @@ var Input = (0, import_react7.forwardRef)(
|
|
415
431
|
required: true,
|
416
432
|
dir: props.dir,
|
417
433
|
type: props.type,
|
418
|
-
value: props.value,
|
434
|
+
value: props.value || value,
|
419
435
|
onChange: handleChange,
|
436
|
+
onKeyDown: handleKeyDown,
|
420
437
|
autoComplete: props.autoComplete,
|
421
438
|
defaultValue: props.defaultValue,
|
422
439
|
placeholder,
|
423
440
|
disabled: props.disabled || preview,
|
424
441
|
style: { height: 40 },
|
442
|
+
maxLength: props.maxLength,
|
425
443
|
...inputProps,
|
426
444
|
className: cn(
|
427
445
|
defaultInputStyle,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../elements/passwordInput/index.ts","../../elements/passwordInput/PasswordInput.tsx","../../icons/Emojis.tsx","../../icons/InputIcons.tsx","../../util/index.ts","../../icons/CommonIcons.tsx","../../elements/input/Input.tsx","../../elements/helperText/HelperText.tsx","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/skeleton/Skeleton.tsx","../../elements/popover/Popover.tsx"],"sourcesContent":["export * from \"./PasswordInput\";\n","import React, { useEffect, useState } from \"react\";\n\nimport { CheckMark, EyeIcon, HiddenEyeIcon, UncheckMark } from \"../../icons\";\nimport { Input } from \"../input\";\nimport { Popover } from \"../popover\";\n\ntype PasswordInputIndicatorProps = {\n strength?: any;\n};\nexport const PasswordStrengthIndicator: React.FC<\n PasswordInputIndicatorProps\n> = ({ strength }) => {\n const strengthLevels = [\n \"none\",\n \"very-weak\",\n \"weak\",\n \"medium\",\n \"strong\",\n \"very-strong\",\n ];\n const strengthColors: any = {\n none: \"hawa-bg-red-700\",\n \"very-weak\": \"hawa-bg-red-600\",\n weak: \"hawa-bg-red-500\",\n medium: \"hawa-bg-yellow-500\",\n strong: \"hawa-bg-green-400\",\n \"very-strong\": \"hawa-bg-green-600\",\n };\n const currentStrengthLevel = strengthLevels[strength];\n const width = {\n none: \"0%\",\n \"very-weak\": \"20%\",\n weak: \"40%\",\n medium: \"60%\",\n strong: \"80%\",\n \"very-strong\": \"100%\",\n }[currentStrengthLevel];\n\n return (\n <div className=\"hawa-mt-0.5 hawa-h-2 hawa-w-full hawa-rounded hawa-bg-gray-200\">\n <div\n className={`${strengthColors[currentStrengthLevel]} hawa-h-full hawa-rounded hawa-transition-all hawa-duration-300`}\n style={{ width }}\n />\n </div>\n );\n};\n\ntype PasswordInputType = {\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n hidePopover?: boolean;\n};\n\nexport const PasswordInput: React.FC<PasswordInputType> = ({\n hidePopover,\n ...props\n}) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isInputFocused, setIsInputFocused] = useState(false);\n const [currentStr, setCurrentStr] = useState(0);\n const [passwordVisible, setPasswordVisible] = useState(false);\n // States for each criterion\n const [lengthCriteriaMet, setLengthCriteriaMet] = useState(false);\n const [numberCriteriaMet, setNumberCriteriaMet] = useState(false);\n const [specialCharCriteriaMet, setSpecialCharCriteriaMet] = useState(false);\n const [lowercaseCriteriaMet, setLowercaseCriteriaMet] = useState(false);\n const [uppercaseCriteriaMet, setUppercaseCriteriaMet] = useState(false);\n\n useEffect(() => {\n // Calculate strength based on the criteria met\n const calculateStrength = () => {\n let strengthScore = 0;\n if (lengthCriteriaMet) strengthScore += 1;\n if (numberCriteriaMet) strengthScore += 1;\n if (specialCharCriteriaMet) strengthScore += 1;\n if (lowercaseCriteriaMet) strengthScore += 1;\n if (uppercaseCriteriaMet) strengthScore += 1;\n return strengthScore;\n };\n\n const currentStrengthScore = calculateStrength();\n setCurrentStr(currentStrengthScore);\n }, [inputValue]);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newPassword = event.target.value;\n if (props.onChange) {\n props.onChange(event);\n }\n setInputValue(newPassword);\n\n // Update each criterion state based on the new password\n setLengthCriteriaMet(newPassword.length >= 8);\n setNumberCriteriaMet(/\\d/.test(newPassword));\n setSpecialCharCriteriaMet(/[!@#$%^&*(),.?\":{}|<>]/.test(newPassword));\n setLowercaseCriteriaMet(/[a-z]/.test(newPassword));\n setUppercaseCriteriaMet(/[A-Z]/.test(newPassword));\n };\n\n // Event handler for when the input gains focus\n const handleInputFocus = () => {\n if (!hidePopover) {\n setIsInputFocused(true);\n }\n };\n\n // Event handler for when the input loses focus\n const handleInputBlur = () => {\n setIsInputFocused(false);\n };\n\n const getCriteriaClass = (isMet: boolean) =>\n isMet\n ? \"hawa-flex hawa-flex-row hawa-gap-2 hawa-text-sm hawa-items-center hawa-text-green-500\"\n : \"hawa-flex hawa-flex-row hawa-gap-2 hawa-text-sm hawa-items-center hawa-text-red-600\";\n\n return (\n <div>\n <Popover\n width=\"trigger\"\n sideOffset={20}\n open={isInputFocused}\n onOpenChange={setIsInputFocused}\n triggerProps={{ asChild: true }}\n contentProps={{ onOpenAutoFocus: (e: any) => e.preventDefault() }}\n trigger={\n <div\n onClick={(e) => {\n e.preventDefault();\n if (!hidePopover) {\n setIsInputFocused(true);\n }\n }}\n >\n <Input\n width=\"full\"\n className=\"hawa-w-full\"\n label={\"test\"}\n onChange={handleInputChange}\n onFocus={handleInputFocus} // Set the input as focused\n onBlur={handleInputBlur}\n type={passwordVisible ? \"text\" : \"password\"}\n endIcon={\n <div\n className=\"hawa-cursor-pointer\"\n onClick={() => setPasswordVisible(!passwordVisible)}\n >\n {passwordVisible ? (\n <EyeIcon className=\"hawa-text-gray-500\" />\n ) : (\n <HiddenEyeIcon className=\"hawa-text-gray-500\" />\n )}{\" \"}\n </div>\n }\n />\n </div>\n }\n >\n <div className=\"hawa-rounded hawa-p-2\">\n <ul className=\"hawa-rounded hawa-p-2\">\n <li className={getCriteriaClass(lengthCriteriaMet)}>\n {lengthCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 8 characters long\n </li>\n <li className={getCriteriaClass(numberCriteriaMet)}>\n {numberCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 1 number\n </li>\n <li className={getCriteriaClass(specialCharCriteriaMet)}>\n {specialCharCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 1 special character\n </li>\n <li className={getCriteriaClass(lowercaseCriteriaMet)}>\n {lowercaseCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 1 lowercase letter\n </li>\n <li className={getCriteriaClass(uppercaseCriteriaMet)}>\n {uppercaseCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 1 uppercase letter\n </li>\n </ul>\n </div>\n </Popover>\n <PasswordStrengthIndicator strength={currentStr} />\n </div>\n );\n};\n","import React from \"react\";\n\nexport const VeryGoodEmoji = () => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_53_166)\">\n <path\n clipRule=\"evenodd\"\n d=\"M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM4.5 8.97498H3.875V9.59998C3.875 11.4747 5.81046 12.8637 7.99817 12.8637C10.1879 12.8637 12.125 11.4832 12.125 9.59998V8.97498H11.5H4.5ZM7.99817 11.6137C6.59406 11.6137 5.63842 10.9482 5.28118 10.225H10.7202C10.3641 10.9504 9.40797 11.6137 7.99817 11.6137Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n ></path>\n <path\n clipRule=\"evenodd\"\n d=\"M6.15295 4.92093L5.375 3.5L4.59705 4.92093L3 5.21885L4.11625 6.39495L3.90717 8L5.375 7.30593L6.84283 8L6.63375 6.39495L7.75 5.21885L6.15295 4.92093ZM11.403 4.92093L10.625 3.5L9.84705 4.92093L8.25 5.21885L9.36625 6.39495L9.15717 8L10.625 7.30593L12.0928 8L11.8837 6.39495L13 5.21885L11.403 4.92093Z\"\n fill=\"#FF990A\"\n fillRule=\"evenodd\"\n ></path>\n </g>\n </svg>\n);\nexport const GoodEmoji = () => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_53_167)\">\n <path\n clipRule=\"evenodd\"\n d=\"M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM11.5249 10.8478L11.8727 10.3286L10.8342 9.6329L10.4863 10.1522C9.94904 10.9543 9.0363 11.4802 8.00098 11.4802C6.96759 11.4802 6.05634 10.9563 5.51863 10.1567L5.16986 9.63804L4.13259 10.3356L4.48137 10.8542C5.2414 11.9844 6.53398 12.7302 8.00098 12.7302C9.47073 12.7302 10.7654 11.9816 11.5249 10.8478ZM6.75 6.75C6.75 7.30228 6.30228 7.75 5.75 7.75C5.19772 7.75 4.75 7.30228 4.75 6.75C4.75 6.19772 5.19772 5.75 5.75 5.75C6.30228 5.75 6.75 6.19772 6.75 6.75ZM10.25 7.75C10.8023 7.75 11.25 7.30228 11.25 6.75C11.25 6.19772 10.8023 5.75 10.25 5.75C9.69771 5.75 9.25 6.19772 9.25 6.75C9.25 7.30228 9.69771 7.75 10.25 7.75Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n ></path>\n </g>\n </svg>\n);\nexport const BadEmoji = () => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_53_152)\">\n <path\n clipRule=\"evenodd\"\n d=\"M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM5.75 7.75C6.30228 7.75 6.75 7.30228 6.75 6.75C6.75 6.19772 6.30228 5.75 5.75 5.75C5.19772 5.75 4.75 6.19772 4.75 6.75C4.75 7.30228 5.19772 7.75 5.75 7.75ZM11.25 6.75C11.25 7.30228 10.8023 7.75 10.25 7.75C9.69771 7.75 9.25 7.30228 9.25 6.75C9.25 6.19772 9.69771 5.75 10.25 5.75C10.8023 5.75 11.25 6.19772 11.25 6.75ZM11.5249 11.2622L11.8727 11.7814L10.8342 12.4771L10.4863 11.9578C9.94904 11.1557 9.0363 10.6298 8.00098 10.6298C6.96759 10.6298 6.05634 11.1537 5.51863 11.9533L5.16986 12.4719L4.13259 11.7744L4.48137 11.2558C5.2414 10.1256 6.53398 9.37982 8.00098 9.37982C9.47073 9.37982 10.7654 10.1284 11.5249 11.2622Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n ></path>\n </g>\n </svg>\n);\nexport const VeryBadEmoji = () => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_53_151)\">\n <path\n d=\"M11.841 12.0225C12.7197 12.9324 12.7197 14.4077 11.841 15.3176C10.9623 16.2275 9.53769 16.2275 8.65901 15.3176C7.78033 14.4077 7.78033 12.9324 8.65901 12.0225L10.25 10.375L11.841 12.0225Z\"\n fill=\"#0070F3\"\n ></path>\n <path\n clipRule=\"evenodd\"\n d=\"M8 1.5C4.41015 1.5 1.5 4.41015 1.5 8C1.5 10.9668 3.48826 13.4711 6.20649 14.2496L5.79351 15.6916C2.44895 14.7338 0 11.6539 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8C16 9.4652 15.6054 10.8405 14.9162 12.023L13.6203 11.2677C14.1794 10.3083 14.5 9.19272 14.5 8C14.5 4.41015 11.5899 1.5 8 1.5ZM6.75 6.75C6.75 7.30228 6.30228 7.75 5.75 7.75C5.19772 7.75 4.75 7.30228 4.75 6.75C4.75 6.19772 5.19772 5.75 5.75 5.75C6.30228 5.75 6.75 6.19772 6.75 6.75ZM10.25 7.75C10.8023 7.75 11.25 7.30228 11.25 6.75C11.25 6.19772 10.8023 5.75 10.25 5.75C9.69771 5.75 9.25 6.19772 9.25 6.75C9.25 7.30228 9.69771 7.75 10.25 7.75Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n ></path>\n </g>\n </svg>\n);\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const EyeIcon = (props: any) => (\n <div className={cn(\"hawa-h-5 hawa-w-5\", props.className)}>\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 >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n </div>\n);\nexport const HiddenEyeIcon = (props: any) => (\n <div className={cn(\"hawa-h-5 hawa-w-5\", props.className)}>\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 >\n <path d=\"M9.88 9.88a3 3 0 1 0 4.24 4.24\" />\n <path d=\"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\" />\n <path d=\"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\" />\n <line x1=\"2\" x2=\"22\" y1=\"2\" y2=\"22\" />\n </svg>\n </div>\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 React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const CheckMark = ({ size = \"default\", className }: any) => {\n let sizeStyles: any = {\n default: \"hawa-h-5 hawa-w-5\",\n sm: \"hawa-h-3 hawa-w-3\",\n };\n return (\n <svg\n className={cn(sizeStyles[size], className)}\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n );\n};\n\nexport const UncheckMark = ({ size = \"default\", className }: any) => {\n let sizeStyles: any = {\n default: \"hawa-h-5 hawa-w-5\",\n sm: \"hawa-h-3 hawa-w-3\",\n };\n\n return (\n <svg\n className={cn(sizeStyles[size], className)}\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n 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\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n );\n};\nexport const MenuIcon = () => (\n <svg\n aria-label=\"Menu Button\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth={0}\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n height=\"1.6em\"\n width=\"1.6em\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n ></path>\n </svg>\n);\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { HelperText } from \"../helperText\";\nimport { Label, LabelProps } from \"../label/Label\";\nimport { Skeleton } from \"../skeleton/Skeleton\";\n\nexport type TextFieldTypes = React.InputHTMLAttributes<HTMLInputElement> & {\n isLoading?: boolean;\n isLoadingError?: boolean;\n containerClassName?: string;\n margin?: \"none\" | \"normal\" | \"large\";\n width?: \"small\" | \"normal\" | \"full\" | \"auto\";\n /** The label of the input field */\n label?: any;\n labelProps?: LabelProps;\n hideSeparator?: boolean;\n /** The small red text under the input field to show validation. */\n helperText?: any;\n prefixText?: any;\n forceHideHelperText?: boolean;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /** The icon inside the input field */\n icon?: any;\n /** Boolean to enable/disable editing the input field and using it as a text field */\n preview?: boolean;\n // maxLength?: any;\n iconInside?: React.ReactNode;\n endIcon?: React.ReactNode;\n endIconProps?: { className?: string };\n startIcon?: React.ReactNode;\n placeholder?: React.ReactNode;\n /** Show the count of characters left in the input field. Works along with maxLength prop. */\n showCount?: boolean;\n countPosition?: \"top\" | \"bottom\" | \"center\";\n popup?: boolean;\n popupContent?: React.ReactNode;\n outsidePrefix?: any;\n loadingErrorMesssage?: string;\n};\nexport const Input = forwardRef<HTMLInputElement, TextFieldTypes>(\n (\n {\n margin = \"none\",\n width = \"full\",\n preview = false,\n forceHideHelperText = false,\n labelProps,\n placeholder,\n showCount,\n inputProps,\n countPosition = \"bottom\",\n ...props\n },\n ref,\n ) => {\n let marginStyles = {\n none: \"hawa-mb-0\",\n normal: \"hawa-mb-3\",\n large: \"hawa-mb-5\",\n };\n let widthStyles = {\n small: \"hawa-w-full hawa-max-w-2xs\",\n normal: \"hawa-w-1/2\",\n full: \"hawa-w-full\",\n auto: \"\",\n };\n\n let defaultStyle =\n \"hawa-flex hawa-max-h-fit hawa-h-fit hawa-relative hawa-flex-col hawa-justify-center hawa-gap-0\";\n let defaultInputStyle =\n \"hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm placeholder:hawa-text-muted-foreground\";\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let newValue = e.target.value;\n\n if (props.prefixText) {\n // If newValue is shorter than prefixText, set newValue to prefixText\n if (newValue.length < props.prefixText.length) {\n newValue = props.prefixText;\n } else {\n // Check if newValue starts with a substring of prefixText\n const isSubstring = props.prefixText.startsWith(newValue);\n\n if (!isSubstring && !newValue.startsWith(props.prefixText)) {\n newValue = `${props.prefixText}${newValue}`;\n }\n }\n }\n\n if (props.onChange) {\n const newEvent = { ...e, target: { ...e.target, value: newValue } };\n props.onChange(newEvent as React.ChangeEvent<HTMLInputElement>);\n }\n };\n\n return (\n <div\n className={cn(\n defaultStyle,\n marginStyles[margin],\n widthStyles[width],\n props.containerClassName,\n \"hawa-w-full hawa-gap-2\",\n )}\n >\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n <div className=\"hawa-flex hawa-flex-row hawa-w-full hawa-items-center\">\n {props.outsidePrefix && (\n <span\n className={cn(\n \"hawa-me-2 hawa-opacity-90\",\n !forceHideHelperText && \"hawa-mb-2\",\n )}\n >\n {props.outsidePrefix}\n </span>\n )}\n {props.isLoading ? (\n <div className=\"hawa-pb-2 hawa-w-full\">\n <Skeleton className=\"hawa-h-[40px] hawa-w-full\" />\n </div>\n ) : props.isLoadingError ? (\n <div className=\"hawa-pb-2 hawa-w-full\">\n <Skeleton\n animation=\"none\"\n className=\"hawa-h-[40px] hawa-w-full !hawa-bg-destructive/[0.3]\"\n content={\n <div className=\"hawa-flex hawa-flex-row hawa-gap-2\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"hawa-text-destructive\"\n >\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n <span>\n <span className=\"hawa-text-destructive\">\n {props.loadingErrorMesssage || \"Error loading data\"}\n </span>\n </span>\n </div>\n }\n />\n </div>\n ) : (\n <>\n {!props.hideSeparator && (\n <div\n className={cn(\n \"hawa-absolute hawa-top-[22px] hawa-h-[0.8px] hawa-w-full hawa-bg-gray-200 hawa-transition-all dark:hawa-bg-gray-800\",\n preview ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n ></div>\n )}\n <div className=\"hawa-flex hawa-flex-col hawa-w-full hawa-gap-2\">\n <div className={\"hawa-relative\"}>\n {props.startIcon && (\n <div className=\"hawa-absolute hawa-start-3 hawa-top-1/2 hawa--translate-y-1/2\">\n {props.startIcon}\n </div>\n )}\n {props.endIcon && (\n <div\n className={cn(\n \"hawa-absolute hawa-end-3 hawa-top-1/2 hawa--translate-y-1/2\",\n props.endIconProps?.className,\n )}\n >\n {props.endIcon}\n </div>\n )}\n <input\n required\n dir={props.dir}\n type={props.type}\n value={props.value}\n onChange={handleChange}\n autoComplete={props.autoComplete}\n defaultValue={props.defaultValue}\n placeholder={placeholder}\n disabled={props.disabled || preview}\n style={{ height: 40 }}\n {...inputProps}\n className={cn(\n defaultInputStyle,\n \"focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-0 dark:hawa-text-white\",\n {\n \"hawa-pe-9\": props.endIcon,\n \"hawa-ps-9\": props.startIcon,\n \"hawa-pe-[60px]\": countPosition === \"center\",\n },\n preview &&\n \"hawa-border-transparent hawa-bg-transparent hawa-px-0\",\n inputProps?.className,\n )}\n />\n </div>\n\n {/* Regular helper text */}\n {!forceHideHelperText && (\n <HelperText helperText={props.helperText} />\n )}\n {/* Popover helper text */}\n {!props.disabled && forceHideHelperText && (\n <div\n className={cn(\n \"hawa-absolute hawa-end-0 hawa-top-[47px] hawa-z-20 hawa-translate-y-1/2 hawa-rounded hawa-bg-background hawa-text-start hawa-text-xs hawa-text-helper-color hawa-drop-shadow-md hawa-transition-all\",\n props.helperText\n ? \"hawa-border hawa-p-1\"\n : \"hawa-border-none hawa-p-0\",\n )}\n >\n {props.helperText}\n </div>\n )}\n {/* Character Counter */}\n {showCount && (\n <div\n className={cn(\n \"hawa-absolute hawa-translate-y-1/2 hawa-text-start hawa-text-xs hawa-transition-all\",\n {\n \"hawa-end-0 hawa-top-[62px]\":\n countPosition === \"bottom\",\n \"hawa-bottom-[62px] hawa-end-0\":\n countPosition === \"top\",\n \"hawa-end-2\": countPosition === \"center\",\n },\n )}\n >\n {props.value ? String(props.value).length : 0}/\n {props.maxLength}\n </div>\n )}\n\n {/* Popover helper text */}\n {/* {props.popup && (\n <div\n className={cn(\n \"hawa-absolute hawa-top-[47px] hawa-min-h-fit hawa-w-full hawa-text-xs hawa-text-helper-color hawa-transition-all hawa-text-start hawa-rounded hawa-end-0 hawa-z-20 hawa-drop-shadow-md hawa-bg-background hawa-translate-y-1/2\",\n props.helperText\n ? \"hawa-border hawa-p-1\"\n : \"hawa-border-none hawa-p-0\"\n )}\n >\n {props.popupContent}\n </div>\n )} */}\n </div>\n </>\n )}\n </div>\n </div>\n );\n },\n);\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const HelperText = ({\n helperText,\n}: {\n helperText?: string | React.ReactNode;\n}) => (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all hawa-text-xs\",\n helperText ? \"hawa-opacity-100 hawa-h-4\" : \"hawa-h-0 hawa-opacity-0\",\n )}\n >\n {helperText}\n </p>\n);\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { Tooltip } from \"../tooltip\";\n\nexport type LabelProps = {\n hint?: React.ReactNode;\n hintSide?: PositionType;\n htmlFor?: string;\n required?: boolean;\n};\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & LabelProps\n>(({ className, hint, hintSide, required, children, ...props }, ref) => (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all\">\n <label\n ref={ref}\n className={cn(\n \"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70\",\n className,\n )}\n {...props}\n >\n {children}\n {required && <span className=\"hawa-mx-0.5 hawa-text-red-500\">*</span>}\n </label>\n {hint && (\n <Tooltip\n content={hint}\n side={hintSide}\n triggerProps={{\n tabIndex: -1,\n onClick: (event) => event.preventDefault(),\n }}\n >\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[14px] hawa-w-[14px] hawa-cursor-help\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n </div>\n </Tooltip>\n )}\n </div>\n));\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import React from \"react\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n size?: \"default\" | \"small\" | \"large\";\n }\n>(({ className, sideOffset = 4, size = \"default\", ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"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\",\n {\n \"hawa-text-xs\": size === \"small\",\n \"hawa-text-xl\": size === \"large\",\n },\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst TooltipArrow = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Arrow>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Arrow ref={ref} className={cn(className)} {...props} />\n));\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\ntype TooltipTypes = {\n /** Controls the open state of the tooltip. */\n open?: any;\n /** Specifies the side where the tooltip will appear. */\n side?: PositionType;\n /** Content to be displayed within the tooltip. */\n content?: any;\n /** Elements to which the tooltip is anchored. */\n children?: any;\n /** Sets the default open state of the tooltip. */\n defaultOpen?: any;\n /** Event handler for open state changes. */\n onOpenChange?: any;\n /** Duration of the delay before the tooltip appears. */\n delayDuration?: any;\n /** Size of the tooltip. */\n size?: \"default\" | \"small\" | \"large\";\n /** Disables the tooltip. */\n disabled?: boolean;\n triggerProps?: TooltipPrimitive.TooltipTriggerProps;\n contentProps?: TooltipPrimitive.TooltipContentProps;\n providerProps?: TooltipPrimitive.TooltipProps;\n};\n\nconst Tooltip: React.FunctionComponent<TooltipTypes> = ({\n side,\n size,\n open,\n content,\n children,\n disabled,\n defaultOpen,\n onOpenChange,\n triggerProps,\n contentProps,\n providerProps,\n delayDuration = 300,\n ...props\n}) => {\n return (\n <TooltipPrimitive.TooltipProvider\n delayDuration={delayDuration}\n {...providerProps}\n >\n <TooltipPrimitive.Root\n open={!disabled && open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n {...props}\n >\n <TooltipPrimitive.Trigger {...triggerProps}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipContent\n size={size}\n side={side}\n align=\"center\"\n {...contentProps}\n style={{\n ...contentProps?.style,\n maxWidth: \"var(--radix-tooltip-content-available-width)\",\n maxHeight: \"var(--radix-tooltip-content-available-height)\",\n }}\n >\n {content}\n </TooltipContent>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.TooltipProvider>\n );\n};\n\nexport { Tooltip };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n animation?: \"none\" | \"pulse\" | \"shimmer\";\n content?: any;\n fade?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\nfunction Skeleton({\n className,\n content,\n animation = \"pulse\",\n fade,\n ...props\n}: SkeletonProps) {\n const animationStyles = {\n none: \"hawa-rounded hawa-bg-muted\",\n pulse: \"hawa-animate-pulse hawa-rounded hawa-bg-muted\",\n shimmer:\n \"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\",\n };\n const fadeStyle = {\n bottom: \"hawa-mask-fade-bottom\",\n top: \"hawa-mask-fade-top\",\n right: \"hawa-mask-fade-right\",\n left: \"hawa-mask-fade-left \",\n };\n\n return (\n <div\n className={cn(\n animationStyles[animation],\n content &&\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n fade && fadeStyle[fade],\n className,\n )}\n {...props}\n >\n {content && content}\n </div>\n );\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n container?: HTMLElement | null;\n }\n>(\n (\n { className, align = \"center\", sideOffset = 4, container, ...props },\n ref,\n ) => (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"dark:dark-shadow hawa-z-50 hawa-rounded hawa-border hawa-bg-popover 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\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n ),\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\ninterface PopoverProps {\n side?: PositionType;\n align?: \"start\" | \"center\" | \"end\";\n trigger?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n sideOffset?: number;\n disableTrigger?: any;\n width?: \"trigger\" | \"default\";\n open?: boolean;\n contentProps?: PopoverPrimitive.PopoverContentProps;\n triggerProps?: PopoverPrimitive.PopoverTriggerProps;\n}\n\ntype HawaPopoverTypes = PopoverProps &\n React.ComponentProps<typeof PopoverPrimitive.Root>;\n\nconst Popover: React.FC<HawaPopoverTypes> = ({\n trigger,\n children,\n className,\n align = \"center\",\n side,\n sideOffset = 4,\n open,\n width = \"default\",\n disableTrigger,\n contentProps,\n triggerProps,\n ...props\n}) => {\n let widthStyles = {\n trigger: \"var(--radix-popover-trigger-width)\",\n default: \"auto\",\n };\n\n return (\n <PopoverPrimitive.Root open={open} {...props}>\n <PopoverPrimitive.Trigger\n className=\"hawa-w-full\"\n disabled={disableTrigger}\n {...triggerProps}\n >\n {trigger}\n </PopoverPrimitive.Trigger>\n <PopoverContent\n side={side}\n className={className}\n align={align}\n sideOffset={sideOffset}\n style={{\n width: widthStyles[width],\n maxWidth: \"var(--radix-popover-content-available-width)\",\n maxHeight: \"var(--radix-popover-content-available-height)\",\n }}\n {...contentProps}\n >\n {children}\n </PopoverContent>\n </PopoverPrimitive.Root>\n );\n};\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\nconst PopoverPortal = PopoverPrimitive.Portal;\nconst PopoverRoot = PopoverPrimitive.Root;\n\nexport { Popover, PopoverPortal, PopoverRoot, PopoverContent, PopoverTrigger };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,gBAA2C;;;ACA3C,mBAAkB;;;ACAlB,IAAAC,gBAAkB;;;ACAlB,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ADDO,IAAM,UAAU,CAAC,UACtB,8BAAAC,QAAA,cAAC,SAAI,WAAW,GAAG,qBAAqB,MAAM,SAAS,KACrD,8BAAAA,QAAA;AAAA,EAAC;AAAA;AAAA,IACC,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA;AAAA,EAEf,8BAAAA,QAAA,cAAC,UAAK,GAAE,gDAA+C;AAAA,EACvD,8BAAAA,QAAA,cAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI;AAChC,CACF;AAEK,IAAM,gBAAgB,CAAC,UAC5B,8BAAAA,QAAA,cAAC,SAAI,WAAW,GAAG,qBAAqB,MAAM,SAAS,KACrD,8BAAAA,QAAA;AAAA,EAAC;AAAA;AAAA,IACC,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA;AAAA,EAEf,8BAAAA,QAAA,cAAC,UAAK,GAAE,kCAAiC;AAAA,EACzC,8BAAAA,QAAA,cAAC,UAAK,GAAE,gFAA+E;AAAA,EACvF,8BAAAA,QAAA,cAAC,UAAK,GAAE,0EAAyE;AAAA,EACjF,8BAAAA,QAAA,cAAC,UAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK;AACtC,CACF;;;AEpCF,IAAAC,gBAAkB;AAIX,IAAM,YAAY,CAAC,EAAE,OAAO,WAAW,UAAU,MAAW;AACjE,MAAI,aAAkB;AAAA,IACpB,SAAS;AAAA,IACT,IAAI;AAAA,EACN;AACA,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,WAAW,IAAI,GAAG,SAAS;AAAA,MACzC,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,SAAQ;AAAA;AAAA,IAER,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA,QACF,UAAS;AAAA;AAAA,IACV;AAAA,EACH;AAEJ;AAEO,IAAM,cAAc,CAAC,EAAE,OAAO,WAAW,UAAU,MAAW;AACnE,MAAI,aAAkB;AAAA,IACpB,SAAS;AAAA,IACT,IAAI;AAAA,EACN;AAEA,SACE,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,WAAW,IAAI,GAAG,SAAS;AAAA,MACzC,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,SAAQ;AAAA;AAAA,IAER,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA,QACF,UAAS;AAAA;AAAA,IACV;AAAA,EACH;AAEJ;;;AC7CA,IAAAC,gBAAkC;;;ACAlC,IAAAC,gBAAkB;AAIX,IAAM,aAAa,CAAC;AAAA,EACzB;AACF,MAGE,8BAAAC,QAAA;AAAA,EAAC;AAAA;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA,aAAa,8BAA8B;AAAA,IAC7C;AAAA;AAAA,EAEC;AACH;;;AChBF,IAAAC,SAAuB;;;ACAvB,IAAAC,gBAAkB;AAElB,uBAAkC;AAKlC,IAAM,iBAAiB,cAAAC,QAAM,WAK3B,CAAC,EAAE,WAAW,aAAa,GAAG,OAAO,WAAW,GAAG,MAAM,GAAG,QAC5D,8BAAAA,QAAA;AAAA,EAAkB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,QACE,gBAAgB,SAAS;AAAA,QACzB,gBAAgB,SAAS;AAAA,MAC3B;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAe,cAA+B,yBAAQ;AAEtD,IAAM,eAAe,cAAAA,QAAM,WAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,8BAAAA,QAAA,cAAkB,wBAAjB,EAAuB,KAAU,WAAW,GAAG,SAAS,GAAI,GAAG,OAAO,CACxE;AACD,aAAa,cAA+B,uBAAM;AA0BlD,IAAM,UAAiD,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB,GAAG;AACL,MAAM;AACJ,SACE,8BAAAA,QAAA;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC;AAAA,MACC,GAAG;AAAA;AAAA,IAEJ,8BAAAA,QAAA;AAAA,MAAkB;AAAA,MAAjB;AAAA,QACC,MAAM,CAAC,YAAY;AAAA,QACnB;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ,8BAAAA,QAAA,cAAkB,0BAAjB,EAA0B,GAAG,gBAC3B,QACH;AAAA,MACA,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,OAAM;AAAA,UACL,GAAG;AAAA,UACJ,OAAO;AAAA,YACL,GAAG,6CAAc;AAAA,YACjB,UAAU;AAAA,YACV,WAAW;AAAA,UACb;AAAA;AAAA,QAEC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEJ;;;AD3FA,IAAM,QAAc,kBAGlB,CAAC,EAAE,WAAW,MAAM,UAAU,UAAU,UAAU,GAAG,MAAM,GAAG,QAC9D,qCAAC,SAAI,WAAU,8EACb;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AAAA,EAEH;AAAA,EACA,YAAY,qCAAC,UAAK,WAAU,mCAAgC,GAAC;AAChE,GACC,QACC;AAAA,EAAC;AAAA;AAAA,IACC,SAAS;AAAA,IACT,MAAM;AAAA,IACN,cAAc;AAAA,MACZ,UAAU;AAAA,MACV,SAAS,CAAC,UAAU,MAAM,eAAe;AAAA,IAC3C;AAAA;AAAA,EAEA,qCAAC,aACC;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA;AAAA,IAEf,qCAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,IAC/B,qCAAC,UAAK,GAAE,wCAAuC;AAAA,IAC/C,qCAAC,UAAK,GAAE,cAAa;AAAA,EACvB,CACF;AACF,CAEJ,CACD;AAED,MAAM,cAAc;;;AE7DpB,IAAAC,gBAAkB;AAWlB,SAAS,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,GAAkB;AAChB,QAAM,kBAAkB;AAAA,IACtB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SACE;AAAA,EACJ;AACA,QAAM,YAAY;AAAA,IAChB,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAEA,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT,gBAAgB,SAAS;AAAA,QACzB,WACE;AAAA,QACF,QAAQ,UAAU,IAAI;AAAA,QACtB;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,IAEH,WAAW;AAAA,EACd;AAEJ;;;AJJO,IAAM,YAAQ;AAAA,EACnB,CACE;AAAA,IACE,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,sBAAsB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,GACA,QACG;AAxDP;AAyDI,QAAI,eAAe;AAAA,MACjB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,cAAc;AAAA,MAChB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAEA,QAAI,eACF;AACF,QAAI,oBACF;AAEF,UAAM,eAAe,CAAC,MAA2C;AAC/D,UAAI,WAAW,EAAE,OAAO;AAExB,UAAI,MAAM,YAAY;AAEpB,YAAI,SAAS,SAAS,MAAM,WAAW,QAAQ;AAC7C,qBAAW,MAAM;AAAA,QACnB,OAAO;AAEL,gBAAM,cAAc,MAAM,WAAW,WAAW,QAAQ;AAExD,cAAI,CAAC,eAAe,CAAC,SAAS,WAAW,MAAM,UAAU,GAAG;AAC1D,uBAAW,GAAG,MAAM,UAAU,GAAG,QAAQ;AAAA,UAC3C;AAAA,QACF;AAAA,MACF;AAEA,UAAI,MAAM,UAAU;AAClB,cAAM,WAAW,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,QAAQ,OAAO,SAAS,EAAE;AAClE,cAAM,SAAS,QAA+C;AAAA,MAChE;AAAA,IACF;AAEA,WACE,8BAAAC,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,aAAa,MAAM;AAAA,UACnB,YAAY,KAAK;AAAA,UACjB,MAAM;AAAA,UACN;AAAA,QACF;AAAA;AAAA,MAEC,MAAM,SAAS,8BAAAA,QAAA,cAAC,SAAO,GAAG,cAAa,MAAM,KAAM;AAAA,MACpD,8BAAAA,QAAA,cAAC,SAAI,WAAU,2DACZ,MAAM,iBACL,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,CAAC,uBAAuB;AAAA,UAC1B;AAAA;AAAA,QAEC,MAAM;AAAA,MACT,GAED,MAAM,YACL,8BAAAA,QAAA,cAAC,SAAI,WAAU,2BACb,8BAAAA,QAAA,cAAC,YAAS,WAAU,6BAA4B,CAClD,IACE,MAAM,iBACR,8BAAAA,QAAA,cAAC,SAAI,WAAU,2BACb,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,WAAU;AAAA,UACV,SACE,8BAAAA,QAAA,cAAC,SAAI,WAAU,wCACb,8BAAAA,QAAA;AAAA,YAAC;AAAA;AAAA,cACC,OAAM;AAAA,cACN,OAAM;AAAA,cACN,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAO;AAAA,cACP,aAAY;AAAA,cACZ,eAAc;AAAA,cACd,gBAAe;AAAA,cACf,WAAU;AAAA;AAAA,YAEV,8BAAAA,QAAA,cAAC,UAAK,GAAE,4EAA2E;AAAA,YACnF,8BAAAA,QAAA,cAAC,UAAK,GAAE,WAAU;AAAA,YAClB,8BAAAA,QAAA,cAAC,UAAK,GAAE,cAAa;AAAA,UACvB,GACA,8BAAAA,QAAA,cAAC,cACC,8BAAAA,QAAA,cAAC,UAAK,WAAU,2BACb,MAAM,wBAAwB,oBACjC,CACF,CACF;AAAA;AAAA,MAEJ,CACF,IAEA,8BAAAA,QAAA,4BAAAA,QAAA,gBACG,CAAC,MAAM,iBACN,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,UAAU,qBAAqB;AAAA,UACjC;AAAA;AAAA,MACD,GAEH,8BAAAA,QAAA,cAAC,SAAI,WAAU,oDACb,8BAAAA,QAAA,cAAC,SAAI,WAAW,mBACb,MAAM,aACL,8BAAAA,QAAA,cAAC,SAAI,WAAU,mEACZ,MAAM,SACT,GAED,MAAM,WACL,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,aACA,WAAM,iBAAN,mBAAoB;AAAA,UACtB;AAAA;AAAA,QAEC,MAAM;AAAA,MACT,GAEF,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAQ;AAAA,UACR,KAAK,MAAM;AAAA,UACX,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,UAAU;AAAA,UACV,cAAc,MAAM;AAAA,UACpB,cAAc,MAAM;AAAA,UACpB;AAAA,UACA,UAAU,MAAM,YAAY;AAAA,UAC5B,OAAO,EAAE,QAAQ,GAAG;AAAA,UACnB,GAAG;AAAA,UACJ,WAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,cACE,aAAa,MAAM;AAAA,cACnB,aAAa,MAAM;AAAA,cACnB,kBAAkB,kBAAkB;AAAA,YACtC;AAAA,YACA,WACE;AAAA,YACF,yCAAY;AAAA,UACd;AAAA;AAAA,MACF,CACF,GAGC,CAAC,uBACA,8BAAAA,QAAA,cAAC,cAAW,YAAY,MAAM,YAAY,GAG3C,CAAC,MAAM,YAAY,uBAClB,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,MAAM,aACF,yBACA;AAAA,UACN;AAAA;AAAA,QAEC,MAAM;AAAA,MACT,GAGD,aACC,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA;AAAA,cACE,8BACE,kBAAkB;AAAA,cACpB,iCACE,kBAAkB;AAAA,cACpB,cAAc,kBAAkB;AAAA,YAClC;AAAA,UACF;AAAA;AAAA,QAEC,MAAM,QAAQ,OAAO,MAAM,KAAK,EAAE,SAAS;AAAA,QAAE;AAAA,QAC7C,MAAM;AAAA,MACT,CAgBJ,CACF,CAEJ;AAAA,IACF;AAAA,EAEJ;AACF;;;AKzQA,IAAAC,SAAuB;AAEvB,uBAAkC;AAKlC,IAAM,iBAAuB;AAAA,EAM3B,CACE,EAAE,WAAW,QAAQ,UAAU,aAAa,GAAG,WAAW,GAAG,MAAM,GACnE,QAEA,qCAAkB,yBAAjB,EAAwB,aACvB;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,CACF;AAEJ;AACA,eAAe,cAA+B,yBAAQ;AAmBtD,IAAM,UAAsC,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,cAAc;AAAA,IAChB,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAEA,SACE,qCAAkB,uBAAjB,EAAsB,MAAa,GAAG,SACrC;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC,WAAU;AAAA,MACV,UAAU;AAAA,MACT,GAAG;AAAA;AAAA,IAEH;AAAA,EACH,GACA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,QACL,OAAO,YAAY,KAAK;AAAA,QACxB,UAAU;AAAA,QACV,WAAW;AAAA,MACb;AAAA,MACC,GAAG;AAAA;AAAA,IAEH;AAAA,EACH,CACF;AAEJ;;;AVrFO,IAAM,4BAET,CAAC,EAAE,SAAS,MAAM;AACpB,QAAM,iBAAiB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,iBAAsB;AAAA,IAC1B,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,EACjB;AACA,QAAM,uBAAuB,eAAe,QAAQ;AACpD,QAAM,QAAQ;AAAA,IACZ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,EACjB,EAAE,oBAAoB;AAEtB,SACE,8BAAAC,QAAA,cAAC,SAAI,WAAU,oEACb,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,eAAe,oBAAoB,CAAC;AAAA,MAClD,OAAO,EAAE,MAAM;AAAA;AAAA,EACjB,CACF;AAEJ;AAOO,IAAM,gBAA6C,CAAC;AAAA,EACzD;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,CAAC,YAAY,aAAa,QAAI,wBAAS,EAAE;AAC/C,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,wBAAS,KAAK;AAC1D,QAAM,CAAC,YAAY,aAAa,QAAI,wBAAS,CAAC;AAC9C,QAAM,CAAC,iBAAiB,kBAAkB,QAAI,wBAAS,KAAK;AAE5D,QAAM,CAAC,mBAAmB,oBAAoB,QAAI,wBAAS,KAAK;AAChE,QAAM,CAAC,mBAAmB,oBAAoB,QAAI,wBAAS,KAAK;AAChE,QAAM,CAAC,wBAAwB,yBAAyB,QAAI,wBAAS,KAAK;AAC1E,QAAM,CAAC,sBAAsB,uBAAuB,QAAI,wBAAS,KAAK;AACtE,QAAM,CAAC,sBAAsB,uBAAuB,QAAI,wBAAS,KAAK;AAEtE,+BAAU,MAAM;AAEd,UAAM,oBAAoB,MAAM;AAC9B,UAAI,gBAAgB;AACpB,UAAI,kBAAmB,kBAAiB;AACxC,UAAI,kBAAmB,kBAAiB;AACxC,UAAI,uBAAwB,kBAAiB;AAC7C,UAAI,qBAAsB,kBAAiB;AAC3C,UAAI,qBAAsB,kBAAiB;AAC3C,aAAO;AAAA,IACT;AAEA,UAAM,uBAAuB,kBAAkB;AAC/C,kBAAc,oBAAoB;AAAA,EACpC,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,oBAAoB,CAAC,UAA+C;AACxE,UAAM,cAAc,MAAM,OAAO;AACjC,QAAI,MAAM,UAAU;AAClB,YAAM,SAAS,KAAK;AAAA,IACtB;AACA,kBAAc,WAAW;AAGzB,yBAAqB,YAAY,UAAU,CAAC;AAC5C,yBAAqB,KAAK,KAAK,WAAW,CAAC;AAC3C,8BAA0B,yBAAyB,KAAK,WAAW,CAAC;AACpE,4BAAwB,QAAQ,KAAK,WAAW,CAAC;AACjD,4BAAwB,QAAQ,KAAK,WAAW,CAAC;AAAA,EACnD;AAGA,QAAM,mBAAmB,MAAM;AAC7B,QAAI,CAAC,aAAa;AAChB,wBAAkB,IAAI;AAAA,IACxB;AAAA,EACF;AAGA,QAAM,kBAAkB,MAAM;AAC5B,sBAAkB,KAAK;AAAA,EACzB;AAEA,QAAM,mBAAmB,CAAC,UACxB,QACI,0FACA;AAEN,SACE,8BAAAA,QAAA,cAAC,aACC,8BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,cAAc;AAAA,MACd,cAAc,EAAE,SAAS,KAAK;AAAA,MAC9B,cAAc,EAAE,iBAAiB,CAAC,MAAW,EAAE,eAAe,EAAE;AAAA,MAChE,SACE,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,CAAC,MAAM;AACd,cAAE,eAAe;AACjB,gBAAI,CAAC,aAAa;AAChB,gCAAkB,IAAI;AAAA,YACxB;AAAA,UACF;AAAA;AAAA,QAEA,8BAAAA,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,WAAU;AAAA,YACV,OAAO;AAAA,YACP,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,MAAM,kBAAkB,SAAS;AAAA,YACjC,SACE,8BAAAA,QAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS,MAAM,mBAAmB,CAAC,eAAe;AAAA;AAAA,cAEjD,kBACC,8BAAAA,QAAA,cAAC,WAAQ,WAAU,sBAAqB,IAExC,8BAAAA,QAAA,cAAC,iBAAc,WAAU,sBAAqB;AAAA,cAC7C;AAAA,YACL;AAAA;AAAA,QAEJ;AAAA,MACF;AAAA;AAAA,IAGF,8BAAAA,QAAA,cAAC,SAAI,WAAU,2BACb,8BAAAA,QAAA,cAAC,QAAG,WAAU,2BACZ,8BAAAA,QAAA,cAAC,QAAG,WAAW,iBAAiB,iBAAiB,KAC9C,oBACC,8BAAAA,QAAA,cAAC,aAAU,MAAK,MAAK,IAErB,8BAAAA,QAAA,cAAC,eAAY,MAAK,MAAK,GACvB,4BAEJ,GACA,8BAAAA,QAAA,cAAC,QAAG,WAAW,iBAAiB,iBAAiB,KAC9C,oBACC,8BAAAA,QAAA,cAAC,aAAU,MAAK,MAAK,IAErB,8BAAAA,QAAA,cAAC,eAAY,MAAK,MAAK,GACvB,mBAEJ,GACA,8BAAAA,QAAA,cAAC,QAAG,WAAW,iBAAiB,sBAAsB,KACnD,yBACC,8BAAAA,QAAA,cAAC,aAAU,MAAK,MAAK,IAErB,8BAAAA,QAAA,cAAC,eAAY,MAAK,MAAK,GACvB,8BAEJ,GACA,8BAAAA,QAAA,cAAC,QAAG,WAAW,iBAAiB,oBAAoB,KACjD,uBACC,8BAAAA,QAAA,cAAC,aAAU,MAAK,MAAK,IAErB,8BAAAA,QAAA,cAAC,eAAY,MAAK,MAAK,GACvB,6BAEJ,GACA,8BAAAA,QAAA,cAAC,QAAG,WAAW,iBAAiB,oBAAoB,KACjD,uBACC,8BAAAA,QAAA,cAAC,aAAU,MAAK,MAAK,IAErB,8BAAAA,QAAA,cAAC,eAAY,MAAK,MAAK,GACvB,6BAEJ,CACF,CACF;AAAA,EACF,GACA,8BAAAA,QAAA,cAAC,6BAA0B,UAAU,YAAY,CACnD;AAEJ;","names":["import_react","import_react","React","import_react","React","import_react","import_react","React","React","import_react","React","import_react","React","React","React","React"]}
|
1
|
+
{"version":3,"sources":["../../elements/passwordInput/index.ts","../../elements/passwordInput/PasswordInput.tsx","../../icons/Emojis.tsx","../../icons/InputIcons.tsx","../../util/index.ts","../../icons/CommonIcons.tsx","../../elements/input/Input.tsx","../../elements/helperText/HelperText.tsx","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/skeleton/Skeleton.tsx","../../elements/popover/Popover.tsx"],"sourcesContent":["export * from \"./PasswordInput\";\n","import React, { useEffect, useState } from \"react\";\n\nimport { CheckMark, EyeIcon, HiddenEyeIcon, UncheckMark } from \"../../icons\";\nimport { Input } from \"../input\";\nimport { Popover } from \"../popover\";\n\ntype PasswordInputIndicatorProps = {\n strength?: any;\n};\nexport const PasswordStrengthIndicator: React.FC<\n PasswordInputIndicatorProps\n> = ({ strength }) => {\n const strengthLevels = [\n \"none\",\n \"very-weak\",\n \"weak\",\n \"medium\",\n \"strong\",\n \"very-strong\",\n ];\n const strengthColors: any = {\n none: \"hawa-bg-red-700\",\n \"very-weak\": \"hawa-bg-red-600\",\n weak: \"hawa-bg-red-500\",\n medium: \"hawa-bg-yellow-500\",\n strong: \"hawa-bg-green-400\",\n \"very-strong\": \"hawa-bg-green-600\",\n };\n const currentStrengthLevel = strengthLevels[strength];\n const width = {\n none: \"0%\",\n \"very-weak\": \"20%\",\n weak: \"40%\",\n medium: \"60%\",\n strong: \"80%\",\n \"very-strong\": \"100%\",\n }[currentStrengthLevel];\n\n return (\n <div className=\"hawa-mt-0.5 hawa-h-2 hawa-w-full hawa-rounded hawa-bg-gray-200\">\n <div\n className={`${strengthColors[currentStrengthLevel]} hawa-h-full hawa-rounded hawa-transition-all hawa-duration-300`}\n style={{ width }}\n />\n </div>\n );\n};\n\ntype PasswordInputType = {\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n hidePopover?: boolean;\n};\n\nexport const PasswordInput: React.FC<PasswordInputType> = ({\n hidePopover,\n ...props\n}) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isInputFocused, setIsInputFocused] = useState(false);\n const [currentStr, setCurrentStr] = useState(0);\n const [passwordVisible, setPasswordVisible] = useState(false);\n // States for each criterion\n const [lengthCriteriaMet, setLengthCriteriaMet] = useState(false);\n const [numberCriteriaMet, setNumberCriteriaMet] = useState(false);\n const [specialCharCriteriaMet, setSpecialCharCriteriaMet] = useState(false);\n const [lowercaseCriteriaMet, setLowercaseCriteriaMet] = useState(false);\n const [uppercaseCriteriaMet, setUppercaseCriteriaMet] = useState(false);\n\n useEffect(() => {\n // Calculate strength based on the criteria met\n const calculateStrength = () => {\n let strengthScore = 0;\n if (lengthCriteriaMet) strengthScore += 1;\n if (numberCriteriaMet) strengthScore += 1;\n if (specialCharCriteriaMet) strengthScore += 1;\n if (lowercaseCriteriaMet) strengthScore += 1;\n if (uppercaseCriteriaMet) strengthScore += 1;\n return strengthScore;\n };\n\n const currentStrengthScore = calculateStrength();\n setCurrentStr(currentStrengthScore);\n }, [inputValue]);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newPassword = event.target.value;\n if (props.onChange) {\n props.onChange(event);\n }\n setInputValue(newPassword);\n\n // Update each criterion state based on the new password\n setLengthCriteriaMet(newPassword.length >= 8);\n setNumberCriteriaMet(/\\d/.test(newPassword));\n setSpecialCharCriteriaMet(/[!@#$%^&*(),.?\":{}|<>]/.test(newPassword));\n setLowercaseCriteriaMet(/[a-z]/.test(newPassword));\n setUppercaseCriteriaMet(/[A-Z]/.test(newPassword));\n };\n\n // Event handler for when the input gains focus\n const handleInputFocus = () => {\n if (!hidePopover) {\n setIsInputFocused(true);\n }\n };\n\n // Event handler for when the input loses focus\n const handleInputBlur = () => {\n setIsInputFocused(false);\n };\n\n const getCriteriaClass = (isMet: boolean) =>\n isMet\n ? \"hawa-flex hawa-flex-row hawa-gap-2 hawa-text-sm hawa-items-center hawa-text-green-500\"\n : \"hawa-flex hawa-flex-row hawa-gap-2 hawa-text-sm hawa-items-center hawa-text-red-600\";\n\n return (\n <div>\n <Popover\n width=\"trigger\"\n sideOffset={20}\n open={isInputFocused}\n onOpenChange={setIsInputFocused}\n triggerProps={{ asChild: true }}\n contentProps={{ onOpenAutoFocus: (e: any) => e.preventDefault() }}\n trigger={\n <div\n onClick={(e) => {\n e.preventDefault();\n if (!hidePopover) {\n setIsInputFocused(true);\n }\n }}\n >\n <Input\n width=\"full\"\n className=\"hawa-w-full\"\n label={\"test\"}\n onChange={handleInputChange}\n onFocus={handleInputFocus} // Set the input as focused\n onBlur={handleInputBlur}\n type={passwordVisible ? \"text\" : \"password\"}\n endIcon={\n <div\n className=\"hawa-cursor-pointer\"\n onClick={() => setPasswordVisible(!passwordVisible)}\n >\n {passwordVisible ? (\n <EyeIcon className=\"hawa-text-gray-500\" />\n ) : (\n <HiddenEyeIcon className=\"hawa-text-gray-500\" />\n )}{\" \"}\n </div>\n }\n />\n </div>\n }\n >\n <div className=\"hawa-rounded hawa-p-2\">\n <ul className=\"hawa-rounded hawa-p-2\">\n <li className={getCriteriaClass(lengthCriteriaMet)}>\n {lengthCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 8 characters long\n </li>\n <li className={getCriteriaClass(numberCriteriaMet)}>\n {numberCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 1 number\n </li>\n <li className={getCriteriaClass(specialCharCriteriaMet)}>\n {specialCharCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 1 special character\n </li>\n <li className={getCriteriaClass(lowercaseCriteriaMet)}>\n {lowercaseCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 1 lowercase letter\n </li>\n <li className={getCriteriaClass(uppercaseCriteriaMet)}>\n {uppercaseCriteriaMet ? (\n <CheckMark size=\"sm\" />\n ) : (\n <UncheckMark size=\"sm\" />\n )}\n At least 1 uppercase letter\n </li>\n </ul>\n </div>\n </Popover>\n <PasswordStrengthIndicator strength={currentStr} />\n </div>\n );\n};\n","import React from \"react\";\n\nexport const VeryGoodEmoji = () => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_53_166)\">\n <path\n clipRule=\"evenodd\"\n d=\"M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM4.5 8.97498H3.875V9.59998C3.875 11.4747 5.81046 12.8637 7.99817 12.8637C10.1879 12.8637 12.125 11.4832 12.125 9.59998V8.97498H11.5H4.5ZM7.99817 11.6137C6.59406 11.6137 5.63842 10.9482 5.28118 10.225H10.7202C10.3641 10.9504 9.40797 11.6137 7.99817 11.6137Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n ></path>\n <path\n clipRule=\"evenodd\"\n d=\"M6.15295 4.92093L5.375 3.5L4.59705 4.92093L3 5.21885L4.11625 6.39495L3.90717 8L5.375 7.30593L6.84283 8L6.63375 6.39495L7.75 5.21885L6.15295 4.92093ZM11.403 4.92093L10.625 3.5L9.84705 4.92093L8.25 5.21885L9.36625 6.39495L9.15717 8L10.625 7.30593L12.0928 8L11.8837 6.39495L13 5.21885L11.403 4.92093Z\"\n fill=\"#FF990A\"\n fillRule=\"evenodd\"\n ></path>\n </g>\n </svg>\n);\nexport const GoodEmoji = () => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_53_167)\">\n <path\n clipRule=\"evenodd\"\n d=\"M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM11.5249 10.8478L11.8727 10.3286L10.8342 9.6329L10.4863 10.1522C9.94904 10.9543 9.0363 11.4802 8.00098 11.4802C6.96759 11.4802 6.05634 10.9563 5.51863 10.1567L5.16986 9.63804L4.13259 10.3356L4.48137 10.8542C5.2414 11.9844 6.53398 12.7302 8.00098 12.7302C9.47073 12.7302 10.7654 11.9816 11.5249 10.8478ZM6.75 6.75C6.75 7.30228 6.30228 7.75 5.75 7.75C5.19772 7.75 4.75 7.30228 4.75 6.75C4.75 6.19772 5.19772 5.75 5.75 5.75C6.30228 5.75 6.75 6.19772 6.75 6.75ZM10.25 7.75C10.8023 7.75 11.25 7.30228 11.25 6.75C11.25 6.19772 10.8023 5.75 10.25 5.75C9.69771 5.75 9.25 6.19772 9.25 6.75C9.25 7.30228 9.69771 7.75 10.25 7.75Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n ></path>\n </g>\n </svg>\n);\nexport const BadEmoji = () => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_53_152)\">\n <path\n clipRule=\"evenodd\"\n d=\"M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM5.75 7.75C6.30228 7.75 6.75 7.30228 6.75 6.75C6.75 6.19772 6.30228 5.75 5.75 5.75C5.19772 5.75 4.75 6.19772 4.75 6.75C4.75 7.30228 5.19772 7.75 5.75 7.75ZM11.25 6.75C11.25 7.30228 10.8023 7.75 10.25 7.75C9.69771 7.75 9.25 7.30228 9.25 6.75C9.25 6.19772 9.69771 5.75 10.25 5.75C10.8023 5.75 11.25 6.19772 11.25 6.75ZM11.5249 11.2622L11.8727 11.7814L10.8342 12.4771L10.4863 11.9578C9.94904 11.1557 9.0363 10.6298 8.00098 10.6298C6.96759 10.6298 6.05634 11.1537 5.51863 11.9533L5.16986 12.4719L4.13259 11.7744L4.48137 11.2558C5.2414 10.1256 6.53398 9.37982 8.00098 9.37982C9.47073 9.37982 10.7654 10.1284 11.5249 11.2622Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n ></path>\n </g>\n </svg>\n);\nexport const VeryBadEmoji = () => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_53_151)\">\n <path\n d=\"M11.841 12.0225C12.7197 12.9324 12.7197 14.4077 11.841 15.3176C10.9623 16.2275 9.53769 16.2275 8.65901 15.3176C7.78033 14.4077 7.78033 12.9324 8.65901 12.0225L10.25 10.375L11.841 12.0225Z\"\n fill=\"#0070F3\"\n ></path>\n <path\n clipRule=\"evenodd\"\n d=\"M8 1.5C4.41015 1.5 1.5 4.41015 1.5 8C1.5 10.9668 3.48826 13.4711 6.20649 14.2496L5.79351 15.6916C2.44895 14.7338 0 11.6539 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8C16 9.4652 15.6054 10.8405 14.9162 12.023L13.6203 11.2677C14.1794 10.3083 14.5 9.19272 14.5 8C14.5 4.41015 11.5899 1.5 8 1.5ZM6.75 6.75C6.75 7.30228 6.30228 7.75 5.75 7.75C5.19772 7.75 4.75 7.30228 4.75 6.75C4.75 6.19772 5.19772 5.75 5.75 5.75C6.30228 5.75 6.75 6.19772 6.75 6.75ZM10.25 7.75C10.8023 7.75 11.25 7.30228 11.25 6.75C11.25 6.19772 10.8023 5.75 10.25 5.75C9.69771 5.75 9.25 6.19772 9.25 6.75C9.25 7.30228 9.69771 7.75 10.25 7.75Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n ></path>\n </g>\n </svg>\n);\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const EyeIcon = (props: any) => (\n <div className={cn(\"hawa-h-5 hawa-w-5\", props.className)}>\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 >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n </div>\n);\nexport const HiddenEyeIcon = (props: any) => (\n <div className={cn(\"hawa-h-5 hawa-w-5\", props.className)}>\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 >\n <path d=\"M9.88 9.88a3 3 0 1 0 4.24 4.24\" />\n <path d=\"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\" />\n <path d=\"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\" />\n <line x1=\"2\" x2=\"22\" y1=\"2\" y2=\"22\" />\n </svg>\n </div>\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 React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const CheckMark = ({ size = \"default\", className }: any) => {\n let sizeStyles: any = {\n default: \"hawa-h-5 hawa-w-5\",\n sm: \"hawa-h-3 hawa-w-3\",\n };\n return (\n <svg\n className={cn(sizeStyles[size], className)}\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n );\n};\n\nexport const UncheckMark = ({ size = \"default\", className }: any) => {\n let sizeStyles: any = {\n default: \"hawa-h-5 hawa-w-5\",\n sm: \"hawa-h-3 hawa-w-3\",\n };\n\n return (\n <svg\n className={cn(sizeStyles[size], className)}\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n 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\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n );\n};\nexport const MenuIcon = () => (\n <svg\n aria-label=\"Menu Button\"\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth={0}\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n height=\"1.6em\"\n width=\"1.6em\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\"\n ></path>\n </svg>\n);\n","import React, { forwardRef, useState } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { HelperText } from \"../helperText\";\nimport { Label, LabelProps } from \"../label/Label\";\nimport { Skeleton } from \"../skeleton/Skeleton\";\n\nexport type InputFieldProps = React.InputHTMLAttributes<HTMLInputElement> & {\n isLoading?: boolean;\n isLoadingError?: boolean;\n containerClassName?: string;\n margin?: \"none\" | \"normal\" | \"large\";\n width?: \"small\" | \"normal\" | \"full\" | \"auto\";\n /** The label of the input field */\n label?: any;\n labelProps?: LabelProps;\n hideSeparator?: boolean;\n /** The small red text under the input field to show validation. */\n helperText?: any;\n prefixText?: any;\n forceHideHelperText?: boolean;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /** The icon inside the input field */\n icon?: any;\n /** Boolean to enable/disable editing the input field and using it as a text field */\n preview?: boolean;\n // maxLength?: any;\n iconInside?: React.ReactNode;\n endIcon?: React.ReactNode;\n endIconProps?: { className?: string };\n startIcon?: React.ReactNode;\n placeholder?: React.ReactNode;\n /** Show the count of characters left in the input field. Works along with maxLength prop. */\n showCount?: boolean;\n countPosition?: \"top\" | \"bottom\" | \"center\";\n popup?: boolean;\n popupContent?: React.ReactNode;\n outsidePrefix?: any;\n loadingErrorMesssage?: string;\n};\nexport const Input = forwardRef<HTMLInputElement, InputFieldProps>(\n (\n {\n margin = \"none\",\n width = \"full\",\n preview = false,\n forceHideHelperText = false,\n labelProps,\n placeholder,\n showCount,\n inputProps,\n countPosition = \"bottom\",\n ...props\n },\n ref,\n ) => {\n const [value, setValue] = useState(props.value || \"\");\n\n let marginStyles = {\n none: \"hawa-mb-0\",\n normal: \"hawa-mb-3\",\n large: \"hawa-mb-5\",\n };\n let widthStyles = {\n small: \"hawa-w-full hawa-max-w-2xs\",\n normal: \"hawa-w-1/2\",\n full: \"hawa-w-full\",\n auto: \"\",\n };\n\n let defaultStyle =\n \"hawa-flex hawa-max-h-fit hawa-h-fit hawa-relative hawa-flex-col hawa-justify-center hawa-gap-0\";\n let defaultInputStyle =\n \"hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm placeholder:hawa-text-muted-foreground\";\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let newValue = e.target.value;\n setValue(newValue);\n\n if (props.prefixText) {\n // If newValue is shorter than prefixText, set newValue to prefixText\n if (newValue.length < props.prefixText.length) {\n newValue = props.prefixText;\n } else {\n // Check if newValue starts with a substring of prefixText\n const isSubstring = props.prefixText.startsWith(newValue);\n\n if (!isSubstring && !newValue.startsWith(props.prefixText)) {\n newValue = `${props.prefixText}${newValue}`;\n }\n }\n }\n\n if (props.onChange) {\n if (props.type === \"number\" && props.maxLength) {\n console.log(\"type is \", props.type);\n console.log(\"max length is \", props.maxLength);\n let v = newValue.replace(/[^0-9]/g, \"\").slice(0, props.maxLength);\n const newEvent = { ...e, target: { ...e.target, value: v } };\n setValue(v);\n props.onChange(newEvent as React.ChangeEvent<HTMLInputElement>);\n } else {\n console.log(\"NETIHERRRER\");\n const newEvent = { ...e, target: { ...e.target, value: newValue } };\n setValue(newValue);\n props.onChange(newEvent as React.ChangeEvent<HTMLInputElement>);\n }\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (props.type === \"number\" && [\"e\", \"E\", \"+\", \"-\", \".\"].includes(e.key)) {\n e.preventDefault();\n }\n props.onKeyDown && props.onKeyDown(e);\n };\n\n return (\n <div\n className={cn(\n defaultStyle,\n marginStyles[margin],\n widthStyles[width],\n props.containerClassName,\n \"hawa-w-full hawa-gap-2\",\n )}\n >\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n <div className=\"hawa-flex hawa-flex-row hawa-w-full hawa-items-center\">\n {props.outsidePrefix && (\n <span className={cn(\"hawa-me-2 hawa-opacity-90\", !forceHideHelperText && \"hawa-mb-2\")}>\n {props.outsidePrefix}\n </span>\n )}\n {props.isLoading ? (\n <div className=\"hawa-pb-2 hawa-w-full\">\n <Skeleton className=\"hawa-h-[40px] hawa-w-full\" />\n </div>\n ) : props.isLoadingError ? (\n <div className=\"hawa-pb-2 hawa-w-full\">\n <Skeleton\n animation=\"none\"\n className=\"hawa-h-[40px] hawa-w-full !hawa-bg-destructive/[0.3]\"\n content={\n <div className=\"hawa-flex hawa-flex-row hawa-gap-2\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"hawa-text-destructive\"\n >\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n <span>\n <span className=\"hawa-text-destructive\">\n {props.loadingErrorMesssage || \"Error loading data\"}\n </span>\n </span>\n </div>\n }\n />\n </div>\n ) : (\n <>\n {!props.hideSeparator && (\n <div\n className={cn(\n \"hawa-absolute hawa-top-[22px] hawa-h-[0.8px] hawa-w-full hawa-bg-gray-200 hawa-transition-all dark:hawa-bg-gray-800\",\n preview ? \"hawa-opacity-100\" : \"hawa-opacity-0\",\n )}\n ></div>\n )}\n <div className=\"hawa-flex hawa-flex-col hawa-w-full hawa-gap-2\">\n <div className={\"hawa-relative\"}>\n {props.startIcon && (\n <div className=\"hawa-absolute hawa-start-3 hawa-top-1/2 hawa--translate-y-1/2\">\n {props.startIcon}\n </div>\n )}\n {props.endIcon && (\n <div\n className={cn(\n \"hawa-absolute hawa-end-3 hawa-top-1/2 hawa--translate-y-1/2\",\n props.endIconProps?.className,\n )}\n >\n {props.endIcon}\n </div>\n )}\n <input\n required\n dir={props.dir}\n type={props.type}\n value={props.value || value}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n autoComplete={props.autoComplete}\n defaultValue={props.defaultValue}\n placeholder={placeholder}\n disabled={props.disabled || preview}\n style={{ height: 40 }}\n maxLength={props.maxLength}\n {...inputProps}\n className={cn(\n defaultInputStyle,\n \"focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-0 dark:hawa-text-white\",\n {\n \"hawa-pe-9\": props.endIcon,\n \"hawa-ps-9\": props.startIcon,\n \"hawa-pe-[60px]\": countPosition === \"center\",\n },\n preview && \"hawa-border-transparent hawa-bg-transparent hawa-px-0\",\n inputProps?.className,\n )}\n />\n </div>\n\n {/* Regular helper text */}\n {!forceHideHelperText && <HelperText helperText={props.helperText} />}\n {/* Popover helper text */}\n {!props.disabled && forceHideHelperText && (\n <div\n className={cn(\n \"hawa-absolute hawa-end-0 hawa-top-[47px] hawa-z-20 hawa-translate-y-1/2 hawa-rounded hawa-bg-background hawa-text-start hawa-text-xs hawa-text-helper-color hawa-drop-shadow-md hawa-transition-all\",\n props.helperText ? \"hawa-border hawa-p-1\" : \"hawa-border-none hawa-p-0\",\n )}\n >\n {props.helperText}\n </div>\n )}\n {/* Character Counter */}\n {showCount && (\n <div\n className={cn(\n \"hawa-absolute hawa-translate-y-1/2 hawa-text-start hawa-text-xs hawa-transition-all\",\n {\n \"hawa-end-0 hawa-top-[62px]\": countPosition === \"bottom\",\n \"hawa-bottom-[62px] hawa-end-0\": countPosition === \"top\",\n \"hawa-end-2\": countPosition === \"center\",\n },\n )}\n >\n {props.value ? String(props.value).length : 0}/{props.maxLength}\n </div>\n )}\n\n {/* Popover helper text */}\n {/* {props.popup && (\n <div\n className={cn(\n \"hawa-absolute hawa-top-[47px] hawa-min-h-fit hawa-w-full hawa-text-xs hawa-text-helper-color hawa-transition-all hawa-text-start hawa-rounded hawa-end-0 hawa-z-20 hawa-drop-shadow-md hawa-bg-background hawa-translate-y-1/2\",\n props.helperText\n ? \"hawa-border hawa-p-1\"\n : \"hawa-border-none hawa-p-0\"\n )}\n >\n {props.popupContent}\n </div>\n )} */}\n </div>\n </>\n )}\n </div>\n </div>\n );\n },\n);\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nexport const HelperText = ({\n helperText,\n}: {\n helperText?: string | React.ReactNode;\n}) => (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-helper-color hawa-transition-all hawa-text-xs\",\n helperText ? \"hawa-opacity-100 hawa-h-4\" : \"hawa-h-0 hawa-opacity-0\",\n )}\n >\n {helperText}\n </p>\n);\n","import * as React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { Tooltip } from \"../tooltip\";\n\nexport type LabelProps = {\n hint?: React.ReactNode;\n hintSide?: PositionType;\n htmlFor?: string;\n required?: boolean;\n};\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & LabelProps\n>(({ className, hint, hintSide, required, children, ...props }, ref) => (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all\">\n <label\n ref={ref}\n className={cn(\n \"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70\",\n className,\n )}\n {...props}\n >\n {children}\n {required && <span className=\"hawa-mx-0.5 hawa-text-red-500\">*</span>}\n </label>\n {hint && (\n <Tooltip\n content={hint}\n side={hintSide}\n triggerProps={{\n tabIndex: -1,\n onClick: (event) => event.preventDefault(),\n }}\n >\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[14px] hawa-w-[14px] hawa-cursor-help\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n </div>\n </Tooltip>\n )}\n </div>\n));\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import React from \"react\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n size?: \"default\" | \"small\" | \"large\";\n }\n>(({ className, sideOffset = 4, size = \"default\", ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"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\",\n {\n \"hawa-text-xs\": size === \"small\",\n \"hawa-text-xl\": size === \"large\",\n },\n className,\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst TooltipArrow = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Arrow>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Arrow ref={ref} className={cn(className)} {...props} />\n));\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\ntype TooltipTypes = {\n /** Controls the open state of the tooltip. */\n open?: any;\n /** Specifies the side where the tooltip will appear. */\n side?: PositionType;\n /** Content to be displayed within the tooltip. */\n content?: any;\n /** Elements to which the tooltip is anchored. */\n children?: any;\n /** Sets the default open state of the tooltip. */\n defaultOpen?: any;\n /** Event handler for open state changes. */\n onOpenChange?: any;\n /** Duration of the delay before the tooltip appears. */\n delayDuration?: any;\n /** Size of the tooltip. */\n size?: \"default\" | \"small\" | \"large\";\n /** Disables the tooltip. */\n disabled?: boolean;\n triggerProps?: TooltipPrimitive.TooltipTriggerProps;\n contentProps?: TooltipPrimitive.TooltipContentProps;\n providerProps?: TooltipPrimitive.TooltipProps;\n};\n\nconst Tooltip: React.FunctionComponent<TooltipTypes> = ({\n side,\n size,\n open,\n content,\n children,\n disabled,\n defaultOpen,\n onOpenChange,\n triggerProps,\n contentProps,\n providerProps,\n delayDuration = 300,\n ...props\n}) => {\n return (\n <TooltipPrimitive.TooltipProvider\n delayDuration={delayDuration}\n {...providerProps}\n >\n <TooltipPrimitive.Root\n open={!disabled && open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n {...props}\n >\n <TooltipPrimitive.Trigger {...triggerProps}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipContent\n size={size}\n side={side}\n align=\"center\"\n {...contentProps}\n style={{\n ...contentProps?.style,\n maxWidth: \"var(--radix-tooltip-content-available-width)\",\n maxHeight: \"var(--radix-tooltip-content-available-height)\",\n }}\n >\n {content}\n </TooltipContent>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.TooltipProvider>\n );\n};\n\nexport { Tooltip };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n animation?: \"none\" | \"pulse\" | \"shimmer\";\n content?: any;\n fade?: \"top\" | \"bottom\" | \"left\" | \"right\";\n as?: \"div\" | \"input\";\n}\n\nfunction Skeleton({\n className,\n content,\n animation = \"pulse\",\n fade,\n as = \"div\",\n ...props\n}: SkeletonProps) {\n const animationStyles = {\n none: \"hawa-rounded hawa-bg-muted\",\n pulse: \"hawa-animate-pulse hawa-rounded hawa-bg-muted\",\n shimmer:\n \"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\",\n };\n const fadeStyle = {\n bottom: \"hawa-mask-fade-bottom\",\n top: \"hawa-mask-fade-top\",\n right: \"hawa-mask-fade-right\",\n left: \"hawa-mask-fade-left \",\n };\n\n const styledAs = {\n div: \"\",\n input: \"!h-[38px] !w-full\",\n };\n\n return (\n <div\n className={cn(\n animationStyles[animation],\n content &&\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n fade && fadeStyle[fade],\n styledAs[as],\n className,\n )}\n {...props}\n >\n {content && content}\n </div>\n );\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n container?: HTMLElement | null;\n }\n>(\n (\n { className, align = \"center\", sideOffset = 4, container, ...props },\n ref,\n ) => (\n <PopoverPrimitive.Portal container={container}>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"dark:dark-shadow hawa-z-50 hawa-rounded hawa-border hawa-bg-popover 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\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n ),\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\ninterface PopoverProps {\n side?: PositionType;\n align?: \"start\" | \"center\" | \"end\";\n trigger?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n sideOffset?: number;\n disableTrigger?: any;\n width?: \"trigger\" | \"default\";\n open?: boolean;\n contentProps?: PopoverPrimitive.PopoverContentProps;\n triggerProps?: PopoverPrimitive.PopoverTriggerProps;\n}\n\ntype HawaPopoverTypes = PopoverProps &\n React.ComponentProps<typeof PopoverPrimitive.Root>;\n\nconst Popover: React.FC<HawaPopoverTypes> = ({\n trigger,\n children,\n className,\n align = \"center\",\n side,\n sideOffset = 4,\n open,\n width = \"default\",\n disableTrigger,\n contentProps,\n triggerProps,\n ...props\n}) => {\n let widthStyles = {\n trigger: \"var(--radix-popover-trigger-width)\",\n default: \"auto\",\n };\n\n return (\n <PopoverPrimitive.Root open={open} {...props}>\n <PopoverPrimitive.Trigger\n className=\"hawa-w-full\"\n disabled={disableTrigger}\n {...triggerProps}\n >\n {trigger}\n </PopoverPrimitive.Trigger>\n <PopoverContent\n side={side}\n className={className}\n align={align}\n sideOffset={sideOffset}\n style={{\n width: widthStyles[width],\n maxWidth: \"var(--radix-popover-content-available-width)\",\n maxHeight: \"var(--radix-popover-content-available-height)\",\n }}\n {...contentProps}\n >\n {children}\n </PopoverContent>\n </PopoverPrimitive.Root>\n );\n};\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\nconst PopoverPortal = PopoverPrimitive.Portal;\nconst PopoverRoot = PopoverPrimitive.Root;\n\nexport { Popover, PopoverPortal, PopoverRoot, PopoverContent, PopoverTrigger };\n"],"mappings":"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","names":["import_react","import_react","React","import_react","React","import_react","import_react","React","React","import_react","React","import_react","React","React","React","React"]}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
3
|
// elements/passwordInput/PasswordInput.tsx
|
4
|
-
import React10, { useEffect, useState } from "react";
|
4
|
+
import React10, { useEffect, useState as useState2 } from "react";
|
5
5
|
|
6
6
|
// icons/Emojis.tsx
|
7
7
|
import React from "react";
|
@@ -98,7 +98,7 @@ var UncheckMark = ({ size = "default", className }) => {
|
|
98
98
|
};
|
99
99
|
|
100
100
|
// elements/input/Input.tsx
|
101
|
-
import React8, { forwardRef as forwardRef2 } from "react";
|
101
|
+
import React8, { forwardRef as forwardRef2, useState } from "react";
|
102
102
|
|
103
103
|
// elements/helperText/HelperText.tsx
|
104
104
|
import React4 from "react";
|
@@ -238,6 +238,7 @@ function Skeleton({
|
|
238
238
|
content,
|
239
239
|
animation = "pulse",
|
240
240
|
fade,
|
241
|
+
as = "div",
|
241
242
|
...props
|
242
243
|
}) {
|
243
244
|
const animationStyles = {
|
@@ -251,6 +252,10 @@ function Skeleton({
|
|
251
252
|
right: "hawa-mask-fade-right",
|
252
253
|
left: "hawa-mask-fade-left "
|
253
254
|
};
|
255
|
+
const styledAs = {
|
256
|
+
div: "",
|
257
|
+
input: "!h-[38px] !w-full"
|
258
|
+
};
|
254
259
|
return /* @__PURE__ */ React7.createElement(
|
255
260
|
"div",
|
256
261
|
{
|
@@ -258,6 +263,7 @@ function Skeleton({
|
|
258
263
|
animationStyles[animation],
|
259
264
|
content && "hawa-flex hawa-flex-col hawa-items-center hawa-justify-center",
|
260
265
|
fade && fadeStyle[fade],
|
266
|
+
styledAs[as],
|
261
267
|
className
|
262
268
|
),
|
263
269
|
...props
|
@@ -281,6 +287,7 @@ var Input = forwardRef2(
|
|
281
287
|
...props
|
282
288
|
}, ref) => {
|
283
289
|
var _a;
|
290
|
+
const [value, setValue] = useState(props.value || "");
|
284
291
|
let marginStyles = {
|
285
292
|
none: "hawa-mb-0",
|
286
293
|
normal: "hawa-mb-3",
|
@@ -296,6 +303,7 @@ var Input = forwardRef2(
|
|
296
303
|
let defaultInputStyle = "hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm placeholder:hawa-text-muted-foreground";
|
297
304
|
const handleChange = (e) => {
|
298
305
|
let newValue = e.target.value;
|
306
|
+
setValue(newValue);
|
299
307
|
if (props.prefixText) {
|
300
308
|
if (newValue.length < props.prefixText.length) {
|
301
309
|
newValue = props.prefixText;
|
@@ -307,9 +315,26 @@ var Input = forwardRef2(
|
|
307
315
|
}
|
308
316
|
}
|
309
317
|
if (props.onChange) {
|
310
|
-
|
311
|
-
|
318
|
+
if (props.type === "number" && props.maxLength) {
|
319
|
+
console.log("type is ", props.type);
|
320
|
+
console.log("max length is ", props.maxLength);
|
321
|
+
let v = newValue.replace(/[^0-9]/g, "").slice(0, props.maxLength);
|
322
|
+
const newEvent = { ...e, target: { ...e.target, value: v } };
|
323
|
+
setValue(v);
|
324
|
+
props.onChange(newEvent);
|
325
|
+
} else {
|
326
|
+
console.log("NETIHERRRER");
|
327
|
+
const newEvent = { ...e, target: { ...e.target, value: newValue } };
|
328
|
+
setValue(newValue);
|
329
|
+
props.onChange(newEvent);
|
330
|
+
}
|
331
|
+
}
|
332
|
+
};
|
333
|
+
const handleKeyDown = (e) => {
|
334
|
+
if (props.type === "number" && ["e", "E", "+", "-", "."].includes(e.key)) {
|
335
|
+
e.preventDefault();
|
312
336
|
}
|
337
|
+
props.onKeyDown && props.onKeyDown(e);
|
313
338
|
};
|
314
339
|
return /* @__PURE__ */ React8.createElement(
|
315
340
|
"div",
|
@@ -323,16 +348,7 @@ var Input = forwardRef2(
|
|
323
348
|
)
|
324
349
|
},
|
325
350
|
props.label && /* @__PURE__ */ React8.createElement(Label, { ...labelProps }, props.label),
|
326
|
-
/* @__PURE__ */ React8.createElement("div", { className: "hawa-flex hawa-flex-row hawa-w-full hawa-items-center" }, props.outsidePrefix && /* @__PURE__ */ React8.createElement(
|
327
|
-
"span",
|
328
|
-
{
|
329
|
-
className: cn(
|
330
|
-
"hawa-me-2 hawa-opacity-90",
|
331
|
-
!forceHideHelperText && "hawa-mb-2"
|
332
|
-
)
|
333
|
-
},
|
334
|
-
props.outsidePrefix
|
335
|
-
), props.isLoading ? /* @__PURE__ */ React8.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ React8.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ React8.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ React8.createElement(
|
351
|
+
/* @__PURE__ */ React8.createElement("div", { className: "hawa-flex hawa-flex-row hawa-w-full hawa-items-center" }, props.outsidePrefix && /* @__PURE__ */ React8.createElement("span", { className: cn("hawa-me-2 hawa-opacity-90", !forceHideHelperText && "hawa-mb-2") }, props.outsidePrefix), props.isLoading ? /* @__PURE__ */ React8.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ React8.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ React8.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ React8.createElement(
|
336
352
|
Skeleton,
|
337
353
|
{
|
338
354
|
animation: "none",
|
@@ -379,13 +395,15 @@ var Input = forwardRef2(
|
|
379
395
|
required: true,
|
380
396
|
dir: props.dir,
|
381
397
|
type: props.type,
|
382
|
-
value: props.value,
|
398
|
+
value: props.value || value,
|
383
399
|
onChange: handleChange,
|
400
|
+
onKeyDown: handleKeyDown,
|
384
401
|
autoComplete: props.autoComplete,
|
385
402
|
defaultValue: props.defaultValue,
|
386
403
|
placeholder,
|
387
404
|
disabled: props.disabled || preview,
|
388
405
|
style: { height: 40 },
|
406
|
+
maxLength: props.maxLength,
|
389
407
|
...inputProps,
|
390
408
|
className: cn(
|
391
409
|
defaultInputStyle,
|
@@ -530,15 +548,15 @@ var PasswordInput = ({
|
|
530
548
|
hidePopover,
|
531
549
|
...props
|
532
550
|
}) => {
|
533
|
-
const [inputValue, setInputValue] =
|
534
|
-
const [isInputFocused, setIsInputFocused] =
|
535
|
-
const [currentStr, setCurrentStr] =
|
536
|
-
const [passwordVisible, setPasswordVisible] =
|
537
|
-
const [lengthCriteriaMet, setLengthCriteriaMet] =
|
538
|
-
const [numberCriteriaMet, setNumberCriteriaMet] =
|
539
|
-
const [specialCharCriteriaMet, setSpecialCharCriteriaMet] =
|
540
|
-
const [lowercaseCriteriaMet, setLowercaseCriteriaMet] =
|
541
|
-
const [uppercaseCriteriaMet, setUppercaseCriteriaMet] =
|
551
|
+
const [inputValue, setInputValue] = useState2("");
|
552
|
+
const [isInputFocused, setIsInputFocused] = useState2(false);
|
553
|
+
const [currentStr, setCurrentStr] = useState2(0);
|
554
|
+
const [passwordVisible, setPasswordVisible] = useState2(false);
|
555
|
+
const [lengthCriteriaMet, setLengthCriteriaMet] = useState2(false);
|
556
|
+
const [numberCriteriaMet, setNumberCriteriaMet] = useState2(false);
|
557
|
+
const [specialCharCriteriaMet, setSpecialCharCriteriaMet] = useState2(false);
|
558
|
+
const [lowercaseCriteriaMet, setLowercaseCriteriaMet] = useState2(false);
|
559
|
+
const [uppercaseCriteriaMet, setUppercaseCriteriaMet] = useState2(false);
|
542
560
|
useEffect(() => {
|
543
561
|
const calculateStrength = () => {
|
544
562
|
let strengthScore = 0;
|