erp-pro-ui 0.2.5 → 0.2.7

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 (482) hide show
  1. package/dist/accordion.cjs +1 -1
  2. package/dist/accordion.mjs +1 -1
  3. package/dist/alert.cjs +1 -1
  4. package/dist/alert.mjs +1 -1
  5. package/dist/animated-content.cjs +1 -1
  6. package/dist/animated-content.mjs +1 -1
  7. package/dist/ascii-text.cjs +1 -1
  8. package/dist/ascii-text.mjs +1 -1
  9. package/dist/background-gradient-animation.cjs +1 -1
  10. package/dist/background-gradient-animation.mjs +1 -1
  11. package/dist/button-hover-border-gradient.cjs +1 -1
  12. package/dist/button-hover-border-gradient.mjs +1 -1
  13. package/dist/button.cjs +1 -1
  14. package/dist/button.mjs +1 -1
  15. package/dist/calendar.cjs +1 -1
  16. package/dist/calendar.mjs +1 -1
  17. package/dist/card.cjs +1 -1
  18. package/dist/card.mjs +1 -1
  19. package/dist/carousel.cjs +1 -1
  20. package/dist/carousel.mjs +1 -1
  21. package/dist/catalog.cjs +21 -0
  22. package/dist/catalog.cjs.map +1 -1
  23. package/dist/catalog.d.ts +37 -1
  24. package/dist/catalog.d.ts.map +1 -1
  25. package/dist/catalog.mjs +21 -0
  26. package/dist/catalog.mjs.map +1 -1
  27. package/dist/charts.cjs +1 -1
  28. package/dist/charts.mjs +1 -1
  29. package/dist/checkbox.cjs +1 -1
  30. package/dist/checkbox.mjs +1 -1
  31. package/dist/chip.cjs +1 -1
  32. package/dist/chip.mjs +1 -1
  33. package/dist/chroma-grid.cjs +1 -1
  34. package/dist/chroma-grid.mjs +1 -1
  35. package/dist/chunks/{drawer-DaoAXL-w.mjs → Drawer-BhTTQV8Q.mjs} +2 -2
  36. package/dist/chunks/{drawer-DaoAXL-w.mjs.map → Drawer-BhTTQV8Q.mjs.map} +1 -1
  37. package/dist/chunks/{drawer-D07dGN6R.cjs → Drawer-C_DLqrus.cjs} +2 -3
  38. package/dist/chunks/{drawer-D07dGN6R.cjs.map → Drawer-C_DLqrus.cjs.map} +1 -1
  39. package/dist/chunks/{DropdownMenu-BtTOri-A.mjs → DropdownMenu-B18BI5l7.mjs} +2 -2
  40. package/dist/chunks/{DropdownMenu-BtTOri-A.mjs.map → DropdownMenu-B18BI5l7.mjs.map} +1 -1
  41. package/dist/chunks/{DropdownMenu-BDrNYO-D.cjs → DropdownMenu-CEmlmX7P.cjs} +2 -3
  42. package/dist/chunks/{DropdownMenu-BDrNYO-D.cjs.map → DropdownMenu-CEmlmX7P.cjs.map} +1 -1
  43. package/dist/chunks/{HoverBorderGradient-NbdXeLgC.mjs → HoverBorderGradient-CGKcviEd.mjs} +2 -2
  44. package/dist/chunks/{HoverBorderGradient-NbdXeLgC.mjs.map → HoverBorderGradient-CGKcviEd.mjs.map} +1 -1
  45. package/dist/chunks/{HoverBorderGradient-9pfvBoHR.cjs → HoverBorderGradient-DTKasFZO.cjs} +2 -3
  46. package/dist/chunks/{HoverBorderGradient-9pfvBoHR.cjs.map → HoverBorderGradient-DTKasFZO.cjs.map} +1 -1
  47. package/dist/chunks/{SunToMoonButton-BkEfkElJ.mjs → SunToMoonButton-DIMK53fW.mjs} +2 -2
  48. package/dist/chunks/{SunToMoonButton-BkEfkElJ.mjs.map → SunToMoonButton-DIMK53fW.mjs.map} +1 -1
  49. package/dist/chunks/{SunToMoonButton-jS4BJD9q.cjs → SunToMoonButton-DUuIqw22.cjs} +2 -3
  50. package/dist/chunks/{SunToMoonButton-jS4BJD9q.cjs.map → SunToMoonButton-DUuIqw22.cjs.map} +1 -1
  51. package/dist/chunks/{Tooltip-DD30yj3A.cjs → Tooltip-1yPGRJ2Q.cjs} +10 -8
  52. package/dist/chunks/Tooltip-1yPGRJ2Q.cjs.map +1 -0
  53. package/dist/chunks/{Tooltip-DK3B879v.mjs → Tooltip-CEj-I4JO.mjs} +10 -7
  54. package/dist/chunks/Tooltip-CEj-I4JO.mjs.map +1 -0
  55. package/dist/chunks/{accordion-6zxJUYXr.mjs → accordion-Cf-Q3rec.mjs} +2 -2
  56. package/dist/chunks/{accordion-6zxJUYXr.mjs.map → accordion-Cf-Q3rec.mjs.map} +1 -1
  57. package/dist/chunks/{accordion-CmB6EidC.cjs → accordion-X4PNqWkW.cjs} +2 -3
  58. package/dist/chunks/{accordion-CmB6EidC.cjs.map → accordion-X4PNqWkW.cjs.map} +1 -1
  59. package/dist/chunks/{alert-C5KEeQqh.cjs → alert-BEMULPIi.cjs} +2 -3
  60. package/dist/chunks/{alert-C5KEeQqh.cjs.map → alert-BEMULPIi.cjs.map} +1 -1
  61. package/dist/chunks/{alert-XVmYJgds.mjs → alert-GImBqaCY.mjs} +2 -2
  62. package/dist/chunks/{alert-XVmYJgds.mjs.map → alert-GImBqaCY.mjs.map} +1 -1
  63. package/dist/chunks/{animated-content-bK6xp-vc.mjs → animated-content-Bp-Yt0_7.mjs} +1 -1
  64. package/dist/chunks/{animated-content-bK6xp-vc.mjs.map → animated-content-Bp-Yt0_7.mjs.map} +1 -1
  65. package/dist/chunks/{animated-content-CLsFnjgr.cjs → animated-content-tSHXDZq2.cjs} +1 -2
  66. package/dist/chunks/{animated-content-CLsFnjgr.cjs.map → animated-content-tSHXDZq2.cjs.map} +1 -1
  67. package/dist/chunks/{ascii-text-BFnpVur6.cjs → ascii-text-Ctua6ucZ.cjs} +2 -2
  68. package/dist/chunks/{ascii-text-BFnpVur6.cjs.map → ascii-text-Ctua6ucZ.cjs.map} +1 -1
  69. package/dist/chunks/{ascii-text-Bdy4C5rU.mjs → ascii-text-QyP7JU7g.mjs} +1 -1
  70. package/dist/chunks/{ascii-text-Bdy4C5rU.mjs.map → ascii-text-QyP7JU7g.mjs.map} +1 -1
  71. package/dist/chunks/{background-gradient-animation-BR9wx6Z8.mjs → background-gradient-animation-CZUD_aq2.mjs} +2 -2
  72. package/dist/chunks/{background-gradient-animation-BR9wx6Z8.mjs.map → background-gradient-animation-CZUD_aq2.mjs.map} +1 -1
  73. package/dist/chunks/{background-gradient-animation-CiNdmA61.cjs → background-gradient-animation-PvM0i88k.cjs} +2 -3
  74. package/dist/chunks/{background-gradient-animation-CiNdmA61.cjs.map → background-gradient-animation-PvM0i88k.cjs.map} +1 -1
  75. package/dist/chunks/{button-A6UTvrOu.mjs → button-CAU9ej3h.mjs} +3 -2
  76. package/dist/chunks/button-CAU9ej3h.mjs.map +1 -0
  77. package/dist/chunks/{button-C4MXPxsC.cjs → button-D2ZYmVda.cjs} +3 -3
  78. package/dist/chunks/button-D2ZYmVda.cjs.map +1 -0
  79. package/dist/chunks/{button-hover-border-gradient-ssmwU5-U.cjs → button-hover-border-gradient-D12Zjmd3.cjs} +2 -3
  80. package/dist/chunks/{button-hover-border-gradient-ssmwU5-U.cjs.map → button-hover-border-gradient-D12Zjmd3.cjs.map} +1 -1
  81. package/dist/chunks/{button-hover-border-gradient-DnFvjNNw.mjs → button-hover-border-gradient-VNEg4V0o.mjs} +2 -2
  82. package/dist/chunks/{button-hover-border-gradient-DnFvjNNw.mjs.map → button-hover-border-gradient-VNEg4V0o.mjs.map} +1 -1
  83. package/dist/chunks/calendar-BlUhssD4.mjs +203 -0
  84. package/dist/chunks/calendar-BlUhssD4.mjs.map +1 -0
  85. package/dist/chunks/calendar-CdKKhdx5.cjs +208 -0
  86. package/dist/chunks/calendar-CdKKhdx5.cjs.map +1 -0
  87. package/dist/chunks/{card-RrT68nvu.cjs → card-C_Qr7E6E.cjs} +1 -2
  88. package/dist/chunks/{card-RrT68nvu.cjs.map → card-C_Qr7E6E.cjs.map} +1 -1
  89. package/dist/chunks/{card-BId1_zHw.mjs → card-DYHDNCPK.mjs} +1 -1
  90. package/dist/chunks/{card-BId1_zHw.mjs.map → card-DYHDNCPK.mjs.map} +1 -1
  91. package/dist/chunks/{carousel-Cv0m1Pp5.cjs → carousel-DtOJEbEU.cjs} +4 -5
  92. package/dist/chunks/{carousel-Cv0m1Pp5.cjs.map → carousel-DtOJEbEU.cjs.map} +1 -1
  93. package/dist/chunks/{carousel-Dd4rp-jr.mjs → carousel-eeqWZZHE.mjs} +4 -4
  94. package/dist/chunks/{carousel-Dd4rp-jr.mjs.map → carousel-eeqWZZHE.mjs.map} +1 -1
  95. package/dist/chunks/chartStyles-2mTluDoo.cjs +108 -0
  96. package/dist/chunks/chartStyles-2mTluDoo.cjs.map +1 -0
  97. package/dist/chunks/chartStyles-DrHVYS5N.mjs +55 -0
  98. package/dist/chunks/chartStyles-DrHVYS5N.mjs.map +1 -0
  99. package/dist/chunks/{charts-BmIV-mJy.cjs → charts-DMu4zp8j.cjs} +43 -94
  100. package/dist/chunks/charts-DMu4zp8j.cjs.map +1 -0
  101. package/dist/chunks/{charts-DkVu0rFc.mjs → charts-DlskmT1J.mjs} +3 -54
  102. package/dist/chunks/charts-DlskmT1J.mjs.map +1 -0
  103. package/dist/chunks/{checkbox-3aB7XC9_.mjs → checkbox-D7EJQbqC.mjs} +1 -1
  104. package/dist/chunks/{checkbox-3aB7XC9_.mjs.map → checkbox-D7EJQbqC.mjs.map} +1 -1
  105. package/dist/chunks/{checkbox-D8ivRZ1x.cjs → checkbox-Lw2UqyNE.cjs} +1 -2
  106. package/dist/chunks/{checkbox-D8ivRZ1x.cjs.map → checkbox-Lw2UqyNE.cjs.map} +1 -1
  107. package/dist/chunks/{chip-B0YzBwkz.cjs → chip-D5i9VT9O.cjs} +4 -5
  108. package/dist/chunks/{chip-B0YzBwkz.cjs.map → chip-D5i9VT9O.cjs.map} +1 -1
  109. package/dist/chunks/{chip-CqcdcSs2.mjs → chip-DBlSQcqR.mjs} +4 -4
  110. package/dist/chunks/{chip-CqcdcSs2.mjs.map → chip-DBlSQcqR.mjs.map} +1 -1
  111. package/dist/chunks/{chroma-grid-DcZ9f4Ui.cjs → chroma-grid-CTDtdFUm.cjs} +2 -3
  112. package/dist/chunks/{chroma-grid-DcZ9f4Ui.cjs.map → chroma-grid-CTDtdFUm.cjs.map} +1 -1
  113. package/dist/chunks/{chroma-grid-opB2DBtS.mjs → chroma-grid-DuLTfGVP.mjs} +2 -2
  114. package/dist/chunks/{chroma-grid-opB2DBtS.mjs.map → chroma-grid-DuLTfGVP.mjs.map} +1 -1
  115. package/dist/chunks/{color-palette-pLh6En3n.cjs → color-palette-DQQ9UV0N.cjs} +2 -2
  116. package/dist/chunks/{color-palette-pLh6En3n.cjs.map → color-palette-DQQ9UV0N.cjs.map} +1 -1
  117. package/dist/chunks/{color-palette-C3lesasJ.mjs → color-palette-G1HUXWJP.mjs} +1 -1
  118. package/dist/chunks/{color-palette-C3lesasJ.mjs.map → color-palette-G1HUXWJP.mjs.map} +1 -1
  119. package/dist/chunks/{combobox-CtNrGmuR.cjs → combobox-CkNzH1YV.cjs} +6 -6
  120. package/dist/chunks/{combobox-CtNrGmuR.cjs.map → combobox-CkNzH1YV.cjs.map} +1 -1
  121. package/dist/chunks/{combobox-B6yk5U82.mjs → combobox-xNmFFHd6.mjs} +5 -5
  122. package/dist/chunks/{combobox-B6yk5U82.mjs.map → combobox-xNmFFHd6.mjs.map} +1 -1
  123. package/dist/chunks/dashboard-cards-Bww66_5K.cjs +6570 -0
  124. package/dist/chunks/dashboard-cards-Bww66_5K.cjs.map +1 -0
  125. package/dist/chunks/dashboard-cards-lnifLEyj.mjs +6385 -0
  126. package/dist/chunks/dashboard-cards-lnifLEyj.mjs.map +1 -0
  127. package/dist/chunks/{data-table-fAEuevPn.cjs → data-table-BCVbzkLo.cjs} +48 -37
  128. package/dist/chunks/data-table-BCVbzkLo.cjs.map +1 -0
  129. package/dist/chunks/{data-table-Dtf6lKpp.mjs → data-table-C25KHEn4.mjs} +47 -36
  130. package/dist/chunks/data-table-C25KHEn4.mjs.map +1 -0
  131. package/dist/chunks/date-picker--cqsgsIV.mjs +587 -0
  132. package/dist/chunks/date-picker--cqsgsIV.mjs.map +1 -0
  133. package/dist/chunks/date-picker-BJQdFyqr.cjs +592 -0
  134. package/dist/chunks/date-picker-BJQdFyqr.cjs.map +1 -0
  135. package/dist/chunks/{dialog-DSyq6MS3.mjs → dialog-BHIeG3Sg.mjs} +3 -3
  136. package/dist/chunks/{dialog-DSyq6MS3.mjs.map → dialog-BHIeG3Sg.mjs.map} +1 -1
  137. package/dist/chunks/{dialog-J2ZTSTpL.cjs → dialog-CLKU0cXX.cjs} +3 -4
  138. package/dist/chunks/{dialog-J2ZTSTpL.cjs.map → dialog-CLKU0cXX.cjs.map} +1 -1
  139. package/dist/chunks/draggable-grid-2L_eHKfp.cjs +245 -0
  140. package/dist/chunks/draggable-grid-2L_eHKfp.cjs.map +1 -0
  141. package/dist/chunks/draggable-grid-IuCMSOsE.mjs +240 -0
  142. package/dist/chunks/draggable-grid-IuCMSOsE.mjs.map +1 -0
  143. package/dist/chunks/event-calendar-CO2doGJW.mjs +1191 -0
  144. package/dist/chunks/event-calendar-CO2doGJW.mjs.map +1 -0
  145. package/dist/chunks/event-calendar-CvficOuV.cjs +1208 -0
  146. package/dist/chunks/event-calendar-CvficOuV.cjs.map +1 -0
  147. package/dist/chunks/{form-X6Vyaavl.cjs → form-DARN6jtX.cjs} +1 -2
  148. package/dist/chunks/{form-X6Vyaavl.cjs.map → form-DARN6jtX.cjs.map} +1 -1
  149. package/dist/chunks/{form-CtZ6U-_B.mjs → form-DNuFklNR.mjs} +1 -1
  150. package/dist/chunks/{form-CtZ6U-_B.mjs.map → form-DNuFklNR.mjs.map} +1 -1
  151. package/dist/chunks/{gradual-blur-C6NOnjTw.cjs → gradual-blur-BBLbpXD4.cjs} +2 -3
  152. package/dist/chunks/{gradual-blur-C6NOnjTw.cjs.map → gradual-blur-BBLbpXD4.cjs.map} +1 -1
  153. package/dist/chunks/{gradual-blur-DXfxpCdB.mjs → gradual-blur-BPx2MSWI.mjs} +2 -2
  154. package/dist/chunks/{gradual-blur-DXfxpCdB.mjs.map → gradual-blur-BPx2MSWI.mjs.map} +1 -1
  155. package/dist/chunks/{hover-card-C88rU-nW.mjs → hover-card-BkVHGXz6.mjs} +1 -1
  156. package/dist/chunks/{hover-card-C88rU-nW.mjs.map → hover-card-BkVHGXz6.mjs.map} +1 -1
  157. package/dist/chunks/{hover-card--rplmsA_.cjs → hover-card-DwZFtu8w.cjs} +1 -2
  158. package/dist/chunks/{hover-card--rplmsA_.cjs.map → hover-card-DwZFtu8w.cjs.map} +1 -1
  159. package/dist/chunks/{icons-CRanVZB1.cjs → icons-Ci8yEvvF.cjs} +1 -2
  160. package/dist/chunks/{icons-CRanVZB1.cjs.map → icons-Ci8yEvvF.cjs.map} +1 -1
  161. package/dist/chunks/{icons-bx3nrxNv.mjs → icons-CkVHNbbN.mjs} +1 -1
  162. package/dist/chunks/{icons-bx3nrxNv.mjs.map → icons-CkVHNbbN.mjs.map} +1 -1
  163. package/dist/chunks/{input-Bqo9Q5zF.mjs → input-B-XSdnfh.mjs} +4 -4
  164. package/dist/chunks/{input-Bqo9Q5zF.mjs.map → input-B-XSdnfh.mjs.map} +1 -1
  165. package/dist/chunks/{input-DkCPyWXi.cjs → input-EH7x0pQY.cjs} +4 -5
  166. package/dist/chunks/{input-DkCPyWXi.cjs.map → input-EH7x0pQY.cjs.map} +1 -1
  167. package/dist/chunks/{label-Drxg0cG2.mjs → label-CcsncrKQ.mjs} +1 -1
  168. package/dist/chunks/{label-Drxg0cG2.mjs.map → label-CcsncrKQ.mjs.map} +1 -1
  169. package/dist/chunks/{label-BKzqfAAq.cjs → label-Du-5H7wd.cjs} +1 -2
  170. package/dist/chunks/{label-BKzqfAAq.cjs.map → label-Du-5H7wd.cjs.map} +1 -1
  171. package/dist/chunks/{loading-Dtosnb4A.mjs → loading-2Lh_355V.mjs} +2 -2
  172. package/dist/chunks/{loading-Dtosnb4A.mjs.map → loading-2Lh_355V.mjs.map} +1 -1
  173. package/dist/chunks/{loading-BiM4mKh6.cjs → loading-DeGHTDO2.cjs} +2 -3
  174. package/dist/chunks/{loading-BiM4mKh6.cjs.map → loading-DeGHTDO2.cjs.map} +1 -1
  175. package/dist/chunks/{multi-select-combobox-Do23ZfOQ.mjs → multi-select-combobox-BOdKmPj2.mjs} +4 -4
  176. package/dist/chunks/{multi-select-combobox-Do23ZfOQ.mjs.map → multi-select-combobox-BOdKmPj2.mjs.map} +1 -1
  177. package/dist/chunks/{multi-select-combobox-C0DoDzxQ.cjs → multi-select-combobox-PPYRcaPg.cjs} +5 -5
  178. package/dist/chunks/{multi-select-combobox-C0DoDzxQ.cjs.map → multi-select-combobox-PPYRcaPg.cjs.map} +1 -1
  179. package/dist/chunks/{otp-input-JOysxKfD.mjs → otp-input--_itTXaL.mjs} +1 -1
  180. package/dist/chunks/{otp-input-JOysxKfD.mjs.map → otp-input--_itTXaL.mjs.map} +1 -1
  181. package/dist/chunks/{otp-input-CkhV-sGl.cjs → otp-input-Dgw_47Z7.cjs} +1 -2
  182. package/dist/chunks/{otp-input-CkhV-sGl.cjs.map → otp-input-Dgw_47Z7.cjs.map} +1 -1
  183. package/dist/chunks/{overlay-DNnZywyR.cjs → overlay-15EzdrIu.cjs} +1 -2
  184. package/dist/chunks/{overlay-DNnZywyR.cjs.map → overlay-15EzdrIu.cjs.map} +1 -1
  185. package/dist/chunks/{overlay-BzkUmjQ-.mjs → overlay-BMbhF-EC.mjs} +1 -1
  186. package/dist/chunks/{overlay-BzkUmjQ-.mjs.map → overlay-BMbhF-EC.mjs.map} +1 -1
  187. package/dist/chunks/{password-strength-meter-DCi_BP7e.cjs → password-strength-meter-Be1c-dnK.cjs} +2 -3
  188. package/dist/chunks/{password-strength-meter-DCi_BP7e.cjs.map → password-strength-meter-Be1c-dnK.cjs.map} +1 -1
  189. package/dist/chunks/{password-strength-meter-BsvqQBAg.mjs → password-strength-meter-Q1Qr-4tz.mjs} +2 -2
  190. package/dist/chunks/{password-strength-meter-BsvqQBAg.mjs.map → password-strength-meter-Q1Qr-4tz.mjs.map} +1 -1
  191. package/dist/chunks/{progress-bar-CYaBO_lS.cjs → progress-bar-BsnX079N.cjs} +3 -3
  192. package/dist/chunks/{progress-bar-CYaBO_lS.cjs.map → progress-bar-BsnX079N.cjs.map} +1 -1
  193. package/dist/chunks/{progress-bar-DQ5ZKk2Y.mjs → progress-bar-l5WpbpZf.mjs} +2 -2
  194. package/dist/chunks/{progress-bar-DQ5ZKk2Y.mjs.map → progress-bar-l5WpbpZf.mjs.map} +1 -1
  195. package/dist/chunks/{radio-CuiM_gDv.mjs → radio-B94_TGtz.mjs} +2 -2
  196. package/dist/chunks/{radio-CuiM_gDv.mjs.map → radio-B94_TGtz.mjs.map} +1 -1
  197. package/dist/chunks/{radio-zx9xEW_C.cjs → radio-W_NiS_dO.cjs} +2 -3
  198. package/dist/chunks/{radio-zx9xEW_C.cjs.map → radio-W_NiS_dO.cjs.map} +1 -1
  199. package/dist/chunks/{select-bZ9WqLOc.cjs → select-C5lkcrSB.cjs} +5 -6
  200. package/dist/chunks/{select-bZ9WqLOc.cjs.map → select-C5lkcrSB.cjs.map} +1 -1
  201. package/dist/chunks/{select-CUaSNR09.mjs → select-DnSSxddm.mjs} +5 -5
  202. package/dist/chunks/{select-CUaSNR09.mjs.map → select-DnSSxddm.mjs.map} +1 -1
  203. package/dist/chunks/{sidebar-Dhf_Arae.mjs → sidebar-C3Sx87wD.mjs} +10 -11
  204. package/dist/chunks/{sidebar-Dhf_Arae.mjs.map → sidebar-C3Sx87wD.mjs.map} +1 -1
  205. package/dist/chunks/{sidebar-3i4mGE6T.cjs → sidebar-DDRWkz5k.cjs} +10 -12
  206. package/dist/chunks/{sidebar-3i4mGE6T.cjs.map → sidebar-DDRWkz5k.cjs.map} +1 -1
  207. package/dist/chunks/{skeleton-DCBGLNAZ.cjs → skeleton-B2u9c1xJ.cjs} +2 -3
  208. package/dist/chunks/{skeleton-DCBGLNAZ.cjs.map → skeleton-B2u9c1xJ.cjs.map} +1 -1
  209. package/dist/chunks/{skeleton-nH1eAN96.mjs → skeleton-DVAlrOq2.mjs} +2 -2
  210. package/dist/chunks/{skeleton-nH1eAN96.mjs.map → skeleton-DVAlrOq2.mjs.map} +1 -1
  211. package/dist/chunks/{spinners-g6_Up5Rb.mjs → spinners-BQtIp2ov.mjs} +2 -2
  212. package/dist/chunks/{spinners-g6_Up5Rb.mjs.map → spinners-BQtIp2ov.mjs.map} +1 -1
  213. package/dist/chunks/{spinners-C9acUulz.cjs → spinners-BiebALzS.cjs} +2 -3
  214. package/dist/chunks/{spinners-C9acUulz.cjs.map → spinners-BiebALzS.cjs.map} +1 -1
  215. package/dist/chunks/{splash-cursor-BqG7ClsJ.cjs → splash-cursor-8b7ORB2k.cjs} +2 -3
  216. package/dist/chunks/{splash-cursor-BqG7ClsJ.cjs.map → splash-cursor-8b7ORB2k.cjs.map} +1 -1
  217. package/dist/chunks/{splash-cursor-N4FdnkOa.mjs → splash-cursor-CeZffMed.mjs} +2 -2
  218. package/dist/chunks/{splash-cursor-N4FdnkOa.mjs.map → splash-cursor-CeZffMed.mjs.map} +1 -1
  219. package/dist/chunks/{spotlight-card-BmsqC7wm.cjs → spotlight-card-BQjp7hO1.cjs} +2 -3
  220. package/dist/chunks/{spotlight-card-BmsqC7wm.cjs.map → spotlight-card-BQjp7hO1.cjs.map} +1 -1
  221. package/dist/chunks/{spotlight-card-D9Z3nTmb.mjs → spotlight-card-DiPtBCAK.mjs} +2 -2
  222. package/dist/chunks/{spotlight-card-D9Z3nTmb.mjs.map → spotlight-card-DiPtBCAK.mjs.map} +1 -1
  223. package/dist/chunks/{stepper-DepvEGfr.cjs → stepper-BuhQfQTH.cjs} +5 -6
  224. package/dist/chunks/{stepper-DepvEGfr.cjs.map → stepper-BuhQfQTH.cjs.map} +1 -1
  225. package/dist/chunks/{stepper-Jv5OS1nY.mjs → stepper-CVNcexxq.mjs} +5 -5
  226. package/dist/chunks/{stepper-Jv5OS1nY.mjs.map → stepper-CVNcexxq.mjs.map} +1 -1
  227. package/dist/chunks/{sun-to-moon-button-PwgTPsTW.cjs → sun-to-moon-button-BzYGFhrg.cjs} +4 -5
  228. package/dist/chunks/{sun-to-moon-button-PwgTPsTW.cjs.map → sun-to-moon-button-BzYGFhrg.cjs.map} +1 -1
  229. package/dist/chunks/{sun-to-moon-button-BJtBEaa3.mjs → sun-to-moon-button-CRXBMFZb.mjs} +4 -4
  230. package/dist/chunks/{sun-to-moon-button-BJtBEaa3.mjs.map → sun-to-moon-button-CRXBMFZb.mjs.map} +1 -1
  231. package/dist/chunks/{switch-X3l8xnle.cjs → switch-CEoT3MgX.cjs} +1 -2
  232. package/dist/chunks/{switch-X3l8xnle.cjs.map → switch-CEoT3MgX.cjs.map} +1 -1
  233. package/dist/chunks/{switch-iPsN1NS2.mjs → switch-DUnNe4xP.mjs} +1 -1
  234. package/dist/chunks/{switch-iPsN1NS2.mjs.map → switch-DUnNe4xP.mjs.map} +1 -1
  235. package/dist/chunks/{textarea-CGRl2hrM.cjs → textarea-Bschfj24.cjs} +2 -3
  236. package/dist/chunks/{textarea-CGRl2hrM.cjs.map → textarea-Bschfj24.cjs.map} +1 -1
  237. package/dist/chunks/{textarea-Bdo-Trvi.mjs → textarea-CfeKo5HA.mjs} +2 -2
  238. package/dist/chunks/{textarea-Bdo-Trvi.mjs.map → textarea-CfeKo5HA.mjs.map} +1 -1
  239. package/dist/chunks/{theme-koPrLKQv.mjs → theme-BXML6jHE.mjs} +1 -1
  240. package/dist/chunks/{theme-koPrLKQv.mjs.map → theme-BXML6jHE.mjs.map} +1 -1
  241. package/dist/chunks/{theme-D6B-FaoE.cjs → theme-BzTaXYZ8.cjs} +1 -2
  242. package/dist/chunks/{theme-D6B-FaoE.cjs.map → theme-BzTaXYZ8.cjs.map} +1 -1
  243. package/dist/chunks/{toast-BcBidy5n.mjs → toast-D1W0BvoH.mjs} +2 -2
  244. package/dist/chunks/{toast-BcBidy5n.mjs.map → toast-D1W0BvoH.mjs.map} +1 -1
  245. package/dist/chunks/{toast-DiFgv3IL.cjs → toast-DL8svc6q.cjs} +2 -3
  246. package/dist/chunks/{toast-DiFgv3IL.cjs.map → toast-DL8svc6q.cjs.map} +1 -1
  247. package/dist/chunks/{truncated-text-BIXqNfOL.cjs → truncated-text-D0t4atw5.cjs} +3 -3
  248. package/dist/chunks/{truncated-text-BIXqNfOL.cjs.map → truncated-text-D0t4atw5.cjs.map} +1 -1
  249. package/dist/chunks/{truncated-text-C9t9o9IA.mjs → truncated-text-DIkg-8Vo.mjs} +2 -2
  250. package/dist/chunks/{truncated-text-C9t9o9IA.mjs.map → truncated-text-DIkg-8Vo.mjs.map} +1 -1
  251. package/dist/chunks/{typography-LwwY_MOy.cjs → typography-C5fYwhp2.cjs} +3 -3
  252. package/dist/chunks/{typography-LwwY_MOy.cjs.map → typography-C5fYwhp2.cjs.map} +1 -1
  253. package/dist/chunks/{typography-Ct-jDJP3.mjs → typography-Czi7t5y4.mjs} +2 -2
  254. package/dist/chunks/{typography-Ct-jDJP3.mjs.map → typography-Czi7t5y4.mjs.map} +1 -1
  255. package/dist/chunks/{utils-LRbEQHYs.cjs → utils-CoA0q63n.cjs} +84 -4
  256. package/dist/chunks/utils-CoA0q63n.cjs.map +1 -0
  257. package/dist/chunks/{utils-7S0u48mU.mjs → utils-Dc7j29ec.mjs} +84 -4
  258. package/dist/chunks/utils-Dc7j29ec.mjs.map +1 -0
  259. package/dist/color-palette.cjs +1 -1
  260. package/dist/color-palette.mjs +1 -1
  261. package/dist/combobox.cjs +1 -1
  262. package/dist/combobox.mjs +1 -1
  263. package/dist/components/data-display/charts/chartPalette.d.ts +1 -1
  264. package/dist/components/data-display/dashboard-cards/AIFeatureAdoptionCard.d.ts +26 -0
  265. package/dist/components/data-display/dashboard-cards/AIFeatureAdoptionCard.d.ts.map +1 -0
  266. package/dist/components/data-display/dashboard-cards/AIInsightsCard.d.ts +30 -0
  267. package/dist/components/data-display/dashboard-cards/AIInsightsCard.d.ts.map +1 -0
  268. package/dist/components/data-display/dashboard-cards/AcquisitionChannelCard.d.ts +24 -0
  269. package/dist/components/data-display/dashboard-cards/AcquisitionChannelCard.d.ts.map +1 -0
  270. package/dist/components/data-display/dashboard-cards/BarBreakdownCard.d.ts +49 -0
  271. package/dist/components/data-display/dashboard-cards/BarBreakdownCard.d.ts.map +1 -0
  272. package/dist/components/data-display/dashboard-cards/CustomerLifecycleCard.d.ts +24 -0
  273. package/dist/components/data-display/dashboard-cards/CustomerLifecycleCard.d.ts.map +1 -0
  274. package/dist/components/data-display/dashboard-cards/DeviceSalesCard.d.ts +25 -0
  275. package/dist/components/data-display/dashboard-cards/DeviceSalesCard.d.ts.map +1 -0
  276. package/dist/components/data-display/dashboard-cards/EarningReportsTabsCard.d.ts +143 -0
  277. package/dist/components/data-display/dashboard-cards/EarningReportsTabsCard.d.ts.map +1 -0
  278. package/dist/components/data-display/dashboard-cards/EarningsCard.d.ts +43 -0
  279. package/dist/components/data-display/dashboard-cards/EarningsCard.d.ts.map +1 -0
  280. package/dist/components/data-display/dashboard-cards/ExpensesCard.d.ts +26 -0
  281. package/dist/components/data-display/dashboard-cards/ExpensesCard.d.ts.map +1 -0
  282. package/dist/components/data-display/dashboard-cards/FinancialPLCard.d.ts +78 -0
  283. package/dist/components/data-display/dashboard-cards/FinancialPLCard.d.ts.map +1 -0
  284. package/dist/components/data-display/dashboard-cards/IncomeExpenseCard.d.ts +30 -0
  285. package/dist/components/data-display/dashboard-cards/IncomeExpenseCard.d.ts.map +1 -0
  286. package/dist/components/data-display/dashboard-cards/InventoryCards.d.ts +44 -0
  287. package/dist/components/data-display/dashboard-cards/InventoryCards.d.ts.map +1 -0
  288. package/dist/components/data-display/dashboard-cards/PaymentSummaryCard.d.ts +45 -0
  289. package/dist/components/data-display/dashboard-cards/PaymentSummaryCard.d.ts.map +1 -0
  290. package/dist/components/data-display/dashboard-cards/RevenueGrowthCard.d.ts +26 -0
  291. package/dist/components/data-display/dashboard-cards/RevenueGrowthCard.d.ts.map +1 -0
  292. package/dist/components/data-display/dashboard-cards/SalesHeatmapCard.d.ts +36 -0
  293. package/dist/components/data-display/dashboard-cards/SalesHeatmapCard.d.ts.map +1 -0
  294. package/dist/components/data-display/dashboard-cards/SalesOverviewCard.d.ts +33 -0
  295. package/dist/components/data-display/dashboard-cards/SalesOverviewCard.d.ts.map +1 -0
  296. package/dist/components/data-display/dashboard-cards/SeatUtilizationCard.d.ts +22 -0
  297. package/dist/components/data-display/dashboard-cards/SeatUtilizationCard.d.ts.map +1 -0
  298. package/dist/components/data-display/dashboard-cards/ShipmentStatisticsCard.d.ts +33 -0
  299. package/dist/components/data-display/dashboard-cards/ShipmentStatisticsCard.d.ts.map +1 -0
  300. package/dist/components/data-display/dashboard-cards/StockAvailabilityCard.d.ts +24 -0
  301. package/dist/components/data-display/dashboard-cards/StockAvailabilityCard.d.ts.map +1 -0
  302. package/dist/components/data-display/dashboard-cards/SubscriptionHealthCard.d.ts +23 -0
  303. package/dist/components/data-display/dashboard-cards/SubscriptionHealthCard.d.ts.map +1 -0
  304. package/dist/components/data-display/dashboard-cards/SupportTrackerCard.d.ts +25 -0
  305. package/dist/components/data-display/dashboard-cards/SupportTrackerCard.d.ts.map +1 -0
  306. package/dist/components/data-display/dashboard-cards/ToolUsageOverviewCard.d.ts +22 -0
  307. package/dist/components/data-display/dashboard-cards/ToolUsageOverviewCard.d.ts.map +1 -0
  308. package/dist/components/data-display/dashboard-cards/TopPlansCard.d.ts +23 -0
  309. package/dist/components/data-display/dashboard-cards/TopPlansCard.d.ts.map +1 -0
  310. package/dist/components/data-display/dashboard-cards/TopSellingItemsCard.d.ts +42 -0
  311. package/dist/components/data-display/dashboard-cards/TopSellingItemsCard.d.ts.map +1 -0
  312. package/dist/components/data-display/dashboard-cards/TopToolsCard.d.ts +22 -0
  313. package/dist/components/data-display/dashboard-cards/TopToolsCard.d.ts.map +1 -0
  314. package/dist/components/data-display/dashboard-cards/TopicsCard.d.ts +18 -0
  315. package/dist/components/data-display/dashboard-cards/TopicsCard.d.ts.map +1 -0
  316. package/dist/components/data-display/dashboard-cards/VehicleConditionCard.d.ts +20 -0
  317. package/dist/components/data-display/dashboard-cards/VehicleConditionCard.d.ts.map +1 -0
  318. package/dist/components/data-display/dashboard-cards/VehiclesOverviewCard.d.ts +21 -0
  319. package/dist/components/data-display/dashboard-cards/VehiclesOverviewCard.d.ts.map +1 -0
  320. package/dist/components/data-display/dashboard-cards/_PLCardHeader.d.ts +63 -0
  321. package/dist/components/data-display/dashboard-cards/_PLCardHeader.d.ts.map +1 -0
  322. package/dist/components/data-display/dashboard-cards/_PLCharts.d.ts +33 -0
  323. package/dist/components/data-display/dashboard-cards/_PLCharts.d.ts.map +1 -0
  324. package/dist/components/data-display/dashboard-cards/_PLKpiStrip.d.ts +11 -0
  325. package/dist/components/data-display/dashboard-cards/_PLKpiStrip.d.ts.map +1 -0
  326. package/dist/components/data-display/dashboard-cards/_PLOverview.d.ts +9 -0
  327. package/dist/components/data-display/dashboard-cards/_PLOverview.d.ts.map +1 -0
  328. package/dist/components/data-display/dashboard-cards/_TabTooltip.d.ts +8 -0
  329. package/dist/components/data-display/dashboard-cards/_TabTooltip.d.ts.map +1 -0
  330. package/dist/components/data-display/dashboard-cards/index.d.ts +57 -0
  331. package/dist/components/data-display/dashboard-cards/index.d.ts.map +1 -1
  332. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
  333. package/dist/components/data-display/data-table/DataTableControls.d.ts.map +1 -1
  334. package/dist/components/data-display/event-calendar/AddEventPanel.d.ts +11 -0
  335. package/dist/components/data-display/event-calendar/AddEventPanel.d.ts.map +1 -0
  336. package/dist/components/data-display/event-calendar/CalendarHeader.d.ts +13 -0
  337. package/dist/components/data-display/event-calendar/CalendarHeader.d.ts.map +1 -0
  338. package/dist/components/data-display/event-calendar/CalendarSidebar.d.ts +13 -0
  339. package/dist/components/data-display/event-calendar/CalendarSidebar.d.ts.map +1 -0
  340. package/dist/components/data-display/event-calendar/EventCalendar.d.ts +3 -0
  341. package/dist/components/data-display/event-calendar/EventCalendar.d.ts.map +1 -0
  342. package/dist/components/data-display/event-calendar/EventDetailDrawer.d.ts +10 -0
  343. package/dist/components/data-display/event-calendar/EventDetailDrawer.d.ts.map +1 -0
  344. package/dist/components/data-display/event-calendar/EventFilterList.d.ts +9 -0
  345. package/dist/components/data-display/event-calendar/EventFilterList.d.ts.map +1 -0
  346. package/dist/components/data-display/event-calendar/EventPill.d.ts +10 -0
  347. package/dist/components/data-display/event-calendar/EventPill.d.ts.map +1 -0
  348. package/dist/components/data-display/event-calendar/MiniCalendarPicker.d.ts +9 -0
  349. package/dist/components/data-display/event-calendar/MiniCalendarPicker.d.ts.map +1 -0
  350. package/dist/components/data-display/event-calendar/calendarUtils.d.ts +27 -0
  351. package/dist/components/data-display/event-calendar/calendarUtils.d.ts.map +1 -0
  352. package/dist/components/data-display/event-calendar/index.d.ts +4 -0
  353. package/dist/components/data-display/event-calendar/index.d.ts.map +1 -0
  354. package/dist/components/data-display/event-calendar/types.d.ts +52 -0
  355. package/dist/components/data-display/event-calendar/types.d.ts.map +1 -0
  356. package/dist/components/data-display/event-calendar/views/DayView.d.ts +10 -0
  357. package/dist/components/data-display/event-calendar/views/DayView.d.ts.map +1 -0
  358. package/dist/components/data-display/event-calendar/views/ListView.d.ts +10 -0
  359. package/dist/components/data-display/event-calendar/views/ListView.d.ts.map +1 -0
  360. package/dist/components/data-display/event-calendar/views/MonthView.d.ts +11 -0
  361. package/dist/components/data-display/event-calendar/views/MonthView.d.ts.map +1 -0
  362. package/dist/components/data-display/event-calendar/views/WeekView.d.ts +10 -0
  363. package/dist/components/data-display/event-calendar/views/WeekView.d.ts.map +1 -0
  364. package/dist/components/forms/button/Button.d.ts.map +1 -1
  365. package/dist/components/forms/calendar/Calendar.d.ts +1 -1
  366. package/dist/components/forms/calendar/Calendar.d.ts.map +1 -1
  367. package/dist/components/forms/calendar/types.d.ts +6 -0
  368. package/dist/components/forms/calendar/types.d.ts.map +1 -1
  369. package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
  370. package/dist/components/layout/draggable-grid/DraggableGrid.d.ts +20 -0
  371. package/dist/components/layout/draggable-grid/DraggableGrid.d.ts.map +1 -0
  372. package/dist/components/layout/draggable-grid/index.d.ts +3 -0
  373. package/dist/components/layout/draggable-grid/index.d.ts.map +1 -0
  374. package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts.map +1 -1
  375. package/dist/components/overlays/tooltip/Tooltip.d.ts +3 -1
  376. package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -1
  377. package/dist/dashboard-cards.cjs +33 -0
  378. package/dist/dashboard-cards.d.ts +2 -0
  379. package/dist/dashboard-cards.mjs +2 -0
  380. package/dist/data-table.cjs +1 -1
  381. package/dist/data-table.mjs +1 -1
  382. package/dist/date-picker.cjs +1 -1
  383. package/dist/date-picker.mjs +1 -1
  384. package/dist/dialog.cjs +1 -1
  385. package/dist/dialog.mjs +1 -1
  386. package/dist/docs.cjs +44 -0
  387. package/dist/docs.cjs.map +1 -1
  388. package/dist/docs.d.ts.map +1 -1
  389. package/dist/docs.mjs +44 -0
  390. package/dist/docs.mjs.map +1 -1
  391. package/dist/draggable-grid.cjs +3 -0
  392. package/dist/draggable-grid.d.ts +2 -0
  393. package/dist/draggable-grid.mjs +2 -0
  394. package/dist/drawer.cjs +2 -2
  395. package/dist/drawer.mjs +1 -1
  396. package/dist/event-calendar.cjs +5 -0
  397. package/dist/event-calendar.d.ts +2 -0
  398. package/dist/event-calendar.mjs +2 -0
  399. package/dist/form.cjs +1 -1
  400. package/dist/form.mjs +1 -1
  401. package/dist/gradual-blur.cjs +1 -1
  402. package/dist/gradual-blur.mjs +1 -1
  403. package/dist/hover-border-gradient.cjs +1 -1
  404. package/dist/hover-border-gradient.mjs +1 -1
  405. package/dist/hover-card.cjs +1 -1
  406. package/dist/hover-card.mjs +1 -1
  407. package/dist/icons.cjs +1 -1
  408. package/dist/icons.mjs +1 -1
  409. package/dist/index.cjs +91 -332
  410. package/dist/index.cjs.map +1 -1
  411. package/dist/index.d.ts +10 -2
  412. package/dist/index.d.ts.map +1 -1
  413. package/dist/index.mjs +57 -329
  414. package/dist/index.mjs.map +1 -1
  415. package/dist/input.cjs +1 -1
  416. package/dist/input.mjs +1 -1
  417. package/dist/label.cjs +1 -1
  418. package/dist/label.mjs +1 -1
  419. package/dist/loading.cjs +1 -1
  420. package/dist/loading.mjs +1 -1
  421. package/dist/multi-select-combobox.cjs +1 -1
  422. package/dist/multi-select-combobox.mjs +1 -1
  423. package/dist/otp-input.cjs +1 -1
  424. package/dist/otp-input.mjs +1 -1
  425. package/dist/password-strength-meter.cjs +1 -1
  426. package/dist/password-strength-meter.mjs +1 -1
  427. package/dist/progress-bar.cjs +1 -1
  428. package/dist/progress-bar.mjs +1 -1
  429. package/dist/radio.cjs +1 -1
  430. package/dist/radio.mjs +1 -1
  431. package/dist/select.cjs +1 -1
  432. package/dist/select.mjs +1 -1
  433. package/dist/sidebar.cjs +1 -1
  434. package/dist/sidebar.mjs +1 -1
  435. package/dist/skeleton.cjs +1 -1
  436. package/dist/skeleton.mjs +1 -1
  437. package/dist/spinners.cjs +1 -1
  438. package/dist/spinners.mjs +1 -1
  439. package/dist/splash-cursor.cjs +1 -1
  440. package/dist/splash-cursor.mjs +1 -1
  441. package/dist/spotlight-card.cjs +1 -1
  442. package/dist/spotlight-card.mjs +1 -1
  443. package/dist/stepper.cjs +1 -1
  444. package/dist/stepper.mjs +1 -1
  445. package/dist/sun-to-moon-button.cjs +2 -2
  446. package/dist/sun-to-moon-button.mjs +2 -2
  447. package/dist/switch.cjs +1 -1
  448. package/dist/switch.mjs +1 -1
  449. package/dist/textarea.cjs +1 -1
  450. package/dist/textarea.mjs +1 -1
  451. package/dist/theme.cjs +1 -1
  452. package/dist/theme.mjs +1 -1
  453. package/dist/toast.cjs +1 -1
  454. package/dist/toast.mjs +1 -1
  455. package/dist/tooltip.cjs +1 -1
  456. package/dist/tooltip.mjs +1 -1
  457. package/dist/truncated-text.cjs +1 -1
  458. package/dist/truncated-text.mjs +1 -1
  459. package/dist/typography.cjs +1 -1
  460. package/dist/typography.mjs +1 -1
  461. package/dist/utils.cjs +1 -1
  462. package/dist/utils.mjs +1 -1
  463. package/package.json +44 -11
  464. package/dist/chunks/Tooltip-DD30yj3A.cjs.map +0 -1
  465. package/dist/chunks/Tooltip-DK3B879v.mjs.map +0 -1
  466. package/dist/chunks/button-A6UTvrOu.mjs.map +0 -1
  467. package/dist/chunks/button-C4MXPxsC.cjs.map +0 -1
  468. package/dist/chunks/calendar-5XzPqKbE.mjs +0 -178
  469. package/dist/chunks/calendar-5XzPqKbE.mjs.map +0 -1
  470. package/dist/chunks/calendar-CQJgQ5H_.cjs +0 -184
  471. package/dist/chunks/calendar-CQJgQ5H_.cjs.map +0 -1
  472. package/dist/chunks/charts-BmIV-mJy.cjs.map +0 -1
  473. package/dist/chunks/charts-DkVu0rFc.mjs.map +0 -1
  474. package/dist/chunks/data-table-Dtf6lKpp.mjs.map +0 -1
  475. package/dist/chunks/data-table-fAEuevPn.cjs.map +0 -1
  476. package/dist/chunks/date-picker-BmQ0rgwH.mjs +0 -228
  477. package/dist/chunks/date-picker-BmQ0rgwH.mjs.map +0 -1
  478. package/dist/chunks/date-picker-qpUZMtZC.cjs +0 -234
  479. package/dist/chunks/date-picker-qpUZMtZC.cjs.map +0 -1
  480. package/dist/chunks/utils-7S0u48mU.mjs.map +0 -1
  481. package/dist/chunks/utils-LRbEQHYs.cjs.map +0 -1
  482. /package/dist/chunks/{chunk-B_GkZjkl.cjs → chunk-D6vf50IK.cjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts-DMu4zp8j.cjs","names":[],"sources":["../../src/components/data-display/charts/chartPalette.ts","../../src/components/data-display/charts/NeonLineChart.tsx","../../src/components/data-display/charts/MiniNeonSparkline.tsx","../../src/components/data-display/charts/StackedBarChart.tsx","../../src/components/data-display/charts/ThinBreakdownBar.tsx","../../src/components/data-display/charts/AreaChart.tsx","../../src/components/data-display/charts/BarChart.tsx","../../src/components/data-display/charts/PositiveNegativeBarChart.tsx","../../src/components/data-display/charts/PieChart.tsx"],"sourcesContent":["const chartColorSlots = [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n] as const;\n\nexport type ChartColorSlot = (typeof chartColorSlots)[number];\nexport type ChartColorToken = `chart-${ChartColorSlot}`;\n\nexport const chartColorTokens = chartColorSlots.map(\n (slot) => `chart-${slot}` as ChartColorToken,\n);\n\nconst chartPalette = chartColorSlots.map((slot) => `var(--ds-chart-${slot})`);\n\ntype RgbColor = {\n r: number;\n g: number;\n b: number;\n};\n\nconst resolvedColorCache = new Map<string, RgbColor | null>();\n\nconst chartTokenPattern = /^chart-(\\d+)$/i;\nconst chartVariablePattern = /^--((?:ds|color)-chart-(\\d+))$/i;\n\nconst getChartSlotValue = (slot: ChartColorSlot | ChartColorToken): number =>\n typeof slot === \"number\" ? slot : Number(slot.replace(\"chart-\", \"\"));\n\nexport const getChartColorVar = (\n slot: ChartColorSlot | ChartColorToken,\n namespace: \"ds\" | \"color\" = \"ds\",\n): string => `var(--${namespace}-chart-${getChartSlotValue(slot)})`;\n\nexport const normalizeChartColorValue = (\n value?: string,\n): string | undefined => {\n const normalizedValue = value?.trim();\n\n if (!normalizedValue) {\n return undefined;\n }\n\n const tokenMatch = normalizedValue.match(chartTokenPattern);\n if (tokenMatch) {\n return `var(--ds-chart-${tokenMatch[1]})`;\n }\n\n const variableMatch = normalizedValue.match(chartVariablePattern);\n if (variableMatch) {\n return `var(--${variableMatch[1]})`;\n }\n\n return normalizedValue;\n};\n\nconst getThemeSignature = (): string => {\n if (typeof document === \"undefined\") return \"\";\n\n const root = document.documentElement;\n return [\n root.getAttribute(\"data-brand\") ?? \"\",\n root.getAttribute(\"data-mode\") ?? \"\",\n root.getAttribute(\"data-theme\") ?? \"\",\n ].join(\"|\");\n};\n\nconst resolveColor = (value: string): RgbColor | null => {\n if (typeof document === \"undefined\") return null;\n\n const cacheKey = `${getThemeSignature()}::${value}`;\n const cached = resolvedColorCache.get(cacheKey);\n if (cached !== undefined) {\n return cached;\n }\n\n const probe = document.createElement(\"span\");\n probe.style.color = value;\n probe.style.position = \"fixed\";\n probe.style.opacity = \"0\";\n probe.style.pointerEvents = \"none\";\n document.body.appendChild(probe);\n\n const computedColor = getComputedStyle(probe).color;\n document.body.removeChild(probe);\n\n const match = computedColor.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/i);\n\n const resolved = match\n ? {\n r: Number(match[1]),\n g: Number(match[2]),\n b: Number(match[3]),\n }\n : null;\n\n resolvedColorCache.set(cacheKey, resolved);\n return resolved;\n};\n\nconst getColorDistance = (left: RgbColor, right: RgbColor): number => {\n const deltaR = left.r - right.r;\n const deltaG = left.g - right.g;\n const deltaB = left.b - right.b;\n\n return Math.sqrt(deltaR ** 2 + deltaG ** 2 + deltaB ** 2);\n};\n\nconst isTooSimilar = (\n candidate: string,\n usedColors: readonly string[],\n minDistance = 84,\n): boolean => {\n if (usedColors.includes(candidate)) {\n return true;\n }\n\n const candidateRgb = resolveColor(candidate);\n if (!candidateRgb) {\n return false;\n }\n\n return usedColors.some((usedColor) => {\n const usedRgb = resolveColor(usedColor);\n return usedRgb\n ? getColorDistance(candidateRgb, usedRgb) < minDistance\n : false;\n });\n};\n\nexport const getChartPalette = (count = chartPalette.length): string[] =>\n Array.from(\n { length: count },\n (_, index) => chartPalette[index % chartPalette.length],\n );\n\nexport const normalizeChartColors = (\n requestedColors: readonly (string | undefined)[],\n): string[] => {\n const usedColors: string[] = [];\n let paletteIndex = 0;\n\n const getNextDistinctPaletteColor = (): string => {\n for (let attempt = 0; attempt < chartPalette.length; attempt++) {\n const candidate =\n chartPalette[(paletteIndex + attempt) % chartPalette.length];\n\n if (!isTooSimilar(candidate, usedColors)) {\n paletteIndex = (paletteIndex + attempt + 1) % chartPalette.length;\n return candidate;\n }\n }\n\n const fallback = chartPalette[paletteIndex % chartPalette.length];\n paletteIndex = (paletteIndex + 1) % chartPalette.length;\n return fallback;\n };\n\n return requestedColors.map((requestedColor) => {\n const normalizedRequestedColor = normalizeChartColorValue(requestedColor);\n const resolvedColor =\n normalizedRequestedColor &&\n !isTooSimilar(normalizedRequestedColor, usedColors)\n ? normalizedRequestedColor\n : getNextDistinctPaletteColor();\n\n usedColors.push(resolvedColor);\n return resolvedColor;\n });\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n LineChart,\n Line,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport {\n getChartColorVar,\n normalizeChartColorValue,\n normalizeChartColors,\n} from \"./chartPalette\";\nimport {\n chartLineHoverCursorStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n getChartActiveDotStyle,\n} from \"./chartStyles\";\n\ninterface DataPoint {\n name: string;\n value: number;\n}\n\ninterface NeonLineChartProps {\n data: DataPoint[];\n height?: number | string;\n lineColorStop1?: string;\n lineColorStop2?: string;\n className?: string;\n glowColor?: string;\n}\n\nexport const NeonLineChart: React.FC<NeonLineChartProps> = ({\n data,\n height = 300,\n lineColorStop1 = getChartColorVar(2),\n lineColorStop2 = getChartColorVar(1),\n glowColor = getChartColorVar(1),\n className = \"\",\n}) => {\n const [normalizedStop1, normalizedStop2] = React.useMemo(\n () => normalizeChartColors([lineColorStop1, lineColorStop2]),\n [lineColorStop1, lineColorStop2],\n );\n const normalizedGlowColor = React.useMemo(\n () => normalizeChartColorValue(glowColor) ?? getChartColorVar(1),\n [glowColor],\n );\n\n return (\n <div className={`w-full relative ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <LineChart\n data={data}\n margin={{ top: 20, right: 30, left: 10, bottom: 20 }}\n >\n <defs>\n {/* Linear Gradient for the Line */}\n <linearGradient id=\"neonGradient\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\">\n <stop offset=\"0%\" stopColor={normalizedStop1} />\n <stop offset=\"100%\" stopColor={normalizedStop2} />\n </linearGradient>\n\n {/* Glowing Drop Shadow Filter */}\n <filter id=\"neonGlow\" x=\"-20%\" y=\"-20%\" width=\"140%\" height=\"140%\">\n <feDropShadow\n dx=\"0\"\n dy=\"6\"\n stdDeviation=\"8\"\n floodColor={normalizedGlowColor}\n floodOpacity=\"0.8\"\n />\n <feDropShadow\n dx=\"0\"\n dy=\"0\"\n stdDeviation=\"15\"\n floodColor={normalizedStop1}\n floodOpacity=\"0.3\"\n />\n </filter>\n </defs>\n\n {/* Minimal Grid */}\n <CartesianGrid\n strokeDasharray=\"3 3\"\n vertical={false}\n stroke=\"var(--ds-color-border)\"\n opacity={0.5}\n />\n\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n />\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartLineHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n\n {/* The Neon Line */}\n <Line\n type=\"monotone\"\n dataKey=\"value\"\n stroke=\"url(#neonGradient)\"\n strokeWidth={3}\n dot={false}\n activeDot={getChartActiveDotStyle(normalizedStop2)}\n filter=\"url(#neonGlow)\"\n />\n </LineChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport { Area, AreaChart, Line, ResponsiveContainer, Tooltip } from \"recharts\";\n\nimport { getChartColorVar, normalizeChartColorValue } from \"./chartPalette\";\n\nexport interface MiniNeonSparklinePoint {\n label: string;\n value: number;\n}\n\nexport type MiniNeonSparklineTone =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"info\";\n\nexport interface MiniNeonSparklineProps {\n data: MiniNeonSparklinePoint[];\n height?: number;\n strokeWidth?: number;\n className?: string;\n showArea?: boolean;\n showTooltip?: boolean;\n tone?: MiniNeonSparklineTone;\n}\n\nconst toneColorMap: Record<MiniNeonSparklineTone, string> = {\n default: getChartColorVar(1),\n success: \"var(--ds-color-success)\",\n warning: \"var(--ds-color-warning)\",\n danger: \"var(--ds-color-danger)\",\n info: \"var(--ds-color-info)\",\n};\n\nconst tooltipContentStyle: React.CSSProperties = {\n borderRadius: \"12px\",\n border: \"1px solid var(--ds-border-2)\",\n background: \"var(--ds-surface-1)\",\n color: \"var(--ds-text-1)\",\n fontSize: \"12px\",\n};\n\nexport const MiniNeonSparkline: React.FC<MiniNeonSparklineProps> = ({\n data,\n height = 46,\n strokeWidth = 2,\n className = \"\",\n showArea = true,\n showTooltip = true,\n tone = \"default\",\n}) => {\n const resolvedTone = React.useMemo(\n () => normalizeChartColorValue(toneColorMap[tone]) ?? toneColorMap.default,\n [tone],\n );\n\n const chartGradientId = React.useId();\n const chartGlowId = React.useId();\n\n return (\n <div className={`ui:relative ui:w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <AreaChart\n data={data}\n margin={{ top: 4, right: 2, left: 2, bottom: 4 }}\n >\n <defs>\n <linearGradient id={chartGradientId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={resolvedTone} stopOpacity={0.35} />\n <stop offset=\"100%\" stopColor={resolvedTone} stopOpacity={0.02} />\n </linearGradient>\n <filter\n id={chartGlowId}\n x=\"-20%\"\n y=\"-20%\"\n width=\"140%\"\n height=\"140%\"\n >\n <feDropShadow\n dx=\"0\"\n dy=\"2\"\n stdDeviation=\"3\"\n floodColor={resolvedTone}\n floodOpacity=\"0.45\"\n />\n </filter>\n </defs>\n\n {showArea ? (\n <Area\n type=\"monotone\"\n dataKey=\"value\"\n stroke=\"none\"\n fill={`url(#${chartGradientId})`}\n />\n ) : null}\n\n <Line\n type=\"monotone\"\n dataKey=\"value\"\n stroke={resolvedTone}\n strokeWidth={strokeWidth}\n dot={false}\n isAnimationActive={false}\n filter={`url(#${chartGlowId})`}\n />\n\n {showTooltip ? (\n <Tooltip\n contentStyle={tooltipContentStyle}\n labelStyle={{ color: \"var(--ds-text-2)\", marginBottom: \"4px\" }}\n itemStyle={{ color: \"var(--ds-text-1)\", fontWeight: 600 }}\n formatter={(value) => [String(value ?? \"\"), \"Value\"]}\n />\n ) : null}\n </AreaChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n BarChart as RechartsBarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { normalizeChartColors } from \"./chartPalette\";\nimport {\n chartBandHoverCursorStyle,\n chartLegendTextStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n} from \"./chartStyles\";\n\nexport interface StackedBarData {\n name: string;\n [key: string]: string | number;\n}\n\ninterface StackedBarChartProps {\n data: StackedBarData[];\n categories: { key: string; color: string; label: string }[];\n height?: number | string;\n yAxisDomain?: [number, number];\n className?: string;\n}\n\nexport const StackedBarChart: React.FC<StackedBarChartProps> = ({\n data,\n categories,\n height = 300,\n yAxisDomain,\n className = \"\",\n}) => {\n const normalizedCategories = React.useMemo(() => {\n const normalizedColors = normalizeChartColors(\n categories.map((category) => category.color),\n );\n\n return categories.map((category, index) => ({\n ...category,\n color: normalizedColors[index] ?? category.color,\n }));\n }, [categories]);\n\n return (\n <div className={`w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n data={data}\n margin={{ top: 20, right: 30, left: 20, bottom: 5 }}\n >\n <CartesianGrid\n strokeDasharray=\"3 3\"\n vertical={false}\n stroke=\"var(--ds-color-border)\"\n opacity={0.4}\n />\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n domain={yAxisDomain}\n />\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartBandHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n <Legend\n iconType=\"circle\"\n wrapperStyle={{\n ...chartLegendTextStyle,\n paddingTop: \"20px\",\n }}\n />\n\n {normalizedCategories.map((cat, index) => {\n // Apply rounded radius only to the top bar in the stack\n const isTop = index === normalizedCategories.length - 1;\n const radius: [number, number, number, number] = isTop\n ? [6, 6, 0, 0]\n : [0, 0, 0, 0];\n\n return (\n <Bar\n key={cat.key}\n dataKey={cat.key}\n name={cat.label}\n stackId=\"a\"\n fill={cat.color}\n radius={radius}\n barSize={32}\n />\n );\n })}\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\n\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { normalizeChartColors } from \"./chartPalette\";\nimport { chartPillTooltipStyle } from \"./chartStyles\";\n\nexport interface BreakdownSegment {\n id?: string;\n label: string;\n value: number; // The absolute value or percentage\n color: string;\n}\n\ninterface ThinBreakdownBarProps {\n data: BreakdownSegment[];\n className?: string;\n showLabels?: boolean;\n showSummary?: boolean;\n summaryLabel?: string;\n valueFormatter?: (value: number) => string;\n}\n\nconst defaultValueFormatter = (value: number): string =>\n new Intl.NumberFormat().format(value);\n\nexport const ThinBreakdownBar: React.FC<ThinBreakdownBarProps> = ({\n data: segments,\n className = \"\",\n showLabels = true,\n showSummary = false,\n summaryLabel = \"Total\",\n valueFormatter = defaultValueFormatter,\n}) => {\n const [activeSegmentKey, setActiveSegmentKey] = React.useState<string | null>(\n null,\n );\n\n const normalizedSegments = React.useMemo(() => {\n const normalizedColors = normalizeChartColors(\n segments.map((segment) => segment.color),\n );\n\n const totalValue = segments.reduce((sum, item) => sum + item.value, 0);\n\n return segments.map((segment, index) => ({\n ...segment,\n key: segment.id || `segment-${index}`,\n color: normalizedColors[index] ?? segment.color,\n widthPercent:\n totalValue > 0 ? Math.max((segment.value / totalValue) * 100, 0) : 0,\n }));\n }, [segments]);\n\n const segmentsWithMetrics = React.useMemo(() => {\n let runningPercent = 0;\n\n return normalizedSegments.map((segment) => {\n const nextSegment = {\n ...segment,\n centerPercent: runningPercent + segment.widthPercent / 2,\n };\n\n runningPercent += segment.widthPercent;\n return nextSegment;\n });\n }, [normalizedSegments]);\n\n const activeSegment = React.useMemo(\n () =>\n segmentsWithMetrics.find((segment) => segment.key === activeSegmentKey) ??\n null,\n [activeSegmentKey, segmentsWithMetrics],\n );\n const totalValue = React.useMemo(\n () => segments.reduce((sum, item) => sum + item.value, 0),\n [segments],\n );\n const summaryTitle = activeSegment?.label ?? summaryLabel;\n const summaryValue = activeSegment?.value ?? totalValue;\n const summaryMeta = activeSegment\n ? `${Math.round(activeSegment.widthPercent)}% of total`\n : `${segments.length} segments`;\n\n return (\n <div className={`w-full flex flex-col gap-3 ${className}`}>\n {showSummary && (activeSegment || totalValue > 0) ? (\n <div className=\"flex items-start justify-between gap-4 rounded-xl border border-ds-border-2/70 bg-ds-canvas/70 px-4 py-3 backdrop-blur-md\">\n <div className=\"min-w-0\">\n <TruncatedText\n as=\"p\"\n showTitleOnHover\n className=\"truncate text-[11px] font-medium tracking-[0.16em] text-ds-2 uppercase transition-colors duration-200\"\n style={activeSegment ? { color: activeSegment.color } : undefined}\n >\n {summaryTitle}\n </TruncatedText>\n <p className=\"mt-1 text-xs text-ds-2\">{summaryMeta}</p>\n </div>\n <p\n className=\"text-right text-lg font-semibold leading-none text-ds-1 transition-colors duration-200\"\n style={activeSegment ? { color: activeSegment.color } : undefined}\n >\n {valueFormatter(summaryValue)}\n </p>\n </div>\n ) : null}\n\n <div className=\"relative\">\n {activeSegment && !showSummary && (\n <div\n className=\"pointer-events-none absolute -top-10 z-10 -translate-x-1/2 rounded-full px-2.5 py-1 text-[11px] font-medium text-ds-1\"\n style={{\n ...chartPillTooltipStyle,\n left: `${activeSegment.centerPercent}%`,\n }}\n >\n <span>{activeSegment.label}</span>\n <span className=\"mx-1 text-ds-2\">•</span>\n <span style={{ color: activeSegment.color }}>\n {activeSegment.value}\n </span>\n </div>\n )}\n\n <div className=\"rounded-full bg-ds-surface-2/80 p-0.5\">\n <div\n className=\"flex w-full gap-1\"\n onMouseLeave={() => setActiveSegmentKey(null)}\n >\n {segmentsWithMetrics.map((segment) => {\n const isActive = activeSegmentKey === segment.key;\n\n return (\n <div\n key={segment.key}\n className=\"relative flex h-2.5 min-w-0 items-center\"\n style={{ width: `${segment.widthPercent}%` }}\n onMouseEnter={() => setActiveSegmentKey(segment.key)}\n >\n <div\n className=\"h-full w-full rounded-full transition-[transform,filter,box-shadow,opacity] duration-200 ease-out\"\n style={{\n backgroundColor: segment.color,\n opacity: activeSegmentKey && !isActive ? 0.72 : 1,\n transform: isActive ? \"scaleY(1.3)\" : \"scaleY(1)\",\n filter: isActive\n ? \"saturate(1.1) brightness(1.05)\"\n : \"none\",\n boxShadow: isActive\n ? `inset 0 1px 1px rgba(255,255,255,0.28), 0 0 0 1px color-mix(in srgb, ${segment.color} 35%, transparent), 0 0 14px color-mix(in srgb, ${segment.color} 45%, transparent)`\n : `inset 0 1px 1px rgba(255,255,255,0.2), 0 0 8px color-mix(in srgb, ${segment.color} 30%, transparent)`,\n }}\n title={`${segment.label}: ${segment.value}`}\n />\n </div>\n );\n })}\n </div>\n </div>\n </div>\n\n {showLabels && (\n <div className=\"flex w-full items-start gap-1 px-0.5\">\n {segmentsWithMetrics.map((segment) => {\n const isActive = activeSegmentKey === segment.key;\n\n return (\n <div\n key={`label-${segment.key}`}\n className=\"flex min-w-0 justify-center\"\n style={{ width: `${segment.widthPercent}%` }}\n >\n <span\n className=\"whitespace-nowrap px-1 text-center text-[11px] font-medium tracking-wide text-ds-2 transition-colors duration-200\"\n style={isActive ? { color: segment.color } : undefined}\n >\n {segment.label}\n </span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n AreaChart as RechartsAreaChart,\n Area,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { normalizeChartColors } from \"./chartPalette\";\nimport {\n chartLineHoverCursorStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n getChartActiveDotStyle,\n} from \"./chartStyles\";\n\nexport interface AreaChartData {\n name: string;\n [key: string]: string | number;\n}\n\ninterface AreaChartProps {\n data: AreaChartData[];\n categories: { key: string; color: string }[];\n height?: number | string;\n className?: string;\n showGrid?: boolean;\n}\n\nexport const AreaChart: React.FC<AreaChartProps> = ({\n data,\n categories,\n height = 300,\n className = \"\",\n showGrid = true,\n}) => {\n const normalizedCategories = React.useMemo(() => {\n const normalizedColors = normalizeChartColors(\n categories.map((category) => category.color),\n );\n\n return categories.map((category, index) => ({\n ...category,\n color: normalizedColors[index] ?? category.color,\n }));\n }, [categories]);\n\n return (\n <div className={`w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsAreaChart\n data={data}\n margin={{ top: 10, right: 30, left: 0, bottom: 0 }}\n >\n <defs>\n {normalizedCategories.map((cat) => (\n <linearGradient\n key={`gradient-${cat.key}`}\n id={`color-${cat.key}`}\n x1=\"0\"\n y1=\"0\"\n x2=\"0\"\n y2=\"1\"\n >\n <stop offset=\"5%\" stopColor={cat.color} stopOpacity={0.3} />\n <stop offset=\"95%\" stopColor={cat.color} stopOpacity={0} />\n </linearGradient>\n ))}\n </defs>\n\n {showGrid && (\n <CartesianGrid\n strokeDasharray=\"3 3\"\n vertical={false}\n stroke=\"var(--ds-color-border)\"\n opacity={0.5}\n />\n )}\n\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n />\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartLineHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n\n {normalizedCategories.map((cat) => (\n <Area\n key={cat.key}\n activeDot={getChartActiveDotStyle(cat.color)}\n type=\"monotone\"\n dataKey={cat.key}\n stroke={cat.color}\n strokeWidth={2}\n fillOpacity={1}\n fill={`url(#color-${cat.key})`}\n />\n ))}\n </RechartsAreaChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n BarChart as RechartsBarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { normalizeChartColors } from \"./chartPalette\";\nimport {\n chartBandHoverCursorStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n} from \"./chartStyles\";\n\nexport interface BarChartData {\n name: string;\n [key: string]: string | number;\n}\n\ninterface BarChartProps {\n data: BarChartData[];\n categories: { key: string; color: string }[];\n height?: number | string;\n className?: string;\n layout?: \"horizontal\" | \"vertical\";\n maxBarSize?: number;\n /**\n * Compact mode — strips axes, grid, tooltip, and margins.\n * Designed for small sparkline-style zones (e.g. StatCard md, ~130×68 px).\n */\n compact?: boolean;\n}\n\nexport const BarChart: React.FC<BarChartProps> = ({\n data,\n categories,\n height = 300,\n className = \"\",\n layout = \"horizontal\",\n maxBarSize,\n compact = false,\n}) => {\n const resolvedMaxBarSize = maxBarSize ?? (compact ? 8 : layout === \"horizontal\" ? 40 : 22);\n\n const normalizedCategories = React.useMemo(() => {\n const normalizedColors = normalizeChartColors(\n categories.map((category) => category.color),\n );\n\n return categories.map((category, index) => ({\n ...category,\n color: normalizedColors[index] ?? category.color,\n }));\n }, [categories]);\n\n if (compact) {\n return (\n <div className={`w-full h-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n data={data}\n layout={layout}\n barCategoryGap=\"20%\"\n margin={{ top: 2, right: 2, left: 2, bottom: 2 }}\n >\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartBandHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n {normalizedCategories.map((cat) => (\n <Bar\n key={cat.key}\n dataKey={cat.key}\n fill={cat.color}\n maxBarSize={resolvedMaxBarSize}\n radius={[3, 3, 0, 0]}\n />\n ))}\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n );\n }\n\n return (\n <div className={`w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n data={data}\n layout={layout}\n barCategoryGap={data.length <= 4 ? \"28%\" : \"18%\"}\n margin={{ top: 20, right: 30, left: 20, bottom: 5 }}\n >\n <CartesianGrid\n strokeDasharray=\"3 3\"\n horizontal={layout === \"horizontal\"}\n vertical={layout === \"vertical\"}\n stroke=\"var(--ds-color-border)\"\n opacity={0.4}\n />\n\n {layout === \"horizontal\" ? (\n <>\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n />\n </>\n ) : (\n <>\n <XAxis\n type=\"number\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n <YAxis\n dataKey=\"name\"\n type=\"category\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n />\n </>\n )}\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartBandHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n\n {normalizedCategories.map((cat) => (\n <Bar\n key={cat.key}\n dataKey={cat.key}\n fill={cat.color}\n maxBarSize={resolvedMaxBarSize}\n radius={layout === \"horizontal\" ? [4, 4, 0, 0] : [0, 4, 4, 0]}\n />\n ))}\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n Bar,\n BarChart as RechartsBarChart,\n CartesianGrid,\n Cell,\n Rectangle,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\n\nimport { getChartColorVar, normalizeChartColorValue } from \"./chartPalette\";\nimport {\n chartBandHoverCursorStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n} from \"./chartStyles\";\n\nexport interface PositiveNegativeBarChartData {\n name: string;\n value: number;\n}\n\ninterface PositiveNegativeBarChartProps {\n data: PositiveNegativeBarChartData[];\n height?: number | string;\n className?: string;\n layout?: \"horizontal\" | \"vertical\";\n positiveColor?: string;\n negativeColor?: string;\n neutralColor?: string;\n showGrid?: boolean;\n seriesLabel?: string;\n valueFormatter?: (value: number) => string;\n tickFormatter?: (value: number) => string;\n}\n\nconst defaultValueFormatter = (value: number): string =>\n new Intl.NumberFormat().format(value);\n\nconst getBarRadius = (\n value: number,\n layout: \"horizontal\" | \"vertical\",\n): [number, number, number, number] => {\n if (value === 0) {\n return [6, 6, 6, 6];\n }\n\n if (layout === \"horizontal\") {\n return [6, 6, 0, 0];\n }\n\n return value > 0 ? [0, 6, 6, 0] : [6, 0, 0, 6];\n};\n\nexport const PositiveNegativeBarChart: React.FC<\n PositiveNegativeBarChartProps\n> = ({\n data,\n height = 320,\n className = \"\",\n layout = \"horizontal\",\n positiveColor = getChartColorVar(3),\n negativeColor = getChartColorVar(5),\n neutralColor = getChartColorVar(15),\n showGrid = true,\n seriesLabel = \"Variance\",\n valueFormatter = defaultValueFormatter,\n tickFormatter,\n}) => {\n const resolvedPositiveColor = React.useMemo(\n () => normalizeChartColorValue(positiveColor) ?? getChartColorVar(3),\n [positiveColor],\n );\n const resolvedNegativeColor = React.useMemo(\n () => normalizeChartColorValue(negativeColor) ?? getChartColorVar(5),\n [negativeColor],\n );\n const resolvedNeutralColor = React.useMemo(\n () => normalizeChartColorValue(neutralColor) ?? getChartColorVar(15),\n [neutralColor],\n );\n\n const resolvedTickFormatter = React.useCallback(\n (value: number) => tickFormatter?.(value) ?? valueFormatter(value),\n [tickFormatter, valueFormatter],\n );\n\n const getBarFill = React.useCallback(\n (value: number) => {\n if (value > 0) {\n return resolvedPositiveColor;\n }\n\n if (value < 0) {\n return resolvedNegativeColor;\n }\n\n return resolvedNeutralColor;\n },\n [resolvedNegativeColor, resolvedNeutralColor, resolvedPositiveColor],\n );\n\n return (\n <div className={`w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n data={data}\n layout={layout}\n margin={{ top: 20, right: 30, left: 20, bottom: 5 }}\n >\n {showGrid ? (\n <CartesianGrid\n strokeDasharray=\"3 3\"\n horizontal={layout === \"horizontal\"}\n vertical={layout === \"vertical\"}\n stroke=\"var(--ds-color-border)\"\n opacity={0.35}\n />\n ) : null}\n\n {layout === \"horizontal\" ? (\n <>\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n tickFormatter={resolvedTickFormatter}\n dx={-10}\n />\n <ReferenceLine\n y={0}\n stroke=\"var(--ds-color-border-strong)\"\n strokeOpacity={0.95}\n />\n </>\n ) : (\n <>\n <XAxis\n type=\"number\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n tickFormatter={resolvedTickFormatter}\n dy={10}\n />\n <YAxis\n dataKey=\"name\"\n type=\"category\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n width={96}\n dx={-6}\n />\n <ReferenceLine\n x={0}\n stroke=\"var(--ds-color-border-strong)\"\n strokeOpacity={0.95}\n />\n </>\n )}\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartBandHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n formatter={(value) => [\n valueFormatter(Number(value ?? 0)),\n seriesLabel,\n ]}\n />\n\n <Bar\n dataKey=\"value\"\n radius={6}\n barSize={layout === \"horizontal\" ? 30 : 22}\n shape={(props) => {\n const barValue = Array.isArray(props.value)\n ? props.value[1] - props.value[0]\n : props.value;\n\n return (\n <Rectangle {...props} radius={getBarRadius(barValue, layout)} />\n );\n }}\n >\n {data.map((entry) => (\n <Cell\n key={`${entry.name}-${entry.value}`}\n fill={getBarFill(entry.value)}\n />\n ))}\n </Bar>\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n PieChart as RechartsPieChart,\n Pie,\n Cell,\n Tooltip,\n Legend,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { normalizeChartColors } from \"./chartPalette\";\nimport {\n chartLegendTextStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n} from \"./chartStyles\";\n\nexport interface PieChartData {\n name: string;\n value: number;\n}\n\nexport interface PieChartCenterContentContext {\n activeColor?: string;\n activeIndex: number | null;\n activeSlice: PieChartData | null;\n data: PieChartData[];\n displayLabel: string;\n displayPercentageLabel: string;\n displayValue: number;\n normalizedColors: string[];\n totalValue: number;\n valueFormatter: (value: number) => string;\n variant: \"pie\" | \"donut\";\n}\n\nexport interface PieChartProps {\n data: PieChartData[];\n colors: string[];\n height?: number | string;\n className?: string;\n variant?: \"pie\" | \"donut\";\n showCenterSummary?: boolean;\n centerLabel?: string;\n valueFormatter?: (value: number) => string;\n renderCenterContent?: (\n context: PieChartCenterContentContext,\n ) => React.ReactNode;\n}\n\nconst defaultValueFormatter = (value: number): string =>\n new Intl.NumberFormat().format(value);\n\nexport const PieChart: React.FC<PieChartProps> = ({\n data,\n colors,\n height = 300,\n className = \"\",\n variant = \"donut\",\n showCenterSummary = variant === \"donut\",\n centerLabel = \"Total\",\n valueFormatter = defaultValueFormatter,\n renderCenterContent,\n}) => {\n const [activeIndex, setActiveIndex] = React.useState<number | null>(null);\n const innerRadius = variant === \"donut\" ? \"60%\" : 0;\n const normalizedColors = React.useMemo(\n () => normalizeChartColors(colors),\n [colors],\n );\n const totalValue = React.useMemo(\n () => data.reduce((sum, item) => sum + item.value, 0),\n [data],\n );\n const activeSlice =\n activeIndex !== null && activeIndex >= 0 && activeIndex < data.length\n ? data[activeIndex]\n : null;\n const activePercentage =\n activeSlice && totalValue > 0\n ? `${Math.round((activeSlice.value / totalValue) * 100)}% of total`\n : `${data.length} categories`;\n const displayLabel = activeSlice?.name ?? centerLabel;\n const displayValue = activeSlice?.value ?? totalValue;\n const activeColor =\n activeIndex !== null\n ? normalizedColors[activeIndex % normalizedColors.length]\n : undefined;\n const centerContentContext: PieChartCenterContentContext = {\n activeColor,\n activeIndex,\n activeSlice,\n data,\n displayLabel,\n displayPercentageLabel: activePercentage,\n displayValue,\n normalizedColors,\n totalValue,\n valueFormatter,\n variant,\n };\n const shouldRenderCenterContent =\n variant === \"donut\" && (showCenterSummary || Boolean(renderCenterContent));\n\n return (\n <div className={`relative w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsPieChart>\n <Pie\n data={data}\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={innerRadius}\n outerRadius=\"80%\"\n paddingAngle={variant === \"donut\" ? 2 : 0}\n dataKey=\"value\"\n stroke=\"none\"\n onMouseEnter={(_data: unknown, index: number) =>\n setActiveIndex(index)\n }\n onMouseLeave={() => setActiveIndex(null)}\n >\n {data.map((entry, index) => (\n <Cell\n key={`cell-${index}`}\n fill={normalizedColors[index % normalizedColors.length]}\n />\n ))}\n </Pie>\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n\n <Legend iconType=\"circle\" wrapperStyle={chartLegendTextStyle} />\n </RechartsPieChart>\n </ResponsiveContainer>\n\n {shouldRenderCenterContent ? (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n {renderCenterContent ? (\n renderCenterContent(centerContentContext)\n ) : (\n <div className=\"flex max-w-[42%] flex-col items-center text-center\">\n <p className=\"text-[11px] font-medium tracking-[0.16em] text-ds-2 uppercase\">\n {displayLabel}\n </p>\n <p className=\"mt-1 text-2xl font-semibold leading-none text-ds-1 sm:text-3xl\">\n {valueFormatter(displayValue)}\n </p>\n <p className=\"mt-2 text-xs leading-tight text-ds-2\">\n {activePercentage}\n </p>\n </div>\n )}\n </div>\n ) : null}\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { t as TruncatedText } from "./truncated-text-C9t9o9IA.mjs";
1
+ import { a as chartTooltipContentStyle, c as chartTooltipWrapperStyle, i as chartPillTooltipStyle, l as getChartActiveDotStyle, n as chartLegendTextStyle, o as chartTooltipItemStyle, r as chartLineHoverCursorStyle, s as chartTooltipLabelStyle, t as chartBandHoverCursorStyle } from "./chartStyles-DrHVYS5N.mjs";
2
+ import { t as TruncatedText } from "./truncated-text-DIkg-8Vo.mjs";
2
3
  import React from "react";
3
4
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
4
5
  import { Area, AreaChart, Bar, BarChart, CartesianGrid, Cell, Legend, Line, LineChart, Pie, PieChart, Rectangle, ReferenceLine, ResponsiveContainer, Tooltip, XAxis, YAxis } from "recharts";
@@ -106,58 +107,6 @@ var normalizeChartColors = (requestedColors) => {
106
107
  });
