erp-pro-ui 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/dist/accordion.cjs +1 -1
  2. package/dist/accordion.mjs +1 -1
  3. package/dist/alert.cjs +1 -1
  4. package/dist/alert.mjs +1 -1
  5. package/dist/animated-content.cjs +1 -1
  6. package/dist/animated-content.mjs +1 -1
  7. package/dist/ascii-text.cjs +1 -1
  8. package/dist/ascii-text.mjs +1 -1
  9. package/dist/background-gradient-animation.cjs +1 -1
  10. package/dist/background-gradient-animation.mjs +1 -1
  11. package/dist/button-hover-border-gradient.cjs +1 -1
  12. package/dist/button-hover-border-gradient.mjs +1 -1
  13. package/dist/button.cjs +1 -1
  14. package/dist/button.mjs +1 -1
  15. package/dist/calendar.cjs +1 -1
  16. package/dist/calendar.mjs +1 -1
  17. package/dist/card.cjs +1 -1
  18. package/dist/card.mjs +1 -1
  19. package/dist/carousel.cjs +1 -1
  20. package/dist/carousel.mjs +1 -1
  21. package/dist/catalog.cjs +14 -0
  22. package/dist/catalog.cjs.map +1 -1
  23. package/dist/catalog.d.ts +25 -1
  24. package/dist/catalog.d.ts.map +1 -1
  25. package/dist/catalog.mjs +14 -0
  26. package/dist/catalog.mjs.map +1 -1
  27. package/dist/charts.cjs +1 -1
  28. package/dist/charts.mjs +1 -1
  29. package/dist/checkbox.cjs +1 -1
  30. package/dist/checkbox.mjs +1 -1
  31. package/dist/chip.cjs +1 -1
  32. package/dist/chip.mjs +1 -1
  33. package/dist/chroma-grid.cjs +1 -1
  34. package/dist/chroma-grid.mjs +1 -1
  35. package/dist/chunks/{drawer-D07dGN6R.cjs → Drawer-D72Xi2Gq.cjs} +2 -2
  36. package/dist/chunks/{drawer-D07dGN6R.cjs.map → Drawer-D72Xi2Gq.cjs.map} +1 -1
  37. package/dist/chunks/{drawer-DaoAXL-w.mjs → Drawer-Y0_sJni5.mjs} +2 -2
  38. package/dist/chunks/{drawer-DaoAXL-w.mjs.map → Drawer-Y0_sJni5.mjs.map} +1 -1
  39. package/dist/chunks/{DropdownMenu-BtTOri-A.mjs → DropdownMenu-BQ4WlaGp.mjs} +1 -1
  40. package/dist/chunks/{DropdownMenu-BtTOri-A.mjs.map → DropdownMenu-BQ4WlaGp.mjs.map} +1 -1
  41. package/dist/chunks/{DropdownMenu-BDrNYO-D.cjs → DropdownMenu-yh04burS.cjs} +1 -1
  42. package/dist/chunks/{DropdownMenu-BDrNYO-D.cjs.map → DropdownMenu-yh04burS.cjs.map} +1 -1
  43. package/dist/chunks/EllipsisVerticalIcon-BJw3MNkg.cjs +51 -0
  44. package/dist/chunks/EllipsisVerticalIcon-BJw3MNkg.cjs.map +1 -0
  45. package/dist/chunks/EllipsisVerticalIcon-C2b2KMfE.mjs +45 -0
  46. package/dist/chunks/EllipsisVerticalIcon-C2b2KMfE.mjs.map +1 -0
  47. package/dist/chunks/{HoverBorderGradient-NbdXeLgC.mjs → HoverBorderGradient-DEtm3owk.mjs} +1 -1
  48. package/dist/chunks/{HoverBorderGradient-NbdXeLgC.mjs.map → HoverBorderGradient-DEtm3owk.mjs.map} +1 -1
  49. package/dist/chunks/{HoverBorderGradient-9pfvBoHR.cjs → HoverBorderGradient-DMMyr2L3.cjs} +1 -1
  50. package/dist/chunks/{HoverBorderGradient-9pfvBoHR.cjs.map → HoverBorderGradient-DMMyr2L3.cjs.map} +1 -1
  51. package/dist/chunks/{SunToMoonButton-BkEfkElJ.mjs → SunToMoonButton-BOKHzC1H.mjs} +1 -1
  52. package/dist/chunks/{SunToMoonButton-BkEfkElJ.mjs.map → SunToMoonButton-BOKHzC1H.mjs.map} +1 -1
  53. package/dist/chunks/{SunToMoonButton-jS4BJD9q.cjs → SunToMoonButton-gX4Kk_5B.cjs} +1 -1
  54. package/dist/chunks/{SunToMoonButton-jS4BJD9q.cjs.map → SunToMoonButton-gX4Kk_5B.cjs.map} +1 -1
  55. package/dist/chunks/{Tooltip-DK3B879v.mjs → Tooltip-LbOKP__2.mjs} +10 -7
  56. package/dist/chunks/Tooltip-LbOKP__2.mjs.map +1 -0
  57. package/dist/chunks/{Tooltip-DD30yj3A.cjs → Tooltip-nnaiqJTT.cjs} +10 -7
  58. package/dist/chunks/Tooltip-nnaiqJTT.cjs.map +1 -0
  59. package/dist/chunks/{accordion-CmB6EidC.cjs → accordion-Bj3Sj0mC.cjs} +2 -2
  60. package/dist/chunks/{accordion-CmB6EidC.cjs.map → accordion-Bj3Sj0mC.cjs.map} +1 -1
  61. package/dist/chunks/{accordion-6zxJUYXr.mjs → accordion-CLcjNX_X.mjs} +2 -2
  62. package/dist/chunks/{accordion-6zxJUYXr.mjs.map → accordion-CLcjNX_X.mjs.map} +1 -1
  63. package/dist/chunks/{alert-C5KEeQqh.cjs → alert-BBA4Sh4e.cjs} +2 -2
  64. package/dist/chunks/{alert-C5KEeQqh.cjs.map → alert-BBA4Sh4e.cjs.map} +1 -1
  65. package/dist/chunks/{alert-XVmYJgds.mjs → alert-oUz79MGc.mjs} +2 -2
  66. package/dist/chunks/{alert-XVmYJgds.mjs.map → alert-oUz79MGc.mjs.map} +1 -1
  67. package/dist/chunks/{animated-content-CLsFnjgr.cjs → animated-content-B3wbiWQI.cjs} +1 -1
  68. package/dist/chunks/{animated-content-CLsFnjgr.cjs.map → animated-content-B3wbiWQI.cjs.map} +1 -1
  69. package/dist/chunks/{animated-content-bK6xp-vc.mjs → animated-content-CiNJLgbq.mjs} +1 -1
  70. package/dist/chunks/{animated-content-bK6xp-vc.mjs.map → animated-content-CiNJLgbq.mjs.map} +1 -1
  71. package/dist/chunks/{ascii-text-Bdy4C5rU.mjs → ascii-text-C6JegLhP.mjs} +1 -1
  72. package/dist/chunks/{ascii-text-Bdy4C5rU.mjs.map → ascii-text-C6JegLhP.mjs.map} +1 -1
  73. package/dist/chunks/{ascii-text-BFnpVur6.cjs → ascii-text-KwVE41Hw.cjs} +1 -1
  74. package/dist/chunks/{ascii-text-BFnpVur6.cjs.map → ascii-text-KwVE41Hw.cjs.map} +1 -1
  75. package/dist/chunks/{background-gradient-animation-CiNdmA61.cjs → background-gradient-animation-1LZY3DYT.cjs} +1 -1
  76. package/dist/chunks/{background-gradient-animation-CiNdmA61.cjs.map → background-gradient-animation-1LZY3DYT.cjs.map} +1 -1
  77. package/dist/chunks/{background-gradient-animation-BR9wx6Z8.mjs → background-gradient-animation-CTc2ZR74.mjs} +1 -1
  78. package/dist/chunks/{background-gradient-animation-BR9wx6Z8.mjs.map → background-gradient-animation-CTc2ZR74.mjs.map} +1 -1
  79. package/dist/chunks/{button-A6UTvrOu.mjs → button-IDShmQqA.mjs} +3 -2
  80. package/dist/chunks/button-IDShmQqA.mjs.map +1 -0
  81. package/dist/chunks/{button-hover-border-gradient-DnFvjNNw.mjs → button-hover-border-gradient-B2ebbDek.mjs} +2 -2
  82. package/dist/chunks/{button-hover-border-gradient-DnFvjNNw.mjs.map → button-hover-border-gradient-B2ebbDek.mjs.map} +1 -1
  83. package/dist/chunks/{button-hover-border-gradient-ssmwU5-U.cjs → button-hover-border-gradient-DGZqd8je.cjs} +2 -2
  84. package/dist/chunks/{button-hover-border-gradient-ssmwU5-U.cjs.map → button-hover-border-gradient-DGZqd8je.cjs.map} +1 -1
  85. package/dist/chunks/{button-C4MXPxsC.cjs → button-uD87K76W.cjs} +3 -2
  86. package/dist/chunks/button-uD87K76W.cjs.map +1 -0
  87. package/dist/chunks/{calendar-CQJgQ5H_.cjs → calendar-DCkikZYb.cjs} +2 -2
  88. package/dist/chunks/{calendar-CQJgQ5H_.cjs.map → calendar-DCkikZYb.cjs.map} +1 -1
  89. package/dist/chunks/{calendar-5XzPqKbE.mjs → calendar-FxAmm_ao.mjs} +2 -2
  90. package/dist/chunks/{calendar-5XzPqKbE.mjs.map → calendar-FxAmm_ao.mjs.map} +1 -1
  91. package/dist/chunks/{card-RrT68nvu.cjs → card-Cuud0jIt.cjs} +1 -1
  92. package/dist/chunks/{card-RrT68nvu.cjs.map → card-Cuud0jIt.cjs.map} +1 -1
  93. package/dist/chunks/{card-BId1_zHw.mjs → card-DNeC6jqk.mjs} +1 -1
  94. package/dist/chunks/{card-BId1_zHw.mjs.map → card-DNeC6jqk.mjs.map} +1 -1
  95. package/dist/chunks/{carousel-Dd4rp-jr.mjs → carousel-Dpe5QLJK.mjs} +2 -2
  96. package/dist/chunks/{carousel-Dd4rp-jr.mjs.map → carousel-Dpe5QLJK.mjs.map} +1 -1
  97. package/dist/chunks/{carousel-Cv0m1Pp5.cjs → carousel-xHkrV_pt.cjs} +2 -2
  98. package/dist/chunks/{carousel-Cv0m1Pp5.cjs.map → carousel-xHkrV_pt.cjs.map} +1 -1
  99. package/dist/chunks/chartStyles-BADmRKZo.cjs +108 -0
  100. package/dist/chunks/chartStyles-BADmRKZo.cjs.map +1 -0
  101. package/dist/chunks/chartStyles-DPXgYmGn.mjs +55 -0
  102. package/dist/chunks/chartStyles-DPXgYmGn.mjs.map +1 -0
  103. package/dist/chunks/{charts-DkVu0rFc.mjs → charts-C-KQ3Nk5.mjs} +3 -54
  104. package/dist/chunks/charts-C-KQ3Nk5.mjs.map +1 -0
  105. package/dist/chunks/{charts-BmIV-mJy.cjs → charts-COx3IbI2.cjs} +42 -93
  106. package/dist/chunks/charts-COx3IbI2.cjs.map +1 -0
  107. package/dist/chunks/{checkbox-D8ivRZ1x.cjs → checkbox-CDknzh89.cjs} +1 -1
  108. package/dist/chunks/{checkbox-D8ivRZ1x.cjs.map → checkbox-CDknzh89.cjs.map} +1 -1
  109. package/dist/chunks/{checkbox-3aB7XC9_.mjs → checkbox-Y04NlzB8.mjs} +1 -1
  110. package/dist/chunks/{checkbox-3aB7XC9_.mjs.map → checkbox-Y04NlzB8.mjs.map} +1 -1
  111. package/dist/chunks/{chip-CqcdcSs2.mjs → chip-B3j6R6sO.mjs} +3 -3
  112. package/dist/chunks/{chip-CqcdcSs2.mjs.map → chip-B3j6R6sO.mjs.map} +1 -1
  113. package/dist/chunks/{chip-B0YzBwkz.cjs → chip-sfQlzrbo.cjs} +3 -3
  114. package/dist/chunks/{chip-B0YzBwkz.cjs.map → chip-sfQlzrbo.cjs.map} +1 -1
  115. package/dist/chunks/{chroma-grid-opB2DBtS.mjs → chroma-grid-BHS9qAn_.mjs} +1 -1
  116. package/dist/chunks/{chroma-grid-opB2DBtS.mjs.map → chroma-grid-BHS9qAn_.mjs.map} +1 -1
  117. package/dist/chunks/{chroma-grid-DcZ9f4Ui.cjs → chroma-grid-Bp55pKEm.cjs} +1 -1
  118. package/dist/chunks/{chroma-grid-DcZ9f4Ui.cjs.map → chroma-grid-Bp55pKEm.cjs.map} +1 -1
  119. package/dist/chunks/{color-palette-C3lesasJ.mjs → color-palette-D9Qlw2Cx.mjs} +1 -1
  120. package/dist/chunks/{color-palette-C3lesasJ.mjs.map → color-palette-D9Qlw2Cx.mjs.map} +1 -1
  121. package/dist/chunks/{color-palette-pLh6En3n.cjs → color-palette-Duud5Iqq.cjs} +1 -1
  122. package/dist/chunks/{color-palette-pLh6En3n.cjs.map → color-palette-Duud5Iqq.cjs.map} +1 -1
  123. package/dist/chunks/{combobox-CtNrGmuR.cjs → combobox-C3a2iogC.cjs} +4 -4
  124. package/dist/chunks/{combobox-CtNrGmuR.cjs.map → combobox-C3a2iogC.cjs.map} +1 -1
  125. package/dist/chunks/{combobox-B6yk5U82.mjs → combobox-neBItbtz.mjs} +4 -4
  126. package/dist/chunks/{combobox-B6yk5U82.mjs.map → combobox-neBItbtz.mjs.map} +1 -1
  127. package/dist/chunks/dashboard-cards-BnPt0gDW.mjs +2428 -0
  128. package/dist/chunks/dashboard-cards-BnPt0gDW.mjs.map +1 -0
  129. package/dist/chunks/dashboard-cards-DNWJPKRu.cjs +2524 -0
  130. package/dist/chunks/dashboard-cards-DNWJPKRu.cjs.map +1 -0
  131. package/dist/chunks/{data-table-fAEuevPn.cjs → data-table-BZEiSZI2.cjs} +48 -36
  132. package/dist/chunks/data-table-BZEiSZI2.cjs.map +1 -0
  133. package/dist/chunks/{data-table-Dtf6lKpp.mjs → data-table-EfGKkerd.mjs} +47 -35
  134. package/dist/chunks/data-table-EfGKkerd.mjs.map +1 -0
  135. package/dist/chunks/{date-picker-BmQ0rgwH.mjs → date-picker-3IDSmb9Z.mjs} +3 -3
  136. package/dist/chunks/{date-picker-BmQ0rgwH.mjs.map → date-picker-3IDSmb9Z.mjs.map} +1 -1
  137. package/dist/chunks/{date-picker-qpUZMtZC.cjs → date-picker-_EVYpGga.cjs} +3 -3
  138. package/dist/chunks/{date-picker-qpUZMtZC.cjs.map → date-picker-_EVYpGga.cjs.map} +1 -1
  139. package/dist/chunks/{dialog-DSyq6MS3.mjs → dialog-B60BjJz0.mjs} +3 -3
  140. package/dist/chunks/{dialog-DSyq6MS3.mjs.map → dialog-B60BjJz0.mjs.map} +1 -1
  141. package/dist/chunks/{dialog-J2ZTSTpL.cjs → dialog-i9LdkXmF.cjs} +3 -3
  142. package/dist/chunks/{dialog-J2ZTSTpL.cjs.map → dialog-i9LdkXmF.cjs.map} +1 -1
  143. package/dist/chunks/event-calendar-BbFOUDov.mjs +1191 -0
  144. package/dist/chunks/event-calendar-BbFOUDov.mjs.map +1 -0
  145. package/dist/chunks/event-calendar-Bljd_7PI.cjs +1209 -0
  146. package/dist/chunks/event-calendar-Bljd_7PI.cjs.map +1 -0
  147. package/dist/chunks/{form-CtZ6U-_B.mjs → form-CDc9UM3r.mjs} +1 -1
  148. package/dist/chunks/{form-CtZ6U-_B.mjs.map → form-CDc9UM3r.mjs.map} +1 -1
  149. package/dist/chunks/{form-X6Vyaavl.cjs → form-DGwdlSW2.cjs} +1 -1
  150. package/dist/chunks/{form-X6Vyaavl.cjs.map → form-DGwdlSW2.cjs.map} +1 -1
  151. package/dist/chunks/{gradual-blur-C6NOnjTw.cjs → gradual-blur-BNYVlqb1.cjs} +1 -1
  152. package/dist/chunks/{gradual-blur-C6NOnjTw.cjs.map → gradual-blur-BNYVlqb1.cjs.map} +1 -1
  153. package/dist/chunks/{gradual-blur-DXfxpCdB.mjs → gradual-blur-Bw2KNmXb.mjs} +1 -1
  154. package/dist/chunks/{gradual-blur-DXfxpCdB.mjs.map → gradual-blur-Bw2KNmXb.mjs.map} +1 -1
  155. package/dist/chunks/{hover-card--rplmsA_.cjs → hover-card-Dp6Y2h2J.cjs} +1 -1
  156. package/dist/chunks/{hover-card--rplmsA_.cjs.map → hover-card-Dp6Y2h2J.cjs.map} +1 -1
  157. package/dist/chunks/{hover-card-C88rU-nW.mjs → hover-card-G66SUyjq.mjs} +1 -1
  158. package/dist/chunks/{hover-card-C88rU-nW.mjs.map → hover-card-G66SUyjq.mjs.map} +1 -1
  159. package/dist/chunks/{icons-bx3nrxNv.mjs → icons-JzMKLygv.mjs} +2 -43
  160. package/dist/chunks/icons-JzMKLygv.mjs.map +1 -0
  161. package/dist/chunks/{icons-CRanVZB1.cjs → icons-ub9iu-JG.cjs} +1 -48
  162. package/dist/chunks/icons-ub9iu-JG.cjs.map +1 -0
  163. package/dist/chunks/{input-Bqo9Q5zF.mjs → input-CRc3MKb_.mjs} +3 -3
  164. package/dist/chunks/{input-Bqo9Q5zF.mjs.map → input-CRc3MKb_.mjs.map} +1 -1
  165. package/dist/chunks/{input-DkCPyWXi.cjs → input-DMTwz27q.cjs} +3 -3
  166. package/dist/chunks/{input-DkCPyWXi.cjs.map → input-DMTwz27q.cjs.map} +1 -1
  167. package/dist/chunks/{label-BKzqfAAq.cjs → label-B5Ugq0Nk.cjs} +1 -1
  168. package/dist/chunks/{label-BKzqfAAq.cjs.map → label-B5Ugq0Nk.cjs.map} +1 -1
  169. package/dist/chunks/{label-Drxg0cG2.mjs → label-Bc_r54NU.mjs} +1 -1
  170. package/dist/chunks/{label-Drxg0cG2.mjs.map → label-Bc_r54NU.mjs.map} +1 -1
  171. package/dist/chunks/{loading-BiM4mKh6.cjs → loading-DZKJc3e7.cjs} +2 -2
  172. package/dist/chunks/{loading-BiM4mKh6.cjs.map → loading-DZKJc3e7.cjs.map} +1 -1
  173. package/dist/chunks/{loading-Dtosnb4A.mjs → loading-ll2L6lc7.mjs} +2 -2
  174. package/dist/chunks/{loading-Dtosnb4A.mjs.map → loading-ll2L6lc7.mjs.map} +1 -1
  175. package/dist/chunks/{multi-select-combobox-C0DoDzxQ.cjs → multi-select-combobox-CFJGq1hn.cjs} +3 -3
  176. package/dist/chunks/{multi-select-combobox-C0DoDzxQ.cjs.map → multi-select-combobox-CFJGq1hn.cjs.map} +1 -1
  177. package/dist/chunks/{multi-select-combobox-Do23ZfOQ.mjs → multi-select-combobox-C_8sxaiL.mjs} +3 -3
  178. package/dist/chunks/{multi-select-combobox-Do23ZfOQ.mjs.map → multi-select-combobox-C_8sxaiL.mjs.map} +1 -1
  179. package/dist/chunks/{otp-input-CkhV-sGl.cjs → otp-input-B5-tuc0q.cjs} +1 -1
  180. package/dist/chunks/{otp-input-CkhV-sGl.cjs.map → otp-input-B5-tuc0q.cjs.map} +1 -1
  181. package/dist/chunks/{otp-input-JOysxKfD.mjs → otp-input-BpcTJOmU.mjs} +1 -1
  182. package/dist/chunks/{otp-input-JOysxKfD.mjs.map → otp-input-BpcTJOmU.mjs.map} +1 -1
  183. package/dist/chunks/{overlay-BzkUmjQ-.mjs → overlay-CG1dMYtO.mjs} +1 -1
  184. package/dist/chunks/{overlay-BzkUmjQ-.mjs.map → overlay-CG1dMYtO.mjs.map} +1 -1
  185. package/dist/chunks/{overlay-DNnZywyR.cjs → overlay-DzE_GyYf.cjs} +1 -1
  186. package/dist/chunks/{overlay-DNnZywyR.cjs.map → overlay-DzE_GyYf.cjs.map} +1 -1
  187. package/dist/chunks/{password-strength-meter-BsvqQBAg.mjs → password-strength-meter-CH6uQAuK.mjs} +2 -2
  188. package/dist/chunks/{password-strength-meter-BsvqQBAg.mjs.map → password-strength-meter-CH6uQAuK.mjs.map} +1 -1
  189. package/dist/chunks/{password-strength-meter-DCi_BP7e.cjs → password-strength-meter-_o1T1HLO.cjs} +2 -2
  190. package/dist/chunks/{password-strength-meter-DCi_BP7e.cjs.map → password-strength-meter-_o1T1HLO.cjs.map} +1 -1
  191. package/dist/chunks/{progress-bar-DQ5ZKk2Y.mjs → progress-bar-BAvRSW1b.mjs} +1 -1
  192. package/dist/chunks/{progress-bar-DQ5ZKk2Y.mjs.map → progress-bar-BAvRSW1b.mjs.map} +1 -1
  193. package/dist/chunks/{progress-bar-CYaBO_lS.cjs → progress-bar-FfdFVvTT.cjs} +1 -1
  194. package/dist/chunks/{progress-bar-CYaBO_lS.cjs.map → progress-bar-FfdFVvTT.cjs.map} +1 -1
  195. package/dist/chunks/{radio-CuiM_gDv.mjs → radio-BMOnxnUS.mjs} +1 -1
  196. package/dist/chunks/{radio-CuiM_gDv.mjs.map → radio-BMOnxnUS.mjs.map} +1 -1
  197. package/dist/chunks/{radio-zx9xEW_C.cjs → radio-wagafWwx.cjs} +1 -1
  198. package/dist/chunks/{radio-zx9xEW_C.cjs.map → radio-wagafWwx.cjs.map} +1 -1
  199. package/dist/chunks/{select-CUaSNR09.mjs → select--DeSgPdn.mjs} +4 -4
  200. package/dist/chunks/{select-CUaSNR09.mjs.map → select--DeSgPdn.mjs.map} +1 -1
  201. package/dist/chunks/{select-bZ9WqLOc.cjs → select-zFFyNmlY.cjs} +4 -4
  202. package/dist/chunks/{select-bZ9WqLOc.cjs.map → select-zFFyNmlY.cjs.map} +1 -1
  203. package/dist/chunks/{sidebar-3i4mGE6T.cjs → sidebar-Cq7UbKJT.cjs} +6 -6
  204. package/dist/chunks/{sidebar-3i4mGE6T.cjs.map → sidebar-Cq7UbKJT.cjs.map} +1 -1
  205. package/dist/chunks/{sidebar-Dhf_Arae.mjs → sidebar-oemmRzCL.mjs} +6 -6
  206. package/dist/chunks/{sidebar-Dhf_Arae.mjs.map → sidebar-oemmRzCL.mjs.map} +1 -1
  207. package/dist/chunks/{skeleton-nH1eAN96.mjs → skeleton-BsDMlWZG.mjs} +1 -1
  208. package/dist/chunks/{skeleton-nH1eAN96.mjs.map → skeleton-BsDMlWZG.mjs.map} +1 -1
  209. package/dist/chunks/{skeleton-DCBGLNAZ.cjs → skeleton-DWvVc17T.cjs} +1 -1
  210. package/dist/chunks/{skeleton-DCBGLNAZ.cjs.map → skeleton-DWvVc17T.cjs.map} +1 -1
  211. package/dist/chunks/{spinners-C9acUulz.cjs → spinners-DBAJliAj.cjs} +2 -2
  212. package/dist/chunks/{spinners-C9acUulz.cjs.map → spinners-DBAJliAj.cjs.map} +1 -1
  213. package/dist/chunks/{spinners-g6_Up5Rb.mjs → spinners-DlMcokJa.mjs} +2 -2
  214. package/dist/chunks/{spinners-g6_Up5Rb.mjs.map → spinners-DlMcokJa.mjs.map} +1 -1
  215. package/dist/chunks/{splash-cursor-N4FdnkOa.mjs → splash-cursor-Bb7LSzaO.mjs} +1 -1
  216. package/dist/chunks/{splash-cursor-N4FdnkOa.mjs.map → splash-cursor-Bb7LSzaO.mjs.map} +1 -1
  217. package/dist/chunks/{splash-cursor-BqG7ClsJ.cjs → splash-cursor-CQ6_HwHV.cjs} +1 -1
  218. package/dist/chunks/{splash-cursor-BqG7ClsJ.cjs.map → splash-cursor-CQ6_HwHV.cjs.map} +1 -1
  219. package/dist/chunks/{spotlight-card-D9Z3nTmb.mjs → spotlight-card-Bs0iiSLc.mjs} +1 -1
  220. package/dist/chunks/{spotlight-card-D9Z3nTmb.mjs.map → spotlight-card-Bs0iiSLc.mjs.map} +1 -1
  221. package/dist/chunks/{spotlight-card-BmsqC7wm.cjs → spotlight-card-COfSD7ns.cjs} +1 -1
  222. package/dist/chunks/{spotlight-card-BmsqC7wm.cjs.map → spotlight-card-COfSD7ns.cjs.map} +1 -1
  223. package/dist/chunks/{stepper-Jv5OS1nY.mjs → stepper-B9NdZ6ZV.mjs} +4 -4
  224. package/dist/chunks/{stepper-Jv5OS1nY.mjs.map → stepper-B9NdZ6ZV.mjs.map} +1 -1
  225. package/dist/chunks/{stepper-DepvEGfr.cjs → stepper-CTteR-Kj.cjs} +4 -4
  226. package/dist/chunks/{stepper-DepvEGfr.cjs.map → stepper-CTteR-Kj.cjs.map} +1 -1
  227. package/dist/chunks/{sun-to-moon-button-BJtBEaa3.mjs → sun-to-moon-button-DWHDpP5B.mjs} +2 -2
  228. package/dist/chunks/{sun-to-moon-button-BJtBEaa3.mjs.map → sun-to-moon-button-DWHDpP5B.mjs.map} +1 -1
  229. package/dist/chunks/{sun-to-moon-button-PwgTPsTW.cjs → sun-to-moon-button-lt-1vmWm.cjs} +2 -2
  230. package/dist/chunks/{sun-to-moon-button-PwgTPsTW.cjs.map → sun-to-moon-button-lt-1vmWm.cjs.map} +1 -1
  231. package/dist/chunks/{switch-iPsN1NS2.mjs → switch--68scepb.mjs} +1 -1
  232. package/dist/chunks/{switch-iPsN1NS2.mjs.map → switch--68scepb.mjs.map} +1 -1
  233. package/dist/chunks/{switch-X3l8xnle.cjs → switch-BbFl5b4t.cjs} +1 -1
  234. package/dist/chunks/{switch-X3l8xnle.cjs.map → switch-BbFl5b4t.cjs.map} +1 -1
  235. package/dist/chunks/{textarea-Bdo-Trvi.mjs → textarea-CEj9voUJ.mjs} +1 -1
  236. package/dist/chunks/{textarea-Bdo-Trvi.mjs.map → textarea-CEj9voUJ.mjs.map} +1 -1
  237. package/dist/chunks/{textarea-CGRl2hrM.cjs → textarea-U_JeSWI3.cjs} +1 -1
  238. package/dist/chunks/{textarea-CGRl2hrM.cjs.map → textarea-U_JeSWI3.cjs.map} +1 -1
  239. package/dist/chunks/{toast-DiFgv3IL.cjs → toast-2yq4Q7-q.cjs} +2 -2
  240. package/dist/chunks/{toast-DiFgv3IL.cjs.map → toast-2yq4Q7-q.cjs.map} +1 -1
  241. package/dist/chunks/{toast-BcBidy5n.mjs → toast-CyY8VZN7.mjs} +2 -2
  242. package/dist/chunks/{toast-BcBidy5n.mjs.map → toast-CyY8VZN7.mjs.map} +1 -1
  243. package/dist/chunks/{truncated-text-BIXqNfOL.cjs → truncated-text-CswjmrHZ.cjs} +1 -1
  244. package/dist/chunks/{truncated-text-BIXqNfOL.cjs.map → truncated-text-CswjmrHZ.cjs.map} +1 -1
  245. package/dist/chunks/{truncated-text-C9t9o9IA.mjs → truncated-text-DUYTW1KP.mjs} +1 -1
  246. package/dist/chunks/{truncated-text-C9t9o9IA.mjs.map → truncated-text-DUYTW1KP.mjs.map} +1 -1
  247. package/dist/chunks/{typography-LwwY_MOy.cjs → typography-CFIiYk1d.cjs} +1 -1
  248. package/dist/chunks/{typography-LwwY_MOy.cjs.map → typography-CFIiYk1d.cjs.map} +1 -1
  249. package/dist/chunks/{typography-Ct-jDJP3.mjs → typography-DHE9sUZ8.mjs} +1 -1
  250. package/dist/chunks/{typography-Ct-jDJP3.mjs.map → typography-DHE9sUZ8.mjs.map} +1 -1
  251. package/dist/color-palette.cjs +1 -1
  252. package/dist/color-palette.mjs +1 -1
  253. package/dist/combobox.cjs +1 -1
  254. package/dist/combobox.mjs +1 -1
  255. package/dist/components/data-display/charts/chartPalette.d.ts +1 -1
  256. package/dist/components/data-display/dashboard-cards/DeviceSalesCard.d.ts +25 -0
  257. package/dist/components/data-display/dashboard-cards/DeviceSalesCard.d.ts.map +1 -0
  258. package/dist/components/data-display/dashboard-cards/EarningReportsTabsCard.d.ts +34 -0
  259. package/dist/components/data-display/dashboard-cards/EarningReportsTabsCard.d.ts.map +1 -0
  260. package/dist/components/data-display/dashboard-cards/EarningsCard.d.ts +43 -0
  261. package/dist/components/data-display/dashboard-cards/EarningsCard.d.ts.map +1 -0
  262. package/dist/components/data-display/dashboard-cards/ExpensesCard.d.ts +26 -0
  263. package/dist/components/data-display/dashboard-cards/ExpensesCard.d.ts.map +1 -0
  264. package/dist/components/data-display/dashboard-cards/IncomeExpenseCard.d.ts +30 -0
  265. package/dist/components/data-display/dashboard-cards/IncomeExpenseCard.d.ts.map +1 -0
  266. package/dist/components/data-display/dashboard-cards/RevenueGrowthCard.d.ts +26 -0
  267. package/dist/components/data-display/dashboard-cards/RevenueGrowthCard.d.ts.map +1 -0
  268. package/dist/components/data-display/dashboard-cards/SalesOverviewCard.d.ts +33 -0
  269. package/dist/components/data-display/dashboard-cards/SalesOverviewCard.d.ts.map +1 -0
  270. package/dist/components/data-display/dashboard-cards/ShipmentStatisticsCard.d.ts +33 -0
  271. package/dist/components/data-display/dashboard-cards/ShipmentStatisticsCard.d.ts.map +1 -0
  272. package/dist/components/data-display/dashboard-cards/StockAvailabilityCard.d.ts +24 -0
  273. package/dist/components/data-display/dashboard-cards/StockAvailabilityCard.d.ts.map +1 -0
  274. package/dist/components/data-display/dashboard-cards/SupportTrackerCard.d.ts +25 -0
  275. package/dist/components/data-display/dashboard-cards/SupportTrackerCard.d.ts.map +1 -0
  276. package/dist/components/data-display/dashboard-cards/TopicsCard.d.ts +18 -0
  277. package/dist/components/data-display/dashboard-cards/TopicsCard.d.ts.map +1 -0
  278. package/dist/components/data-display/dashboard-cards/VehicleConditionCard.d.ts +20 -0
  279. package/dist/components/data-display/dashboard-cards/VehicleConditionCard.d.ts.map +1 -0
  280. package/dist/components/data-display/dashboard-cards/VehiclesOverviewCard.d.ts +21 -0
  281. package/dist/components/data-display/dashboard-cards/VehiclesOverviewCard.d.ts.map +1 -0
  282. package/dist/components/data-display/dashboard-cards/index.d.ts +26 -0
  283. package/dist/components/data-display/dashboard-cards/index.d.ts.map +1 -1
  284. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
  285. package/dist/components/data-display/data-table/DataTableControls.d.ts.map +1 -1
  286. package/dist/components/data-display/event-calendar/AddEventPanel.d.ts +11 -0
  287. package/dist/components/data-display/event-calendar/AddEventPanel.d.ts.map +1 -0
  288. package/dist/components/data-display/event-calendar/CalendarHeader.d.ts +13 -0
  289. package/dist/components/data-display/event-calendar/CalendarHeader.d.ts.map +1 -0
  290. package/dist/components/data-display/event-calendar/CalendarSidebar.d.ts +13 -0
  291. package/dist/components/data-display/event-calendar/CalendarSidebar.d.ts.map +1 -0
  292. package/dist/components/data-display/event-calendar/EventCalendar.d.ts +3 -0
  293. package/dist/components/data-display/event-calendar/EventCalendar.d.ts.map +1 -0
  294. package/dist/components/data-display/event-calendar/EventDetailDrawer.d.ts +10 -0
  295. package/dist/components/data-display/event-calendar/EventDetailDrawer.d.ts.map +1 -0
  296. package/dist/components/data-display/event-calendar/EventFilterList.d.ts +9 -0
  297. package/dist/components/data-display/event-calendar/EventFilterList.d.ts.map +1 -0
  298. package/dist/components/data-display/event-calendar/EventPill.d.ts +10 -0
  299. package/dist/components/data-display/event-calendar/EventPill.d.ts.map +1 -0
  300. package/dist/components/data-display/event-calendar/MiniCalendarPicker.d.ts +9 -0
  301. package/dist/components/data-display/event-calendar/MiniCalendarPicker.d.ts.map +1 -0
  302. package/dist/components/data-display/event-calendar/calendarUtils.d.ts +27 -0
  303. package/dist/components/data-display/event-calendar/calendarUtils.d.ts.map +1 -0
  304. package/dist/components/data-display/event-calendar/index.d.ts +4 -0
  305. package/dist/components/data-display/event-calendar/index.d.ts.map +1 -0
  306. package/dist/components/data-display/event-calendar/types.d.ts +52 -0
  307. package/dist/components/data-display/event-calendar/types.d.ts.map +1 -0
  308. package/dist/components/data-display/event-calendar/views/DayView.d.ts +10 -0
  309. package/dist/components/data-display/event-calendar/views/DayView.d.ts.map +1 -0
  310. package/dist/components/data-display/event-calendar/views/ListView.d.ts +10 -0
  311. package/dist/components/data-display/event-calendar/views/ListView.d.ts.map +1 -0
  312. package/dist/components/data-display/event-calendar/views/MonthView.d.ts +11 -0
  313. package/dist/components/data-display/event-calendar/views/MonthView.d.ts.map +1 -0
  314. package/dist/components/data-display/event-calendar/views/WeekView.d.ts +10 -0
  315. package/dist/components/data-display/event-calendar/views/WeekView.d.ts.map +1 -0
  316. package/dist/components/forms/button/Button.d.ts.map +1 -1
  317. package/dist/components/overlays/tooltip/Tooltip.d.ts +3 -1
  318. package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -1
  319. package/dist/dashboard-cards.cjs +18 -0
  320. package/dist/dashboard-cards.d.ts +2 -0
  321. package/dist/dashboard-cards.mjs +2 -0
  322. package/dist/data-table.cjs +1 -1
  323. package/dist/data-table.mjs +1 -1
  324. package/dist/date-picker.cjs +1 -1
  325. package/dist/date-picker.mjs +1 -1
  326. package/dist/dialog.cjs +1 -1
  327. package/dist/dialog.mjs +1 -1
  328. package/dist/docs.cjs +31 -0
  329. package/dist/docs.cjs.map +1 -1
  330. package/dist/docs.d.ts.map +1 -1
  331. package/dist/docs.mjs +31 -0
  332. package/dist/docs.mjs.map +1 -1
  333. package/dist/drawer.cjs +2 -2
  334. package/dist/drawer.mjs +1 -1
  335. package/dist/event-calendar.cjs +5 -0
  336. package/dist/event-calendar.d.ts +2 -0
  337. package/dist/event-calendar.mjs +2 -0
  338. package/dist/form.cjs +1 -1
  339. package/dist/form.mjs +1 -1
  340. package/dist/gradual-blur.cjs +1 -1
  341. package/dist/gradual-blur.mjs +1 -1
  342. package/dist/hover-border-gradient.cjs +1 -1
  343. package/dist/hover-border-gradient.mjs +1 -1
  344. package/dist/hover-card.cjs +1 -1
  345. package/dist/hover-card.mjs +1 -1
  346. package/dist/icons.cjs +3 -2
  347. package/dist/icons.mjs +2 -1
  348. package/dist/index.cjs +74 -330
  349. package/dist/index.cjs.map +1 -1
  350. package/dist/index.d.ts +5 -2
  351. package/dist/index.d.ts.map +1 -1
  352. package/dist/index.mjs +55 -327
  353. package/dist/index.mjs.map +1 -1
  354. package/dist/input.cjs +1 -1
  355. package/dist/input.mjs +1 -1
  356. package/dist/label.cjs +1 -1
  357. package/dist/label.mjs +1 -1
  358. package/dist/loading.cjs +1 -1
  359. package/dist/loading.mjs +1 -1
  360. package/dist/multi-select-combobox.cjs +1 -1
  361. package/dist/multi-select-combobox.mjs +1 -1
  362. package/dist/otp-input.cjs +1 -1
  363. package/dist/otp-input.mjs +1 -1
  364. package/dist/password-strength-meter.cjs +1 -1
  365. package/dist/password-strength-meter.mjs +1 -1
  366. package/dist/progress-bar.cjs +1 -1
  367. package/dist/progress-bar.mjs +1 -1
  368. package/dist/radio.cjs +1 -1
  369. package/dist/radio.mjs +1 -1
  370. package/dist/select.cjs +1 -1
  371. package/dist/select.mjs +1 -1
  372. package/dist/sidebar.cjs +1 -1
  373. package/dist/sidebar.mjs +1 -1
  374. package/dist/skeleton.cjs +1 -1
  375. package/dist/skeleton.mjs +1 -1
  376. package/dist/spinners.cjs +1 -1
  377. package/dist/spinners.mjs +1 -1
  378. package/dist/splash-cursor.cjs +1 -1
  379. package/dist/splash-cursor.mjs +1 -1
  380. package/dist/spotlight-card.cjs +1 -1
  381. package/dist/spotlight-card.mjs +1 -1
  382. package/dist/stepper.cjs +1 -1
  383. package/dist/stepper.mjs +1 -1
  384. package/dist/sun-to-moon-button.cjs +2 -2
  385. package/dist/sun-to-moon-button.mjs +2 -2
  386. package/dist/switch.cjs +1 -1
  387. package/dist/switch.mjs +1 -1
  388. package/dist/textarea.cjs +1 -1
  389. package/dist/textarea.mjs +1 -1
  390. package/dist/toast.cjs +1 -1
  391. package/dist/toast.mjs +1 -1
  392. package/dist/tooltip.cjs +1 -1
  393. package/dist/tooltip.mjs +1 -1
  394. package/dist/truncated-text.cjs +1 -1
  395. package/dist/truncated-text.mjs +1 -1
  396. package/dist/typography.cjs +1 -1
  397. package/dist/typography.mjs +1 -1
  398. package/package.json +17 -5
  399. package/dist/chunks/Tooltip-DD30yj3A.cjs.map +0 -1
  400. package/dist/chunks/Tooltip-DK3B879v.mjs.map +0 -1
  401. package/dist/chunks/button-A6UTvrOu.mjs.map +0 -1
  402. package/dist/chunks/button-C4MXPxsC.cjs.map +0 -1
  403. package/dist/chunks/charts-BmIV-mJy.cjs.map +0 -1
  404. package/dist/chunks/charts-DkVu0rFc.mjs.map +0 -1
  405. package/dist/chunks/data-table-Dtf6lKpp.mjs.map +0 -1
  406. package/dist/chunks/data-table-fAEuevPn.cjs.map +0 -1
  407. package/dist/chunks/icons-CRanVZB1.cjs.map +0 -1
  408. package/dist/chunks/icons-bx3nrxNv.mjs.map +0 -1
