@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/layout/Section/Section.variants.ts","../src/components/layout/Section/Section.tsx"],"names":[],"mappings":";;;;;AAMO,IAAM,eAAA,GAAkB,GAAA;AAAA,EAC7B;AAAA,IACE;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,eAAA;AAAA,QACT,KAAA,EAAO,aAAA;AAAA,QACP,QAAA,EAAU,mBAAA;AAAA,QACV,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,OAAA,EAAS,yCAAA;AAAA,QACT,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;ACtBA,SAAS,OAAA,CAAQ;AAAA,EACf,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,YAAY,KAAA,IAAS,WAAA;AAC3B,EAAA,MAAM,cAAoB,KAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,OAAA,GAAU,QAAQ,WAAA,GAAc,MAAA;AAEtC,EAAA,uBACE,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,iBAAA,EAAiB,OAAA;AAAA,MACjB,SAAA,EAAW,GAAG,eAAA,CAAgB,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC3D,WAAA,EAAU,SAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,SAAA,oBACC,IAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,gBAAA,EAAiB,aAAU,gBAAA,EAC1C,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,iDAAA;AAAA,cACV,WAAA,EAAU,eAAA;AAAA,cACV,EAAA,EAAI,OAAA;AAAA,cAEH,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,WAAA,oBACC,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,+BAAA;AAAA,cACV,WAAA,EAAU,qBAAA;AAAA,cAET,QAAA,EAAA;AAAA;AAAA;AACH,SAAA,EAEJ,CAAA;AAAA,wBAEF,GAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,iBAAA,EAAmB,QAAA,EAAS,CAAA;AAAA,QAC1C,0BACC,GAAA,CAAC,QAAA,EAAA,EAAO,WAAU,oBAAA,EAAqB,WAAA,EAAU,kBAC9C,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-GL56KIFL.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Section variant styles\n * Layout component for grouping related content in semantic sections\n */\nexport const sectionVariants = cva(\n [\n \"rounded-[var(--section-root-radius)]\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-background\",\n muted: \"bg-muted/30\",\n elevated: \"bg-card shadow-md\",\n bordered: \"border border-border\",\n },\n size: {\n sm: \"p-[var(--section-size-sm-padding)]\",\n default: \"p-[var(--section-size-default-padding)]\",\n lg: \"p-[var(--section-size-lg-padding)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport type SectionVariantProps = VariantProps<typeof sectionVariants>\n","import type { SectionProps } from \"./Section.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { sectionVariants } from \"./Section.variants\"\n\nfunction Section({\n variant,\n size,\n title,\n description,\n footer,\n className,\n children,\n ...props\n}: SectionProps) {\n const hasHeader = title ?? description\n const generatedId = React.useId()\n const titleId = title ? generatedId : undefined\n\n return (\n <section\n aria-labelledby={titleId}\n className={cn(sectionVariants({ variant, size }), className)}\n data-slot=\"section\"\n {...props}\n >\n {hasHeader && (\n <header className=\"mb-4 space-y-1\" data-slot=\"section-header\">\n {title && (\n <h2\n className=\"text-lg font-medium leading-none tracking-tight\"\n data-slot=\"section-title\"\n id={titleId}\n >\n {title}\n </h2>\n )}\n {description && (\n <p\n className=\"text-sm text-muted-foreground\"\n data-slot=\"section-description\"\n >\n {description}\n </p>\n )}\n </header>\n )}\n <div data-slot=\"section-content\">{children}</div>\n {footer && (\n <footer className=\"mt-4 pt-4 border-t\" data-slot=\"section-footer\">\n {footer}\n </footer>\n )}\n </section>\n )\n}\n\nexport { Section }\n"]}
1
+ {"version":3,"sources":["../src/components/layout/Section/Section.variants.ts","../src/components/layout/Section/Section.tsx"],"names":[],"mappings":";;;;;AAMO,IAAM,eAAA,GAAkB,GAAA;AAAA,EAC7B;AAAA,IACE;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,eAAA;AAAA,QACT,KAAA,EAAO,aAAA;AAAA,QACP,QAAA,EAAU,mBAAA;AAAA,QACV,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,OAAA,EAAS,yCAAA;AAAA,QACT,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;ACtBA,SAAS,OAAA,CAAQ;AAAA,EACf,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,YAAY,KAAA,IAAS,WAAA;AAC3B,EAAA,MAAM,cAAoB,KAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,OAAA,GAAU,QAAQ,WAAA,GAAc,MAAA;AAEtC,EAAA,uBACE,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,iBAAA,EAAiB,OAAA;AAAA,MACjB,SAAA,EAAW,GAAG,eAAA,CAAgB,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC3D,WAAA,EAAU,SAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,SAAA,oBACC,IAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,8EAAA,EAA+E,aAAU,gBAAA,EACxG,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,iDAAA;AAAA,cACV,WAAA,EAAU,eAAA;AAAA,cACV,EAAA,EAAI,OAAA;AAAA,cAEH,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,WAAA,oBACC,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,+BAAA;AAAA,cACV,WAAA,EAAU,qBAAA;AAAA,cAET,QAAA,EAAA;AAAA;AAAA;AACH,SAAA,EAEJ,CAAA;AAAA,wBAEF,GAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,iBAAA,EAAmB,QAAA,EAAS,CAAA;AAAA,QAC1C,0BACC,GAAA,CAAC,QAAA,EAAA,EAAO,WAAU,oBAAA,EAAqB,WAAA,EAAU,kBAC9C,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-OG3M4CMJ.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Section variant styles\n * Layout component for grouping related content in semantic sections\n */\nexport const sectionVariants = cva(\n [\n \"rounded-[var(--section-root-radius)]\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-background\",\n muted: \"bg-muted/30\",\n elevated: \"bg-card shadow-md\",\n bordered: \"border border-border\",\n },\n size: {\n sm: \"p-[var(--section-size-sm-padding)]\",\n default: \"p-[var(--section-size-default-padding)]\",\n lg: \"p-[var(--section-size-lg-padding)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport type SectionVariantProps = VariantProps<typeof sectionVariants>\n","import type { SectionProps } from \"./Section.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { sectionVariants } from \"./Section.variants\"\n\nfunction Section({\n variant,\n size,\n title,\n description,\n footer,\n className,\n children,\n ...props\n}: SectionProps) {\n const hasHeader = title ?? description\n const generatedId = React.useId()\n const titleId = title ? generatedId : undefined\n\n return (\n <section\n aria-labelledby={titleId}\n className={cn(sectionVariants({ variant, size }), className)}\n data-slot=\"section\"\n {...props}\n >\n {hasHeader && (\n <header className=\"mb-[var(--section-header-margin-bottom)] space-y-[var(--section-header-gap)]\" data-slot=\"section-header\">\n {title && (\n <h2\n className=\"text-lg font-medium leading-none tracking-tight\"\n data-slot=\"section-title\"\n id={titleId}\n >\n {title}\n </h2>\n )}\n {description && (\n <p\n className=\"text-sm text-muted-foreground\"\n data-slot=\"section-description\"\n >\n {description}\n </p>\n )}\n </header>\n )}\n <div data-slot=\"section-content\">{children}</div>\n {footer && (\n <footer className=\"mt-4 pt-4 border-t\" data-slot=\"section-footer\">\n {footer}\n </footer>\n )}\n </section>\n )\n}\n\nexport { Section }\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Tabs, TabsList, TabsTrigger, TabsContent } from './chunk-NGR4HFVA.js';
2
2
  import { Toggle } from './chunk-UPYT2XM5.js';
3
3
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from './chunk-GAMOVEZD.js';
4
- import { Divider } from './chunk-3L5G7VI2.js';
4
+ import { Divider } from './chunk-MAM6VUKD.js';
5
5
  import { cn } from './chunk-HRNDJU7D.js';
6
6
  import { BoldIcon, ItalicIcon, StrikethroughIcon, CodeIcon, Heading1Icon, Heading2Icon, Heading3Icon, ListIcon, ListOrderedIcon, ListTodoIcon, QuoteIcon, LinkIcon, ImageIcon, HelpCircleIcon } from 'lucide-react';
7
7
  import { marked } from 'marked';
@@ -535,5 +535,5 @@ function MarkdownEditor({
535
535
  }
536
536
 
537
537
  export { MarkdownEditor, MarkdownHelp, MarkdownPreview, MarkdownToolbar };
538
- //# sourceMappingURL=chunk-7EGN7IGY.js.map
539
- //# sourceMappingURL=chunk-7EGN7IGY.js.map
538
+ //# sourceMappingURL=chunk-OR3NPCY2.js.map
539
+ //# sourceMappingURL=chunk-OR3NPCY2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/advanced/MarkdownEditor/MarkdownEditor.variants.ts","../src/components/advanced/MarkdownEditor/MarkdownEditor.tsx"],"names":[],"mappings":"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","file":"chunk-7EGN7IGY.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const markdownEditorVariants = cva(\n \"bg-background text-foreground border rounded-md overflow-hidden\",\n {\n variants: {\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n)\n\nexport const markdownToolbarVariants = cva(\n \"bg-muted flex flex-wrap items-center gap-1 border-b p-1\",\n {\n variants: {\n position: {\n top: \"rounded-t-md\",\n bottom: \"rounded-b-md border-t border-b-0\",\n },\n },\n defaultVariants: {\n position: \"top\",\n },\n }\n)\n\nexport const markdownEditorAreaVariants = cva(\n \"font-mono text-sm resize-none bg-background p-4 focus:outline-none w-full\",\n {\n variants: {\n disabled: {\n true: \"cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n)\n\nexport const markdownPreviewVariants = cva(\n \"prose prose-sm dark:prose-invert max-w-none p-4 bg-muted/50 overflow-auto\",\n {\n variants: {\n mode: {\n split: \"flex-1\",\n tabs: \"\",\n preview: \"\",\n },\n },\n defaultVariants: {\n mode: \"tabs\",\n },\n }\n)\n","\"use client\"\n\nimport type {\n MarkdownEditorProps,\n MarkdownEditorRef,\n MarkdownHelpProps,\n MarkdownPreviewProps,\n MarkdownToolbarProps,\n} from \"./MarkdownEditor.types\"\n\nimport {\n BoldIcon,\n CodeIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n HelpCircleIcon,\n ImageIcon,\n ItalicIcon,\n LinkIcon,\n ListIcon,\n ListOrderedIcon,\n ListTodoIcon,\n QuoteIcon,\n StrikethroughIcon,\n} from \"lucide-react\"\nimport { marked } from \"marked\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../../feedback/Dialog\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../navigation/Tabs\"\nimport { Divider } from \"../../primitives/Divider\"\nimport { Toggle } from \"../../primitives/Toggle\"\nimport {\n markdownEditorAreaVariants,\n markdownEditorVariants,\n markdownPreviewVariants,\n markdownToolbarVariants,\n} from \"./MarkdownEditor.variants\"\n\n// Configure marked for security\nmarked.setOptions({\n breaks: true,\n gfm: true,\n})\n\n/**\n * MarkdownHelp - Modal with markdown syntax reference\n */\nfunction MarkdownHelp({ open, onOpenChange }: MarkdownHelpProps) {\n const syntaxExamples = [\n { syntax: \"**bold**\", description: \"Bold text\" },\n { syntax: \"*italic*\", description: \"Italic text\" },\n { syntax: \"~~strikethrough~~\", description: \"Strikethrough\" },\n { syntax: \"# Heading 1\", description: \"Large heading\" },\n { syntax: \"## Heading 2\", description: \"Medium heading\" },\n { syntax: \"### Heading 3\", description: \"Small heading\" },\n { syntax: \"[link](url)\", description: \"Hyperlink\" },\n { syntax: \"![alt](url)\", description: \"Image\" },\n { syntax: \"> quote\", description: \"Blockquote\" },\n { syntax: \"`code`\", description: \"Inline code\" },\n { syntax: \"```code block```\", description: \"Code block\" },\n { syntax: \"- item\", description: \"Unordered list\" },\n { syntax: \"1. item\", description: \"Ordered list\" },\n { syntax: \"- [ ] task\", description: \"Task list\" },\n ]\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Markdown Syntax</DialogTitle>\n <DialogDescription>\n Quick reference for markdown formatting\n </DialogDescription>\n </DialogHeader>\n <div className=\"grid grid-cols-2 gap-2 text-sm\">\n {syntaxExamples.map(({ syntax, description }) => (\n <div key={syntax} className=\"flex items-center gap-2\">\n <code className=\"bg-muted rounded px-1.5 py-0.5 font-mono text-xs\">\n {syntax}\n </code>\n <span className=\"text-muted-foreground\">{description}</span>\n </div>\n ))}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\n/**\n * MarkdownPreview - Renders markdown content as HTML\n */\nfunction MarkdownPreview({ content, className }: MarkdownPreviewProps) {\n const html = React.useMemo(() => {\n if (!content) return \"\"\n return marked.parse(content) as string\n }, [content])\n\n return (\n <div\n className={cn(markdownPreviewVariants(), className)}\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml -- required for markdown rendering\n dangerouslySetInnerHTML={{ __html: html }}\n data-slot=\"markdown-preview\"\n />\n )\n}\n\n/**\n * MarkdownToolbar - Formatting toolbar for the editor\n */\nfunction MarkdownToolbar({\n className,\n disabled = false,\n editorRef,\n showHelp = true,\n onHelpClick,\n}: MarkdownToolbarProps) {\n const handleAction = React.useCallback(\n (before: string, after: string) => {\n if (disabled || !editorRef.current) return\n editorRef.current.wrapSelection(before, after)\n },\n [disabled, editorRef]\n )\n\n const handleInsert = React.useCallback(\n (text: string) => {\n if (disabled || !editorRef.current) return\n editorRef.current.insertText(text)\n },\n [disabled, editorRef]\n )\n\n return (\n <div\n aria-label=\"Markdown formatting\"\n className={cn(markdownToolbarVariants(), className)}\n data-slot=\"markdown-toolbar\"\n role=\"toolbar\"\n >\n {/* Text formatting */}\n <Toggle\n aria-label=\"Bold (Ctrl+B)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"**\", \"**\"); }}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic (Ctrl+I)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"*\", \"*\"); }}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"~~\", \"~~\"); }}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code (Ctrl+E)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"`\", \"`\"); }}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Headings */}\n <Toggle\n aria-label=\"Heading 1\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"# \"); }}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"## \"); }}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 3\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"### \"); }}\n >\n <Heading3Icon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Lists */}\n <Toggle\n aria-label=\"Bullet list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"- \"); }}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Numbered list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"1. \"); }}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"- [ ] \"); }}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Blocks */}\n <Toggle\n aria-label=\"Quote\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"> \"); }}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Link (Ctrl+K)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"[\", \"](url)\"); }}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Image\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"![\", \"](url)\"); }}\n >\n <ImageIcon className=\"size-4\" />\n </Toggle>\n\n {showHelp && (\n <>\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n <Toggle\n aria-label=\"Markdown help\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={onHelpClick}\n >\n <HelpCircleIcon className=\"size-4\" />\n </Toggle>\n </>\n )}\n </div>\n )\n}\n\n/**\n * MarkdownEditor - A markdown editor with toolbar and preview.\n *\n * Supports tabs mode (switch between editor/preview), split mode (side by side),\n * or standalone editor/preview modes.\n *\n * @example\n * ```tsx\n * const [content, setContent] = useState(\"\")\n *\n * <MarkdownEditor\n * value={content}\n * onChange={setContent}\n * placeholder=\"Write something...\"\n * />\n * ```\n */\nfunction MarkdownEditor({\n \"aria-describedby\": ariaDescribedBy,\n \"aria-label\": ariaLabel = \"Markdown editor\",\n allowImages: _allowImages = true,\n className,\n defaultValue = \"\",\n disabled = false,\n maxHeight,\n minHeight = \"200px\",\n mode = \"tabs\",\n onBlur,\n onChange,\n onFocus,\n onImageUpload: _onImageUpload,\n placeholder = \"Write markdown...\",\n readOnly = false,\n ref,\n showHelp = true,\n showToolbar = true,\n toolbar: _toolbar,\n value,\n}: MarkdownEditorProps & { ref?: React.Ref<MarkdownEditorRef> }) {\n const textareaRef = React.useRef<HTMLTextAreaElement>(null)\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const [showHelpModal, setShowHelpModal] = React.useState(false)\n\n // Controlled vs uncontrolled value\n const currentValue = value ?? internalValue\n\n // Create stable ref for internal use (toolbar, etc.)\n const editorRef = React.useRef<MarkdownEditorRef | null>(null)\n\n // Expose ref methods - using useImperativeHandle directly for immediate availability\n React.useImperativeHandle(\n ref,\n () => {\n const methods: MarkdownEditorRef = {\n blur: () => textareaRef.current?.blur(),\n focus: () => textareaRef.current?.focus(),\n getSelection: () => {\n const textarea = textareaRef.current\n if (!textarea) return { start: 0, end: 0, text: \"\" }\n return {\n end: textarea.selectionEnd,\n start: textarea.selectionStart,\n text: textarea.value.substring(\n textarea.selectionStart,\n textarea.selectionEnd\n ),\n }\n },\n getValue: () => textareaRef.current?.value ?? \"\",\n insertText: (text: string) => {\n const textarea = textareaRef.current\n if (!textarea) return\n\n const start = textarea.selectionStart\n const end = textarea.selectionEnd\n const newValue =\n currentValue.slice(0, start) + text + currentValue.slice(end)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n\n // Restore cursor position\n requestAnimationFrame(() => {\n textarea.selectionStart = start + text.length\n textarea.selectionEnd = start + text.length\n textarea.focus()\n })\n },\n setValue: (newValue: string) => {\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n wrapSelection: (before: string, after: string) => {\n const textarea = textareaRef.current\n if (!textarea) return\n\n const start = textarea.selectionStart\n const end = textarea.selectionEnd\n const selectedText = currentValue.substring(start, end)\n const newText = before + selectedText + after\n const newValue =\n currentValue.slice(0, start) + newText + currentValue.slice(end)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n\n // Select the wrapped text\n requestAnimationFrame(() => {\n textarea.selectionStart = start + before.length\n textarea.selectionEnd = start + before.length + selectedText.length\n textarea.focus()\n })\n },\n }\n // Also update internal ref for toolbar use\n editorRef.current = methods\n return methods\n },\n [currentValue, onChange, value]\n )\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [onChange, value]\n )\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (disabled || readOnly) return\n\n const isMod = e.metaKey || e.ctrlKey\n\n if (isMod && e.key === \"b\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"**\", \"**\")\n } else if (isMod && e.key === \"i\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"*\", \"*\")\n } else if (isMod && e.key === \"k\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"[\", \"](url)\")\n } else if (isMod && e.key === \"e\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"`\", \"`\")\n }\n },\n [disabled, readOnly]\n )\n\n const isDisabled = disabled || readOnly\n\n const editorStyle: React.CSSProperties = {\n maxHeight,\n minHeight,\n }\n\n const renderEditor = () => (\n <textarea\n ref={textareaRef}\n aria-describedby={ariaDescribedBy}\n aria-label={ariaLabel}\n aria-multiline=\"true\"\n className={cn(markdownEditorAreaVariants({ disabled: isDisabled }))}\n disabled={disabled}\n placeholder={placeholder}\n readOnly={readOnly}\n role=\"textbox\"\n style={editorStyle}\n value={currentValue}\n onBlur={onBlur}\n onChange={handleChange}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n />\n )\n\n const renderPreview = () => (\n <MarkdownPreview\n className={mode === \"split\" ? \"flex-1\" : undefined}\n content={currentValue}\n />\n )\n\n const renderContent = () => {\n switch (mode) {\n case \"editor\":\n return renderEditor()\n\n case \"preview\":\n return renderPreview()\n\n case \"split\":\n return (\n <div className=\"flex flex-1\">\n <div className=\"flex-1 overflow-auto border-r\" style={editorStyle}>\n {renderEditor()}\n </div>\n <div className=\"flex-1 overflow-auto\" style={editorStyle}>\n {renderPreview()}\n </div>\n </div>\n )\n\n case \"tabs\":\n default:\n return (\n <Tabs className=\"flex-1\" defaultValue=\"editor\">\n <TabsList className=\"mx-2 mt-2\">\n <TabsTrigger value=\"editor\">Editor</TabsTrigger>\n <TabsTrigger value=\"preview\">Preview</TabsTrigger>\n </TabsList>\n <TabsContent className=\"mt-0\" value=\"editor\">\n {renderEditor()}\n </TabsContent>\n <TabsContent className=\"mt-0\" value=\"preview\">\n {renderPreview()}\n </TabsContent>\n </Tabs>\n )\n }\n }\n\n return (\n <>\n <div\n className={cn(markdownEditorVariants({ disabled }), className)}\n data-slot=\"markdown-editor\"\n >\n {showToolbar && mode !== \"preview\" && (\n <MarkdownToolbar\n disabled={isDisabled}\n editorRef={editorRef as React.RefObject<MarkdownEditorRef>}\n showHelp={showHelp}\n onHelpClick={() => { setShowHelpModal(true); }}\n />\n )}\n {renderContent()}\n </div>\n\n <MarkdownHelp open={showHelpModal} onOpenChange={setShowHelpModal} />\n </>\n )\n}\n\nexport { MarkdownEditor, MarkdownHelp, MarkdownPreview, MarkdownToolbar }\n"]}
1
+ {"version":3,"sources":["../src/components/advanced/MarkdownEditor/MarkdownEditor.variants.ts","../src/components/advanced/MarkdownEditor/MarkdownEditor.tsx"],"names":[],"mappings":"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","file":"chunk-OR3NPCY2.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const markdownEditorVariants = cva(\n \"bg-background text-foreground border rounded-md overflow-hidden\",\n {\n variants: {\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n)\n\nexport const markdownToolbarVariants = cva(\n \"bg-muted flex flex-wrap items-center gap-1 border-b p-1\",\n {\n variants: {\n position: {\n top: \"rounded-t-md\",\n bottom: \"rounded-b-md border-t border-b-0\",\n },\n },\n defaultVariants: {\n position: \"top\",\n },\n }\n)\n\nexport const markdownEditorAreaVariants = cva(\n \"font-mono text-sm resize-none bg-background p-4 focus:outline-none w-full\",\n {\n variants: {\n disabled: {\n true: \"cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n)\n\nexport const markdownPreviewVariants = cva(\n \"prose prose-sm dark:prose-invert max-w-none p-4 bg-muted/50 overflow-auto\",\n {\n variants: {\n mode: {\n split: \"flex-1\",\n tabs: \"\",\n preview: \"\",\n },\n },\n defaultVariants: {\n mode: \"tabs\",\n },\n }\n)\n","\"use client\"\n\nimport type {\n MarkdownEditorProps,\n MarkdownEditorRef,\n MarkdownHelpProps,\n MarkdownPreviewProps,\n MarkdownToolbarProps,\n} from \"./MarkdownEditor.types\"\n\nimport {\n BoldIcon,\n CodeIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n HelpCircleIcon,\n ImageIcon,\n ItalicIcon,\n LinkIcon,\n ListIcon,\n ListOrderedIcon,\n ListTodoIcon,\n QuoteIcon,\n StrikethroughIcon,\n} from \"lucide-react\"\nimport { marked } from \"marked\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../../feedback/Dialog\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../navigation/Tabs\"\nimport { Divider } from \"../../primitives/Divider\"\nimport { Toggle } from \"../../primitives/Toggle\"\nimport {\n markdownEditorAreaVariants,\n markdownEditorVariants,\n markdownPreviewVariants,\n markdownToolbarVariants,\n} from \"./MarkdownEditor.variants\"\n\n// Configure marked for security\nmarked.setOptions({\n breaks: true,\n gfm: true,\n})\n\n/**\n * MarkdownHelp - Modal with markdown syntax reference\n */\nfunction MarkdownHelp({ open, onOpenChange }: MarkdownHelpProps) {\n const syntaxExamples = [\n { syntax: \"**bold**\", description: \"Bold text\" },\n { syntax: \"*italic*\", description: \"Italic text\" },\n { syntax: \"~~strikethrough~~\", description: \"Strikethrough\" },\n { syntax: \"# Heading 1\", description: \"Large heading\" },\n { syntax: \"## Heading 2\", description: \"Medium heading\" },\n { syntax: \"### Heading 3\", description: \"Small heading\" },\n { syntax: \"[link](url)\", description: \"Hyperlink\" },\n { syntax: \"![alt](url)\", description: \"Image\" },\n { syntax: \"> quote\", description: \"Blockquote\" },\n { syntax: \"`code`\", description: \"Inline code\" },\n { syntax: \"```code block```\", description: \"Code block\" },\n { syntax: \"- item\", description: \"Unordered list\" },\n { syntax: \"1. item\", description: \"Ordered list\" },\n { syntax: \"- [ ] task\", description: \"Task list\" },\n ]\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Markdown Syntax</DialogTitle>\n <DialogDescription>\n Quick reference for markdown formatting\n </DialogDescription>\n </DialogHeader>\n <div className=\"grid grid-cols-2 gap-2 text-sm\">\n {syntaxExamples.map(({ syntax, description }) => (\n <div key={syntax} className=\"flex items-center gap-2\">\n <code className=\"bg-muted rounded px-1.5 py-0.5 font-mono text-xs\">\n {syntax}\n </code>\n <span className=\"text-muted-foreground\">{description}</span>\n </div>\n ))}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\n/**\n * MarkdownPreview - Renders markdown content as HTML\n */\nfunction MarkdownPreview({ content, className }: MarkdownPreviewProps) {\n const html = React.useMemo(() => {\n if (!content) return \"\"\n return marked.parse(content) as string\n }, [content])\n\n return (\n <div\n className={cn(markdownPreviewVariants(), className)}\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml -- required for markdown rendering\n dangerouslySetInnerHTML={{ __html: html }}\n data-slot=\"markdown-preview\"\n />\n )\n}\n\n/**\n * MarkdownToolbar - Formatting toolbar for the editor\n */\nfunction MarkdownToolbar({\n className,\n disabled = false,\n editorRef,\n showHelp = true,\n onHelpClick,\n}: MarkdownToolbarProps) {\n const handleAction = React.useCallback(\n (before: string, after: string) => {\n if (disabled || !editorRef.current) return\n editorRef.current.wrapSelection(before, after)\n },\n [disabled, editorRef]\n )\n\n const handleInsert = React.useCallback(\n (text: string) => {\n if (disabled || !editorRef.current) return\n editorRef.current.insertText(text)\n },\n [disabled, editorRef]\n )\n\n return (\n <div\n aria-label=\"Markdown formatting\"\n className={cn(markdownToolbarVariants(), className)}\n data-slot=\"markdown-toolbar\"\n role=\"toolbar\"\n >\n {/* Text formatting */}\n <Toggle\n aria-label=\"Bold (Ctrl+B)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"**\", \"**\"); }}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic (Ctrl+I)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"*\", \"*\"); }}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"~~\", \"~~\"); }}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code (Ctrl+E)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"`\", \"`\"); }}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Headings */}\n <Toggle\n aria-label=\"Heading 1\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"# \"); }}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"## \"); }}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 3\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"### \"); }}\n >\n <Heading3Icon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Lists */}\n <Toggle\n aria-label=\"Bullet list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"- \"); }}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Numbered list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"1. \"); }}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"- [ ] \"); }}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Blocks */}\n <Toggle\n aria-label=\"Quote\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"> \"); }}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Link (Ctrl+K)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"[\", \"](url)\"); }}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Image\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"![\", \"](url)\"); }}\n >\n <ImageIcon className=\"size-4\" />\n </Toggle>\n\n {showHelp && (\n <>\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n <Toggle\n aria-label=\"Markdown help\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={onHelpClick}\n >\n <HelpCircleIcon className=\"size-4\" />\n </Toggle>\n </>\n )}\n </div>\n )\n}\n\n/**\n * MarkdownEditor - A markdown editor with toolbar and preview.\n *\n * Supports tabs mode (switch between editor/preview), split mode (side by side),\n * or standalone editor/preview modes.\n *\n * @example\n * ```tsx\n * const [content, setContent] = useState(\"\")\n *\n * <MarkdownEditor\n * value={content}\n * onChange={setContent}\n * placeholder=\"Write something...\"\n * />\n * ```\n */\nfunction MarkdownEditor({\n \"aria-describedby\": ariaDescribedBy,\n \"aria-label\": ariaLabel = \"Markdown editor\",\n allowImages: _allowImages = true,\n className,\n defaultValue = \"\",\n disabled = false,\n maxHeight,\n minHeight = \"200px\",\n mode = \"tabs\",\n onBlur,\n onChange,\n onFocus,\n onImageUpload: _onImageUpload,\n placeholder = \"Write markdown...\",\n readOnly = false,\n ref,\n showHelp = true,\n showToolbar = true,\n toolbar: _toolbar,\n value,\n}: MarkdownEditorProps & { ref?: React.Ref<MarkdownEditorRef> }) {\n const textareaRef = React.useRef<HTMLTextAreaElement>(null)\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const [showHelpModal, setShowHelpModal] = React.useState(false)\n\n // Controlled vs uncontrolled value\n const currentValue = value ?? internalValue\n\n // Create stable ref for internal use (toolbar, etc.)\n const editorRef = React.useRef<MarkdownEditorRef | null>(null)\n\n // Expose ref methods - using useImperativeHandle directly for immediate availability\n React.useImperativeHandle(\n ref,\n () => {\n const methods: MarkdownEditorRef = {\n blur: () => textareaRef.current?.blur(),\n focus: () => textareaRef.current?.focus(),\n getSelection: () => {\n const textarea = textareaRef.current\n if (!textarea) return { start: 0, end: 0, text: \"\" }\n return {\n end: textarea.selectionEnd,\n start: textarea.selectionStart,\n text: textarea.value.substring(\n textarea.selectionStart,\n textarea.selectionEnd\n ),\n }\n },\n getValue: () => textareaRef.current?.value ?? \"\",\n insertText: (text: string) => {\n const textarea = textareaRef.current\n if (!textarea) return\n\n const start = textarea.selectionStart\n const end = textarea.selectionEnd\n const newValue =\n currentValue.slice(0, start) + text + currentValue.slice(end)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n\n // Restore cursor position\n requestAnimationFrame(() => {\n textarea.selectionStart = start + text.length\n textarea.selectionEnd = start + text.length\n textarea.focus()\n })\n },\n setValue: (newValue: string) => {\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n wrapSelection: (before: string, after: string) => {\n const textarea = textareaRef.current\n if (!textarea) return\n\n const start = textarea.selectionStart\n const end = textarea.selectionEnd\n const selectedText = currentValue.substring(start, end)\n const newText = before + selectedText + after\n const newValue =\n currentValue.slice(0, start) + newText + currentValue.slice(end)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n\n // Select the wrapped text\n requestAnimationFrame(() => {\n textarea.selectionStart = start + before.length\n textarea.selectionEnd = start + before.length + selectedText.length\n textarea.focus()\n })\n },\n }\n // Also update internal ref for toolbar use\n editorRef.current = methods\n return methods\n },\n [currentValue, onChange, value]\n )\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [onChange, value]\n )\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (disabled || readOnly) return\n\n const isMod = e.metaKey || e.ctrlKey\n\n if (isMod && e.key === \"b\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"**\", \"**\")\n } else if (isMod && e.key === \"i\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"*\", \"*\")\n } else if (isMod && e.key === \"k\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"[\", \"](url)\")\n } else if (isMod && e.key === \"e\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"`\", \"`\")\n }\n },\n [disabled, readOnly]\n )\n\n const isDisabled = disabled || readOnly\n\n const editorStyle: React.CSSProperties = {\n maxHeight,\n minHeight,\n }\n\n const renderEditor = () => (\n <textarea\n ref={textareaRef}\n aria-describedby={ariaDescribedBy}\n aria-label={ariaLabel}\n aria-multiline=\"true\"\n className={cn(markdownEditorAreaVariants({ disabled: isDisabled }))}\n disabled={disabled}\n placeholder={placeholder}\n readOnly={readOnly}\n role=\"textbox\"\n style={editorStyle}\n value={currentValue}\n onBlur={onBlur}\n onChange={handleChange}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n />\n )\n\n const renderPreview = () => (\n <MarkdownPreview\n className={mode === \"split\" ? \"flex-1\" : undefined}\n content={currentValue}\n />\n )\n\n const renderContent = () => {\n switch (mode) {\n case \"editor\":\n return renderEditor()\n\n case \"preview\":\n return renderPreview()\n\n case \"split\":\n return (\n <div className=\"flex flex-1\">\n <div className=\"flex-1 overflow-auto border-r\" style={editorStyle}>\n {renderEditor()}\n </div>\n <div className=\"flex-1 overflow-auto\" style={editorStyle}>\n {renderPreview()}\n </div>\n </div>\n )\n\n case \"tabs\":\n default:\n return (\n <Tabs className=\"flex-1\" defaultValue=\"editor\">\n <TabsList className=\"mx-2 mt-2\">\n <TabsTrigger value=\"editor\">Editor</TabsTrigger>\n <TabsTrigger value=\"preview\">Preview</TabsTrigger>\n </TabsList>\n <TabsContent className=\"mt-0\" value=\"editor\">\n {renderEditor()}\n </TabsContent>\n <TabsContent className=\"mt-0\" value=\"preview\">\n {renderPreview()}\n </TabsContent>\n </Tabs>\n )\n }\n }\n\n return (\n <>\n <div\n className={cn(markdownEditorVariants({ disabled }), className)}\n data-slot=\"markdown-editor\"\n >\n {showToolbar && mode !== \"preview\" && (\n <MarkdownToolbar\n disabled={isDisabled}\n editorRef={editorRef as React.RefObject<MarkdownEditorRef>}\n showHelp={showHelp}\n onHelpClick={() => { setShowHelpModal(true); }}\n />\n )}\n {renderContent()}\n </div>\n\n <MarkdownHelp open={showHelpModal} onOpenChange={setShowHelpModal} />\n </>\n )\n}\n\nexport { MarkdownEditor, MarkdownHelp, MarkdownPreview, MarkdownToolbar }\n"]}
@@ -1,4 +1,4 @@
1
- import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuShortcut } from './chunk-OXDWUKGP.js';
1
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuShortcut } from './chunk-WCMRVCIM.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import { ChevronDown, LoaderCircle } from 'lucide-react';
4
4
  import * as React from 'react';
@@ -119,7 +119,7 @@ function SplitButton({
119
119
  index
120
120
  );
121
121
  };
122
- const dividerClass = variant === "outline" || variant === "ghost" ? "border-l border-border" : "border-l border-current/20";
122
+ const dividerClass = variant === "outline" || variant === "ghost" ? "border-l border-[color:var(--split-button-divider-color)]" : "border-l border-current/20";
123
123
  return /* @__PURE__ */ jsxs(
124
124
  "div",
125
125
  {
@@ -170,5 +170,5 @@ function SplitButton({
170
170
  }
171
171
 
172
172
  export { SplitButton, splitButtonVariants };
173
- //# sourceMappingURL=chunk-5I7AXWJU.js.map
174
- //# sourceMappingURL=chunk-5I7AXWJU.js.map
173
+ //# sourceMappingURL=chunk-PGRMKSVA.js.map
174
+ //# sourceMappingURL=chunk-PGRMKSVA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/primitives/SplitButton/SplitButton.variants.ts","../src/components/primitives/SplitButton/SplitButton.tsx"],"names":[],"mappings":"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","file":"chunk-5I7AXWJU.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Primary action button variants (left half of SplitButton).\n *\n * State colors follow Figma (DES-1306): solid hover tokens (`--primary-hover` /\n * `--destructive-hover`) instead of opacity, and a solid disabled triplet\n * (`--disabled-background` / `-foreground` / `-border`) instead of `opacity-50`.\n */\nexport const splitButtonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n primary: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n destructive:\n \"bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n },\n size: {\n md:\n \"h-[var(--button-size-default-h)] px-[var(--button-size-default-px)] py-[var(--button-size-default-py)]\",\n sm: \"h-[var(--button-size-sm-h)] gap-[var(--button-size-sm-gap)] px-[var(--button-size-sm-px)]\",\n lg: \"h-[var(--button-size-lg-h)] px-[var(--button-size-lg-px)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * Trigger button variants (right half of SplitButton — icon-only chevron).\n *\n * Adds the Figma `Status=Open` visual (DES-1306 item 2): the outline trigger\n * gets `bg-muted` while the dropdown is open (`data-state=open` from Radix).\n */\nexport const splitButtonTriggerVariants = cva(\n \"inline-flex items-center justify-center transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n primary: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n destructive:\n \"bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground data-[state=open]:bg-muted disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n },\n size: {\n md:\n \"h-[var(--button-size-default-h)] px-[var(--split-button-trigger-padding-x)]\",\n sm: \"h-[var(--button-size-sm-h)] px-1.5\",\n lg: \"h-[var(--button-size-lg-h)] px-3\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\nexport type SplitButtonVariantProps = VariantProps<typeof splitButtonVariants>\nexport type SplitButtonTriggerVariantProps = VariantProps<\n typeof splitButtonTriggerVariants\n>\n","\"use client\"\n\nimport type {\n SplitButtonEventPayload,\n SplitButtonMenuItem,\n SplitButtonProps,\n} from \"./SplitButton.types\"\n\nimport { ChevronDown, LoaderCircle } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"../../navigation/DropdownMenu\"\nimport {\n splitButtonVariants,\n splitButtonTriggerVariants as triggerVariants,\n} from \"./SplitButton.variants\"\n\nfunction SplitButton({\n className,\n variant,\n size,\n children,\n onClick,\n menuItems,\n loading = false,\n loadingText,\n disabled,\n leftIcon,\n \"data-id\": dataId,\n triggerAriaLabel = \"Open menu\",\n defaultOpen,\n open,\n onOpenChange,\n ...props\n}: SplitButtonProps) {\n const isDisabled = disabled ?? loading\n\n // Create event payload for callbacks\n const createPayload = React.useCallback((): SplitButtonEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n timestamp: Date.now(),\n isLoading: loading,\n }), [dataId, loading])\n\n // Wrapped event handler that emits SplitButtonEventPayload\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload]\n )\n\n // Determine what to render as primary button content\n const renderPrimaryContent = () => {\n if (loading) {\n return (\n <>\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"animate-spin\"\n data-slot=\"loading-icon\"\n />\n {loadingText ?? children}\n </>\n )\n }\n\n return (\n <>\n {leftIcon && (\n <span aria-hidden=\"true\" data-slot=\"left-icon\">\n {leftIcon}\n </span>\n )}\n {children}\n </>\n )\n }\n\n // Render a single menu item\n const renderMenuItem = (item: SplitButtonMenuItem, index: number) => {\n // Guard onClick - don't call if item is disabled\n const handleItemClick = item.disabled ? undefined : item.onClick\n\n return (\n <DropdownMenuItem\n key={index}\n {...(handleItemClick ? { onClick: handleItemClick } : {})}\n disabled={item.disabled ?? false}\n variant={item.variant ?? \"default\"}\n >\n {item.icon}\n <span>{item.label}</span>\n {item.shortcut && (\n <DropdownMenuShortcut>{item.shortcut}</DropdownMenuShortcut>\n )}\n </DropdownMenuItem>\n )\n }\n\n // Divider class for visual separation between buttons\n const dividerClass =\n variant === \"outline\" || variant === \"ghost\"\n ? \"border-l border-border\"\n : \"border-l border-current/20\"\n\n return (\n <div\n className={cn(\"inline-flex\", className)}\n data-id={dataId}\n data-slot=\"split-button\"\n {...props}\n >\n {/* Primary action button */}\n <button\n className={cn(\n splitButtonVariants({ variant, size }),\n \"rounded-l-[var(--button-radius-default)] rounded-r-none\"\n )}\n aria-busy={loading || undefined}\n aria-disabled={isDisabled || undefined}\n data-loading={loading || undefined}\n data-slot=\"split-button-primary\"\n disabled={isDisabled}\n type=\"button\"\n onClick={handleClick}\n >\n {renderPrimaryContent()}\n </button>\n\n {/* Dropdown trigger button */}\n <DropdownMenu defaultOpen={defaultOpen} open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n triggerVariants({ variant, size }),\n \"rounded-r-[var(--button-radius-default)] rounded-l-none\",\n dividerClass\n )}\n aria-disabled={isDisabled || undefined}\n aria-label={triggerAriaLabel}\n data-slot=\"split-button-trigger\"\n disabled={isDisabled}\n type=\"button\"\n >\n <ChevronDown className=\"size-4\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {menuItems.map(renderMenuItem)}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n )\n}\n\nexport { SplitButton, splitButtonVariants }\n"]}
1
+ {"version":3,"sources":["../src/components/primitives/SplitButton/SplitButton.variants.ts","../src/components/primitives/SplitButton/SplitButton.tsx"],"names":[],"mappings":"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","file":"chunk-PGRMKSVA.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Primary action button variants (left half of SplitButton).\n *\n * State colors follow Figma (DES-1306): solid hover tokens (`--primary-hover` /\n * `--destructive-hover`) instead of opacity, and a solid disabled triplet\n * (`--disabled-background` / `-foreground` / `-border`) instead of `opacity-50`.\n */\nexport const splitButtonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n primary: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n destructive:\n \"bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n },\n size: {\n md:\n \"h-[var(--button-size-default-h)] px-[var(--button-size-default-px)] py-[var(--button-size-default-py)]\",\n sm: \"h-[var(--button-size-sm-h)] gap-[var(--button-size-sm-gap)] px-[var(--button-size-sm-px)]\",\n lg: \"h-[var(--button-size-lg-h)] px-[var(--button-size-lg-px)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * Trigger button variants (right half of SplitButton — icon-only chevron).\n *\n * Adds the Figma `Status=Open` visual (DES-1306 item 2): the outline trigger\n * gets `bg-muted` while the dropdown is open (`data-state=open` from Radix).\n */\nexport const splitButtonTriggerVariants = cva(\n \"inline-flex items-center justify-center transition-all disabled:pointer-events-none disabled:bg-[color:var(--disabled-background)] disabled:text-[color:var(--disabled-foreground)] [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n primary: \"bg-primary text-primary-foreground hover:bg-[color:var(--primary-hover)]\",\n destructive:\n \"bg-destructive text-white hover:bg-[color:var(--destructive-hover)] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground data-[state=open]:bg-muted disabled:border-[color:var(--disabled-border)] dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n },\n size: {\n md:\n \"h-[var(--button-size-default-h)] px-[var(--split-button-trigger-padding-x)]\",\n sm: \"h-[var(--button-size-sm-h)] px-1.5\",\n lg: \"h-[var(--button-size-lg-h)] px-3\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\nexport type SplitButtonVariantProps = VariantProps<typeof splitButtonVariants>\nexport type SplitButtonTriggerVariantProps = VariantProps<\n typeof splitButtonTriggerVariants\n>\n","\"use client\"\n\nimport type {\n SplitButtonEventPayload,\n SplitButtonMenuItem,\n SplitButtonProps,\n} from \"./SplitButton.types\"\n\nimport { ChevronDown, LoaderCircle } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"../../navigation/DropdownMenu\"\nimport {\n splitButtonVariants,\n splitButtonTriggerVariants as triggerVariants,\n} from \"./SplitButton.variants\"\n\nfunction SplitButton({\n className,\n variant,\n size,\n children,\n onClick,\n menuItems,\n loading = false,\n loadingText,\n disabled,\n leftIcon,\n \"data-id\": dataId,\n triggerAriaLabel = \"Open menu\",\n defaultOpen,\n open,\n onOpenChange,\n ...props\n}: SplitButtonProps) {\n const isDisabled = disabled ?? loading\n\n // Create event payload for callbacks\n const createPayload = React.useCallback((): SplitButtonEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n timestamp: Date.now(),\n isLoading: loading,\n }), [dataId, loading])\n\n // Wrapped event handler that emits SplitButtonEventPayload\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload]\n )\n\n // Determine what to render as primary button content\n const renderPrimaryContent = () => {\n if (loading) {\n return (\n <>\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"animate-spin\"\n data-slot=\"loading-icon\"\n />\n {loadingText ?? children}\n </>\n )\n }\n\n return (\n <>\n {leftIcon && (\n <span aria-hidden=\"true\" data-slot=\"left-icon\">\n {leftIcon}\n </span>\n )}\n {children}\n </>\n )\n }\n\n // Render a single menu item\n const renderMenuItem = (item: SplitButtonMenuItem, index: number) => {\n // Guard onClick - don't call if item is disabled\n const handleItemClick = item.disabled ? undefined : item.onClick\n\n return (\n <DropdownMenuItem\n key={index}\n {...(handleItemClick ? { onClick: handleItemClick } : {})}\n disabled={item.disabled ?? false}\n variant={item.variant ?? \"default\"}\n >\n {item.icon}\n <span>{item.label}</span>\n {item.shortcut && (\n <DropdownMenuShortcut>{item.shortcut}</DropdownMenuShortcut>\n )}\n </DropdownMenuItem>\n )\n }\n\n // Divider class for visual separation between buttons\n const dividerClass =\n variant === \"outline\" || variant === \"ghost\"\n ? \"border-l border-[color:var(--split-button-divider-color)]\"\n : \"border-l border-current/20\"\n\n return (\n <div\n className={cn(\"inline-flex\", className)}\n data-id={dataId}\n data-slot=\"split-button\"\n {...props}\n >\n {/* Primary action button */}\n <button\n className={cn(\n splitButtonVariants({ variant, size }),\n \"rounded-l-[var(--button-radius-default)] rounded-r-none\"\n )}\n aria-busy={loading || undefined}\n aria-disabled={isDisabled || undefined}\n data-loading={loading || undefined}\n data-slot=\"split-button-primary\"\n disabled={isDisabled}\n type=\"button\"\n onClick={handleClick}\n >\n {renderPrimaryContent()}\n </button>\n\n {/* Dropdown trigger button */}\n <DropdownMenu defaultOpen={defaultOpen} open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n triggerVariants({ variant, size }),\n \"rounded-r-[var(--button-radius-default)] rounded-l-none\",\n dividerClass\n )}\n aria-disabled={isDisabled || undefined}\n aria-label={triggerAriaLabel}\n data-slot=\"split-button-trigger\"\n disabled={isDisabled}\n type=\"button\"\n >\n <ChevronDown className=\"size-4\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {menuItems.map(renderMenuItem)}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n )\n}\n\nexport { SplitButton, splitButtonVariants }\n"]}
@@ -1,4 +1,4 @@
1
- import { Divider } from './chunk-3L5G7VI2.js';
1
+ import { Divider } from './chunk-MAM6VUKD.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import { Slot } from '@radix-ui/react-slot';
4
4
  import { cva } from 'class-variance-authority';
@@ -226,5 +226,5 @@ function ItemFooter({ className, ...props }) {
226
226
  }
227
227
 
228
228
  export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, itemMediaVariants, itemVariants };
229
- //# sourceMappingURL=chunk-VZZ3HP7G.js.map
230
- //# sourceMappingURL=chunk-VZZ3HP7G.js.map
229
+ //# sourceMappingURL=chunk-PM344VOQ.js.map
230
+ //# sourceMappingURL=chunk-PM344VOQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/data-display/Item/Item.tsx"],"names":[],"mappings":"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","file":"chunk-VZZ3HP7G.js","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../../primitives/Divider\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"group/item-group flex flex-col\", className)}\n data-slot=\"item-group\"\n role=\"list\"\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Divider>) {\n return (\n <Divider\n className={cn(\"my-0\", className)}\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-[colors,transform,box-shadow] [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n active: \"bg-[color:var(--sidebar-accent)] text-[color:var(--sidebar-accent-foreground)] font-medium\",\n },\n size: {\n sm: \"py-3 px-4 gap-2.5 min-h-7\",\n default: \"p-4 gap-4 min-h-8\",\n lg: \"py-3.5 px-4 gap-3.5 min-h-14\",\n },\n interactive: {\n true: \"cursor-pointer hover:translate-y-px active:translate-y-0.5 motion-reduce:transform-none\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n interactive: false,\n },\n }\n)\n\nexport interface ItemEventPayload {\n /** Whether the item is currently in active state */\n active: boolean\n /** Reflects the `data-id` prop */\n id?: string\n /** Event timestamp (Date.now()) */\n timestamp: number\n}\n\ninterface ItemProps\n extends Omit<React.ComponentProps<\"div\">, \"onClick\" | \"onFocus\" | \"onKeyDown\">,\n VariantProps<typeof itemVariants> {\n /** Shorthand for `variant=\"active\"`. When both passed, `variant` wins. */\n active?: boolean\n asChild?: boolean\n /** Reflected to `data-id` and to the event payload. */\n \"data-id\"?: string\n /** Click handler — receives the event + an ItemEventPayload. */\n onClick?: (\n event: React.MouseEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n onFocus?: (\n event: React.FocusEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n onKeyDown?: (\n event: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n}\n\nfunction Item({\n className,\n variant,\n active = false,\n interactive = false,\n size = \"default\",\n asChild = false,\n \"data-id\": dataId,\n onClick,\n onFocus,\n onKeyDown,\n ...props\n}: ItemProps) {\n // active prop is shorthand for variant=\"active\"; explicit variant wins\n const resolvedVariant = variant ?? (active ? \"active\" : \"default\")\n const isActive = resolvedVariant === \"active\"\n\n // Root element selection: asChild > interactive=button > default div\n // (when asChild, Radix Slot proxies to the child)\n // Cast to ElementType so the spread of generic props works against any root\n const Comp = (asChild ? Slot : interactive ? \"button\" : \"div\") as React.ElementType\n\n const createPayload = React.useCallback(\n (): ItemEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n active: isActive,\n timestamp: Date.now(),\n }),\n [dataId, isActive],\n )\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement | HTMLDivElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload],\n )\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLButtonElement | HTMLDivElement>) => {\n onFocus?.(event, createPayload())\n },\n [onFocus, createPayload],\n )\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => {\n onKeyDown?.(event, createPayload())\n },\n [onKeyDown, createPayload],\n )\n\n return (\n <Comp\n aria-current={isActive && interactive ? \"page\" : undefined}\n className={cn(itemVariants({ variant: resolvedVariant, size, interactive, className }))}\n data-active={isActive || undefined}\n data-id={dataId}\n data-interactive={interactive ?? undefined}\n data-size={size}\n data-slot=\"item\"\n data-variant={resolvedVariant}\n type={interactive && !asChild ? \"button\" : undefined}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n {...props}\n />\n )\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n className={cn(itemMediaVariants({ variant, className }))}\n data-slot=\"item-media\"\n data-variant={variant}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n data-slot=\"item-content\"\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className\n )}\n data-slot=\"item-title\"\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n className={cn(\n \"text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n data-slot=\"item-description\"\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex items-center gap-2\", className)}\n data-slot=\"item-actions\"\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n data-slot=\"item-header\"\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n data-slot=\"item-footer\"\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n itemMediaVariants,\n ItemSeparator,\n ItemTitle,\n itemVariants,\n}\n"]}
1
+ {"version":3,"sources":["../src/components/data-display/Item/Item.tsx"],"names":[],"mappings":"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","file":"chunk-PM344VOQ.js","sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../../primitives/Divider\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"group/item-group flex flex-col\", className)}\n data-slot=\"item-group\"\n role=\"list\"\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Divider>) {\n return (\n <Divider\n className={cn(\"my-0\", className)}\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-[colors,transform,box-shadow] [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n active: \"bg-[color:var(--sidebar-accent)] text-[color:var(--sidebar-accent-foreground)] font-medium\",\n },\n size: {\n sm: \"py-3 px-4 gap-2.5 min-h-7\",\n default: \"p-4 gap-4 min-h-8\",\n lg: \"py-3.5 px-4 gap-3.5 min-h-14\",\n },\n interactive: {\n true: \"cursor-pointer hover:translate-y-px active:translate-y-0.5 motion-reduce:transform-none\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n interactive: false,\n },\n }\n)\n\nexport interface ItemEventPayload {\n /** Whether the item is currently in active state */\n active: boolean\n /** Reflects the `data-id` prop */\n id?: string\n /** Event timestamp (Date.now()) */\n timestamp: number\n}\n\ninterface ItemProps\n extends Omit<React.ComponentProps<\"div\">, \"onClick\" | \"onFocus\" | \"onKeyDown\">,\n VariantProps<typeof itemVariants> {\n /** Shorthand for `variant=\"active\"`. When both passed, `variant` wins. */\n active?: boolean\n asChild?: boolean\n /** Reflected to `data-id` and to the event payload. */\n \"data-id\"?: string\n /** Click handler — receives the event + an ItemEventPayload. */\n onClick?: (\n event: React.MouseEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n onFocus?: (\n event: React.FocusEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n onKeyDown?: (\n event: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>,\n payload: ItemEventPayload,\n ) => void\n}\n\nfunction Item({\n className,\n variant,\n active = false,\n interactive = false,\n size = \"default\",\n asChild = false,\n \"data-id\": dataId,\n onClick,\n onFocus,\n onKeyDown,\n ...props\n}: ItemProps) {\n // active prop is shorthand for variant=\"active\"; explicit variant wins\n const resolvedVariant = variant ?? (active ? \"active\" : \"default\")\n const isActive = resolvedVariant === \"active\"\n\n // Root element selection: asChild > interactive=button > default div\n // (when asChild, Radix Slot proxies to the child)\n // Cast to ElementType so the spread of generic props works against any root\n const Comp = (asChild ? Slot : interactive ? \"button\" : \"div\") as React.ElementType\n\n const createPayload = React.useCallback(\n (): ItemEventPayload => ({\n ...(dataId ? { id: dataId } : {}),\n active: isActive,\n timestamp: Date.now(),\n }),\n [dataId, isActive],\n )\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement | HTMLDivElement>) => {\n onClick?.(event, createPayload())\n },\n [onClick, createPayload],\n )\n\n const handleFocus = React.useCallback(\n (event: React.FocusEvent<HTMLButtonElement | HTMLDivElement>) => {\n onFocus?.(event, createPayload())\n },\n [onFocus, createPayload],\n )\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => {\n onKeyDown?.(event, createPayload())\n },\n [onKeyDown, createPayload],\n )\n\n return (\n <Comp\n aria-current={isActive && interactive ? \"page\" : undefined}\n className={cn(itemVariants({ variant: resolvedVariant, size, interactive, className }))}\n data-active={isActive || undefined}\n data-id={dataId}\n data-interactive={interactive ?? undefined}\n data-size={size}\n data-slot=\"item\"\n data-variant={resolvedVariant}\n type={interactive && !asChild ? \"button\" : undefined}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n {...props}\n />\n )\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n className={cn(itemMediaVariants({ variant, className }))}\n data-slot=\"item-media\"\n data-variant={variant}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n data-slot=\"item-content\"\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className\n )}\n data-slot=\"item-title\"\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n className={cn(\n \"text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n data-slot=\"item-description\"\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\"flex items-center gap-2\", className)}\n data-slot=\"item-actions\"\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n data-slot=\"item-header\"\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n data-slot=\"item-footer\"\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n itemMediaVariants,\n ItemSeparator,\n ItemTitle,\n itemVariants,\n}\n"]}
@@ -21,7 +21,7 @@ function UpdatesWidget({
21
21
  "div",
22
22
  {
23
23
  className: cn(
24
- "w-[313px] flex flex-col gap-3 p-4 bg-card border border-border rounded-[var(--radius-md)] shadow-sm",
24
+ "w-[var(--updates-widget-width)] flex flex-col gap-3 p-4 bg-card border border-border rounded-[var(--radius-md)] shadow-sm",
25
25
  className
26
26
  ),
27
27
  "data-slot": "updates-widget",
@@ -54,7 +54,7 @@ function UpdatesWidget({
54
54
  ),
55
55
  /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
56
56
  /* @__PURE__ */ jsx("div", { className: "text-xs leading-4 text-foreground", children: item.text }),
57
- item.when && /* @__PURE__ */ jsx("div", { className: "text-[10px] leading-3 text-muted-foreground mt-0.5", children: item.when })
57
+ item.when && /* @__PURE__ */ jsx("div", { className: "text-[length:var(--updates-widget-meta-font-size)] leading-3 text-muted-foreground mt-0.5", children: item.when })
58
58
  ] })
59
59
  ] }, item.id)) }) : /* @__PURE__ */ jsx(
60
60
  "div",
@@ -65,7 +65,7 @@ function UpdatesWidget({
65
65
  /* @__PURE__ */ jsx("span", { className: "inline-grid place-items-center size-9 rounded-full bg-muted text-muted-foreground", children: /* @__PURE__ */ jsx(Inbox, { "aria-hidden": "true", className: "size-5" }) }),
66
66
  /* @__PURE__ */ jsxs("div", { children: [
67
67
  /* @__PURE__ */ jsx("div", { className: "text-xs font-medium text-foreground", children: "Sem updates" }),
68
- /* @__PURE__ */ jsx("div", { className: "text-[10px] text-muted-foreground", children: "Voc\xEA est\xE1 em dia" })
68
+ /* @__PURE__ */ jsx("div", { className: "text-[length:var(--updates-widget-meta-font-size)] text-muted-foreground", children: "Voc\xEA est\xE1 em dia" })
69
69
  ] })
70
70
  ] })
