@etus/ui 0.4.0-beta.17 → 0.4.0-beta.18

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 (264) hide show
  1. package/dist/{chunk-U6EOAIPK.js → chunk-2X35C55E.js} +3 -3
  2. package/dist/chunk-2X35C55E.js.map +1 -0
  3. package/dist/{chunk-UYC7M3FM.js → chunk-34WNJNPL.js} +5 -5
  4. package/dist/{chunk-UYC7M3FM.js.map → chunk-34WNJNPL.js.map} +1 -1
  5. package/dist/{chunk-N4UTBJRY.js → chunk-3NHH7VPI.js} +3 -3
  6. package/dist/{chunk-N4UTBJRY.js.map → chunk-3NHH7VPI.js.map} +1 -1
  7. package/dist/{chunk-OEXQ2MOY.js → chunk-45YJLE4R.js} +3 -3
  8. package/dist/{chunk-OEXQ2MOY.js.map → chunk-45YJLE4R.js.map} +1 -1
  9. package/dist/{chunk-66TBTTZO.js → chunk-46SUPGQV.js} +14 -14
  10. package/dist/chunk-46SUPGQV.js.map +1 -0
  11. package/dist/{chunk-3W7FXRO5.js → chunk-56TC4CPT.js} +4 -4
  12. package/dist/{chunk-3W7FXRO5.js.map → chunk-56TC4CPT.js.map} +1 -1
  13. package/dist/{chunk-NCT5WXKG.js → chunk-5ACHKT35.js} +3 -3
  14. package/dist/{chunk-NCT5WXKG.js.map → chunk-5ACHKT35.js.map} +1 -1
  15. package/dist/{chunk-GGUWEAYD.js → chunk-5E44I7PB.js} +3 -3
  16. package/dist/{chunk-GGUWEAYD.js.map → chunk-5E44I7PB.js.map} +1 -1
  17. package/dist/{chunk-T6XRYT6Q.js → chunk-5K2SOCOX.js} +3 -3
  18. package/dist/{chunk-T6XRYT6Q.js.map → chunk-5K2SOCOX.js.map} +1 -1
  19. package/dist/{chunk-VT4IMHGE.js → chunk-5TABQJDW.js} +4 -4
  20. package/dist/chunk-5TABQJDW.js.map +1 -0
  21. package/dist/{chunk-4GVOOXYD.js → chunk-6ABGMOE2.js} +5 -5
  22. package/dist/chunk-6ABGMOE2.js.map +1 -0
  23. package/dist/{chunk-Q43KJP5A.js → chunk-6F5NWXZF.js} +7 -7
  24. package/dist/{chunk-Q43KJP5A.js.map → chunk-6F5NWXZF.js.map} +1 -1
  25. package/dist/{chunk-4RSHPKHB.js → chunk-6KMRMXR6.js} +3 -3
  26. package/dist/{chunk-4RSHPKHB.js.map → chunk-6KMRMXR6.js.map} +1 -1
  27. package/dist/{chunk-7J5OM4ZD.js → chunk-7CMOCWFX.js} +4 -4
  28. package/dist/{chunk-7J5OM4ZD.js.map → chunk-7CMOCWFX.js.map} +1 -1
  29. package/dist/{chunk-G7PBPX3K.js → chunk-7VGF6ZVE.js} +4 -4
  30. package/dist/{chunk-G7PBPX3K.js.map → chunk-7VGF6ZVE.js.map} +1 -1
  31. package/dist/{chunk-E2TI5V67.js → chunk-A4O3USMA.js} +3 -3
  32. package/dist/{chunk-E2TI5V67.js.map → chunk-A4O3USMA.js.map} +1 -1
  33. package/dist/{chunk-UPK5B2FL.js → chunk-AKRVZ2YW.js} +6 -6
  34. package/dist/chunk-AKRVZ2YW.js.map +1 -0
  35. package/dist/{chunk-VBJ26PZJ.js → chunk-AP3T3KMY.js} +3 -3
  36. package/dist/{chunk-VBJ26PZJ.js.map → chunk-AP3T3KMY.js.map} +1 -1
  37. package/dist/{chunk-X3AXEE3S.js → chunk-AR7K7Y4L.js} +3 -3
  38. package/dist/{chunk-X3AXEE3S.js.map → chunk-AR7K7Y4L.js.map} +1 -1
  39. package/dist/{chunk-WKWLKGNI.js → chunk-ARYBNQNS.js} +4 -4
  40. package/dist/chunk-ARYBNQNS.js.map +1 -0
  41. package/dist/{chunk-P27ERD6W.js → chunk-B2OCNHUW.js} +8 -8
  42. package/dist/{chunk-P27ERD6W.js.map → chunk-B2OCNHUW.js.map} +1 -1
  43. package/dist/{chunk-3NLWCX2F.js → chunk-DI3AISAZ.js} +3 -3
  44. package/dist/{chunk-3NLWCX2F.js.map → chunk-DI3AISAZ.js.map} +1 -1
  45. package/dist/{chunk-W3JVNX35.js → chunk-DSCLJ3GK.js} +4 -4
  46. package/dist/{chunk-W3JVNX35.js.map → chunk-DSCLJ3GK.js.map} +1 -1
  47. package/dist/{chunk-3KOLK3OB.js → chunk-EC5YEK3C.js} +3 -3
  48. package/dist/{chunk-3KOLK3OB.js.map → chunk-EC5YEK3C.js.map} +1 -1
  49. package/dist/{chunk-YUHPTV2A.js → chunk-EDSDAX56.js} +3 -3
  50. package/dist/{chunk-YUHPTV2A.js.map → chunk-EDSDAX56.js.map} +1 -1
  51. package/dist/{chunk-IRIIK3BU.js → chunk-F4EX3622.js} +10 -10
  52. package/dist/chunk-F4EX3622.js.map +1 -0
  53. package/dist/{chunk-XYYOV5GW.js → chunk-F5X2BBGU.js} +4 -4
  54. package/dist/{chunk-XYYOV5GW.js.map → chunk-F5X2BBGU.js.map} +1 -1
  55. package/dist/{chunk-BS5XDYOE.js → chunk-FLERVSKG.js} +5 -5
  56. package/dist/{chunk-BS5XDYOE.js.map → chunk-FLERVSKG.js.map} +1 -1
  57. package/dist/{chunk-TAZPML2P.js → chunk-G2CMEHW6.js} +3 -3
  58. package/dist/{chunk-TAZPML2P.js.map → chunk-G2CMEHW6.js.map} +1 -1
  59. package/dist/{chunk-TQBUBD3E.js → chunk-H7JHFBFD.js} +3 -3
  60. package/dist/{chunk-TQBUBD3E.js.map → chunk-H7JHFBFD.js.map} +1 -1
  61. package/dist/{chunk-Y4RKKQMB.js → chunk-HA5YVDHW.js} +3 -3
  62. package/dist/chunk-HA5YVDHW.js.map +1 -0
  63. package/dist/{chunk-ZKK7L7H7.js → chunk-HP7LEQJR.js} +3 -3
  64. package/dist/{chunk-ZKK7L7H7.js.map → chunk-HP7LEQJR.js.map} +1 -1
  65. package/dist/{chunk-W7S7GPU5.js → chunk-HV2ZZXFN.js} +4 -4
  66. package/dist/{chunk-W7S7GPU5.js.map → chunk-HV2ZZXFN.js.map} +1 -1
  67. package/dist/{chunk-K45MMHLA.js → chunk-HVFACGNK.js} +4 -4
  68. package/dist/{chunk-K45MMHLA.js.map → chunk-HVFACGNK.js.map} +1 -1
  69. package/dist/{chunk-R3HUGCGR.js → chunk-HZ47LQFJ.js} +4 -4
  70. package/dist/{chunk-R3HUGCGR.js.map → chunk-HZ47LQFJ.js.map} +1 -1
  71. package/dist/{chunk-4KOJTZVU.js → chunk-IA24GUNV.js} +25 -25
  72. package/dist/chunk-IA24GUNV.js.map +1 -0
  73. package/dist/{chunk-D6TH3EGA.js → chunk-IQKKPOI7.js} +4 -4
  74. package/dist/{chunk-D6TH3EGA.js.map → chunk-IQKKPOI7.js.map} +1 -1
  75. package/dist/{chunk-WXBC3D2N.js → chunk-IRFAIJLV.js} +4 -4
  76. package/dist/{chunk-WXBC3D2N.js.map → chunk-IRFAIJLV.js.map} +1 -1
  77. package/dist/{chunk-SXPBKGLT.js → chunk-J62NPPDO.js} +3 -3
  78. package/dist/{chunk-SXPBKGLT.js.map → chunk-J62NPPDO.js.map} +1 -1
  79. package/dist/{chunk-TNDW52VZ.js → chunk-JDG5A44W.js} +20 -13
  80. package/dist/chunk-JDG5A44W.js.map +1 -0
  81. package/dist/{chunk-Z4KW5VW6.js → chunk-JRVUEOKT.js} +5 -5
  82. package/dist/{chunk-Z4KW5VW6.js.map → chunk-JRVUEOKT.js.map} +1 -1
  83. package/dist/{chunk-NXQ25PKF.js → chunk-K43MPWTO.js} +7 -7
  84. package/dist/chunk-K43MPWTO.js.map +1 -0
  85. package/dist/{chunk-2ROFZG3A.js → chunk-KA7747GR.js} +3 -3
  86. package/dist/{chunk-2ROFZG3A.js.map → chunk-KA7747GR.js.map} +1 -1
  87. package/dist/{chunk-OBRJXVWO.js → chunk-KYURFRCH.js} +4 -4
  88. package/dist/{chunk-OBRJXVWO.js.map → chunk-KYURFRCH.js.map} +1 -1
  89. package/dist/{chunk-EYSTEGV5.js → chunk-LR56MGWT.js} +7 -7
  90. package/dist/{chunk-EYSTEGV5.js.map → chunk-LR56MGWT.js.map} +1 -1
  91. package/dist/{chunk-6ZAMTPGN.js → chunk-M6VBDPNQ.js} +3 -3
  92. package/dist/{chunk-6ZAMTPGN.js.map → chunk-M6VBDPNQ.js.map} +1 -1
  93. package/dist/{chunk-JPA2VQRW.js → chunk-MAM5PTRV.js} +3 -3
  94. package/dist/{chunk-JPA2VQRW.js.map → chunk-MAM5PTRV.js.map} +1 -1
  95. package/dist/{chunk-3L5G7VI2.js → chunk-MAM6VUKD.js} +3 -3
  96. package/dist/chunk-MAM6VUKD.js.map +1 -0
  97. package/dist/{chunk-LLI3JFJL.js → chunk-MLSIZ6JU.js} +4 -4
  98. package/dist/{chunk-LLI3JFJL.js.map → chunk-MLSIZ6JU.js.map} +1 -1
  99. package/dist/{chunk-U2R47SPY.js → chunk-NULX3RRN.js} +4 -4
  100. package/dist/{chunk-U2R47SPY.js.map → chunk-NULX3RRN.js.map} +1 -1
  101. package/dist/{chunk-GL56KIFL.js → chunk-OG3M4CMJ.js} +3 -3
  102. package/dist/{chunk-GL56KIFL.js.map → chunk-OG3M4CMJ.js.map} +1 -1
  103. package/dist/{chunk-7EGN7IGY.js → chunk-OR3NPCY2.js} +3 -3
  104. package/dist/{chunk-7EGN7IGY.js.map → chunk-OR3NPCY2.js.map} +1 -1
  105. package/dist/{chunk-5I7AXWJU.js → chunk-PGRMKSVA.js} +4 -4
  106. package/dist/{chunk-5I7AXWJU.js.map → chunk-PGRMKSVA.js.map} +1 -1
  107. package/dist/{chunk-VZZ3HP7G.js → chunk-PM344VOQ.js} +3 -3
  108. package/dist/{chunk-VZZ3HP7G.js.map → chunk-PM344VOQ.js.map} +1 -1
  109. package/dist/{chunk-46ESMCEQ.js → chunk-QBLU7J34.js} +5 -5
  110. package/dist/chunk-QBLU7J34.js.map +1 -0
  111. package/dist/{chunk-U74PNG4S.js → chunk-SMVH56FQ.js} +3 -3
  112. package/dist/{chunk-U74PNG4S.js.map → chunk-SMVH56FQ.js.map} +1 -1
  113. package/dist/{chunk-DYDXGWH2.js → chunk-T3LWBCVR.js} +4 -4
  114. package/dist/chunk-T3LWBCVR.js.map +1 -0
  115. package/dist/{chunk-ZP4HYVDG.js → chunk-TA4HCLP3.js} +3 -3
  116. package/dist/{chunk-ZP4HYVDG.js.map → chunk-TA4HCLP3.js.map} +1 -1
  117. package/dist/{chunk-7HT32DZG.js → chunk-TGLALXPU.js} +3 -3
  118. package/dist/{chunk-7HT32DZG.js.map → chunk-TGLALXPU.js.map} +1 -1
  119. package/dist/{chunk-5GE3BQA7.js → chunk-USPITOG4.js} +5 -5
  120. package/dist/chunk-USPITOG4.js.map +1 -0
  121. package/dist/{chunk-XLTSCY22.js → chunk-UYPYAOET.js} +4 -4
  122. package/dist/chunk-UYPYAOET.js.map +1 -0
  123. package/dist/{chunk-P7D6S6GX.js → chunk-V7O4X3AE.js} +38 -4
  124. package/dist/chunk-V7O4X3AE.js.map +1 -0
  125. package/dist/{chunk-2YSZPUQZ.js → chunk-VTDSGJ4R.js} +3 -3
  126. package/dist/{chunk-2YSZPUQZ.js.map → chunk-VTDSGJ4R.js.map} +1 -1
  127. package/dist/{chunk-4Y72SPNL.js → chunk-VUHJTTPV.js} +4 -4
  128. package/dist/chunk-VUHJTTPV.js.map +1 -0
  129. package/dist/{chunk-VLDAHAG6.js → chunk-VV6QE3M2.js} +4 -4
  130. package/dist/{chunk-VLDAHAG6.js.map → chunk-VV6QE3M2.js.map} +1 -1
  131. package/dist/{chunk-H5N3VPBG.js → chunk-WBERMEN7.js} +3 -3
  132. package/dist/{chunk-H5N3VPBG.js.map → chunk-WBERMEN7.js.map} +1 -1
  133. package/dist/{chunk-OXDWUKGP.js → chunk-WCMRVCIM.js} +4 -4
  134. package/dist/chunk-WCMRVCIM.js.map +1 -0
  135. package/dist/{chunk-IFHF4UES.js → chunk-WQI2USN7.js} +11 -11
  136. package/dist/chunk-WQI2USN7.js.map +1 -0
  137. package/dist/{chunk-CKD4UBV6.js → chunk-WVFQKBDB.js} +3 -3
  138. package/dist/{chunk-CKD4UBV6.js.map → chunk-WVFQKBDB.js.map} +1 -1
  139. package/dist/{chunk-3NSIUZGP.js → chunk-WZ2J4ALB.js} +3 -3
  140. package/dist/{chunk-3NSIUZGP.js.map → chunk-WZ2J4ALB.js.map} +1 -1
  141. package/dist/{chunk-7TF5PVEU.js → chunk-X5XP5QVO.js} +5 -5
  142. package/dist/chunk-X5XP5QVO.js.map +1 -0
  143. package/dist/{chunk-7Y2UQMX6.js → chunk-XKO6G5H2.js} +36 -36
  144. package/dist/chunk-XKO6G5H2.js.map +1 -0
  145. package/dist/{chunk-SUU3HNOX.js → chunk-XORDGKZI.js} +4 -4
  146. package/dist/{chunk-SUU3HNOX.js.map → chunk-XORDGKZI.js.map} +1 -1
  147. package/dist/{chunk-VAVE4ZJF.js → chunk-YGLD22TU.js} +3 -3
  148. package/dist/chunk-YGLD22TU.js.map +1 -0
  149. package/dist/{chunk-XOGMDABS.js → chunk-ZHUW6UYD.js} +8 -8
  150. package/dist/chunk-ZHUW6UYD.js.map +1 -0
  151. package/dist/{chunk-PWCMCMDN.js → chunk-ZMUUEXVD.js} +3 -3
  152. package/dist/{chunk-PWCMCMDN.js.map → chunk-ZMUUEXVD.js.map} +1 -1
  153. package/dist/components/advanced/Calendar/index.js +5 -5
  154. package/dist/components/advanced/EventCalendar/index.js +5 -5
  155. package/dist/components/advanced/FilterBuilder/index.js +7 -7
  156. package/dist/components/advanced/MarkdownEditor/index.js +2 -2
  157. package/dist/components/advanced/ReportBuilder/index.js +4 -4
  158. package/dist/components/advanced/RichTextEditor/index.js +2 -2
  159. package/dist/components/advanced/index.js +16 -16
  160. package/dist/components/data-display/Callout/index.js +1 -1
  161. package/dist/components/data-display/Carousel/index.js +5 -5
  162. package/dist/components/data-display/ChartCard/index.js +2 -2
  163. package/dist/components/data-display/DataTable/FilterBuilder/index.js +7 -7
  164. package/dist/components/data-display/DataTable/index.js +10 -10
  165. package/dist/components/data-display/ImageGallery/index.js +6 -6
  166. package/dist/components/data-display/Item/index.js +2 -2
  167. package/dist/components/data-display/KPICard/index.js +3 -3
  168. package/dist/components/data-display/List/index.js +2 -2
  169. package/dist/components/data-display/SingleStat/index.js +1 -1
  170. package/dist/components/data-display/index.js +31 -31
  171. package/dist/components/feedback/AlertDialog/index.js +5 -5
  172. package/dist/components/feedback/ConfirmModal/index.js +6 -6
  173. package/dist/components/feedback/Modal/index.js +1 -1
  174. package/dist/components/feedback/UpdatesWidget/index.js +1 -1
  175. package/dist/components/feedback/index.js +10 -10
  176. package/dist/components/forms/ColorPicker/index.js +1 -1
  177. package/dist/components/forms/Combobox/index.js +1 -1
  178. package/dist/components/forms/DatePicker/index.js +6 -6
  179. package/dist/components/forms/DateRangePicker/index.js +6 -6
  180. package/dist/components/forms/EmailInput/index.js +3 -3
  181. package/dist/components/forms/Field/index.js +3 -3
  182. package/dist/components/forms/Form/index.js +2 -2
  183. package/dist/components/forms/InputGroup/index.js +8 -8
  184. package/dist/components/forms/InputOTPField/index.js +4 -4
  185. package/dist/components/forms/NativeSelect/index.js +1 -1
  186. package/dist/components/forms/NumberInput/index.js +2 -2
  187. package/dist/components/forms/PasswordInput/index.js +3 -3
  188. package/dist/components/forms/PaymentInput/index.js +1 -1
  189. package/dist/components/forms/PhoneInput/index.js +1 -1
  190. package/dist/components/forms/RadioButton/index.js +1 -1
  191. package/dist/components/forms/SearchInput/index.js +3 -3
  192. package/dist/components/forms/Slider/index.js +1 -1
  193. package/dist/components/forms/TagsInput/index.js +2 -2
  194. package/dist/components/forms/TextInput/index.js +2 -2
  195. package/dist/components/forms/Textarea/index.js +1 -1
  196. package/dist/components/forms/TextareaField/index.js +5 -5
  197. package/dist/components/forms/URLInput/index.js +3 -3
  198. package/dist/components/forms/index.js +33 -33
  199. package/dist/components/index.js +132 -132
  200. package/dist/components/layout/Card/index.js +1 -1
  201. package/dist/components/layout/Section/index.js +1 -1
  202. package/dist/components/layout/index.js +6 -6
  203. package/dist/components/navigation/AccountSwitch/index.js +3 -3
  204. package/dist/components/navigation/ContextMenu/index.js +1 -1
  205. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  206. package/dist/components/navigation/FileTree/index.js +1 -1
  207. package/dist/components/navigation/Menu/index.js +1 -1
  208. package/dist/components/navigation/Menubar/index.js +1 -1
  209. package/dist/components/navigation/Navbar/index.js +1 -1
  210. package/dist/components/navigation/Pagination/index.js +5 -5
  211. package/dist/components/navigation/Sidebar/index.js +7 -7
  212. package/dist/components/navigation/Toolbar/index.js +1 -1
  213. package/dist/components/navigation/index.js +20 -20
  214. package/dist/components/primitives/Badge/index.js +1 -1
  215. package/dist/components/primitives/Button/index.js +4 -4
  216. package/dist/components/primitives/ButtonGroup/index.js +2 -2
  217. package/dist/components/primitives/ConfirmButton/index.js +6 -6
  218. package/dist/components/primitives/Divider/index.js +1 -1
  219. package/dist/components/primitives/FolderStack/index.js +1 -1
  220. package/dist/components/primitives/Image/index.js +1 -1
  221. package/dist/components/primitives/Label/index.js +1 -1
  222. package/dist/components/primitives/SplitButton/index.js +2 -2
  223. package/dist/components/primitives/StatusIndicator/index.js +1 -1
  224. package/dist/components/primitives/Tag/index.js +1 -1
  225. package/dist/components/primitives/Thumbnail/index.js +2 -2
  226. package/dist/components/primitives/index.js +19 -19
  227. package/dist/components/workflow/ApprovalFlow/index.js +5 -5
  228. package/dist/components/workflow/CommentSystem/index.js +6 -6
  229. package/dist/components/workflow/Dashboard/index.js +5 -5
  230. package/dist/components/workflow/DashboardBuilder/index.js +8 -8
  231. package/dist/components/workflow/KanbanBoard/index.js +5 -5
  232. package/dist/components/workflow/ReportGenerator/index.js +6 -6
  233. package/dist/components/workflow/Stepper/index.js +1 -1
  234. package/dist/components/workflow/TaskStatus/index.js +2 -2
  235. package/dist/components/workflow/Wizard/index.js +6 -6
  236. package/dist/components/workflow/index.js +19 -19
  237. package/dist/index.d.ts +8 -1
  238. package/dist/index.js +132 -132
  239. package/dist/styles.css +27 -703
  240. package/package.json +2 -2
  241. package/dist/chunk-3L5G7VI2.js.map +0 -1
  242. package/dist/chunk-46ESMCEQ.js.map +0 -1
  243. package/dist/chunk-4GVOOXYD.js.map +0 -1
  244. package/dist/chunk-4KOJTZVU.js.map +0 -1
  245. package/dist/chunk-4Y72SPNL.js.map +0 -1
  246. package/dist/chunk-5GE3BQA7.js.map +0 -1
  247. package/dist/chunk-66TBTTZO.js.map +0 -1
  248. package/dist/chunk-7TF5PVEU.js.map +0 -1
  249. package/dist/chunk-7Y2UQMX6.js.map +0 -1
  250. package/dist/chunk-DYDXGWH2.js.map +0 -1
  251. package/dist/chunk-IFHF4UES.js.map +0 -1
  252. package/dist/chunk-IRIIK3BU.js.map +0 -1
  253. package/dist/chunk-NXQ25PKF.js.map +0 -1
  254. package/dist/chunk-OXDWUKGP.js.map +0 -1
  255. package/dist/chunk-P7D6S6GX.js.map +0 -1
  256. package/dist/chunk-TNDW52VZ.js.map +0 -1
  257. package/dist/chunk-U6EOAIPK.js.map +0 -1
  258. package/dist/chunk-UPK5B2FL.js.map +0 -1
  259. package/dist/chunk-VAVE4ZJF.js.map +0 -1
  260. package/dist/chunk-VT4IMHGE.js.map +0 -1
  261. package/dist/chunk-WKWLKGNI.js.map +0 -1
  262. package/dist/chunk-XLTSCY22.js.map +0 -1
  263. package/dist/chunk-XOGMDABS.js.map +0 -1
  264. package/dist/chunk-Y4RKKQMB.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/forms/ColorPicker/ColorPicker.variants.ts","../src/components/forms/ColorPicker/colorMath.ts","../src/components/forms/ColorPicker/ColorPickerPanel.tsx","../src/components/forms/ColorPicker/ColorPicker.tsx"],"names":["m","React2","jsxs","jsx"],"mappings":"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","file":"chunk-WKWLKGNI.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ColorPicker trigger variant styles using CVA\n */\nexport const colorPickerTriggerVariants = cva(\n // Base styles\n [\n \"inline-flex w-full items-center justify-between gap-2 rounded-[var(--color-picker-trigger-radius)] border bg-transparent font-normal transition-[color,box-shadow] outline-none\",\n \"text-left\",\n \"placeholder:text-muted-foreground\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n \"focus-visible:border-[color:var(--color-picker-focus-ring-primary)] focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50 focus-visible:ring-[length:var(--color-picker-focus-ring-width)]\",\n \"aria-invalid:ring-[color:var(--color-picker-focus-ring-destructive)]/20 dark:aria-invalid:ring-[color:var(--color-picker-focus-ring-destructive)]/40 aria-invalid:border-[color:var(--color-picker-focus-ring-destructive)]\",\n ],\n {\n variants: {\n size: {\n sm: \"h-9 px-2.5 py-1 text-sm\",\n md: \"h-10 px-3 py-1 text-base md:text-sm\",\n lg: \"h-11 px-3.5 py-1.5 text-base\",\n },\n variant: {\n default: \"border-input shadow-xs dark:bg-input/30\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * ColorPicker swatch styles using CVA\n */\nexport const colorPickerSwatchVariants = cva(\n // Base styles\n [\n \"rounded-[var(--color-picker-swatch-radius)] border border-input cursor-pointer transition-all\",\n \"hover:scale-110 hover:border-ring\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n size: {\n sm: \"size-5\",\n md: \"size-6\",\n lg: \"size-7\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * ColorPicker preview swatch (in trigger) styles\n */\nexport const colorPickerPreviewVariants = cva(\n // Base styles\n [\n \"rounded-[var(--color-picker-swatch-radius)] border border-input shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type ColorPickerTriggerVariantProps = VariantProps<typeof colorPickerTriggerVariants>\nexport type ColorPickerSwatchVariantProps = VariantProps<typeof colorPickerSwatchVariants>\nexport type ColorPickerPreviewVariantProps = VariantProps<typeof colorPickerPreviewVariants>\n","/**\n * Color conversion helpers for the ColorPicker visual picker (DES-1256 item 3).\n *\n * All hue values are 0–360; saturation/value/lightness are 0–100; alpha is 0–1;\n * RGB channels are 0–255. Internal module — not exported from the package.\n */\n\nexport interface RGBA {\n /** 0–1 */\n a: number\n /** 0–255 */\n b: number\n /** 0–255 */\n g: number\n /** 0–255 */\n r: number\n}\n\nexport interface HSV {\n /** 0–360 */\n h: number\n /** 0–100 */\n s: number\n /** 0–100 */\n v: number\n}\n\nexport interface HSL {\n /** 0–360 */\n h: number\n /** 0–100 */\n l: number\n /** 0–100 */\n s: number\n}\n\nexport type ColorFormat = \"hex\" | \"hsl\" | \"rgb\"\n\nconst clamp = (n: number, min: number, max: number): number =>\n Math.min(max, Math.max(min, n))\n\n/**\n * Parse a hex string (3/4/6/8 digits, optional leading `#`) into RGBA.\n * Returns null when the string is not a valid hex color.\n */\nexport function hexToRgba(hex: string): null | RGBA {\n const match = /^#?([0-9a-f]{3,8})$/i.exec(hex.trim())\n if (!match?.[1]) return null\n let h = match[1]\n if (h.length === 3 || h.length === 4) {\n h = h.replaceAll(/./g, (c) => c + c)\n }\n if (h.length !== 6 && h.length !== 8) return null\n return {\n r: Number.parseInt(h.slice(0, 2), 16),\n g: Number.parseInt(h.slice(2, 4), 16),\n b: Number.parseInt(h.slice(4, 6), 16),\n a: h.length === 8 ? Number.parseInt(h.slice(6, 8), 16) / 255 : 1,\n }\n}\n\nconst toHex2 = (n: number): string =>\n clamp(Math.round(n), 0, 255).toString(16).padStart(2, \"0\")\n\n/** RGBA → hex string. 6-digit when fully opaque, 8-digit (`#rrggbbaa`) otherwise. */\nexport function rgbaToHex({ r, g, b, a }: RGBA): string {\n const base = `#${toHex2(r)}${toHex2(g)}${toHex2(b)}`\n return a >= 1 ? base : base + toHex2(clamp(a, 0, 1) * 255)\n}\n\n/** Shared hue→rgb chroma distribution used by HSV and HSL conversions. */\nfunction chromaToRgb(h: number, c: number, x: number, m: number): RGBA {\n const [rp, gp, bp] =\n h < 60\n ? [c, x, 0]\n : h < 120\n ? [x, c, 0]\n : h < 180\n ? [0, c, x]\n : h < 240\n ? [0, x, c]\n : h < 300\n ? [x, 0, c]\n : [c, 0, x]\n return {\n r: Math.round((rp + m) * 255),\n g: Math.round((gp + m) * 255),\n b: Math.round((bp + m) * 255),\n a: 1,\n }\n}\n\nexport function rgbToHsv(r: number, g: number, b: number): HSV {\n const rn = r / 255\n const gn = g / 255\n const bn = b / 255\n const max = Math.max(rn, gn, bn)\n const min = Math.min(rn, gn, bn)\n const d = max - min\n let h = 0\n if (d !== 0) {\n if (max === rn) h = ((gn - bn) / d) % 6\n else if (max === gn) h = (bn - rn) / d + 2\n else h = (rn - gn) / d + 4\n h *= 60\n if (h < 0) h += 360\n }\n return { h, s: (max === 0 ? 0 : d / max) * 100, v: max * 100 }\n}\n\nexport function hsvToRgb(h: number, s: number, v: number): RGBA {\n const sn = s / 100\n const vn = v / 100\n const c = vn * sn\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1))\n return chromaToRgb(h, c, x, vn - c)\n}\n\nexport function rgbToHsl(r: number, g: number, b: number): HSL {\n const rn = r / 255\n const gn = g / 255\n const bn = b / 255\n const max = Math.max(rn, gn, bn)\n const min = Math.min(rn, gn, bn)\n const d = max - min\n const l = (max + min) / 2\n let h = 0\n let s = 0\n if (d !== 0) {\n s = d / (1 - Math.abs(2 * l - 1))\n if (max === rn) h = ((gn - bn) / d) % 6\n else if (max === gn) h = (bn - rn) / d + 2\n else h = (rn - gn) / d + 4\n h *= 60\n if (h < 0) h += 360\n }\n return { h, s: s * 100, l: l * 100 }\n}\n\nexport function hslToRgb(h: number, s: number, l: number): RGBA {\n const sn = s / 100\n const ln = l / 100\n const c = (1 - Math.abs(2 * ln - 1)) * sn\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1))\n return chromaToRgb(h, c, x, ln - c / 2)\n}\n\n/** Format an RGBA color as a string in the requested format. */\nexport function formatColor(rgba: RGBA, format: ColorFormat): string {\n const { r, g, b, a } = rgba\n if (format === \"hex\") return rgbaToHex(rgba).toUpperCase()\n if (format === \"rgb\") {\n const rgb = `${String(Math.round(r))}, ${String(Math.round(g))}, ${String(Math.round(b))}`\n return a >= 1 ? `rgb(${rgb})` : `rgba(${rgb}, ${String(Number(a.toFixed(2)))})`\n }\n const { h, s, l } = rgbToHsl(r, g, b)\n const hsl = `${String(Math.round(h))}, ${String(Math.round(s))}%, ${String(Math.round(l))}%`\n return a >= 1 ? `hsl(${hsl})` : `hsla(${hsl}, ${String(Number(a.toFixed(2)))})`\n}\n\n/** Parse a user-typed string in the given format into RGBA (null when invalid). */\nexport function parseColor(input: string, format: ColorFormat): null | RGBA {\n const str = input.trim()\n if (format === \"hex\") return hexToRgba(str)\n if (format === \"rgb\") {\n const m =\n /^rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*(?:,\\s*([\\d.]+)\\s*)?\\)$/i.exec(\n str\n )\n if (!m) return null\n return {\n r: clamp(Math.round(Number(m[1])), 0, 255),\n g: clamp(Math.round(Number(m[2])), 0, 255),\n b: clamp(Math.round(Number(m[3])), 0, 255),\n a: m[4] === undefined ? 1 : clamp(Number(m[4]), 0, 1),\n }\n }\n const m =\n /^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%?\\s*,\\s*([\\d.]+)%?\\s*(?:,\\s*([\\d.]+)\\s*)?\\)$/i.exec(\n str\n )\n if (!m) return null\n const rgb = hslToRgb(\n Number(m[1]),\n clamp(Number(m[2]), 0, 100),\n clamp(Number(m[3]), 0, 100)\n )\n return { ...rgb, a: m[4] === undefined ? 1 : clamp(Number(m[4]), 0, 1) }\n}\n","\"use client\"\n\nimport type { ColorFormat, RGBA } from \"./colorMath\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n formatColor,\n hexToRgba,\n hsvToRgb,\n parseColor,\n rgbaToHex,\n rgbToHsv,\n} from \"./colorMath\"\n\nconst FORMATS: ColorFormat[] = [\"hex\", \"rgb\", \"hsl\"]\n\nconst clampPct = (n: number): number => Math.min(100, Math.max(0, n))\n\nconst HUE_TRACK =\n \"linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)\"\n\nconst CHECKERBOARD =\n \"repeating-conic-gradient(#bbb 0% 25%, #fff 0% 50%) 50% / 12px 12px\"\n\n// Color-space overlays for the saturation/value area (white = desaturate, black =\n// darken). Held as consts — like HUE_TRACK — since these axes are not tokenizable.\nconst SATURATION_WHITE = \"linear-gradient(to right, #fff, rgba(255,255,255,0))\"\nconst SATURATION_BLACK = \"linear-gradient(to top, #000, rgba(0,0,0,0))\"\n\nconst thumbClass =\n \"pointer-events-none absolute -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white ring-1 ring-black/30\"\n\n// ─────────────────────────── Saturation / Value area ───────────────────────────\n\ninterface SaturationAreaProps {\n hue: number\n onChange: (s: number, v: number) => void\n s: number\n v: number\n}\n\nfunction SaturationArea({ hue, s, v, onChange }: SaturationAreaProps) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const setFromPoint = (clientX: number, clientY: number) => {\n const el = ref.current\n if (!el) return\n const rect = el.getBoundingClientRect()\n onChange(\n clampPct(((clientX - rect.left) / rect.width) * 100),\n clampPct((1 - (clientY - rect.top) / rect.height) * 100)\n )\n }\n\n const handlePointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n e.currentTarget.setPointerCapture(e.pointerId)\n setFromPoint(e.clientX, e.clientY)\n }\n\n const handlePointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.buttons !== 1) return\n setFromPoint(e.clientX, e.clientY)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const step = e.shiftKey ? 10 : 1\n let ns = s\n let nv = v\n let handled = true\n if (e.key === \"ArrowRight\") ns = clampPct(s + step)\n else if (e.key === \"ArrowLeft\") ns = clampPct(s - step)\n else if (e.key === \"ArrowUp\") nv = clampPct(v + step)\n else if (e.key === \"ArrowDown\") nv = clampPct(v - step)\n else handled = false\n if (handled) {\n e.preventDefault()\n onChange(ns, nv)\n }\n }\n\n return (\n <div\n ref={ref}\n aria-label=\"Saturation and brightness\"\n aria-valuetext={`Saturation ${String(Math.round(s))}%, brightness ${String(Math.round(v))}%`}\n className=\"relative h-40 w-full touch-none cursor-crosshair overflow-hidden rounded-md outline-none focus-visible:ring-[length:var(--color-picker-focus-ring-width)] focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50\"\n data-slot=\"color-picker-area\"\n role=\"slider\"\n style={{ backgroundColor: `hsl(${String(hue)}, 100%, 50%)` }}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n >\n <div className=\"absolute inset-0\" style={{ background: SATURATION_WHITE }} />\n <div className=\"absolute inset-0\" style={{ background: SATURATION_BLACK }} />\n <span\n style={{\n left: `${String(s)}%`,\n top: `${String(100 - v)}%`,\n backgroundColor: rgbaToHex(hsvToRgb(hue, s, v)),\n }}\n className={cn(thumbClass, \"size-3.5\")}\n data-slot=\"color-picker-area-thumb\"\n />\n </div>\n )\n}\n\n// ─────────────────────────────── 1D color slider ───────────────────────────────\n\ninterface ColorSliderProps {\n ariaLabel: string\n max: number\n onChange: (value: number) => void\n thumbColor: string\n trackStyle: React.CSSProperties\n value: number\n}\n\nfunction ColorSlider({\n ariaLabel,\n max,\n thumbColor,\n trackStyle,\n value,\n onChange,\n}: ColorSliderProps) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const setFromPoint = (clientX: number) => {\n const el = ref.current\n if (!el) return\n const rect = el.getBoundingClientRect()\n const next = ((clientX - rect.left) / rect.width) * max\n onChange(Math.min(max, Math.max(0, next)))\n }\n\n const handlePointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n e.currentTarget.setPointerCapture(e.pointerId)\n setFromPoint(e.clientX)\n }\n\n const handlePointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.buttons !== 1) return\n setFromPoint(e.clientX)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const step = (e.shiftKey ? 10 : 1) * (max / 100)\n let next = value\n let handled = true\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") next = Math.min(max, value + step)\n else if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") next = Math.max(0, value - step)\n else if (e.key === \"Home\") next = 0\n else if (e.key === \"End\") next = max\n else handled = false\n if (handled) {\n e.preventDefault()\n onChange(next)\n }\n }\n\n return (\n <div\n ref={ref}\n aria-label={ariaLabel}\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={Math.round(value)}\n className=\"relative h-3 w-full touch-none cursor-pointer rounded-full outline-none focus-visible:ring-[length:var(--color-picker-focus-ring-width)] focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50\"\n role=\"slider\"\n style={trackStyle}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n >\n <span\n className={cn(thumbClass, \"top-1/2 size-4\")}\n style={{ left: `${String((value / max) * 100)}%`, backgroundColor: thumbColor }}\n />\n </div>\n )\n}\n\n// ─────────────────────────────────── Panel ─────────────────────────────────────\n\ninterface ColorPickerPanelProps {\n onChange: (hex: string) => void\n showAlpha: boolean\n showInput: boolean\n value: string\n}\n\nexport function ColorPickerPanel({\n showAlpha,\n showInput,\n value,\n onChange,\n}: ColorPickerPanelProps) {\n const initial = hexToRgba(value) ?? { r: 0, g: 0, b: 0, a: 1 }\n const [hsv, setHsv] = React.useState(() => rgbToHsv(initial.r, initial.g, initial.b))\n const [alpha, setAlpha] = React.useState(initial.a)\n const [format, setFormat] = React.useState<ColorFormat>(\"hex\")\n const [draft, setDraft] = React.useState(\"\")\n const lastEmittedRef = React.useRef(value)\n\n const rgba: RGBA = { ...hsvToRgb(hsv.h, hsv.s, hsv.v), a: alpha }\n const formatted = formatColor(rgba, format)\n\n // Sync external value changes (e.g. swatch clicks) into the internal HSV state,\n // skipping the echo of our own emits so dragging never loses hue at the edges.\n // Effects are the intended pattern here: resettable state derived from a prop +\n // a draft field that only re-syncs after a valid value is committed.\n /* eslint-disable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-pass-data-to-parent, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- resettable state synced from the `value` prop */\n React.useEffect(() => {\n if (value === lastEmittedRef.current) return\n const next = hexToRgba(value)\n if (!next) return\n setHsv(rgbToHsv(next.r, next.g, next.b))\n setAlpha(next.a)\n }, [value])\n\n React.useEffect(() => {\n setDraft(formatted)\n }, [formatted])\n /* eslint-enable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-pass-data-to-parent, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n const emit = (nextHsv: { h: number; s: number; v: number }, nextAlpha: number) => {\n setHsv(nextHsv)\n setAlpha(nextAlpha)\n const hex = rgbaToHex({ ...hsvToRgb(nextHsv.h, nextHsv.s, nextHsv.v), a: nextAlpha })\n lastEmittedRef.current = hex\n onChange(hex)\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n setDraft(raw)\n // While typing hex, only commit a complete 6/8-digit value so 3-digit\n // intermediates don't fire mid-keystroke (3-digit is accepted on blur).\n if (format === \"hex\" && !/^#?[0-9a-f]{6}(?:[0-9a-f]{2})?$/i.test(raw.trim())) return\n const parsed = parseColor(raw, format)\n if (parsed) emit(rgbToHsv(parsed.r, parsed.g, parsed.b), parsed.a)\n }\n\n const handleInputBlur = () => {\n const parsed = parseColor(draft, format)\n if (parsed) emit(rgbToHsv(parsed.r, parsed.g, parsed.b), parsed.a)\n else setDraft(formatted)\n }\n\n const solidHex = rgbaToHex(hsvToRgb(hsv.h, hsv.s, hsv.v))\n\n return (\n <div className=\"space-y-3\" data-slot=\"color-picker-panel\">\n <SaturationArea\n hue={hsv.h}\n s={hsv.s}\n v={hsv.v}\n onChange={(s, v) => { emit({ h: hsv.h, s, v }, alpha) }}\n />\n\n <div className=\"flex items-center gap-3\">\n <span\n style={{\n background: `linear-gradient(${rgbaToHex(rgba)}, ${rgbaToHex(rgba)}), ${CHECKERBOARD}`,\n }}\n aria-hidden=\"true\"\n className=\"size-9 shrink-0 rounded-full border border-[color:var(--color-picker-trigger-border)]\"\n data-slot=\"color-picker-panel-preview\"\n />\n <div className=\"flex-1 space-y-2\">\n <ColorSlider\n ariaLabel=\"Hue\"\n max={360}\n thumbColor={`hsl(${String(hsv.h)}, 100%, 50%)`}\n trackStyle={{ background: HUE_TRACK }}\n value={hsv.h}\n onChange={(h) => { emit({ h, s: hsv.s, v: hsv.v }, alpha) }}\n />\n {showAlpha && (\n <div className=\"relative rounded-full\" style={{ background: CHECKERBOARD }}>\n <ColorSlider\n trackStyle={{\n background: `linear-gradient(to right, rgba(0,0,0,0), ${solidHex})`,\n }}\n ariaLabel=\"Alpha\"\n max={1}\n thumbColor={solidHex}\n value={alpha}\n onChange={(a) => { emit(hsv, a) }}\n />\n </div>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <div aria-label=\"Color format\" className=\"flex gap-1\" role=\"group\">\n {FORMATS.map((f) => (\n <button\n key={f}\n className={cn(\n \"rounded-md px-2 py-1 text-xs font-medium uppercase transition-colors\",\n format === f\n ? \"bg-accent text-accent-foreground\"\n : \"text-muted-foreground hover:bg-accent/50\"\n )}\n aria-pressed={format === f}\n type=\"button\"\n onClick={() => { setFormat(f) }}\n >\n {f}\n </button>\n ))}\n </div>\n {showInput && (\n <input\n aria-label={`Color value (${format})`}\n className=\"flex h-9 w-full min-w-0 flex-1 rounded-md border border-input bg-transparent px-3 py-1 font-mono text-sm uppercase shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50 focus-visible:ring-[length:var(--color-picker-focus-ring-width)]\"\n data-slot=\"color-picker-input\"\n spellCheck={false}\n value={draft}\n onBlur={handleInputBlur}\n onChange={handleInputChange}\n />\n )}\n </div>\n </div>\n )\n}\n","import type { ColorPickerProps } from \"./ColorPicker.types\"\n\nimport { Palette } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"../../feedback/Popover\"\nimport {\n colorPickerPreviewVariants,\n colorPickerSwatchVariants,\n colorPickerTriggerVariants,\n} from \"./ColorPicker.variants\"\nimport { ColorPickerPanel } from \"./ColorPickerPanel\"\n\n/**\n * Normalizes a hex color to lowercase, expanding 3-digit shorthand to 6-digit.\n * 6- and 8-digit (`#rrggbbaa`) values pass through unchanged (just lowercased).\n */\nfunction normalizeHexColor(color: string): string {\n let normalized = color\n if (!normalized.startsWith(\"#\")) {\n normalized = `#${normalized}`\n }\n if (normalized.length === 4) {\n const r = normalized[1] ?? \"\"\n const g = normalized[2] ?? \"\"\n const b = normalized[3] ?? \"\"\n return `#${r}${r}${g}${g}${b}${b}`.toLowerCase()\n }\n return normalized.toLowerCase()\n}\n\n/**\n * Default preset swatches\n */\nconst DEFAULT_SWATCHES = [\n \"#ef4444\", // red\n \"#f97316\", // orange\n \"#eab308\", // yellow\n \"#22c55e\", // green\n \"#14b8a6\", // teal\n \"#3b82f6\", // blue\n \"#8b5cf6\", // violet\n \"#ec4899\", // pink\n \"#000000\", // black\n \"#ffffff\", // white\n]\n\nfunction ColorPicker({\n className,\n value,\n defaultValue,\n placeholder = \"Select color\",\n disabled = false,\n swatches = DEFAULT_SWATCHES,\n showInput = true,\n showAlpha = true,\n showPreview = true,\n onChange,\n onOpenChange,\n size = \"md\",\n variant = \"default\",\n required = false,\n invalid = false,\n id,\n name,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n}: ColorPickerProps) {\n const [open, setOpen] = React.useState(false)\n const [internalColor, setInternalColor] = React.useState<string | undefined>(defaultValue)\n\n // Use controlled value if provided, otherwise use internal state\n const selectedColor = value ?? internalColor\n\n const handleColorChange = (color: string) => {\n const normalizedColor = normalizeHexColor(color)\n if (value === undefined) {\n setInternalColor(normalizedColor)\n }\n onChange?.(normalizedColor)\n }\n\n const handleSwatchClick = (color: string) => {\n handleColorChange(color)\n }\n\n const handleOpenChange = (isOpen: boolean) => {\n setOpen(isOpen)\n onOpenChange?.(isOpen)\n }\n\n return (\n <div className={cn(\"relative\", className)} data-slot=\"color-picker\" {...props}>\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <button\n className={cn(\n colorPickerTriggerVariants({ size, variant }),\n !selectedColor && \"text-muted-foreground\"\n )}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-invalid={invalid}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-required={required}\n data-has-value={!!selectedColor}\n data-size={size}\n data-slot=\"color-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n data-variant={variant}\n disabled={disabled}\n id={id}\n role=\"combobox\"\n type=\"button\"\n >\n <span className=\"flex items-center gap-2 flex-1 truncate\">\n {showPreview && selectedColor && (\n <span\n aria-hidden=\"true\"\n className={cn(colorPickerPreviewVariants({ size }))}\n data-slot=\"color-picker-preview\"\n style={{ backgroundColor: selectedColor }}\n />\n )}\n <span className=\"truncate\">\n {selectedColor ?? placeholder}\n </span>\n </span>\n <Palette aria-hidden=\"true\" className=\"size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-[var(--color-picker-content-width)] p-[var(--color-picker-content-padding)]\"\n data-slot=\"color-picker-content\"\n >\n <div className=\"space-y-3\">\n {/* Visual picker: saturation/value area + hue/alpha sliders + format input */}\n <ColorPickerPanel\n showAlpha={showAlpha}\n showInput={showInput}\n value={selectedColor ?? \"#000000\"}\n onChange={handleColorChange}\n />\n\n {/* Preset swatches */}\n {swatches.length > 0 ? (\n <div className=\"space-y-1.5\">\n <span className=\"text-xs text-muted-foreground font-medium\">\n Preset colors\n </span>\n <div\n aria-label=\"Color swatches\"\n className=\"grid grid-cols-5 gap-2\"\n data-slot=\"color-picker-swatches\"\n role=\"group\"\n >\n {swatches.map((color, index) => (\n <button\n key={`${color}-${String(index)}`}\n className={cn(\n colorPickerSwatchVariants({ size }),\n selectedColor === color && \"ring-2 ring-ring ring-offset-2\"\n )}\n aria-label={`Select color ${color}`}\n aria-pressed={selectedColor === color}\n data-color={color}\n data-selected={selectedColor === color}\n data-slot=\"color-picker-swatch\"\n style={{ backgroundColor: color }}\n type=\"button\"\n onClick={() => { handleSwatchClick(color); }}\n />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n </PopoverContent>\n </Popover>\n {name && (\n <input\n name={name}\n type=\"hidden\"\n value={selectedColor ?? \"\"}\n />\n )}\n </div>\n )\n}\n\nexport { ColorPicker }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/Callout/Callout.variants.ts","../src/components/data-display/Callout/Callout.tsx"],"names":[],"mappings":"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","file":"chunk-XLTSCY22.js","sourcesContent":["// Callout/Callout.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Callout style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const calloutVariants = cva(\n // Base styles (always applied)\n \"rounded-[var(--callout-root-radius)] border-l-[length:var(--callout-root-border-width)]\",\n {\n variants: {\n variant: {\n default: \"bg-muted/50 border-l-muted-foreground\",\n info: \"bg-[color:var(--info-subtle)] border-l-info\",\n warning: \"bg-[color:var(--warning-subtle)] border-l-warning\",\n error: \"bg-[color:var(--destructive-subtle)] border-l-destructive\",\n success: \"bg-[color:var(--success-subtle)] border-l-success\",\n tip: \"bg-[color:var(--tip-bg)] border-l-tip\",\n transparent: \"bg-transparent border-l-muted-foreground\",\n },\n size: {\n sm: \"p-[var(--callout-root-padding-sm)] text-[length:var(--callout-text-sm)]\",\n md: \"px-[var(--callout-root-padding-md)] py-[var(--callout-root-padding-sm)] text-[length:var(--callout-text-md)]\",\n lg: \"p-[var(--callout-root-padding-lg)] text-[length:var(--callout-text-lg)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * Icon color mapping by variant\n */\nexport const iconColorVariants: Record<string, string> = {\n default: \"text-muted-foreground\",\n info: \"text-info\",\n warning: \"text-warning\",\n error: \"text-destructive\",\n success: \"text-success\",\n tip: \"text-tip\",\n transparent: \"text-muted-foreground\",\n}\n\n// Export variant prop types\nexport type CalloutVariantProps = VariantProps<typeof calloutVariants>\n","import type { VariantProps } from \"class-variance-authority\"\n\nimport {\n CircleCheck,\n CircleX,\n FileText,\n Info,\n Lightbulb,\n TriangleAlert,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { calloutVariants, iconColorVariants } from \"./Callout.variants\"\n\nconst variantIcons = {\n default: FileText,\n info: Info,\n warning: TriangleAlert,\n error: CircleX,\n success: CircleCheck,\n tip: Lightbulb,\n transparent: FileText,\n}\n\ninterface CalloutProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof calloutVariants> {\n /** Custom icon to display (overrides variant icon) */\n icon?: React.ReactNode\n /** Title of the callout */\n title?: string\n}\n\nfunction Callout({\n children,\n className,\n icon,\n size,\n title,\n variant = \"default\",\n role,\n ...props\n}: CalloutProps) {\n const Icon = variantIcons[variant ?? \"default\"]\n const iconColor = iconColorVariants[variant ?? \"default\"]\n\n // Determine ARIA role based on variant\n const ariaRole =\n role ?? (variant === \"error\" || variant === \"warning\" ? \"alert\" : \"note\")\n\n return (\n <div\n aria-live={ariaRole === \"alert\" ? \"assertive\" : \"polite\"}\n className={cn(calloutVariants({ variant, size }), className)}\n data-size={size ?? \"md\"}\n data-slot=\"callout\"\n data-variant={variant ?? \"default\"}\n role={ariaRole}\n {...props}\n >\n <div className=\"flex gap-3\">\n <span className={cn(\"shrink-0 mt-0.5\", iconColor)} data-slot=\"callout-icon\">\n {icon ?? <Icon className=\"size-4\" />}\n </span>\n <div className=\"space-y-1 min-w-0\">\n {title && (\n <h5\n className=\"font-medium leading-none tracking-tight\"\n data-slot=\"callout-title\"\n >\n {title}\n </h5>\n )}\n <div className=\"text-muted-foreground\" data-slot=\"callout-content\">\n {children}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport { Callout, calloutVariants }\nexport type { CalloutProps }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/forms/NativeSelect/NativeSelect.variants.ts","../src/components/forms/NativeSelect/NativeSelect.tsx"],"names":[],"mappings":"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","file":"chunk-XOGMDABS.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * NativeSelect variant styles using CVA\n */\nexport const nativeSelectVariants = cva(\n // Base styles\n [\n \"w-full min-w-0 appearance-none rounded-[var(--native-select-root-radius)] border bg-transparent transition-[color,box-shadow] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"selection:bg-primary selection:text-primary-foreground\",\n \"dark:bg-input/30 dark:hover:bg-input/50\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed\",\n \"focus-visible:border-[color:var(--native-select-root-border-focus)] focus-visible:ring-[color:var(--native-select-focus-ring-color)]/50 focus-visible:ring-[length:var(--native-select-focus-ring-width)]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n xs: \"h-7 px-2 py-0.5 pr-7 text-xs\",\n sm: \"h-8 px-2.5 py-1 pr-8 text-sm\",\n md: \"h-9 px-3 py-1 pr-9 text-base md:text-sm\",\n lg: \"h-10 px-3.5 py-1.5 pr-10 text-base\",\n xl: \"h-12 px-4 py-2 pr-11 text-lg\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-[color:var(--native-select-variant-filled-bg)]\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0 pr-7\",\n },\n },\n defaultVariants: {\n size: \"lg\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * Wrapper styles for the NativeSelect container\n */\nexport const nativeSelectWrapperVariants = cva(\n \"group/native-select relative w-fit has-[select:disabled]:opacity-50\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * Icon styles based on size\n */\nexport const nativeSelectIconVariants = cva(\n \"text-muted-foreground pointer-events-none absolute top-1/2 -translate-y-1/2 opacity-50 select-none\",\n {\n variants: {\n size: {\n xs: \"right-2 size-3\",\n sm: \"right-2.5 size-3.5\",\n md: \"right-3 size-4\",\n lg: \"right-3.5 size-4\",\n xl: \"right-4 size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Left icon styles based on size\n */\nexport const nativeSelectLeftIconVariants = cva(\n \"text-muted-foreground pointer-events-none absolute top-1/2 -translate-y-1/2 opacity-70 select-none\",\n {\n variants: {\n size: {\n xs: \"left-2 size-3\",\n sm: \"left-2.5 size-3.5\",\n md: \"left-3 size-4\",\n lg: \"left-3.5 size-4\",\n xl: \"left-4 size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Additional padding-left when leftIcon is present\n */\nexport const nativeSelectWithLeftIconPadding: Record<NativeSelectSize, string> = {\n xs: \"pl-7\",\n sm: \"pl-8\",\n md: \"pl-9\",\n lg: \"pl-10\",\n xl: \"pl-11\",\n}\n\ntype NativeSelectSize = \"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\"\n\nexport type NativeSelectVariantProps = VariantProps<typeof nativeSelectVariants>\n","import type {\n NativeSelectOptGroupProps,\n NativeSelectOptionProps,\n NativeSelectProps,\n} from \"./NativeSelect.types\"\n\nimport { ChevronDownIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n nativeSelectIconVariants,\n nativeSelectLeftIconVariants,\n nativeSelectVariants,\n nativeSelectWithLeftIconPadding,\n nativeSelectWrapperVariants,\n} from \"./NativeSelect.variants\"\n\nfunction NativeSelect({\n className,\n size = \"lg\",\n variant,\n leftIcon,\n ...props\n}: NativeSelectProps) {\n return (\n <div\n className={cn(nativeSelectWrapperVariants())}\n data-slot=\"native-select-wrapper\"\n >\n {leftIcon && (\n <span\n aria-hidden=\"true\"\n className={cn(nativeSelectLeftIconVariants({ size }))}\n data-slot=\"native-select-left-icon\"\n >\n {leftIcon}\n </span>\n )}\n <select\n className={cn(\n nativeSelectVariants({ size, variant }),\n leftIcon && nativeSelectWithLeftIconPadding[size],\n className\n )}\n data-slot=\"native-select\"\n {...props}\n />\n <ChevronDownIcon\n aria-hidden=\"true\"\n className={cn(nativeSelectIconVariants({ size }))}\n data-slot=\"native-select-icon\"\n />\n </div>\n )\n}\n\nfunction NativeSelectOption({ ...props }: NativeSelectOptionProps) {\n return <option data-slot=\"native-select-option\" {...props} />\n}\n\nfunction NativeSelectOptGroup({\n className,\n ...props\n}: NativeSelectOptGroupProps) {\n return (\n <optgroup\n className={cn(className)}\n data-slot=\"native-select-optgroup\"\n {...props}\n />\n )\n}\n\nexport { NativeSelect, NativeSelectOptGroup, NativeSelectOption }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/primitives/Tag/Tag.variants.ts","../src/components/primitives/Tag/TagGroup.tsx","../src/components/primitives/Tag/Tag.tsx"],"names":["jsx","React2"],"mappings":";;;;;;AAOO,IAAM,WAAA,GAAc,GAAA;AAAA;AAAA,EAEzB;AAAA,IACE,yCAAA;AAAA,IACA,gDAAA;AAAA,IACA,kEAAA;AAAA,IACA,gCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,yKAAA;AAAA,QACJ,EAAA,EAAI,yKAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,uFAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,gCAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM,2DAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,KAAA;AAAA,MACT,QAAA,EAAU,KAAA;AAAA,MACV,WAAA,EAAa;AAAA;AACf;AAEJ;AAKO,IAAM,gBAAA,GAAmB,GAAA;AAAA,EAC9B;AAAA,IACE,yCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,iIAAA;AAAA,QACJ,EAAA,EAAI,mIAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAKO,IAAM,mBAAA,GAAsB,GAAA;AAAA,EACjC;AAAA,IACE,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,2IAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,YAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,KAAA;AAAA,MACT,QAAA,EAAU;AAAA;AACZ;AAEJ;AAOO,IAAM,gBAAA,GAAmB,IAAI,aAAA,EAAe;AAAA,EACjD,QAAA,EAAU;AAAA;AAAA;AAAA;AAAA,IAIR,MAAA,EAAQ;AAAA;AAAA,MAEN,MAAA,EAAQ,6BAAA;AAAA;AAAA,MAER,IAAA,EAAM,WAAA;AAAA;AAAA,MAEN,KAAA,EAAO;AAAA,KACT;AAAA;AAAA;AAAA;AAAA,IAIA,GAAA,EAAK;AAAA,MACH,IAAA,EAAM,OAAA;AAAA,MACN,EAAA,EAAI,OAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,OAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA;AAAA;AAAA;AAAA,IAIA,KAAA,EAAO;AAAA,MACL,KAAA,EAAO,aAAA;AAAA,MACP,MAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAK;AAAA;AACP,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,MAAA,EAAQ,MAAA;AAAA,IACR,GAAA,EAAK,IAAA;AAAA,IACL,KAAA,EAAO;AAAA;AAEX,CAAC;ACjID,IAAM,eAAA,GAAwB,oBAA2C,IAAI,CAAA;AAKtE,SAAS,WAAA,GAA2C;AACzD,EAAA,OAAa,UAAI,eAAe,CAAA;AAClC;AAoCO,SAAS,QAAA,CAAS;AAAA,EACvB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAEhB,EAAA,MAAM,YAAA,GAAqB,KAAA,CAAA,OAAA;AAAA,IACzB,OAAO;AAAA,MACL,IAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,MAAM,QAAQ;AAAA,GACjB;AAEA,EAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAO,YAAA,EACtB,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,QAAQ,GAAA,EAAK,KAAA,EAAO,CAAA,EAAG,SAAS,CAAA;AAAA,MACjE,WAAA,EAAU,WAAA;AAAA,MACV,IAAA,EAAK,OAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AC5EvB,SAAS,WAAA,CAAY;AAAA,EACnB,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,mBAAA,CAAoB,EAAE,MAAM,OAAA,EAAS,QAAA,EAAU,CAAC,CAAA;AAAA,MAC9D,WAAA,EAAU,cAAA;AAAA,MAET,qCAAWA,GAAAA,CAAC,SAAM,SAAA,EAAU,QAAA,EAAS,aAAa,CAAA,EAAG;AAAA;AAAA,GACxD;AAEJ;AAGA,SAAS,QAAA,CAAS,EAAE,KAAA,EAAO,IAAA,EAAK,EAAgD;AAC9E,EAAA,uBACEA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,iBAAiB,EAAE,IAAA,EAAM,CAAC,GAAG,WAAA,EAAU,WAAA,EACxD,QAAA,EAAA,KAAA,GAAQ,GAAA,GAAM,SAAS,KAAA,EAC1B,CAAA;AAEJ;AAGA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAA,EAAI,EAAE,MAAA,EAAQ,UAAA,EAAY,MAAM,UAAA,EAAW;AAAA;AAAA,EAC3C,EAAA,EAAI,EAAE,MAAA,EAAQ,QAAA,EAAU,MAAM,QAAA,EAAS;AAAA;AAAA,EACvC,EAAA,EAAI,EAAE,MAAA,EAAQ,UAAA,EAAY,MAAM,UAAA;AAAW;AAC7C,CAAA;AAGA,SAAS,UAAA,CAAW;AAAA,EAClB,OAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA,GAAO;AACT,CAAA,EAIG;AACD,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAwB;AAC3C,IAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,OAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA2B;AAChD,IAAA,IAAA,CAAK,EAAE,GAAA,KAAQ,OAAA,IAAW,EAAE,GAAA,KAAQ,GAAA,KAAQ,CAAC,QAAA,EAAU;AACrD,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,OAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,eAAe,IAAI,CAAA;AAEvC,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,WAAA,CAAY,MAAA;AAAA,QACZ,qEAAA;AAAA,QACA,4DAAA;AAAA,QACA,2FAAA;AAAA,QACA,QAAA,IAAY;AAAA,OACd;AAAA,MACA,YAAA,EAAW,YAAA;AAAA,MACX,WAAA,EAAU,aAAA;AAAA,MACV,QAAA;AAAA,MACA,QAAA,EAAU,EAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,aAAA;AAAA,MAEX,QAAA,kBAAAA,GAAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAW,YAAY,IAAA,EAAM;AAAA;AAAA,GAClC;AAEJ;AAGA,SAAS,SAAA,CAAU,EAAE,GAAA,EAAK,QAAA,EAAU,KAAI,EAAmB;AACzD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAUC,eAAS,KAAK,CAAA;AAExD,EAAA,MAAM,WAAW,QAAA,CACd,KAAA,CAAM,GAAG,CAAA,CACT,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,CAAC,CAAC,CAAA,CACrB,KAAK,EAAE,CAAA,CACP,aAAY,CACZ,KAAA,CAAM,GAAG,CAAC,CAAA;AAEb,EAAA,uBACED,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,4HAAA;AAAA,MACV,WAAA,EAAU,YAAA;AAAA,MAET,QAAA,EAAA,GAAA,IAAO,CAAC,UAAA,mBACPA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAK,GAAA,IAAO,QAAA;AAAA,UACZ,SAAA,EAAU,wBAAA;AAAA,UACV,GAAA;AAAA,UACA,SAAS,MAAM;AACb,YAAA,aAAA,CAAc,IAAI,CAAA;AAAA,UACpB;AAAA;AAAA,0BAGFA,GAAAA,CAAC,UAAK,YAAA,EAAY,GAAA,IAAO,UAAW,QAAA,EAAA,QAAA,EAAS;AAAA;AAAA,GAEjD;AAEJ;AAGA,IAAM,mBAAA,GAAmD;AAAA,EACvD,KAAA,EAAO,iCAAA;AAAA,EACP,OAAA,EAAS,yCAAA;AAAA,EACT,OAAA,EAAS,yCAAA;AAAA,EACT,OAAA,EAAS,yCAAA;AAAA,EACT,WAAA,EAAa,6CAAA;AAAA,EACb,IAAA,EAAM;AACR,CAAA;AAEA,SAAS,MAAA,CAAO,EAAE,KAAA,GAAQ,SAAA,EAAU,EAA4B;AAC9D,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,mBAAA,CAAoB,KAAK,CAAC,CAAA;AAAA,MAC1E,WAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;AAGA,SAAS,UAAA,CAAW,EAAE,IAAA,EAAK,EAAqB;AAC9C,EAAA,MAAM,aAAA,GAAgB,CAAC,WAAA,KAAwB;AAE7C,IAAA,MAAM,aAAa,KAAA,CAAM,IAAA,CAAK,WAAA,CAAY,WAAA,EAAa,CAAA,CAAE,GAAA;AAAA,MACvD,CAAC,IAAA,KAAS,MAAA,GAAS,IAAA,CAAK,WAAW,CAAC;AAAA,KACtC;AACA,IAAA,OAAO,MAAA,CAAO,aAAA,CAAc,GAAG,UAAU,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,WAAW,IAAI,CAAA,CAAA;AAAA,MAC3B,SAAA,EAAU,yCAAA;AAAA,MACV,WAAA,EAAU,aAAA;AAAA,MACV,IAAA,EAAK,KAAA;AAAA,MAEJ,wBAAc,IAAI;AAAA;AAAA,GACrB;AAEJ;AAwBO,SAAS,GAAA,CAAI;AAAA,EAClB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA,EAAM,QAAA;AAAA,EACN,QAAA;AAAA,EACA,OAAA,EAAS,iBAAA;AAAA,EACT,cAAA,GAAiB,KAAA;AAAA,EACjB,eAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA,EAAU,YAAA;AAAA,EACV,OAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAa;AAEX,EAAA,MAAM,eAAe,WAAA,EAAY;AAGjC,EAAA,MAAM,IAAA,GAAO,QAAA,IAAY,YAAA,EAAc,IAAA,IAAQ,IAAA;AAC/C,EAAA,MAAM,QAAA,GAAW,gBAAgB,YAAA,EAAc,QAAA;AAG/C,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAUC,eAAS,cAAc,CAAA;AAG3E,EAAA,MAAM,YAAY,iBAAA,IAAqB,eAAA;AACvC,EAAA,MAAM,aAAA,GAAgB,OAAA,CAAQ,QAAQ,CAAA,IAAK,QAAQ,OAAO,CAAA;AAG1D,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,IAAI,QAAA,EAAU;AAEd,IAAA,MAAM,aAAa,CAAC,SAAA;AACpB,IAAA,kBAAA,CAAmB,UAAU,CAAA;AAC7B,IAAA,eAAA,GAAkB,UAAU,CAAA;AAAA,EAC9B,CAAA;AAGA,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAyC;AAC5D,IAAA,IAAI,QAAA,EAAU;AAEd,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,YAAA,EAAa;AAAA,IACf;AAEA,IAAA,OAAA,GAAU,CAAC,CAAA;AAAA,EACb,CAAA;AAGA,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAA4C;AACjE,IAAA,IAAI,QAAA,EAAU;AAGd,IAAA,IAAI,aAAa,CAAA,CAAE,GAAA,KAAQ,GAAA,IAAO,CAAA,CAAE,QAAQ,OAAA,CAAA,EAAU;AACpD,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,YAAA,EAAa;AAAA,IACf;AAGA,IAAA,IAAI,cAAc,CAAA,CAAE,GAAA,KAAQ,QAAA,IAAY,CAAA,CAAE,QAAQ,WAAA,CAAA,EAAc;AAC9D,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,SAAA,EAAU;AAAA,IACZ;AAEA,IAAA,SAAA,GAAY,CAAC,CAAA;AAAA,EACf,CAAA;AAGA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,uBAAOD,GAAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAS,SAAA,EAAW,UAAoB,IAAA,EAAY,CAAA;AAAA,IAC1E;AACA,IAAA,IAAI,QAAQ,uBAAOA,GAAAA,CAAC,SAAA,EAAA,EAAW,GAAG,MAAA,EAAQ,CAAA;AAC1C,IAAA,IAAI,SAAS,uBAAOA,GAAAA,CAAC,UAAA,EAAA,EAAW,MAAM,OAAA,EAAS,CAAA;AAC/C,IAAA,IAAI,IAAA,yBAAaA,GAAAA,CAAC,UAAK,SAAA,EAAU,2BAAA,EAA4B,WAAA,EAAU,UAAA,EAAY,QAAA,EAAA,IAAA,EAAK,CAAA;AACxF,IAAA,IAAI,KAAK,uBAAOA,GAAAA,CAAC,MAAA,EAAA,EAAO,OAAO,QAAA,EAAU,CAAA;AACzC,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAGA,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,KAAA,KAAU,MAAA,oBAAaA,GAAAA,CAAC,QAAA,EAAA,EAAS,OAAc,IAAA,EAAY,CAAA;AAAA,MAC3D,6BAAaA,GAAAA,CAAC,cAAW,QAAA,EAAoB,IAAA,EAAY,SAAS,SAAA,EAAW;AAAA,KAAA,EAChF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,WAAA,CAAY;AAAA,UACV,IAAA;AAAA,UACA,OAAA,EAAS,SAAA;AAAA,UACT,QAAA;AAAA,UACA,WAAA,EAAa;AAAA,SACd,CAAA;AAAA,QACD;AAAA,OACF;AAAA,MACA,cAAA,EAAc,WAAW,SAAA,GAAY,MAAA;AAAA,MACrC,eAAA,EAAe,QAAA;AAAA,MACf,WAAA,EAAU,KAAA;AAAA,MACV,IAAA,EAAM,WAAW,UAAA,GAAa,MAAA;AAAA,MAC9B,QAAA,EAAU,aAAA,IAAiB,CAAC,QAAA,GAAW,CAAA,GAAI,MAAA;AAAA,MAC3C,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,aAAA,EAAc;AAAA,wBACfA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,eAAe,QAAA,EAAS,CAAA;AAAA,QACvC,cAAA;AAAe;AAAA;AAAA,GAClB;AAEJ;AAEA,GAAA,CAAI,WAAA,GAAc,KAAA","file":"chunk-Y4RKKQMB.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Tag style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const tagVariants = cva(\n // Base styles (always applied)\n [\n \"inline-flex items-center justify-center\",\n \"font-medium whitespace-nowrap shrink-0 gap-1.5\",\n \"rounded-[var(--tag-radius)] border bg-background text-foreground\",\n \"transition-colors duration-200\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--tag-size-height-sm)] px-[var(--tag-size-padding-x-sm)] text-[length:var(--tag-size-text-sm)] [&_[data-slot='tag-checkbox']]:size-[var(--tag-size-checkbox-sm)]\",\n md: \"h-[var(--tag-size-height-md)] px-[var(--tag-size-padding-x-md)] text-[length:var(--tag-size-text-md)] [&_[data-slot='tag-checkbox']]:size-[var(--tag-size-checkbox-md)]\",\n lg: \"h-[var(--tag-size-height-lg)] px-[var(--tag-size-padding-x-lg)] text-[length:var(--tag-size-text-lg)] [&_[data-slot='tag-checkbox']]:size-[var(--tag-size-checkbox-lg)]\",\n },\n checked: {\n true: \"border-[color:var(--tag-color-border-checked)] bg-[color:var(--tag-color-bg-checked)]\",\n false: \"border-[color:var(--tag-color-border-default)] bg-[color:var(--tag-color-bg-default)]\",\n },\n disabled: {\n true: \"opacity-50 pointer-events-none\",\n false: \"\",\n },\n interactive: {\n true: \"cursor-pointer hover:bg-[color:var(--tag-color-bg-hover)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n checked: false,\n disabled: false,\n interactive: false,\n },\n }\n)\n\n/**\n * Tag count pill styles\n */\nexport const tagCountVariants = cva(\n [\n \"inline-flex items-center justify-center\",\n \"rounded-[var(--tag-count-radius)] bg-muted text-muted-foreground font-medium\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--tag-size-count-height-sm)] min-w-[var(--tag-size-count-min-width-sm)] px-1 text-[length:var(--tag-size-count-text-sm)]\",\n md: \"h-[var(--tag-size-count-height-md)] min-w-[var(--tag-size-count-min-width-md)] px-1.5 text-[length:var(--tag-size-count-text-md)]\",\n lg: \"h-[var(--tag-size-count-height-lg)] min-w-[var(--tag-size-count-min-width-lg)] px-1.5 text-[length:var(--tag-size-count-text-lg)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Tag checkbox styles\n */\nexport const tagCheckboxVariants = cva(\n [\n \"inline-flex items-center justify-center shrink-0\",\n \"rounded border transition-colors\",\n ],\n {\n variants: {\n size: {\n sm: \"size-[var(--tag-size-checkbox-sm)]\",\n md: \"size-[var(--tag-size-checkbox-md)]\",\n lg: \"size-[var(--tag-size-checkbox-lg)]\",\n },\n checked: {\n true: \"bg-[color:var(--tag-checkbox-bg-checked)] border-[color:var(--tag-checkbox-border-checked)] text-[color:var(--tag-checkbox-text-checked)]\",\n false: \"border-[color:var(--tag-checkbox-border-default)] bg-[color:var(--tag-checkbox-bg-default)]\",\n },\n disabled: {\n true: \"opacity-50\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n checked: false,\n disabled: false,\n },\n }\n)\n\nexport type TagVariantProps = VariantProps<typeof tagVariants>\n\n/**\n * TagGroup layout variants\n */\nexport const tagGroupVariants = cva(\"inline-flex\", {\n variants: {\n /**\n * Layout mode for tags\n */\n layout: {\n /** Single line with scroll */\n inline: \"flex-nowrap overflow-x-auto\",\n /** Wrap to multiple lines */\n wrap: \"flex-wrap\",\n /** Vertical stack */\n stack: \"flex-col\",\n },\n /**\n * Gap between tags\n */\n gap: {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-1.5\",\n md: \"gap-2\",\n lg: \"gap-3\",\n },\n /**\n * Alignment of tags\n */\n align: {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n },\n },\n defaultVariants: {\n layout: \"wrap\",\n gap: \"sm\",\n align: \"center\",\n },\n})\n\nexport type TagGroupVariantProps = VariantProps<typeof tagGroupVariants>\n","\"use client\"\n\nimport type { TagGroupContextValue, TagGroupProps } from \"./Tag.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { tagGroupVariants } from \"./Tag.variants\"\n\n/**\n * Context for TagGroup to pass props to child Tags\n */\nconst TagGroupContext = React.createContext<null | TagGroupContextValue>(null)\n\n/**\n * Hook to access TagGroup context\n */\nexport function useTagGroup(): null | TagGroupContextValue {\n return React.use(TagGroupContext)\n}\n\n/**\n * TagGroup - Container for grouping multiple Tag components\n *\n * Provides layout control, gap spacing, and can pass size/disabled\n * props to all child Tags via context.\n *\n * @example\n * ```tsx\n * // Basic grouping with wrap layout\n * <TagGroup>\n * <Tag>React</Tag>\n * <Tag>TypeScript</Tag>\n * <Tag>Tailwind</Tag>\n * </TagGroup>\n *\n * // Inline scrollable\n * <TagGroup layout=\"inline\" gap=\"md\">\n * {tags.map(tag => <Tag key={tag}>{tag}</Tag>)}\n * </TagGroup>\n *\n * // With size inheritance\n * <TagGroup size=\"sm\">\n * <Tag checkbox>Option 1</Tag>\n * <Tag checkbox>Option 2</Tag>\n * </TagGroup>\n *\n * // Vertical stack\n * <TagGroup layout=\"stack\" align=\"start\">\n * <Tag>First</Tag>\n * <Tag>Second</Tag>\n * <Tag>Third</Tag>\n * </TagGroup>\n * ```\n */\nexport function TagGroup({\n children,\n className,\n layout,\n gap,\n align,\n size,\n disabled,\n ...props\n}: TagGroupProps) {\n // Memoize context value to prevent unnecessary re-renders\n const contextValue = React.useMemo<TagGroupContextValue>(\n () => ({\n size,\n disabled,\n }),\n [size, disabled]\n )\n\n return (\n <TagGroupContext value={contextValue}>\n <div\n className={cn(tagGroupVariants({ layout, gap, align }), className)}\n data-slot=\"tag-group\"\n role=\"group\"\n {...props}\n >\n {children}\n </div>\n </TagGroupContext>\n )\n}\n\nTagGroup.displayName = \"TagGroup\"\n","\"use client\"\n\nimport type { TagAvatarProps, TagDotColor, TagProps } from \"./Tag.types\"\n\nimport { Check, X } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { tagCheckboxVariants, tagCountVariants, tagVariants } from \"./Tag.variants\"\nimport { useTagGroup } from \"./TagGroup\"\n\n// Internal checkbox component\nfunction TagCheckbox({\n checked,\n disabled,\n size,\n}: {\n checked: boolean\n disabled?: boolean\n size: \"lg\" | \"md\" | \"sm\"\n}) {\n return (\n <span\n className={cn(tagCheckboxVariants({ size, checked, disabled }))}\n data-slot=\"tag-checkbox\"\n >\n {checked && <Check className=\"size-3\" strokeWidth={3} />}\n </span>\n )\n}\n\n// Internal count pill component\nfunction TagCount({ count, size }: { count: number; size: \"lg\" | \"md\" | \"sm\" }) {\n return (\n <span className={cn(tagCountVariants({ size }))} data-slot=\"tag-count\">\n {count > 999 ? \"999+\" : count}\n </span>\n )\n}\n\n// Dismiss button size mapping (Figma: sm=10px, md=12px, lg=14px icons)\nconst dismissSizeMap = {\n sm: { button: \"size-3.5\", icon: \"size-2.5\" }, // 14px button, 10px icon\n md: { button: \"size-4\", icon: \"size-3\" }, // 16px button, 12px icon\n lg: { button: \"size-4.5\", icon: \"size-3.5\" }, // 18px button, 14px icon\n}\n\n// Internal dismiss button component\nfunction TagDismiss({\n onClick,\n disabled,\n size = \"md\",\n}: {\n disabled?: boolean\n onClick: () => void\n size?: \"lg\" | \"md\" | \"sm\"\n}) {\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (!disabled) {\n onClick()\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === \"Enter\" || e.key === \" \") && !disabled) {\n e.preventDefault()\n e.stopPropagation()\n onClick()\n }\n }\n\n const sizeClasses = dismissSizeMap[size]\n\n return (\n <button\n className={cn(\n sizeClasses.button,\n \"-mr-0.5 rounded-sm inline-flex items-center justify-center shrink-0\",\n \"text-muted-foreground hover:text-foreground hover:bg-muted\",\n \"transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\",\n disabled && \"pointer-events-none\"\n )}\n aria-label=\"Remove tag\"\n data-slot=\"tag-dismiss\"\n disabled={disabled}\n tabIndex={-1}\n type=\"button\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n <X className={sizeClasses.icon} />\n </button>\n )\n}\n\n// Internal avatar component\nfunction TagAvatar({ src, fallback, alt }: TagAvatarProps) {\n const [imageError, setImageError] = React.useState(false)\n\n const initials = fallback\n .split(\" \")\n .map((word) => word[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n\n return (\n <span\n className=\"size-4 -ml-0.5 rounded-full shrink-0 inline-flex items-center justify-center overflow-hidden bg-muted text-3xs font-medium\"\n data-slot=\"tag-avatar\"\n >\n {src && !imageError ? (\n <img\n alt={alt ?? fallback}\n className=\"size-full object-cover\"\n src={src}\n onError={() => {\n setImageError(true)\n }}\n />\n ) : (\n <span aria-label={alt ?? fallback}>{initials}</span>\n )}\n </span>\n )\n}\n\n// Internal dot component\nconst TAG_DOT_COLOR_CLASS: Record<TagDotColor, string> = {\n brand: \"bg-[color:var(--tag-color-dot)]\",\n neutral: \"bg-[color:var(--tag-color-dot-neutral)]\",\n success: \"bg-[color:var(--tag-color-dot-success)]\",\n warning: \"bg-[color:var(--tag-color-dot-warning)]\",\n destructive: \"bg-[color:var(--tag-color-dot-destructive)]\",\n info: \"bg-[color:var(--tag-color-dot-info)]\",\n}\n\nfunction TagDot({ color = \"success\" }: { color?: TagDotColor }) {\n return (\n <span\n className={cn(\"size-1.5 rounded-full shrink-0\", TAG_DOT_COLOR_CLASS[color])}\n data-slot=\"tag-dot\"\n />\n )\n}\n\n// Internal country flag component\nfunction TagCountry({ code }: { code: string }) {\n const countryToFlag = (countryCode: string) => {\n // eslint-disable-next-line unicorn/prefer-spread -- Array.from handles Unicode correctly for country codes\n const codePoints = Array.from(countryCode.toUpperCase()).map(\n (char) => 127397 + char.charCodeAt(0)\n )\n return String.fromCodePoint(...codePoints)\n }\n\n return (\n <span\n aria-label={`Flag of ${code}`}\n className=\"text-base -ml-0.5 shrink-0 leading-none\"\n data-slot=\"tag-country\"\n role=\"img\"\n >\n {countryToFlag(code)}\n </span>\n )\n}\n\n/**\n * Tag - Interactive selectable/filterable component\n *\n * Used for filtering, categorization, and selection with optional\n * checkbox, count, avatar, country flag, and dismiss functionality.\n *\n * @example\n * ```tsx\n * // Basic tag\n * <Tag>Label</Tag>\n *\n * // With checkbox\n * <Tag checkbox checked={selected} onCheckedChange={setSelected}>\n * React\n * </Tag>\n *\n * // With count and dismiss\n * <Tag count={5} onDismiss={() => {}}>\n * Notifications\n * </Tag>\n * ```\n */\nexport function Tag({\n children,\n className,\n size: sizeProp,\n checkbox,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n dot,\n dotColor,\n icon,\n avatar,\n country,\n count,\n onDismiss,\n disabled: disabledProp,\n onClick,\n onKeyDown,\n ...props\n}: TagProps) {\n // Get context from TagGroup (if present)\n const groupContext = useTagGroup()\n\n // Merge with context values\n const size = sizeProp ?? groupContext?.size ?? \"md\"\n const disabled = disabledProp ?? groupContext?.disabled\n\n // Uncontrolled state for checkbox\n const [internalChecked, setInternalChecked] = React.useState(defaultChecked)\n\n // Use controlled or uncontrolled checked value\n const isChecked = controlledChecked ?? internalChecked\n const isInteractive = Boolean(checkbox) || Boolean(onClick)\n\n // Handle checkbox toggle\n const handleToggle = () => {\n if (disabled) return\n\n const newChecked = !isChecked\n setInternalChecked(newChecked)\n onCheckedChange?.(newChecked)\n }\n\n // Handle click\n const handleClick = (e: React.MouseEvent<HTMLSpanElement>) => {\n if (disabled) return\n\n if (checkbox) {\n handleToggle()\n }\n\n onClick?.(e)\n }\n\n // Handle keyboard\n const handleKeyDown = (e: React.KeyboardEvent<HTMLSpanElement>) => {\n if (disabled) return\n\n // Toggle on Space/Enter for checkbox\n if (checkbox && (e.key === \" \" || e.key === \"Enter\")) {\n e.preventDefault()\n handleToggle()\n }\n\n // Dismiss on Delete/Backspace\n if (onDismiss && (e.key === \"Delete\" || e.key === \"Backspace\")) {\n e.preventDefault()\n onDismiss()\n }\n\n onKeyDown?.(e)\n }\n\n // Render leading content (checkbox, avatar, country, icon, or dot)\n const renderLeading = () => {\n if (checkbox) {\n return <TagCheckbox checked={isChecked} disabled={disabled} size={size} />\n }\n if (avatar) return <TagAvatar {...avatar} />\n if (country) return <TagCountry code={country} />\n if (icon) return <span className=\"shrink-0 [&_svg]:size-3.5\" data-slot=\"tag-icon\">{icon}</span>\n if (dot) return <TagDot color={dotColor} />\n return null\n }\n\n // Render trailing content (count, dismiss)\n const renderTrailing = () => {\n return (\n <>\n {count !== undefined && <TagCount count={count} size={size} />}\n {onDismiss && <TagDismiss disabled={disabled} size={size} onClick={onDismiss} />}\n </>\n )\n }\n\n return (\n <span\n className={cn(\n tagVariants({\n size,\n checked: isChecked,\n disabled,\n interactive: isInteractive,\n }),\n className\n )}\n aria-checked={checkbox ? isChecked : undefined}\n aria-disabled={disabled}\n data-slot=\"tag\"\n role={checkbox ? \"checkbox\" : undefined}\n tabIndex={isInteractive && !disabled ? 0 : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {renderLeading()}\n <span data-slot=\"tag-content\">{children}</span>\n {renderTrailing()}\n </span>\n )\n}\n\nTag.displayName = \"Tag\"\n"]}