@@ -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-B9NdZ6ZV.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,8 +1,8 @@
1
1
  require("./chunk-B_GkZjkl.cjs");
2
2
  const require_utils = require("./utils-LRbEQHYs.cjs");
3
- const require_truncated_text = require("./truncated-text-BIXqNfOL.cjs");
4
- const require_icons = require("./icons-CRanVZB1.cjs");
5
- const require_button = require("./button-C4MXPxsC.cjs");
3
+ const require_truncated_text = require("./truncated-text-CswjmrHZ.cjs");
4
+ const require_icons = require("./icons-ub9iu-JG.cjs");
5
+ const require_button = require("./button-uD87K76W.cjs");
6
6
  let react = require("react");
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let framer_motion = require("framer-motion");
@@ -729,4 +729,4 @@ Object.defineProperty(exports, "StepperWizardStep", {
729
729
  }
730
730
  });
731
731
 
732
- //# sourceMappingURL=stepper-DepvEGfr.cjs.map
732
+ //# sourceMappingURL=stepper-CTteR-Kj.cjs.map
@@ -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-CTteR-Kj.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,6 +1,6 @@
1
1
  import { n as useThemeContext } from "./theme-koPrLKQv.mjs";
2
2
  import { n as mergeClassNames } from "./utils-7S0u48mU.mjs";
3
- import { t as Button } from "./button-A6UTvrOu.mjs";
3
+ import { t as Button } from "./button-IDShmQqA.mjs";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/components/effects/sun-to-moon-button/ThemeSwitcherButtons.tsx
6
6
  var BRAND_SWATCHES = {
@@ -134,4 +134,4 @@ function ThemeSwitcherButtons({ className, labels = {} }) {
134
134
  //#endregion
135
135
  export { ThemeSwitcherButtons as t };
136
136
 
137
- //# sourceMappingURL=sun-to-moon-button-BJtBEaa3.mjs.map
137
+ //# sourceMappingURL=sun-to-moon-button-DWHDpP5B.mjs.map