@deckai/deck-ui 0.0.20 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/dist/components/AboutCard.cjs +5 -5
  2. package/dist/components/AboutCard.cjs.map +1 -1
  3. package/dist/components/AboutCard.d.cts +4 -3
  4. package/dist/components/AboutCard.d.ts +4 -3
  5. package/dist/components/AboutCard.js +5 -5
  6. package/dist/components/AboutCard.js.map +1 -1
  7. package/dist/components/Accordion.cjs +3 -3
  8. package/dist/components/Accordion.cjs.map +1 -1
  9. package/dist/components/Accordion.d.cts +5 -1
  10. package/dist/components/Accordion.d.ts +5 -1
  11. package/dist/components/Accordion.js +3 -3
  12. package/dist/components/Accordion.js.map +1 -1
  13. package/dist/components/AddWorkCard.cjs +2 -2
  14. package/dist/components/AddWorkCard.cjs.map +1 -1
  15. package/dist/components/AddWorkCard.js +2 -2
  16. package/dist/components/AddWorkCard.js.map +1 -1
  17. package/dist/components/AutocompleteInput.cjs +2 -2
  18. package/dist/components/AutocompleteInput.cjs.map +1 -1
  19. package/dist/components/AutocompleteInput.js +2 -2
  20. package/dist/components/AutocompleteInput.js.map +1 -1
  21. package/dist/components/Avatar.cjs +1 -1
  22. package/dist/components/Avatar.cjs.map +1 -1
  23. package/dist/components/Avatar.d.cts +3 -1
  24. package/dist/components/Avatar.d.ts +3 -1
  25. package/dist/components/Avatar.js +1 -1
  26. package/dist/components/Avatar.js.map +1 -1
  27. package/dist/components/Badge.cjs +4 -4
  28. package/dist/components/Badge.cjs.map +1 -1
  29. package/dist/components/Badge.js +4 -4
  30. package/dist/components/Badge.js.map +1 -1
  31. package/dist/components/Breadcrumbs.cjs +3 -3
  32. package/dist/components/Breadcrumbs.cjs.map +1 -1
  33. package/dist/components/Breadcrumbs.d.cts +1 -1
  34. package/dist/components/Breadcrumbs.d.ts +1 -1
  35. package/dist/components/Breadcrumbs.js +3 -3
  36. package/dist/components/Breadcrumbs.js.map +1 -1
  37. package/dist/components/Button.cjs.map +1 -1
  38. package/dist/components/Button.js.map +1 -1
  39. package/dist/components/Carousel.cjs +1 -1
  40. package/dist/components/Carousel.cjs.map +1 -1
  41. package/dist/components/Carousel.js +1 -1
  42. package/dist/components/Carousel.js.map +1 -1
  43. package/dist/components/Collapsible.cjs +6 -6
  44. package/dist/components/Collapsible.cjs.map +1 -1
  45. package/dist/components/Collapsible.js +6 -6
  46. package/dist/components/Collapsible.js.map +1 -1
  47. package/dist/components/Combobox.cjs +6 -6
  48. package/dist/components/Combobox.cjs.map +1 -1
  49. package/dist/components/Combobox.js +6 -6
  50. package/dist/components/Combobox.js.map +1 -1
  51. package/dist/components/ContactItem.cjs +5 -5
  52. package/dist/components/ContactItem.cjs.map +1 -1
  53. package/dist/components/ContactItem.d.cts +5 -4
  54. package/dist/components/ContactItem.d.ts +5 -4
  55. package/dist/components/ContactItem.js +5 -5
  56. package/dist/components/ContactItem.js.map +1 -1
  57. package/dist/components/Dropdown.cjs +4 -4
  58. package/dist/components/Dropdown.cjs.map +1 -1
  59. package/dist/components/Dropdown.js +4 -4
  60. package/dist/components/Dropdown.js.map +1 -1
  61. package/dist/components/EditButton.cjs +5 -5
  62. package/dist/components/EditButton.cjs.map +1 -1
  63. package/dist/components/EditButton.js +5 -5
  64. package/dist/components/EditButton.js.map +1 -1
  65. package/dist/components/Fallback.cjs +2 -0
  66. package/dist/components/Fallback.cjs.map +1 -0
  67. package/dist/components/Fallback.d.cts +30 -0
  68. package/dist/components/Fallback.d.ts +30 -0
  69. package/dist/components/Fallback.js +2 -0
  70. package/dist/components/Fallback.js.map +1 -0
  71. package/dist/components/Icon.cjs +1 -1
  72. package/dist/components/Icon.cjs.map +1 -1
  73. package/dist/components/Icon.js +1 -1
  74. package/dist/components/Icon.js.map +1 -1
  75. package/dist/components/Input.cjs +4 -4
  76. package/dist/components/Input.cjs.map +1 -1
  77. package/dist/components/Input.d.cts +2 -2
  78. package/dist/components/Input.d.ts +2 -2
  79. package/dist/components/Input.js +4 -4
  80. package/dist/components/Input.js.map +1 -1
  81. package/dist/components/Link.cjs.map +1 -1
  82. package/dist/components/Link.js.map +1 -1
  83. package/dist/components/Logo.cjs +1 -1
  84. package/dist/components/Logo.cjs.map +1 -1
  85. package/dist/components/Logo.js +1 -1
  86. package/dist/components/Logo.js.map +1 -1
  87. package/dist/components/Modal.cjs +1 -1
  88. package/dist/components/Modal.cjs.map +1 -1
  89. package/dist/components/Modal.js +1 -1
  90. package/dist/components/Modal.js.map +1 -1
  91. package/dist/components/MultiSelectCombobox.cjs +2 -2
  92. package/dist/components/MultiSelectCombobox.cjs.map +1 -1
  93. package/dist/components/MultiSelectCombobox.js +2 -2
  94. package/dist/components/MultiSelectCombobox.js.map +1 -1
  95. package/dist/components/Navbar.cjs +7 -7
  96. package/dist/components/Navbar.cjs.map +1 -1
  97. package/dist/components/Navbar.d.cts +5 -5
  98. package/dist/components/Navbar.d.ts +5 -5
  99. package/dist/components/Navbar.js +7 -7
  100. package/dist/components/Navbar.js.map +1 -1
  101. package/dist/components/NavbarItem.cjs +3 -3
  102. package/dist/components/NavbarItem.cjs.map +1 -1
  103. package/dist/components/NavbarItem.js +3 -3
  104. package/dist/components/NavbarItem.js.map +1 -1
  105. package/dist/components/Option.cjs +3 -3
  106. package/dist/components/Option.cjs.map +1 -1
  107. package/dist/components/Option.js +3 -3
  108. package/dist/components/Option.js.map +1 -1
  109. package/dist/components/ProfileCard.cjs +6 -6
  110. package/dist/components/ProfileCard.cjs.map +1 -1
  111. package/dist/components/ProfileCard.d.cts +5 -4
  112. package/dist/components/ProfileCard.d.ts +5 -4
  113. package/dist/components/ProfileCard.js +6 -6
  114. package/dist/components/ProfileCard.js.map +1 -1
  115. package/dist/components/ProgressBar.cjs.map +1 -1
  116. package/dist/components/ProgressBar.js.map +1 -1
  117. package/dist/components/RadioGroup.cjs.map +1 -1
  118. package/dist/components/RadioGroup.js.map +1 -1
  119. package/dist/components/SegmentedTabs.cjs +3 -3
  120. package/dist/components/SegmentedTabs.cjs.map +1 -1
  121. package/dist/components/SegmentedTabs.js +3 -3
  122. package/dist/components/SegmentedTabs.js.map +1 -1
  123. package/dist/components/Sidebar.cjs +1 -1
  124. package/dist/components/Sidebar.cjs.map +1 -1
  125. package/dist/components/Sidebar.js +1 -1
  126. package/dist/components/Sidebar.js.map +1 -1
  127. package/dist/components/SlideButton.cjs.map +1 -1
  128. package/dist/components/SlideButton.js.map +1 -1
  129. package/dist/components/Slider.cjs +1 -1
  130. package/dist/components/Slider.cjs.map +1 -1
  131. package/dist/components/Slider.js +1 -1
  132. package/dist/components/Slider.js.map +1 -1
  133. package/dist/components/SocialCard.cjs +4 -4
  134. package/dist/components/SocialCard.cjs.map +1 -1
  135. package/dist/components/SocialCard.d.cts +2 -1
  136. package/dist/components/SocialCard.d.ts +2 -1
  137. package/dist/components/SocialCard.js +4 -4
  138. package/dist/components/SocialCard.js.map +1 -1
  139. package/dist/components/Spinner.d.cts +2 -2
  140. package/dist/components/Spinner.d.ts +2 -2
  141. package/dist/components/Switch.cjs +1 -1
  142. package/dist/components/Switch.cjs.map +1 -1
  143. package/dist/components/Switch.js +1 -1
  144. package/dist/components/Switch.js.map +1 -1
  145. package/dist/components/Tabs.cjs +4 -4
  146. package/dist/components/Tabs.cjs.map +1 -1
  147. package/dist/components/Tabs.js +4 -4
  148. package/dist/components/Tabs.js.map +1 -1
  149. package/dist/components/Tag.cjs +5 -5
  150. package/dist/components/Tag.cjs.map +1 -1
  151. package/dist/components/Tag.js +5 -5
  152. package/dist/components/Tag.js.map +1 -1
  153. package/dist/components/Text.cjs.map +1 -1
  154. package/dist/components/Text.d.cts +1 -1
  155. package/dist/components/Text.d.ts +1 -1
  156. package/dist/components/Text.js.map +1 -1
  157. package/dist/components/TextArea.cjs.map +1 -1
  158. package/dist/components/TextArea.js.map +1 -1
  159. package/dist/components/Toast.cjs +5 -5
  160. package/dist/components/Toast.cjs.map +1 -1
  161. package/dist/components/Toast.d.cts +2 -2
  162. package/dist/components/Toast.d.ts +2 -2
  163. package/dist/components/Toast.js +5 -5
  164. package/dist/components/Toast.js.map +1 -1
  165. package/dist/components/Tooltip.cjs +2 -2
  166. package/dist/components/Tooltip.cjs.map +1 -1
  167. package/dist/components/Tooltip.js +2 -2
  168. package/dist/components/Tooltip.js.map +1 -1
  169. package/dist/components/VideoPlayer.cjs +2 -2
  170. package/dist/components/VideoPlayer.cjs.map +1 -1
  171. package/dist/components/VideoPlayer.js +2 -2
  172. package/dist/components/VideoPlayer.js.map +1 -1
  173. package/dist/components/WorkCard.cjs +14 -6
  174. package/dist/components/WorkCard.cjs.map +1 -1
  175. package/dist/components/WorkCard.d.cts +8 -5
  176. package/dist/components/WorkCard.d.ts +8 -5
  177. package/dist/components/WorkCard.js +14 -6
  178. package/dist/components/WorkCard.js.map +1 -1
  179. package/dist/index.cjs +8 -8
  180. package/dist/index.cjs.map +1 -1
  181. package/dist/index.d.cts +1 -0
  182. package/dist/index.d.ts +1 -0
  183. package/dist/index.js +8 -8
  184. package/dist/index.js.map +1 -1
  185. package/dist/styles/styles.css +2 -2
  186. package/dist/styles/styles.css.map +1 -1
  187. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/responsive.ts","../../src/components/Icon.tsx"],"names":["cn","inputs","twMerge","clsx","BASE_SIZES","RESPONSIVE_SIZES","getSizeKey","size","getResponsiveSize","baseSize","classes","styles","key","baseKey","responsiveClasses","s","breakpoint","valueStr","value","valueKey","COLOR_MAP","Icon","React","name","color","title","className","style","props","ref","IconComponent","IconMap","responsiveSizeClasses","responsiveSizeStyles"],"mappings":"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","file":"Icon.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const noopFn = () => {};\n","export type Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type ResponsiveSize = number | `${Breakpoint}:${number}`;\n\ntype SizeKey =\n | \"12\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"36\"\n | \"40\"\n | \"42\"\n | \"48\"\n | \"64\"\n | \"72\";\n\n// These constants help Tailwind identify the classes during compilation\nconst BASE_SIZES: Record<SizeKey, string> = {\n \"12\": \"h-[12px] w-[12px]\",\n \"16\": \"h-[16px] w-[16px]\",\n \"18\": \"h-[18px] w-[18px]\",\n \"20\": \"h-[20px] w-[20px]\",\n \"24\": \"h-[24px] w-[24px]\",\n \"32\": \"h-[32px] w-[32px]\",\n \"36\": \"h-[36px] w-[36px]\",\n \"40\": \"h-[40px] w-[40px]\",\n \"42\": \"h-[42px] w-[42px]\",\n \"48\": \"h-[48px] w-[48px]\",\n \"64\": \"h-[64px] w-[64px]\",\n \"72\": \"h-[72px] w-[72px]\"\n};\n\nconst RESPONSIVE_SIZES: Record<Breakpoint, Record<SizeKey, string>> = {\n sm: {\n \"12\": \"sm:h-[12px] sm:w-[12px]\",\n \"16\": \"sm:h-[16px] sm:w-[16px]\",\n \"18\": \"sm:h-[18px] sm:w-[18px]\",\n \"20\": \"sm:h-[20px] sm:w-[20px]\",\n \"24\": \"sm:h-[24px] sm:w-[24px]\",\n \"32\": \"sm:h-[32px] sm:w-[32px]\",\n \"36\": \"sm:h-[36px] sm:w-[36px]\",\n \"40\": \"sm:h-[40px] sm:w-[40px]\",\n \"42\": \"sm:h-[42px] sm:w-[42px]\",\n \"48\": \"sm:h-[48px] sm:w-[48px]\",\n \"64\": \"sm:h-[64px] sm:w-[64px]\",\n \"72\": \"sm:h-[72px] sm:w-[72px]\"\n },\n md: {\n \"12\": \"md:h-[12px] md:w-[12px]\",\n \"16\": \"md:h-[16px] md:w-[16px]\",\n \"18\": \"md:h-[18px] md:w-[18px]\",\n \"20\": \"md:h-[20px] md:w-[20px]\",\n \"24\": \"md:h-[24px] md:w-[24px]\",\n \"32\": \"md:h-[32px] md:w-[32px]\",\n \"36\": \"md:h-[36px] md:w-[36px]\",\n \"40\": \"md:h-[40px] md:w-[40px]\",\n \"42\": \"md:h-[42px] md:w-[42px]\",\n \"48\": \"md:h-[48px] md:w-[48px]\",\n \"64\": \"md:h-[64px] md:w-[64px]\",\n \"72\": \"md:h-[72px] md:w-[72px]\"\n },\n lg: {\n \"12\": \"lg:h-[12px] lg:w-[12px]\",\n \"16\": \"lg:h-[16px] lg:w-[16px]\",\n \"18\": \"lg:h-[18px] lg:w-[18px]\",\n \"20\": \"lg:h-[20px] lg:w-[20px]\",\n \"24\": \"lg:h-[24px] lg:w-[24px]\",\n \"32\": \"lg:h-[32px] lg:w-[32px]\",\n \"36\": \"lg:h-[36px] lg:w-[36px]\",\n \"40\": \"lg:h-[40px] lg:w-[40px]\",\n \"42\": \"lg:h-[42px] lg:w-[42px]\",\n \"48\": \"lg:h-[48px] lg:w-[48px]\",\n \"64\": \"lg:h-[64px] lg:w-[64px]\",\n \"72\": \"lg:h-[72px] lg:w-[72px]\"\n },\n xl: {\n \"12\": \"xl:h-[12px] xl:w-[12px]\",\n \"16\": \"xl:h-[16px] xl:w-[16px]\",\n \"18\": \"xl:h-[18px] xl:w-[18px]\",\n \"20\": \"xl:h-[20px] xl:w-[20px]\",\n \"24\": \"xl:h-[24px] xl:w-[24px]\",\n \"32\": \"xl:h-[32px] xl:w-[32px]\",\n \"36\": \"xl:h-[36px] xl:w-[36px]\",\n \"40\": \"xl:h-[40px] xl:w-[40px]\",\n \"42\": \"xl:h-[42px] xl:w-[42px]\",\n \"48\": \"xl:h-[48px] xl:w-[48px]\",\n \"64\": \"xl:h-[64px] xl:w-[64px]\",\n \"72\": \"xl:h-[72px] xl:w-[72px]\"\n },\n \"2xl\": {\n \"12\": \"2xl:h-[12px] 2xl:w-[12px]\",\n \"16\": \"2xl:h-[16px] 2xl:w-[16px]\",\n \"18\": \"2xl:h-[18px] 2xl:w-[18px]\",\n \"20\": \"2xl:h-[20px] 2xl:w-[20px]\",\n \"24\": \"2xl:h-[24px] 2xl:w-[24px]\",\n \"32\": \"2xl:h-[32px] 2xl:w-[32px]\",\n \"36\": \"2xl:h-[36px] 2xl:w-[36px]\",\n \"40\": \"2xl:h-[40px] 2xl:w-[40px]\",\n \"42\": \"2xl:h-[42px] 2xl:w-[42px]\",\n \"48\": \"2xl:h-[48px] 2xl:w-[48px]\",\n \"64\": \"2xl:h-[64px] 2xl:w-[64px]\",\n \"72\": \"2xl:h-[72px] 2xl:w-[72px]\"\n }\n};\n\nconst getSizeKey = (size: number): SizeKey | undefined => {\n return String(size) as SizeKey;\n};\n\nexport const getResponsiveSize = (\n size: ResponsiveSize | ResponsiveSize[] | undefined,\n baseSize: number = 24\n): {\n responsiveSizeClasses: string;\n responsiveSizeStyles: Record<string, string>;\n} => {\n const classes: string[] = [];\n const styles: Record<string, string> = {};\n\n // If no size provided, use baseSize\n if (size === undefined) {\n const key = getSizeKey(baseSize);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${baseSize}px`;\n styles.width = `${baseSize}px`;\n }\n }\n\n // If size is a number, use that directly\n if (typeof size === \"number\") {\n const key = getSizeKey(size);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${size}px`;\n styles.width = `${size}px`;\n }\n }\n\n // If array of responsive sizes, generate responsive classes\n if (Array.isArray(size)) {\n const baseKey = getSizeKey(baseSize);\n const responsiveClasses = [\n (baseKey && BASE_SIZES[baseKey]) || `h-[${baseSize}px] w-[${baseSize}px]`\n ];\n\n size.forEach((s) => {\n if (typeof s === \"string\") {\n const [breakpoint, valueStr] = s.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const key = getSizeKey(value);\n classes.push(\n (key && RESPONSIVE_SIZES[breakpoint]?.[key]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n });\n\n classes.push(...responsiveClasses);\n }\n\n if (typeof size === \"string\") {\n const [breakpoint, valueStr] = size.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const valueKey = getSizeKey(value);\n classes.push(\n (valueKey && RESPONSIVE_SIZES[breakpoint]?.[valueKey]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n\n return {\n responsiveSizeClasses: classes.join(\" \"),\n responsiveSizeStyles: styles\n };\n};\n","import { IconMap, IconName } from \"@deckai/icons\";\nimport React, { SVGProps } from \"react\";\nimport { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\nimport { ResponsiveSize, getResponsiveSize } from \"../utils/responsive\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: ResponsiveSize | ResponsiveSize[];\n /** @default primary */\n color?: IconColors;\n title?: string;\n className?: string;\n style?: React.CSSProperties;\n} & Omit<SVGProps<SVGSVGElement>, \"aria-hidden\" | \"aria-label\">;\n\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"#080808\",\n secondary: \"#666666\",\n white: \"#ffffff\",\n primaryBlue: \"#089CCB\",\n disabled: \"#888888\",\n danger: \"#FF0000\"\n};\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n name,\n size = 24,\n color = \"primary\",\n title,\n className,\n style = {},\n ...props\n },\n ref\n ) => {\n const IconComponent = IconMap[name];\n const { responsiveSizeClasses, responsiveSizeStyles } = getResponsiveSize(\n size,\n 24\n );\n\n return (\n <div\n className={cn(\n \"flex justify-center items-center\",\n responsiveSizeClasses,\n className\n )}\n style={{\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\n ...responsiveSizeStyles,\n ...style\n }}\n >\n <IconComponent\n ref={ref}\n aria-hidden={!title}\n aria-label={title}\n stroke={name.includes(\"filled\") ? undefined : COLOR_MAP[color]}\n {...props}\n />\n </div>\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n"]}
