@avenue-ticketing/ui 0.11.0 → 0.12.0-beta.2

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 (226) hide show
  1. package/README.md +47 -0
  2. package/dist/badge-types-B67wcd4m.d.ts +22 -0
  3. package/dist/react/app-store-buttons-outline.d.ts +17 -0
  4. package/dist/react/app-store-buttons-outline.js +582 -0
  5. package/dist/react/app-store-buttons-outline.js.map +1 -0
  6. package/dist/react/app-store-buttons.d.ts +20 -0
  7. package/dist/react/app-store-buttons.js +817 -0
  8. package/dist/react/app-store-buttons.js.map +1 -0
  9. package/dist/react/avatar-label-group.d.ts +14 -0
  10. package/dist/react/avatar-label-group.js +183 -0
  11. package/dist/react/avatar-label-group.js.map +1 -0
  12. package/dist/react/avatar-profile-photo.d.ts +9 -0
  13. package/dist/react/avatar-profile-photo.js +202 -0
  14. package/dist/react/avatar-profile-photo.js.map +1 -0
  15. package/dist/react/avatar.d.ts +66 -40
  16. package/dist/react/avatar.js +159 -149
  17. package/dist/react/avatar.js.map +1 -1
  18. package/dist/react/badge-groups.d.ts +25 -0
  19. package/dist/react/badge-groups.js +162 -0
  20. package/dist/react/badge-groups.js.map +1 -0
  21. package/dist/react/badge.d.ts +123 -59
  22. package/dist/react/badge.js +314 -86
  23. package/dist/react/badge.js.map +1 -1
  24. package/dist/react/button-group.d.ts +43 -0
  25. package/dist/react/button-group.js +108 -0
  26. package/dist/react/button-group.js.map +1 -0
  27. package/dist/react/button-utility.d.ts +47 -0
  28. package/dist/react/button-utility.js +158 -0
  29. package/dist/react/button-utility.js.map +1 -0
  30. package/dist/react/button.d.ts +112 -37
  31. package/dist/react/button.js +270 -55
  32. package/dist/react/button.js.map +1 -1
  33. package/dist/react/checkbox.d.ts +25 -8
  34. package/dist/react/checkbox.js +115 -110
  35. package/dist/react/checkbox.js.map +1 -1
  36. package/dist/react/close-button.d.ts +25 -0
  37. package/dist/react/close-button.js +54 -0
  38. package/dist/react/close-button.js.map +1 -0
  39. package/dist/react/combobox.d.ts +18 -0
  40. package/dist/react/combobox.js +574 -0
  41. package/dist/react/combobox.js.map +1 -0
  42. package/dist/react/dialog.d.ts +15 -15
  43. package/dist/react/dialog.js +43 -108
  44. package/dist/react/dialog.js.map +1 -1
  45. package/dist/react/dropdown-account-breadcrumb.d.ts +5 -0
  46. package/dist/react/dropdown-account-breadcrumb.js +481 -0
  47. package/dist/react/dropdown-account-breadcrumb.js.map +1 -0
  48. package/dist/react/dropdown-account-button.d.ts +5 -0
  49. package/dist/react/dropdown-account-button.js +938 -0
  50. package/dist/react/dropdown-account-button.js.map +1 -0
  51. package/dist/react/dropdown-account-card-md.d.ts +5 -0
  52. package/dist/react/dropdown-account-card-md.js +714 -0
  53. package/dist/react/dropdown-account-card-md.js.map +1 -0
  54. package/dist/react/dropdown-account-card-sm.d.ts +5 -0
  55. package/dist/react/dropdown-account-card-sm.js +692 -0
  56. package/dist/react/dropdown-account-card-sm.js.map +1 -0
  57. package/dist/react/dropdown-account-card-xs.d.ts +5 -0
  58. package/dist/react/dropdown-account-card-xs.js +672 -0
  59. package/dist/react/dropdown-account-card-xs.js.map +1 -0
  60. package/dist/react/dropdown-avatar.d.ts +5 -0
  61. package/dist/react/dropdown-avatar.js +955 -0
  62. package/dist/react/dropdown-avatar.js.map +1 -0
  63. package/dist/react/dropdown-button-advanced.d.ts +5 -0
  64. package/dist/react/dropdown-button-advanced.js +964 -0
  65. package/dist/react/dropdown-button-advanced.js.map +1 -0
  66. package/dist/react/dropdown-button-link.d.ts +5 -0
  67. package/dist/react/dropdown-button-link.js +666 -0
  68. package/dist/react/dropdown-button-link.js.map +1 -0
  69. package/dist/react/dropdown-button-simple.d.ts +5 -0
  70. package/dist/react/dropdown-button-simple.js +919 -0
  71. package/dist/react/dropdown-button-simple.js.map +1 -0
  72. package/dist/react/dropdown-icon-advanced.d.ts +5 -0
  73. package/dist/react/dropdown-icon-advanced.js +708 -0
  74. package/dist/react/dropdown-icon-advanced.js.map +1 -0
  75. package/dist/react/dropdown-icon-simple.d.ts +5 -0
  76. package/dist/react/dropdown-icon-simple.js +670 -0
  77. package/dist/react/dropdown-icon-simple.js.map +1 -0
  78. package/dist/react/dropdown-integration.d.ts +5 -0
  79. package/dist/react/dropdown-integration.js +1490 -0
  80. package/dist/react/dropdown-integration.js.map +1 -0
  81. package/dist/react/dropdown-search-advanced.d.ts +5 -0
  82. package/dist/react/dropdown-search-advanced.js +1163 -0
  83. package/dist/react/dropdown-search-advanced.js.map +1 -0
  84. package/dist/react/dropdown-search-simple.d.ts +5 -0
  85. package/dist/react/dropdown-search-simple.js +1125 -0
  86. package/dist/react/dropdown-search-simple.js.map +1 -0
  87. package/dist/react/dropdown.d.ts +35 -133
  88. package/dist/react/dropdown.js +536 -1318
  89. package/dist/react/dropdown.js.map +1 -1
  90. package/dist/react/file-upload-trigger.d.ts +34 -0
  91. package/dist/react/file-upload-trigger.js +39 -0
  92. package/dist/react/file-upload-trigger.js.map +1 -0
  93. package/dist/react/form.d.ts +10 -0
  94. package/dist/react/form.js +11 -0
  95. package/dist/react/form.js.map +1 -0
  96. package/dist/react/hint-text.d.ts +17 -0
  97. package/dist/react/hint-text.js +36 -0
  98. package/dist/react/hint-text.js.map +1 -0
  99. package/dist/react/hook-form.d.ts +35 -0
  100. package/dist/react/hook-form.js +50 -0
  101. package/dist/react/hook-form.js.map +1 -0
  102. package/dist/react/input-date.d.ts +43 -0
  103. package/dist/react/input-date.js +306 -0
  104. package/dist/react/input-date.js.map +1 -0
  105. package/dist/react/input-file.d.ts +45 -0
  106. package/dist/react/input-file.js +748 -0
  107. package/dist/react/input-file.js.map +1 -0
  108. package/dist/react/input-group.d.ts +37 -0
  109. package/dist/react/input-group.js +251 -0
  110. package/dist/react/input-group.js.map +1 -0
  111. package/dist/react/input-number.d.ts +32 -0
  112. package/dist/react/input-number.js +553 -0
  113. package/dist/react/input-number.js.map +1 -0
  114. package/dist/react/input-payment.d.ts +16 -0
  115. package/dist/react/input-payment.js +593 -0
  116. package/dist/react/input-payment.js.map +1 -0
  117. package/dist/react/input-tags-outer.d.ts +53 -0
  118. package/dist/react/input-tags-outer.js +607 -0
  119. package/dist/react/input-tags-outer.js.map +1 -0
  120. package/dist/react/input-tags.d.ts +53 -0
  121. package/dist/react/input-tags.js +565 -0
  122. package/dist/react/input-tags.js.map +1 -0
  123. package/dist/react/input.d.ts +71 -22
  124. package/dist/react/input.js +332 -45
  125. package/dist/react/input.js.map +1 -1
  126. package/dist/react/label.d.ts +18 -0
  127. package/dist/react/label.js +112 -0
  128. package/dist/react/label.js.map +1 -0
  129. package/dist/react/multi-select.d.ts +90 -0
  130. package/dist/react/multi-select.js +1237 -0
  131. package/dist/react/multi-select.js.map +1 -0
  132. package/dist/react/pin-input.d.ts +59 -0
  133. package/dist/react/pin-input.js +229 -0
  134. package/dist/react/pin-input.js.map +1 -0
  135. package/dist/react/popover.d.ts +14 -71
  136. package/dist/react/popover.js +171 -540
  137. package/dist/react/popover.js.map +1 -1
  138. package/dist/react/progress-circle.d.ts +9 -0
  139. package/dist/react/progress-circle.js +36 -0
  140. package/dist/react/progress-circle.js.map +1 -0
  141. package/dist/react/progress-circles.d.ts +14 -0
  142. package/dist/react/progress-circles.js +160 -0
  143. package/dist/react/progress-circles.js.map +1 -0
  144. package/dist/react/progress-indicators.d.ts +52 -0
  145. package/dist/react/progress-indicators.js +78 -0
  146. package/dist/react/progress-indicators.js.map +1 -0
  147. package/dist/react/radio-buttons.d.ts +35 -0
  148. package/dist/react/radio-buttons.js +117 -0
  149. package/dist/react/radio-buttons.js.map +1 -0
  150. package/dist/react/scroll-header.d.ts +6 -0
  151. package/dist/react/scroll-header.js +42 -61
  152. package/dist/react/scroll-header.js.map +1 -1
  153. package/dist/react/scroll-wheel.d.ts +4 -5
  154. package/dist/react/scroll-wheel.js +19 -15
  155. package/dist/react/scroll-wheel.js.map +1 -1
  156. package/dist/react/select-item.d.ts +14 -0
  157. package/dist/react/select-item.js +340 -0
  158. package/dist/react/select-item.js.map +1 -0
  159. package/dist/react/select-native.d.ts +17 -0
  160. package/dist/react/select-native.js +203 -0
  161. package/dist/react/select-native.js.map +1 -0
  162. package/dist/react/select.d.ts +19 -61
  163. package/dist/react/select.js +866 -908
  164. package/dist/react/select.js.map +1 -1
  165. package/dist/react/sheet.d.ts +19 -19
  166. package/dist/react/sheet.js +97 -219
  167. package/dist/react/sheet.js.map +1 -1
  168. package/dist/react/slider.d.ts +15 -0
  169. package/dist/react/slider.js +66 -0
  170. package/dist/react/slider.js.map +1 -0
  171. package/dist/react/social-button.d.ts +55 -0
  172. package/dist/react/social-button.js +263 -0
  173. package/dist/react/social-button.js.map +1 -0
  174. package/dist/react/social-logos.d.ts +20 -0
  175. package/dist/react/social-logos.js +131 -0
  176. package/dist/react/social-logos.js.map +1 -0
  177. package/dist/react/switch.d.ts +21 -36
  178. package/dist/react/switch.js +121 -109
  179. package/dist/react/switch.js.map +1 -1
  180. package/dist/react/tag-select.d.ts +47 -0
  181. package/dist/react/tag-select.js +1252 -0
  182. package/dist/react/tag-select.js.map +1 -0
  183. package/dist/react/tags.d.ts +30 -0
  184. package/dist/react/tags.js +228 -0
  185. package/dist/react/tags.js.map +1 -0
  186. package/dist/react/textarea.d.ts +40 -4
  187. package/dist/react/textarea.js +193 -27
  188. package/dist/react/textarea.js.map +1 -1
  189. package/dist/react/tooltip.d.ts +30 -43
  190. package/dist/react/tooltip.js +65 -521
  191. package/dist/react/tooltip.js.map +1 -1
  192. package/dist/select-mobile-sheet-CB2ptDTJ.d.ts +12 -0
  193. package/dist/select-shared-oJEeJxeB.d.ts +68 -0
  194. package/package.json +28 -21
  195. package/source.css +2 -13
  196. package/theme.css +883 -79
  197. package/dist/react/calendar.d.ts +0 -13
  198. package/dist/react/calendar.js +0 -4639
  199. package/dist/react/calendar.js.map +0 -1
  200. package/dist/react/card.d.ts +0 -11
  201. package/dist/react/card.js +0 -113
  202. package/dist/react/card.js.map +0 -1
  203. package/dist/react/datetime-picker.d.ts +0 -21
  204. package/dist/react/datetime-picker.js +0 -6142
  205. package/dist/react/datetime-picker.js.map +0 -1
  206. package/dist/react/pagination.d.ts +0 -28
  207. package/dist/react/pagination.js +0 -262
  208. package/dist/react/pagination.js.map +0 -1
  209. package/dist/react/table-pagination.d.ts +0 -15
  210. package/dist/react/table-pagination.js +0 -1247
  211. package/dist/react/table-pagination.js.map +0 -1
  212. package/dist/react/table-view/column-menu.d.ts +0 -15
  213. package/dist/react/table-view/column-menu.js +0 -1049
  214. package/dist/react/table-view/column-menu.js.map +0 -1
  215. package/dist/react/table-view/index.d.ts +0 -70
  216. package/dist/react/table-view/index.js +0 -2284
  217. package/dist/react/table-view/index.js.map +0 -1
  218. package/dist/react/table.d.ts +0 -86
  219. package/dist/react/table.js +0 -414
  220. package/dist/react/table.js.map +0 -1
  221. package/dist/react/tabs.d.ts +0 -34
  222. package/dist/react/tabs.js +0 -423
  223. package/dist/react/tabs.js.map +0 -1
  224. package/dist/react/time-picker.d.ts +0 -22
  225. package/dist/react/time-picker.js +0 -856
  226. package/dist/react/time-picker.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../utils/cx.ts","../../../../components/base/avatar/base-components/avatar-online-indicator.tsx","../../../../components/base/avatar/base-components/verified-tick.tsx","../../../../components/base/avatar/base-components/avatar-count.tsx","../../../../components/base/avatar/avatar.tsx","../../../../components/base/checkbox/checkbox.tsx","../../../../utils/is-react-component.ts","../../../../components/base/select/select-shared.tsx","../../../../components/base/select/select-item.tsx"],"names":["jsx","jsxs","sizes","User01","AriaListBoxItem","AriaText","Check"],"mappings":"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","file":"select-item.js","sourcesContent":["import { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n extend: {\n theme: {\n text: [\"display-xs\", \"display-sm\", \"display-md\", \"display-lg\", \"display-xl\", \"display-2xl\"],\n },\n },\n});\n\n/**\n * This function is a wrapper around the twMerge function.\n * It is used to merge the classes inside style objects.\n */\nexport const cx = twMerge;\n\n/**\n * This function does nothing besides helping us to be able to\n * sort the classes inside style objects which is not supported\n * by the Tailwind IntelliSense by default.\n */\nexport function sortCx<T extends Record<string, string | number | Record<string, string | number | Record<string, string | number>>>>(classes: T): T {\n return classes;\n}\n","\"use client\";\n\nimport { cx } from \"@/utils/cx\";\n\nconst sizes = {\n xs: \"size-1.5\",\n sm: \"size-2\",\n md: \"size-2.5\",\n lg: \"size-3\",\n xl: \"size-3.5\",\n \"2xl\": \"size-4\",\n \"3xl\": \"size-4.5\",\n \"4xl\": \"size-5\",\n};\n\ninterface AvatarOnlineIndicatorProps {\n size: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\";\n status: \"online\" | \"offline\";\n className?: string;\n}\n\nexport const AvatarOnlineIndicator = ({ size, status, className }: AvatarOnlineIndicatorProps) => (\n <span\n className={cx(\n \"absolute right-0 bottom-0 flex justify-center rounded-full ring-[1.5px] ring-bg-primary\",\n status === \"online\" ? \"bg-fg-success-secondary\" : \"bg-utility-neutral-300\",\n sizes[size],\n className,\n )}\n style={{\n backgroundImage:\n \"radial-gradient(43.75% 43.75% at 50% 28.75%, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.00) 100%), radial-gradient(50% 50% at 50% 50%, rgba(255, 255, 255, 0.00) 74.66%, rgba(255, 255, 255, 0.18) 100%), radial-gradient(75% 75% at 50% 0%, rgba(255, 255, 255, 0.00) 0%, rgba(255, 255, 255, 0.00) 50%, rgba(255, 255, 255, 0.08) 99%, rgba(255, 255, 255, 0.00) 100%)\",\n }}\n >\n {/* Reflection */}\n <svg viewBox=\"0 0 7.2 2.85\" fill=\"none\" className=\"mt-[10%] h-[20%] w-[60%]\">\n <path\n d=\"M7.2 1.83107C7.2 2.84235 5.58823 2.19729 3.6 2.19729C1.61177 2.19729 0 2.84235 0 1.83107C0 0.8198 1.61177 0 3.6 0C5.58823 0 7.2 0.8198 7.2 1.83107Z\"\n fill=\"url(#reflection-gradient)\"\n fillOpacity=\"0.4\"\n />\n <defs>\n <linearGradient id=\"reflection-gradient\" x1=\"3.6\" y1=\"0\" x2=\"3.6\" y2=\"2.4\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0.1\" />\n </linearGradient>\n </defs>\n </svg>\n </span>\n);\n","\"use client\";\n\nimport { cx } from \"@/utils/cx\";\n\nconst sizes = {\n xs: \"size-2.5\",\n sm: \"size-3\",\n md: \"size-3.5\",\n lg: \"size-4\",\n xl: \"size-4.5\",\n \"2xl\": \"size-5\",\n \"3xl\": \"size-6\",\n \"4xl\": \"size-8\",\n};\n\ninterface VerifiedTickProps {\n size: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\";\n className?: string;\n}\n\nexport const VerifiedTick = ({ size, className }: VerifiedTickProps) => (\n <svg className={cx(\"z-10 text-utility-blue-500\", sizes[size], className)} viewBox=\"0 0 10 10\" fill=\"none\">\n <path\n d=\"M7.72237 1.77098C7.81734 2.00068 7.99965 2.18326 8.2292 2.27858L9.03413 2.61199C9.26384 2.70714 9.44635 2.88965 9.5415 3.11936C9.63665 3.34908 9.63665 3.60718 9.5415 3.83689L9.20833 4.64125C9.11313 4.87106 9.113 5.12943 9.20863 5.35913L9.54122 6.16325C9.58839 6.27702 9.61268 6.39897 9.6127 6.52214C9.61272 6.6453 9.58847 6.76726 9.54134 6.88105C9.4942 6.99484 9.42511 7.09823 9.33801 7.18531C9.2509 7.27238 9.14749 7.34144 9.03369 7.38854L8.22934 7.72171C7.99964 7.81669 7.81706 7.99899 7.72174 8.22855L7.38833 9.03348C7.29318 9.26319 7.11067 9.4457 6.88096 9.54085C6.65124 9.636 6.39314 9.636 6.16343 9.54085L5.35907 9.20767C5.12935 9.11276 4.87134 9.11295 4.64177 9.20821L3.83684 9.54115C3.60725 9.63608 3.34937 9.636 3.11984 9.54092C2.89032 9.44585 2.70791 9.26356 2.6127 9.03409L2.27918 8.22892C2.18421 7.99923 2.0019 7.81665 1.77235 7.72133L0.967421 7.38792C0.737807 7.29281 0.555355 7.11041 0.460169 6.88083C0.364983 6.65125 0.364854 6.39327 0.45981 6.16359L0.792984 5.35924C0.8879 5.12952 0.887707 4.87151 0.792445 4.64193L0.459749 3.83642C0.41258 3.72265 0.388291 3.60069 0.388272 3.47753C0.388252 3.35436 0.412501 3.2324 0.459634 3.11861C0.506767 3.00482 0.57586 2.90144 0.662965 2.81436C0.75007 2.72728 0.853479 2.65822 0.967283 2.61113L1.77164 2.27795C2.00113 2.18306 2.1836 2.00099 2.27899 1.7717L2.6124 0.966768C2.70755 0.737054 2.89006 0.554547 3.11978 0.459397C3.34949 0.364246 3.60759 0.364246 3.83731 0.459397L4.64166 0.792571C4.87138 0.887487 5.12939 0.887293 5.35897 0.792031L6.16424 0.459913C6.39392 0.364816 6.65197 0.364836 6.88164 0.459968C7.11131 0.555099 7.29379 0.737554 7.38895 0.967208L7.72247 1.77238L7.72237 1.77098Z\"\n className=\"fill-current\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.95829 3.68932C7.02509 3.58439 7.04747 3.45723 7.02051 3.3358C6.99356 3.21437 6.91946 3.10862 6.81454 3.04182C6.70961 2.97502 6.58245 2.95264 6.46102 2.97959C6.33959 3.00655 6.23384 3.08064 6.16704 3.18557L4.33141 6.06995L3.49141 5.01995C3.41375 4.92281 3.30069 4.8605 3.17709 4.84673C3.05349 4.83296 2.92949 4.86885 2.83235 4.94651C2.73522 5.02417 2.67291 5.13723 2.65914 5.26083C2.64536 5.38443 2.68125 5.50843 2.75891 5.60557L4.00891 7.16807C4.0555 7.22638 4.11533 7.27271 4.18344 7.30323C4.25154 7.33375 4.32595 7.34757 4.40047 7.34353C4.47499 7.3395 4.54747 7.31773 4.61188 7.28004C4.67629 7.24234 4.73077 7.18981 4.77079 7.12682L6.95829 3.68932Z\"\n fill=\"white\"\n />\n </svg>\n);\n","\"use client\";\n\nimport { cx } from \"@/utils/cx\";\n\ninterface AvatarCountProps {\n count: number;\n className?: string;\n}\n\nexport const AvatarCount = ({ count, className }: AvatarCountProps) => (\n <div className={cx(\"absolute right-0 bottom-0 p-px\", className)}>\n <div className=\"flex size-3.5 items-center justify-center rounded-full bg-fg-error-primary text-center text-[10px] leading-[13px] font-bold text-white\">\n {count}\n </div>\n </div>\n);\n","\"use client\";\n\n/** Figma: Avatar (18:1350) */\n\nimport { type FC, type ReactNode, useState } from \"react\";\nimport { UserIcon as User01 } from \"@phosphor-icons/react/dist/csr/User\";\nimport { cx } from \"@/utils/cx\";\nimport { AvatarOnlineIndicator, VerifiedTick } from \"./base-components\";\nimport { AvatarCount } from \"./base-components/avatar-count\";\n\nexport interface AvatarProps {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n className?: string;\n /**\n * The class name for the main child of the avatar.\n */\n contentClassName?: string;\n src?: string | null;\n alt?: string;\n /**\n * Display an inner contrast border around the avatar image.\n */\n contrastBorder?: boolean;\n /**\n * Whether the avatar should be rounded.\n * @default true\n */\n rounded?: boolean;\n /**\n * Display an outer border around the avatar.\n */\n border?: boolean;\n /**\n * Display a badge (i.e. company logo).\n */\n badge?: ReactNode;\n /**\n * Display a status indicator.\n */\n status?: \"online\" | \"offline\";\n /**\n * Display a verified tick icon.\n *\n * @default false\n */\n verified?: boolean;\n /**\n * Display a count badge.\n */\n count?: number;\n /**\n * The initials of the user to display if no image is available.\n */\n initials?: string;\n /**\n * An icon to display if no image is available.\n */\n placeholderIcon?: FC<{ className?: string }>;\n /**\n * A placeholder to display if no image is available.\n */\n placeholder?: ReactNode;\n\n /**\n * Whether the avatar should show a focus ring when the parent group is in focus.\n * For example, when the avatar is wrapped inside a link.\n *\n * @default false\n */\n focusable?: boolean;\n}\n\nconst styles = {\n xs: { root: \"size-6\", rootWithBorder: \"p-px\", initials: \"text-xs font-semibold\", icon: \"size-4\" },\n sm: { root: \"size-8\", rootWithBorder: \"p-px\", initials: \"text-sm font-semibold\", icon: \"size-5\" },\n md: { root: \"size-10\", rootWithBorder: \"p-px\", initials: \"text-md font-semibold\", icon: \"size-6\" },\n lg: { root: \"size-12\", rootWithBorder: \"p-[1.5px]\", initials: \"text-lg font-semibold\", icon: \"size-7\" },\n xl: { root: \"size-14\", rootWithBorder: \"p-0.5\", initials: \"text-xl font-semibold\", icon: \"size-8\" },\n \"2xl\": { root: \"size-16\", rootWithBorder: \"p-0.5\", initials: \"text-display-xs font-semibold\", icon: \"size-8\" },\n};\n\nexport const Avatar = ({\n size = \"md\",\n src,\n alt,\n initials,\n placeholder,\n placeholderIcon: PlaceholderIcon,\n border,\n badge,\n status,\n verified,\n count,\n focusable = false,\n rounded = true,\n className,\n contentClassName,\n}: AvatarProps) => {\n const [isFailed, setIsFailed] = useState(false);\n\n const canShowImage = src && !isFailed;\n\n const renderMainContent = () => {\n if (canShowImage) {\n return <img data-avatar-img className=\"size-full object-cover\" src={src} alt={alt} onError={() => setIsFailed(true)} />;\n }\n\n if (initials) {\n return <span className={cx(\"text-quaternary\", styles[size].initials)}>{initials}</span>;\n }\n\n if (PlaceholderIcon) {\n return <PlaceholderIcon className={cx(\"text-fg-quaternary\", styles[size].icon)} />;\n }\n\n return placeholder || <User01 className={cx(\"text-fg-quaternary\", styles[size].icon)} />;\n };\n\n const renderBadgeContent = () => {\n if (status) {\n return <AvatarOnlineIndicator status={status} size={size} />;\n }\n\n if (verified) {\n return <VerifiedTick size={size} className={cx(\"absolute right-0 bottom-0\", size === \"xs\" && \"-right-px -bottom-px\")} />;\n }\n\n if (count) {\n return <AvatarCount count={count} />;\n }\n\n return badge;\n };\n\n return (\n <div\n data-avatar\n className={cx(\n \"relative inline-flex shrink-0 rounded-[7px]\",\n rounded && \"rounded-full\",\n // Focus styles\n focusable &&\n \"outline-none group-focus-visible:[box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]\",\n border && \"ring-1 ring-secondary_alt\",\n border && styles[size].rootWithBorder,\n styles[size].root,\n className,\n )}\n >\n <div\n className={cx(\n \"relative inline-flex size-full shrink-0 items-center justify-center overflow-hidden rounded-md bg-tertiary outline-[0.5px] -outline-offset-[0.5px] outline-black/16 before:inset-[0.5px]\",\n rounded && \"rounded-full\",\n canShowImage &&\n size !== \"xs\" &&\n \"before:absolute before:inset-0 before:rounded-[inherit] before:border before:border-white/32 before:mask-[linear-gradient(to_bottom,black_0%,transparent_25%,transparent_75%,black_100%)]\",\n contentClassName,\n )}\n >\n {renderMainContent()}\n </div>\n {renderBadgeContent()}\n </div>\n );\n};\n","\"use client\";\n\nimport { useLayoutEffect, useRef, type ReactNode, type Ref } from \"react\";\nimport { Checkbox as AriaCheckbox, type CheckboxProps as AriaCheckboxProps } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\nconst CHECKBOX_TICK_DELAY_MS = 60;\nconst CHECKBOX_TICK_DRAW_MS = 100;\n\n/** Draw-on-check tick animation — remounts when checked so it replays each time. */\nfunction CheckboxAnimatedCheckMark({ pixelSize, className }: { pixelSize: number; className?: string }) {\n const pathRef = useRef<SVGPathElement>(null);\n\n useLayoutEffect(() => {\n const path = pathRef.current;\n if (!path || typeof path.getTotalLength !== \"function\") return;\n const len = path.getTotalLength();\n if (len <= 0) return;\n\n path.style.strokeDasharray = `${len}`;\n path.style.strokeDashoffset = `${len}`;\n\n if (typeof path.animate !== \"function\") {\n path.style.strokeDashoffset = \"0\";\n return;\n }\n\n const anim = path.animate([{ strokeDashoffset: len }, { strokeDashoffset: 0 }], {\n duration: CHECKBOX_TICK_DRAW_MS,\n delay: CHECKBOX_TICK_DELAY_MS,\n easing: \"cubic-bezier(0.45, 0, 0.2, 1)\",\n fill: \"forwards\",\n });\n return () => anim.cancel();\n }, []);\n\n return (\n <svg aria-hidden=\"true\" width={pixelSize} height={pixelSize} viewBox=\"0 0 14 14\" fill=\"none\" className={cx(\"block\", className)}>\n <path\n ref={pathRef}\n d=\"M2.33325 7L5.24992 9.91667L11.6666 3.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\n/** Figma Focus rings/focus-ring — 2px surface gap + 4px brand ring (matches Button). */\nconst focusRingShadow =\n \"outline-none [box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]\";\n\nexport interface CheckboxBaseProps {\n size?: \"sm\" | \"md\";\n className?: string;\n isFocusVisible?: boolean;\n isSelected?: boolean;\n isDisabled?: boolean;\n isIndeterminate?: boolean;\n}\n\nexport const CheckboxBase = ({ className, isSelected, isDisabled, isIndeterminate, size = \"sm\", isFocusVisible = false }: CheckboxBaseProps) => {\n const isChecked = isSelected || isIndeterminate;\n const iconPixelSize = size === \"sm\" ? 10 : 14;\n\n return (\n <div\n className={cx(\n \"relative flex shrink-0 cursor-pointer appearance-none items-center justify-center overflow-clip border border-solid border-primary\",\n size === \"sm\" ? \"size-4 rounded-xs\" : \"size-5 rounded-sm\",\n isChecked ? \"border-transparent bg-brand-solid\" : \"bg-primary\",\n !isChecked && !isDisabled && \"group-hover:bg-primary_hover\",\n isDisabled && \"cursor-not-allowed opacity-50\",\n isDisabled && !isChecked && \"bg-tertiary\",\n isFocusVisible && !isDisabled && focusRingShadow,\n className,\n )}\n >\n {isIndeterminate && (\n <svg\n aria-hidden=\"true\"\n width={iconPixelSize}\n height={iconPixelSize}\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n className=\"pointer-events-none block text-fg-white\"\n >\n <path d=\"M2.91675 7H11.0834\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n\n {isSelected && !isIndeterminate && (\n <CheckboxAnimatedCheckMark pixelSize={iconPixelSize} className=\"pointer-events-none text-fg-white\" />\n )}\n </div>\n );\n};\nCheckboxBase.displayName = \"CheckboxBase\";\n\ninterface CheckboxProps extends AriaCheckboxProps {\n ref?: Ref<HTMLLabelElement>;\n size?: \"sm\" | \"md\";\n label?: ReactNode;\n hint?: ReactNode;\n}\n\nexport const Checkbox = ({ label, hint, size = \"sm\", className, ...ariaCheckboxProps }: CheckboxProps) => {\n const sizes = {\n sm: {\n root: \"gap-2\",\n textWrapper: \"\",\n label: \"text-sm font-medium\",\n hint: \"text-sm\",\n },\n md: {\n root: \"gap-3\",\n textWrapper: \"gap-0.5 break-words\",\n label: \"text-md font-medium\",\n hint: \"text-md\",\n },\n };\n\n return (\n <AriaCheckbox\n {...ariaCheckboxProps}\n className={(state) =>\n cx(\n \"group relative flex items-start\",\n state.isDisabled && \"cursor-not-allowed\",\n sizes[size].root,\n typeof className === \"function\" ? className(state) : className,\n )\n }\n >\n {({ isSelected, isIndeterminate, isDisabled, isFocusVisible }) => (\n <>\n <CheckboxBase\n size={size}\n isSelected={isSelected}\n isIndeterminate={isIndeterminate}\n isDisabled={isDisabled}\n isFocusVisible={isFocusVisible}\n className={label || hint ? \"mt-0.5\" : \"\"}\n />\n {(label || hint) && (\n <div className={cx(\"inline-flex flex-col\", sizes[size].textWrapper)}>\n {label && <p className={cx(\"text-secondary select-none\", sizes[size].label)}>{label}</p>}\n {hint && (\n <span className={cx(\"text-tertiary\", sizes[size].hint)} onClick={(event) => event.stopPropagation()}>\n {hint}\n </span>\n )}\n </div>\n )}\n </>\n )}\n </AriaCheckbox>\n );\n};\nCheckbox.displayName = \"Checkbox\";\n","/* We cannot use type `unknown` instead of `any` here because it will break the type assertion `isReactComponent` function is providing. */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type React from \"react\";\n\ntype ReactComponent = React.FC<any> | React.ComponentClass<any, any>;\n\n/**\n * Checks if a given value is a function component.\n */\nexport const isFunctionComponent = (component: any): component is React.FC<any> => {\n return typeof component === \"function\";\n};\n\n/**\n * Checks if a given value is a class component.\n */\nexport const isClassComponent = (component: any): component is React.ComponentClass<any, any> => {\n return typeof component === \"function\" && component.prototype && (!!component.prototype.isReactComponent || !!component.prototype.render);\n};\n\n/**\n * Checks if a given value is a forward ref component.\n */\nexport const isForwardRefComponent = (component: any): component is React.ForwardRefExoticComponent<any> => {\n return typeof component === \"object\" && component !== null && component.$$typeof.toString() === \"Symbol(react.forward_ref)\";\n};\n\n/**\n * Checks if a given value is a valid React component.\n */\nexport const isReactComponent = (component: any): component is ReactComponent => {\n return isFunctionComponent(component) || isForwardRefComponent(component) || isClassComponent(component);\n};\n","\"use client\";\n\nimport type { FC, ReactNode } from \"react\";\nimport { createContext } from \"react\";\nimport type { SelectMobileOptions } from \"./select-mobile-sheet\";\n\nexport type SelectItemType = {\n /** Unique identifier for the item. */\n id: string | number;\n /** The primary display text. */\n label?: string;\n /** Avatar image URL. */\n avatarUrl?: string;\n /** Whether the item is disabled. */\n isDisabled?: boolean;\n /** Secondary text displayed alongside the label. */\n supportingText?: string;\n /** Leading icon component or element. */\n icon?: FC | ReactNode;\n};\n\nexport interface CommonProps {\n /** Helper text displayed below the input. */\n hint?: string;\n /** Field label displayed above the input. */\n label?: string;\n /** Tooltip text for the help icon next to the label. */\n tooltip?: string;\n /**\n * The size of the component.\n * @default \"md\"\n */\n size?: \"sm\" | \"md\" | \"lg\";\n /** Placeholder text when no value is selected. */\n placeholder?: string;\n /** Whether to hide the required indicator from the label. */\n hideRequiredIndicator?: boolean;\n /**\n * Narrow-viewport (≤1024px) bottom-sheet options for the menu.\n * `sheet` defaults to `true` on viewports ≤1024px wide.\n */\n mobileOptions?: SelectMobileOptions;\n}\n\nexport const sizes = {\n sm: {\n root: \"py-2 pl-3 pr-2.5 gap-2 *:data-icon:size-4 *:data-icon:stroke-[2.25px]\",\n withIcon: \"\",\n text: \"text-sm\",\n textContainer: \"gap-x-1.5\",\n shortcut: \"pr-2.5\",\n },\n md: { root: \"py-2 px-3 gap-2 *:data-icon:size-5\", withIcon: \"\", text: \"text-md\", textContainer: \"gap-x-1.5\", shortcut: \"pr-2.5\" },\n lg: { root: \"py-2.5 px-3.5 gap-2 *:data-icon:size-5\", withIcon: \"\", text: \"text-md\", textContainer: \"gap-x-1.5\", shortcut: \"pr-3\" },\n};\n\n/** Shared search-field layout for multi-select and combo box mobile sheets. */\nexport const searchSizes = {\n sm: { wrapper: \"py-1\", root: \"px-3 py-2 gap-2 *:data-icon:size-4 *:data-icon:stroke-[2.25px]\", text: \"text-sm\" },\n md: { wrapper: \"py-0.5\", root: \"px-3 py-2 gap-2 *:data-icon:size-5\", text: \"text-md\" },\n lg: { wrapper: \"py-0.5\", root: \"px-3.5 py-2.5 gap-2 *:data-icon:size-5\", text: \"text-md\" },\n};\n\nexport const SelectContext = createContext<{ size: \"sm\" | \"md\" | \"lg\" }>({ size: \"md\" });\n\nexport type { SelectMobileOptions } from \"./select-mobile-sheet\";\n","\"use client\";\n\n/** Figma: Select item (11132:11643) — selected uses bg-brand-primary_alt; hover/focus use bg-primary_hover. */\n\nimport { isValidElement, useContext } from \"react\";\nimport { CheckIcon as Check } from \"@phosphor-icons/react/dist/csr/Check\";\nimport type { ListBoxItemProps as AriaListBoxItemProps } from \"react-aria-components\";\nimport { ListBoxItem as AriaListBoxItem, Text as AriaText } from \"react-aria-components\";\nimport { Avatar } from \"@/components/base/avatar/avatar\";\nimport { CheckboxBase } from \"@/components/base/checkbox/checkbox\";\nimport { cx } from \"@/utils/cx\";\nimport { isReactComponent } from \"@/utils/is-react-component\";\nimport type { SelectItemType } from \"./select-shared\";\nimport { SelectContext } from \"./select-shared\";\n\nconst sizes = {\n sm: {\n root: \"p-2 pr-2.5 gap-2 *:data-icon:size-4 *:data-icon:stroke-[2.25px]\",\n text: \"text-sm\",\n textContainer: \"gap-x-1.5\",\n check: \"size-4 stroke-[2.25px]\",\n checkbox: \"sm\" as const,\n },\n md: {\n root: \"p-2 pr-2.5 gap-2 *:data-icon:size-5\",\n text: \"text-md\",\n textContainer: \"gap-x-2\",\n check: \"size-5\",\n checkbox: \"sm\" as const,\n },\n lg: {\n root: \"p-2.5 pl-2 gap-2 *:data-icon:size-5\",\n text: \"text-md\",\n textContainer: \"gap-x-2\",\n check: \"size-5\",\n checkbox: \"md\" as const,\n },\n};\n\ninterface SelectItemProps extends Omit<AriaListBoxItemProps<SelectItemType>, \"id\">, SelectItemType {\n /** The selection indicator to be displayed on the item. */\n selectionIndicator?: \"checkmark\" | \"checkbox\" | \"none\";\n /** The alignment of the selection indicator. */\n selectionIndicatorAlign?: \"left\" | \"right\";\n}\n\nexport const SelectItem = ({\n label,\n id,\n value,\n avatarUrl,\n supportingText,\n isDisabled,\n icon: Icon,\n className,\n children,\n selectionIndicator = \"checkmark\",\n selectionIndicatorAlign = \"right\",\n ...props\n}: SelectItemProps) => {\n const { size } = useContext(SelectContext);\n\n const labelOrChildren = label || (typeof children === \"string\" ? children : \"\");\n const textValue = supportingText ? labelOrChildren + \" \" + supportingText : labelOrChildren;\n\n const isLeft = selectionIndicatorAlign === \"left\";\n\n return (\n <AriaListBoxItem\n id={id}\n value={\n value ?? {\n id,\n label: labelOrChildren,\n avatarUrl,\n supportingText,\n isDisabled,\n icon: Icon,\n }\n }\n textValue={textValue}\n isDisabled={isDisabled}\n {...props}\n className={(state) =>\n cx(\"w-full py-px outline-hidden\", size === \"sm\" ? \"px-1\" : \"px-1.5\", typeof className === \"function\" ? className(state) : className)\n }\n >\n {(state) => (\n <div\n className={cx(\n \"flex cursor-pointer items-center rounded-md outline-hidden select-none\",\n (state.isFocused || state.isHovered) &&\n !(state.isSelected && selectionIndicator !== \"checkbox\") &&\n \"bg-primary_hover\",\n state.isSelected && selectionIndicator !== \"checkbox\" && \"bg-brand-primary_alt\",\n state.isDisabled && \"cursor-not-allowed opacity-50\",\n\n // Icon styles\n \"*:data-icon:shrink-0 *:data-icon:text-fg-quaternary\",\n\n sizes[size].root,\n )}\n >\n {isLeft && selectionIndicator === \"checkbox\" && (\n <CheckboxBase size={sizes[size].checkbox} isSelected={state.isSelected} isDisabled={state.isDisabled} />\n )}\n\n {avatarUrl ? (\n <Avatar aria-hidden=\"true\" size=\"xs\" src={avatarUrl} alt={label} className={cx(size === \"sm\" && \"size-5\")} />\n ) : isReactComponent(Icon) ? (\n <Icon data-icon aria-hidden=\"true\" />\n ) : isValidElement(Icon) ? (\n Icon\n ) : null}\n\n <div className={cx(\"flex w-full min-w-0 flex-1 flex-wrap\", sizes[size].textContainer)}>\n <AriaText slot=\"label\" className={cx(\"truncate font-medium whitespace-nowrap text-primary\", sizes[size].text)}>\n {label || (typeof children === \"function\" ? children(state) : children)}\n </AriaText>\n\n {supportingText && (\n <AriaText slot=\"description\" className={cx(\"whitespace-nowrap text-tertiary\", sizes[size].text)}>\n {supportingText}\n </AriaText>\n )}\n </div>\n\n {state.isSelected && selectionIndicator === \"checkmark\" && (\n <Check aria-hidden=\"true\" className={cx(\"ml-auto text-fg-brand-primary\", sizes[size].check)} />\n )}\n\n {!isLeft && selectionIndicator === \"checkbox\" && (\n <CheckboxBase size={sizes[size].checkbox} isSelected={state.isSelected} isDisabled={state.isDisabled} className=\"ml-auto\" />\n )}\n </div>\n )}\n </AriaListBoxItem>\n );\n};\n"]}
@@ -0,0 +1,17 @@
1
+ import * as react from 'react';
2
+ import { SelectHTMLAttributes } from 'react';
3
+
4
+ interface NativeSelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "size"> {
5
+ label?: string;
6
+ hint?: string;
7
+ selectClassName?: string;
8
+ size?: "sm" | "md" | "lg";
9
+ options: {
10
+ label: string;
11
+ value: string;
12
+ disabled?: boolean;
13
+ }[];
14
+ }
15
+ declare const NativeSelect: ({ label, hint, options, className, selectClassName, size, ...props }: NativeSelectProps) => react.JSX.Element;
16
+
17
+ export { NativeSelect };
@@ -0,0 +1,203 @@
1
+ import { useId } from 'react';
2
+ import { CaretDownIcon } from '@phosphor-icons/react/dist/csr/CaretDown';
3
+ import { Label as Label$1, Text, TooltipTrigger as TooltipTrigger$1, Tooltip as Tooltip$1, OverlayArrow, Button } from 'react-aria-components';
4
+ import { extendTailwindMerge } from 'tailwind-merge';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+ import { QuestionIcon } from '@phosphor-icons/react/dist/csr/Question';
7
+
8
+ var twMerge = extendTailwindMerge({
9
+ extend: {
10
+ theme: {
11
+ text: ["display-xs", "display-sm", "display-md", "display-lg", "display-xl", "display-2xl"]
12
+ }
13
+ }
14
+ });
15
+ var cx = twMerge;
16
+ var HintText = ({ isInvalid, className, size = "md", ...props }) => {
17
+ return /* @__PURE__ */ jsx(
18
+ Text,
19
+ {
20
+ ...props,
21
+ slot: isInvalid ? "errorMessage" : "description",
22
+ className: cx(
23
+ "text-sm text-tertiary",
24
+ // Size
25
+ size === "sm" && "text-xs",
26
+ "in-data-[input-size=sm]:text-xs",
27
+ // Invalid state
28
+ isInvalid && "text-error-primary",
29
+ "group-invalid:text-error-primary",
30
+ className
31
+ )
32
+ }
33
+ );
34
+ };
35
+ HintText.displayName = "HintText";
36
+ var Tooltip = ({
37
+ title,
38
+ description,
39
+ children,
40
+ arrow = false,
41
+ delay = 100,
42
+ closeDelay = 0,
43
+ trigger,
44
+ isDisabled,
45
+ isOpen,
46
+ defaultOpen,
47
+ offset = 6,
48
+ crossOffset,
49
+ placement = "top",
50
+ onOpenChange,
51
+ ...tooltipProps
52
+ }) => {
53
+ const isTopOrBottomLeft = ["top left", "top end", "bottom left", "bottom end"].includes(placement);
54
+ const isTopOrBottomRight = ["top right", "top start", "bottom right", "bottom start"].includes(placement);
55
+ const calculatedCrossOffset = isTopOrBottomLeft ? -12 : isTopOrBottomRight ? 12 : 0;
56
+ return /* @__PURE__ */ jsxs(TooltipTrigger$1, { ...{ trigger, delay, closeDelay, isDisabled, isOpen, defaultOpen, onOpenChange }, children: [
57
+ children,
58
+ /* @__PURE__ */ jsx(
59
+ Tooltip$1,
60
+ {
61
+ ...tooltipProps,
62
+ offset,
63
+ placement,
64
+ crossOffset: crossOffset ?? calculatedCrossOffset,
65
+ className: ({ isEntering, isExiting }) => cx(isEntering && "ease-out animate-in", isExiting && "ease-in animate-out"),
66
+ children: ({ isEntering, isExiting }) => /* @__PURE__ */ jsxs(
67
+ "div",
68
+ {
69
+ className: cx(
70
+ "z-50 flex max-w-xs origin-(--trigger-anchor-point) flex-col items-start gap-1 rounded-lg bg-primary-solid px-3 shadow-lg will-change-transform",
71
+ description ? "py-3" : "py-2",
72
+ isEntering && "ease-out animate-in fade-in zoom-in-95 in-placement-left:slide-in-from-right-0.5 in-placement-right:slide-in-from-left-0.5 in-placement-top:slide-in-from-bottom-0.5 in-placement-bottom:slide-in-from-top-0.5",
73
+ isExiting && "ease-in animate-out fade-out zoom-out-95 in-placement-left:slide-out-to-right-0.5 in-placement-right:slide-out-to-left-0.5 in-placement-top:slide-out-to-bottom-0.5 in-placement-bottom:slide-out-to-top-0.5"
74
+ ),
75
+ children: [
76
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-white", children: title }),
77
+ description && /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-tooltip-supporting-text", children: description }),
78
+ arrow && /* @__PURE__ */ jsx(OverlayArrow, { children: /* @__PURE__ */ jsx(
79
+ "svg",
80
+ {
81
+ viewBox: "0 0 100 100",
82
+ className: "size-2.5 fill-bg-primary-solid in-placement-left:-rotate-90 in-placement-right:rotate-90 in-placement-top:rotate-0 in-placement-bottom:rotate-180",
83
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L35.858,35.858 Q50,50 64.142,35.858 L100,0 Z" })
84
+ }
85
+ ) })
86
+ ]
87
+ }
88
+ )
89
+ }
90
+ )
91
+ ] });
92
+ };
93
+ var TooltipTrigger = ({ children, className, ...buttonProps }) => {
94
+ return /* @__PURE__ */ jsx(Button, { ...buttonProps, className: (values) => cx("h-max w-max outline-hidden", typeof className === "function" ? className(values) : className), children });
95
+ };
96
+ var Label = ({ isInvalid, isRequired, tooltip, tooltipDescription, className, ...props }) => {
97
+ return /* @__PURE__ */ jsxs(
98
+ Label$1,
99
+ {
100
+ "data-label": "true",
101
+ ...props,
102
+ className: cx("flex cursor-default items-center gap-0.5 text-sm font-medium text-secondary", className),
103
+ children: [
104
+ props.children,
105
+ /* @__PURE__ */ jsx(
106
+ "span",
107
+ {
108
+ className: cx(
109
+ "hidden text-brand-tertiary",
110
+ isRequired && "block",
111
+ typeof isRequired === "undefined" && "group-required:block",
112
+ isInvalid && "text-error-primary",
113
+ typeof isInvalid === "undefined" && "group-invalid:text-error-primary"
114
+ ),
115
+ children: "*"
116
+ }
117
+ ),
118
+ tooltip && /* @__PURE__ */ jsx(Tooltip, { title: tooltip, description: tooltipDescription, placement: "top", children: /* @__PURE__ */ jsx(
119
+ TooltipTrigger,
120
+ {
121
+ isDisabled: false,
122
+ className: "cursor-pointer text-fg-quaternary transition duration-200 hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover",
123
+ children: /* @__PURE__ */ jsx(QuestionIcon, { className: "size-4" })
124
+ }
125
+ ) })
126
+ ]
127
+ }
128
+ );
129
+ };
130
+ Label.displayName = "Label";
131
+ var styles = {
132
+ sm: {
133
+ root: "py-2 pl-3 text-sm",
134
+ icon: "size-4 right-2.5 stroke-[2.25px]"
135
+ },
136
+ md: {
137
+ root: "py-2 pl-3 text-md",
138
+ icon: "size-4 stroke-[2.25px] right-3"
139
+ },
140
+ lg: {
141
+ root: "py-2.5 px-3.5 text-md",
142
+ icon: "size-5 right-3"
143
+ }
144
+ };
145
+ var NativeSelect = ({ label, hint, options, className, selectClassName, size = "md", ...props }) => {
146
+ const id = useId();
147
+ const selectId = `select-native-${id}`;
148
+ const hintId = `select-native-hint-${id}`;
149
+ return /* @__PURE__ */ jsxs("div", { className: cx("w-full in-data-input-wrapper:w-max", className), children: [
150
+ label && /* @__PURE__ */ jsx(Label, { htmlFor: selectId, id: selectId, className: "mb-1.5", children: label }),
151
+ /* @__PURE__ */ jsxs("div", { className: "relative grid w-full in-data-input-wrapper:w-max items-center", children: [
152
+ /* @__PURE__ */ jsx(
153
+ "select",
154
+ {
155
+ ...props,
156
+ id: selectId,
157
+ "aria-describedby": hintId,
158
+ "aria-labelledby": selectId,
159
+ className: cx(
160
+ "appearance-none rounded-lg border border-solid border-primary bg-primary font-medium text-primary shadow-xs outline-hidden transition-[border-color,box-shadow] duration-100 ease-linear placeholder:text-fg-quaternary disabled:cursor-not-allowed disabled:opacity-50",
161
+ "focus-visible:outline-none focus-visible:border-brand focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-brand",
162
+ "aria-invalid:border-error_subtle aria-invalid:focus-visible:border-error aria-invalid:focus-visible:ring-1 aria-invalid:focus-visible:ring-inset aria-invalid:focus-visible:ring-error",
163
+ styles[size].root,
164
+ // Inside InputGroup — no own border/focus; outer shell owns stroke (Figma leading dropdown)
165
+ "in-data-input-wrapper:border-0 in-data-input-wrapper:bg-transparent in-data-input-wrapper:shadow-none",
166
+ "in-data-input-wrapper:focus-visible:border-0 in-data-input-wrapper:focus-visible:ring-0",
167
+ "in-data-input-wrapper:aria-invalid:border-0 in-data-input-wrapper:aria-invalid:ring-0 in-data-input-wrapper:group-invalid:border-0 in-data-input-wrapper:group-invalid:ring-0",
168
+ "in-data-input-wrapper:h-full in-data-input-wrapper:font-normal in-data-input-wrapper:text-tertiary in-data-input-wrapper:in-data-[size=sm]:text-sm",
169
+ // Styles for the select when `TextField` is disabled
170
+ "in-data-input-wrapper:group-disabled:pointer-events-none in-data-input-wrapper:group-disabled:cursor-not-allowed in-data-input-wrapper:group-disabled:bg-transparent",
171
+ // Common styles for sizes within `InputGroup`
172
+ "in-data-input-wrapper:in-data-[input-size=lg]:py-2.5 in-data-input-wrapper:in-data-[input-size=md]:py-2 in-data-input-wrapper:in-data-[input-size=sm]:text-sm",
173
+ // Leading dropdown — flush with text field, no separator; pr reserves space for chevron
174
+ "in-data-input-wrapper:in-data-leading:rounded-none in-data-input-wrapper:in-data-leading:pl-3 in-data-input-wrapper:in-data-leading:pr-7 in-data-input-wrapper:in-data-leading:in-data-[input-size=lg]:pl-3.5 in-data-input-wrapper:in-data-leading:in-data-[input-size=lg]:pr-8 in-data-input-wrapper:in-data-leading:in-data-[input-size=sm]:pl-3 in-data-input-wrapper:in-data-leading:in-data-[input-size=sm]:pr-6.5",
175
+ // Trailing dropdown
176
+ "in-data-input-wrapper:in-data-trailing:rounded-none in-data-input-wrapper:in-data-trailing:in-data-[input-size=lg]:pr-8 in-data-input-wrapper:in-data-trailing:in-data-[input-size=md]:pr-7.5 in-data-input-wrapper:in-data-trailing:in-data-[input-size=sm]:pr-6.5",
177
+ selectClassName
178
+ ),
179
+ children: options.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value))
180
+ }
181
+ ),
182
+ /* @__PURE__ */ jsx(
183
+ CaretDownIcon,
184
+ {
185
+ "aria-hidden": "true",
186
+ className: cx(
187
+ "pointer-events-none absolute text-fg-quaternary",
188
+ styles[size].icon,
189
+ // Inside InputGroup — chevron sits on the dropdown segment only
190
+ "in-data-input-wrapper:size-4 in-data-input-wrapper:stroke-[2.625px]",
191
+ "in-data-input-wrapper:in-data-leading:right-2.5 in-data-input-wrapper:in-data-leading:in-data-[input-size=sm]:right-2 in-data-input-wrapper:in-data-leading:in-data-[input-size=lg]:right-3",
192
+ "in-data-input-wrapper:in-data-trailing:right-3 in-data-input-wrapper:in-data-trailing:in-data-[input-size=sm]:right-3"
193
+ )
194
+ }
195
+ )
196
+ ] }),
197
+ hint && /* @__PURE__ */ jsx(HintText, { className: "mt-2", id: hintId, children: hint })
198
+ ] });
199
+ };
200
+
201
+ export { NativeSelect };
202
+ //# sourceMappingURL=select-native.js.map
203
+ //# sourceMappingURL=select-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../utils/cx.ts","../../../../components/base/input/hint-text.tsx","../../../../components/base/tooltip/tooltip.tsx","../../../../components/base/input/label.tsx","../../../../components/base/select/select-native.tsx"],"names":["AriaText","AriaTooltipTrigger","jsx","AriaTooltip","AriaOverlayArrow","AriaButton","jsxs","AriaLabel","HelpCircle","ChevronDown"],"mappings":";;;;;;;AAEA,IAAM,UAAU,mBAAA,CAAoB;AAAA,EAChC,MAAA,EAAQ;AAAA,IACJ,KAAA,EAAO;AAAA,MACH,MAAM,CAAC,YAAA,EAAc,cAAc,YAAA,EAAc,YAAA,EAAc,cAAc,aAAa;AAAA;AAC9F;AAER,CAAC,CAAA;AAMM,IAAM,EAAA,GAAK,OAAA;ACCX,IAAM,QAAA,GAAW,CAAC,EAAE,SAAA,EAAW,WAAW,IAAA,GAAO,IAAA,EAAM,GAAG,KAAA,EAAM,KAAqB;AACxF,EAAA,uBACI,GAAA;AAAA,IAACA,IAAA;AAAA,IAAA;AAAA,MACI,GAAG,KAAA;AAAA,MACJ,IAAA,EAAM,YAAY,cAAA,GAAiB,aAAA;AAAA,MACnC,SAAA,EAAW,EAAA;AAAA,QACP,uBAAA;AAAA;AAAA,QAGA,SAAS,IAAA,IAAQ,SAAA;AAAA,QACjB,iCAAA;AAAA;AAAA,QAGA,SAAA,IAAa,oBAAA;AAAA,QACb,kCAAA;AAAA,QAEA;AAAA;AACJ;AAAA,GACJ;AAER,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;ACDhB,IAAM,UAAU,CAAC;AAAA,EACpB,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,KAAA,GAAQ,GAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb,OAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA,GAAS,CAAA;AAAA,EACT,WAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,YAAA;AAAA,EACA,GAAG;AACP,CAAA,KAAoB;AAChB,EAAA,MAAM,iBAAA,GAAoB,CAAC,UAAA,EAAY,SAAA,EAAW,eAAe,YAAY,CAAA,CAAE,SAAS,SAAS,CAAA;AACjG,EAAA,MAAM,kBAAA,GAAqB,CAAC,WAAA,EAAa,WAAA,EAAa,gBAAgB,cAAc,CAAA,CAAE,SAAS,SAAS,CAAA;AAExG,EAAA,MAAM,qBAAA,GAAwB,iBAAA,GAAoB,GAAA,GAAM,kBAAA,GAAqB,EAAA,GAAK,CAAA;AAElF,EAAA,uBACI,IAAA,CAACC,gBAAA,EAAA,EAAoB,GAAG,EAAE,OAAA,EAAS,KAAA,EAAO,UAAA,EAAY,UAAA,EAAY,MAAA,EAAQ,WAAA,EAAa,YAAA,EAAa,EAC/F,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,oBAEDC,GAAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACI,GAAG,YAAA;AAAA,QACJ,MAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAa,WAAA,IAAe,qBAAA;AAAA,QAC5B,SAAA,EAAW,CAAC,EAAE,UAAA,EAAY,SAAA,OAAgB,EAAA,CAAG,UAAA,IAAc,qBAAA,EAAuB,SAAA,IAAa,qBAAqB,CAAA;AAAA,QAEnH,QAAA,EAAA,CAAC,EAAE,UAAA,EAAY,SAAA,EAAU,qBACtB,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACG,SAAA,EAAW,EAAA;AAAA,cACP,gJAAA;AAAA,cACA,cAAc,MAAA,GAAS,MAAA;AAAA,cAEvB,UAAA,IACI,gNAAA;AAAA,cACJ,SAAA,IACI;AAAA,aACR;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,cAEzD,+BAAeA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oDAAoD,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,cAE/F,KAAA,oBACGA,GAAAA,CAACE,YAAA,EAAA,EACG,QAAA,kBAAAF,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACG,OAAA,EAAQ,aAAA;AAAA,kBACR,SAAA,EAAU,mJAAA;AAAA,kBAEV,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mDAAA,EAAoD;AAAA;AAAA,eAChE,EACJ;AAAA;AAAA;AAAA;AAER;AAAA;AAER,GAAA,EACJ,CAAA;AAER,CAAA;AAIO,IAAM,iBAAiB,CAAC,EAAE,UAAU,SAAA,EAAW,GAAG,aAAY,KAA2B;AAC5F,EAAA,uBACIA,GAAAA,CAACG,MAAA,EAAA,EAAY,GAAG,WAAA,EAAa,SAAA,EAAW,CAAC,MAAA,KAAW,EAAA,CAAG,4BAAA,EAA8B,OAAO,cAAc,UAAA,GAAa,SAAA,CAAU,MAAM,CAAA,GAAI,SAAS,GAC/I,QAAA,EACL,CAAA;AAER,CAAA;AC5FO,IAAM,KAAA,GAAQ,CAAC,EAAE,SAAA,EAAW,UAAA,EAAY,SAAS,kBAAA,EAAoB,SAAA,EAAW,GAAG,KAAA,EAAM,KAAkB;AAC9G,EAAA,uBACIC,IAAAA;AAAA,IAACC,OAAA;AAAA,IAAA;AAAA,MAKG,YAAA,EAAW,MAAA;AAAA,MACV,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,EAAA,CAAG,6EAAA,EAA+E,SAAS,CAAA;AAAA,MAErG,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,QAAA;AAAA,wBAEPL,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACG,SAAA,EAAW,EAAA;AAAA,cACP,4BAAA;AAAA,cACA,UAAA,IAAc,OAAA;AAAA,cACd,OAAO,eAAe,WAAA,IAAe,sBAAA;AAAA,cAErC,SAAA,IAAa,oBAAA;AAAA,cACb,OAAO,cAAc,WAAA,IAAe;AAAA,aACxC;AAAA,YACH,QAAA,EAAA;AAAA;AAAA,SAED;AAAA,QAEC,OAAA,oBACGA,GAAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,SAAS,WAAA,EAAa,kBAAA,EAAoB,SAAA,EAAU,KAAA,EAChE,QAAA,kBAAAA,GAAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YAIG,UAAA,EAAY,KAAA;AAAA,YACZ,SAAA,EAAU,yHAAA;AAAA,YAEV,QAAA,kBAAAA,GAAAA,CAACM,YAAA,EAAA,EAAW,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC,EACJ;AAAA;AAAA;AAAA,GAER;AAER,CAAA;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AC3CpB,IAAM,MAAA,GAAS;AAAA,EACX,EAAA,EAAI;AAAA,IACA,IAAA,EAAM,mBAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACV;AAAA,EACA,EAAA,EAAI;AAAA,IACA,IAAA,EAAM,mBAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACV;AAAA,EACA,EAAA,EAAI;AAAA,IACA,IAAA,EAAM,uBAAA;AAAA,IACN,IAAA,EAAM;AAAA;AAEd,CAAA;AAEO,IAAM,YAAA,GAAe,CAAC,EAAE,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,SAAA,EAAW,eAAA,EAAiB,IAAA,GAAO,IAAA,EAAM,GAAG,KAAA,EAAM,KAAyB;AAC5H,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,QAAA,GAAW,iBAAiB,EAAE,CAAA,CAAA;AACpC,EAAA,MAAM,MAAA,GAAS,sBAAsB,EAAE,CAAA,CAAA;AAEvC,EAAA,uBACIF,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAC7D,QAAA,EAAA;AAAA,IAAA,KAAA,oBACGJ,IAAC,KAAA,EAAA,EAAM,OAAA,EAAS,UAAU,EAAA,EAAI,QAAA,EAAU,SAAA,EAAU,QAAA,EAC7C,QAAA,EAAA,KAAA,EACL,CAAA;AAAA,oBAGJI,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+DAAA,EACX,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACI,GAAG,KAAA;AAAA,UACJ,EAAA,EAAI,QAAA;AAAA,UACJ,kBAAA,EAAkB,MAAA;AAAA,UAClB,iBAAA,EAAiB,QAAA;AAAA,UACjB,SAAA,EAAW,EAAA;AAAA,YACP,yQAAA;AAAA,YACA,8HAAA;AAAA,YACA,wLAAA;AAAA,YAEA,MAAA,CAAO,IAAI,CAAA,CAAE,IAAA;AAAA;AAAA,YAGb,uGAAA;AAAA,YACA,yFAAA;AAAA,YACA,+KAAA;AAAA,YACA,oJAAA;AAAA;AAAA,YAEA,sKAAA;AAAA;AAAA,YAEA,+JAAA;AAAA;AAAA,YAEA,0ZAAA;AAAA;AAAA,YAEA,qQAAA;AAAA,YACA;AAAA,WACJ;AAAA,UAEC,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAA,qBACVA,GAAAA,CAAC,QAAA,EAAA,EAAuB,KAAA,EAAO,GAAA,CAAI,KAAA,EAC9B,QAAA,EAAA,GAAA,CAAI,KAAA,EAAA,EADI,GAAA,CAAI,KAEjB,CACH;AAAA;AAAA,OACL;AAAA,sBAEAA,GAAAA;AAAA,QAACO,aAAA;AAAA,QAAA;AAAA,UACG,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAW,EAAA;AAAA,YACP,iDAAA;AAAA,YAEA,MAAA,CAAO,IAAI,CAAA,CAAE,IAAA;AAAA;AAAA,YAEb,qEAAA;AAAA,YACA,6LAAA;AAAA,YACA;AAAA;AACJ;AAAA;AACJ,KAAA,EACJ,CAAA;AAAA,IAEC,IAAA,oBACGP,GAAAA,CAAC,QAAA,EAAA,EAAS,WAAU,MAAA,EAAO,EAAA,EAAI,QAC1B,QAAA,EAAA,IAAA,EACL;AAAA,GAAA,EAER,CAAA;AAER","file":"select-native.js","sourcesContent":["import { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n extend: {\n theme: {\n text: [\"display-xs\", \"display-sm\", \"display-md\", \"display-lg\", \"display-xl\", \"display-2xl\"],\n },\n },\n});\n\n/**\n * This function is a wrapper around the twMerge function.\n * It is used to merge the classes inside style objects.\n */\nexport const cx = twMerge;\n\n/**\n * This function does nothing besides helping us to be able to\n * sort the classes inside style objects which is not supported\n * by the Tailwind IntelliSense by default.\n */\nexport function sortCx<T extends Record<string, string | number | Record<string, string | number | Record<string, string | number>>>>(classes: T): T {\n return classes;\n}\n","\"use client\";\n\nimport type { ReactNode, Ref } from \"react\";\nimport type { TextProps as AriaTextProps } from \"react-aria-components\";\nimport { Text as AriaText } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\ninterface HintTextProps extends AriaTextProps {\n /** Indicates that the hint text is an error message. */\n isInvalid?: boolean;\n ref?: Ref<HTMLElement>;\n size?: \"sm\" | \"md\";\n children: ReactNode;\n}\n\nexport const HintText = ({ isInvalid, className, size = \"md\", ...props }: HintTextProps) => {\n return (\n <AriaText\n {...props}\n slot={isInvalid ? \"errorMessage\" : \"description\"}\n className={cx(\n \"text-sm text-tertiary\",\n\n // Size\n size === \"sm\" && \"text-xs\",\n \"in-data-[input-size=sm]:text-xs\",\n\n // Invalid state\n isInvalid && \"text-error-primary\",\n \"group-invalid:text-error-primary\",\n\n className,\n )}\n />\n );\n};\n\nHintText.displayName = \"HintText\";\n","\"use client\";\n\n/** Figma: Tooltip (1052:485) */\n\nimport type { ReactNode } from \"react\";\nimport type {\n ButtonProps as AriaButtonProps,\n TooltipProps as AriaTooltipProps,\n TooltipTriggerComponentProps as AriaTooltipTriggerComponentProps,\n} from \"react-aria-components\";\nimport { Button as AriaButton, OverlayArrow as AriaOverlayArrow, Tooltip as AriaTooltip, TooltipTrigger as AriaTooltipTrigger } from \"react-aria-components\";\nimport { cx } from \"@/utils/cx\";\n\ninterface TooltipProps extends AriaTooltipTriggerComponentProps, Omit<AriaTooltipProps, \"children\"> {\n /**\n * The title of the tooltip.\n */\n title: ReactNode;\n /**\n * The description of the tooltip.\n */\n description?: ReactNode;\n /**\n * Whether to show the arrow on the tooltip.\n *\n * @default false\n */\n arrow?: boolean;\n /**\n * Delay in milliseconds before the tooltip is shown on first hover.\n *\n * @default 100\n */\n delay?: number;\n}\n\nexport const Tooltip = ({\n title,\n description,\n children,\n arrow = false,\n delay = 100,\n closeDelay = 0,\n trigger,\n isDisabled,\n isOpen,\n defaultOpen,\n offset = 6,\n crossOffset,\n placement = \"top\",\n onOpenChange,\n ...tooltipProps\n}: TooltipProps) => {\n const isTopOrBottomLeft = [\"top left\", \"top end\", \"bottom left\", \"bottom end\"].includes(placement);\n const isTopOrBottomRight = [\"top right\", \"top start\", \"bottom right\", \"bottom start\"].includes(placement);\n // Set negative cross offset for left and right placement to visually balance the tooltip.\n const calculatedCrossOffset = isTopOrBottomLeft ? -12 : isTopOrBottomRight ? 12 : 0;\n\n return (\n <AriaTooltipTrigger {...{ trigger, delay, closeDelay, isDisabled, isOpen, defaultOpen, onOpenChange }}>\n {children}\n\n <AriaTooltip\n {...tooltipProps}\n offset={offset}\n placement={placement}\n crossOffset={crossOffset ?? calculatedCrossOffset}\n className={({ isEntering, isExiting }) => cx(isEntering && \"ease-out animate-in\", isExiting && \"ease-in animate-out\")}\n >\n {({ isEntering, isExiting }) => (\n <div\n className={cx(\n \"z-50 flex max-w-xs origin-(--trigger-anchor-point) flex-col items-start gap-1 rounded-lg bg-primary-solid px-3 shadow-lg will-change-transform\",\n description ? \"py-3\" : \"py-2\",\n\n isEntering &&\n \"ease-out animate-in fade-in zoom-in-95 in-placement-left:slide-in-from-right-0.5 in-placement-right:slide-in-from-left-0.5 in-placement-top:slide-in-from-bottom-0.5 in-placement-bottom:slide-in-from-top-0.5\",\n isExiting &&\n \"ease-in animate-out fade-out zoom-out-95 in-placement-left:slide-out-to-right-0.5 in-placement-right:slide-out-to-left-0.5 in-placement-top:slide-out-to-bottom-0.5 in-placement-bottom:slide-out-to-top-0.5\",\n )}\n >\n <span className=\"text-xs font-semibold text-white\">{title}</span>\n\n {description && <span className=\"text-xs font-medium text-tooltip-supporting-text\">{description}</span>}\n\n {arrow && (\n <AriaOverlayArrow>\n <svg\n viewBox=\"0 0 100 100\"\n className=\"size-2.5 fill-bg-primary-solid in-placement-left:-rotate-90 in-placement-right:rotate-90 in-placement-top:rotate-0 in-placement-bottom:rotate-180\"\n >\n <path d=\"M0,0 L35.858,35.858 Q50,50 64.142,35.858 L100,0 Z\" />\n </svg>\n </AriaOverlayArrow>\n )}\n </div>\n )}\n </AriaTooltip>\n </AriaTooltipTrigger>\n );\n};\n\ninterface TooltipTriggerProps extends AriaButtonProps {}\n\nexport const TooltipTrigger = ({ children, className, ...buttonProps }: TooltipTriggerProps) => {\n return (\n <AriaButton {...buttonProps} className={(values) => cx(\"h-max w-max outline-hidden\", typeof className === \"function\" ? className(values) : className)}>\n {children}\n </AriaButton>\n );\n};\n","\"use client\";\n\nimport type { ReactNode, Ref } from \"react\";\nimport { QuestionIcon as HelpCircle } from \"@phosphor-icons/react/dist/csr/Question\";\nimport type { LabelProps as AriaLabelProps } from \"react-aria-components\";\nimport { Label as AriaLabel } from \"react-aria-components\";\nimport { Tooltip, TooltipTrigger } from \"@/components/base/tooltip/tooltip\";\nimport { cx } from \"@/utils/cx\";\n\ninterface LabelProps extends AriaLabelProps {\n children: ReactNode;\n isInvalid?: boolean;\n isRequired?: boolean;\n tooltip?: string;\n tooltipDescription?: string;\n ref?: Ref<HTMLLabelElement>;\n}\n\nexport const Label = ({ isInvalid, isRequired, tooltip, tooltipDescription, className, ...props }: LabelProps) => {\n return (\n <AriaLabel\n // Used for conditionally hiding/showing the label element via CSS:\n // <Input label=\"Visible only on mobile\" className=\"lg:**:data-label:hidden\" />\n // or\n // <Input label=\"Visible only on mobile\" className=\"lg:label:hidden\" />\n data-label=\"true\"\n {...props}\n className={cx(\"flex cursor-default items-center gap-0.5 text-sm font-medium text-secondary\", className)}\n >\n {props.children}\n\n <span\n className={cx(\n \"hidden text-brand-tertiary\",\n isRequired && \"block\",\n typeof isRequired === \"undefined\" && \"group-required:block\",\n\n isInvalid && \"text-error-primary\",\n typeof isInvalid === \"undefined\" && \"group-invalid:text-error-primary\",\n )}\n >\n *\n </span>\n\n {tooltip && (\n <Tooltip title={tooltip} description={tooltipDescription} placement=\"top\">\n <TooltipTrigger\n // `TooltipTrigger` inherits the disabled state from the parent form field\n // but we don't that. We want the tooltip be enabled even if the parent\n // field is disabled.\n isDisabled={false}\n className=\"cursor-pointer text-fg-quaternary transition duration-200 hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover\"\n >\n <HelpCircle className=\"size-4\" />\n </TooltipTrigger>\n </Tooltip>\n )}\n </AriaLabel>\n );\n};\n\nLabel.displayName = \"Label\";\n","\"use client\";\n\n/** Figma: Native select (11132:11643) */\n\nimport { type SelectHTMLAttributes, useId } from \"react\";\nimport { CaretDownIcon as ChevronDown } from \"@phosphor-icons/react/dist/csr/CaretDown\";\nimport { HintText } from \"@/components/base/input/hint-text\";\nimport { Label } from \"@/components/base/input/label\";\nimport { cx } from \"@/utils/cx\";\n\ninterface NativeSelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, \"size\"> {\n label?: string;\n hint?: string;\n selectClassName?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n options: { label: string; value: string; disabled?: boolean }[];\n}\n\nconst styles = {\n sm: {\n root: \"py-2 pl-3 text-sm\",\n icon: \"size-4 right-2.5 stroke-[2.25px]\",\n },\n md: {\n root: \"py-2 pl-3 text-md\",\n icon: \"size-4 stroke-[2.25px] right-3\",\n },\n lg: {\n root: \"py-2.5 px-3.5 text-md\",\n icon: \"size-5 right-3\",\n },\n};\n\nexport const NativeSelect = ({ label, hint, options, className, selectClassName, size = \"md\", ...props }: NativeSelectProps) => {\n const id = useId();\n const selectId = `select-native-${id}`;\n const hintId = `select-native-hint-${id}`;\n\n return (\n <div className={cx(\"w-full in-data-input-wrapper:w-max\", className)}>\n {label && (\n <Label htmlFor={selectId} id={selectId} className=\"mb-1.5\">\n {label}\n </Label>\n )}\n\n <div className=\"relative grid w-full in-data-input-wrapper:w-max items-center\">\n <select\n {...props}\n id={selectId}\n aria-describedby={hintId}\n aria-labelledby={selectId}\n className={cx(\n \"appearance-none rounded-lg border border-solid border-primary bg-primary font-medium text-primary shadow-xs outline-hidden transition-[border-color,box-shadow] duration-100 ease-linear placeholder:text-fg-quaternary disabled:cursor-not-allowed disabled:opacity-50\",\n \"focus-visible:outline-none focus-visible:border-brand focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-brand\",\n \"aria-invalid:border-error_subtle aria-invalid:focus-visible:border-error aria-invalid:focus-visible:ring-1 aria-invalid:focus-visible:ring-inset aria-invalid:focus-visible:ring-error\",\n\n styles[size].root,\n\n // Inside InputGroup — no own border/focus; outer shell owns stroke (Figma leading dropdown)\n \"in-data-input-wrapper:border-0 in-data-input-wrapper:bg-transparent in-data-input-wrapper:shadow-none\",\n \"in-data-input-wrapper:focus-visible:border-0 in-data-input-wrapper:focus-visible:ring-0\",\n \"in-data-input-wrapper:aria-invalid:border-0 in-data-input-wrapper:aria-invalid:ring-0 in-data-input-wrapper:group-invalid:border-0 in-data-input-wrapper:group-invalid:ring-0\",\n \"in-data-input-wrapper:h-full in-data-input-wrapper:font-normal in-data-input-wrapper:text-tertiary in-data-input-wrapper:in-data-[size=sm]:text-sm\",\n // Styles for the select when `TextField` is disabled\n \"in-data-input-wrapper:group-disabled:pointer-events-none in-data-input-wrapper:group-disabled:cursor-not-allowed in-data-input-wrapper:group-disabled:bg-transparent\",\n // Common styles for sizes within `InputGroup`\n \"in-data-input-wrapper:in-data-[input-size=lg]:py-2.5 in-data-input-wrapper:in-data-[input-size=md]:py-2 in-data-input-wrapper:in-data-[input-size=sm]:text-sm\",\n // Leading dropdown — flush with text field, no separator; pr reserves space for chevron\n \"in-data-input-wrapper:in-data-leading:rounded-none in-data-input-wrapper:in-data-leading:pl-3 in-data-input-wrapper:in-data-leading:pr-7 in-data-input-wrapper:in-data-leading:in-data-[input-size=lg]:pl-3.5 in-data-input-wrapper:in-data-leading:in-data-[input-size=lg]:pr-8 in-data-input-wrapper:in-data-leading:in-data-[input-size=sm]:pl-3 in-data-input-wrapper:in-data-leading:in-data-[input-size=sm]:pr-6.5\",\n // Trailing dropdown\n \"in-data-input-wrapper:in-data-trailing:rounded-none in-data-input-wrapper:in-data-trailing:in-data-[input-size=lg]:pr-8 in-data-input-wrapper:in-data-trailing:in-data-[input-size=md]:pr-7.5 in-data-input-wrapper:in-data-trailing:in-data-[input-size=sm]:pr-6.5\",\n selectClassName,\n )}\n >\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n\n <ChevronDown\n aria-hidden=\"true\"\n className={cx(\n \"pointer-events-none absolute text-fg-quaternary\",\n\n styles[size].icon,\n // Inside InputGroup — chevron sits on the dropdown segment only\n \"in-data-input-wrapper:size-4 in-data-input-wrapper:stroke-[2.625px]\",\n \"in-data-input-wrapper:in-data-leading:right-2.5 in-data-input-wrapper:in-data-leading:in-data-[input-size=sm]:right-2 in-data-input-wrapper:in-data-leading:in-data-[input-size=lg]:right-3\",\n \"in-data-input-wrapper:in-data-trailing:right-3 in-data-input-wrapper:in-data-trailing:in-data-[input-size=sm]:right-3\",\n )}\n />\n </div>\n\n {hint && (\n <HintText className=\"mt-2\" id={hintId}>\n {hint}\n </HintText>\n )}\n </div>\n );\n};\n"]}
@@ -1,64 +1,22 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import { ChevronDown } from 'lucide-react';
4
- import { ButtonProps } from './button.js';
1
+ import * as react from 'react';
2
+ import { RefAttributes, FC, ReactNode } from 'react';
3
+ import { SelectProps as SelectProps$1 } from 'react-aria-components';
4
+ import { ComboBox } from './combobox.js';
5
+ import { SelectItem } from './select-item.js';
6
+ import { S as SelectItemType, C as CommonProps } from '../select-shared-oJEeJxeB.js';
7
+ export { a as SelectContext, s as sizes } from '../select-shared-oJEeJxeB.js';
8
+ export { S as SelectMobileOptions } from '../select-mobile-sheet-CB2ptDTJ.js';
5
9
 
