@sikka/hawa 0.27.22-next → 0.27.23-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.
@@ -10,6 +10,7 @@ interface AvatarProps {
10
10
  radius?: RadiusType;
11
11
  className?: string;
12
12
  icon?: React.ReactNode;
13
+ hideIcon?: boolean;
13
14
  }
14
15
  declare const Avatar: React.FC<AvatarProps>;
15
16
 
@@ -10,6 +10,7 @@ interface AvatarProps {
10
10
  radius?: RadiusType;
11
11
  className?: string;
12
12
  icon?: React.ReactNode;
13
+ hideIcon?: boolean;
13
14
  }
14
15
  declare const Avatar: React.FC<AvatarProps>;
15
16
 
@@ -71,6 +71,7 @@ var FileUploader = ({ handleFile, className }) => {
71
71
  // elements/avatar/Avatar.tsx
72
72
  var Avatar = ({
73
73
  isUploadable,
74
+ hideIcon,
74
75
  src,
75
76
  alt,
76
77
  size = "default",
@@ -131,7 +132,7 @@ var Avatar = ({
131
132
  alt
132
133
  }
133
134
  ),
134
- !src && !isUploadable && /* @__PURE__ */ import_react2.default.createElement(
135
+ !src && !hideIcon && /* @__PURE__ */ import_react2.default.createElement(
135
136
  "div",
136
137
  {
137
138
  className: cn(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/avatar/index.ts","../../elements/avatar/Avatar.tsx","../../util/index.ts","../../elements/fileUploader/FileUploader.tsx"],"sourcesContent":["export * from \"./Avatar\";\n","import React from \"react\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\nimport { FileUploader } from \"../fileUploader\";\n\ninterface AvatarProps {\n isUploadable?: boolean;\n src?: string;\n alt?: string;\n size?:\n | \"2xs\"\n | \"xs\"\n | \"sm\"\n | \"default\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\"\n | \"5xl\"\n | \"6xl\";\n radius?: RadiusType;\n className?: string;\n icon?: React.ReactNode;\n}\nexport const Avatar: React.FC<AvatarProps> = ({\n isUploadable,\n src,\n alt,\n size = \"default\",\n radius = \"inherit\",\n icon,\n className,\n ...props\n}) => {\n let sizeStyles = {\n \"2xs\": \"hawa-h-4 hawa-w-4\",\n xs: \"hawa-h-6 hawa-w-6\",\n sm: \"hawa-h-8 hawa-w-8\",\n default: \"hawa-h-10 hawa-w-10\",\n lg: \"hawa-h-12 hawa-w-12\",\n xl: \"hawa-h-14 hawa-w-14\",\n \"2xl\": \"hawa-h-16 hawa-w-16\",\n \"3xl\": \"hawa-h-[72px] hawa-w-[72px]\",\n \"4xl\": \"hawa-h-20 hawa-w-20\",\n \"5xl\": \"hawa-h-[88px] hawa-w-[88px]\",\n \"6xl\": \"hawa-h-24 hawa-w-24\"\n };\n let radiusStyles = {\n full: \"hawa-rounded-full\",\n inherit: \"hawa-rounded\",\n none: \"hawa-rounded-none\"\n };\n return (\n <div\n className={cn(\n \"hawa-relative hawa-bg-card hawa-p-0\",\n sizeStyles[size],\n radiusStyles[radius],\n className\n )}\n >\n <FileUploader\n className={cn(\n \"hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-cursor-pointer hawa-bg-red-400 hawa-opacity-0\",\n sizeStyles[size],\n radiusStyles[radius],\n (!isUploadable || !!src) && \"hawa-hidden\"\n )}\n />\n\n <img\n className={cn(\n \"hawa-blue-400 hawa-object-cover\",\n sizeStyles[size],\n radiusStyles[radius],\n !src && \"hawa-hidden\"\n )}\n src={src}\n alt={alt}\n />\n {!src && !isUploadable && (\n <div\n className={cn(\n sizeStyles[size],\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\"\n )}\n >\n {icon ? (\n icon\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: \"50%\", opacity: 0.35 }}\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=\"8\" r=\"5\" />\n <path d=\"M20 21a8 8 0 1 0-16 0\" />\n </svg>\n )}\n </div>\n )}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React, { useRef } from \"react\";\n\nexport const FileUploader = ({ handleFile, className }: any) => {\n const hiddenFileInput = useRef<HTMLInputElement>(null);\n const handleClick = () => {\n hiddenFileInput.current?.click();\n };\n const handleChange = (event: any) => {\n const fileUploaded = event.target.files[0];\n handleFile(fileUploaded);\n };\n return (\n <div className={className}>\n <div className=\"hawa-h-full hawa-w-full\" onClick={handleClick} />\n <input\n type=\"file\"\n onChange={handleChange}\n ref={hiddenFileInput}\n style={{ display: \"none\" }}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,gBAAkB;;;ACAlB,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ACLA,mBAA8B;AAEvB,IAAM,eAAe,CAAC,EAAE,YAAY,UAAU,MAAW;AAC9D,QAAM,sBAAkB,qBAAyB,IAAI;AACrD,QAAM,cAAc,MAAM;AAJ5B;AAKI,0BAAgB,YAAhB,mBAAyB;AAAA,EAC3B;AACA,QAAM,eAAe,CAAC,UAAe;AACnC,UAAM,eAAe,MAAM,OAAO,MAAM,CAAC;AACzC,eAAW,YAAY;AAAA,EACzB;AACA,SACE,6BAAAC,QAAA,cAAC,SAAI,aACH,6BAAAA,QAAA,cAAC,SAAI,WAAU,2BAA0B,SAAS,aAAa,GAC/D,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,EAAE,SAAS,OAAO;AAAA;AAAA,EAC3B,CACF;AAEJ;;;AFKO,IAAM,SAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,aAAa;AAAA,IACf,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,MAAI,eAAe;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACA,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,WAAW,IAAI;AAAA,QACf,aAAa,MAAM;AAAA,QACnB;AAAA,MACF;AAAA;AAAA,IAEA,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,IAAI;AAAA,UACf,aAAa,MAAM;AAAA,WAClB,CAAC,gBAAgB,CAAC,CAAC,QAAQ;AAAA,QAC9B;AAAA;AAAA,IACF;AAAA,IAEA,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,IAAI;AAAA,UACf,aAAa,MAAM;AAAA,UACnB,CAAC,OAAO;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,IACC,CAAC,OAAO,CAAC,gBACR,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT,WAAW,IAAI;AAAA,UACf;AAAA,QACF;AAAA;AAAA,MAEC,OACC,OAEA,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,OAAO,EAAE,OAAO,OAAO,SAAS,KAAK;AAAA,UACrC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,QAEf,8BAAAA,QAAA,cAAC,YAAO,IAAG,MAAK,IAAG,KAAI,GAAE,KAAI;AAAA,QAC7B,8BAAAA,QAAA,cAAC,UAAK,GAAE,yBAAwB;AAAA,MAClC;AAAA,IAEJ;AAAA,EAEJ;AAEJ;","names":["import_react","React","React"]}
1
+ {"version":3,"sources":["../../elements/avatar/index.ts","../../elements/avatar/Avatar.tsx","../../util/index.ts","../../elements/fileUploader/FileUploader.tsx"],"sourcesContent":["export * from \"./Avatar\";\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { FileUploader } from \"../fileUploader\";\n\ninterface AvatarProps {\n isUploadable?: boolean;\n src?: string;\n alt?: string;\n size?:\n | \"2xs\"\n | \"xs\"\n | \"sm\"\n | \"default\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\"\n | \"5xl\"\n | \"6xl\";\n radius?: RadiusType;\n className?: string;\n icon?: React.ReactNode;\n hideIcon?: boolean;\n}\nexport const Avatar: React.FC<AvatarProps> = ({\n isUploadable,\n hideIcon,\n src,\n alt,\n size = \"default\",\n radius = \"inherit\",\n icon,\n className,\n ...props\n}) => {\n let sizeStyles = {\n \"2xs\": \"hawa-h-4 hawa-w-4\",\n xs: \"hawa-h-6 hawa-w-6\",\n sm: \"hawa-h-8 hawa-w-8\",\n default: \"hawa-h-10 hawa-w-10\",\n lg: \"hawa-h-12 hawa-w-12\",\n xl: \"hawa-h-14 hawa-w-14\",\n \"2xl\": \"hawa-h-16 hawa-w-16\",\n \"3xl\": \"hawa-h-[72px] hawa-w-[72px]\",\n \"4xl\": \"hawa-h-20 hawa-w-20\",\n \"5xl\": \"hawa-h-[88px] hawa-w-[88px]\",\n \"6xl\": \"hawa-h-24 hawa-w-24\"\n };\n let radiusStyles = {\n full: \"hawa-rounded-full\",\n inherit: \"hawa-rounded\",\n none: \"hawa-rounded-none\"\n };\n return (\n <div\n className={cn(\n \"hawa-relative hawa-bg-card hawa-p-0\",\n sizeStyles[size],\n radiusStyles[radius],\n className\n )}\n >\n <FileUploader\n className={cn(\n \"hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-cursor-pointer hawa-bg-red-400 hawa-opacity-0\",\n sizeStyles[size],\n radiusStyles[radius],\n (!isUploadable || !!src) && \"hawa-hidden\"\n )}\n />\n\n <img\n className={cn(\n \"hawa-blue-400 hawa-object-cover\",\n sizeStyles[size],\n radiusStyles[radius],\n !src && \"hawa-hidden\"\n )}\n src={src}\n alt={alt}\n />\n {!src && !hideIcon && (\n <div\n className={cn(\n sizeStyles[size],\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\"\n )}\n >\n {icon ? (\n icon\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: \"50%\", opacity: 0.35 }}\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=\"8\" r=\"5\" />\n <path d=\"M20 21a8 8 0 1 0-16 0\" />\n </svg>\n )}\n </div>\n )}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React, { useRef } from \"react\";\n\nexport const FileUploader = ({ handleFile, className }: any) => {\n const hiddenFileInput = useRef<HTMLInputElement>(null);\n const handleClick = () => {\n hiddenFileInput.current?.click();\n };\n const handleChange = (event: any) => {\n const fileUploaded = event.target.files[0];\n handleFile(fileUploaded);\n };\n return (\n <div className={className}>\n <div className=\"hawa-h-full hawa-w-full\" onClick={handleClick} />\n <input\n type=\"file\"\n onChange={handleChange}\n ref={hiddenFileInput}\n style={{ display: \"none\" }}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,gBAAkB;;;ACAlB,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ACLA,mBAA8B;AAEvB,IAAM,eAAe,CAAC,EAAE,YAAY,UAAU,MAAW;AAC9D,QAAM,sBAAkB,qBAAyB,IAAI;AACrD,QAAM,cAAc,MAAM;AAJ5B;AAKI,0BAAgB,YAAhB,mBAAyB;AAAA,EAC3B;AACA,QAAM,eAAe,CAAC,UAAe;AACnC,UAAM,eAAe,MAAM,OAAO,MAAM,CAAC;AACzC,eAAW,YAAY;AAAA,EACzB;AACA,SACE,6BAAAC,QAAA,cAAC,SAAI,aACH,6BAAAA,QAAA,cAAC,SAAI,WAAU,2BAA0B,SAAS,aAAa,GAC/D,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,EAAE,SAAS,OAAO;AAAA;AAAA,EAC3B,CACF;AAEJ;;;AFOO,IAAM,SAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,aAAa;AAAA,IACf,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,MAAI,eAAe;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACA,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,WAAW,IAAI;AAAA,QACf,aAAa,MAAM;AAAA,QACnB;AAAA,MACF;AAAA;AAAA,IAEA,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,IAAI;AAAA,UACf,aAAa,MAAM;AAAA,WAClB,CAAC,gBAAgB,CAAC,CAAC,QAAQ;AAAA,QAC9B;AAAA;AAAA,IACF;AAAA,IAEA,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,IAAI;AAAA,UACf,aAAa,MAAM;AAAA,UACnB,CAAC,OAAO;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,IACC,CAAC,OAAO,CAAC,YACR,8BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT,WAAW,IAAI;AAAA,UACf;AAAA,QACF;AAAA;AAAA,MAEC,OACC,OAEA,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,OAAO,EAAE,OAAO,OAAO,SAAS,KAAK;AAAA,UACrC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,QAEf,8BAAAA,QAAA,cAAC,YAAO,IAAG,MAAK,IAAG,KAAI,GAAE,KAAI;AAAA,QAC7B,8BAAAA,QAAA,cAAC,UAAK,GAAE,yBAAwB;AAAA,MAClC;AAAA,IAEJ;AAAA,EAEJ;AAEJ;","names":["import_react","React","React"]}
@@ -36,6 +36,7 @@ var FileUploader = ({ handleFile, className }) => {
36
36
  // elements/avatar/Avatar.tsx
37
37
  var Avatar = ({
38
38
  isUploadable,
39
+ hideIcon,
39
40
  src,
40
41
  alt,
41
42
  size = "default",
@@ -96,7 +97,7 @@ var Avatar = ({
96
97
  alt
97
98
  }
98
99
  ),
99
- !src && !isUploadable && /* @__PURE__ */ React2.createElement(
100
+ !src && !hideIcon && /* @__PURE__ */ React2.createElement(
100
101
  "div",
101
102
  {
102
103
  className: cn(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/avatar/Avatar.tsx","../../util/index.ts","../../elements/fileUploader/FileUploader.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\nimport { FileUploader } from \"../fileUploader\";\n\ninterface AvatarProps {\n isUploadable?: boolean;\n src?: string;\n alt?: string;\n size?:\n | \"2xs\"\n | \"xs\"\n | \"sm\"\n | \"default\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\"\n | \"5xl\"\n | \"6xl\";\n radius?: RadiusType;\n className?: string;\n icon?: React.ReactNode;\n}\nexport const Avatar: React.FC<AvatarProps> = ({\n isUploadable,\n src,\n alt,\n size = \"default\",\n radius = \"inherit\",\n icon,\n className,\n ...props\n}) => {\n let sizeStyles = {\n \"2xs\": \"hawa-h-4 hawa-w-4\",\n xs: \"hawa-h-6 hawa-w-6\",\n sm: \"hawa-h-8 hawa-w-8\",\n default: \"hawa-h-10 hawa-w-10\",\n lg: \"hawa-h-12 hawa-w-12\",\n xl: \"hawa-h-14 hawa-w-14\",\n \"2xl\": \"hawa-h-16 hawa-w-16\",\n \"3xl\": \"hawa-h-[72px] hawa-w-[72px]\",\n \"4xl\": \"hawa-h-20 hawa-w-20\",\n \"5xl\": \"hawa-h-[88px] hawa-w-[88px]\",\n \"6xl\": \"hawa-h-24 hawa-w-24\"\n };\n let radiusStyles = {\n full: \"hawa-rounded-full\",\n inherit: \"hawa-rounded\",\n none: \"hawa-rounded-none\"\n };\n return (\n <div\n className={cn(\n \"hawa-relative hawa-bg-card hawa-p-0\",\n sizeStyles[size],\n radiusStyles[radius],\n className\n )}\n >\n <FileUploader\n className={cn(\n \"hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-cursor-pointer hawa-bg-red-400 hawa-opacity-0\",\n sizeStyles[size],\n radiusStyles[radius],\n (!isUploadable || !!src) && \"hawa-hidden\"\n )}\n />\n\n <img\n className={cn(\n \"hawa-blue-400 hawa-object-cover\",\n sizeStyles[size],\n radiusStyles[radius],\n !src && \"hawa-hidden\"\n )}\n src={src}\n alt={alt}\n />\n {!src && !isUploadable && (\n <div\n className={cn(\n sizeStyles[size],\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\"\n )}\n >\n {icon ? (\n icon\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: \"50%\", opacity: 0.35 }}\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=\"8\" r=\"5\" />\n <path d=\"M20 21a8 8 0 1 0-16 0\" />\n </svg>\n )}\n </div>\n )}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React, { useRef } from \"react\";\n\nexport const FileUploader = ({ handleFile, className }: any) => {\n const hiddenFileInput = useRef<HTMLInputElement>(null);\n const handleClick = () => {\n hiddenFileInput.current?.click();\n };\n const handleChange = (event: any) => {\n const fileUploaded = event.target.files[0];\n handleFile(fileUploaded);\n };\n return (\n <div className={className}>\n <div className=\"hawa-h-full hawa-w-full\" onClick={handleClick} />\n <input\n type=\"file\"\n onChange={handleChange}\n ref={hiddenFileInput}\n style={{ display: \"none\" }}\n />\n </div>\n );\n};\n"],"mappings":";;;AAAA,OAAOA,YAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACLA,OAAO,SAAS,cAAc;AAEvB,IAAM,eAAe,CAAC,EAAE,YAAY,UAAU,MAAW;AAC9D,QAAM,kBAAkB,OAAyB,IAAI;AACrD,QAAM,cAAc,MAAM;AAJ5B;AAKI,0BAAgB,YAAhB,mBAAyB;AAAA,EAC3B;AACA,QAAM,eAAe,CAAC,UAAe;AACnC,UAAM,eAAe,MAAM,OAAO,MAAM,CAAC;AACzC,eAAW,YAAY;AAAA,EACzB;AACA,SACE,oCAAC,SAAI,aACH,oCAAC,SAAI,WAAU,2BAA0B,SAAS,aAAa,GAC/D;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,EAAE,SAAS,OAAO;AAAA;AAAA,EAC3B,CACF;AAEJ;;;AFKO,IAAM,SAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,aAAa;AAAA,IACf,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,MAAI,eAAe;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACA,SACE,gBAAAC,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,WAAW,IAAI;AAAA,QACf,aAAa,MAAM;AAAA,QACnB;AAAA,MACF;AAAA;AAAA,IAEA,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,IAAI;AAAA,UACf,aAAa,MAAM;AAAA,WAClB,CAAC,gBAAgB,CAAC,CAAC,QAAQ;AAAA,QAC9B;AAAA;AAAA,IACF;AAAA,IAEA,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,IAAI;AAAA,UACf,aAAa,MAAM;AAAA,UACnB,CAAC,OAAO;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,IACC,CAAC,OAAO,CAAC,gBACR,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT,WAAW,IAAI;AAAA,UACf;AAAA,QACF;AAAA;AAAA,MAEC,OACC,OAEA,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,OAAO,EAAE,OAAO,OAAO,SAAS,KAAK;AAAA,UACrC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,QAEf,gBAAAA,OAAA,cAAC,YAAO,IAAG,MAAK,IAAG,KAAI,GAAE,KAAI;AAAA,QAC7B,gBAAAA,OAAA,cAAC,UAAK,GAAE,yBAAwB;AAAA,MAClC;AAAA,IAEJ;AAAA,EAEJ;AAEJ;","names":["React","React"]}
1
+ {"version":3,"sources":["../../elements/avatar/Avatar.tsx","../../util/index.ts","../../elements/fileUploader/FileUploader.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { FileUploader } from \"../fileUploader\";\n\ninterface AvatarProps {\n isUploadable?: boolean;\n src?: string;\n alt?: string;\n size?:\n | \"2xs\"\n | \"xs\"\n | \"sm\"\n | \"default\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\"\n | \"5xl\"\n | \"6xl\";\n radius?: RadiusType;\n className?: string;\n icon?: React.ReactNode;\n hideIcon?: boolean;\n}\nexport const Avatar: React.FC<AvatarProps> = ({\n isUploadable,\n hideIcon,\n src,\n alt,\n size = \"default\",\n radius = \"inherit\",\n icon,\n className,\n ...props\n}) => {\n let sizeStyles = {\n \"2xs\": \"hawa-h-4 hawa-w-4\",\n xs: \"hawa-h-6 hawa-w-6\",\n sm: \"hawa-h-8 hawa-w-8\",\n default: \"hawa-h-10 hawa-w-10\",\n lg: \"hawa-h-12 hawa-w-12\",\n xl: \"hawa-h-14 hawa-w-14\",\n \"2xl\": \"hawa-h-16 hawa-w-16\",\n \"3xl\": \"hawa-h-[72px] hawa-w-[72px]\",\n \"4xl\": \"hawa-h-20 hawa-w-20\",\n \"5xl\": \"hawa-h-[88px] hawa-w-[88px]\",\n \"6xl\": \"hawa-h-24 hawa-w-24\"\n };\n let radiusStyles = {\n full: \"hawa-rounded-full\",\n inherit: \"hawa-rounded\",\n none: \"hawa-rounded-none\"\n };\n return (\n <div\n className={cn(\n \"hawa-relative hawa-bg-card hawa-p-0\",\n sizeStyles[size],\n radiusStyles[radius],\n className\n )}\n >\n <FileUploader\n className={cn(\n \"hawa-absolute hawa-left-0 hawa-top-0 hawa-w-full hawa-cursor-pointer hawa-bg-red-400 hawa-opacity-0\",\n sizeStyles[size],\n radiusStyles[radius],\n (!isUploadable || !!src) && \"hawa-hidden\"\n )}\n />\n\n <img\n className={cn(\n \"hawa-blue-400 hawa-object-cover\",\n sizeStyles[size],\n radiusStyles[radius],\n !src && \"hawa-hidden\"\n )}\n src={src}\n alt={alt}\n />\n {!src && !hideIcon && (\n <div\n className={cn(\n sizeStyles[size],\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\"\n )}\n >\n {icon ? (\n icon\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: \"50%\", opacity: 0.35 }}\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=\"8\" r=\"5\" />\n <path d=\"M20 21a8 8 0 1 0-16 0\" />\n </svg>\n )}\n </div>\n )}\n </div>\n );\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n","import React, { useRef } from \"react\";\n\nexport const FileUploader = ({ handleFile, className }: any) => {\n const hiddenFileInput = useRef<HTMLInputElement>(null);\n const handleClick = () => {\n hiddenFileInput.current?.click();\n };\n const handleChange = (event: any) => {\n const fileUploaded = event.target.files[0];\n handleFile(fileUploaded);\n };\n return (\n <div className={className}>\n <div className=\"hawa-h-full hawa-w-full\" onClick={handleClick} />\n <input\n type=\"file\"\n onChange={handleChange}\n ref={hiddenFileInput}\n style={{ display: \"none\" }}\n />\n </div>\n );\n};\n"],"mappings":";;;AAAA,OAAOA,YAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACLA,OAAO,SAAS,cAAc;AAEvB,IAAM,eAAe,CAAC,EAAE,YAAY,UAAU,MAAW;AAC9D,QAAM,kBAAkB,OAAyB,IAAI;AACrD,QAAM,cAAc,MAAM;AAJ5B;AAKI,0BAAgB,YAAhB,mBAAyB;AAAA,EAC3B;AACA,QAAM,eAAe,CAAC,UAAe;AACnC,UAAM,eAAe,MAAM,OAAO,MAAM,CAAC;AACzC,eAAW,YAAY;AAAA,EACzB;AACA,SACE,oCAAC,SAAI,aACH,oCAAC,SAAI,WAAU,2BAA0B,SAAS,aAAa,GAC/D;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,EAAE,SAAS,OAAO;AAAA;AAAA,EAC3B,CACF;AAEJ;;;AFOO,IAAM,SAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,aAAa;AAAA,IACf,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,MAAI,eAAe;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EACR;AACA,SACE,gBAAAC,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,WAAW,IAAI;AAAA,QACf,aAAa,MAAM;AAAA,QACnB;AAAA,MACF;AAAA;AAAA,IAEA,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,IAAI;AAAA,UACf,aAAa,MAAM;AAAA,WAClB,CAAC,gBAAgB,CAAC,CAAC,QAAQ;AAAA,QAC9B;AAAA;AAAA,IACF;AAAA,IAEA,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,IAAI;AAAA,UACf,aAAa,MAAM;AAAA,UACnB,CAAC,OAAO;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,IACC,CAAC,OAAO,CAAC,YACR,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT,WAAW,IAAI;AAAA,UACf;AAAA,QACF;AAAA;AAAA,MAEC,OACC,OAEA,gBAAAA,OAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,OAAO,EAAE,OAAO,OAAO,SAAS,KAAK;AAAA,UACrC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,QAEf,gBAAAA,OAAA,cAAC,YAAO,IAAG,MAAK,IAAG,KAAI,GAAE,KAAI;AAAA,QAC7B,gBAAAA,OAAA,cAAC,UAAK,GAAE,yBAAwB;AAAA,MAClC;AAAA,IAEJ;AAAA,EAEJ;AAEJ;","names":["React","React"]}
@@ -2749,7 +2749,7 @@ var PhoneInput = ({ labelProps, ...props }) => {
2749
2749
  onChange: handleInputChange,
2750
2750
  value: phoneNumber,
2751
2751
  type: "tel",
2752
- placeholder: "531045453"
2752
+ placeholder: props.placeholder
2753
2753
  }
2754
2754
  ))), /* @__PURE__ */ import_react7.default.createElement(
2755
2755
  "p",
@@ -1918,7 +1918,7 @@ var PhoneInput = ({ labelProps, ...props }) => {
1918
1918
  onChange: handleInputChange,
1919
1919
  value: phoneNumber,
1920
1920
  type: "tel",
1921
- placeholder: "531045453"
1921
+ placeholder: props.placeholder
1922
1922
  }
1923
1923
  ))), /* @__PURE__ */ React2.createElement(
1924
1924
  "p",
@@ -2770,7 +2770,7 @@ var PhoneInput = ({ labelProps, ...props }) => {
2770
2770
  onChange: handleInputChange,
2771
2771
  value: phoneNumber,
2772
2772
  type: "tel",
2773
- placeholder: "531045453"
2773
+ placeholder: props.placeholder
2774
2774
  }
2775
2775
  ))), /* @__PURE__ */ import_react7.default.createElement(
2776
2776
  "p",
@@ -26,7 +26,7 @@ import {
26
26
  UncheckMark,
27
27
  VeryBadEmoji,
28
28
  VeryGoodEmoji
29
- } from "../chunk-V42WPIDL.mjs";
29
+ } from "../chunk-5UYZN5SQ.mjs";
30
30
  import {
31
31
  Button,
32
32
  Card,
@@ -2212,7 +2212,7 @@ var PhoneInput = ({ labelProps, ...props }) => {
2212
2212
  onChange: handleInputChange,
2213
2213
  value: phoneNumber,
2214
2214
  type: "tel",
2215
- placeholder: "531045453"
2215
+ placeholder: props.placeholder
2216
2216
  }
2217
2217
  ))), /* @__PURE__ */ React5.createElement(
2218
2218
  "p",
@@ -289,6 +289,7 @@ interface AvatarProps {
289
289
  radius?: RadiusType;
290
290
  className?: string;
291
291
  icon?: React__default.ReactNode;
292
+ hideIcon?: boolean;
292
293
  }
293
294
  declare const Avatar: React__default.FC<AvatarProps>;
294
295
 
@@ -631,6 +632,7 @@ type PhoneInputTypes = {
631
632
  helperText?: any;
632
633
  label?: string;
633
634
  labelProps?: LabelProps;
635
+ placeholder?: string;
634
636
  handleChange?: (value: string) => void;
635
637
  };
636
638
  declare const PhoneInput: FC<PhoneInputTypes>;
@@ -289,6 +289,7 @@ interface AvatarProps {
289
289
  radius?: RadiusType;
290
290
  className?: string;
291
291
  icon?: React__default.ReactNode;
292
+ hideIcon?: boolean;
292
293
  }
293
294
  declare const Avatar: React__default.FC<AvatarProps>;
294
295
 
@@ -631,6 +632,7 @@ type PhoneInputTypes = {
631
632
  helperText?: any;
632
633
  label?: string;
633
634
  labelProps?: LabelProps;
635
+ placeholder?: string;
634
636
  handleChange?: (value: string) => void;
635
637
  };
636
638
  declare const PhoneInput: FC<PhoneInputTypes>;
@@ -2201,6 +2201,7 @@ var FileUploader = ({ handleFile, className }) => {
2201
2201
  // elements/avatar/Avatar.tsx
2202
2202
  var Avatar = ({
2203
2203
  isUploadable,
2204
+ hideIcon,
2204
2205
  src,
2205
2206
  alt,
2206
2207
  size = "default",
@@ -2261,7 +2262,7 @@ var Avatar = ({
2261
2262
  alt
2262
2263
  }
2263
2264
  ),
2264
- !src && !isUploadable && /* @__PURE__ */ import_react8.default.createElement(
2265
+ !src && !hideIcon && /* @__PURE__ */ import_react8.default.createElement(
2265
2266
  "div",
2266
2267
  {
2267
2268
  className: cn(
@@ -6160,7 +6161,7 @@ var PhoneInput = ({ labelProps, ...props }) => {
6160
6161
  onChange: handleInputChange,
6161
6162
  value: phoneNumber,
6162
6163
  type: "tel",
6163
- placeholder: "531045453"
6164
+ placeholder: props.placeholder
6164
6165
  }
6165
6166
  ))), /* @__PURE__ */ import_react18.default.createElement(
6166
6167
  "p",
@@ -28,7 +28,7 @@ import {
28
28
  TabsTrigger,
29
29
  Textarea,
30
30
  UncheckMark
31
- } from "../chunk-V42WPIDL.mjs";
31
+ } from "../chunk-5UYZN5SQ.mjs";
32
32
  import {
33
33
  Sheet,
34
34
  SheetClose,
@@ -693,6 +693,7 @@ var FileUploader = ({ handleFile, className }) => {
693
693
  // elements/avatar/Avatar.tsx
694
694
  var Avatar = ({
695
695
  isUploadable,
696
+ hideIcon,
696
697
  src,
697
698
  alt,
698
699
  size = "default",
@@ -753,7 +754,7 @@ var Avatar = ({
753
754
  alt
754
755
  }
755
756
  ),
756
- !src && !isUploadable && /* @__PURE__ */ React8.createElement(
757
+ !src && !hideIcon && /* @__PURE__ */ React8.createElement(
757
758
  "div",
758
759
  {
759
760
  className: cn(
package/dist/index.d.mts CHANGED
@@ -414,6 +414,7 @@ interface AvatarProps {
414
414
  radius?: RadiusType;
415
415
  className?: string;
416
416
  icon?: React__default.ReactNode;
417
+ hideIcon?: boolean;
417
418
  }
418
419
  declare const Avatar: React__default.FC<AvatarProps>;
419
420
 
@@ -827,6 +828,7 @@ type PhoneInputTypes = {
827
828
  helperText?: any;
828
829
  label?: string;
829
830
  labelProps?: LabelProps;
831
+ placeholder?: string;
830
832
  handleChange?: (value: string) => void;
831
833
  };
832
834
  declare const PhoneInput: FC<PhoneInputTypes>;
package/dist/index.d.ts CHANGED
@@ -414,6 +414,7 @@ interface AvatarProps {
414
414
  radius?: RadiusType;
415
415
  className?: string;
416
416
  icon?: React__default.ReactNode;
417
+ hideIcon?: boolean;
417
418
  }
418
419
  declare const Avatar: React__default.FC<AvatarProps>;
419
420
 
@@ -827,6 +828,7 @@ type PhoneInputTypes = {
827
828
  helperText?: any;
828
829
  label?: string;
829
830
  labelProps?: LabelProps;
831
+ placeholder?: string;
830
832
  handleChange?: (value: string) => void;
831
833
  };
832
834
  declare const PhoneInput: FC<PhoneInputTypes>;
package/dist/index.js CHANGED
@@ -2267,6 +2267,7 @@ var FileUploader = ({ handleFile, className }) => {
2267
2267
  // elements/avatar/Avatar.tsx
2268
2268
  var Avatar = ({
2269
2269
  isUploadable,
2270
+ hideIcon,
2270
2271
  src,
2271
2272
  alt,
2272
2273
  size = "default",
@@ -2327,7 +2328,7 @@ var Avatar = ({
2327
2328
  alt
2328
2329
  }
2329
2330
  ),
2330
- !src && !isUploadable && /* @__PURE__ */ import_react8.default.createElement(
2331
+ !src && !hideIcon && /* @__PURE__ */ import_react8.default.createElement(
2331
2332
  "div",
2332
2333
  {
2333
2334
  className: cn(
@@ -6226,7 +6227,7 @@ var PhoneInput = ({ labelProps, ...props }) => {
6226
6227
  onChange: handleInputChange,
6227
6228
  value: phoneNumber,
6228
6229
  type: "tel",
6229
- placeholder: "531045453"
6230
+ placeholder: props.placeholder
6230
6231
  }
6231
6232
  ))), /* @__PURE__ */ import_react18.default.createElement(
6232
6233
  "p",
package/dist/index.mjs CHANGED
@@ -2034,6 +2034,7 @@ var FileUploader = ({ handleFile, className }) => {
2034
2034
  // elements/avatar/Avatar.tsx
2035
2035
  var Avatar = ({
2036
2036
  isUploadable,
2037
+ hideIcon,
2037
2038
  src,
2038
2039
  alt,
2039
2040
  size = "default",
@@ -2094,7 +2095,7 @@ var Avatar = ({
2094
2095
  alt
2095
2096
  }
2096
2097
  ),
2097
- !src && !isUploadable && /* @__PURE__ */ React18.createElement(
2098
+ !src && !hideIcon && /* @__PURE__ */ React18.createElement(
2098
2099
  "div",
2099
2100
  {
2100
2101
  className: cn(
@@ -6001,7 +6002,7 @@ var PhoneInput = ({ labelProps, ...props }) => {
6001
6002
  onChange: handleInputChange,
6002
6003
  value: phoneNumber,
6003
6004
  type: "tel",
6004
- placeholder: "531045453"
6005
+ placeholder: props.placeholder
6005
6006
  }
6006
6007
  ))), /* @__PURE__ */ React39.createElement(
6007
6008
  "p",
@@ -16,6 +16,7 @@ type PhoneInputTypes = {
16
16
  helperText?: any;
17
17
  label?: string;
18
18
  labelProps?: LabelProps;
19
+ placeholder?: string;
19
20
  handleChange?: (value: string) => void;
20
21
  };
21
22
  declare const PhoneInput: FC<PhoneInputTypes>;
@@ -16,6 +16,7 @@ type PhoneInputTypes = {
16
16
  helperText?: any;
17
17
  label?: string;
18
18
  labelProps?: LabelProps;
19
+ placeholder?: string;
19
20
  handleChange?: (value: string) => void;
20
21
  };
21
22
  declare const PhoneInput: FC<PhoneInputTypes>;
@@ -38,6 +38,13 @@ module.exports = __toCommonJS(phoneInput_exports);
38
38
  // elements/phoneInput/PhoneInput.tsx
39
39
  var import_react4 = __toESM(require("react"));
40
40
 
41
+ // util/index.ts
42
+ var import_clsx = require("clsx");
43
+ var import_tailwind_merge = require("tailwind-merge");
44
+ function cn(...inputs) {
45
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
46
+ }
47
+
41
48
  // countries.ts
42
49
  var countries = [
43
50
  {
@@ -1731,13 +1738,6 @@ var countries = [
1731
1738
  ];
1732
1739
  var countries_default = countries;
1733
1740
 
1734
- // util/index.ts
1735
- var import_clsx = require("clsx");
1736
- var import_tailwind_merge = require("tailwind-merge");
1737
- function cn(...inputs) {
1738
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
1739
- }
1740
-
1741
1741
  // elements/label/Label.tsx
1742
1742
  var React2 = __toESM(require("react"));
1743
1743
 
@@ -2095,7 +2095,7 @@ var PhoneInput = ({ labelProps, ...props }) => {
2095
2095
  onChange: handleInputChange,
2096
2096
  value: phoneNumber,
2097
2097
  type: "tel",
2098
- placeholder: "531045453"
2098
+ placeholder: props.placeholder
2099
2099
  }
2100
2100
  ))), /* @__PURE__ */ import_react4.default.createElement(
2101
2101
  "p",