@etus/ui 0.4.0-beta.21 → 0.4.0-beta.22

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 (234) hide show
  1. package/dist/{chunk-KBU4KJKC.js → chunk-2DFFIU44.js} +4 -4
  2. package/dist/{chunk-KBU4KJKC.js.map → chunk-2DFFIU44.js.map} +1 -1
  3. package/dist/{chunk-MR6RUPVT.js → chunk-2JDLQ4VR.js} +3 -3
  4. package/dist/{chunk-MR6RUPVT.js.map → chunk-2JDLQ4VR.js.map} +1 -1
  5. package/dist/{chunk-JE46MFMN.js → chunk-2LVRSLWI.js} +4 -4
  6. package/dist/{chunk-JE46MFMN.js.map → chunk-2LVRSLWI.js.map} +1 -1
  7. package/dist/{chunk-GRODCJS4.js → chunk-2VOKY2TU.js} +4 -4
  8. package/dist/{chunk-GRODCJS4.js.map → chunk-2VOKY2TU.js.map} +1 -1
  9. package/dist/{chunk-UC5J6GWG.js → chunk-3TRT6TKW.js} +6 -6
  10. package/dist/chunk-3TRT6TKW.js.map +1 -0
  11. package/dist/{chunk-UZZCEQH4.js → chunk-3XVOI4HK.js} +3 -3
  12. package/dist/{chunk-UZZCEQH4.js.map → chunk-3XVOI4HK.js.map} +1 -1
  13. package/dist/{chunk-WGKOYZRI.js → chunk-4S6CPTSO.js} +5 -5
  14. package/dist/chunk-4S6CPTSO.js.map +1 -0
  15. package/dist/{chunk-GVNG5ME6.js → chunk-6CO3FRGG.js} +201 -17
  16. package/dist/chunk-6CO3FRGG.js.map +1 -0
  17. package/dist/chunk-7MJS37Q4.js +135 -0
  18. package/dist/chunk-7MJS37Q4.js.map +1 -0
  19. package/dist/{chunk-QXET2TML.js → chunk-A33MLHXO.js} +3 -3
  20. package/dist/{chunk-QXET2TML.js.map → chunk-A33MLHXO.js.map} +1 -1
  21. package/dist/{chunk-STADVFL2.js → chunk-A6BDDZ27.js} +3 -3
  22. package/dist/{chunk-STADVFL2.js.map → chunk-A6BDDZ27.js.map} +1 -1
  23. package/dist/{chunk-WSDWJX4Y.js → chunk-AGXEGVSY.js} +3 -3
  24. package/dist/{chunk-WSDWJX4Y.js.map → chunk-AGXEGVSY.js.map} +1 -1
  25. package/dist/{chunk-R42LSLJL.js → chunk-AOLVER6U.js} +3 -3
  26. package/dist/{chunk-R42LSLJL.js.map → chunk-AOLVER6U.js.map} +1 -1
  27. package/dist/{chunk-YMQDTTO7.js → chunk-CEUARW3D.js} +3 -3
  28. package/dist/{chunk-YMQDTTO7.js.map → chunk-CEUARW3D.js.map} +1 -1
  29. package/dist/{chunk-LDK6ADKM.js → chunk-DZV32N5V.js} +4 -4
  30. package/dist/{chunk-LDK6ADKM.js.map → chunk-DZV32N5V.js.map} +1 -1
  31. package/dist/{chunk-2SUZS6GZ.js → chunk-E5UFATRY.js} +11 -3
  32. package/dist/chunk-E5UFATRY.js.map +1 -0
  33. package/dist/{chunk-RQBYBBMP.js → chunk-EINYBB7T.js} +5 -5
  34. package/dist/{chunk-RQBYBBMP.js.map → chunk-EINYBB7T.js.map} +1 -1
  35. package/dist/{chunk-4LZ53BAG.js → chunk-EKKJXJX7.js} +4 -2
  36. package/dist/chunk-EKKJXJX7.js.map +1 -0
  37. package/dist/{chunk-4OWRNWHW.js → chunk-FCVFYUCL.js} +14 -5
  38. package/dist/chunk-FCVFYUCL.js.map +1 -0
  39. package/dist/{chunk-6QVXMYKH.js → chunk-FGTYI4ZG.js} +3 -3
  40. package/dist/{chunk-6QVXMYKH.js.map → chunk-FGTYI4ZG.js.map} +1 -1
  41. package/dist/{chunk-6G5QK3SU.js → chunk-FLXU5LWR.js} +44 -4
  42. package/dist/chunk-FLXU5LWR.js.map +1 -0
  43. package/dist/{chunk-P4WMDGAQ.js → chunk-G5JO3Q3K.js} +3 -3
  44. package/dist/{chunk-P4WMDGAQ.js.map → chunk-G5JO3Q3K.js.map} +1 -1
  45. package/dist/{chunk-RMJVCJ6U.js → chunk-GKG2LRGY.js} +6 -6
  46. package/dist/chunk-GKG2LRGY.js.map +1 -0
  47. package/dist/{chunk-N7VMQWM3.js → chunk-GN6B4W3G.js} +4 -4
  48. package/dist/{chunk-N7VMQWM3.js.map → chunk-GN6B4W3G.js.map} +1 -1
  49. package/dist/chunk-GX2VJT7D.js +136 -0
  50. package/dist/chunk-GX2VJT7D.js.map +1 -0
  51. package/dist/{chunk-MNYU5MHO.js → chunk-H4KC2YSL.js} +5 -5
  52. package/dist/{chunk-MNYU5MHO.js.map → chunk-H4KC2YSL.js.map} +1 -1
  53. package/dist/{chunk-GLHKHYJY.js → chunk-IARO2PPN.js} +55 -15
  54. package/dist/chunk-IARO2PPN.js.map +1 -0
  55. package/dist/{chunk-ELRIFGMN.js → chunk-JWXZFGNT.js} +30 -6
  56. package/dist/chunk-JWXZFGNT.js.map +1 -0
  57. package/dist/{chunk-Y4FEW7SR.js → chunk-K5RHYIFF.js} +16 -6
  58. package/dist/chunk-K5RHYIFF.js.map +1 -0
  59. package/dist/{chunk-T3LWBCVR.js → chunk-LKCOHB3C.js} +36 -3
  60. package/dist/chunk-LKCOHB3C.js.map +1 -0
  61. package/dist/{chunk-7PX3WBR3.js → chunk-LWIIO75I.js} +5 -3
  62. package/dist/chunk-LWIIO75I.js.map +1 -0
  63. package/dist/{chunk-U7TPJMGY.js → chunk-MR3IPJAO.js} +6 -2
  64. package/dist/chunk-MR3IPJAO.js.map +1 -0
  65. package/dist/chunk-MVL4DVRW.js +177 -0
  66. package/dist/chunk-MVL4DVRW.js.map +1 -0
  67. package/dist/{chunk-L4OQ6BJ5.js → chunk-N3DBRKUS.js} +3 -3
  68. package/dist/{chunk-L4OQ6BJ5.js.map → chunk-N3DBRKUS.js.map} +1 -1
  69. package/dist/{chunk-TIPKU427.js → chunk-N7DAU4LE.js} +3 -3
  70. package/dist/{chunk-TIPKU427.js.map → chunk-N7DAU4LE.js.map} +1 -1
  71. package/dist/{chunk-ZVSMLMMS.js → chunk-NORI6ECA.js} +44 -4
  72. package/dist/chunk-NORI6ECA.js.map +1 -0
  73. package/dist/{chunk-7MLRRVOX.js → chunk-NT4GLWNR.js} +3 -3
  74. package/dist/{chunk-7MLRRVOX.js.map → chunk-NT4GLWNR.js.map} +1 -1
  75. package/dist/{chunk-7AR5QRRX.js → chunk-NZNAR4HJ.js} +27 -11
  76. package/dist/chunk-NZNAR4HJ.js.map +1 -0
  77. package/dist/{chunk-TNSMTINE.js → chunk-OJIFG4LW.js} +3 -3
  78. package/dist/{chunk-TNSMTINE.js.map → chunk-OJIFG4LW.js.map} +1 -1
  79. package/dist/{chunk-PTXC4KPQ.js → chunk-OSHGYI2O.js} +4 -4
  80. package/dist/{chunk-PTXC4KPQ.js.map → chunk-OSHGYI2O.js.map} +1 -1
  81. package/dist/chunk-OW5R4KST.js +108 -0
  82. package/dist/chunk-OW5R4KST.js.map +1 -0
  83. package/dist/{chunk-QJOWG2D4.js → chunk-PVF23ZX2.js} +3 -3
  84. package/dist/{chunk-QJOWG2D4.js.map → chunk-PVF23ZX2.js.map} +1 -1
  85. package/dist/{chunk-KHCHATTD.js → chunk-PYCQBP4O.js} +4 -4
  86. package/dist/{chunk-KHCHATTD.js.map → chunk-PYCQBP4O.js.map} +1 -1
  87. package/dist/{chunk-KDNTSZF5.js → chunk-Q4E7OG7J.js} +3 -3
  88. package/dist/{chunk-KDNTSZF5.js.map → chunk-Q4E7OG7J.js.map} +1 -1
  89. package/dist/{chunk-KLFYTLF3.js → chunk-Q7MAQ7MO.js} +3 -3
  90. package/dist/{chunk-KLFYTLF3.js.map → chunk-Q7MAQ7MO.js.map} +1 -1
  91. package/dist/{chunk-S6BREP2G.js → chunk-QMCQIOCP.js} +21 -7
  92. package/dist/chunk-QMCQIOCP.js.map +1 -0
  93. package/dist/{chunk-SSKSWSVO.js → chunk-R2Z64IC3.js} +4 -4
  94. package/dist/{chunk-SSKSWSVO.js.map → chunk-R2Z64IC3.js.map} +1 -1
  95. package/dist/{chunk-UNHPLKMR.js → chunk-RK27HS7W.js} +3 -3
  96. package/dist/{chunk-UNHPLKMR.js.map → chunk-RK27HS7W.js.map} +1 -1
  97. package/dist/{chunk-IKLFWGFS.js → chunk-RTSAERFS.js} +7 -7
  98. package/dist/{chunk-IKLFWGFS.js.map → chunk-RTSAERFS.js.map} +1 -1
  99. package/dist/{chunk-EO4NGM5W.js → chunk-S7HXZ5T3.js} +65 -16
  100. package/dist/chunk-S7HXZ5T3.js.map +1 -0
  101. package/dist/{chunk-I5RDX6O3.js → chunk-TBPPBA3S.js} +31 -25
  102. package/dist/chunk-TBPPBA3S.js.map +1 -0
  103. package/dist/{chunk-TDANAN5A.js → chunk-TD2EFGHO.js} +7 -3
  104. package/dist/chunk-TD2EFGHO.js.map +1 -0
  105. package/dist/{chunk-3R6MY3YJ.js → chunk-TVAIT3F5.js} +3 -3
  106. package/dist/{chunk-3R6MY3YJ.js.map → chunk-TVAIT3F5.js.map} +1 -1
  107. package/dist/{chunk-VHJ6ALIE.js → chunk-TX4GUAZ6.js} +11 -3
  108. package/dist/chunk-TX4GUAZ6.js.map +1 -0
  109. package/dist/{chunk-7XJQYAGY.js → chunk-U55YU7DB.js} +22 -6
  110. package/dist/chunk-U55YU7DB.js.map +1 -0
  111. package/dist/{chunk-5GV4LDX7.js → chunk-VI3QWOII.js} +4 -2
  112. package/dist/chunk-VI3QWOII.js.map +1 -0
  113. package/dist/{chunk-PXR6CZIL.js → chunk-VYCXCOUH.js} +3 -3
  114. package/dist/{chunk-PXR6CZIL.js.map → chunk-VYCXCOUH.js.map} +1 -1
  115. package/dist/{chunk-SKI25Q7O.js → chunk-W72PXQDH.js} +4 -4
  116. package/dist/{chunk-SKI25Q7O.js.map → chunk-W72PXQDH.js.map} +1 -1
  117. package/dist/{chunk-4SFBDK4E.js → chunk-WTKHA2NF.js} +3 -3
  118. package/dist/{chunk-4SFBDK4E.js.map → chunk-WTKHA2NF.js.map} +1 -1
  119. package/dist/{chunk-KXJ3SEW7.js → chunk-YNZ6T4IU.js} +13 -5
  120. package/dist/chunk-YNZ6T4IU.js.map +1 -0
  121. package/dist/{chunk-7QEFKWUR.js → chunk-YZBCJDYO.js} +4 -4
  122. package/dist/{chunk-7QEFKWUR.js.map → chunk-YZBCJDYO.js.map} +1 -1
  123. package/dist/{chunk-PVIIIQJI.js → chunk-ZTD3QXLY.js} +4 -4
  124. package/dist/{chunk-PVIIIQJI.js.map → chunk-ZTD3QXLY.js.map} +1 -1
  125. package/dist/{chunk-HHWUROMA.js → chunk-ZZFCKHE2.js} +4 -4
  126. package/dist/{chunk-HHWUROMA.js.map → chunk-ZZFCKHE2.js.map} +1 -1
  127. package/dist/components/advanced/Calendar/index.js +3 -3
  128. package/dist/components/advanced/Command/index.js +2 -2
  129. package/dist/components/advanced/EventCalendar/index.js +3 -3
  130. package/dist/components/advanced/FilterBuilder/index.js +5 -5
  131. package/dist/components/advanced/MarkdownEditor/index.js +2 -2
  132. package/dist/components/advanced/ReportBuilder/index.js +4 -4
  133. package/dist/components/advanced/index.js +12 -12
  134. package/dist/components/data-display/Banner/index.js +1 -1
  135. package/dist/components/data-display/BarChart/index.js +1 -1
  136. package/dist/components/data-display/Carousel/index.js +3 -3
  137. package/dist/components/data-display/DataTable/FilterBuilder/index.js +5 -5
  138. package/dist/components/data-display/DataTable/index.js +9 -9
  139. package/dist/components/data-display/ImageGallery/index.js +4 -4
  140. package/dist/components/data-display/Item/index.js +1 -1
  141. package/dist/components/data-display/KPICard/index.js +1 -1
  142. package/dist/components/data-display/List/index.js +2 -2
  143. package/dist/components/data-display/RadarChart/index.js +1 -1
  144. package/dist/components/data-display/RadialChart/index.js +1 -1
  145. package/dist/components/data-display/index.js +35 -35
  146. package/dist/components/feedback/AlertDialog/index.js +3 -3
  147. package/dist/components/feedback/ConfirmModal/index.js +4 -4
  148. package/dist/components/feedback/Dialog/index.js +1 -1
  149. package/dist/components/feedback/ErrorPage/index.js +1 -1
  150. package/dist/components/feedback/Notification/index.js +2 -2
  151. package/dist/components/feedback/index.js +9 -9
  152. package/dist/components/forms/DatePicker/index.js +4 -4
  153. package/dist/components/forms/DateRangePicker/index.js +5 -5
  154. package/dist/components/forms/EmailInput/index.js +3 -3
  155. package/dist/components/forms/InputGroup/index.js +5 -5
  156. package/dist/components/forms/NumberInput/index.js +2 -2
  157. package/dist/components/forms/PasswordInput/index.js +3 -3
  158. package/dist/components/forms/PaymentInput/index.js +1 -1
  159. package/dist/components/forms/PhoneInput/index.js +1 -1
  160. package/dist/components/forms/RadioGroup/index.js +1 -1
  161. package/dist/components/forms/Rating/index.js +1 -1
  162. package/dist/components/forms/SearchInput/index.js +3 -3
  163. package/dist/components/forms/Switch/index.js +1 -1
  164. package/dist/components/forms/TagsInput/index.js +1 -1
  165. package/dist/components/forms/TextInput/index.js +2 -2
  166. package/dist/components/forms/URLInput/index.js +3 -3
  167. package/dist/components/forms/index.js +25 -25
  168. package/dist/components/index.js +137 -137
  169. package/dist/components/layout/Collapsible/index.js +1 -1
  170. package/dist/components/layout/index.js +4 -4
  171. package/dist/components/navigation/AccountSwitch/index.js +3 -3
  172. package/dist/components/navigation/Breadcrumb/index.js +1 -1
  173. package/dist/components/navigation/ContextMenu/index.js +1 -1
  174. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  175. package/dist/components/navigation/Pagination/index.js +3 -3
  176. package/dist/components/navigation/Sidebar/index.js +8 -7
  177. package/dist/components/navigation/index.js +17 -16
  178. package/dist/components/primitives/Avatar/index.js +1 -1
  179. package/dist/components/primitives/Button/index.js +2 -2
  180. package/dist/components/primitives/ButtonGroup/index.js +1 -1
  181. package/dist/components/primitives/ConfirmButton/index.js +4 -4
  182. package/dist/components/primitives/Icon/index.js +1 -1
  183. package/dist/components/primitives/Kbd/index.js +1 -1
  184. package/dist/components/primitives/Link/index.js +1 -1
  185. package/dist/components/primitives/ProgressCircle/index.js +1 -1
  186. package/dist/components/primitives/SplitButton/index.js +2 -2
  187. package/dist/components/primitives/Text/index.js +1 -1
  188. package/dist/components/primitives/index.js +16 -16
  189. package/dist/components/workflow/ApprovalFlow/index.js +4 -4
  190. package/dist/components/workflow/CommentSystem/index.js +4 -4
  191. package/dist/components/workflow/Dashboard/index.js +3 -3
  192. package/dist/components/workflow/DashboardBuilder/index.js +5 -5
  193. package/dist/components/workflow/KanbanBoard/index.js +4 -4
  194. package/dist/components/workflow/ReportGenerator/index.js +3 -3
  195. package/dist/components/workflow/TaskStatus/index.js +2 -2
  196. package/dist/components/workflow/Wizard/index.js +3 -3
  197. package/dist/components/workflow/index.js +16 -16
  198. package/dist/hooks/index.js +1 -1
  199. package/dist/index.d.ts +303 -42
  200. package/dist/index.js +137 -137
  201. package/dist/styles.css +27 -8
  202. package/package.json +2 -2
  203. package/dist/chunk-2SUZS6GZ.js.map +0 -1
  204. package/dist/chunk-4LZ53BAG.js.map +0 -1
  205. package/dist/chunk-4OWRNWHW.js.map +0 -1
  206. package/dist/chunk-5GV4LDX7.js.map +0 -1
  207. package/dist/chunk-6G5QK3SU.js.map +0 -1
  208. package/dist/chunk-6VEQLD2P.js +0 -75
  209. package/dist/chunk-6VEQLD2P.js.map +0 -1
  210. package/dist/chunk-7AR5QRRX.js.map +0 -1
  211. package/dist/chunk-7PX3WBR3.js.map +0 -1
  212. package/dist/chunk-7XJQYAGY.js.map +0 -1
  213. package/dist/chunk-ELRIFGMN.js.map +0 -1
  214. package/dist/chunk-EO4NGM5W.js.map +0 -1
  215. package/dist/chunk-GLHKHYJY.js.map +0 -1
  216. package/dist/chunk-GVNG5ME6.js.map +0 -1
  217. package/dist/chunk-I5RDX6O3.js.map +0 -1
  218. package/dist/chunk-JUZ4JQWH.js +0 -69
  219. package/dist/chunk-JUZ4JQWH.js.map +0 -1
  220. package/dist/chunk-K4UCALQQ.js +0 -67
  221. package/dist/chunk-K4UCALQQ.js.map +0 -1
  222. package/dist/chunk-KXJ3SEW7.js.map +0 -1
  223. package/dist/chunk-RMJVCJ6U.js.map +0 -1
  224. package/dist/chunk-S6BREP2G.js.map +0 -1
  225. package/dist/chunk-T3LWBCVR.js.map +0 -1
  226. package/dist/chunk-TDANAN5A.js.map +0 -1
  227. package/dist/chunk-U7TPJMGY.js.map +0 -1
  228. package/dist/chunk-UC5J6GWG.js.map +0 -1
  229. package/dist/chunk-VHJ6ALIE.js.map +0 -1
  230. package/dist/chunk-WGKOYZRI.js.map +0 -1
  231. package/dist/chunk-WUS45IZW.js +0 -36
  232. package/dist/chunk-WUS45IZW.js.map +0 -1
  233. package/dist/chunk-Y4FEW7SR.js.map +0 -1
  234. package/dist/chunk-ZVSMLMMS.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/Notification/Notification.variants.ts","../src/components/feedback/Notification/Notification.tsx"],"names":[],"mappings":";;;;;;AAMO,IAAM,oBAAA,GAAuB,GAAA;AAAA,EAClC,yGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,EAAA;AAAA,QACT,IAAA,EAAM,EAAA;AAAA,QACN,OAAA,EAAS,EAAA;AAAA,QACT,OAAA,EAAS,EAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,wCAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM,+IAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM,KAAA;AAAA,MACN,WAAA,EAAa;AAAA;AACf;AAEJ;AAKO,IAAM,iBAAA,GAAoB,GAAA;AAAA,EAC/B,2DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,kDAAA;AAAA,QACT,IAAA,EAAM,+CAAA;AAAA,QACN,OAAA,EAAS,kDAAA;AAAA,QACT,OAAA,EAAS,kDAAA;AAAA,QACT,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AC1CA,SAAS,gBAAgB,SAAA,EAA8C;AACrE,EAAA,IAAI,CAAC,WAAW,OAAO,EAAA;AACvB,EAAA,IAAI,OAAO,SAAA,KAAc,QAAA,EAAU,OAAO,SAAA;AAC1C,EAAA,OAAO,UAAU,cAAA,EAAe;AAClC;AAiBA,SAAS,YAAA,CAAa;AAAA,EACpB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,KAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,IAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAsB;AACpB,EAAA,MAAM,aAAA,GAAgB,QAAQ,OAAO,CAAA;AACrC,EAAA,MAAM,kBAAA,GAAqB,gBAAgB,SAAS,CAAA;AACpD,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,MAAA,IAAU,SAAA,IAAa,cAAc,CAAA;AAChE,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,YAAA,IAAgB,QAAA,IAAY,OAAO,CAAA;AAE/D,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,OAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA4C;AACjE,IAAA,IAAI,kBAAkB,KAAA,CAAM,GAAA,KAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,CAAA,EAAM;AACjE,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,OAAA,IAAU;AAAA,IACZ;AACA,IAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,QAAA,IAAY,QAAA,EAAU;AACtC,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,QAAA,EAAS;AAAA,IACX;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAA4B;AACpD,IAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,IAAA,YAAA,IAAe;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA4B;AAChD,IAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,IAAA,QAAA,IAAW;AAAA,EACb,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,qBAAqB,EAAE,OAAA,EAAS,IAAA,EAAM,WAAA,EAAa,eAAe,CAAA;AAAA,QAClE;AAAA,OACF;AAAA,MACA,cAAY,CAAA,EAAG,IAAA,GAAO,KAAK,UAAU,CAAA,EAAG,KAAK,CAAA,EAAG,WAAA,GAAc,CAAA,EAAA,EAAK,WAAW,KAAK,EAAE,CAAA,EAAG,qBAAqB,CAAA,EAAA,EAAK,kBAAkB,KAAK,EAAE,CAAA,CAAA;AAAA,MAC3I,WAAA,EAAU,cAAA;AAAA,MACV,eAAa,CAAC,IAAA;AAAA,MACd,cAAA,EAAc,OAAA;AAAA,MACd,IAAA,EAAK,SAAA;AAAA,MACL,QAAA,EAAU,gBAAgB,CAAA,GAAI,MAAA;AAAA,MAC9B,OAAA,EAAS,gBAAgB,WAAA,GAAc,MAAA;AAAA,MACvC,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAGJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EAAgB,WAAA,EAAU,sBACtC,QAAA,EAAA,IAAA,mBACC,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAU,0CAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA,YAED,UAAA,GACF,MAAA,oBACE,IAAA,CAAC,MAAA,EAAA,EAAO,MAAK,IAAA,EACV,QAAA,EAAA;AAAA,UAAA,SAAA,oBACC,GAAA,CAAC,WAAA,EAAA,EAAY,GAAA,EAAI,EAAA,EAAG,KAAK,SAAA,EAAW,CAAA;AAAA,0BAEtC,GAAA,CAAC,kBAAgB,QAAA,EAAA,cAAA,EAAe;AAAA,SAAA,EAClC,IAEA,IAAA,EACN,CAAA;AAAA,wBAGA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAiB,aAAU,sBAAA,EACxC,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wCAAA,EACb,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6DAAA,EACZ,QAAA,EAAA;AAAA,cAAA,CAAC,IAAA,oBACA,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,aAAA,EAAY,MAAA;AAAA,kBACZ,WAAW,EAAA,CAAG,iBAAA,CAAkB,EAAE,OAAA,EAAS,CAAC,CAAA;AAAA,kBAC5C,WAAA,EAAU;AAAA;AAAA,eACZ;AAAA,8BAEF,GAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,0DAAA;AAAA,kBACV,WAAA,EAAU,oBAAA;AAAA,kBAET,QAAA,EAAA;AAAA;AAAA;AACH,aAAA,EACF,CAAA;AAAA,YACC,kBAAA,oBACC,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,uDAAA;AAAA,gBACV,WAAA,EAAU,wBAAA;AAAA,gBACV,QAAA,EAAU,SAAA,YAAqB,IAAA,GAAO,SAAA,CAAU,aAAY,GAAI,MAAA;AAAA,gBAE/D,QAAA,EAAA;AAAA;AAAA;AACH,WAAA,EAEJ,CAAA;AAAA,UACC,WAAA,oBACC,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,mDAAA;AAAA,cACV,WAAA,EAAU,0BAAA;AAAA,cAET,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,2BACC,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,MAAA,EAAO,WAAA,EAAU,wBAC7B,QAAA,EAAA,OAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAGC,WAAA,IAAe,CAAC,OAAA,oBACf,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,kCAAA;AAAA,YACV,WAAA,EAAU,6BAAA;AAAA,YAET,QAAA,EAAA;AAAA,cAAA,YAAA,IAAgB,CAAC,IAAA,oBAChB,GAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,YAAA,EAAW,cAAA;AAAA,kBACX,SAAA,EAAU,wKAAA;AAAA,kBACV,WAAA,EAAU,wBAAA;AAAA,kBACV,IAAA,EAAK,QAAA;AAAA,kBACL,OAAA,EAAS,gBAAA;AAAA,kBAET,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAM,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA;AAAA,eAC/C;AAAA,cAED,QAAA,oBACC,GAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,YAAA,EAAW,qBAAA;AAAA,kBACX,SAAA,EAAU,iLAAA;AAAA,kBACV,WAAA,EAAU,qBAAA;AAAA,kBACV,IAAA,EAAK,QAAA;AAAA,kBACL,OAAA,EAAS,YAAA;AAAA,kBAET,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA;AAAA;AAChD;AAAA;AAAA;AAEJ;AAAA;AAAA,GAEJ;AAEJ;AAKA,SAAS,yBAAA,CAA0B;AAAA,EACjC,SAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6C;AAC3C,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,sJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,YAAA,EAAW,SAAA;AAAA,MACX,WAAA,EAAU,sBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,OAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA;AAAA,GAC3C;AAEJ","file":"chunk-2SUZS6GZ.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Notification variant styles using CVA\n * Individual notification items for lists, dropdowns, or feeds\n */\nexport const notificationVariants = cva(\n \"relative flex gap-[var(--notification-root-gap)] p-[var(--notification-root-padding)] transition-colors\",\n {\n variants: {\n variant: {\n default: \"\",\n info: \"\",\n success: \"\",\n warning: \"\",\n error: \"\",\n },\n read: {\n true: \"bg-[color:var(--notification-bg-read)]\",\n false: \"bg-[color:var(--notification-bg-unread)]\",\n },\n interactive: {\n true: \"cursor-pointer hover:bg-[color:var(--notification-bg-hover)] focus-visible:bg-[color:var(--notification-bg-hover)] focus-visible:outline-none\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n read: false,\n interactive: false,\n },\n }\n)\n\n/**\n * Unread indicator dot styles\n */\nexport const unreadDotVariants = cva(\n \"shrink-0 size-[var(--notification-dot-size)] rounded-full\",\n {\n variants: {\n variant: {\n default: \"bg-[color:var(--notification-dot-color-default)]\",\n info: \"bg-[color:var(--notification-dot-color-info)]\",\n success: \"bg-[color:var(--notification-dot-color-success)]\",\n warning: \"bg-[color:var(--notification-dot-color-warning)]\",\n error: \"bg-[color:var(--notification-dot-color-error)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n","import type { NotificationProps, NotificationVariant } from \"./Notification.types\"\n\nimport { Check, Trash2, X } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../primitives/Avatar\"\nimport { notificationVariants, unreadDotVariants } from \"./Notification.variants\"\n\n/**\n * Format a timestamp into a relative or absolute string\n */\nfunction formatTimestamp(timestamp: Date | string | undefined): string {\n if (!timestamp) return \"\"\n if (typeof timestamp === \"string\") return timestamp\n return timestamp.toLocaleString()\n}\n\n/**\n * Notification component for individual notification items\n *\n * Used in lists, dropdowns, or feeds. Unlike Toast which is temporary\n * and global, Notification is persistent and associated with the user.\n *\n * @example\n * ```tsx\n * <Notification\n * title=\"Nova mensagem\"\n * description=\"Voce recebeu uma nova mensagem de Maria.\"\n * timestamp=\"5 min atras\"\n * />\n * ```\n */\nfunction Notification({\n className,\n variant = \"default\",\n title,\n description,\n timestamp,\n read = false,\n icon,\n avatar,\n avatarSrc,\n avatarFallback,\n onClick,\n onMarkAsRead,\n onDelete,\n actions,\n ...props\n}: NotificationProps) {\n const isInteractive = Boolean(onClick)\n const formattedTimestamp = formatTimestamp(timestamp)\n const showAvatar = Boolean(avatar ?? avatarSrc ?? avatarFallback)\n const showActions = Boolean(onMarkAsRead ?? onDelete ?? actions)\n\n const handleClick = () => {\n if (onClick) {\n onClick()\n }\n }\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (isInteractive && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault()\n onClick?.()\n }\n if (event.key === \"Delete\" && onDelete) {\n event.preventDefault()\n onDelete()\n }\n }\n\n const handleMarkAsRead = (event: React.MouseEvent) => {\n event.stopPropagation()\n onMarkAsRead?.()\n }\n\n const handleDelete = (event: React.MouseEvent) => {\n event.stopPropagation()\n onDelete?.()\n }\n\n return (\n <article\n className={cn(\n notificationVariants({ variant, read, interactive: isInteractive }),\n className\n )}\n aria-label={`${read ? \"\" : \"Unread: \"}${title}${description ? `. ${description}` : \"\"}${formattedTimestamp ? `. ${formattedTimestamp}` : \"\"}`}\n data-slot=\"notification\"\n data-unread={!read}\n data-variant={variant}\n role=\"article\"\n tabIndex={isInteractive ? 0 : undefined}\n onClick={isInteractive ? handleClick : undefined}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {/* Icon or Avatar */}\n <div className=\"flex-shrink-0\" data-slot=\"notification-media\">\n {icon ? (\n <div\n aria-hidden=\"true\"\n className=\"flex size-10 items-center justify-center\"\n >\n {icon}\n </div>\n ) : showAvatar ? (\n avatar ?? (\n <Avatar size=\"sm\">\n {avatarSrc && (\n <AvatarImage alt=\"\" src={avatarSrc} />\n )}\n <AvatarFallback>{avatarFallback}</AvatarFallback>\n </Avatar>\n )\n ) : null}\n </div>\n\n {/* Content */}\n <div className=\"min-w-0 flex-1\" data-slot=\"notification-content\">\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"flex min-w-0 items-center gap-[var(--notification-dot-gap)]\">\n {!read && (\n <span\n aria-hidden=\"true\"\n className={cn(unreadDotVariants({ variant }))}\n data-slot=\"notification-unread-dot\"\n />\n )}\n <p\n className=\"text-foreground line-clamp-2 min-w-0 text-sm font-medium\"\n data-slot=\"notification-title\"\n >\n {title}\n </p>\n </div>\n {formattedTimestamp && (\n <time\n className=\"text-muted-foreground shrink-0 text-2xs font-semibold\"\n data-slot=\"notification-timestamp\"\n dateTime={timestamp instanceof Date ? timestamp.toISOString() : undefined}\n >\n {formattedTimestamp}\n </time>\n )}\n </div>\n {description && (\n <p\n className=\"text-muted-foreground mt-0.5 line-clamp-2 text-xs\"\n data-slot=\"notification-description\"\n >\n {description}\n </p>\n )}\n {actions && (\n <div className=\"mt-2\" data-slot=\"notification-actions\">\n {actions}\n </div>\n )}\n </div>\n\n {/* Built-in action buttons */}\n {showActions && !actions && (\n <div\n className=\"flex shrink-0 items-center gap-1\"\n data-slot=\"notification-action-buttons\"\n >\n {onMarkAsRead && !read && (\n <button\n aria-label=\"Mark as read\"\n className=\"text-muted-foreground hover:text-foreground hover:bg-accent rounded-md p-1.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n data-slot=\"notification-mark-read\"\n type=\"button\"\n onClick={handleMarkAsRead}\n >\n <Check aria-hidden=\"true\" className=\"size-4\" />\n </button>\n )}\n {onDelete && (\n <button\n aria-label=\"Delete notification\"\n className=\"text-muted-foreground hover:text-destructive hover:bg-destructive/10 rounded-md p-1.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n data-slot=\"notification-delete\"\n type=\"button\"\n onClick={handleDelete}\n >\n <Trash2 aria-hidden=\"true\" className=\"size-4\" />\n </button>\n )}\n </div>\n )}\n </article>\n )\n}\n\n/**\n * NotificationDismissButton for use within custom actions\n */\nfunction NotificationDismissButton({\n className,\n onClick,\n ...props\n}: React.ComponentPropsWithoutRef<\"button\">) {\n return (\n <button\n className={cn(\n \"text-muted-foreground hover:text-foreground rounded-md p-1 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n className\n )}\n aria-label=\"Dismiss\"\n data-slot=\"notification-dismiss\"\n type=\"button\"\n onClick={onClick}\n {...props}\n >\n <X aria-hidden=\"true\" className=\"size-4\" />\n </button>\n )\n}\n\nexport { Notification, NotificationDismissButton, notificationVariants, unreadDotVariants }\nexport type { NotificationProps, NotificationVariant }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/Banner/Banner.variants.ts","../src/components/data-display/Banner/Banner.tsx"],"names":[],"mappings":";;;;;AAQO,IAAM,cAAA,GAAiB,GAAA;AAAA;AAAA,EAE5B,yLAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,gCAAA;AAAA,QACT,IAAA,EAAM,0EAAA;AAAA,QACN,OAAA,EACE,gFAAA;AAAA,QACF,OAAA,EACE,gFAAA;AAAA,QACF,KAAA,EACE,wFAAA;AAAA,QACF,KAAA,EACE;AAAA,OACJ;AAAA,MACA,QAAA,EAAU;AAAA,QACR,GAAA,EAAK,iCAAA;AAAA,QACL,MAAA,EAAQ,oCAAA;AAAA,QACR,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,QAAA,EAAU;AAAA;AACZ;AAEJ;ACdA,SAAS,MAAA,CAAO;AAAA,EACd,SAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA,GAAc,IAAA;AAAA,EACd,SAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,QAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgB;AAEd,EAAA,MAAM,WACJ,IAAA,KACC,OAAA,KAAY,OAAA,IAAW,OAAA,KAAY,YAAY,OAAA,GAAU,QAAA,CAAA;AAE5D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,cAAA,CAAe,EAAE,OAAA,EAAS,QAAA,EAAU,CAAA;AAAA,QACpC,MAAA,IAAU,QAAA;AAAA,QACV;AAAA,OACF;AAAA,MACA,WAAA,EAAW,QAAA,KAAa,OAAA,GAAU,WAAA,GAAc,QAAA;AAAA,MAChD,iBAAe,QAAA,IAAY,QAAA;AAAA,MAC3B,WAAA,EAAU,QAAA;AAAA,MACV,aAAA,EAAa,SAAS,EAAA,GAAK,MAAA;AAAA,MAC3B,gBAAc,OAAA,IAAW,SAAA;AAAA,MACzB,IAAA,EAAM,QAAA;AAAA,MACL,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iDAAA,EACZ,QAAA,EAAA;AAAA,QAAA,IAAA,wBACE,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAW,WAAA,EAAU,eAClC,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,4BAED,MAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,WAAA,EAAU,kBAChC,QAAA,EACH,CAAA;AAAA,QACC,0BACC,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,UAAA,EAAW,WAAA,EAAU,iBAClC,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,QAED,WAAA,oBACC,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,OAAA;AAAA,YACX,SAAA,EAAU,yKAAA;AAAA,YACV,WAAA,EAAU,cAAA;AAAA,YACV,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,SAAA;AAAA,YAET,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA;AACxB,OAAA,EAEJ;AAAA;AAAA,GACF;AAEJ","file":"chunk-4LZ53BAG.js","sourcesContent":["// Banner/Banner.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Banner style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const bannerVariants = cva(\n // Base styles (always applied)\n \"relative flex w-full items-center justify-center gap-[var(--banner-root-gap)] px-[var(--banner-root-padding-x)] py-[var(--banner-root-padding-y)] text-[length:var(--banner-text-size)]\",\n {\n variants: {\n variant: {\n default: \"bg-muted text-muted-foreground\",\n info: \"bg-[color:var(--info-subtle)] text-[color:var(--info-subtle-foreground)]\",\n success:\n \"bg-[color:var(--success-subtle)] text-[color:var(--success-subtle-foreground)]\",\n warning:\n \"bg-[color:var(--warning-subtle)] text-[color:var(--warning-subtle-foreground)]\",\n error:\n \"bg-[color:var(--destructive-subtle)] text-[color:var(--destructive-subtle-foreground)]\",\n promo:\n \"bg-gradient-to-r from-primary to-primary/80 text-primary-foreground\",\n },\n position: {\n top: \"fixed left-0 right-0 top-0 z-50\",\n bottom: \"fixed bottom-0 left-0 right-0 z-50\",\n inline: \"relative\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n position: \"inline\",\n },\n }\n)\n\n// Export variant prop types\nexport type BannerVariantProps = VariantProps<typeof bannerVariants>\n","import type { VariantProps } from \"class-variance-authority\"\n\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { bannerVariants } from \"./Banner.variants\"\n\ninterface BannerProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof bannerVariants> {\n /** Action element to display (e.g., button) */\n action?: React.ReactNode\n /** Whether the banner can be dismissed @default true */\n dismissible?: boolean\n /** Icon to display before the content */\n icon?: React.ReactNode\n /** Callback when the banner is dismissed */\n onDismiss?: () => void\n /** Whether the banner should be sticky during scroll @default false */\n sticky?: boolean\n}\n\nfunction Banner({\n className,\n variant,\n position,\n icon,\n action,\n dismissible = true,\n onDismiss,\n sticky = false,\n children,\n role,\n ...props\n}: BannerProps) {\n // Determine ARIA role based on variant\n const ariaRole =\n role ??\n (variant === \"error\" || variant === \"warning\" ? \"alert\" : \"status\")\n\n return (\n <div\n className={cn(\n bannerVariants({ variant, position }),\n sticky && \"sticky\",\n className\n )}\n aria-live={ariaRole === \"alert\" ? \"assertive\" : \"polite\"}\n data-position={position ?? \"inline\"}\n data-slot=\"banner\"\n data-sticky={sticky ? \"\" : undefined}\n data-variant={variant ?? \"default\"}\n role={ariaRole}\n {...props}\n >\n <div className=\"mx-auto flex max-w-screen-xl items-center gap-2\">\n {icon && (\n <span className=\"shrink-0\" data-slot=\"banner-icon\">\n {icon}\n </span>\n )}\n <span className=\"flex-1\" data-slot=\"banner-content\">\n {children}\n </span>\n {action && (\n <span className=\"shrink-0\" data-slot=\"banner-action\">\n {action}\n </span>\n )}\n {dismissible && (\n <button\n aria-label=\"Close\"\n className=\"shrink-0 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n data-slot=\"banner-close\"\n type=\"button\"\n onClick={onDismiss}\n >\n <X className=\"size-4\" />\n </button>\n )}\n </div>\n </div>\n )\n}\n\nexport { Banner, bannerVariants }\nexport type { BannerProps }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/ErrorPage/ErrorPage.tsx"],"names":[],"mappings":"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","file":"chunk-4OWRNWHW.js","sourcesContent":["import type { ErrorDefault, ErrorPageProps, ErrorType } from \"./ErrorPage.types\"\n\nimport {\n ArrowLeft,\n Ban,\n CircleAlert,\n Home,\n Loader2,\n Lock,\n RefreshCw,\n ServerCrash,\n Settings,\n WifiOff,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n/**\n * Default content for each error type\n */\nconst errorDefaults: Record<ErrorType, ErrorDefault> = {\n \"401\": {\n code: \"401\",\n description: \"Faça login para acessar este conteúdo.\",\n title: \"Não autenticado\",\n },\n \"403\": {\n code: \"403\",\n description: \"Você não tem permissão para acessar este recurso.\",\n title: \"Acesso negado\",\n },\n \"404\": {\n code: \"404\",\n description: \"A página que você está procurando não existe ou foi movida.\",\n title: \"Página não encontrada\",\n },\n \"500\": {\n code: \"500\",\n description: \"Ocorreu um erro inesperado. Nossa equipe foi notificada.\",\n title: \"Erro interno\",\n },\n generic: {\n code: \"\",\n description: \"Ocorreu um erro. Por favor, tente novamente.\",\n title: \"Algo deu errado\",\n },\n maintenance: {\n code: \"\",\n description: \"Estamos realizando melhorias. Voltamos em breve!\",\n title: \"Em manutenção\",\n },\n offline: {\n code: \"\",\n description:\n \"Verifique sua conexão com a internet e tente novamente.\",\n title: \"Sem conexão\",\n },\n}\n\n/**\n * Default icon for each error type\n */\nfunction getDefaultIcon(type: ErrorType): React.ReactNode {\n const iconClassName = \"size-16 text-muted-foreground\"\n\n switch (type) {\n case \"404\":\n return <Ban className={iconClassName} />\n case \"500\":\n return <ServerCrash className={iconClassName} />\n case \"403\":\n return <Lock className={iconClassName} />\n case \"401\":\n return <Lock className={iconClassName} />\n case \"offline\":\n return <WifiOff className={iconClassName} />\n case \"maintenance\":\n return <Settings className={iconClassName} />\n default:\n return <CircleAlert className={cn(iconClassName, \"text-destructive\")} />\n }\n}\n\n/**\n * ErrorPage component displays user-friendly error pages with contextual\n * information, navigation options, and recovery actions.\n */\nfunction ErrorPage({\n actions,\n className,\n code,\n description,\n fullScreen = false,\n homeHref = \"/\",\n icon,\n illustration,\n loading = false,\n onRetry,\n retryLabel = \"Tentar novamente\",\n showBackLink = true,\n showHomeLink = true,\n title,\n type = \"generic\",\n ...props\n}: ErrorPageProps) {\n const defaults = errorDefaults[type]\n const displayTitle = title ?? defaults.title\n const displayDescription = description ?? defaults.description\n const displayCode = code ?? defaults.code\n const displayIcon = icon ?? getDefaultIcon(type)\n\n const handleBack = () => {\n if (typeof window !== \"undefined\" && window.history.length > 1) {\n window.history.back()\n }\n }\n\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center gap-6 bg-background p-8 text-center md:p-12\",\n fullScreen && \"min-h-screen\",\n className\n )}\n aria-live=\"polite\"\n data-slot=\"error-page\"\n role=\"main\"\n {...props}\n >\n {/* Illustration or Icon */}\n {illustration ? (\n <div className=\"mb-2\" data-slot=\"error-illustration\">\n {illustration}\n </div>\n ) : (\n <div className=\"mb-2\" data-slot=\"error-icon\">\n {displayIcon}\n </div>\n )}\n\n {/* Error Code */}\n {displayCode && (\n <div\n className=\"text-6xl font-bold text-muted-foreground md:text-8xl\"\n data-slot=\"error-code\"\n >\n {displayCode}\n </div>\n )}\n\n {/* Title */}\n <h1\n className=\"text-2xl font-semibold tracking-tight text-foreground\"\n data-slot=\"error-title\"\n >\n {displayTitle}\n </h1>\n\n {/* Description */}\n <p\n className=\"max-w-md text-base text-muted-foreground\"\n data-slot=\"error-description\"\n >\n {displayDescription}\n </p>\n\n {/* Actions */}\n <div\n className=\"flex flex-col items-center gap-4\"\n data-slot=\"error-actions\"\n >\n {/* Custom actions */}\n {actions}\n\n {/* Retry button */}\n {onRetry && (\n <button\n className={cn(\n \"inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\"\n )}\n aria-busy={loading || undefined}\n data-slot=\"error-retry-button\"\n disabled={loading}\n type=\"button\"\n onClick={onRetry}\n >\n {loading ? (\n <Loader2 aria-hidden=\"true\" className=\"size-4 animate-spin\" />\n ) : (\n <RefreshCw aria-hidden=\"true\" className=\"size-4\" />\n )}\n {retryLabel}\n </button>\n )}\n\n {/* Navigation links */}\n {(showHomeLink || showBackLink) && (\n <div\n className=\"flex flex-wrap items-center justify-center gap-4 text-sm\"\n data-slot=\"error-navigation\"\n >\n {showBackLink && (\n <button\n className=\"inline-flex items-center gap-1.5 text-muted-foreground underline-offset-4 transition-colors hover:text-foreground hover:underline\"\n data-slot=\"error-back-link\"\n type=\"button\"\n onClick={handleBack}\n >\n <ArrowLeft aria-hidden=\"true\" className=\"size-4\" />\n Voltar\n </button>\n )}\n {showHomeLink && (\n <a\n className=\"inline-flex items-center gap-1.5 text-muted-foreground underline-offset-4 transition-colors hover:text-foreground hover:underline\"\n data-slot=\"error-home-link\"\n href={homeHref}\n >\n <Home aria-hidden=\"true\" className=\"size-4\" />\n Inicio\n </a>\n )}\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport { errorDefaults, ErrorPage }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/primitives/ProgressCircle/ProgressCircle.variants.ts","../src/components/primitives/ProgressCircle/ProgressCircle.tsx"],"names":[],"mappings":"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","file":"chunk-5GV4LDX7.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Size configuration for ProgressCircle\n * Maps size variant to actual pixel dimensions and stroke widths.\n *\n * Values are synced with CSS variables from @etus/tokens:\n * - --progress-circle-size-{size}-diameter\n * - --progress-circle-size-{size}-stroke-width\n *\n * Numeric values are required here for SVG attribute calculations\n * (radius, circumference, path coordinates).\n */\nexport const PROGRESS_CIRCLE_SIZES = {\n xxs: { diameter: 64, strokeWidth: 4, fontSize: \"text-sm\", labelSize: \"text-xs\" },\n xs: { diameter: 160, strokeWidth: 8, fontSize: \"text-2xl\", labelSize: \"text-sm\" },\n sm: { diameter: 200, strokeWidth: 10, fontSize: \"text-3xl\", labelSize: \"text-sm\" },\n md: { diameter: 240, strokeWidth: 12, fontSize: \"text-4xl\", labelSize: \"text-base\" },\n lg: { diameter: 280, strokeWidth: 14, fontSize: \"text-5xl\", labelSize: \"text-base\" },\n} as const\n\n/**\n * Container variants for the progress circle\n * Uses CSS custom properties from @etus/tokens for sizing\n */\nexport const progressCircleContainerVariants = cva(\n \"relative inline-flex items-center justify-center\",\n {\n variants: {\n size: {\n xxs: \"w-[var(--progress-circle-size-xxs-diameter)] h-[var(--progress-circle-size-xxs-diameter)]\",\n xs: \"w-[var(--progress-circle-size-xs-diameter)] h-[var(--progress-circle-size-xs-diameter)]\",\n sm: \"w-[var(--progress-circle-size-sm-diameter)] h-[var(--progress-circle-size-sm-diameter)]\",\n md: \"w-[var(--progress-circle-size-md-diameter)] h-[var(--progress-circle-size-md-diameter)]\",\n lg: \"w-[var(--progress-circle-size-lg-diameter)] h-[var(--progress-circle-size-lg-diameter)]\",\n },\n shape: {\n circle: \"\",\n \"half-circle\": \"!h-auto\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"circle\",\n },\n }\n)\n\n/**\n * Track (background circle) color variants\n */\nexport const progressCircleTrackVariants = cva(\n \"transition-colors\",\n {\n variants: {\n color: {\n default: \"stroke-[color:var(--progress-circle-track-color-default)]\",\n primary: \"stroke-[color:var(--progress-circle-track-color-primary)]\",\n success: \"stroke-[color:var(--progress-circle-track-color-success)]\",\n warning: \"stroke-[color:var(--progress-circle-track-color-warning)]\",\n error: \"stroke-[color:var(--progress-circle-track-color-error)]\",\n },\n },\n defaultVariants: {\n color: \"default\",\n },\n }\n)\n\n/**\n * Indicator (progress arc) color variants\n */\nexport const progressCircleIndicatorVariants = cva(\n \"transition-all duration-700 ease-out motion-reduce:transition-none\",\n {\n variants: {\n color: {\n default: \"stroke-[color:var(--progress-circle-indicator-color-default)]\",\n primary: \"stroke-[color:var(--progress-circle-indicator-color-primary)]\",\n success: \"stroke-[color:var(--progress-circle-indicator-color-success)]\",\n warning: \"stroke-[color:var(--progress-circle-indicator-color-warning)]\",\n error: \"stroke-[color:var(--progress-circle-indicator-color-error)]\",\n },\n indeterminate: {\n true: \"animate-spin origin-center\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"default\",\n indeterminate: false,\n },\n }\n)\n\n/**\n * Value text variants (percentage in center)\n */\nexport const progressCircleValueVariants = cva(\n \"font-[var(--progress-circle-value-font-weight)] tabular-nums text-[color:var(--progress-circle-value-color)]\",\n {\n variants: {\n size: {\n xxs: \"text-sm\",\n xs: \"text-2xl\",\n sm: \"text-3xl\",\n md: \"text-4xl\",\n lg: \"text-5xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * Label text variants (below percentage)\n */\nexport const progressCircleLabelVariants = cva(\n \"text-[color:var(--progress-circle-label-color)]\",\n {\n variants: {\n size: {\n xxs: \"text-xs\",\n xs: \"text-sm\",\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type ProgressCircleContainerVariants = VariantProps<typeof progressCircleContainerVariants>\nexport type ProgressCircleTrackVariants = VariantProps<typeof progressCircleTrackVariants>\nexport type ProgressCircleIndicatorVariants = VariantProps<typeof progressCircleIndicatorVariants>\n","\"use client\"\n\nimport type { ProgressCircleProps } from \"./ProgressCircle.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../../feedback/Tooltip\"\nimport {\n PROGRESS_CIRCLE_SIZES,\n progressCircleContainerVariants,\n progressCircleIndicatorVariants,\n progressCircleLabelVariants,\n progressCircleTrackVariants,\n progressCircleValueVariants,\n} from \"./ProgressCircle.variants\"\n\n/**\n * Default format function for progress value\n */\nconst defaultFormatValue = (value: number): string => `${String(value)}%`\n\n/**\n * ProgressCircle component for displaying circular progress indicators.\n *\n * Built with SVG for smooth rendering and full accessibility support.\n * Supports multiple sizes, shapes (full circle and half-circle),\n * color variants, and optional labels.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <ProgressCircle value={75} />\n *\n * // With label\n * <ProgressCircle value={60} label=\"Active users\" />\n *\n * // Half-circle variant\n * <ProgressCircle value={80} shape=\"half-circle\" />\n *\n * // Different sizes and colors\n * <ProgressCircle value={50} size=\"lg\" color=\"warning\" />\n * ```\n */\nfunction ProgressCircle({\n value = 0,\n max = 100,\n indeterminate = false,\n size = \"md\",\n shape = \"circle\",\n color = \"default\",\n label,\n formatValue = defaultFormatValue,\n showValue = true,\n radius: customRadius,\n strokeWidth: customStrokeWidth,\n className,\n animate = true,\n tooltip,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n}: ProgressCircleProps) {\n // Clamp the raw value between 0 and max first\n const clampedRawValue = Math.min(max, Math.max(0, value))\n\n // Calculate percentage based on clamped value and max\n const clampedValue = (clampedRawValue / max) * 100\n\n // Animation state - initialize based on animate and indeterminate props\n const [isVisible, setIsVisible] = React.useState(!animate || indeterminate)\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n // Use IntersectionObserver to trigger animation only when in viewport\n React.useEffect(() => {\n // Skip if not animating, indeterminate, or already visible\n if (!animate || indeterminate || isVisible) {\n return\n }\n\n const element = containerRef.current\n if (!element) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0]\n if (entry?.isIntersecting) {\n requestAnimationFrame(() => {\n setIsVisible(true)\n })\n observer.disconnect()\n }\n },\n { threshold: 0.1 }\n )\n\n observer.observe(element)\n\n return () => { observer.disconnect(); }\n }, [animate, indeterminate, isVisible])\n\n // Get size configuration\n const sizeConfig = PROGRESS_CIRCLE_SIZES[size]\n const strokeWidth = customStrokeWidth ?? sizeConfig.strokeWidth\n // Use custom radius if provided, otherwise use size preset\n const diameter = customRadius ? (customRadius * 2 + strokeWidth) : sizeConfig.diameter\n\n // Calculate SVG dimensions\n const radius = (diameter - strokeWidth) / 2\n const center = diameter / 2\n\n // Calculate circumference and progress\n const isHalfCircle = shape === \"half-circle\"\n const circumference = isHalfCircle ? Math.PI * radius : 2 * Math.PI * radius\n\n // For indeterminate, show ~25% of the arc; otherwise use the actual value\n // For animation, start at 0 and animate to the target value when visible\n const displayValue = indeterminate ? 25 : (isVisible ? clampedValue : 0)\n const progressOffset = circumference - (displayValue / 100) * circumference\n\n // SVG viewBox and path calculations\n const viewBoxHeight = isHalfCircle ? diameter / 2 + strokeWidth : diameter\n\n // For half-circle, we use an arc path instead of a circle\n const getPath = () => {\n if (isHalfCircle) {\n // Arc from left to right (180 degrees at top)\n const startX = strokeWidth / 2\n const startY = center\n const endX = diameter - strokeWidth / 2\n const endY = center\n return `M ${String(startX)} ${String(startY)} A ${String(radius)} ${String(radius)} 0 0 1 ${String(endX)} ${String(endY)}`\n }\n return\n }\n\n // Format the clamped value for display\n const formattedValue = formatValue(clampedRawValue)\n\n const progressCircleElement = (\n <div\n ref={containerRef}\n className={cn(\n progressCircleContainerVariants({ size, shape }),\n className\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={indeterminate ? undefined : clampedRawValue}\n data-indeterminate={indeterminate || undefined}\n data-slot=\"progress-circle\"\n role=\"progressbar\"\n >\n <svg\n className={isHalfCircle ? \"rotate-0\" : \"\"}\n data-slot=\"progress-circle-svg\"\n height={viewBoxHeight}\n viewBox={`0 0 ${String(diameter)} ${String(viewBoxHeight)}`}\n width={diameter}\n >\n {isHalfCircle ? (\n <>\n {/* Half-circle track */}\n <path\n className={cn(progressCircleTrackVariants({ color }))}\n d={getPath()}\n data-slot=\"progress-circle-track\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n {/* Half-circle indicator */}\n <path\n className={cn(progressCircleIndicatorVariants({ color }))}\n d={getPath()}\n data-slot=\"progress-circle-indicator\"\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={progressOffset}\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n </>\n ) : (\n <>\n {/* Full circle track */}\n <circle\n className={cn(progressCircleTrackVariants({ color }))}\n cx={center}\n cy={center}\n data-slot=\"progress-circle-track\"\n fill=\"none\"\n r={radius}\n strokeWidth={strokeWidth}\n />\n {/* Full circle indicator */}\n <circle\n style={{\n transform: indeterminate ? undefined : \"rotate(-90deg)\",\n transformOrigin: \"center\",\n }}\n className={cn(progressCircleIndicatorVariants({ color, indeterminate }))}\n cx={center}\n cy={center}\n data-slot=\"progress-circle-indicator\"\n fill=\"none\"\n r={radius}\n strokeDasharray={circumference}\n strokeDashoffset={progressOffset}\n strokeLinecap=\"round\"\n strokeWidth={strokeWidth}\n />\n </>\n )}\n </svg>\n\n {/* Center content (value and label) */}\n <div\n className={cn(\n \"absolute flex flex-col items-center justify-center\",\n isHalfCircle && \"bottom-0\"\n )}\n data-slot=\"progress-circle-content\"\n >\n {showValue && !indeterminate && (\n <span\n className={cn(progressCircleValueVariants({ size }))}\n data-slot=\"progress-circle-value\"\n >\n {formattedValue}\n </span>\n )}\n {label && (\n <span\n className={cn(progressCircleLabelVariants({ size }))}\n data-slot=\"progress-circle-label\"\n >\n {label}\n </span>\n )}\n </div>\n </div>\n )\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n {progressCircleElement}\n </TooltipTrigger>\n <TooltipContent>\n {tooltip}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return progressCircleElement\n}\n\nexport { ProgressCircle }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/DropdownMenu/DropdownMenu.variants.ts","../src/components/navigation/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"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","file":"chunk-6G5QK3SU.js","sourcesContent":["// DropdownMenu/DropdownMenu.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Shared animation and transition styles for menu content\n */\nconst menuContentBase = [\n \"bg-popover text-popover-foreground\",\n \"z-[var(--dropdown-menu-content-z-index)] min-w-[var(--dropdown-menu-content-min-width)] overflow-hidden rounded-[var(--dropdown-menu-content-radius)] border-[var(--dropdown-menu-content-border-width)] p-[var(--dropdown-menu-content-padding)]\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n]\n\n/**\n * Shared base styles for interactive menu items\n */\nconst menuItemBase = [\n \"relative flex cursor-default items-center rounded-[var(--dropdown-menu-item-radius)] text-[length:var(--dropdown-menu-item-text-size)] outline-hidden select-none\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-[var(--dropdown-menu-item-icon-size)]\",\n]\n\n/**\n * DropdownMenuContent variant styles\n */\nexport const dropdownMenuContentVariants = cva([\n ...menuContentBase,\n \"shadow-[var(--dropdown-menu-content-shadow)]\",\n \"max-h-(--radix-dropdown-menu-content-available-height)\",\n \"origin-(--radix-dropdown-menu-content-transform-origin)\",\n \"overflow-x-hidden overflow-y-auto\",\n])\n\n/**\n * DropdownMenuSubContent variant styles\n */\nexport const dropdownMenuSubContentVariants = cva([\n ...menuContentBase,\n \"shadow-lg\",\n \"origin-(--radix-dropdown-menu-content-transform-origin)\",\n])\n\n/**\n * DropdownMenuItem variant styles\n */\nexport const dropdownMenuItemVariants = cva(\n [\n ...menuItemBase,\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"px-[var(--dropdown-menu-item-padding-x)] py-[var(--dropdown-menu-item-padding-y)] gap-[var(--dropdown-menu-item-gap)]\",\n ],\n {\n variants: {\n inset: {\n true: \"pl-[var(--dropdown-menu-item-inset-padding-left)]\",\n false: \"\",\n },\n variant: {\n default: \"focus:bg-accent focus:text-accent-foreground\",\n destructive: [\n \"text-destructive\",\n \"focus:bg-destructive/10 dark:focus:bg-destructive/20\",\n \"focus:text-destructive\",\n \"*:[svg]:!text-destructive\",\n ],\n },\n },\n defaultVariants: {\n inset: false,\n variant: \"default\",\n },\n }\n)\n\n/**\n * DropdownMenuSubTrigger variant styles\n */\nexport const dropdownMenuSubTriggerVariants = cva(\n [\n ...menuItemBase,\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"px-[var(--dropdown-menu-item-padding-x)] py-[var(--dropdown-menu-item-padding-y)] gap-[var(--dropdown-menu-item-gap)]\",\n ],\n {\n variants: {\n inset: {\n true: \"pl-[var(--dropdown-menu-item-inset-padding-left)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n inset: false,\n },\n }\n)\n\n/**\n * DropdownMenuCheckboxItem variant styles\n */\nexport const dropdownMenuCheckboxItemVariants = cva([\n ...menuItemBase,\n \"focus:bg-accent focus:text-accent-foreground\",\n \"py-[var(--dropdown-menu-item-padding-y)] pr-[var(--dropdown-menu-item-padding-x)] pl-[var(--dropdown-menu-item-inset-padding-left)] gap-[var(--dropdown-menu-item-gap)]\",\n])\n\n/**\n * DropdownMenuRadioItem variant styles\n */\nexport const dropdownMenuRadioItemVariants = cva([\n ...menuItemBase,\n \"focus:bg-accent focus:text-accent-foreground\",\n \"py-[var(--dropdown-menu-item-padding-y)] pr-[var(--dropdown-menu-item-padding-x)] pl-[var(--dropdown-menu-item-inset-padding-left)] gap-[var(--dropdown-menu-item-gap)]\",\n])\n\n/**\n * DropdownMenuLabel variant styles\n */\nexport const dropdownMenuLabelVariants = cva(\n [\"px-[var(--dropdown-menu-item-padding-x)] py-[var(--dropdown-menu-item-padding-y)] text-[length:var(--dropdown-menu-item-text-size)] font-medium\"],\n {\n variants: {\n inset: {\n true: \"pl-[var(--dropdown-menu-item-inset-padding-left)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n inset: false,\n },\n }\n)\n\n/**\n * DropdownMenuSeparator variant styles\n */\nexport const dropdownMenuSeparatorVariants = cva([\"bg-border -mx-[var(--dropdown-menu-separator-margin-x)] my-[var(--dropdown-menu-separator-margin-y)] h-[var(--dropdown-menu-separator-height)]\"])\n\n/**\n * DropdownMenuShortcut variant styles\n */\nexport const dropdownMenuShortcutVariants = cva([\n \"text-muted-foreground ml-auto text-[length:var(--dropdown-menu-shortcut-text-size)] tracking-widest\",\n])\n\n/**\n * Item indicator wrapper styles\n */\nexport const dropdownMenuIndicatorWrapperVariants = cva([\n \"pointer-events-none absolute left-[var(--dropdown-menu-indicator-left)] flex size-[var(--dropdown-menu-indicator-size)] items-center justify-center\",\n])\n\nexport type DropdownMenuItemVariantProps = VariantProps<\n typeof dropdownMenuItemVariants\n>\nexport type DropdownMenuSubTriggerVariantProps = VariantProps<\n typeof dropdownMenuSubTriggerVariants\n>\nexport type DropdownMenuLabelVariantProps = VariantProps<\n typeof dropdownMenuLabelVariants\n>\n\n","\"use client\"\n\nimport type {\n DropdownMenuCheckboxItemProps,\n DropdownMenuContentProps,\n DropdownMenuGroupProps,\n DropdownMenuItemProps,\n DropdownMenuLabelProps,\n DropdownMenuPortalProps,\n DropdownMenuProps,\n DropdownMenuRadioGroupProps,\n DropdownMenuRadioItemProps,\n DropdownMenuSeparatorProps,\n DropdownMenuShortcutProps,\n DropdownMenuSubContentProps,\n DropdownMenuSubProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuTriggerProps,\n} from \"./DropdownMenu.types\"\n\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n dropdownMenuCheckboxItemVariants,\n dropdownMenuContentVariants,\n dropdownMenuIndicatorWrapperVariants,\n dropdownMenuItemVariants,\n dropdownMenuLabelVariants,\n dropdownMenuRadioItemVariants,\n dropdownMenuSeparatorVariants,\n dropdownMenuShortcutVariants,\n dropdownMenuSubContentVariants,\n dropdownMenuSubTriggerVariants,\n} from \"./DropdownMenu.variants\"\n\n/**\n * DropdownMenu - A menu that appears when triggered by a button or other element.\n *\n * Built on top of Radix UI DropdownMenu primitive with additional styling.\n *\n * @example\n * <DropdownMenu>\n * <DropdownMenuTrigger>Open Menu</DropdownMenuTrigger>\n * <DropdownMenuContent>\n * <DropdownMenuItem>Item 1</DropdownMenuItem>\n * <DropdownMenuItem>Item 2</DropdownMenuItem>\n * </DropdownMenuContent>\n * </DropdownMenu>\n */\nfunction DropdownMenu({ ...props }: DropdownMenuProps) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\n/**\n * DropdownMenuPortal - Renders dropdown menu content in a portal.\n */\nfunction DropdownMenuPortal({ ...props }: DropdownMenuPortalProps) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n )\n}\n\n/**\n * DropdownMenuTrigger - Button that opens the dropdown menu.\n */\nfunction DropdownMenuTrigger({ ...props }: DropdownMenuTriggerProps) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n )\n}\n\n/**\n * DropdownMenuContent - Main content container for the dropdown menu.\n */\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: DropdownMenuContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n className={cn(dropdownMenuContentVariants(), className)}\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\n/**\n * DropdownMenuGroup - Groups related menu items together.\n */\nfunction DropdownMenuGroup({ ...props }: DropdownMenuGroupProps) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n )\n}\n\n/**\n * DropdownMenuItem - An interactive menu item.\n *\n * Supports inset layout and destructive variant.\n */\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: DropdownMenuItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n className={cn(dropdownMenuItemVariants({ inset, variant }), className)}\n data-inset={inset}\n data-slot=\"dropdown-menu-item\"\n data-variant={variant}\n {...props}\n />\n )\n}\n\n/**\n * DropdownMenuCheckboxItem - A menu item that can be checked/unchecked.\n */\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: DropdownMenuCheckboxItemProps) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n checked={checked ?? false}\n className={cn(dropdownMenuCheckboxItemVariants(), className)}\n data-slot=\"dropdown-menu-checkbox-item\"\n {...props}\n >\n <span className={cn(dropdownMenuIndicatorWrapperVariants())}>\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-[var(--dropdown-menu-checkbox-size)]\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n}\n\n/**\n * DropdownMenuRadioGroup - Groups radio items together.\n */\nfunction DropdownMenuRadioGroup({ ...props }: DropdownMenuRadioGroupProps) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\n/**\n * DropdownMenuRadioItem - A radio menu item within a radio group.\n */\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: DropdownMenuRadioItemProps) {\n return (\n <DropdownMenuPrimitive.RadioItem\n className={cn(dropdownMenuRadioItemVariants(), className)}\n data-slot=\"dropdown-menu-radio-item\"\n {...props}\n >\n <span className={cn(dropdownMenuIndicatorWrapperVariants())}>\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-[var(--dropdown-menu-radio-size)]\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n}\n\n/**\n * DropdownMenuLabel - A non-interactive label for menu sections.\n */\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n className={cn(dropdownMenuLabelVariants({ inset }), className)}\n data-inset={inset}\n data-slot=\"dropdown-menu-label\"\n {...props}\n />\n )\n}\n\n/**\n * DropdownMenuSeparator - A visual separator between menu sections.\n */\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: DropdownMenuSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n className={cn(dropdownMenuSeparatorVariants(), className)}\n data-slot=\"dropdown-menu-separator\"\n {...props}\n />\n )\n}\n\n/**\n * DropdownMenuShortcut - Displays keyboard shortcut hints.\n */\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: DropdownMenuShortcutProps) {\n return (\n <span\n className={cn(dropdownMenuShortcutVariants(), className)}\n data-slot=\"dropdown-menu-shortcut\"\n {...props}\n />\n )\n}\n\n/**\n * DropdownMenuSub - Container for nested submenus.\n */\nfunction DropdownMenuSub({ ...props }: DropdownMenuSubProps) {\n return (\n <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />\n )\n}\n\n/**\n * DropdownMenuSubTrigger - Trigger for opening a submenu.\n *\n * Includes a chevron icon indicator.\n */\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: DropdownMenuSubTriggerProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n className={cn(dropdownMenuSubTriggerVariants({ inset }), className)}\n data-inset={inset}\n data-slot=\"dropdown-menu-sub-trigger\"\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n}\n\n/**\n * DropdownMenuSubContent - Content container for submenus.\n */\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: DropdownMenuSubContentProps) {\n return (\n <DropdownMenuPrimitive.SubContent\n className={cn(dropdownMenuSubContentVariants(), className)}\n data-slot=\"dropdown-menu-sub-content\"\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n}\n"]}