107
108
  };
108
109
  //#endregion
109
- //#region src/components/data-display/charts/chartStyles.ts
110
- var chartTooltipContentStyle = {
111
- background: "linear-gradient(135deg, color-mix(in srgb, var(--ds-color-bg-surface) 88%, transparent), color-mix(in srgb, var(--ds-color-bg-elevated) 74%, transparent))",
112
- border: "1px solid color-mix(in srgb, var(--ds-color-border-strong) 72%, transparent)",
113
- borderRadius: "12px",
114
- backdropFilter: "blur(18px) saturate(180%)",
115
- WebkitBackdropFilter: "blur(18px) saturate(180%)",
116
- boxShadow: "0 18px 40px color-mix(in srgb, var(--ds-color-fg) 14%, transparent), inset 0 1px 0 color-mix(in srgb, var(--ds-color-bg-surface) 36%, transparent)",
117
- color: "var(--ds-color-fg)",
118
- padding: "0.75rem 0.875rem"
119
- };
120
- var chartTooltipLabelStyle = {
121
- color: "var(--ds-color-fg)",
122
- fontSize: "0.8125rem",
123
- fontWeight: 600,
124
- marginBottom: "0.375rem"
125
- };
126
- var chartTooltipItemStyle = {
127
- color: "var(--ds-color-fg)",
128
- fontSize: "0.8125rem",
129
- fontWeight: 500,
130
- padding: 0
131
- };
132
- var chartTooltipWrapperStyle = { outline: "none" };
133
- var chartLegendTextStyle = {
134
- fontSize: "12px",
135
- color: "var(--ds-color-fg-muted)"
136
- };
137
- var chartBandHoverCursorStyle = {
138
- fill: "color-mix(in srgb, var(--ds-color-accent) 12%, transparent)",
139
- stroke: "color-mix(in srgb, var(--ds-color-accent) 34%, var(--ds-color-border-strong))",
140
- strokeWidth: 1
141
- };
142
- var chartLineHoverCursorStyle = {
143
- stroke: "color-mix(in srgb, var(--ds-color-accent) 42%, var(--ds-color-border-strong))",
144
- strokeWidth: 1.25,
145
- strokeDasharray: "4 4"
146
- };
147
- var getChartActiveDotStyle = (strokeColor) => ({
148
- r: 6,
149
- fill: "color-mix(in srgb, var(--ds-color-bg-surface) 90%, transparent)",
150
- stroke: strokeColor,
151
- strokeWidth: 2.5
152
- });
153
- var chartPillTooltipStyle = {
154
- background: "linear-gradient(135deg, color-mix(in srgb, var(--ds-color-bg-surface) 90%, transparent), color-mix(in srgb, var(--ds-color-bg-elevated) 76%, transparent))",
155
- border: "1px solid color-mix(in srgb, var(--ds-color-border-strong) 70%, transparent)",
156
- boxShadow: "0 14px 32px color-mix(in srgb, var(--ds-color-fg) 14%, transparent), inset 0 1px 0 color-mix(in srgb, var(--ds-color-bg-surface) 34%, transparent)",
157
- backdropFilter: "blur(16px) saturate(170%)",
158
- WebkitBackdropFilter: "blur(16px) saturate(170%)"
159
- };
160
- //#endregion
161
110
  //#region src/components/data-display/charts/NeonLineChart.tsx