1
+ {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/responsive.ts","../../src/components/Icon.tsx"],"names":["cn","inputs","twMerge","clsx","BASE_SIZES","RESPONSIVE_SIZES","getSizeKey","size","getResponsiveSize","baseSize","classes","styles","key","baseKey","responsiveClasses","s","breakpoint","valueStr","value","valueKey","COLOR_MAP","Icon","React","name","color","title","className","style","props","ref","IconComponent","IconMap","responsiveSizeClasses","responsiveSizeStyles"],"mappings":"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","file":"Icon.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const noopFn = () => {};\n","export type Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type ResponsiveSize = number | `${Breakpoint}:${number}`;\n\ntype SizeKey =\n | \"12\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"36\"\n | \"40\"\n | \"42\"\n | \"48\"\n | \"64\"\n | \"72\";\n\n// These constants help Tailwind identify the classes during compilation\nconst BASE_SIZES: Record<SizeKey, string> = {\n \"12\": \"h-[12px] w-[12px]\",\n \"16\": \"h-[16px] w-[16px]\",\n \"18\": \"h-[18px] w-[18px]\",\n \"20\": \"h-[20px] w-[20px]\",\n \"24\": \"h-[24px] w-[24px]\",\n \"32\": \"h-[32px] w-[32px]\",\n \"36\": \"h-[36px] w-[36px]\",\n \"40\": \"h-[40px] w-[40px]\",\n \"42\": \"h-[42px] w-[42px]\",\n \"48\": \"h-[48px] w-[48px]\",\n \"64\": \"h-[64px] w-[64px]\",\n \"72\": \"h-[72px] w-[72px]\"\n};\n\nconst RESPONSIVE_SIZES: Record<Breakpoint, Record<SizeKey, string>> = {\n sm: {\n \"12\": \"sm:h-[12px] sm:w-[12px]\",\n \"16\": \"sm:h-[16px] sm:w-[16px]\",\n \"18\": \"sm:h-[18px] sm:w-[18px]\",\n \"20\": \"sm:h-[20px] sm:w-[20px]\",\n \"24\": \"sm:h-[24px] sm:w-[24px]\",\n \"32\": \"sm:h-[32px] sm:w-[32px]\",\n \"36\": \"sm:h-[36px] sm:w-[36px]\",\n \"40\": \"sm:h-[40px] sm:w-[40px]\",\n \"42\": \"sm:h-[42px] sm:w-[42px]\",\n \"48\": \"sm:h-[48px] sm:w-[48px]\",\n \"64\": \"sm:h-[64px] sm:w-[64px]\",\n \"72\": \"sm:h-[72px] sm:w-[72px]\"\n },\n md: {\n \"12\": \"md:h-[12px] md:w-[12px]\",\n \"16\": \"md:h-[16px] md:w-[16px]\",\n \"18\": \"md:h-[18px] md:w-[18px]\",\n \"20\": \"md:h-[20px] md:w-[20px]\",\n \"24\": \"md:h-[24px] md:w-[24px]\",\n \"32\": \"md:h-[32px] md:w-[32px]\",\n \"36\": \"md:h-[36px] md:w-[36px]\",\n \"40\": \"md:h-[40px] md:w-[40px]\",\n \"42\": \"md:h-[42px] md:w-[42px]\",\n \"48\": \"md:h-[48px] md:w-[48px]\",\n \"64\": \"md:h-[64px] md:w-[64px]\",\n \"72\": \"md:h-[72px] md:w-[72px]\"\n },\n lg: {\n \"12\": \"lg:h-[12px] lg:w-[12px]\",\n \"16\": \"lg:h-[16px] lg:w-[16px]\",\n \"18\": \"lg:h-[18px] lg:w-[18px]\",\n \"20\": \"lg:h-[20px] lg:w-[20px]\",\n \"24\": \"lg:h-[24px] lg:w-[24px]\",\n \"32\": \"lg:h-[32px] lg:w-[32px]\",\n \"36\": \"lg:h-[36px] lg:w-[36px]\",\n \"40\": \"lg:h-[40px] lg:w-[40px]\",\n \"42\": \"lg:h-[42px] lg:w-[42px]\",\n \"48\": \"lg:h-[48px] lg:w-[48px]\",\n \"64\": \"lg:h-[64px] lg:w-[64px]\",\n \"72\": \"lg:h-[72px] lg:w-[72px]\"\n },\n xl: {\n \"12\": \"xl:h-[12px] xl:w-[12px]\",\n \"16\": \"xl:h-[16px] xl:w-[16px]\",\n \"18\": \"xl:h-[18px] xl:w-[18px]\",\n \"20\": \"xl:h-[20px] xl:w-[20px]\",\n \"24\": \"xl:h-[24px] xl:w-[24px]\",\n \"32\": \"xl:h-[32px] xl:w-[32px]\",\n \"36\": \"xl:h-[36px] xl:w-[36px]\",\n \"40\": \"xl:h-[40px] xl:w-[40px]\",\n \"42\": \"xl:h-[42px] xl:w-[42px]\",\n \"48\": \"xl:h-[48px] xl:w-[48px]\",\n \"64\": \"xl:h-[64px] xl:w-[64px]\",\n \"72\": \"xl:h-[72px] xl:w-[72px]\"\n },\n \"2xl\": {\n \"12\": \"2xl:h-[12px] 2xl:w-[12px]\",\n \"16\": \"2xl:h-[16px] 2xl:w-[16px]\",\n \"18\": \"2xl:h-[18px] 2xl:w-[18px]\",\n \"20\": \"2xl:h-[20px] 2xl:w-[20px]\",\n \"24\": \"2xl:h-[24px] 2xl:w-[24px]\",\n \"32\": \"2xl:h-[32px] 2xl:w-[32px]\",\n \"36\": \"2xl:h-[36px] 2xl:w-[36px]\",\n \"40\": \"2xl:h-[40px] 2xl:w-[40px]\",\n \"42\": \"2xl:h-[42px] 2xl:w-[42px]\",\n \"48\": \"2xl:h-[48px] 2xl:w-[48px]\",\n \"64\": \"2xl:h-[64px] 2xl:w-[64px]\",\n \"72\": \"2xl:h-[72px] 2xl:w-[72px]\"\n }\n};\n\nconst getSizeKey = (size: number): SizeKey | undefined => {\n return String(size) as SizeKey;\n};\n\nexport const getResponsiveSize = (\n size: ResponsiveSize | ResponsiveSize[] | undefined,\n baseSize: number = 24\n): {\n responsiveSizeClasses: string;\n responsiveSizeStyles: Record<string, string>;\n} => {\n const classes: string[] = [];\n const styles: Record<string, string> = {};\n\n // If no size provided, use baseSize\n if (size === undefined) {\n const key = getSizeKey(baseSize);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${baseSize}px`;\n styles.width = `${baseSize}px`;\n }\n }\n\n // If size is a number, use that directly\n if (typeof size === \"number\") {\n const key = getSizeKey(size);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${size}px`;\n styles.width = `${size}px`;\n }\n }\n\n // If array of responsive sizes, generate responsive classes\n if (Array.isArray(size)) {\n const baseKey = getSizeKey(baseSize);\n const responsiveClasses = [\n (baseKey && BASE_SIZES[baseKey]) || `h-[${baseSize}px] w-[${baseSize}px]`\n ];\n\n size.forEach((s) => {\n if (typeof s === \"string\") {\n const [breakpoint, valueStr] = s.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const key = getSizeKey(value);\n classes.push(\n (key && RESPONSIVE_SIZES[breakpoint]?.[key]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n });\n\n classes.push(...responsiveClasses);\n }\n\n if (typeof size === \"string\") {\n const [breakpoint, valueStr] = size.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const valueKey = getSizeKey(value);\n classes.push(\n (valueKey && RESPONSIVE_SIZES[breakpoint]?.[valueKey]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n\n return {\n responsiveSizeClasses: classes.join(\" \"),\n responsiveSizeStyles: styles\n };\n};\n","import { IconMap, IconName } from \"@deckai/icons\";\nimport React, { SVGProps } from \"react\";\nimport { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\nimport { ResponsiveSize, getResponsiveSize } from \"../utils/responsive\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: ResponsiveSize | ResponsiveSize[];\n /** @default primary */\n color?: IconColors;\n title?: string;\n className?: string;\n style?: React.CSSProperties;\n} & Omit<SVGProps<SVGSVGElement>, \"aria-hidden\" | \"aria-label\">;\n\n// Using CSS variables to support dark mode\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"var(--color-primary)\",\n secondary: \"var(--color-secondary)\",\n white: \"var(--color-white)\",\n primaryBlue: \"var(--color-primary-100)\",\n disabled: \"var(--color-disabled)\",\n danger: \"var(--color-danger)\"\n};\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n name,\n size = 24,\n color = \"primary\",\n title,\n className,\n style = {},\n ...props\n },\n ref\n ) => {\n const IconComponent = IconMap[name];\n const { responsiveSizeClasses, responsiveSizeStyles } = getResponsiveSize(\n size,\n 24\n );\n\n return (\n <div\n className={cn(\n \"flex justify-center items-center\",\n responsiveSizeClasses,\n className\n )}\n style={{\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\n ...responsiveSizeStyles,\n ...style\n }}\n >\n <IconComponent\n ref={ref}\n aria-hidden={!title}\n aria-label={title}\n stroke={name.includes(\"filled\") ? undefined : COLOR_MAP[color]}\n {...props}\n />\n </div>\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n"]}
@@ -1,2 +1,2 @@
1
- import {IconMap}from'@deckai/icons';import d from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';function a(...p){return twMerge(clsx(p))}var w={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},c={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},i=p=>String(p),g=(p,s=24)=>{let e=[],l={};if(p===undefined){let x=i(s);x?e.push(w[x]):(l.height=`${s}px`,l.width=`${s}px`);}if(typeof p=="number"){let x=i(p);x?e.push(w[x]):(l.height=`${p}px`,l.width=`${p}px`);}if(Array.isArray(p)){let x=i(s),o=[x&&w[x]||`h-[${s}px] w-[${s}px]`];p.forEach(n=>{if(typeof n=="string"){let[r,m]=n.split(":"),t=parseInt(m,10),h=i(t);e.push(h&&c[r]?.[h]||`${r}:h-[${t}px] ${r}:w-[${t}px]`);}}),e.push(...o);}if(typeof p=="string"){let[x,o]=p.split(":"),n=parseInt(o,10),r=i(n);e.push(r&&c[x]?.[r]||`${x}:h-[${n}px] ${x}:w-[${n}px]`);}return {responsiveSizeClasses:e.join(" "),responsiveSizeStyles:l}};var S={primary:"#080808",secondary:"#666666",white:"#ffffff",primaryBlue:"#089CCB",disabled:"#888888",danger:"#FF0000"},v=d.forwardRef(({name:p,size:s=24,color:e="primary",title:l,className:x,style:o={},...n},r)=>{let m=IconMap[p],{responsiveSizeClasses:t,responsiveSizeStyles:h}=g(s,24);return d.createElement("div",{className:a("flex justify-center items-center",t,x),style:{"--icon-stroke":S[e],...h,...o}},d.createElement(m,{ref:r,"aria-hidden":!l,"aria-label":l,stroke:p.includes("filled")?undefined:S[e],...n}))});v.displayName="Icon";export{v as Icon};//# sourceMappingURL=Icon.js.map
1
+ import {IconMap}from'@deckai/icons';import a from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';function d(...p){return twMerge(clsx(p))}var w={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},c={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},i=p=>String(p),g=(p,s=24)=>{let e=[],l={};if(p===undefined){let x=i(s);x?e.push(w[x]):(l.height=`${s}px`,l.width=`${s}px`);}if(typeof p=="number"){let x=i(p);x?e.push(w[x]):(l.height=`${p}px`,l.width=`${p}px`);}if(Array.isArray(p)){let x=i(s),n=[x&&w[x]||`h-[${s}px] w-[${s}px]`];p.forEach(r=>{if(typeof r=="string"){let[o,m]=r.split(":"),t=parseInt(m,10),h=i(t);e.push(h&&c[o]?.[h]||`${o}:h-[${t}px] ${o}:w-[${t}px]`);}}),e.push(...n);}if(typeof p=="string"){let[x,n]=p.split(":"),r=parseInt(n,10),o=i(r);e.push(o&&c[x]?.[o]||`${x}:h-[${r}px] ${x}:w-[${r}px]`);}return {responsiveSizeClasses:e.join(" "),responsiveSizeStyles:l}};var y={primary:"var(--color-primary)",secondary:"var(--color-secondary)",white:"var(--color-white)",primaryBlue:"var(--color-primary-100)",disabled:"var(--color-disabled)",danger:"var(--color-danger)"},v=a.forwardRef(({name:p,size:s=24,color:e="primary",title:l,className:x,style:n={},...r},o)=>{let m=IconMap[p],{responsiveSizeClasses:t,responsiveSizeStyles:h}=g(s,24);return a.createElement("div",{className:d("flex justify-center items-center",t,x),style:{"--icon-stroke":y[e],...h,...n}},a.createElement(m,{ref:o,"aria-hidden":!l,"aria-label":l,stroke:p.includes("filled")?undefined:y[e],...r}))});v.displayName="Icon";export{v as Icon};//# sourceMappingURL=Icon.js.map
2
2
  //# sourceMappingURL=Icon.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/responsive.ts","../../src/components/Icon.tsx"],"names":["cn","inputs","twMerge","clsx","BASE_SIZES","RESPONSIVE_SIZES","getSizeKey","size","getResponsiveSize","baseSize","classes","styles","key","baseKey","responsiveClasses","s","breakpoint","valueStr","value","valueKey","COLOR_MAP","Icon","React","name","color","title","className","style","props","ref","IconComponent","IconMap","responsiveSizeClasses","responsiveSizeStyles"],"mappings":"sHAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CAC1C,OAAOC,OAAQC,CAAAA,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCaA,IAAMG,CAAAA,CAAsC,CAC1C,EAAA,CAAM,oBACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBACR,CAEMC,CAAAA,CAAAA,CAAgE,CACpE,EAAA,CAAI,CACF,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,0BACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBACR,CACA,CAAA,EAAA,CAAI,CACF,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACR,CAAA,CACA,EAAI,CAAA,CACF,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,GAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACR,CAAA,CACA,EAAI,CAAA,CACF,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBACR,CACA,CAAA,KAAA,CAAO,CACL,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,4BACN,EAAM,CAAA,2BACR,CACF,CAAA,CAEMC,CAAcC,CAAAA,CAAAA,EACX,MAAOA,CAAAA,CAAI,CAGPC,CAAAA,CAAAA,CAAoB,CAC/BD,CAAAA,CACAE,CAAmB,CAAA,EAAA,GAIhB,CACH,IAAMC,CAAoB,CAAA,EACpBC,CAAAA,CAAAA,CAAiC,EAAC,CAGxC,GAAIJ,CAAAA,GAAS,SAAW,CAAA,CACtB,IAAMK,CAAAA,CAAMN,CAAWG,CAAAA,CAAQ,CAC3BG,CAAAA,CAAAA,CACFF,CAAQ,CAAA,IAAA,CAAKN,CAAWQ,CAAAA,CAAG,CAAC,CAAA,EAE5BD,CAAO,CAAA,MAAA,CAAS,CAAGF,EAAAA,CAAQ,CAC3BE,EAAAA,CAAAA,CAAAA,CAAAA,CAAO,KAAQ,CAAA,CAAA,EAAGF,CAAQ,CAAA,EAAA,CAAA,EAE9B,CAGA,GAAI,OAAOF,CAAAA,EAAS,QAAU,CAAA,CAC5B,IAAMK,CAAAA,CAAMN,CAAWC,CAAAA,CAAI,CACvBK,CAAAA,CAAAA,CACFF,CAAQ,CAAA,IAAA,CAAKN,EAAWQ,CAAG,CAAC,CAE5BD,EAAAA,CAAAA,CAAO,MAAS,CAAA,CAAA,EAAGJ,CAAI,CAAA,EAAA,CAAA,CACvBI,CAAO,CAAA,KAAA,CAAQ,CAAGJ,EAAAA,CAAI,CAE1B,EAAA,CAAA,EAAA,CAGA,GAAI,KAAA,CAAM,OAAQA,CAAAA,CAAI,CAAG,CAAA,CACvB,IAAMM,CAAAA,CAAUP,CAAWG,CAAAA,CAAQ,CAC7BK,CAAAA,CAAAA,CAAoB,CACvBD,CAAAA,EAAWT,CAAWS,CAAAA,CAAO,CAAM,EAAA,CAAA,GAAA,EAAMJ,CAAQ,CAAA,OAAA,EAAUA,CAAQ,CAAA,GAAA,CACtE,CAEAF,CAAAA,CAAAA,CAAK,OAASQ,CAAAA,CAAAA,EAAM,CAClB,GAAI,OAAOA,CAAAA,EAAM,QAAU,CAAA,CACzB,GAAM,CAACC,CAAYC,CAAAA,CAAQ,CAAIF,CAAAA,CAAAA,CAAE,KAAM,CAAA,GAAG,CACpCG,CAAAA,CAAAA,CAAQ,QAASD,CAAAA,CAAAA,CAAU,EAAE,CAAA,CAC7BL,CAAMN,CAAAA,CAAAA,CAAWY,CAAK,CAC5BR,CAAAA,CAAAA,CAAQ,IACLE,CAAAA,CAAAA,EAAOP,CAAiBW,CAAAA,CAAU,CAAIJ,GAAAA,CAAG,CACxC,EAAA,CAAA,EAAGI,CAAU,CAAA,IAAA,EAAOE,CAAK,CAAA,IAAA,EAAOF,CAAU,CAAA,IAAA,EAAOE,CAAK,CAAA,GAAA,CAC1D,EACF,CACF,CAAC,CAAA,CAEDR,CAAQ,CAAA,IAAA,CAAK,GAAGI,CAAiB,EACnC,CAEA,GAAI,OAAOP,CAAS,EAAA,QAAA,CAAU,CAC5B,GAAM,CAACS,CAAAA,CAAYC,CAAQ,CAAA,CAAIV,CAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CACvCW,CAAQ,CAAA,QAAA,CAASD,CAAU,CAAA,EAAE,CAC7BE,CAAAA,CAAAA,CAAWb,CAAWY,CAAAA,CAAK,CACjCR,CAAAA,CAAAA,CAAQ,IACLS,CAAAA,CAAAA,EAAYd,CAAiBW,CAAAA,CAAU,CAAIG,GAAAA,CAAQ,CAClD,EAAA,CAAA,EAAGH,CAAU,CAAA,IAAA,EAAOE,CAAK,CAAOF,IAAAA,EAAAA,CAAU,CAAOE,IAAAA,EAAAA,CAAK,CAC1D,GAAA,CAAA,EACF,CAEA,OAAO,CACL,qBAAA,CAAuBR,CAAQ,CAAA,IAAA,CAAK,GAAG,CAAA,CACvC,oBAAsBC,CAAAA,CACxB,CACF,CAAA,CCjKMS,IAAAA,CAAAA,CAAwC,CAC5C,OAAA,CAAS,SACT,CAAA,SAAA,CAAW,SACX,CAAA,KAAA,CAAO,SACP,CAAA,WAAA,CAAa,SACb,CAAA,QAAA,CAAU,SACV,CAAA,MAAA,CAAQ,SACV,CAAA,CAEaC,CAAOC,CAAAA,CAAAA,CAAM,UACxB,CAAA,CACE,CACE,IAAA,CAAAC,CACA,CAAA,IAAA,CAAAhB,CAAO,CAAA,EAAA,CACP,KAAAiB,CAAAA,CAAAA,CAAQ,SACR,CAAA,KAAA,CAAAC,CACA,CAAA,SAAA,CAAAC,CACA,CAAA,KAAA,CAAAC,CAAQ,CAAA,EACR,CAAA,GAAGC,CACL,CAAA,CACAC,CACG,GAAA,CACH,IAAMC,CAAAA,CAAgBC,QAAQR,CAAI,CAAA,CAC5B,CAAE,qBAAA,CAAAS,CAAuB,CAAA,oBAAA,CAAAC,CAAqB,CAAA,CAAIzB,CACtDD,CAAAA,CAAAA,CACA,EACF,CAAA,CAEA,OACEe,CAAAA,CAAA,aAAC,CAAA,KAAA,CAAA,CACC,SAAWtB,CAAAA,CAAAA,CACT,kCACAgC,CAAAA,CAAAA,CACAN,CACF,CAAA,CACA,KAAO,CAAA,CACJ,eAA4BN,CAAAA,CAAAA,CAAUI,CAAK,CAAA,CAC5C,GAAGS,CAAAA,CACH,GAAGN,CACL,CAEAL,CAAAA,CAAAA,CAAAA,CAAA,aAACQ,CAAAA,CAAAA,CAAA,CACC,GAAA,CAAKD,CACL,CAAA,aAAA,CAAa,CAACJ,CAAAA,CACd,YAAYA,CAAAA,CAAAA,CACZ,MAAQF,CAAAA,CAAAA,CAAK,QAAS,CAAA,QAAQ,CAAI,CAAA,SAAA,CAAYH,CAAUI,CAAAA,CAAK,CAC5D,CAAA,GAAGI,CACN,CAAA,CACF,CAEJ,CACF,EAEAP,CAAAA,CAAK,WAAc,CAAA,MAAA","file":"Icon.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const noopFn = () => {};\n","export type Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type ResponsiveSize = number | `${Breakpoint}:${number}`;\n\ntype SizeKey =\n | \"12\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"36\"\n | \"40\"\n | \"42\"\n | \"48\"\n | \"64\"\n | \"72\";\n\n// These constants help Tailwind identify the classes during compilation\nconst BASE_SIZES: Record<SizeKey, string> = {\n \"12\": \"h-[12px] w-[12px]\",\n \"16\": \"h-[16px] w-[16px]\",\n \"18\": \"h-[18px] w-[18px]\",\n \"20\": \"h-[20px] w-[20px]\",\n \"24\": \"h-[24px] w-[24px]\",\n \"32\": \"h-[32px] w-[32px]\",\n \"36\": \"h-[36px] w-[36px]\",\n \"40\": \"h-[40px] w-[40px]\",\n \"42\": \"h-[42px] w-[42px]\",\n \"48\": \"h-[48px] w-[48px]\",\n \"64\": \"h-[64px] w-[64px]\",\n \"72\": \"h-[72px] w-[72px]\"\n};\n\nconst RESPONSIVE_SIZES: Record<Breakpoint, Record<SizeKey, string>> = {\n sm: {\n \"12\": \"sm:h-[12px] sm:w-[12px]\",\n \"16\": \"sm:h-[16px] sm:w-[16px]\",\n \"18\": \"sm:h-[18px] sm:w-[18px]\",\n \"20\": \"sm:h-[20px] sm:w-[20px]\",\n \"24\": \"sm:h-[24px] sm:w-[24px]\",\n \"32\": \"sm:h-[32px] sm:w-[32px]\",\n \"36\": \"sm:h-[36px] sm:w-[36px]\",\n \"40\": \"sm:h-[40px] sm:w-[40px]\",\n \"42\": \"sm:h-[42px] sm:w-[42px]\",\n \"48\": \"sm:h-[48px] sm:w-[48px]\",\n \"64\": \"sm:h-[64px] sm:w-[64px]\",\n \"72\": \"sm:h-[72px] sm:w-[72px]\"\n },\n md: {\n \"12\": \"md:h-[12px] md:w-[12px]\",\n \"16\": \"md:h-[16px] md:w-[16px]\",\n \"18\": \"md:h-[18px] md:w-[18px]\",\n \"20\": \"md:h-[20px] md:w-[20px]\",\n \"24\": \"md:h-[24px] md:w-[24px]\",\n \"32\": \"md:h-[32px] md:w-[32px]\",\n \"36\": \"md:h-[36px] md:w-[36px]\",\n \"40\": \"md:h-[40px] md:w-[40px]\",\n \"42\": \"md:h-[42px] md:w-[42px]\",\n \"48\": \"md:h-[48px] md:w-[48px]\",\n \"64\": \"md:h-[64px] md:w-[64px]\",\n \"72\": \"md:h-[72px] md:w-[72px]\"\n },\n lg: {\n \"12\": \"lg:h-[12px] lg:w-[12px]\",\n \"16\": \"lg:h-[16px] lg:w-[16px]\",\n \"18\": \"lg:h-[18px] lg:w-[18px]\",\n \"20\": \"lg:h-[20px] lg:w-[20px]\",\n \"24\": \"lg:h-[24px] lg:w-[24px]\",\n \"32\": \"lg:h-[32px] lg:w-[32px]\",\n \"36\": \"lg:h-[36px] lg:w-[36px]\",\n \"40\": \"lg:h-[40px] lg:w-[40px]\",\n \"42\": \"lg:h-[42px] lg:w-[42px]\",\n \"48\": \"lg:h-[48px] lg:w-[48px]\",\n \"64\": \"lg:h-[64px] lg:w-[64px]\",\n \"72\": \"lg:h-[72px] lg:w-[72px]\"\n },\n xl: {\n \"12\": \"xl:h-[12px] xl:w-[12px]\",\n \"16\": \"xl:h-[16px] xl:w-[16px]\",\n \"18\": \"xl:h-[18px] xl:w-[18px]\",\n \"20\": \"xl:h-[20px] xl:w-[20px]\",\n \"24\": \"xl:h-[24px] xl:w-[24px]\",\n \"32\": \"xl:h-[32px] xl:w-[32px]\",\n \"36\": \"xl:h-[36px] xl:w-[36px]\",\n \"40\": \"xl:h-[40px] xl:w-[40px]\",\n \"42\": \"xl:h-[42px] xl:w-[42px]\",\n \"48\": \"xl:h-[48px] xl:w-[48px]\",\n \"64\": \"xl:h-[64px] xl:w-[64px]\",\n \"72\": \"xl:h-[72px] xl:w-[72px]\"\n },\n \"2xl\": {\n \"12\": \"2xl:h-[12px] 2xl:w-[12px]\",\n \"16\": \"2xl:h-[16px] 2xl:w-[16px]\",\n \"18\": \"2xl:h-[18px] 2xl:w-[18px]\",\n \"20\": \"2xl:h-[20px] 2xl:w-[20px]\",\n \"24\": \"2xl:h-[24px] 2xl:w-[24px]\",\n \"32\": \"2xl:h-[32px] 2xl:w-[32px]\",\n \"36\": \"2xl:h-[36px] 2xl:w-[36px]\",\n \"40\": \"2xl:h-[40px] 2xl:w-[40px]\",\n \"42\": \"2xl:h-[42px] 2xl:w-[42px]\",\n \"48\": \"2xl:h-[48px] 2xl:w-[48px]\",\n \"64\": \"2xl:h-[64px] 2xl:w-[64px]\",\n \"72\": \"2xl:h-[72px] 2xl:w-[72px]\"\n }\n};\n\nconst getSizeKey = (size: number): SizeKey | undefined => {\n return String(size) as SizeKey;\n};\n\nexport const getResponsiveSize = (\n size: ResponsiveSize | ResponsiveSize[] | undefined,\n baseSize: number = 24\n): {\n responsiveSizeClasses: string;\n responsiveSizeStyles: Record<string, string>;\n} => {\n const classes: string[] = [];\n const styles: Record<string, string> = {};\n\n // If no size provided, use baseSize\n if (size === undefined) {\n const key = getSizeKey(baseSize);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${baseSize}px`;\n styles.width = `${baseSize}px`;\n }\n }\n\n // If size is a number, use that directly\n if (typeof size === \"number\") {\n const key = getSizeKey(size);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${size}px`;\n styles.width = `${size}px`;\n }\n }\n\n // If array of responsive sizes, generate responsive classes\n if (Array.isArray(size)) {\n const baseKey = getSizeKey(baseSize);\n const responsiveClasses = [\n (baseKey && BASE_SIZES[baseKey]) || `h-[${baseSize}px] w-[${baseSize}px]`\n ];\n\n size.forEach((s) => {\n if (typeof s === \"string\") {\n const [breakpoint, valueStr] = s.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const key = getSizeKey(value);\n classes.push(\n (key && RESPONSIVE_SIZES[breakpoint]?.[key]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n });\n\n classes.push(...responsiveClasses);\n }\n\n if (typeof size === \"string\") {\n const [breakpoint, valueStr] = size.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const valueKey = getSizeKey(value);\n classes.push(\n (valueKey && RESPONSIVE_SIZES[breakpoint]?.[valueKey]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n\n return {\n responsiveSizeClasses: classes.join(\" \"),\n responsiveSizeStyles: styles\n };\n};\n","import { IconMap, IconName } from \"@deckai/icons\";\nimport React, { SVGProps } from \"react\";\nimport { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\nimport { ResponsiveSize, getResponsiveSize } from \"../utils/responsive\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: ResponsiveSize | ResponsiveSize[];\n /** @default primary */\n color?: IconColors;\n title?: string;\n className?: string;\n style?: React.CSSProperties;\n} & Omit<SVGProps<SVGSVGElement>, \"aria-hidden\" | \"aria-label\">;\n\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"#080808\",\n secondary: \"#666666\",\n white: \"#ffffff\",\n primaryBlue: \"#089CCB\",\n disabled: \"#888888\",\n danger: \"#FF0000\"\n};\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n name,\n size = 24,\n color = \"primary\",\n title,\n className,\n style = {},\n ...props\n },\n ref\n ) => {\n const IconComponent = IconMap[name];\n const { responsiveSizeClasses, responsiveSizeStyles } = getResponsiveSize(\n size,\n 24\n );\n\n return (\n <div\n className={cn(\n \"flex justify-center items-center\",\n responsiveSizeClasses,\n className\n )}\n style={{\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\n ...responsiveSizeStyles,\n ...style\n }}\n >\n <IconComponent\n ref={ref}\n aria-hidden={!title}\n aria-label={title}\n stroke={name.includes(\"filled\") ? undefined : COLOR_MAP[color]}\n {...props}\n />\n </div>\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n"]}