6
- type Side = "top" | "bottom" | "left" | "right";
7
- type Align = "start" | "center" | "end";
8
- type SelectProps = {
9
- children: React.ReactNode;
10
- className?: string;
11
- value?: string;
12
- defaultValue?: string;
13
- onValueChange?: (v: string) => void;
14
- /** native `<select>`; default `false` — custom trigger + list / sheet. */
15
- native?: boolean;
16
- disabled?: boolean;
17
- name?: string;
18
- id?: string;
19
- placeholder?: string;
20
- open?: boolean;
21
- onOpenChange?: (open: boolean) => void;
10
+ interface SelectProps extends Omit<SelectProps$1<SelectItemType>, "children" | "items">, RefAttributes<HTMLDivElement>, CommonProps {
11
+ items?: SelectItemType[];
12
+ popoverClassName?: string;
13
+ icon?: FC | ReactNode;
14
+ children: ReactNode | ((item: SelectItemType) => ReactNode);
15
+ }
16
+ declare const Select: ({ placeholder, icon, size, children, items, label, hint, tooltip, hideRequiredIndicator, mobileOptions, className, ...rest }: SelectProps) => react.JSX.Element;
17
+ declare const _Select: typeof Select & {
18
+ ComboBox: typeof ComboBox;
19
+ Item: typeof SelectItem;
22
20
  };
23
- declare const Select: ({ children, className, value: valueProp, defaultValue, onValueChange, native: nativeProp, disabled, name, id: idAttr, placeholder, open: openProp, onOpenChange, }: SelectProps) => react_jsx_runtime.JSX.Element;
24
- type SelectMobileSheetOptions = {
25
- sheet?: boolean;
26
- title?: string;
27
- className?: string;
28
- contentClassName?: string;
29
- };
30
- type SelectContentProps = React.HTMLAttributes<HTMLDivElement> & {
31
- side?: Side;
32
- align?: Align;
33
- offset?: number;
34
- duration?: number;
35
- viewportPadding?: number;
36
- closeOnEscape?: boolean;
37
- minWidth?: number | "trigger";
38
- loop?: boolean;
39
- /** Type characters to jump to matching options (default true). */
40
- typeahead?: boolean;
41
- mobileOptions?: SelectMobileSheetOptions;
42
- slideEntrance?: boolean;
43
- slideEntranceOffsetPx?: number;
44
- };
45
- declare const SelectContent: React.FC<SelectContentProps>;
46
- type SelectTriggerProps = Omit<ButtonProps, "type"> & {
47
- asChild?: boolean;
48
- };
49
- declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
50
- declare const SelectChevron: React.FC<React.ComponentProps<typeof ChevronDown>>;
51
- declare const SelectValue: React.FC<{
52
- placeholder?: string;
53
- className?: string;
54
- }>;
55
- type SelectItemProps = React.HTMLAttributes<HTMLDivElement> & {
56
- value: string;
57
- children: React.ReactNode;
58
- disabled?: boolean;
59
- shortcut?: string;
60
- onClick?: React.MouseEventHandler<HTMLDivElement>;
61
- };
62
- declare const SelectItem: React.FC<SelectItemProps>;
63
21
 
64
- export { Select, SelectChevron, SelectContent, type SelectContentProps, SelectItem, type SelectItemProps, type SelectMobileSheetOptions, type SelectProps, SelectTrigger, type SelectTriggerProps, SelectValue };
22
+ export { CommonProps, _Select as Select, SelectItemType, type SelectProps };