71
71
  }
@@ -76,5 +76,5 @@ function UpdatesWidget({
76
76
  }
77
77
 
78
78
  export { UpdatesWidget };
79
- //# sourceMappingURL=chunk-46ESMCEQ.js.map
80
- //# sourceMappingURL=chunk-46ESMCEQ.js.map
79
+ //# sourceMappingURL=chunk-QBLU7J34.js.map
80
+ //# sourceMappingURL=chunk-QBLU7J34.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/feedback/UpdatesWidget/UpdatesWidget.tsx"],"names":[],"mappings":"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","file":"chunk-QBLU7J34.js","sourcesContent":["\"use client\"\n\nimport type { UpdatesWidgetProps } from \"./UpdatesWidget.types\"\n\nimport { Inbox, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst toneClass: Record<string, string> = {\n success: \"bg-[color:var(--primary-subtle)] text-[color:var(--primary-subtle-foreground)]\",\n info: \"bg-[color:var(--info-subtle)] text-[color:var(--info)]\",\n warning: \"bg-[color:var(--warning-subtle)] text-[color:var(--warning-subtle-foreground)]\",\n destructive: \"bg-[color:var(--destructive-subtle)] text-[color:var(--destructive-subtle-foreground)]\",\n}\n\nfunction UpdatesWidget({\n className,\n items,\n emptyState,\n menu,\n title,\n ...props\n}: UpdatesWidgetProps) {\n const hasItems = items.length > 0\n\n return (\n <div\n className={cn(\n \"w-[var(--updates-widget-width)] flex flex-col gap-3 p-4 bg-card border border-border rounded-[var(--radius-md)] shadow-sm\",\n className\n )}\n data-slot=\"updates-widget\"\n {...props}\n >\n {(title !== undefined || menu !== undefined) && (\n <header className=\"flex items-center justify-between gap-2\">\n <div className=\"text-sm font-medium text-foreground\">{title ?? \"Updates\"}</div>\n {menu === undefined ? (\n <button\n aria-label=\"More options\"\n className=\"text-muted-foreground hover:text-foreground transition-colors\"\n data-slot=\"updates-widget-menu\"\n type=\"button\"\n >\n <MoreHorizontal aria-hidden=\"true\" className=\"size-4\" />\n </button>\n ) : (\n menu\n )}\n </header>\n )}\n {hasItems ? (\n <ul className=\"flex flex-col gap-3 list-none m-0 p-0\" data-slot=\"updates-widget-list\">\n {items.map((item) => (\n <li key={item.id} className=\"flex items-start gap-3\" data-slot=\"updates-widget-item\">\n <span\n className={cn(\n \"inline-grid place-items-center size-6 rounded-full shrink-0 [&_svg]:size-3.5\",\n toneClass[item.tone] ?? toneClass[\"info\"]\n )}\n aria-hidden=\"true\"\n >\n {item.icon}\n </span>\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-xs leading-4 text-foreground\">{item.text}</div>\n {item.when && (\n <div className=\"text-[length:var(--updates-widget-meta-font-size)] leading-3 text-muted-foreground mt-0.5\">\n {item.when}\n </div>\n )}\n </div>\n </li>\n ))}\n </ul>\n ) : (\n <div\n className=\"flex flex-col items-center justify-center gap-2 py-6 text-center\"\n data-slot=\"updates-widget-empty\"\n >\n {emptyState ?? (\n <>\n <span className=\"inline-grid place-items-center size-9 rounded-full bg-muted text-muted-foreground\">\n <Inbox aria-hidden=\"true\" className=\"size-5\" />\n </span>\n <div>\n <div className=\"text-xs font-medium text-foreground\">Sem updates</div>\n <div className=\"text-[length:var(--updates-widget-meta-font-size)] text-muted-foreground\">Você está em dia</div>\n </div>\n </>\n )}\n </div>\n )}\n </div>\n )\n}\n\nexport { UpdatesWidget }\n"]}
@@ -1,4 +1,4 @@
1
- import { inputVariants } from './chunk-DYDXGWH2.js';
1
+ import { inputVariants } from './chunk-T3LWBCVR.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import { PlusIcon, MinusIcon } from 'lucide-react';
4
4
  import * as React from 'react';
@@ -163,5 +163,5 @@ function NumberInput({
163
163
  }
164
164
 
165
165
  export { NumberInput, numberInputPaddingVariants, numberStepperButtonVariants, numberStepperVariants };
166
- //# sourceMappingURL=chunk-U74PNG4S.js.map
167
- //# sourceMappingURL=chunk-U74PNG4S.js.map
166
+ //# sourceMappingURL=chunk-SMVH56FQ.js.map
167
+ //# sourceMappingURL=chunk-SMVH56FQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/forms/NumberInput/NumberInput.variants.ts","../src/components/forms/NumberInput/NumberInput.tsx"],"names":[],"mappings":"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","file":"chunk-U74PNG4S.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Number stepper container variant styles using CVA\n * Contains increment/decrement buttons stacked vertically\n */\nexport const numberStepperVariants = cva(\n // Base styles\n [\n \"absolute right-0 top-0 h-full\",\n \"flex flex-col\",\n \"border-l border-input\",\n \"overflow-hidden rounded-r-md\",\n ],\n {\n variants: {\n size: {\n xs: \"w-5\",\n sm: \"w-6\",\n md: \"w-7\",\n lg: \"w-8\",\n xl: \"w-9\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Number stepper button variant styles using CVA\n * Individual increment/decrement button styles\n */\nexport const numberStepperButtonVariants = cva(\n // Base styles\n [\n \"flex flex-1 items-center justify-center\",\n \"text-muted-foreground hover:text-foreground hover:bg-muted/50\",\n \"transition-colors\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"focus-visible:outline-none focus-visible:bg-muted\",\n ],\n {\n variants: {\n size: {\n xs: \"[&_svg]:size-2.5\",\n sm: \"[&_svg]:size-3\",\n md: \"[&_svg]:size-3.5\",\n lg: \"[&_svg]:size-4\",\n xl: \"[&_svg]:size-4.5\",\n },\n position: {\n top: \"border-b border-input\",\n bottom: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n position: \"top\",\n },\n }\n)\n\n/**\n * Number input padding right values to accommodate stepper buttons\n * Used to add extra right padding when stepper is visible\n */\nexport const numberInputPaddingVariants = cva(\"\", {\n variants: {\n size: {\n xs: \"pr-6\",\n sm: \"pr-7\",\n md: \"pr-8\",\n lg: \"pr-9\",\n xl: \"pr-10\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n})\n\nexport type NumberStepperVariantProps = VariantProps<typeof numberStepperVariants>\nexport type NumberStepperButtonVariantProps = VariantProps<typeof numberStepperButtonVariants>\n","\"use client\"\n\nimport type { NumberInputProps } from \"./NumberInput.types\"\n\nimport { MinusIcon, PlusIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { inputVariants } from \"../TextInput/TextInput.variants\"\nimport {\n numberInputPaddingVariants,\n numberStepperButtonVariants,\n numberStepperVariants,\n} from \"./NumberInput.variants\"\n\n/**\n * NumberInput component with increment/decrement stepper buttons\n *\n * @example\n * ```tsx\n * <NumberInput placeholder=\"Enter quantity\" />\n * ```\n *\n * @example With min/max/step\n * ```tsx\n * <NumberInput min={0} max={100} step={5} defaultValue={50} />\n * ```\n *\n * @example Without stepper\n * ```tsx\n * <NumberInput showStepper={false} />\n * ```\n *\n * @example With custom icons\n * ```tsx\n * <NumberInput\n * incrementIcon={<ChevronUp className=\"size-4\" />}\n * decrementIcon={<ChevronDown className=\"size-4\" />}\n * />\n * ```\n */\nfunction NumberInput({\n className,\n size = \"md\",\n variant,\n showStepper = true,\n incrementIcon,\n decrementIcon,\n onIncrement,\n onDecrement,\n disabled,\n min,\n max,\n step = 1,\n ...props\n}: NumberInputProps) {\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIncrement = React.useCallback(() => {\n if (onIncrement) {\n onIncrement()\n } else if (inputRef.current) {\n inputRef.current.stepUp()\n // Dispatch input event to trigger onChange\n inputRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }))\n }\n }, [onIncrement])\n\n const handleDecrement = React.useCallback(() => {\n if (onDecrement) {\n onDecrement()\n } else if (inputRef.current) {\n inputRef.current.stepDown()\n // Dispatch input event to trigger onChange\n inputRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }))\n }\n }, [onDecrement])\n\n return (\n <div className=\"relative w-full\" data-slot=\"number-input-wrapper\">\n <input\n ref={inputRef}\n className={cn(\n inputVariants({ size, variant }),\n // Hide native spinner\n \"[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\",\n showStepper && numberInputPaddingVariants({ size }),\n className\n )}\n data-slot=\"number-input\"\n disabled={disabled}\n max={max}\n min={min}\n step={step}\n type=\"number\"\n {...props}\n />\n {showStepper && (\n <div\n className={cn(numberStepperVariants({ size }))}\n data-slot=\"number-stepper\"\n >\n <button\n aria-label=\"Increment value\"\n className={cn(numberStepperButtonVariants({ size, position: \"top\" }))}\n data-slot=\"increment-button\"\n disabled={disabled}\n tabIndex={-1}\n type=\"button\"\n onClick={handleIncrement}\n >\n {incrementIcon ?? <PlusIcon aria-hidden=\"true\" />}\n </button>\n <button\n aria-label=\"Decrement value\"\n className={cn(numberStepperButtonVariants({ size, position: \"bottom\" }))}\n data-slot=\"decrement-button\"\n disabled={disabled}\n tabIndex={-1}\n type=\"button\"\n onClick={handleDecrement}\n >\n {decrementIcon ?? <MinusIcon aria-hidden=\"true\" />}\n </button>\n </div>\n )}\n </div>\n )\n}\n\nexport { NumberInput }\n"]}
1
+ {"version":3,"sources":["../src/components/forms/NumberInput/NumberInput.variants.ts","../src/components/forms/NumberInput/NumberInput.tsx"],"names":[],"mappings":"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","file":"chunk-SMVH56FQ.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Number stepper container variant styles using CVA\n * Contains increment/decrement buttons stacked vertically\n */\nexport const numberStepperVariants = cva(\n // Base styles\n [\n \"absolute right-0 top-0 h-full\",\n \"flex flex-col\",\n \"border-l border-input\",\n \"overflow-hidden rounded-r-md\",\n ],\n {\n variants: {\n size: {\n xs: \"w-5\",\n sm: \"w-6\",\n md: \"w-7\",\n lg: \"w-8\",\n xl: \"w-9\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Number stepper button variant styles using CVA\n * Individual increment/decrement button styles\n */\nexport const numberStepperButtonVariants = cva(\n // Base styles\n [\n \"flex flex-1 items-center justify-center\",\n \"text-muted-foreground hover:text-foreground hover:bg-muted/50\",\n \"transition-colors\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"focus-visible:outline-none focus-visible:bg-muted\",\n ],\n {\n variants: {\n size: {\n xs: \"[&_svg]:size-2.5\",\n sm: \"[&_svg]:size-3\",\n md: \"[&_svg]:size-3.5\",\n lg: \"[&_svg]:size-4\",\n xl: \"[&_svg]:size-4.5\",\n },\n position: {\n top: \"border-b border-input\",\n bottom: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n position: \"top\",\n },\n }\n)\n\n/**\n * Number input padding right values to accommodate stepper buttons\n * Used to add extra right padding when stepper is visible\n */\nexport const numberInputPaddingVariants = cva(\"\", {\n variants: {\n size: {\n xs: \"pr-6\",\n sm: \"pr-7\",\n md: \"pr-8\",\n lg: \"pr-9\",\n xl: \"pr-10\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n})\n\nexport type NumberStepperVariantProps = VariantProps<typeof numberStepperVariants>\nexport type NumberStepperButtonVariantProps = VariantProps<typeof numberStepperButtonVariants>\n","\"use client\"\n\nimport type { NumberInputProps } from \"./NumberInput.types\"\n\nimport { MinusIcon, PlusIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { inputVariants } from \"../TextInput/TextInput.variants\"\nimport {\n numberInputPaddingVariants,\n numberStepperButtonVariants,\n numberStepperVariants,\n} from \"./NumberInput.variants\"\n\n/**\n * NumberInput component with increment/decrement stepper buttons\n *\n * @example\n * ```tsx\n * <NumberInput placeholder=\"Enter quantity\" />\n * ```\n *\n * @example With min/max/step\n * ```tsx\n * <NumberInput min={0} max={100} step={5} defaultValue={50} />\n * ```\n *\n * @example Without stepper\n * ```tsx\n * <NumberInput showStepper={false} />\n * ```\n *\n * @example With custom icons\n * ```tsx\n * <NumberInput\n * incrementIcon={<ChevronUp className=\"size-4\" />}\n * decrementIcon={<ChevronDown className=\"size-4\" />}\n * />\n * ```\n */\nfunction NumberInput({\n className,\n size = \"md\",\n variant,\n showStepper = true,\n incrementIcon,\n decrementIcon,\n onIncrement,\n onDecrement,\n disabled,\n min,\n max,\n step = 1,\n ...props\n}: NumberInputProps) {\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIncrement = React.useCallback(() => {\n if (onIncrement) {\n onIncrement()\n } else if (inputRef.current) {\n inputRef.current.stepUp()\n // Dispatch input event to trigger onChange\n inputRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }))\n }\n }, [onIncrement])\n\n const handleDecrement = React.useCallback(() => {\n if (onDecrement) {\n onDecrement()\n } else if (inputRef.current) {\n inputRef.current.stepDown()\n // Dispatch input event to trigger onChange\n inputRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }))\n }\n }, [onDecrement])\n\n return (\n <div className=\"relative w-full\" data-slot=\"number-input-wrapper\">\n <input\n ref={inputRef}\n className={cn(\n inputVariants({ size, variant }),\n // Hide native spinner\n \"[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\",\n showStepper && numberInputPaddingVariants({ size }),\n className\n )}\n data-slot=\"number-input\"\n disabled={disabled}\n max={max}\n min={min}\n step={step}\n type=\"number\"\n {...props}\n />\n {showStepper && (\n <div\n className={cn(numberStepperVariants({ size }))}\n data-slot=\"number-stepper\"\n >\n <button\n aria-label=\"Increment value\"\n className={cn(numberStepperButtonVariants({ size, position: \"top\" }))}\n data-slot=\"increment-button\"\n disabled={disabled}\n tabIndex={-1}\n type=\"button\"\n onClick={handleIncrement}\n >\n {incrementIcon ?? <PlusIcon aria-hidden=\"true\" />}\n </button>\n <button\n aria-label=\"Decrement value\"\n className={cn(numberStepperButtonVariants({ size, position: \"bottom\" }))}\n data-slot=\"decrement-button\"\n disabled={disabled}\n tabIndex={-1}\n type=\"button\"\n onClick={handleDecrement}\n >\n {decrementIcon ?? <MinusIcon aria-hidden=\"true\" />}\n </button>\n </div>\n )}\n </div>\n )\n}\n\nexport { NumberInput }\n"]}
@@ -4,7 +4,7 @@ import { cva } from 'class-variance-authority';
4
4
  var inputVariants = cva(
5
5
  // Base styles
6
6
  [
7
- "w-full min-w-0 rounded-md border transition-[color,box-shadow] outline-none",
7
+ "w-full min-w-0 rounded-[var(--input-radius)] border transition-[color,box-shadow] outline-none",
8
8
  "bg-[color:var(--input-bg-default)] text-[color:var(--input-fg-default)] border-[color:var(--input-border-default)]",
9
9
  "file:text-[color:var(--input-fg-default)] placeholder:text-[color:var(--input-fg-placeholder)]",
10
10
  "selection:bg-primary selection:text-primary-foreground",
@@ -64,7 +64,7 @@ var inputVariants = cva(
64
64
  );
65
65
  var inputWrapperVariants = cva("relative w-full");
66
66
  var inputIconVariants = cva(
67
- "absolute top-1/2 -translate-y-1/2 flex items-center justify-center text-muted-foreground",
67
+ "absolute top-1/2 -translate-y-1/2 flex items-center justify-center text-[color:var(--input-fg-icon)]",
68
68
  {
69
69
  variants: {
70
70
  position: {
@@ -105,5 +105,5 @@ var inputIconVariants = cva(
105
105
  );
106
106
 
107
107
  export { inputIconVariants, inputVariants, inputWrapperVariants };
108
- //# sourceMappingURL=chunk-DYDXGWH2.js.map
109
- //# sourceMappingURL=chunk-DYDXGWH2.js.map
108
+ //# sourceMappingURL=chunk-T3LWBCVR.js.map
109
+ //# sourceMappingURL=chunk-T3LWBCVR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/forms/TextInput/TextInput.variants.ts"],"names":[],"mappings":"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","file":"chunk-T3LWBCVR.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Input variant styles using CVA\n */\nexport const inputVariants = cva(\n // Base styles\n [\n \"w-full min-w-0 rounded-[var(--input-radius)] border transition-[color,box-shadow] outline-none\",\n \"bg-[color:var(--input-bg-default)] text-[color:var(--input-fg-default)] border-[color:var(--input-border-default)]\",\n \"file:text-[color:var(--input-fg-default)] placeholder:text-[color:var(--input-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(--input-bg-disabled)] disabled:text-[color:var(--input-fg-disabled)]\",\n \"hover:border-[color:var(--border-semantic-strong)]\",\n \"focus-visible:border-[color:var(--input-border-focus)] focus-visible:ring-[color:var(--input-border-focus)]/20 focus-visible:ring-4\",\n \"aria-invalid:ring-[color:var(--input-border-error)]/20 dark:aria-invalid:ring-[color:var(--input-border-error)]/40 aria-invalid:border-[color:var(--input-border-error)]\",\n ],\n {\n variants: {\n size: {\n xs: \"h-[var(--input-size-xs-h)] px-[var(--input-size-xs-px)] py-[var(--input-size-xs-py)] text-[length:var(--input-size-xs-text)]\",\n sm: \"h-[var(--input-size-sm-h)] px-[var(--input-size-sm-px)] py-[var(--input-size-sm-py)] text-[length:var(--input-size-sm-text)]\",\n md: \"h-[var(--input-size-md-h)] px-[var(--input-size-md-px)] py-[var(--input-size-md-py)] text-[length:var(--input-size-md-text)]\",\n lg: \"h-[var(--input-size-lg-h)] px-[var(--input-size-lg-px)] py-[var(--input-size-lg-py)] text-[length:var(--input-size-lg-text)]\",\n xl: \"h-[var(--input-size-xl-h)] px-[var(--input-size-xl-px)] py-[var(--input-size-xl-py)] text-[length:var(--input-size-xl-text)]\",\n },\n variant: {\n default: \"shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-[color:var(--input-border-default)] px-0\",\n unstyled: \"border-0 bg-transparent shadow-none focus-visible:ring-0\",\n },\n hasLeadingIcon: {\n true: \"\",\n false: \"\",\n },\n hasTrailingIcon: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n // Unstyled without icons should have no padding\n { variant: \"unstyled\", hasLeadingIcon: false, hasTrailingIcon: false, className: \"p-0\" },\n // Leading icon padding adjustments\n { size: \"xs\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-xs)]\" },\n { size: \"sm\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-sm)]\" },\n { size: \"md\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-md)]\" },\n { size: \"lg\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-lg)]\" },\n { size: \"xl\", hasLeadingIcon: true, className: \"pl-[var(--input-icon-padding-xl)]\" },\n // Trailing icon padding adjustments\n { size: \"xs\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-xs)]\" },\n { size: \"sm\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-sm)]\" },\n { size: \"md\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-md)]\" },\n { size: \"lg\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-lg)]\" },\n { size: \"xl\", hasTrailingIcon: true, className: \"pr-[var(--input-icon-padding-xl)]\" },\n ],\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n hasLeadingIcon: false,\n hasTrailingIcon: false,\n },\n }\n)\n\n/**\n * Input wrapper styles for when icons are present\n */\nexport const inputWrapperVariants = cva(\"relative w-full\")\n\n/**\n * Input icon styles using CVA\n */\nexport const inputIconVariants = cva(\n \"absolute top-1/2 -translate-y-1/2 flex items-center justify-center text-[color:var(--input-fg-icon)]\",\n {\n variants: {\n position: {\n leading: \"left-0\",\n trailing: \"right-0\",\n },\n size: {\n xs: \"size-[var(--input-icon-size-xs)]\",\n sm: \"size-[var(--input-icon-size-sm)]\",\n md: \"size-[var(--input-icon-size-md)]\",\n lg: \"size-[var(--input-icon-size-lg)]\",\n xl: \"size-[var(--input-icon-size-xl)]\",\n },\n interactive: {\n true: \"pointer-events-auto\",\n false: \"pointer-events-none\",\n },\n },\n compoundVariants: [\n // Leading icon position adjustments\n { position: \"leading\", size: \"xs\", className: \"left-[var(--input-icon-position-xs)]\" },\n { position: \"leading\", size: \"sm\", className: \"left-[var(--input-icon-position-sm)]\" },\n { position: \"leading\", size: \"md\", className: \"left-[var(--input-icon-position-md)]\" },\n { position: \"leading\", size: \"lg\", className: \"left-[var(--input-icon-position-lg)]\" },\n { position: \"leading\", size: \"xl\", className: \"left-[var(--input-icon-position-xl)]\" },\n // Trailing icon position adjustments\n { position: \"trailing\", size: \"xs\", className: \"right-[var(--input-icon-position-xs)]\" },\n { position: \"trailing\", size: \"sm\", className: \"right-[var(--input-icon-position-sm)]\" },\n { position: \"trailing\", size: \"md\", className: \"right-[var(--input-icon-position-md)]\" },\n { position: \"trailing\", size: \"lg\", className: \"right-[var(--input-icon-position-lg)]\" },\n { position: \"trailing\", size: \"xl\", className: \"right-[var(--input-icon-position-xl)]\" },\n ],\n defaultVariants: {\n position: \"leading\",\n size: \"md\",\n },\n }\n)\n\nexport type InputVariantProps = VariantProps<typeof inputVariants>\nexport type InputIconVariantProps = VariantProps<typeof inputIconVariants>\n"]}
@@ -1,4 +1,4 @@
1
- import { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './chunk-P7D6S6GX.js';
1
+ import { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from './chunk-V7O4X3AE.js';
2
2
  import { cn } from './chunk-HRNDJU7D.js';
3
3
  import 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -86,5 +86,5 @@ function ConfirmModal({
86
86
  }
87
87
 
88
88
  export { ConfirmModal };
89
- //# sourceMappingURL=chunk-ZP4HYVDG.js.map
90
- //# sourceMappingURL=chunk-ZP4HYVDG.js.map
89
+ //# sourceMappingURL=chunk-TA4HCLP3.js.map
90
+ //# sourceMappingURL=chunk-TA4HCLP3.js.map