1
+ {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/responsive.ts","../../src/components/Icon.tsx"],"names":["cn","inputs","twMerge","clsx","BASE_SIZES","RESPONSIVE_SIZES","getSizeKey","size","getResponsiveSize","baseSize","classes","styles","key","baseKey","responsiveClasses","s","breakpoint","valueStr","value","valueKey","COLOR_MAP","Icon","React","name","color","title","className","style","props","ref","IconComponent","IconMap","responsiveSizeClasses","responsiveSizeStyles"],"mappings":"sHAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CAC1C,OAAOC,OAAQC,CAAAA,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCaA,IAAMG,CAAAA,CAAsC,CAC1C,EAAA,CAAM,oBACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBAAA,CACN,EAAM,CAAA,mBACR,CAEMC,CAAAA,CAAAA,CAAgE,CACpE,EAAA,CAAI,CACF,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,0BACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBACR,CACA,CAAA,EAAA,CAAI,CACF,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACR,CAAA,CACA,EAAI,CAAA,CACF,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,GAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACN,CAAA,EAAA,CAAM,yBACR,CAAA,CACA,EAAI,CAAA,CACF,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBAAA,CACN,EAAM,CAAA,yBACR,CACA,CAAA,KAAA,CAAO,CACL,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,2BACN,CAAA,EAAA,CAAM,4BACN,EAAM,CAAA,2BACR,CACF,CAAA,CAEMC,CAAcC,CAAAA,CAAAA,EACX,MAAOA,CAAAA,CAAI,CAGPC,CAAAA,CAAAA,CAAoB,CAC/BD,CAAAA,CACAE,CAAmB,CAAA,EAAA,GAIhB,CACH,IAAMC,CAAoB,CAAA,EACpBC,CAAAA,CAAAA,CAAiC,EAAC,CAGxC,GAAIJ,CAAAA,GAAS,SAAW,CAAA,CACtB,IAAMK,CAAAA,CAAMN,CAAWG,CAAAA,CAAQ,CAC3BG,CAAAA,CAAAA,CACFF,CAAQ,CAAA,IAAA,CAAKN,CAAWQ,CAAAA,CAAG,CAAC,CAAA,EAE5BD,CAAO,CAAA,MAAA,CAAS,CAAGF,EAAAA,CAAQ,CAC3BE,EAAAA,CAAAA,CAAAA,CAAAA,CAAO,KAAQ,CAAA,CAAA,EAAGF,CAAQ,CAAA,EAAA,CAAA,EAE9B,CAGA,GAAI,OAAOF,CAAAA,EAAS,QAAU,CAAA,CAC5B,IAAMK,CAAAA,CAAMN,CAAWC,CAAAA,CAAI,CACvBK,CAAAA,CAAAA,CACFF,CAAQ,CAAA,IAAA,CAAKN,EAAWQ,CAAG,CAAC,CAE5BD,EAAAA,CAAAA,CAAO,MAAS,CAAA,CAAA,EAAGJ,CAAI,CAAA,EAAA,CAAA,CACvBI,CAAO,CAAA,KAAA,CAAQ,CAAGJ,EAAAA,CAAI,CAE1B,EAAA,CAAA,EAAA,CAGA,GAAI,KAAA,CAAM,OAAQA,CAAAA,CAAI,CAAG,CAAA,CACvB,IAAMM,CAAAA,CAAUP,CAAWG,CAAAA,CAAQ,CAC7BK,CAAAA,CAAAA,CAAoB,CACvBD,CAAAA,EAAWT,CAAWS,CAAAA,CAAO,CAAM,EAAA,CAAA,GAAA,EAAMJ,CAAQ,CAAA,OAAA,EAAUA,CAAQ,CAAA,GAAA,CACtE,CAEAF,CAAAA,CAAAA,CAAK,OAASQ,CAAAA,CAAAA,EAAM,CAClB,GAAI,OAAOA,CAAAA,EAAM,QAAU,CAAA,CACzB,GAAM,CAACC,CAAYC,CAAAA,CAAQ,CAAIF,CAAAA,CAAAA,CAAE,KAAM,CAAA,GAAG,CACpCG,CAAAA,CAAAA,CAAQ,QAASD,CAAAA,CAAAA,CAAU,EAAE,CAAA,CAC7BL,CAAMN,CAAAA,CAAAA,CAAWY,CAAK,CAC5BR,CAAAA,CAAAA,CAAQ,IACLE,CAAAA,CAAAA,EAAOP,CAAiBW,CAAAA,CAAU,CAAIJ,GAAAA,CAAG,CACxC,EAAA,CAAA,EAAGI,CAAU,CAAA,IAAA,EAAOE,CAAK,CAAA,IAAA,EAAOF,CAAU,CAAA,IAAA,EAAOE,CAAK,CAAA,GAAA,CAC1D,EACF,CACF,CAAC,CAAA,CAEDR,CAAQ,CAAA,IAAA,CAAK,GAAGI,CAAiB,EACnC,CAEA,GAAI,OAAOP,CAAS,EAAA,QAAA,CAAU,CAC5B,GAAM,CAACS,CAAAA,CAAYC,CAAQ,CAAA,CAAIV,CAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CACvCW,CAAQ,CAAA,QAAA,CAASD,CAAU,CAAA,EAAE,CAC7BE,CAAAA,CAAAA,CAAWb,CAAWY,CAAAA,CAAK,CACjCR,CAAAA,CAAAA,CAAQ,IACLS,CAAAA,CAAAA,EAAYd,CAAiBW,CAAAA,CAAU,CAAIG,GAAAA,CAAQ,CAClD,EAAA,CAAA,EAAGH,CAAU,CAAA,IAAA,EAAOE,CAAK,CAAOF,IAAAA,EAAAA,CAAU,CAAOE,IAAAA,EAAAA,CAAK,CAC1D,GAAA,CAAA,EACF,CAEA,OAAO,CACL,qBAAA,CAAuBR,CAAQ,CAAA,IAAA,CAAK,GAAG,CAAA,CACvC,oBAAsBC,CAAAA,CACxB,CACF,CAAA,CChKMS,IAAAA,CAAAA,CAAwC,CAC5C,OAAA,CAAS,sBACT,CAAA,SAAA,CAAW,wBACX,CAAA,KAAA,CAAO,oBACP,CAAA,WAAA,CAAa,0BACb,CAAA,QAAA,CAAU,uBACV,CAAA,MAAA,CAAQ,qBACV,CAAA,CAEaC,CAAOC,CAAAA,CAAAA,CAAM,UACxB,CAAA,CACE,CACE,IAAA,CAAAC,CACA,CAAA,IAAA,CAAAhB,CAAO,CAAA,EAAA,CACP,KAAAiB,CAAAA,CAAAA,CAAQ,SACR,CAAA,KAAA,CAAAC,CACA,CAAA,SAAA,CAAAC,CACA,CAAA,KAAA,CAAAC,CAAQ,CAAA,EACR,CAAA,GAAGC,CACL,CAAA,CACAC,CACG,GAAA,CACH,IAAMC,CAAAA,CAAgBC,QAAQR,CAAI,CAAA,CAC5B,CAAE,qBAAA,CAAAS,CAAuB,CAAA,oBAAA,CAAAC,CAAqB,CAAA,CAAIzB,CACtDD,CAAAA,CAAAA,CACA,EACF,CAAA,CAEA,OACEe,CAAAA,CAAA,aAAC,CAAA,KAAA,CAAA,CACC,SAAWtB,CAAAA,CAAAA,CACT,kCACAgC,CAAAA,CAAAA,CACAN,CACF,CAAA,CACA,KAAO,CAAA,CACJ,eAA4BN,CAAAA,CAAAA,CAAUI,CAAK,CAAA,CAC5C,GAAGS,CAAAA,CACH,GAAGN,CACL,CAEAL,CAAAA,CAAAA,CAAAA,CAAA,aAACQ,CAAAA,CAAAA,CAAA,CACC,GAAA,CAAKD,CACL,CAAA,aAAA,CAAa,CAACJ,CAAAA,CACd,YAAYA,CAAAA,CAAAA,CACZ,MAAQF,CAAAA,CAAAA,CAAK,QAAS,CAAA,QAAQ,CAAI,CAAA,SAAA,CAAYH,CAAUI,CAAAA,CAAK,CAC5D,CAAA,GAAGI,CACN,CAAA,CACF,CAEJ,CACF,EAEAP,CAAAA,CAAK,WAAc,CAAA,MAAA","file":"Icon.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const noopFn = () => {};\n","export type Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type ResponsiveSize = number | `${Breakpoint}:${number}`;\n\ntype SizeKey =\n | \"12\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"36\"\n | \"40\"\n | \"42\"\n | \"48\"\n | \"64\"\n | \"72\";\n\n// These constants help Tailwind identify the classes during compilation\nconst BASE_SIZES: Record<SizeKey, string> = {\n \"12\": \"h-[12px] w-[12px]\",\n \"16\": \"h-[16px] w-[16px]\",\n \"18\": \"h-[18px] w-[18px]\",\n \"20\": \"h-[20px] w-[20px]\",\n \"24\": \"h-[24px] w-[24px]\",\n \"32\": \"h-[32px] w-[32px]\",\n \"36\": \"h-[36px] w-[36px]\",\n \"40\": \"h-[40px] w-[40px]\",\n \"42\": \"h-[42px] w-[42px]\",\n \"48\": \"h-[48px] w-[48px]\",\n \"64\": \"h-[64px] w-[64px]\",\n \"72\": \"h-[72px] w-[72px]\"\n};\n\nconst RESPONSIVE_SIZES: Record<Breakpoint, Record<SizeKey, string>> = {\n sm: {\n \"12\": \"sm:h-[12px] sm:w-[12px]\",\n \"16\": \"sm:h-[16px] sm:w-[16px]\",\n \"18\": \"sm:h-[18px] sm:w-[18px]\",\n \"20\": \"sm:h-[20px] sm:w-[20px]\",\n \"24\": \"sm:h-[24px] sm:w-[24px]\",\n \"32\": \"sm:h-[32px] sm:w-[32px]\",\n \"36\": \"sm:h-[36px] sm:w-[36px]\",\n \"40\": \"sm:h-[40px] sm:w-[40px]\",\n \"42\": \"sm:h-[42px] sm:w-[42px]\",\n \"48\": \"sm:h-[48px] sm:w-[48px]\",\n \"64\": \"sm:h-[64px] sm:w-[64px]\",\n \"72\": \"sm:h-[72px] sm:w-[72px]\"\n },\n md: {\n \"12\": \"md:h-[12px] md:w-[12px]\",\n \"16\": \"md:h-[16px] md:w-[16px]\",\n \"18\": \"md:h-[18px] md:w-[18px]\",\n \"20\": \"md:h-[20px] md:w-[20px]\",\n \"24\": \"md:h-[24px] md:w-[24px]\",\n \"32\": \"md:h-[32px] md:w-[32px]\",\n \"36\": \"md:h-[36px] md:w-[36px]\",\n \"40\": \"md:h-[40px] md:w-[40px]\",\n \"42\": \"md:h-[42px] md:w-[42px]\",\n \"48\": \"md:h-[48px] md:w-[48px]\",\n \"64\": \"md:h-[64px] md:w-[64px]\",\n \"72\": \"md:h-[72px] md:w-[72px]\"\n },\n lg: {\n \"12\": \"lg:h-[12px] lg:w-[12px]\",\n \"16\": \"lg:h-[16px] lg:w-[16px]\",\n \"18\": \"lg:h-[18px] lg:w-[18px]\",\n \"20\": \"lg:h-[20px] lg:w-[20px]\",\n \"24\": \"lg:h-[24px] lg:w-[24px]\",\n \"32\": \"lg:h-[32px] lg:w-[32px]\",\n \"36\": \"lg:h-[36px] lg:w-[36px]\",\n \"40\": \"lg:h-[40px] lg:w-[40px]\",\n \"42\": \"lg:h-[42px] lg:w-[42px]\",\n \"48\": \"lg:h-[48px] lg:w-[48px]\",\n \"64\": \"lg:h-[64px] lg:w-[64px]\",\n \"72\": \"lg:h-[72px] lg:w-[72px]\"\n },\n xl: {\n \"12\": \"xl:h-[12px] xl:w-[12px]\",\n \"16\": \"xl:h-[16px] xl:w-[16px]\",\n \"18\": \"xl:h-[18px] xl:w-[18px]\",\n \"20\": \"xl:h-[20px] xl:w-[20px]\",\n \"24\": \"xl:h-[24px] xl:w-[24px]\",\n \"32\": \"xl:h-[32px] xl:w-[32px]\",\n \"36\": \"xl:h-[36px] xl:w-[36px]\",\n \"40\": \"xl:h-[40px] xl:w-[40px]\",\n \"42\": \"xl:h-[42px] xl:w-[42px]\",\n \"48\": \"xl:h-[48px] xl:w-[48px]\",\n \"64\": \"xl:h-[64px] xl:w-[64px]\",\n \"72\": \"xl:h-[72px] xl:w-[72px]\"\n },\n \"2xl\": {\n \"12\": \"2xl:h-[12px] 2xl:w-[12px]\",\n \"16\": \"2xl:h-[16px] 2xl:w-[16px]\",\n \"18\": \"2xl:h-[18px] 2xl:w-[18px]\",\n \"20\": \"2xl:h-[20px] 2xl:w-[20px]\",\n \"24\": \"2xl:h-[24px] 2xl:w-[24px]\",\n \"32\": \"2xl:h-[32px] 2xl:w-[32px]\",\n \"36\": \"2xl:h-[36px] 2xl:w-[36px]\",\n \"40\": \"2xl:h-[40px] 2xl:w-[40px]\",\n \"42\": \"2xl:h-[42px] 2xl:w-[42px]\",\n \"48\": \"2xl:h-[48px] 2xl:w-[48px]\",\n \"64\": \"2xl:h-[64px] 2xl:w-[64px]\",\n \"72\": \"2xl:h-[72px] 2xl:w-[72px]\"\n }\n};\n\nconst getSizeKey = (size: number): SizeKey | undefined => {\n return String(size) as SizeKey;\n};\n\nexport const getResponsiveSize = (\n size: ResponsiveSize | ResponsiveSize[] | undefined,\n baseSize: number = 24\n): {\n responsiveSizeClasses: string;\n responsiveSizeStyles: Record<string, string>;\n} => {\n const classes: string[] = [];\n const styles: Record<string, string> = {};\n\n // If no size provided, use baseSize\n if (size === undefined) {\n const key = getSizeKey(baseSize);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${baseSize}px`;\n styles.width = `${baseSize}px`;\n }\n }\n\n // If size is a number, use that directly\n if (typeof size === \"number\") {\n const key = getSizeKey(size);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${size}px`;\n styles.width = `${size}px`;\n }\n }\n\n // If array of responsive sizes, generate responsive classes\n if (Array.isArray(size)) {\n const baseKey = getSizeKey(baseSize);\n const responsiveClasses = [\n (baseKey && BASE_SIZES[baseKey]) || `h-[${baseSize}px] w-[${baseSize}px]`\n ];\n\n size.forEach((s) => {\n if (typeof s === \"string\") {\n const [breakpoint, valueStr] = s.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const key = getSizeKey(value);\n classes.push(\n (key && RESPONSIVE_SIZES[breakpoint]?.[key]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n });\n\n classes.push(...responsiveClasses);\n }\n\n if (typeof size === \"string\") {\n const [breakpoint, valueStr] = size.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const valueKey = getSizeKey(value);\n classes.push(\n (valueKey && RESPONSIVE_SIZES[breakpoint]?.[valueKey]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n\n return {\n responsiveSizeClasses: classes.join(\" \"),\n responsiveSizeStyles: styles\n };\n};\n","import { IconMap, IconName } from \"@deckai/icons\";\nimport React, { SVGProps } from \"react\";\nimport { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\nimport { ResponsiveSize, getResponsiveSize } from \"../utils/responsive\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: ResponsiveSize | ResponsiveSize[];\n /** @default primary */\n color?: IconColors;\n title?: string;\n className?: string;\n style?: React.CSSProperties;\n} & Omit<SVGProps<SVGSVGElement>, \"aria-hidden\" | \"aria-label\">;\n\n// Using CSS variables to support dark mode\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"var(--color-primary)\",\n secondary: \"var(--color-secondary)\",\n white: \"var(--color-white)\",\n primaryBlue: \"var(--color-primary-100)\",\n disabled: \"var(--color-disabled)\",\n danger: \"var(--color-danger)\"\n};\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n name,\n size = 24,\n color = \"primary\",\n title,\n className,\n style = {},\n ...props\n },\n ref\n ) => {\n const IconComponent = IconMap[name];\n const { responsiveSizeClasses, responsiveSizeStyles } = getResponsiveSize(\n size,\n 24\n );\n\n return (\n <div\n className={cn(\n \"flex justify-center items-center\",\n responsiveSizeClasses,\n className\n )}\n style={{\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\n ...responsiveSizeStyles,\n ...style\n }}\n >\n <IconComponent\n ref={ref}\n aria-hidden={!title}\n aria-label={title}\n stroke={name.includes(\"filled\") ? undefined : COLOR_MAP[color]}\n {...props}\n />\n </div>\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n"]}
@@ -1,8 +1,8 @@
1
- 'use strict';var p=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),icons=require('@deckai/icons');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var p__namespace=/*#__PURE__*/_interopNamespace(p);function h(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var v="ring-2 ring-primary-100";var T={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},C={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},g=e=>String(e),A=(e,n=24)=>{let t=[],r={};if(e===undefined){let s=g(n);s?t.push(T[s]):(r.height=`${n}px`,r.width=`${n}px`);}if(typeof e=="number"){let s=g(e);s?t.push(T[s]):(r.height=`${e}px`,r.width=`${e}px`);}if(Array.isArray(e)){let s=g(n),a=[s&&T[s]||`h-[${n}px] w-[${n}px]`];e.forEach(o=>{if(typeof o=="string"){let[l,m]=o.split(":"),x=parseInt(m,10),c=g(x);t.push(c&&C[l]?.[c]||`${l}:h-[${x}px] ${l}:w-[${x}px]`);}}),t.push(...a);}if(typeof e=="string"){let[s,a]=e.split(":"),o=parseInt(a,10),l=g(o);t.push(l&&C[s]?.[l]||`${s}:h-[${o}px] ${s}:w-[${o}px]`);}return {responsiveSizeClasses:t.join(" "),responsiveSizeStyles:r}};var k={primary:"#080808",secondary:"#666666",white:"#ffffff",primaryBlue:"#089CCB",disabled:"#888888",danger:"#FF0000"},b=p__namespace.default.forwardRef(({name:e,size:n=24,color:t="primary",title:r,className:s,style:a={},...o},l)=>{let m=icons.IconMap[e],{responsiveSizeClasses:x,responsiveSizeStyles:c}=A(n,24);return p__namespace.default.createElement("div",{className:h("flex justify-center items-center",x,s),style:{"--icon-stroke":k[t],...c,...a}},p__namespace.default.createElement(m,{ref:l,"aria-hidden":!r,"aria-label":r,stroke:e.includes("filled")?undefined:k[t],...o}))});b.displayName="Icon";var W={xl:"h1",lg:"h1",md:"h2",sm:"h3",xs:"h4"},_=e=>{let[n,t]=e.split("-");return n==="heading"?W[t]||"p":n==="label"?"label":"p"},q={light:"font-light",regular:"font-regular",semibold:"font-semibold",bold:"font-bold"},Q=e=>e?(Array.isArray(e)?e:[e]).map(t=>{if(t.includes(":")){let[r,s]=t.split(":");return `${r}:text-${s}`}return `text-${t}`}).join(" "):"text-body-default",d=p__namespace.default.forwardRef(({variant:e="body-default",color:n="primary",as:t,className:r,children:s,weight:a,...o},l)=>{let m=Q(e),x=n==="inherit"?"text-inherit":`text-${n}`,c=p__namespace.default.useMemo(()=>{let y=typeof e=="string"?e.split(":").pop():Array.isArray(e)?e[0].split(":").pop():"body-default";return _(y)},[e]);return p__namespace.default.createElement(t||c,{ref:l,className:`
1
+ 'use strict';var s=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),icons=require('@deckai/icons');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var s__namespace=/*#__PURE__*/_interopNamespace(s);function h(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var S="ring-2 ring-primary-100";var T={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},C={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},g=e=>String(e),A=(e,p=24)=>{let t=[],n={};if(e===undefined){let r=g(p);r?t.push(T[r]):(n.height=`${p}px`,n.width=`${p}px`);}if(typeof e=="number"){let r=g(e);r?t.push(T[r]):(n.height=`${e}px`,n.width=`${e}px`);}if(Array.isArray(e)){let r=g(p),l=[r&&T[r]||`h-[${p}px] w-[${p}px]`];e.forEach(o=>{if(typeof o=="string"){let[a,m]=o.split(":"),x=parseInt(m,10),c=g(x);t.push(c&&C[a]?.[c]||`${a}:h-[${x}px] ${a}:w-[${x}px]`);}}),t.push(...l);}if(typeof e=="string"){let[r,l]=e.split(":"),o=parseInt(l,10),a=g(o);t.push(a&&C[r]?.[a]||`${r}:h-[${o}px] ${r}:w-[${o}px]`);}return {responsiveSizeClasses:t.join(" "),responsiveSizeStyles:n}};var k={primary:"var(--color-primary)",secondary:"var(--color-secondary)",white:"var(--color-white)",primaryBlue:"var(--color-primary-100)",disabled:"var(--color-disabled)",danger:"var(--color-danger)"},b=s__namespace.default.forwardRef(({name:e,size:p=24,color:t="primary",title:n,className:r,style:l={},...o},a)=>{let m=icons.IconMap[e],{responsiveSizeClasses:x,responsiveSizeStyles:c}=A(p,24);return s__namespace.default.createElement("div",{className:h("flex justify-center items-center",x,r),style:{"--icon-stroke":k[t],...c,...l}},s__namespace.default.createElement(m,{ref:a,"aria-hidden":!n,"aria-label":n,stroke:e.includes("filled")?undefined:k[t],...o}))});b.displayName="Icon";var _={xl:"h1",lg:"h1",md:"h2",sm:"h3",xs:"h4"},F=e=>{let[p,t]=e.split("-");return p==="heading"?_[t]||"p":p==="label"?"label":"p"},q={light:"font-light",regular:"font-regular",semibold:"font-semibold",bold:"font-bold"},Q=e=>e?(Array.isArray(e)?e:[e]).map(t=>{if(t.includes(":")){let[n,r]=t.split(":");return `${n}:text-${r}`}return `text-${t}`}).join(" "):"text-body-default",d=s__namespace.default.forwardRef(({variant:e="body-default",color:p="primary",as:t,className:n,children:r,weight:l,...o},a)=>{let m=Q(e),x=p==="inherit"?"text-inherit":`text-${p}`,c=s__namespace.default.useMemo(()=>{let y=typeof e=="string"?e.split(":").pop():Array.isArray(e)?e[0].split(":").pop():"body-default";return F(y)},[e]);return s__namespace.default.createElement(t||c,{ref:a,className:`
2
2
  font-sans antialiased
3
3
  ${m}
4
4
  ${x}
5
- ${a&&`!${q[a]}`}
6
- ${r}
7
- `,...o},s)});d.displayName="Text";var ge=p__namespace.forwardRef(({className:e,end:n,iconName:t,color:r,size:s,title:a,label:o,labelClassName:l,id:m,children:x,forceShowFocusRing:c,error:i,errorMessage:y,helperText:H,showCharacterCount:I,maxLength:u,value:f,defaultValue:N,onChange:M,disabled:R,...V},P)=>{let[L,$]=p__namespace.useState(f?.toString()||N?.toString()||"");p__namespace.useEffect(()=>{f!==undefined&&$(f.toString());},[f]);let K=p__namespace.useCallback(S=>{let O=S.target.value;$(O),M?.(S);},[M]),B=L.length,j=I||!!u;return p__namespace.createElement("div",{className:"gap-1 flex flex-col"},o&&p__namespace.createElement(d,{variant:"label-default",htmlFor:m,as:"label",color:i?"danger":"primary",className:h(l)},o),p__namespace.createElement("div",{className:h("relative flex flex-col gap-2 w-full rounded-lg border bg-background-0 px-3 md:py-3 py-2 text-secondary transition-colors duration-150",!i&&!c&&"border-secondary-50",i&&"border-tertiary-10",R&&"cursor-not-allowed opacity-50","focus-within:ring-2 focus-within:ring-primary-100",c&&v)},p__namespace.createElement("div",{className:"flex relative"},p__namespace.createElement("input",{ref:P,id:m,className:h("font-sans text-sm flex w-full file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-secondary text-primary disabled:cursor-not-allowed focus:outline-none rounded-lg",n&&"pr-10",e),value:L,maxLength:u,onChange:K,"aria-invalid":i,disabled:R,...V}),(n||t)&&p__namespace.createElement("div",{className:"absolute inset-y-0 right-0 flex items-center"},t?p__namespace.createElement(b,{name:t,color:i?"danger":"secondary",size:s,title:a}):n)),x),p__namespace.createElement("div",{className:"flex justify-between gap-2"},i&&y||H?p__namespace.createElement(d,{variant:"body-xxs",color:i?"danger":"secondary",className:"mt-1"},i?y:H):null,j&&p__namespace.createElement(d,{variant:"body-xxs",color:i?"danger":"secondary",className:"text-right mt-1"},p__namespace.createElement(d,{variant:"body-xxs",as:"span",color:"primary-100",className:"font-bold"},B),u&&`/${u}`," characters")))});exports.Input=ge;//# sourceMappingURL=Input.cjs.map
5
+ ${l&&`!${q[l]}`}
6
+ ${n}
7
+ `,...o},r)});d.displayName="Text";var de=s__namespace.forwardRef(({className:e,end:p,iconName:t,color:n,size:r,title:l,label:o,labelClassName:a,id:m,children:x,forceShowFocusRing:c,error:i,errorMessage:y,helperText:H,showCharacterCount:I,maxLength:u,value:f,defaultValue:N,onChange:M,disabled:L,...V},P)=>{let[R,$]=s__namespace.useState(f?.toString()||N?.toString()||"");s__namespace.useEffect(()=>{f!==undefined&&$(f.toString());},[f]);let K=s__namespace.useCallback(v=>{let O=v.target.value;$(O),M?.(v);},[M]),j=R.length,B=I||!!u;return s__namespace.createElement("div",{className:"gap-1 flex flex-col"},o&&s__namespace.createElement(d,{variant:"label-default",htmlFor:m,as:"label",color:i?"danger":"primary",className:h(a)},o),s__namespace.createElement("div",{className:h("relative flex flex-col gap-2 w-full rounded-lg border bg-background-0 px-3 md:py-3 py-2 text-secondary transition-colors duration-150",!i&&!c&&"border-secondary-50",i&&"border-tertiary-10",L&&"cursor-not-allowed opacity-50","focus-within:ring-2 focus-within:ring-primary-100",c&&S)},s__namespace.createElement("div",{className:"flex relative"},s__namespace.createElement("input",{ref:P,id:m,className:h("font-sans text-sm flex w-full bg-background-0 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-secondary text-primary disabled:cursor-not-allowed focus:outline-none rounded-lg",p&&"pr-10",e),value:R,maxLength:u,onChange:K,"aria-invalid":i,disabled:L,...V}),(p||t)&&s__namespace.createElement("div",{className:"absolute inset-y-0 right-0 flex items-center"},t?s__namespace.createElement(b,{name:t,color:i?"danger":"secondary",size:r,title:l}):p)),x),s__namespace.createElement("div",{className:"flex justify-between gap-2"},i&&y||H?s__namespace.createElement(d,{variant:"body-xxs",color:i?"danger":"secondary",className:"mt-1"},i?y:H):null,B&&s__namespace.createElement(d,{variant:"body-xxs",color:i?"danger":"secondary",className:"text-right mt-1"},s__namespace.createElement(d,{variant:"body-xxs",as:"span",color:"primary-100",className:"font-bold"},j),u&&`/${u}`," characters")))});exports.Input=de;//# sourceMappingURL=Input.cjs.map
8
8
  //# sourceMappingURL=Input.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/tailwind.ts","../../src/utils/responsive.ts","../../src/components/Icon.tsx","../../src/components/Text.tsx","../../src/components/Input.tsx"],"names":["cn","inputs","twMerge","clsx","focusRingStylesCoerced","BASE_SIZES","RESPONSIVE_SIZES","getSizeKey","size","getResponsiveSize","baseSize","classes","styles","key","baseKey","responsiveClasses","s","breakpoint","valueStr","value","valueKey","COLOR_MAP","Icon","React","name","color","title","className","style","props","ref","IconComponent","IconMap","responsiveSizeClasses","responsiveSizeStyles","HEADING_ELEMENT_MAP","getElementFromVariant","variant","category","fontWeight","processVariants","variants","typographyClass","Text","as","children","weight","typographyClasses","colorClasses","suggestedElement","baseVariant","Input","p","end","iconName","label","labelClassName","id","forceShowFocusRing","error","errorMessage","helperText","showCharacterCount","maxLength","defaultValue","onChange","disabled","currentValue","setCurrentValue","handleChange","e","newValue","characterCount","showCount"],"mappings":"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","file":"Input.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const noopFn = () => {};\n","import { Colors, Typography } from \"../types/tailwind\";\n\n// Generate safelist patterns for all color utilities so you can use any theme color variable in your code\nexport const generateSafelist = (colors: Colors, typography: Typography) => {\n const colorNames = Object.keys(colors) as (keyof Colors)[];\n const utilities = [\"bg\", \"text\", \"border\", \"ring\", \"divide\", \"outline\"];\n const variants = [\"hover:\", \"focus:\", \"active:\", \"disabled:\"];\n const breakpoints = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"];\n const sizes = [\"24\", \"42\", \"48\", \"64\", \"72\"]; // Add all the sizes you need\n\n const safelist: (string | { pattern: RegExp; variants: string[] })[] = [];\n\n colorNames.forEach((colorName) => {\n if (typeof colors[colorName] === \"object\") {\n // Handle nested color objects (with number keys)\n Object.keys(colors[colorName]).forEach((shade) => {\n utilities.forEach((utility) => {\n // Base utility\n safelist.push(`${utility}-${colorName}-${shade}`);\n\n // Variant utilities\n variants.forEach((variant) => {\n safelist.push(`${variant}${utility}-${colorName}-${shade}`);\n });\n });\n });\n } else {\n // Handle direct color values\n utilities.forEach((utility) => {\n safelist.push(`${utility}-${colorName}`);\n\n variants.forEach((variant) => {\n safelist.push(`${variant}${utility}-${colorName}`);\n });\n });\n }\n });\n\n // Generate typography classes\n Object.entries(typography).forEach(([family, sizes]) => {\n Object.keys(sizes).forEach((size) => {\n // Base typography classes\n safelist.push(`text-${family}-${size}`);\n\n // Add variants\n variants.forEach((variant) => {\n safelist.push(`${variant}text-${family}-${size}`);\n });\n });\n });\n\n const typographyClasses = Object.entries(typography).flatMap(\n ([category, sizes]) =>\n Object.keys(sizes).map((size) => `text-${category}-${size}`)\n );\n\n // Generate responsive variants\n const responsiveTypographyClasses = typographyClasses.flatMap((className) =>\n breakpoints.map((breakpoint) => `${breakpoint}:${className}`)\n );\n\n // Generate size classes with responsive variants\n const sizeClasses = sizes.flatMap((size) => [\n `h-[${size}px]`,\n `w-[${size}px]`,\n ...breakpoints.flatMap((bp) => [\n `${bp}:h-[${size}px]`,\n `${bp}:w-[${size}px]`\n ])\n ]);\n\n return [...typographyClasses, ...responsiveTypographyClasses, ...sizeClasses];\n};\n\nexport const focusRingStyles =\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-100\";\nexport const focusRingWithinStyles =\n \"focus-within:outline-none focus-within:ring-2 focus-within:ring-primary-100\";\nexport const focusRingStylesCoerced = \"ring-2 ring-primary-100\";\n","export type Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type ResponsiveSize = number | `${Breakpoint}:${number}`;\n\ntype SizeKey =\n | \"12\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"36\"\n | \"40\"\n | \"42\"\n | \"48\"\n | \"64\"\n | \"72\";\n\n// These constants help Tailwind identify the classes during compilation\nconst BASE_SIZES: Record<SizeKey, string> = {\n \"12\": \"h-[12px] w-[12px]\",\n \"16\": \"h-[16px] w-[16px]\",\n \"18\": \"h-[18px] w-[18px]\",\n \"20\": \"h-[20px] w-[20px]\",\n \"24\": \"h-[24px] w-[24px]\",\n \"32\": \"h-[32px] w-[32px]\",\n \"36\": \"h-[36px] w-[36px]\",\n \"40\": \"h-[40px] w-[40px]\",\n \"42\": \"h-[42px] w-[42px]\",\n \"48\": \"h-[48px] w-[48px]\",\n \"64\": \"h-[64px] w-[64px]\",\n \"72\": \"h-[72px] w-[72px]\"\n};\n\nconst RESPONSIVE_SIZES: Record<Breakpoint, Record<SizeKey, string>> = {\n sm: {\n \"12\": \"sm:h-[12px] sm:w-[12px]\",\n \"16\": \"sm:h-[16px] sm:w-[16px]\",\n \"18\": \"sm:h-[18px] sm:w-[18px]\",\n \"20\": \"sm:h-[20px] sm:w-[20px]\",\n \"24\": \"sm:h-[24px] sm:w-[24px]\",\n \"32\": \"sm:h-[32px] sm:w-[32px]\",\n \"36\": \"sm:h-[36px] sm:w-[36px]\",\n \"40\": \"sm:h-[40px] sm:w-[40px]\",\n \"42\": \"sm:h-[42px] sm:w-[42px]\",\n \"48\": \"sm:h-[48px] sm:w-[48px]\",\n \"64\": \"sm:h-[64px] sm:w-[64px]\",\n \"72\": \"sm:h-[72px] sm:w-[72px]\"\n },\n md: {\n \"12\": \"md:h-[12px] md:w-[12px]\",\n \"16\": \"md:h-[16px] md:w-[16px]\",\n \"18\": \"md:h-[18px] md:w-[18px]\",\n \"20\": \"md:h-[20px] md:w-[20px]\",\n \"24\": \"md:h-[24px] md:w-[24px]\",\n \"32\": \"md:h-[32px] md:w-[32px]\",\n \"36\": \"md:h-[36px] md:w-[36px]\",\n \"40\": \"md:h-[40px] md:w-[40px]\",\n \"42\": \"md:h-[42px] md:w-[42px]\",\n \"48\": \"md:h-[48px] md:w-[48px]\",\n \"64\": \"md:h-[64px] md:w-[64px]\",\n \"72\": \"md:h-[72px] md:w-[72px]\"\n },\n lg: {\n \"12\": \"lg:h-[12px] lg:w-[12px]\",\n \"16\": \"lg:h-[16px] lg:w-[16px]\",\n \"18\": \"lg:h-[18px] lg:w-[18px]\",\n \"20\": \"lg:h-[20px] lg:w-[20px]\",\n \"24\": \"lg:h-[24px] lg:w-[24px]\",\n \"32\": \"lg:h-[32px] lg:w-[32px]\",\n \"36\": \"lg:h-[36px] lg:w-[36px]\",\n \"40\": \"lg:h-[40px] lg:w-[40px]\",\n \"42\": \"lg:h-[42px] lg:w-[42px]\",\n \"48\": \"lg:h-[48px] lg:w-[48px]\",\n \"64\": \"lg:h-[64px] lg:w-[64px]\",\n \"72\": \"lg:h-[72px] lg:w-[72px]\"\n },\n xl: {\n \"12\": \"xl:h-[12px] xl:w-[12px]\",\n \"16\": \"xl:h-[16px] xl:w-[16px]\",\n \"18\": \"xl:h-[18px] xl:w-[18px]\",\n \"20\": \"xl:h-[20px] xl:w-[20px]\",\n \"24\": \"xl:h-[24px] xl:w-[24px]\",\n \"32\": \"xl:h-[32px] xl:w-[32px]\",\n \"36\": \"xl:h-[36px] xl:w-[36px]\",\n \"40\": \"xl:h-[40px] xl:w-[40px]\",\n \"42\": \"xl:h-[42px] xl:w-[42px]\",\n \"48\": \"xl:h-[48px] xl:w-[48px]\",\n \"64\": \"xl:h-[64px] xl:w-[64px]\",\n \"72\": \"xl:h-[72px] xl:w-[72px]\"\n },\n \"2xl\": {\n \"12\": \"2xl:h-[12px] 2xl:w-[12px]\",\n \"16\": \"2xl:h-[16px] 2xl:w-[16px]\",\n \"18\": \"2xl:h-[18px] 2xl:w-[18px]\",\n \"20\": \"2xl:h-[20px] 2xl:w-[20px]\",\n \"24\": \"2xl:h-[24px] 2xl:w-[24px]\",\n \"32\": \"2xl:h-[32px] 2xl:w-[32px]\",\n \"36\": \"2xl:h-[36px] 2xl:w-[36px]\",\n \"40\": \"2xl:h-[40px] 2xl:w-[40px]\",\n \"42\": \"2xl:h-[42px] 2xl:w-[42px]\",\n \"48\": \"2xl:h-[48px] 2xl:w-[48px]\",\n \"64\": \"2xl:h-[64px] 2xl:w-[64px]\",\n \"72\": \"2xl:h-[72px] 2xl:w-[72px]\"\n }\n};\n\nconst getSizeKey = (size: number): SizeKey | undefined => {\n return String(size) as SizeKey;\n};\n\nexport const getResponsiveSize = (\n size: ResponsiveSize | ResponsiveSize[] | undefined,\n baseSize: number = 24\n): {\n responsiveSizeClasses: string;\n responsiveSizeStyles: Record<string, string>;\n} => {\n const classes: string[] = [];\n const styles: Record<string, string> = {};\n\n // If no size provided, use baseSize\n if (size === undefined) {\n const key = getSizeKey(baseSize);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${baseSize}px`;\n styles.width = `${baseSize}px`;\n }\n }\n\n // If size is a number, use that directly\n if (typeof size === \"number\") {\n const key = getSizeKey(size);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${size}px`;\n styles.width = `${size}px`;\n }\n }\n\n // If array of responsive sizes, generate responsive classes\n if (Array.isArray(size)) {\n const baseKey = getSizeKey(baseSize);\n const responsiveClasses = [\n (baseKey && BASE_SIZES[baseKey]) || `h-[${baseSize}px] w-[${baseSize}px]`\n ];\n\n size.forEach((s) => {\n if (typeof s === \"string\") {\n const [breakpoint, valueStr] = s.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const key = getSizeKey(value);\n classes.push(\n (key && RESPONSIVE_SIZES[breakpoint]?.[key]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n });\n\n classes.push(...responsiveClasses);\n }\n\n if (typeof size === \"string\") {\n const [breakpoint, valueStr] = size.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const valueKey = getSizeKey(value);\n classes.push(\n (valueKey && RESPONSIVE_SIZES[breakpoint]?.[valueKey]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n\n return {\n responsiveSizeClasses: classes.join(\" \"),\n responsiveSizeStyles: styles\n };\n};\n","import { IconMap, IconName } from \"@deckai/icons\";\nimport React, { SVGProps } from \"react\";\nimport { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\nimport { ResponsiveSize, getResponsiveSize } from \"../utils/responsive\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: ResponsiveSize | ResponsiveSize[];\n /** @default primary */\n color?: IconColors;\n title?: string;\n className?: string;\n style?: React.CSSProperties;\n} & Omit<SVGProps<SVGSVGElement>, \"aria-hidden\" | \"aria-label\">;\n\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"#080808\",\n secondary: \"#666666\",\n white: \"#ffffff\",\n primaryBlue: \"#089CCB\",\n disabled: \"#888888\",\n danger: \"#FF0000\"\n};\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n name,\n size = 24,\n color = \"primary\",\n title,\n className,\n style = {},\n ...props\n },\n ref\n ) => {\n const IconComponent = IconMap[name];\n const { responsiveSizeClasses, responsiveSizeStyles } = getResponsiveSize(\n size,\n 24\n );\n\n return (\n <div\n className={cn(\n \"flex justify-center items-center\",\n responsiveSizeClasses,\n className\n )}\n style={{\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\n ...responsiveSizeStyles,\n ...style\n }}\n >\n <IconComponent\n ref={ref}\n aria-hidden={!title}\n aria-label={title}\n stroke={name.includes(\"filled\") ? undefined : COLOR_MAP[color]}\n {...props}\n />\n </div>\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n","import React from \"react\";\nimport { Typography } from \"../types/tailwind\";\nimport { Breakpoint } from \"../utils/responsive\";\n\ntype TextElement =\n | \"p\"\n | \"span\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"strong\"\n | \"em\"\n | \"blockquote\"\n | \"pre\"\n | \"code\"\n | \"small\"\n | \"label\"\n | \"a\";\n\n// HTML element mapping type\ntype HTMLElementByTag = {\n p: HTMLParagraphElement;\n span: HTMLSpanElement;\n h1: HTMLHeadingElement;\n h2: HTMLHeadingElement;\n h3: HTMLHeadingElement;\n h4: HTMLHeadingElement;\n h5: HTMLHeadingElement;\n h6: HTMLHeadingElement;\n strong: HTMLElement;\n em: HTMLElement;\n blockquote: HTMLQuoteElement;\n pre: HTMLPreElement;\n code: HTMLElement;\n small: HTMLElement;\n label: HTMLLabelElement;\n a: HTMLAnchorElement;\n};\n\n// HTML props mapping type\ntype HTMLPropsMap = {\n p: React.HTMLAttributes<HTMLParagraphElement>;\n span: React.HTMLAttributes<HTMLSpanElement>;\n h1: React.HTMLAttributes<HTMLHeadingElement>;\n h2: React.HTMLAttributes<HTMLHeadingElement>;\n h3: React.HTMLAttributes<HTMLHeadingElement>;\n h4: React.HTMLAttributes<HTMLHeadingElement>;\n h5: React.HTMLAttributes<HTMLHeadingElement>;\n h6: React.HTMLAttributes<HTMLHeadingElement>;\n strong: React.HTMLAttributes<HTMLElement>;\n em: React.HTMLAttributes<HTMLElement>;\n blockquote: React.HTMLAttributes<HTMLQuoteElement>;\n pre: React.HTMLAttributes<HTMLPreElement>;\n code: React.HTMLAttributes<HTMLElement>;\n small: React.HTMLAttributes<HTMLElement>;\n label: React.LabelHTMLAttributes<HTMLLabelElement>;\n a: Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"color\">;\n};\n\ntype TextColor =\n | \"primary\"\n | \"secondary\"\n | \"white\"\n | \"primary-blue\"\n | \"disabled\"\n | \"danger\"\n | \"inherit\"\n | \"primary-100\";\n\nconst HEADING_ELEMENT_MAP: Record<string, TextElement> = {\n xl: \"h1\",\n lg: \"h1\",\n md: \"h2\",\n sm: \"h3\",\n xs: \"h4\"\n};\n\nconst getElementFromVariant = (variant: TypographyKey): TextElement => {\n const [category, size] = variant.split(\"-\");\n\n if (category === \"heading\") {\n return HEADING_ELEMENT_MAP[size] || \"p\";\n }\n\n if (category === \"label\") {\n return \"label\";\n }\n\n return \"p\";\n};\n\ntype Weight = \"light\" | \"regular\" | \"semibold\" | \"bold\";\n\nconst fontWeight: Record<Weight, string> = {\n light: \"font-light\",\n regular: \"font-regular\",\n semibold: \"font-semibold\",\n bold: \"font-bold\"\n};\n\ntype ResponsiveVariant = TypographyKey | `${Breakpoint}:${TypographyKey}`;\n\ntype TypographyCategory = keyof Typography;\ntype TypographyValue<T extends TypographyCategory> = Extract<\n keyof Typography[T],\n string | number | bigint | boolean | null | undefined\n>;\ntype TypographyKey = {\n [T in TypographyCategory]: `${T}-${TypographyValue<T>}`;\n}[TypographyCategory];\n\n// Update TextProps to use ResponsiveVariant\nexport type TextProps<T extends TextElement = \"p\"> = {\n variant?: ResponsiveVariant | ResponsiveVariant[];\n color?: TextColor;\n as?: T;\n className?: string;\n children: React.ReactNode;\n weight?: Weight;\n} & HTMLPropsMap[T];\n\n// Add helper function to process variants\nconst processVariants = (\n variants: ResponsiveVariant | ResponsiveVariant[] | undefined\n): string => {\n if (!variants) return \"text-body-default\";\n\n const variantArray = Array.isArray(variants) ? variants : [variants];\n\n return variantArray\n .map((variant) => {\n if (variant.includes(\":\")) {\n const [breakpoint, typographyClass] = variant.split(\":\");\n return `${breakpoint}:text-${typographyClass}`;\n }\n return `text-${variant}`;\n })\n .join(\" \");\n};\n\nexport const Text = React.forwardRef(\n <T extends TextElement = \"p\">(\n {\n variant = \"body-default\",\n color = \"primary\",\n as,\n className,\n children,\n weight,\n ...props\n }: TextProps<T>,\n ref: React.ForwardedRef<HTMLElementByTag[T]>\n ) => {\n // Process typography classes with breakpoints\n const typographyClasses = processVariants(variant);\n\n // Get color styles\n const colorClasses = color === \"inherit\" ? \"text-inherit\" : `text-${color}`;\n\n const suggestedElement = React.useMemo(() => {\n const baseVariant =\n typeof variant === \"string\"\n ? variant.split(\":\").pop()!\n : Array.isArray(variant)\n ? variant[0].split(\":\").pop()!\n : \"body-default\";\n return getElementFromVariant(baseVariant as TypographyKey);\n }, [variant]);\n\n const Component = (as || suggestedElement) as T;\n\n return (\n // @ts-expect-error TODO: figure this out\n <Component\n ref={ref}\n className={`\n font-sans antialiased\n ${typographyClasses}\n ${colorClasses}\n ${weight && `!${fontWeight[weight]}`}\n ${className}\n `}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nText.displayName = \"Text\";\n","import * as React from \"react\";\nimport { cn } from \"../utils\";\nimport { focusRingStyles, focusRingStylesCoerced } from \"../utils/tailwind\";\nimport { IconName } from \"@deckai/icons\";\nimport { Icon, IconProps } from \"./Icon\";\nimport { Text } from \"./Text\";\n\nexport type InputProps = {\n className?: string;\n end?: React.ReactNode;\n /** renders an icon in the end slot */\n iconName?: IconName;\n /** Label text for the input */\n label?: string;\n /** Additional classes for the label */\n labelClassName?: string;\n /** Forces the focus ring to show regardless of focus state */\n forceShowFocusRing?: boolean;\n /** Error state for the input */\n error?: boolean;\n /** Error message to display below the input */\n errorMessage?: string;\n /** Helper text displayed below the input */\n helperText?: string;\n /** Character count display */\n showCharacterCount?: boolean;\n /** Maximum number of characters */\n maxLength?: number;\n} & React.InputHTMLAttributes<HTMLInputElement> &\n Pick<IconProps, \"color\" | \"size\" | \"title\">;\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n end,\n iconName,\n color,\n size,\n title,\n label,\n labelClassName,\n id,\n children,\n forceShowFocusRing,\n error,\n errorMessage,\n helperText,\n showCharacterCount,\n maxLength,\n value,\n defaultValue,\n onChange,\n disabled,\n ...props\n },\n ref\n ) => {\n const [currentValue, setCurrentValue] = React.useState(\n value?.toString() || defaultValue?.toString() || \"\"\n );\n\n // Update internal value when prop changes\n React.useEffect(() => {\n if (value !== undefined) {\n setCurrentValue(value.toString());\n }\n }, [value]);\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n setCurrentValue(newValue);\n onChange?.(e);\n },\n [onChange]\n );\n\n const characterCount = currentValue.length;\n const showCount = showCharacterCount || !!maxLength;\n\n return (\n <div className=\"gap-1 flex flex-col\">\n {label && (\n <Text\n variant=\"label-default\"\n htmlFor={id}\n as=\"label\"\n color={error ? \"danger\" : \"primary\"}\n className={cn(labelClassName)}\n >\n {label}\n </Text>\n )}\n <div\n className={cn(\n \"relative flex flex-col gap-2 w-full rounded-lg border bg-background-0 px-3 md:py-3 py-2 text-secondary transition-colors duration-150\",\n !error && !forceShowFocusRing && \"border-secondary-50\",\n error && \"border-tertiary-10\",\n disabled && \"cursor-not-allowed opacity-50\",\n \"focus-within:ring-2 focus-within:ring-primary-100\",\n forceShowFocusRing && focusRingStylesCoerced\n )}\n >\n <div className=\"flex relative\">\n <input\n ref={ref}\n id={id}\n className={cn(\n \"font-sans text-sm flex w-full file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-secondary text-primary disabled:cursor-not-allowed focus:outline-none rounded-lg\",\n end && \"pr-10\",\n className\n )}\n value={currentValue}\n maxLength={maxLength}\n onChange={handleChange}\n aria-invalid={error}\n disabled={disabled}\n {...props}\n />\n {(end || iconName) && (\n <div className=\"absolute inset-y-0 right-0 flex items-center\">\n {iconName ? (\n <Icon\n name={iconName}\n color={error ? \"danger\" : \"secondary\"}\n size={size}\n title={title}\n />\n ) : (\n end\n )}\n </div>\n )}\n </div>\n {children}\n </div>\n <div className=\"flex justify-between gap-2\">\n {(error && errorMessage) || helperText ? (\n <Text\n variant=\"body-xxs\"\n color={error ? \"danger\" : \"secondary\"}\n className=\"mt-1\"\n >\n {error ? errorMessage : helperText}\n </Text>\n ) : null}\n {showCount && (\n <Text\n variant=\"body-xxs\"\n color={error ? \"danger\" : \"secondary\"}\n className=\"text-right mt-1\"\n >\n <Text\n variant=\"body-xxs\"\n as=\"span\"\n color=\"primary-100\"\n className=\"font-bold\"\n >\n {characterCount}\n </Text>\n {maxLength && `/${maxLength}`} characters\n </Text>\n )}\n </div>\n </div>\n );\n }\n);\n"]}
1
+ {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/tailwind.ts","../../src/utils/responsive.ts","../../src/components/Icon.tsx","../../src/components/Text.tsx","../../src/components/Input.tsx"],"names":["cn","inputs","twMerge","clsx","focusRingStylesCoerced","BASE_SIZES","RESPONSIVE_SIZES","getSizeKey","size","getResponsiveSize","baseSize","classes","styles","key","baseKey","responsiveClasses","s","breakpoint","valueStr","value","valueKey","COLOR_MAP","Icon","React","name","color","title","className","style","props","ref","IconComponent","IconMap","responsiveSizeClasses","responsiveSizeStyles","HEADING_ELEMENT_MAP","getElementFromVariant","variant","category","fontWeight","processVariants","variants","typographyClass","Text","as","children","weight","typographyClasses","colorClasses","suggestedElement","baseVariant","Input","end","iconName","label","labelClassName","id","forceShowFocusRing","error","errorMessage","helperText","showCharacterCount","maxLength","defaultValue","onChange","disabled","currentValue","setCurrentValue","handleChange","e","newValue","characterCount","showCount"],"mappings":"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","file":"Input.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const noopFn = () => {};\n","import { Colors, Typography } from \"../types/tailwind\";\n\n// Generate safelist patterns for all color utilities so you can use any theme color variable in your code\nexport const generateSafelist = (colors: Colors, typography: Typography) => {\n const colorNames = Object.keys(colors) as (keyof Colors)[];\n const utilities = [\"bg\", \"text\", \"border\", \"ring\", \"divide\", \"outline\"];\n const variants = [\"hover:\", \"focus:\", \"active:\", \"disabled:\"];\n const breakpoints = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"];\n const sizes = [\"24\", \"42\", \"48\", \"64\", \"72\"]; // Add all the sizes you need\n\n const safelist: (string | { pattern: RegExp; variants: string[] })[] = [];\n\n colorNames.forEach((colorName) => {\n if (typeof colors[colorName] === \"object\") {\n // Handle nested color objects (with number keys)\n Object.keys(colors[colorName]).forEach((shade) => {\n utilities.forEach((utility) => {\n // Base utility\n safelist.push(`${utility}-${colorName}-${shade}`);\n\n // Variant utilities\n variants.forEach((variant) => {\n safelist.push(`${variant}${utility}-${colorName}-${shade}`);\n });\n });\n });\n } else {\n // Handle direct color values\n utilities.forEach((utility) => {\n safelist.push(`${utility}-${colorName}`);\n\n variants.forEach((variant) => {\n safelist.push(`${variant}${utility}-${colorName}`);\n });\n });\n }\n });\n\n // Generate typography classes\n Object.entries(typography).forEach(([family, sizes]) => {\n Object.keys(sizes).forEach((size) => {\n // Base typography classes\n safelist.push(`text-${family}-${size}`);\n\n // Add variants\n variants.forEach((variant) => {\n safelist.push(`${variant}text-${family}-${size}`);\n });\n });\n });\n\n const typographyClasses = Object.entries(typography).flatMap(\n ([category, sizes]) =>\n Object.keys(sizes).map((size) => `text-${category}-${size}`)\n );\n\n // Generate responsive variants\n const responsiveTypographyClasses = typographyClasses.flatMap((className) =>\n breakpoints.map((breakpoint) => `${breakpoint}:${className}`)\n );\n\n // Generate size classes with responsive variants\n const sizeClasses = sizes.flatMap((size) => [\n `h-[${size}px]`,\n `w-[${size}px]`,\n ...breakpoints.flatMap((bp) => [\n `${bp}:h-[${size}px]`,\n `${bp}:w-[${size}px]`\n ])\n ]);\n\n return [...typographyClasses, ...responsiveTypographyClasses, ...sizeClasses];\n};\n\nexport const focusRingStyles =\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-100\";\nexport const focusRingWithinStyles =\n \"focus-within:outline-none focus-within:ring-2 focus-within:ring-primary-100\";\nexport const focusRingStylesCoerced = \"ring-2 ring-primary-100\";\n","export type Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type ResponsiveSize = number | `${Breakpoint}:${number}`;\n\ntype SizeKey =\n | \"12\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"36\"\n | \"40\"\n | \"42\"\n | \"48\"\n | \"64\"\n | \"72\";\n\n// These constants help Tailwind identify the classes during compilation\nconst BASE_SIZES: Record<SizeKey, string> = {\n \"12\": \"h-[12px] w-[12px]\",\n \"16\": \"h-[16px] w-[16px]\",\n \"18\": \"h-[18px] w-[18px]\",\n \"20\": \"h-[20px] w-[20px]\",\n \"24\": \"h-[24px] w-[24px]\",\n \"32\": \"h-[32px] w-[32px]\",\n \"36\": \"h-[36px] w-[36px]\",\n \"40\": \"h-[40px] w-[40px]\",\n \"42\": \"h-[42px] w-[42px]\",\n \"48\": \"h-[48px] w-[48px]\",\n \"64\": \"h-[64px] w-[64px]\",\n \"72\": \"h-[72px] w-[72px]\"\n};\n\nconst RESPONSIVE_SIZES: Record<Breakpoint, Record<SizeKey, string>> = {\n sm: {\n \"12\": \"sm:h-[12px] sm:w-[12px]\",\n \"16\": \"sm:h-[16px] sm:w-[16px]\",\n \"18\": \"sm:h-[18px] sm:w-[18px]\",\n \"20\": \"sm:h-[20px] sm:w-[20px]\",\n \"24\": \"sm:h-[24px] sm:w-[24px]\",\n \"32\": \"sm:h-[32px] sm:w-[32px]\",\n \"36\": \"sm:h-[36px] sm:w-[36px]\",\n \"40\": \"sm:h-[40px] sm:w-[40px]\",\n \"42\": \"sm:h-[42px] sm:w-[42px]\",\n \"48\": \"sm:h-[48px] sm:w-[48px]\",\n \"64\": \"sm:h-[64px] sm:w-[64px]\",\n \"72\": \"sm:h-[72px] sm:w-[72px]\"\n },\n md: {\n \"12\": \"md:h-[12px] md:w-[12px]\",\n \"16\": \"md:h-[16px] md:w-[16px]\",\n \"18\": \"md:h-[18px] md:w-[18px]\",\n \"20\": \"md:h-[20px] md:w-[20px]\",\n \"24\": \"md:h-[24px] md:w-[24px]\",\n \"32\": \"md:h-[32px] md:w-[32px]\",\n \"36\": \"md:h-[36px] md:w-[36px]\",\n \"40\": \"md:h-[40px] md:w-[40px]\",\n \"42\": \"md:h-[42px] md:w-[42px]\",\n \"48\": \"md:h-[48px] md:w-[48px]\",\n \"64\": \"md:h-[64px] md:w-[64px]\",\n \"72\": \"md:h-[72px] md:w-[72px]\"\n },\n lg: {\n \"12\": \"lg:h-[12px] lg:w-[12px]\",\n \"16\": \"lg:h-[16px] lg:w-[16px]\",\n \"18\": \"lg:h-[18px] lg:w-[18px]\",\n \"20\": \"lg:h-[20px] lg:w-[20px]\",\n \"24\": \"lg:h-[24px] lg:w-[24px]\",\n \"32\": \"lg:h-[32px] lg:w-[32px]\",\n \"36\": \"lg:h-[36px] lg:w-[36px]\",\n \"40\": \"lg:h-[40px] lg:w-[40px]\",\n \"42\": \"lg:h-[42px] lg:w-[42px]\",\n \"48\": \"lg:h-[48px] lg:w-[48px]\",\n \"64\": \"lg:h-[64px] lg:w-[64px]\",\n \"72\": \"lg:h-[72px] lg:w-[72px]\"\n },\n xl: {\n \"12\": \"xl:h-[12px] xl:w-[12px]\",\n \"16\": \"xl:h-[16px] xl:w-[16px]\",\n \"18\": \"xl:h-[18px] xl:w-[18px]\",\n \"20\": \"xl:h-[20px] xl:w-[20px]\",\n \"24\": \"xl:h-[24px] xl:w-[24px]\",\n \"32\": \"xl:h-[32px] xl:w-[32px]\",\n \"36\": \"xl:h-[36px] xl:w-[36px]\",\n \"40\": \"xl:h-[40px] xl:w-[40px]\",\n \"42\": \"xl:h-[42px] xl:w-[42px]\",\n \"48\": \"xl:h-[48px] xl:w-[48px]\",\n \"64\": \"xl:h-[64px] xl:w-[64px]\",\n \"72\": \"xl:h-[72px] xl:w-[72px]\"\n },\n \"2xl\": {\n \"12\": \"2xl:h-[12px] 2xl:w-[12px]\",\n \"16\": \"2xl:h-[16px] 2xl:w-[16px]\",\n \"18\": \"2xl:h-[18px] 2xl:w-[18px]\",\n \"20\": \"2xl:h-[20px] 2xl:w-[20px]\",\n \"24\": \"2xl:h-[24px] 2xl:w-[24px]\",\n \"32\": \"2xl:h-[32px] 2xl:w-[32px]\",\n \"36\": \"2xl:h-[36px] 2xl:w-[36px]\",\n \"40\": \"2xl:h-[40px] 2xl:w-[40px]\",\n \"42\": \"2xl:h-[42px] 2xl:w-[42px]\",\n \"48\": \"2xl:h-[48px] 2xl:w-[48px]\",\n \"64\": \"2xl:h-[64px] 2xl:w-[64px]\",\n \"72\": \"2xl:h-[72px] 2xl:w-[72px]\"\n }\n};\n\nconst getSizeKey = (size: number): SizeKey | undefined => {\n return String(size) as SizeKey;\n};\n\nexport const getResponsiveSize = (\n size: ResponsiveSize | ResponsiveSize[] | undefined,\n baseSize: number = 24\n): {\n responsiveSizeClasses: string;\n responsiveSizeStyles: Record<string, string>;\n} => {\n const classes: string[] = [];\n const styles: Record<string, string> = {};\n\n // If no size provided, use baseSize\n if (size === undefined) {\n const key = getSizeKey(baseSize);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${baseSize}px`;\n styles.width = `${baseSize}px`;\n }\n }\n\n // If size is a number, use that directly\n if (typeof size === \"number\") {\n const key = getSizeKey(size);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${size}px`;\n styles.width = `${size}px`;\n }\n }\n\n // If array of responsive sizes, generate responsive classes\n if (Array.isArray(size)) {\n const baseKey = getSizeKey(baseSize);\n const responsiveClasses = [\n (baseKey && BASE_SIZES[baseKey]) || `h-[${baseSize}px] w-[${baseSize}px]`\n ];\n\n size.forEach((s) => {\n if (typeof s === \"string\") {\n const [breakpoint, valueStr] = s.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const key = getSizeKey(value);\n classes.push(\n (key && RESPONSIVE_SIZES[breakpoint]?.[key]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n });\n\n classes.push(...responsiveClasses);\n }\n\n if (typeof size === \"string\") {\n const [breakpoint, valueStr] = size.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const valueKey = getSizeKey(value);\n classes.push(\n (valueKey && RESPONSIVE_SIZES[breakpoint]?.[valueKey]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n\n return {\n responsiveSizeClasses: classes.join(\" \"),\n responsiveSizeStyles: styles\n };\n};\n","import { IconMap, IconName } from \"@deckai/icons\";\nimport React, { SVGProps } from \"react\";\nimport { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\nimport { ResponsiveSize, getResponsiveSize } from \"../utils/responsive\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: ResponsiveSize | ResponsiveSize[];\n /** @default primary */\n color?: IconColors;\n title?: string;\n className?: string;\n style?: React.CSSProperties;\n} & Omit<SVGProps<SVGSVGElement>, \"aria-hidden\" | \"aria-label\">;\n\n// Using CSS variables to support dark mode\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"var(--color-primary)\",\n secondary: \"var(--color-secondary)\",\n white: \"var(--color-white)\",\n primaryBlue: \"var(--color-primary-100)\",\n disabled: \"var(--color-disabled)\",\n danger: \"var(--color-danger)\"\n};\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n name,\n size = 24,\n color = \"primary\",\n title,\n className,\n style = {},\n ...props\n },\n ref\n ) => {\n const IconComponent = IconMap[name];\n const { responsiveSizeClasses, responsiveSizeStyles } = getResponsiveSize(\n size,\n 24\n );\n\n return (\n <div\n className={cn(\n \"flex justify-center items-center\",\n responsiveSizeClasses,\n className\n )}\n style={{\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\n ...responsiveSizeStyles,\n ...style\n }}\n >\n <IconComponent\n ref={ref}\n aria-hidden={!title}\n aria-label={title}\n stroke={name.includes(\"filled\") ? undefined : COLOR_MAP[color]}\n {...props}\n />\n </div>\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n","import React from \"react\";\nimport { Typography } from \"../types/tailwind\";\nimport { Breakpoint } from \"../utils/responsive\";\n\ntype TextElement =\n | \"p\"\n | \"span\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"strong\"\n | \"em\"\n | \"blockquote\"\n | \"pre\"\n | \"code\"\n | \"small\"\n | \"label\"\n | \"a\";\n\n// HTML element mapping type\ntype HTMLElementByTag = {\n p: HTMLParagraphElement;\n span: HTMLSpanElement;\n h1: HTMLHeadingElement;\n h2: HTMLHeadingElement;\n h3: HTMLHeadingElement;\n h4: HTMLHeadingElement;\n h5: HTMLHeadingElement;\n h6: HTMLHeadingElement;\n strong: HTMLElement;\n em: HTMLElement;\n blockquote: HTMLQuoteElement;\n pre: HTMLPreElement;\n code: HTMLElement;\n small: HTMLElement;\n label: HTMLLabelElement;\n a: HTMLAnchorElement;\n};\n\n// HTML props mapping type\ntype HTMLPropsMap = {\n p: React.HTMLAttributes<HTMLParagraphElement>;\n span: React.HTMLAttributes<HTMLSpanElement>;\n h1: React.HTMLAttributes<HTMLHeadingElement>;\n h2: React.HTMLAttributes<HTMLHeadingElement>;\n h3: React.HTMLAttributes<HTMLHeadingElement>;\n h4: React.HTMLAttributes<HTMLHeadingElement>;\n h5: React.HTMLAttributes<HTMLHeadingElement>;\n h6: React.HTMLAttributes<HTMLHeadingElement>;\n strong: React.HTMLAttributes<HTMLElement>;\n em: React.HTMLAttributes<HTMLElement>;\n blockquote: React.HTMLAttributes<HTMLQuoteElement>;\n pre: React.HTMLAttributes<HTMLPreElement>;\n code: React.HTMLAttributes<HTMLElement>;\n small: React.HTMLAttributes<HTMLElement>;\n label: React.LabelHTMLAttributes<HTMLLabelElement>;\n a: Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"color\">;\n};\n\ntype TextColor =\n | \"primary\"\n | \"secondary\"\n | \"white\"\n | \"primary-blue\"\n | \"disabled\"\n | \"danger\"\n | \"inherit\"\n | \"primary-100\";\n\nconst HEADING_ELEMENT_MAP: Record<string, TextElement> = {\n xl: \"h1\",\n lg: \"h1\",\n md: \"h2\",\n sm: \"h3\",\n xs: \"h4\"\n};\n\nconst getElementFromVariant = (variant: TypographyKey): TextElement => {\n const [category, size] = variant.split(\"-\");\n\n if (category === \"heading\") {\n return HEADING_ELEMENT_MAP[size] || \"p\";\n }\n\n if (category === \"label\") {\n return \"label\";\n }\n\n return \"p\";\n};\n\ntype Weight = \"light\" | \"regular\" | \"semibold\" | \"bold\";\n\nconst fontWeight: Record<Weight, string> = {\n light: \"font-light\",\n regular: \"font-regular\",\n semibold: \"font-semibold\",\n bold: \"font-bold\"\n};\n\ntype ResponsiveVariant = TypographyKey | `${Breakpoint}:${TypographyKey}`;\n\ntype TypographyCategory = keyof Typography;\ntype TypographyValue<T extends TypographyCategory> = Extract<\n keyof Typography[T],\n string | number | bigint | boolean | null | undefined\n>;\ntype TypographyKey = {\n [T in TypographyCategory]: `${T}-${TypographyValue<T>}`;\n}[TypographyCategory];\n\n// Update TextProps to use ResponsiveVariant\nexport type TextProps<T extends TextElement = \"p\"> = {\n variant?: ResponsiveVariant | ResponsiveVariant[];\n color?: TextColor;\n as?: T;\n className?: string;\n children: React.ReactNode;\n weight?: Weight;\n} & HTMLPropsMap[T];\n\n// Add helper function to process variants\nconst processVariants = (\n variants: ResponsiveVariant | ResponsiveVariant[] | undefined\n): string => {\n if (!variants) return \"text-body-default\";\n\n const variantArray = Array.isArray(variants) ? variants : [variants];\n\n return variantArray\n .map((variant) => {\n if (variant.includes(\":\")) {\n const [breakpoint, typographyClass] = variant.split(\":\");\n return `${breakpoint}:text-${typographyClass}`;\n }\n return `text-${variant}`;\n })\n .join(\" \");\n};\n\nexport const Text = React.forwardRef(\n <T extends TextElement = \"p\">(\n {\n variant = \"body-default\",\n color = \"primary\",\n as,\n className,\n children,\n weight,\n ...props\n }: TextProps<T>,\n ref: React.ForwardedRef<HTMLElementByTag[T]>\n ) => {\n // Process typography classes with breakpoints\n const typographyClasses = processVariants(variant);\n\n // Get color styles using Tailwind classes that reference CSS variables\n const colorClasses = color === \"inherit\" ? \"text-inherit\" : `text-${color}`;\n\n const suggestedElement = React.useMemo(() => {\n const baseVariant =\n typeof variant === \"string\"\n ? variant.split(\":\").pop()!\n : Array.isArray(variant)\n ? variant[0].split(\":\").pop()!\n : \"body-default\";\n return getElementFromVariant(baseVariant as TypographyKey);\n }, [variant]);\n\n const Component = (as || suggestedElement) as T;\n\n return (\n // @ts-expect-error TODO: figure this out\n <Component\n ref={ref}\n className={`\n font-sans antialiased\n ${typographyClasses}\n ${colorClasses}\n ${weight && `!${fontWeight[weight]}`}\n ${className}\n `}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nText.displayName = \"Text\";\n","import { IconName } from \"@deckai/icons\";\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\nimport { focusRingStylesCoerced } from \"../utils/tailwind\";\nimport { Icon, IconProps } from \"./Icon\";\nimport { Text } from \"./Text\";\n\nexport type InputProps = {\n className?: string;\n end?: React.ReactNode;\n /** renders an icon in the end slot */\n iconName?: IconName;\n /** Label text for the input */\n label?: string;\n /** Additional classes for the label */\n labelClassName?: string;\n /** Forces the focus ring to show regardless of focus state */\n forceShowFocusRing?: boolean;\n /** Error state for the input */\n error?: boolean;\n /** Error message to display below the input */\n errorMessage?: string;\n /** Helper text displayed below the input */\n helperText?: string;\n /** Character count display */\n showCharacterCount?: boolean;\n /** Maximum number of characters */\n maxLength?: number;\n} & React.InputHTMLAttributes<HTMLInputElement> &\n Pick<IconProps, \"color\" | \"size\" | \"title\">;\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n end,\n iconName,\n color,\n size,\n title,\n label,\n labelClassName,\n id,\n children,\n forceShowFocusRing,\n error,\n errorMessage,\n helperText,\n showCharacterCount,\n maxLength,\n value,\n defaultValue,\n onChange,\n disabled,\n ...props\n },\n ref\n ) => {\n const [currentValue, setCurrentValue] = React.useState(\n value?.toString() || defaultValue?.toString() || \"\"\n );\n\n // Update internal value when prop changes\n React.useEffect(() => {\n if (value !== undefined) {\n setCurrentValue(value.toString());\n }\n }, [value]);\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n setCurrentValue(newValue);\n onChange?.(e);\n },\n [onChange]\n );\n\n const characterCount = currentValue.length;\n const showCount = showCharacterCount || !!maxLength;\n\n return (\n <div className=\"gap-1 flex flex-col\">\n {label && (\n <Text\n variant=\"label-default\"\n htmlFor={id}\n as=\"label\"\n color={error ? \"danger\" : \"primary\"}\n className={cn(labelClassName)}\n >\n {label}\n </Text>\n )}\n <div\n className={cn(\n \"relative flex flex-col gap-2 w-full rounded-lg border bg-background-0 px-3 md:py-3 py-2 text-secondary transition-colors duration-150\",\n !error && !forceShowFocusRing && \"border-secondary-50\",\n error && \"border-tertiary-10\",\n disabled && \"cursor-not-allowed opacity-50\",\n \"focus-within:ring-2 focus-within:ring-primary-100\",\n forceShowFocusRing && focusRingStylesCoerced\n )}\n >\n <div className=\"flex relative\">\n <input\n ref={ref}\n id={id}\n className={cn(\n \"font-sans text-sm flex w-full bg-background-0 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-secondary text-primary disabled:cursor-not-allowed focus:outline-none rounded-lg\",\n end && \"pr-10\",\n className\n )}\n value={currentValue}\n maxLength={maxLength}\n onChange={handleChange}\n aria-invalid={error}\n disabled={disabled}\n {...props}\n />\n {(end || iconName) && (\n <div className=\"absolute inset-y-0 right-0 flex items-center\">\n {iconName ? (\n <Icon\n name={iconName}\n color={error ? \"danger\" : \"secondary\"}\n size={size}\n title={title}\n />\n ) : (\n end\n )}\n </div>\n )}\n </div>\n {children}\n </div>\n <div className=\"flex justify-between gap-2\">\n {(error && errorMessage) || helperText ? (\n <Text\n variant=\"body-xxs\"\n color={error ? \"danger\" : \"secondary\"}\n className=\"mt-1\"\n >\n {error ? errorMessage : helperText}\n </Text>\n ) : null}\n {showCount && (\n <Text\n variant=\"body-xxs\"\n color={error ? \"danger\" : \"secondary\"}\n className=\"text-right mt-1\"\n >\n <Text\n variant=\"body-xxs\"\n as=\"span\"\n color=\"primary-100\"\n className=\"font-bold\"\n >\n {characterCount}\n </Text>\n {maxLength && `/${maxLength}`} characters\n </Text>\n )}\n </div>\n </div>\n );\n }\n);\n"]}
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
1
  import { IconName } from '@deckai/icons';