162
111
  var NeonLineChart = ({ data, height = 300, lineColorStop1 = getChartColorVar(2), lineColorStop2 = getChartColorVar(1), glowColor = getChartColorVar(1), className = "" }) => {
163
112
  const [normalizedStop1, normalizedStop2] = React.useMemo(() => normalizeChartColors([lineColorStop1, lineColorStop2]), [lineColorStop1, lineColorStop2]);
@@ -1013,4 +962,4 @@ var PieChart$1 = ({ data, colors, height = 300, className = "", variant = "donut
1013
962
  //#endregion
1014
963
  export { ThinBreakdownBar as a, NeonLineChart as c, getChartPalette as d, AreaChart$1 as i, chartColorTokens as l, PositiveNegativeBarChart as n, StackedBarChart as o, BarChart$1 as r, MiniNeonSparkline as s, PieChart$1 as t, getChartColorVar as u };
1015
964
 
1016
- //# sourceMappingURL=charts-DkVu0rFc.mjs.map
965
+ //# sourceMappingURL=charts-DlskmT1J.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts-DlskmT1J.mjs","names":[],"sources":["../../src/components/data-display/charts/chartPalette.ts","../../src/components/data-display/charts/NeonLineChart.tsx","../../src/components/data-display/charts/MiniNeonSparkline.tsx","../../src/components/data-display/charts/StackedBarChart.tsx","../../src/components/data-display/charts/ThinBreakdownBar.tsx","../../src/components/data-display/charts/AreaChart.tsx","../../src/components/data-display/charts/BarChart.tsx","../../src/components/data-display/charts/PositiveNegativeBarChart.tsx","../../src/components/data-display/charts/PieChart.tsx"],"sourcesContent":["const chartColorSlots = [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n] as const;\n\nexport type ChartColorSlot = (typeof chartColorSlots)[number];\nexport type ChartColorToken = `chart-${ChartColorSlot}`;\n\nexport const chartColorTokens = chartColorSlots.map(\n (slot) => `chart-${slot}` as ChartColorToken,\n);\n\nconst chartPalette = chartColorSlots.map((slot) => `var(--ds-chart-${slot})`);\n\ntype RgbColor = {\n r: number;\n g: number;\n b: number;\n};\n\nconst resolvedColorCache = new Map<string, RgbColor | null>();\n\nconst chartTokenPattern = /^chart-(\\d+)$/i;\nconst chartVariablePattern = /^--((?:ds|color)-chart-(\\d+))$/i;\n\nconst getChartSlotValue = (slot: ChartColorSlot | ChartColorToken): number =>\n typeof slot === \"number\" ? slot : Number(slot.replace(\"chart-\", \"\"));\n\nexport const getChartColorVar = (\n slot: ChartColorSlot | ChartColorToken,\n namespace: \"ds\" | \"color\" = \"ds\",\n): string => `var(--${namespace}-chart-${getChartSlotValue(slot)})`;\n\nexport const normalizeChartColorValue = (\n value?: string,\n): string | undefined => {\n const normalizedValue = value?.trim();\n\n if (!normalizedValue) {\n return undefined;\n }\n\n const tokenMatch = normalizedValue.match(chartTokenPattern);\n if (tokenMatch) {\n return `var(--ds-chart-${tokenMatch[1]})`;\n }\n\n const variableMatch = normalizedValue.match(chartVariablePattern);\n if (variableMatch) {\n return `var(--${variableMatch[1]})`;\n }\n\n return normalizedValue;\n};\n\nconst getThemeSignature = (): string => {\n if (typeof document === \"undefined\") return \"\";\n\n const root = document.documentElement;\n return [\n root.getAttribute(\"data-brand\") ?? \"\",\n root.getAttribute(\"data-mode\") ?? \"\",\n root.getAttribute(\"data-theme\") ?? \"\",\n ].join(\"|\");\n};\n\nconst resolveColor = (value: string): RgbColor | null => {\n if (typeof document === \"undefined\") return null;\n\n const cacheKey = `${getThemeSignature()}::${value}`;\n const cached = resolvedColorCache.get(cacheKey);\n if (cached !== undefined) {\n return cached;\n }\n\n const probe = document.createElement(\"span\");\n probe.style.color = value;\n probe.style.position = \"fixed\";\n probe.style.opacity = \"0\";\n probe.style.pointerEvents = \"none\";\n document.body.appendChild(probe);\n\n const computedColor = getComputedStyle(probe).color;\n document.body.removeChild(probe);\n\n const match = computedColor.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/i);\n\n const resolved = match\n ? {\n r: Number(match[1]),\n g: Number(match[2]),\n b: Number(match[3]),\n }\n : null;\n\n resolvedColorCache.set(cacheKey, resolved);\n return resolved;\n};\n\nconst getColorDistance = (left: RgbColor, right: RgbColor): number => {\n const deltaR = left.r - right.r;\n const deltaG = left.g - right.g;\n const deltaB = left.b - right.b;\n\n return Math.sqrt(deltaR ** 2 + deltaG ** 2 + deltaB ** 2);\n};\n\nconst isTooSimilar = (\n candidate: string,\n usedColors: readonly string[],\n minDistance = 84,\n): boolean => {\n if (usedColors.includes(candidate)) {\n return true;\n }\n\n const candidateRgb = resolveColor(candidate);\n if (!candidateRgb) {\n return false;\n }\n\n return usedColors.some((usedColor) => {\n const usedRgb = resolveColor(usedColor);\n return usedRgb\n ? getColorDistance(candidateRgb, usedRgb) < minDistance\n : false;\n });\n};\n\nexport const getChartPalette = (count = chartPalette.length): string[] =>\n Array.from(\n { length: count },\n (_, index) => chartPalette[index % chartPalette.length],\n );\n\nexport const normalizeChartColors = (\n requestedColors: readonly (string | undefined)[],\n): string[] => {\n const usedColors: string[] = [];\n let paletteIndex = 0;\n\n const getNextDistinctPaletteColor = (): string => {\n for (let attempt = 0; attempt < chartPalette.length; attempt++) {\n const candidate =\n chartPalette[(paletteIndex + attempt) % chartPalette.length];\n\n if (!isTooSimilar(candidate, usedColors)) {\n paletteIndex = (paletteIndex + attempt + 1) % chartPalette.length;\n return candidate;\n }\n }\n\n const fallback = chartPalette[paletteIndex % chartPalette.length];\n paletteIndex = (paletteIndex + 1) % chartPalette.length;\n return fallback;\n };\n\n return requestedColors.map((requestedColor) => {\n const normalizedRequestedColor = normalizeChartColorValue(requestedColor);\n const resolvedColor =\n normalizedRequestedColor &&\n !isTooSimilar(normalizedRequestedColor, usedColors)\n ? normalizedRequestedColor\n : getNextDistinctPaletteColor();\n\n usedColors.push(resolvedColor);\n return resolvedColor;\n });\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n LineChart,\n Line,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport {\n getChartColorVar,\n normalizeChartColorValue,\n normalizeChartColors,\n} from \"./chartPalette\";\nimport {\n chartLineHoverCursorStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n getChartActiveDotStyle,\n} from \"./chartStyles\";\n\ninterface DataPoint {\n name: string;\n value: number;\n}\n\ninterface NeonLineChartProps {\n data: DataPoint[];\n height?: number | string;\n lineColorStop1?: string;\n lineColorStop2?: string;\n className?: string;\n glowColor?: string;\n}\n\nexport const NeonLineChart: React.FC<NeonLineChartProps> = ({\n data,\n height = 300,\n lineColorStop1 = getChartColorVar(2),\n lineColorStop2 = getChartColorVar(1),\n glowColor = getChartColorVar(1),\n className = \"\",\n}) => {\n const [normalizedStop1, normalizedStop2] = React.useMemo(\n () => normalizeChartColors([lineColorStop1, lineColorStop2]),\n [lineColorStop1, lineColorStop2],\n );\n const normalizedGlowColor = React.useMemo(\n () => normalizeChartColorValue(glowColor) ?? getChartColorVar(1),\n [glowColor],\n );\n\n return (\n <div className={`w-full relative ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <LineChart\n data={data}\n margin={{ top: 20, right: 30, left: 10, bottom: 20 }}\n >\n <defs>\n {/* Linear Gradient for the Line */}\n <linearGradient id=\"neonGradient\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\">\n <stop offset=\"0%\" stopColor={normalizedStop1} />\n <stop offset=\"100%\" stopColor={normalizedStop2} />\n </linearGradient>\n\n {/* Glowing Drop Shadow Filter */}\n <filter id=\"neonGlow\" x=\"-20%\" y=\"-20%\" width=\"140%\" height=\"140%\">\n <feDropShadow\n dx=\"0\"\n dy=\"6\"\n stdDeviation=\"8\"\n floodColor={normalizedGlowColor}\n floodOpacity=\"0.8\"\n />\n <feDropShadow\n dx=\"0\"\n dy=\"0\"\n stdDeviation=\"15\"\n floodColor={normalizedStop1}\n floodOpacity=\"0.3\"\n />\n </filter>\n </defs>\n\n {/* Minimal Grid */}\n <CartesianGrid\n strokeDasharray=\"3 3\"\n vertical={false}\n stroke=\"var(--ds-color-border)\"\n opacity={0.5}\n />\n\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n />\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartLineHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n\n {/* The Neon Line */}\n <Line\n type=\"monotone\"\n dataKey=\"value\"\n stroke=\"url(#neonGradient)\"\n strokeWidth={3}\n dot={false}\n activeDot={getChartActiveDotStyle(normalizedStop2)}\n filter=\"url(#neonGlow)\"\n />\n </LineChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport { Area, AreaChart, Line, ResponsiveContainer, Tooltip } from \"recharts\";\n\nimport { getChartColorVar, normalizeChartColorValue } from \"./chartPalette\";\n\nexport interface MiniNeonSparklinePoint {\n label: string;\n value: number;\n}\n\nexport type MiniNeonSparklineTone =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"info\";\n\nexport interface MiniNeonSparklineProps {\n data: MiniNeonSparklinePoint[];\n height?: number;\n strokeWidth?: number;\n className?: string;\n showArea?: boolean;\n showTooltip?: boolean;\n tone?: MiniNeonSparklineTone;\n}\n\nconst toneColorMap: Record<MiniNeonSparklineTone, string> = {\n default: getChartColorVar(1),\n success: \"var(--ds-color-success)\",\n warning: \"var(--ds-color-warning)\",\n danger: \"var(--ds-color-danger)\",\n info: \"var(--ds-color-info)\",\n};\n\nconst tooltipContentStyle: React.CSSProperties = {\n borderRadius: \"12px\",\n border: \"1px solid var(--ds-border-2)\",\n background: \"var(--ds-surface-1)\",\n color: \"var(--ds-text-1)\",\n fontSize: \"12px\",\n};\n\nexport const MiniNeonSparkline: React.FC<MiniNeonSparklineProps> = ({\n data,\n height = 46,\n strokeWidth = 2,\n className = \"\",\n showArea = true,\n showTooltip = true,\n tone = \"default\",\n}) => {\n const resolvedTone = React.useMemo(\n () => normalizeChartColorValue(toneColorMap[tone]) ?? toneColorMap.default,\n [tone],\n );\n\n const chartGradientId = React.useId();\n const chartGlowId = React.useId();\n\n return (\n <div className={`ui:relative ui:w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <AreaChart\n data={data}\n margin={{ top: 4, right: 2, left: 2, bottom: 4 }}\n >\n <defs>\n <linearGradient id={chartGradientId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={resolvedTone} stopOpacity={0.35} />\n <stop offset=\"100%\" stopColor={resolvedTone} stopOpacity={0.02} />\n </linearGradient>\n <filter\n id={chartGlowId}\n x=\"-20%\"\n y=\"-20%\"\n width=\"140%\"\n height=\"140%\"\n >\n <feDropShadow\n dx=\"0\"\n dy=\"2\"\n stdDeviation=\"3\"\n floodColor={resolvedTone}\n floodOpacity=\"0.45\"\n />\n </filter>\n </defs>\n\n {showArea ? (\n <Area\n type=\"monotone\"\n dataKey=\"value\"\n stroke=\"none\"\n fill={`url(#${chartGradientId})`}\n />\n ) : null}\n\n <Line\n type=\"monotone\"\n dataKey=\"value\"\n stroke={resolvedTone}\n strokeWidth={strokeWidth}\n dot={false}\n isAnimationActive={false}\n filter={`url(#${chartGlowId})`}\n />\n\n {showTooltip ? (\n <Tooltip\n contentStyle={tooltipContentStyle}\n labelStyle={{ color: \"var(--ds-text-2)\", marginBottom: \"4px\" }}\n itemStyle={{ color: \"var(--ds-text-1)\", fontWeight: 600 }}\n formatter={(value) => [String(value ?? \"\"), \"Value\"]}\n />\n ) : null}\n </AreaChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n BarChart as RechartsBarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { normalizeChartColors } from \"./chartPalette\";\nimport {\n chartBandHoverCursorStyle,\n chartLegendTextStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n} from \"./chartStyles\";\n\nexport interface StackedBarData {\n name: string;\n [key: string]: string | number;\n}\n\ninterface StackedBarChartProps {\n data: StackedBarData[];\n categories: { key: string; color: string; label: string }[];\n height?: number | string;\n yAxisDomain?: [number, number];\n className?: string;\n}\n\nexport const StackedBarChart: React.FC<StackedBarChartProps> = ({\n data,\n categories,\n height = 300,\n yAxisDomain,\n className = \"\",\n}) => {\n const normalizedCategories = React.useMemo(() => {\n const normalizedColors = normalizeChartColors(\n categories.map((category) => category.color),\n );\n\n return categories.map((category, index) => ({\n ...category,\n color: normalizedColors[index] ?? category.color,\n }));\n }, [categories]);\n\n return (\n <div className={`w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n data={data}\n margin={{ top: 20, right: 30, left: 20, bottom: 5 }}\n >\n <CartesianGrid\n strokeDasharray=\"3 3\"\n vertical={false}\n stroke=\"var(--ds-color-border)\"\n opacity={0.4}\n />\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n domain={yAxisDomain}\n />\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartBandHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n <Legend\n iconType=\"circle\"\n wrapperStyle={{\n ...chartLegendTextStyle,\n paddingTop: \"20px\",\n }}\n />\n\n {normalizedCategories.map((cat, index) => {\n // Apply rounded radius only to the top bar in the stack\n const isTop = index === normalizedCategories.length - 1;\n const radius: [number, number, number, number] = isTop\n ? [6, 6, 0, 0]\n : [0, 0, 0, 0];\n\n return (\n <Bar\n key={cat.key}\n dataKey={cat.key}\n name={cat.label}\n stackId=\"a\"\n fill={cat.color}\n radius={radius}\n barSize={32}\n />\n );\n })}\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\n\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { normalizeChartColors } from \"./chartPalette\";\nimport { chartPillTooltipStyle } from \"./chartStyles\";\n\nexport interface BreakdownSegment {\n id?: string;\n label: string;\n value: number; // The absolute value or percentage\n color: string;\n}\n\ninterface ThinBreakdownBarProps {\n data: BreakdownSegment[];\n className?: string;\n showLabels?: boolean;\n showSummary?: boolean;\n summaryLabel?: string;\n valueFormatter?: (value: number) => string;\n}\n\nconst defaultValueFormatter = (value: number): string =>\n new Intl.NumberFormat().format(value);\n\nexport const ThinBreakdownBar: React.FC<ThinBreakdownBarProps> = ({\n data: segments,\n className = \"\",\n showLabels = true,\n showSummary = false,\n summaryLabel = \"Total\",\n valueFormatter = defaultValueFormatter,\n}) => {\n const [activeSegmentKey, setActiveSegmentKey] = React.useState<string | null>(\n null,\n );\n\n const normalizedSegments = React.useMemo(() => {\n const normalizedColors = normalizeChartColors(\n segments.map((segment) => segment.color),\n );\n\n const totalValue = segments.reduce((sum, item) => sum + item.value, 0);\n\n return segments.map((segment, index) => ({\n ...segment,\n key: segment.id || `segment-${index}`,\n color: normalizedColors[index] ?? segment.color,\n widthPercent:\n totalValue > 0 ? Math.max((segment.value / totalValue) * 100, 0) : 0,\n }));\n }, [segments]);\n\n const segmentsWithMetrics = React.useMemo(() => {\n let runningPercent = 0;\n\n return normalizedSegments.map((segment) => {\n const nextSegment = {\n ...segment,\n centerPercent: runningPercent + segment.widthPercent / 2,\n };\n\n runningPercent += segment.widthPercent;\n return nextSegment;\n });\n }, [normalizedSegments]);\n\n const activeSegment = React.useMemo(\n () =>\n segmentsWithMetrics.find((segment) => segment.key === activeSegmentKey) ??\n null,\n [activeSegmentKey, segmentsWithMetrics],\n );\n const totalValue = React.useMemo(\n () => segments.reduce((sum, item) => sum + item.value, 0),\n [segments],\n );\n const summaryTitle = activeSegment?.label ?? summaryLabel;\n const summaryValue = activeSegment?.value ?? totalValue;\n const summaryMeta = activeSegment\n ? `${Math.round(activeSegment.widthPercent)}% of total`\n : `${segments.length} segments`;\n\n return (\n <div className={`w-full flex flex-col gap-3 ${className}`}>\n {showSummary && (activeSegment || totalValue > 0) ? (\n <div className=\"flex items-start justify-between gap-4 rounded-xl border border-ds-border-2/70 bg-ds-canvas/70 px-4 py-3 backdrop-blur-md\">\n <div className=\"min-w-0\">\n <TruncatedText\n as=\"p\"\n showTitleOnHover\n className=\"truncate text-[11px] font-medium tracking-[0.16em] text-ds-2 uppercase transition-colors duration-200\"\n style={activeSegment ? { color: activeSegment.color } : undefined}\n >\n {summaryTitle}\n </TruncatedText>\n <p className=\"mt-1 text-xs text-ds-2\">{summaryMeta}</p>\n </div>\n <p\n className=\"text-right text-lg font-semibold leading-none text-ds-1 transition-colors duration-200\"\n style={activeSegment ? { color: activeSegment.color } : undefined}\n >\n {valueFormatter(summaryValue)}\n </p>\n </div>\n ) : null}\n\n <div className=\"relative\">\n {activeSegment && !showSummary && (\n <div\n className=\"pointer-events-none absolute -top-10 z-10 -translate-x-1/2 rounded-full px-2.5 py-1 text-[11px] font-medium text-ds-1\"\n style={{\n ...chartPillTooltipStyle,\n left: `${activeSegment.centerPercent}%`,\n }}\n >\n <span>{activeSegment.label}</span>\n <span className=\"mx-1 text-ds-2\">•</span>\n <span style={{ color: activeSegment.color }}>\n {activeSegment.value}\n </span>\n </div>\n )}\n\n <div className=\"rounded-full bg-ds-surface-2/80 p-0.5\">\n <div\n className=\"flex w-full gap-1\"\n onMouseLeave={() => setActiveSegmentKey(null)}\n >\n {segmentsWithMetrics.map((segment) => {\n const isActive = activeSegmentKey === segment.key;\n\n return (\n <div\n key={segment.key}\n className=\"relative flex h-2.5 min-w-0 items-center\"\n style={{ width: `${segment.widthPercent}%` }}\n onMouseEnter={() => setActiveSegmentKey(segment.key)}\n >\n <div\n className=\"h-full w-full rounded-full transition-[transform,filter,box-shadow,opacity] duration-200 ease-out\"\n style={{\n backgroundColor: segment.color,\n opacity: activeSegmentKey && !isActive ? 0.72 : 1,\n transform: isActive ? \"scaleY(1.3)\" : \"scaleY(1)\",\n filter: isActive\n ? \"saturate(1.1) brightness(1.05)\"\n : \"none\",\n boxShadow: isActive\n ? `inset 0 1px 1px rgba(255,255,255,0.28), 0 0 0 1px color-mix(in srgb, ${segment.color} 35%, transparent), 0 0 14px color-mix(in srgb, ${segment.color} 45%, transparent)`\n : `inset 0 1px 1px rgba(255,255,255,0.2), 0 0 8px color-mix(in srgb, ${segment.color} 30%, transparent)`,\n }}\n title={`${segment.label}: ${segment.value}`}\n />\n </div>\n );\n })}\n </div>\n </div>\n </div>\n\n {showLabels && (\n <div className=\"flex w-full items-start gap-1 px-0.5\">\n {segmentsWithMetrics.map((segment) => {\n const isActive = activeSegmentKey === segment.key;\n\n return (\n <div\n key={`label-${segment.key}`}\n className=\"flex min-w-0 justify-center\"\n style={{ width: `${segment.widthPercent}%` }}\n >\n <span\n className=\"whitespace-nowrap px-1 text-center text-[11px] font-medium tracking-wide text-ds-2 transition-colors duration-200\"\n style={isActive ? { color: segment.color } : undefined}\n >\n {segment.label}\n </span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n AreaChart as RechartsAreaChart,\n Area,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { normalizeChartColors } from \"./chartPalette\";\nimport {\n chartLineHoverCursorStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n getChartActiveDotStyle,\n} from \"./chartStyles\";\n\nexport interface AreaChartData {\n name: string;\n [key: string]: string | number;\n}\n\ninterface AreaChartProps {\n data: AreaChartData[];\n categories: { key: string; color: string }[];\n height?: number | string;\n className?: string;\n showGrid?: boolean;\n}\n\nexport const AreaChart: React.FC<AreaChartProps> = ({\n data,\n categories,\n height = 300,\n className = \"\",\n showGrid = true,\n}) => {\n const normalizedCategories = React.useMemo(() => {\n const normalizedColors = normalizeChartColors(\n categories.map((category) => category.color),\n );\n\n return categories.map((category, index) => ({\n ...category,\n color: normalizedColors[index] ?? category.color,\n }));\n }, [categories]);\n\n return (\n <div className={`w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsAreaChart\n data={data}\n margin={{ top: 10, right: 30, left: 0, bottom: 0 }}\n >\n <defs>\n {normalizedCategories.map((cat) => (\n <linearGradient\n key={`gradient-${cat.key}`}\n id={`color-${cat.key}`}\n x1=\"0\"\n y1=\"0\"\n x2=\"0\"\n y2=\"1\"\n >\n <stop offset=\"5%\" stopColor={cat.color} stopOpacity={0.3} />\n <stop offset=\"95%\" stopColor={cat.color} stopOpacity={0} />\n </linearGradient>\n ))}\n </defs>\n\n {showGrid && (\n <CartesianGrid\n strokeDasharray=\"3 3\"\n vertical={false}\n stroke=\"var(--ds-color-border)\"\n opacity={0.5}\n />\n )}\n\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n />\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartLineHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n\n {normalizedCategories.map((cat) => (\n <Area\n key={cat.key}\n activeDot={getChartActiveDotStyle(cat.color)}\n type=\"monotone\"\n dataKey={cat.key}\n stroke={cat.color}\n strokeWidth={2}\n fillOpacity={1}\n fill={`url(#color-${cat.key})`}\n />\n ))}\n </RechartsAreaChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n BarChart as RechartsBarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { normalizeChartColors } from \"./chartPalette\";\nimport {\n chartBandHoverCursorStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n} from \"./chartStyles\";\n\nexport interface BarChartData {\n name: string;\n [key: string]: string | number;\n}\n\ninterface BarChartProps {\n data: BarChartData[];\n categories: { key: string; color: string }[];\n height?: number | string;\n className?: string;\n layout?: \"horizontal\" | \"vertical\";\n maxBarSize?: number;\n /**\n * Compact mode — strips axes, grid, tooltip, and margins.\n * Designed for small sparkline-style zones (e.g. StatCard md, ~130×68 px).\n */\n compact?: boolean;\n}\n\nexport const BarChart: React.FC<BarChartProps> = ({\n data,\n categories,\n height = 300,\n className = \"\",\n layout = \"horizontal\",\n maxBarSize,\n compact = false,\n}) => {\n const resolvedMaxBarSize = maxBarSize ?? (compact ? 8 : layout === \"horizontal\" ? 40 : 22);\n\n const normalizedCategories = React.useMemo(() => {\n const normalizedColors = normalizeChartColors(\n categories.map((category) => category.color),\n );\n\n return categories.map((category, index) => ({\n ...category,\n color: normalizedColors[index] ?? category.color,\n }));\n }, [categories]);\n\n if (compact) {\n return (\n <div className={`w-full h-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n data={data}\n layout={layout}\n barCategoryGap=\"20%\"\n margin={{ top: 2, right: 2, left: 2, bottom: 2 }}\n >\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartBandHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n {normalizedCategories.map((cat) => (\n <Bar\n key={cat.key}\n dataKey={cat.key}\n fill={cat.color}\n maxBarSize={resolvedMaxBarSize}\n radius={[3, 3, 0, 0]}\n />\n ))}\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n );\n }\n\n return (\n <div className={`w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n data={data}\n layout={layout}\n barCategoryGap={data.length <= 4 ? \"28%\" : \"18%\"}\n margin={{ top: 20, right: 30, left: 20, bottom: 5 }}\n >\n <CartesianGrid\n strokeDasharray=\"3 3\"\n horizontal={layout === \"horizontal\"}\n vertical={layout === \"vertical\"}\n stroke=\"var(--ds-color-border)\"\n opacity={0.4}\n />\n\n {layout === \"horizontal\" ? (\n <>\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n />\n </>\n ) : (\n <>\n <XAxis\n type=\"number\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n <YAxis\n dataKey=\"name\"\n type=\"category\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dx={-10}\n />\n </>\n )}\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartBandHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n\n {normalizedCategories.map((cat) => (\n <Bar\n key={cat.key}\n dataKey={cat.key}\n fill={cat.color}\n maxBarSize={resolvedMaxBarSize}\n radius={layout === \"horizontal\" ? [4, 4, 0, 0] : [0, 4, 4, 0]}\n />\n ))}\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n Bar,\n BarChart as RechartsBarChart,\n CartesianGrid,\n Cell,\n Rectangle,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\n\nimport { getChartColorVar, normalizeChartColorValue } from \"./chartPalette\";\nimport {\n chartBandHoverCursorStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n} from \"./chartStyles\";\n\nexport interface PositiveNegativeBarChartData {\n name: string;\n value: number;\n}\n\ninterface PositiveNegativeBarChartProps {\n data: PositiveNegativeBarChartData[];\n height?: number | string;\n className?: string;\n layout?: \"horizontal\" | \"vertical\";\n positiveColor?: string;\n negativeColor?: string;\n neutralColor?: string;\n showGrid?: boolean;\n seriesLabel?: string;\n valueFormatter?: (value: number) => string;\n tickFormatter?: (value: number) => string;\n}\n\nconst defaultValueFormatter = (value: number): string =>\n new Intl.NumberFormat().format(value);\n\nconst getBarRadius = (\n value: number,\n layout: \"horizontal\" | \"vertical\",\n): [number, number, number, number] => {\n if (value === 0) {\n return [6, 6, 6, 6];\n }\n\n if (layout === \"horizontal\") {\n return [6, 6, 0, 0];\n }\n\n return value > 0 ? [0, 6, 6, 0] : [6, 0, 0, 6];\n};\n\nexport const PositiveNegativeBarChart: React.FC<\n PositiveNegativeBarChartProps\n> = ({\n data,\n height = 320,\n className = \"\",\n layout = \"horizontal\",\n positiveColor = getChartColorVar(3),\n negativeColor = getChartColorVar(5),\n neutralColor = getChartColorVar(15),\n showGrid = true,\n seriesLabel = \"Variance\",\n valueFormatter = defaultValueFormatter,\n tickFormatter,\n}) => {\n const resolvedPositiveColor = React.useMemo(\n () => normalizeChartColorValue(positiveColor) ?? getChartColorVar(3),\n [positiveColor],\n );\n const resolvedNegativeColor = React.useMemo(\n () => normalizeChartColorValue(negativeColor) ?? getChartColorVar(5),\n [negativeColor],\n );\n const resolvedNeutralColor = React.useMemo(\n () => normalizeChartColorValue(neutralColor) ?? getChartColorVar(15),\n [neutralColor],\n );\n\n const resolvedTickFormatter = React.useCallback(\n (value: number) => tickFormatter?.(value) ?? valueFormatter(value),\n [tickFormatter, valueFormatter],\n );\n\n const getBarFill = React.useCallback(\n (value: number) => {\n if (value > 0) {\n return resolvedPositiveColor;\n }\n\n if (value < 0) {\n return resolvedNegativeColor;\n }\n\n return resolvedNeutralColor;\n },\n [resolvedNegativeColor, resolvedNeutralColor, resolvedPositiveColor],\n );\n\n return (\n <div className={`w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n data={data}\n layout={layout}\n margin={{ top: 20, right: 30, left: 20, bottom: 5 }}\n >\n {showGrid ? (\n <CartesianGrid\n strokeDasharray=\"3 3\"\n horizontal={layout === \"horizontal\"}\n vertical={layout === \"vertical\"}\n stroke=\"var(--ds-color-border)\"\n opacity={0.35}\n />\n ) : null}\n\n {layout === \"horizontal\" ? (\n <>\n <XAxis\n dataKey=\"name\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n dy={10}\n />\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n tickFormatter={resolvedTickFormatter}\n dx={-10}\n />\n <ReferenceLine\n y={0}\n stroke=\"var(--ds-color-border-strong)\"\n strokeOpacity={0.95}\n />\n </>\n ) : (\n <>\n <XAxis\n type=\"number\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n tickFormatter={resolvedTickFormatter}\n dy={10}\n />\n <YAxis\n dataKey=\"name\"\n type=\"category\"\n axisLine={false}\n tickLine={false}\n tick={{ fill: \"var(--ds-color-fg-muted)\", fontSize: 12 }}\n width={96}\n dx={-6}\n />\n <ReferenceLine\n x={0}\n stroke=\"var(--ds-color-border-strong)\"\n strokeOpacity={0.95}\n />\n </>\n )}\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n cursor={chartBandHoverCursorStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n formatter={(value) => [\n valueFormatter(Number(value ?? 0)),\n seriesLabel,\n ]}\n />\n\n <Bar\n dataKey=\"value\"\n radius={6}\n barSize={layout === \"horizontal\" ? 30 : 22}\n shape={(props) => {\n const barValue = Array.isArray(props.value)\n ? props.value[1] - props.value[0]\n : props.value;\n\n return (\n <Rectangle {...props} radius={getBarRadius(barValue, layout)} />\n );\n }}\n >\n {data.map((entry) => (\n <Cell\n key={`${entry.name}-${entry.value}`}\n fill={getBarFill(entry.value)}\n />\n ))}\n </Bar>\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n );\n};\n","\"use client\";\n\nimport React from \"react\";\nimport {\n PieChart as RechartsPieChart,\n Pie,\n Cell,\n Tooltip,\n Legend,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { normalizeChartColors } from \"./chartPalette\";\nimport {\n chartLegendTextStyle,\n chartTooltipContentStyle,\n chartTooltipItemStyle,\n chartTooltipLabelStyle,\n chartTooltipWrapperStyle,\n} from \"./chartStyles\";\n\nexport interface PieChartData {\n name: string;\n value: number;\n}\n\nexport interface PieChartCenterContentContext {\n activeColor?: string;\n activeIndex: number | null;\n activeSlice: PieChartData | null;\n data: PieChartData[];\n displayLabel: string;\n displayPercentageLabel: string;\n displayValue: number;\n normalizedColors: string[];\n totalValue: number;\n valueFormatter: (value: number) => string;\n variant: \"pie\" | \"donut\";\n}\n\nexport interface PieChartProps {\n data: PieChartData[];\n colors: string[];\n height?: number | string;\n className?: string;\n variant?: \"pie\" | \"donut\";\n showCenterSummary?: boolean;\n centerLabel?: string;\n valueFormatter?: (value: number) => string;\n renderCenterContent?: (\n context: PieChartCenterContentContext,\n ) => React.ReactNode;\n}\n\nconst defaultValueFormatter = (value: number): string =>\n new Intl.NumberFormat().format(value);\n\nexport const PieChart: React.FC<PieChartProps> = ({\n data,\n colors,\n height = 300,\n className = \"\",\n variant = \"donut\",\n showCenterSummary = variant === \"donut\",\n centerLabel = \"Total\",\n valueFormatter = defaultValueFormatter,\n renderCenterContent,\n}) => {\n const [activeIndex, setActiveIndex] = React.useState<number | null>(null);\n const innerRadius = variant === \"donut\" ? \"60%\" : 0;\n const normalizedColors = React.useMemo(\n () => normalizeChartColors(colors),\n [colors],\n );\n const totalValue = React.useMemo(\n () => data.reduce((sum, item) => sum + item.value, 0),\n [data],\n );\n const activeSlice =\n activeIndex !== null && activeIndex >= 0 && activeIndex < data.length\n ? data[activeIndex]\n : null;\n const activePercentage =\n activeSlice && totalValue > 0\n ? `${Math.round((activeSlice.value / totalValue) * 100)}% of total`\n : `${data.length} categories`;\n const displayLabel = activeSlice?.name ?? centerLabel;\n const displayValue = activeSlice?.value ?? totalValue;\n const activeColor =\n activeIndex !== null\n ? normalizedColors[activeIndex % normalizedColors.length]\n : undefined;\n const centerContentContext: PieChartCenterContentContext = {\n activeColor,\n activeIndex,\n activeSlice,\n data,\n displayLabel,\n displayPercentageLabel: activePercentage,\n displayValue,\n normalizedColors,\n totalValue,\n valueFormatter,\n variant,\n };\n const shouldRenderCenterContent =\n variant === \"donut\" && (showCenterSummary || Boolean(renderCenterContent));\n\n return (\n <div className={`relative w-full ${className}`} style={{ height }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsPieChart>\n <Pie\n data={data}\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={innerRadius}\n outerRadius=\"80%\"\n paddingAngle={variant === \"donut\" ? 2 : 0}\n dataKey=\"value\"\n stroke=\"none\"\n onMouseEnter={(_data: unknown, index: number) =>\n setActiveIndex(index)\n }\n onMouseLeave={() => setActiveIndex(null)}\n >\n {data.map((entry, index) => (\n <Cell\n key={`cell-${index}`}\n fill={normalizedColors[index % normalizedColors.length]}\n />\n ))}\n </Pie>\n\n <Tooltip\n contentStyle={chartTooltipContentStyle}\n itemStyle={chartTooltipItemStyle}\n labelStyle={chartTooltipLabelStyle}\n wrapperStyle={chartTooltipWrapperStyle}\n />\n\n <Legend iconType=\"circle\" wrapperStyle={chartLegendTextStyle} />\n </RechartsPieChart>\n </ResponsiveContainer>\n\n {shouldRenderCenterContent ? (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n {renderCenterContent ? (\n renderCenterContent(centerContentContext)\n ) : (\n <div className=\"flex max-w-[42%] flex-col items-center text-center\">\n <p className=\"text-[11px] font-medium tracking-[0.16em] text-ds-2 uppercase\">\n {displayLabel}\n </p>\n <p className=\"mt-1 text-2xl font-semibold leading-none text-ds-1 sm:text-3xl\">\n {valueFormatter(displayValue)}\n </p>\n <p className=\"mt-2 text-xs leading-tight text-ds-2\">\n {activePercentage}\n </p>\n </div>\n )}\n </div>\n ) : null}\n </div>\n );\n};\n"],"mappings":"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"}
@@ -50,4 +50,4 @@ Checkbox.displayName = "Checkbox";
50
50
  //#endregion
51
51
  export { Checkbox as t };
52
52
 
53
- //# sourceMappingURL=checkbox-3aB7XC9_.mjs.map
53
+ //# sourceMappingURL=checkbox-D7EJQbqC.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-3aB7XC9_.mjs","names":[],"sources":["../../src/components/forms/checkbox/Checkbox.tsx"],"sourcesContent":["import type { CheckboxProps } from \"./types\";\nimport { forwardRef, useId } from \"react\";\n\nconst sanitizeId = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n\nconst colorClasses: Record<NonNullable<CheckboxProps[\"color\"]>, string> = {\n red: \"checked:bg-ds-state-danger\",\n blue: \"checked:bg-ds-state-info\",\n green: \"checked:bg-ds-state-success\",\n yellow: \"checked:bg-ds-state-warning\",\n teal: \"checked:bg-ds-brand-teal\",\n primary: \"checked:bg-ds-accent\",\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n className = \"\",\n label,\n error,\n id,\n extra = \"\",\n color = \"primary\",\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const checkboxId = id || `checkbox-${sanitizeId(generatedId)}`;\n\n // Custom CheckIcon SVG (stroke-based design)\n const checkmarkIcon = `url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M5 13l4 4L19 7'/%3e%3c/svg%3e\")`;\n\n // Check if color is a predefined color name or a custom value\n const isPredefinedColor = color in colorClasses;\n const customColorStyle = !isPredefinedColor ? color : undefined;\n\n return (\n <>\n <style>{`\n .checkbox-custom-${checkboxId}:checked {\n background-image: ${checkmarkIcon};\n background-size: 70%;\n background-position: center;\n background-repeat: no-repeat;\n ${customColorStyle ? `background-color: ${customColorStyle} !important;` : \"\"}\n }\n `}</style>\n <div className=\"flex items-center gap-2\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n className={`checkbox-custom-${checkboxId} peer relative flex h-5 min-h-[20px] w-5 min-w-[20px] appearance-none items-center justify-center rounded-md border border-ds-border-field transition duration-200 outline-none checked:border-none checked:text-ds-on-accent hover:cursor-pointer ${\n isPredefinedColor\n ? colorClasses[color as keyof typeof colorClasses]\n : \"\"\n } ${error ? \"border-ds-state-error-border\" : \"\"} ${extra} ${className}`}\n {...props}\n />\n {label && (\n <label\n htmlFor={checkboxId}\n className=\"text-sm font-medium leading-none text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer\"\n >\n {label}\n </label>\n )}\n {error && (\n <p className=\"mt-1 text-sm font-medium text-ds-state-error-text\">\n {error}\n </p>\n )}\n </div>\n </>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"mappings":";;;AAGA,IAAM,cAAc,UAAkB,MAAM,QAAQ,mBAAmB,IAAI;AAE3E,IAAM,eAAoE;CACxE,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,SAAS;CACV;AAED,IAAa,WAAW,YAEpB,EACE,YAAY,IACZ,OACA,OACA,IACA,QAAQ,IACR,QAAQ,WACR,GAAG,SAEL,QACG;CACH,MAAM,cAAc,OAAO;CAC3B,MAAM,aAAa,MAAM,YAAY,WAAW,YAAY;CAG5D,MAAM,gBAAgB;CAGtB,MAAM,oBAAoB,SAAS;CACnC,MAAM,mBAAmB,CAAC,oBAAoB,QAAQ,KAAA;AAEtD,QACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,SAAD,EAAA,UAAQ;6BACa,WAAW;gCACR,cAAc;;;;cAIhC,mBAAmB,qBAAqB,iBAAiB,gBAAgB,GAAG;;WAExE,CAAA,EACV,qBAAC,OAAD;EAAK,WAAU;YAAf;GACE,oBAAC,SAAD;IACO;IACL,MAAK;IACL,IAAI;IACJ,WAAW,mBAAmB,WAAW,qPACvC,oBACI,aAAa,SACb,GACL,GAAG,QAAQ,iCAAiC,GAAG,GAAG,MAAM,GAAG;IAC5D,GAAI;IACJ,CAAA;GACD,SACC,oBAAC,SAAD;IACE,SAAS;IACT,WAAU;cAET;IACK,CAAA;GAET,SACC,oBAAC,KAAD;IAAG,WAAU;cACV;IACC,CAAA;GAEF;IACL,EAAA,CAAA;EAGR;AAED,SAAS,cAAc"}
1
+ {"version":3,"file":"checkbox-D7EJQbqC.mjs","names":[],"sources":["../../src/components/forms/checkbox/Checkbox.tsx"],"sourcesContent":["import type { CheckboxProps } from \"./types\";\nimport { forwardRef, useId } from \"react\";\n\nconst sanitizeId = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n\nconst colorClasses: Record<NonNullable<CheckboxProps[\"color\"]>, string> = {\n red: \"checked:bg-ds-state-danger\",\n blue: \"checked:bg-ds-state-info\",\n green: \"checked:bg-ds-state-success\",\n yellow: \"checked:bg-ds-state-warning\",\n teal: \"checked:bg-ds-brand-teal\",\n primary: \"checked:bg-ds-accent\",\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n className = \"\",\n label,\n error,\n id,\n extra = \"\",\n color = \"primary\",\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const checkboxId = id || `checkbox-${sanitizeId(generatedId)}`;\n\n // Custom CheckIcon SVG (stroke-based design)\n const checkmarkIcon = `url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M5 13l4 4L19 7'/%3e%3c/svg%3e\")`;\n\n // Check if color is a predefined color name or a custom value\n const isPredefinedColor = color in colorClasses;\n const customColorStyle = !isPredefinedColor ? color : undefined;\n\n return (\n <>\n <style>{`\n .checkbox-custom-${checkboxId}:checked {\n background-image: ${checkmarkIcon};\n background-size: 70%;\n background-position: center;\n background-repeat: no-repeat;\n ${customColorStyle ? `background-color: ${customColorStyle} !important;` : \"\"}\n }\n `}</style>\n <div className=\"flex items-center gap-2\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n className={`checkbox-custom-${checkboxId} peer relative flex h-5 min-h-[20px] w-5 min-w-[20px] appearance-none items-center justify-center rounded-md border border-ds-border-field transition duration-200 outline-none checked:border-none checked:text-ds-on-accent hover:cursor-pointer ${\n isPredefinedColor\n ? colorClasses[color as keyof typeof colorClasses]\n : \"\"\n } ${error ? \"border-ds-state-error-border\" : \"\"} ${extra} ${className}`}\n {...props}\n />\n {label && (\n <label\n htmlFor={checkboxId}\n className=\"text-sm font-medium leading-none text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer\"\n >\n {label}\n </label>\n )}\n {error && (\n <p className=\"mt-1 text-sm font-medium text-ds-state-error-text\">\n {error}\n </p>\n )}\n </div>\n </>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"mappings":";;;AAGA,IAAM,cAAc,UAAkB,MAAM,QAAQ,mBAAmB,GAAG;AAE1E,IAAM,eAAoE;CACxE,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,SAAS;AACX;AAEA,IAAa,WAAW,YAEpB,EACE,YAAY,IACZ,OACA,OACA,IACA,QAAQ,IACR,QAAQ,WACR,GAAG,SAEL,QACG;CACH,MAAM,cAAc,MAAM;CAC1B,MAAM,aAAa,MAAM,YAAY,WAAW,WAAW;CAG3D,MAAM,gBAAgB;CAGtB,MAAM,oBAAoB,SAAS;CACnC,MAAM,mBAAmB,CAAC,oBAAoB,QAAQ,KAAA;CAEtD,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,SAAD,EAAA,UAAQ;6BACa,WAAW;gCACR,cAAc;;;;cAIhC,mBAAmB,qBAAqB,iBAAiB,gBAAgB,GAAG;;UAEzE,CAAA,GACT,qBAAC,OAAD;EAAK,WAAU;YAAf;GACE,oBAAC,SAAD;IACO;IACL,MAAK;IACL,IAAI;IACJ,WAAW,mBAAmB,WAAW,qPACvC,oBACI,aAAa,SACb,GACL,GAAG,QAAQ,iCAAiC,GAAG,GAAG,MAAM,GAAG;IAC5D,GAAI;GACL,CAAA;GACA,SACC,oBAAC,SAAD;IACE,SAAS;IACT,WAAU;cAET;GACI,CAAA;GAER,SACC,oBAAC,KAAD;IAAG,WAAU;cACV;GACA,CAAA;EAEF;GACL,EAAA,CAAA;AAEN,CACF;AAEA,SAAS,cAAc"}
@@ -1,4 +1,3 @@
1
- require("./chunk-B_GkZjkl.cjs");
2
1
  let react = require("react");
3
2
  let react_jsx_runtime = require("react/jsx-runtime");
4
3
  //#region src/components/forms/checkbox/Checkbox.tsx
@@ -56,4 +55,4 @@ Object.defineProperty(exports, "Checkbox", {
56
55
  }
57
56
  });
58
57
 
59
- //# sourceMappingURL=checkbox-D8ivRZ1x.cjs.map
58
+ //# sourceMappingURL=checkbox-Lw2UqyNE.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-D8ivRZ1x.cjs","names":[],"sources":["../../src/components/forms/checkbox/Checkbox.tsx"],"sourcesContent":["import type { CheckboxProps } from \"./types\";\nimport { forwardRef, useId } from \"react\";\n\nconst sanitizeId = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n\nconst colorClasses: Record<NonNullable<CheckboxProps[\"color\"]>, string> = {\n red: \"checked:bg-ds-state-danger\",\n blue: \"checked:bg-ds-state-info\",\n green: \"checked:bg-ds-state-success\",\n yellow: \"checked:bg-ds-state-warning\",\n teal: \"checked:bg-ds-brand-teal\",\n primary: \"checked:bg-ds-accent\",\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n className = \"\",\n label,\n error,\n id,\n extra = \"\",\n color = \"primary\",\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const checkboxId = id || `checkbox-${sanitizeId(generatedId)}`;\n\n // Custom CheckIcon SVG (stroke-based design)\n const checkmarkIcon = `url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M5 13l4 4L19 7'/%3e%3c/svg%3e\")`;\n\n // Check if color is a predefined color name or a custom value\n const isPredefinedColor = color in colorClasses;\n const customColorStyle = !isPredefinedColor ? color : undefined;\n\n return (\n <>\n <style>{`\n .checkbox-custom-${checkboxId}:checked {\n background-image: ${checkmarkIcon};\n background-size: 70%;\n background-position: center;\n background-repeat: no-repeat;\n ${customColorStyle ? `background-color: ${customColorStyle} !important;` : \"\"}\n }\n `}</style>\n <div className=\"flex items-center gap-2\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n className={`checkbox-custom-${checkboxId} peer relative flex h-5 min-h-[20px] w-5 min-w-[20px] appearance-none items-center justify-center rounded-md border border-ds-border-field transition duration-200 outline-none checked:border-none checked:text-ds-on-accent hover:cursor-pointer ${\n isPredefinedColor\n ? colorClasses[color as keyof typeof colorClasses]\n : \"\"\n } ${error ? \"border-ds-state-error-border\" : \"\"} ${extra} ${className}`}\n {...props}\n />\n {label && (\n <label\n htmlFor={checkboxId}\n className=\"text-sm font-medium leading-none text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer\"\n >\n {label}\n </label>\n )}\n {error && (\n <p className=\"mt-1 text-sm font-medium text-ds-state-error-text\">\n {error}\n </p>\n )}\n </div>\n </>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"mappings":";;;;AAGA,IAAM,cAAc,UAAkB,MAAM,QAAQ,mBAAmB,IAAI;AAE3E,IAAM,eAAoE;CACxE,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,SAAS;CACV;AAED,IAAa,YAAA,GAAA,MAAA,aAET,EACE,YAAY,IACZ,OACA,OACA,IACA,QAAQ,IACR,QAAQ,WACR,GAAG,SAEL,QACG;CACH,MAAM,eAAA,GAAA,MAAA,QAAqB;CAC3B,MAAM,aAAa,MAAM,YAAY,WAAW,YAAY;CAG5D,MAAM,gBAAgB;CAGtB,MAAM,oBAAoB,SAAS;CACnC,MAAM,mBAAmB,CAAC,oBAAoB,QAAQ,KAAA;AAEtD,QACE,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAC,SAAD,EAAA,UAAQ;6BACa,WAAW;gCACR,cAAc;;;;cAIhC,mBAAmB,qBAAqB,iBAAiB,gBAAgB,GAAG;;WAExE,CAAA,EACV,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,WAAU;YAAf;GACE,iBAAA,GAAA,kBAAA,KAAC,SAAD;IACO;IACL,MAAK;IACL,IAAI;IACJ,WAAW,mBAAmB,WAAW,qPACvC,oBACI,aAAa,SACb,GACL,GAAG,QAAQ,iCAAiC,GAAG,GAAG,MAAM,GAAG;IAC5D,GAAI;IACJ,CAAA;GACD,SACC,iBAAA,GAAA,kBAAA,KAAC,SAAD;IACE,SAAS;IACT,WAAU;cAET;IACK,CAAA;GAET,SACC,iBAAA,GAAA,kBAAA,KAAC,KAAD;IAAG,WAAU;cACV;IACC,CAAA;GAEF;IACL,EAAA,CAAA;EAGR;AAED,SAAS,cAAc"}
1
+ {"version":3,"file":"checkbox-Lw2UqyNE.cjs","names":[],"sources":["../../src/components/forms/checkbox/Checkbox.tsx"],"sourcesContent":["import type { CheckboxProps } from \"./types\";\nimport { forwardRef, useId } from \"react\";\n\nconst sanitizeId = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n\nconst colorClasses: Record<NonNullable<CheckboxProps[\"color\"]>, string> = {\n red: \"checked:bg-ds-state-danger\",\n blue: \"checked:bg-ds-state-info\",\n green: \"checked:bg-ds-state-success\",\n yellow: \"checked:bg-ds-state-warning\",\n teal: \"checked:bg-ds-brand-teal\",\n primary: \"checked:bg-ds-accent\",\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n className = \"\",\n label,\n error,\n id,\n extra = \"\",\n color = \"primary\",\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const checkboxId = id || `checkbox-${sanitizeId(generatedId)}`;\n\n // Custom CheckIcon SVG (stroke-based design)\n const checkmarkIcon = `url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M5 13l4 4L19 7'/%3e%3c/svg%3e\")`;\n\n // Check if color is a predefined color name or a custom value\n const isPredefinedColor = color in colorClasses;\n const customColorStyle = !isPredefinedColor ? color : undefined;\n\n return (\n <>\n <style>{`\n .checkbox-custom-${checkboxId}:checked {\n background-image: ${checkmarkIcon};\n background-size: 70%;\n background-position: center;\n background-repeat: no-repeat;\n ${customColorStyle ? `background-color: ${customColorStyle} !important;` : \"\"}\n }\n `}</style>\n <div className=\"flex items-center gap-2\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n className={`checkbox-custom-${checkboxId} peer relative flex h-5 min-h-[20px] w-5 min-w-[20px] appearance-none items-center justify-center rounded-md border border-ds-border-field transition duration-200 outline-none checked:border-none checked:text-ds-on-accent hover:cursor-pointer ${\n isPredefinedColor\n ? colorClasses[color as keyof typeof colorClasses]\n : \"\"\n } ${error ? \"border-ds-state-error-border\" : \"\"} ${extra} ${className}`}\n {...props}\n />\n {label && (\n <label\n htmlFor={checkboxId}\n className=\"text-sm font-medium leading-none text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer\"\n >\n {label}\n </label>\n )}\n {error && (\n <p className=\"mt-1 text-sm font-medium text-ds-state-error-text\">\n {error}\n </p>\n )}\n </div>\n </>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"mappings":";;;AAGA,IAAM,cAAc,UAAkB,MAAM,QAAQ,mBAAmB,GAAG;AAE1E,IAAM,eAAoE;CACxE,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,SAAS;AACX;AAEA,IAAa,YAAA,GAAA,MAAA,aAET,EACE,YAAY,IACZ,OACA,OACA,IACA,QAAQ,IACR,QAAQ,WACR,GAAG,SAEL,QACG;CACH,MAAM,eAAA,GAAA,MAAA,OAAoB;CAC1B,MAAM,aAAa,MAAM,YAAY,WAAW,WAAW;CAG3D,MAAM,gBAAgB;CAGtB,MAAM,oBAAoB,SAAS;CACnC,MAAM,mBAAmB,CAAC,oBAAoB,QAAQ,KAAA;CAEtD,OACE,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAC,SAAD,EAAA,UAAQ;6BACa,WAAW;gCACR,cAAc;;;;cAIhC,mBAAmB,qBAAqB,iBAAiB,gBAAgB,GAAG;;UAEzE,CAAA,GACT,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,WAAU;YAAf;GACE,iBAAA,GAAA,kBAAA,KAAC,SAAD;IACO;IACL,MAAK;IACL,IAAI;IACJ,WAAW,mBAAmB,WAAW,qPACvC,oBACI,aAAa,SACb,GACL,GAAG,QAAQ,iCAAiC,GAAG,GAAG,MAAM,GAAG;IAC5D,GAAI;GACL,CAAA;GACA,SACC,iBAAA,GAAA,kBAAA,KAAC,SAAD;IACE,SAAS;IACT,WAAU;cAET;GACI,CAAA;GAER,SACC,iBAAA,GAAA,kBAAA,KAAC,KAAD;IAAG,WAAU;cACV;GACA,CAAA;EAEF;GACL,EAAA,CAAA;AAEN,CACF;AAEA,SAAS,cAAc"}
@@ -1,7 +1,6 @@
1
- require("./chunk-B_GkZjkl.cjs");
2
- const require_utils = require("./utils-LRbEQHYs.cjs");
3
- const require_truncated_text = require("./truncated-text-BIXqNfOL.cjs");
4
- const require_icons = require("./icons-CRanVZB1.cjs");
1
+ const require_utils = require("./utils-CoA0q63n.cjs");
2
+ const require_truncated_text = require("./truncated-text-D0t4atw5.cjs");
3
+ const require_icons = require("./icons-Ci8yEvvF.cjs");
5
4
  let react = require("react");
6
5
  let react_jsx_runtime = require("react/jsx-runtime");
7
6
  //#region src/components/data-display/chip/Chip.tsx
@@ -203,4 +202,4 @@ Object.defineProperty(exports, "StatusDotChip", {
203
202
  }
204
203
  });
205
204
 
206
- //# sourceMappingURL=chip-B0YzBwkz.cjs.map
205
+ //# sourceMappingURL=chip-D5i9VT9O.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"chip-B0YzBwkz.cjs","names":[],"sources":["../../src/components/data-display/chip/Chip.tsx","../../src/components/data-display/chip/SpecialChip.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { CloseIcon } from \"../../icons\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\n\nexport type ChipVariant = \"filled\" | \"outlined\" | \"soft\" | \"glass\";\nexport type ChipColor =\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\nexport type ChipSize = \"xs\" |\"sm\" | \"md\" | \"lg\";\n\nexport interface ChipProps {\n /** The content of the chip */\n children: React.ReactNode;\n /** The variant style of the chip */\n variant?: ChipVariant;\n /** The color scheme of the chip */\n color?: ChipColor;\n /** The size of the chip */\n size?: ChipSize;\n /** Icon or element to display at the start */\n startIcon?: React.ReactNode;\n /** Icon or element to display at the end */\n endIcon?: React.ReactNode;\n /** Makes the chip removable with an X button */\n onRemove?: () => void;\n /** Makes the chip clickable */\n onClick?: () => void;\n /** Whether the chip is disabled */\n disabled?: boolean;\n /** Custom className */\n className?: string;\n /** Whether the chip should have a dot indicator */\n dot?: boolean;\n /** Dot color (uses chip color by default) */\n dotColor?: string;\n /** Maximum width for the chip - text will truncate with ellipsis if exceeded */\n maxWidth?: number | string;\n}\n\nconst sizeStyles: Record<ChipSize, string> = {\n xs: \"px-1.5 py-0.5 text-xs gap-1\",\n sm: \"px-2.5 py-1 text-xs gap-1.5\",\n md: \"px-3 py-1.5 text-sm gap-2\",\n lg: \"px-4 py-2 text-base gap-2.5\",\n};\n\nconst dotSizeStyles: Record<ChipSize, string> = {\n xs: \"w-1 h-1\",\n sm: \"w-1.5 h-1.5\",\n md: \"w-2 h-2\",\n lg: \"w-2.5 h-2.5\",\n};\n\nconst iconSizeStyles: Record<ChipSize, string> = {\n xs: \"w-2 h-2\",\n sm: \"w-3.5 h-3.5\",\n md: \"w-4 h-4\",\n lg: \"w-5 h-5\",\n};\n\nconst colorStyles: Record<ChipVariant, Record<ChipColor, string>> = {\n filled: {\n default: \"bg-ds-surface-2 text-ds-1 shadow-sm border border-ds-border-2\",\n primary:\n \"bg-ds-accent text-ds-on-accent shadow-md shadow-ds-accent/25 border border-ds-border-accent\",\n secondary:\n \"bg-ds-accent-subtle text-ds-1 shadow-sm border border-ds-border-accent\",\n success:\n \"bg-ds-state-success-surface text-ds-state-success-text shadow-sm border border-ds-state-success-border\",\n warning:\n \"bg-ds-state-warning-surface text-ds-state-warning-text shadow-sm border border-ds-state-warning-border\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text shadow-sm border border-ds-state-error-border\",\n info: \"bg-ds-state-info-surface text-ds-state-info-text shadow-sm border border-ds-state-info-border\",\n },\n outlined: {\n default:\n \"border-2 border-ds-border-3 text-ds-2 bg-transparent hover:bg-ds-surface-2\",\n primary:\n \"border-2 border-ds-border-accent bg-transparent text-ds-accent hover:bg-ds-accent-subtle\",\n secondary:\n \"border-2 border-ds-border-3 text-ds-1 bg-transparent hover:bg-ds-surface-2\",\n success:\n \"border-2 border-ds-state-success-border text-ds-state-success-text bg-transparent hover:bg-ds-state-success-surface\",\n warning:\n \"border-2 border-ds-state-warning-border text-ds-state-warning-text bg-transparent hover:bg-ds-state-warning-surface\",\n error:\n \"border-2 border-ds-state-error-border text-ds-state-error-text bg-transparent hover:bg-ds-state-error-surface\",\n info: \"border-2 border-ds-state-info-border text-ds-state-info-text bg-transparent hover:bg-ds-state-info-surface\",\n },\n soft: {\n default:\n \"bg-ds-surface-2 text-ds-1 backdrop-blur-sm border border-ds-border-2\",\n primary:\n \"border border-ds-border-accent/20 bg-ds-accent-subtle text-ds-1 backdrop-blur-sm\",\n secondary:\n \"bg-ds-surface-3/30 text-ds-1 backdrop-blur-sm border border-ds-border-3/50\",\n success:\n \"bg-ds-state-success-surface text-ds-state-success-text backdrop-blur-sm border border-ds-state-success-border/70\",\n warning:\n \"bg-ds-state-warning-surface text-ds-state-warning-text backdrop-blur-sm border border-ds-state-warning-border/70\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text backdrop-blur-sm border border-ds-state-error-border/70\",\n info: \"bg-ds-state-info-surface text-ds-state-info-text backdrop-blur-sm border border-ds-state-info-border/70\",\n },\n glass: {\n default:\n \"bg-ds-surface-1/70 text-ds-1 backdrop-blur-xl border border-ds-border-2/40 shadow-lg\",\n primary:\n \"border border-ds-border-accent/20 bg-ds-accent/15 text-ds-1 backdrop-blur-xl shadow-lg shadow-ds-accent/10\",\n secondary:\n \"bg-ds-surface-3/45 text-ds-1 backdrop-blur-xl border border-ds-border-3/50 shadow-lg\",\n success:\n \"bg-ds-state-success-surface/65 text-ds-state-success-text backdrop-blur-xl border border-ds-state-success-border/60 shadow-lg\",\n warning:\n \"bg-ds-state-warning-surface/65 text-ds-state-warning-text backdrop-blur-xl border border-ds-state-warning-border/60 shadow-lg\",\n error:\n \"bg-ds-state-error-surface/65 text-ds-state-error-text backdrop-blur-xl border border-ds-state-error-border/60 shadow-lg\",\n info: \"bg-ds-state-info-surface/65 text-ds-state-info-text backdrop-blur-xl border border-ds-state-info-border/60 shadow-lg\",\n },\n};\n\nconst dotColorStyles: Record<ChipColor, string> = {\n default: \"bg-ds-3\",\n primary: \"bg-ds-accent\",\n secondary: \"bg-ds-border-3\",\n success: \"bg-ds-state-success\",\n warning: \"bg-ds-state-warning\",\n error: \"bg-ds-state-danger\",\n info: \"bg-ds-state-info\",\n};\n\nconst Chip = forwardRef<HTMLSpanElement, ChipProps>(\n (\n {\n children,\n variant = \"soft\",\n color = \"default\",\n size = \"xs\",\n startIcon,\n endIcon,\n onRemove,\n onClick,\n disabled = false,\n className = \"\",\n dot = false,\n dotColor,\n maxWidth,\n },\n ref,\n ) => {\n const isClickable = onClick !== undefined;\n const isRemovable = onRemove !== undefined;\n\n const baseStyles = `\n inline-flex items-center font-medium rounded-md transition-all duration-200\n ${sizeStyles[size]}\n ${colorStyles[variant][color]}\n ${\n isClickable && !disabled\n ? \"cursor-pointer hover:scale-105 hover:shadow-lg active:scale-95\"\n : \"\"\n }\n ${disabled ? \"opacity-50 cursor-not-allowed grayscale\" : \"\"}\n ${maxWidth ? \"max-w-full\" : \"\"}\n ${className}\n `;\n\n const handleClick = () => {\n if (!disabled && onClick) {\n onClick();\n }\n };\n\n const handleRemove = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!disabled && onRemove) {\n onRemove();\n }\n };\n\n return (\n <span\n ref={ref}\n className={baseStyles}\n onClick={handleClick}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable && !disabled ? 0 : undefined}\n style={\n maxWidth\n ? {\n maxWidth:\n typeof maxWidth === \"number\" ? `${maxWidth}px` : maxWidth,\n }\n : undefined\n }\n onKeyDown={(e) => {\n if (\n isClickable &&\n !disabled &&\n (e.key === \"Enter\" || e.key === \" \")\n ) {\n e.preventDefault();\n onClick?.();\n }\n }}\n >\n {dot && (\n <span\n className={`rounded-full shrink-0 animate-pulse ${\n dotSizeStyles[size]\n } ${dotColor ? \"\" : dotColorStyles[color]}`}\n style={dotColor ? { backgroundColor: dotColor } : undefined}\n />\n )}\n {startIcon && (\n <span className={`inline-flex shrink-0 items-center justify-center ${iconSizeStyles[size]}`}>\n {startIcon}\n </span>\n )}\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"max-w-full font-semibold\"\n >\n {children}\n </TruncatedText>\n {endIcon && !isRemovable && (\n <span className={`inline-flex shrink-0 items-center justify-center ${iconSizeStyles[size]}`}>{endIcon}</span>\n )}\n {isRemovable && (\n <button\n type=\"button\"\n onClick={handleRemove}\n disabled={disabled}\n className={`\n shrink-0 rounded-full p-0.5 ml-1 transition-all duration-200\n hover:bg-ds-surface-3/35 hover:scale-110\n focus:outline-none focus:ring-2 focus:ring-current focus:ring-offset-1\n ${disabled ? \"cursor-not-allowed\" : \"cursor-pointer\"}\n `}\n aria-label=\"Remove\"\n >\n <CloseIcon className={iconSizeStyles[size]} aria-hidden=\"true\" />\n </button>\n )}\n </span>\n );\n },\n);\n\nChip.displayName = \"Chip\";\n\nexport default Chip;\nexport { Chip };\n","import type { ReactNode } from \"react\";\n\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport type SplitChipDirection = \"auto\" | \"ltr\" | \"rtl\";\n\nexport interface SplitChipProps {\n leftLabel: ReactNode;\n rightLabel: ReactNode;\n dir?: SplitChipDirection;\n rightLabelDir?: SplitChipDirection;\n truncateRight?: boolean;\n rightMaxWidth?: string | number;\n showRightTitleOnHover?: boolean;\n className?: string;\n leftClassName?: string;\n rightClassName?: string;\n}\n\nexport function SplitChip({\n leftLabel,\n rightLabel,\n dir = \"auto\",\n rightLabelDir = \"ltr\",\n truncateRight = false,\n rightMaxWidth = \"10rem\",\n showRightTitleOnHover = true,\n className,\n leftClassName,\n rightClassName,\n}: SplitChipProps) {\n const isRtl = dir === \"rtl\";\n\n return (\n <span\n dir={dir}\n className={mergeClassNames(\n \"inline-flex items-center overflow-hidden rounded-md border border-ds-border-2 bg-ds-surface-2\",\n className,\n )}\n >\n <span\n className={mergeClassNames(\n \"bg-ds-surface-3 px-2 py-1 text-xs font-medium uppercase tracking-[0.05em] text-ds-2\",\n isRtl ? \"border-l border-ds-border-2\" : \"border-r border-ds-border-2\",\n leftClassName,\n )}\n >\n {leftLabel}\n </span>\n <span\n dir={rightLabelDir}\n className={mergeClassNames(\n \"min-w-0 px-2 py-1 text-xs font-medium text-ds-1\",\n rightClassName,\n )}\n >\n {truncateRight ? (\n <TruncatedText\n maxWidth={rightMaxWidth}\n showTitleOnHover={showRightTitleOnHover}\n >\n {rightLabel}\n </TruncatedText>\n ) : (\n rightLabel\n )}\n </span>\n </span>\n );\n}\n\nexport type StatusDotChipTone = \"success\" | \"warning\" | \"danger\" | \"info\";\n\nexport interface StatusDotChipProps {\n label: string;\n tone?: StatusDotChipTone;\n className?: string;\n}\n\nconst toneClasses: Record<StatusDotChipTone, string> = {\n success:\n \"bg-ds-state-success-surface text-ds-state-success-text border-ds-state-success-border\",\n warning:\n \"bg-ds-state-warning-surface text-ds-state-warning-text border-ds-state-warning-border\",\n danger:\n \"bg-ds-state-error-surface text-ds-state-error-text border-ds-state-error-border\",\n info: \"bg-ds-state-info-surface text-ds-state-info-text border-ds-state-info-border\",\n};\n\nconst dotToneClasses: Record<StatusDotChipTone, string> = {\n success: \"bg-ds-state-success\",\n warning: \"bg-ds-state-warning\",\n danger: \"bg-ds-state-danger\",\n info: \"bg-ds-state-info\",\n};\n\nexport function StatusDotChip({\n label,\n tone = \"info\",\n className,\n}: StatusDotChipProps) {\n return (\n <span\n className={mergeClassNames(\n \"inline-flex items-center gap-2 rounded-md border px-3 py-1 text-sm font-medium\",\n toneClasses[tone],\n className,\n )}\n >\n <span\n aria-hidden=\"true\"\n className={mergeClassNames(\n \"h-2.5 w-2.5 rounded-full\",\n dotToneClasses[tone],\n )}\n />\n <span>{label}</span>\n </span>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"chip-D5i9VT9O.cjs","names":[],"sources":["../../src/components/data-display/chip/Chip.tsx","../../src/components/data-display/chip/SpecialChip.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { CloseIcon } from \"../../icons\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\n\nexport type ChipVariant = \"filled\" | \"outlined\" | \"soft\" | \"glass\";\nexport type ChipColor =\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\nexport type ChipSize = \"xs\" |\"sm\" | \"md\" | \"lg\";\n\nexport interface ChipProps {\n /** The content of the chip */\n children: React.ReactNode;\n /** The variant style of the chip */\n variant?: ChipVariant;\n /** The color scheme of the chip */\n color?: ChipColor;\n /** The size of the chip */\n size?: ChipSize;\n /** Icon or element to display at the start */\n startIcon?: React.ReactNode;\n /** Icon or element to display at the end */\n endIcon?: React.ReactNode;\n /** Makes the chip removable with an X button */\n onRemove?: () => void;\n /** Makes the chip clickable */\n onClick?: () => void;\n /** Whether the chip is disabled */\n disabled?: boolean;\n /** Custom className */\n className?: string;\n /** Whether the chip should have a dot indicator */\n dot?: boolean;\n /** Dot color (uses chip color by default) */\n dotColor?: string;\n /** Maximum width for the chip - text will truncate with ellipsis if exceeded */\n maxWidth?: number | string;\n}\n\nconst sizeStyles: Record<ChipSize, string> = {\n xs: \"px-1.5 py-0.5 text-xs gap-1\",\n sm: \"px-2.5 py-1 text-xs gap-1.5\",\n md: \"px-3 py-1.5 text-sm gap-2\",\n lg: \"px-4 py-2 text-base gap-2.5\",\n};\n\nconst dotSizeStyles: Record<ChipSize, string> = {\n xs: \"w-1 h-1\",\n sm: \"w-1.5 h-1.5\",\n md: \"w-2 h-2\",\n lg: \"w-2.5 h-2.5\",\n};\n\nconst iconSizeStyles: Record<ChipSize, string> = {\n xs: \"w-2 h-2\",\n sm: \"w-3.5 h-3.5\",\n md: \"w-4 h-4\",\n lg: \"w-5 h-5\",\n};\n\nconst colorStyles: Record<ChipVariant, Record<ChipColor, string>> = {\n filled: {\n default: \"bg-ds-surface-2 text-ds-1 shadow-sm border border-ds-border-2\",\n primary:\n \"bg-ds-accent text-ds-on-accent shadow-md shadow-ds-accent/25 border border-ds-border-accent\",\n secondary:\n \"bg-ds-accent-subtle text-ds-1 shadow-sm border border-ds-border-accent\",\n success:\n \"bg-ds-state-success-surface text-ds-state-success-text shadow-sm border border-ds-state-success-border\",\n warning:\n \"bg-ds-state-warning-surface text-ds-state-warning-text shadow-sm border border-ds-state-warning-border\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text shadow-sm border border-ds-state-error-border\",\n info: \"bg-ds-state-info-surface text-ds-state-info-text shadow-sm border border-ds-state-info-border\",\n },\n outlined: {\n default:\n \"border-2 border-ds-border-3 text-ds-2 bg-transparent hover:bg-ds-surface-2\",\n primary:\n \"border-2 border-ds-border-accent bg-transparent text-ds-accent hover:bg-ds-accent-subtle\",\n secondary:\n \"border-2 border-ds-border-3 text-ds-1 bg-transparent hover:bg-ds-surface-2\",\n success:\n \"border-2 border-ds-state-success-border text-ds-state-success-text bg-transparent hover:bg-ds-state-success-surface\",\n warning:\n \"border-2 border-ds-state-warning-border text-ds-state-warning-text bg-transparent hover:bg-ds-state-warning-surface\",\n error:\n \"border-2 border-ds-state-error-border text-ds-state-error-text bg-transparent hover:bg-ds-state-error-surface\",\n info: \"border-2 border-ds-state-info-border text-ds-state-info-text bg-transparent hover:bg-ds-state-info-surface\",\n },\n soft: {\n default:\n \"bg-ds-surface-2 text-ds-1 backdrop-blur-sm border border-ds-border-2\",\n primary:\n \"border border-ds-border-accent/20 bg-ds-accent-subtle text-ds-1 backdrop-blur-sm\",\n secondary:\n \"bg-ds-surface-3/30 text-ds-1 backdrop-blur-sm border border-ds-border-3/50\",\n success:\n \"bg-ds-state-success-surface text-ds-state-success-text backdrop-blur-sm border border-ds-state-success-border/70\",\n warning:\n \"bg-ds-state-warning-surface text-ds-state-warning-text backdrop-blur-sm border border-ds-state-warning-border/70\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text backdrop-blur-sm border border-ds-state-error-border/70\",\n info: \"bg-ds-state-info-surface text-ds-state-info-text backdrop-blur-sm border border-ds-state-info-border/70\",\n },\n glass: {\n default:\n \"bg-ds-surface-1/70 text-ds-1 backdrop-blur-xl border border-ds-border-2/40 shadow-lg\",\n primary:\n \"border border-ds-border-accent/20 bg-ds-accent/15 text-ds-1 backdrop-blur-xl shadow-lg shadow-ds-accent/10\",\n secondary:\n \"bg-ds-surface-3/45 text-ds-1 backdrop-blur-xl border border-ds-border-3/50 shadow-lg\",\n success:\n \"bg-ds-state-success-surface/65 text-ds-state-success-text backdrop-blur-xl border border-ds-state-success-border/60 shadow-lg\",\n warning:\n \"bg-ds-state-warning-surface/65 text-ds-state-warning-text backdrop-blur-xl border border-ds-state-warning-border/60 shadow-lg\",\n error:\n \"bg-ds-state-error-surface/65 text-ds-state-error-text backdrop-blur-xl border border-ds-state-error-border/60 shadow-lg\",\n info: \"bg-ds-state-info-surface/65 text-ds-state-info-text backdrop-blur-xl border border-ds-state-info-border/60 shadow-lg\",\n },\n};\n\nconst dotColorStyles: Record<ChipColor, string> = {\n default: \"bg-ds-3\",\n primary: \"bg-ds-accent\",\n secondary: \"bg-ds-border-3\",\n success: \"bg-ds-state-success\",\n warning: \"bg-ds-state-warning\",\n error: \"bg-ds-state-danger\",\n info: \"bg-ds-state-info\",\n};\n\nconst Chip = forwardRef<HTMLSpanElement, ChipProps>(\n (\n {\n children,\n variant = \"soft\",\n color = \"default\",\n size = \"xs\",\n startIcon,\n endIcon,\n onRemove,\n onClick,\n disabled = false,\n className = \"\",\n dot = false,\n dotColor,\n maxWidth,\n },\n ref,\n ) => {\n const isClickable = onClick !== undefined;\n const isRemovable = onRemove !== undefined;\n\n const baseStyles = `\n inline-flex items-center font-medium rounded-md transition-all duration-200\n ${sizeStyles[size]}\n ${colorStyles[variant][color]}\n ${\n isClickable && !disabled\n ? \"cursor-pointer hover:scale-105 hover:shadow-lg active:scale-95\"\n : \"\"\n }\n ${disabled ? \"opacity-50 cursor-not-allowed grayscale\" : \"\"}\n ${maxWidth ? \"max-w-full\" : \"\"}\n ${className}\n `;\n\n const handleClick = () => {\n if (!disabled && onClick) {\n onClick();\n }\n };\n\n const handleRemove = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!disabled && onRemove) {\n onRemove();\n }\n };\n\n return (\n <span\n ref={ref}\n className={baseStyles}\n onClick={handleClick}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable && !disabled ? 0 : undefined}\n style={\n maxWidth\n ? {\n maxWidth:\n typeof maxWidth === \"number\" ? `${maxWidth}px` : maxWidth,\n }\n : undefined\n }\n onKeyDown={(e) => {\n if (\n isClickable &&\n !disabled &&\n (e.key === \"Enter\" || e.key === \" \")\n ) {\n e.preventDefault();\n onClick?.();\n }\n }}\n >\n {dot && (\n <span\n className={`rounded-full shrink-0 animate-pulse ${\n dotSizeStyles[size]\n } ${dotColor ? \"\" : dotColorStyles[color]}`}\n style={dotColor ? { backgroundColor: dotColor } : undefined}\n />\n )}\n {startIcon && (\n <span className={`inline-flex shrink-0 items-center justify-center ${iconSizeStyles[size]}`}>\n {startIcon}\n </span>\n )}\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"max-w-full font-semibold\"\n >\n {children}\n </TruncatedText>\n {endIcon && !isRemovable && (\n <span className={`inline-flex shrink-0 items-center justify-center ${iconSizeStyles[size]}`}>{endIcon}</span>\n )}\n {isRemovable && (\n <button\n type=\"button\"\n onClick={handleRemove}\n disabled={disabled}\n className={`\n shrink-0 rounded-full p-0.5 ml-1 transition-all duration-200\n hover:bg-ds-surface-3/35 hover:scale-110\n focus:outline-none focus:ring-2 focus:ring-current focus:ring-offset-1\n ${disabled ? \"cursor-not-allowed\" : \"cursor-pointer\"}\n `}\n aria-label=\"Remove\"\n >\n <CloseIcon className={iconSizeStyles[size]} aria-hidden=\"true\" />\n </button>\n )}\n </span>\n );\n },\n);\n\nChip.displayName = \"Chip\";\n\nexport default Chip;\nexport { Chip };\n","import type { ReactNode } from \"react\";\n\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport type SplitChipDirection = \"auto\" | \"ltr\" | \"rtl\";\n\nexport interface SplitChipProps {\n leftLabel: ReactNode;\n rightLabel: ReactNode;\n dir?: SplitChipDirection;\n rightLabelDir?: SplitChipDirection;\n truncateRight?: boolean;\n rightMaxWidth?: string | number;\n showRightTitleOnHover?: boolean;\n className?: string;\n leftClassName?: string;\n rightClassName?: string;\n}\n\nexport function SplitChip({\n leftLabel,\n rightLabel,\n dir = \"auto\",\n rightLabelDir = \"ltr\",\n truncateRight = false,\n rightMaxWidth = \"10rem\",\n showRightTitleOnHover = true,\n className,\n leftClassName,\n rightClassName,\n}: SplitChipProps) {\n const isRtl = dir === \"rtl\";\n\n return (\n <span\n dir={dir}\n className={mergeClassNames(\n \"inline-flex items-center overflow-hidden rounded-md border border-ds-border-2 bg-ds-surface-2\",\n className,\n )}\n >\n <span\n className={mergeClassNames(\n \"bg-ds-surface-3 px-2 py-1 text-xs font-medium uppercase tracking-[0.05em] text-ds-2\",\n isRtl ? \"border-l border-ds-border-2\" : \"border-r border-ds-border-2\",\n leftClassName,\n )}\n >\n {leftLabel}\n </span>\n <span\n dir={rightLabelDir}\n className={mergeClassNames(\n \"min-w-0 px-2 py-1 text-xs font-medium text-ds-1\",\n rightClassName,\n )}\n >\n {truncateRight ? (\n <TruncatedText\n maxWidth={rightMaxWidth}\n showTitleOnHover={showRightTitleOnHover}\n >\n {rightLabel}\n </TruncatedText>\n ) : (\n rightLabel\n )}\n </span>\n </span>\n );\n}\n\nexport type StatusDotChipTone = \"success\" | \"warning\" | \"danger\" | \"info\";\n\nexport interface StatusDotChipProps {\n label: string;\n tone?: StatusDotChipTone;\n className?: string;\n}\n\nconst toneClasses: Record<StatusDotChipTone, string> = {\n success:\n \"bg-ds-state-success-surface text-ds-state-success-text border-ds-state-success-border\",\n warning:\n \"bg-ds-state-warning-surface text-ds-state-warning-text border-ds-state-warning-border\",\n danger:\n \"bg-ds-state-error-surface text-ds-state-error-text border-ds-state-error-border\",\n info: \"bg-ds-state-info-surface text-ds-state-info-text border-ds-state-info-border\",\n};\n\nconst dotToneClasses: Record<StatusDotChipTone, string> = {\n success: \"bg-ds-state-success\",\n warning: \"bg-ds-state-warning\",\n danger: \"bg-ds-state-danger\",\n info: \"bg-ds-state-info\",\n};\n\nexport function StatusDotChip({\n label,\n tone = \"info\",\n className,\n}: StatusDotChipProps) {\n return (\n <span\n className={mergeClassNames(\n \"inline-flex items-center gap-2 rounded-md border px-3 py-1 text-sm font-medium\",\n toneClasses[tone],\n className,\n )}\n >\n <span\n aria-hidden=\"true\"\n className={mergeClassNames(\n \"h-2.5 w-2.5 rounded-full\",\n dotToneClasses[tone],\n )}\n />\n <span>{label}</span>\n </span>\n );\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { n as mergeClassNames } from "./utils-7S0u48mU.mjs";
2
- import { t as TruncatedText } from "./truncated-text-C9t9o9IA.mjs";
3
- import { q as CloseIcon } from "./icons-bx3nrxNv.mjs";
1
+ import { n as mergeClassNames } from "./utils-Dc7j29ec.mjs";
2
+ import { t as TruncatedText } from "./truncated-text-DIkg-8Vo.mjs";
3
+ import { q as CloseIcon } from "./icons-CkVHNbbN.mjs";
4
4
  import { forwardRef } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/data-display/chip/Chip.tsx
@@ -185,4 +185,4 @@ function StatusDotChip({ label, tone = "info", className }) {
185
185
  //#endregion
186
186
  export { StatusDotChip as n, Chip as r, SplitChip as t };
187
187
 
188
- //# sourceMappingURL=chip-CqcdcSs2.mjs.map
188
+ //# sourceMappingURL=chip-DBlSQcqR.mjs.map