erp-pro-ui 0.2.4 → 0.2.6

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 (413) 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 +14 -0
  22. package/dist/catalog.cjs.map +1 -1
  23. package/dist/catalog.d.ts +25 -1
  24. package/dist/catalog.d.ts.map +1 -1
  25. package/dist/catalog.mjs +14 -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-D07dGN6R.cjs → Drawer-D72Xi2Gq.cjs} +2 -2
  36. package/dist/chunks/{drawer-D07dGN6R.cjs.map → Drawer-D72Xi2Gq.cjs.map} +1 -1
  37. package/dist/chunks/{drawer-DaoAXL-w.mjs → Drawer-Y0_sJni5.mjs} +2 -2
  38. package/dist/chunks/{drawer-DaoAXL-w.mjs.map → Drawer-Y0_sJni5.mjs.map} +1 -1
  39. package/dist/chunks/{DropdownMenu-BtTOri-A.mjs → DropdownMenu-BQ4WlaGp.mjs} +1 -1
  40. package/dist/chunks/{DropdownMenu-BtTOri-A.mjs.map → DropdownMenu-BQ4WlaGp.mjs.map} +1 -1
  41. package/dist/chunks/{DropdownMenu-BDrNYO-D.cjs → DropdownMenu-yh04burS.cjs} +1 -1
  42. package/dist/chunks/{DropdownMenu-BDrNYO-D.cjs.map → DropdownMenu-yh04burS.cjs.map} +1 -1
  43. package/dist/chunks/EllipsisVerticalIcon-BJw3MNkg.cjs +51 -0
  44. package/dist/chunks/EllipsisVerticalIcon-BJw3MNkg.cjs.map +1 -0
  45. package/dist/chunks/EllipsisVerticalIcon-C2b2KMfE.mjs +45 -0
  46. package/dist/chunks/EllipsisVerticalIcon-C2b2KMfE.mjs.map +1 -0
  47. package/dist/chunks/{HoverBorderGradient-NbdXeLgC.mjs → HoverBorderGradient-DEtm3owk.mjs} +1 -1
  48. package/dist/chunks/{HoverBorderGradient-NbdXeLgC.mjs.map → HoverBorderGradient-DEtm3owk.mjs.map} +1 -1
  49. package/dist/chunks/{HoverBorderGradient-9pfvBoHR.cjs → HoverBorderGradient-DMMyr2L3.cjs} +1 -1
  50. package/dist/chunks/{HoverBorderGradient-9pfvBoHR.cjs.map → HoverBorderGradient-DMMyr2L3.cjs.map} +1 -1
  51. package/dist/chunks/{SunToMoonButton-BkEfkElJ.mjs → SunToMoonButton-BOKHzC1H.mjs} +1 -1
  52. package/dist/chunks/{SunToMoonButton-BkEfkElJ.mjs.map → SunToMoonButton-BOKHzC1H.mjs.map} +1 -1
  53. package/dist/chunks/{SunToMoonButton-jS4BJD9q.cjs → SunToMoonButton-gX4Kk_5B.cjs} +1 -1
  54. package/dist/chunks/{SunToMoonButton-jS4BJD9q.cjs.map → SunToMoonButton-gX4Kk_5B.cjs.map} +1 -1
  55. package/dist/chunks/{Tooltip-DK3B879v.mjs → Tooltip-LbOKP__2.mjs} +10 -7
  56. package/dist/chunks/Tooltip-LbOKP__2.mjs.map +1 -0
  57. package/dist/chunks/{Tooltip-DD30yj3A.cjs → Tooltip-nnaiqJTT.cjs} +10 -7
  58. package/dist/chunks/Tooltip-nnaiqJTT.cjs.map +1 -0
  59. package/dist/chunks/{accordion-CmB6EidC.cjs → accordion-Bj3Sj0mC.cjs} +2 -2
  60. package/dist/chunks/{accordion-CmB6EidC.cjs.map → accordion-Bj3Sj0mC.cjs.map} +1 -1
  61. package/dist/chunks/{accordion-6zxJUYXr.mjs → accordion-CLcjNX_X.mjs} +2 -2
  62. package/dist/chunks/{accordion-6zxJUYXr.mjs.map → accordion-CLcjNX_X.mjs.map} +1 -1
  63. package/dist/chunks/{alert-C5KEeQqh.cjs → alert-BBA4Sh4e.cjs} +2 -2
  64. package/dist/chunks/{alert-C5KEeQqh.cjs.map → alert-BBA4Sh4e.cjs.map} +1 -1
  65. package/dist/chunks/{alert-XVmYJgds.mjs → alert-oUz79MGc.mjs} +2 -2
  66. package/dist/chunks/{alert-XVmYJgds.mjs.map → alert-oUz79MGc.mjs.map} +1 -1
  67. package/dist/chunks/{animated-content-CLsFnjgr.cjs → animated-content-B3wbiWQI.cjs} +1 -1
  68. package/dist/chunks/{animated-content-CLsFnjgr.cjs.map → animated-content-B3wbiWQI.cjs.map} +1 -1
  69. package/dist/chunks/{animated-content-bK6xp-vc.mjs → animated-content-CiNJLgbq.mjs} +1 -1
  70. package/dist/chunks/{animated-content-bK6xp-vc.mjs.map → animated-content-CiNJLgbq.mjs.map} +1 -1
  71. package/dist/chunks/{ascii-text-Bdy4C5rU.mjs → ascii-text-C6JegLhP.mjs} +1 -1
  72. package/dist/chunks/{ascii-text-Bdy4C5rU.mjs.map → ascii-text-C6JegLhP.mjs.map} +1 -1
  73. package/dist/chunks/{ascii-text-BFnpVur6.cjs → ascii-text-KwVE41Hw.cjs} +1 -1
  74. package/dist/chunks/{ascii-text-BFnpVur6.cjs.map → ascii-text-KwVE41Hw.cjs.map} +1 -1
  75. package/dist/chunks/{background-gradient-animation-CiNdmA61.cjs → background-gradient-animation-1LZY3DYT.cjs} +1 -1
  76. package/dist/chunks/{background-gradient-animation-CiNdmA61.cjs.map → background-gradient-animation-1LZY3DYT.cjs.map} +1 -1
  77. package/dist/chunks/{background-gradient-animation-BR9wx6Z8.mjs → background-gradient-animation-CTc2ZR74.mjs} +1 -1
  78. package/dist/chunks/{background-gradient-animation-BR9wx6Z8.mjs.map → background-gradient-animation-CTc2ZR74.mjs.map} +1 -1
  79. package/dist/chunks/{button-A6UTvrOu.mjs → button-IDShmQqA.mjs} +3 -2
  80. package/dist/chunks/button-IDShmQqA.mjs.map +1 -0
  81. package/dist/chunks/{button-hover-border-gradient-DnFvjNNw.mjs → button-hover-border-gradient-B2ebbDek.mjs} +2 -2
  82. package/dist/chunks/{button-hover-border-gradient-DnFvjNNw.mjs.map → button-hover-border-gradient-B2ebbDek.mjs.map} +1 -1
  83. package/dist/chunks/{button-hover-border-gradient-ssmwU5-U.cjs → button-hover-border-gradient-DGZqd8je.cjs} +2 -2
  84. package/dist/chunks/{button-hover-border-gradient-ssmwU5-U.cjs.map → button-hover-border-gradient-DGZqd8je.cjs.map} +1 -1
  85. package/dist/chunks/{button-C4MXPxsC.cjs → button-uD87K76W.cjs} +3 -2
  86. package/dist/chunks/button-uD87K76W.cjs.map +1 -0
  87. package/dist/chunks/{calendar-CQJgQ5H_.cjs → calendar-DCkikZYb.cjs} +2 -2
  88. package/dist/chunks/{calendar-CQJgQ5H_.cjs.map → calendar-DCkikZYb.cjs.map} +1 -1
  89. package/dist/chunks/{calendar-5XzPqKbE.mjs → calendar-FxAmm_ao.mjs} +2 -2
  90. package/dist/chunks/{calendar-5XzPqKbE.mjs.map → calendar-FxAmm_ao.mjs.map} +1 -1
  91. package/dist/chunks/{card-RrT68nvu.cjs → card-Cuud0jIt.cjs} +1 -1
  92. package/dist/chunks/{card-RrT68nvu.cjs.map → card-Cuud0jIt.cjs.map} +1 -1
  93. package/dist/chunks/{card-BId1_zHw.mjs → card-DNeC6jqk.mjs} +1 -1
  94. package/dist/chunks/{card-BId1_zHw.mjs.map → card-DNeC6jqk.mjs.map} +1 -1
  95. package/dist/chunks/{carousel-Dd4rp-jr.mjs → carousel-Dpe5QLJK.mjs} +2 -2
  96. package/dist/chunks/{carousel-Dd4rp-jr.mjs.map → carousel-Dpe5QLJK.mjs.map} +1 -1
  97. package/dist/chunks/{carousel-Cv0m1Pp5.cjs → carousel-xHkrV_pt.cjs} +2 -2
  98. package/dist/chunks/{carousel-Cv0m1Pp5.cjs.map → carousel-xHkrV_pt.cjs.map} +1 -1
  99. package/dist/chunks/chartStyles-BADmRKZo.cjs +108 -0
  100. package/dist/chunks/chartStyles-BADmRKZo.cjs.map +1 -0
  101. package/dist/chunks/chartStyles-DPXgYmGn.mjs +55 -0
  102. package/dist/chunks/chartStyles-DPXgYmGn.mjs.map +1 -0
  103. package/dist/chunks/{charts-DkVu0rFc.mjs → charts-C-KQ3Nk5.mjs} +3 -54
  104. package/dist/chunks/charts-C-KQ3Nk5.mjs.map +1 -0
  105. package/dist/chunks/{charts-BmIV-mJy.cjs → charts-COx3IbI2.cjs} +42 -93
  106. package/dist/chunks/charts-COx3IbI2.cjs.map +1 -0
  107. package/dist/chunks/{checkbox-D8ivRZ1x.cjs → checkbox-CDknzh89.cjs} +1 -1
  108. package/dist/chunks/{checkbox-D8ivRZ1x.cjs.map → checkbox-CDknzh89.cjs.map} +1 -1
  109. package/dist/chunks/{checkbox-3aB7XC9_.mjs → checkbox-Y04NlzB8.mjs} +1 -1
  110. package/dist/chunks/{checkbox-3aB7XC9_.mjs.map → checkbox-Y04NlzB8.mjs.map} +1 -1
  111. package/dist/chunks/{chip-CqcdcSs2.mjs → chip-B3j6R6sO.mjs} +3 -3
  112. package/dist/chunks/{chip-CqcdcSs2.mjs.map → chip-B3j6R6sO.mjs.map} +1 -1
  113. package/dist/chunks/{chip-B0YzBwkz.cjs → chip-sfQlzrbo.cjs} +3 -3
  114. package/dist/chunks/{chip-B0YzBwkz.cjs.map → chip-sfQlzrbo.cjs.map} +1 -1
  115. package/dist/chunks/{chroma-grid-opB2DBtS.mjs → chroma-grid-BHS9qAn_.mjs} +1 -1
  116. package/dist/chunks/{chroma-grid-opB2DBtS.mjs.map → chroma-grid-BHS9qAn_.mjs.map} +1 -1
  117. package/dist/chunks/{chroma-grid-DcZ9f4Ui.cjs → chroma-grid-Bp55pKEm.cjs} +1 -1
  118. package/dist/chunks/{chroma-grid-DcZ9f4Ui.cjs.map → chroma-grid-Bp55pKEm.cjs.map} +1 -1
  119. package/dist/chunks/{color-palette-C3lesasJ.mjs → color-palette-D9Qlw2Cx.mjs} +1 -1
  120. package/dist/chunks/{color-palette-C3lesasJ.mjs.map → color-palette-D9Qlw2Cx.mjs.map} +1 -1
  121. package/dist/chunks/{color-palette-pLh6En3n.cjs → color-palette-Duud5Iqq.cjs} +1 -1
  122. package/dist/chunks/{color-palette-pLh6En3n.cjs.map → color-palette-Duud5Iqq.cjs.map} +1 -1
  123. package/dist/chunks/{combobox-CtNrGmuR.cjs → combobox-C3a2iogC.cjs} +4 -4
  124. package/dist/chunks/{combobox-CtNrGmuR.cjs.map → combobox-C3a2iogC.cjs.map} +1 -1
  125. package/dist/chunks/{combobox-B6yk5U82.mjs → combobox-neBItbtz.mjs} +4 -4
  126. package/dist/chunks/{combobox-B6yk5U82.mjs.map → combobox-neBItbtz.mjs.map} +1 -1
  127. package/dist/chunks/dashboard-cards-BnPt0gDW.mjs +2428 -0
  128. package/dist/chunks/dashboard-cards-BnPt0gDW.mjs.map +1 -0
  129. package/dist/chunks/dashboard-cards-DNWJPKRu.cjs +2524 -0
  130. package/dist/chunks/dashboard-cards-DNWJPKRu.cjs.map +1 -0
  131. package/dist/chunks/{data-table-fAEuevPn.cjs → data-table-BZEiSZI2.cjs} +48 -36
  132. package/dist/chunks/data-table-BZEiSZI2.cjs.map +1 -0
  133. package/dist/chunks/{data-table-Dtf6lKpp.mjs → data-table-EfGKkerd.mjs} +47 -35
  134. package/dist/chunks/data-table-EfGKkerd.mjs.map +1 -0
  135. package/dist/chunks/{date-picker-BmQ0rgwH.mjs → date-picker-3IDSmb9Z.mjs} +3 -3
  136. package/dist/chunks/{date-picker-BmQ0rgwH.mjs.map → date-picker-3IDSmb9Z.mjs.map} +1 -1
  137. package/dist/chunks/{date-picker-qpUZMtZC.cjs → date-picker-_EVYpGga.cjs} +3 -3
  138. package/dist/chunks/{date-picker-qpUZMtZC.cjs.map → date-picker-_EVYpGga.cjs.map} +1 -1
  139. package/dist/chunks/{dialog-DSyq6MS3.mjs → dialog-B60BjJz0.mjs} +3 -3
  140. package/dist/chunks/{dialog-DSyq6MS3.mjs.map → dialog-B60BjJz0.mjs.map} +1 -1
  141. package/dist/chunks/{dialog-J2ZTSTpL.cjs → dialog-i9LdkXmF.cjs} +3 -3
  142. package/dist/chunks/{dialog-J2ZTSTpL.cjs.map → dialog-i9LdkXmF.cjs.map} +1 -1
  143. package/dist/chunks/event-calendar-BbFOUDov.mjs +1191 -0
  144. package/dist/chunks/event-calendar-BbFOUDov.mjs.map +1 -0
  145. package/dist/chunks/event-calendar-Bljd_7PI.cjs +1209 -0
  146. package/dist/chunks/event-calendar-Bljd_7PI.cjs.map +1 -0
  147. package/dist/chunks/{form-CtZ6U-_B.mjs → form-CDc9UM3r.mjs} +1 -1
  148. package/dist/chunks/{form-CtZ6U-_B.mjs.map → form-CDc9UM3r.mjs.map} +1 -1
  149. package/dist/chunks/{form-X6Vyaavl.cjs → form-DGwdlSW2.cjs} +1 -1
  150. package/dist/chunks/{form-X6Vyaavl.cjs.map → form-DGwdlSW2.cjs.map} +1 -1
  151. package/dist/chunks/{gradual-blur-C6NOnjTw.cjs → gradual-blur-BNYVlqb1.cjs} +1 -1
  152. package/dist/chunks/{gradual-blur-C6NOnjTw.cjs.map → gradual-blur-BNYVlqb1.cjs.map} +1 -1
  153. package/dist/chunks/{gradual-blur-DXfxpCdB.mjs → gradual-blur-Bw2KNmXb.mjs} +1 -1
  154. package/dist/chunks/{gradual-blur-DXfxpCdB.mjs.map → gradual-blur-Bw2KNmXb.mjs.map} +1 -1
  155. package/dist/chunks/{hover-card--rplmsA_.cjs → hover-card-Dp6Y2h2J.cjs} +1 -1
  156. package/dist/chunks/{hover-card--rplmsA_.cjs.map → hover-card-Dp6Y2h2J.cjs.map} +1 -1
  157. package/dist/chunks/{hover-card-C88rU-nW.mjs → hover-card-G66SUyjq.mjs} +1 -1
  158. package/dist/chunks/{hover-card-C88rU-nW.mjs.map → hover-card-G66SUyjq.mjs.map} +1 -1
  159. package/dist/chunks/{icons-bx3nrxNv.mjs → icons-JzMKLygv.mjs} +2 -43
  160. package/dist/chunks/icons-JzMKLygv.mjs.map +1 -0
  161. package/dist/chunks/{icons-CRanVZB1.cjs → icons-ub9iu-JG.cjs} +1 -48
  162. package/dist/chunks/icons-ub9iu-JG.cjs.map +1 -0
  163. package/dist/chunks/{input-Bqo9Q5zF.mjs → input-CRc3MKb_.mjs} +3 -3
  164. package/dist/chunks/{input-Bqo9Q5zF.mjs.map → input-CRc3MKb_.mjs.map} +1 -1
  165. package/dist/chunks/{input-DkCPyWXi.cjs → input-DMTwz27q.cjs} +3 -3
  166. package/dist/chunks/{input-DkCPyWXi.cjs.map → input-DMTwz27q.cjs.map} +1 -1
  167. package/dist/chunks/{label-BKzqfAAq.cjs → label-B5Ugq0Nk.cjs} +1 -1
  168. package/dist/chunks/{label-BKzqfAAq.cjs.map → label-B5Ugq0Nk.cjs.map} +1 -1
  169. package/dist/chunks/{label-Drxg0cG2.mjs → label-Bc_r54NU.mjs} +1 -1
  170. package/dist/chunks/{label-Drxg0cG2.mjs.map → label-Bc_r54NU.mjs.map} +1 -1
  171. package/dist/chunks/{loading-BiM4mKh6.cjs → loading-DZKJc3e7.cjs} +2 -2
  172. package/dist/chunks/{loading-BiM4mKh6.cjs.map → loading-DZKJc3e7.cjs.map} +1 -1
  173. package/dist/chunks/{loading-Dtosnb4A.mjs → loading-ll2L6lc7.mjs} +2 -2
  174. package/dist/chunks/{loading-Dtosnb4A.mjs.map → loading-ll2L6lc7.mjs.map} +1 -1
  175. package/dist/chunks/{multi-select-combobox-C0DoDzxQ.cjs → multi-select-combobox-CFJGq1hn.cjs} +3 -3
  176. package/dist/chunks/{multi-select-combobox-C0DoDzxQ.cjs.map → multi-select-combobox-CFJGq1hn.cjs.map} +1 -1
  177. package/dist/chunks/{multi-select-combobox-Do23ZfOQ.mjs → multi-select-combobox-C_8sxaiL.mjs} +3 -3
  178. package/dist/chunks/{multi-select-combobox-Do23ZfOQ.mjs.map → multi-select-combobox-C_8sxaiL.mjs.map} +1 -1
  179. package/dist/chunks/{otp-input-CkhV-sGl.cjs → otp-input-B5-tuc0q.cjs} +1 -1
  180. package/dist/chunks/{otp-input-CkhV-sGl.cjs.map → otp-input-B5-tuc0q.cjs.map} +1 -1
  181. package/dist/chunks/{otp-input-JOysxKfD.mjs → otp-input-BpcTJOmU.mjs} +1 -1
  182. package/dist/chunks/{otp-input-JOysxKfD.mjs.map → otp-input-BpcTJOmU.mjs.map} +1 -1
  183. package/dist/chunks/{overlay-BzkUmjQ-.mjs → overlay-CG1dMYtO.mjs} +1 -1
  184. package/dist/chunks/{overlay-BzkUmjQ-.mjs.map → overlay-CG1dMYtO.mjs.map} +1 -1
  185. package/dist/chunks/{overlay-DNnZywyR.cjs → overlay-DzE_GyYf.cjs} +1 -1
  186. package/dist/chunks/{overlay-DNnZywyR.cjs.map → overlay-DzE_GyYf.cjs.map} +1 -1
  187. package/dist/chunks/{password-strength-meter-BsvqQBAg.mjs → password-strength-meter-CH6uQAuK.mjs} +2 -2
  188. package/dist/chunks/{password-strength-meter-BsvqQBAg.mjs.map → password-strength-meter-CH6uQAuK.mjs.map} +1 -1
  189. package/dist/chunks/{password-strength-meter-DCi_BP7e.cjs → password-strength-meter-_o1T1HLO.cjs} +2 -2
  190. package/dist/chunks/{password-strength-meter-DCi_BP7e.cjs.map → password-strength-meter-_o1T1HLO.cjs.map} +1 -1
  191. package/dist/chunks/{progress-bar-DQ5ZKk2Y.mjs → progress-bar-BAvRSW1b.mjs} +1 -1
  192. package/dist/chunks/{progress-bar-DQ5ZKk2Y.mjs.map → progress-bar-BAvRSW1b.mjs.map} +1 -1
  193. package/dist/chunks/{progress-bar-CYaBO_lS.cjs → progress-bar-FfdFVvTT.cjs} +1 -1
  194. package/dist/chunks/{progress-bar-CYaBO_lS.cjs.map → progress-bar-FfdFVvTT.cjs.map} +1 -1
  195. package/dist/chunks/{radio-CuiM_gDv.mjs → radio-BMOnxnUS.mjs} +1 -1
  196. package/dist/chunks/{radio-CuiM_gDv.mjs.map → radio-BMOnxnUS.mjs.map} +1 -1
  197. package/dist/chunks/{radio-zx9xEW_C.cjs → radio-wagafWwx.cjs} +1 -1
  198. package/dist/chunks/{radio-zx9xEW_C.cjs.map → radio-wagafWwx.cjs.map} +1 -1
  199. package/dist/chunks/{select-CUaSNR09.mjs → select--DeSgPdn.mjs} +4 -4
  200. package/dist/chunks/{select-CUaSNR09.mjs.map → select--DeSgPdn.mjs.map} +1 -1
  201. package/dist/chunks/{select-bZ9WqLOc.cjs → select-zFFyNmlY.cjs} +4 -4
  202. package/dist/chunks/{select-bZ9WqLOc.cjs.map → select-zFFyNmlY.cjs.map} +1 -1
  203. package/dist/chunks/{sidebar-Kkr45nuN.cjs → sidebar-Cq7UbKJT.cjs} +18 -21
  204. package/dist/chunks/sidebar-Cq7UbKJT.cjs.map +1 -0
  205. package/dist/chunks/{sidebar-DYEDFV2u.mjs → sidebar-oemmRzCL.mjs} +18 -21
  206. package/dist/chunks/sidebar-oemmRzCL.mjs.map +1 -0
  207. package/dist/chunks/{skeleton-nH1eAN96.mjs → skeleton-BsDMlWZG.mjs} +1 -1
  208. package/dist/chunks/{skeleton-nH1eAN96.mjs.map → skeleton-BsDMlWZG.mjs.map} +1 -1
  209. package/dist/chunks/{skeleton-DCBGLNAZ.cjs → skeleton-DWvVc17T.cjs} +1 -1
  210. package/dist/chunks/{skeleton-DCBGLNAZ.cjs.map → skeleton-DWvVc17T.cjs.map} +1 -1
  211. package/dist/chunks/{spinners-C9acUulz.cjs → spinners-DBAJliAj.cjs} +2 -2
  212. package/dist/chunks/{spinners-C9acUulz.cjs.map → spinners-DBAJliAj.cjs.map} +1 -1
  213. package/dist/chunks/{spinners-g6_Up5Rb.mjs → spinners-DlMcokJa.mjs} +2 -2
  214. package/dist/chunks/{spinners-g6_Up5Rb.mjs.map → spinners-DlMcokJa.mjs.map} +1 -1
  215. package/dist/chunks/{splash-cursor-N4FdnkOa.mjs → splash-cursor-Bb7LSzaO.mjs} +1 -1
  216. package/dist/chunks/{splash-cursor-N4FdnkOa.mjs.map → splash-cursor-Bb7LSzaO.mjs.map} +1 -1
  217. package/dist/chunks/{splash-cursor-BqG7ClsJ.cjs → splash-cursor-CQ6_HwHV.cjs} +1 -1
  218. package/dist/chunks/{splash-cursor-BqG7ClsJ.cjs.map → splash-cursor-CQ6_HwHV.cjs.map} +1 -1
  219. package/dist/chunks/{spotlight-card-D9Z3nTmb.mjs → spotlight-card-Bs0iiSLc.mjs} +1 -1
  220. package/dist/chunks/{spotlight-card-D9Z3nTmb.mjs.map → spotlight-card-Bs0iiSLc.mjs.map} +1 -1
  221. package/dist/chunks/{spotlight-card-BmsqC7wm.cjs → spotlight-card-COfSD7ns.cjs} +1 -1
  222. package/dist/chunks/{spotlight-card-BmsqC7wm.cjs.map → spotlight-card-COfSD7ns.cjs.map} +1 -1
  223. package/dist/chunks/{stepper-Jv5OS1nY.mjs → stepper-B9NdZ6ZV.mjs} +4 -4
  224. package/dist/chunks/{stepper-Jv5OS1nY.mjs.map → stepper-B9NdZ6ZV.mjs.map} +1 -1
  225. package/dist/chunks/{stepper-DepvEGfr.cjs → stepper-CTteR-Kj.cjs} +4 -4
  226. package/dist/chunks/{stepper-DepvEGfr.cjs.map → stepper-CTteR-Kj.cjs.map} +1 -1
  227. package/dist/chunks/{sun-to-moon-button-BJtBEaa3.mjs → sun-to-moon-button-DWHDpP5B.mjs} +2 -2
  228. package/dist/chunks/{sun-to-moon-button-BJtBEaa3.mjs.map → sun-to-moon-button-DWHDpP5B.mjs.map} +1 -1
  229. package/dist/chunks/{sun-to-moon-button-PwgTPsTW.cjs → sun-to-moon-button-lt-1vmWm.cjs} +2 -2
  230. package/dist/chunks/{sun-to-moon-button-PwgTPsTW.cjs.map → sun-to-moon-button-lt-1vmWm.cjs.map} +1 -1
  231. package/dist/chunks/{switch-iPsN1NS2.mjs → switch--68scepb.mjs} +1 -1
  232. package/dist/chunks/{switch-iPsN1NS2.mjs.map → switch--68scepb.mjs.map} +1 -1
  233. package/dist/chunks/{switch-X3l8xnle.cjs → switch-BbFl5b4t.cjs} +1 -1
  234. package/dist/chunks/{switch-X3l8xnle.cjs.map → switch-BbFl5b4t.cjs.map} +1 -1
  235. package/dist/chunks/{textarea-Bdo-Trvi.mjs → textarea-CEj9voUJ.mjs} +1 -1
  236. package/dist/chunks/{textarea-Bdo-Trvi.mjs.map → textarea-CEj9voUJ.mjs.map} +1 -1
  237. package/dist/chunks/{textarea-CGRl2hrM.cjs → textarea-U_JeSWI3.cjs} +1 -1
  238. package/dist/chunks/{textarea-CGRl2hrM.cjs.map → textarea-U_JeSWI3.cjs.map} +1 -1
  239. package/dist/chunks/{toast-DiFgv3IL.cjs → toast-2yq4Q7-q.cjs} +2 -2
  240. package/dist/chunks/{toast-DiFgv3IL.cjs.map → toast-2yq4Q7-q.cjs.map} +1 -1
  241. package/dist/chunks/{toast-BcBidy5n.mjs → toast-CyY8VZN7.mjs} +2 -2
  242. package/dist/chunks/{toast-BcBidy5n.mjs.map → toast-CyY8VZN7.mjs.map} +1 -1
  243. package/dist/chunks/{truncated-text-BIXqNfOL.cjs → truncated-text-CswjmrHZ.cjs} +1 -1
  244. package/dist/chunks/{truncated-text-BIXqNfOL.cjs.map → truncated-text-CswjmrHZ.cjs.map} +1 -1
  245. package/dist/chunks/{truncated-text-C9t9o9IA.mjs → truncated-text-DUYTW1KP.mjs} +1 -1
  246. package/dist/chunks/{truncated-text-C9t9o9IA.mjs.map → truncated-text-DUYTW1KP.mjs.map} +1 -1
  247. package/dist/chunks/{typography-LwwY_MOy.cjs → typography-CFIiYk1d.cjs} +1 -1
  248. package/dist/chunks/{typography-LwwY_MOy.cjs.map → typography-CFIiYk1d.cjs.map} +1 -1
  249. package/dist/chunks/{typography-Ct-jDJP3.mjs → typography-DHE9sUZ8.mjs} +1 -1
  250. package/dist/chunks/{typography-Ct-jDJP3.mjs.map → typography-DHE9sUZ8.mjs.map} +1 -1
  251. package/dist/color-palette.cjs +1 -1
  252. package/dist/color-palette.mjs +1 -1
  253. package/dist/combobox.cjs +1 -1
  254. package/dist/combobox.mjs +1 -1
  255. package/dist/components/data-display/charts/chartPalette.d.ts +1 -1
  256. package/dist/components/data-display/dashboard-cards/DeviceSalesCard.d.ts +25 -0
  257. package/dist/components/data-display/dashboard-cards/DeviceSalesCard.d.ts.map +1 -0
  258. package/dist/components/data-display/dashboard-cards/EarningReportsTabsCard.d.ts +34 -0
  259. package/dist/components/data-display/dashboard-cards/EarningReportsTabsCard.d.ts.map +1 -0
  260. package/dist/components/data-display/dashboard-cards/EarningsCard.d.ts +43 -0
  261. package/dist/components/data-display/dashboard-cards/EarningsCard.d.ts.map +1 -0
  262. package/dist/components/data-display/dashboard-cards/ExpensesCard.d.ts +26 -0
  263. package/dist/components/data-display/dashboard-cards/ExpensesCard.d.ts.map +1 -0
  264. package/dist/components/data-display/dashboard-cards/IncomeExpenseCard.d.ts +30 -0
  265. package/dist/components/data-display/dashboard-cards/IncomeExpenseCard.d.ts.map +1 -0
  266. package/dist/components/data-display/dashboard-cards/RevenueGrowthCard.d.ts +26 -0
  267. package/dist/components/data-display/dashboard-cards/RevenueGrowthCard.d.ts.map +1 -0
  268. package/dist/components/data-display/dashboard-cards/SalesOverviewCard.d.ts +33 -0
  269. package/dist/components/data-display/dashboard-cards/SalesOverviewCard.d.ts.map +1 -0
  270. package/dist/components/data-display/dashboard-cards/ShipmentStatisticsCard.d.ts +33 -0
  271. package/dist/components/data-display/dashboard-cards/ShipmentStatisticsCard.d.ts.map +1 -0
  272. package/dist/components/data-display/dashboard-cards/StockAvailabilityCard.d.ts +24 -0
  273. package/dist/components/data-display/dashboard-cards/StockAvailabilityCard.d.ts.map +1 -0
  274. package/dist/components/data-display/dashboard-cards/SupportTrackerCard.d.ts +25 -0
  275. package/dist/components/data-display/dashboard-cards/SupportTrackerCard.d.ts.map +1 -0
  276. package/dist/components/data-display/dashboard-cards/TopicsCard.d.ts +18 -0
  277. package/dist/components/data-display/dashboard-cards/TopicsCard.d.ts.map +1 -0
  278. package/dist/components/data-display/dashboard-cards/VehicleConditionCard.d.ts +20 -0
  279. package/dist/components/data-display/dashboard-cards/VehicleConditionCard.d.ts.map +1 -0
  280. package/dist/components/data-display/dashboard-cards/VehiclesOverviewCard.d.ts +21 -0
  281. package/dist/components/data-display/dashboard-cards/VehiclesOverviewCard.d.ts.map +1 -0
  282. package/dist/components/data-display/dashboard-cards/index.d.ts +26 -0
  283. package/dist/components/data-display/dashboard-cards/index.d.ts.map +1 -1
  284. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
  285. package/dist/components/data-display/data-table/DataTableControls.d.ts.map +1 -1
  286. package/dist/components/data-display/event-calendar/AddEventPanel.d.ts +11 -0
  287. package/dist/components/data-display/event-calendar/AddEventPanel.d.ts.map +1 -0
  288. package/dist/components/data-display/event-calendar/CalendarHeader.d.ts +13 -0
  289. package/dist/components/data-display/event-calendar/CalendarHeader.d.ts.map +1 -0
  290. package/dist/components/data-display/event-calendar/CalendarSidebar.d.ts +13 -0
  291. package/dist/components/data-display/event-calendar/CalendarSidebar.d.ts.map +1 -0
  292. package/dist/components/data-display/event-calendar/EventCalendar.d.ts +3 -0
  293. package/dist/components/data-display/event-calendar/EventCalendar.d.ts.map +1 -0
  294. package/dist/components/data-display/event-calendar/EventDetailDrawer.d.ts +10 -0
  295. package/dist/components/data-display/event-calendar/EventDetailDrawer.d.ts.map +1 -0
  296. package/dist/components/data-display/event-calendar/EventFilterList.d.ts +9 -0
  297. package/dist/components/data-display/event-calendar/EventFilterList.d.ts.map +1 -0
  298. package/dist/components/data-display/event-calendar/EventPill.d.ts +10 -0
  299. package/dist/components/data-display/event-calendar/EventPill.d.ts.map +1 -0
  300. package/dist/components/data-display/event-calendar/MiniCalendarPicker.d.ts +9 -0
  301. package/dist/components/data-display/event-calendar/MiniCalendarPicker.d.ts.map +1 -0
  302. package/dist/components/data-display/event-calendar/calendarUtils.d.ts +27 -0
  303. package/dist/components/data-display/event-calendar/calendarUtils.d.ts.map +1 -0
  304. package/dist/components/data-display/event-calendar/index.d.ts +4 -0
  305. package/dist/components/data-display/event-calendar/index.d.ts.map +1 -0
  306. package/dist/components/data-display/event-calendar/types.d.ts +52 -0
  307. package/dist/components/data-display/event-calendar/types.d.ts.map +1 -0
  308. package/dist/components/data-display/event-calendar/views/DayView.d.ts +10 -0
  309. package/dist/components/data-display/event-calendar/views/DayView.d.ts.map +1 -0
  310. package/dist/components/data-display/event-calendar/views/ListView.d.ts +10 -0
  311. package/dist/components/data-display/event-calendar/views/ListView.d.ts.map +1 -0
  312. package/dist/components/data-display/event-calendar/views/MonthView.d.ts +11 -0
  313. package/dist/components/data-display/event-calendar/views/MonthView.d.ts.map +1 -0
  314. package/dist/components/data-display/event-calendar/views/WeekView.d.ts +10 -0
  315. package/dist/components/data-display/event-calendar/views/WeekView.d.ts.map +1 -0
  316. package/dist/components/forms/button/Button.d.ts.map +1 -1
  317. package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts +3 -1
  318. package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts.map +1 -1
  319. package/dist/components/navigation/sidebar/SidebarLinks.d.ts.map +1 -1
  320. package/dist/components/overlays/tooltip/Tooltip.d.ts +3 -1
  321. package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -1
  322. package/dist/dashboard-cards.cjs +18 -0
  323. package/dist/dashboard-cards.d.ts +2 -0
  324. package/dist/dashboard-cards.mjs +2 -0
  325. package/dist/data-table.cjs +1 -1
  326. package/dist/data-table.mjs +1 -1
  327. package/dist/date-picker.cjs +1 -1
  328. package/dist/date-picker.mjs +1 -1
  329. package/dist/dialog.cjs +1 -1
  330. package/dist/dialog.mjs +1 -1
  331. package/dist/docs.cjs +31 -0
  332. package/dist/docs.cjs.map +1 -1
  333. package/dist/docs.d.ts.map +1 -1
  334. package/dist/docs.mjs +31 -0
  335. package/dist/docs.mjs.map +1 -1
  336. package/dist/drawer.cjs +2 -2
  337. package/dist/drawer.mjs +1 -1
  338. package/dist/event-calendar.cjs +5 -0
  339. package/dist/event-calendar.d.ts +2 -0
  340. package/dist/event-calendar.mjs +2 -0
  341. package/dist/form.cjs +1 -1
  342. package/dist/form.mjs +1 -1
  343. package/dist/gradual-blur.cjs +1 -1
  344. package/dist/gradual-blur.mjs +1 -1
  345. package/dist/hover-border-gradient.cjs +1 -1
  346. package/dist/hover-border-gradient.mjs +1 -1
  347. package/dist/hover-card.cjs +1 -1
  348. package/dist/hover-card.mjs +1 -1
  349. package/dist/icons.cjs +3 -2
  350. package/dist/icons.mjs +2 -1
  351. package/dist/index.cjs +74 -330
  352. package/dist/index.cjs.map +1 -1
  353. package/dist/index.d.ts +5 -2
  354. package/dist/index.d.ts.map +1 -1
  355. package/dist/index.mjs +55 -327
  356. package/dist/index.mjs.map +1 -1
  357. package/dist/input.cjs +1 -1
  358. package/dist/input.mjs +1 -1
  359. package/dist/label.cjs +1 -1
  360. package/dist/label.mjs +1 -1
  361. package/dist/loading.cjs +1 -1
  362. package/dist/loading.mjs +1 -1
  363. package/dist/multi-select-combobox.cjs +1 -1
  364. package/dist/multi-select-combobox.mjs +1 -1
  365. package/dist/otp-input.cjs +1 -1
  366. package/dist/otp-input.mjs +1 -1
  367. package/dist/password-strength-meter.cjs +1 -1
  368. package/dist/password-strength-meter.mjs +1 -1
  369. package/dist/progress-bar.cjs +1 -1
  370. package/dist/progress-bar.mjs +1 -1
  371. package/dist/radio.cjs +1 -1
  372. package/dist/radio.mjs +1 -1
  373. package/dist/select.cjs +1 -1
  374. package/dist/select.mjs +1 -1
  375. package/dist/sidebar.cjs +1 -1
  376. package/dist/sidebar.mjs +1 -1
  377. package/dist/skeleton.cjs +1 -1
  378. package/dist/skeleton.mjs +1 -1
  379. package/dist/spinners.cjs +1 -1
  380. package/dist/spinners.mjs +1 -1
  381. package/dist/splash-cursor.cjs +1 -1
  382. package/dist/splash-cursor.mjs +1 -1
  383. package/dist/spotlight-card.cjs +1 -1
  384. package/dist/spotlight-card.mjs +1 -1
  385. package/dist/stepper.cjs +1 -1
  386. package/dist/stepper.mjs +1 -1
  387. package/dist/sun-to-moon-button.cjs +2 -2
  388. package/dist/sun-to-moon-button.mjs +2 -2
  389. package/dist/switch.cjs +1 -1
  390. package/dist/switch.mjs +1 -1
  391. package/dist/textarea.cjs +1 -1
  392. package/dist/textarea.mjs +1 -1
  393. package/dist/toast.cjs +1 -1
  394. package/dist/toast.mjs +1 -1
  395. package/dist/tooltip.cjs +1 -1
  396. package/dist/tooltip.mjs +1 -1
  397. package/dist/truncated-text.cjs +1 -1
  398. package/dist/truncated-text.mjs +1 -1
  399. package/dist/typography.cjs +1 -1
  400. package/dist/typography.mjs +1 -1
  401. package/package.json +17 -5
  402. package/dist/chunks/Tooltip-DD30yj3A.cjs.map +0 -1
  403. package/dist/chunks/Tooltip-DK3B879v.mjs.map +0 -1
  404. package/dist/chunks/button-A6UTvrOu.mjs.map +0 -1
  405. package/dist/chunks/button-C4MXPxsC.cjs.map +0 -1
  406. package/dist/chunks/charts-BmIV-mJy.cjs.map +0 -1
  407. package/dist/chunks/charts-DkVu0rFc.mjs.map +0 -1
  408. package/dist/chunks/data-table-Dtf6lKpp.mjs.map +0 -1
  409. package/dist/chunks/data-table-fAEuevPn.cjs.map +0 -1
  410. package/dist/chunks/icons-CRanVZB1.cjs.map +0 -1
  411. package/dist/chunks/icons-bx3nrxNv.mjs.map +0 -1
  412. package/dist/chunks/sidebar-DYEDFV2u.mjs.map +0 -1
  413. package/dist/chunks/sidebar-Kkr45nuN.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"color-palette-C3lesasJ.mjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