2
+ import * as React from 'react';
3
3
  import { IconProps } from './Icon.cjs';
4
4
  import '../tailwind-Cl3vNM6S.cjs';
5
5
  import '../responsive-CjR1yA5N.cjs';
@@ -47,6 +47,6 @@ declare const Input: React.ForwardRefExoticComponent<{
47
47
  showCharacterCount?: boolean;
48
48
  /** Maximum number of characters */
49
49
  maxLength?: number;
50
- } & React.InputHTMLAttributes<HTMLInputElement> & Pick<IconProps, "color" | "title" | "size"> & React.RefAttributes<HTMLInputElement>>;
50
+ } & React.InputHTMLAttributes<HTMLInputElement> & Pick<IconProps, "title" | "color" | "size"> & React.RefAttributes<HTMLInputElement>>;
51
51
 
52
52
  export { Input, type InputProps };
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
1
  import { IconName } from '@deckai/icons';
2
+ import * as React from 'react';
3
3
  import { IconProps } from './Icon.js';
4
4
  import '../tailwind-Cl3vNM6S.js';
5
5
  import '../responsive-CjR1yA5N.js';
@@ -47,6 +47,6 @@ declare const Input: React.ForwardRefExoticComponent<{
47
47
  showCharacterCount?: boolean;
48
48
  /** Maximum number of characters */
49
49
  maxLength?: number;
50
- } & React.InputHTMLAttributes<HTMLInputElement> & Pick<IconProps, "color" | "title" | "size"> & React.RefAttributes<HTMLInputElement>>;
50
+ } & React.InputHTMLAttributes<HTMLInputElement> & Pick<IconProps, "title" | "color" | "size"> & React.RefAttributes<HTMLInputElement>>;
51
51
 
