@etus/ui 0.4.0-beta.16 → 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 (269) 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-VORFH6HQ.js → chunk-37KLBMFQ.js} +3 -3
  6. package/dist/chunk-37KLBMFQ.js.map +1 -0
  7. package/dist/{chunk-N4UTBJRY.js → chunk-3NHH7VPI.js} +3 -3
  8. package/dist/{chunk-N4UTBJRY.js.map → chunk-3NHH7VPI.js.map} +1 -1
  9. package/dist/{chunk-OEXQ2MOY.js → chunk-45YJLE4R.js} +3 -3
  10. package/dist/{chunk-OEXQ2MOY.js.map → chunk-45YJLE4R.js.map} +1 -1
  11. package/dist/{chunk-66TBTTZO.js → chunk-46SUPGQV.js} +14 -14
  12. package/dist/chunk-46SUPGQV.js.map +1 -0
  13. package/dist/{chunk-3W7FXRO5.js → chunk-56TC4CPT.js} +4 -4
  14. package/dist/{chunk-3W7FXRO5.js.map → chunk-56TC4CPT.js.map} +1 -1
  15. package/dist/{chunk-NCT5WXKG.js → chunk-5ACHKT35.js} +3 -3
  16. package/dist/{chunk-NCT5WXKG.js.map → chunk-5ACHKT35.js.map} +1 -1
  17. package/dist/{chunk-GGUWEAYD.js → chunk-5E44I7PB.js} +3 -3
  18. package/dist/{chunk-GGUWEAYD.js.map → chunk-5E44I7PB.js.map} +1 -1
  19. package/dist/{chunk-T6XRYT6Q.js → chunk-5K2SOCOX.js} +3 -3
  20. package/dist/{chunk-T6XRYT6Q.js.map → chunk-5K2SOCOX.js.map} +1 -1
  21. package/dist/{chunk-VT4IMHGE.js → chunk-5TABQJDW.js} +4 -4
  22. package/dist/chunk-5TABQJDW.js.map +1 -0
  23. package/dist/{chunk-4GVOOXYD.js → chunk-6ABGMOE2.js} +5 -5
  24. package/dist/chunk-6ABGMOE2.js.map +1 -0
  25. package/dist/{chunk-Q43KJP5A.js → chunk-6F5NWXZF.js} +7 -7
  26. package/dist/{chunk-Q43KJP5A.js.map → chunk-6F5NWXZF.js.map} +1 -1
  27. package/dist/{chunk-4RSHPKHB.js → chunk-6KMRMXR6.js} +3 -3
  28. package/dist/{chunk-4RSHPKHB.js.map → chunk-6KMRMXR6.js.map} +1 -1
  29. package/dist/{chunk-7J5OM4ZD.js → chunk-7CMOCWFX.js} +4 -4
  30. package/dist/{chunk-7J5OM4ZD.js.map → chunk-7CMOCWFX.js.map} +1 -1
  31. package/dist/{chunk-G7PBPX3K.js → chunk-7VGF6ZVE.js} +4 -4
  32. package/dist/{chunk-G7PBPX3K.js.map → chunk-7VGF6ZVE.js.map} +1 -1
  33. package/dist/{chunk-E2TI5V67.js → chunk-A4O3USMA.js} +3 -3
  34. package/dist/{chunk-E2TI5V67.js.map → chunk-A4O3USMA.js.map} +1 -1
  35. package/dist/{chunk-UPK5B2FL.js → chunk-AKRVZ2YW.js} +6 -6
  36. package/dist/chunk-AKRVZ2YW.js.map +1 -0
  37. package/dist/{chunk-VBJ26PZJ.js → chunk-AP3T3KMY.js} +3 -3
  38. package/dist/{chunk-VBJ26PZJ.js.map → chunk-AP3T3KMY.js.map} +1 -1
  39. package/dist/{chunk-X3AXEE3S.js → chunk-AR7K7Y4L.js} +3 -3
  40. package/dist/{chunk-X3AXEE3S.js.map → chunk-AR7K7Y4L.js.map} +1 -1
  41. package/dist/{chunk-WKWLKGNI.js → chunk-ARYBNQNS.js} +4 -4
  42. package/dist/chunk-ARYBNQNS.js.map +1 -0
  43. package/dist/{chunk-P27ERD6W.js → chunk-B2OCNHUW.js} +8 -8
  44. package/dist/{chunk-P27ERD6W.js.map → chunk-B2OCNHUW.js.map} +1 -1
  45. package/dist/{chunk-3NLWCX2F.js → chunk-DI3AISAZ.js} +3 -3
  46. package/dist/{chunk-3NLWCX2F.js.map → chunk-DI3AISAZ.js.map} +1 -1
  47. package/dist/{chunk-COZXTBIU.js → chunk-DSCLJ3GK.js} +30 -11
  48. package/dist/chunk-DSCLJ3GK.js.map +1 -0
  49. package/dist/{chunk-3KOLK3OB.js → chunk-EC5YEK3C.js} +3 -3
  50. package/dist/{chunk-3KOLK3OB.js.map → chunk-EC5YEK3C.js.map} +1 -1
  51. package/dist/{chunk-YUHPTV2A.js → chunk-EDSDAX56.js} +3 -3
  52. package/dist/{chunk-YUHPTV2A.js.map → chunk-EDSDAX56.js.map} +1 -1
  53. package/dist/{chunk-IRIIK3BU.js → chunk-F4EX3622.js} +10 -10
  54. package/dist/chunk-F4EX3622.js.map +1 -0
  55. package/dist/{chunk-XYYOV5GW.js → chunk-F5X2BBGU.js} +4 -4
  56. package/dist/{chunk-XYYOV5GW.js.map → chunk-F5X2BBGU.js.map} +1 -1
  57. package/dist/{chunk-BS5XDYOE.js → chunk-FLERVSKG.js} +5 -5
  58. package/dist/{chunk-BS5XDYOE.js.map → chunk-FLERVSKG.js.map} +1 -1
  59. package/dist/{chunk-TAZPML2P.js → chunk-G2CMEHW6.js} +3 -3
  60. package/dist/{chunk-TAZPML2P.js.map → chunk-G2CMEHW6.js.map} +1 -1
  61. package/dist/{chunk-TQBUBD3E.js → chunk-H7JHFBFD.js} +3 -3
  62. package/dist/{chunk-TQBUBD3E.js.map → chunk-H7JHFBFD.js.map} +1 -1
  63. package/dist/{chunk-Y4RKKQMB.js → chunk-HA5YVDHW.js} +3 -3
  64. package/dist/chunk-HA5YVDHW.js.map +1 -0
  65. package/dist/{chunk-ZKK7L7H7.js → chunk-HP7LEQJR.js} +3 -3
  66. package/dist/{chunk-ZKK7L7H7.js.map → chunk-HP7LEQJR.js.map} +1 -1
  67. package/dist/{chunk-W7S7GPU5.js → chunk-HV2ZZXFN.js} +4 -4
  68. package/dist/{chunk-W7S7GPU5.js.map → chunk-HV2ZZXFN.js.map} +1 -1
  69. package/dist/{chunk-K45MMHLA.js → chunk-HVFACGNK.js} +4 -4
  70. package/dist/{chunk-K45MMHLA.js.map → chunk-HVFACGNK.js.map} +1 -1
  71. package/dist/{chunk-R3HUGCGR.js → chunk-HZ47LQFJ.js} +4 -4
  72. package/dist/{chunk-R3HUGCGR.js.map → chunk-HZ47LQFJ.js.map} +1 -1
  73. package/dist/{chunk-FCIF6H6E.js → chunk-IA24GUNV.js} +24 -24
  74. package/dist/chunk-IA24GUNV.js.map +1 -0
  75. package/dist/{chunk-D6TH3EGA.js → chunk-IQKKPOI7.js} +4 -4
  76. package/dist/{chunk-D6TH3EGA.js.map → chunk-IQKKPOI7.js.map} +1 -1
  77. package/dist/{chunk-WXBC3D2N.js → chunk-IRFAIJLV.js} +4 -4
  78. package/dist/{chunk-WXBC3D2N.js.map → chunk-IRFAIJLV.js.map} +1 -1
  79. package/dist/{chunk-SXPBKGLT.js → chunk-J62NPPDO.js} +3 -3
  80. package/dist/{chunk-SXPBKGLT.js.map → chunk-J62NPPDO.js.map} +1 -1
  81. package/dist/{chunk-5U5XAOES.js → chunk-JDG5A44W.js} +73 -34
  82. package/dist/chunk-JDG5A44W.js.map +1 -0
  83. package/dist/{chunk-Z4KW5VW6.js → chunk-JRVUEOKT.js} +5 -5
  84. package/dist/{chunk-Z4KW5VW6.js.map → chunk-JRVUEOKT.js.map} +1 -1
  85. package/dist/{chunk-NXQ25PKF.js → chunk-K43MPWTO.js} +7 -7
  86. package/dist/chunk-K43MPWTO.js.map +1 -0
  87. package/dist/{chunk-2ROFZG3A.js → chunk-KA7747GR.js} +3 -3
  88. package/dist/{chunk-2ROFZG3A.js.map → chunk-KA7747GR.js.map} +1 -1
  89. package/dist/{chunk-OBRJXVWO.js → chunk-KYURFRCH.js} +4 -4
  90. package/dist/{chunk-OBRJXVWO.js.map → chunk-KYURFRCH.js.map} +1 -1
  91. package/dist/{chunk-EYSTEGV5.js → chunk-LR56MGWT.js} +7 -7
  92. package/dist/{chunk-EYSTEGV5.js.map → chunk-LR56MGWT.js.map} +1 -1
  93. package/dist/{chunk-6ZAMTPGN.js → chunk-M6VBDPNQ.js} +3 -3
  94. package/dist/{chunk-6ZAMTPGN.js.map → chunk-M6VBDPNQ.js.map} +1 -1
  95. package/dist/{chunk-JPA2VQRW.js → chunk-MAM5PTRV.js} +3 -3
  96. package/dist/{chunk-JPA2VQRW.js.map → chunk-MAM5PTRV.js.map} +1 -1
  97. package/dist/{chunk-3L5G7VI2.js → chunk-MAM6VUKD.js} +3 -3
  98. package/dist/chunk-MAM6VUKD.js.map +1 -0
  99. package/dist/{chunk-LLI3JFJL.js → chunk-MLSIZ6JU.js} +4 -4
  100. package/dist/{chunk-LLI3JFJL.js.map → chunk-MLSIZ6JU.js.map} +1 -1
  101. package/dist/{chunk-U2R47SPY.js → chunk-NULX3RRN.js} +4 -4
  102. package/dist/{chunk-U2R47SPY.js.map → chunk-NULX3RRN.js.map} +1 -1
  103. package/dist/{chunk-GL56KIFL.js → chunk-OG3M4CMJ.js} +3 -3
  104. package/dist/{chunk-GL56KIFL.js.map → chunk-OG3M4CMJ.js.map} +1 -1
  105. package/dist/{chunk-7EGN7IGY.js → chunk-OR3NPCY2.js} +3 -3
  106. package/dist/{chunk-7EGN7IGY.js.map → chunk-OR3NPCY2.js.map} +1 -1
  107. package/dist/{chunk-5I7AXWJU.js → chunk-PGRMKSVA.js} +4 -4
  108. package/dist/{chunk-5I7AXWJU.js.map → chunk-PGRMKSVA.js.map} +1 -1
  109. package/dist/{chunk-VZZ3HP7G.js → chunk-PM344VOQ.js} +3 -3
  110. package/dist/{chunk-VZZ3HP7G.js.map → chunk-PM344VOQ.js.map} +1 -1
  111. package/dist/{chunk-46ESMCEQ.js → chunk-QBLU7J34.js} +5 -5
  112. package/dist/chunk-QBLU7J34.js.map +1 -0
  113. package/dist/{chunk-U74PNG4S.js → chunk-SMVH56FQ.js} +3 -3
  114. package/dist/{chunk-U74PNG4S.js.map → chunk-SMVH56FQ.js.map} +1 -1
  115. package/dist/{chunk-DYDXGWH2.js → chunk-T3LWBCVR.js} +4 -4
  116. package/dist/chunk-T3LWBCVR.js.map +1 -0
  117. package/dist/{chunk-ZP4HYVDG.js → chunk-TA4HCLP3.js} +3 -3
  118. package/dist/{chunk-ZP4HYVDG.js.map → chunk-TA4HCLP3.js.map} +1 -1
  119. package/dist/{chunk-7HT32DZG.js → chunk-TGLALXPU.js} +3 -3
  120. package/dist/{chunk-7HT32DZG.js.map → chunk-TGLALXPU.js.map} +1 -1
  121. package/dist/{chunk-5GE3BQA7.js → chunk-USPITOG4.js} +5 -5
  122. package/dist/chunk-USPITOG4.js.map +1 -0
  123. package/dist/{chunk-XLTSCY22.js → chunk-UYPYAOET.js} +4 -4
  124. package/dist/chunk-UYPYAOET.js.map +1 -0
  125. package/dist/{chunk-P7D6S6GX.js → chunk-V7O4X3AE.js} +38 -4
  126. package/dist/chunk-V7O4X3AE.js.map +1 -0
  127. package/dist/{chunk-2YSZPUQZ.js → chunk-VTDSGJ4R.js} +3 -3
  128. package/dist/{chunk-2YSZPUQZ.js.map → chunk-VTDSGJ4R.js.map} +1 -1
  129. package/dist/{chunk-4Y72SPNL.js → chunk-VUHJTTPV.js} +4 -4
  130. package/dist/chunk-VUHJTTPV.js.map +1 -0
  131. package/dist/{chunk-VLDAHAG6.js → chunk-VV6QE3M2.js} +4 -4
  132. package/dist/{chunk-VLDAHAG6.js.map → chunk-VV6QE3M2.js.map} +1 -1
  133. package/dist/{chunk-H5N3VPBG.js → chunk-WBERMEN7.js} +3 -3
  134. package/dist/{chunk-H5N3VPBG.js.map → chunk-WBERMEN7.js.map} +1 -1
  135. package/dist/{chunk-OXDWUKGP.js → chunk-WCMRVCIM.js} +4 -4
  136. package/dist/chunk-WCMRVCIM.js.map +1 -0
  137. package/dist/{chunk-IFHF4UES.js → chunk-WQI2USN7.js} +11 -11
  138. package/dist/chunk-WQI2USN7.js.map +1 -0
  139. package/dist/{chunk-CKD4UBV6.js → chunk-WVFQKBDB.js} +3 -3
  140. package/dist/{chunk-CKD4UBV6.js.map → chunk-WVFQKBDB.js.map} +1 -1
  141. package/dist/{chunk-3NSIUZGP.js → chunk-WZ2J4ALB.js} +3 -3
  142. package/dist/{chunk-3NSIUZGP.js.map → chunk-WZ2J4ALB.js.map} +1 -1
  143. package/dist/{chunk-7TF5PVEU.js → chunk-X5XP5QVO.js} +5 -5
  144. package/dist/chunk-X5XP5QVO.js.map +1 -0
  145. package/dist/{chunk-7Y2UQMX6.js → chunk-XKO6G5H2.js} +36 -36
  146. package/dist/chunk-XKO6G5H2.js.map +1 -0
  147. package/dist/{chunk-SUU3HNOX.js → chunk-XORDGKZI.js} +4 -4
  148. package/dist/{chunk-SUU3HNOX.js.map → chunk-XORDGKZI.js.map} +1 -1
  149. package/dist/{chunk-VAVE4ZJF.js → chunk-YGLD22TU.js} +3 -3
  150. package/dist/chunk-YGLD22TU.js.map +1 -0
  151. package/dist/{chunk-XOGMDABS.js → chunk-ZHUW6UYD.js} +8 -8
  152. package/dist/chunk-ZHUW6UYD.js.map +1 -0
  153. package/dist/{chunk-PWCMCMDN.js → chunk-ZMUUEXVD.js} +3 -3
  154. package/dist/{chunk-PWCMCMDN.js.map → chunk-ZMUUEXVD.js.map} +1 -1
  155. package/dist/components/advanced/Calendar/index.js +5 -5
  156. package/dist/components/advanced/EventCalendar/index.js +5 -5
  157. package/dist/components/advanced/FilterBuilder/index.js +7 -7
  158. package/dist/components/advanced/MarkdownEditor/index.js +2 -2
  159. package/dist/components/advanced/ReportBuilder/index.js +3 -3
  160. package/dist/components/advanced/RichTextEditor/index.js +2 -2
  161. package/dist/components/advanced/index.js +18 -18
  162. package/dist/components/data-display/Callout/index.js +1 -1
  163. package/dist/components/data-display/Carousel/index.js +5 -5
  164. package/dist/components/data-display/ChartCard/index.js +2 -2
  165. package/dist/components/data-display/DataTable/FilterBuilder/index.js +7 -7
  166. package/dist/components/data-display/DataTable/index.js +10 -10
  167. package/dist/components/data-display/ImageGallery/index.js +6 -6
  168. package/dist/components/data-display/Item/index.js +2 -2
  169. package/dist/components/data-display/KPICard/index.js +3 -3
  170. package/dist/components/data-display/List/index.js +2 -2
  171. package/dist/components/data-display/SingleStat/index.js +1 -1
  172. package/dist/components/data-display/index.js +26 -26
  173. package/dist/components/feedback/AlertDialog/index.js +5 -5
  174. package/dist/components/feedback/ConfirmModal/index.js +6 -6
  175. package/dist/components/feedback/Modal/index.js +1 -1
  176. package/dist/components/feedback/UpdatesWidget/index.js +1 -1
  177. package/dist/components/feedback/index.js +9 -9
  178. package/dist/components/forms/ColorPicker/index.js +1 -1
  179. package/dist/components/forms/Combobox/index.js +1 -1
  180. package/dist/components/forms/DatePicker/index.js +6 -6
  181. package/dist/components/forms/DateRangePicker/index.js +6 -6
  182. package/dist/components/forms/EmailInput/index.js +3 -3
  183. package/dist/components/forms/Field/index.js +3 -3
  184. package/dist/components/forms/Form/index.js +2 -2
  185. package/dist/components/forms/InputGroup/index.js +8 -8
  186. package/dist/components/forms/InputOTPField/index.js +4 -4
  187. package/dist/components/forms/NativeSelect/index.js +1 -1
  188. package/dist/components/forms/NumberInput/index.js +2 -2
  189. package/dist/components/forms/PasswordInput/index.js +3 -3
  190. package/dist/components/forms/PaymentInput/index.js +1 -1
  191. package/dist/components/forms/PhoneInput/index.js +1 -1
  192. package/dist/components/forms/RadioButton/index.js +1 -1
  193. package/dist/components/forms/SearchInput/index.js +3 -3
  194. package/dist/components/forms/Slider/index.js +1 -1
  195. package/dist/components/forms/TagsInput/index.js +2 -2
  196. package/dist/components/forms/TextInput/index.js +2 -2
  197. package/dist/components/forms/Textarea/index.js +1 -1
  198. package/dist/components/forms/TextareaField/index.js +5 -5
  199. package/dist/components/forms/URLInput/index.js +3 -3
  200. package/dist/components/forms/index.js +33 -33
  201. package/dist/components/index.js +111 -111
  202. package/dist/components/layout/Card/index.js +1 -1
  203. package/dist/components/layout/Section/index.js +1 -1
  204. package/dist/components/layout/index.js +5 -5
  205. package/dist/components/navigation/AccountSwitch/index.js +3 -3
  206. package/dist/components/navigation/ContextMenu/index.js +1 -1
  207. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  208. package/dist/components/navigation/FileTree/index.js +1 -1
  209. package/dist/components/navigation/LogoConta/index.js +1 -1
  210. package/dist/components/navigation/Menu/index.js +1 -1
  211. package/dist/components/navigation/Menubar/index.js +1 -1
  212. package/dist/components/navigation/Navbar/index.js +1 -1
  213. package/dist/components/navigation/Pagination/index.js +5 -5
  214. package/dist/components/navigation/Sidebar/index.js +7 -7
  215. package/dist/components/navigation/Toolbar/index.js +1 -1
  216. package/dist/components/navigation/index.js +21 -21
  217. package/dist/components/primitives/Badge/index.js +1 -1
  218. package/dist/components/primitives/Button/index.js +4 -4
  219. package/dist/components/primitives/ButtonGroup/index.js +2 -2
  220. package/dist/components/primitives/ConfirmButton/index.js +6 -6
  221. package/dist/components/primitives/Divider/index.js +1 -1
  222. package/dist/components/primitives/FolderStack/index.js +1 -1
  223. package/dist/components/primitives/Image/index.js +1 -1
  224. package/dist/components/primitives/Label/index.js +1 -1
  225. package/dist/components/primitives/SplitButton/index.js +2 -2
  226. package/dist/components/primitives/StatusIndicator/index.js +1 -1
  227. package/dist/components/primitives/Tag/index.js +1 -1
  228. package/dist/components/primitives/Thumbnail/index.js +2 -2
  229. package/dist/components/primitives/index.js +17 -17
  230. package/dist/components/workflow/ApprovalFlow/index.js +5 -5
  231. package/dist/components/workflow/CommentSystem/index.js +6 -6
  232. package/dist/components/workflow/Dashboard/index.js +5 -5
  233. package/dist/components/workflow/DashboardBuilder/index.js +8 -8
  234. package/dist/components/workflow/KanbanBoard/index.js +5 -5
  235. package/dist/components/workflow/ReportGenerator/index.js +6 -6
  236. package/dist/components/workflow/Stepper/index.js +1 -1
  237. package/dist/components/workflow/TaskStatus/index.js +2 -2
  238. package/dist/components/workflow/Wizard/index.js +6 -6
  239. package/dist/components/workflow/index.js +19 -19
  240. package/dist/index.d.ts +41 -12
  241. package/dist/index.js +111 -111
  242. package/dist/styles.css +27 -703
  243. package/package.json +2 -2
  244. package/dist/chunk-3L5G7VI2.js.map +0 -1
  245. package/dist/chunk-46ESMCEQ.js.map +0 -1
  246. package/dist/chunk-4GVOOXYD.js.map +0 -1
  247. package/dist/chunk-4Y72SPNL.js.map +0 -1
  248. package/dist/chunk-5GE3BQA7.js.map +0 -1
  249. package/dist/chunk-5U5XAOES.js.map +0 -1
  250. package/dist/chunk-66TBTTZO.js.map +0 -1
  251. package/dist/chunk-7TF5PVEU.js.map +0 -1
  252. package/dist/chunk-7Y2UQMX6.js.map +0 -1
  253. package/dist/chunk-COZXTBIU.js.map +0 -1
  254. package/dist/chunk-DYDXGWH2.js.map +0 -1
  255. package/dist/chunk-FCIF6H6E.js.map +0 -1
  256. package/dist/chunk-IFHF4UES.js.map +0 -1
  257. package/dist/chunk-IRIIK3BU.js.map +0 -1
  258. package/dist/chunk-NXQ25PKF.js.map +0 -1
  259. package/dist/chunk-OXDWUKGP.js.map +0 -1
  260. package/dist/chunk-P7D6S6GX.js.map +0 -1
  261. package/dist/chunk-U6EOAIPK.js.map +0 -1
  262. package/dist/chunk-UPK5B2FL.js.map +0 -1
  263. package/dist/chunk-VAVE4ZJF.js.map +0 -1
  264. package/dist/chunk-VORFH6HQ.js.map +0 -1
  265. package/dist/chunk-VT4IMHGE.js.map +0 -1
  266. package/dist/chunk-WKWLKGNI.js.map +0 -1
  267. package/dist/chunk-XLTSCY22.js.map +0 -1
  268. package/dist/chunk-XOGMDABS.js.map +0 -1
  269. package/dist/chunk-Y4RKKQMB.js.map +0 -1