1
+ {"version":3,"file":"color-palette-D9Qlw2Cx.mjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
@@ -381,4 +381,4 @@ Object.defineProperty(exports, "textGroup", {
381
381
  }
382
382
  });
383
383
 
384
- //# sourceMappingURL=color-palette-pLh6En3n.cjs.map
384
+ //# sourceMappingURL=color-palette-Duud5Iqq.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"color-palette-pLh6En3n.cjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
1
+ {"version":3,"file":"color-palette-Duud5Iqq.cjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  const require_chunk = require("./chunk-B_GkZjkl.cjs");
2
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");
5
- const require_DropdownMenu = require("./DropdownMenu-BDrNYO-D.cjs");
3
+ const require_truncated_text = require("./truncated-text-CswjmrHZ.cjs");
4
+ const require_icons = require("./icons-ub9iu-JG.cjs");
5
+ const require_DropdownMenu = require("./DropdownMenu-yh04burS.cjs");
6
6
  let react = require("react");
7
7
  react = require_chunk.__toESM(react, 1);
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -131,4 +131,4 @@ Object.defineProperty(exports, "Combobox", {
131
131
  }
132
132
  });
133
133
 
134
- //# sourceMappingURL=combobox-CtNrGmuR.cjs.map
134
+ //# sourceMappingURL=combobox-C3a2iogC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-CtNrGmuR.cjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\"start-0 top-[40px] z-20 mt-1 flex w-full max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ms-2 text-ds-2 transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}
1
+ {"version":3,"file":"combobox-C3a2iogC.cjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\"start-0 top-[40px] z-20 mt-1 flex w-full max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ms-2 text-ds-2 transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { n as mergeClassNames } from "./utils-7S0u48mU.mjs";
2
- import { t as TruncatedText } from "./truncated-text-C9t9o9IA.mjs";
3
- import { J as CheckIcon, N as ChevronDownIcon } from "./icons-bx3nrxNv.mjs";
4
- import { t as DropdownMenu } from "./DropdownMenu-BtTOri-A.mjs";
2
+ import { t as TruncatedText } from "./truncated-text-DUYTW1KP.mjs";
3
+ import { M as ChevronDownIcon, q as CheckIcon } from "./icons-JzMKLygv.mjs";
4
+ import { t as DropdownMenu } from "./DropdownMenu-BQ4WlaGp.mjs";
5
5
  import { useState } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
@@ -124,4 +124,4 @@ var Combobox = ({ options, value, onChange, placeholder = "Select...", searchPla
124
124
  //#endregion
125
125
  export { Combobox as t };
126
126
 
127
- //# sourceMappingURL=combobox-B6yk5U82.mjs.map
127
+ //# sourceMappingURL=combobox-neBItbtz.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-B6yk5U82.mjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\"start-0 top-[40px] z-20 mt-1 flex w-full max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ms-2 text-ds-2 transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}
1
+ {"version":3,"file":"combobox-neBItbtz.mjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\"start-0 top-[40px] z-20 mt-1 flex w-full max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ms-2 text-ds-2 transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}