52
52
  export { Input, type InputProps };
@@ -1,8 +1,8 @@
1
- import*as p from'react';import p__default from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {IconMap}from'@deckai/icons';function h(...e){return twMerge(clsx(e))}var v="ring-2 ring-primary-100";var T={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},C={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},g=e=>String(e),A=(e,n=24)=>{let t=[],r={};if(e===undefined){let s=g(n);s?t.push(T[s]):(r.height=`${n}px`,r.width=`${n}px`);}if(typeof e=="number"){let s=g(e);s?t.push(T[s]):(r.height=`${e}px`,r.width=`${e}px`);}if(Array.isArray(e)){let s=g(n),a=[s&&T[s]||`h-[${n}px] w-[${n}px]`];e.forEach(o=>{if(typeof o=="string"){let[l,m]=o.split(":"),x=parseInt(m,10),c=g(x);t.push(c&&C[l]?.[c]||`${l}:h-[${x}px] ${l}:w-[${x}px]`);}}),t.push(...a);}if(typeof e=="string"){let[s,a]=e.split(":"),o=parseInt(a,10),l=g(o);t.push(l&&C[s]?.[l]||`${s}:h-[${o}px] ${s}:w-[${o}px]`);}return {responsiveSizeClasses:t.join(" "),responsiveSizeStyles:r}};var k={primary:"#080808",secondary:"#666666",white:"#ffffff",primaryBlue:"#089CCB",disabled:"#888888",danger:"#FF0000"},b=p__default.forwardRef(({name:e,size:n=24,color:t="primary",title:r,className:s,style:a={},...o},l)=>{let m=IconMap[e],{responsiveSizeClasses:x,responsiveSizeStyles:c}=A(n,24);return p__default.createElement("div",{className:h("flex justify-center items-center",x,s),style:{"--icon-stroke":k[t],...c,...a}},p__default.createElement(m,{ref:l,"aria-hidden":!r,"aria-label":r,stroke:e.includes("filled")?undefined:k[t],...o}))});b.displayName="Icon";var W={xl:"h1",lg:"h1",md:"h2",sm:"h3",xs:"h4"},_=e=>{let[n,t]=e.split("-");return n==="heading"?W[t]||"p":n==="label"?"label":"p"},q={light:"font-light",regular:"font-regular",semibold:"font-semibold",bold:"font-bold"},Q=e=>e?(Array.isArray(e)?e:[e]).map(t=>{if(t.includes(":")){let[r,s]=t.split(":");return `${r}:text-${s}`}return `text-${t}`}).join(" "):"text-body-default",d=p__default.forwardRef(({variant:e="body-default",color:n="primary",as:t,className:r,children:s,weight:a,...o},l)=>{let m=Q(e),x=n==="inherit"?"text-inherit":`text-${n}`,c=p__default.useMemo(()=>{let y=typeof e=="string"?e.split(":").pop():Array.isArray(e)?e[0].split(":").pop():"body-default";return _(y)},[e]);return p__default.createElement(t||c,{ref:l,className:`
1
+ import*as s from'react';import s__default from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {IconMap}from'@deckai/icons';function h(...e){return twMerge(clsx(e))}var S="ring-2 ring-primary-100";var T={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},C={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},g=e=>String(e),A=(e,p=24)=>{let t=[],n={};if(e===undefined){let r=g(p);r?t.push(T[r]):(n.height=`${p}px`,n.width=`${p}px`);}if(typeof e=="number"){let r=g(e);r?t.push(T[r]):(n.height=`${e}px`,n.width=`${e}px`);}if(Array.isArray(e)){let r=g(p),l=[r&&T[r]||`h-[${p}px] w-[${p}px]`];e.forEach(o=>{if(typeof o=="string"){let[a,m]=o.split(":"),x=parseInt(m,10),c=g(x);t.push(c&&C[a]?.[c]||`${a}:h-[${x}px] ${a}:w-[${x}px]`);}}),t.push(...l);}if(typeof e=="string"){let[r,l]=e.split(":"),o=parseInt(l,10),a=g(o);t.push(a&&C[r]?.[a]||`${r}:h-[${o}px] ${r}:w-[${o}px]`);}return {responsiveSizeClasses:t.join(" "),responsiveSizeStyles:n}};var k={primary:"var(--color-primary)",secondary:"var(--color-secondary)",white:"var(--color-white)",primaryBlue:"var(--color-primary-100)",disabled:"var(--color-disabled)",danger:"var(--color-danger)"},b=s__default.forwardRef(({name:e,size:p=24,color:t="primary",title:n,className:r,style:l={},...o},a)=>{let m=IconMap[e],{responsiveSizeClasses:x,responsiveSizeStyles:c}=A(p,24);return s__default.createElement("div",{className:h("flex justify-center items-center",x,r),style:{"--icon-stroke":k[t],...c,...l}},s__default.createElement(m,{ref:a,"aria-hidden":!n,"aria-label":n,stroke:e.includes("filled")?undefined:k[t],...o}))});b.displayName="Icon";var _={xl:"h1",lg:"h1",md:"h2",sm:"h3",xs:"h4"},F=e=>{let[p,t]=e.split("-");return p==="heading"?_[t]||"p":p==="label"?"label":"p"},q={light:"font-light",regular:"font-regular",semibold:"font-semibold",bold:"font-bold"},Q=e=>e?(Array.isArray(e)?e:[e]).map(t=>{if(t.includes(":")){let[n,r]=t.split(":");return `${n}:text-${r}`}return `text-${t}`}).join(" "):"text-body-default",d=s__default.forwardRef(({variant:e="body-default",color:p="primary",as:t,className:n,children:r,weight:l,...o},a)=>{let m=Q(e),x=p==="inherit"?"text-inherit":`text-${p}`,c=s__default.useMemo(()=>{let y=typeof e=="string"?e.split(":").pop():Array.isArray(e)?e[0].split(":").pop():"body-default";return F(y)},[e]);return s__default.createElement(t||c,{ref:a,className:`
2
2
  font-sans antialiased
3
3
  ${m}
4
4
  ${x}
5
- ${a&&`!${q[a]}`}
6
- ${r}
7
- `,...o},s)});d.displayName="Text";var ge=p.forwardRef(({className:e,end:n,iconName:t,color:r,size:s,title:a,label:o,labelClassName:l,id:m,children:x,forceShowFocusRing:c,error:i,errorMessage:y,helperText:H,showCharacterCount:I,maxLength:u,value:f,defaultValue:N,onChange:M,disabled:R,...V},P)=>{let[L,$]=p.useState(f?.toString()||N?.toString()||"");p.useEffect(()=>{f!==undefined&&$(f.toString());},[f]);let K=p.useCallback(S=>{let O=S.target.value;$(O),M?.(S);},[M]),B=L.length,j=I||!!u;return p.createElement("div",{className:"gap-1 flex flex-col"},o&&p.createElement(d,{variant:"label-default",htmlFor:m,as:"label",color:i?"danger":"primary",className:h(l)},o),p.createElement("div",{className:h("relative flex flex-col gap-2 w-full rounded-lg border bg-background-0 px-3 md:py-3 py-2 text-secondary transition-colors duration-150",!i&&!c&&"border-secondary-50",i&&"border-tertiary-10",R&&"cursor-not-allowed opacity-50","focus-within:ring-2 focus-within:ring-primary-100",c&&v)},p.createElement("div",{className:"flex relative"},p.createElement("input",{ref:P,id:m,className:h("font-sans text-sm flex w-full file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-secondary text-primary disabled:cursor-not-allowed focus:outline-none rounded-lg",n&&"pr-10",e),value:L,maxLength:u,onChange:K,"aria-invalid":i,disabled:R,...V}),(n||t)&&p.createElement("div",{className:"absolute inset-y-0 right-0 flex items-center"},t?p.createElement(b,{name:t,color:i?"danger":"secondary",size:s,title:a}):n)),x),p.createElement("div",{className:"flex justify-between gap-2"},i&&y||H?p.createElement(d,{variant:"body-xxs",color:i?"danger":"secondary",className:"mt-1"},i?y:H):null,j&&p.createElement(d,{variant:"body-xxs",color:i?"danger":"secondary",className:"text-right mt-1"},p.createElement(d,{variant:"body-xxs",as:"span",color:"primary-100",className:"font-bold"},B),u&&`/${u}`," characters")))});export{ge as Input};//# sourceMappingURL=Input.js.map
5
+ ${l&&`!${q[l]}`}
6
+ ${n}
7
+ `,...o},r)});d.displayName="Text";var de=s.forwardRef(({className:e,end:p,iconName:t,color:n,size:r,title:l,label:o,labelClassName:a,id:m,children:x,forceShowFocusRing:c,error:i,errorMessage:y,helperText:H,showCharacterCount:I,maxLength:u,value:f,defaultValue:N,onChange:M,disabled:L,...V},P)=>{let[R,$]=s.useState(f?.toString()||N?.toString()||"");s.useEffect(()=>{f!==undefined&&$(f.toString());},[f]);let K=s.useCallback(v=>{let O=v.target.value;$(O),M?.(v);},[M]),j=R.length,B=I||!!u;return s.createElement("div",{className:"gap-1 flex flex-col"},o&&s.createElement(d,{variant:"label-default",htmlFor:m,as:"label",color:i?"danger":"primary",className:h(a)},o),s.createElement("div",{className:h("relative flex flex-col gap-2 w-full rounded-lg border bg-background-0 px-3 md:py-3 py-2 text-secondary transition-colors duration-150",!i&&!c&&"border-secondary-50",i&&"border-tertiary-10",L&&"cursor-not-allowed opacity-50","focus-within:ring-2 focus-within:ring-primary-100",c&&S)},s.createElement("div",{className:"flex relative"},s.createElement("input",{ref:P,id:m,className:h("font-sans text-sm flex w-full bg-background-0 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-secondary text-primary disabled:cursor-not-allowed focus:outline-none rounded-lg",p&&"pr-10",e),value:R,maxLength:u,onChange:K,"aria-invalid":i,disabled:L,...V}),(p||t)&&s.createElement("div",{className:"absolute inset-y-0 right-0 flex items-center"},t?s.createElement(b,{name:t,color:i?"danger":"secondary",size:r,title:l}):p)),x),s.createElement("div",{className:"flex justify-between gap-2"},i&&y||H?s.createElement(d,{variant:"body-xxs",color:i?"danger":"secondary",className:"mt-1"},i?y:H):null,B&&s.createElement(d,{variant:"body-xxs",color:i?"danger":"secondary",className:"text-right mt-1"},s.createElement(d,{variant:"body-xxs",as:"span",color:"primary-100",className:"font-bold"},j),u&&`/${u}`," characters")))});export{de as Input};//# sourceMappingURL=Input.js.map
8
8
  //# sourceMappingURL=Input.js.map