@@ -14,7 +14,7 @@ var textareaVariants = cva(
14
14
  "dark:bg-input",
15
15
  "disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-[color:var(--textarea-bg-disabled)] disabled:text-[color:var(--textarea-fg-disabled)] disabled:border-[color:var(--textarea-border-disabled)]",
16
16
  "hover:border-[color:var(--border-semantic-strong)]",
17
- "focus-visible:border-[color:var(--textarea-border-focus)] focus-visible:ring-[color:var(--textarea-border-focus)]/20 focus-visible:ring-4",
17
+ "focus-visible:border-[color:var(--textarea-border-focus)] focus-visible:ring-[color:var(--textarea-border-focus)]/20 focus-visible:ring-[length:var(--textarea-ring-width)]",
18
18
  "aria-invalid:ring-[color:var(--textarea-border-error)]/20 dark:aria-invalid:ring-[color:var(--textarea-border-error)]/40 aria-invalid:border-[color:var(--textarea-border-error)]",
19
19
  "field-sizing-content"
20
20
  ],
@@ -63,5 +63,5 @@ function Textarea({
63
63
  }
64
64
 
65
65
  export { Textarea, textareaVariants };
66
- //# sourceMappingURL=chunk-U6EOAIPK.js.map
67
- //# sourceMappingURL=chunk-U6EOAIPK.js.map
66
+ //# sourceMappingURL=chunk-2X35C55E.js.map
67
+ //# sourceMappingURL=chunk-2X35C55E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/forms/Textarea/Textarea.variants.ts","../src/components/forms/Textarea/Textarea.tsx"],"names":[],"mappings":";;;;;AAKO,IAAM,gBAAA,GAAmB,GAAA;AAAA;AAAA,EAE9B;AAAA,IACE,2DAAA;AAAA,IACA,+EAAA;AAAA,IACA,6HAAA;AAAA,IACA,yDAAA;AAAA,IACA,wDAAA;AAAA,IACA,eAAA;AAAA,IACA,oNAAA;AAAA,IACA,oDAAA;AAAA,IACA,6KAAA;AAAA,IACA,mLAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,kJAAA;AAAA,QACJ,EAAA,EAAI,kJAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,iCAAA;AAAA,QACT,MAAA,EAAQ,yDAAA;AAAA,QACR,OAAA,EAAS,yFAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,aAAA;AAAA,QACN,QAAA,EAAU,UAAA;AAAA,QACV,UAAA,EAAY,UAAA;AAAA,QACZ,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,MAAA,EAAQ;AAAA;AACV;AAEJ;ACvCA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACE,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,MAAM,OAAA,EAAS,MAAA,EAAQ,CAAA,EAAG,SAAS,CAAA;AAAA,MACpE,WAAA,EAAU,UAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-2X35C55E.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Textarea variant styles using CVA\n */\nexport const textareaVariants = cva(\n // Base styles\n [\n \"w-full min-w-0 transition-[color,box-shadow] outline-none\",\n \"rounded-[var(--textarea-radius)] border-[length:var(--textarea-border-width)]\",\n \"bg-[color:var(--textarea-bg-default)] text-[color:var(--textarea-fg-default)] border-[color:var(--textarea-border-default)]\",\n \"placeholder:text-[color:var(--textarea-fg-placeholder)]\",\n \"selection:bg-primary selection:text-primary-foreground\",\n \"dark:bg-input\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-[color:var(--textarea-bg-disabled)] disabled:text-[color:var(--textarea-fg-disabled)] disabled:border-[color:var(--textarea-border-disabled)]\",\n \"hover:border-[color:var(--border-semantic-strong)]\",\n \"focus-visible:border-[color:var(--textarea-border-focus)] focus-visible:ring-[color:var(--textarea-border-focus)]/20 focus-visible:ring-[length:var(--textarea-ring-width)]\",\n \"aria-invalid:ring-[color:var(--textarea-border-error)]/20 dark:aria-invalid:ring-[color:var(--textarea-border-error)]/40 aria-invalid:border-[color:var(--textarea-border-error)]\",\n \"field-sizing-content\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-[var(--textarea-size-sm-min-h)] px-[var(--textarea-size-sm-px)] py-[var(--textarea-size-sm-py)] text-[length:var(--textarea-size-sm-text)]\",\n md: \"min-h-[var(--textarea-size-md-min-h)] px-[var(--textarea-size-md-px)] py-[var(--textarea-size-md-py)] text-[length:var(--textarea-size-md-text)]\",\n lg: \"min-h-[var(--textarea-size-lg-min-h)] px-[var(--textarea-size-lg-px)] py-[var(--textarea-size-lg-py)] text-[length:var(--textarea-size-lg-text)]\",\n },\n variant: {\n default: \"shadow-[var(--textarea-shadow)]\",\n filled: \"border-transparent bg-[color:var(--textarea-bg-filled)]\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-[color:var(--textarea-border-default)] px-0\",\n unstyled: \"border-0 bg-transparent p-0 shadow-none focus-visible:ring-0\",\n },\n resize: {\n none: \"resize-none\",\n vertical: \"resize-y\",\n horizontal: \"resize-x\",\n both: \"resize\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n resize: \"vertical\",\n },\n }\n)\n\nexport type TextareaVariantProps = VariantProps<typeof textareaVariants>\n","import type { TextareaProps } from \"./Textarea.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { textareaVariants } from \"./Textarea.variants\"\n\nfunction Textarea({\n className,\n size,\n variant,\n resize,\n ...props\n}: TextareaProps) {\n return (\n <textarea\n className={cn(textareaVariants({ size, variant, resize }), className)}\n data-slot=\"textarea\"\n {...props}\n />\n )\n}\n\nexport { Textarea }\n"]}
@@ -1,6 +1,6 @@
1
- import { Textarea } from './chunk-U6EOAIPK.js';
2
- import { TextInput } from './chunk-PWCMCMDN.js';
3
- import { Button } from './chunk-7TF5PVEU.js';
1
+ import { Textarea } from './chunk-2X35C55E.js';
2
+ import { TextInput } from './chunk-ZMUUEXVD.js';
3
+ import { Button } from './chunk-X5XP5QVO.js';
4
4
  import { cn } from './chunk-HRNDJU7D.js';
5
5
  import * as React from 'react';
6
6
  import { cva } from 'class-variance-authority';
@@ -179,5 +179,5 @@ function InputGroupTextarea({
179
179
  }
180
180
 
181
181
  export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupInputVariants, inputGroupTextareaVariants, inputGroupVariants };
182
- //# sourceMappingURL=chunk-UYC7M3FM.js.map
183
- //# sourceMappingURL=chunk-UYC7M3FM.js.map
182
+ //# sourceMappingURL=chunk-34WNJNPL.js.map
183
+ //# sourceMappingURL=chunk-34WNJNPL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/InputGroup/InputGroup.variants.ts","../src/components/forms/InputGroup/InputGroup.tsx"],"names":[],"mappings":"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","file":"chunk-UYC7M3FM.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * InputGroup container variant styles using CVA\n */\nexport const inputGroupVariants = cva(\n // Base styles\n [\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-[var(--input-group-radius)] border shadow-xs transition-[color,box-shadow] outline-none\",\n \"min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8\",\n md: \"h-9\",\n lg: \"h-10\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputGroupAddon variant styles using CVA\n */\nexport const inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[var(--input-group-button-radius)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\n/**\n * InputGroupButton variant styles using CVA\n */\nexport const inputGroupButtonVariants = cva(\n \"text-sm shadow-none flex gap-2 items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[var(--input-group-button-radius)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-[var(--input-group-button-radius)] has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[var(--input-group-button-radius)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\n/**\n * InputGroupInput variant styles (for the input within the group)\n */\nexport const inputGroupInputVariants = cva(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\"\n)\n\n/**\n * InputGroupTextarea variant styles (for the textarea within the group)\n */\nexport const inputGroupTextareaVariants = cva(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\"\n)\n\n// Export variant types\nexport type InputGroupVariantProps = VariantProps<typeof inputGroupVariants>\nexport type InputGroupAddonVariantProps = VariantProps<typeof inputGroupAddonVariants>\nexport type InputGroupButtonVariantProps = VariantProps<typeof inputGroupButtonVariants>\nexport type InputGroupInputVariantProps = VariantProps<typeof inputGroupInputVariants>\nexport type InputGroupTextareaVariantProps = VariantProps<typeof inputGroupTextareaVariants>\n","\"use client\"\n\nimport type {\n InputGroupAddonProps,\n InputGroupButtonProps,\n InputGroupInputProps,\n InputGroupProps,\n InputGroupTextareaProps,\n InputGroupTextProps,\n} from \"./InputGroup.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Button } from \"../../primitives/Button\"\nimport { Textarea } from \"../Textarea\"\nimport { TextInput, type TextInputProps } from \"../TextInput\"\nimport {\n inputGroupAddonVariants,\n inputGroupButtonVariants,\n inputGroupInputVariants,\n inputGroupTextareaVariants,\n inputGroupVariants,\n} from \"./InputGroup.variants\"\n\n/**\n * Context that propagates the root `disabled` state down to control children\n * (InputGroupInput / InputGroupTextarea / InputGroupButton) so a single\n * `<InputGroup disabled>` disables the whole composite.\n */\nconst InputGroupContext = React.createContext<{ disabled?: boolean }>({})\n\nfunction InputGroup({\n className,\n size,\n disabled,\n ...props\n}: InputGroupProps) {\n return (\n <InputGroupContext value={{ disabled }}>\n <div\n className={cn(inputGroupVariants({ size }), className)}\n data-disabled={disabled ?? undefined}\n data-slot=\"input-group\"\n role=\"group\"\n {...props}\n />\n </InputGroupContext>\n )\n}\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: InputGroupAddonProps) {\n return (\n <div\n className={cn(inputGroupAddonVariants({ align }), className)}\n data-align={align}\n data-slot=\"input-group-addon\"\n role=\"group\"\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n disabled,\n ...props\n}: InputGroupButtonProps) {\n const group = React.use(InputGroupContext)\n\n return (\n <Button\n className={cn(inputGroupButtonVariants({ size }), className)}\n data-size={size}\n disabled={disabled ?? group.disabled}\n type={type}\n variant={variant}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: InputGroupTextProps) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n disabled,\n ...props\n}: InputGroupInputProps) {\n const group = React.use(InputGroupContext)\n\n return (\n <TextInput\n className={cn(inputGroupInputVariants(), className)}\n data-slot=\"input-group-control\"\n disabled={disabled ?? group.disabled}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n disabled,\n ...props\n}: InputGroupTextareaProps) {\n const group = React.use(InputGroupContext)\n\n return (\n <Textarea\n className={cn(inputGroupTextareaVariants(), className)}\n data-slot=\"input-group-control\"\n disabled={disabled ?? group.disabled}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n}\n\n// Re-export types\nexport type { TextInputProps }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/InputGroup/InputGroup.variants.ts","../src/components/forms/InputGroup/InputGroup.tsx"],"names":[],"mappings":"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","file":"chunk-34WNJNPL.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * InputGroup container variant styles using CVA\n */\nexport const inputGroupVariants = cva(\n // Base styles\n [\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-[var(--input-group-radius)] border shadow-xs transition-[color,box-shadow] outline-none\",\n \"min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8\",\n md: \"h-9\",\n lg: \"h-10\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputGroupAddon variant styles using CVA\n */\nexport const inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[var(--input-group-button-radius)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\n/**\n * InputGroupButton variant styles using CVA\n */\nexport const inputGroupButtonVariants = cva(\n \"text-sm shadow-none flex gap-2 items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[var(--input-group-button-radius)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-[var(--input-group-button-radius)] has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[var(--input-group-button-radius)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\n/**\n * InputGroupInput variant styles (for the input within the group)\n */\nexport const inputGroupInputVariants = cva(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\"\n)\n\n/**\n * InputGroupTextarea variant styles (for the textarea within the group)\n */\nexport const inputGroupTextareaVariants = cva(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\"\n)\n\n// Export variant types\nexport type InputGroupVariantProps = VariantProps<typeof inputGroupVariants>\nexport type InputGroupAddonVariantProps = VariantProps<typeof inputGroupAddonVariants>\nexport type InputGroupButtonVariantProps = VariantProps<typeof inputGroupButtonVariants>\nexport type InputGroupInputVariantProps = VariantProps<typeof inputGroupInputVariants>\nexport type InputGroupTextareaVariantProps = VariantProps<typeof inputGroupTextareaVariants>\n","\"use client\"\n\nimport type {\n InputGroupAddonProps,\n InputGroupButtonProps,\n InputGroupInputProps,\n InputGroupProps,\n InputGroupTextareaProps,\n InputGroupTextProps,\n} from \"./InputGroup.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Button } from \"../../primitives/Button\"\nimport { Textarea } from \"../Textarea\"\nimport { TextInput, type TextInputProps } from \"../TextInput\"\nimport {\n inputGroupAddonVariants,\n inputGroupButtonVariants,\n inputGroupInputVariants,\n inputGroupTextareaVariants,\n inputGroupVariants,\n} from \"./InputGroup.variants\"\n\n/**\n * Context that propagates the root `disabled` state down to control children\n * (InputGroupInput / InputGroupTextarea / InputGroupButton) so a single\n * `<InputGroup disabled>` disables the whole composite.\n */\nconst InputGroupContext = React.createContext<{ disabled?: boolean }>({})\n\nfunction InputGroup({\n className,\n size,\n disabled,\n ...props\n}: InputGroupProps) {\n return (\n <InputGroupContext value={{ disabled }}>\n <div\n className={cn(inputGroupVariants({ size }), className)}\n data-disabled={disabled ?? undefined}\n data-slot=\"input-group\"\n role=\"group\"\n {...props}\n />\n </InputGroupContext>\n )\n}\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: InputGroupAddonProps) {\n return (\n <div\n className={cn(inputGroupAddonVariants({ align }), className)}\n data-align={align}\n data-slot=\"input-group-addon\"\n role=\"group\"\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n disabled,\n ...props\n}: InputGroupButtonProps) {\n const group = React.use(InputGroupContext)\n\n return (\n <Button\n className={cn(inputGroupButtonVariants({ size }), className)}\n data-size={size}\n disabled={disabled ?? group.disabled}\n type={type}\n variant={variant}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: InputGroupTextProps) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n disabled,\n ...props\n}: InputGroupInputProps) {\n const group = React.use(InputGroupContext)\n\n return (\n <TextInput\n className={cn(inputGroupInputVariants(), className)}\n data-slot=\"input-group-control\"\n disabled={disabled ?? group.disabled}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n disabled,\n ...props\n}: InputGroupTextareaProps) {\n const group = React.use(InputGroupContext)\n\n return (\n <Textarea\n className={cn(inputGroupTextareaVariants(), className)}\n data-slot=\"input-group-control\"\n disabled={disabled ?? group.disabled}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n}\n\n// Re-export types\nexport type { TextInputProps }\n"]}
@@ -3,7 +3,7 @@ import { cva } from 'class-variance-authority';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
5
5
  var logoContaVariants = cva(
6
- "inline-grid size-[var(--logo-conta-size)] shrink-0 place-items-center overflow-hidden rounded-full",
6
+ "inline-grid size-[var(--logo-conta-size)] shrink-0 place-items-center overflow-hidden rounded-[var(--radius-sm)]",
7
7
  {
8
8
  variants: {
9
9
  tone: {
@@ -42,5 +42,5 @@ function LogoConta({
42
42
  }
43
43
 
44
44
  export { LogoConta, logoContaVariants };
45
- //# sourceMappingURL=chunk-VORFH6HQ.js.map
46
- //# sourceMappingURL=chunk-VORFH6HQ.js.map
45
+ //# sourceMappingURL=chunk-37KLBMFQ.js.map
46
+ //# sourceMappingURL=chunk-37KLBMFQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/navigation/LogoConta/LogoConta.variants.ts","../src/components/navigation/LogoConta/LogoConta.tsx"],"names":[],"mappings":";;;;AAqBO,IAAM,iBAAA,GAAoB,GAAA;AAAA,EAC/B,kHAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,kEAAA;AAAA,QACN,IAAA,EAAM,qFAAA;AAAA,QACN,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;ACZA,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,IAAA,GAAO,MAAA;AAAA,EACP,GAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AAIjB,EAAA,MAAM,UAAA,GAAa,CAAC,GAAA,IAAO,GAAA,CAAI,MAAK,KAAM,EAAA;AAE1C,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAa,aAAa,IAAA,GAAO,MAAA;AAAA,MACjC,YAAA,EAAY,aAAa,MAAA,GAAY,GAAA;AAAA,MACrC,WAAW,EAAA,CAAG,iBAAA,CAAkB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACpD,WAAA,EAAU,YAAA;AAAA,MACV,WAAA,EAAW,IAAA;AAAA,MACX,IAAA,EAAM,aAAa,MAAA,GAAY,KAAA;AAAA,MAC9B,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,GAAA,uBAAO,KAAA,EAAA,EAAI,GAAA,EAAI,IAAG,SAAA,EAAU,0BAAA,EAA2B,KAAU,CAAA,GAAK;AAAA;AAAA,GACzE;AAEJ","file":"chunk-37KLBMFQ.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * LogoConta root styles.\n *\n * Figma: `Core Components — Seven > Logo-Conta` (node 1138:2959). A\n * rounded-square (radius-sm) colour-filled badge that frames a brand\n * logo/symbol — used in the app shell (sidebar header / account switcher,\n * Sidebar set 1091:9106).\n *\n * The badge size comes from `--logo-conta-size` (24px in Figma). Each\n * `tone` reuses an existing global token pair, mirroring the three example\n * accounts in Figma — no new colour tokens are introduced:\n * - `mint` → Plusdin → `--primary` (Figma default/green/500)\n * - `blue` → Brius → `--status-info-background` (Figma status/info)\n * - `lime` → Got All Cards → `--secondary`\n *\n * Tone backgrounds are tokenised presets for the documented example accounts;\n * for an account whose brand colour is none of the three, override the\n * background via `className`/`style`.\n */\nexport const logoContaVariants = cva(\n \"inline-grid size-[var(--logo-conta-size)] shrink-0 place-items-center overflow-hidden rounded-[var(--radius-sm)]\",\n {\n variants: {\n tone: {\n mint: \"bg-[color:var(--primary)] text-[color:var(--primary-foreground)]\",\n blue: \"bg-[color:var(--status-info-background)] text-[color:var(--status-info-foreground)]\",\n lime: \"bg-[color:var(--secondary)] text-[color:var(--secondary-foreground)]\",\n },\n },\n defaultVariants: {\n tone: \"mint\",\n },\n },\n)\n","import type { LogoContaProps } from \"./LogoConta.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { logoContaVariants } from \"./LogoConta.variants\"\n\n/**\n * LogoConta — rounded-square, colour-filled badge that frames an account's\n * brand logo/symbol. Part of the app shell (sidebar header / account switcher).\n *\n * Pass the mark via `children` (recommended — compose any SVG/letter over the\n * `tone` background) or via `src` (image URL). Provide `alt` with the account\n * name to expose `role=\"img\"`; omit it for a decorative badge (`aria-hidden`).\n *\n * @example\n * // Symbol composed over the tone background\n * <LogoConta alt=\"Plusdin\" tone=\"mint\">\n * <span className=\"text-xs font-bold\">p</span>\n * </LogoConta>\n *\n * @example\n * // Image logo\n * <LogoConta alt=\"Brius\" src=\"/logos/brius.svg\" tone=\"blue\" />\n */\nfunction LogoConta({\n className,\n tone = \"mint\",\n src,\n alt,\n children,\n ...props\n}: LogoContaProps) {\n // Labelled XOR decorative: a non-empty `alt` makes the badge an informative\n // image; otherwise it is hidden from assistive tech. The inner <img> is kept\n // decorative so the name is announced exactly once (via the wrapper).\n const decorative = !alt || alt.trim() === \"\"\n\n return (\n <span\n aria-hidden={decorative ? true : undefined}\n aria-label={decorative ? undefined : alt}\n className={cn(logoContaVariants({ tone }), className)}\n data-slot=\"logo-conta\"\n data-tone={tone}\n role={decorative ? undefined : \"img\"}\n {...props}\n >\n {src ? <img alt=\"\" className=\"size-full object-contain\" src={src} /> : children}\n </span>\n )\n}\n\nexport { LogoConta, logoContaVariants }\n"]}
@@ -1,4 +1,4 @@
1
- import { TextInput } from './chunk-PWCMCMDN.js';
1
+ import { TextInput } from './chunk-ZMUUEXVD.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import { CheckCircle2Icon, XCircleIcon } from 'lucide-react';
4
4
  import { cva } from 'class-variance-authority';
@@ -68,5 +68,5 @@ function EmailInput({
68
68
  }
69
69
 
70
70
  export { EmailInput, emailValidationIconVariants };
71
- //# sourceMappingURL=chunk-N4UTBJRY.js.map
72
- //# sourceMappingURL=chunk-N4UTBJRY.js.map
71
+ //# sourceMappingURL=chunk-3NHH7VPI.js.map
72
+ //# sourceMappingURL=chunk-3NHH7VPI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/EmailInput/EmailInput.variants.ts","../src/components/forms/EmailInput/EmailInput.tsx"],"names":[],"mappings":";;;;;;AAKO,IAAM,2BAAA,GAA8B,GAAA;AAAA,EACzC,oDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,eAAA,EAAiB;AAAA,QACf,IAAA,EAAM,uBAAA;AAAA,QACN,KAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,eAAA,EAAiB,MAAA;AAAA,MACjB,IAAA,EAAM;AAAA;AACR;AAEJ;ACRA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA;AAAA,EACA,eAAA,GAAkB,MAAA;AAAA,EAClB,kBAAA,GAAqB,KAAA;AAAA,EACrB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,QAAA,GAAW,sBAAsB,eAAA,KAAoB,MAAA;AAE3D,EAAA,MAAM,WAAW,QAAA,mBACf,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,WAAW,EAAA,CAAG,2BAAA,CAA4B,EAAE,IAAA,EAAM,eAAA,EAAiB,CAAC,CAAA;AAAA,MACpE,WAAA,EAAU,uBAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,eAAA,KAAoB,OAAA,KAAY,SAAA,oBAAa,GAAA,CAAC,gBAAA,EAAA,EAAiB,CAAA,CAAA;AAAA,QAC/D,eAAA,KAAoB,SAAA,KAAc,WAAA,oBAAe,GAAA,CAAC,WAAA,EAAA,EAAY,CAAA;AAAA;AAAA;AAAA,GACjE,GACE,MAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAc,eAAA,KAAoB,SAAA,GAAY,IAAA,GAAO,MAAA;AAAA,MACrD,SAAA;AAAA,MACA,WAAA,EAAU,aAAA;AAAA,MACV,QAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA,EAAc,QAAA;AAAA,MACd,IAAA,EAAK,OAAA;AAAA,MACL,OAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-N4UTBJRY.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Email validation icon visual variants\n */\nexport const emailValidationIconVariants = cva(\n \"flex items-center justify-center transition-colors\",\n {\n variants: {\n validationState: {\n idle: \"text-muted-foreground\",\n valid: \"text-success\",\n invalid: \"text-destructive\",\n },\n size: {\n xs: \"[&_svg]:size-3\",\n sm: \"[&_svg]:size-3.5\",\n md: \"[&_svg]:size-4\",\n lg: \"[&_svg]:size-4.5\",\n xl: \"[&_svg]:size-5\",\n },\n },\n defaultVariants: {\n validationState: \"idle\",\n size: \"md\",\n },\n }\n)\n\nexport type EmailValidationIconVariantProps = VariantProps<typeof emailValidationIconVariants>\n","\"use client\"\n\nimport type { EmailInputProps } from \"./EmailInput.types\"\n\nimport { CheckCircle2Icon, XCircleIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { TextInput } from \"../TextInput\"\nimport { emailValidationIconVariants } from \"./EmailInput.variants\"\n\n/**\n * EmailInput component with optional validation state indicator.\n * Now uses TextInput internally for consistency.\n *\n * @example\n * ```tsx\n * <EmailInput placeholder=\"Enter email\" />\n * ```\n */\nfunction EmailInput({\n className,\n size = \"md\",\n variant,\n validationState = \"idle\",\n showValidationIcon = false,\n validIcon,\n invalidIcon,\n disabled,\n ...props\n}: EmailInputProps) {\n const showIcon = showValidationIcon && validationState !== \"idle\"\n\n const trailing = showIcon ? (\n <div\n aria-hidden=\"true\"\n className={cn(emailValidationIconVariants({ size, validationState }))}\n data-slot=\"email-validation-icon\"\n >\n {validationState === \"valid\" && (validIcon ?? <CheckCircle2Icon />)}\n {validationState === \"invalid\" && (invalidIcon ?? <XCircleIcon />)}\n </div>\n ) : undefined\n\n return (\n <TextInput\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n className={className}\n data-slot=\"email-input\"\n disabled={disabled}\n size={size}\n trailingIcon={trailing}\n type=\"email\"\n variant={variant}\n {...props}\n />\n )\n}\n\nexport { EmailInput }"]}
1
+ {"version":3,"sources":["../src/components/forms/EmailInput/EmailInput.variants.ts","../src/components/forms/EmailInput/EmailInput.tsx"],"names":[],"mappings":";;;;;;AAKO,IAAM,2BAAA,GAA8B,GAAA;AAAA,EACzC,oDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,eAAA,EAAiB;AAAA,QACf,IAAA,EAAM,uBAAA;AAAA,QACN,KAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,gBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,eAAA,EAAiB,MAAA;AAAA,MACjB,IAAA,EAAM;AAAA;AACR;AAEJ;ACRA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA;AAAA,EACA,eAAA,GAAkB,MAAA;AAAA,EAClB,kBAAA,GAAqB,KAAA;AAAA,EACrB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,QAAA,GAAW,sBAAsB,eAAA,KAAoB,MAAA;AAE3D,EAAA,MAAM,WAAW,QAAA,mBACf,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAY,MAAA;AAAA,MACZ,WAAW,EAAA,CAAG,2BAAA,CAA4B,EAAE,IAAA,EAAM,eAAA,EAAiB,CAAC,CAAA;AAAA,MACpE,WAAA,EAAU,uBAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,eAAA,KAAoB,OAAA,KAAY,SAAA,oBAAa,GAAA,CAAC,gBAAA,EAAA,EAAiB,CAAA,CAAA;AAAA,QAC/D,eAAA,KAAoB,SAAA,KAAc,WAAA,oBAAe,GAAA,CAAC,WAAA,EAAA,EAAY,CAAA;AAAA;AAAA;AAAA,GACjE,GACE,MAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAc,eAAA,KAAoB,SAAA,GAAY,IAAA,GAAO,MAAA;AAAA,MACrD,SAAA;AAAA,MACA,WAAA,EAAU,aAAA;AAAA,MACV,QAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA,EAAc,QAAA;AAAA,MACd,IAAA,EAAK,OAAA;AAAA,MACL,OAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-3NHH7VPI.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Email validation icon visual variants\n */\nexport const emailValidationIconVariants = cva(\n \"flex items-center justify-center transition-colors\",\n {\n variants: {\n validationState: {\n idle: \"text-muted-foreground\",\n valid: \"text-success\",\n invalid: \"text-destructive\",\n },\n size: {\n xs: \"[&_svg]:size-3\",\n sm: \"[&_svg]:size-3.5\",\n md: \"[&_svg]:size-4\",\n lg: \"[&_svg]:size-4.5\",\n xl: \"[&_svg]:size-5\",\n },\n },\n defaultVariants: {\n validationState: \"idle\",\n size: \"md\",\n },\n }\n)\n\nexport type EmailValidationIconVariantProps = VariantProps<typeof emailValidationIconVariants>\n","\"use client\"\n\nimport type { EmailInputProps } from \"./EmailInput.types\"\n\nimport { CheckCircle2Icon, XCircleIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { TextInput } from \"../TextInput\"\nimport { emailValidationIconVariants } from \"./EmailInput.variants\"\n\n/**\n * EmailInput component with optional validation state indicator.\n * Now uses TextInput internally for consistency.\n *\n * @example\n * ```tsx\n * <EmailInput placeholder=\"Enter email\" />\n * ```\n */\nfunction EmailInput({\n className,\n size = \"md\",\n variant,\n validationState = \"idle\",\n showValidationIcon = false,\n validIcon,\n invalidIcon,\n disabled,\n ...props\n}: EmailInputProps) {\n const showIcon = showValidationIcon && validationState !== \"idle\"\n\n const trailing = showIcon ? (\n <div\n aria-hidden=\"true\"\n className={cn(emailValidationIconVariants({ size, validationState }))}\n data-slot=\"email-validation-icon\"\n >\n {validationState === \"valid\" && (validIcon ?? <CheckCircle2Icon />)}\n {validationState === \"invalid\" && (invalidIcon ?? <XCircleIcon />)}\n </div>\n ) : undefined\n\n return (\n <TextInput\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n className={className}\n data-slot=\"email-input\"\n disabled={disabled}\n size={size}\n trailingIcon={trailing}\n type=\"email\"\n variant={variant}\n {...props}\n />\n )\n}\n\nexport { EmailInput }"]}
@@ -118,7 +118,7 @@ var phoneInputVariants = cva(
118
118
  );
119
119
  var phoneInputCountryButtonVariants = cva(
120
120
  [
121
- "flex items-center gap-1.5 shrink-0 border-r border-input bg-transparent outline-none transition-colors",
121
+ "flex items-center gap-1.5 shrink-0 border-r border-[color:var(--phone-input-country-select-border-color)] bg-transparent outline-none transition-colors",
122
122
  "hover:bg-muted/50",
123
123
  "focus-visible:bg-muted/50",
124
124
  "disabled:cursor-not-allowed disabled:opacity-50"
@@ -334,5 +334,5 @@ function PhoneInput({
334
334
  }
335
335
 
336
336
  export { PhoneInput, defaultCountries, findCountryByCode, findCountryByDialCode, formatPhoneNumber, getPhoneDigits, phoneInputCountryButtonVariants, phoneInputDropdownVariants, phoneInputInputVariants, phoneInputOptionVariants, phoneInputVariants };
337
- //# sourceMappingURL=chunk-OEXQ2MOY.js.map
338
- //# sourceMappingURL=chunk-OEXQ2MOY.js.map
337
+ //# sourceMappingURL=chunk-45YJLE4R.js.map
338
+ //# sourceMappingURL=chunk-45YJLE4R.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/PhoneInput/countries.ts","../src/components/forms/PhoneInput/PhoneInput.variants.ts","../src/components/forms/PhoneInput/PhoneInput.tsx"],"names":[],"mappings":"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","file":"chunk-OEXQ2MOY.js","sourcesContent":["/* eslint-disable sonarjs/no-duplicate-string -- Country data naturally has repeated format patterns */\n\n/**\n * Country information for phone input\n */\nexport interface Country {\n /** ISO 3166-1 alpha-2 country code */\n code: string\n /** International dial code */\n dialCode: string\n /** Flag emoji */\n flag: string\n /** Phone number format pattern (# = digit) */\n format?: string\n /** Country name in English */\n name: string\n}\n\n/**\n * Default list of countries with dial codes\n * Prioritizes common countries at the top\n */\nexport const defaultCountries: Country[] = [\n // Priority countries\n { code: \"BR\", dialCode: \"+55\", name: \"Brazil\", flag: \"🇧🇷\", format: \"(##) #####-####\" },\n { code: \"US\", dialCode: \"+1\", name: \"United States\", flag: \"🇺🇸\", format: \"(###) ###-####\" },\n { code: \"GB\", dialCode: \"+44\", name: \"United Kingdom\", flag: \"🇬🇧\", format: \"#### ######\" },\n { code: \"CA\", dialCode: \"+1\", name: \"Canada\", flag: \"🇨🇦\", format: \"(###) ###-####\" },\n { code: \"PT\", dialCode: \"+351\", name: \"Portugal\", flag: \"🇵🇹\", format: \"### ### ###\" },\n { code: \"ES\", dialCode: \"+34\", name: \"Spain\", flag: \"🇪🇸\", format: \"### ### ###\" },\n\n // Latin America\n { code: \"AR\", dialCode: \"+54\", name: \"Argentina\", flag: \"🇦🇷\", format: \"## ####-####\" },\n { code: \"CL\", dialCode: \"+56\", name: \"Chile\", flag: \"🇨🇱\", format: \"# #### ####\" },\n { code: \"CO\", dialCode: \"+57\", name: \"Colombia\", flag: \"🇨🇴\", format: \"### #######\" },\n { code: \"MX\", dialCode: \"+52\", name: \"Mexico\", flag: \"🇲🇽\", format: \"### ### ####\" },\n { code: \"PE\", dialCode: \"+51\", name: \"Peru\", flag: \"🇵🇪\", format: \"### ### ###\" },\n { code: \"UY\", dialCode: \"+598\", name: \"Uruguay\", flag: \"🇺🇾\", format: \"## ### ###\" },\n { code: \"VE\", dialCode: \"+58\", name: \"Venezuela\", flag: \"🇻🇪\", format: \"### #######\" },\n\n // Europe\n { code: \"DE\", dialCode: \"+49\", name: \"Germany\", flag: \"🇩🇪\", format: \"#### #######\" },\n { code: \"FR\", dialCode: \"+33\", name: \"France\", flag: \"🇫🇷\", format: \"# ## ## ## ##\" },\n { code: \"IT\", dialCode: \"+39\", name: \"Italy\", flag: \"🇮🇹\", format: \"### #######\" },\n { code: \"NL\", dialCode: \"+31\", name: \"Netherlands\", flag: \"🇳🇱\", format: \"# ########\" },\n { code: \"BE\", dialCode: \"+32\", name: \"Belgium\", flag: \"🇧🇪\", format: \"### ## ## ##\" },\n { code: \"CH\", dialCode: \"+41\", name: \"Switzerland\", flag: \"🇨🇭\", format: \"## ### ## ##\" },\n { code: \"AT\", dialCode: \"+43\", name: \"Austria\", flag: \"🇦🇹\", format: \"### #######\" },\n { code: \"PL\", dialCode: \"+48\", name: \"Poland\", flag: \"🇵🇱\", format: \"### ### ###\" },\n { code: \"SE\", dialCode: \"+46\", name: \"Sweden\", flag: \"🇸🇪\", format: \"## ### ## ##\" },\n { code: \"NO\", dialCode: \"+47\", name: \"Norway\", flag: \"🇳🇴\", format: \"### ## ###\" },\n { code: \"DK\", dialCode: \"+45\", name: \"Denmark\", flag: \"🇩🇰\", format: \"## ## ## ##\" },\n { code: \"FI\", dialCode: \"+358\", name: \"Finland\", flag: \"🇫🇮\", format: \"## ### ####\" },\n { code: \"IE\", dialCode: \"+353\", name: \"Ireland\", flag: \"🇮🇪\", format: \"## #######\" },\n\n // Asia\n { code: \"JP\", dialCode: \"+81\", name: \"Japan\", flag: \"🇯🇵\", format: \"##-####-####\" },\n { code: \"CN\", dialCode: \"+86\", name: \"China\", flag: \"🇨🇳\", format: \"### #### ####\" },\n { code: \"IN\", dialCode: \"+91\", name: \"India\", flag: \"🇮🇳\", format: \"##### #####\" },\n { code: \"KR\", dialCode: \"+82\", name: \"South Korea\", flag: \"🇰🇷\", format: \"##-####-####\" },\n { code: \"SG\", dialCode: \"+65\", name: \"Singapore\", flag: \"🇸🇬\", format: \"#### ####\" },\n { code: \"HK\", dialCode: \"+852\", name: \"Hong Kong\", flag: \"🇭🇰\", format: \"#### ####\" },\n { code: \"TW\", dialCode: \"+886\", name: \"Taiwan\", flag: \"🇹🇼\", format: \"### ### ###\" },\n { code: \"TH\", dialCode: \"+66\", name: \"Thailand\", flag: \"🇹🇭\", format: \"## ### ####\" },\n { code: \"MY\", dialCode: \"+60\", name: \"Malaysia\", flag: \"🇲🇾\", format: \"##-### ####\" },\n { code: \"ID\", dialCode: \"+62\", name: \"Indonesia\", flag: \"🇮🇩\", format: \"### ### ####\" },\n { code: \"PH\", dialCode: \"+63\", name: \"Philippines\", flag: \"🇵🇭\", format: \"### ### ####\" },\n { code: \"VN\", dialCode: \"+84\", name: \"Vietnam\", flag: \"🇻🇳\", format: \"## ### ## ##\" },\n\n // Middle East\n { code: \"AE\", dialCode: \"+971\", name: \"UAE\", flag: \"🇦🇪\", format: \"## ### ####\" },\n { code: \"SA\", dialCode: \"+966\", name: \"Saudi Arabia\", flag: \"🇸🇦\", format: \"## ### ####\" },\n { code: \"IL\", dialCode: \"+972\", name: \"Israel\", flag: \"🇮🇱\", format: \"##-###-####\" },\n { code: \"TR\", dialCode: \"+90\", name: \"Turkey\", flag: \"🇹🇷\", format: \"### ### ## ##\" },\n\n // Oceania\n { code: \"AU\", dialCode: \"+61\", name: \"Australia\", flag: \"🇦🇺\", format: \"### ### ###\" },\n { code: \"NZ\", dialCode: \"+64\", name: \"New Zealand\", flag: \"🇳🇿\", format: \"## ### ####\" },\n\n // Africa\n { code: \"ZA\", dialCode: \"+27\", name: \"South Africa\", flag: \"🇿🇦\", format: \"## ### ####\" },\n { code: \"NG\", dialCode: \"+234\", name: \"Nigeria\", flag: \"🇳🇬\", format: \"### ### ####\" },\n { code: \"EG\", dialCode: \"+20\", name: \"Egypt\", flag: \"🇪🇬\", format: \"## #### ####\" },\n { code: \"KE\", dialCode: \"+254\", name: \"Kenya\", flag: \"🇰🇪\", format: \"### ######\" },\n]\n\n/**\n * Find country by ISO code\n */\nexport function findCountryByCode(code: string, countries = defaultCountries): Country | undefined {\n return countries.find((c) => c.code.toLowerCase() === code.toLowerCase())\n}\n\n/**\n * Find country by dial code\n */\nexport function findCountryByDialCode(dialCode: string, countries = defaultCountries): Country | undefined {\n return countries.find((c) => c.dialCode === dialCode)\n}\n\n/**\n * Format a phone number according to the country format\n */\nexport function formatPhoneNumber(value: string, country: Country): string {\n // Remove all non-digit characters\n const digits = value.replaceAll(/\\D/g, \"\")\n\n if (!country.format) {\n return digits\n }\n\n let result = \"\"\n let digitIndex = 0\n\n for (const char of country.format) {\n if (digitIndex >= digits.length) break\n\n if (char === \"#\") {\n result += digits[digitIndex] ?? \"\"\n digitIndex++\n } else {\n result += char\n }\n }\n\n return result\n}\n\n/**\n * Get the raw digits from a formatted phone number\n */\nexport function getPhoneDigits(value: string): string {\n return value.replaceAll(/\\D/g, \"\")\n}\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * PhoneInput container variant styles using CVA\n */\nexport const phoneInputVariants = cva(\n [\n \"flex w-full min-w-0 rounded-md border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 text-sm\",\n md: \"h-9 text-base md:text-sm\",\n lg: \"h-10 text-base\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * Country selector button styles\n */\nexport const phoneInputCountryButtonVariants = cva(\n [\n \"flex items-center gap-1.5 shrink-0 border-r border-input bg-transparent outline-none transition-colors\",\n \"hover:bg-muted/50\",\n \"focus-visible:bg-muted/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"px-2 text-sm\",\n md: \"px-3 text-sm\",\n lg: \"px-3.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Phone number input styles\n */\nexport const phoneInputInputVariants = cva(\n [\n \"flex-1 min-w-0 bg-transparent outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"px-2 text-sm\",\n md: \"px-3 text-base md:text-sm\",\n lg: \"px-3.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Country dropdown styles\n */\nexport const phoneInputDropdownVariants = cva(\n [\n \"absolute left-0 top-full z-50 mt-1 max-h-60 min-w-52 overflow-auto rounded-md border bg-popover p-1 shadow-md\",\n \"animate-in fade-in-0 zoom-in-95\",\n ]\n)\n\n/**\n * Country option styles\n */\nexport const phoneInputOptionVariants = cva(\n [\n \"flex items-center gap-2 cursor-pointer rounded-sm px-2 py-1.5 text-sm outline-none transition-colors\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:bg-accent focus-visible:text-accent-foreground\",\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground\",\n ]\n)\n\nexport type PhoneInputVariantProps = VariantProps<typeof phoneInputVariants>\n","\"use client\"\n\nimport type { PhoneInputProps } from \"./PhoneInput.types\"\n\nimport { ChevronDown } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n type Country,\n defaultCountries,\n findCountryByCode,\n formatPhoneNumber,\n getPhoneDigits,\n} from \"./countries\"\nimport {\n phoneInputCountryButtonVariants,\n phoneInputDropdownVariants,\n phoneInputInputVariants,\n phoneInputOptionVariants,\n phoneInputVariants,\n} from \"./PhoneInput.variants\"\n\n/**\n * PhoneInput - An international phone number input with country selector\n *\n * @example\n * ```tsx\n * // Basic usage\n * <PhoneInput\n * placeholder=\"Enter phone number\"\n * defaultCountry=\"BR\"\n * />\n *\n * // Controlled\n * const [phone, setPhone] = useState(\"\")\n * <PhoneInput\n * value={phone}\n * onChange={(value, country) => {\n * setPhone(value)\n * console.log(`${country.dialCode} ${value}`)\n * }}\n * />\n * ```\n */\nfunction PhoneInput({\n value: controlledValue,\n defaultValue = \"\",\n onChange,\n onCountryChange,\n defaultCountry = \"BR\",\n countries = defaultCountries,\n disabled,\n size = \"md\",\n variant,\n invalid,\n placeholder = \"Phone number\",\n className,\n ...props\n}: PhoneInputProps) {\n const containerRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const [isOpen, setIsOpen] = useState(false)\n\n // Find initial country - fallback to first country or Brazil\n const initialCountry = findCountryByCode(defaultCountry, countries) ?? countries[0] ?? defaultCountries[0]\n if (!initialCountry) {\n throw new Error(\"PhoneInput requires at least one country option.\")\n }\n const [selectedCountry, setSelectedCountry] = useState<Country>(() => initialCountry)\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue)\n\n // Determine if controlled\n const isControlled = controlledValue !== undefined\n const phoneValue = isControlled ? controlledValue : internalValue\n\n // Format the display value\n const displayValue = formatPhoneNumber(phoneValue, selectedCountry)\n\n const handleCountrySelect = useCallback(\n (country: Country) => {\n setSelectedCountry(country)\n setIsOpen(false)\n onCountryChange?.(country)\n inputRef.current?.focus()\n\n // Notify parent of the change with current value\n if (phoneValue) {\n onChange?.(phoneValue, country)\n }\n },\n [onCountryChange, onChange, phoneValue]\n )\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const rawValue = getPhoneDigits(e.target.value)\n\n if (!isControlled) {\n setInternalValue(rawValue)\n }\n\n onChange?.(rawValue, selectedCountry)\n },\n [isControlled, onChange, selectedCountry]\n )\n\n // Close dropdown on click outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside)\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n }\n }, [isOpen])\n\n // Handle keyboard navigation\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n setIsOpen(false)\n } else if (e.key === \"ArrowDown\" && !isOpen) {\n setIsOpen(true)\n }\n },\n [isOpen]\n )\n\n return (\n <div\n ref={containerRef}\n className={cn(\"relative\", className)}\n data-slot=\"phone-input\"\n onKeyDown={handleKeyDown}\n >\n <div\n aria-invalid={invalid ?? undefined}\n className={phoneInputVariants({ size, variant })}\n >\n {/* Country selector */}\n <button\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-label={`Select country, current: ${selectedCountry.name}`}\n className={phoneInputCountryButtonVariants({ size })}\n data-slot=\"phone-input-country\"\n disabled={disabled}\n type=\"button\"\n onClick={() => { setIsOpen(!isOpen); }}\n >\n <span className=\"text-base\">{selectedCountry.flag}</span>\n <span className=\"text-muted-foreground\">{selectedCountry.dialCode}</span>\n <ChevronDown\n className={cn(\n \"size-4 text-muted-foreground transition-transform\",\n isOpen && \"rotate-180\"\n )}\n />\n </button>\n\n {/* Phone number input */}\n <input\n ref={inputRef}\n aria-invalid={invalid ?? undefined}\n className={phoneInputInputVariants({ size })}\n data-slot=\"phone-input-field\"\n disabled={disabled}\n placeholder={placeholder}\n type=\"tel\"\n value={displayValue}\n onChange={handleInputChange}\n {...props}\n />\n </div>\n\n {/* Country dropdown */}\n {isOpen && (\n <div\n className={phoneInputDropdownVariants()}\n data-slot=\"phone-input-dropdown\"\n role=\"listbox\"\n >\n {countries.map((country) => (\n <div\n key={country.code}\n aria-selected={country.code === selectedCountry.code}\n className={phoneInputOptionVariants()}\n data-selected={country.code === selectedCountry.code}\n data-slot=\"phone-input-option\"\n role=\"option\"\n onClick={() => { handleCountrySelect(country); }}\n >\n <span className=\"text-base\">{country.flag}</span>\n <span className=\"flex-1\">{country.name}</span>\n <span className=\"text-muted-foreground\">{country.dialCode}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n\nexport { PhoneInput }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/PhoneInput/countries.ts","../src/components/forms/PhoneInput/PhoneInput.variants.ts","../src/components/forms/PhoneInput/PhoneInput.tsx"],"names":[],"mappings":"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","file":"chunk-45YJLE4R.js","sourcesContent":["/* eslint-disable sonarjs/no-duplicate-string -- Country data naturally has repeated format patterns */\n\n/**\n * Country information for phone input\n */\nexport interface Country {\n /** ISO 3166-1 alpha-2 country code */\n code: string\n /** International dial code */\n dialCode: string\n /** Flag emoji */\n flag: string\n /** Phone number format pattern (# = digit) */\n format?: string\n /** Country name in English */\n name: string\n}\n\n/**\n * Default list of countries with dial codes\n * Prioritizes common countries at the top\n */\nexport const defaultCountries: Country[] = [\n // Priority countries\n { code: \"BR\", dialCode: \"+55\", name: \"Brazil\", flag: \"🇧🇷\", format: \"(##) #####-####\" },\n { code: \"US\", dialCode: \"+1\", name: \"United States\", flag: \"🇺🇸\", format: \"(###) ###-####\" },\n { code: \"GB\", dialCode: \"+44\", name: \"United Kingdom\", flag: \"🇬🇧\", format: \"#### ######\" },\n { code: \"CA\", dialCode: \"+1\", name: \"Canada\", flag: \"🇨🇦\", format: \"(###) ###-####\" },\n { code: \"PT\", dialCode: \"+351\", name: \"Portugal\", flag: \"🇵🇹\", format: \"### ### ###\" },\n { code: \"ES\", dialCode: \"+34\", name: \"Spain\", flag: \"🇪🇸\", format: \"### ### ###\" },\n\n // Latin America\n { code: \"AR\", dialCode: \"+54\", name: \"Argentina\", flag: \"🇦🇷\", format: \"## ####-####\" },\n { code: \"CL\", dialCode: \"+56\", name: \"Chile\", flag: \"🇨🇱\", format: \"# #### ####\" },\n { code: \"CO\", dialCode: \"+57\", name: \"Colombia\", flag: \"🇨🇴\", format: \"### #######\" },\n { code: \"MX\", dialCode: \"+52\", name: \"Mexico\", flag: \"🇲🇽\", format: \"### ### ####\" },\n { code: \"PE\", dialCode: \"+51\", name: \"Peru\", flag: \"🇵🇪\", format: \"### ### ###\" },\n { code: \"UY\", dialCode: \"+598\", name: \"Uruguay\", flag: \"🇺🇾\", format: \"## ### ###\" },\n { code: \"VE\", dialCode: \"+58\", name: \"Venezuela\", flag: \"🇻🇪\", format: \"### #######\" },\n\n // Europe\n { code: \"DE\", dialCode: \"+49\", name: \"Germany\", flag: \"🇩🇪\", format: \"#### #######\" },\n { code: \"FR\", dialCode: \"+33\", name: \"France\", flag: \"🇫🇷\", format: \"# ## ## ## ##\" },\n { code: \"IT\", dialCode: \"+39\", name: \"Italy\", flag: \"🇮🇹\", format: \"### #######\" },\n { code: \"NL\", dialCode: \"+31\", name: \"Netherlands\", flag: \"🇳🇱\", format: \"# ########\" },\n { code: \"BE\", dialCode: \"+32\", name: \"Belgium\", flag: \"🇧🇪\", format: \"### ## ## ##\" },\n { code: \"CH\", dialCode: \"+41\", name: \"Switzerland\", flag: \"🇨🇭\", format: \"## ### ## ##\" },\n { code: \"AT\", dialCode: \"+43\", name: \"Austria\", flag: \"🇦🇹\", format: \"### #######\" },\n { code: \"PL\", dialCode: \"+48\", name: \"Poland\", flag: \"🇵🇱\", format: \"### ### ###\" },\n { code: \"SE\", dialCode: \"+46\", name: \"Sweden\", flag: \"🇸🇪\", format: \"## ### ## ##\" },\n { code: \"NO\", dialCode: \"+47\", name: \"Norway\", flag: \"🇳🇴\", format: \"### ## ###\" },\n { code: \"DK\", dialCode: \"+45\", name: \"Denmark\", flag: \"🇩🇰\", format: \"## ## ## ##\" },\n { code: \"FI\", dialCode: \"+358\", name: \"Finland\", flag: \"🇫🇮\", format: \"## ### ####\" },\n { code: \"IE\", dialCode: \"+353\", name: \"Ireland\", flag: \"🇮🇪\", format: \"## #######\" },\n\n // Asia\n { code: \"JP\", dialCode: \"+81\", name: \"Japan\", flag: \"🇯🇵\", format: \"##-####-####\" },\n { code: \"CN\", dialCode: \"+86\", name: \"China\", flag: \"🇨🇳\", format: \"### #### ####\" },\n { code: \"IN\", dialCode: \"+91\", name: \"India\", flag: \"🇮🇳\", format: \"##### #####\" },\n { code: \"KR\", dialCode: \"+82\", name: \"South Korea\", flag: \"🇰🇷\", format: \"##-####-####\" },\n { code: \"SG\", dialCode: \"+65\", name: \"Singapore\", flag: \"🇸🇬\", format: \"#### ####\" },\n { code: \"HK\", dialCode: \"+852\", name: \"Hong Kong\", flag: \"🇭🇰\", format: \"#### ####\" },\n { code: \"TW\", dialCode: \"+886\", name: \"Taiwan\", flag: \"🇹🇼\", format: \"### ### ###\" },\n { code: \"TH\", dialCode: \"+66\", name: \"Thailand\", flag: \"🇹🇭\", format: \"## ### ####\" },\n { code: \"MY\", dialCode: \"+60\", name: \"Malaysia\", flag: \"🇲🇾\", format: \"##-### ####\" },\n { code: \"ID\", dialCode: \"+62\", name: \"Indonesia\", flag: \"🇮🇩\", format: \"### ### ####\" },\n { code: \"PH\", dialCode: \"+63\", name: \"Philippines\", flag: \"🇵🇭\", format: \"### ### ####\" },\n { code: \"VN\", dialCode: \"+84\", name: \"Vietnam\", flag: \"🇻🇳\", format: \"## ### ## ##\" },\n\n // Middle East\n { code: \"AE\", dialCode: \"+971\", name: \"UAE\", flag: \"🇦🇪\", format: \"## ### ####\" },\n { code: \"SA\", dialCode: \"+966\", name: \"Saudi Arabia\", flag: \"🇸🇦\", format: \"## ### ####\" },\n { code: \"IL\", dialCode: \"+972\", name: \"Israel\", flag: \"🇮🇱\", format: \"##-###-####\" },\n { code: \"TR\", dialCode: \"+90\", name: \"Turkey\", flag: \"🇹🇷\", format: \"### ### ## ##\" },\n\n // Oceania\n { code: \"AU\", dialCode: \"+61\", name: \"Australia\", flag: \"🇦🇺\", format: \"### ### ###\" },\n { code: \"NZ\", dialCode: \"+64\", name: \"New Zealand\", flag: \"🇳🇿\", format: \"## ### ####\" },\n\n // Africa\n { code: \"ZA\", dialCode: \"+27\", name: \"South Africa\", flag: \"🇿🇦\", format: \"## ### ####\" },\n { code: \"NG\", dialCode: \"+234\", name: \"Nigeria\", flag: \"🇳🇬\", format: \"### ### ####\" },\n { code: \"EG\", dialCode: \"+20\", name: \"Egypt\", flag: \"🇪🇬\", format: \"## #### ####\" },\n { code: \"KE\", dialCode: \"+254\", name: \"Kenya\", flag: \"🇰🇪\", format: \"### ######\" },\n]\n\n/**\n * Find country by ISO code\n */\nexport function findCountryByCode(code: string, countries = defaultCountries): Country | undefined {\n return countries.find((c) => c.code.toLowerCase() === code.toLowerCase())\n}\n\n/**\n * Find country by dial code\n */\nexport function findCountryByDialCode(dialCode: string, countries = defaultCountries): Country | undefined {\n return countries.find((c) => c.dialCode === dialCode)\n}\n\n/**\n * Format a phone number according to the country format\n */\nexport function formatPhoneNumber(value: string, country: Country): string {\n // Remove all non-digit characters\n const digits = value.replaceAll(/\\D/g, \"\")\n\n if (!country.format) {\n return digits\n }\n\n let result = \"\"\n let digitIndex = 0\n\n for (const char of country.format) {\n if (digitIndex >= digits.length) break\n\n if (char === \"#\") {\n result += digits[digitIndex] ?? \"\"\n digitIndex++\n } else {\n result += char\n }\n }\n\n return result\n}\n\n/**\n * Get the raw digits from a formatted phone number\n */\nexport function getPhoneDigits(value: string): string {\n return value.replaceAll(/\\D/g, \"\")\n}\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * PhoneInput container variant styles using CVA\n */\nexport const phoneInputVariants = cva(\n [\n \"flex w-full min-w-0 rounded-md border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 text-sm\",\n md: \"h-9 text-base md:text-sm\",\n lg: \"h-10 text-base\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * Country selector button styles\n */\nexport const phoneInputCountryButtonVariants = cva(\n [\n \"flex items-center gap-1.5 shrink-0 border-r border-[color:var(--phone-input-country-select-border-color)] bg-transparent outline-none transition-colors\",\n \"hover:bg-muted/50\",\n \"focus-visible:bg-muted/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"px-2 text-sm\",\n md: \"px-3 text-sm\",\n lg: \"px-3.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Phone number input styles\n */\nexport const phoneInputInputVariants = cva(\n [\n \"flex-1 min-w-0 bg-transparent outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"px-2 text-sm\",\n md: \"px-3 text-base md:text-sm\",\n lg: \"px-3.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Country dropdown styles\n */\nexport const phoneInputDropdownVariants = cva(\n [\n \"absolute left-0 top-full z-50 mt-1 max-h-60 min-w-52 overflow-auto rounded-md border bg-popover p-1 shadow-md\",\n \"animate-in fade-in-0 zoom-in-95\",\n ]\n)\n\n/**\n * Country option styles\n */\nexport const phoneInputOptionVariants = cva(\n [\n \"flex items-center gap-2 cursor-pointer rounded-sm px-2 py-1.5 text-sm outline-none transition-colors\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:bg-accent focus-visible:text-accent-foreground\",\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground\",\n ]\n)\n\nexport type PhoneInputVariantProps = VariantProps<typeof phoneInputVariants>\n","\"use client\"\n\nimport type { PhoneInputProps } from \"./PhoneInput.types\"\n\nimport { ChevronDown } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n type Country,\n defaultCountries,\n findCountryByCode,\n formatPhoneNumber,\n getPhoneDigits,\n} from \"./countries\"\nimport {\n phoneInputCountryButtonVariants,\n phoneInputDropdownVariants,\n phoneInputInputVariants,\n phoneInputOptionVariants,\n phoneInputVariants,\n} from \"./PhoneInput.variants\"\n\n/**\n * PhoneInput - An international phone number input with country selector\n *\n * @example\n * ```tsx\n * // Basic usage\n * <PhoneInput\n * placeholder=\"Enter phone number\"\n * defaultCountry=\"BR\"\n * />\n *\n * // Controlled\n * const [phone, setPhone] = useState(\"\")\n * <PhoneInput\n * value={phone}\n * onChange={(value, country) => {\n * setPhone(value)\n * console.log(`${country.dialCode} ${value}`)\n * }}\n * />\n * ```\n */\nfunction PhoneInput({\n value: controlledValue,\n defaultValue = \"\",\n onChange,\n onCountryChange,\n defaultCountry = \"BR\",\n countries = defaultCountries,\n disabled,\n size = \"md\",\n variant,\n invalid,\n placeholder = \"Phone number\",\n className,\n ...props\n}: PhoneInputProps) {\n const containerRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const [isOpen, setIsOpen] = useState(false)\n\n // Find initial country - fallback to first country or Brazil\n const initialCountry = findCountryByCode(defaultCountry, countries) ?? countries[0] ?? defaultCountries[0]\n if (!initialCountry) {\n throw new Error(\"PhoneInput requires at least one country option.\")\n }\n const [selectedCountry, setSelectedCountry] = useState<Country>(() => initialCountry)\n\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue)\n\n // Determine if controlled\n const isControlled = controlledValue !== undefined\n const phoneValue = isControlled ? controlledValue : internalValue\n\n // Format the display value\n const displayValue = formatPhoneNumber(phoneValue, selectedCountry)\n\n const handleCountrySelect = useCallback(\n (country: Country) => {\n setSelectedCountry(country)\n setIsOpen(false)\n onCountryChange?.(country)\n inputRef.current?.focus()\n\n // Notify parent of the change with current value\n if (phoneValue) {\n onChange?.(phoneValue, country)\n }\n },\n [onCountryChange, onChange, phoneValue]\n )\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const rawValue = getPhoneDigits(e.target.value)\n\n if (!isControlled) {\n setInternalValue(rawValue)\n }\n\n onChange?.(rawValue, selectedCountry)\n },\n [isControlled, onChange, selectedCountry]\n )\n\n // Close dropdown on click outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside)\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n }\n }, [isOpen])\n\n // Handle keyboard navigation\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n setIsOpen(false)\n } else if (e.key === \"ArrowDown\" && !isOpen) {\n setIsOpen(true)\n }\n },\n [isOpen]\n )\n\n return (\n <div\n ref={containerRef}\n className={cn(\"relative\", className)}\n data-slot=\"phone-input\"\n onKeyDown={handleKeyDown}\n >\n <div\n aria-invalid={invalid ?? undefined}\n className={phoneInputVariants({ size, variant })}\n >\n {/* Country selector */}\n <button\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-label={`Select country, current: ${selectedCountry.name}`}\n className={phoneInputCountryButtonVariants({ size })}\n data-slot=\"phone-input-country\"\n disabled={disabled}\n type=\"button\"\n onClick={() => { setIsOpen(!isOpen); }}\n >\n <span className=\"text-base\">{selectedCountry.flag}</span>\n <span className=\"text-muted-foreground\">{selectedCountry.dialCode}</span>\n <ChevronDown\n className={cn(\n \"size-4 text-muted-foreground transition-transform\",\n isOpen && \"rotate-180\"\n )}\n />\n </button>\n\n {/* Phone number input */}\n <input\n ref={inputRef}\n aria-invalid={invalid ?? undefined}\n className={phoneInputInputVariants({ size })}\n data-slot=\"phone-input-field\"\n disabled={disabled}\n placeholder={placeholder}\n type=\"tel\"\n value={displayValue}\n onChange={handleInputChange}\n {...props}\n />\n </div>\n\n {/* Country dropdown */}\n {isOpen && (\n <div\n className={phoneInputDropdownVariants()}\n data-slot=\"phone-input-dropdown\"\n role=\"listbox\"\n >\n {countries.map((country) => (\n <div\n key={country.code}\n aria-selected={country.code === selectedCountry.code}\n className={phoneInputOptionVariants()}\n data-selected={country.code === selectedCountry.code}\n data-slot=\"phone-input-option\"\n role=\"option\"\n onClick={() => { handleCountrySelect(country); }}\n >\n <span className=\"text-base\">{country.flag}</span>\n <span className=\"flex-1\">{country.name}</span>\n <span className=\"text-muted-foreground\">{country.dialCode}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n\nexport { PhoneInput }\n"]}
@@ -39,19 +39,19 @@ var statusIndicatorVariants = cva("shrink-0", {
39
39
  { shape: "dot", size: "xl", className: "size-[var(--status-indicator-dot-size-xl)]" },
40
40
  { shape: "dot", size: "2xl", className: "size-[var(--status-indicator-dot-size-2xl)]" },
41
41
  // Bar-vertical — width is secondary dim (size controls it); height 100% (FULL_H constant below)
42
- { shape: SHAPE_BAR_V, size: "xs", className: `${FULL_H} w-px` },
43
- { shape: SHAPE_BAR_V, size: "sm", className: `${FULL_H} w-[2px]` },
44
- { shape: SHAPE_BAR_V, size: "default", className: `${FULL_H} w-[2px]` },
45
- { shape: SHAPE_BAR_V, size: "lg", className: `${FULL_H} w-[3px]` },
46
- { shape: SHAPE_BAR_V, size: "xl", className: `${FULL_H} w-[4px]` },
47
- { shape: SHAPE_BAR_V, size: "2xl", className: `${FULL_H} w-[6px]` },
42
+ { shape: SHAPE_BAR_V, size: "xs", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-xs)]` },
43
+ { shape: SHAPE_BAR_V, size: "sm", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-sm)]` },
44
+ { shape: SHAPE_BAR_V, size: "default", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-default)]` },
45
+ { shape: SHAPE_BAR_V, size: "lg", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-lg)]` },
46
+ { shape: SHAPE_BAR_V, size: "xl", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-xl)]` },
47
+ { shape: SHAPE_BAR_V, size: "2xl", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-2xl)]` },
48
48
  // Bar-horizontal — height is secondary dim; width 100% (FULL_W constant below)
49
- { shape: SHAPE_BAR_H, size: "xs", className: `${FULL_W} h-px` },
50
- { shape: SHAPE_BAR_H, size: "sm", className: `${FULL_W} h-[2px]` },
51
- { shape: SHAPE_BAR_H, size: "default", className: `${FULL_W} h-[2px]` },
52
- { shape: SHAPE_BAR_H, size: "lg", className: `${FULL_W} h-[3px]` },
53
- { shape: SHAPE_BAR_H, size: "xl", className: `${FULL_W} h-[4px]` },
54
- { shape: SHAPE_BAR_H, size: "2xl", className: `${FULL_W} h-[6px]` }
49
+ { shape: SHAPE_BAR_H, size: "xs", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-xs)]` },
50
+ { shape: SHAPE_BAR_H, size: "sm", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-sm)]` },
51
+ { shape: SHAPE_BAR_H, size: "default", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-default)]` },
52
+ { shape: SHAPE_BAR_H, size: "lg", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-lg)]` },
53
+ { shape: SHAPE_BAR_H, size: "xl", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-xl)]` },
54
+ { shape: SHAPE_BAR_H, size: "2xl", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-2xl)]` }
55
55
  ],
