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
@@ -1 +1 @@
1
- {"version":3,"file":"toast-DiFgv3IL.cjs","names":[],"sources":["../../src/components/overlays/toast/Toast.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useState,\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n} from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport {\n AlertTriangleIcon,\n CheckCircleIcon,\n CloseIcon,\n InfoCircleIcon,\n LoaderIcon,\n XCircleIcon,\n} from \"../../icons\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ToastType =\n | \"success\"\n | \"error\"\n | \"warning\"\n | \"info\"\n | \"default\"\n | \"loading\";\nexport type ToastPosition =\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\";\n\nexport interface ToastAction {\n label: string;\n onClick: () => void;\n}\n\nexport interface Toast {\n id: string;\n type: ToastType;\n title?: string;\n description?: string;\n duration?: number;\n icon?: React.ReactNode;\n action?: ToastAction;\n dismissible?: boolean;\n onDismiss?: () => void;\n onAutoClose?: () => void;\n promise?: {\n loading: string;\n success: string | ((data: unknown) => string);\n error: string | ((error: unknown) => string);\n };\n}\n\nexport interface ToastOptions {\n type?: ToastType;\n title?: string;\n description?: string;\n duration?: number;\n icon?: React.ReactNode;\n action?: ToastAction;\n dismissible?: boolean;\n onDismiss?: () => void;\n onAutoClose?: () => void;\n}\n\nexport interface ToastContextValue {\n toasts: Toast[];\n toast: (options: ToastOptions | string) => string;\n success: (options: ToastOptions | string) => string;\n error: (options: ToastOptions | string) => string;\n warning: (options: ToastOptions | string) => string;\n info: (options: ToastOptions | string) => string;\n loading: (options: ToastOptions | string) => string;\n promise: <T>(\n promise: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ) => Promise<T>;\n dismiss: (id: string) => void;\n dismissAll: () => void;\n update: (id: string, options: Partial<ToastOptions>) => void;\n}\n\nexport interface ToastProviderProps {\n children: React.ReactNode;\n /** Default position for toasts */\n position?: ToastPosition;\n /** Default duration in milliseconds */\n duration?: number;\n /** Maximum number of visible toasts */\n maxToasts?: number;\n /** Gap between toasts */\n gap?: number;\n /** Whether toasts are dismissible by default */\n dismissible?: boolean;\n /** Custom className for the toast container */\n containerClassName?: string;\n}\n\nexport interface ToastItemProps {\n toast: Toast;\n onDismiss: (id: string) => void;\n position: ToastPosition;\n}\n\n// ============================================================================\n// Context\n// ============================================================================\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport const useToast = (): ToastContextValue => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within a ToastProvider\");\n }\n return context;\n};\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst typeStyles: Record<\n ToastType,\n { bg: string; icon: string; iconBg: string }\n> = {\n success: {\n bg: \"bg-ds-surface-1 border-ds-state-success-border\",\n icon: \"text-ds-state-success-text\",\n iconBg: \"bg-ds-state-success-surface\",\n },\n error: {\n bg: \"bg-ds-surface-1 border-ds-state-error-border\",\n icon: \"text-ds-state-error-text\",\n iconBg: \"bg-ds-state-error-surface\",\n },\n warning: {\n bg: \"bg-ds-surface-1 border-ds-state-warning-border\",\n icon: \"text-ds-state-warning-text\",\n iconBg: \"bg-ds-state-warning-surface\",\n },\n info: {\n bg: \"bg-ds-surface-1 border-ds-state-info-border\",\n icon: \"text-ds-state-info-text\",\n iconBg: \"bg-ds-state-info-surface\",\n },\n default: {\n bg: \"bg-ds-surface-1 border-ds-border-2\",\n icon: \"text-ds-2\",\n iconBg: \"bg-ds-surface-2\",\n },\n loading: {\n bg: \"bg-ds-surface-1 border-ds-border-2\",\n icon: \"text-ds-1\",\n iconBg: \"bg-ds-accent-subtle\",\n },\n};\n\nconst positionStyles: Record<ToastPosition, string> = {\n \"top-left\": \"top-4 left-4\",\n \"top-center\": \"top-4 left-1/2 -translate-x-1/2\",\n \"top-right\": \"top-4 right-4\",\n \"bottom-left\": \"bottom-4 left-4\",\n \"bottom-center\": \"bottom-4 left-1/2 -translate-x-1/2\",\n \"bottom-right\": \"bottom-4 right-4\",\n};\n\nconst getMotionVariants = (position: ToastPosition) => {\n const isTop = position.startsWith(\"top\");\n const isCenter = position.includes(\"center\");\n const isLeft = position.includes(\"left\");\n\n return {\n initial: {\n opacity: 0,\n y: isTop ? -20 : 20,\n x: isCenter ? 0 : isLeft ? -20 : 20,\n scale: 0.95,\n },\n animate: {\n opacity: 1,\n y: 0,\n x: 0,\n scale: 1,\n },\n exit: {\n opacity: 0,\n y: isTop ? -20 : 20,\n scale: 0.95,\n transition: { duration: 0.15 },\n },\n };\n};\n\n// ============================================================================\n// Toast Item Component\n// ============================================================================\n\nconst ToastItem = forwardRef<HTMLDivElement, ToastItemProps>(\n ({ toast, onDismiss, position }, ref) => {\n const {\n type,\n title,\n description,\n icon,\n action,\n dismissible = true,\n duration,\n } = toast;\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const [progress, setProgress] = useState(100);\n const [isPaused, setIsPaused] = useState(false);\n\n const defaultIcons: Record<ToastType, React.ReactNode> = {\n success: <CheckCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n error: <XCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n warning: <AlertTriangleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n info: <InfoCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n loading: (\n <LoaderIcon className=\"w-5 h-5 animate-spin\" aria-hidden=\"true\" />\n ),\n default: null,\n };\n\n // Auto-dismiss timer with progress\n useEffect(() => {\n if (duration && duration > 0 && type !== \"loading\") {\n const startTime = Date.now();\n const interval = 50;\n\n const updateProgress = () => {\n if (isPaused) return;\n\n const elapsed = Date.now() - startTime;\n const remaining = Math.max(0, 100 - (elapsed / duration) * 100);\n setProgress(remaining);\n\n if (remaining <= 0) {\n toast.onAutoClose?.();\n onDismiss(toast.id);\n }\n };\n\n timerRef.current = setInterval(updateProgress, interval);\n\n return () => {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n };\n }\n }, [duration, toast.id, type, isPaused, onDismiss, toast]);\n\n const handleMouseEnter = () => setIsPaused(true);\n const handleMouseLeave = () => setIsPaused(false);\n\n const styles = typeStyles[type];\n const displayIcon = icon ?? defaultIcons[type];\n const variants = getMotionVariants(position);\n\n return (\n <motion.div\n ref={ref}\n layout\n initial={variants.initial}\n animate={variants.animate}\n exit={variants.exit}\n transition={{ type: \"spring\", stiffness: 400, damping: 30 }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={`\n relative flex items-start gap-3 p-4 pr-10\n rounded-lg shadow-lg border min-w-[320px] max-w-[420px]\n overflow-hidden\n ${styles.bg}\n `}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {/* Progress bar */}\n {duration && duration > 0 && type !== \"loading\" && (\n <div className=\"absolute bottom-0 left-0 right-0 h-1 bg-ds-surface-2\">\n <motion.div\n className={`h-full ${\n type === \"success\"\n ? \"bg-ds-state-success\"\n : type === \"error\"\n ? \"bg-ds-state-danger\"\n : type === \"warning\"\n ? \"bg-ds-state-warning\"\n : type === \"info\"\n ? \"bg-ds-state-info\"\n : \"bg-ds-border-3\"\n }`}\n style={{ width: `${progress}%` }}\n transition={{ duration: 0.05 }}\n />\n </div>\n )}\n\n {/* Icon */}\n {displayIcon && (\n <div\n className={`shrink-0 p-1.5 rounded-full ${styles.iconBg} ${styles.icon}`}\n >\n {displayIcon}\n </div>\n )}\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n {title && <p className=\"text-sm font-semibold text-ds-1\">{title}</p>}\n {description && (\n <p className={`text-sm text-ds-2 ${title ? \"mt-1\" : \"\"}`}>\n {description}\n </p>\n )}\n {action && (\n <button\n onClick={() => {\n action.onClick();\n onDismiss(toast.id);\n }}\n className=\"mt-2 text-sm font-medium text-ds-1 hover:underline\"\n >\n {action.label}\n </button>\n )}\n </div>\n\n {/* Dismiss button */}\n {dismissible && (\n <button\n onClick={() => {\n toast.onDismiss?.();\n onDismiss(toast.id);\n }}\n className=\"absolute top-3 right-3 rounded-full p-1 text-ds-2 transition-colors hover:bg-ds-surface-2 hover:text-ds-1\"\n aria-label=\"Dismiss\"\n >\n <CloseIcon className=\"w-4 h-4\" aria-hidden=\"true\" />\n </button>\n )}\n </motion.div>\n );\n },\n);\n\nToastItem.displayName = \"ToastItem\";\n\n// ============================================================================\n// Toast Provider Component\n// ============================================================================\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n children,\n position = \"bottom-right\",\n duration = 5000,\n maxToasts = 5,\n gap = 12,\n dismissible = true,\n containerClassName = \"\",\n}) => {\n const [toasts, setToasts] = useState<Toast[]>([]);\n const toastIdCounter = useRef(0);\n\n const generateId = () => {\n toastIdCounter.current += 1;\n return `toast-${toastIdCounter.current}-${Date.now()}`;\n };\n\n const addToast = useCallback(\n (options: ToastOptions | string, type: ToastType = \"default\"): string => {\n const id = generateId();\n const toastOptions: ToastOptions =\n typeof options === \"string\" ? { description: options } : options;\n\n const newToast: Toast = {\n id,\n type: toastOptions.type ?? type,\n title: toastOptions.title,\n description: toastOptions.description,\n duration: toastOptions.duration ?? duration,\n icon: toastOptions.icon,\n action: toastOptions.action,\n dismissible: toastOptions.dismissible ?? dismissible,\n onDismiss: toastOptions.onDismiss,\n onAutoClose: toastOptions.onAutoClose,\n };\n\n setToasts((prev) => {\n const updated = [...prev, newToast];\n // Keep only the last maxToasts\n return updated.slice(-maxToasts);\n });\n\n return id;\n },\n [duration, dismissible, maxToasts],\n );\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n const dismissAll = useCallback(() => {\n setToasts([]);\n }, []);\n\n const update = useCallback((id: string, options: Partial<ToastOptions>) => {\n setToasts((prev) =>\n prev.map((t) =>\n t.id === id\n ? {\n ...t,\n ...options,\n type: options.type ?? t.type,\n }\n : t,\n ),\n );\n }, []);\n\n const toast = useCallback(\n (options: ToastOptions | string) => addToast(options, \"default\"),\n [addToast],\n );\n\n const success = useCallback(\n (options: ToastOptions | string) => addToast(options, \"success\"),\n [addToast],\n );\n\n const error = useCallback(\n (options: ToastOptions | string) => addToast(options, \"error\"),\n [addToast],\n );\n\n const warning = useCallback(\n (options: ToastOptions | string) => addToast(options, \"warning\"),\n [addToast],\n );\n\n const info = useCallback(\n (options: ToastOptions | string) => addToast(options, \"info\"),\n [addToast],\n );\n\n const loading = useCallback(\n (options: ToastOptions | string) => {\n const toastOptions: ToastOptions =\n typeof options === \"string\" ? { description: options } : options;\n return addToast(\n { ...toastOptions, duration: 0, dismissible: false },\n \"loading\",\n );\n },\n [addToast],\n );\n\n const promise = useCallback(\n async <T,>(\n promiseToResolve: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ): Promise<T> => {\n const id = loading(options.loading);\n\n try {\n const result = await promiseToResolve;\n const successMessage =\n typeof options.success === \"function\"\n ? options.success(result)\n : options.success;\n update(id, {\n type: \"success\",\n description: successMessage,\n duration,\n dismissible: true,\n });\n return result;\n } catch (err) {\n const errorMessage =\n typeof options.error === \"function\"\n ? options.error(err)\n : options.error;\n update(id, {\n type: \"error\",\n description: errorMessage,\n duration,\n dismissible: true,\n });\n throw err;\n }\n },\n [loading, update, duration],\n );\n\n const contextValue: ToastContextValue = {\n toasts,\n toast,\n success,\n error,\n warning,\n info,\n loading,\n promise,\n dismiss,\n dismissAll,\n update,\n };\n\n const isTop = position.startsWith(\"top\");\n\n return (\n <ToastContext.Provider value={contextValue}>\n {children}\n <div\n className={`fixed z-100 flex flex-col pointer-events-none ${positionStyles[position]} ${containerClassName}`}\n style={{ gap: `${gap}px` }}\n >\n <AnimatePresence mode=\"popLayout\">\n {(isTop ? toasts : [...toasts].reverse()).map((t) => (\n <div key={t.id} className=\"pointer-events-auto\">\n <ToastItem toast={t} onDismiss={dismiss} position={position} />\n </div>\n ))}\n </AnimatePresence>\n </div>\n </ToastContext.Provider>\n );\n};\n\n// ============================================================================\n// Standalone toast function (for use without hooks)\n// ============================================================================\n\nlet globalToast: ToastContextValue | null = null;\n\nexport const setGlobalToast = (toastContext: ToastContextValue) => {\n globalToast = toastContext;\n};\n\nexport const toastStandalone = {\n show: (options: ToastOptions | string) => globalToast?.toast(options),\n success: (options: ToastOptions | string) => globalToast?.success(options),\n error: (options: ToastOptions | string) => globalToast?.error(options),\n warning: (options: ToastOptions | string) => globalToast?.warning(options),\n info: (options: ToastOptions | string) => globalToast?.info(options),\n loading: (options: ToastOptions | string) => globalToast?.loading(options),\n promise: <T,>(\n promise: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ) => globalToast?.promise(promise, options),\n dismiss: (id: string) => globalToast?.dismiss(id),\n dismissAll: () => globalToast?.dismissAll(),\n};\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport default ToastProvider;\nexport { ToastItem };\n"],"mappings":"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"}
1
+ {"version":3,"file":"toast-DL8svc6q.cjs","names":[],"sources":["../../src/components/overlays/toast/Toast.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useState,\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n} from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport {\n AlertTriangleIcon,\n CheckCircleIcon,\n CloseIcon,\n InfoCircleIcon,\n LoaderIcon,\n XCircleIcon,\n} from \"../../icons\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ToastType =\n | \"success\"\n | \"error\"\n | \"warning\"\n | \"info\"\n | \"default\"\n | \"loading\";\nexport type ToastPosition =\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\";\n\nexport interface ToastAction {\n label: string;\n onClick: () => void;\n}\n\nexport interface Toast {\n id: string;\n type: ToastType;\n title?: string;\n description?: string;\n duration?: number;\n icon?: React.ReactNode;\n action?: ToastAction;\n dismissible?: boolean;\n onDismiss?: () => void;\n onAutoClose?: () => void;\n promise?: {\n loading: string;\n success: string | ((data: unknown) => string);\n error: string | ((error: unknown) => string);\n };\n}\n\nexport interface ToastOptions {\n type?: ToastType;\n title?: string;\n description?: string;\n duration?: number;\n icon?: React.ReactNode;\n action?: ToastAction;\n dismissible?: boolean;\n onDismiss?: () => void;\n onAutoClose?: () => void;\n}\n\nexport interface ToastContextValue {\n toasts: Toast[];\n toast: (options: ToastOptions | string) => string;\n success: (options: ToastOptions | string) => string;\n error: (options: ToastOptions | string) => string;\n warning: (options: ToastOptions | string) => string;\n info: (options: ToastOptions | string) => string;\n loading: (options: ToastOptions | string) => string;\n promise: <T>(\n promise: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ) => Promise<T>;\n dismiss: (id: string) => void;\n dismissAll: () => void;\n update: (id: string, options: Partial<ToastOptions>) => void;\n}\n\nexport interface ToastProviderProps {\n children: React.ReactNode;\n /** Default position for toasts */\n position?: ToastPosition;\n /** Default duration in milliseconds */\n duration?: number;\n /** Maximum number of visible toasts */\n maxToasts?: number;\n /** Gap between toasts */\n gap?: number;\n /** Whether toasts are dismissible by default */\n dismissible?: boolean;\n /** Custom className for the toast container */\n containerClassName?: string;\n}\n\nexport interface ToastItemProps {\n toast: Toast;\n onDismiss: (id: string) => void;\n position: ToastPosition;\n}\n\n// ============================================================================\n// Context\n// ============================================================================\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport const useToast = (): ToastContextValue => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within a ToastProvider\");\n }\n return context;\n};\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst typeStyles: Record<\n ToastType,\n { bg: string; icon: string; iconBg: string }\n> = {\n success: {\n bg: \"bg-ds-surface-1 border-ds-state-success-border\",\n icon: \"text-ds-state-success-text\",\n iconBg: \"bg-ds-state-success-surface\",\n },\n error: {\n bg: \"bg-ds-surface-1 border-ds-state-error-border\",\n icon: \"text-ds-state-error-text\",\n iconBg: \"bg-ds-state-error-surface\",\n },\n warning: {\n bg: \"bg-ds-surface-1 border-ds-state-warning-border\",\n icon: \"text-ds-state-warning-text\",\n iconBg: \"bg-ds-state-warning-surface\",\n },\n info: {\n bg: \"bg-ds-surface-1 border-ds-state-info-border\",\n icon: \"text-ds-state-info-text\",\n iconBg: \"bg-ds-state-info-surface\",\n },\n default: {\n bg: \"bg-ds-surface-1 border-ds-border-2\",\n icon: \"text-ds-2\",\n iconBg: \"bg-ds-surface-2\",\n },\n loading: {\n bg: \"bg-ds-surface-1 border-ds-border-2\",\n icon: \"text-ds-1\",\n iconBg: \"bg-ds-accent-subtle\",\n },\n};\n\nconst positionStyles: Record<ToastPosition, string> = {\n \"top-left\": \"top-4 left-4\",\n \"top-center\": \"top-4 left-1/2 -translate-x-1/2\",\n \"top-right\": \"top-4 right-4\",\n \"bottom-left\": \"bottom-4 left-4\",\n \"bottom-center\": \"bottom-4 left-1/2 -translate-x-1/2\",\n \"bottom-right\": \"bottom-4 right-4\",\n};\n\nconst getMotionVariants = (position: ToastPosition) => {\n const isTop = position.startsWith(\"top\");\n const isCenter = position.includes(\"center\");\n const isLeft = position.includes(\"left\");\n\n return {\n initial: {\n opacity: 0,\n y: isTop ? -20 : 20,\n x: isCenter ? 0 : isLeft ? -20 : 20,\n scale: 0.95,\n },\n animate: {\n opacity: 1,\n y: 0,\n x: 0,\n scale: 1,\n },\n exit: {\n opacity: 0,\n y: isTop ? -20 : 20,\n scale: 0.95,\n transition: { duration: 0.15 },\n },\n };\n};\n\n// ============================================================================\n// Toast Item Component\n// ============================================================================\n\nconst ToastItem = forwardRef<HTMLDivElement, ToastItemProps>(\n ({ toast, onDismiss, position }, ref) => {\n const {\n type,\n title,\n description,\n icon,\n action,\n dismissible = true,\n duration,\n } = toast;\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const [progress, setProgress] = useState(100);\n const [isPaused, setIsPaused] = useState(false);\n\n const defaultIcons: Record<ToastType, React.ReactNode> = {\n success: <CheckCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n error: <XCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n warning: <AlertTriangleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n info: <InfoCircleIcon className=\"w-5 h-5\" aria-hidden=\"true\" />,\n loading: (\n <LoaderIcon className=\"w-5 h-5 animate-spin\" aria-hidden=\"true\" />\n ),\n default: null,\n };\n\n // Auto-dismiss timer with progress\n useEffect(() => {\n if (duration && duration > 0 && type !== \"loading\") {\n const startTime = Date.now();\n const interval = 50;\n\n const updateProgress = () => {\n if (isPaused) return;\n\n const elapsed = Date.now() - startTime;\n const remaining = Math.max(0, 100 - (elapsed / duration) * 100);\n setProgress(remaining);\n\n if (remaining <= 0) {\n toast.onAutoClose?.();\n onDismiss(toast.id);\n }\n };\n\n timerRef.current = setInterval(updateProgress, interval);\n\n return () => {\n if (timerRef.current) {\n clearInterval(timerRef.current);\n }\n };\n }\n }, [duration, toast.id, type, isPaused, onDismiss, toast]);\n\n const handleMouseEnter = () => setIsPaused(true);\n const handleMouseLeave = () => setIsPaused(false);\n\n const styles = typeStyles[type];\n const displayIcon = icon ?? defaultIcons[type];\n const variants = getMotionVariants(position);\n\n return (\n <motion.div\n ref={ref}\n layout\n initial={variants.initial}\n animate={variants.animate}\n exit={variants.exit}\n transition={{ type: \"spring\", stiffness: 400, damping: 30 }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n className={`\n relative flex items-start gap-3 p-4 pr-10\n rounded-lg shadow-lg border min-w-[320px] max-w-[420px]\n overflow-hidden\n ${styles.bg}\n `}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {/* Progress bar */}\n {duration && duration > 0 && type !== \"loading\" && (\n <div className=\"absolute bottom-0 left-0 right-0 h-1 bg-ds-surface-2\">\n <motion.div\n className={`h-full ${\n type === \"success\"\n ? \"bg-ds-state-success\"\n : type === \"error\"\n ? \"bg-ds-state-danger\"\n : type === \"warning\"\n ? \"bg-ds-state-warning\"\n : type === \"info\"\n ? \"bg-ds-state-info\"\n : \"bg-ds-border-3\"\n }`}\n style={{ width: `${progress}%` }}\n transition={{ duration: 0.05 }}\n />\n </div>\n )}\n\n {/* Icon */}\n {displayIcon && (\n <div\n className={`shrink-0 p-1.5 rounded-full ${styles.iconBg} ${styles.icon}`}\n >\n {displayIcon}\n </div>\n )}\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n {title && <p className=\"text-sm font-semibold text-ds-1\">{title}</p>}\n {description && (\n <p className={`text-sm text-ds-2 ${title ? \"mt-1\" : \"\"}`}>\n {description}\n </p>\n )}\n {action && (\n <button\n onClick={() => {\n action.onClick();\n onDismiss(toast.id);\n }}\n className=\"mt-2 text-sm font-medium text-ds-1 hover:underline\"\n >\n {action.label}\n </button>\n )}\n </div>\n\n {/* Dismiss button */}\n {dismissible && (\n <button\n onClick={() => {\n toast.onDismiss?.();\n onDismiss(toast.id);\n }}\n className=\"absolute top-3 right-3 rounded-full p-1 text-ds-2 transition-colors hover:bg-ds-surface-2 hover:text-ds-1\"\n aria-label=\"Dismiss\"\n >\n <CloseIcon className=\"w-4 h-4\" aria-hidden=\"true\" />\n </button>\n )}\n </motion.div>\n );\n },\n);\n\nToastItem.displayName = \"ToastItem\";\n\n// ============================================================================\n// Toast Provider Component\n// ============================================================================\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n children,\n position = \"bottom-right\",\n duration = 5000,\n maxToasts = 5,\n gap = 12,\n dismissible = true,\n containerClassName = \"\",\n}) => {\n const [toasts, setToasts] = useState<Toast[]>([]);\n const toastIdCounter = useRef(0);\n\n const generateId = () => {\n toastIdCounter.current += 1;\n return `toast-${toastIdCounter.current}-${Date.now()}`;\n };\n\n const addToast = useCallback(\n (options: ToastOptions | string, type: ToastType = \"default\"): string => {\n const id = generateId();\n const toastOptions: ToastOptions =\n typeof options === \"string\" ? { description: options } : options;\n\n const newToast: Toast = {\n id,\n type: toastOptions.type ?? type,\n title: toastOptions.title,\n description: toastOptions.description,\n duration: toastOptions.duration ?? duration,\n icon: toastOptions.icon,\n action: toastOptions.action,\n dismissible: toastOptions.dismissible ?? dismissible,\n onDismiss: toastOptions.onDismiss,\n onAutoClose: toastOptions.onAutoClose,\n };\n\n setToasts((prev) => {\n const updated = [...prev, newToast];\n // Keep only the last maxToasts\n return updated.slice(-maxToasts);\n });\n\n return id;\n },\n [duration, dismissible, maxToasts],\n );\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n const dismissAll = useCallback(() => {\n setToasts([]);\n }, []);\n\n const update = useCallback((id: string, options: Partial<ToastOptions>) => {\n setToasts((prev) =>\n prev.map((t) =>\n t.id === id\n ? {\n ...t,\n ...options,\n type: options.type ?? t.type,\n }\n : t,\n ),\n );\n }, []);\n\n const toast = useCallback(\n (options: ToastOptions | string) => addToast(options, \"default\"),\n [addToast],\n );\n\n const success = useCallback(\n (options: ToastOptions | string) => addToast(options, \"success\"),\n [addToast],\n );\n\n const error = useCallback(\n (options: ToastOptions | string) => addToast(options, \"error\"),\n [addToast],\n );\n\n const warning = useCallback(\n (options: ToastOptions | string) => addToast(options, \"warning\"),\n [addToast],\n );\n\n const info = useCallback(\n (options: ToastOptions | string) => addToast(options, \"info\"),\n [addToast],\n );\n\n const loading = useCallback(\n (options: ToastOptions | string) => {\n const toastOptions: ToastOptions =\n typeof options === \"string\" ? { description: options } : options;\n return addToast(\n { ...toastOptions, duration: 0, dismissible: false },\n \"loading\",\n );\n },\n [addToast],\n );\n\n const promise = useCallback(\n async <T,>(\n promiseToResolve: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ): Promise<T> => {\n const id = loading(options.loading);\n\n try {\n const result = await promiseToResolve;\n const successMessage =\n typeof options.success === \"function\"\n ? options.success(result)\n : options.success;\n update(id, {\n type: \"success\",\n description: successMessage,\n duration,\n dismissible: true,\n });\n return result;\n } catch (err) {\n const errorMessage =\n typeof options.error === \"function\"\n ? options.error(err)\n : options.error;\n update(id, {\n type: \"error\",\n description: errorMessage,\n duration,\n dismissible: true,\n });\n throw err;\n }\n },\n [loading, update, duration],\n );\n\n const contextValue: ToastContextValue = {\n toasts,\n toast,\n success,\n error,\n warning,\n info,\n loading,\n promise,\n dismiss,\n dismissAll,\n update,\n };\n\n const isTop = position.startsWith(\"top\");\n\n return (\n <ToastContext.Provider value={contextValue}>\n {children}\n <div\n className={`fixed z-100 flex flex-col pointer-events-none ${positionStyles[position]} ${containerClassName}`}\n style={{ gap: `${gap}px` }}\n >\n <AnimatePresence mode=\"popLayout\">\n {(isTop ? toasts : [...toasts].reverse()).map((t) => (\n <div key={t.id} className=\"pointer-events-auto\">\n <ToastItem toast={t} onDismiss={dismiss} position={position} />\n </div>\n ))}\n </AnimatePresence>\n </div>\n </ToastContext.Provider>\n );\n};\n\n// ============================================================================\n// Standalone toast function (for use without hooks)\n// ============================================================================\n\nlet globalToast: ToastContextValue | null = null;\n\nexport const setGlobalToast = (toastContext: ToastContextValue) => {\n globalToast = toastContext;\n};\n\nexport const toastStandalone = {\n show: (options: ToastOptions | string) => globalToast?.toast(options),\n success: (options: ToastOptions | string) => globalToast?.success(options),\n error: (options: ToastOptions | string) => globalToast?.error(options),\n warning: (options: ToastOptions | string) => globalToast?.warning(options),\n info: (options: ToastOptions | string) => globalToast?.info(options),\n loading: (options: ToastOptions | string) => globalToast?.loading(options),\n promise: <T,>(\n promise: Promise<T>,\n options: {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n },\n ) => globalToast?.promise(promise, options),\n dismiss: (id: string) => globalToast?.dismiss(id),\n dismissAll: () => globalToast?.dismissAll(),\n};\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport default ToastProvider;\nexport { ToastItem };\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- const require_chunk = require("./chunk-B_GkZjkl.cjs");
2
- const require_utils = require("./utils-LRbEQHYs.cjs");
1
+ const require_chunk = require("./chunk-D6vf50IK.cjs");
2
+ const require_utils = require("./utils-CoA0q63n.cjs");
3
3
  let react = require("react");
4
4
  react = require_chunk.__toESM(react, 1);
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -49,4 +49,4 @@ Object.defineProperty(exports, "TruncatedText", {
49
49
  }
50
50
  });
51
51
 
52
- //# sourceMappingURL=truncated-text-BIXqNfOL.cjs.map
52
+ //# sourceMappingURL=truncated-text-D0t4atw5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"truncated-text-BIXqNfOL.cjs","names":[],"sources":["../../src/components/typography/truncated-text/TruncatedText.tsx"],"sourcesContent":["import React, { isValidElement, type ElementType, type ReactNode } from \"react\";\n\nimport { mergeClassNames } from \"../../../utils\";\n\nfunction extractTextContent(node: ReactNode): string | undefined {\n if (typeof node === \"string\" || typeof node === \"number\") {\n return String(node);\n }\n\n if (Array.isArray(node)) {\n const parts = node\n .map((child) => extractTextContent(child))\n .filter((value): value is string => Boolean(value));\n\n return parts.length > 0 ? parts.join(\"\") : undefined;\n }\n\n if (isValidElement<{ children?: ReactNode }>(node)) {\n return extractTextContent(node.props.children);\n }\n\n return undefined;\n}\n\nexport interface TruncatedTextProps extends Omit<\n React.HTMLAttributes<HTMLElement>,\n \"children\"\n> {\n children: ReactNode;\n as?: ElementType;\n lines?: number;\n width?: React.CSSProperties[\"width\"];\n maxWidth?: React.CSSProperties[\"maxWidth\"];\n showTitleOnHover?: boolean;\n}\n\nexport const TruncatedText = ({\n children,\n as,\n lines = 1,\n width,\n maxWidth,\n showTitleOnHover = false,\n className,\n style,\n title,\n ...rest\n}: TruncatedTextProps): React.JSX.Element => {\n const Component = as ?? \"span\";\n const normalizedLines =\n Number.isFinite(lines) && lines > 0 ? Math.floor(lines) : 1;\n const resolvedTitle = showTitleOnHover\n ? (title ?? extractTextContent(children))\n : title;\n\n const truncationStyle: React.CSSProperties =\n normalizedLines > 1\n ? {\n ...style,\n width,\n maxWidth,\n overflow: \"hidden\",\n display: style?.display ?? \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: normalizedLines,\n }\n : {\n ...style,\n width,\n maxWidth,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n display: style?.display ?? \"block\",\n };\n\n return (\n <Component\n {...rest}\n title={resolvedTitle}\n style={truncationStyle}\n className={mergeClassNames(\"min-w-0\", className)}\n >\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;;;AAIA,SAAS,mBAAmB,MAAqC;AAC/D,KAAI,OAAO,SAAS,YAAY,OAAO,SAAS,SAC9C,QAAO,OAAO,KAAK;AAGrB,KAAI,MAAM,QAAQ,KAAK,EAAE;EACvB,MAAM,QAAQ,KACX,KAAK,UAAU,mBAAmB,MAAM,CAAC,CACzC,QAAQ,UAA2B,QAAQ,MAAM,CAAC;AAErD,SAAO,MAAM,SAAS,IAAI,MAAM,KAAK,GAAG,GAAG,KAAA;;AAG7C,MAAA,GAAA,MAAA,gBAA6C,KAAK,CAChD,QAAO,mBAAmB,KAAK,MAAM,SAAS;;AAkBlD,IAAa,iBAAiB,EAC5B,UACA,IACA,QAAQ,GACR,OACA,UACA,mBAAmB,OACnB,WACA,OACA,OACA,GAAG,WACwC;CAC3C,MAAM,YAAY,MAAM;CACxB,MAAM,kBACJ,OAAO,SAAS,MAAM,IAAI,QAAQ,IAAI,KAAK,MAAM,MAAM,GAAG;CAC5D,MAAM,gBAAgB,mBACjB,SAAS,mBAAmB,SAAS,GACtC;CAEJ,MAAM,kBACJ,kBAAkB,IACd;EACE,GAAG;EACH;EACA;EACA,UAAU;EACV,SAAS,OAAO,WAAW;EAC3B,iBAAiB;EACjB,iBAAiB;EAClB,GACD;EACE,GAAG;EACH;EACA;EACA,UAAU;EACV,cAAc;EACd,YAAY;EACZ,SAAS,OAAO,WAAW;EAC5B;AAEP,QACE,iBAAA,GAAA,kBAAA,KAAC,WAAD;EACE,GAAI;EACJ,OAAO;EACP,OAAO;EACP,WAAW,cAAA,gBAAgB,WAAW,UAAU;EAE/C;EACS,CAAA"}
1
+ {"version":3,"file":"truncated-text-D0t4atw5.cjs","names":[],"sources":["../../src/components/typography/truncated-text/TruncatedText.tsx"],"sourcesContent":["import React, { isValidElement, type ElementType, type ReactNode } from \"react\";\n\nimport { mergeClassNames } from \"../../../utils\";\n\nfunction extractTextContent(node: ReactNode): string | undefined {\n if (typeof node === \"string\" || typeof node === \"number\") {\n return String(node);\n }\n\n if (Array.isArray(node)) {\n const parts = node\n .map((child) => extractTextContent(child))\n .filter((value): value is string => Boolean(value));\n\n return parts.length > 0 ? parts.join(\"\") : undefined;\n }\n\n if (isValidElement<{ children?: ReactNode }>(node)) {\n return extractTextContent(node.props.children);\n }\n\n return undefined;\n}\n\nexport interface TruncatedTextProps extends Omit<\n React.HTMLAttributes<HTMLElement>,\n \"children\"\n> {\n children: ReactNode;\n as?: ElementType;\n lines?: number;\n width?: React.CSSProperties[\"width\"];\n maxWidth?: React.CSSProperties[\"maxWidth\"];\n showTitleOnHover?: boolean;\n}\n\nexport const TruncatedText = ({\n children,\n as,\n lines = 1,\n width,\n maxWidth,\n showTitleOnHover = false,\n className,\n style,\n title,\n ...rest\n}: TruncatedTextProps): React.JSX.Element => {\n const Component = as ?? \"span\";\n const normalizedLines =\n Number.isFinite(lines) && lines > 0 ? Math.floor(lines) : 1;\n const resolvedTitle = showTitleOnHover\n ? (title ?? extractTextContent(children))\n : title;\n\n const truncationStyle: React.CSSProperties =\n normalizedLines > 1\n ? {\n ...style,\n width,\n maxWidth,\n overflow: \"hidden\",\n display: style?.display ?? \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: normalizedLines,\n }\n : {\n ...style,\n width,\n maxWidth,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n display: style?.display ?? \"block\",\n };\n\n return (\n <Component\n {...rest}\n title={resolvedTitle}\n style={truncationStyle}\n className={mergeClassNames(\"min-w-0\", className)}\n >\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;;;AAIA,SAAS,mBAAmB,MAAqC;CAC/D,IAAI,OAAO,SAAS,YAAY,OAAO,SAAS,UAC9C,OAAO,OAAO,IAAI;CAGpB,IAAI,MAAM,QAAQ,IAAI,GAAG;EACvB,MAAM,QAAQ,KACX,KAAK,UAAU,mBAAmB,KAAK,CAAC,EACxC,QAAQ,UAA2B,QAAQ,KAAK,CAAC;EAEpD,OAAO,MAAM,SAAS,IAAI,MAAM,KAAK,EAAE,IAAI,KAAA;CAC7C;CAEA,KAAA,GAAA,MAAA,gBAA6C,IAAI,GAC/C,OAAO,mBAAmB,KAAK,MAAM,QAAQ;AAIjD;AAcA,IAAa,iBAAiB,EAC5B,UACA,IACA,QAAQ,GACR,OACA,UACA,mBAAmB,OACnB,WACA,OACA,OACA,GAAG,WACwC;CAC3C,MAAM,YAAY,MAAM;CACxB,MAAM,kBACJ,OAAO,SAAS,KAAK,KAAK,QAAQ,IAAI,KAAK,MAAM,KAAK,IAAI;CAC5D,MAAM,gBAAgB,mBACjB,SAAS,mBAAmB,QAAQ,IACrC;CAEJ,MAAM,kBACJ,kBAAkB,IACd;EACE,GAAG;EACH;EACA;EACA,UAAU;EACV,SAAS,OAAO,WAAW;EAC3B,iBAAiB;EACjB,iBAAiB;CACnB,IACA;EACE,GAAG;EACH;EACA;EACA,UAAU;EACV,cAAc;EACd,YAAY;EACZ,SAAS,OAAO,WAAW;CAC7B;CAEN,OACE,iBAAA,GAAA,kBAAA,KAAC,WAAD;EACE,GAAI;EACJ,OAAO;EACP,OAAO;EACP,WAAW,cAAA,gBAAgB,WAAW,SAAS;EAE9C;CACQ,CAAA;AAEf"}
@@ -1,4 +1,4 @@
1
- import { n as mergeClassNames } from "./utils-7S0u48mU.mjs";
1
+ import { n as mergeClassNames } from "./utils-Dc7j29ec.mjs";
2
2
  import { isValidElement } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/typography/truncated-text/TruncatedText.tsx
@@ -42,4 +42,4 @@ var TruncatedText = ({ children, as, lines = 1, width, maxWidth, showTitleOnHove
42
42
  //#endregion
43
43
  export { TruncatedText as t };
44
44
 
45
- //# sourceMappingURL=truncated-text-C9t9o9IA.mjs.map
45
+ //# sourceMappingURL=truncated-text-DIkg-8Vo.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"truncated-text-C9t9o9IA.mjs","names":[],"sources":["../../src/components/typography/truncated-text/TruncatedText.tsx"],"sourcesContent":["import React, { isValidElement, type ElementType, type ReactNode } from \"react\";\n\nimport { mergeClassNames } from \"../../../utils\";\n\nfunction extractTextContent(node: ReactNode): string | undefined {\n if (typeof node === \"string\" || typeof node === \"number\") {\n return String(node);\n }\n\n if (Array.isArray(node)) {\n const parts = node\n .map((child) => extractTextContent(child))\n .filter((value): value is string => Boolean(value));\n\n return parts.length > 0 ? parts.join(\"\") : undefined;\n }\n\n if (isValidElement<{ children?: ReactNode }>(node)) {\n return extractTextContent(node.props.children);\n }\n\n return undefined;\n}\n\nexport interface TruncatedTextProps extends Omit<\n React.HTMLAttributes<HTMLElement>,\n \"children\"\n> {\n children: ReactNode;\n as?: ElementType;\n lines?: number;\n width?: React.CSSProperties[\"width\"];\n maxWidth?: React.CSSProperties[\"maxWidth\"];\n showTitleOnHover?: boolean;\n}\n\nexport const TruncatedText = ({\n children,\n as,\n lines = 1,\n width,\n maxWidth,\n showTitleOnHover = false,\n className,\n style,\n title,\n ...rest\n}: TruncatedTextProps): React.JSX.Element => {\n const Component = as ?? \"span\";\n const normalizedLines =\n Number.isFinite(lines) && lines > 0 ? Math.floor(lines) : 1;\n const resolvedTitle = showTitleOnHover\n ? (title ?? extractTextContent(children))\n : title;\n\n const truncationStyle: React.CSSProperties =\n normalizedLines > 1\n ? {\n ...style,\n width,\n maxWidth,\n overflow: \"hidden\",\n display: style?.display ?? \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: normalizedLines,\n }\n : {\n ...style,\n width,\n maxWidth,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n display: style?.display ?? \"block\",\n };\n\n return (\n <Component\n {...rest}\n title={resolvedTitle}\n style={truncationStyle}\n className={mergeClassNames(\"min-w-0\", className)}\n >\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;AAIA,SAAS,mBAAmB,MAAqC;AAC/D,KAAI,OAAO,SAAS,YAAY,OAAO,SAAS,SAC9C,QAAO,OAAO,KAAK;AAGrB,KAAI,MAAM,QAAQ,KAAK,EAAE;EACvB,MAAM,QAAQ,KACX,KAAK,UAAU,mBAAmB,MAAM,CAAC,CACzC,QAAQ,UAA2B,QAAQ,MAAM,CAAC;AAErD,SAAO,MAAM,SAAS,IAAI,MAAM,KAAK,GAAG,GAAG,KAAA;;AAG7C,KAAI,eAAyC,KAAK,CAChD,QAAO,mBAAmB,KAAK,MAAM,SAAS;;AAkBlD,IAAa,iBAAiB,EAC5B,UACA,IACA,QAAQ,GACR,OACA,UACA,mBAAmB,OACnB,WACA,OACA,OACA,GAAG,WACwC;CAC3C,MAAM,YAAY,MAAM;CACxB,MAAM,kBACJ,OAAO,SAAS,MAAM,IAAI,QAAQ,IAAI,KAAK,MAAM,MAAM,GAAG;CAC5D,MAAM,gBAAgB,mBACjB,SAAS,mBAAmB,SAAS,GACtC;CAEJ,MAAM,kBACJ,kBAAkB,IACd;EACE,GAAG;EACH;EACA;EACA,UAAU;EACV,SAAS,OAAO,WAAW;EAC3B,iBAAiB;EACjB,iBAAiB;EAClB,GACD;EACE,GAAG;EACH;EACA;EACA,UAAU;EACV,cAAc;EACd,YAAY;EACZ,SAAS,OAAO,WAAW;EAC5B;AAEP,QACE,oBAAC,WAAD;EACE,GAAI;EACJ,OAAO;EACP,OAAO;EACP,WAAW,gBAAgB,WAAW,UAAU;EAE/C;EACS,CAAA"}
1
+ {"version":3,"file":"truncated-text-DIkg-8Vo.mjs","names":[],"sources":["../../src/components/typography/truncated-text/TruncatedText.tsx"],"sourcesContent":["import React, { isValidElement, type ElementType, type ReactNode } from \"react\";\n\nimport { mergeClassNames } from \"../../../utils\";\n\nfunction extractTextContent(node: ReactNode): string | undefined {\n if (typeof node === \"string\" || typeof node === \"number\") {\n return String(node);\n }\n\n if (Array.isArray(node)) {\n const parts = node\n .map((child) => extractTextContent(child))\n .filter((value): value is string => Boolean(value));\n\n return parts.length > 0 ? parts.join(\"\") : undefined;\n }\n\n if (isValidElement<{ children?: ReactNode }>(node)) {\n return extractTextContent(node.props.children);\n }\n\n return undefined;\n}\n\nexport interface TruncatedTextProps extends Omit<\n React.HTMLAttributes<HTMLElement>,\n \"children\"\n> {\n children: ReactNode;\n as?: ElementType;\n lines?: number;\n width?: React.CSSProperties[\"width\"];\n maxWidth?: React.CSSProperties[\"maxWidth\"];\n showTitleOnHover?: boolean;\n}\n\nexport const TruncatedText = ({\n children,\n as,\n lines = 1,\n width,\n maxWidth,\n showTitleOnHover = false,\n className,\n style,\n title,\n ...rest\n}: TruncatedTextProps): React.JSX.Element => {\n const Component = as ?? \"span\";\n const normalizedLines =\n Number.isFinite(lines) && lines > 0 ? Math.floor(lines) : 1;\n const resolvedTitle = showTitleOnHover\n ? (title ?? extractTextContent(children))\n : title;\n\n const truncationStyle: React.CSSProperties =\n normalizedLines > 1\n ? {\n ...style,\n width,\n maxWidth,\n overflow: \"hidden\",\n display: style?.display ?? \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: normalizedLines,\n }\n : {\n ...style,\n width,\n maxWidth,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n display: style?.display ?? \"block\",\n };\n\n return (\n <Component\n {...rest}\n title={resolvedTitle}\n style={truncationStyle}\n className={mergeClassNames(\"min-w-0\", className)}\n >\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;AAIA,SAAS,mBAAmB,MAAqC;CAC/D,IAAI,OAAO,SAAS,YAAY,OAAO,SAAS,UAC9C,OAAO,OAAO,IAAI;CAGpB,IAAI,MAAM,QAAQ,IAAI,GAAG;EACvB,MAAM,QAAQ,KACX,KAAK,UAAU,mBAAmB,KAAK,CAAC,EACxC,QAAQ,UAA2B,QAAQ,KAAK,CAAC;EAEpD,OAAO,MAAM,SAAS,IAAI,MAAM,KAAK,EAAE,IAAI,KAAA;CAC7C;CAEA,IAAI,eAAyC,IAAI,GAC/C,OAAO,mBAAmB,KAAK,MAAM,QAAQ;AAIjD;AAcA,IAAa,iBAAiB,EAC5B,UACA,IACA,QAAQ,GACR,OACA,UACA,mBAAmB,OACnB,WACA,OACA,OACA,GAAG,WACwC;CAC3C,MAAM,YAAY,MAAM;CACxB,MAAM,kBACJ,OAAO,SAAS,KAAK,KAAK,QAAQ,IAAI,KAAK,MAAM,KAAK,IAAI;CAC5D,MAAM,gBAAgB,mBACjB,SAAS,mBAAmB,QAAQ,IACrC;CAEJ,MAAM,kBACJ,kBAAkB,IACd;EACE,GAAG;EACH;EACA;EACA,UAAU;EACV,SAAS,OAAO,WAAW;EAC3B,iBAAiB;EACjB,iBAAiB;CACnB,IACA;EACE,GAAG;EACH;EACA;EACA,UAAU;EACV,cAAc;EACd,YAAY;EACZ,SAAS,OAAO,WAAW;CAC7B;CAEN,OACE,oBAAC,WAAD;EACE,GAAI;EACJ,OAAO;EACP,OAAO;EACP,WAAW,gBAAgB,WAAW,SAAS;EAE9C;CACQ,CAAA;AAEf"}
@@ -1,5 +1,5 @@
1
- const require_chunk = require("./chunk-B_GkZjkl.cjs");
2
- const require_utils = require("./utils-LRbEQHYs.cjs");
1
+ const require_chunk = require("./chunk-D6vf50IK.cjs");
2
+ const require_utils = require("./utils-CoA0q63n.cjs");
3
3
  let react = require("react");
4
4
  react = require_chunk.__toESM(react, 1);
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -87,4 +87,4 @@ Object.defineProperty(exports, "Typography", {
87
87
  }
88
88
  });
89
89
 
90
- //# sourceMappingURL=typography-LwwY_MOy.cjs.map
90
+ //# sourceMappingURL=typography-C5fYwhp2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography-LwwY_MOy.cjs","names":[],"sources":["../../src/components/typography/Typography.tsx"],"sourcesContent":["import React, { type ReactNode, type ElementType } from \"react\";\nimport { mergeClassNames } from \"../../utils\";\n\nexport type TypographyVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"body1\"\n | \"body2\"\n | \"caption\"\n | \"overline\";\n\nexport type TypographyAlign = \"left\" | \"center\" | \"right\" | \"justify\";\nexport type TypographyWeight =\n | \"thin\"\n | \"extralight\"\n | \"light\"\n | \"normal\"\n | \"medium\"\n | \"semibold\"\n | \"bold\"\n | \"extrabold\"\n | \"black\";\nexport type TypographyTracking =\n | \"tighter\"\n | \"tight\"\n | \"normal\"\n | \"wide\"\n | \"wider\"\n | \"widest\";\nexport type TypographyGradient =\n | boolean\n | \"primary\"\n | \"ocean\"\n | \"sunset\"\n | \"aurora\"\n | \"neon\"\n | \"forest\"\n | \"galaxy\";\n\nexport interface TypographyProps {\n children: ReactNode;\n variant?: TypographyVariant;\n align?: TypographyAlign;\n weight?: TypographyWeight;\n tracking?: TypographyTracking;\n italic?: boolean;\n as?: ElementType;\n className?: string;\n gradient?: TypographyGradient;\n style?: React.CSSProperties;\n}\n\nconst variantMapping: Record<TypographyVariant, ElementType> = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body1: \"p\",\n body2: \"p\",\n caption: \"span\",\n overline: \"span\",\n};\n\nconst variantStyles: Record<TypographyVariant, string> = {\n h1: \"text-4xl md:text-6xl font-black tracking-tighter uppercase italic leading-tight\",\n h2: \"text-3xl md:text-5xl font-black tracking-tight uppercase italic leading-snug\",\n h3: \"text-2xl md:text-4xl font-extrabold tracking-tight italic\",\n h4: \"text-xl md:text-2xl font-bold tracking-tight\",\n h5: \"text-lg md:text-xl font-bold\",\n h6: \"text-base md:text-lg font-semibold uppercase tracking-widest text-ds-3\",\n body1: \"text-base font-medium leading-relaxed\",\n body2: \"text-sm font-medium leading-relaxed text-ds-2\",\n caption: \"text-xs font-semibold uppercase tracking-wider text-ds-3\",\n overline: \"text-[10px] font-black uppercase tracking-[0.2em] text-ds-2\",\n};\n\nconst alignStyles: Record<TypographyAlign, string> = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n justify: \"text-justify\",\n};\n\nconst weightStyles: Record<TypographyWeight, string> = {\n thin: \"font-thin\",\n extralight: \"font-extralight\",\n light: \"font-light\",\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n extrabold: \"font-extrabold\",\n black: \"font-black\",\n};\n\nconst trackingStyles: Record<TypographyTracking, string> = {\n tighter: \"tracking-tighter\",\n tight: \"tracking-tight\",\n normal: \"tracking-normal\",\n wide: \"tracking-wide\",\n wider: \"tracking-wider\",\n widest: \"tracking-widest\",\n};\n\nconst gradientStyles: Record<string, string> = {\n primary: \"bg-clip-text text-transparent\",\n ocean:\n \"bg-linear-to-r from-cyan-500 to-blue-600 bg-clip-text text-transparent\",\n sunset:\n \"bg-linear-to-r from-orange-500 to-rose-600 bg-clip-text text-transparent\",\n aurora:\n \"bg-linear-to-r from-emerald-400 to-cyan-500 bg-clip-text text-transparent\",\n neon: \"bg-linear-to-r from-fuchsia-500 to-purple-600 bg-clip-text text-transparent\",\n forest:\n \"bg-linear-to-r from-lime-500 to-emerald-600 bg-clip-text text-transparent\",\n galaxy:\n \"bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500 bg-clip-text text-transparent\",\n};\n\nexport const Typography = ({\n children,\n variant = \"body1\",\n align,\n weight,\n tracking,\n italic,\n as,\n className,\n gradient = false,\n style,\n}: TypographyProps) => {\n const Component = as || variantMapping[variant];\n const gradientVariant = gradient === true ? \"primary\" : gradient;\n\n const getGradientClass = () => {\n if (!gradient) return \"\";\n if (gradient === true) return gradientStyles.primary;\n return gradientStyles[gradient] || gradientStyles.primary;\n };\n\n const computedStyle: React.CSSProperties | undefined =\n gradientVariant === \"primary\"\n ? {\n ...style,\n backgroundImage:\n \"linear-gradient(90deg, var(--ds-color-accent), var(--ds-color-accent-hover))\",\n }\n : style;\n\n return (\n <Component\n style={computedStyle}\n className={mergeClassNames(\n variantStyles[variant],\n align && alignStyles[align],\n weight && weightStyles[weight],\n tracking && trackingStyles[tracking],\n italic && \"italic\",\n getGradientClass(),\n className,\n )}\n >\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;;;AAwDA,IAAM,iBAAyD;CAC7D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;CACX;AAED,IAAM,gBAAmD;CACvD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;CACX;AAED,IAAM,cAA+C;CACnD,MAAM;CACN,QAAQ;CACR,OAAO;CACP,SAAS;CACV;AAED,IAAM,eAAiD;CACrD,MAAM;CACN,YAAY;CACZ,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,MAAM;CACN,WAAW;CACX,OAAO;CACR;AAED,IAAM,iBAAqD;CACzD,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;CACT;AAED,IAAM,iBAAyC;CAC7C,SAAS;CACT,OACE;CACF,QACE;CACF,QACE;CACF,MAAM;CACN,QACE;CACF,QACE;CACH;AAED,IAAa,cAAc,EACzB,UACA,UAAU,SACV,OACA,QACA,UACA,QACA,IACA,WACA,WAAW,OACX,YACqB;CACrB,MAAM,YAAY,MAAM,eAAe;CACvC,MAAM,kBAAkB,aAAa,OAAO,YAAY;CAExD,MAAM,yBAAyB;AAC7B,MAAI,CAAC,SAAU,QAAO;AACtB,MAAI,aAAa,KAAM,QAAO,eAAe;AAC7C,SAAO,eAAe,aAAa,eAAe;;AAYpD,QACE,iBAAA,GAAA,kBAAA,KAAC,WAAD;EACE,OAVF,oBAAoB,YAChB;GACE,GAAG;GACH,iBACE;GACH,GACD;EAKF,WAAW,cAAA,gBACT,cAAc,UACd,SAAS,YAAY,QACrB,UAAU,aAAa,SACvB,YAAY,eAAe,WAC3B,UAAU,UACV,kBAAkB,EAClB,UACD;EAEA;EACS,CAAA"}
1
+ {"version":3,"file":"typography-C5fYwhp2.cjs","names":[],"sources":["../../src/components/typography/Typography.tsx"],"sourcesContent":["import React, { type ReactNode, type ElementType } from \"react\";\nimport { mergeClassNames } from \"../../utils\";\n\nexport type TypographyVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"body1\"\n | \"body2\"\n | \"caption\"\n | \"overline\";\n\nexport type TypographyAlign = \"left\" | \"center\" | \"right\" | \"justify\";\nexport type TypographyWeight =\n | \"thin\"\n | \"extralight\"\n | \"light\"\n | \"normal\"\n | \"medium\"\n | \"semibold\"\n | \"bold\"\n | \"extrabold\"\n | \"black\";\nexport type TypographyTracking =\n | \"tighter\"\n | \"tight\"\n | \"normal\"\n | \"wide\"\n | \"wider\"\n | \"widest\";\nexport type TypographyGradient =\n | boolean\n | \"primary\"\n | \"ocean\"\n | \"sunset\"\n | \"aurora\"\n | \"neon\"\n | \"forest\"\n | \"galaxy\";\n\nexport interface TypographyProps {\n children: ReactNode;\n variant?: TypographyVariant;\n align?: TypographyAlign;\n weight?: TypographyWeight;\n tracking?: TypographyTracking;\n italic?: boolean;\n as?: ElementType;\n className?: string;\n gradient?: TypographyGradient;\n style?: React.CSSProperties;\n}\n\nconst variantMapping: Record<TypographyVariant, ElementType> = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body1: \"p\",\n body2: \"p\",\n caption: \"span\",\n overline: \"span\",\n};\n\nconst variantStyles: Record<TypographyVariant, string> = {\n h1: \"text-4xl md:text-6xl font-black tracking-tighter uppercase italic leading-tight\",\n h2: \"text-3xl md:text-5xl font-black tracking-tight uppercase italic leading-snug\",\n h3: \"text-2xl md:text-4xl font-extrabold tracking-tight italic\",\n h4: \"text-xl md:text-2xl font-bold tracking-tight\",\n h5: \"text-lg md:text-xl font-bold\",\n h6: \"text-base md:text-lg font-semibold uppercase tracking-widest text-ds-3\",\n body1: \"text-base font-medium leading-relaxed\",\n body2: \"text-sm font-medium leading-relaxed text-ds-2\",\n caption: \"text-xs font-semibold uppercase tracking-wider text-ds-3\",\n overline: \"text-[10px] font-black uppercase tracking-[0.2em] text-ds-2\",\n};\n\nconst alignStyles: Record<TypographyAlign, string> = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n justify: \"text-justify\",\n};\n\nconst weightStyles: Record<TypographyWeight, string> = {\n thin: \"font-thin\",\n extralight: \"font-extralight\",\n light: \"font-light\",\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n extrabold: \"font-extrabold\",\n black: \"font-black\",\n};\n\nconst trackingStyles: Record<TypographyTracking, string> = {\n tighter: \"tracking-tighter\",\n tight: \"tracking-tight\",\n normal: \"tracking-normal\",\n wide: \"tracking-wide\",\n wider: \"tracking-wider\",\n widest: \"tracking-widest\",\n};\n\nconst gradientStyles: Record<string, string> = {\n primary: \"bg-clip-text text-transparent\",\n ocean:\n \"bg-linear-to-r from-cyan-500 to-blue-600 bg-clip-text text-transparent\",\n sunset:\n \"bg-linear-to-r from-orange-500 to-rose-600 bg-clip-text text-transparent\",\n aurora:\n \"bg-linear-to-r from-emerald-400 to-cyan-500 bg-clip-text text-transparent\",\n neon: \"bg-linear-to-r from-fuchsia-500 to-purple-600 bg-clip-text text-transparent\",\n forest:\n \"bg-linear-to-r from-lime-500 to-emerald-600 bg-clip-text text-transparent\",\n galaxy:\n \"bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500 bg-clip-text text-transparent\",\n};\n\nexport const Typography = ({\n children,\n variant = \"body1\",\n align,\n weight,\n tracking,\n italic,\n as,\n className,\n gradient = false,\n style,\n}: TypographyProps) => {\n const Component = as || variantMapping[variant];\n const gradientVariant = gradient === true ? \"primary\" : gradient;\n\n const getGradientClass = () => {\n if (!gradient) return \"\";\n if (gradient === true) return gradientStyles.primary;\n return gradientStyles[gradient] || gradientStyles.primary;\n };\n\n const computedStyle: React.CSSProperties | undefined =\n gradientVariant === \"primary\"\n ? {\n ...style,\n backgroundImage:\n \"linear-gradient(90deg, var(--ds-color-accent), var(--ds-color-accent-hover))\",\n }\n : style;\n\n return (\n <Component\n style={computedStyle}\n className={mergeClassNames(\n variantStyles[variant],\n align && alignStyles[align],\n weight && weightStyles[weight],\n tracking && trackingStyles[tracking],\n italic && \"italic\",\n getGradientClass(),\n className,\n )}\n >\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;;;AAwDA,IAAM,iBAAyD;CAC7D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;AACZ;AAEA,IAAM,gBAAmD;CACvD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;AACZ;AAEA,IAAM,cAA+C;CACnD,MAAM;CACN,QAAQ;CACR,OAAO;CACP,SAAS;AACX;AAEA,IAAM,eAAiD;CACrD,MAAM;CACN,YAAY;CACZ,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,MAAM;CACN,WAAW;CACX,OAAO;AACT;AAEA,IAAM,iBAAqD;CACzD,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;AACV;AAEA,IAAM,iBAAyC;CAC7C,SAAS;CACT,OACE;CACF,QACE;CACF,QACE;CACF,MAAM;CACN,QACE;CACF,QACE;AACJ;AAEA,IAAa,cAAc,EACzB,UACA,UAAU,SACV,OACA,QACA,UACA,QACA,IACA,WACA,WAAW,OACX,YACqB;CACrB,MAAM,YAAY,MAAM,eAAe;CACvC,MAAM,kBAAkB,aAAa,OAAO,YAAY;CAExD,MAAM,yBAAyB;EAC7B,IAAI,CAAC,UAAU,OAAO;EACtB,IAAI,aAAa,MAAM,OAAO,eAAe;EAC7C,OAAO,eAAe,aAAa,eAAe;CACpD;CAWA,OACE,iBAAA,GAAA,kBAAA,KAAC,WAAD;EACE,OAVF,oBAAoB,YAChB;GACE,GAAG;GACH,iBACE;EACJ,IACA;EAKF,WAAW,cAAA,gBACT,cAAc,UACd,SAAS,YAAY,QACrB,UAAU,aAAa,SACvB,YAAY,eAAe,WAC3B,UAAU,UACV,iBAAiB,GACjB,SACF;EAEC;CACQ,CAAA;AAEf"}
@@ -1,4 +1,4 @@
1
- import { n as mergeClassNames } from "./utils-7S0u48mU.mjs";
1
+ import { n as mergeClassNames } from "./utils-Dc7j29ec.mjs";
2
2
  import "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/typography/Typography.tsx
@@ -80,4 +80,4 @@ var Typography = ({ children, variant = "body1", align, weight, tracking, italic
80
80
  //#endregion
81
81
  export { Typography as t };
82
82
 
83
- //# sourceMappingURL=typography-Ct-jDJP3.mjs.map
83
+ //# sourceMappingURL=typography-Czi7t5y4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography-Ct-jDJP3.mjs","names":[],"sources":["../../src/components/typography/Typography.tsx"],"sourcesContent":["import React, { type ReactNode, type ElementType } from \"react\";\nimport { mergeClassNames } from \"../../utils\";\n\nexport type TypographyVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"body1\"\n | \"body2\"\n | \"caption\"\n | \"overline\";\n\nexport type TypographyAlign = \"left\" | \"center\" | \"right\" | \"justify\";\nexport type TypographyWeight =\n | \"thin\"\n | \"extralight\"\n | \"light\"\n | \"normal\"\n | \"medium\"\n | \"semibold\"\n | \"bold\"\n | \"extrabold\"\n | \"black\";\nexport type TypographyTracking =\n | \"tighter\"\n | \"tight\"\n | \"normal\"\n | \"wide\"\n | \"wider\"\n | \"widest\";\nexport type TypographyGradient =\n | boolean\n | \"primary\"\n | \"ocean\"\n | \"sunset\"\n | \"aurora\"\n | \"neon\"\n | \"forest\"\n | \"galaxy\";\n\nexport interface TypographyProps {\n children: ReactNode;\n variant?: TypographyVariant;\n align?: TypographyAlign;\n weight?: TypographyWeight;\n tracking?: TypographyTracking;\n italic?: boolean;\n as?: ElementType;\n className?: string;\n gradient?: TypographyGradient;\n style?: React.CSSProperties;\n}\n\nconst variantMapping: Record<TypographyVariant, ElementType> = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body1: \"p\",\n body2: \"p\",\n caption: \"span\",\n overline: \"span\",\n};\n\nconst variantStyles: Record<TypographyVariant, string> = {\n h1: \"text-4xl md:text-6xl font-black tracking-tighter uppercase italic leading-tight\",\n h2: \"text-3xl md:text-5xl font-black tracking-tight uppercase italic leading-snug\",\n h3: \"text-2xl md:text-4xl font-extrabold tracking-tight italic\",\n h4: \"text-xl md:text-2xl font-bold tracking-tight\",\n h5: \"text-lg md:text-xl font-bold\",\n h6: \"text-base md:text-lg font-semibold uppercase tracking-widest text-ds-3\",\n body1: \"text-base font-medium leading-relaxed\",\n body2: \"text-sm font-medium leading-relaxed text-ds-2\",\n caption: \"text-xs font-semibold uppercase tracking-wider text-ds-3\",\n overline: \"text-[10px] font-black uppercase tracking-[0.2em] text-ds-2\",\n};\n\nconst alignStyles: Record<TypographyAlign, string> = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n justify: \"text-justify\",\n};\n\nconst weightStyles: Record<TypographyWeight, string> = {\n thin: \"font-thin\",\n extralight: \"font-extralight\",\n light: \"font-light\",\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n extrabold: \"font-extrabold\",\n black: \"font-black\",\n};\n\nconst trackingStyles: Record<TypographyTracking, string> = {\n tighter: \"tracking-tighter\",\n tight: \"tracking-tight\",\n normal: \"tracking-normal\",\n wide: \"tracking-wide\",\n wider: \"tracking-wider\",\n widest: \"tracking-widest\",\n};\n\nconst gradientStyles: Record<string, string> = {\n primary: \"bg-clip-text text-transparent\",\n ocean:\n \"bg-linear-to-r from-cyan-500 to-blue-600 bg-clip-text text-transparent\",\n sunset:\n \"bg-linear-to-r from-orange-500 to-rose-600 bg-clip-text text-transparent\",\n aurora:\n \"bg-linear-to-r from-emerald-400 to-cyan-500 bg-clip-text text-transparent\",\n neon: \"bg-linear-to-r from-fuchsia-500 to-purple-600 bg-clip-text text-transparent\",\n forest:\n \"bg-linear-to-r from-lime-500 to-emerald-600 bg-clip-text text-transparent\",\n galaxy:\n \"bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500 bg-clip-text text-transparent\",\n};\n\nexport const Typography = ({\n children,\n variant = \"body1\",\n align,\n weight,\n tracking,\n italic,\n as,\n className,\n gradient = false,\n style,\n}: TypographyProps) => {\n const Component = as || variantMapping[variant];\n const gradientVariant = gradient === true ? \"primary\" : gradient;\n\n const getGradientClass = () => {\n if (!gradient) return \"\";\n if (gradient === true) return gradientStyles.primary;\n return gradientStyles[gradient] || gradientStyles.primary;\n };\n\n const computedStyle: React.CSSProperties | undefined =\n gradientVariant === \"primary\"\n ? {\n ...style,\n backgroundImage:\n \"linear-gradient(90deg, var(--ds-color-accent), var(--ds-color-accent-hover))\",\n }\n : style;\n\n return (\n <Component\n style={computedStyle}\n className={mergeClassNames(\n variantStyles[variant],\n align && alignStyles[align],\n weight && weightStyles[weight],\n tracking && trackingStyles[tracking],\n italic && \"italic\",\n getGradientClass(),\n className,\n )}\n >\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;AAwDA,IAAM,iBAAyD;CAC7D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;CACX;AAED,IAAM,gBAAmD;CACvD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;CACX;AAED,IAAM,cAA+C;CACnD,MAAM;CACN,QAAQ;CACR,OAAO;CACP,SAAS;CACV;AAED,IAAM,eAAiD;CACrD,MAAM;CACN,YAAY;CACZ,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,MAAM;CACN,WAAW;CACX,OAAO;CACR;AAED,IAAM,iBAAqD;CACzD,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;CACT;AAED,IAAM,iBAAyC;CAC7C,SAAS;CACT,OACE;CACF,QACE;CACF,QACE;CACF,MAAM;CACN,QACE;CACF,QACE;CACH;AAED,IAAa,cAAc,EACzB,UACA,UAAU,SACV,OACA,QACA,UACA,QACA,IACA,WACA,WAAW,OACX,YACqB;CACrB,MAAM,YAAY,MAAM,eAAe;CACvC,MAAM,kBAAkB,aAAa,OAAO,YAAY;CAExD,MAAM,yBAAyB;AAC7B,MAAI,CAAC,SAAU,QAAO;AACtB,MAAI,aAAa,KAAM,QAAO,eAAe;AAC7C,SAAO,eAAe,aAAa,eAAe;;AAYpD,QACE,oBAAC,WAAD;EACE,OAVF,oBAAoB,YAChB;GACE,GAAG;GACH,iBACE;GACH,GACD;EAKF,WAAW,gBACT,cAAc,UACd,SAAS,YAAY,QACrB,UAAU,aAAa,SACvB,YAAY,eAAe,WAC3B,UAAU,UACV,kBAAkB,EAClB,UACD;EAEA;EACS,CAAA"}
1
+ {"version":3,"file":"typography-Czi7t5y4.mjs","names":[],"sources":["../../src/components/typography/Typography.tsx"],"sourcesContent":["import React, { type ReactNode, type ElementType } from \"react\";\nimport { mergeClassNames } from \"../../utils\";\n\nexport type TypographyVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"body1\"\n | \"body2\"\n | \"caption\"\n | \"overline\";\n\nexport type TypographyAlign = \"left\" | \"center\" | \"right\" | \"justify\";\nexport type TypographyWeight =\n | \"thin\"\n | \"extralight\"\n | \"light\"\n | \"normal\"\n | \"medium\"\n | \"semibold\"\n | \"bold\"\n | \"extrabold\"\n | \"black\";\nexport type TypographyTracking =\n | \"tighter\"\n | \"tight\"\n | \"normal\"\n | \"wide\"\n | \"wider\"\n | \"widest\";\nexport type TypographyGradient =\n | boolean\n | \"primary\"\n | \"ocean\"\n | \"sunset\"\n | \"aurora\"\n | \"neon\"\n | \"forest\"\n | \"galaxy\";\n\nexport interface TypographyProps {\n children: ReactNode;\n variant?: TypographyVariant;\n align?: TypographyAlign;\n weight?: TypographyWeight;\n tracking?: TypographyTracking;\n italic?: boolean;\n as?: ElementType;\n className?: string;\n gradient?: TypographyGradient;\n style?: React.CSSProperties;\n}\n\nconst variantMapping: Record<TypographyVariant, ElementType> = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body1: \"p\",\n body2: \"p\",\n caption: \"span\",\n overline: \"span\",\n};\n\nconst variantStyles: Record<TypographyVariant, string> = {\n h1: \"text-4xl md:text-6xl font-black tracking-tighter uppercase italic leading-tight\",\n h2: \"text-3xl md:text-5xl font-black tracking-tight uppercase italic leading-snug\",\n h3: \"text-2xl md:text-4xl font-extrabold tracking-tight italic\",\n h4: \"text-xl md:text-2xl font-bold tracking-tight\",\n h5: \"text-lg md:text-xl font-bold\",\n h6: \"text-base md:text-lg font-semibold uppercase tracking-widest text-ds-3\",\n body1: \"text-base font-medium leading-relaxed\",\n body2: \"text-sm font-medium leading-relaxed text-ds-2\",\n caption: \"text-xs font-semibold uppercase tracking-wider text-ds-3\",\n overline: \"text-[10px] font-black uppercase tracking-[0.2em] text-ds-2\",\n};\n\nconst alignStyles: Record<TypographyAlign, string> = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n justify: \"text-justify\",\n};\n\nconst weightStyles: Record<TypographyWeight, string> = {\n thin: \"font-thin\",\n extralight: \"font-extralight\",\n light: \"font-light\",\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n extrabold: \"font-extrabold\",\n black: \"font-black\",\n};\n\nconst trackingStyles: Record<TypographyTracking, string> = {\n tighter: \"tracking-tighter\",\n tight: \"tracking-tight\",\n normal: \"tracking-normal\",\n wide: \"tracking-wide\",\n wider: \"tracking-wider\",\n widest: \"tracking-widest\",\n};\n\nconst gradientStyles: Record<string, string> = {\n primary: \"bg-clip-text text-transparent\",\n ocean:\n \"bg-linear-to-r from-cyan-500 to-blue-600 bg-clip-text text-transparent\",\n sunset:\n \"bg-linear-to-r from-orange-500 to-rose-600 bg-clip-text text-transparent\",\n aurora:\n \"bg-linear-to-r from-emerald-400 to-cyan-500 bg-clip-text text-transparent\",\n neon: \"bg-linear-to-r from-fuchsia-500 to-purple-600 bg-clip-text text-transparent\",\n forest:\n \"bg-linear-to-r from-lime-500 to-emerald-600 bg-clip-text text-transparent\",\n galaxy:\n \"bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500 bg-clip-text text-transparent\",\n};\n\nexport const Typography = ({\n children,\n variant = \"body1\",\n align,\n weight,\n tracking,\n italic,\n as,\n className,\n gradient = false,\n style,\n}: TypographyProps) => {\n const Component = as || variantMapping[variant];\n const gradientVariant = gradient === true ? \"primary\" : gradient;\n\n const getGradientClass = () => {\n if (!gradient) return \"\";\n if (gradient === true) return gradientStyles.primary;\n return gradientStyles[gradient] || gradientStyles.primary;\n };\n\n const computedStyle: React.CSSProperties | undefined =\n gradientVariant === \"primary\"\n ? {\n ...style,\n backgroundImage:\n \"linear-gradient(90deg, var(--ds-color-accent), var(--ds-color-accent-hover))\",\n }\n : style;\n\n return (\n <Component\n style={computedStyle}\n className={mergeClassNames(\n variantStyles[variant],\n align && alignStyles[align],\n weight && weightStyles[weight],\n tracking && trackingStyles[tracking],\n italic && \"italic\",\n getGradientClass(),\n className,\n )}\n >\n {children}\n </Component>\n );\n};\n"],"mappings":";;;;AAwDA,IAAM,iBAAyD;CAC7D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;AACZ;AAEA,IAAM,gBAAmD;CACvD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;AACZ;AAEA,IAAM,cAA+C;CACnD,MAAM;CACN,QAAQ;CACR,OAAO;CACP,SAAS;AACX;AAEA,IAAM,eAAiD;CACrD,MAAM;CACN,YAAY;CACZ,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,MAAM;CACN,WAAW;CACX,OAAO;AACT;AAEA,IAAM,iBAAqD;CACzD,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;AACV;AAEA,IAAM,iBAAyC;CAC7C,SAAS;CACT,OACE;CACF,QACE;CACF,QACE;CACF,MAAM;CACN,QACE;CACF,QACE;AACJ;AAEA,IAAa,cAAc,EACzB,UACA,UAAU,SACV,OACA,QACA,UACA,QACA,IACA,WACA,WAAW,OACX,YACqB;CACrB,MAAM,YAAY,MAAM,eAAe;CACvC,MAAM,kBAAkB,aAAa,OAAO,YAAY;CAExD,MAAM,yBAAyB;EAC7B,IAAI,CAAC,UAAU,OAAO;EACtB,IAAI,aAAa,MAAM,OAAO,eAAe;EAC7C,OAAO,eAAe,aAAa,eAAe;CACpD;CAWA,OACE,oBAAC,WAAD;EACE,OAVF,oBAAoB,YAChB;GACE,GAAG;GACH,iBACE;EACJ,IACA;EAKF,WAAW,gBACT,cAAc,UACd,SAAS,YAAY,QACrB,UAAU,aAAa,SACvB,YAAY,eAAe,WAC3B,UAAU,UACV,iBAAiB,GACjB,SACF;EAEC;CACQ,CAAA;AAEf"}
@@ -20,7 +20,7 @@ function clsx() {
20
20
  return n;
21
21
  }
22
22
  //#endregion
23
- //#region ../../node_modules/.pnpm/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
23
+ //#region ../../node_modules/.pnpm/tailwind-merge@3.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
24
24
  /**
25
25
  * Concatenates two arrays faster than the array spread operator.
26
26
  */
@@ -303,11 +303,18 @@ var createConfigUtils = (config) => ({
303
303
  cache: createLruCache(config.cacheSize),
304
304
  parseClassName: createParseClassName(config),
305
305
  sortModifiers: createSortModifiers(config),
306
+ postfixLookupClassGroupIds: createPostfixLookupClassGroupIds(config),
306
307
  ...createClassGroupUtils(config)
307
308
  });
309
+ var createPostfixLookupClassGroupIds = (config) => {
310
+ const lookup = Object.create(null);
311
+ const classGroupIds = config.postfixLookupClassGroups;
312
+ if (classGroupIds) for (let i = 0; i < classGroupIds.length; i++) lookup[classGroupIds[i]] = true;
313
+ return lookup;
314
+ };
308
315
  var SPLIT_CLASSES_REGEX = /\s+/;
309
316
  var mergeClassList = (classList, configUtils) => {
310
- const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } = configUtils;
317
+ const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers, postfixLookupClassGroupIds } = configUtils;
311
318
  /**
312
319
  * Set of classGroupIds in following format:
313
320
  * `{importantModifier}{variantModifiers}{classGroupId}`
@@ -326,7 +333,15 @@ var mergeClassList = (classList, configUtils) => {
326
333
  continue;
327
334
  }
328
335
  let hasPostfixModifier = !!maybePostfixModifierPosition;
329
- let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
336
+ let classGroupId;
337
+ if (hasPostfixModifier) {
338
+ classGroupId = getClassGroupId(baseClassName.substring(0, maybePostfixModifierPosition));
339
+ const classGroupIdWithPostfix = classGroupId && postfixLookupClassGroupIds[classGroupId] ? getClassGroupId(baseClassName) : void 0;
340
+ if (classGroupIdWithPostfix && classGroupIdWithPostfix !== classGroupId) {
341
+ classGroupId = classGroupIdWithPostfix;
342
+ hasPostfixModifier = false;
343
+ }
344
+ } else classGroupId = getClassGroupId(baseClassName);
330
345
  if (!classGroupId) {
331
346
  if (!hasPostfixModifier) {
332
347
  result = originalClassName + (result.length > 0 ? " " + result : result);
@@ -434,6 +449,7 @@ var isNever = () => false;
434
449
  var isShadow = (value) => shadowRegex.test(value);
435
450
  var isImage = (value) => imageRegex.test(value);
436
451
  var isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value);
452
+ var isNamedContainerQuery = (value) => value.startsWith("@container") && (value[10] === "/" && value[11] !== void 0 || value[11] === "s" && value[16] !== void 0 && value.startsWith("-size/", 10) || value[11] === "n" && value[18] !== void 0 && value.startsWith("-normal/", 10));
437
453
  var isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever);
438
454
  var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
439
455
  var isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly);
@@ -839,6 +855,22 @@ var getDefaultConfig = () => {
839
855
  */
840
856
  container: ["container"],
841
857
  /**
858
+ * Container Type
859
+ * @see https://tailwindcss.com/docs/responsive-design#container-queries
860
+ */
861
+ "container-type": [{ "@container": [
862
+ "",
863
+ "normal",
864
+ "size",
865
+ isArbitraryVariable,
866
+ isArbitraryValue
867
+ ] }],
868
+ /**
869
+ * Container Name
870
+ * @see https://tailwindcss.com/docs/responsive-design#named-containers
871
+ */
872
+ "container-named": [isNamedContainerQuery],
873
+ /**
842
874
  * Columns
843
875
  * @see https://tailwindcss.com/docs/columns
844
876
  */
@@ -1746,6 +1778,15 @@ var getDefaultConfig = () => {
1746
1778
  */
1747
1779
  indent: [{ indent: scaleUnambiguousSpacing() }],
1748
1780
  /**
1781
+ * Tab Size
1782
+ * @see https://tailwindcss.com/docs/tab-size
1783
+ */
1784
+ "tab-size": [{ tab: [
1785
+ isInteger,
1786
+ isArbitraryVariable,
1787
+ isArbitraryValue
1788
+ ] }],
1789
+ /**
1749
1790
  * Vertical Alignment
1750
1791
  * @see https://tailwindcss.com/docs/vertical-align
1751
1792
  */
@@ -2820,6 +2861,15 @@ var getDefaultConfig = () => {
2820
2861
  */
2821
2862
  "translate-none": ["translate-none"],
2822
2863
  /**
2864
+ * Zoom
2865
+ * @see https://tailwindcss.com/docs/zoom
2866
+ */
2867
+ zoom: [{ zoom: [
2868
+ isInteger,
2869
+ isArbitraryVariable,
2870
+ isArbitraryValue
2871
+ ] }],
2872
+ /**
2823
2873
  * Accent Color
2824
2874
  * @see https://tailwindcss.com/docs/accent-color
2825
2875
  */
@@ -2916,6 +2966,34 @@ var getDefaultConfig = () => {
2916
2966
  */
2917
2967
  "scroll-behavior": [{ scroll: ["auto", "smooth"] }],
2918
2968
  /**
2969
+ * Scrollbar Thumb Color
2970
+ * @see https://tailwindcss.com/docs/scrollbar-color
2971
+ */
2972
+ "scrollbar-thumb-color": [{ "scrollbar-thumb": scaleColor() }],
2973
+ /**
2974
+ * Scrollbar Track Color
2975
+ * @see https://tailwindcss.com/docs/scrollbar-color
2976
+ */
2977
+ "scrollbar-track-color": [{ "scrollbar-track": scaleColor() }],
2978
+ /**
2979
+ * Scrollbar Gutter
2980
+ * @see https://tailwindcss.com/docs/scrollbar-gutter
2981
+ */
2982
+ "scrollbar-gutter": [{ "scrollbar-gutter": [
2983
+ "auto",
2984
+ "stable",
2985
+ "both"
2986
+ ] }],
2987
+ /**
2988
+ * Scrollbar Width
2989
+ * @see https://tailwindcss.com/docs/scrollbar-width
2990
+ */
2991
+ "scrollbar-w": [{ scrollbar: [
2992
+ "auto",
2993
+ "thin",
2994
+ "none"
2995
+ ] }],
2996
+ /**
2919
2997
  * Scroll Margin
2920
2998
  * @see https://tailwindcss.com/docs/scroll-margin
2921
2999
  */
@@ -3136,6 +3214,7 @@ var getDefaultConfig = () => {
3136
3214
  "forced-color-adjust": [{ "forced-color-adjust": ["auto", "none"] }]
3137
3215
  },
3138
3216
  conflictingClassGroups: {
3217
+ "container-named": ["container-type"],
3139
3218
  overflow: ["overflow-x", "overflow-y"],
3140
3219
  overscroll: ["overscroll-x", "overscroll-y"],
3141
3220
  inset: [
@@ -3301,6 +3380,7 @@ var getDefaultConfig = () => {
3301
3380
  "touch-pz": ["touch"]
3302
3381
  },
3303
3382
  conflictingClassGroupModifiers: { "font-size": ["leading"] },
3383
+ postfixLookupClassGroups: ["container-type"],
3304
3384
  orderSensitiveModifiers: [
3305
3385
  "*",
3306
3386
  "**",
@@ -3354,4 +3434,4 @@ Object.defineProperty(exports, "validateEmail", {
3354
3434
  }
3355
3435
  });
3356
3436
 
3357
- //# sourceMappingURL=utils-LRbEQHYs.cjs.map
3437
+ //# sourceMappingURL=utils-CoA0q63n.cjs.map