@ecohouse/ui 0.1.2 → 0.1.3

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 (42) hide show
  1. package/dist/index.cjs +1266 -109
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +188 -12
  4. package/dist/index.d.ts +188 -12
  5. package/dist/index.js +1260 -112
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/components/Button/Button.tsx +106 -88
  9. package/src/components/Checkbox/Checkbox.stories.tsx +112 -0
  10. package/src/components/Checkbox/Checkbox.tsx +150 -0
  11. package/src/components/Checkbox/index.ts +2 -0
  12. package/src/components/Input/Input.stories.tsx +11 -40
  13. package/src/components/Input/Input.tsx +58 -54
  14. package/src/components/Input/index.ts +1 -1
  15. package/src/components/Select/Select.stories.tsx +196 -0
  16. package/src/components/Select/Select.tsx +851 -0
  17. package/src/components/Select/index.ts +2 -0
  18. package/src/components/Textarea/Textarea.stories.tsx +71 -0
  19. package/src/components/Textarea/Textarea.tsx +241 -0
  20. package/src/components/Textarea/index.ts +2 -0
  21. package/src/components/Toggle/Toggle.stories.tsx +100 -0
  22. package/src/components/Toggle/Toggle.tsx +176 -0
  23. package/src/components/Toggle/index.ts +2 -0
  24. package/src/components/index.ts +13 -1
  25. package/src/icons/Check/CheckIcon.tsx +26 -0
  26. package/src/icons/Check/CheckIcon.web.tsx +32 -0
  27. package/src/icons/Check/checkPath.ts +2 -0
  28. package/src/icons/Check/index.ts +1 -0
  29. package/src/icons/ChevronDown/ChevronDownIcon.tsx +30 -0
  30. package/src/icons/ChevronDown/ChevronDownIcon.web.tsx +36 -0
  31. package/src/icons/ChevronDown/chevronDownPath.ts +2 -0
  32. package/src/icons/ChevronDown/index.ts +1 -0
  33. package/src/icons/Search/SearchIcon.tsx +37 -0
  34. package/src/icons/Search/SearchIcon.web.tsx +43 -0
  35. package/src/icons/Search/index.ts +1 -0
  36. package/src/icons/Search/searchPath.ts +5 -0
  37. package/src/icons/index.ts +3 -0
  38. package/src/icons/registry.ts +8 -2
  39. package/src/index.ts +21 -3
  40. package/src/theme/index.ts +7 -1
  41. package/src/theme/typography.ts +52 -2
  42. package/src/utils/mergeRefs.ts +20 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/icons/ArrowRight/arrowRightPath.ts","../src/theme/colors.ts","../src/theme/typography.ts","../src/icons/ArrowRight/ArrowRightIcon.tsx","../src/icons/Bag/bagPath.ts","../src/icons/Bag/BagIcon.tsx","../src/icons/Bell/bellPath.ts","../src/icons/Bell/BellIcon.tsx","../src/icons/Building/buildingPath.ts","../src/icons/Building/BuildingIcon.tsx","../src/icons/Camera/cameraPath.ts","../src/icons/Camera/CameraIcon.tsx","../src/icons/CheckBadge/checkBadgePath.ts","../src/icons/CheckBadge/CheckBadgeIcon.tsx","../src/icons/Clock/clockPath.ts","../src/icons/Clock/ClockIcon.tsx","../src/icons/Facebook/facebookPath.ts","../src/icons/Facebook/FacebookIcon.tsx","../src/icons/Home/homePath.ts","../src/icons/Home/HomeIcon.tsx","../src/icons/Instagram/instagramPath.ts","../src/icons/Instagram/InstagramIcon.tsx","../src/icons/Key/keyPath.ts","../src/icons/Key/KeyIcon.tsx","../src/icons/LinkedIn/linkedinPath.ts","../src/icons/LinkedIn/LinkedInIcon.tsx","../src/icons/Mail/mailPath.ts","../src/icons/Mail/MailIcon.tsx","../src/icons/Navigate/navigatePath.ts","../src/icons/Navigate/NavigateIcon.tsx","../src/icons/Phone/phonePath.ts","../src/icons/Phone/PhoneIcon.tsx","../src/icons/Show/showPath.ts","../src/icons/Show/ShowIcon.tsx","../src/icons/User/userPath.ts","../src/icons/User/UserIcon.tsx","../src/icons/registry.ts","../src/icons/Icon.tsx","../src/utils/useApplyWebClassName.ts","../src/components/Button/Button.tsx","../src/components/Input/Input.tsx"],"names":["jsx","Svg","Path","jsxs","useLayoutEffect","Platform","useRef","TouchableOpacity","Text","View","StyleSheet","sizeConfig","useState","styles","TextInput"],"mappings":"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","file":"index.cjs","sourcesContent":["/** Arrow_Right_MD path — 20×20 viewBox. */\nexport const ARROW_RIGHT_PATH = \"M4.16667 10H15.8333M15.8333 10L10 4.16667M15.8333 10L10 15.8333\";\n","export const grey = {\n \"0\": \"#767676\",\n \"0.5\": \"#6E6E6E\",\n \"1\": \"#666666\",\n \"1.5\": \"#5E5E5E\",\n \"2\": \"#565656\",\n \"3\": \"#474747\",\n \"4\": \"#373737\",\n \"5\": \"#272727\",\n \"6\": \"#1F1F1F\",\n \"7\": \"#171717\",\n \"7.5\": \"#161616\",\n \"8\": \"#101010\",\n \"8.5\": \"#0C0C0C\",\n \"9\": \"#080808\",\n \"9.5\": \"#040404\",\n} as const;\n\nexport type GreyStep = keyof typeof grey;\n\nexport const colors = {\n primary: \"#B46436\",\n black: \"#000000\",\n white: \"#ffffff\",\n dark: \"#090909\",\n red: \"#A63E3E\",\n lightGrey: \"#B7B7B7\",\n primaryMuted: \"#B464360F\",\n redMuted: \"#A63E3E0F\",\n\n grey0: grey[\"0\"],\n grey50: grey[\"0.5\"],\n grey100: grey[\"1\"],\n grey150: grey[\"1.5\"],\n grey200: grey[\"2\"],\n grey300: grey[\"3\"],\n grey400: grey[\"4\"],\n grey500: grey[\"5\"],\n grey600: grey[\"6\"],\n grey700: grey[\"7\"],\n grey750: grey[\"7.5\"],\n grey800: grey[\"8\"],\n grey850: grey[\"8.5\"],\n grey900: grey[\"9\"],\n grey950: grey[\"9.5\"],\n} as const;\n","export const fonts = {\n sans: \"Noto Sans Armenian\",\n} as const;\n\n/** Button label — SemiBold, line-height 100%, letter-spacing 3%. */\nexport const buttonTypography = {\n lg: {\n fontFamily: fonts.sans,\n fontSize: 14,\n fontWeight: \"600\" as const,\n lineHeight: 14,\n letterSpacing: 0.42,\n },\n sm: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"600\" as const,\n lineHeight: 12,\n letterSpacing: 0.36,\n },\n} as const;\n\n/** Input label / field / hint typography. */\nexport const inputTypography = {\n label: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"500\" as const,\n lineHeight: 16,\n letterSpacing: 0,\n },\n field: {\n fontFamily: fonts.sans,\n fontSize: 14,\n fontWeight: \"400\" as const,\n lineHeight: 19,\n letterSpacing: 0,\n },\n hint: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"400\" as const,\n lineHeight: 16,\n letterSpacing: 0,\n },\n} as const;\n","import Svg, { Path } from \"react-native-svg\";\nimport { ARROW_RIGHT_PATH } from \"./arrowRightPath\";\nimport { colors } from \"../../theme\";\n\nexport { ARROW_RIGHT_PATH } from \"./arrowRightPath\";\n\ninterface ArrowRightIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function ArrowRightIcon({\n size = 20,\n color = colors.primary,\n strokeWidth = 2,\n}: ArrowRightIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={ARROW_RIGHT_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const BAG_PATH =\n \"M9.23047 9H7.2002C6.08009 9 5.51962 9 5.0918 9.21799C4.71547 9.40973 4.40973 9.71547 4.21799 10.0918C4 10.5196 4 11.0801 4 12.2002V17.8002C4 18.9203 4 19.4801 4.21799 19.9079C4.40973 20.2842 4.71547 20.5905 5.0918 20.7822C5.5192 21 6.07902 21 7.19694 21H16.8031C17.921 21 18.48 21 18.9074 20.7822C19.2837 20.5905 19.5905 20.2842 19.7822 19.9079C20 19.4805 20 18.9215 20 17.8036V12.1969C20 11.079 20 10.5192 19.7822 10.0918C19.5905 9.71547 19.2837 9.40973 18.9074 9.21799C18.4796 9 17.9203 9 16.8002 9H14.7689M9.23047 9H14.7689M9.23047 9C9.10302 9 9 8.89668 9 8.76923V6C9 4.34315 10.3431 3 12 3C13.6569 3 15 4.34315 15 6V8.76923C15 8.89668 14.8964 9 14.7689 9\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { BAG_PATH } from \"./bagPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { BAG_PATH } from \"./bagPath\";\n\nexport function BagIcon({ size = 24, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d={BAG_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const BELL_PATH =\n \"M7.5 17.5H12.5M10 2.5C7.23858 2.5 5 4.73858 5 7.5C5 8.51208 5.3007 9.45393 5.81764 10.2411C6.61256 11.4515 7.00967 12.0564 7.06127 12.1467C7.52024 12.9508 7.43573 12.6672 7.49349 13.5913C7.49998 13.6952 7.5 13.8524 7.5 14.1667C7.5 14.6269 7.8731 15 8.33333 15L11.6667 15C12.1269 15 12.5 14.6269 12.5 14.1667C12.5 13.8524 12.5 13.6952 12.5065 13.5913C12.5643 12.6672 12.4793 12.9509 12.9382 12.1467C12.9898 12.0564 13.3876 11.4515 14.1825 10.2411C14.6995 9.45393 15.0002 8.51208 15.0002 7.5C15.0002 4.73858 12.7614 2.5 10 2.5Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { BELL_PATH } from \"./bellPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { BELL_PATH } from \"./bellPath\";\n\nexport function BellIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={BELL_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const BUILDING_PATH =\n \"M7.5 9.16659V16.6666M7.5 9.16659H3.83301C3.3663 9.16659 3.13318 9.16659 2.95492 9.25741C2.79811 9.33731 2.67072 9.4647 2.59083 9.6215C2.5 9.79976 2.5 10.0333 2.5 10.5V16.6666H7.5M7.5 9.16659V4.66667C7.5 4.19996 7.5 3.96643 7.59083 3.78817C7.67072 3.63137 7.79811 3.50397 7.95492 3.42408C8.13317 3.33325 8.3663 3.33325 8.83301 3.33325H11.1663C11.6331 3.33325 11.8669 3.33325 12.0452 3.42408C12.202 3.50397 12.329 3.63137 12.4089 3.78817C12.4997 3.96643 12.5 4.19996 12.5 4.66667V6.66659M7.5 16.6666H12.5M12.5 16.6666L17.5 16.6667V8C17.5 7.53329 17.4997 7.29976 17.4089 7.1215C17.329 6.9647 17.2024 6.83731 17.0456 6.75741C16.8674 6.66659 16.6334 6.66659 16.1667 6.66659H12.5M12.5 16.6666V6.66659\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { BUILDING_PATH } from \"./buildingPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { BUILDING_PATH } from \"./buildingPath\";\n\nexport function BuildingIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={BUILDING_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const CAMERA_PATH =\n \"M9.48898 7H6.2002C5.08009 7 4.51962 7 4.0918 7.21799C3.71547 7.40973 3.40973 7.71547 3.21799 8.0918C3 8.51962 3 9.08009 3 10.2002V15.8002C3 16.9203 3 17.4796 3.21799 17.9074C3.40973 18.2837 3.71547 18.5905 4.0918 18.7822C4.5192 19 5.07899 19 6.19691 19H17.8031C18.921 19 19.48 19 19.9074 18.7822C20.2837 18.5905 20.5905 18.2837 20.7822 17.9074C21 17.48 21 16.921 21 15.8031V10.1969C21 9.07899 21 8.5192 20.7822 8.0918C20.5905 7.71547 20.2837 7.40973 19.9074 7.21799C19.4796 7 18.9203 7 17.8002 7H14.5108M9.48898 7H9.55078M9.48898 7C9.50151 7.00001 9.51468 7 9.52857 7L9.55078 7M9.48898 7C9.38286 6.99995 9.32339 6.99941 9.27637 6.99414C8.68878 6.92835 8.28578 6.36908 8.40918 5.79084C8.42066 5.73703 8.44336 5.66894 8.4883 5.53412L8.49023 5.52841C8.54156 5.37443 8.56723 5.29743 8.59558 5.22949C8.88586 4.53389 9.54322 4.06083 10.2949 4.00541C10.3683 4 10.449 4 10.6113 4H13.3886C13.5509 4 13.6322 4 13.7057 4.00541C14.4574 4.06083 15.114 4.53389 15.4043 5.22949C15.4326 5.29743 15.4584 5.37434 15.5098 5.52832C15.556 5.66699 15.5791 5.73636 15.5908 5.79093C15.7142 6.36917 15.3118 6.92835 14.7242 6.99414C14.6772 6.99941 14.6171 6.99995 14.5108 7M9.55078 7H14.449M14.449 7H14.5108M14.449 7L14.4712 7C14.4851 7 14.4983 7.00001 14.5108 7M12 16C10.3431 16 9 14.6569 9 13C9 11.3431 10.3431 10 12 10C13.6569 10 15 11.3431 15 13C15 14.6569 13.6569 16 12 16Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { CAMERA_PATH } from \"./cameraPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { CAMERA_PATH } from \"./cameraPath\";\n\nexport function CameraIcon({ size = 24, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d={CAMERA_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const CHECK_BADGE_PATH =\n \"M12.5 8.33317L9.16663 11.6665L7.49996 9.99984M11.0384 2.88233L12.0558 3.74941C12.3122 3.96786 12.6305 4.09992 12.9662 4.12671L14.2987 4.23291C15.0822 4.29543 15.7045 4.91733 15.767 5.70077L15.8729 7.03353C15.8997 7.36925 16.0322 7.68799 16.2507 7.94433L17.1174 8.96152C17.6272 9.5597 17.6272 10.4396 17.1175 11.0378L16.2508 12.0551C16.0323 12.3115 15.9 12.6303 15.8732 12.9661L15.7666 14.2986C15.704 15.082 15.0827 15.7043 14.2993 15.7668L12.9663 15.8732C12.6305 15.9 12.312 16.0317 12.0556 16.2502L11.0384 17.1173C10.4402 17.627 9.55973 17.6271 8.96155 17.1174L7.9443 16.2502C7.68796 16.0318 7.36938 15.8998 7.03365 15.8731L5.70064 15.7668C4.9172 15.7043 4.29588 15.0822 4.23336 14.2987L4.12675 12.9661C4.09996 12.6304 3.96759 12.3118 3.74915 12.0555L2.88245 11.0378C2.37268 10.4397 2.37244 9.56002 2.88221 8.96184L3.74969 7.94418C3.96814 7.68784 4.09923 7.36926 4.12602 7.03353L4.23263 5.70093C4.29515 4.91749 4.91826 4.29535 5.70171 4.23283L7.03324 4.12663C7.36897 4.09984 7.68771 3.96788 7.94404 3.74943L8.96164 2.88233C9.55982 2.37256 10.4402 2.37256 11.0384 2.88233Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { CHECK_BADGE_PATH } from \"./checkBadgePath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { CHECK_BADGE_PATH } from \"./checkBadgePath\";\n\nexport function CheckBadgeIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={CHECK_BADGE_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const CLOCK_PATH =\n \"M12 7V12H17M12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { CLOCK_PATH } from \"./clockPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { CLOCK_PATH } from \"./clockPath\";\n\nexport function ClockIcon({ size = 24, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d={CLOCK_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const FACEBOOK_PATH =\n \"M10.0003 1.69922C5.41699 1.69922 1.66699 5.44089 1.66699 10.0492C1.66699 14.2159 4.71699 17.6742 8.70033 18.2992V12.4659H6.58366V10.0492H8.70033V8.20755C8.70033 6.11589 9.94199 4.96589 11.8503 4.96589C12.7587 4.96589 13.7087 5.12422 13.7087 5.12422V7.18255H12.6587C11.6253 7.18255 11.3003 7.82422 11.3003 8.48255V10.0492H13.617L13.242 12.4659H11.3003V18.2992C13.264 17.9891 15.0522 16.9871 16.3419 15.4743C17.6317 13.9614 18.3381 12.0373 18.3337 10.0492C18.3337 5.44089 14.5837 1.69922 10.0003 1.69922Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { FACEBOOK_PATH } from \"./facebookPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { FACEBOOK_PATH } from \"./facebookPath\";\n\nexport function FacebookIcon({ size = 20, color = colors.white }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path d={FACEBOOK_PATH} fill={color} />\n </Svg>\n );\n}\n","export const HOME_PATH =\n \"M1.66675 16.6667H3.33341M3.33341 16.6667H8.33341M3.33341 16.6667V9.54352C3.33341 9.09823 3.33341 8.87548 3.38756 8.66828C3.43554 8.48466 3.51491 8.31089 3.6215 8.15387C3.74178 7.97668 3.90895 7.82974 4.24406 7.53652L8.24538 4.03537C8.86662 3.49178 9.17726 3.21997 9.5271 3.11652C9.83559 3.02529 10.1644 3.02529 10.4729 3.11652C10.823 3.22005 11.1341 3.49212 11.7563 4.03652L15.7563 7.53652C16.0914 7.82974 16.2586 7.97668 16.3789 8.15387C16.4855 8.31089 16.5642 8.48466 16.6122 8.66828C16.6664 8.87548 16.6667 9.09824 16.6667 9.54352V16.6667M8.33341 16.6667H11.6667M8.33341 16.6667V13.3334C8.33341 12.4129 9.07961 11.6667 10.0001 11.6667C10.9206 11.6667 11.6667 12.4129 11.6667 13.3334V16.6667M11.6667 16.6667H16.6667M16.6667 16.6667H18.3334\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { HOME_PATH } from \"./homePath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { HOME_PATH } from \"./homePath\";\n\nexport function HomeIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={HOME_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const INSTAGRAM_PATH =\n \"M6.49984 1.66748H13.4998C16.1665 1.66748 18.3332 3.83415 18.3332 6.50081V13.5008C18.3332 14.7827 17.8239 16.0121 16.9175 16.9185C16.0111 17.8249 14.7817 18.3341 13.4998 18.3341H6.49984C3.83317 18.3341 1.6665 16.1675 1.6665 13.5008V6.50081C1.6665 5.21893 2.17573 3.98956 3.08215 3.08313C3.98858 2.17671 5.21796 1.66748 6.49984 1.66748ZM6.33317 3.33415C5.53752 3.33415 4.77446 3.65022 4.21185 4.21283C3.64924 4.77544 3.33317 5.5385 3.33317 6.33415V13.6675C3.33317 15.3258 4.67484 16.6675 6.33317 16.6675H13.6665C14.4622 16.6675 15.2252 16.3514 15.7878 15.7888C16.3504 15.2262 16.6665 14.4631 16.6665 13.6675V6.33415C16.6665 4.67581 15.3248 3.33415 13.6665 3.33415H6.33317ZM14.3748 4.58415C14.6511 4.58415 14.9161 4.69389 15.1114 4.88924C15.3068 5.08459 15.4165 5.34955 15.4165 5.62581C15.4165 5.90208 15.3068 6.16703 15.1114 6.36238C14.9161 6.55773 14.6511 6.66748 14.3748 6.66748C14.0986 6.66748 13.8336 6.55773 13.6383 6.36238C13.4429 6.16703 13.3332 5.90208 13.3332 5.62581C13.3332 5.34955 13.4429 5.08459 13.6383 4.88924C13.8336 4.69389 14.0986 4.58415 14.3748 4.58415ZM9.99984 5.83415C11.1049 5.83415 12.1647 6.27313 12.9461 7.05454C13.7275 7.83594 14.1665 8.89574 14.1665 10.0008C14.1665 11.1059 13.7275 12.1657 12.9461 12.9471C12.1647 13.7285 11.1049 14.1675 9.99984 14.1675C8.89477 14.1675 7.83496 13.7285 7.05356 12.9471C6.27216 12.1657 5.83317 11.1059 5.83317 10.0008C5.83317 8.89574 6.27216 7.83594 7.05356 7.05454C7.83496 6.27313 8.89477 5.83415 9.99984 5.83415ZM9.99984 7.50081C9.3368 7.50081 8.70091 7.76421 8.23207 8.23305C7.76323 8.70189 7.49984 9.33777 7.49984 10.0008C7.49984 10.6639 7.76323 11.2997 8.23207 11.7686C8.70091 12.2374 9.3368 12.5008 9.99984 12.5008C10.6629 12.5008 11.2988 12.2374 11.7676 11.7686C12.2364 11.2997 12.4998 10.6639 12.4998 10.0008C12.4998 9.33777 12.2364 8.70189 11.7676 8.23305C11.2988 7.76421 10.6629 7.50081 9.99984 7.50081Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { INSTAGRAM_PATH } from \"./instagramPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { INSTAGRAM_PATH } from \"./instagramPath\";\n\nexport function InstagramIcon({ size = 20, color = colors.white }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path d={INSTAGRAM_PATH} fill={color} />\n </Svg>\n );\n}\n","export const KEY_PATH =\n \"M5.28673 10.0002L7.0545 11.768M7.6435 7.64301L9.41127 9.41078M10.0003 5.28624L11.768 7.05401M4.22553 11.0604L11.0609 4.22505C11.7209 3.56502 12.0513 3.235 12.4318 3.11136C12.7666 3.00259 13.127 3.00259 13.4618 3.11136C13.8421 3.23494 14.1718 3.56464 14.8311 4.22393L15.775 5.16785C16.4351 5.82788 16.7654 6.15867 16.8891 6.53922C16.9979 6.87396 16.9976 7.23381 16.8889 7.56855C16.7652 7.9491 16.4353 8.27937 15.7753 8.9394L8.93989 15.7748C8.27986 16.4348 7.94959 16.7647 7.56904 16.8884C7.2343 16.9971 6.87445 16.9974 6.53971 16.8886C6.15916 16.765 5.82837 16.4346 5.16834 15.7745L4.22441 14.8306C3.56513 14.1713 3.23542 13.8416 3.11185 13.4613C3.00308 13.1266 3.00308 12.7661 3.11185 12.4313C3.23549 12.0508 3.56551 11.7204 4.22553 11.0604Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { KEY_PATH } from \"./keyPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { KEY_PATH } from \"./keyPath\";\n\nexport function KeyIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={KEY_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const LINKEDIN_PATH =\n \"M15.8333 2.50098C16.2754 2.50098 16.6993 2.67657 17.0118 2.98913C17.3244 3.30169 17.5 3.72562 17.5 4.16764V15.8343C17.5 16.2763 17.3244 16.7003 17.0118 17.0128C16.6993 17.3254 16.2754 17.501 15.8333 17.501H4.16667C3.72464 17.501 3.30072 17.3254 2.98816 17.0128C2.67559 16.7003 2.5 16.2763 2.5 15.8343V4.16764C2.5 3.72562 2.67559 3.30169 2.98816 2.98913C3.30072 2.67657 3.72464 2.50098 4.16667 2.50098H15.8333ZM15.4167 15.4176V11.001C15.4167 10.2805 15.1304 9.58948 14.621 9.08C14.1115 8.57053 13.4205 8.28431 12.7 8.28431C11.9917 8.28431 11.1667 8.71764 10.7667 9.36764V8.44264H8.44167V15.4176H10.7667V11.3093C10.7667 10.6676 11.2833 10.1426 11.925 10.1426C12.2344 10.1426 12.5312 10.2656 12.75 10.4844C12.9687 10.7031 13.0917 10.9999 13.0917 11.3093V15.4176H15.4167ZM5.73333 7.13431C6.10464 7.13431 6.46073 6.98681 6.72328 6.72426C6.98583 6.46171 7.13333 6.10561 7.13333 5.73431C7.13333 4.95931 6.50833 4.32598 5.73333 4.32598C5.35982 4.32598 5.0016 4.47435 4.73749 4.73847C4.47338 5.00258 4.325 5.3608 4.325 5.73431C4.325 6.50931 4.95833 7.13431 5.73333 7.13431ZM6.89167 15.4176V8.44264H4.58333V15.4176H6.89167Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { LINKEDIN_PATH } from \"./linkedinPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { LINKEDIN_PATH } from \"./linkedinPath\";\n\nexport function LinkedInIcon({ size = 20, color = colors.white }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path d={LINKEDIN_PATH} fill={color} />\n </Svg>\n );\n}\n","export const MAIL_PATH =\n \"M3.33333 4.99984L8.42303 8.84339L8.42473 8.8448C8.98987 9.25924 9.27261 9.46658 9.5823 9.54668C9.85602 9.61748 10.1438 9.61748 10.4175 9.54668C10.7274 9.46651 11.011 9.25856 11.5771 8.84339C11.5771 8.84339 14.8417 6.33812 16.6667 4.99984M2.5 13.1667V6.83333C2.5 5.89991 2.5 5.43285 2.68166 5.07633C2.84144 4.76273 3.09623 4.50795 3.40983 4.34816C3.76635 4.1665 4.23341 4.1665 5.16683 4.1665H14.8335C15.7669 4.1665 16.233 4.1665 16.5895 4.34816C16.9031 4.50795 17.1587 4.76273 17.3185 5.07633C17.5 5.43251 17.5 5.899 17.5 6.8306V13.1695C17.5 14.1011 17.5 14.5669 17.3185 14.9231C17.1587 15.2367 16.9031 15.4919 16.5895 15.6517C16.2333 15.8332 15.7675 15.8332 14.8359 15.8332H5.16409C4.23249 15.8332 3.766 15.8332 3.40983 15.6517C3.09623 15.4919 2.84144 15.2367 2.68166 14.9231C2.5 14.5666 2.5 14.1001 2.5 13.1667Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { MAIL_PATH } from \"./mailPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { MAIL_PATH } from \"./mailPath\";\n\nexport function MailIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={MAIL_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const NAVIGATE_PATH =\n \"M5.691 14.2339C11.5836 17.7694 16.2976 13.0554 15.7084 4.21658C6.86968 3.62732 2.15584 8.34151 5.691 14.2339ZM5.691 14.2339C5.69093 14.2338 5.69107 14.234 5.691 14.2339ZM5.691 14.2339L4.16675 15.7576M5.691 14.2339L8.88079 11.0436\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { NAVIGATE_PATH } from \"./navigatePath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { NAVIGATE_PATH } from \"./navigatePath\";\n\nexport function NavigateIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={NAVIGATE_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const PHONE_PATH =\n \"M7.91872 3.54768C7.66561 2.91492 7.05276 2.5 6.37126 2.5H4.07895C3.20692 2.5 2.5 3.20675 2.5 4.07878C2.5 11.491 8.50898 17.5 15.9212 17.5C16.7933 17.5 17.5 16.793 17.5 15.921L17.5004 13.6283C17.5004 12.9468 17.0856 12.334 16.4528 12.0809L14.2558 11.2024C13.6874 10.9751 13.0402 11.0774 12.57 11.4693L12.0029 11.9422C11.3407 12.4941 10.3664 12.4502 9.75683 11.8407L8.16018 10.2425C7.55066 9.63302 7.50561 8.65945 8.05745 7.99724L8.53027 7.43025C8.92218 6.95996 9.02541 6.31263 8.79805 5.74424L7.91872 3.54768Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { PHONE_PATH } from \"./phonePath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { PHONE_PATH } from \"./phonePath\";\n\nexport function PhoneIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={PHONE_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","/** Show (eye) icon path — 20×20 viewBox. */\nexport const SHOW_PATH =\n \"M1.66669 10C1.66669 10 4.16669 4.16667 10 4.16667C15.8334 4.16667 18.3334 10 18.3334 10C18.3334 10 15.8334 15.8333 10 15.8333C4.16669 15.8333 1.66669 10 1.66669 10Z\";\n\nexport const SHOW_PUPIL_PATH =\n \"M10 12.5C11.3807 12.5 12.5 11.3807 12.5 10C12.5 8.61929 11.3807 7.5 10 7.5C8.61929 7.5 7.5 8.61929 7.5 10C7.5 11.3807 8.61929 12.5 10 12.5Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { SHOW_PATH, SHOW_PUPIL_PATH } from \"./showPath\";\nimport { colors } from \"../../theme\";\n\nexport { SHOW_PATH, SHOW_PUPIL_PATH } from \"./showPath\";\n\ninterface ShowIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function ShowIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: ShowIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={SHOW_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <Path\n d={SHOW_PUPIL_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","/** User icon path — 20×20 viewBox. */\nexport const USER_PATH =\n \"M15.8334 17.5C15.8334 14.2783 13.2217 11.6667 10 11.6667C6.77836 11.6667 4.16669 14.2783 4.16669 17.5M10 9.16667C8.15907 9.16667 6.66669 7.67428 6.66669 5.83333C6.66669 3.99238 8.15907 2.5 10 2.5C11.841 2.5 13.3334 3.99238 13.3334 5.83333C13.3334 7.67428 11.841 9.16667 10 9.16667Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { USER_PATH } from \"./userPath\";\nimport { colors } from \"../../theme\";\n\nexport { USER_PATH } from \"./userPath\";\n\ninterface UserIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function UserIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: UserIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={USER_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","import { ArrowRightIcon } from \"./ArrowRight\";\nimport { BagIcon } from \"./Bag\";\nimport { BellIcon } from \"./Bell\";\nimport { BuildingIcon } from \"./Building\";\nimport { CameraIcon } from \"./Camera\";\nimport { CheckBadgeIcon } from \"./CheckBadge\";\nimport { ClockIcon } from \"./Clock\";\nimport { FacebookIcon } from \"./Facebook\";\nimport { HomeIcon } from \"./Home\";\nimport { InstagramIcon } from \"./Instagram\";\nimport { KeyIcon } from \"./Key\";\nimport { LinkedInIcon } from \"./LinkedIn\";\nimport { MailIcon } from \"./Mail\";\nimport { NavigateIcon } from \"./Navigate\";\nimport { PhoneIcon } from \"./Phone\";\nimport { ShowIcon } from \"./Show\";\nimport { UserIcon } from \"./User\";\nimport type { IconComponent } from \"./types\";\n\nexport const icons = {\n arrowRight: ArrowRightIcon,\n bag: BagIcon,\n bell: BellIcon,\n building: BuildingIcon,\n camera: CameraIcon,\n checkBadge: CheckBadgeIcon,\n clock: ClockIcon,\n facebook: FacebookIcon,\n home: HomeIcon,\n instagram: InstagramIcon,\n key: KeyIcon,\n linkedin: LinkedInIcon,\n mail: MailIcon,\n navigate: NavigateIcon,\n phone: PhoneIcon,\n show: ShowIcon,\n user: UserIcon,\n} as const satisfies Record<string, IconComponent>;\n\nexport type IconName = keyof typeof icons;\n\nexport const iconNames = Object.keys(icons) as IconName[];\n\nexport const iconGroups = {\n navigation: [\"arrowRight\", \"home\", \"navigate\"],\n actions: [\"show\", \"bell\", \"camera\", \"key\", \"checkBadge\"],\n objects: [\"bag\", \"building\", \"clock\", \"user\"],\n communication: [\"mail\", \"phone\"],\n social: [\"facebook\", \"instagram\", \"linkedin\"],\n} as const satisfies Record<string, readonly IconName[]>;\n\nexport type IconGroup = keyof typeof iconGroups;\n\nexport const iconGroupNames = Object.keys(iconGroups) as IconGroup[];\n\nexport function getIconsByGroup(group: IconGroup): IconName[] {\n return [...iconGroups[group]];\n}\n","import { icons, type IconName } from \"./registry\";\nimport type { IconProps } from \"./types\";\n\nexport interface IconByNameProps extends IconProps {\n name: IconName;\n}\n\nexport function Icon({ name, ...props }: IconByNameProps) {\n const Component = icons[name];\n return <Component {...props} />;\n}\n","import { useLayoutEffect } from \"react\";\nimport { Platform } from \"react-native\";\n\ninterface ClassListElement {\n classList: {\n add: (...classes: string[]) => void;\n remove: (...classes: string[]) => void;\n };\n}\n\nfunction hasClassList(node: unknown): node is ClassListElement {\n return (\n typeof node === \"object\" &&\n node !== null &&\n \"classList\" in node &&\n typeof (node as ClassListElement).classList?.add === \"function\"\n );\n}\n\nfunction resolveWebElement(ref: React.RefObject<unknown>): ClassListElement | null {\n const node = ref.current;\n if (!node) return null;\n\n if (hasClassList(node)) return node;\n\n const host = node as {\n _touchableNode?: unknown;\n getScrollableNode?: () => unknown;\n };\n\n if (hasClassList(host._touchableNode)) return host._touchableNode;\n\n if (typeof host.getScrollableNode === \"function\") {\n const scrollNode = host.getScrollableNode();\n if (hasClassList(scrollNode)) return scrollNode;\n }\n\n return null;\n}\n\n/**\n * Applies CSS class names to the underlying DOM node on web.\n * Keeps TouchableOpacity/Text as the render path so default RN styles stay intact.\n *\n * Retries via rAF when the host node is not ready yet — otherwise classes like\n * `h-13` / `w-full` would only land after a later re-render (e.g. typing in a form),\n * which visibly changes button size.\n */\nexport function useApplyWebClassName(\n ref: React.RefObject<unknown>,\n className?: string,\n enabled = true,\n): void {\n useLayoutEffect(() => {\n if (!enabled || Platform.OS !== \"web\" || !className?.trim()) return;\n\n let cancelled = false;\n let rafId = 0;\n let appliedElement: ClassListElement | null = null;\n const classes = className.trim().split(/\\s+/);\n\n const apply = () => {\n if (cancelled) return;\n\n const element = resolveWebElement(ref);\n if (!element) {\n rafId = requestAnimationFrame(apply);\n return;\n }\n\n appliedElement = element;\n element.classList.add(...classes);\n };\n\n apply();\n\n return () => {\n cancelled = true;\n if (rafId) cancelAnimationFrame(rafId);\n appliedElement?.classList.remove(...classes);\n };\n }, [ref, className, enabled]);\n}\n","import { useRef, type ComponentRef, type ReactNode } from \"react\";\nimport {\n Platform,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n type GestureResponderEvent,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n} from \"react-native\";\nimport { ArrowRightIcon } from \"../../icons\";\nimport { buttonTypography, colors } from \"../../theme\";\nimport { useApplyWebClassName } from \"../../utils/useApplyWebClassName\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\";\nexport type ButtonSize = \"lg\" | \"sm\";\n\nexport interface ButtonProps {\n title?: string;\n children?: ReactNode;\n onPress: (event: GestureResponderEvent) => void;\n disabled?: boolean;\n variant?: ButtonVariant;\n size?: ButtonSize;\n showIcon?: boolean;\n icon?: ReactNode;\n style?: StyleProp<ViewStyle>;\n textStyle?: StyleProp<TextStyle>;\n className?: string;\n textClassName?: string;\n}\n\ntype VariantStyleSet = {\n backgroundColor: string;\n textColor: string;\n iconBadgeBackgroundColor: string;\n iconColor: string;\n};\n\nconst variantConfig: Record<ButtonVariant, VariantStyleSet> = {\n primary: {\n backgroundColor: colors.primary,\n textColor: colors.white,\n iconBadgeBackgroundColor: colors.white,\n iconColor: colors.primary,\n },\n secondary: {\n backgroundColor: colors.grey500,\n textColor: colors.white,\n iconBadgeBackgroundColor: colors.grey600,\n iconColor: colors.white,\n },\n};\n\nconst sizeConfig = {\n lg: {\n minHeight: 44,\n borderRadius: 40,\n paddingVertical: 4,\n paddingLeft: 20,\n paddingRightWithIcon: 4,\n paddingRight: 20,\n gap: 20,\n text: buttonTypography.lg,\n iconContainerSize: 36,\n iconSize: 20,\n },\n sm: {\n minHeight: 32,\n borderRadius: 40,\n paddingVertical: 6,\n paddingLeft: 12,\n paddingRightWithIcon: 4,\n paddingRight: 12,\n gap: 12,\n text: buttonTypography.sm,\n iconContainerSize: 20,\n iconSize: 12,\n },\n} as const satisfies Record<ButtonSize, Record<string, unknown>>;\n\nexport function Button({\n title,\n children,\n onPress,\n disabled = false,\n variant = \"primary\",\n size = \"lg\",\n showIcon = false,\n icon,\n style,\n textStyle,\n className,\n textClassName,\n}: ButtonProps) {\n const containerRef = useRef<ComponentRef<typeof TouchableOpacity>>(null);\n const textRef = useRef<ComponentRef<typeof Text>>(null);\n const preset = variantConfig[variant];\n const metrics = sizeConfig[size];\n\n const label = typeof children !== \"undefined\" ? children : title;\n const hasCustomChildren = typeof children !== \"undefined\";\n const customIcon = icon != null && typeof icon !== \"boolean\" ? icon : undefined;\n const hasIcon = showIcon || icon === true || customIcon != null;\n const resolvedContainerClassName = className?.trim() || undefined;\n\n useApplyWebClassName(containerRef, resolvedContainerClassName);\n useApplyWebClassName(textRef, textClassName);\n\n const iconNode = customIcon ?? (\n <ArrowRightIcon size={metrics.iconSize} color={preset.iconColor} />\n );\n\n const containerStyle = [\n styles.base,\n {\n minHeight: metrics.minHeight,\n borderRadius: metrics.borderRadius,\n backgroundColor: preset.backgroundColor,\n paddingTop: metrics.paddingVertical,\n paddingBottom: metrics.paddingVertical,\n paddingLeft: metrics.paddingLeft,\n paddingRight: hasIcon ? metrics.paddingRightWithIcon : metrics.paddingRight,\n gap: hasIcon ? metrics.gap : 0,\n },\n disabled && styles.disabled,\n style,\n ];\n\n const labelStyle = [\n styles.label,\n metrics.text,\n { color: preset.textColor },\n Platform.OS === \"android\" ? styles.labelAndroid : null,\n !hasIcon && styles.labelCentered,\n textStyle,\n ];\n\n return (\n <TouchableOpacity\n ref={containerRef}\n style={containerStyle}\n onPress={onPress}\n disabled={disabled}\n activeOpacity={0.7}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled }}\n >\n {hasCustomChildren ? (\n children\n ) : (\n <Text ref={textRef} style={labelStyle}>\n {label}\n </Text>\n )}\n\n {hasIcon ? (\n <View\n style={[\n styles.iconContainer,\n {\n width: metrics.iconContainerSize,\n height: metrics.iconContainerSize,\n borderRadius: metrics.iconContainerSize / 2,\n backgroundColor: preset.iconBadgeBackgroundColor,\n },\n ]}\n >\n {iconNode}\n </View>\n ) : null}\n </TouchableOpacity>\n );\n}\n\nconst styles = StyleSheet.create({\n base: {\n flexDirection: \"row\",\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n borderWidth: 0,\n },\n disabled: {\n opacity: 0.6,\n },\n label: {},\n labelAndroid: {\n includeFontPadding: false,\n },\n labelCentered: {\n textAlign: \"center\",\n },\n iconContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n});\n","import { useRef, useState, type ComponentRef, type ReactNode } from \"react\";\nimport {\n Platform,\n StyleSheet,\n Text,\n TextInput,\n TouchableOpacity,\n View,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n type TextInputProps,\n} from \"react-native\";\nimport { ShowIcon } from \"../../icons\";\nimport { UserIcon } from \"../../icons\";\nimport { colors, inputTypography } from \"../../theme\";\nimport { useApplyWebClassName } from \"../../utils/useApplyWebClassName\";\n\nexport type InputState = \"default\" | \"filled\" | \"active\" | \"error\" | \"disabled\";\nexport type InputSize = \"lg\" | \"sm\";\n\nexport interface InputProps extends Omit<TextInputProps, \"style\" | \"editable\"> {\n label?: string;\n showLabel?: boolean;\n hint?: string;\n showHint?: boolean;\n state?: InputState;\n size?: InputSize;\n disabled?: boolean;\n error?: boolean;\n leftIcon?: ReactNode;\n showLeftIcon?: boolean;\n rightIcon?: ReactNode;\n showRightIcon?: boolean;\n onRightIconPress?: () => void;\n style?: StyleProp<ViewStyle>;\n fieldStyle?: StyleProp<ViewStyle>;\n inputStyle?: StyleProp<TextStyle>;\n className?: string;\n inputClassName?: string;\n}\n\ntype FieldChrome = {\n borderColor: string;\n backgroundColor: string;\n textColor: string;\n placeholderColor: string;\n leftIconColor: string;\n rightIconColor: string;\n labelColor: string;\n hintColor: string;\n};\n\nconst DEFAULT_WIDTH = 308;\n\nconst sizeConfig = {\n lg: {\n height: 44,\n borderRadius: 60,\n paddingVertical: 12,\n paddingHorizontal: 16,\n gap: 10,\n iconSize: 20,\n text: inputTypography.field,\n },\n sm: {\n height: 32,\n borderRadius: 60,\n paddingVertical: 6,\n paddingHorizontal: 12,\n gap: 8,\n iconSize: 16,\n text: inputTypography.hint,\n },\n} as const satisfies Record<InputSize, Record<string, unknown>>;\n\nfunction resolveState({\n state,\n disabled,\n error,\n focused,\n hasValue,\n}: {\n state?: InputState;\n disabled?: boolean;\n error?: boolean;\n focused: boolean;\n hasValue: boolean;\n}): InputState {\n if (state) return state;\n if (disabled) return \"disabled\";\n if (error) return \"error\";\n if (focused) return \"active\";\n if (hasValue) return \"filled\";\n return \"default\";\n}\n\nfunction chromeFor(state: InputState): FieldChrome {\n const base: FieldChrome = {\n borderColor: colors.grey700,\n backgroundColor: colors.grey700,\n textColor: colors.white,\n placeholderColor: colors.grey100,\n leftIconColor: colors.grey100,\n rightIconColor: colors.grey100,\n labelColor: colors.white,\n hintColor: colors.grey100,\n };\n\n switch (state) {\n case \"active\":\n return {\n ...base,\n borderColor: colors.primaryMuted,\n leftIconColor: colors.primary,\n };\n case \"error\":\n return {\n ...base,\n borderColor: colors.redMuted,\n textColor: colors.red,\n placeholderColor: colors.red,\n labelColor: colors.red,\n hintColor: colors.red,\n leftIconColor: colors.red,\n };\n case \"filled\":\n return base;\n case \"disabled\":\n return {\n ...base,\n borderColor: colors.grey700,\n backgroundColor: colors.grey700,\n textColor: colors.grey0,\n leftIconColor: colors.grey0,\n rightIconColor: colors.grey0,\n labelColor: colors.white,\n hintColor: colors.grey100,\n };\n default:\n return base;\n }\n}\n\nexport function Input({\n label = \"Label\",\n showLabel = true,\n hint = \"Hint\",\n showHint = true,\n placeholder = \"placeholder\",\n state: stateProp,\n size = \"lg\",\n disabled = false,\n error = false,\n value,\n defaultValue,\n onChangeText,\n onFocus,\n onBlur,\n leftIcon,\n showLeftIcon = false,\n rightIcon,\n showRightIcon = false,\n onRightIconPress,\n style,\n fieldStyle,\n inputStyle,\n className,\n inputClassName,\n ...textInputProps\n}: InputProps) {\n const rootRef = useRef<ComponentRef<typeof View>>(null);\n const inputRef = useRef<ComponentRef<typeof TextInput>>(null);\n const [focused, setFocused] = useState(false);\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? \"\");\n const metrics = sizeConfig[size];\n\n const isControlled = typeof value === \"string\";\n const currentValue = isControlled ? value : uncontrolledValue;\n const hasValue = currentValue.length > 0;\n\n const resolvedState = resolveState({\n state: stateProp,\n disabled,\n error,\n focused,\n hasValue,\n });\n const chrome = chromeFor(resolvedState);\n const isDisabled = resolvedState === \"disabled\" || disabled;\n\n const hasLeftIcon = showLeftIcon || leftIcon != null;\n const hasRightIcon = showRightIcon || rightIcon != null;\n\n const leftIconNode = leftIcon ?? (\n <UserIcon size={metrics.iconSize} color={chrome.leftIconColor} />\n );\n const rightIconNode = rightIcon ?? (\n <ShowIcon size={metrics.iconSize} color={chrome.rightIconColor} />\n );\n\n useApplyWebClassName(rootRef, className);\n useApplyWebClassName(inputRef, inputClassName);\n\n return (\n <View ref={rootRef} style={[styles.root, isDisabled && styles.disabled, style]}>\n {showLabel && label ? (\n <Text style={[styles.label, { color: chrome.labelColor }]}>{label}</Text>\n ) : null}\n\n <View\n style={[\n styles.field,\n {\n height: metrics.height,\n borderRadius: metrics.borderRadius,\n paddingTop: metrics.paddingVertical,\n paddingBottom: metrics.paddingVertical,\n paddingLeft: metrics.paddingHorizontal,\n paddingRight: metrics.paddingHorizontal,\n gap: metrics.gap,\n borderColor: chrome.borderColor,\n backgroundColor: chrome.backgroundColor,\n },\n fieldStyle,\n ]}\n >\n {hasLeftIcon ? (\n <View style={[styles.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }]}>\n {leftIconNode}\n </View>\n ) : null}\n\n <TextInput\n ref={inputRef}\n {...textInputProps}\n value={isControlled ? value : undefined}\n defaultValue={isControlled ? undefined : defaultValue}\n editable={!isDisabled}\n placeholder={placeholder}\n placeholderTextColor={chrome.placeholderColor}\n onChangeText={(text) => {\n if (!isControlled) setUncontrolledValue(text);\n onChangeText?.(text);\n }}\n onFocus={(event) => {\n setFocused(true);\n onFocus?.(event);\n }}\n onBlur={(event) => {\n setFocused(false);\n onBlur?.(event);\n }}\n style={[\n styles.input,\n metrics.text,\n { color: chrome.textColor },\n Platform.OS === \"web\" ? styles.inputWeb : null,\n Platform.OS === \"android\" ? styles.inputAndroid : null,\n inputStyle,\n ]}\n accessibilityState={{ disabled: isDisabled }}\n />\n\n {hasRightIcon ? (\n onRightIconPress ? (\n <TouchableOpacity\n onPress={onRightIconPress}\n disabled={isDisabled}\n style={[styles.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }]}\n accessibilityRole=\"button\"\n hitSlop={8}\n >\n {rightIconNode}\n </TouchableOpacity>\n ) : (\n <View style={[styles.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }]}>\n {rightIconNode}\n </View>\n )\n ) : null}\n </View>\n\n {showHint && hint ? (\n <Text style={[styles.hint, { color: chrome.hintColor }]}>{hint}</Text>\n ) : null}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n root: {\n width: DEFAULT_WIDTH,\n gap: 8,\n alignSelf: \"flex-start\",\n },\n disabled: {\n opacity: 0.6,\n },\n label: {\n ...inputTypography.label,\n },\n field: {\n borderWidth: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n input: {\n flex: 1,\n paddingVertical: 0,\n margin: 0,\n },\n inputWeb: {\n outlineStyle: \"none\",\n } as TextStyle,\n inputAndroid: {\n includeFontPadding: false,\n },\n iconSlot: {\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n hint: {\n ...inputTypography.hint,\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/icons/ArrowRight/arrowRightPath.ts","../src/theme/colors.ts","../src/theme/typography.ts","../src/icons/ArrowRight/ArrowRightIcon.tsx","../src/icons/Bag/bagPath.ts","../src/icons/Bag/BagIcon.tsx","../src/icons/Bell/bellPath.ts","../src/icons/Bell/BellIcon.tsx","../src/icons/Building/buildingPath.ts","../src/icons/Building/BuildingIcon.tsx","../src/icons/Camera/cameraPath.ts","../src/icons/Camera/CameraIcon.tsx","../src/icons/Check/checkPath.ts","../src/icons/Check/CheckIcon.tsx","../src/icons/CheckBadge/checkBadgePath.ts","../src/icons/CheckBadge/CheckBadgeIcon.tsx","../src/icons/ChevronDown/chevronDownPath.ts","../src/icons/ChevronDown/ChevronDownIcon.tsx","../src/icons/Clock/clockPath.ts","../src/icons/Clock/ClockIcon.tsx","../src/icons/Facebook/facebookPath.ts","../src/icons/Facebook/FacebookIcon.tsx","../src/icons/Home/homePath.ts","../src/icons/Home/HomeIcon.tsx","../src/icons/Instagram/instagramPath.ts","../src/icons/Instagram/InstagramIcon.tsx","../src/icons/Key/keyPath.ts","../src/icons/Key/KeyIcon.tsx","../src/icons/LinkedIn/linkedinPath.ts","../src/icons/LinkedIn/LinkedInIcon.tsx","../src/icons/Mail/mailPath.ts","../src/icons/Mail/MailIcon.tsx","../src/icons/Navigate/navigatePath.ts","../src/icons/Navigate/NavigateIcon.tsx","../src/icons/Phone/phonePath.ts","../src/icons/Phone/PhoneIcon.tsx","../src/icons/Search/searchPath.ts","../src/icons/Search/SearchIcon.tsx","../src/icons/Show/showPath.ts","../src/icons/Show/ShowIcon.tsx","../src/icons/User/userPath.ts","../src/icons/User/UserIcon.tsx","../src/icons/registry.ts","../src/icons/Icon.tsx","../src/utils/mergeRefs.ts","../src/utils/useApplyWebClassName.ts","../src/components/Button/Button.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Input/Input.tsx","../src/components/Select/Select.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Toggle/Toggle.tsx"],"names":["jsx","Svg","Path","jsxs","useLayoutEffect","Platform","forwardRef","Button","useRef","useMemo","TouchableOpacity","Text","View","StyleSheet","Checkbox","useState","Pressable","styles","sizeConfig","Input","TextInput","DEFAULT_WIDTH","useEffect","Select","useCallback","ScrollView","resolveVisualState","chromeFor","Textarea","Toggle","Animated","Easing"],"mappings":"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","file":"index.cjs","sourcesContent":["/** Arrow_Right_MD path — 20×20 viewBox. */\nexport const ARROW_RIGHT_PATH = \"M4.16667 10H15.8333M15.8333 10L10 4.16667M15.8333 10L10 15.8333\";\n","export const grey = {\n \"0\": \"#767676\",\n \"0.5\": \"#6E6E6E\",\n \"1\": \"#666666\",\n \"1.5\": \"#5E5E5E\",\n \"2\": \"#565656\",\n \"3\": \"#474747\",\n \"4\": \"#373737\",\n \"5\": \"#272727\",\n \"6\": \"#1F1F1F\",\n \"7\": \"#171717\",\n \"7.5\": \"#161616\",\n \"8\": \"#101010\",\n \"8.5\": \"#0C0C0C\",\n \"9\": \"#080808\",\n \"9.5\": \"#040404\",\n} as const;\n\nexport type GreyStep = keyof typeof grey;\n\nexport const colors = {\n primary: \"#B46436\",\n black: \"#000000\",\n white: \"#ffffff\",\n dark: \"#090909\",\n red: \"#A63E3E\",\n lightGrey: \"#B7B7B7\",\n primaryMuted: \"#B464360F\",\n redMuted: \"#A63E3E0F\",\n\n grey0: grey[\"0\"],\n grey50: grey[\"0.5\"],\n grey100: grey[\"1\"],\n grey150: grey[\"1.5\"],\n grey200: grey[\"2\"],\n grey300: grey[\"3\"],\n grey400: grey[\"4\"],\n grey500: grey[\"5\"],\n grey600: grey[\"6\"],\n grey700: grey[\"7\"],\n grey750: grey[\"7.5\"],\n grey800: grey[\"8\"],\n grey850: grey[\"8.5\"],\n grey900: grey[\"9\"],\n grey950: grey[\"9.5\"],\n} as const;\n","export const fonts = {\n sans: \"Noto Sans Armenian\",\n} as const;\n\n/** Button label — SemiBold, line-height 100%, letter-spacing 3%. */\nexport const buttonTypography = {\n lg: {\n fontFamily: fonts.sans,\n fontSize: 14,\n fontWeight: \"600\" as const,\n lineHeight: 14,\n letterSpacing: 0.42,\n },\n sm: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"600\" as const,\n lineHeight: 12,\n letterSpacing: 0.36,\n },\n} as const;\n\n/** Input label / field / hint typography. */\nexport const inputTypography = {\n label: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"500\" as const,\n lineHeight: 12,\n letterSpacing: 0.36,\n },\n field: {\n fontFamily: fonts.sans,\n fontSize: 14,\n fontWeight: \"400\" as const,\n lineHeight: 19,\n letterSpacing: 0,\n },\n hint: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"400\" as const,\n lineHeight: 12,\n letterSpacing: 0.36,\n },\n} as const;\n\n/** Select label / field / hint typography — Medium/Regular 12–14, letter-spacing 3%. */\nexport const selectTypography = {\n label: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"500\" as const,\n lineHeight: 12,\n letterSpacing: 0.36,\n },\n field: {\n fontFamily: fonts.sans,\n fontSize: 14,\n fontWeight: \"400\" as const,\n lineHeight: 19,\n letterSpacing: 0,\n },\n hint: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"400\" as const,\n lineHeight: 12,\n letterSpacing: 0.36,\n },\n} as const;\n\n/** Textarea label / field / hint typography — Medium/Regular 12–14, letter-spacing 3%. */\nexport const textareaTypography = {\n label: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"500\" as const,\n lineHeight: 12,\n letterSpacing: 0.36,\n },\n field: {\n fontFamily: fonts.sans,\n fontSize: 14,\n fontWeight: \"400\" as const,\n lineHeight: 19,\n letterSpacing: 0,\n },\n hint: {\n fontFamily: fonts.sans,\n fontSize: 12,\n fontWeight: \"400\" as const,\n lineHeight: 12,\n letterSpacing: 0.36,\n },\n} as const;\n","import Svg, { Path } from \"react-native-svg\";\nimport { ARROW_RIGHT_PATH } from \"./arrowRightPath\";\nimport { colors } from \"../../theme\";\n\nexport { ARROW_RIGHT_PATH } from \"./arrowRightPath\";\n\ninterface ArrowRightIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function ArrowRightIcon({\n size = 20,\n color = colors.primary,\n strokeWidth = 2,\n}: ArrowRightIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={ARROW_RIGHT_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const BAG_PATH =\n \"M9.23047 9H7.2002C6.08009 9 5.51962 9 5.0918 9.21799C4.71547 9.40973 4.40973 9.71547 4.21799 10.0918C4 10.5196 4 11.0801 4 12.2002V17.8002C4 18.9203 4 19.4801 4.21799 19.9079C4.40973 20.2842 4.71547 20.5905 5.0918 20.7822C5.5192 21 6.07902 21 7.19694 21H16.8031C17.921 21 18.48 21 18.9074 20.7822C19.2837 20.5905 19.5905 20.2842 19.7822 19.9079C20 19.4805 20 18.9215 20 17.8036V12.1969C20 11.079 20 10.5192 19.7822 10.0918C19.5905 9.71547 19.2837 9.40973 18.9074 9.21799C18.4796 9 17.9203 9 16.8002 9H14.7689M9.23047 9H14.7689M9.23047 9C9.10302 9 9 8.89668 9 8.76923V6C9 4.34315 10.3431 3 12 3C13.6569 3 15 4.34315 15 6V8.76923C15 8.89668 14.8964 9 14.7689 9\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { BAG_PATH } from \"./bagPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { BAG_PATH } from \"./bagPath\";\n\nexport function BagIcon({ size = 24, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d={BAG_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const BELL_PATH =\n \"M7.5 17.5H12.5M10 2.5C7.23858 2.5 5 4.73858 5 7.5C5 8.51208 5.3007 9.45393 5.81764 10.2411C6.61256 11.4515 7.00967 12.0564 7.06127 12.1467C7.52024 12.9508 7.43573 12.6672 7.49349 13.5913C7.49998 13.6952 7.5 13.8524 7.5 14.1667C7.5 14.6269 7.8731 15 8.33333 15L11.6667 15C12.1269 15 12.5 14.6269 12.5 14.1667C12.5 13.8524 12.5 13.6952 12.5065 13.5913C12.5643 12.6672 12.4793 12.9509 12.9382 12.1467C12.9898 12.0564 13.3876 11.4515 14.1825 10.2411C14.6995 9.45393 15.0002 8.51208 15.0002 7.5C15.0002 4.73858 12.7614 2.5 10 2.5Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { BELL_PATH } from \"./bellPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { BELL_PATH } from \"./bellPath\";\n\nexport function BellIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={BELL_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const BUILDING_PATH =\n \"M7.5 9.16659V16.6666M7.5 9.16659H3.83301C3.3663 9.16659 3.13318 9.16659 2.95492 9.25741C2.79811 9.33731 2.67072 9.4647 2.59083 9.6215C2.5 9.79976 2.5 10.0333 2.5 10.5V16.6666H7.5M7.5 9.16659V4.66667C7.5 4.19996 7.5 3.96643 7.59083 3.78817C7.67072 3.63137 7.79811 3.50397 7.95492 3.42408C8.13317 3.33325 8.3663 3.33325 8.83301 3.33325H11.1663C11.6331 3.33325 11.8669 3.33325 12.0452 3.42408C12.202 3.50397 12.329 3.63137 12.4089 3.78817C12.4997 3.96643 12.5 4.19996 12.5 4.66667V6.66659M7.5 16.6666H12.5M12.5 16.6666L17.5 16.6667V8C17.5 7.53329 17.4997 7.29976 17.4089 7.1215C17.329 6.9647 17.2024 6.83731 17.0456 6.75741C16.8674 6.66659 16.6334 6.66659 16.1667 6.66659H12.5M12.5 16.6666V6.66659\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { BUILDING_PATH } from \"./buildingPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { BUILDING_PATH } from \"./buildingPath\";\n\nexport function BuildingIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={BUILDING_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const CAMERA_PATH =\n \"M9.48898 7H6.2002C5.08009 7 4.51962 7 4.0918 7.21799C3.71547 7.40973 3.40973 7.71547 3.21799 8.0918C3 8.51962 3 9.08009 3 10.2002V15.8002C3 16.9203 3 17.4796 3.21799 17.9074C3.40973 18.2837 3.71547 18.5905 4.0918 18.7822C4.5192 19 5.07899 19 6.19691 19H17.8031C18.921 19 19.48 19 19.9074 18.7822C20.2837 18.5905 20.5905 18.2837 20.7822 17.9074C21 17.48 21 16.921 21 15.8031V10.1969C21 9.07899 21 8.5192 20.7822 8.0918C20.5905 7.71547 20.2837 7.40973 19.9074 7.21799C19.4796 7 18.9203 7 17.8002 7H14.5108M9.48898 7H9.55078M9.48898 7C9.50151 7.00001 9.51468 7 9.52857 7L9.55078 7M9.48898 7C9.38286 6.99995 9.32339 6.99941 9.27637 6.99414C8.68878 6.92835 8.28578 6.36908 8.40918 5.79084C8.42066 5.73703 8.44336 5.66894 8.4883 5.53412L8.49023 5.52841C8.54156 5.37443 8.56723 5.29743 8.59558 5.22949C8.88586 4.53389 9.54322 4.06083 10.2949 4.00541C10.3683 4 10.449 4 10.6113 4H13.3886C13.5509 4 13.6322 4 13.7057 4.00541C14.4574 4.06083 15.114 4.53389 15.4043 5.22949C15.4326 5.29743 15.4584 5.37434 15.5098 5.52832C15.556 5.66699 15.5791 5.73636 15.5908 5.79093C15.7142 6.36917 15.3118 6.92835 14.7242 6.99414C14.6772 6.99941 14.6171 6.99995 14.5108 7M9.55078 7H14.449M14.449 7H14.5108M14.449 7L14.4712 7C14.4851 7 14.4983 7.00001 14.5108 7M12 16C10.3431 16 9 14.6569 9 13C9 11.3431 10.3431 10 12 10C13.6569 10 15 11.3431 15 13C15 14.6569 13.6569 16 12 16Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { CAMERA_PATH } from \"./cameraPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { CAMERA_PATH } from \"./cameraPath\";\n\nexport function CameraIcon({ size = 24, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d={CAMERA_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","/** Check mark path — 20×20 viewBox. */\nexport const CHECK_PATH = \"M4.16669 10.8333L7.50002 14.1667L15.8334 5.83334\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { CHECK_PATH } from \"./checkPath\";\nimport { colors } from \"../../theme\";\n\nexport { CHECK_PATH } from \"./checkPath\";\n\ninterface CheckIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function CheckIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: CheckIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={CHECK_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const CHECK_BADGE_PATH =\n \"M12.5 8.33317L9.16663 11.6665L7.49996 9.99984M11.0384 2.88233L12.0558 3.74941C12.3122 3.96786 12.6305 4.09992 12.9662 4.12671L14.2987 4.23291C15.0822 4.29543 15.7045 4.91733 15.767 5.70077L15.8729 7.03353C15.8997 7.36925 16.0322 7.68799 16.2507 7.94433L17.1174 8.96152C17.6272 9.5597 17.6272 10.4396 17.1175 11.0378L16.2508 12.0551C16.0323 12.3115 15.9 12.6303 15.8732 12.9661L15.7666 14.2986C15.704 15.082 15.0827 15.7043 14.2993 15.7668L12.9663 15.8732C12.6305 15.9 12.312 16.0317 12.0556 16.2502L11.0384 17.1173C10.4402 17.627 9.55973 17.6271 8.96155 17.1174L7.9443 16.2502C7.68796 16.0318 7.36938 15.8998 7.03365 15.8731L5.70064 15.7668C4.9172 15.7043 4.29588 15.0822 4.23336 14.2987L4.12675 12.9661C4.09996 12.6304 3.96759 12.3118 3.74915 12.0555L2.88245 11.0378C2.37268 10.4397 2.37244 9.56002 2.88221 8.96184L3.74969 7.94418C3.96814 7.68784 4.09923 7.36926 4.12602 7.03353L4.23263 5.70093C4.29515 4.91749 4.91826 4.29535 5.70171 4.23283L7.03324 4.12663C7.36897 4.09984 7.68771 3.96788 7.94404 3.74943L8.96164 2.88233C9.55982 2.37256 10.4402 2.37256 11.0384 2.88233Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { CHECK_BADGE_PATH } from \"./checkBadgePath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { CHECK_BADGE_PATH } from \"./checkBadgePath\";\n\nexport function CheckBadgeIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={CHECK_BADGE_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","/** Chevron down path — 20×20 viewBox. */\nexport const CHEVRON_DOWN_PATH = \"M5 7.5L10 12.5L15 7.5\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { CHEVRON_DOWN_PATH } from \"./chevronDownPath\";\nimport { colors } from \"../../theme\";\n\nexport { CHEVRON_DOWN_PATH } from \"./chevronDownPath\";\n\ninterface ChevronDownIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function ChevronDownIcon({\n size = 20,\n color = colors.primary,\n strokeWidth = 2,\n}: ChevronDownIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={CHEVRON_DOWN_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const CLOCK_PATH =\n \"M12 7V12H17M12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { CLOCK_PATH } from \"./clockPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { CLOCK_PATH } from \"./clockPath\";\n\nexport function ClockIcon({ size = 24, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d={CLOCK_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const FACEBOOK_PATH =\n \"M10.0003 1.69922C5.41699 1.69922 1.66699 5.44089 1.66699 10.0492C1.66699 14.2159 4.71699 17.6742 8.70033 18.2992V12.4659H6.58366V10.0492H8.70033V8.20755C8.70033 6.11589 9.94199 4.96589 11.8503 4.96589C12.7587 4.96589 13.7087 5.12422 13.7087 5.12422V7.18255H12.6587C11.6253 7.18255 11.3003 7.82422 11.3003 8.48255V10.0492H13.617L13.242 12.4659H11.3003V18.2992C13.264 17.9891 15.0522 16.9871 16.3419 15.4743C17.6317 13.9614 18.3381 12.0373 18.3337 10.0492C18.3337 5.44089 14.5837 1.69922 10.0003 1.69922Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { FACEBOOK_PATH } from \"./facebookPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { FACEBOOK_PATH } from \"./facebookPath\";\n\nexport function FacebookIcon({ size = 20, color = colors.white }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path d={FACEBOOK_PATH} fill={color} />\n </Svg>\n );\n}\n","export const HOME_PATH =\n \"M1.66675 16.6667H3.33341M3.33341 16.6667H8.33341M3.33341 16.6667V9.54352C3.33341 9.09823 3.33341 8.87548 3.38756 8.66828C3.43554 8.48466 3.51491 8.31089 3.6215 8.15387C3.74178 7.97668 3.90895 7.82974 4.24406 7.53652L8.24538 4.03537C8.86662 3.49178 9.17726 3.21997 9.5271 3.11652C9.83559 3.02529 10.1644 3.02529 10.4729 3.11652C10.823 3.22005 11.1341 3.49212 11.7563 4.03652L15.7563 7.53652C16.0914 7.82974 16.2586 7.97668 16.3789 8.15387C16.4855 8.31089 16.5642 8.48466 16.6122 8.66828C16.6664 8.87548 16.6667 9.09824 16.6667 9.54352V16.6667M8.33341 16.6667H11.6667M8.33341 16.6667V13.3334C8.33341 12.4129 9.07961 11.6667 10.0001 11.6667C10.9206 11.6667 11.6667 12.4129 11.6667 13.3334V16.6667M11.6667 16.6667H16.6667M16.6667 16.6667H18.3334\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { HOME_PATH } from \"./homePath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { HOME_PATH } from \"./homePath\";\n\nexport function HomeIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={HOME_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const INSTAGRAM_PATH =\n \"M6.49984 1.66748H13.4998C16.1665 1.66748 18.3332 3.83415 18.3332 6.50081V13.5008C18.3332 14.7827 17.8239 16.0121 16.9175 16.9185C16.0111 17.8249 14.7817 18.3341 13.4998 18.3341H6.49984C3.83317 18.3341 1.6665 16.1675 1.6665 13.5008V6.50081C1.6665 5.21893 2.17573 3.98956 3.08215 3.08313C3.98858 2.17671 5.21796 1.66748 6.49984 1.66748ZM6.33317 3.33415C5.53752 3.33415 4.77446 3.65022 4.21185 4.21283C3.64924 4.77544 3.33317 5.5385 3.33317 6.33415V13.6675C3.33317 15.3258 4.67484 16.6675 6.33317 16.6675H13.6665C14.4622 16.6675 15.2252 16.3514 15.7878 15.7888C16.3504 15.2262 16.6665 14.4631 16.6665 13.6675V6.33415C16.6665 4.67581 15.3248 3.33415 13.6665 3.33415H6.33317ZM14.3748 4.58415C14.6511 4.58415 14.9161 4.69389 15.1114 4.88924C15.3068 5.08459 15.4165 5.34955 15.4165 5.62581C15.4165 5.90208 15.3068 6.16703 15.1114 6.36238C14.9161 6.55773 14.6511 6.66748 14.3748 6.66748C14.0986 6.66748 13.8336 6.55773 13.6383 6.36238C13.4429 6.16703 13.3332 5.90208 13.3332 5.62581C13.3332 5.34955 13.4429 5.08459 13.6383 4.88924C13.8336 4.69389 14.0986 4.58415 14.3748 4.58415ZM9.99984 5.83415C11.1049 5.83415 12.1647 6.27313 12.9461 7.05454C13.7275 7.83594 14.1665 8.89574 14.1665 10.0008C14.1665 11.1059 13.7275 12.1657 12.9461 12.9471C12.1647 13.7285 11.1049 14.1675 9.99984 14.1675C8.89477 14.1675 7.83496 13.7285 7.05356 12.9471C6.27216 12.1657 5.83317 11.1059 5.83317 10.0008C5.83317 8.89574 6.27216 7.83594 7.05356 7.05454C7.83496 6.27313 8.89477 5.83415 9.99984 5.83415ZM9.99984 7.50081C9.3368 7.50081 8.70091 7.76421 8.23207 8.23305C7.76323 8.70189 7.49984 9.33777 7.49984 10.0008C7.49984 10.6639 7.76323 11.2997 8.23207 11.7686C8.70091 12.2374 9.3368 12.5008 9.99984 12.5008C10.6629 12.5008 11.2988 12.2374 11.7676 11.7686C12.2364 11.2997 12.4998 10.6639 12.4998 10.0008C12.4998 9.33777 12.2364 8.70189 11.7676 8.23305C11.2988 7.76421 10.6629 7.50081 9.99984 7.50081Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { INSTAGRAM_PATH } from \"./instagramPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { INSTAGRAM_PATH } from \"./instagramPath\";\n\nexport function InstagramIcon({ size = 20, color = colors.white }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path d={INSTAGRAM_PATH} fill={color} />\n </Svg>\n );\n}\n","export const KEY_PATH =\n \"M5.28673 10.0002L7.0545 11.768M7.6435 7.64301L9.41127 9.41078M10.0003 5.28624L11.768 7.05401M4.22553 11.0604L11.0609 4.22505C11.7209 3.56502 12.0513 3.235 12.4318 3.11136C12.7666 3.00259 13.127 3.00259 13.4618 3.11136C13.8421 3.23494 14.1718 3.56464 14.8311 4.22393L15.775 5.16785C16.4351 5.82788 16.7654 6.15867 16.8891 6.53922C16.9979 6.87396 16.9976 7.23381 16.8889 7.56855C16.7652 7.9491 16.4353 8.27937 15.7753 8.9394L8.93989 15.7748C8.27986 16.4348 7.94959 16.7647 7.56904 16.8884C7.2343 16.9971 6.87445 16.9974 6.53971 16.8886C6.15916 16.765 5.82837 16.4346 5.16834 15.7745L4.22441 14.8306C3.56513 14.1713 3.23542 13.8416 3.11185 13.4613C3.00308 13.1266 3.00308 12.7661 3.11185 12.4313C3.23549 12.0508 3.56551 11.7204 4.22553 11.0604Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { KEY_PATH } from \"./keyPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { KEY_PATH } from \"./keyPath\";\n\nexport function KeyIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={KEY_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const LINKEDIN_PATH =\n \"M15.8333 2.50098C16.2754 2.50098 16.6993 2.67657 17.0118 2.98913C17.3244 3.30169 17.5 3.72562 17.5 4.16764V15.8343C17.5 16.2763 17.3244 16.7003 17.0118 17.0128C16.6993 17.3254 16.2754 17.501 15.8333 17.501H4.16667C3.72464 17.501 3.30072 17.3254 2.98816 17.0128C2.67559 16.7003 2.5 16.2763 2.5 15.8343V4.16764C2.5 3.72562 2.67559 3.30169 2.98816 2.98913C3.30072 2.67657 3.72464 2.50098 4.16667 2.50098H15.8333ZM15.4167 15.4176V11.001C15.4167 10.2805 15.1304 9.58948 14.621 9.08C14.1115 8.57053 13.4205 8.28431 12.7 8.28431C11.9917 8.28431 11.1667 8.71764 10.7667 9.36764V8.44264H8.44167V15.4176H10.7667V11.3093C10.7667 10.6676 11.2833 10.1426 11.925 10.1426C12.2344 10.1426 12.5312 10.2656 12.75 10.4844C12.9687 10.7031 13.0917 10.9999 13.0917 11.3093V15.4176H15.4167ZM5.73333 7.13431C6.10464 7.13431 6.46073 6.98681 6.72328 6.72426C6.98583 6.46171 7.13333 6.10561 7.13333 5.73431C7.13333 4.95931 6.50833 4.32598 5.73333 4.32598C5.35982 4.32598 5.0016 4.47435 4.73749 4.73847C4.47338 5.00258 4.325 5.3608 4.325 5.73431C4.325 6.50931 4.95833 7.13431 5.73333 7.13431ZM6.89167 15.4176V8.44264H4.58333V15.4176H6.89167Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { LINKEDIN_PATH } from \"./linkedinPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { LINKEDIN_PATH } from \"./linkedinPath\";\n\nexport function LinkedInIcon({ size = 20, color = colors.white }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path d={LINKEDIN_PATH} fill={color} />\n </Svg>\n );\n}\n","export const MAIL_PATH =\n \"M3.33333 4.99984L8.42303 8.84339L8.42473 8.8448C8.98987 9.25924 9.27261 9.46658 9.5823 9.54668C9.85602 9.61748 10.1438 9.61748 10.4175 9.54668C10.7274 9.46651 11.011 9.25856 11.5771 8.84339C11.5771 8.84339 14.8417 6.33812 16.6667 4.99984M2.5 13.1667V6.83333C2.5 5.89991 2.5 5.43285 2.68166 5.07633C2.84144 4.76273 3.09623 4.50795 3.40983 4.34816C3.76635 4.1665 4.23341 4.1665 5.16683 4.1665H14.8335C15.7669 4.1665 16.233 4.1665 16.5895 4.34816C16.9031 4.50795 17.1587 4.76273 17.3185 5.07633C17.5 5.43251 17.5 5.899 17.5 6.8306V13.1695C17.5 14.1011 17.5 14.5669 17.3185 14.9231C17.1587 15.2367 16.9031 15.4919 16.5895 15.6517C16.2333 15.8332 15.7675 15.8332 14.8359 15.8332H5.16409C4.23249 15.8332 3.766 15.8332 3.40983 15.6517C3.09623 15.4919 2.84144 15.2367 2.68166 14.9231C2.5 14.5666 2.5 14.1001 2.5 13.1667Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { MAIL_PATH } from \"./mailPath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { MAIL_PATH } from \"./mailPath\";\n\nexport function MailIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={MAIL_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const NAVIGATE_PATH =\n \"M5.691 14.2339C11.5836 17.7694 16.2976 13.0554 15.7084 4.21658C6.86968 3.62732 2.15584 8.34151 5.691 14.2339ZM5.691 14.2339C5.69093 14.2338 5.69107 14.234 5.691 14.2339ZM5.691 14.2339L4.16675 15.7576M5.691 14.2339L8.88079 11.0436\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { NAVIGATE_PATH } from \"./navigatePath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { NAVIGATE_PATH } from \"./navigatePath\";\n\nexport function NavigateIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={NAVIGATE_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","export const PHONE_PATH =\n \"M7.91872 3.54768C7.66561 2.91492 7.05276 2.5 6.37126 2.5H4.07895C3.20692 2.5 2.5 3.20675 2.5 4.07878C2.5 11.491 8.50898 17.5 15.9212 17.5C16.7933 17.5 17.5 16.793 17.5 15.921L17.5004 13.6283C17.5004 12.9468 17.0856 12.334 16.4528 12.0809L14.2558 11.2024C13.6874 10.9751 13.0402 11.0774 12.57 11.4693L12.0029 11.9422C11.3407 12.4941 10.3664 12.4502 9.75683 11.8407L8.16018 10.2425C7.55066 9.63302 7.50561 8.65945 8.05745 7.99724L8.53027 7.43025C8.92218 6.95996 9.02541 6.31263 8.79805 5.74424L7.91872 3.54768Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { PHONE_PATH } from \"./phonePath\";\nimport { colors } from \"../../theme\";\nimport type { IconProps } from \"../types\";\n\nexport { PHONE_PATH } from \"./phonePath\";\n\nexport function PhoneIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: IconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={PHONE_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","/** Search (magnifying glass) paths — 20×20 viewBox. */\nexport const SEARCH_CIRCLE_PATH =\n \"M9.16667 15.8333C12.8486 15.8333 15.8333 12.8486 15.8333 9.16667C15.8333 5.48477 12.8486 2.5 9.16667 2.5C5.48477 2.5 2.5 5.48477 2.5 9.16667C2.5 12.8486 5.48477 15.8333 9.16667 15.8333Z\";\n\nexport const SEARCH_HANDLE_PATH = \"M17.5 17.5L13.875 13.875\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { SEARCH_CIRCLE_PATH, SEARCH_HANDLE_PATH } from \"./searchPath\";\nimport { colors } from \"../../theme\";\n\nexport { SEARCH_CIRCLE_PATH, SEARCH_HANDLE_PATH } from \"./searchPath\";\n\ninterface SearchIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function SearchIcon({\n size = 20,\n color = colors.primary,\n strokeWidth = 2,\n}: SearchIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={SEARCH_CIRCLE_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <Path\n d={SEARCH_HANDLE_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","/** Show (eye) icon path — 20×20 viewBox. */\nexport const SHOW_PATH =\n \"M1.66669 10C1.66669 10 4.16669 4.16667 10 4.16667C15.8334 4.16667 18.3334 10 18.3334 10C18.3334 10 15.8334 15.8333 10 15.8333C4.16669 15.8333 1.66669 10 1.66669 10Z\";\n\nexport const SHOW_PUPIL_PATH =\n \"M10 12.5C11.3807 12.5 12.5 11.3807 12.5 10C12.5 8.61929 11.3807 7.5 10 7.5C8.61929 7.5 7.5 8.61929 7.5 10C7.5 11.3807 8.61929 12.5 10 12.5Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { SHOW_PATH, SHOW_PUPIL_PATH } from \"./showPath\";\nimport { colors } from \"../../theme\";\n\nexport { SHOW_PATH, SHOW_PUPIL_PATH } from \"./showPath\";\n\ninterface ShowIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function ShowIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: ShowIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={SHOW_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <Path\n d={SHOW_PUPIL_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","/** User icon path — 20×20 viewBox. */\nexport const USER_PATH =\n \"M15.8334 17.5C15.8334 14.2783 13.2217 11.6667 10 11.6667C6.77836 11.6667 4.16669 14.2783 4.16669 17.5M10 9.16667C8.15907 9.16667 6.66669 7.67428 6.66669 5.83333C6.66669 3.99238 8.15907 2.5 10 2.5C11.841 2.5 13.3334 3.99238 13.3334 5.83333C13.3334 7.67428 11.841 9.16667 10 9.16667Z\";\n","import Svg, { Path } from \"react-native-svg\";\nimport { USER_PATH } from \"./userPath\";\nimport { colors } from \"../../theme\";\n\nexport { USER_PATH } from \"./userPath\";\n\ninterface UserIconProps {\n size?: number;\n color?: string;\n strokeWidth?: number;\n}\n\n/** Native — react-native-svg (peer dependency). */\nexport function UserIcon({ size = 20, color = colors.primary, strokeWidth = 2 }: UserIconProps) {\n return (\n <Svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\">\n <Path\n d={USER_PATH}\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n );\n}\n","import { ArrowRightIcon } from \"./ArrowRight\";\nimport { BagIcon } from \"./Bag\";\nimport { BellIcon } from \"./Bell\";\nimport { BuildingIcon } from \"./Building\";\nimport { CameraIcon } from \"./Camera\";\nimport { CheckIcon } from \"./Check\";\nimport { CheckBadgeIcon } from \"./CheckBadge\";\nimport { ChevronDownIcon } from \"./ChevronDown\";\nimport { ClockIcon } from \"./Clock\";\nimport { FacebookIcon } from \"./Facebook\";\nimport { HomeIcon } from \"./Home\";\nimport { InstagramIcon } from \"./Instagram\";\nimport { KeyIcon } from \"./Key\";\nimport { LinkedInIcon } from \"./LinkedIn\";\nimport { MailIcon } from \"./Mail\";\nimport { NavigateIcon } from \"./Navigate\";\nimport { PhoneIcon } from \"./Phone\";\nimport { SearchIcon } from \"./Search\";\nimport { ShowIcon } from \"./Show\";\nimport { UserIcon } from \"./User\";\nimport type { IconComponent } from \"./types\";\n\nexport const icons = {\n arrowRight: ArrowRightIcon,\n bag: BagIcon,\n bell: BellIcon,\n building: BuildingIcon,\n camera: CameraIcon,\n check: CheckIcon,\n checkBadge: CheckBadgeIcon,\n chevronDown: ChevronDownIcon,\n clock: ClockIcon,\n facebook: FacebookIcon,\n home: HomeIcon,\n instagram: InstagramIcon,\n key: KeyIcon,\n linkedin: LinkedInIcon,\n mail: MailIcon,\n navigate: NavigateIcon,\n phone: PhoneIcon,\n search: SearchIcon,\n show: ShowIcon,\n user: UserIcon,\n} as const satisfies Record<string, IconComponent>;\n\nexport type IconName = keyof typeof icons;\n\nexport const iconNames = Object.keys(icons) as IconName[];\n\nexport const iconGroups = {\n navigation: [\"arrowRight\", \"chevronDown\", \"home\", \"navigate\"],\n actions: [\"show\", \"bell\", \"camera\", \"key\", \"check\", \"checkBadge\", \"search\"],\n objects: [\"bag\", \"building\", \"clock\", \"user\"],\n communication: [\"mail\", \"phone\"],\n social: [\"facebook\", \"instagram\", \"linkedin\"],\n} as const satisfies Record<string, readonly IconName[]>;\n\nexport type IconGroup = keyof typeof iconGroups;\n\nexport const iconGroupNames = Object.keys(iconGroups) as IconGroup[];\n\nexport function getIconsByGroup(group: IconGroup): IconName[] {\n return [...iconGroups[group]];\n}\n","import { icons, type IconName } from \"./registry\";\nimport type { IconProps } from \"./types\";\n\nexport interface IconByNameProps extends IconProps {\n name: IconName;\n}\n\nexport function Icon({ name, ...props }: IconByNameProps) {\n const Component = icons[name];\n return <Component {...props} />;\n}\n","import type { ForwardedRef, MutableRefObject, RefCallback } from \"react\";\n\n/**\n * Combines a component's internal ref (used e.g. by `useApplyWebClassName`)\n * with an optional externally-forwarded ref, so consumers can still call\n * `.focus()`/`.measure()` on the underlying native node via `ref`.\n */\nexport function mergeRefs<T>(\n internalRef: MutableRefObject<T | null>,\n forwardedRef: ForwardedRef<T>,\n): RefCallback<T> {\n return (node) => {\n internalRef.current = node;\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n };\n}\n","import { useLayoutEffect } from \"react\";\nimport { Platform } from \"react-native\";\n\ninterface ClassListElement {\n classList: {\n add: (...classes: string[]) => void;\n remove: (...classes: string[]) => void;\n };\n}\n\nfunction hasClassList(node: unknown): node is ClassListElement {\n return (\n typeof node === \"object\" &&\n node !== null &&\n \"classList\" in node &&\n typeof (node as ClassListElement).classList?.add === \"function\"\n );\n}\n\nfunction resolveWebElement(ref: React.RefObject<unknown>): ClassListElement | null {\n const node = ref.current;\n if (!node) return null;\n\n if (hasClassList(node)) return node;\n\n const host = node as {\n _touchableNode?: unknown;\n getScrollableNode?: () => unknown;\n };\n\n if (hasClassList(host._touchableNode)) return host._touchableNode;\n\n if (typeof host.getScrollableNode === \"function\") {\n const scrollNode = host.getScrollableNode();\n if (hasClassList(scrollNode)) return scrollNode;\n }\n\n return null;\n}\n\n/**\n * Applies CSS class names to the underlying DOM node on web.\n * Keeps TouchableOpacity/Text as the render path so default RN styles stay intact.\n *\n * Retries via rAF when the host node is not ready yet — otherwise classes like\n * `h-13` / `w-full` would only land after a later re-render (e.g. typing in a form),\n * which visibly changes button size.\n */\nexport function useApplyWebClassName(\n ref: React.RefObject<unknown>,\n className?: string,\n enabled = true,\n): void {\n useLayoutEffect(() => {\n if (!enabled || Platform.OS !== \"web\" || !className?.trim()) return;\n\n let cancelled = false;\n let rafId = 0;\n let appliedElement: ClassListElement | null = null;\n const classes = className.trim().split(/\\s+/);\n\n const apply = () => {\n if (cancelled) return;\n\n const element = resolveWebElement(ref);\n if (!element) {\n rafId = requestAnimationFrame(apply);\n return;\n }\n\n appliedElement = element;\n element.classList.add(...classes);\n };\n\n apply();\n\n return () => {\n cancelled = true;\n if (rafId) cancelAnimationFrame(rafId);\n appliedElement?.classList.remove(...classes);\n };\n }, [ref, className, enabled]);\n}\n","import { forwardRef, useMemo, useRef, type ComponentRef, type ReactNode } from \"react\";\nimport {\n Platform,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n type GestureResponderEvent,\n type StyleProp,\n type TextStyle,\n type TouchableOpacityProps,\n type ViewStyle,\n} from \"react-native\";\nimport { ArrowRightIcon } from \"../../icons\";\nimport { buttonTypography, colors } from \"../../theme\";\nimport { mergeRefs } from \"../../utils/mergeRefs\";\nimport { useApplyWebClassName } from \"../../utils/useApplyWebClassName\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\";\nexport type ButtonSize = \"lg\" | \"sm\";\n\nexport interface ButtonProps extends Omit<\n TouchableOpacityProps,\n \"onPress\" | \"disabled\" | \"style\" | \"children\"\n> {\n title?: string;\n children?: ReactNode;\n onPress: (event: GestureResponderEvent) => void;\n disabled?: boolean;\n variant?: ButtonVariant;\n size?: ButtonSize;\n showIcon?: boolean;\n icon?: ReactNode;\n style?: StyleProp<ViewStyle>;\n textStyle?: StyleProp<TextStyle>;\n className?: string;\n textClassName?: string;\n}\n\ntype VariantStyleSet = {\n backgroundColor: string;\n textColor: string;\n iconBadgeBackgroundColor: string;\n iconColor: string;\n};\n\nconst variantConfig: Record<ButtonVariant, VariantStyleSet> = {\n primary: {\n backgroundColor: colors.primary,\n textColor: colors.white,\n iconBadgeBackgroundColor: colors.white,\n iconColor: colors.primary,\n },\n secondary: {\n backgroundColor: colors.grey500,\n textColor: colors.white,\n iconBadgeBackgroundColor: colors.grey600,\n iconColor: colors.white,\n },\n};\n\nconst sizeConfig = {\n lg: {\n minHeight: 44,\n borderRadius: 40,\n paddingVertical: 4,\n paddingLeft: 20,\n paddingRightWithIcon: 4,\n paddingRight: 20,\n gap: 20,\n text: buttonTypography.lg,\n iconContainerSize: 36,\n iconSize: 20,\n },\n sm: {\n minHeight: 32,\n borderRadius: 40,\n paddingVertical: 6,\n paddingLeft: 12,\n paddingRightWithIcon: 4,\n paddingRight: 12,\n gap: 12,\n text: buttonTypography.sm,\n iconContainerSize: 20,\n iconSize: 12,\n },\n} as const satisfies Record<ButtonSize, Record<string, unknown>>;\n\nexport const Button = forwardRef<ComponentRef<typeof TouchableOpacity>, ButtonProps>(\n function Button(\n {\n title,\n children,\n onPress,\n disabled = false,\n variant = \"primary\",\n size = \"lg\",\n showIcon = false,\n icon,\n style,\n textStyle,\n className,\n textClassName,\n accessibilityLabel,\n ...rest\n },\n forwardedRef,\n ) {\n const containerRef = useRef<ComponentRef<typeof TouchableOpacity>>(null);\n const textRef = useRef<ComponentRef<typeof Text>>(null);\n const preset = variantConfig[variant];\n const metrics = sizeConfig[size];\n\n const label = typeof children !== \"undefined\" ? children : title;\n const hasCustomChildren = typeof children !== \"undefined\";\n const customIcon = icon != null && typeof icon !== \"boolean\" ? icon : undefined;\n const hasIcon = showIcon || icon === true || customIcon != null;\n const resolvedContainerClassName = className?.trim() || undefined;\n const resolvedAccessibilityLabel =\n accessibilityLabel ?? (typeof label === \"string\" ? label : undefined);\n\n const setContainerRef = useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);\n\n useApplyWebClassName(containerRef, resolvedContainerClassName);\n useApplyWebClassName(textRef, textClassName);\n\n const iconNode = customIcon ?? (\n <ArrowRightIcon size={metrics.iconSize} color={preset.iconColor} />\n );\n\n const containerStyle = [\n styles.base,\n {\n minHeight: metrics.minHeight,\n borderRadius: metrics.borderRadius,\n backgroundColor: preset.backgroundColor,\n paddingTop: metrics.paddingVertical,\n paddingBottom: metrics.paddingVertical,\n paddingLeft: metrics.paddingLeft,\n paddingRight: hasIcon ? metrics.paddingRightWithIcon : metrics.paddingRight,\n gap: hasIcon ? metrics.gap : 0,\n },\n disabled && styles.disabled,\n style,\n ];\n\n const labelStyle = [\n styles.label,\n metrics.text,\n { color: preset.textColor },\n Platform.OS === \"android\" ? styles.labelAndroid : null,\n !hasIcon && styles.labelCentered,\n textStyle,\n ];\n\n return (\n <TouchableOpacity\n {...rest}\n ref={setContainerRef}\n style={containerStyle}\n onPress={onPress}\n disabled={disabled}\n activeOpacity={0.7}\n accessibilityRole=\"button\"\n accessibilityLabel={resolvedAccessibilityLabel}\n accessibilityState={{ disabled }}\n >\n {hasCustomChildren ? (\n children\n ) : (\n <Text ref={textRef} style={labelStyle}>\n {label}\n </Text>\n )}\n\n {hasIcon ? (\n <View\n style={[\n styles.iconContainer,\n {\n width: metrics.iconContainerSize,\n height: metrics.iconContainerSize,\n borderRadius: metrics.iconContainerSize / 2,\n backgroundColor: preset.iconBadgeBackgroundColor,\n },\n ]}\n >\n {iconNode}\n </View>\n ) : null}\n </TouchableOpacity>\n );\n },\n);\n\nconst styles = StyleSheet.create({\n base: {\n flexDirection: \"row\",\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n borderWidth: 0,\n },\n disabled: {\n opacity: 0.6,\n },\n label: {},\n labelAndroid: {\n includeFontPadding: false,\n },\n labelCentered: {\n textAlign: \"center\",\n },\n iconContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n});\n","import { forwardRef, useMemo, useRef, useState, type ComponentRef, type ReactNode } from \"react\";\nimport {\n Pressable,\n StyleSheet,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n} from \"react-native\";\nimport { CheckIcon } from \"../../icons\";\nimport { colors, inputTypography } from \"../../theme\";\nimport { mergeRefs } from \"../../utils/mergeRefs\";\nimport { useApplyWebClassName } from \"../../utils/useApplyWebClassName\";\n\nexport type CheckboxVariant = \"default\" | \"light\";\n\nexport interface CheckboxProps extends Omit<\n PressableProps,\n \"onPress\" | \"disabled\" | \"style\" | \"children\" | \"hitSlop\"\n> {\n value?: boolean;\n defaultValue?: boolean;\n onValueChange?: (value: boolean) => void;\n disabled?: boolean;\n variant?: CheckboxVariant;\n label?: string;\n children?: ReactNode;\n style?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n className?: string;\n hitSlop?: PressableProps[\"hitSlop\"];\n}\n\nconst BOX_SIZE = 20;\nconst BOX_RADIUS = 6;\nconst CHECK_SIZE = 12;\nconst CHECK_STROKE = 2.5;\n\nconst variantChrome: Record<CheckboxVariant, { backgroundColor: string; borderColor: string }> = {\n default: {\n backgroundColor: colors.dark,\n borderColor: colors.grey700,\n },\n light: {\n backgroundColor: colors.grey700,\n borderColor: colors.grey500,\n },\n};\n\nexport const Checkbox = forwardRef<ComponentRef<typeof Pressable>, CheckboxProps>(function Checkbox(\n {\n value,\n defaultValue = false,\n onValueChange,\n disabled = false,\n variant = \"default\",\n label,\n children,\n style,\n labelStyle,\n className,\n hitSlop = 8,\n accessibilityLabel,\n ...rest\n },\n forwardedRef,\n) {\n const containerRef = useRef<ComponentRef<typeof Pressable>>(null);\n const isControlled = typeof value === \"boolean\";\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isActive = isControlled ? value : uncontrolledValue;\n\n const chrome = variantChrome[variant];\n const labelContent = children ?? label;\n const resolvedAccessibilityLabel =\n accessibilityLabel ?? (typeof labelContent === \"string\" ? labelContent : undefined);\n const setContainerRef = useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);\n\n useApplyWebClassName(containerRef, className);\n\n const handlePress = () => {\n if (disabled) return;\n const next = !isActive;\n if (!isControlled) setUncontrolledValue(next);\n onValueChange?.(next);\n };\n\n return (\n <Pressable\n {...rest}\n ref={setContainerRef}\n onPress={handlePress}\n disabled={disabled}\n hitSlop={hitSlop}\n accessibilityRole=\"checkbox\"\n accessibilityLabel={resolvedAccessibilityLabel}\n accessibilityState={{ checked: isActive, disabled }}\n style={[styles.root, disabled && styles.disabled, style]}\n >\n <View\n style={[\n styles.box,\n {\n backgroundColor: chrome.backgroundColor,\n borderColor: chrome.borderColor,\n },\n ]}\n >\n {isActive ? (\n <CheckIcon size={CHECK_SIZE} color={colors.primary} strokeWidth={CHECK_STROKE} />\n ) : null}\n </View>\n\n {labelContent != null && labelContent !== false ? (\n typeof labelContent === \"string\" || typeof labelContent === \"number\" ? (\n <Text style={[styles.label, labelStyle]}>{labelContent}</Text>\n ) : (\n labelContent\n )\n ) : null}\n </Pressable>\n );\n});\n\nconst styles = StyleSheet.create({\n root: {\n flexDirection: \"row\",\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n gap: 10,\n },\n disabled: {\n opacity: 0.5,\n },\n box: {\n width: BOX_SIZE,\n height: BOX_SIZE,\n borderRadius: BOX_RADIUS,\n borderWidth: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n label: {\n ...inputTypography.field,\n color: colors.white,\n },\n});\n","import { forwardRef, useMemo, useRef, useState, type ComponentRef, type ReactNode } from \"react\";\nimport {\n Platform,\n StyleSheet,\n Text,\n TextInput,\n TouchableOpacity,\n View,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n type TextInputProps,\n} from \"react-native\";\nimport { ShowIcon } from \"../../icons\";\nimport { UserIcon } from \"../../icons\";\nimport { colors, inputTypography } from \"../../theme\";\nimport { mergeRefs } from \"../../utils/mergeRefs\";\nimport { useApplyWebClassName } from \"../../utils/useApplyWebClassName\";\n\nexport type InputSize = \"lg\" | \"sm\";\n\nexport interface InputProps extends Omit<TextInputProps, \"style\" | \"editable\"> {\n label?: string;\n showLabel?: boolean;\n hint?: string;\n showHint?: boolean;\n size?: InputSize;\n /** External — validation / form error. */\n error?: boolean;\n /** External — non-interactive. */\n disabled?: boolean;\n leftIcon?: ReactNode;\n showLeftIcon?: boolean;\n rightIcon?: ReactNode;\n showRightIcon?: boolean;\n onRightIconPress?: () => void;\n /** Accessible name for the right icon button, when `onRightIconPress` is set. */\n rightIconAccessibilityLabel?: string;\n style?: StyleProp<ViewStyle>;\n fieldStyle?: StyleProp<ViewStyle>;\n inputStyle?: StyleProp<TextStyle>;\n className?: string;\n inputClassName?: string;\n}\n\ntype VisualState = \"default\" | \"filled\" | \"active\" | \"error\" | \"disabled\";\n\ntype FieldChrome = {\n borderColor: string;\n backgroundColor: string;\n textColor: string;\n placeholderColor: string;\n leftIconColor: string;\n rightIconColor: string;\n labelColor: string;\n hintColor: string;\n};\n\nconst DEFAULT_WIDTH = 308;\n\nconst sizeConfig = {\n lg: {\n height: 44,\n borderRadius: 60,\n paddingVertical: 12,\n paddingHorizontal: 16,\n gap: 10,\n iconSize: 20,\n text: inputTypography.field,\n },\n sm: {\n height: 32,\n borderRadius: 60,\n paddingVertical: 6,\n paddingHorizontal: 12,\n gap: 8,\n iconSize: 16,\n text: inputTypography.hint,\n },\n} as const satisfies Record<InputSize, Record<string, unknown>>;\n\n/** default / filled / active come from value + focus; error / disabled from props. */\nfunction resolveVisualState({\n disabled,\n error,\n focused,\n hasValue,\n}: {\n disabled: boolean;\n error: boolean;\n focused: boolean;\n hasValue: boolean;\n}): VisualState {\n if (disabled) return \"disabled\";\n if (error) return \"error\";\n if (focused) return \"active\";\n if (hasValue) return \"filled\";\n return \"default\";\n}\n\nfunction chromeFor(state: VisualState): FieldChrome {\n const base: FieldChrome = {\n borderColor: colors.grey700,\n backgroundColor: colors.grey700,\n textColor: colors.white,\n placeholderColor: colors.grey100,\n leftIconColor: colors.grey100,\n rightIconColor: colors.grey100,\n labelColor: colors.white,\n hintColor: colors.grey100,\n };\n\n switch (state) {\n case \"active\":\n return {\n ...base,\n borderColor: colors.primaryMuted,\n leftIconColor: colors.primary,\n };\n case \"error\":\n return {\n ...base,\n borderColor: colors.redMuted,\n textColor: colors.red,\n placeholderColor: colors.red,\n labelColor: colors.red,\n hintColor: colors.red,\n leftIconColor: colors.red,\n };\n case \"filled\":\n return base;\n case \"disabled\":\n return {\n ...base,\n borderColor: colors.grey700,\n backgroundColor: colors.grey700,\n textColor: colors.grey0,\n leftIconColor: colors.grey0,\n rightIconColor: colors.grey0,\n labelColor: colors.white,\n hintColor: colors.grey100,\n };\n default:\n return base;\n }\n}\n\nexport const Input = forwardRef<ComponentRef<typeof TextInput>, InputProps>(function Input(\n {\n label = \"Label\",\n showLabel = true,\n hint = \"Hint\",\n showHint = true,\n placeholder = \"placeholder\",\n size = \"lg\",\n disabled = false,\n error = false,\n value,\n defaultValue,\n onChangeText,\n onFocus,\n onBlur,\n leftIcon,\n showLeftIcon = false,\n rightIcon,\n showRightIcon = false,\n onRightIconPress,\n rightIconAccessibilityLabel,\n style,\n fieldStyle,\n inputStyle,\n className,\n inputClassName,\n accessibilityLabel,\n ...textInputProps\n },\n forwardedRef,\n) {\n const rootRef = useRef<ComponentRef<typeof View>>(null);\n const inputRef = useRef<ComponentRef<typeof TextInput>>(null);\n const setInputRef = useMemo(() => mergeRefs(inputRef, forwardedRef), [forwardedRef]);\n const [focused, setFocused] = useState(false);\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? \"\");\n const metrics = sizeConfig[size];\n\n const isControlled = typeof value === \"string\";\n const currentValue = isControlled ? value : uncontrolledValue;\n const hasValue = currentValue.length > 0;\n\n const visualState = resolveVisualState({ disabled, error, focused, hasValue });\n const chrome = chromeFor(visualState);\n const resolvedAccessibilityLabel = accessibilityLabel ?? (showLabel ? undefined : label);\n\n const hasLeftIcon = showLeftIcon || leftIcon != null;\n const hasRightIcon = showRightIcon || rightIcon != null;\n\n const leftIconNode = leftIcon ?? (\n <UserIcon size={metrics.iconSize} color={chrome.leftIconColor} />\n );\n const rightIconNode = rightIcon ?? (\n <ShowIcon size={metrics.iconSize} color={chrome.rightIconColor} />\n );\n\n useApplyWebClassName(rootRef, className);\n useApplyWebClassName(inputRef, inputClassName);\n\n return (\n <View ref={rootRef} style={[styles.root, disabled && styles.disabled, style]}>\n {showLabel && label ? (\n <Text style={[styles.label, { color: chrome.labelColor }]}>{label}</Text>\n ) : null}\n\n <View\n style={[\n styles.field,\n {\n height: metrics.height,\n borderRadius: metrics.borderRadius,\n paddingTop: metrics.paddingVertical,\n paddingBottom: metrics.paddingVertical,\n paddingLeft: metrics.paddingHorizontal,\n paddingRight: metrics.paddingHorizontal,\n gap: metrics.gap,\n borderColor: chrome.borderColor,\n backgroundColor: chrome.backgroundColor,\n },\n fieldStyle,\n ]}\n >\n {hasLeftIcon ? (\n <View style={[styles.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }]}>\n {leftIconNode}\n </View>\n ) : null}\n\n <TextInput\n ref={setInputRef}\n {...textInputProps}\n value={isControlled ? value : undefined}\n defaultValue={isControlled ? undefined : defaultValue}\n editable={!disabled}\n placeholder={placeholder}\n placeholderTextColor={chrome.placeholderColor}\n onChangeText={(text) => {\n if (!isControlled) setUncontrolledValue(text);\n onChangeText?.(text);\n }}\n onFocus={(event) => {\n setFocused(true);\n onFocus?.(event);\n }}\n onBlur={(event) => {\n setFocused(false);\n onBlur?.(event);\n }}\n style={[\n styles.input,\n metrics.text,\n { color: chrome.textColor },\n Platform.OS === \"web\" ? styles.inputWeb : null,\n Platform.OS === \"android\" ? styles.inputAndroid : null,\n inputStyle,\n ]}\n accessibilityLabel={resolvedAccessibilityLabel}\n accessibilityState={{ disabled }}\n />\n\n {hasRightIcon ? (\n onRightIconPress ? (\n <TouchableOpacity\n onPress={onRightIconPress}\n disabled={disabled}\n style={[styles.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }]}\n accessibilityRole=\"button\"\n accessibilityLabel={rightIconAccessibilityLabel}\n hitSlop={8}\n >\n {rightIconNode}\n </TouchableOpacity>\n ) : (\n <View style={[styles.iconSlot, { width: metrics.iconSize, height: metrics.iconSize }]}>\n {rightIconNode}\n </View>\n )\n ) : null}\n </View>\n\n {showHint && hint ? (\n <Text style={[styles.hint, { color: chrome.hintColor }]}>{hint}</Text>\n ) : null}\n </View>\n );\n});\n\nconst styles = StyleSheet.create({\n root: {\n width: DEFAULT_WIDTH,\n gap: 8,\n alignSelf: \"flex-start\",\n },\n disabled: {\n opacity: 0.6,\n },\n label: {\n ...inputTypography.label,\n },\n field: {\n borderWidth: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n input: {\n flex: 1,\n paddingVertical: 0,\n margin: 0,\n },\n inputWeb: {\n outlineStyle: \"none\",\n } as TextStyle,\n inputAndroid: {\n includeFontPadding: false,\n },\n iconSlot: {\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n hint: {\n ...inputTypography.hint,\n },\n});\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentRef,\n type ReactNode,\n} from \"react\";\nimport {\n Platform,\n Pressable,\n ScrollView,\n StyleSheet,\n Text,\n TextInput,\n View,\n type LayoutChangeEvent,\n type StyleProp,\n type TextStyle,\n type ViewProps,\n type ViewStyle,\n} from \"react-native\";\nimport { Checkbox } from \"../Checkbox\";\nimport { ChevronDownIcon, SearchIcon, UserIcon } from \"../../icons\";\nimport { colors, selectTypography } from \"../../theme\";\nimport { mergeRefs } from \"../../utils/mergeRefs\";\nimport { useApplyWebClassName } from \"../../utils/useApplyWebClassName\";\n\nexport type SelectOption = {\n label: string;\n value: string;\n};\n\ntype SelectBaseProps = Omit<ViewProps, \"style\" | \"children\"> & {\n label?: string;\n showLabel?: boolean;\n hint?: string;\n showHint?: boolean;\n placeholder?: string;\n options: SelectOption[];\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n error?: boolean;\n leftIcon?: ReactNode;\n showLeftIcon?: boolean;\n showSearch?: boolean;\n searchPlaceholder?: string;\n /**\n * Called with the raw query on every keystroke. When provided, the parent owns\n * filtering (e.g. server search) and the options prop is rendered as-is;\n * when omitted, options are filtered locally by label.\n */\n onSearchChange?: (query: string) => void;\n /** Shows a loading row in the menu while the parent fetches options. */\n loading?: boolean;\n /** Text shown when no options match. */\n emptyText?: string;\n style?: StyleProp<ViewStyle>;\n className?: string;\n};\n\nexport type SelectSingleProps = SelectBaseProps & {\n multiple?: false;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n};\n\nexport type SelectMultipleProps = SelectBaseProps & {\n multiple: true;\n value?: string[];\n defaultValue?: string[];\n onValueChange?: (value: string[]) => void;\n};\n\nexport type SelectProps = SelectSingleProps | SelectMultipleProps;\n\nconst DEFAULT_WIDTH = 308;\nconst TRIGGER_HEIGHT = 44;\nconst TRIGGER_RADIUS = 60;\nconst MENU_RADIUS = 24;\nconst MENU_MAX_LIST_HEIGHT = 248;\nconst ITEM_RADIUS = 12;\nconst ICON_SIZE = 20;\nconst CHIP_GAP = 6;\nconst FALLBACK_ELLIPSIS_WIDTH = 20;\n\ntype ItemVisualState = \"default\" | \"hover\" | \"selected\";\n\nfunction itemBackground(state: ItemVisualState): string {\n switch (state) {\n case \"hover\":\n return colors.grey600;\n case \"selected\":\n return colors.primaryMuted;\n default:\n return \"transparent\";\n }\n}\n\nfunction toArray(value: string | string[] | undefined): string[] {\n if (value == null || value === \"\") return [];\n return Array.isArray(value) ? value : [value];\n}\n\nfunction resolveVisibleOptions(\n options: SelectOption[],\n containerWidth: number,\n chipWidths: Record<string, number>,\n ellipsisWidth: number,\n): { visible: SelectOption[]; hasOverflow: boolean } {\n if (options.length === 0) return { visible: [], hasOverflow: false };\n if (containerWidth <= 0) return { visible: options.slice(0, 1), hasOverflow: options.length > 1 };\n\n const visible: SelectOption[] = [];\n let used = 0;\n\n for (let index = 0; index < options.length; index += 1) {\n const option = options[index];\n const chipWidth = chipWidths[option.value];\n if (chipWidth == null) {\n if (visible.length === 0) visible.push(option);\n break;\n }\n\n const remainingAfter = options.length - index - 1;\n const gap = visible.length > 0 ? CHIP_GAP : 0;\n const reserve = remainingAfter > 0 ? CHIP_GAP + ellipsisWidth : 0;\n const nextUsed = used + gap + chipWidth;\n\n if (visible.length > 0 && nextUsed + reserve > containerWidth) {\n return { visible, hasOverflow: true };\n }\n\n visible.push(option);\n used = nextUsed;\n }\n\n return { visible, hasOverflow: visible.length < options.length };\n}\n\ntype MultiValueChipsProps = {\n options: SelectOption[];\n disabled?: boolean;\n onRemove: (value: string) => void;\n};\n\nfunction MultiValueChips({ options, disabled, onRemove }: MultiValueChipsProps) {\n const [containerWidth, setContainerWidth] = useState(0);\n const [chipWidths, setChipWidths] = useState<Record<string, number>>({});\n const [ellipsisWidth, setEllipsisWidth] = useState(FALLBACK_ELLIPSIS_WIDTH);\n\n useEffect(() => {\n setChipWidths((current) => {\n const validValues = new Set(options.map((option) => option.value));\n const keys = Object.keys(current);\n if (keys.every((key) => validValues.has(key))) return current;\n\n const next: Record<string, number> = {};\n for (const key of keys) {\n if (validValues.has(key)) next[key] = current[key];\n }\n return next;\n });\n }, [options]);\n\n const { visible, hasOverflow } = useMemo(\n () => resolveVisibleOptions(options, containerWidth, chipWidths, ellipsisWidth),\n [chipWidths, containerWidth, ellipsisWidth, options],\n );\n\n const handleContainerLayout = (event: LayoutChangeEvent) => {\n const next = Math.floor(event.nativeEvent.layout.width);\n setContainerWidth((current) => (current === next ? current : next));\n };\n\n const handleChipLayout = (value: string, event: LayoutChangeEvent) => {\n const next = Math.ceil(event.nativeEvent.layout.width);\n setChipWidths((current) => (current[value] === next ? current : { ...current, [value]: next }));\n };\n\n const handleEllipsisLayout = (event: LayoutChangeEvent) => {\n const next = Math.ceil(event.nativeEvent.layout.width);\n setEllipsisWidth((current) => (current === next ? current : next));\n };\n\n return (\n <View style={styles.multiValueRoot}>\n {/* Hidden copy of every chip; RN has no synchronous text measurement. */}\n <View pointerEvents=\"none\" style={styles.measureRow}>\n {options.map((option) => (\n <View\n key={`measure-${option.value}`}\n style={styles.chip}\n onLayout={(event) => handleChipLayout(option.value, event)}\n >\n <Text style={styles.chipLabel} numberOfLines={1}>\n {option.label}\n </Text>\n <Text style={styles.chipRemove}>×</Text>\n </View>\n ))}\n <View style={styles.ellipsis} onLayout={handleEllipsisLayout}>\n <Text style={styles.ellipsisText}>...</Text>\n </View>\n </View>\n\n <View style={styles.chipsRow} onLayout={handleContainerLayout}>\n {visible.map((option) => (\n <View key={option.value} style={styles.chip}>\n <Text style={styles.chipLabel} numberOfLines={1}>\n {option.label}\n </Text>\n <Pressable\n onPress={(event) => {\n // Keep the surrounding trigger Pressable from toggling the menu.\n event?.stopPropagation?.();\n onRemove(option.value);\n }}\n disabled={disabled}\n hitSlop={6}\n accessibilityRole=\"button\"\n accessibilityLabel={`Remove ${option.label}`}\n >\n <Text style={styles.chipRemove}>×</Text>\n </Pressable>\n </View>\n ))}\n\n {hasOverflow ? (\n <View style={styles.ellipsis}>\n <Text style={styles.ellipsisText}>...</Text>\n </View>\n ) : null}\n </View>\n </View>\n );\n}\n\nexport const Select = forwardRef<ComponentRef<typeof View>, SelectProps>(\n function Select(props, forwardedRef) {\n const {\n label = \"Label\",\n showLabel = true,\n hint,\n showHint = false,\n placeholder = \"placeholder\",\n options,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n disabled = false,\n error = false,\n leftIcon,\n showLeftIcon = true,\n showSearch = true,\n searchPlaceholder = \"Search...\",\n onSearchChange,\n loading = false,\n emptyText = \"No results\",\n style,\n className,\n accessibilityLabel,\n // Pulled out only to keep them off `rest` (which is spread onto the root View);\n // the real values are read from `props` directly below to preserve discriminated typing.\n multiple: _multiple,\n value: _value,\n defaultValue: _defaultValue,\n onValueChange: _onValueChange,\n ...rest\n } = props;\n\n const multiple = props.multiple === true;\n const valueProp = props.value;\n const rootRef = useRef<ComponentRef<typeof View>>(null);\n const triggerRef = useRef<ComponentRef<typeof Pressable>>(null);\n const searchInputRef = useRef<ComponentRef<typeof TextInput>>(null);\n const setRootRef = useMemo(() => mergeRefs(rootRef, forwardedRef), [forwardedRef]);\n const isOpenControlled = typeof openProp === \"boolean\";\n const isValueControlled = valueProp !== undefined;\n\n const [uncontrolledSingle, setUncontrolledSingle] = useState(\n !multiple ? ((props as SelectSingleProps).defaultValue ?? \"\") : \"\",\n );\n const [uncontrolledMultiple, setUncontrolledMultiple] = useState<string[]>(\n multiple ? ((props as SelectMultipleProps).defaultValue ?? []) : [],\n );\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [hoveredValue, setHoveredValue] = useState<string | null>(null);\n\n const selectedValues = useMemo(() => {\n const current = isValueControlled\n ? valueProp\n : multiple\n ? uncontrolledMultiple\n : uncontrolledSingle;\n return toArray(current);\n }, [isValueControlled, multiple, valueProp, uncontrolledMultiple, uncontrolledSingle]);\n\n const isOpen = isOpenControlled ? openProp : uncontrolledOpen;\n\n // Mapped from selectedValues (not filtered from options) to preserve selection order.\n const selectedOptions = useMemo(\n () =>\n selectedValues\n .map((value) => options.find((option) => option.value === value))\n .filter((option): option is SelectOption => option != null),\n [options, selectedValues],\n );\n const hasValue = selectedOptions.length > 0;\n\n const isExternalSearch = onSearchChange != null;\n\n const filteredOptions = useMemo(() => {\n if (isExternalSearch) return options;\n const query = searchQuery.trim().toLowerCase();\n if (!query) return options;\n return options.filter((option) => option.label.toLowerCase().includes(query));\n }, [isExternalSearch, options, searchQuery]);\n\n useApplyWebClassName(rootRef, className);\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isOpenControlled) setUncontrolledOpen(next);\n onOpenChange?.(next);\n if (next) {\n // Seed keyboard highlight from the current selection so Arrow keys\n // start from a sensible position.\n setHoveredValue(selectedValues[0] ?? null);\n } else {\n setSearchQuery(\"\");\n setHoveredValue(null);\n // Let the parent reset its externally fetched options.\n onSearchChange?.(\"\");\n }\n },\n [isOpenControlled, onOpenChange, onSearchChange, selectedValues],\n );\n\n const handleSearchChange = (text: string) => {\n setSearchQuery(text);\n onSearchChange?.(text);\n };\n\n // Close on outside click (web only; native has no document-level events).\n useEffect(() => {\n if (Platform.OS !== \"web\" || !isOpen) return;\n\n const handlePointerDown = (event: MouseEvent | TouchEvent) => {\n const root = rootRef.current as unknown as { contains?: (node: Node) => boolean } | null;\n const target = event.target;\n if (root?.contains && target instanceof Node && !root.contains(target)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handlePointerDown);\n document.addEventListener(\"touchstart\", handlePointerDown);\n return () => {\n document.removeEventListener(\"mousedown\", handlePointerDown);\n document.removeEventListener(\"touchstart\", handlePointerDown);\n };\n }, [isOpen, setOpen]);\n\n const commitValues = useCallback(\n (nextValues: string[]) => {\n if (multiple) {\n if (!isValueControlled) setUncontrolledMultiple(nextValues);\n (props as SelectMultipleProps).onValueChange?.(nextValues);\n return;\n }\n\n const nextValue = nextValues[0] ?? \"\";\n if (!isValueControlled) setUncontrolledSingle(nextValue);\n (props as SelectSingleProps).onValueChange?.(nextValue);\n },\n [isValueControlled, multiple, props],\n );\n\n const handleTriggerPress = () => {\n if (disabled) return;\n setOpen(!isOpen);\n };\n\n const handleSelect = useCallback(\n (optionValue: string) => {\n if (disabled) return;\n if (multiple) {\n const exists = selectedValues.includes(optionValue);\n const nextValues = exists\n ? selectedValues.filter((value) => value !== optionValue)\n : [...selectedValues, optionValue];\n commitValues(nextValues);\n return;\n }\n\n commitValues([optionValue]);\n setOpen(false);\n },\n [commitValues, disabled, multiple, selectedValues, setOpen],\n );\n\n const handleRemoveChip = (optionValue: string) => {\n if (disabled || !multiple) return;\n commitValues(selectedValues.filter((value) => value !== optionValue));\n };\n\n const focusTrigger = useCallback(() => {\n const node = triggerRef.current as unknown as { focus?: () => void } | null;\n node?.focus?.();\n }, []);\n\n const closeAndFocusTrigger = useCallback(() => {\n setOpen(false);\n focusTrigger();\n }, [focusTrigger, setOpen]);\n\n // ARIA combobox keyboard pattern (web only): Arrow keys move the highlighted\n // option, Enter/Space selects it, Escape closes and returns focus to the trigger.\n useEffect(() => {\n if (Platform.OS !== \"web\") return;\n\n const isTriggerFocused = () => document.activeElement === triggerRef.current;\n const isSearchFocused = () => document.activeElement === searchInputRef.current;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (!isOpen) {\n if (!isTriggerFocused() || disabled) return;\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\" || event.key === \"Enter\") {\n event.preventDefault();\n setOpen(true);\n }\n return;\n }\n\n if (event.key === \"Escape\") {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n setHoveredValue((current) => {\n if (filteredOptions.length === 0) return current;\n const currentIndex = filteredOptions.findIndex((option) => option.value === current);\n const delta = event.key === \"ArrowDown\" ? 1 : -1;\n const nextIndex =\n currentIndex === -1\n ? delta === 1\n ? 0\n : filteredOptions.length - 1\n : Math.min(Math.max(currentIndex + delta, 0), filteredOptions.length - 1);\n return filteredOptions[nextIndex]?.value ?? current;\n });\n return;\n }\n\n // Home/End and Space are left alone while typing in the search field\n // (text-cursor navigation and literal spaces must keep working).\n if (\n isSearchFocused() &&\n (event.key === \"Home\" || event.key === \"End\" || event.key === \" \")\n ) {\n return;\n }\n\n if (event.key === \"Home\" || event.key === \"End\") {\n if (filteredOptions.length === 0) return;\n event.preventDefault();\n setHoveredValue(\n event.key === \"Home\"\n ? filteredOptions[0].value\n : filteredOptions[filteredOptions.length - 1].value,\n );\n return;\n }\n\n if (event.key === \"Enter\" || event.key === \" \") {\n if (hoveredValue == null) return;\n event.preventDefault();\n handleSelect(hoveredValue);\n if (!multiple) focusTrigger();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [\n isOpen,\n disabled,\n filteredOptions,\n hoveredValue,\n multiple,\n closeAndFocusTrigger,\n focusTrigger,\n handleSelect,\n setOpen,\n ]);\n\n const leftIconNode = leftIcon ?? (\n <UserIcon\n size={ICON_SIZE}\n color={error ? colors.red : isOpen ? colors.primary : colors.grey100}\n />\n );\n const hasLeftIcon = showLeftIcon || leftIcon != null;\n\n const triggerBorderColor = error\n ? colors.redMuted\n : isOpen\n ? colors.primaryMuted\n : colors.grey700;\n const triggerTextColor = hasValue\n ? error\n ? colors.red\n : colors.white\n : error\n ? colors.red\n : colors.grey100;\n const labelColor = error ? colors.red : colors.white;\n const hintColor = error ? colors.red : colors.grey100;\n\n const singleLabel = selectedOptions[0]?.label ?? placeholder;\n const resolvedAccessibilityLabel =\n accessibilityLabel ?? (typeof label === \"string\" ? label : undefined);\n\n return (\n <View\n {...rest}\n ref={setRootRef}\n style={[styles.root, isOpen && styles.rootOpen, disabled && styles.disabled, style]}\n accessibilityState={{ disabled, expanded: isOpen }}\n >\n {showLabel && label ? (\n <Text style={[styles.label, { color: labelColor }]}>{label}</Text>\n ) : null}\n\n <View style={[styles.triggerWrap, isOpen && styles.triggerWrapOpen]}>\n <Pressable\n ref={triggerRef}\n onPress={handleTriggerPress}\n disabled={disabled}\n accessibilityRole=\"combobox\"\n accessibilityLabel={resolvedAccessibilityLabel}\n accessibilityState={{ disabled, expanded: isOpen }}\n style={[\n styles.trigger,\n {\n borderColor: triggerBorderColor,\n backgroundColor: colors.grey700,\n },\n ]}\n >\n {hasLeftIcon ? <View style={styles.iconSlot}>{leftIconNode}</View> : null}\n\n <View style={styles.triggerContent}>\n {multiple && hasValue ? (\n <MultiValueChips\n options={selectedOptions}\n disabled={disabled}\n onRemove={handleRemoveChip}\n />\n ) : (\n <Text style={[styles.triggerText, { color: triggerTextColor }]} numberOfLines={1}>\n {multiple ? placeholder : singleLabel}\n </Text>\n )}\n </View>\n\n <View style={[styles.iconSlot, isOpen && styles.chevronOpen]}>\n <ChevronDownIcon size={ICON_SIZE} color={colors.grey100} />\n </View>\n </Pressable>\n\n {isOpen ? (\n <View style={styles.menu}>\n {showSearch ? (\n <View style={styles.searchField}>\n <View style={styles.iconSlot}>\n <SearchIcon size={ICON_SIZE} color={colors.grey100} />\n </View>\n <TextInput\n ref={searchInputRef}\n value={searchQuery}\n onChangeText={handleSearchChange}\n editable={!disabled}\n placeholder={searchPlaceholder}\n placeholderTextColor={colors.grey100}\n style={[\n styles.searchInput,\n Platform.OS === \"web\" ? styles.searchInputWeb : null,\n Platform.OS === \"android\" ? styles.searchInputAndroid : null,\n ]}\n accessibilityLabel={searchPlaceholder}\n />\n </View>\n ) : null}\n\n <ScrollView\n style={styles.optionList}\n contentContainerStyle={styles.optionListContent}\n keyboardShouldPersistTaps=\"handled\"\n showsVerticalScrollIndicator={false}\n >\n {loading ? (\n <View style={styles.statusRow}>\n <Text style={styles.statusText}>Loading...</Text>\n </View>\n ) : filteredOptions.length === 0 ? (\n <View style={styles.statusRow}>\n <Text style={styles.statusText}>{emptyText}</Text>\n </View>\n ) : null}\n\n {!loading &&\n filteredOptions.map((option) => {\n const isSelected = selectedValues.includes(option.value);\n const isHovered = hoveredValue === option.value;\n const visualState: ItemVisualState = isSelected\n ? \"selected\"\n : isHovered\n ? \"hover\"\n : \"default\";\n\n return (\n <Pressable\n key={option.value}\n onPress={() => handleSelect(option.value)}\n disabled={disabled}\n onHoverIn={() => setHoveredValue(option.value)}\n onHoverOut={() =>\n setHoveredValue((current) => (current === option.value ? null : current))\n }\n onPressIn={() => setHoveredValue(option.value)}\n onPressOut={() =>\n setHoveredValue((current) => (current === option.value ? null : current))\n }\n accessibilityRole={multiple ? \"checkbox\" : \"button\"}\n accessibilityState={{ selected: isSelected, checked: isSelected, disabled }}\n style={[\n styles.item,\n {\n backgroundColor: itemBackground(visualState),\n },\n ]}\n >\n {multiple ? (\n <View pointerEvents=\"none\" style={styles.itemCheckbox}>\n <Checkbox value={isSelected} variant=\"light\" />\n </View>\n ) : null}\n <Text style={styles.itemLabel} numberOfLines={1}>\n {option.label}\n </Text>\n </Pressable>\n );\n })}\n </ScrollView>\n </View>\n ) : null}\n </View>\n\n {showHint && hint ? <Text style={[styles.hint, { color: hintColor }]}>{hint}</Text> : null}\n </View>\n );\n },\n);\n\nconst styles = StyleSheet.create({\n root: {\n width: DEFAULT_WIDTH,\n gap: 8,\n alignSelf: \"flex-start\",\n },\n rootOpen: {\n zIndex: 30,\n },\n disabled: {\n opacity: 0.6,\n },\n label: {\n ...selectTypography.label,\n },\n triggerWrap: {\n position: \"relative\",\n zIndex: 1,\n },\n triggerWrapOpen: {\n zIndex: 20,\n },\n trigger: {\n height: TRIGGER_HEIGHT,\n borderRadius: TRIGGER_RADIUS,\n borderWidth: 1,\n paddingVertical: 12,\n paddingHorizontal: 16,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 10,\n overflow: \"hidden\",\n },\n triggerContent: {\n flex: 1,\n justifyContent: \"center\",\n minWidth: 0,\n overflow: \"hidden\",\n },\n triggerText: {\n ...selectTypography.field,\n },\n multiValueRoot: {\n width: \"100%\",\n position: \"relative\",\n },\n measureRow: {\n position: \"absolute\",\n left: 0,\n top: 0,\n flexDirection: \"row\",\n opacity: 0,\n zIndex: -1,\n },\n chipsRow: {\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: CHIP_GAP,\n overflow: \"hidden\",\n },\n chip: {\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 4,\n paddingVertical: 2,\n paddingHorizontal: 8,\n borderRadius: 999,\n backgroundColor: colors.grey600,\n flexShrink: 0,\n },\n chipLabel: {\n ...selectTypography.hint,\n color: colors.white,\n maxWidth: 120,\n },\n chipRemove: {\n color: colors.grey100,\n fontSize: 14,\n lineHeight: 14,\n },\n ellipsis: {\n flexShrink: 0,\n paddingHorizontal: 2,\n },\n ellipsisText: {\n ...selectTypography.field,\n color: colors.white,\n lineHeight: 16,\n },\n iconSlot: {\n width: ICON_SIZE,\n height: ICON_SIZE,\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n },\n chevronOpen: {\n transform: [{ rotate: \"180deg\" }],\n },\n menu: {\n position: \"absolute\",\n top: \"100%\",\n left: 0,\n right: 0,\n marginTop: 8,\n zIndex: 10,\n borderRadius: MENU_RADIUS,\n padding: 12,\n gap: 8,\n backgroundColor: colors.grey700,\n ...Platform.select({\n web: {\n boxShadow: `0 8px 24px ${colors.black}73`,\n },\n default: {\n elevation: 8,\n },\n }),\n },\n optionList: {\n maxHeight: MENU_MAX_LIST_HEIGHT,\n },\n optionListContent: {\n gap: 8,\n },\n statusRow: {\n minHeight: 43,\n padding: 12,\n justifyContent: \"center\",\n },\n statusText: {\n ...selectTypography.field,\n color: colors.grey100,\n },\n searchField: {\n height: 40,\n borderRadius: ITEM_RADIUS,\n paddingHorizontal: 12,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n backgroundColor: colors.grey800,\n },\n searchInput: {\n ...selectTypography.field,\n flex: 1,\n color: colors.white,\n paddingVertical: 0,\n margin: 0,\n },\n searchInputWeb: {\n outlineStyle: \"none\",\n } as TextStyle,\n searchInputAndroid: {\n includeFontPadding: false,\n },\n item: {\n minHeight: 43,\n borderRadius: ITEM_RADIUS,\n padding: 12,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n },\n itemCheckbox: {\n flexShrink: 0,\n },\n itemLabel: {\n ...selectTypography.field,\n color: colors.white,\n flex: 1,\n },\n hint: {\n ...selectTypography.hint,\n },\n});\n","import { forwardRef, useMemo, useRef, useState, type ComponentRef } from \"react\";\nimport {\n Platform,\n StyleSheet,\n Text,\n TextInput,\n View,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n type TextInputProps,\n} from \"react-native\";\nimport { colors, textareaTypography } from \"../../theme\";\nimport { mergeRefs } from \"../../utils/mergeRefs\";\nimport { useApplyWebClassName } from \"../../utils/useApplyWebClassName\";\n\nexport interface TextareaProps extends Omit<TextInputProps, \"style\" | \"editable\" | \"multiline\"> {\n label?: string;\n showLabel?: boolean;\n hint?: string;\n showHint?: boolean;\n /** External — validation / form error. */\n error?: boolean;\n /** External — non-interactive. */\n disabled?: boolean;\n style?: StyleProp<ViewStyle>;\n fieldStyle?: StyleProp<ViewStyle>;\n inputStyle?: StyleProp<TextStyle>;\n className?: string;\n inputClassName?: string;\n}\n\ntype VisualState = \"default\" | \"filled\" | \"active\" | \"error\" | \"disabled\";\n\ntype FieldChrome = {\n borderColor: string;\n backgroundColor: string;\n textColor: string;\n placeholderColor: string;\n labelColor: string;\n hintColor: string;\n};\n\nconst DEFAULT_WIDTH = 308;\nconst FIELD_HEIGHT = 100;\nconst FIELD_RADIUS = 16;\nconst FIELD_PADDING_VERTICAL = 12;\nconst FIELD_PADDING_HORIZONTAL = 16;\n\n/** default / filled / active come from value + focus; error / disabled from props. */\nfunction resolveVisualState({\n disabled,\n error,\n focused,\n hasValue,\n}: {\n disabled: boolean;\n error: boolean;\n focused: boolean;\n hasValue: boolean;\n}): VisualState {\n if (disabled) return \"disabled\";\n if (error) return \"error\";\n if (focused) return \"active\";\n if (hasValue) return \"filled\";\n return \"default\";\n}\n\nfunction chromeFor(state: VisualState): FieldChrome {\n const base: FieldChrome = {\n borderColor: colors.grey700,\n backgroundColor: colors.grey700,\n textColor: colors.white,\n placeholderColor: colors.grey100,\n labelColor: colors.white,\n hintColor: colors.grey100,\n };\n\n switch (state) {\n case \"active\":\n return {\n ...base,\n borderColor: colors.primaryMuted,\n };\n case \"error\":\n return {\n ...base,\n borderColor: colors.redMuted,\n textColor: colors.red,\n placeholderColor: colors.red,\n labelColor: colors.red,\n hintColor: colors.red,\n };\n case \"filled\":\n return base;\n case \"disabled\":\n return {\n ...base,\n textColor: colors.grey0,\n };\n default:\n return base;\n }\n}\n\nexport const Textarea = forwardRef<ComponentRef<typeof TextInput>, TextareaProps>(function Textarea(\n {\n label = \"Label\",\n showLabel = true,\n hint = \"Hint\",\n showHint = true,\n placeholder = \"placeholder\",\n disabled = false,\n error = false,\n value,\n defaultValue,\n onChangeText,\n onFocus,\n onBlur,\n style,\n fieldStyle,\n inputStyle,\n className,\n inputClassName,\n accessibilityLabel,\n ...textInputProps\n },\n forwardedRef,\n) {\n const rootRef = useRef<ComponentRef<typeof View>>(null);\n const inputRef = useRef<ComponentRef<typeof TextInput>>(null);\n const setInputRef = useMemo(() => mergeRefs(inputRef, forwardedRef), [forwardedRef]);\n const [focused, setFocused] = useState(false);\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? \"\");\n\n const isControlled = typeof value === \"string\";\n const currentValue = isControlled ? value : uncontrolledValue;\n const hasValue = currentValue.length > 0;\n\n const visualState = resolveVisualState({ disabled, error, focused, hasValue });\n const chrome = chromeFor(visualState);\n const resolvedAccessibilityLabel = accessibilityLabel ?? (showLabel ? undefined : label);\n\n useApplyWebClassName(rootRef, className);\n useApplyWebClassName(inputRef, inputClassName);\n\n return (\n <View ref={rootRef} style={[styles.root, disabled && styles.disabled, style]}>\n {showLabel && label ? (\n <Text style={[styles.label, { color: chrome.labelColor }]}>{label}</Text>\n ) : null}\n\n <View\n style={[\n styles.field,\n {\n borderColor: chrome.borderColor,\n backgroundColor: chrome.backgroundColor,\n },\n fieldStyle,\n ]}\n >\n <TextInput\n ref={setInputRef}\n {...textInputProps}\n multiline\n textAlignVertical=\"top\"\n value={isControlled ? value : undefined}\n defaultValue={isControlled ? undefined : defaultValue}\n editable={!disabled}\n placeholder={placeholder}\n placeholderTextColor={chrome.placeholderColor}\n onChangeText={(text) => {\n if (!isControlled) setUncontrolledValue(text);\n onChangeText?.(text);\n }}\n onFocus={(event) => {\n setFocused(true);\n onFocus?.(event);\n }}\n onBlur={(event) => {\n setFocused(false);\n onBlur?.(event);\n }}\n style={[\n styles.input,\n textareaTypography.field,\n { color: chrome.textColor },\n Platform.OS === \"web\" ? styles.inputWeb : null,\n Platform.OS === \"android\" ? styles.inputAndroid : null,\n inputStyle,\n ]}\n accessibilityLabel={resolvedAccessibilityLabel}\n accessibilityState={{ disabled }}\n />\n </View>\n\n {showHint && hint ? (\n <Text style={[styles.hint, { color: chrome.hintColor }]}>{hint}</Text>\n ) : null}\n </View>\n );\n});\n\nconst styles = StyleSheet.create({\n root: {\n width: DEFAULT_WIDTH,\n gap: 8,\n alignSelf: \"flex-start\",\n },\n disabled: {\n opacity: 0.6,\n },\n label: {\n ...textareaTypography.label,\n },\n field: {\n height: FIELD_HEIGHT,\n borderRadius: FIELD_RADIUS,\n borderWidth: 1,\n paddingTop: FIELD_PADDING_VERTICAL,\n paddingBottom: FIELD_PADDING_VERTICAL,\n paddingLeft: FIELD_PADDING_HORIZONTAL,\n paddingRight: FIELD_PADDING_HORIZONTAL,\n },\n input: {\n flex: 1,\n paddingVertical: 0,\n margin: 0,\n },\n inputWeb: {\n outlineStyle: \"none\",\n resize: \"none\",\n } as TextStyle,\n inputAndroid: {\n includeFontPadding: false,\n },\n hint: {\n ...textareaTypography.hint,\n },\n});\n","import {\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentRef,\n type ReactNode,\n} from \"react\";\nimport {\n Animated,\n Easing,\n Pressable,\n StyleSheet,\n Text,\n type PressableProps,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n} from \"react-native\";\nimport { colors, inputTypography } from \"../../theme\";\nimport { mergeRefs } from \"../../utils/mergeRefs\";\nimport { useApplyWebClassName } from \"../../utils/useApplyWebClassName\";\n\nexport interface ToggleProps extends Omit<\n PressableProps,\n \"onPress\" | \"disabled\" | \"style\" | \"children\" | \"hitSlop\"\n> {\n value?: boolean;\n defaultValue?: boolean;\n onValueChange?: (value: boolean) => void;\n disabled?: boolean;\n /** Visible label rendered next to the track. */\n label?: string;\n children?: ReactNode;\n /** Accessible name for screen readers; falls back to `label`/`children` when omitted. */\n accessibilityLabel?: string;\n style?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n className?: string;\n hitSlop?: PressableProps[\"hitSlop\"];\n}\n\nconst TRACK_WIDTH = 44;\nconst TRACK_HEIGHT = 24;\nconst TRACK_RADIUS = 43;\nconst TRACK_PADDING = 4;\nconst THUMB_SIZE = TRACK_HEIGHT - TRACK_PADDING * 2;\nconst THUMB_TRAVEL = TRACK_WIDTH - TRACK_PADDING * 2 - THUMB_SIZE;\nconst ANIMATION_DURATION = 300;\n\nexport const Toggle = forwardRef<ComponentRef<typeof Pressable>, ToggleProps>(function Toggle(\n {\n value,\n defaultValue = false,\n onValueChange,\n disabled = false,\n label,\n children,\n accessibilityLabel,\n style,\n labelStyle,\n className,\n hitSlop = 10,\n ...rest\n },\n forwardedRef,\n) {\n const containerRef = useRef<ComponentRef<typeof Pressable>>(null);\n const isControlled = typeof value === \"boolean\";\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isActive = isControlled ? value : uncontrolledValue;\n const labelContent = children ?? label;\n const resolvedAccessibilityLabel =\n accessibilityLabel ?? (typeof labelContent === \"string\" ? labelContent : undefined);\n const setContainerRef = useMemo(() => mergeRefs(containerRef, forwardedRef), [forwardedRef]);\n\n const progress = useRef(new Animated.Value(isActive ? 1 : 0)).current;\n\n useApplyWebClassName(containerRef, className);\n\n useEffect(() => {\n Animated.timing(progress, {\n toValue: isActive ? 1 : 0,\n duration: ANIMATION_DURATION,\n easing: Easing.out(Easing.ease),\n useNativeDriver: false,\n }).start();\n }, [isActive, progress]);\n\n const handlePress = () => {\n if (disabled) return;\n const next = !isActive;\n if (!isControlled) setUncontrolledValue(next);\n onValueChange?.(next);\n };\n\n const trackBackgroundColor = progress.interpolate({\n inputRange: [0, 1],\n outputRange: [colors.grey700, colors.primary],\n });\n\n const thumbTranslateX = progress.interpolate({\n inputRange: [0, 1],\n outputRange: [0, THUMB_TRAVEL],\n });\n\n return (\n <Pressable\n {...rest}\n ref={setContainerRef}\n onPress={handlePress}\n disabled={disabled}\n hitSlop={hitSlop}\n accessibilityRole=\"switch\"\n accessibilityLabel={resolvedAccessibilityLabel}\n accessibilityState={{ checked: isActive, disabled }}\n style={[styles.pressable, disabled && styles.disabled, style]}\n >\n <Animated.View\n style={[\n styles.track,\n {\n backgroundColor: trackBackgroundColor,\n },\n ]}\n >\n <Animated.View\n style={[\n styles.thumb,\n {\n transform: [{ translateX: thumbTranslateX }],\n },\n ]}\n />\n </Animated.View>\n\n {labelContent != null && labelContent !== false ? (\n typeof labelContent === \"string\" || typeof labelContent === \"number\" ? (\n <Text style={[styles.label, labelStyle]}>{labelContent}</Text>\n ) : (\n labelContent\n )\n ) : null}\n </Pressable>\n );\n});\n\nconst styles = StyleSheet.create({\n pressable: {\n flexDirection: \"row\",\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n gap: 10,\n },\n disabled: {\n opacity: 0.6,\n },\n track: {\n width: TRACK_WIDTH,\n height: TRACK_HEIGHT,\n borderRadius: TRACK_RADIUS,\n padding: TRACK_PADDING,\n justifyContent: \"center\",\n },\n thumb: {\n width: THUMB_SIZE,\n height: THUMB_SIZE,\n borderRadius: THUMB_SIZE / 2,\n backgroundColor: colors.white,\n },\n label: {\n ...inputTypography.field,\n color: colors.white,\n },\n});\n"]}