56
56
  defaultVariants: {
57
57
  variant: "neutral",
@@ -167,5 +167,5 @@ function StatusIndicator({
167
167
  }
168
168
 
169
169
  export { StatusIndicator, statusIndicatorVariants };
170
- //# sourceMappingURL=chunk-66TBTTZO.js.map
171
- //# sourceMappingURL=chunk-66TBTTZO.js.map
170
+ //# sourceMappingURL=chunk-46SUPGQV.js.map
171
+ //# sourceMappingURL=chunk-46SUPGQV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/primitives/StatusIndicator/StatusIndicator.variants.ts","../src/components/primitives/StatusIndicator/StatusIndicator.tsx"],"names":[],"mappings":";;;;AAIA,IAAM,MAAA,GAAS,QAAA;AACf,IAAM,MAAA,GAAS,QAAA;AACf,IAAM,WAAA,GAAc,cAAA;AACpB,IAAM,WAAA,GAAc,gBAAA;AAOb,IAAM,uBAAA,GAA0B,IAAI,UAAA,EAAY;AAAA,EACrD,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,sDAAA;AAAA,MACT,OAAA,EAAS,sDAAA;AAAA,MACT,KAAA,EAAO,oDAAA;AAAA,MACP,WAAA,EAAa,0DAAA;AAAA,MACb,IAAA,EAAM,mDAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,KAAA,EAAO;AAAA,MACL,GAAA,EAAK,sDAAA;AAAA,MACL,cAAA,EAAgB,YAAA;AAAA,MAChB,gBAAA,EAAkB;AAAA,KACpB;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,OAAA,EAAS,EAAA;AAAA,MACT,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA;AAAA,IAEhB,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,WAAW,4CAAA,EAA6C;AAAA,IACpF,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,WAAW,4CAAA,EAA6C;AAAA,IACpF,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,WAAW,iDAAA,EAAkD;AAAA,IAC9F,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,WAAW,4CAAA,EAA6C;AAAA,IACpF,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,WAAW,4CAAA,EAA6C;AAAA,IACpF,EAAE,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,WAAW,6CAAA,EAA8C;AAAA;AAAA,IAEtF,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,MAAM,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,6CAAA,CAAA,EAAgD;AAAA,IACtG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,MAAM,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,6CAAA,CAAA,EAAgD;AAAA,IACtG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,WAAW,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,kDAAA,CAAA,EAAqD;AAAA,IAChH,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,MAAM,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,6CAAA,CAAA,EAAgD;AAAA,IACtG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,MAAM,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,6CAAA,CAAA,EAAgD;AAAA,IACtG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,OAAO,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,8CAAA,CAAA,EAAiD;AAAA;AAAA,IAExG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,MAAM,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,6CAAA,CAAA,EAAgD;AAAA,IACtG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,MAAM,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,6CAAA,CAAA,EAAgD;AAAA,IACtG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,WAAW,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,kDAAA,CAAA,EAAqD;AAAA,IAChH,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,MAAM,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,6CAAA,CAAA,EAAgD;AAAA,IACtG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,MAAM,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,6CAAA,CAAA,EAAgD;AAAA,IACtG,EAAE,OAAO,WAAA,EAAa,IAAA,EAAM,OAAO,SAAA,EAAW,CAAA,EAAG,MAAM,CAAA,8CAAA,CAAA;AAAiD,GAC1G;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO,KAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAC;AC3DD,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,IAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,KAAA;AAAA,EACA,aAAA,GAAgB,OAAA;AAAA,EAChB,YAAA,EAAc,SAAA;AAAA,EACd,GAAG;AACL,CAAA,EAAyB;AAEvB,EAAA,MAAM,gBAAA,GAAmB,CAAA,QAAA,EAAW,OAAA,IAAW,SAAS,CAAA,CAAA;AACxD,EAAA,MAAM,eAAA,GAAkB,SAAA,KAAc,KAAA,GAAQ,MAAA,GAAY,gBAAA,CAAA;AAG1D,EAAA,MAAM,KAAA,GAAQ,KAAA,KAAU,cAAA,IAAkB,KAAA,KAAU,gBAAA;AAGpD,EAAA,IAAI,MAAA,GAAS,KAAA;AACb,EAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAClC,IAAA,MAAM,EAAE,QAAA,EAAS,GAAI,OAAA,CAAQ,GAAA;AAC7B,IAAA,MAAA,GAAS,QAAA,KAAa,YAAA;AAAA,EACxB;AACA,EAAA,IAAI,KAAA,IAAS,KAAA,IAAS,CAAC,MAAA,EAAQ;AAE7B,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN,2BAA2B,KAAK,CAAA,+GAAA;AAAA,KAClC;AAAA,EACF;AAGA,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,uBAAA,CAAwB,EAAE,OAAA,EAAS,KAAA,EAAO,MAAM,CAAA;AAAA,UAChD,KAAA,IAAS,eAAA;AAAA,UACT;AAAA,SACF;AAAA,QACA,YAAA,EAAY,eAAA;AAAA,QACZ,YAAA,EAAY,KAAA;AAAA,QACZ,WAAA,EAAU,kBAAA;AAAA,QACV,gBAAc,OAAA,IAAW,SAAA;AAAA,QACzB,IAAA,EAAK,QAAA;AAAA,QACJ,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AAGA,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,wBAAwB,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAM,CAAA;AAAA,UACvD,KAAA,IAAS,eAAA;AAAA,UACT;AAAA,SACF;AAAA,QACA,YAAA,EAAY,eAAA;AAAA,QACZ,YAAA,EAAW,KAAA;AAAA,QACX,WAAA,EAAU,kBAAA;AAAA,QACV,gBAAc,OAAA,IAAW,SAAA;AAAA,QACzB,IAAA,EAAK,QAAA;AAAA,QACJ,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,SAAA;AAAA,YACV,WAAA,EAAU,sBAAA;AAAA,YAET,QAAA,EAAA,OAAA,IAAW;AAAA;AAAA;AACd;AAAA,KACF;AAAA,EAEJ;AAGA,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,2EAAA;AAAA,QACA,kBAAkB,MAAA,IAAU,kBAAA;AAAA,QAC5B;AAAA,OACF;AAAA,MACA,YAAA,EAAY,eAAA;AAAA,MACZ,YAAA,EAAW,KAAA;AAAA,MACX,WAAA,EAAU,kBAAA;AAAA,MACV,gBAAc,OAAA,IAAW,SAAA;AAAA,MACzB,IAAA,EAAK,QAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,wBAAwB,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAM,CAAA;AAAA,cACvD,KAAA,IAAS;AAAA,aACX;AAAA,YACA,aAAA,EAAY,MAAA;AAAA,YACZ,WAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,uHAAA;AAAA,YACV,WAAA,EAAU,wBAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,GACF;AAEJ","file":"chunk-46SUPGQV.js","sourcesContent":["// StatusIndicator/StatusIndicator.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n// Extracted to satisfy sonarjs/no-duplicate-string — each appears multiple times in compoundVariants.\nconst FULL_H = \"h-full\"\nconst FULL_W = \"w-full\"\nconst SHAPE_BAR_V = \"bar-vertical\" as const\nconst SHAPE_BAR_H = \"bar-horizontal\" as const\n\n/**\n * StatusIndicator style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const statusIndicatorVariants = cva(\"shrink-0\", {\n variants: {\n variant: {\n success: \"bg-[color:var(--status-indicator-dot-color-success)]\",\n warning: \"bg-[color:var(--status-indicator-dot-color-warning)]\",\n error: \"bg-[color:var(--status-indicator-dot-color-error)]\",\n destructive: \"bg-[color:var(--status-indicator-dot-color-destructive)]\",\n info: \"bg-[color:var(--status-indicator-dot-color-info)]\",\n neutral: \"bg-[color:var(--status-indicator-dot-color-neutral)]\",\n },\n shape: {\n dot: \"rounded-[var(--status-indicator-root-border-radius)]\",\n \"bar-vertical\": \"rounded-xs\",\n \"bar-horizontal\": \"rounded-xs\",\n },\n size: {\n xs: \"\",\n sm: \"\",\n default: \"\",\n lg: \"\",\n xl: \"\",\n \"2xl\": \"\",\n },\n },\n compoundVariants: [\n // Dot — uses size for both dimensions\n { shape: \"dot\", size: \"xs\", className: \"size-[var(--status-indicator-dot-size-xs)]\" },\n { shape: \"dot\", size: \"sm\", className: \"size-[var(--status-indicator-dot-size-sm)]\" },\n { shape: \"dot\", size: \"default\", className: \"size-[var(--status-indicator-dot-size-default)]\" },\n { shape: \"dot\", size: \"lg\", className: \"size-[var(--status-indicator-dot-size-lg)]\" },\n { shape: \"dot\", size: \"xl\", className: \"size-[var(--status-indicator-dot-size-xl)]\" },\n { shape: \"dot\", size: \"2xl\", className: \"size-[var(--status-indicator-dot-size-2xl)]\" },\n // Bar-vertical — width is secondary dim (size controls it); height 100% (FULL_H constant below)\n { shape: SHAPE_BAR_V, size: \"xs\", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-xs)]` },\n { shape: SHAPE_BAR_V, size: \"sm\", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-sm)]` },\n { shape: SHAPE_BAR_V, size: \"default\", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-default)]` },\n { shape: SHAPE_BAR_V, size: \"lg\", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-lg)]` },\n { shape: SHAPE_BAR_V, size: \"xl\", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-xl)]` },\n { shape: SHAPE_BAR_V, size: \"2xl\", className: `${FULL_H} w-[var(--status-indicator-bar-thickness-2xl)]` },\n // Bar-horizontal — height is secondary dim; width 100% (FULL_W constant below)\n { shape: SHAPE_BAR_H, size: \"xs\", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-xs)]` },\n { shape: SHAPE_BAR_H, size: \"sm\", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-sm)]` },\n { shape: SHAPE_BAR_H, size: \"default\", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-default)]` },\n { shape: SHAPE_BAR_H, size: \"lg\", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-lg)]` },\n { shape: SHAPE_BAR_H, size: \"xl\", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-xl)]` },\n { shape: SHAPE_BAR_H, size: \"2xl\", className: `${FULL_W} h-[var(--status-indicator-bar-thickness-2xl)]` },\n ],\n defaultVariants: {\n variant: \"neutral\",\n shape: \"dot\",\n size: \"default\",\n },\n})\n\n// Export variant prop types\nexport type StatusIndicatorVariantProps = VariantProps<typeof statusIndicatorVariants>\n","\"use client\"\n\nimport type { StatusIndicatorProps } from \"./StatusIndicator.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { statusIndicatorVariants } from \"./StatusIndicator.variants\"\n\nfunction StatusIndicator({\n className,\n variant,\n shape = \"dot\",\n size,\n pulse = false,\n label,\n labelPosition = \"right\",\n \"aria-label\": ariaLabel,\n ...props\n}: StatusIndicatorProps) {\n // Generate accessible label based on variant if not provided\n const defaultAriaLabel = `Status: ${variant ?? \"neutral\"}`\n const accessibleLabel = ariaLabel ?? (label ? undefined : defaultAriaLabel)\n\n // Bar shapes ignore `label` — they're purely visual (warning in dev when misused).\n const isBar = shape === \"bar-vertical\" || shape === \"bar-horizontal\"\n \n // `typeof process` guard is required so the library runs in browser bundlers (Vite, etc.) where `process` is not defined globally — without it, the dev-only warning branch throws `ReferenceError: process is not defined`.\n let isProd = false\n if (typeof process !== \"undefined\") {\n const { NODE_ENV } = process.env\n isProd = NODE_ENV === \"production\"\n }\n if (isBar && label && !isProd) {\n \n console.warn(\n `<StatusIndicator shape=\"${shape}\"> ignores the \\`label\\` prop. Use shape=\"dot\" to combine with label, or move the label to surrounding context.`,\n )\n }\n\n // Bar shape — render the bar alone (no label, no inline-flex wrapper).\n if (isBar) {\n return (\n <span\n className={cn(\n statusIndicatorVariants({ variant, shape, size }),\n pulse && \"animate-pulse\",\n className,\n )}\n aria-label={accessibleLabel}\n data-shape={shape}\n data-slot=\"status-indicator\"\n data-variant={variant ?? \"neutral\"}\n role=\"status\"\n {...props}\n />\n )\n }\n\n // If no label, render just the dot\n if (!label) {\n return (\n <span\n className={cn(\n statusIndicatorVariants({ variant, shape: \"dot\", size }),\n pulse && \"animate-pulse\",\n className\n )}\n aria-label={accessibleLabel}\n data-shape=\"dot\"\n data-slot=\"status-indicator\"\n data-variant={variant ?? \"neutral\"}\n role=\"status\"\n {...props}\n >\n <span\n className=\"sr-only\"\n data-slot=\"status-indicator-dot\"\n >\n {variant ?? \"neutral\"}\n </span>\n </span>\n )\n }\n\n // With label, render inline-flex container\n return (\n <span\n className={cn(\n \"inline-flex shrink-0 items-center gap-[var(--status-indicator-label-gap)]\",\n labelPosition === \"left\" && \"flex-row-reverse\",\n className\n )}\n aria-label={accessibleLabel}\n data-shape=\"dot\"\n data-slot=\"status-indicator\"\n data-variant={variant ?? \"neutral\"}\n role=\"status\"\n {...props}\n >\n <span\n className={cn(\n statusIndicatorVariants({ variant, shape: \"dot\", size }),\n pulse && \"animate-pulse\"\n )}\n aria-hidden=\"true\"\n data-slot=\"status-indicator-dot\"\n />\n <span\n className=\"text-[length:var(--status-indicator-label-font-size)] leading-normal text-[color:var(--status-indicator-label-color)]\"\n data-slot=\"status-indicator-label\"\n >\n {label}\n </span>\n </span>\n )\n}\n\nexport { StatusIndicator }\nexport { statusIndicatorVariants } from \"./StatusIndicator.variants\"\n"]}
@@ -1,6 +1,6 @@
1
1
  import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-WBE6VQOO.js';
2
- import { TextInput } from './chunk-PWCMCMDN.js';
3
- import { Button } from './chunk-7TF5PVEU.js';
2
+ import { TextInput } from './chunk-ZMUUEXVD.js';
3
+ import { Button } from './chunk-X5XP5QVO.js';
4
4
  import { cn } from './chunk-HRNDJU7D.js';
5
5
  import { X, PlusCircle, Trash2 } from 'lucide-react';
6
6
  import * as React from 'react';
@@ -478,5 +478,5 @@ function FilterBuilder({
478
478
  FilterBuilder.displayName = "FilterBuilder";
479
479
 
480
480
  export { FilterBuilder, isFilterCondition, isFilterGroup };
481
- //# sourceMappingURL=chunk-3W7FXRO5.js.map
482
- //# sourceMappingURL=chunk-3W7FXRO5.js.map
481
+ //# sourceMappingURL=chunk-56TC4CPT.js.map
482
+ //# sourceMappingURL=chunk-56TC4CPT.js.map