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":"stepper-DepvEGfr.cjs","names":[],"sources":["../../src/components/navigation/stepper/Stepper.tsx","../../src/components/navigation/stepper/Stepper1.tsx","../../src/components/navigation/stepper/Stepper2.tsx"],"sourcesContent":["import { Fragment } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\n\nimport { CheckIcon, CloseIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type {\n StepperProps,\n StepIndicatorProps,\n StepStatus,\n StepperLabelPosition,\n StepperSize,\n StepperVariant,\n} from \"./types\";\n\n// Size configurations for indicators and icons\nconst sizeConfig: Record<\n StepperSize,\n {\n indicator: string;\n indicatorPx: number;\n icon: string;\n text: string;\n connectorThickness: string;\n connectorThicknessPx: number;\n }\n> = {\n sm: {\n indicator: \"w-8 h-8\",\n indicatorPx: 32,\n icon: \"w-4 h-4\",\n text: \"text-xs\",\n connectorThickness: \"2px\",\n connectorThicknessPx: 2,\n },\n md: {\n indicator: \"w-10 h-10\",\n indicatorPx: 40,\n icon: \"w-5 h-5\",\n text: \"text-sm\",\n connectorThickness: \"2px\",\n connectorThicknessPx: 2,\n },\n lg: {\n indicator: \"w-12 h-12\",\n indicatorPx: 48,\n icon: \"w-6 h-6\",\n text: \"text-base\",\n connectorThickness: \"4px\",\n connectorThicknessPx: 4,\n },\n};\n\n// Variant styles for the indicator\nconst getVariantStyles = (variant: StepperVariant, status: StepStatus) => {\n const baseStyles = {\n default: {\n completed: \"bg-ds-accent text-ds-on-accent shadow-md shadow-ds-accent/25\",\n current:\n \"bg-ds-accent text-ds-on-accent ring-4 ring-ds-focus/40 shadow-lg shadow-ds-accent/30\",\n upcoming: \"bg-ds-surface-3 text-ds-2\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text ring-4 ring-ds-state-error-border/35\",\n },\n glass: {\n completed:\n \"bg-ds-accent/85 text-ds-on-accent backdrop-blur-xl border border-ds-border-accent/30 shadow-lg shadow-ds-accent/20\",\n current:\n \"bg-ds-accent/90 text-ds-on-accent backdrop-blur-xl border-2 border-ds-border-accent ring-4 ring-ds-focus/30 shadow-xl shadow-ds-accent/30\",\n upcoming:\n \"bg-ds-surface-1 text-ds-2 backdrop-blur-xl border border-ds-border-2\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text backdrop-blur-xl border border-ds-state-error-border ring-4 ring-ds-state-error-border/25\",\n },\n minimal: {\n completed: \"bg-ds-accent-subtle text-ds-1\",\n current: \"bg-ds-accent text-ds-on-accent shadow-sm\",\n upcoming: \"bg-transparent text-ds-2 border-2 border-ds-border-2\",\n error: \"bg-ds-state-error-surface text-ds-state-error-text\",\n },\n outlined: {\n completed: \"bg-transparent text-ds-1 border-2 border-ds-border-accent\",\n current:\n \"bg-ds-accent text-ds-on-accent border-2 border-ds-border-accent shadow-lg\",\n upcoming: \"bg-transparent text-ds-2 border-2 border-ds-border-2\",\n error:\n \"bg-transparent text-ds-state-error-text border-2 border-ds-state-error-border\",\n },\n };\n\n return baseStyles[variant][status];\n};\n\nconst getConnectorTrackClassName = (variant: StepperVariant) =>\n variant === \"glass\"\n ? \"bg-ds-surface-2/70 backdrop-blur-sm\"\n : \"bg-ds-surface-3\";\n\nconst getResolvedLabelPosition = (\n orientation: StepperProps[\"orientation\"],\n labelPosition: StepperLabelPosition,\n) => (orientation === \"vertical\" ? \"right\" : labelPosition);\n\n// Step Indicator Component\nconst StepIndicator = ({\n step,\n index,\n status,\n size,\n variant,\n showNumbers,\n animated,\n colors,\n}: StepIndicatorProps) => {\n const config = sizeConfig[size];\n const variantStyles = getVariantStyles(variant, status);\n\n // Custom color overrides\n const customColorStyle = colors?.[status]\n ? { backgroundColor: colors[status], borderColor: colors[status] }\n : undefined;\n\n const renderContent = () => {\n if (step.icon) {\n return <span className={config.icon}>{step.icon}</span>;\n }\n\n if (status === \"completed\") {\n return <CheckIcon className={config.icon} aria-hidden=\"true\" />;\n }\n\n if (status === \"error\") {\n return <CloseIcon className={config.icon} aria-hidden=\"true\" />;\n }\n\n if (showNumbers) {\n return <span className=\"font-semibold\">{index + 1}</span>;\n }\n\n return (\n <span\n className={mergeClassNames(\n \"rounded-full bg-current\",\n size === \"sm\" ? \"w-2 h-2\" : \"w-3 h-3\",\n )}\n />\n );\n };\n\n return (\n <motion.div\n className={mergeClassNames(\n \"rounded-full flex items-center justify-center transition-all duration-300\",\n config.indicator,\n variantStyles,\n )}\n style={customColorStyle}\n initial={animated ? { scale: 0.8, opacity: 0 } : undefined}\n animate={animated ? { scale: 1, opacity: 1 } : undefined}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n >\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={status}\n initial={animated ? { scale: 0, rotate: -180 } : undefined}\n animate={animated ? { scale: 1, rotate: 0 } : undefined}\n exit={animated ? { scale: 0, rotate: 180 } : undefined}\n transition={{ duration: 0.2 }}\n >\n {renderContent()}\n </motion.span>\n </AnimatePresence>\n </motion.div>\n );\n};\n\n// Main Stepper Component\nexport const Stepper = ({\n steps,\n currentStep,\n onStepClick,\n orientation = \"horizontal\",\n size = \"md\",\n variant = \"glass\",\n labelPosition = \"bottom\",\n direction = \"ltr\",\n optionalLabel = \"Optional\",\n showNumbers = true,\n clickable = true,\n showConnector = true,\n className,\n connectorClassName,\n stepClassName,\n showErrors = false,\n errorSteps = [],\n completedSteps,\n animated = true,\n colors,\n}: StepperProps) => {\n const isRtl = direction === \"rtl\";\n const isVertical = orientation === \"vertical\";\n const resolvedLabelPosition = getResolvedLabelPosition(\n orientation,\n labelPosition,\n );\n const isHorizontalInline =\n orientation === \"horizontal\" && resolvedLabelPosition === \"right\";\n const config = sizeConfig[size];\n const indicatorPaddingPx =\n variant === \"glass\" || variant === \"outlined\" || variant === \"minimal\"\n ? 4\n : 2;\n const indicatorShellSizePx = config.indicatorPx + indicatorPaddingPx * 2;\n const connectorInsetPx = indicatorShellSizePx / 2;\n const connectorCenterOffsetPx =\n connectorInsetPx - config.connectorThicknessPx / 2;\n\n const getStepStatus = (index: number): StepStatus => {\n if (showErrors && errorSteps.includes(index)) return \"error\";\n if (completedSteps) {\n if (completedSteps.includes(index)) return \"completed\";\n if (index === currentStep) return \"current\";\n return \"upcoming\";\n }\n if (index < currentStep) return \"completed\";\n if (index === currentStep) return \"current\";\n return \"upcoming\";\n };\n\n const handleStepClick = (index: number) => {\n if (!clickable || !onStepClick) return;\n const step = steps[index];\n if (step.disabled) return;\n\n // Allow clicking on completed or current steps\n const status = getStepStatus(index);\n if (status === \"completed\" || status === \"current\") {\n onStepClick(index);\n }\n };\n\n return (\n <div\n className={mergeClassNames(\n \"w-full relative\",\n isVertical\n ? \"flex flex-col\"\n : isHorizontalInline\n ? mergeClassNames(\n \"flex items-center\",\n isRtl && \"flex-row-reverse\",\n )\n : mergeClassNames(\n \"flex items-start justify-between\",\n isRtl && \"flex-row-reverse\",\n ),\n className,\n )}\n dir={direction}\n >\n {/* Global Background Continuous Connector */}\n {showConnector &&\n isVertical &&\n (() => {\n return (\n <div\n className={mergeClassNames(\n \"absolute rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n ...(isVertical\n ? {\n top: `${connectorInsetPx}px`,\n bottom: `${connectorInsetPx}px`,\n left: `${connectorCenterOffsetPx}px`,\n width: config.connectorThickness,\n }\n : {\n left: `${connectorInsetPx}px`,\n right: `${connectorInsetPx}px`,\n top: `${connectorCenterOffsetPx}px`,\n height: config.connectorThickness,\n }),\n }}\n >\n {/* Animated fill connector */}\n {animated ? (\n <motion.div\n className=\"absolute top-0 left-0 bg-ds-accent rounded-full\"\n initial={{ [isVertical ? \"height\" : \"width\"]: 0 }}\n animate={{\n [isVertical ? \"height\" : \"width\"]:\n `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }}\n transition={{ duration: 0.4, ease: \"easeOut\" }}\n style={{\n ...(isVertical ? { width: \"100%\" } : { height: \"100%\" }),\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className=\"absolute top-0 left-0 bg-ds-accent rounded-full\"\n style={{\n ...(isVertical\n ? {\n width: \"100%\",\n height: `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }\n : {\n height: \"100%\",\n width: `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }),\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n );\n })()}\n\n {steps.map((step, index) => {\n const status = getStepStatus(index);\n const isLast = index === steps.length - 1;\n const isClickable = clickable && !step.disabled;\n const isConnectorCompleted = getStepStatus(index) === \"completed\";\n const textBlock = (\n <motion.div\n className={mergeClassNames(\n resolvedLabelPosition === \"right\"\n ? mergeClassNames(\n \"min-w-0\",\n isRtl ? \"text-right\" : \"text-left\",\n )\n : \"w-full px-2 text-center\",\n isVertical && \"flex-1 pb-6\",\n isVertical && isLast && \"pb-0\",\n )}\n style={isVertical ? { marginTop: \"-4px\" } : undefined}\n initial={animated ? { opacity: 0, y: 10 } : undefined}\n animate={animated ? { opacity: 1, y: 0 } : undefined}\n transition={{ delay: index * 0.1 }}\n >\n <p\n className={mergeClassNames(\n \"font-medium transition-colors duration-200\",\n config.text,\n status === \"current\"\n ? \"text-ds-1\"\n : status === \"completed\"\n ? \"text-ds-1\"\n : status === \"error\"\n ? \"text-ds-state-error-text\"\n : \"text-ds-2\",\n )}\n >\n {step.title}\n {step.optional && (\n <span\n className={mergeClassNames(\n \"font-normal text-ds-3\",\n isRtl ? \"mr-1\" : \"ml-1\",\n )}\n >\n ({optionalLabel})\n </span>\n )}\n </p>\n {step.description && (\n <p\n className={mergeClassNames(\n \"mt-0.5 text-xs text-ds-2\",\n resolvedLabelPosition === \"right\" &&\n (isRtl ? \"text-right\" : \"text-left\"),\n )}\n >\n {step.description}\n </p>\n )}\n </motion.div>\n );\n\n return (\n <Fragment key={step.id}>\n <div\n className={mergeClassNames(\n \"relative z-10 min-w-0\",\n isVertical\n ? \"flex gap-4 pb-8\"\n : isHorizontalInline\n ? \"flex items-center gap-3\"\n : \"flex flex-1 flex-col items-center text-center\",\n !isLast && isVertical && \"mb-2\",\n isVertical && isLast && \"pb-0\",\n stepClassName,\n )}\n style={\n !isVertical && !isHorizontalInline\n ? { flexBasis: 0, flexGrow: 1 }\n : undefined\n }\n >\n {!isVertical && index > 0 ? (\n <div\n className={mergeClassNames(\n \"pointer-events-none absolute z-0 rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n top: `${connectorCenterOffsetPx}px`,\n left: isRtl ? \"50%\" : 0,\n right: isRtl ? 0 : \"50%\",\n height: config.connectorThickness,\n }}\n aria-hidden=\"true\"\n >\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"left-0\" : \"right-0\",\n )}\n style={{\n left: 0,\n right: 0,\n backgroundColor: colors?.connector || colors?.completed,\n opacity:\n status === \"completed\" || status === \"current\" ? 1 : 0,\n }}\n />\n </div>\n ) : null}\n\n {!isVertical && !isHorizontalInline && !isLast ? (\n <div\n className={mergeClassNames(\n \"pointer-events-none absolute z-0 rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n top: `${connectorCenterOffsetPx}px`,\n left: isRtl ? 0 : \"50%\",\n right: isRtl ? \"50%\" : 0,\n height: config.connectorThickness,\n }}\n aria-hidden=\"true\"\n >\n {animated ? (\n <motion.div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n initial={{ width: 0 }}\n animate={{\n width:\n status === \"completed\" || status === \"current\"\n ? \"100%\"\n : \"0%\",\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n style={{\n width:\n status === \"completed\" || status === \"current\"\n ? \"100%\"\n : \"0%\",\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n ) : null}\n\n <button\n type=\"button\"\n onClick={() => handleStepClick(index)}\n disabled={!isClickable}\n className={mergeClassNames(\n \"relative z-10 shrink-0 rounded-full bg-ds-surface-1\",\n isClickable ? \"cursor-pointer\" : \"cursor-default\",\n resolvedLabelPosition === \"right\"\n ? \"flex items-center justify-center\"\n : \"flex items-center justify-center\",\n )}\n style={{\n padding: `${indicatorPaddingPx}px`,\n }}\n aria-current={status === \"current\" ? \"step\" : undefined}\n >\n <StepIndicator\n step={step}\n index={index}\n status={status}\n size={size}\n variant={variant}\n showNumbers={showNumbers}\n animated={animated}\n colors={colors}\n />\n </button>\n\n {textBlock}\n\n {isVertical && step.content && status === \"current\" && (\n <motion.div\n initial={{ opacity: 0, height: 0 }}\n animate={{ opacity: 1, height: \"auto\" }}\n exit={{ opacity: 0, height: 0 }}\n className=\"w-full pb-4 pl-14\"\n >\n {step.content}\n </motion.div>\n )}\n </div>\n\n {isHorizontalInline && showConnector && !isLast ? (\n <div\n className={mergeClassNames(\n \"relative mx-4 min-w-8 flex-1 shrink-0 overflow-hidden rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{ height: config.connectorThickness }}\n aria-hidden=\"true\"\n >\n {animated ? (\n <motion.div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n initial={{ width: 0 }}\n animate={{\n width: isConnectorCompleted ? \"100%\" : \"0%\",\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n style={{\n width: isConnectorCompleted ? \"100%\" : \"0%\",\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n ) : null}\n </Fragment>\n );\n })}\n </div>\n );\n};\n\nStepper.displayName = \"Stepper\";\n\nexport default Stepper;\n","import { useSyncExternalStore } from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { AlertTriangleIcon, CheckIcon } from \"../../icons\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { StepperStepsProps, StepperStepsState } from \"./types\";\n\nconst DEFAULT_BREAKPOINT = 1080;\n\nfunction subscribeToMediaQuery(\n query: string,\n onStoreChange: () => void,\n): () => void {\n if (typeof window === \"undefined\") {\n return () => undefined;\n }\n\n const mediaQuery = window.matchMedia(query);\n mediaQuery.addEventListener(\"change\", onStoreChange);\n\n return () => mediaQuery.removeEventListener(\"change\", onStoreChange);\n}\n\nfunction getMediaQuerySnapshot(query: string): boolean {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n return window.matchMedia(query).matches;\n}\n\nfunction getStepColors(\n state: StepperStepsState,\n isActive: boolean,\n): {\n buttonClassName: string;\n connectorClassName: string;\n badgeClassName: string;\n} {\n if (isActive) {\n return {\n buttonClassName:\n \"border-ds-border-accent bg-ds-accent/12 text-ds-1 shadow-sm shadow-ds-accent/10\",\n connectorClassName: \"bg-ds-accent\",\n badgeClassName: \"border-ds-border-accent bg-ds-accent text-ds-on-accent\",\n };\n }\n\n if (state === \"valid\") {\n return {\n buttonClassName:\n \"border-ds-state-success-border bg-ds-state-success-surface text-ds-state-success-text shadow-sm\",\n connectorClassName: \"bg-ds-state-success\",\n badgeClassName:\n \"border-ds-state-success-border bg-ds-state-success text-ds-on-accent\",\n };\n }\n\n if (state === \"invalid\") {\n return {\n buttonClassName:\n \"border-ds-state-error-border bg-ds-state-error-surface text-ds-state-error-text\",\n connectorClassName: \"bg-ds-state-danger\",\n badgeClassName:\n \"border-ds-state-error-border bg-ds-state-danger text-ds-on-accent\",\n };\n }\n\n return {\n buttonClassName:\n \"border-ds-border-2 bg-ds-surface-1 text-ds-2 hover:border-ds-border-1 hover:bg-ds-canvas\",\n connectorClassName: \"bg-ds-border-3/70\",\n badgeClassName: \"border-ds-border-2 bg-ds-canvas text-ds-2\",\n };\n}\n\nfunction renderStepContent(\n label: string,\n icon: StepperStepsProps[\"steps\"][number][\"icon\"],\n state: StepperStepsState,\n stepNumber: number,\n badgeClassName: string,\n) {\n if (state === \"valid\") {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <CheckIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n if (state === \"invalid\") {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <AlertTriangleIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n if (icon) {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"shrink-0\">{icon}</span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span\n className={mergeClassNames(\n \"flex h-6 w-6 shrink-0 items-center justify-center rounded-full border text-xs font-semibold\",\n badgeClassName,\n )}\n aria-hidden=\"true\"\n >\n {stepNumber}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n}\n\nexport function StepperSteps({\n steps,\n currentStep,\n onStepClick,\n stepStates = [],\n orientation = \"responsive\",\n responsiveBreakpoint = DEFAULT_BREAKPOINT,\n className,\n stepClassName,\n connectorClassName,\n}: StepperStepsProps) {\n const responsiveQuery = `(max-width: ${responsiveBreakpoint}px)`;\n const isCompact = useSyncExternalStore(\n (onStoreChange) => {\n if (orientation !== \"responsive\") {\n return () => undefined;\n }\n\n return subscribeToMediaQuery(responsiveQuery, onStoreChange);\n },\n () =>\n orientation === \"responsive\"\n ? getMediaQuerySnapshot(responsiveQuery)\n : false,\n () => false,\n );\n\n const isVertical =\n orientation === \"vertical\" || (orientation === \"responsive\" && isCompact);\n\n return (\n <div\n className={mergeClassNames(\n isVertical\n ? \"flex w-full flex-col items-start\"\n : \"flex w-full items-center\",\n className,\n )}\n >\n {steps.map((step, index) => {\n const stepNumber = index + 1;\n const state = stepStates[index] ?? \"untouched\";\n const isActive = index === currentStep;\n const isClickable = typeof onStepClick === \"function\" && !isActive;\n const colors = getStepColors(state, isActive);\n\n return (\n <div\n key={`${step.label}-${stepNumber}`}\n className={mergeClassNames(\n isVertical ? \"w-full\" : \"flex min-w-0 flex-1 items-center\",\n )}\n >\n <Button\n disabled={!isClickable}\n onClick={() => onStepClick?.(index)}\n className={mergeClassNames(\n \"relative z-10 flex min-h-11 items-center justify-center rounded-md border px-4 py-3 text-sm font-medium transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/70 focus-visible:ring-offset-2 focus-visible:ring-offset-ds-surface-1 disabled:cursor-default disabled:opacity-100\",\n isVertical ? \"w-full\" : \"w-full min-w-0\",\n colors.buttonClassName,\n stepClassName,\n )}\n aria-current={isActive ? \"step\" : undefined}\n aria-invalid={state === \"invalid\" ? true : undefined}\n >\n {renderStepContent(\n step.label,\n step.icon,\n state,\n stepNumber,\n colors.badgeClassName,\n )}\n </Button>\n\n {index < steps.length - 1 ? (\n isVertical ? (\n <div\n className={mergeClassNames(\n \"mx-auto my-2 h-8 w-px rounded-full\",\n colors.connectorClassName,\n connectorClassName,\n )}\n aria-hidden=\"true\"\n />\n ) : (\n <div\n className={mergeClassNames(\n \"mx-3 h-px min-w-6 flex-1 rounded-full\",\n colors.connectorClassName,\n connectorClassName,\n )}\n aria-hidden=\"true\"\n />\n )\n ) : null}\n </div>\n );\n })}\n </div>\n );\n}\n\nexport default StepperSteps;\n","import {\n Children,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\nimport { Button } from \"../../forms/button\";\nimport { CheckIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type {\n StepperWizardIndicatorRenderProps,\n StepperWizardIndicatorStatus,\n StepperWizardProps,\n StepperWizardStepProps,\n} from \"./types\";\n\nconst useIsomorphicLayoutEffect =\n typeof window === \"undefined\" ? useEffect : useLayoutEffect;\n\nfunction clampStep(step: number, totalSteps: number): number {\n return Math.min(Math.max(step, 0), totalSteps);\n}\n\nfunction getIndicatorStatus(\n stepIndex: number,\n currentStep: number,\n): StepperWizardIndicatorStatus {\n if (stepIndex === currentStep) {\n return \"active\";\n }\n\n if (stepIndex < currentStep) {\n return \"complete\";\n }\n\n return \"inactive\";\n}\n\nexport function StepperWizard({\n children,\n initialStep = 0,\n currentStep: controlledStep,\n onStepChange,\n onFinalStepCompleted,\n stepCircleContainerClassName,\n stepContainerClassName,\n contentClassName,\n footerClassName,\n backButtonProps,\n nextButtonProps,\n backButtonText = \"Back\",\n nextButtonText = \"Continue\",\n completeButtonText = \"Complete\",\n disableStepIndicators = false,\n renderStepIndicator,\n className,\n}: StepperWizardProps) {\n const stepsArray = Children.toArray(children);\n const totalSteps = stepsArray.length;\n const [internalStep, setInternalStep] = useState(() =>\n clampStep(initialStep, totalSteps),\n );\n const [direction, setDirection] = useState(0);\n\n const currentStep = clampStep(controlledStep ?? internalStep, totalSteps);\n const isCompleted = currentStep >= totalSteps;\n const isLastStep = totalSteps > 0 && currentStep === totalSteps - 1;\n\n const commitStep = useCallback(\n (nextStep: number) => {\n const clampedStep = clampStep(nextStep, totalSteps);\n\n if (controlledStep === undefined) {\n setInternalStep(clampedStep);\n }\n\n if (clampedStep >= totalSteps) {\n onFinalStepCompleted?.();\n return;\n }\n\n onStepChange?.(clampedStep);\n },\n [controlledStep, onFinalStepCompleted, onStepChange, totalSteps],\n );\n\n if (totalSteps === 0) {\n return null;\n }\n\n const handleBack = () => {\n if (currentStep > 0) {\n setDirection(-1);\n commitStep(currentStep - 1);\n }\n };\n\n const handleNext = () => {\n if (!isLastStep) {\n setDirection(1);\n commitStep(currentStep + 1);\n }\n };\n\n const handleComplete = () => {\n setDirection(1);\n commitStep(totalSteps);\n };\n\n const navigateToStep = (stepIndex: number) => {\n if (stepIndex === currentStep || disableStepIndicators) {\n return;\n }\n\n setDirection(stepIndex > currentStep ? 1 : -1);\n commitStep(stepIndex);\n };\n\n return (\n <div\n className={mergeClassNames(\n \"flex min-h-full w-full flex-1 items-center justify-center p-4\",\n className,\n )}\n >\n <div\n className={mergeClassNames(\n \"mx-auto w-full max-w-3xl rounded-3xl border border-ds-border-2 bg-ds-canvas shadow-2\",\n stepCircleContainerClassName,\n )}\n >\n <div\n className={mergeClassNames(\n \"flex w-full items-center gap-3 border-b border-ds-border-2 px-6 py-6 sm:px-8\",\n stepContainerClassName,\n )}\n >\n {stepsArray.map((_, index) => {\n const status = getIndicatorStatus(index, currentStep);\n const isClickable = !disableStepIndicators && index !== currentStep;\n const indicatorProps: StepperWizardIndicatorRenderProps = {\n stepIndex: index,\n stepNumber: index + 1,\n currentStep,\n status,\n isClickable,\n onStepClick: navigateToStep,\n };\n\n return (\n <div\n key={`wizard-step-${index + 1}`}\n className=\"flex flex-1 items-center\"\n >\n {renderStepIndicator ? (\n renderStepIndicator(indicatorProps)\n ) : (\n <WizardStepIndicator {...indicatorProps} />\n )}\n {index < totalSteps - 1 ? (\n <WizardStepConnector isComplete={currentStep > index} />\n ) : null}\n </div>\n );\n })}\n </div>\n\n <WizardStepContentWrapper\n isCompleted={isCompleted}\n currentStep={currentStep}\n direction={direction}\n className={mergeClassNames(\"px-6 py-6 sm:px-8\", contentClassName)}\n >\n {stepsArray[currentStep]}\n </WizardStepContentWrapper>\n\n {!isCompleted ? (\n <div\n className={mergeClassNames(\n \"px-6 pb-6 sm:px-8 sm:pb-8\",\n footerClassName,\n )}\n >\n <div\n className={mergeClassNames(\n \"mt-6 flex gap-3\",\n currentStep > 0 ? \"justify-between\" : \"justify-end\",\n )}\n >\n {currentStep > 0 ? (\n <Button\n onClick={handleBack}\n className=\"rounded-md border-transparent bg-transparent px-3 py-2 text-sm font-medium text-ds-2 shadow-none hover:bg-ds-surface-1 hover:text-ds-1\"\n {...backButtonProps}\n >\n {backButtonText}\n </Button>\n ) : null}\n <Button\n onClick={isLastStep ? handleComplete : handleNext}\n primary\n className=\"rounded-full px-4 py-2 text-sm font-semibold shadow-2\"\n {...nextButtonProps}\n >\n {isLastStep ? completeButtonText : nextButtonText}\n </Button>\n </div>\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\ninterface WizardStepContentWrapperProps {\n isCompleted: boolean;\n currentStep: number;\n direction: number;\n children: React.ReactNode;\n className?: string;\n}\n\nfunction WizardStepContentWrapper({\n isCompleted,\n currentStep,\n direction,\n children,\n className,\n}: WizardStepContentWrapperProps) {\n const [parentHeight, setParentHeight] = useState(0);\n const handleHeightReady = useCallback((height: number) => {\n setParentHeight(height);\n }, []);\n\n return (\n <motion.div\n style={{ position: \"relative\", overflow: \"hidden\" }}\n animate={{ height: isCompleted ? 0 : parentHeight }}\n transition={{ type: \"spring\", duration: 0.4 }}\n className={className}\n >\n <AnimatePresence initial={false} mode=\"wait\" custom={direction}>\n {!isCompleted ? (\n <WizardSlideTransition\n key={currentStep}\n direction={direction}\n onHeightReady={handleHeightReady}\n >\n {children}\n </WizardSlideTransition>\n ) : null}\n </AnimatePresence>\n </motion.div>\n );\n}\n\ninterface WizardSlideTransitionProps {\n children: React.ReactNode;\n direction: number;\n onHeightReady: (height: number) => void;\n}\n\nfunction WizardSlideTransition({\n children,\n direction,\n onHeightReady,\n}: WizardSlideTransitionProps) {\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n if (containerRef.current) {\n onHeightReady(containerRef.current.offsetHeight);\n }\n }, [children, onHeightReady]);\n\n return (\n <motion.div\n ref={containerRef}\n custom={direction}\n variants={wizardStepVariants}\n initial=\"enter\"\n animate=\"center\"\n exit=\"exit\"\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{ position: \"absolute\", inset: 0 }}\n >\n {children}\n </motion.div>\n );\n}\n\nconst wizardStepVariants = {\n enter: (direction: number) => ({\n x: direction >= 0 ? \"-100%\" : \"100%\",\n opacity: 0,\n }),\n center: {\n x: \"0%\",\n opacity: 1,\n },\n exit: (direction: number) => ({\n x: direction >= 0 ? \"40%\" : \"-40%\",\n opacity: 0,\n }),\n};\n\nexport function StepperWizardStep({\n children,\n className,\n}: StepperWizardStepProps) {\n return (\n <div className={mergeClassNames(\"space-y-4\", className)}>{children}</div>\n );\n}\n\nfunction WizardStepIndicator({\n stepIndex,\n stepNumber,\n status,\n isClickable,\n onStepClick,\n}: StepperWizardIndicatorRenderProps) {\n return (\n <motion.button\n type=\"button\"\n onClick={() => onStepClick(stepIndex)}\n className={mergeClassNames(\n \"relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full border text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/70 focus-visible:ring-offset-2 focus-visible:ring-offset-ds-surface-1\",\n isClickable ? \"cursor-pointer\" : \"cursor-default\",\n )}\n animate={status}\n initial={false}\n disabled={!isClickable}\n aria-current={status === \"active\" ? \"step\" : undefined}\n >\n <motion.span\n variants={{\n inactive: {\n scale: 1,\n backgroundColor: \"var(--ds-color-bg-surface)\",\n borderColor: \"var(--ds-color-border)\",\n color: \"var(--ds-color-fg-muted)\",\n },\n active: {\n scale: 1,\n backgroundColor: \"var(--ds-color-accent)\",\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-fg-on-accent)\",\n },\n complete: {\n scale: 1,\n backgroundColor: \"var(--ds-color-accent)\",\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-fg-on-accent)\",\n },\n }}\n transition={{ duration: 0.25 }}\n className=\"flex h-full w-full items-center justify-center rounded-full\"\n >\n {status === \"complete\" ? (\n <AnimatedWizardCheckIcon className=\"h-4 w-4\" />\n ) : status === \"active\" ? (\n <span className=\"h-2.5 w-2.5 rounded-full bg-current\" />\n ) : (\n <span>{stepNumber}</span>\n )}\n </motion.span>\n </motion.button>\n );\n}\n\nfunction WizardStepConnector({ isComplete }: { isComplete: boolean }) {\n return (\n <div className=\"relative mx-2 h-0.5 flex-1 overflow-hidden rounded-full bg-border\">\n <motion.div\n className=\"absolute inset-y-0 left-0 rounded-full bg-ds-accent\"\n initial={false}\n animate={isComplete ? \"complete\" : \"incomplete\"}\n variants={{\n incomplete: { width: 0 },\n complete: { width: \"100%\" },\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n />\n </div>\n );\n}\n\nfunction AnimatedWizardCheckIcon({ className }: { className?: string }) {\n return (\n <span\n className={mergeClassNames(\"flex items-center justify-center\", className)}\n >\n <CheckIcon className=\"h-full w-full\" aria-hidden=\"true\" />\n </span>\n );\n}\n\nexport default StepperWizard;\n"],"mappings":"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"}
1
+ {"version":3,"file":"stepper-BuhQfQTH.cjs","names":[],"sources":["../../src/components/navigation/stepper/Stepper.tsx","../../src/components/navigation/stepper/Stepper1.tsx","../../src/components/navigation/stepper/Stepper2.tsx"],"sourcesContent":["import { Fragment } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\n\nimport { CheckIcon, CloseIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type {\n StepperProps,\n StepIndicatorProps,\n StepStatus,\n StepperLabelPosition,\n StepperSize,\n StepperVariant,\n} from \"./types\";\n\n// Size configurations for indicators and icons\nconst sizeConfig: Record<\n StepperSize,\n {\n indicator: string;\n indicatorPx: number;\n icon: string;\n text: string;\n connectorThickness: string;\n connectorThicknessPx: number;\n }\n> = {\n sm: {\n indicator: \"w-8 h-8\",\n indicatorPx: 32,\n icon: \"w-4 h-4\",\n text: \"text-xs\",\n connectorThickness: \"2px\",\n connectorThicknessPx: 2,\n },\n md: {\n indicator: \"w-10 h-10\",\n indicatorPx: 40,\n icon: \"w-5 h-5\",\n text: \"text-sm\",\n connectorThickness: \"2px\",\n connectorThicknessPx: 2,\n },\n lg: {\n indicator: \"w-12 h-12\",\n indicatorPx: 48,\n icon: \"w-6 h-6\",\n text: \"text-base\",\n connectorThickness: \"4px\",\n connectorThicknessPx: 4,\n },\n};\n\n// Variant styles for the indicator\nconst getVariantStyles = (variant: StepperVariant, status: StepStatus) => {\n const baseStyles = {\n default: {\n completed: \"bg-ds-accent text-ds-on-accent shadow-md shadow-ds-accent/25\",\n current:\n \"bg-ds-accent text-ds-on-accent ring-4 ring-ds-focus/40 shadow-lg shadow-ds-accent/30\",\n upcoming: \"bg-ds-surface-3 text-ds-2\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text ring-4 ring-ds-state-error-border/35\",\n },\n glass: {\n completed:\n \"bg-ds-accent/85 text-ds-on-accent backdrop-blur-xl border border-ds-border-accent/30 shadow-lg shadow-ds-accent/20\",\n current:\n \"bg-ds-accent/90 text-ds-on-accent backdrop-blur-xl border-2 border-ds-border-accent ring-4 ring-ds-focus/30 shadow-xl shadow-ds-accent/30\",\n upcoming:\n \"bg-ds-surface-1 text-ds-2 backdrop-blur-xl border border-ds-border-2\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text backdrop-blur-xl border border-ds-state-error-border ring-4 ring-ds-state-error-border/25\",\n },\n minimal: {\n completed: \"bg-ds-accent-subtle text-ds-1\",\n current: \"bg-ds-accent text-ds-on-accent shadow-sm\",\n upcoming: \"bg-transparent text-ds-2 border-2 border-ds-border-2\",\n error: \"bg-ds-state-error-surface text-ds-state-error-text\",\n },\n outlined: {\n completed: \"bg-transparent text-ds-1 border-2 border-ds-border-accent\",\n current:\n \"bg-ds-accent text-ds-on-accent border-2 border-ds-border-accent shadow-lg\",\n upcoming: \"bg-transparent text-ds-2 border-2 border-ds-border-2\",\n error:\n \"bg-transparent text-ds-state-error-text border-2 border-ds-state-error-border\",\n },\n };\n\n return baseStyles[variant][status];\n};\n\nconst getConnectorTrackClassName = (variant: StepperVariant) =>\n variant === \"glass\"\n ? \"bg-ds-surface-2/70 backdrop-blur-sm\"\n : \"bg-ds-surface-3\";\n\nconst getResolvedLabelPosition = (\n orientation: StepperProps[\"orientation\"],\n labelPosition: StepperLabelPosition,\n) => (orientation === \"vertical\" ? \"right\" : labelPosition);\n\n// Step Indicator Component\nconst StepIndicator = ({\n step,\n index,\n status,\n size,\n variant,\n showNumbers,\n animated,\n colors,\n}: StepIndicatorProps) => {\n const config = sizeConfig[size];\n const variantStyles = getVariantStyles(variant, status);\n\n // Custom color overrides\n const customColorStyle = colors?.[status]\n ? { backgroundColor: colors[status], borderColor: colors[status] }\n : undefined;\n\n const renderContent = () => {\n if (step.icon) {\n return <span className={config.icon}>{step.icon}</span>;\n }\n\n if (status === \"completed\") {\n return <CheckIcon className={config.icon} aria-hidden=\"true\" />;\n }\n\n if (status === \"error\") {\n return <CloseIcon className={config.icon} aria-hidden=\"true\" />;\n }\n\n if (showNumbers) {\n return <span className=\"font-semibold\">{index + 1}</span>;\n }\n\n return (\n <span\n className={mergeClassNames(\n \"rounded-full bg-current\",\n size === \"sm\" ? \"w-2 h-2\" : \"w-3 h-3\",\n )}\n />\n );\n };\n\n return (\n <motion.div\n className={mergeClassNames(\n \"rounded-full flex items-center justify-center transition-all duration-300\",\n config.indicator,\n variantStyles,\n )}\n style={customColorStyle}\n initial={animated ? { scale: 0.8, opacity: 0 } : undefined}\n animate={animated ? { scale: 1, opacity: 1 } : undefined}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n >\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={status}\n initial={animated ? { scale: 0, rotate: -180 } : undefined}\n animate={animated ? { scale: 1, rotate: 0 } : undefined}\n exit={animated ? { scale: 0, rotate: 180 } : undefined}\n transition={{ duration: 0.2 }}\n >\n {renderContent()}\n </motion.span>\n </AnimatePresence>\n </motion.div>\n );\n};\n\n// Main Stepper Component\nexport const Stepper = ({\n steps,\n currentStep,\n onStepClick,\n orientation = \"horizontal\",\n size = \"md\",\n variant = \"glass\",\n labelPosition = \"bottom\",\n direction = \"ltr\",\n optionalLabel = \"Optional\",\n showNumbers = true,\n clickable = true,\n showConnector = true,\n className,\n connectorClassName,\n stepClassName,\n showErrors = false,\n errorSteps = [],\n completedSteps,\n animated = true,\n colors,\n}: StepperProps) => {\n const isRtl = direction === \"rtl\";\n const isVertical = orientation === \"vertical\";\n const resolvedLabelPosition = getResolvedLabelPosition(\n orientation,\n labelPosition,\n );\n const isHorizontalInline =\n orientation === \"horizontal\" && resolvedLabelPosition === \"right\";\n const config = sizeConfig[size];\n const indicatorPaddingPx =\n variant === \"glass\" || variant === \"outlined\" || variant === \"minimal\"\n ? 4\n : 2;\n const indicatorShellSizePx = config.indicatorPx + indicatorPaddingPx * 2;\n const connectorInsetPx = indicatorShellSizePx / 2;\n const connectorCenterOffsetPx =\n connectorInsetPx - config.connectorThicknessPx / 2;\n\n const getStepStatus = (index: number): StepStatus => {\n if (showErrors && errorSteps.includes(index)) return \"error\";\n if (completedSteps) {\n if (completedSteps.includes(index)) return \"completed\";\n if (index === currentStep) return \"current\";\n return \"upcoming\";\n }\n if (index < currentStep) return \"completed\";\n if (index === currentStep) return \"current\";\n return \"upcoming\";\n };\n\n const handleStepClick = (index: number) => {\n if (!clickable || !onStepClick) return;\n const step = steps[index];\n if (step.disabled) return;\n\n // Allow clicking on completed or current steps\n const status = getStepStatus(index);\n if (status === \"completed\" || status === \"current\") {\n onStepClick(index);\n }\n };\n\n return (\n <div\n className={mergeClassNames(\n \"w-full relative\",\n isVertical\n ? \"flex flex-col\"\n : isHorizontalInline\n ? mergeClassNames(\n \"flex items-center\",\n isRtl && \"flex-row-reverse\",\n )\n : mergeClassNames(\n \"flex items-start justify-between\",\n isRtl && \"flex-row-reverse\",\n ),\n className,\n )}\n dir={direction}\n >\n {/* Global Background Continuous Connector */}\n {showConnector &&\n isVertical &&\n (() => {\n return (\n <div\n className={mergeClassNames(\n \"absolute rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n ...(isVertical\n ? {\n top: `${connectorInsetPx}px`,\n bottom: `${connectorInsetPx}px`,\n left: `${connectorCenterOffsetPx}px`,\n width: config.connectorThickness,\n }\n : {\n left: `${connectorInsetPx}px`,\n right: `${connectorInsetPx}px`,\n top: `${connectorCenterOffsetPx}px`,\n height: config.connectorThickness,\n }),\n }}\n >\n {/* Animated fill connector */}\n {animated ? (\n <motion.div\n className=\"absolute top-0 left-0 bg-ds-accent rounded-full\"\n initial={{ [isVertical ? \"height\" : \"width\"]: 0 }}\n animate={{\n [isVertical ? \"height\" : \"width\"]:\n `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }}\n transition={{ duration: 0.4, ease: \"easeOut\" }}\n style={{\n ...(isVertical ? { width: \"100%\" } : { height: \"100%\" }),\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className=\"absolute top-0 left-0 bg-ds-accent rounded-full\"\n style={{\n ...(isVertical\n ? {\n width: \"100%\",\n height: `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }\n : {\n height: \"100%\",\n width: `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }),\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n );\n })()}\n\n {steps.map((step, index) => {\n const status = getStepStatus(index);\n const isLast = index === steps.length - 1;\n const isClickable = clickable && !step.disabled;\n const isConnectorCompleted = getStepStatus(index) === \"completed\";\n const textBlock = (\n <motion.div\n className={mergeClassNames(\n resolvedLabelPosition === \"right\"\n ? mergeClassNames(\n \"min-w-0\",\n isRtl ? \"text-right\" : \"text-left\",\n )\n : \"w-full px-2 text-center\",\n isVertical && \"flex-1 pb-6\",\n isVertical && isLast && \"pb-0\",\n )}\n style={isVertical ? { marginTop: \"-4px\" } : undefined}\n initial={animated ? { opacity: 0, y: 10 } : undefined}\n animate={animated ? { opacity: 1, y: 0 } : undefined}\n transition={{ delay: index * 0.1 }}\n >\n <p\n className={mergeClassNames(\n \"font-medium transition-colors duration-200\",\n config.text,\n status === \"current\"\n ? \"text-ds-1\"\n : status === \"completed\"\n ? \"text-ds-1\"\n : status === \"error\"\n ? \"text-ds-state-error-text\"\n : \"text-ds-2\",\n )}\n >\n {step.title}\n {step.optional && (\n <span\n className={mergeClassNames(\n \"font-normal text-ds-3\",\n isRtl ? \"mr-1\" : \"ml-1\",\n )}\n >\n ({optionalLabel})\n </span>\n )}\n </p>\n {step.description && (\n <p\n className={mergeClassNames(\n \"mt-0.5 text-xs text-ds-2\",\n resolvedLabelPosition === \"right\" &&\n (isRtl ? \"text-right\" : \"text-left\"),\n )}\n >\n {step.description}\n </p>\n )}\n </motion.div>\n );\n\n return (\n <Fragment key={step.id}>\n <div\n className={mergeClassNames(\n \"relative z-10 min-w-0\",\n isVertical\n ? \"flex gap-4 pb-8\"\n : isHorizontalInline\n ? \"flex items-center gap-3\"\n : \"flex flex-1 flex-col items-center text-center\",\n !isLast && isVertical && \"mb-2\",\n isVertical && isLast && \"pb-0\",\n stepClassName,\n )}\n style={\n !isVertical && !isHorizontalInline\n ? { flexBasis: 0, flexGrow: 1 }\n : undefined\n }\n >\n {!isVertical && index > 0 ? (\n <div\n className={mergeClassNames(\n \"pointer-events-none absolute z-0 rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n top: `${connectorCenterOffsetPx}px`,\n left: isRtl ? \"50%\" : 0,\n right: isRtl ? 0 : \"50%\",\n height: config.connectorThickness,\n }}\n aria-hidden=\"true\"\n >\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"left-0\" : \"right-0\",\n )}\n style={{\n left: 0,\n right: 0,\n backgroundColor: colors?.connector || colors?.completed,\n opacity:\n status === \"completed\" || status === \"current\" ? 1 : 0,\n }}\n />\n </div>\n ) : null}\n\n {!isVertical && !isHorizontalInline && !isLast ? (\n <div\n className={mergeClassNames(\n \"pointer-events-none absolute z-0 rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n top: `${connectorCenterOffsetPx}px`,\n left: isRtl ? 0 : \"50%\",\n right: isRtl ? \"50%\" : 0,\n height: config.connectorThickness,\n }}\n aria-hidden=\"true\"\n >\n {animated ? (\n <motion.div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n initial={{ width: 0 }}\n animate={{\n width:\n status === \"completed\" || status === \"current\"\n ? \"100%\"\n : \"0%\",\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n style={{\n width:\n status === \"completed\" || status === \"current\"\n ? \"100%\"\n : \"0%\",\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n ) : null}\n\n <button\n type=\"button\"\n onClick={() => handleStepClick(index)}\n disabled={!isClickable}\n className={mergeClassNames(\n \"relative z-10 shrink-0 rounded-full bg-ds-surface-1\",\n isClickable ? \"cursor-pointer\" : \"cursor-default\",\n resolvedLabelPosition === \"right\"\n ? \"flex items-center justify-center\"\n : \"flex items-center justify-center\",\n )}\n style={{\n padding: `${indicatorPaddingPx}px`,\n }}\n aria-current={status === \"current\" ? \"step\" : undefined}\n >\n <StepIndicator\n step={step}\n index={index}\n status={status}\n size={size}\n variant={variant}\n showNumbers={showNumbers}\n animated={animated}\n colors={colors}\n />\n </button>\n\n {textBlock}\n\n {isVertical && step.content && status === \"current\" && (\n <motion.div\n initial={{ opacity: 0, height: 0 }}\n animate={{ opacity: 1, height: \"auto\" }}\n exit={{ opacity: 0, height: 0 }}\n className=\"w-full pb-4 pl-14\"\n >\n {step.content}\n </motion.div>\n )}\n </div>\n\n {isHorizontalInline && showConnector && !isLast ? (\n <div\n className={mergeClassNames(\n \"relative mx-4 min-w-8 flex-1 shrink-0 overflow-hidden rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{ height: config.connectorThickness }}\n aria-hidden=\"true\"\n >\n {animated ? (\n <motion.div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n initial={{ width: 0 }}\n animate={{\n width: isConnectorCompleted ? \"100%\" : \"0%\",\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n style={{\n width: isConnectorCompleted ? \"100%\" : \"0%\",\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n ) : null}\n </Fragment>\n );\n })}\n </div>\n );\n};\n\nStepper.displayName = \"Stepper\";\n\nexport default Stepper;\n","import { useSyncExternalStore } from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { AlertTriangleIcon, CheckIcon } from \"../../icons\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { StepperStepsProps, StepperStepsState } from \"./types\";\n\nconst DEFAULT_BREAKPOINT = 1080;\n\nfunction subscribeToMediaQuery(\n query: string,\n onStoreChange: () => void,\n): () => void {\n if (typeof window === \"undefined\") {\n return () => undefined;\n }\n\n const mediaQuery = window.matchMedia(query);\n mediaQuery.addEventListener(\"change\", onStoreChange);\n\n return () => mediaQuery.removeEventListener(\"change\", onStoreChange);\n}\n\nfunction getMediaQuerySnapshot(query: string): boolean {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n return window.matchMedia(query).matches;\n}\n\nfunction getStepColors(\n state: StepperStepsState,\n isActive: boolean,\n): {\n buttonClassName: string;\n connectorClassName: string;\n badgeClassName: string;\n} {\n if (isActive) {\n return {\n buttonClassName:\n \"border-ds-border-accent bg-ds-accent/12 text-ds-1 shadow-sm shadow-ds-accent/10\",\n connectorClassName: \"bg-ds-accent\",\n badgeClassName: \"border-ds-border-accent bg-ds-accent text-ds-on-accent\",\n };\n }\n\n if (state === \"valid\") {\n return {\n buttonClassName:\n \"border-ds-state-success-border bg-ds-state-success-surface text-ds-state-success-text shadow-sm\",\n connectorClassName: \"bg-ds-state-success\",\n badgeClassName:\n \"border-ds-state-success-border bg-ds-state-success text-ds-on-accent\",\n };\n }\n\n if (state === \"invalid\") {\n return {\n buttonClassName:\n \"border-ds-state-error-border bg-ds-state-error-surface text-ds-state-error-text\",\n connectorClassName: \"bg-ds-state-danger\",\n badgeClassName:\n \"border-ds-state-error-border bg-ds-state-danger text-ds-on-accent\",\n };\n }\n\n return {\n buttonClassName:\n \"border-ds-border-2 bg-ds-surface-1 text-ds-2 hover:border-ds-border-1 hover:bg-ds-canvas\",\n connectorClassName: \"bg-ds-border-3/70\",\n badgeClassName: \"border-ds-border-2 bg-ds-canvas text-ds-2\",\n };\n}\n\nfunction renderStepContent(\n label: string,\n icon: StepperStepsProps[\"steps\"][number][\"icon\"],\n state: StepperStepsState,\n stepNumber: number,\n badgeClassName: string,\n) {\n if (state === \"valid\") {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <CheckIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n if (state === \"invalid\") {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <AlertTriangleIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n if (icon) {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"shrink-0\">{icon}</span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span\n className={mergeClassNames(\n \"flex h-6 w-6 shrink-0 items-center justify-center rounded-full border text-xs font-semibold\",\n badgeClassName,\n )}\n aria-hidden=\"true\"\n >\n {stepNumber}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n}\n\nexport function StepperSteps({\n steps,\n currentStep,\n onStepClick,\n stepStates = [],\n orientation = \"responsive\",\n responsiveBreakpoint = DEFAULT_BREAKPOINT,\n className,\n stepClassName,\n connectorClassName,\n}: StepperStepsProps) {\n const responsiveQuery = `(max-width: ${responsiveBreakpoint}px)`;\n const isCompact = useSyncExternalStore(\n (onStoreChange) => {\n if (orientation !== \"responsive\") {\n return () => undefined;\n }\n\n return subscribeToMediaQuery(responsiveQuery, onStoreChange);\n },\n () =>\n orientation === \"responsive\"\n ? getMediaQuerySnapshot(responsiveQuery)\n : false,\n () => false,\n );\n\n const isVertical =\n orientation === \"vertical\" || (orientation === \"responsive\" && isCompact);\n\n return (\n <div\n className={mergeClassNames(\n isVertical\n ? \"flex w-full flex-col items-start\"\n : \"flex w-full items-center\",\n className,\n )}\n >\n {steps.map((step, index) => {\n const stepNumber = index + 1;\n const state = stepStates[index] ?? \"untouched\";\n const isActive = index === currentStep;\n const isClickable = typeof onStepClick === \"function\" && !isActive;\n const colors = getStepColors(state, isActive);\n\n return (\n <div\n key={`${step.label}-${stepNumber}`}\n className={mergeClassNames(\n isVertical ? \"w-full\" : \"flex min-w-0 flex-1 items-center\",\n )}\n >\n <Button\n disabled={!isClickable}\n onClick={() => onStepClick?.(index)}\n className={mergeClassNames(\n \"relative z-10 flex min-h-11 items-center justify-center rounded-md border px-4 py-3 text-sm font-medium transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/70 focus-visible:ring-offset-2 focus-visible:ring-offset-ds-surface-1 disabled:cursor-default disabled:opacity-100\",\n isVertical ? \"w-full\" : \"w-full min-w-0\",\n colors.buttonClassName,\n stepClassName,\n )}\n aria-current={isActive ? \"step\" : undefined}\n aria-invalid={state === \"invalid\" ? true : undefined}\n >\n {renderStepContent(\n step.label,\n step.icon,\n state,\n stepNumber,\n colors.badgeClassName,\n )}\n </Button>\n\n {index < steps.length - 1 ? (\n isVertical ? (\n <div\n className={mergeClassNames(\n \"mx-auto my-2 h-8 w-px rounded-full\",\n colors.connectorClassName,\n connectorClassName,\n )}\n aria-hidden=\"true\"\n />\n ) : (\n <div\n className={mergeClassNames(\n \"mx-3 h-px min-w-6 flex-1 rounded-full\",\n colors.connectorClassName,\n connectorClassName,\n )}\n aria-hidden=\"true\"\n />\n )\n ) : null}\n </div>\n );\n })}\n </div>\n );\n}\n\nexport default StepperSteps;\n","import {\n Children,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\nimport { Button } from \"../../forms/button\";\nimport { CheckIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type {\n StepperWizardIndicatorRenderProps,\n StepperWizardIndicatorStatus,\n StepperWizardProps,\n StepperWizardStepProps,\n} from \"./types\";\n\nconst useIsomorphicLayoutEffect =\n typeof window === \"undefined\" ? useEffect : useLayoutEffect;\n\nfunction clampStep(step: number, totalSteps: number): number {\n return Math.min(Math.max(step, 0), totalSteps);\n}\n\nfunction getIndicatorStatus(\n stepIndex: number,\n currentStep: number,\n): StepperWizardIndicatorStatus {\n if (stepIndex === currentStep) {\n return \"active\";\n }\n\n if (stepIndex < currentStep) {\n return \"complete\";\n }\n\n return \"inactive\";\n}\n\nexport function StepperWizard({\n children,\n initialStep = 0,\n currentStep: controlledStep,\n onStepChange,\n onFinalStepCompleted,\n stepCircleContainerClassName,\n stepContainerClassName,\n contentClassName,\n footerClassName,\n backButtonProps,\n nextButtonProps,\n backButtonText = \"Back\",\n nextButtonText = \"Continue\",\n completeButtonText = \"Complete\",\n disableStepIndicators = false,\n renderStepIndicator,\n className,\n}: StepperWizardProps) {\n const stepsArray = Children.toArray(children);\n const totalSteps = stepsArray.length;\n const [internalStep, setInternalStep] = useState(() =>\n clampStep(initialStep, totalSteps),\n );\n const [direction, setDirection] = useState(0);\n\n const currentStep = clampStep(controlledStep ?? internalStep, totalSteps);\n const isCompleted = currentStep >= totalSteps;\n const isLastStep = totalSteps > 0 && currentStep === totalSteps - 1;\n\n const commitStep = useCallback(\n (nextStep: number) => {\n const clampedStep = clampStep(nextStep, totalSteps);\n\n if (controlledStep === undefined) {\n setInternalStep(clampedStep);\n }\n\n if (clampedStep >= totalSteps) {\n onFinalStepCompleted?.();\n return;\n }\n\n onStepChange?.(clampedStep);\n },\n [controlledStep, onFinalStepCompleted, onStepChange, totalSteps],\n );\n\n if (totalSteps === 0) {\n return null;\n }\n\n const handleBack = () => {\n if (currentStep > 0) {\n setDirection(-1);\n commitStep(currentStep - 1);\n }\n };\n\n const handleNext = () => {\n if (!isLastStep) {\n setDirection(1);\n commitStep(currentStep + 1);\n }\n };\n\n const handleComplete = () => {\n setDirection(1);\n commitStep(totalSteps);\n };\n\n const navigateToStep = (stepIndex: number) => {\n if (stepIndex === currentStep || disableStepIndicators) {\n return;\n }\n\n setDirection(stepIndex > currentStep ? 1 : -1);\n commitStep(stepIndex);\n };\n\n return (\n <div\n className={mergeClassNames(\n \"flex min-h-full w-full flex-1 items-center justify-center p-4\",\n className,\n )}\n >\n <div\n className={mergeClassNames(\n \"mx-auto w-full max-w-3xl rounded-3xl border border-ds-border-2 bg-ds-canvas shadow-2\",\n stepCircleContainerClassName,\n )}\n >\n <div\n className={mergeClassNames(\n \"flex w-full items-center gap-3 border-b border-ds-border-2 px-6 py-6 sm:px-8\",\n stepContainerClassName,\n )}\n >\n {stepsArray.map((_, index) => {\n const status = getIndicatorStatus(index, currentStep);\n const isClickable = !disableStepIndicators && index !== currentStep;\n const indicatorProps: StepperWizardIndicatorRenderProps = {\n stepIndex: index,\n stepNumber: index + 1,\n currentStep,\n status,\n isClickable,\n onStepClick: navigateToStep,\n };\n\n return (\n <div\n key={`wizard-step-${index + 1}`}\n className=\"flex flex-1 items-center\"\n >\n {renderStepIndicator ? (\n renderStepIndicator(indicatorProps)\n ) : (\n <WizardStepIndicator {...indicatorProps} />\n )}\n {index < totalSteps - 1 ? (\n <WizardStepConnector isComplete={currentStep > index} />\n ) : null}\n </div>\n );\n })}\n </div>\n\n <WizardStepContentWrapper\n isCompleted={isCompleted}\n currentStep={currentStep}\n direction={direction}\n className={mergeClassNames(\"px-6 py-6 sm:px-8\", contentClassName)}\n >\n {stepsArray[currentStep]}\n </WizardStepContentWrapper>\n\n {!isCompleted ? (\n <div\n className={mergeClassNames(\n \"px-6 pb-6 sm:px-8 sm:pb-8\",\n footerClassName,\n )}\n >\n <div\n className={mergeClassNames(\n \"mt-6 flex gap-3\",\n currentStep > 0 ? \"justify-between\" : \"justify-end\",\n )}\n >\n {currentStep > 0 ? (\n <Button\n onClick={handleBack}\n className=\"rounded-md border-transparent bg-transparent px-3 py-2 text-sm font-medium text-ds-2 shadow-none hover:bg-ds-surface-1 hover:text-ds-1\"\n {...backButtonProps}\n >\n {backButtonText}\n </Button>\n ) : null}\n <Button\n onClick={isLastStep ? handleComplete : handleNext}\n primary\n className=\"rounded-full px-4 py-2 text-sm font-semibold shadow-2\"\n {...nextButtonProps}\n >\n {isLastStep ? completeButtonText : nextButtonText}\n </Button>\n </div>\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\ninterface WizardStepContentWrapperProps {\n isCompleted: boolean;\n currentStep: number;\n direction: number;\n children: React.ReactNode;\n className?: string;\n}\n\nfunction WizardStepContentWrapper({\n isCompleted,\n currentStep,\n direction,\n children,\n className,\n}: WizardStepContentWrapperProps) {\n const [parentHeight, setParentHeight] = useState(0);\n const handleHeightReady = useCallback((height: number) => {\n setParentHeight(height);\n }, []);\n\n return (\n <motion.div\n style={{ position: \"relative\", overflow: \"hidden\" }}\n animate={{ height: isCompleted ? 0 : parentHeight }}\n transition={{ type: \"spring\", duration: 0.4 }}\n className={className}\n >\n <AnimatePresence initial={false} mode=\"wait\" custom={direction}>\n {!isCompleted ? (\n <WizardSlideTransition\n key={currentStep}\n direction={direction}\n onHeightReady={handleHeightReady}\n >\n {children}\n </WizardSlideTransition>\n ) : null}\n </AnimatePresence>\n </motion.div>\n );\n}\n\ninterface WizardSlideTransitionProps {\n children: React.ReactNode;\n direction: number;\n onHeightReady: (height: number) => void;\n}\n\nfunction WizardSlideTransition({\n children,\n direction,\n onHeightReady,\n}: WizardSlideTransitionProps) {\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n if (containerRef.current) {\n onHeightReady(containerRef.current.offsetHeight);\n }\n }, [children, onHeightReady]);\n\n return (\n <motion.div\n ref={containerRef}\n custom={direction}\n variants={wizardStepVariants}\n initial=\"enter\"\n animate=\"center\"\n exit=\"exit\"\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{ position: \"absolute\", inset: 0 }}\n >\n {children}\n </motion.div>\n );\n}\n\nconst wizardStepVariants = {\n enter: (direction: number) => ({\n x: direction >= 0 ? \"-100%\" : \"100%\",\n opacity: 0,\n }),\n center: {\n x: \"0%\",\n opacity: 1,\n },\n exit: (direction: number) => ({\n x: direction >= 0 ? \"40%\" : \"-40%\",\n opacity: 0,\n }),\n};\n\nexport function StepperWizardStep({\n children,\n className,\n}: StepperWizardStepProps) {\n return (\n <div className={mergeClassNames(\"space-y-4\", className)}>{children}</div>\n );\n}\n\nfunction WizardStepIndicator({\n stepIndex,\n stepNumber,\n status,\n isClickable,\n onStepClick,\n}: StepperWizardIndicatorRenderProps) {\n return (\n <motion.button\n type=\"button\"\n onClick={() => onStepClick(stepIndex)}\n className={mergeClassNames(\n \"relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full border text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/70 focus-visible:ring-offset-2 focus-visible:ring-offset-ds-surface-1\",\n isClickable ? \"cursor-pointer\" : \"cursor-default\",\n )}\n animate={status}\n initial={false}\n disabled={!isClickable}\n aria-current={status === \"active\" ? \"step\" : undefined}\n >\n <motion.span\n variants={{\n inactive: {\n scale: 1,\n backgroundColor: \"var(--ds-color-bg-surface)\",\n borderColor: \"var(--ds-color-border)\",\n color: \"var(--ds-color-fg-muted)\",\n },\n active: {\n scale: 1,\n backgroundColor: \"var(--ds-color-accent)\",\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-fg-on-accent)\",\n },\n complete: {\n scale: 1,\n backgroundColor: \"var(--ds-color-accent)\",\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-fg-on-accent)\",\n },\n }}\n transition={{ duration: 0.25 }}\n className=\"flex h-full w-full items-center justify-center rounded-full\"\n >\n {status === \"complete\" ? (\n <AnimatedWizardCheckIcon className=\"h-4 w-4\" />\n ) : status === \"active\" ? (\n <span className=\"h-2.5 w-2.5 rounded-full bg-current\" />\n ) : (\n <span>{stepNumber}</span>\n )}\n </motion.span>\n </motion.button>\n );\n}\n\nfunction WizardStepConnector({ isComplete }: { isComplete: boolean }) {\n return (\n <div className=\"relative mx-2 h-0.5 flex-1 overflow-hidden rounded-full bg-border\">\n <motion.div\n className=\"absolute inset-y-0 left-0 rounded-full bg-ds-accent\"\n initial={false}\n animate={isComplete ? \"complete\" : \"incomplete\"}\n variants={{\n incomplete: { width: 0 },\n complete: { width: \"100%\" },\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n />\n </div>\n );\n}\n\nfunction AnimatedWizardCheckIcon({ className }: { className?: string }) {\n return (\n <span\n className={mergeClassNames(\"flex items-center justify-center\", className)}\n >\n <CheckIcon className=\"h-full w-full\" aria-hidden=\"true\" />\n </span>\n );\n}\n\nexport default StepperWizard;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { n as mergeClassNames } from "./utils-7S0u48mU.mjs";
2
- import { t as TruncatedText } from "./truncated-text-C9t9o9IA.mjs";
3
- import { J as CheckIcon, _ as AlertTriangleIcon, q as CloseIcon } from "./icons-bx3nrxNv.mjs";
4
- import { t as Button } from "./button-A6UTvrOu.mjs";
1
+ import { n as mergeClassNames } from "./utils-Dc7j29ec.mjs";
2
+ import { t as TruncatedText } from "./truncated-text-DIkg-8Vo.mjs";
3
+ import { J as CheckIcon, _ as AlertTriangleIcon, q as CloseIcon } from "./icons-CkVHNbbN.mjs";
4
+ import { t as Button } from "./button-CAU9ej3h.mjs";
5
5
  import { Children, Fragment, useCallback, useEffect, useLayoutEffect, useRef, useState, useSyncExternalStore } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { AnimatePresence, motion } from "framer-motion";
@@ -705,4 +705,4 @@ function AnimatedWizardCheckIcon({ className }) {
705
705
  //#endregion
706
706
  export { Stepper as i, StepperWizardStep as n, StepperSteps as r, StepperWizard as t };
707
707
 
708
- //# sourceMappingURL=stepper-Jv5OS1nY.mjs.map
708
+ //# sourceMappingURL=stepper-CVNcexxq.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"stepper-Jv5OS1nY.mjs","names":[],"sources":["../../src/components/navigation/stepper/Stepper.tsx","../../src/components/navigation/stepper/Stepper1.tsx","../../src/components/navigation/stepper/Stepper2.tsx"],"sourcesContent":["import { Fragment } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\n\nimport { CheckIcon, CloseIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type {\n StepperProps,\n StepIndicatorProps,\n StepStatus,\n StepperLabelPosition,\n StepperSize,\n StepperVariant,\n} from \"./types\";\n\n// Size configurations for indicators and icons\nconst sizeConfig: Record<\n StepperSize,\n {\n indicator: string;\n indicatorPx: number;\n icon: string;\n text: string;\n connectorThickness: string;\n connectorThicknessPx: number;\n }\n> = {\n sm: {\n indicator: \"w-8 h-8\",\n indicatorPx: 32,\n icon: \"w-4 h-4\",\n text: \"text-xs\",\n connectorThickness: \"2px\",\n connectorThicknessPx: 2,\n },\n md: {\n indicator: \"w-10 h-10\",\n indicatorPx: 40,\n icon: \"w-5 h-5\",\n text: \"text-sm\",\n connectorThickness: \"2px\",\n connectorThicknessPx: 2,\n },\n lg: {\n indicator: \"w-12 h-12\",\n indicatorPx: 48,\n icon: \"w-6 h-6\",\n text: \"text-base\",\n connectorThickness: \"4px\",\n connectorThicknessPx: 4,\n },\n};\n\n// Variant styles for the indicator\nconst getVariantStyles = (variant: StepperVariant, status: StepStatus) => {\n const baseStyles = {\n default: {\n completed: \"bg-ds-accent text-ds-on-accent shadow-md shadow-ds-accent/25\",\n current:\n \"bg-ds-accent text-ds-on-accent ring-4 ring-ds-focus/40 shadow-lg shadow-ds-accent/30\",\n upcoming: \"bg-ds-surface-3 text-ds-2\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text ring-4 ring-ds-state-error-border/35\",\n },\n glass: {\n completed:\n \"bg-ds-accent/85 text-ds-on-accent backdrop-blur-xl border border-ds-border-accent/30 shadow-lg shadow-ds-accent/20\",\n current:\n \"bg-ds-accent/90 text-ds-on-accent backdrop-blur-xl border-2 border-ds-border-accent ring-4 ring-ds-focus/30 shadow-xl shadow-ds-accent/30\",\n upcoming:\n \"bg-ds-surface-1 text-ds-2 backdrop-blur-xl border border-ds-border-2\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text backdrop-blur-xl border border-ds-state-error-border ring-4 ring-ds-state-error-border/25\",\n },\n minimal: {\n completed: \"bg-ds-accent-subtle text-ds-1\",\n current: \"bg-ds-accent text-ds-on-accent shadow-sm\",\n upcoming: \"bg-transparent text-ds-2 border-2 border-ds-border-2\",\n error: \"bg-ds-state-error-surface text-ds-state-error-text\",\n },\n outlined: {\n completed: \"bg-transparent text-ds-1 border-2 border-ds-border-accent\",\n current:\n \"bg-ds-accent text-ds-on-accent border-2 border-ds-border-accent shadow-lg\",\n upcoming: \"bg-transparent text-ds-2 border-2 border-ds-border-2\",\n error:\n \"bg-transparent text-ds-state-error-text border-2 border-ds-state-error-border\",\n },\n };\n\n return baseStyles[variant][status];\n};\n\nconst getConnectorTrackClassName = (variant: StepperVariant) =>\n variant === \"glass\"\n ? \"bg-ds-surface-2/70 backdrop-blur-sm\"\n : \"bg-ds-surface-3\";\n\nconst getResolvedLabelPosition = (\n orientation: StepperProps[\"orientation\"],\n labelPosition: StepperLabelPosition,\n) => (orientation === \"vertical\" ? \"right\" : labelPosition);\n\n// Step Indicator Component\nconst StepIndicator = ({\n step,\n index,\n status,\n size,\n variant,\n showNumbers,\n animated,\n colors,\n}: StepIndicatorProps) => {\n const config = sizeConfig[size];\n const variantStyles = getVariantStyles(variant, status);\n\n // Custom color overrides\n const customColorStyle = colors?.[status]\n ? { backgroundColor: colors[status], borderColor: colors[status] }\n : undefined;\n\n const renderContent = () => {\n if (step.icon) {\n return <span className={config.icon}>{step.icon}</span>;\n }\n\n if (status === \"completed\") {\n return <CheckIcon className={config.icon} aria-hidden=\"true\" />;\n }\n\n if (status === \"error\") {\n return <CloseIcon className={config.icon} aria-hidden=\"true\" />;\n }\n\n if (showNumbers) {\n return <span className=\"font-semibold\">{index + 1}</span>;\n }\n\n return (\n <span\n className={mergeClassNames(\n \"rounded-full bg-current\",\n size === \"sm\" ? \"w-2 h-2\" : \"w-3 h-3\",\n )}\n />\n );\n };\n\n return (\n <motion.div\n className={mergeClassNames(\n \"rounded-full flex items-center justify-center transition-all duration-300\",\n config.indicator,\n variantStyles,\n )}\n style={customColorStyle}\n initial={animated ? { scale: 0.8, opacity: 0 } : undefined}\n animate={animated ? { scale: 1, opacity: 1 } : undefined}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n >\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={status}\n initial={animated ? { scale: 0, rotate: -180 } : undefined}\n animate={animated ? { scale: 1, rotate: 0 } : undefined}\n exit={animated ? { scale: 0, rotate: 180 } : undefined}\n transition={{ duration: 0.2 }}\n >\n {renderContent()}\n </motion.span>\n </AnimatePresence>\n </motion.div>\n );\n};\n\n// Main Stepper Component\nexport const Stepper = ({\n steps,\n currentStep,\n onStepClick,\n orientation = \"horizontal\",\n size = \"md\",\n variant = \"glass\",\n labelPosition = \"bottom\",\n direction = \"ltr\",\n optionalLabel = \"Optional\",\n showNumbers = true,\n clickable = true,\n showConnector = true,\n className,\n connectorClassName,\n stepClassName,\n showErrors = false,\n errorSteps = [],\n completedSteps,\n animated = true,\n colors,\n}: StepperProps) => {\n const isRtl = direction === \"rtl\";\n const isVertical = orientation === \"vertical\";\n const resolvedLabelPosition = getResolvedLabelPosition(\n orientation,\n labelPosition,\n );\n const isHorizontalInline =\n orientation === \"horizontal\" && resolvedLabelPosition === \"right\";\n const config = sizeConfig[size];\n const indicatorPaddingPx =\n variant === \"glass\" || variant === \"outlined\" || variant === \"minimal\"\n ? 4\n : 2;\n const indicatorShellSizePx = config.indicatorPx + indicatorPaddingPx * 2;\n const connectorInsetPx = indicatorShellSizePx / 2;\n const connectorCenterOffsetPx =\n connectorInsetPx - config.connectorThicknessPx / 2;\n\n const getStepStatus = (index: number): StepStatus => {\n if (showErrors && errorSteps.includes(index)) return \"error\";\n if (completedSteps) {\n if (completedSteps.includes(index)) return \"completed\";\n if (index === currentStep) return \"current\";\n return \"upcoming\";\n }\n if (index < currentStep) return \"completed\";\n if (index === currentStep) return \"current\";\n return \"upcoming\";\n };\n\n const handleStepClick = (index: number) => {\n if (!clickable || !onStepClick) return;\n const step = steps[index];\n if (step.disabled) return;\n\n // Allow clicking on completed or current steps\n const status = getStepStatus(index);\n if (status === \"completed\" || status === \"current\") {\n onStepClick(index);\n }\n };\n\n return (\n <div\n className={mergeClassNames(\n \"w-full relative\",\n isVertical\n ? \"flex flex-col\"\n : isHorizontalInline\n ? mergeClassNames(\n \"flex items-center\",\n isRtl && \"flex-row-reverse\",\n )\n : mergeClassNames(\n \"flex items-start justify-between\",\n isRtl && \"flex-row-reverse\",\n ),\n className,\n )}\n dir={direction}\n >\n {/* Global Background Continuous Connector */}\n {showConnector &&\n isVertical &&\n (() => {\n return (\n <div\n className={mergeClassNames(\n \"absolute rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n ...(isVertical\n ? {\n top: `${connectorInsetPx}px`,\n bottom: `${connectorInsetPx}px`,\n left: `${connectorCenterOffsetPx}px`,\n width: config.connectorThickness,\n }\n : {\n left: `${connectorInsetPx}px`,\n right: `${connectorInsetPx}px`,\n top: `${connectorCenterOffsetPx}px`,\n height: config.connectorThickness,\n }),\n }}\n >\n {/* Animated fill connector */}\n {animated ? (\n <motion.div\n className=\"absolute top-0 left-0 bg-ds-accent rounded-full\"\n initial={{ [isVertical ? \"height\" : \"width\"]: 0 }}\n animate={{\n [isVertical ? \"height\" : \"width\"]:\n `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }}\n transition={{ duration: 0.4, ease: \"easeOut\" }}\n style={{\n ...(isVertical ? { width: \"100%\" } : { height: \"100%\" }),\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className=\"absolute top-0 left-0 bg-ds-accent rounded-full\"\n style={{\n ...(isVertical\n ? {\n width: \"100%\",\n height: `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }\n : {\n height: \"100%\",\n width: `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }),\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n );\n })()}\n\n {steps.map((step, index) => {\n const status = getStepStatus(index);\n const isLast = index === steps.length - 1;\n const isClickable = clickable && !step.disabled;\n const isConnectorCompleted = getStepStatus(index) === \"completed\";\n const textBlock = (\n <motion.div\n className={mergeClassNames(\n resolvedLabelPosition === \"right\"\n ? mergeClassNames(\n \"min-w-0\",\n isRtl ? \"text-right\" : \"text-left\",\n )\n : \"w-full px-2 text-center\",\n isVertical && \"flex-1 pb-6\",\n isVertical && isLast && \"pb-0\",\n )}\n style={isVertical ? { marginTop: \"-4px\" } : undefined}\n initial={animated ? { opacity: 0, y: 10 } : undefined}\n animate={animated ? { opacity: 1, y: 0 } : undefined}\n transition={{ delay: index * 0.1 }}\n >\n <p\n className={mergeClassNames(\n \"font-medium transition-colors duration-200\",\n config.text,\n status === \"current\"\n ? \"text-ds-1\"\n : status === \"completed\"\n ? \"text-ds-1\"\n : status === \"error\"\n ? \"text-ds-state-error-text\"\n : \"text-ds-2\",\n )}\n >\n {step.title}\n {step.optional && (\n <span\n className={mergeClassNames(\n \"font-normal text-ds-3\",\n isRtl ? \"mr-1\" : \"ml-1\",\n )}\n >\n ({optionalLabel})\n </span>\n )}\n </p>\n {step.description && (\n <p\n className={mergeClassNames(\n \"mt-0.5 text-xs text-ds-2\",\n resolvedLabelPosition === \"right\" &&\n (isRtl ? \"text-right\" : \"text-left\"),\n )}\n >\n {step.description}\n </p>\n )}\n </motion.div>\n );\n\n return (\n <Fragment key={step.id}>\n <div\n className={mergeClassNames(\n \"relative z-10 min-w-0\",\n isVertical\n ? \"flex gap-4 pb-8\"\n : isHorizontalInline\n ? \"flex items-center gap-3\"\n : \"flex flex-1 flex-col items-center text-center\",\n !isLast && isVertical && \"mb-2\",\n isVertical && isLast && \"pb-0\",\n stepClassName,\n )}\n style={\n !isVertical && !isHorizontalInline\n ? { flexBasis: 0, flexGrow: 1 }\n : undefined\n }\n >\n {!isVertical && index > 0 ? (\n <div\n className={mergeClassNames(\n \"pointer-events-none absolute z-0 rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n top: `${connectorCenterOffsetPx}px`,\n left: isRtl ? \"50%\" : 0,\n right: isRtl ? 0 : \"50%\",\n height: config.connectorThickness,\n }}\n aria-hidden=\"true\"\n >\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"left-0\" : \"right-0\",\n )}\n style={{\n left: 0,\n right: 0,\n backgroundColor: colors?.connector || colors?.completed,\n opacity:\n status === \"completed\" || status === \"current\" ? 1 : 0,\n }}\n />\n </div>\n ) : null}\n\n {!isVertical && !isHorizontalInline && !isLast ? (\n <div\n className={mergeClassNames(\n \"pointer-events-none absolute z-0 rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n top: `${connectorCenterOffsetPx}px`,\n left: isRtl ? 0 : \"50%\",\n right: isRtl ? \"50%\" : 0,\n height: config.connectorThickness,\n }}\n aria-hidden=\"true\"\n >\n {animated ? (\n <motion.div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n initial={{ width: 0 }}\n animate={{\n width:\n status === \"completed\" || status === \"current\"\n ? \"100%\"\n : \"0%\",\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n style={{\n width:\n status === \"completed\" || status === \"current\"\n ? \"100%\"\n : \"0%\",\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n ) : null}\n\n <button\n type=\"button\"\n onClick={() => handleStepClick(index)}\n disabled={!isClickable}\n className={mergeClassNames(\n \"relative z-10 shrink-0 rounded-full bg-ds-surface-1\",\n isClickable ? \"cursor-pointer\" : \"cursor-default\",\n resolvedLabelPosition === \"right\"\n ? \"flex items-center justify-center\"\n : \"flex items-center justify-center\",\n )}\n style={{\n padding: `${indicatorPaddingPx}px`,\n }}\n aria-current={status === \"current\" ? \"step\" : undefined}\n >\n <StepIndicator\n step={step}\n index={index}\n status={status}\n size={size}\n variant={variant}\n showNumbers={showNumbers}\n animated={animated}\n colors={colors}\n />\n </button>\n\n {textBlock}\n\n {isVertical && step.content && status === \"current\" && (\n <motion.div\n initial={{ opacity: 0, height: 0 }}\n animate={{ opacity: 1, height: \"auto\" }}\n exit={{ opacity: 0, height: 0 }}\n className=\"w-full pb-4 pl-14\"\n >\n {step.content}\n </motion.div>\n )}\n </div>\n\n {isHorizontalInline && showConnector && !isLast ? (\n <div\n className={mergeClassNames(\n \"relative mx-4 min-w-8 flex-1 shrink-0 overflow-hidden rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{ height: config.connectorThickness }}\n aria-hidden=\"true\"\n >\n {animated ? (\n <motion.div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n initial={{ width: 0 }}\n animate={{\n width: isConnectorCompleted ? \"100%\" : \"0%\",\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n style={{\n width: isConnectorCompleted ? \"100%\" : \"0%\",\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n ) : null}\n </Fragment>\n );\n })}\n </div>\n );\n};\n\nStepper.displayName = \"Stepper\";\n\nexport default Stepper;\n","import { useSyncExternalStore } from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { AlertTriangleIcon, CheckIcon } from \"../../icons\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { StepperStepsProps, StepperStepsState } from \"./types\";\n\nconst DEFAULT_BREAKPOINT = 1080;\n\nfunction subscribeToMediaQuery(\n query: string,\n onStoreChange: () => void,\n): () => void {\n if (typeof window === \"undefined\") {\n return () => undefined;\n }\n\n const mediaQuery = window.matchMedia(query);\n mediaQuery.addEventListener(\"change\", onStoreChange);\n\n return () => mediaQuery.removeEventListener(\"change\", onStoreChange);\n}\n\nfunction getMediaQuerySnapshot(query: string): boolean {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n return window.matchMedia(query).matches;\n}\n\nfunction getStepColors(\n state: StepperStepsState,\n isActive: boolean,\n): {\n buttonClassName: string;\n connectorClassName: string;\n badgeClassName: string;\n} {\n if (isActive) {\n return {\n buttonClassName:\n \"border-ds-border-accent bg-ds-accent/12 text-ds-1 shadow-sm shadow-ds-accent/10\",\n connectorClassName: \"bg-ds-accent\",\n badgeClassName: \"border-ds-border-accent bg-ds-accent text-ds-on-accent\",\n };\n }\n\n if (state === \"valid\") {\n return {\n buttonClassName:\n \"border-ds-state-success-border bg-ds-state-success-surface text-ds-state-success-text shadow-sm\",\n connectorClassName: \"bg-ds-state-success\",\n badgeClassName:\n \"border-ds-state-success-border bg-ds-state-success text-ds-on-accent\",\n };\n }\n\n if (state === \"invalid\") {\n return {\n buttonClassName:\n \"border-ds-state-error-border bg-ds-state-error-surface text-ds-state-error-text\",\n connectorClassName: \"bg-ds-state-danger\",\n badgeClassName:\n \"border-ds-state-error-border bg-ds-state-danger text-ds-on-accent\",\n };\n }\n\n return {\n buttonClassName:\n \"border-ds-border-2 bg-ds-surface-1 text-ds-2 hover:border-ds-border-1 hover:bg-ds-canvas\",\n connectorClassName: \"bg-ds-border-3/70\",\n badgeClassName: \"border-ds-border-2 bg-ds-canvas text-ds-2\",\n };\n}\n\nfunction renderStepContent(\n label: string,\n icon: StepperStepsProps[\"steps\"][number][\"icon\"],\n state: StepperStepsState,\n stepNumber: number,\n badgeClassName: string,\n) {\n if (state === \"valid\") {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <CheckIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n if (state === \"invalid\") {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <AlertTriangleIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n if (icon) {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"shrink-0\">{icon}</span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span\n className={mergeClassNames(\n \"flex h-6 w-6 shrink-0 items-center justify-center rounded-full border text-xs font-semibold\",\n badgeClassName,\n )}\n aria-hidden=\"true\"\n >\n {stepNumber}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n}\n\nexport function StepperSteps({\n steps,\n currentStep,\n onStepClick,\n stepStates = [],\n orientation = \"responsive\",\n responsiveBreakpoint = DEFAULT_BREAKPOINT,\n className,\n stepClassName,\n connectorClassName,\n}: StepperStepsProps) {\n const responsiveQuery = `(max-width: ${responsiveBreakpoint}px)`;\n const isCompact = useSyncExternalStore(\n (onStoreChange) => {\n if (orientation !== \"responsive\") {\n return () => undefined;\n }\n\n return subscribeToMediaQuery(responsiveQuery, onStoreChange);\n },\n () =>\n orientation === \"responsive\"\n ? getMediaQuerySnapshot(responsiveQuery)\n : false,\n () => false,\n );\n\n const isVertical =\n orientation === \"vertical\" || (orientation === \"responsive\" && isCompact);\n\n return (\n <div\n className={mergeClassNames(\n isVertical\n ? \"flex w-full flex-col items-start\"\n : \"flex w-full items-center\",\n className,\n )}\n >\n {steps.map((step, index) => {\n const stepNumber = index + 1;\n const state = stepStates[index] ?? \"untouched\";\n const isActive = index === currentStep;\n const isClickable = typeof onStepClick === \"function\" && !isActive;\n const colors = getStepColors(state, isActive);\n\n return (\n <div\n key={`${step.label}-${stepNumber}`}\n className={mergeClassNames(\n isVertical ? \"w-full\" : \"flex min-w-0 flex-1 items-center\",\n )}\n >\n <Button\n disabled={!isClickable}\n onClick={() => onStepClick?.(index)}\n className={mergeClassNames(\n \"relative z-10 flex min-h-11 items-center justify-center rounded-md border px-4 py-3 text-sm font-medium transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/70 focus-visible:ring-offset-2 focus-visible:ring-offset-ds-surface-1 disabled:cursor-default disabled:opacity-100\",\n isVertical ? \"w-full\" : \"w-full min-w-0\",\n colors.buttonClassName,\n stepClassName,\n )}\n aria-current={isActive ? \"step\" : undefined}\n aria-invalid={state === \"invalid\" ? true : undefined}\n >\n {renderStepContent(\n step.label,\n step.icon,\n state,\n stepNumber,\n colors.badgeClassName,\n )}\n </Button>\n\n {index < steps.length - 1 ? (\n isVertical ? (\n <div\n className={mergeClassNames(\n \"mx-auto my-2 h-8 w-px rounded-full\",\n colors.connectorClassName,\n connectorClassName,\n )}\n aria-hidden=\"true\"\n />\n ) : (\n <div\n className={mergeClassNames(\n \"mx-3 h-px min-w-6 flex-1 rounded-full\",\n colors.connectorClassName,\n connectorClassName,\n )}\n aria-hidden=\"true\"\n />\n )\n ) : null}\n </div>\n );\n })}\n </div>\n );\n}\n\nexport default StepperSteps;\n","import {\n Children,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\nimport { Button } from \"../../forms/button\";\nimport { CheckIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type {\n StepperWizardIndicatorRenderProps,\n StepperWizardIndicatorStatus,\n StepperWizardProps,\n StepperWizardStepProps,\n} from \"./types\";\n\nconst useIsomorphicLayoutEffect =\n typeof window === \"undefined\" ? useEffect : useLayoutEffect;\n\nfunction clampStep(step: number, totalSteps: number): number {\n return Math.min(Math.max(step, 0), totalSteps);\n}\n\nfunction getIndicatorStatus(\n stepIndex: number,\n currentStep: number,\n): StepperWizardIndicatorStatus {\n if (stepIndex === currentStep) {\n return \"active\";\n }\n\n if (stepIndex < currentStep) {\n return \"complete\";\n }\n\n return \"inactive\";\n}\n\nexport function StepperWizard({\n children,\n initialStep = 0,\n currentStep: controlledStep,\n onStepChange,\n onFinalStepCompleted,\n stepCircleContainerClassName,\n stepContainerClassName,\n contentClassName,\n footerClassName,\n backButtonProps,\n nextButtonProps,\n backButtonText = \"Back\",\n nextButtonText = \"Continue\",\n completeButtonText = \"Complete\",\n disableStepIndicators = false,\n renderStepIndicator,\n className,\n}: StepperWizardProps) {\n const stepsArray = Children.toArray(children);\n const totalSteps = stepsArray.length;\n const [internalStep, setInternalStep] = useState(() =>\n clampStep(initialStep, totalSteps),\n );\n const [direction, setDirection] = useState(0);\n\n const currentStep = clampStep(controlledStep ?? internalStep, totalSteps);\n const isCompleted = currentStep >= totalSteps;\n const isLastStep = totalSteps > 0 && currentStep === totalSteps - 1;\n\n const commitStep = useCallback(\n (nextStep: number) => {\n const clampedStep = clampStep(nextStep, totalSteps);\n\n if (controlledStep === undefined) {\n setInternalStep(clampedStep);\n }\n\n if (clampedStep >= totalSteps) {\n onFinalStepCompleted?.();\n return;\n }\n\n onStepChange?.(clampedStep);\n },\n [controlledStep, onFinalStepCompleted, onStepChange, totalSteps],\n );\n\n if (totalSteps === 0) {\n return null;\n }\n\n const handleBack = () => {\n if (currentStep > 0) {\n setDirection(-1);\n commitStep(currentStep - 1);\n }\n };\n\n const handleNext = () => {\n if (!isLastStep) {\n setDirection(1);\n commitStep(currentStep + 1);\n }\n };\n\n const handleComplete = () => {\n setDirection(1);\n commitStep(totalSteps);\n };\n\n const navigateToStep = (stepIndex: number) => {\n if (stepIndex === currentStep || disableStepIndicators) {\n return;\n }\n\n setDirection(stepIndex > currentStep ? 1 : -1);\n commitStep(stepIndex);\n };\n\n return (\n <div\n className={mergeClassNames(\n \"flex min-h-full w-full flex-1 items-center justify-center p-4\",\n className,\n )}\n >\n <div\n className={mergeClassNames(\n \"mx-auto w-full max-w-3xl rounded-3xl border border-ds-border-2 bg-ds-canvas shadow-2\",\n stepCircleContainerClassName,\n )}\n >\n <div\n className={mergeClassNames(\n \"flex w-full items-center gap-3 border-b border-ds-border-2 px-6 py-6 sm:px-8\",\n stepContainerClassName,\n )}\n >\n {stepsArray.map((_, index) => {\n const status = getIndicatorStatus(index, currentStep);\n const isClickable = !disableStepIndicators && index !== currentStep;\n const indicatorProps: StepperWizardIndicatorRenderProps = {\n stepIndex: index,\n stepNumber: index + 1,\n currentStep,\n status,\n isClickable,\n onStepClick: navigateToStep,\n };\n\n return (\n <div\n key={`wizard-step-${index + 1}`}\n className=\"flex flex-1 items-center\"\n >\n {renderStepIndicator ? (\n renderStepIndicator(indicatorProps)\n ) : (\n <WizardStepIndicator {...indicatorProps} />\n )}\n {index < totalSteps - 1 ? (\n <WizardStepConnector isComplete={currentStep > index} />\n ) : null}\n </div>\n );\n })}\n </div>\n\n <WizardStepContentWrapper\n isCompleted={isCompleted}\n currentStep={currentStep}\n direction={direction}\n className={mergeClassNames(\"px-6 py-6 sm:px-8\", contentClassName)}\n >\n {stepsArray[currentStep]}\n </WizardStepContentWrapper>\n\n {!isCompleted ? (\n <div\n className={mergeClassNames(\n \"px-6 pb-6 sm:px-8 sm:pb-8\",\n footerClassName,\n )}\n >\n <div\n className={mergeClassNames(\n \"mt-6 flex gap-3\",\n currentStep > 0 ? \"justify-between\" : \"justify-end\",\n )}\n >\n {currentStep > 0 ? (\n <Button\n onClick={handleBack}\n className=\"rounded-md border-transparent bg-transparent px-3 py-2 text-sm font-medium text-ds-2 shadow-none hover:bg-ds-surface-1 hover:text-ds-1\"\n {...backButtonProps}\n >\n {backButtonText}\n </Button>\n ) : null}\n <Button\n onClick={isLastStep ? handleComplete : handleNext}\n primary\n className=\"rounded-full px-4 py-2 text-sm font-semibold shadow-2\"\n {...nextButtonProps}\n >\n {isLastStep ? completeButtonText : nextButtonText}\n </Button>\n </div>\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\ninterface WizardStepContentWrapperProps {\n isCompleted: boolean;\n currentStep: number;\n direction: number;\n children: React.ReactNode;\n className?: string;\n}\n\nfunction WizardStepContentWrapper({\n isCompleted,\n currentStep,\n direction,\n children,\n className,\n}: WizardStepContentWrapperProps) {\n const [parentHeight, setParentHeight] = useState(0);\n const handleHeightReady = useCallback((height: number) => {\n setParentHeight(height);\n }, []);\n\n return (\n <motion.div\n style={{ position: \"relative\", overflow: \"hidden\" }}\n animate={{ height: isCompleted ? 0 : parentHeight }}\n transition={{ type: \"spring\", duration: 0.4 }}\n className={className}\n >\n <AnimatePresence initial={false} mode=\"wait\" custom={direction}>\n {!isCompleted ? (\n <WizardSlideTransition\n key={currentStep}\n direction={direction}\n onHeightReady={handleHeightReady}\n >\n {children}\n </WizardSlideTransition>\n ) : null}\n </AnimatePresence>\n </motion.div>\n );\n}\n\ninterface WizardSlideTransitionProps {\n children: React.ReactNode;\n direction: number;\n onHeightReady: (height: number) => void;\n}\n\nfunction WizardSlideTransition({\n children,\n direction,\n onHeightReady,\n}: WizardSlideTransitionProps) {\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n if (containerRef.current) {\n onHeightReady(containerRef.current.offsetHeight);\n }\n }, [children, onHeightReady]);\n\n return (\n <motion.div\n ref={containerRef}\n custom={direction}\n variants={wizardStepVariants}\n initial=\"enter\"\n animate=\"center\"\n exit=\"exit\"\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{ position: \"absolute\", inset: 0 }}\n >\n {children}\n </motion.div>\n );\n}\n\nconst wizardStepVariants = {\n enter: (direction: number) => ({\n x: direction >= 0 ? \"-100%\" : \"100%\",\n opacity: 0,\n }),\n center: {\n x: \"0%\",\n opacity: 1,\n },\n exit: (direction: number) => ({\n x: direction >= 0 ? \"40%\" : \"-40%\",\n opacity: 0,\n }),\n};\n\nexport function StepperWizardStep({\n children,\n className,\n}: StepperWizardStepProps) {\n return (\n <div className={mergeClassNames(\"space-y-4\", className)}>{children}</div>\n );\n}\n\nfunction WizardStepIndicator({\n stepIndex,\n stepNumber,\n status,\n isClickable,\n onStepClick,\n}: StepperWizardIndicatorRenderProps) {\n return (\n <motion.button\n type=\"button\"\n onClick={() => onStepClick(stepIndex)}\n className={mergeClassNames(\n \"relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full border text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/70 focus-visible:ring-offset-2 focus-visible:ring-offset-ds-surface-1\",\n isClickable ? \"cursor-pointer\" : \"cursor-default\",\n )}\n animate={status}\n initial={false}\n disabled={!isClickable}\n aria-current={status === \"active\" ? \"step\" : undefined}\n >\n <motion.span\n variants={{\n inactive: {\n scale: 1,\n backgroundColor: \"var(--ds-color-bg-surface)\",\n borderColor: \"var(--ds-color-border)\",\n color: \"var(--ds-color-fg-muted)\",\n },\n active: {\n scale: 1,\n backgroundColor: \"var(--ds-color-accent)\",\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-fg-on-accent)\",\n },\n complete: {\n scale: 1,\n backgroundColor: \"var(--ds-color-accent)\",\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-fg-on-accent)\",\n },\n }}\n transition={{ duration: 0.25 }}\n className=\"flex h-full w-full items-center justify-center rounded-full\"\n >\n {status === \"complete\" ? (\n <AnimatedWizardCheckIcon className=\"h-4 w-4\" />\n ) : status === \"active\" ? (\n <span className=\"h-2.5 w-2.5 rounded-full bg-current\" />\n ) : (\n <span>{stepNumber}</span>\n )}\n </motion.span>\n </motion.button>\n );\n}\n\nfunction WizardStepConnector({ isComplete }: { isComplete: boolean }) {\n return (\n <div className=\"relative mx-2 h-0.5 flex-1 overflow-hidden rounded-full bg-border\">\n <motion.div\n className=\"absolute inset-y-0 left-0 rounded-full bg-ds-accent\"\n initial={false}\n animate={isComplete ? \"complete\" : \"incomplete\"}\n variants={{\n incomplete: { width: 0 },\n complete: { width: \"100%\" },\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n />\n </div>\n );\n}\n\nfunction AnimatedWizardCheckIcon({ className }: { className?: string }) {\n return (\n <span\n className={mergeClassNames(\"flex items-center justify-center\", className)}\n >\n <CheckIcon className=\"h-full w-full\" aria-hidden=\"true\" />\n </span>\n );\n}\n\nexport default StepperWizard;\n"],"mappings":"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"}
1
+ {"version":3,"file":"stepper-CVNcexxq.mjs","names":[],"sources":["../../src/components/navigation/stepper/Stepper.tsx","../../src/components/navigation/stepper/Stepper1.tsx","../../src/components/navigation/stepper/Stepper2.tsx"],"sourcesContent":["import { Fragment } from \"react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\n\nimport { CheckIcon, CloseIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type {\n StepperProps,\n StepIndicatorProps,\n StepStatus,\n StepperLabelPosition,\n StepperSize,\n StepperVariant,\n} from \"./types\";\n\n// Size configurations for indicators and icons\nconst sizeConfig: Record<\n StepperSize,\n {\n indicator: string;\n indicatorPx: number;\n icon: string;\n text: string;\n connectorThickness: string;\n connectorThicknessPx: number;\n }\n> = {\n sm: {\n indicator: \"w-8 h-8\",\n indicatorPx: 32,\n icon: \"w-4 h-4\",\n text: \"text-xs\",\n connectorThickness: \"2px\",\n connectorThicknessPx: 2,\n },\n md: {\n indicator: \"w-10 h-10\",\n indicatorPx: 40,\n icon: \"w-5 h-5\",\n text: \"text-sm\",\n connectorThickness: \"2px\",\n connectorThicknessPx: 2,\n },\n lg: {\n indicator: \"w-12 h-12\",\n indicatorPx: 48,\n icon: \"w-6 h-6\",\n text: \"text-base\",\n connectorThickness: \"4px\",\n connectorThicknessPx: 4,\n },\n};\n\n// Variant styles for the indicator\nconst getVariantStyles = (variant: StepperVariant, status: StepStatus) => {\n const baseStyles = {\n default: {\n completed: \"bg-ds-accent text-ds-on-accent shadow-md shadow-ds-accent/25\",\n current:\n \"bg-ds-accent text-ds-on-accent ring-4 ring-ds-focus/40 shadow-lg shadow-ds-accent/30\",\n upcoming: \"bg-ds-surface-3 text-ds-2\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text ring-4 ring-ds-state-error-border/35\",\n },\n glass: {\n completed:\n \"bg-ds-accent/85 text-ds-on-accent backdrop-blur-xl border border-ds-border-accent/30 shadow-lg shadow-ds-accent/20\",\n current:\n \"bg-ds-accent/90 text-ds-on-accent backdrop-blur-xl border-2 border-ds-border-accent ring-4 ring-ds-focus/30 shadow-xl shadow-ds-accent/30\",\n upcoming:\n \"bg-ds-surface-1 text-ds-2 backdrop-blur-xl border border-ds-border-2\",\n error:\n \"bg-ds-state-error-surface text-ds-state-error-text backdrop-blur-xl border border-ds-state-error-border ring-4 ring-ds-state-error-border/25\",\n },\n minimal: {\n completed: \"bg-ds-accent-subtle text-ds-1\",\n current: \"bg-ds-accent text-ds-on-accent shadow-sm\",\n upcoming: \"bg-transparent text-ds-2 border-2 border-ds-border-2\",\n error: \"bg-ds-state-error-surface text-ds-state-error-text\",\n },\n outlined: {\n completed: \"bg-transparent text-ds-1 border-2 border-ds-border-accent\",\n current:\n \"bg-ds-accent text-ds-on-accent border-2 border-ds-border-accent shadow-lg\",\n upcoming: \"bg-transparent text-ds-2 border-2 border-ds-border-2\",\n error:\n \"bg-transparent text-ds-state-error-text border-2 border-ds-state-error-border\",\n },\n };\n\n return baseStyles[variant][status];\n};\n\nconst getConnectorTrackClassName = (variant: StepperVariant) =>\n variant === \"glass\"\n ? \"bg-ds-surface-2/70 backdrop-blur-sm\"\n : \"bg-ds-surface-3\";\n\nconst getResolvedLabelPosition = (\n orientation: StepperProps[\"orientation\"],\n labelPosition: StepperLabelPosition,\n) => (orientation === \"vertical\" ? \"right\" : labelPosition);\n\n// Step Indicator Component\nconst StepIndicator = ({\n step,\n index,\n status,\n size,\n variant,\n showNumbers,\n animated,\n colors,\n}: StepIndicatorProps) => {\n const config = sizeConfig[size];\n const variantStyles = getVariantStyles(variant, status);\n\n // Custom color overrides\n const customColorStyle = colors?.[status]\n ? { backgroundColor: colors[status], borderColor: colors[status] }\n : undefined;\n\n const renderContent = () => {\n if (step.icon) {\n return <span className={config.icon}>{step.icon}</span>;\n }\n\n if (status === \"completed\") {\n return <CheckIcon className={config.icon} aria-hidden=\"true\" />;\n }\n\n if (status === \"error\") {\n return <CloseIcon className={config.icon} aria-hidden=\"true\" />;\n }\n\n if (showNumbers) {\n return <span className=\"font-semibold\">{index + 1}</span>;\n }\n\n return (\n <span\n className={mergeClassNames(\n \"rounded-full bg-current\",\n size === \"sm\" ? \"w-2 h-2\" : \"w-3 h-3\",\n )}\n />\n );\n };\n\n return (\n <motion.div\n className={mergeClassNames(\n \"rounded-full flex items-center justify-center transition-all duration-300\",\n config.indicator,\n variantStyles,\n )}\n style={customColorStyle}\n initial={animated ? { scale: 0.8, opacity: 0 } : undefined}\n animate={animated ? { scale: 1, opacity: 1 } : undefined}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n >\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={status}\n initial={animated ? { scale: 0, rotate: -180 } : undefined}\n animate={animated ? { scale: 1, rotate: 0 } : undefined}\n exit={animated ? { scale: 0, rotate: 180 } : undefined}\n transition={{ duration: 0.2 }}\n >\n {renderContent()}\n </motion.span>\n </AnimatePresence>\n </motion.div>\n );\n};\n\n// Main Stepper Component\nexport const Stepper = ({\n steps,\n currentStep,\n onStepClick,\n orientation = \"horizontal\",\n size = \"md\",\n variant = \"glass\",\n labelPosition = \"bottom\",\n direction = \"ltr\",\n optionalLabel = \"Optional\",\n showNumbers = true,\n clickable = true,\n showConnector = true,\n className,\n connectorClassName,\n stepClassName,\n showErrors = false,\n errorSteps = [],\n completedSteps,\n animated = true,\n colors,\n}: StepperProps) => {\n const isRtl = direction === \"rtl\";\n const isVertical = orientation === \"vertical\";\n const resolvedLabelPosition = getResolvedLabelPosition(\n orientation,\n labelPosition,\n );\n const isHorizontalInline =\n orientation === \"horizontal\" && resolvedLabelPosition === \"right\";\n const config = sizeConfig[size];\n const indicatorPaddingPx =\n variant === \"glass\" || variant === \"outlined\" || variant === \"minimal\"\n ? 4\n : 2;\n const indicatorShellSizePx = config.indicatorPx + indicatorPaddingPx * 2;\n const connectorInsetPx = indicatorShellSizePx / 2;\n const connectorCenterOffsetPx =\n connectorInsetPx - config.connectorThicknessPx / 2;\n\n const getStepStatus = (index: number): StepStatus => {\n if (showErrors && errorSteps.includes(index)) return \"error\";\n if (completedSteps) {\n if (completedSteps.includes(index)) return \"completed\";\n if (index === currentStep) return \"current\";\n return \"upcoming\";\n }\n if (index < currentStep) return \"completed\";\n if (index === currentStep) return \"current\";\n return \"upcoming\";\n };\n\n const handleStepClick = (index: number) => {\n if (!clickable || !onStepClick) return;\n const step = steps[index];\n if (step.disabled) return;\n\n // Allow clicking on completed or current steps\n const status = getStepStatus(index);\n if (status === \"completed\" || status === \"current\") {\n onStepClick(index);\n }\n };\n\n return (\n <div\n className={mergeClassNames(\n \"w-full relative\",\n isVertical\n ? \"flex flex-col\"\n : isHorizontalInline\n ? mergeClassNames(\n \"flex items-center\",\n isRtl && \"flex-row-reverse\",\n )\n : mergeClassNames(\n \"flex items-start justify-between\",\n isRtl && \"flex-row-reverse\",\n ),\n className,\n )}\n dir={direction}\n >\n {/* Global Background Continuous Connector */}\n {showConnector &&\n isVertical &&\n (() => {\n return (\n <div\n className={mergeClassNames(\n \"absolute rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n ...(isVertical\n ? {\n top: `${connectorInsetPx}px`,\n bottom: `${connectorInsetPx}px`,\n left: `${connectorCenterOffsetPx}px`,\n width: config.connectorThickness,\n }\n : {\n left: `${connectorInsetPx}px`,\n right: `${connectorInsetPx}px`,\n top: `${connectorCenterOffsetPx}px`,\n height: config.connectorThickness,\n }),\n }}\n >\n {/* Animated fill connector */}\n {animated ? (\n <motion.div\n className=\"absolute top-0 left-0 bg-ds-accent rounded-full\"\n initial={{ [isVertical ? \"height\" : \"width\"]: 0 }}\n animate={{\n [isVertical ? \"height\" : \"width\"]:\n `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }}\n transition={{ duration: 0.4, ease: \"easeOut\" }}\n style={{\n ...(isVertical ? { width: \"100%\" } : { height: \"100%\" }),\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className=\"absolute top-0 left-0 bg-ds-accent rounded-full\"\n style={{\n ...(isVertical\n ? {\n width: \"100%\",\n height: `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }\n : {\n height: \"100%\",\n width: `${steps.length > 1 ? (Math.min(currentStep, steps.length - 1) / (steps.length - 1)) * 100 : 0}%`,\n }),\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n );\n })()}\n\n {steps.map((step, index) => {\n const status = getStepStatus(index);\n const isLast = index === steps.length - 1;\n const isClickable = clickable && !step.disabled;\n const isConnectorCompleted = getStepStatus(index) === \"completed\";\n const textBlock = (\n <motion.div\n className={mergeClassNames(\n resolvedLabelPosition === \"right\"\n ? mergeClassNames(\n \"min-w-0\",\n isRtl ? \"text-right\" : \"text-left\",\n )\n : \"w-full px-2 text-center\",\n isVertical && \"flex-1 pb-6\",\n isVertical && isLast && \"pb-0\",\n )}\n style={isVertical ? { marginTop: \"-4px\" } : undefined}\n initial={animated ? { opacity: 0, y: 10 } : undefined}\n animate={animated ? { opacity: 1, y: 0 } : undefined}\n transition={{ delay: index * 0.1 }}\n >\n <p\n className={mergeClassNames(\n \"font-medium transition-colors duration-200\",\n config.text,\n status === \"current\"\n ? \"text-ds-1\"\n : status === \"completed\"\n ? \"text-ds-1\"\n : status === \"error\"\n ? \"text-ds-state-error-text\"\n : \"text-ds-2\",\n )}\n >\n {step.title}\n {step.optional && (\n <span\n className={mergeClassNames(\n \"font-normal text-ds-3\",\n isRtl ? \"mr-1\" : \"ml-1\",\n )}\n >\n ({optionalLabel})\n </span>\n )}\n </p>\n {step.description && (\n <p\n className={mergeClassNames(\n \"mt-0.5 text-xs text-ds-2\",\n resolvedLabelPosition === \"right\" &&\n (isRtl ? \"text-right\" : \"text-left\"),\n )}\n >\n {step.description}\n </p>\n )}\n </motion.div>\n );\n\n return (\n <Fragment key={step.id}>\n <div\n className={mergeClassNames(\n \"relative z-10 min-w-0\",\n isVertical\n ? \"flex gap-4 pb-8\"\n : isHorizontalInline\n ? \"flex items-center gap-3\"\n : \"flex flex-1 flex-col items-center text-center\",\n !isLast && isVertical && \"mb-2\",\n isVertical && isLast && \"pb-0\",\n stepClassName,\n )}\n style={\n !isVertical && !isHorizontalInline\n ? { flexBasis: 0, flexGrow: 1 }\n : undefined\n }\n >\n {!isVertical && index > 0 ? (\n <div\n className={mergeClassNames(\n \"pointer-events-none absolute z-0 rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n top: `${connectorCenterOffsetPx}px`,\n left: isRtl ? \"50%\" : 0,\n right: isRtl ? 0 : \"50%\",\n height: config.connectorThickness,\n }}\n aria-hidden=\"true\"\n >\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"left-0\" : \"right-0\",\n )}\n style={{\n left: 0,\n right: 0,\n backgroundColor: colors?.connector || colors?.completed,\n opacity:\n status === \"completed\" || status === \"current\" ? 1 : 0,\n }}\n />\n </div>\n ) : null}\n\n {!isVertical && !isHorizontalInline && !isLast ? (\n <div\n className={mergeClassNames(\n \"pointer-events-none absolute z-0 rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{\n top: `${connectorCenterOffsetPx}px`,\n left: isRtl ? 0 : \"50%\",\n right: isRtl ? \"50%\" : 0,\n height: config.connectorThickness,\n }}\n aria-hidden=\"true\"\n >\n {animated ? (\n <motion.div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n initial={{ width: 0 }}\n animate={{\n width:\n status === \"completed\" || status === \"current\"\n ? \"100%\"\n : \"0%\",\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n style={{\n width:\n status === \"completed\" || status === \"current\"\n ? \"100%\"\n : \"0%\",\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n ) : null}\n\n <button\n type=\"button\"\n onClick={() => handleStepClick(index)}\n disabled={!isClickable}\n className={mergeClassNames(\n \"relative z-10 shrink-0 rounded-full bg-ds-surface-1\",\n isClickable ? \"cursor-pointer\" : \"cursor-default\",\n resolvedLabelPosition === \"right\"\n ? \"flex items-center justify-center\"\n : \"flex items-center justify-center\",\n )}\n style={{\n padding: `${indicatorPaddingPx}px`,\n }}\n aria-current={status === \"current\" ? \"step\" : undefined}\n >\n <StepIndicator\n step={step}\n index={index}\n status={status}\n size={size}\n variant={variant}\n showNumbers={showNumbers}\n animated={animated}\n colors={colors}\n />\n </button>\n\n {textBlock}\n\n {isVertical && step.content && status === \"current\" && (\n <motion.div\n initial={{ opacity: 0, height: 0 }}\n animate={{ opacity: 1, height: \"auto\" }}\n exit={{ opacity: 0, height: 0 }}\n className=\"w-full pb-4 pl-14\"\n >\n {step.content}\n </motion.div>\n )}\n </div>\n\n {isHorizontalInline && showConnector && !isLast ? (\n <div\n className={mergeClassNames(\n \"relative mx-4 min-w-8 flex-1 shrink-0 overflow-hidden rounded-full\",\n getConnectorTrackClassName(variant),\n connectorClassName,\n )}\n style={{ height: config.connectorThickness }}\n aria-hidden=\"true\"\n >\n {animated ? (\n <motion.div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n initial={{ width: 0 }}\n animate={{\n width: isConnectorCompleted ? \"100%\" : \"0%\",\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n ) : (\n <div\n className={mergeClassNames(\n \"absolute inset-y-0 rounded-full bg-ds-accent\",\n isRtl ? \"right-0\" : \"left-0\",\n )}\n style={{\n width: isConnectorCompleted ? \"100%\" : \"0%\",\n backgroundColor: colors?.connector || colors?.completed,\n }}\n />\n )}\n </div>\n ) : null}\n </Fragment>\n );\n })}\n </div>\n );\n};\n\nStepper.displayName = \"Stepper\";\n\nexport default Stepper;\n","import { useSyncExternalStore } from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { AlertTriangleIcon, CheckIcon } from \"../../icons\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { StepperStepsProps, StepperStepsState } from \"./types\";\n\nconst DEFAULT_BREAKPOINT = 1080;\n\nfunction subscribeToMediaQuery(\n query: string,\n onStoreChange: () => void,\n): () => void {\n if (typeof window === \"undefined\") {\n return () => undefined;\n }\n\n const mediaQuery = window.matchMedia(query);\n mediaQuery.addEventListener(\"change\", onStoreChange);\n\n return () => mediaQuery.removeEventListener(\"change\", onStoreChange);\n}\n\nfunction getMediaQuerySnapshot(query: string): boolean {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n return window.matchMedia(query).matches;\n}\n\nfunction getStepColors(\n state: StepperStepsState,\n isActive: boolean,\n): {\n buttonClassName: string;\n connectorClassName: string;\n badgeClassName: string;\n} {\n if (isActive) {\n return {\n buttonClassName:\n \"border-ds-border-accent bg-ds-accent/12 text-ds-1 shadow-sm shadow-ds-accent/10\",\n connectorClassName: \"bg-ds-accent\",\n badgeClassName: \"border-ds-border-accent bg-ds-accent text-ds-on-accent\",\n };\n }\n\n if (state === \"valid\") {\n return {\n buttonClassName:\n \"border-ds-state-success-border bg-ds-state-success-surface text-ds-state-success-text shadow-sm\",\n connectorClassName: \"bg-ds-state-success\",\n badgeClassName:\n \"border-ds-state-success-border bg-ds-state-success text-ds-on-accent\",\n };\n }\n\n if (state === \"invalid\") {\n return {\n buttonClassName:\n \"border-ds-state-error-border bg-ds-state-error-surface text-ds-state-error-text\",\n connectorClassName: \"bg-ds-state-danger\",\n badgeClassName:\n \"border-ds-state-error-border bg-ds-state-danger text-ds-on-accent\",\n };\n }\n\n return {\n buttonClassName:\n \"border-ds-border-2 bg-ds-surface-1 text-ds-2 hover:border-ds-border-1 hover:bg-ds-canvas\",\n connectorClassName: \"bg-ds-border-3/70\",\n badgeClassName: \"border-ds-border-2 bg-ds-canvas text-ds-2\",\n };\n}\n\nfunction renderStepContent(\n label: string,\n icon: StepperStepsProps[\"steps\"][number][\"icon\"],\n state: StepperStepsState,\n stepNumber: number,\n badgeClassName: string,\n) {\n if (state === \"valid\") {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <CheckIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n if (state === \"invalid\") {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <AlertTriangleIcon className=\"h-5 w-5\" aria-hidden=\"true\" />\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n if (icon) {\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"shrink-0\">{icon}</span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n }\n\n return (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span\n className={mergeClassNames(\n \"flex h-6 w-6 shrink-0 items-center justify-center rounded-full border text-xs font-semibold\",\n badgeClassName,\n )}\n aria-hidden=\"true\"\n >\n {stepNumber}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {label}\n </TruncatedText>\n </span>\n );\n}\n\nexport function StepperSteps({\n steps,\n currentStep,\n onStepClick,\n stepStates = [],\n orientation = \"responsive\",\n responsiveBreakpoint = DEFAULT_BREAKPOINT,\n className,\n stepClassName,\n connectorClassName,\n}: StepperStepsProps) {\n const responsiveQuery = `(max-width: ${responsiveBreakpoint}px)`;\n const isCompact = useSyncExternalStore(\n (onStoreChange) => {\n if (orientation !== \"responsive\") {\n return () => undefined;\n }\n\n return subscribeToMediaQuery(responsiveQuery, onStoreChange);\n },\n () =>\n orientation === \"responsive\"\n ? getMediaQuerySnapshot(responsiveQuery)\n : false,\n () => false,\n );\n\n const isVertical =\n orientation === \"vertical\" || (orientation === \"responsive\" && isCompact);\n\n return (\n <div\n className={mergeClassNames(\n isVertical\n ? \"flex w-full flex-col items-start\"\n : \"flex w-full items-center\",\n className,\n )}\n >\n {steps.map((step, index) => {\n const stepNumber = index + 1;\n const state = stepStates[index] ?? \"untouched\";\n const isActive = index === currentStep;\n const isClickable = typeof onStepClick === \"function\" && !isActive;\n const colors = getStepColors(state, isActive);\n\n return (\n <div\n key={`${step.label}-${stepNumber}`}\n className={mergeClassNames(\n isVertical ? \"w-full\" : \"flex min-w-0 flex-1 items-center\",\n )}\n >\n <Button\n disabled={!isClickable}\n onClick={() => onStepClick?.(index)}\n className={mergeClassNames(\n \"relative z-10 flex min-h-11 items-center justify-center rounded-md border px-4 py-3 text-sm font-medium transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/70 focus-visible:ring-offset-2 focus-visible:ring-offset-ds-surface-1 disabled:cursor-default disabled:opacity-100\",\n isVertical ? \"w-full\" : \"w-full min-w-0\",\n colors.buttonClassName,\n stepClassName,\n )}\n aria-current={isActive ? \"step\" : undefined}\n aria-invalid={state === \"invalid\" ? true : undefined}\n >\n {renderStepContent(\n step.label,\n step.icon,\n state,\n stepNumber,\n colors.badgeClassName,\n )}\n </Button>\n\n {index < steps.length - 1 ? (\n isVertical ? (\n <div\n className={mergeClassNames(\n \"mx-auto my-2 h-8 w-px rounded-full\",\n colors.connectorClassName,\n connectorClassName,\n )}\n aria-hidden=\"true\"\n />\n ) : (\n <div\n className={mergeClassNames(\n \"mx-3 h-px min-w-6 flex-1 rounded-full\",\n colors.connectorClassName,\n connectorClassName,\n )}\n aria-hidden=\"true\"\n />\n )\n ) : null}\n </div>\n );\n })}\n </div>\n );\n}\n\nexport default StepperSteps;\n","import {\n Children,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\nimport { Button } from \"../../forms/button\";\nimport { CheckIcon } from \"../../icons\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type {\n StepperWizardIndicatorRenderProps,\n StepperWizardIndicatorStatus,\n StepperWizardProps,\n StepperWizardStepProps,\n} from \"./types\";\n\nconst useIsomorphicLayoutEffect =\n typeof window === \"undefined\" ? useEffect : useLayoutEffect;\n\nfunction clampStep(step: number, totalSteps: number): number {\n return Math.min(Math.max(step, 0), totalSteps);\n}\n\nfunction getIndicatorStatus(\n stepIndex: number,\n currentStep: number,\n): StepperWizardIndicatorStatus {\n if (stepIndex === currentStep) {\n return \"active\";\n }\n\n if (stepIndex < currentStep) {\n return \"complete\";\n }\n\n return \"inactive\";\n}\n\nexport function StepperWizard({\n children,\n initialStep = 0,\n currentStep: controlledStep,\n onStepChange,\n onFinalStepCompleted,\n stepCircleContainerClassName,\n stepContainerClassName,\n contentClassName,\n footerClassName,\n backButtonProps,\n nextButtonProps,\n backButtonText = \"Back\",\n nextButtonText = \"Continue\",\n completeButtonText = \"Complete\",\n disableStepIndicators = false,\n renderStepIndicator,\n className,\n}: StepperWizardProps) {\n const stepsArray = Children.toArray(children);\n const totalSteps = stepsArray.length;\n const [internalStep, setInternalStep] = useState(() =>\n clampStep(initialStep, totalSteps),\n );\n const [direction, setDirection] = useState(0);\n\n const currentStep = clampStep(controlledStep ?? internalStep, totalSteps);\n const isCompleted = currentStep >= totalSteps;\n const isLastStep = totalSteps > 0 && currentStep === totalSteps - 1;\n\n const commitStep = useCallback(\n (nextStep: number) => {\n const clampedStep = clampStep(nextStep, totalSteps);\n\n if (controlledStep === undefined) {\n setInternalStep(clampedStep);\n }\n\n if (clampedStep >= totalSteps) {\n onFinalStepCompleted?.();\n return;\n }\n\n onStepChange?.(clampedStep);\n },\n [controlledStep, onFinalStepCompleted, onStepChange, totalSteps],\n );\n\n if (totalSteps === 0) {\n return null;\n }\n\n const handleBack = () => {\n if (currentStep > 0) {\n setDirection(-1);\n commitStep(currentStep - 1);\n }\n };\n\n const handleNext = () => {\n if (!isLastStep) {\n setDirection(1);\n commitStep(currentStep + 1);\n }\n };\n\n const handleComplete = () => {\n setDirection(1);\n commitStep(totalSteps);\n };\n\n const navigateToStep = (stepIndex: number) => {\n if (stepIndex === currentStep || disableStepIndicators) {\n return;\n }\n\n setDirection(stepIndex > currentStep ? 1 : -1);\n commitStep(stepIndex);\n };\n\n return (\n <div\n className={mergeClassNames(\n \"flex min-h-full w-full flex-1 items-center justify-center p-4\",\n className,\n )}\n >\n <div\n className={mergeClassNames(\n \"mx-auto w-full max-w-3xl rounded-3xl border border-ds-border-2 bg-ds-canvas shadow-2\",\n stepCircleContainerClassName,\n )}\n >\n <div\n className={mergeClassNames(\n \"flex w-full items-center gap-3 border-b border-ds-border-2 px-6 py-6 sm:px-8\",\n stepContainerClassName,\n )}\n >\n {stepsArray.map((_, index) => {\n const status = getIndicatorStatus(index, currentStep);\n const isClickable = !disableStepIndicators && index !== currentStep;\n const indicatorProps: StepperWizardIndicatorRenderProps = {\n stepIndex: index,\n stepNumber: index + 1,\n currentStep,\n status,\n isClickable,\n onStepClick: navigateToStep,\n };\n\n return (\n <div\n key={`wizard-step-${index + 1}`}\n className=\"flex flex-1 items-center\"\n >\n {renderStepIndicator ? (\n renderStepIndicator(indicatorProps)\n ) : (\n <WizardStepIndicator {...indicatorProps} />\n )}\n {index < totalSteps - 1 ? (\n <WizardStepConnector isComplete={currentStep > index} />\n ) : null}\n </div>\n );\n })}\n </div>\n\n <WizardStepContentWrapper\n isCompleted={isCompleted}\n currentStep={currentStep}\n direction={direction}\n className={mergeClassNames(\"px-6 py-6 sm:px-8\", contentClassName)}\n >\n {stepsArray[currentStep]}\n </WizardStepContentWrapper>\n\n {!isCompleted ? (\n <div\n className={mergeClassNames(\n \"px-6 pb-6 sm:px-8 sm:pb-8\",\n footerClassName,\n )}\n >\n <div\n className={mergeClassNames(\n \"mt-6 flex gap-3\",\n currentStep > 0 ? \"justify-between\" : \"justify-end\",\n )}\n >\n {currentStep > 0 ? (\n <Button\n onClick={handleBack}\n className=\"rounded-md border-transparent bg-transparent px-3 py-2 text-sm font-medium text-ds-2 shadow-none hover:bg-ds-surface-1 hover:text-ds-1\"\n {...backButtonProps}\n >\n {backButtonText}\n </Button>\n ) : null}\n <Button\n onClick={isLastStep ? handleComplete : handleNext}\n primary\n className=\"rounded-full px-4 py-2 text-sm font-semibold shadow-2\"\n {...nextButtonProps}\n >\n {isLastStep ? completeButtonText : nextButtonText}\n </Button>\n </div>\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\ninterface WizardStepContentWrapperProps {\n isCompleted: boolean;\n currentStep: number;\n direction: number;\n children: React.ReactNode;\n className?: string;\n}\n\nfunction WizardStepContentWrapper({\n isCompleted,\n currentStep,\n direction,\n children,\n className,\n}: WizardStepContentWrapperProps) {\n const [parentHeight, setParentHeight] = useState(0);\n const handleHeightReady = useCallback((height: number) => {\n setParentHeight(height);\n }, []);\n\n return (\n <motion.div\n style={{ position: \"relative\", overflow: \"hidden\" }}\n animate={{ height: isCompleted ? 0 : parentHeight }}\n transition={{ type: \"spring\", duration: 0.4 }}\n className={className}\n >\n <AnimatePresence initial={false} mode=\"wait\" custom={direction}>\n {!isCompleted ? (\n <WizardSlideTransition\n key={currentStep}\n direction={direction}\n onHeightReady={handleHeightReady}\n >\n {children}\n </WizardSlideTransition>\n ) : null}\n </AnimatePresence>\n </motion.div>\n );\n}\n\ninterface WizardSlideTransitionProps {\n children: React.ReactNode;\n direction: number;\n onHeightReady: (height: number) => void;\n}\n\nfunction WizardSlideTransition({\n children,\n direction,\n onHeightReady,\n}: WizardSlideTransitionProps) {\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n if (containerRef.current) {\n onHeightReady(containerRef.current.offsetHeight);\n }\n }, [children, onHeightReady]);\n\n return (\n <motion.div\n ref={containerRef}\n custom={direction}\n variants={wizardStepVariants}\n initial=\"enter\"\n animate=\"center\"\n exit=\"exit\"\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n style={{ position: \"absolute\", inset: 0 }}\n >\n {children}\n </motion.div>\n );\n}\n\nconst wizardStepVariants = {\n enter: (direction: number) => ({\n x: direction >= 0 ? \"-100%\" : \"100%\",\n opacity: 0,\n }),\n center: {\n x: \"0%\",\n opacity: 1,\n },\n exit: (direction: number) => ({\n x: direction >= 0 ? \"40%\" : \"-40%\",\n opacity: 0,\n }),\n};\n\nexport function StepperWizardStep({\n children,\n className,\n}: StepperWizardStepProps) {\n return (\n <div className={mergeClassNames(\"space-y-4\", className)}>{children}</div>\n );\n}\n\nfunction WizardStepIndicator({\n stepIndex,\n stepNumber,\n status,\n isClickable,\n onStepClick,\n}: StepperWizardIndicatorRenderProps) {\n return (\n <motion.button\n type=\"button\"\n onClick={() => onStepClick(stepIndex)}\n className={mergeClassNames(\n \"relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full border text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/70 focus-visible:ring-offset-2 focus-visible:ring-offset-ds-surface-1\",\n isClickable ? \"cursor-pointer\" : \"cursor-default\",\n )}\n animate={status}\n initial={false}\n disabled={!isClickable}\n aria-current={status === \"active\" ? \"step\" : undefined}\n >\n <motion.span\n variants={{\n inactive: {\n scale: 1,\n backgroundColor: \"var(--ds-color-bg-surface)\",\n borderColor: \"var(--ds-color-border)\",\n color: \"var(--ds-color-fg-muted)\",\n },\n active: {\n scale: 1,\n backgroundColor: \"var(--ds-color-accent)\",\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-fg-on-accent)\",\n },\n complete: {\n scale: 1,\n backgroundColor: \"var(--ds-color-accent)\",\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-fg-on-accent)\",\n },\n }}\n transition={{ duration: 0.25 }}\n className=\"flex h-full w-full items-center justify-center rounded-full\"\n >\n {status === \"complete\" ? (\n <AnimatedWizardCheckIcon className=\"h-4 w-4\" />\n ) : status === \"active\" ? (\n <span className=\"h-2.5 w-2.5 rounded-full bg-current\" />\n ) : (\n <span>{stepNumber}</span>\n )}\n </motion.span>\n </motion.button>\n );\n}\n\nfunction WizardStepConnector({ isComplete }: { isComplete: boolean }) {\n return (\n <div className=\"relative mx-2 h-0.5 flex-1 overflow-hidden rounded-full bg-border\">\n <motion.div\n className=\"absolute inset-y-0 left-0 rounded-full bg-ds-accent\"\n initial={false}\n animate={isComplete ? \"complete\" : \"incomplete\"}\n variants={{\n incomplete: { width: 0 },\n complete: { width: \"100%\" },\n }}\n transition={{ duration: 0.35, ease: \"easeOut\" }}\n />\n </div>\n );\n}\n\nfunction AnimatedWizardCheckIcon({ className }: { className?: string }) {\n return (\n <span\n className={mergeClassNames(\"flex items-center justify-center\", className)}\n >\n <CheckIcon className=\"h-full w-full\" aria-hidden=\"true\" />\n </span>\n );\n}\n\nexport default StepperWizard;\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- require("./chunk-B_GkZjkl.cjs");
2
- const require_theme = require("./theme-D6B-FaoE.cjs");
3
- const require_utils = require("./utils-LRbEQHYs.cjs");
4
- const require_button = require("./button-C4MXPxsC.cjs");
1
+ const require_theme = require("./theme-BzTaXYZ8.cjs");
2
+ const require_utils = require("./utils-CoA0q63n.cjs");
3
+ const require_button = require("./button-D2ZYmVda.cjs");
5
4
  let react_jsx_runtime = require("react/jsx-runtime");
6
5
  //#region src/components/effects/sun-to-moon-button/ThemeSwitcherButtons.tsx
7
6
  var BRAND_SWATCHES = {
@@ -140,4 +139,4 @@ Object.defineProperty(exports, "ThemeSwitcherButtons", {
140
139
  }
141
140
  });
142
141
 
143
- //# sourceMappingURL=sun-to-moon-button-PwgTPsTW.cjs.map
142
+ //# sourceMappingURL=sun-to-moon-button-BzYGFhrg.cjs.map