@@ -1,75 +0,0 @@
1
- import { cn } from './chunk-RVAYDRMA.js';
2
- import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
- import { cva } from 'class-variance-authority';
4
- import { jsx } from 'react/jsx-runtime';
5
-
6
- var collapsibleVariants = cva([
7
- // Base styles - intentionally minimal as this is primarily a behavior component
8
- ]);
9
- var collapsibleTriggerVariants = cva([
10
- // Base styles for trigger
11
- "cursor-pointer",
12
- "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50"
13
- ]);
14
- var collapsibleContentVariants = cva(
15
- [
16
- "overflow-hidden"
17
- ],
18
- {
19
- variants: {
20
- /**
21
- * Animation variant for content transition
22
- * - animated: Smooth height and opacity animation
23
- * - none: No animation, instant show/hide
24
- */
25
- animation: {
26
- animated: [
27
- "data-[state=open]:animate-collapsible-down",
28
- "data-[state=closed]:animate-collapsible-up"
29
- ],
30
- none: []
31
- }
32
- },
33
- defaultVariants: {
34
- animation: "animated"
35
- }
36
- }
37
- );
38
- function Collapsible({ className, ...props }) {
39
- return /* @__PURE__ */ jsx(
40
- CollapsiblePrimitive.Root,
41
- {
42
- className: cn(collapsibleVariants(), className),
43
- "data-slot": "collapsible",
44
- ...props
45
- }
46
- );
47
- }
48
- function CollapsibleTrigger2({ className, ...props }) {
49
- return /* @__PURE__ */ jsx(
50
- CollapsiblePrimitive.CollapsibleTrigger,
51
- {
52
- className: cn(collapsibleTriggerVariants(), className),
53
- "data-slot": "collapsible-trigger",
54
- ...props
55
- }
56
- );
57
- }
58
- function CollapsibleContent2({
59
- className,
60
- animation,
61
- ...props
62
- }) {
63
- return /* @__PURE__ */ jsx(
64
- CollapsiblePrimitive.CollapsibleContent,
65
- {
66
- className: cn(collapsibleContentVariants({ animation }), className),
67
- "data-slot": "collapsible-content",
68
- ...props
69
- }
70
- );
71
- }
72
-
73
- export { Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, collapsibleContentVariants, collapsibleTriggerVariants, collapsibleVariants };
74
- //# sourceMappingURL=chunk-6VEQLD2P.js.map
75
- //# sourceMappingURL=chunk-6VEQLD2P.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/Collapsible/Collapsible.variants.ts","../src/components/layout/Collapsible/Collapsible.tsx"],"names":["CollapsibleTrigger","CollapsibleContent"],"mappings":";;;;;AAMO,IAAM,sBAAsB,GAAA,CAAI;AAAA;AAEvC,CAAC;AAMM,IAAM,6BAA6B,GAAA,CAAI;AAAA;AAAA,EAE5C,gBAAA;AAAA,EACA;AACF,CAAC;AAMM,IAAM,0BAAA,GAA6B,GAAA;AAAA,EACxC;AAAA,IACE;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMR,SAAA,EAAW;AAAA,QACT,QAAA,EAAU;AAAA,UACR,4CAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,MAAM;AAAC;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW;AAAA;AACb;AAEJ;AChCA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqB;AAC9D,EAAA,uBACE,GAAA;AAAA,IAAsB,oBAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAoB,EAAG,SAAS,CAAA;AAAA,MAC9C,WAAA,EAAU,aAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASA,mBAAAA,CAAmB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA4B;AAC5E,EAAA,uBACE,GAAA;AAAA,IAAsB,oBAAA,CAAA,kBAAA;AAAA,IAArB;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA2B,EAAG,SAAS,CAAA;AAAA,MACrD,WAAA,EAAU,qBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASC,mBAAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA4B;AAC1B,EAAA,uBACE,GAAA;AAAA,IAAsB,oBAAA,CAAA,kBAAA;AAAA,IAArB;AAAA,MACC,WAAW,EAAA,CAAG,0BAAA,CAA2B,EAAE,SAAA,EAAW,GAAG,SAAS,CAAA;AAAA,MAClE,WAAA,EAAU,qBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-6VEQLD2P.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Collapsible root variant styles\n * Container component for expandable/collapsible content\n */\nexport const collapsibleVariants = cva([\n // Base styles - intentionally minimal as this is primarily a behavior component\n])\n\n/**\n * CollapsibleTrigger variant styles\n * Element that toggles the collapsible state\n */\nexport const collapsibleTriggerVariants = cva([\n // Base styles for trigger\n \"cursor-pointer\",\n \"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50\",\n])\n\n/**\n * CollapsibleContent variant styles\n * Content that expands/collapses with animation support\n */\nexport const collapsibleContentVariants = cva(\n [\n \"overflow-hidden\",\n ],\n {\n variants: {\n /**\n * Animation variant for content transition\n * - animated: Smooth height and opacity animation\n * - none: No animation, instant show/hide\n */\n animation: {\n animated: [\n \"data-[state=open]:animate-collapsible-down\",\n \"data-[state=closed]:animate-collapsible-up\",\n ],\n none: [],\n },\n },\n defaultVariants: {\n animation: \"animated\",\n },\n }\n)\n\nexport type CollapsibleVariantProps = VariantProps<typeof collapsibleVariants>\nexport type CollapsibleTriggerVariantProps = VariantProps<typeof collapsibleTriggerVariants>\nexport type CollapsibleContentVariantProps = VariantProps<typeof collapsibleContentVariants>\n","import type {\n CollapsibleContentProps,\n CollapsibleProps,\n CollapsibleTriggerProps,\n} from \"./Collapsible.types\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n collapsibleContentVariants,\n collapsibleTriggerVariants,\n collapsibleVariants,\n} from \"./Collapsible.variants\"\n\nfunction Collapsible({ className, ...props }: CollapsibleProps) {\n return (\n <CollapsiblePrimitive.Root\n className={cn(collapsibleVariants(), className)}\n data-slot=\"collapsible\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleTrigger({ className, ...props }: CollapsibleTriggerProps) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n className={cn(collapsibleTriggerVariants(), className)}\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleContent({\n className,\n animation,\n ...props\n}: CollapsibleContentProps) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n className={cn(collapsibleContentVariants({ animation }), className)}\n data-slot=\"collapsible-content\"\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/Breadcrumb/Breadcrumb.variants.ts","../src/components/navigation/Breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":"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","file":"chunk-7AR5QRRX.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * BreadcrumbList variant styles\n * Container for breadcrumb items with responsive spacing\n */\nexport const breadcrumbListVariants = cva([\n \"text-[color:var(--breadcrumb-list-text)]\",\n \"flex flex-wrap items-center\",\n \"gap-[var(--breadcrumb-list-gap-default)] sm:gap-[var(--breadcrumb-list-gap-sm)]\",\n \"text-sm\",\n \"break-words\",\n])\n\n/**\n * BreadcrumbItem variant styles\n * Individual breadcrumb item wrapper\n */\nexport const breadcrumbItemVariants = cva([\n \"inline-flex items-center gap-[var(--breadcrumb-list-gap-default)]\",\n])\n\n/**\n * BreadcrumbLink variant styles\n * Clickable link with hover transition\n */\nexport const breadcrumbLinkVariants = cva([\n \"hover:text-[color:var(--breadcrumb-link-hover)]\",\n \"transition-colors\",\n])\n\n/**\n * BreadcrumbPage variant styles\n * Current page indicator (non-clickable)\n */\nexport const breadcrumbPageVariants = cva([\n \"text-[color:var(--breadcrumb-page-text)]\",\n \"font-normal\",\n])\n\n/**\n * BreadcrumbSeparator variant styles\n * Visual separator between items\n */\nexport const breadcrumbSeparatorVariants = cva([\n \"[&>svg]:size-[var(--breadcrumb-separator-size)]\",\n])\n\n/**\n * BreadcrumbEllipsis variant styles\n * Indicator for hidden items\n */\nexport const breadcrumbEllipsisVariants = cva([\n \"flex items-center justify-center\",\n \"size-[var(--breadcrumb-ellipsis-size)]\",\n])\n\nexport type BreadcrumbListVariantProps = VariantProps<typeof breadcrumbListVariants>\nexport type BreadcrumbItemVariantProps = VariantProps<typeof breadcrumbItemVariants>\nexport type BreadcrumbLinkVariantProps = VariantProps<typeof breadcrumbLinkVariants>\nexport type BreadcrumbPageVariantProps = VariantProps<typeof breadcrumbPageVariants>\nexport type BreadcrumbSeparatorVariantProps = VariantProps<typeof breadcrumbSeparatorVariants>\nexport type BreadcrumbEllipsisVariantProps = VariantProps<typeof breadcrumbEllipsisVariants>\n","import type {\n BreadcrumbEllipsisProps,\n BreadcrumbItemProps,\n BreadcrumbLinkProps,\n BreadcrumbListProps,\n BreadcrumbPageProps,\n BreadcrumbProps,\n BreadcrumbSeparatorProps,\n} from \"./Breadcrumb.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n breadcrumbEllipsisVariants,\n breadcrumbItemVariants,\n breadcrumbLinkVariants,\n breadcrumbListVariants,\n breadcrumbPageVariants,\n breadcrumbSeparatorVariants,\n} from \"./Breadcrumb.variants\"\n\n/**\n * Breadcrumb - Navigation component showing page hierarchy.\n *\n * Renders as a nav element with aria-label=\"breadcrumb\" for accessibility.\n *\n * @example\n * <Breadcrumb>\n * <BreadcrumbList>\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Current</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n */\nfunction Breadcrumb({ ...props }: BreadcrumbProps) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />\n}\n\n/**\n * BreadcrumbList - Ordered list container for breadcrumb items.\n */\nfunction BreadcrumbList({ className, ...props }: BreadcrumbListProps) {\n return (\n <ol\n className={cn(breadcrumbListVariants(), className)}\n data-slot=\"breadcrumb-list\"\n {...props}\n />\n )\n}\n\n/**\n * BreadcrumbItem - Individual breadcrumb list item.\n */\nfunction BreadcrumbItem({ className, ...props }: BreadcrumbItemProps) {\n return (\n <li\n className={cn(breadcrumbItemVariants(), className)}\n data-slot=\"breadcrumb-item\"\n {...props}\n />\n )\n}\n\n/**\n * BreadcrumbLink - Clickable link within a breadcrumb item.\n *\n * @example\n * // Basic usage\n * <BreadcrumbLink href=\"/products\">Products</BreadcrumbLink>\n *\n * @example\n * // With React Router\n * <BreadcrumbLink asChild>\n * <Link to=\"/products\">Products</Link>\n * </BreadcrumbLink>\n */\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: BreadcrumbLinkProps) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n className={cn(breadcrumbLinkVariants(), className)}\n data-slot=\"breadcrumb-link\"\n {...props}\n />\n )\n}\n\n/**\n * BreadcrumbPage - Current page indicator (non-clickable).\n *\n * Includes proper ARIA attributes for accessibility.\n */\nfunction BreadcrumbPage({ className, ...props }: BreadcrumbPageProps) {\n return (\n <span\n aria-current=\"page\"\n aria-disabled=\"true\"\n className={cn(breadcrumbPageVariants(), className)}\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n {...props}\n />\n )\n}\n\n/**\n * BreadcrumbSeparator - Visual separator between breadcrumb items.\n *\n * Hidden from screen readers with aria-hidden.\n *\n * @example\n * // Default (ChevronRight)\n * <BreadcrumbSeparator />\n *\n * @example\n * // Custom separator\n * <BreadcrumbSeparator>\n * <Slash className=\"size-4\" />\n * </BreadcrumbSeparator>\n */\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: BreadcrumbSeparatorProps) {\n return (\n <li\n aria-hidden=\"true\"\n className={cn(breadcrumbSeparatorVariants(), className)}\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n )\n}\n\n/**\n * BreadcrumbEllipsis - Indicator for hidden items in long paths.\n *\n * Can be combined with DropdownMenu to show hidden items.\n */\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: BreadcrumbEllipsisProps) {\n return (\n <span\n aria-hidden=\"true\"\n className={cn(breadcrumbEllipsisVariants(), className)}\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/primitives/Text/Text.tsx"],"names":[],"mappings":";;;;;;AAMA,IAAM,YAAA,GAAe,IAAI,EAAA,EAAI;AAAA,EAC3B,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA;AAAA,MAEP,QAAA,EACE,mQAAA;AAAA,MACF,QAAA,EACE,mQAAA;AAAA,MACF,QAAA,EACE,mQAAA;AAAA;AAAA,MAEF,EAAA,EAAI,6MAAA;AAAA,MACJ,EAAA,EAAI,6MAAA;AAAA,MACJ,EAAA,EAAI,6MAAA;AAAA;AAAA,MAEJ,QAAA,EACE,uMAAA;AAAA,MACF,QAAA,EACE,uMAAA;AAAA;AAAA,MAEF,IAAA,EAAM,kIAAA;AAAA,MACN,IAAA,EAAM,4HAAA;AAAA,MACN,KAAA,EAAO,0HAAA;AAAA,MACP,KAAA,EAAO,4HAAA;AAAA,MACP,KAAA,EAAO,4HAAA;AAAA,MACP,IAAA,EAAM;AAAA,KACR;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,uFAAA;AAAA,MACJ,EAAA,EAAI,uFAAA;AAAA,MACJ,IAAA,EAAM,2FAAA;AAAA,MACN,EAAA,EAAI,uFAAA;AAAA,MACJ,EAAA,EAAI,uFAAA;AAAA,MACJ,KAAA,EAAO,yFAAA;AAAA,MACP,KAAA,EAAO,yFAAA;AAAA,MACP,KAAA,EAAO;AAAA,KACT;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,kCAAA;AAAA,MACR,MAAA,EAAQ,kCAAA;AAAA,MACR,QAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACR;AAAA,IACA,KAAA,EAAO;AAAA;AAAA;AAAA,MAGL,OAAA,EAAS,wCAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS;AAAA;AAEb,CAAC;AAyBD,IAAM,kBAAA,uBAAyB,GAAA,CAAuC;AAAA,EACpE,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAC,CAAA;AAED,SAAS,IAAA,CAAK;AAAA,EACZ,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,EAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAc;AACZ,EAAA,MAAM,eAAA,GACJ,OAAA,KAAY,MAAA,GACR,MAAA,GACA,OAAA,IAAW,kBAAA,CAAmB,GAAA,CAAI,OAAO,CAAA,GACvC,GAAA,GACA,QAAA,GACE,GAAA,GACA,MAAA;AACV,EAAA,MAAM,kBAA+B,EAAA,IAAM,eAAA;AAC3C,EAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,eAAA;AAE9B,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,aAAa,EAAE,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,OAAO,CAAA;AAAA,QAC7C,QAAA,IAAY,UAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,WAAA,EAAU,MAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"chunk-7PX3WBR3.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\"\n\nconst textVariants = cva(\"\", {\n variants: {\n variant: {\n // Display — high-impact, oversized type from the Figma typography scale.\n display1:\n \"text-[length:var(--typography-display-d1-font-size)] leading-[var(--typography-display-d1-line-height)] font-[number:var(--typography-display-d1-font-weight)] font-[family-name:var(--typography-display-d1-font-family)] text-[color:var(--text-color-default)]\",\n display2:\n \"text-[length:var(--typography-display-d2-font-size)] leading-[var(--typography-display-d2-line-height)] font-[number:var(--typography-display-d2-font-weight)] font-[family-name:var(--typography-display-d2-font-family)] text-[color:var(--text-color-default)]\",\n display3:\n \"text-[length:var(--typography-display-d3-font-size)] leading-[var(--typography-display-d3-line-height)] font-[number:var(--typography-display-d3-font-weight)] font-[family-name:var(--typography-display-d3-font-family)] text-[color:var(--text-color-default)]\",\n // Paragraph — body copy at three reading sizes (p1 largest → p3 smallest).\n p1: \"text-[length:var(--typography-paragraph-p1-font-size)] leading-[var(--typography-paragraph-p1-line-height)] font-[number:var(--typography-paragraph-p1-font-weight)] text-[color:var(--text-color-default)]\",\n p2: \"text-[length:var(--typography-paragraph-p2-font-size)] leading-[var(--typography-paragraph-p2-line-height)] font-[number:var(--typography-paragraph-p2-font-weight)] text-[color:var(--text-color-default)]\",\n p3: \"text-[length:var(--typography-paragraph-p3-font-size)] leading-[var(--typography-paragraph-p3-line-height)] font-[number:var(--typography-paragraph-p3-font-weight)] text-[color:var(--text-color-default)]\",\n // Caption — small, supporting labels and metadata.\n caption1:\n \"text-[length:var(--typography-caption-c1-font-size)] leading-[var(--typography-caption-c1-line-height)] font-[number:var(--typography-caption-c1-font-weight)] text-[color:var(--text-color-default)]\",\n caption2:\n \"text-[length:var(--typography-caption-c2-font-size)] leading-[var(--typography-caption-c2-line-height)] font-[number:var(--typography-caption-c2-font-weight)] text-[color:var(--text-color-default)]\",\n // @deprecated body/lead/large/small/muted — use as variants tipográficas (p*/caption*/display*) ou o componente <Heading> p/ títulos. Removidas em v2.\n body: \"text-[length:var(--text-size-base-font-size)] leading-[var(--text-size-base-line-height)] text-[color:var(--text-color-default)]\",\n lead: \"text-[length:var(--text-size-xl-font-size)] leading-[var(--text-size-xl-line-height)] text-[color:var(--text-color-muted)]\",\n large: \"text-[length:var(--text-size-lg-font-size)] leading-[var(--text-size-lg-line-height)] font-[var(--text-weight-semibold)]\",\n small: \"text-[length:var(--text-size-sm-font-size)] leading-[var(--text-size-sm-line-height)] text-[color:var(--text-color-muted)]\",\n muted: \"text-[length:var(--text-size-sm-font-size)] leading-[var(--text-size-sm-line-height)] text-[color:var(--text-color-muted)]\",\n code: \"relative rounded-[var(--text-variant-code-radius)] bg-muted px-[var(--text-variant-code-padding-x)] py-[var(--text-variant-code-padding-y)] font-mono text-[length:var(--text-size-sm-font-size)]\",\n },\n size: {\n xs: \"text-[length:var(--text-size-xs-font-size)] leading-[var(--text-size-xs-line-height)]\",\n sm: \"text-[length:var(--text-size-sm-font-size)] leading-[var(--text-size-sm-line-height)]\",\n base: \"text-[length:var(--text-size-base-font-size)] leading-[var(--text-size-base-line-height)]\",\n lg: \"text-[length:var(--text-size-lg-font-size)] leading-[var(--text-size-lg-line-height)]\",\n xl: \"text-[length:var(--text-size-xl-font-size)] leading-[var(--text-size-xl-line-height)]\",\n \"2xl\": \"text-[length:var(--text-size-2xl-font-size)] leading-[var(--text-size-2xl-line-height)]\",\n \"3xl\": \"text-[length:var(--text-size-3xl-font-size)] leading-[var(--text-size-3xl-line-height)]\",\n \"4xl\": \"text-[length:var(--text-size-4xl-font-size)] leading-[var(--text-size-4xl-line-height)]\",\n },\n weight: {\n normal: \"font-[var(--text-weight-normal)]\",\n medium: \"font-[var(--text-weight-medium)]\",\n semibold: \"font-[var(--text-weight-semibold)]\",\n bold: \"font-[var(--text-weight-bold)]\",\n },\n color: {\n // Emits the default color (not \"\") so `color=\"default\"` actively RESETS the\n // baked color of legacy muted variants (lead/small/muted) — review fix.\n default: \"text-[color:var(--text-color-default)]\",\n muted: \"text-[color:var(--text-color-muted)]\",\n },\n },\n defaultVariants: {\n variant: \"body\",\n },\n})\n\ntype TextElement =\n | \"code\"\n | \"div\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"label\"\n | \"p\"\n | \"span\"\n\ninterface TextProps\n extends Omit<React.HTMLAttributes<HTMLElement>, \"color\">,\n VariantProps<typeof textVariants> {\n as?: TextElement\n asChild?: boolean\n /** HTML for attribute, used when as=\"label\" */\n htmlFor?: string\n truncate?: boolean\n}\n\nconst PARAGRAPH_VARIANTS = new Set<NonNullable<TextProps[\"variant\"]>>([\n \"p1\",\n \"p2\",\n \"p3\",\n \"display1\",\n \"display2\",\n \"display3\",\n])\n\nfunction Text({\n className,\n variant,\n size,\n weight,\n color,\n as,\n asChild = false,\n truncate = false,\n children,\n ...props\n}: TextProps) {\n const fallbackElement: TextElement =\n variant === \"code\"\n ? \"code\"\n : variant && PARAGRAPH_VARIANTS.has(variant)\n ? \"p\"\n : truncate\n ? \"p\"\n : \"span\"\n const inferredElement: TextElement = as ?? fallbackElement\n const Comp = asChild ? Slot : inferredElement\n\n return (\n <Comp\n className={cn(\n textVariants({ variant, size, weight, color }),\n truncate && \"truncate\",\n className\n )}\n data-slot=\"text\"\n {...props}\n >\n {children}\n </Comp>\n )\n}\n\nexport { Text, type TextElement, type TextProps, textVariants }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/RadarChart/RadarChart.tsx"],"names":["RechartsRadarChart"],"mappings":";;;;;AAcA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,SAAA;AAAA,EACX,QAAA,GAAW,IAAA;AAAA,EACX,QAAA,GAAW,IAAA;AAAA,EACX,WAAA,GAAc,GAAA;AAAA,EACd,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,uBACE,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EAAG,MAAA,EAAiB,GAAG,KAAA,EAC7E,QAAA,kBAAA,IAAA,CAACA,YAAA,EAAA,EAAmB,IAAA,EACjB,QAAA,EAAA;AAAA,IAAA,QAAA,wBAAa,SAAA,EAAA,EAAU,CAAA;AAAA,oBACxB,GAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAS,QAAA,EAAU,CAAA;AAAA,oBACnC,GAAA,CAAC,YAAA,EAAA,EAAa,OAAA,kBAAS,GAAA,CAAC,uBAAoB,CAAA,EAAI,CAAA;AAAA,IAC/C,QAAA,CAAS,GAAA,CAAI,CAAC,GAAA,qBACb,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QAEC,OAAA,EAAS,GAAA;AAAA,QACT,GAAA,EAAK,QAAA,GAAW,EAAE,CAAA,EAAG,GAAE,GAAI,KAAA;AAAA,QAC3B,IAAA,EAAM,eAAe,GAAG,CAAA,CAAA,CAAA;AAAA,QACxB,WAAA;AAAA,QACA,MAAA,EAAQ,eAAe,GAAG,CAAA,CAAA;AAAA,OAAA;AAAA,MALrB;AAAA,KAOR;AAAA,GAAA,EACH,CAAA,EACF,CAAA;AAEJ","file":"chunk-7XJQYAGY.js","sourcesContent":["\"use client\"\n\nimport type { RadarChartProps } from \"./RadarChart.types\"\n\nimport {\n PolarAngleAxis,\n PolarGrid,\n Radar,\n RadarChart as RechartsRadarChart,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { ChartContainer, ChartTooltip, ChartTooltipContent } from \"../Chart\"\n\nfunction RadarChart({\n className,\n config,\n data,\n dataKeys,\n angleKey = \"subject\",\n showGrid = true,\n showDots = true,\n fillOpacity = 0.3,\n ...props\n}: RadarChartProps) {\n return (\n <ChartContainer className={cn(\"aspect-square\", className)} config={config} {...props}>\n <RechartsRadarChart data={data}>\n {showGrid && <PolarGrid />}\n <PolarAngleAxis dataKey={angleKey} />\n <ChartTooltip content={<ChartTooltipContent />} />\n {dataKeys.map((key) => (\n <Radar\n key={key}\n dataKey={key}\n dot={showDots ? { r: 3 } : false}\n fill={`var(--color-${key})`}\n fillOpacity={fillOpacity}\n stroke={`var(--color-${key})`}\n />\n ))}\n </RechartsRadarChart>\n </ChartContainer>\n )\n}\n\nexport { RadarChart }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/primitives/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"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","file":"chunk-ELRIFGMN.js","sourcesContent":["import type {\n ButtonGroupContextValue,\n ButtonGroupItemProps,\n ButtonGroupProps,\n ButtonGroupSeparatorProps,\n ButtonGroupTextProps,\n} from \"./ButtonGroup.types\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../Divider\"\n\n/**\n * Context for ButtonGroup prop inheritance\n * Child buttons can use useButtonGroup() to access group-level props\n */\nconst ButtonGroupContext = React.createContext<ButtonGroupContextValue | null>(null)\n\n/**\n * Hook to access ButtonGroup context values\n * Returns null if not inside a ButtonGroup\n */\nfunction useButtonGroup(): ButtonGroupContextValue | null {\n return React.use(ButtonGroupContext)\n}\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2\",\n {\n variants: {\n variant: {\n default: \"\",\n segmented:\n \"border border-[color:var(--button-group-root-border-color-default)] rounded-[var(--button-group-root-radius)] shadow-[var(--button-group-root-shadow)] overflow-clip isolate [&>*:not(:first-child)]:rounded-none [&>*:first-child]:rounded-l-[var(--button-group-root-radius)] [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-r-[var(--button-group-root-radius)] [&>*:last-child]:rounded-l-none\",\n primary:\n \"border border-[color:var(--button-group-root-border-color-primary)] bg-[color:var(--button-group-root-bg-primary)] text-[color:var(--button-group-root-fg-primary)] rounded-[var(--button-group-root-radius)] shadow-[var(--button-group-root-shadow)] overflow-clip isolate [&>*:not(:first-child)]:rounded-none [&>*:first-child]:rounded-l-[var(--button-group-root-radius)] [&>*:first-child]:rounded-r-none [&>*:last-child]:rounded-r-[var(--button-group-root-radius)] [&>*:last-child]:rounded-l-none\",\n },\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n compoundVariants: [\n // Segmented variant removes default border handling (items have their own dividers)\n {\n variant: \"segmented\",\n orientation: \"horizontal\",\n className:\n \"[&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:border-r [&>*:not(:last-child)]:border-border\",\n },\n {\n variant: \"segmented\",\n orientation: \"vertical\",\n className:\n \"[&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:border-b [&>*:not(:last-child)]:border-border\",\n },\n ],\n defaultVariants: {\n variant: \"default\",\n orientation: \"horizontal\",\n },\n }\n)\n\nconst buttonGroupItemVariants = cva(\n \"inline-flex items-center justify-center gap-[var(--button-group-item-gap)] leading-[length:var(--button-group-item-line-height)] font-[var(--button-group-item-font-weight)] transition-colors outline-none whitespace-nowrap [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-5 [&_svg]:shrink-0 focus-visible:z-10 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset disabled:pointer-events-none disabled:text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"h-[var(--button-group-item-height-sm)] text-[length:var(--button-group-item-font-size-sm)]\",\n md: \"h-[var(--button-group-item-height-md)] text-[length:var(--button-group-item-font-size-md)]\",\n lg: \"h-[var(--button-group-item-height-lg)] text-[length:var(--button-group-item-font-size-lg)]\",\n },\n iconMode: {\n none: \"\",\n leading: \"\",\n dot: \"\",\n only: \"\",\n },\n current: {\n true: \"bg-[color:var(--button-group-item-background-active)]\",\n false: \"bg-[color:var(--button-group-item-background)] hover:bg-[color:var(--button-group-item-background-hover)]\",\n },\n },\n compoundVariants: [\n // Padding pairs per size × iconMode (only is icon-only, gets symmetric px)\n { size: \"sm\", iconMode: \"none\", className: \"px-[var(--button-group-item-padding-x-sm)] py-[var(--button-group-item-padding-y-sm)]\" },\n { size: \"sm\", iconMode: \"leading\", className: \"pl-2.5 pr-[var(--button-group-item-padding-x-sm)] py-[var(--button-group-item-padding-y-sm)]\" },\n { size: \"sm\", iconMode: \"dot\", className: \"px-[var(--button-group-item-padding-x-sm)] py-[var(--button-group-item-padding-y-sm)]\" },\n { size: \"sm\", iconMode: \"only\", className: \"px-2 py-[var(--button-group-item-padding-y-sm)]\" },\n { size: \"md\", iconMode: \"none\", className: \"px-[var(--button-group-item-padding-x-md)] py-[var(--button-group-item-padding-y-md)]\" },\n { size: \"md\", iconMode: \"leading\", className: \"pl-3 pr-[var(--button-group-item-padding-x-md)] py-[var(--button-group-item-padding-y-md)]\" },\n { size: \"md\", iconMode: \"dot\", className: \"px-[var(--button-group-item-padding-x-md)] py-[var(--button-group-item-padding-y-md)]\" },\n { size: \"md\", iconMode: \"only\", className: \"px-2.5 py-[var(--button-group-item-padding-y-md)]\" },\n { size: \"lg\", iconMode: \"none\", className: \"px-[var(--button-group-item-padding-x-lg)] py-[var(--button-group-item-padding-y-lg)]\" },\n { size: \"lg\", iconMode: \"leading\", className: \"pl-3.5 pr-[var(--button-group-item-padding-x-lg)] py-[var(--button-group-item-padding-y-lg)]\" },\n { size: \"lg\", iconMode: \"dot\", className: \"px-[var(--button-group-item-padding-x-lg)] py-[var(--button-group-item-padding-y-lg)]\" },\n { size: \"lg\", iconMode: \"only\", className: \"px-3 py-[var(--button-group-item-padding-y-lg)]\" },\n ],\n defaultVariants: {\n size: \"md\",\n iconMode: \"none\",\n current: false,\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n variant,\n size,\n buttonVariant,\n disabled,\n children,\n ...props\n}: ButtonGroupProps) {\n const contextValue = React.useMemo<ButtonGroupContextValue>(\n () => ({ size, buttonVariant, disabled }),\n [size, buttonVariant, disabled]\n )\n\n return (\n <ButtonGroupContext value={contextValue}>\n <div\n className={cn(buttonGroupVariants({ orientation, variant }), className)}\n data-orientation={orientation}\n data-slot=\"button-group\"\n data-variant={variant}\n role=\"group\"\n {...props}\n >\n {children}\n </div>\n </ButtonGroupContext>\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: ButtonGroupTextProps) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-[color:var(--button-group-text-background)] flex items-center gap-2 rounded-[var(--button-group-root-radius)] border px-[var(--button-group-text-padding-x)] text-[length:var(--button-group-text-font-size)] font-[var(--button-group-text-font-weight)] shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n data-slot=\"button-group-text\"\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: ButtonGroupSeparatorProps) {\n return (\n <Divider\n className={cn(\n \"bg-[color:var(--button-group-separator-color)] relative !m-0 self-stretch data-[orientation=vertical]:h-auto\",\n className\n )}\n data-slot=\"button-group-separator\"\n orientation={orientation}\n {...props}\n />\n )\n}\n\n/**\n * ButtonGroupItem - Individual segment in a segmented button group\n * Use within ButtonGroup variant=\"segmented\"\n */\nfunction ButtonGroupItem({\n className,\n current = false,\n iconMode = \"none\",\n icon,\n dot,\n children,\n disabled,\n size = \"md\",\n ...props\n}: ButtonGroupItemProps) {\n // Determine effective icon mode based on props\n const effectiveIconMode = icon && !children ? \"only\" : dot ? \"dot\" : icon ? \"leading\" : iconMode\n\n return (\n <button\n className={cn(\n buttonGroupItemVariants({\n size,\n iconMode: effectiveIconMode,\n current,\n }),\n className\n )}\n data-current={current}\n data-slot=\"button-group-item\"\n disabled={disabled}\n type=\"button\"\n {...props}\n >\n {/* Status dot */}\n {dot && (\n <span\n className={cn(\n \"size-2 rounded-full shrink-0\",\n typeof dot === \"string\" ? dot : \"bg-success\"\n )}\n data-slot=\"button-group-item-dot\"\n />\n )}\n\n {/* Leading icon */}\n {icon && effectiveIconMode !== \"dot\" && (\n <span className=\"shrink-0\" data-slot=\"button-group-item-icon\">\n {icon}\n </span>\n )}\n\n {/* Text content */}\n {children && effectiveIconMode !== \"only\" && (\n <span data-slot=\"button-group-item-text\">{children}</span>\n )}\n </button>\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupContext,\n ButtonGroupItem,\n buttonGroupItemVariants,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n useButtonGroup,\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/BarChart/BarChart.tsx"],"names":["data","props","RechartsBarChart"],"mappings":"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","file":"chunk-EO4NGM5W.js","sourcesContent":["\"use client\"\n\nimport type {\n BarChartProps,\n BarChartSeriesConfig,\n} from \"./BarChart.types\"\n\nimport * as React from \"react\"\nimport {\n Bar,\n CartesianGrid,\n Label,\n LabelList,\n BarChart as RechartsBarChart,\n XAxis,\n YAxis,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\n\n/**\n * Normalize series to BarChartSeriesConfig format\n */\nfunction normalizeSeriesConfig(\n series: (BarChartSeriesConfig | string)[]\n): BarChartSeriesConfig[] {\n return series.map((s) =>\n typeof s === \"string\" ? { dataKey: s } : s\n )\n}\n\n/**\n * BarChart - Data visualization component for categorical comparisons\n *\n * Displays quantitative values as rectangular bars. The height or width\n * of bars is proportional to the values they represent. Ideal for\n * comparing values between categories.\n *\n * @example\n * ```tsx\n * const data = [\n * { month: \"Jan\", desktop: 186, mobile: 80 },\n * { month: \"Feb\", desktop: 305, mobile: 200 },\n * ]\n *\n * const config = {\n * desktop: { label: \"Desktop\", color: \"hsl(var(--chart-1))\" },\n * mobile: { label: \"Mobile\", color: \"hsl(var(--chart-2))\" },\n * }\n *\n * <BarChart\n * data={data}\n * config={config}\n * xAxisKey=\"month\"\n * series={[\"desktop\", \"mobile\"]}\n * />\n * ```\n */\ninterface BarValueLabelProps {\n height?: number | string\n value?: number | string\n width?: number | string\n x?: number | string\n y?: number | string\n}\n\nfunction renderBarValueLabel(\n isHorizontal: boolean,\n formatter?: (value: number) => string\n) {\n return function BarValueLabel(labelProps: unknown) {\n const props = labelProps as BarValueLabelProps\n if (props.value == null) return null\n const value = Number(props.value)\n const height = Number(props.height ?? 0)\n const width = Number(props.width ?? 0)\n const x = Number(props.x ?? 0)\n const y = Number(props.y ?? 0)\n const text = formatter ? formatter(value) : String(props.value)\n const negative = value < 0\n // barra de tamanho zero não ganha rótulo (diverging: cada mês zera um lado)\n if ((isHorizontal ? width : height) === 0) return null\n if (isHorizontal) {\n return (\n <text\n className=\"fill-foreground text-xs\"\n dominantBaseline=\"central\"\n textAnchor={negative ? \"end\" : \"start\"}\n x={negative ? x - 6 : x + width + 6}\n y={y + height / 2}\n >\n {text}\n </text>\n )\n }\n return (\n <text\n className=\"fill-foreground text-xs\"\n textAnchor=\"middle\"\n x={x + width / 2}\n y={negative ? y + height + 14 : Math.max(y - 6, 12)}\n >\n {text}\n </text>\n )\n }\n}\n\nexport function BarChart({\n allowDecimals = true,\n ariaLabel,\n autoMinValue = false,\n barCategoryGap,\n barGap = 4,\n className,\n config,\n customTooltip,\n data,\n enableLegendSlider = false,\n gridDashArray = \"3 3\",\n intervalType,\n layout = \"vertical\",\n legendPosition = \"bottom\",\n maxValue,\n minValue,\n onValueChange,\n radius = 4,\n series,\n showGrid = true,\n showLegend = false,\n showValueLabels = false,\n showTooltip = true,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n tickGap,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n variant = \"default\",\n xAxisKey,\n xAxisLabel,\n xAxisTickFormatter,\n yAxisLabel,\n yAxisTickFormatter,\n yAxisWidth,\n ...props\n}: BarChartProps) {\n const normalizedSeries = normalizeSeriesConfig(series)\n const isStacked = variant === \"stacked\" || variant === \"stacked100\"\n const isHorizontal = layout === \"horizontal\"\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n // Handle bar click for onValueChange\n const handleBarClick = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (dataKey: string) => (data: any) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!onValueChange || !data?.payload) return\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const payload = data.payload as Record<string, unknown>\n const value = payload[dataKey]\n onValueChange({\n category: payload[xAxisKey],\n dataKey,\n payload,\n value: typeof value === \"number\" ? value : 0,\n })\n },\n [onValueChange, xAxisKey]\n )\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, label, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n label,\n payload: payload?.map((p: { dataKey: number | string; payload: Record<string, unknown>; value: number; }) => ({\n dataKey: String(p.dataKey),\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return <ChartTooltipContent indicator={tooltipIndicator} {...props} />\n },\n [tooltipCallback, tooltipIndicator]\n )\n\n // Calculate value axis domain\n const valueDomain = React.useMemo(() => {\n const min = minValue ?? (autoMinValue ? \"auto\" : 0)\n const max = maxValue ?? \"auto\"\n return [min, max] as const\n }, [autoMinValue, maxValue, minValue])\n\n // Calculate category axis ticks for startEndOnly\n const categoryTicks = React.useMemo(() => {\n if (!startEndOnly || data.length < 2) return\n const first = data[0]\n const last = data[data.length - 1]\n if (!first || !last) return\n return [first[xAxisKey], last[xAxisKey]] as string[]\n }, [data, startEndOnly, xAxisKey])\n\n return (\n <div\n aria-label={ariaLabel}\n data-slot=\"bar-chart\"\n role={ariaLabel ? \"img\" : undefined}\n {...props}\n >\n <ChartContainer\n className={cn(className)}\n config={config}\n >\n <RechartsBarChart\n accessibilityLayer\n margin={{\n left: yAxisLabel ? 20 : 12,\n right: 12,\n bottom: xAxisLabel ? 20 : 0,\n }}\n barCategoryGap={barCategoryGap}\n barGap={barGap}\n data={data}\n layout={isHorizontal ? \"vertical\" : \"horizontal\"}\n >\n {showGrid && (\n <CartesianGrid\n horizontal={!isHorizontal}\n strokeDasharray={gridDashArray}\n vertical={isHorizontal}\n />\n )}\n\n {showXAxis && (\n isHorizontal ? (\n <XAxis\n axisLine={false}\n domain={valueDomain}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n type=\"number\"\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n ) : (\n <XAxis\n axisLine={false}\n dataKey={xAxisKey}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={categoryTicks}\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n )\n )}\n\n {showYAxis && (\n isHorizontal ? (\n <YAxis\n axisLine={false}\n dataKey={xAxisKey}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={categoryTicks}\n type=\"category\"\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n ) : (\n <YAxis\n allowDecimals={allowDecimals}\n axisLine={false}\n domain={valueDomain}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n )\n )}\n\n {showTooltip && (\n <ChartTooltip\n content={\n customTooltip\n ?? (tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent indicator={tooltipIndicator} />)\n }\n cursor={false}\n />\n )}\n\n {showLegend && (\n <ChartLegend\n align={legendPosition === \"left\" ? \"left\" : legendPosition === \"right\" ? \"right\" : \"center\"}\n content={<ChartLegendContent enableSlider={enableLegendSlider} />}\n layout={legendPosition === \"left\" || legendPosition === \"right\" ? \"vertical\" : \"horizontal\"}\n verticalAlign={legendPosition === \"top\" ? \"top\" : legendPosition === \"bottom\" ? \"bottom\" : \"middle\"}\n />\n )}\n\n {normalizedSeries.map((seriesConfig) => {\n const { dataKey, radius: seriesRadius, stackId } = seriesConfig\n\n const fill = `var(--color-${dataKey})`\n const barRadius = seriesRadius ?? radius\n\n return (\n <Bar\n key={dataKey}\n dataKey={dataKey}\n fill={fill}\n radius={barRadius}\n stackId={isStacked ? \"bar-stack\" : stackId}\n style={onValueChange ? { cursor: \"pointer\" } : undefined}\n onClick={onValueChange ? handleBarClick(dataKey) : undefined}\n >\n {showValueLabels ? (\n <LabelList\n content={renderBarValueLabel(\n isHorizontal,\n typeof showValueLabels === \"object\" ? showValueLabels.formatter : undefined\n )}\n dataKey={dataKey}\n />\n ) : null}\n </Bar>\n )\n })}\n </RechartsBarChart>\n </ChartContainer>\n </div>\n )\n}\n\nBarChart.displayName = \"BarChart\"\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/KPICard/KPICard.tsx"],"names":[],"mappings":"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","file":"chunk-GLHKHYJY.js","sourcesContent":["import type {\n KPICardGroupProps,\n KPICardProps,\n KPICardTrend,\n} from \"./KPICard.types\"\n\nimport { ArrowDown, ArrowUp, Minus } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from \"../../layout/Card\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { ProgressBar } from \"../../primitives/ProgressBar\"\nimport { SkeletonLoader } from \"../../primitives/SkeletonLoader\"\nimport { Sparkline } from \"../Sparkline\"\n\n/**\n * Size configuration for typography\n */\nconst sizeConfig = {\n sm: {\n value: \"text-[length:var(--kpi-card-value-size-sm)] font-[number:var(--kpi-card-value-weight)]\",\n padding: \"p-4\",\n },\n md: {\n value: \"text-[length:var(--kpi-card-value-size-md)] font-[number:var(--kpi-card-value-weight)]\",\n padding: \"p-6\",\n },\n lg: {\n value: \"text-[length:var(--kpi-card-value-size-lg)] font-[number:var(--kpi-card-value-weight)]\",\n padding: \"p-6\",\n },\n} as const\n\n/**\n * Trend icons mapping\n */\nconst TrendIcons = {\n up: ArrowUp,\n down: ArrowDown,\n neutral: Minus,\n} as const\n\n/**\n * Trend colors mapping using design tokens\n */\nconst trendColors = {\n up: \"text-success\",\n down: \"text-destructive\",\n neutral: \"text-muted-foreground\",\n} as const\n\n/**\n * KPICard - Key Performance Indicator Card\n *\n * Dashboard component that displays important metrics prominently.\n * Combines main value, comparison/delta, mini chart, and contextual metadata\n * in a layout optimized for quick visualization.\n *\n * @example\n * ```tsx\n * <KPICard\n * title=\"Revenue\"\n * value=\"$45,231.89\"\n * delta={20.1}\n * deltaLabel=\"from last month\"\n * />\n * ```\n */\nfunction KPICard({\n title,\n value,\n delta,\n deltaLabel,\n trend,\n sparkline,\n icon,\n featuredIcon,\n dropdownIcon,\n helpText,\n progressBar,\n swap,\n showBadge = true,\n action,\n variant = \"default\",\n size = \"md\",\n loading = false,\n className,\n ...props\n}: KPICardProps) {\n // Auto-detect trend direction if not provided\n const computedTrend: KPICardTrend = trend ?? (delta !== undefined\n ? delta > 0 ? \"up\" : delta < 0 ? \"down\" : \"neutral\"\n : \"neutral\")\n\n const TrendIcon = TrendIcons[computedTrend]\n const trendColor = trendColors[computedTrend]\n const sizeStyles = sizeConfig[size]\n const sparklineColor =\n computedTrend === \"up\"\n ? \"var(--kpi-card-sparkline-up)\"\n : computedTrend === \"down\"\n ? \"var(--kpi-card-sparkline-down)\"\n : \"var(--kpi-card-sparkline-neutral)\"\n\n // Variant styles\n const variantStyles = {\n default: \"\",\n ghost: \"border-none shadow-none bg-transparent\",\n highlight: \"border-primary/50 bg-primary/5\",\n }\n\n if (loading) {\n return (\n <Card\n className={cn(variantStyles[variant], className)}\n data-slot=\"kpi-card\"\n {...props}\n >\n <CardHeader className=\"flex flex-row items-center justify-between pb-2\">\n <SkeletonLoader className=\"h-4 w-24\" />\n <SkeletonLoader className=\"size-4\" />\n </CardHeader>\n <CardContent>\n <SkeletonLoader className=\"mb-2 h-8 w-32\" />\n <SkeletonLoader className=\"h-4 w-20\" />\n </CardContent>\n </Card>\n )\n }\n\n return (\n <Card\n className={cn(variantStyles[variant], className)}\n data-slot=\"kpi-card\"\n {...props}\n >\n <CardHeader className=\"flex flex-row items-center justify-between pb-2\">\n <div className=\"flex items-center gap-1.5\">\n <CardTitle className=\"text-sm font-medium text-muted-foreground\">\n {title}\n </CardTitle>\n {helpText && (\n <span\n className=\"text-xs text-muted-foreground\"\n data-slot=\"kpi-card-help-text\"\n >\n {helpText}\n </span>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {featuredIcon && (\n <span\n className=\"inline-flex size-10 items-center justify-center rounded-full bg-primary/10 text-primary [&_svg]:size-5\"\n data-slot=\"kpi-card-featured-icon\"\n >\n {featuredIcon}\n </span>\n )}\n {icon && !featuredIcon && (\n <span className=\"text-muted-foreground\" data-slot=\"kpi-card-icon\">\n {icon}\n </span>\n )}\n {dropdownIcon && (\n <span\n className=\"text-muted-foreground\"\n data-slot=\"kpi-card-dropdown-icon\"\n >\n {dropdownIcon}\n </span>\n )}\n {action && !icon && !featuredIcon && !dropdownIcon && (\n <span data-slot=\"kpi-card-action\">{action}</span>\n )}\n </div>\n </CardHeader>\n <CardContent>\n <div className=\"flex items-end justify-between\">\n <div>\n <div\n className={cn(sizeStyles.value, \"tabular-nums\")}\n data-slot=\"kpi-card-value\"\n >\n {value}\n </div>\n {delta !== undefined && (\n <div\n className={cn(\"mt-1 flex items-center gap-2\", trendColor)}\n data-slot=\"kpi-card-delta\"\n data-trend={computedTrend}\n >\n {showBadge ? (\n <Badge\n color={\n computedTrend === \"up\"\n ? \"success\"\n : computedTrend === \"down\"\n ? \"destructive\"\n : \"muted\"\n }\n leadingIcon={<TrendIcon aria-hidden=\"true\" />}\n size=\"sm\"\n type=\"pill-color\"\n >\n {Math.abs(delta)}%\n </Badge>\n ) : (\n <span className={cn(\"flex items-center text-xs\", trendColor)}>\n <TrendIcon aria-hidden=\"true\" className=\"mr-1 size-3\" />\n <span className=\"font-medium\">{Math.abs(delta)}%</span>\n </span>\n )}\n {deltaLabel && (\n <span className=\"text-xs text-muted-foreground\">\n {deltaLabel}\n </span>\n )}\n {swap && (\n <span className=\"ml-auto\" data-slot=\"kpi-card-swap\">\n {swap}\n </span>\n )}\n </div>\n )}\n </div>\n {sparkline && sparkline.length > 0 && (\n <Sparkline\n aria-hidden=\"true\"\n color={sparklineColor}\n data={sparkline}\n data-slot=\"kpi-card-sparkline\"\n height={32}\n style={{ opacity: \"var(--kpi-card-sparkline-opacity)\" }}\n variant=\"bar\"\n width={96}\n />\n )}\n </div>\n {progressBar !== undefined && (\n <div className=\"mt-3\" data-slot=\"kpi-card-progress\">\n {typeof progressBar === \"number\" ? (\n <ProgressBar value={progressBar} />\n ) : (\n progressBar\n )}\n </div>\n )}\n </CardContent>\n {/* Screen reader summary */}\n <span className=\"sr-only\">\n {title}: {value}\n {delta !== undefined && `, ${computedTrend === \"up\" ? \"up\" : computedTrend === \"down\" ? \"down\" : \"unchanged\"} ${String(Math.abs(delta))}%`}\n {deltaLabel && ` ${deltaLabel}`}\n </span>\n </Card>\n )\n}\n\n/**\n * KPICardGroup — Multiple KPIs composition (Figma Type=Multiple KPIs)\n *\n * Wrapper que diagramra múltiplos `KPICard` em layout horizontal ou vertical.\n *\n * @example\n * ```tsx\n * <KPICardGroup orientation=\"horizontal\" gap=\"md\">\n * <KPICard title=\"Revenue\" value=\"$45k\" delta={12} />\n * <KPICard title=\"Orders\" value={1240} delta={-3} />\n * <KPICard title=\"Users\" value={892} delta={8} />\n * </KPICardGroup>\n * ```\n */\nfunction KPICardGroup({\n children,\n orientation = \"horizontal\",\n gap = \"md\",\n className,\n ...props\n}: KPICardGroupProps) {\n const gapClasses = {\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n } as const\n\n return (\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\"\n ? \"flex-row [&>*]:flex-1\"\n : \"flex-col\",\n gapClasses[gap],\n className\n )}\n data-orientation={orientation}\n data-slot=\"kpi-card-group\"\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport { KPICard, KPICardGroup }\n"]}