@servicetitan/anvil2 2.7.0 → 2.7.1

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 (238) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{Avatar-CCnbKkCm.js → Avatar-BckUfs1N.js} +48 -46
  3. package/dist/{Avatar-CCnbKkCm.js.map → Avatar-BckUfs1N.js.map} +1 -1
  4. package/dist/Avatar-ChybzixS.js +35 -0
  5. package/dist/Avatar-ChybzixS.js.map +1 -0
  6. package/dist/Avatar.js +2 -2
  7. package/dist/Breadcrumbs-C_WK9Yul.js +107 -0
  8. package/dist/Breadcrumbs-C_WK9Yul.js.map +1 -0
  9. package/dist/Breadcrumbs.js +1 -1
  10. package/dist/{Calendar-C1U2npPP.js → Calendar-BTStJPV1.js} +2 -2
  11. package/dist/{Calendar-C1U2npPP.js.map → Calendar-BTStJPV1.js.map} +1 -1
  12. package/dist/{Calendar-SGlTt-bs.js → Calendar-Frpv5rRY.js} +129 -118
  13. package/dist/Calendar-Frpv5rRY.js.map +1 -0
  14. package/dist/Calendar.css +51 -51
  15. package/dist/Calendar.js +2 -2
  16. package/dist/Checkbox-CTZdZym4.js +52 -0
  17. package/dist/Checkbox-CTZdZym4.js.map +1 -0
  18. package/dist/{Checkbox-CtKUNeyu.js → Checkbox-Drgai_lS.js} +3 -3
  19. package/dist/{Checkbox-CtKUNeyu.js.map → Checkbox-Drgai_lS.js.map} +1 -1
  20. package/dist/Checkbox.js +1 -1
  21. package/dist/{Chip-DjTAR0va.js → Chip-CVyEctAz.js} +2 -2
  22. package/dist/{Chip-DjTAR0va.js.map → Chip-CVyEctAz.js.map} +1 -1
  23. package/dist/Chip.js +1 -1
  24. package/dist/{Combobox-By8-34bw.js → Combobox-BRtfrYyZ.js} +185 -182
  25. package/dist/{Combobox-By8-34bw.js.map → Combobox-BRtfrYyZ.js.map} +1 -1
  26. package/dist/Combobox.js +1 -1
  27. package/dist/{DataTable-BYOS6icI.js → DataTable-BmVPjMMg.js} +667 -622
  28. package/dist/DataTable-BmVPjMMg.js.map +1 -0
  29. package/dist/{DateFieldRange-C8Uzrboc.js → DateFieldRange-D9DtlkSQ.js} +19 -5
  30. package/dist/DateFieldRange-D9DtlkSQ.js.map +1 -0
  31. package/dist/DateFieldRange.js +1 -1
  32. package/dist/{DateFieldSingle-DrhLIjlK.js → DateFieldSingle-CkdeCUJv.js} +7 -7
  33. package/dist/{DateFieldSingle-DrhLIjlK.js.map → DateFieldSingle-CkdeCUJv.js.map} +1 -1
  34. package/dist/DateFieldSingle.js +1 -1
  35. package/dist/{DateFieldYearless-DbivK4Hm.js → DateFieldYearless-b81ZcYdp.js} +3 -3
  36. package/dist/{DateFieldYearless-DbivK4Hm.js.map → DateFieldYearless-b81ZcYdp.js.map} +1 -1
  37. package/dist/DateFieldYearless.js +1 -1
  38. package/dist/{DateFieldYearlessRange-BEqJe4Uf.js → DateFieldYearlessRange-ClAFzIDD.js} +3 -3
  39. package/dist/{DateFieldYearlessRange-BEqJe4Uf.js.map → DateFieldYearlessRange-ClAFzIDD.js.map} +1 -1
  40. package/dist/DateFieldYearlessRange.js +1 -1
  41. package/dist/{DaysOfTheWeek-BR32AA32.js → DaysOfTheWeek-2Zeh79oR.js} +3 -3
  42. package/dist/{DaysOfTheWeek-BR32AA32.js.map → DaysOfTheWeek-2Zeh79oR.js.map} +1 -1
  43. package/dist/DaysOfTheWeek.js +1 -1
  44. package/dist/{Details-Dxq_v3Qg.js → Details-CZOIpNP_.js} +8 -8
  45. package/dist/Details-CZOIpNP_.js.map +1 -0
  46. package/dist/Details.js +1 -1
  47. package/dist/{Dialog-CGhwkwvq.js → Dialog-CloZWa1Q.js} +71 -71
  48. package/dist/Dialog-CloZWa1Q.js.map +1 -0
  49. package/dist/Dialog.js +1 -1
  50. package/dist/{Drawer-DA4iAgt-.js → Drawer-CfkoH081.js} +84 -84
  51. package/dist/Drawer-CfkoH081.js.map +1 -0
  52. package/dist/Drawer.js +1 -1
  53. package/dist/DrillDown.js +1 -1
  54. package/dist/{FieldLabel-DbMosKtd.js → FieldLabel-CQ5QGTVq.js} +2 -2
  55. package/dist/{FieldLabel-DbMosKtd.js.map → FieldLabel-CQ5QGTVq.js.map} +1 -1
  56. package/dist/FieldLabel.js +1 -1
  57. package/dist/Grid-DeYIx5k4.js +149 -0
  58. package/dist/Grid-DeYIx5k4.js.map +1 -0
  59. package/dist/Grid.js +1 -1
  60. package/dist/{InputMask-HjaNCb73.js → InputMask-CI4Q5UwG.js} +3 -3
  61. package/dist/{InputMask-HjaNCb73.js.map → InputMask-CI4Q5UwG.js.map} +1 -1
  62. package/dist/InputMask.js +1 -1
  63. package/dist/{Layout-VfhlilMG.js → Layout-CISAxILX.js} +34 -33
  64. package/dist/Layout-CISAxILX.js.map +1 -0
  65. package/dist/Layout.js +1 -1
  66. package/dist/List--KhCpjZn.js +103 -0
  67. package/dist/List--KhCpjZn.js.map +1 -0
  68. package/dist/List.js +1 -1
  69. package/dist/{ListView-mujFK6mQ.js → ListView-DAbBuss4.js} +6 -6
  70. package/dist/ListView-DAbBuss4.js.map +1 -0
  71. package/dist/ListView.js +1 -1
  72. package/dist/{Listbox-BtAgBDRS.js → Listbox-D_T55BFX.js} +5 -4
  73. package/dist/Listbox-D_T55BFX.js.map +1 -0
  74. package/dist/Listbox.js +1 -1
  75. package/dist/{Menu-BXsmCP20.js → Menu-CRoJYJ53.js} +366 -365
  76. package/dist/Menu-CRoJYJ53.js.map +1 -0
  77. package/dist/Menu.js +1 -1
  78. package/dist/MultiSelectField.js +1 -1
  79. package/dist/{MultiSelectFieldSync-DGpGgu8q.js → MultiSelectFieldSync-CSOitvtu.js} +5 -5
  80. package/dist/{MultiSelectFieldSync-DGpGgu8q.js.map → MultiSelectFieldSync-CSOitvtu.js.map} +1 -1
  81. package/dist/MultiSelectMenu.js +1 -1
  82. package/dist/{MultiSelectMenuSync-DiLddJDw.js → MultiSelectMenuSync-62OeGmkz.js} +29 -9
  83. package/dist/MultiSelectMenuSync-62OeGmkz.js.map +1 -0
  84. package/dist/{NumberField-svhZp1kB.js → NumberField-CHBXBMSj.js} +2 -2
  85. package/dist/{NumberField-svhZp1kB.js.map → NumberField-CHBXBMSj.js.map} +1 -1
  86. package/dist/NumberField.js +1 -1
  87. package/dist/Overflow.css +27 -26
  88. package/dist/Overflow.js +11 -11
  89. package/dist/{Page-Be029Dij.js → Page-DtSjnBJL.js} +217 -205
  90. package/dist/Page-DtSjnBJL.js.map +1 -0
  91. package/dist/Page.css +78 -76
  92. package/dist/Page.js +1 -1
  93. package/dist/{Pagination-BAwqfl_2.js → Pagination-CbBte3GQ.js} +17 -15
  94. package/dist/Pagination-CbBte3GQ.js.map +1 -0
  95. package/dist/Pagination.js +1 -1
  96. package/dist/Popover-CQhLSNYR.js +537 -0
  97. package/dist/Popover-CQhLSNYR.js.map +1 -0
  98. package/dist/{Popover-D0qSKZ1J.js → Popover-Rha0q-Pv.js} +354 -354
  99. package/dist/Popover-Rha0q-Pv.js.map +1 -0
  100. package/dist/Popover.js +1 -1
  101. package/dist/{ProgressBar-JpRDW5vG.js → ProgressBar-DEaMqbM-.js} +2 -2
  102. package/dist/{ProgressBar-JpRDW5vG.js.map → ProgressBar-DEaMqbM-.js.map} +1 -1
  103. package/dist/ProgressBar.js +1 -1
  104. package/dist/{Radio-BQg7exDG.js → Radio-Bw2LDl9G.js} +3 -3
  105. package/dist/{Radio-BQg7exDG.js.map → Radio-Bw2LDl9G.js.map} +1 -1
  106. package/dist/Radio-CCvu8mbI.js +60 -0
  107. package/dist/Radio-CCvu8mbI.js.map +1 -0
  108. package/dist/Radio.js +1 -1
  109. package/dist/{SegmentedControl-7fDLhgvh.js → SegmentedControl-BAi4pnFe.js} +79 -75
  110. package/dist/{SegmentedControl-7fDLhgvh.js.map → SegmentedControl-BAi4pnFe.js.map} +1 -1
  111. package/dist/SegmentedControl.js +1 -1
  112. package/dist/SelectCard-ZaAD0wR1.js +325 -0
  113. package/dist/SelectCard-ZaAD0wR1.js.map +1 -0
  114. package/dist/SelectCard.js +1 -1
  115. package/dist/SelectField.js +1 -1
  116. package/dist/{SelectFieldLabel-Dr8HeW3N.js → SelectFieldLabel-EJCXA02B.js} +2 -2
  117. package/dist/{SelectFieldLabel-Dr8HeW3N.js.map → SelectFieldLabel-EJCXA02B.js.map} +1 -1
  118. package/dist/{SelectFieldSync-CJ2Ie_v1.js → SelectFieldSync-DA54WXOk.js} +4 -4
  119. package/dist/{SelectFieldSync-CJ2Ie_v1.js.map → SelectFieldSync-DA54WXOk.js.map} +1 -1
  120. package/dist/SelectMenu.js +1 -1
  121. package/dist/{SelectMenuSync-CJA_coqD.js → SelectMenuSync-BQaSTcaN.js} +29 -9
  122. package/dist/SelectMenuSync-BQaSTcaN.js.map +1 -0
  123. package/dist/{SelectOptions-Bf4xsFek.js → SelectOptions-D-DzWmKE.js} +2 -2
  124. package/dist/{SelectOptions-Bf4xsFek.js.map → SelectOptions-D-DzWmKE.js.map} +1 -1
  125. package/dist/{SelectTrigger-ObsnAKNp.js → SelectTrigger-DWyRndmY.js} +3 -3
  126. package/dist/{SelectTrigger-ObsnAKNp.js.map → SelectTrigger-DWyRndmY.js.map} +1 -1
  127. package/dist/SelectTrigger.js +1 -1
  128. package/dist/{SelectTriggerBase-DKfOL2RJ.js → SelectTriggerBase-B6aZd2a6.js} +3 -3
  129. package/dist/{SelectTriggerBase-DKfOL2RJ.js.map → SelectTriggerBase-B6aZd2a6.js.map} +1 -1
  130. package/dist/{SideNav-KksbSQn7.js → SideNav-CxHemV3H.js} +127 -125
  131. package/dist/{SideNav-KksbSQn7.js.map → SideNav-CxHemV3H.js.map} +1 -1
  132. package/dist/SideNav.js +1 -1
  133. package/dist/{Stepper-Dt8_ImvJ.js → Stepper-CQUXV6P4.js} +156 -156
  134. package/dist/{Stepper-Dt8_ImvJ.js.map → Stepper-CQUXV6P4.js.map} +1 -1
  135. package/dist/Stepper.js +1 -1
  136. package/dist/{Tab-DO7LaUbw.js → Tab-BGGNcz9S.js} +225 -221
  137. package/dist/Tab-BGGNcz9S.js.map +1 -0
  138. package/dist/Tab.js +1 -1
  139. package/dist/Table.js +1 -1
  140. package/dist/{TextField-BW8sJAls.js → TextField-CMv9CpBq.js} +2 -2
  141. package/dist/{TextField-BW8sJAls.js.map → TextField-CMv9CpBq.js.map} +1 -1
  142. package/dist/{TextField-DeHpgPag.js → TextField-o8zvVFDk.js} +2 -2
  143. package/dist/{TextField-DeHpgPag.js.map → TextField-o8zvVFDk.js.map} +1 -1
  144. package/dist/TextField.js +1 -1
  145. package/dist/{Textarea-DyqdMTvQ.js → Textarea-B4bBvO8c.js} +2 -2
  146. package/dist/{Textarea-DyqdMTvQ.js.map → Textarea-B4bBvO8c.js.map} +1 -1
  147. package/dist/Textarea.js +1 -1
  148. package/dist/{TimeField-Dc0Y1JD-.js → TimeField-BEgnjk4R.js} +4 -4
  149. package/dist/{TimeField-Dc0Y1JD-.js.map → TimeField-BEgnjk4R.js.map} +1 -1
  150. package/dist/TimeField.js +1 -1
  151. package/dist/Toast.js +2 -2
  152. package/dist/{Toaster-b0-Ub3yt.js → Toaster-6_LVKok2.js} +2 -2
  153. package/dist/{Toaster-b0-Ub3yt.js.map → Toaster-6_LVKok2.js.map} +1 -1
  154. package/dist/{Toaster-DikGo_hR.js → Toaster-B38WlKC7.js} +2 -2
  155. package/dist/{Toaster-DikGo_hR.js.map → Toaster-B38WlKC7.js.map} +1 -1
  156. package/dist/{Toolbar-DAuz4Gs2.js → Toolbar-0EKhrvZN.js} +148 -147
  157. package/dist/{Toolbar-DAuz4Gs2.js.map → Toolbar-0EKhrvZN.js.map} +1 -1
  158. package/dist/Toolbar.js +1 -1
  159. package/dist/{Tooltip-Bupqao9B.js → Tooltip-BHwSTwsv.js} +224 -226
  160. package/dist/Tooltip-BHwSTwsv.js.map +1 -0
  161. package/dist/Tooltip.js +1 -1
  162. package/dist/{YearlessDateInputWithPicker-DFi08TLG.js → YearlessDateInputWithPicker-BC4lRuny.js} +3 -3
  163. package/dist/{YearlessDateInputWithPicker-DFi08TLG.js.map → YearlessDateInputWithPicker-BC4lRuny.js.map} +1 -1
  164. package/dist/beta/components/MultiSelectMenu/types.d.ts +15 -0
  165. package/dist/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +3 -1
  166. package/dist/beta/components/SelectMenu/types.d.ts +15 -0
  167. package/dist/beta/components/Table/DataTable/DataTable.d.ts +2 -15
  168. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +35 -0
  169. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +4 -3
  170. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +7 -0
  171. package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +34 -0
  172. package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +2 -4
  173. package/dist/beta/components/Table/DataTable/types.d.ts +18 -1
  174. package/dist/beta/components/Table/createColumnHelper.d.ts +23 -68
  175. package/dist/beta/components/Table/types.d.ts +218 -42
  176. package/dist/beta/components/Toolbar/Toolbar.d.ts +168 -41
  177. package/dist/beta.js +9 -9
  178. package/dist/components/Avatar/Avatar.d.ts +14 -0
  179. package/dist/components/Calendar/Calendar.d.ts +84 -26
  180. package/dist/components/Combobox/Combobox.d.ts +172 -1
  181. package/dist/components/Dialog/Dialog.d.ts +96 -28
  182. package/dist/components/DrillDown/DrillDown.d.ts +7 -1
  183. package/dist/components/Layout/Layout.d.ts +52 -44
  184. package/dist/components/ListView/ListView.d.ts +5 -5
  185. package/dist/components/Listbox/Listbox.d.ts +5 -23
  186. package/dist/components/Menu/Menu.d.ts +1 -4
  187. package/dist/components/Toolbar/Toolbar.d.ts +3 -1
  188. package/dist/{floating-ui.react-C_s3_nEb.js → floating-ui.react-aKYfs-aw.js} +2 -2
  189. package/dist/{floating-ui.react-C_s3_nEb.js.map → floating-ui.react-aKYfs-aw.js.map} +1 -1
  190. package/dist/{index.esm-BZV0wNKZ.js → index.esm-K9kxJhLx.js} +2 -1
  191. package/dist/{index.esm-BZV0wNKZ.js.map → index.esm-K9kxJhLx.js.map} +1 -1
  192. package/dist/index.js +126 -126
  193. package/dist/index.js.map +1 -1
  194. package/dist/{syncFilterUtils-vt8ldsES.js → syncFilterUtils-B03Pc941.js} +191 -191
  195. package/dist/{syncFilterUtils-vt8ldsES.js.map → syncFilterUtils-B03Pc941.js.map} +1 -1
  196. package/dist/{useDrilldown-wwXRpNgb.js → useDrilldown-BW2XkUcK.js} +41 -39
  197. package/dist/{useDrilldown-wwXRpNgb.js.map → useDrilldown-BW2XkUcK.js.map} +1 -1
  198. package/dist/{useInitialFocus-CdoVwSbr.js → useInitialFocus-BRRbylek.js} +2 -2
  199. package/dist/{useInitialFocus-CdoVwSbr.js.map → useInitialFocus-BRRbylek.js.map} +1 -1
  200. package/dist/{useMenuInteraction-zR_78KQC.js → useMenuInteraction-BwZ2ORo9.js} +8 -3
  201. package/dist/useMenuInteraction-BwZ2ORo9.js.map +1 -0
  202. package/dist/{useToggleSelection-BdXW3Zg3.js → useToggleSelection-Dip0eimQ.js} +2 -2
  203. package/dist/{useToggleSelection-BdXW3Zg3.js.map → useToggleSelection-Dip0eimQ.js.map} +1 -1
  204. package/package.json +3 -3
  205. package/dist/Avatar--CnTAnfD.js +0 -35
  206. package/dist/Avatar--CnTAnfD.js.map +0 -1
  207. package/dist/Breadcrumbs-3Y7jnj-F.js +0 -105
  208. package/dist/Breadcrumbs-3Y7jnj-F.js.map +0 -1
  209. package/dist/Calendar-SGlTt-bs.js.map +0 -1
  210. package/dist/Checkbox-CjEKa5Iv.js +0 -50
  211. package/dist/Checkbox-CjEKa5Iv.js.map +0 -1
  212. package/dist/DataTable-BYOS6icI.js.map +0 -1
  213. package/dist/DateFieldRange-C8Uzrboc.js.map +0 -1
  214. package/dist/Details-Dxq_v3Qg.js.map +0 -1
  215. package/dist/Dialog-CGhwkwvq.js.map +0 -1
  216. package/dist/Drawer-DA4iAgt-.js.map +0 -1
  217. package/dist/Grid-ONcUpb__.js +0 -147
  218. package/dist/Grid-ONcUpb__.js.map +0 -1
  219. package/dist/Layout-VfhlilMG.js.map +0 -1
  220. package/dist/List-CJZjElAQ.js +0 -101
  221. package/dist/List-CJZjElAQ.js.map +0 -1
  222. package/dist/ListView-mujFK6mQ.js.map +0 -1
  223. package/dist/Listbox-BtAgBDRS.js.map +0 -1
  224. package/dist/Menu-BXsmCP20.js.map +0 -1
  225. package/dist/MultiSelectMenuSync-DiLddJDw.js.map +0 -1
  226. package/dist/Page-Be029Dij.js.map +0 -1
  227. package/dist/Pagination-BAwqfl_2.js.map +0 -1
  228. package/dist/Popover-D0qSKZ1J.js.map +0 -1
  229. package/dist/Popover-DxZF6lbJ.js +0 -535
  230. package/dist/Popover-DxZF6lbJ.js.map +0 -1
  231. package/dist/Radio-BOq9UkpC.js +0 -60
  232. package/dist/Radio-BOq9UkpC.js.map +0 -1
  233. package/dist/SelectCard-cu4MBuh8.js +0 -320
  234. package/dist/SelectCard-cu4MBuh8.js.map +0 -1
  235. package/dist/SelectMenuSync-CJA_coqD.js.map +0 -1
  236. package/dist/Tab-DO7LaUbw.js.map +0 -1
  237. package/dist/Tooltip-Bupqao9B.js.map +0 -1
  238. package/dist/useMenuInteraction-zR_78KQC.js.map +0 -1
@@ -393,8 +393,8 @@ const styles = {
393
393
  stepper: stepper
394
394
  };
395
395
 
396
- const StepperElement = forwardRef(
397
- (props, ref) => {
396
+ const Stepper = Object.assign(
397
+ forwardRef(function StepperInner(props, ref) {
398
398
  const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
399
399
  const {
400
400
  defaultIndex,
@@ -470,161 +470,161 @@ const StepperElement = forwardRef(
470
470
  children
471
471
  }
472
472
  ) });
473
+ }),
474
+ {
475
+ /**
476
+ * Individual step component for the Stepper.
477
+ *
478
+ * Features:
479
+ * - Visual progress indicator with animated bar
480
+ * - Check icon for completed steps
481
+ * - Keyboard navigation support
482
+ * - Accessible with proper ARIA attributes
483
+ * - Click handling for step navigation
484
+ * - Visual states for current, completed, and future steps
485
+ * - Responsive design with mobile-friendly layout
486
+ * - Focus management for keyboard users
487
+ * - Custom styling support
488
+ *
489
+ * @example
490
+ * <Stepper.Step controls="step1">
491
+ * Personal Information
492
+ * </Stepper.Step>
493
+ *
494
+ * @example
495
+ * <Stepper.Step
496
+ * controls="step2"
497
+ * onClick={(e, index) => console.log(`Clicked step ${index}`)}
498
+ * >
499
+ * Contact Details
500
+ * </Stepper.Step>
501
+ */
502
+ Step: StepperStep,
503
+ /**
504
+ * Container component for organizing and displaying stepper steps.
505
+ *
506
+ * Features:
507
+ * - Groups multiple stepper steps together
508
+ * - Displays current step label
509
+ * - Responsive design with mobile-friendly layout
510
+ * - Accessible with proper ARIA roles
511
+ * - Automatic step organization
512
+ * - Visual step indicators
513
+ * - Context-based current step display
514
+ * - Flexible layout with CSS Grid/Flexbox
515
+ * - Container queries for responsive behavior
516
+ *
517
+ * @example
518
+ * <Stepper.List>
519
+ * <Stepper.Step controls="step1">Step 1</Stepper.Step>
520
+ * <Stepper.Step controls="step2">Step 2</Stepper.Step>
521
+ * <Stepper.Step controls="step3">Step 3</Stepper.Step>
522
+ * </Stepper.List>
523
+ */
524
+ List: StepperList,
525
+ /**
526
+ * Content panel component for displaying step content in the Stepper.
527
+ *
528
+ * Features:
529
+ * - Displays content for the current step only
530
+ * - Smooth fade-in/fade-out animations
531
+ * - Automatic overflow handling with scroll support
532
+ * - Accessible with proper ARIA roles
533
+ * - Layout utilities for positioning and spacing
534
+ * - Motion animations for smooth transitions
535
+ * - Focus management for keyboard navigation
536
+ * - Responsive design with flexible layout
537
+ * - Context-based visibility control
538
+ *
539
+ * @example
540
+ * <Stepper.Panel id="step1">
541
+ * <h2>Personal Information</h2>
542
+ * <form>
543
+ * <label htmlFor="name">Name:</label>
544
+ * <input id="name" type="text" />
545
+ * </form>
546
+ * </Stepper.Panel>
547
+ */
548
+ Panel: StepperPanel,
549
+ /**
550
+ * Next button component for navigating to the next step in the Stepper.
551
+ *
552
+ * Features:
553
+ * - Automatically advances to the next step
554
+ * - Changes label to "Complete" on the final step
555
+ * - Supports async validation with Promise return
556
+ * - Prevents navigation when validation fails
557
+ * - Hides when all steps are completed
558
+ * - Accessible with proper button semantics
559
+ * - Customizable appearance and styling
560
+ * - Integration with stepper context
561
+ * - Automatic completion handling
562
+ *
563
+ * @example
564
+ * <Stepper.NextButton
565
+ * nextLabel="Continue"
566
+ * completeLabel="Finish"
567
+ * />
568
+ *
569
+ * @example
570
+ * <Stepper.NextButton
571
+ * onClick={async (e) => {
572
+ * const isValid = await validateForm();
573
+ * return isValid;
574
+ * }}
575
+ * appearance="primary"
576
+ * />
577
+ */
578
+ NextButton: StepperNextButton,
579
+ /**
580
+ * Previous button component for navigating to the previous step in the Stepper.
581
+ *
582
+ * Features:
583
+ * - Navigates to the previous step when available
584
+ * - Hides when on the first step
585
+ * - Restores navigation when returning from completion
586
+ * - Accessible with proper button semantics
587
+ * - Customizable label and styling
588
+ * - Integration with stepper context
589
+ * - Automatic focus management
590
+ * - Support for completion state handling
591
+ *
592
+ * @example
593
+ * <Stepper.PrevButton label="Go Back" />
594
+ *
595
+ * @example
596
+ * <Stepper.PrevButton
597
+ * label="Previous Step"
598
+ * appearance="secondary"
599
+ * onClick={(e) => console.log('Going back')}
600
+ * />
601
+ */
602
+ PrevButton: StepperPrevButton,
603
+ /**
604
+ * Final panel component displayed when all stepper steps are completed.
605
+ *
606
+ * Features:
607
+ * - Displays only when all steps are completed
608
+ * - Smooth fade-in animation on completion
609
+ * - Automatic overflow handling with scroll support
610
+ * - Accessible with proper ARIA roles
611
+ * - Layout utilities for positioning and spacing
612
+ * - Motion animations for smooth transitions
613
+ * - Focus management for keyboard navigation
614
+ * - Responsive design with flexible layout
615
+ * - Context-based visibility control
616
+ *
617
+ * @example
618
+ * <Stepper.FinalPanel>
619
+ * <h2>Congratulations!</h2>
620
+ * <p>You have successfully completed all steps.</p>
621
+ * <Button onClick={handleSubmit}>Submit</Button>
622
+ * </Stepper.FinalPanel>
623
+ */
624
+ FinalPanel: StepperFinalPanel
473
625
  }
474
626
  );
475
- StepperElement.displayName = "Stepper";
476
- const Stepper = Object.assign(StepperElement, {
477
- /**
478
- * Individual step component for the Stepper.
479
- *
480
- * Features:
481
- * - Visual progress indicator with animated bar
482
- * - Check icon for completed steps
483
- * - Keyboard navigation support
484
- * - Accessible with proper ARIA attributes
485
- * - Click handling for step navigation
486
- * - Visual states for current, completed, and future steps
487
- * - Responsive design with mobile-friendly layout
488
- * - Focus management for keyboard users
489
- * - Custom styling support
490
- *
491
- * @example
492
- * <Stepper.Step controls="step1">
493
- * Personal Information
494
- * </Stepper.Step>
495
- *
496
- * @example
497
- * <Stepper.Step
498
- * controls="step2"
499
- * onClick={(e, index) => console.log(`Clicked step ${index}`)}
500
- * >
501
- * Contact Details
502
- * </Stepper.Step>
503
- */
504
- Step: StepperStep,
505
- /**
506
- * Container component for organizing and displaying stepper steps.
507
- *
508
- * Features:
509
- * - Groups multiple stepper steps together
510
- * - Displays current step label
511
- * - Responsive design with mobile-friendly layout
512
- * - Accessible with proper ARIA roles
513
- * - Automatic step organization
514
- * - Visual step indicators
515
- * - Context-based current step display
516
- * - Flexible layout with CSS Grid/Flexbox
517
- * - Container queries for responsive behavior
518
- *
519
- * @example
520
- * <Stepper.List>
521
- * <Stepper.Step controls="step1">Step 1</Stepper.Step>
522
- * <Stepper.Step controls="step2">Step 2</Stepper.Step>
523
- * <Stepper.Step controls="step3">Step 3</Stepper.Step>
524
- * </Stepper.List>
525
- */
526
- List: StepperList,
527
- /**
528
- * Content panel component for displaying step content in the Stepper.
529
- *
530
- * Features:
531
- * - Displays content for the current step only
532
- * - Smooth fade-in/fade-out animations
533
- * - Automatic overflow handling with scroll support
534
- * - Accessible with proper ARIA roles
535
- * - Layout utilities for positioning and spacing
536
- * - Motion animations for smooth transitions
537
- * - Focus management for keyboard navigation
538
- * - Responsive design with flexible layout
539
- * - Context-based visibility control
540
- *
541
- * @example
542
- * <Stepper.Panel id="step1">
543
- * <h2>Personal Information</h2>
544
- * <form>
545
- * <label htmlFor="name">Name:</label>
546
- * <input id="name" type="text" />
547
- * </form>
548
- * </Stepper.Panel>
549
- */
550
- Panel: StepperPanel,
551
- /**
552
- * Next button component for navigating to the next step in the Stepper.
553
- *
554
- * Features:
555
- * - Automatically advances to the next step
556
- * - Changes label to "Complete" on the final step
557
- * - Supports async validation with Promise return
558
- * - Prevents navigation when validation fails
559
- * - Hides when all steps are completed
560
- * - Accessible with proper button semantics
561
- * - Customizable appearance and styling
562
- * - Integration with stepper context
563
- * - Automatic completion handling
564
- *
565
- * @example
566
- * <Stepper.NextButton
567
- * nextLabel="Continue"
568
- * completeLabel="Finish"
569
- * />
570
- *
571
- * @example
572
- * <Stepper.NextButton
573
- * onClick={async (e) => {
574
- * const isValid = await validateForm();
575
- * return isValid;
576
- * }}
577
- * appearance="primary"
578
- * />
579
- */
580
- NextButton: StepperNextButton,
581
- /**
582
- * Previous button component for navigating to the previous step in the Stepper.
583
- *
584
- * Features:
585
- * - Navigates to the previous step when available
586
- * - Hides when on the first step
587
- * - Restores navigation when returning from completion
588
- * - Accessible with proper button semantics
589
- * - Customizable label and styling
590
- * - Integration with stepper context
591
- * - Automatic focus management
592
- * - Support for completion state handling
593
- *
594
- * @example
595
- * <Stepper.PrevButton label="Go Back" />
596
- *
597
- * @example
598
- * <Stepper.PrevButton
599
- * label="Previous Step"
600
- * appearance="secondary"
601
- * onClick={(e) => console.log('Going back')}
602
- * />
603
- */
604
- PrevButton: StepperPrevButton,
605
- /**
606
- * Final panel component displayed when all stepper steps are completed.
607
- *
608
- * Features:
609
- * - Displays only when all steps are completed
610
- * - Smooth fade-in animation on completion
611
- * - Automatic overflow handling with scroll support
612
- * - Accessible with proper ARIA roles
613
- * - Layout utilities for positioning and spacing
614
- * - Motion animations for smooth transitions
615
- * - Focus management for keyboard navigation
616
- * - Responsive design with flexible layout
617
- * - Context-based visibility control
618
- *
619
- * @example
620
- * <Stepper.FinalPanel>
621
- * <h2>Congratulations!</h2>
622
- * <p>You have successfully completed all steps.</p>
623
- * <Button onClick={handleSubmit}>Submit</Button>
624
- * </Stepper.FinalPanel>
625
- */
626
- FinalPanel: StepperFinalPanel
627
- });
627
+ Stepper.displayName = "Stepper";
628
628
 
629
629
  export { Stepper as S };
630
- //# sourceMappingURL=Stepper-Dt8_ImvJ.js.map
630
+ //# sourceMappingURL=Stepper-CQUXV6P4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stepper-Dt8_ImvJ.js","sources":["../src/components/Stepper/internal/StepperContext.ts","../src/components/Stepper/StepperList.tsx","../src/components/Stepper/StepperStep.tsx","../src/components/Stepper/StepperPanel.tsx","../src/components/Stepper/StepperFinalPanel.tsx","../src/components/Stepper/StepperNextButton.tsx","../src/components/Stepper/StepperPrevButton.tsx","../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import { Dispatch, SetStateAction, createContext } from \"react\";\n\nexport type StepperContextProps = {\n current: number;\n setCurrent: Dispatch<SetStateAction<number>>;\n currentId: string;\n setCurrentId: Dispatch<SetStateAction<string>>;\n focus: number;\n setFocus: Dispatch<SetStateAction<number>>;\n onComplete?: () => void;\n items?: NodeListOf<HTMLElement>;\n allCompleted?: boolean;\n setAllCompleted?: Dispatch<SetStateAction<boolean>>;\n allowNavigateToPrevStep?: boolean;\n};\n\nexport const StepperContext = createContext<StepperContextProps>({\n current: 0,\n currentId: \"\",\n focus: 0,\n setFocus: () => undefined,\n setCurrent: () => undefined,\n setCurrentId: () => undefined,\n});\n","import { ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport cx from \"classnames\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./StepperList.module.scss\";\n\n/**\n * Props for the StepperList component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type StepperListProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * Container component for organizing and displaying stepper steps.\n *\n * Features:\n * - Groups multiple stepper steps together\n * - Displays current step label\n * - Responsive design with mobile-friendly layout\n * - Accessible with proper ARIA roles\n * - Automatic step organization\n * - Visual step indicators\n * - Context-based current step display\n * - Flexible layout with CSS Grid/Flexbox\n * - Container queries for responsive behavior\n *\n * @example\n * <Stepper.List>\n * <Stepper.Step controls=\"step1\">Step 1</Stepper.Step>\n * <Stepper.Step controls=\"step2\">Step 2</Stepper.Step>\n * <Stepper.Step controls=\"step3\">Step 3</Stepper.Step>\n * </Stepper.List>\n */\nexport const StepperList = forwardRef<HTMLDivElement, StepperListProps>(\n (props, ref) => {\n const { className, children, onKeyDown, ...rest } = props;\n const { current, items } = useContext(StepperContext);\n\n const tabListClassNames = cx(styles[\"stepper-list\"], className);\n const currentLabel =\n items?.[current].querySelectorAll(\"span\")[1].textContent;\n\n return (\n <div\n {...rest}\n className={tabListClassNames}\n data-anv=\"stepper-list\"\n ref={ref}\n role=\"tablist\"\n >\n <div className={styles[\"stepper-steps\"]}>{children}</div>\n <span className={styles.label}>{currentLabel}</span>\n </div>\n );\n },\n);\n\nStepperList.displayName = \"StepperList\";\n","import {\n forwardRef,\n useContext,\n MouseEvent,\n useRef,\n ComponentPropsWithoutRef,\n useEffect,\n useState,\n KeyboardEvent,\n} from \"react\";\nimport cx from \"classnames\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\n\nimport { Icon } from \"../Icon\";\nimport { StepperContext } from \"./internal/StepperContext\";\nimport { useMergeRefs } from \"../../hooks\";\n\nimport styles from \"./StepperStep.module.scss\";\n\n/**\n * Props for the StepperStep component\n * @extends ComponentPropsWithoutRef<\"button\">\n */\nexport type StepperStepProps = Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"onClick\" | \"disabled\"\n> & {\n /**\n * ID of the panel that this step is controlling.\n * Must match the id prop of the corresponding Stepper.Panel.\n */\n controls: string;\n\n /**\n * Called when the step is clicked.\n * @param e Mouse event object\n * @param index Index of the step in the stepper\n */\n onClick?: (e: MouseEvent<HTMLButtonElement>, index?: number) => void;\n};\n\n/**\n * Individual step component for the Stepper.\n *\n * Features:\n * - Visual progress indicator with animated bar\n * - Check icon for completed steps\n * - Keyboard navigation support\n * - Accessible with proper ARIA attributes\n * - Click handling for step navigation\n * - Visual states for current, completed, and future steps\n * - Responsive design with mobile-friendly layout\n * - Focus management for keyboard users\n * - Custom styling support\n *\n * @example\n * <Stepper.Step controls=\"step1\">\n * Personal Information\n * </Stepper.Step>\n *\n * @example\n * <Stepper.Step\n * controls=\"step2\"\n * onClick={(e, index) => console.log(`Clicked step ${index}`)}\n * >\n * Contact Details\n * </Stepper.Step>\n */\nexport const StepperStep = forwardRef<HTMLButtonElement, StepperStepProps>(\n (props, ref) => {\n const stepRef = useRef<HTMLButtonElement>(null);\n const {\n current,\n items,\n setCurrent,\n focus,\n setFocus,\n allCompleted,\n allowNavigateToPrevStep,\n } = useContext(StepperContext);\n const {\n onClick,\n children,\n onFocus,\n onKeyDown,\n controls,\n className,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n\n const index = useRef<number>();\n const [selected, setSelected] = useState(false);\n const [completed, setCompleted] = useState(\n // Below is to be used for custom overriding\n // completed state for a step\n // Check Stepper.stories.tsx#103 for the use case\n stepRef.current?.getAttribute(\"data-completed\") === \"true\"\n ? true\n : undefined,\n );\n\n useEffect(() => {\n if (!items) return;\n index.current = Array.prototype.indexOf.call(items, stepRef.current);\n\n setCompleted(index.current < current);\n setSelected(index.current === current);\n }, [current, items]);\n\n const stepClassNames = cx(styles[\"stepper-step\"], className, {\n [styles[\"can-navigate\"]]: allowNavigateToPrevStep,\n [styles[\"all-completed\"]]: allCompleted,\n });\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e, index.current);\n if (\n !allowNavigateToPrevStep ||\n selected ||\n index.current === undefined ||\n !items ||\n index.current > current\n ) {\n return;\n }\n setCurrent(index.current ?? 0);\n setFocus(index.current);\n items[index.current].focus();\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n const focusableItems = Array.prototype.filter.call(\n items,\n (item) =>\n item.getAttribute(\"data-completed\") === \"true\" ||\n item.getAttribute(\"aria-selected\") === \"true\",\n );\n const prevFocus = focus - 1;\n const nextFocus = focus + 1;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n setCurrent(focus);\n break;\n case \"ArrowRight\":\n e.preventDefault();\n if (nextFocus === focusableItems.length) {\n setFocus(0);\n focusableItems[0].focus();\n focusableItems[0].setAttribute(\"tabindex\", \"0\");\n stepRef.current?.setAttribute(\"tabindex\", \"-1\");\n return;\n }\n stepRef.current?.setAttribute(\"tabindex\", \"-1\");\n setFocus(nextFocus);\n focusableItems[nextFocus].focus();\n focusableItems[nextFocus].setAttribute(\"tabindex\", \"0\");\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n if (focus === 0) {\n const lastItemIndex = focusableItems.length - 1;\n setFocus(lastItemIndex);\n focusableItems[lastItemIndex].focus();\n focusableItems[lastItemIndex].setAttribute(\"tabindex\", \"0\");\n stepRef.current?.setAttribute(\"tabindex\", \"-1\");\n return;\n }\n stepRef.current?.setAttribute(\"tabindex\", \"-1\");\n setFocus(prevFocus);\n focusableItems[prevFocus].focus();\n focusableItems[prevFocus].setAttribute(\"tabindex\", \"0\");\n break;\n }\n };\n\n // Extract text content from children for aria-label fallback\n const childrenText =\n typeof children === \"string\"\n ? children\n : typeof children === \"number\"\n ? String(children)\n : undefined;\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n data-anv=\"stepper-step\"\n className={stepClassNames}\n aria-selected={selected}\n aria-controls={controls}\n aria-label={childrenText || ariaLabel}\n tabIndex={allowNavigateToPrevStep && selected ? 0 : -1}\n data-completed={completed}\n onClick={onClickHandler}\n onKeyDown={allowNavigateToPrevStep ? onKeyDownHandler : onKeyDown}\n {...rest}\n ref={useMergeRefs([stepRef, ref])}\n >\n <span className={styles.bar} />\n <span className={styles.label}>\n <span className={styles.circle}>\n <Icon svg={Check} inherit aria-hidden />\n </span>\n\n {children}\n </span>\n </button>\n );\n },\n);\n\nStepperStep.displayName = \"StepperStep\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n useEffect,\n} from \"react\";\nimport cx from \"classnames\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport { motion } from \"motion/react\";\n\nimport { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { Overflow } from \"../Overflow\";\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./StepperPanel.module.scss\";\n\n/**\n * Props for the StepperPanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type StepperPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /**\n * Unique identifier for the panel.\n * Must match the controls prop of the corresponding Stepper.Step.\n */\n id: string;\n };\n\n/**\n * Content panel component for displaying step content in the Stepper.\n *\n * Features:\n * - Displays content for the current step only\n * - Smooth fade-in/fade-out animations\n * - Automatic overflow handling with scroll support\n * - Accessible with proper ARIA roles\n * - Layout utilities for positioning and spacing\n * - Motion animations for smooth transitions\n * - Focus management for keyboard navigation\n * - Responsive design with flexible layout\n * - Context-based visibility control\n *\n * @example\n * <Stepper.Panel id=\"step1\">\n * <h2>Personal Information</h2>\n * <form>\n * <label htmlFor=\"name\">Name:</label>\n * <input id=\"name\" type=\"text\" />\n * </form>\n * </Stepper.Panel>\n *\n * @example\n * <Stepper.Panel id=\"step2\" className=\"custom-panel\">\n * <div className=\"step-content\">\n * <h2>Contact Details</h2>\n * <p>Please provide your contact information.</p>\n * </div>\n * </Stepper.Panel>\n */\nexport const StepperPanel = forwardRef<HTMLDivElement, StepperPanelProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { id, className, style, children, ...rest } = componentProps;\n const { current, items, allCompleted, setCurrentId } =\n useContext(StepperContext);\n\n const currentId = items?.[current].getAttribute(\"aria-controls\");\n const isCurrent = currentId === id;\n\n useEffect(() => {\n if (isCurrent && !allCompleted) {\n setCurrentId(currentId ?? \"\");\n }\n }, [allCompleted, isCurrent, currentId, setCurrentId]);\n\n const tabPanelClassNames = cx(styles[\"stepper-panel\"], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n if (isCurrent && !allCompleted) {\n return (\n <motion.div\n style={styleCombined}\n className={tabPanelClassNames}\n transition={{\n opacity: {\n duration:\n +core.primitive.DurationSlow.value.replace(\"ms\", \"\") / 1000,\n },\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n layout\n {...rest}\n role=\"tabpanel\"\n data-anv=\"stepper-panel\"\n id={id}\n ref={ref}\n >\n <Overflow flexGrow={1}>{children}</Overflow>\n </motion.div>\n );\n }\n return <></>;\n },\n);\n\nStepperPanel.displayName = \"StepperPanel\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n useEffect,\n} from \"react\";\nimport cx from \"classnames\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport { motion } from \"motion/react\";\n\nimport { LayoutUtilProps } from \"../../types\";\nimport { Overflow } from \"../Overflow\";\nimport { StepperContext } from \"./internal/StepperContext\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport styles from \"./StepperPanel.module.scss\";\n\n/**\n * Props for the StepperFinalPanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type StepperFinalPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps;\n\n/**\n * Final panel component displayed when all stepper steps are completed.\n *\n * Features:\n * - Displays only when all steps are completed\n * - Smooth fade-in animation on completion\n * - Automatic overflow handling with scroll support\n * - Accessible with proper ARIA roles\n * - Layout utilities for positioning and spacing\n * - Motion animations for smooth transitions\n * - Focus management for keyboard navigation\n * - Responsive design with flexible layout\n * - Context-based visibility control\n *\n * @example\n * <Stepper.FinalPanel>\n * <h2>Congratulations!</h2>\n * <p>You have successfully completed all steps.</p>\n * <Button onClick={handleSubmit}>Submit</Button>\n * </Stepper.FinalPanel>\n */\nexport const StepperFinalPanel = forwardRef<\n HTMLDivElement,\n StepperFinalPanelProps\n>((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { id, className, style, children, ...rest } = componentProps;\n const { allCompleted, setCurrentId } = useContext(StepperContext);\n\n useEffect(() => {\n if (allCompleted) {\n setCurrentId(\"final-panel\");\n }\n }, [allCompleted, setCurrentId]);\n\n const tabPanelClassNames = cx(styles[\"stepper-panel\"], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n if (allCompleted) {\n return (\n <motion.div\n style={styleCombined}\n className={tabPanelClassNames}\n transition={{\n opacity: {\n duration:\n +core.primitive.DurationSlow.value.replace(\"ms\", \"\") / 1000,\n },\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n layout\n {...rest}\n role=\"tabpanel\"\n data-anv=\"stepper-final-panel\"\n tabIndex={0}\n ref={ref}\n >\n <Overflow>{children}</Overflow>\n </motion.div>\n );\n }\n return null;\n});\n\nStepperFinalPanel.displayName = \"StepperFinalPanel\";\n","import { forwardRef, useContext, MouseEvent } from \"react\";\n\nimport { Button, ButtonProps } from \"../Button\";\nimport { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\n\n/**\n * Props for the StepperNextButton component\n * @extends ButtonProps\n */\nexport type StepperNextButtonProps = Omit<ButtonProps, \"children\"> & {\n /**\n * Label for the next button.\n * @default \"Next\"\n */\n nextLabel?: string;\n\n /**\n * Label for the complete button (shown on the last step).\n * @default \"Complete\"\n */\n completeLabel?: string;\n\n /**\n * Called when the \"Next\" button is clicked.\n * @param e MouseEvent<HTMLButtonElement>\n * @returns If the function returns `false`, or a Promise that resolves to `false`, the next step will not be executed.\n */\n onClick?: (\n e: MouseEvent<HTMLButtonElement>,\n ) => void | boolean | Promise<boolean>;\n} & DataTrackingId;\n\n/**\n * Next button component for navigating to the next step in the Stepper.\n *\n * Features:\n * - Automatically advances to the next step\n * - Changes label to \"Complete\" on the final step\n * - Supports async validation with Promise return\n * - Prevents navigation when validation fails\n * - Hides when all steps are completed\n * - Accessible with proper button semantics\n * - Customizable appearance and styling\n * - Integration with stepper context\n * - Automatic completion handling\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Stepper.NextButton\n * nextLabel=\"Continue\"\n * completeLabel=\"Finish\"\n * />\n *\n * @example\n * <Stepper.NextButton\n * onClick={async (e) => {\n * const isValid = await validateForm();\n * return isValid;\n * }}\n * appearance=\"primary\"\n * />\n */\nexport const StepperNextButton = forwardRef<\n HTMLButtonElement,\n StepperNextButtonProps\n>((props, ref) => {\n const {\n setAllCompleted,\n onComplete,\n setCurrent,\n setFocus,\n items,\n current,\n allCompleted,\n } = useContext(StepperContext);\n const {\n onClick,\n onFocus,\n nextLabel = \"Next\",\n completeLabel = \"Complete\",\n appearance = \"primary\",\n ...rest\n } = props;\n\n const proceedToNextStep = () => {\n if (items && current === items.length - 1) {\n items.forEach((item) => item.setAttribute(\"tabindex\", \"-1\"));\n setAllCompleted?.(true);\n onComplete?.();\n return;\n }\n setCurrent(current + 1);\n setFocus(current + 1);\n };\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n const onClickResult = onClick?.(e);\n\n // check if onClick returns a Promise\n if (\n onClickResult !== undefined &&\n !!onClickResult &&\n (onClickResult as unknown) instanceof Promise\n ) {\n (onClickResult as unknown as Promise<boolean>).then((result) => {\n if (result === false) return;\n proceedToNextStep();\n });\n\n // otherwise, onClick returns a boolean or void\n } else {\n if ((onClickResult as void | boolean) === false) return;\n proceedToNextStep();\n }\n };\n\n const data = {\n nextLabel: props.nextLabel,\n completeLabel: props.completeLabel,\n };\n\n const trackingId = useTrackingId({\n name: \"StepperNextButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return allCompleted ? null : (\n <Button\n data-anv=\"stepper-next-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n appearance={appearance}\n ref={ref}\n {...rest}\n >\n {items && current === items.length - 1 ? completeLabel : nextLabel}\n </Button>\n );\n});\n\nStepperNextButton.displayName = \"StepperNextButton\";\n","import { forwardRef, useContext, MouseEvent } from \"react\";\n\nimport { DataTrackingId } from \"../../types\";\nimport { Button, ButtonProps } from \"../Button\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\n\n/**\n * Props for the StepperPrevButton component\n * @extends ButtonProps\n */\nexport type StepperPrevButtonProps = Omit<ButtonProps, \"children\"> & {\n /**\n * Label for the previous button.\n * @default \"Previous\"\n */\n label?: string;\n} & DataTrackingId;\n\n/**\n * Previous button component for navigating to the previous step in the Stepper.\n *\n * Features:\n * - Navigates to the previous step when available\n * - Hides when on the first step\n * - Restores navigation when returning from completion\n * - Accessible with proper button semantics\n * - Customizable label and styling\n * - Integration with stepper context\n * - Automatic focus management\n * - Support for completion state handling\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Stepper.PrevButton label=\"Go Back\" />\n *\n * @example\n * <Stepper.PrevButton\n * label=\"Previous Step\"\n * appearance=\"secondary\"\n * onClick={(e) => console.log('Going back')}\n * />\n */\nexport const StepperPrevButton = forwardRef<\n HTMLButtonElement,\n StepperPrevButtonProps\n>((props, ref) => {\n const {\n setCurrent,\n setFocus,\n allCompleted,\n setAllCompleted,\n items,\n current,\n allowNavigateToPrevStep,\n } = useContext(StepperContext);\n const { onClick, label = \"Previous\", onFocus, ...rest } = props;\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n if (allCompleted) {\n setAllCompleted?.(false);\n if (allowNavigateToPrevStep) {\n items?.[current].setAttribute(\"tabindex\", \"0\");\n }\n } else {\n setCurrent(current - 1);\n setFocus(current - 1);\n }\n\n onClick?.(e);\n };\n\n const data = {\n label: props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"StepperPrevButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return current === 0 ? null : (\n <Button\n data-anv=\"stepper-prev-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n ref={ref}\n {...rest}\n >\n {label}\n </Button>\n );\n});\n\nStepperPrevButton.displayName = \"StepperPrevButton\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport cx from \"classnames\";\nimport { motion } from \"motion/react\";\n\nimport { useMergeRefs } from \"../../hooks\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport { StepperList } from \"./StepperList\";\nimport { StepperStep } from \"./StepperStep\";\nimport { StepperPanel } from \"./StepperPanel\";\nimport { StepperFinalPanel } from \"./StepperFinalPanel\";\nimport { StepperNextButton } from \"./StepperNextButton\";\nimport { StepperPrevButton } from \"./StepperPrevButton\";\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./Stepper.module.scss\";\n\n/**\n * Props for the Stepper component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type StepperProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\" | \"onChange\"\n> &\n LayoutUtilProps & {\n /**\n * Default step to start on (0-based index).\n * To start in the completed state (showing FinalPanel with all steps marked complete),\n * set this to the total number of steps (e.g. `items.length`).\n * @default undefined\n */\n defaultIndex?: number;\n\n /**\n * Allows users to navigate to previous steps.\n * @default undefined\n */\n allowNavigateToPrevStep?: boolean;\n\n /**\n * Returns current step data when step changes.\n * @param data Object containing currentStepId and currentStepIndex\n * @param data.currentStepId ID given to Stepper.Panel, or \"final-panel\"\n * @param data.currentStepIndex Index of current step, or undefined on final panel\n */\n onChange?: (data: {\n currentStepId: string | \"final-panel\";\n currentStepIndex?: number;\n }) => void;\n\n /**\n * Called when all steps are completed.\n */\n onComplete?: () => void;\n };\n\nconst StepperElement = forwardRef<HTMLDivElement, StepperProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n defaultIndex,\n className,\n allowNavigateToPrevStep,\n children,\n onChange,\n onComplete,\n style,\n ...rest\n } = componentProps;\n const tabRef = useRef<HTMLDivElement>(null);\n const [items, setItems] = useState<NodeListOf<HTMLElement>>();\n const [allCompleted, setAllCompleted] = useState(false);\n const [current, setCurrent] = useState<number>(defaultIndex ?? 0);\n const [currentId, setCurrentId] = useState<string>(\"\");\n const [focus, setFocus] = useState<number>(defaultIndex ?? 0);\n const stepperClassNames = cx(styles[\"stepper\"], className);\n\n useEffect(() => {\n const newItems = tabRef.current?.querySelectorAll<HTMLElement>(\n \"[role=tab]:not([disabled])\",\n );\n setItems(newItems);\n if (\n defaultIndex !== undefined &&\n newItems &&\n newItems.length > 0 &&\n defaultIndex >= newItems.length\n ) {\n const lastIndex = newItems.length - 1;\n setAllCompleted(true);\n setCurrent(lastIndex);\n setFocus(lastIndex);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n onChange?.({\n currentStepId: currentId,\n currentStepIndex: allCompleted ? undefined : current,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allCompleted, currentId, onChange]);\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const value = useMemo(\n () => ({\n current,\n setCurrent,\n currentId,\n setCurrentId,\n focus,\n setFocus,\n onComplete,\n items,\n allCompleted,\n setAllCompleted,\n allowNavigateToPrevStep,\n }),\n [\n current,\n currentId,\n focus,\n onComplete,\n items,\n allCompleted,\n setAllCompleted,\n allowNavigateToPrevStep,\n ],\n );\n\n return (\n <StepperContext.Provider value={value}>\n <motion.div\n transition={{ duration: 0 }}\n layout\n className={stepperClassNames}\n data-anv=\"stepper\"\n style={styleCombined}\n {...rest}\n ref={useMergeRefs([tabRef, ref])}\n >\n {children}\n </motion.div>\n </StepperContext.Provider>\n );\n },\n);\n\nStepperElement.displayName = \"Stepper\";\n\n/**\n * Stepper component for creating multi-step workflows and forms.\n *\n * Features:\n * - Multi-step navigation with visual progress indicators\n * - Keyboard navigation support with arrow keys\n * - Optional navigation to previous steps\n * - Smooth animations and transitions\n * - Accessible with proper ARIA roles and attributes\n * - Customizable step labels and content\n * - Completion state handling\n * - Layout utilities for positioning and spacing\n * - Motion animations for step transitions\n * - Context-based state management\n *\n * @example\n * <Stepper defaultIndex={0} allowNavigateToPrevStep>\n * <Stepper.List>\n * <Stepper.Step controls=\"step1\">Step 1</Stepper.Step>\n * <Stepper.Step controls=\"step2\">Step 2</Stepper.Step>\n * <Stepper.Step controls=\"step3\">Step 3</Stepper.Step>\n * </Stepper.List>\n *\n * <Stepper.Panel id=\"step1\">\n * <h2>Step 1 Content</h2>\n * <p>This is the first step content.</p>\n * </Stepper.Panel>\n *\n * <Stepper.Panel id=\"step2\">\n * <h2>Step 2 Content</h2>\n * <p>This is the second step content.</p>\n * </Stepper.Panel>\n *\n * <Stepper.Panel id=\"step3\">\n * <h2>Step 3 Content</h2>\n * <p>This is the final step content.</p>\n * </Stepper.Panel>\n *\n * <Stepper.FinalPanel>\n * <h2>Completed!</h2>\n * <p>All steps have been completed successfully.</p>\n * </Stepper.FinalPanel>\n *\n * <Stepper.PrevButton />\n * <Stepper.NextButton />\n * </Stepper>\n */\nexport const Stepper = Object.assign(StepperElement, {\n /**\n * Individual step component for the Stepper.\n *\n * Features:\n * - Visual progress indicator with animated bar\n * - Check icon for completed steps\n * - Keyboard navigation support\n * - Accessible with proper ARIA attributes\n * - Click handling for step navigation\n * - Visual states for current, completed, and future steps\n * - Responsive design with mobile-friendly layout\n * - Focus management for keyboard users\n * - Custom styling support\n *\n * @example\n * <Stepper.Step controls=\"step1\">\n * Personal Information\n * </Stepper.Step>\n *\n * @example\n * <Stepper.Step\n * controls=\"step2\"\n * onClick={(e, index) => console.log(`Clicked step ${index}`)}\n * >\n * Contact Details\n * </Stepper.Step>\n */\n Step: StepperStep,\n\n /**\n * Container component for organizing and displaying stepper steps.\n *\n * Features:\n * - Groups multiple stepper steps together\n * - Displays current step label\n * - Responsive design with mobile-friendly layout\n * - Accessible with proper ARIA roles\n * - Automatic step organization\n * - Visual step indicators\n * - Context-based current step display\n * - Flexible layout with CSS Grid/Flexbox\n * - Container queries for responsive behavior\n *\n * @example\n * <Stepper.List>\n * <Stepper.Step controls=\"step1\">Step 1</Stepper.Step>\n * <Stepper.Step controls=\"step2\">Step 2</Stepper.Step>\n * <Stepper.Step controls=\"step3\">Step 3</Stepper.Step>\n * </Stepper.List>\n */\n List: StepperList,\n\n /**\n * Content panel component for displaying step content in the Stepper.\n *\n * Features:\n * - Displays content for the current step only\n * - Smooth fade-in/fade-out animations\n * - Automatic overflow handling with scroll support\n * - Accessible with proper ARIA roles\n * - Layout utilities for positioning and spacing\n * - Motion animations for smooth transitions\n * - Focus management for keyboard navigation\n * - Responsive design with flexible layout\n * - Context-based visibility control\n *\n * @example\n * <Stepper.Panel id=\"step1\">\n * <h2>Personal Information</h2>\n * <form>\n * <label htmlFor=\"name\">Name:</label>\n * <input id=\"name\" type=\"text\" />\n * </form>\n * </Stepper.Panel>\n */\n Panel: StepperPanel,\n\n /**\n * Next button component for navigating to the next step in the Stepper.\n *\n * Features:\n * - Automatically advances to the next step\n * - Changes label to \"Complete\" on the final step\n * - Supports async validation with Promise return\n * - Prevents navigation when validation fails\n * - Hides when all steps are completed\n * - Accessible with proper button semantics\n * - Customizable appearance and styling\n * - Integration with stepper context\n * - Automatic completion handling\n *\n * @example\n * <Stepper.NextButton\n * nextLabel=\"Continue\"\n * completeLabel=\"Finish\"\n * />\n *\n * @example\n * <Stepper.NextButton\n * onClick={async (e) => {\n * const isValid = await validateForm();\n * return isValid;\n * }}\n * appearance=\"primary\"\n * />\n */\n NextButton: StepperNextButton,\n\n /**\n * Previous button component for navigating to the previous step in the Stepper.\n *\n * Features:\n * - Navigates to the previous step when available\n * - Hides when on the first step\n * - Restores navigation when returning from completion\n * - Accessible with proper button semantics\n * - Customizable label and styling\n * - Integration with stepper context\n * - Automatic focus management\n * - Support for completion state handling\n *\n * @example\n * <Stepper.PrevButton label=\"Go Back\" />\n *\n * @example\n * <Stepper.PrevButton\n * label=\"Previous Step\"\n * appearance=\"secondary\"\n * onClick={(e) => console.log('Going back')}\n * />\n */\n PrevButton: StepperPrevButton,\n\n /**\n * Final panel component displayed when all stepper steps are completed.\n *\n * Features:\n * - Displays only when all steps are completed\n * - Smooth fade-in animation on completion\n * - Automatic overflow handling with scroll support\n * - Accessible with proper ARIA roles\n * - Layout utilities for positioning and spacing\n * - Motion animations for smooth transitions\n * - Focus management for keyboard navigation\n * - Responsive design with flexible layout\n * - Context-based visibility control\n *\n * @example\n * <Stepper.FinalPanel>\n * <h2>Congratulations!</h2>\n * <p>You have successfully completed all steps.</p>\n * <Button onClick={handleSubmit}>Submit</Button>\n * </Stepper.FinalPanel>\n */\n FinalPanel: StepperFinalPanel,\n});\n"],"names":["styles","Check","core.primitive.DurationSlow"],"mappings":"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"}
1
+ {"version":3,"file":"Stepper-CQUXV6P4.js","sources":["../src/components/Stepper/internal/StepperContext.ts","../src/components/Stepper/StepperList.tsx","../src/components/Stepper/StepperStep.tsx","../src/components/Stepper/StepperPanel.tsx","../src/components/Stepper/StepperFinalPanel.tsx","../src/components/Stepper/StepperNextButton.tsx","../src/components/Stepper/StepperPrevButton.tsx","../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import { Dispatch, SetStateAction, createContext } from \"react\";\n\nexport type StepperContextProps = {\n current: number;\n setCurrent: Dispatch<SetStateAction<number>>;\n currentId: string;\n setCurrentId: Dispatch<SetStateAction<string>>;\n focus: number;\n setFocus: Dispatch<SetStateAction<number>>;\n onComplete?: () => void;\n items?: NodeListOf<HTMLElement>;\n allCompleted?: boolean;\n setAllCompleted?: Dispatch<SetStateAction<boolean>>;\n allowNavigateToPrevStep?: boolean;\n};\n\nexport const StepperContext = createContext<StepperContextProps>({\n current: 0,\n currentId: \"\",\n focus: 0,\n setFocus: () => undefined,\n setCurrent: () => undefined,\n setCurrentId: () => undefined,\n});\n","import { ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport cx from \"classnames\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./StepperList.module.scss\";\n\n/**\n * Props for the StepperList component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type StepperListProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * Container component for organizing and displaying stepper steps.\n *\n * Features:\n * - Groups multiple stepper steps together\n * - Displays current step label\n * - Responsive design with mobile-friendly layout\n * - Accessible with proper ARIA roles\n * - Automatic step organization\n * - Visual step indicators\n * - Context-based current step display\n * - Flexible layout with CSS Grid/Flexbox\n * - Container queries for responsive behavior\n *\n * @example\n * <Stepper.List>\n * <Stepper.Step controls=\"step1\">Step 1</Stepper.Step>\n * <Stepper.Step controls=\"step2\">Step 2</Stepper.Step>\n * <Stepper.Step controls=\"step3\">Step 3</Stepper.Step>\n * </Stepper.List>\n */\nexport const StepperList = forwardRef<HTMLDivElement, StepperListProps>(\n (props, ref) => {\n const { className, children, onKeyDown, ...rest } = props;\n const { current, items } = useContext(StepperContext);\n\n const tabListClassNames = cx(styles[\"stepper-list\"], className);\n const currentLabel =\n items?.[current].querySelectorAll(\"span\")[1].textContent;\n\n return (\n <div\n {...rest}\n className={tabListClassNames}\n data-anv=\"stepper-list\"\n ref={ref}\n role=\"tablist\"\n >\n <div className={styles[\"stepper-steps\"]}>{children}</div>\n <span className={styles.label}>{currentLabel}</span>\n </div>\n );\n },\n);\n\nStepperList.displayName = \"StepperList\";\n","import {\n forwardRef,\n useContext,\n MouseEvent,\n useRef,\n ComponentPropsWithoutRef,\n useEffect,\n useState,\n KeyboardEvent,\n} from \"react\";\nimport cx from \"classnames\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\n\nimport { Icon } from \"../Icon\";\nimport { StepperContext } from \"./internal/StepperContext\";\nimport { useMergeRefs } from \"../../hooks\";\n\nimport styles from \"./StepperStep.module.scss\";\n\n/**\n * Props for the StepperStep component\n * @extends ComponentPropsWithoutRef<\"button\">\n */\nexport type StepperStepProps = Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"onClick\" | \"disabled\"\n> & {\n /**\n * ID of the panel that this step is controlling.\n * Must match the id prop of the corresponding Stepper.Panel.\n */\n controls: string;\n\n /**\n * Called when the step is clicked.\n * @param e Mouse event object\n * @param index Index of the step in the stepper\n */\n onClick?: (e: MouseEvent<HTMLButtonElement>, index?: number) => void;\n};\n\n/**\n * Individual step component for the Stepper.\n *\n * Features:\n * - Visual progress indicator with animated bar\n * - Check icon for completed steps\n * - Keyboard navigation support\n * - Accessible with proper ARIA attributes\n * - Click handling for step navigation\n * - Visual states for current, completed, and future steps\n * - Responsive design with mobile-friendly layout\n * - Focus management for keyboard users\n * - Custom styling support\n *\n * @example\n * <Stepper.Step controls=\"step1\">\n * Personal Information\n * </Stepper.Step>\n *\n * @example\n * <Stepper.Step\n * controls=\"step2\"\n * onClick={(e, index) => console.log(`Clicked step ${index}`)}\n * >\n * Contact Details\n * </Stepper.Step>\n */\nexport const StepperStep = forwardRef<HTMLButtonElement, StepperStepProps>(\n (props, ref) => {\n const stepRef = useRef<HTMLButtonElement>(null);\n const {\n current,\n items,\n setCurrent,\n focus,\n setFocus,\n allCompleted,\n allowNavigateToPrevStep,\n } = useContext(StepperContext);\n const {\n onClick,\n children,\n onFocus,\n onKeyDown,\n controls,\n className,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n\n const index = useRef<number>();\n const [selected, setSelected] = useState(false);\n const [completed, setCompleted] = useState(\n // Below is to be used for custom overriding\n // completed state for a step\n // Check Stepper.stories.tsx#103 for the use case\n stepRef.current?.getAttribute(\"data-completed\") === \"true\"\n ? true\n : undefined,\n );\n\n useEffect(() => {\n if (!items) return;\n index.current = Array.prototype.indexOf.call(items, stepRef.current);\n\n setCompleted(index.current < current);\n setSelected(index.current === current);\n }, [current, items]);\n\n const stepClassNames = cx(styles[\"stepper-step\"], className, {\n [styles[\"can-navigate\"]]: allowNavigateToPrevStep,\n [styles[\"all-completed\"]]: allCompleted,\n });\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e, index.current);\n if (\n !allowNavigateToPrevStep ||\n selected ||\n index.current === undefined ||\n !items ||\n index.current > current\n ) {\n return;\n }\n setCurrent(index.current ?? 0);\n setFocus(index.current);\n items[index.current].focus();\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n const focusableItems = Array.prototype.filter.call(\n items,\n (item) =>\n item.getAttribute(\"data-completed\") === \"true\" ||\n item.getAttribute(\"aria-selected\") === \"true\",\n );\n const prevFocus = focus - 1;\n const nextFocus = focus + 1;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n setCurrent(focus);\n break;\n case \"ArrowRight\":\n e.preventDefault();\n if (nextFocus === focusableItems.length) {\n setFocus(0);\n focusableItems[0].focus();\n focusableItems[0].setAttribute(\"tabindex\", \"0\");\n stepRef.current?.setAttribute(\"tabindex\", \"-1\");\n return;\n }\n stepRef.current?.setAttribute(\"tabindex\", \"-1\");\n setFocus(nextFocus);\n focusableItems[nextFocus].focus();\n focusableItems[nextFocus].setAttribute(\"tabindex\", \"0\");\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n if (focus === 0) {\n const lastItemIndex = focusableItems.length - 1;\n setFocus(lastItemIndex);\n focusableItems[lastItemIndex].focus();\n focusableItems[lastItemIndex].setAttribute(\"tabindex\", \"0\");\n stepRef.current?.setAttribute(\"tabindex\", \"-1\");\n return;\n }\n stepRef.current?.setAttribute(\"tabindex\", \"-1\");\n setFocus(prevFocus);\n focusableItems[prevFocus].focus();\n focusableItems[prevFocus].setAttribute(\"tabindex\", \"0\");\n break;\n }\n };\n\n // Extract text content from children for aria-label fallback\n const childrenText =\n typeof children === \"string\"\n ? children\n : typeof children === \"number\"\n ? String(children)\n : undefined;\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n data-anv=\"stepper-step\"\n className={stepClassNames}\n aria-selected={selected}\n aria-controls={controls}\n aria-label={childrenText || ariaLabel}\n tabIndex={allowNavigateToPrevStep && selected ? 0 : -1}\n data-completed={completed}\n onClick={onClickHandler}\n onKeyDown={allowNavigateToPrevStep ? onKeyDownHandler : onKeyDown}\n {...rest}\n ref={useMergeRefs([stepRef, ref])}\n >\n <span className={styles.bar} />\n <span className={styles.label}>\n <span className={styles.circle}>\n <Icon svg={Check} inherit aria-hidden />\n </span>\n\n {children}\n </span>\n </button>\n );\n },\n);\n\nStepperStep.displayName = \"StepperStep\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n useEffect,\n} from \"react\";\nimport cx from \"classnames\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport { motion } from \"motion/react\";\n\nimport { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { Overflow } from \"../Overflow\";\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./StepperPanel.module.scss\";\n\n/**\n * Props for the StepperPanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type StepperPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /**\n * Unique identifier for the panel.\n * Must match the controls prop of the corresponding Stepper.Step.\n */\n id: string;\n };\n\n/**\n * Content panel component for displaying step content in the Stepper.\n *\n * Features:\n * - Displays content for the current step only\n * - Smooth fade-in/fade-out animations\n * - Automatic overflow handling with scroll support\n * - Accessible with proper ARIA roles\n * - Layout utilities for positioning and spacing\n * - Motion animations for smooth transitions\n * - Focus management for keyboard navigation\n * - Responsive design with flexible layout\n * - Context-based visibility control\n *\n * @example\n * <Stepper.Panel id=\"step1\">\n * <h2>Personal Information</h2>\n * <form>\n * <label htmlFor=\"name\">Name:</label>\n * <input id=\"name\" type=\"text\" />\n * </form>\n * </Stepper.Panel>\n *\n * @example\n * <Stepper.Panel id=\"step2\" className=\"custom-panel\">\n * <div className=\"step-content\">\n * <h2>Contact Details</h2>\n * <p>Please provide your contact information.</p>\n * </div>\n * </Stepper.Panel>\n */\nexport const StepperPanel = forwardRef<HTMLDivElement, StepperPanelProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { id, className, style, children, ...rest } = componentProps;\n const { current, items, allCompleted, setCurrentId } =\n useContext(StepperContext);\n\n const currentId = items?.[current].getAttribute(\"aria-controls\");\n const isCurrent = currentId === id;\n\n useEffect(() => {\n if (isCurrent && !allCompleted) {\n setCurrentId(currentId ?? \"\");\n }\n }, [allCompleted, isCurrent, currentId, setCurrentId]);\n\n const tabPanelClassNames = cx(styles[\"stepper-panel\"], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n if (isCurrent && !allCompleted) {\n return (\n <motion.div\n style={styleCombined}\n className={tabPanelClassNames}\n transition={{\n opacity: {\n duration:\n +core.primitive.DurationSlow.value.replace(\"ms\", \"\") / 1000,\n },\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n layout\n {...rest}\n role=\"tabpanel\"\n data-anv=\"stepper-panel\"\n id={id}\n ref={ref}\n >\n <Overflow flexGrow={1}>{children}</Overflow>\n </motion.div>\n );\n }\n return <></>;\n },\n);\n\nStepperPanel.displayName = \"StepperPanel\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n useEffect,\n} from \"react\";\nimport cx from \"classnames\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport { motion } from \"motion/react\";\n\nimport { LayoutUtilProps } from \"../../types\";\nimport { Overflow } from \"../Overflow\";\nimport { StepperContext } from \"./internal/StepperContext\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport styles from \"./StepperPanel.module.scss\";\n\n/**\n * Props for the StepperFinalPanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type StepperFinalPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps;\n\n/**\n * Final panel component displayed when all stepper steps are completed.\n *\n * Features:\n * - Displays only when all steps are completed\n * - Smooth fade-in animation on completion\n * - Automatic overflow handling with scroll support\n * - Accessible with proper ARIA roles\n * - Layout utilities for positioning and spacing\n * - Motion animations for smooth transitions\n * - Focus management for keyboard navigation\n * - Responsive design with flexible layout\n * - Context-based visibility control\n *\n * @example\n * <Stepper.FinalPanel>\n * <h2>Congratulations!</h2>\n * <p>You have successfully completed all steps.</p>\n * <Button onClick={handleSubmit}>Submit</Button>\n * </Stepper.FinalPanel>\n */\nexport const StepperFinalPanel = forwardRef<\n HTMLDivElement,\n StepperFinalPanelProps\n>((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { id, className, style, children, ...rest } = componentProps;\n const { allCompleted, setCurrentId } = useContext(StepperContext);\n\n useEffect(() => {\n if (allCompleted) {\n setCurrentId(\"final-panel\");\n }\n }, [allCompleted, setCurrentId]);\n\n const tabPanelClassNames = cx(styles[\"stepper-panel\"], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n if (allCompleted) {\n return (\n <motion.div\n style={styleCombined}\n className={tabPanelClassNames}\n transition={{\n opacity: {\n duration:\n +core.primitive.DurationSlow.value.replace(\"ms\", \"\") / 1000,\n },\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n layout\n {...rest}\n role=\"tabpanel\"\n data-anv=\"stepper-final-panel\"\n tabIndex={0}\n ref={ref}\n >\n <Overflow>{children}</Overflow>\n </motion.div>\n );\n }\n return null;\n});\n\nStepperFinalPanel.displayName = \"StepperFinalPanel\";\n","import { forwardRef, useContext, MouseEvent } from \"react\";\n\nimport { Button, ButtonProps } from \"../Button\";\nimport { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\n\n/**\n * Props for the StepperNextButton component\n * @extends ButtonProps\n */\nexport type StepperNextButtonProps = Omit<ButtonProps, \"children\"> & {\n /**\n * Label for the next button.\n * @default \"Next\"\n */\n nextLabel?: string;\n\n /**\n * Label for the complete button (shown on the last step).\n * @default \"Complete\"\n */\n completeLabel?: string;\n\n /**\n * Called when the \"Next\" button is clicked.\n * @param e MouseEvent<HTMLButtonElement>\n * @returns If the function returns `false`, or a Promise that resolves to `false`, the next step will not be executed.\n */\n onClick?: (\n e: MouseEvent<HTMLButtonElement>,\n ) => void | boolean | Promise<boolean>;\n} & DataTrackingId;\n\n/**\n * Next button component for navigating to the next step in the Stepper.\n *\n * Features:\n * - Automatically advances to the next step\n * - Changes label to \"Complete\" on the final step\n * - Supports async validation with Promise return\n * - Prevents navigation when validation fails\n * - Hides when all steps are completed\n * - Accessible with proper button semantics\n * - Customizable appearance and styling\n * - Integration with stepper context\n * - Automatic completion handling\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Stepper.NextButton\n * nextLabel=\"Continue\"\n * completeLabel=\"Finish\"\n * />\n *\n * @example\n * <Stepper.NextButton\n * onClick={async (e) => {\n * const isValid = await validateForm();\n * return isValid;\n * }}\n * appearance=\"primary\"\n * />\n */\nexport const StepperNextButton = forwardRef<\n HTMLButtonElement,\n StepperNextButtonProps\n>((props, ref) => {\n const {\n setAllCompleted,\n onComplete,\n setCurrent,\n setFocus,\n items,\n current,\n allCompleted,\n } = useContext(StepperContext);\n const {\n onClick,\n onFocus,\n nextLabel = \"Next\",\n completeLabel = \"Complete\",\n appearance = \"primary\",\n ...rest\n } = props;\n\n const proceedToNextStep = () => {\n if (items && current === items.length - 1) {\n items.forEach((item) => item.setAttribute(\"tabindex\", \"-1\"));\n setAllCompleted?.(true);\n onComplete?.();\n return;\n }\n setCurrent(current + 1);\n setFocus(current + 1);\n };\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n const onClickResult = onClick?.(e);\n\n // check if onClick returns a Promise\n if (\n onClickResult !== undefined &&\n !!onClickResult &&\n (onClickResult as unknown) instanceof Promise\n ) {\n (onClickResult as unknown as Promise<boolean>).then((result) => {\n if (result === false) return;\n proceedToNextStep();\n });\n\n // otherwise, onClick returns a boolean or void\n } else {\n if ((onClickResult as void | boolean) === false) return;\n proceedToNextStep();\n }\n };\n\n const data = {\n nextLabel: props.nextLabel,\n completeLabel: props.completeLabel,\n };\n\n const trackingId = useTrackingId({\n name: \"StepperNextButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return allCompleted ? null : (\n <Button\n data-anv=\"stepper-next-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n appearance={appearance}\n ref={ref}\n {...rest}\n >\n {items && current === items.length - 1 ? completeLabel : nextLabel}\n </Button>\n );\n});\n\nStepperNextButton.displayName = \"StepperNextButton\";\n","import { forwardRef, useContext, MouseEvent } from \"react\";\n\nimport { DataTrackingId } from \"../../types\";\nimport { Button, ButtonProps } from \"../Button\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\n\n/**\n * Props for the StepperPrevButton component\n * @extends ButtonProps\n */\nexport type StepperPrevButtonProps = Omit<ButtonProps, \"children\"> & {\n /**\n * Label for the previous button.\n * @default \"Previous\"\n */\n label?: string;\n} & DataTrackingId;\n\n/**\n * Previous button component for navigating to the previous step in the Stepper.\n *\n * Features:\n * - Navigates to the previous step when available\n * - Hides when on the first step\n * - Restores navigation when returning from completion\n * - Accessible with proper button semantics\n * - Customizable label and styling\n * - Integration with stepper context\n * - Automatic focus management\n * - Support for completion state handling\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Stepper.PrevButton label=\"Go Back\" />\n *\n * @example\n * <Stepper.PrevButton\n * label=\"Previous Step\"\n * appearance=\"secondary\"\n * onClick={(e) => console.log('Going back')}\n * />\n */\nexport const StepperPrevButton = forwardRef<\n HTMLButtonElement,\n StepperPrevButtonProps\n>((props, ref) => {\n const {\n setCurrent,\n setFocus,\n allCompleted,\n setAllCompleted,\n items,\n current,\n allowNavigateToPrevStep,\n } = useContext(StepperContext);\n const { onClick, label = \"Previous\", onFocus, ...rest } = props;\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n if (allCompleted) {\n setAllCompleted?.(false);\n if (allowNavigateToPrevStep) {\n items?.[current].setAttribute(\"tabindex\", \"0\");\n }\n } else {\n setCurrent(current - 1);\n setFocus(current - 1);\n }\n\n onClick?.(e);\n };\n\n const data = {\n label: props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"StepperPrevButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return current === 0 ? null : (\n <Button\n data-anv=\"stepper-prev-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n ref={ref}\n {...rest}\n >\n {label}\n </Button>\n );\n});\n\nStepperPrevButton.displayName = \"StepperPrevButton\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport cx from \"classnames\";\nimport { motion } from \"motion/react\";\n\nimport { useMergeRefs } from \"../../hooks\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport { StepperList } from \"./StepperList\";\nimport { StepperStep } from \"./StepperStep\";\nimport { StepperPanel } from \"./StepperPanel\";\nimport { StepperFinalPanel } from \"./StepperFinalPanel\";\nimport { StepperNextButton } from \"./StepperNextButton\";\nimport { StepperPrevButton } from \"./StepperPrevButton\";\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./Stepper.module.scss\";\n\n/**\n * Props for the Stepper component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type StepperProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\" | \"onChange\"\n> &\n LayoutUtilProps & {\n /**\n * Default step to start on (0-based index).\n * To start in the completed state (showing FinalPanel with all steps marked complete),\n * set this to the total number of steps (e.g. `items.length`).\n * @default undefined\n */\n defaultIndex?: number;\n\n /**\n * Allows users to navigate to previous steps.\n * @default undefined\n */\n allowNavigateToPrevStep?: boolean;\n\n /**\n * Returns current step data when step changes.\n * @param data Object containing currentStepId and currentStepIndex\n * @param data.currentStepId ID given to Stepper.Panel, or \"final-panel\"\n * @param data.currentStepIndex Index of current step, or undefined on final panel\n */\n onChange?: (data: {\n currentStepId: string | \"final-panel\";\n currentStepIndex?: number;\n }) => void;\n\n /**\n * Called when all steps are completed.\n */\n onComplete?: () => void;\n };\n\n/**\n * Stepper component for creating multi-step workflows and forms.\n *\n * Features:\n * - Multi-step navigation with visual progress indicators\n * - Keyboard navigation support with arrow keys\n * - Optional navigation to previous steps\n * - Smooth animations and transitions\n * - Accessible with proper ARIA roles and attributes\n * - Customizable step labels and content\n * - Completion state handling\n * - Layout utilities for positioning and spacing\n * - Motion animations for step transitions\n * - Context-based state management\n *\n * @example\n * <Stepper defaultIndex={0} allowNavigateToPrevStep>\n * <Stepper.List>\n * <Stepper.Step controls=\"step1\">Step 1</Stepper.Step>\n * <Stepper.Step controls=\"step2\">Step 2</Stepper.Step>\n * <Stepper.Step controls=\"step3\">Step 3</Stepper.Step>\n * </Stepper.List>\n *\n * <Stepper.Panel id=\"step1\">\n * <h2>Step 1 Content</h2>\n * <p>This is the first step content.</p>\n * </Stepper.Panel>\n *\n * <Stepper.Panel id=\"step2\">\n * <h2>Step 2 Content</h2>\n * <p>This is the second step content.</p>\n * </Stepper.Panel>\n *\n * <Stepper.Panel id=\"step3\">\n * <h2>Step 3 Content</h2>\n * <p>This is the final step content.</p>\n * </Stepper.Panel>\n *\n * <Stepper.FinalPanel>\n * <h2>Completed!</h2>\n * <p>All steps have been completed successfully.</p>\n * </Stepper.FinalPanel>\n *\n * <Stepper.PrevButton />\n * <Stepper.NextButton />\n * </Stepper>\n */\nexport const Stepper = Object.assign(\n forwardRef<HTMLDivElement, StepperProps>(function StepperInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n defaultIndex,\n className,\n allowNavigateToPrevStep,\n children,\n onChange,\n onComplete,\n style,\n ...rest\n } = componentProps;\n const tabRef = useRef<HTMLDivElement>(null);\n const [items, setItems] = useState<NodeListOf<HTMLElement>>();\n const [allCompleted, setAllCompleted] = useState(false);\n const [current, setCurrent] = useState<number>(defaultIndex ?? 0);\n const [currentId, setCurrentId] = useState<string>(\"\");\n const [focus, setFocus] = useState<number>(defaultIndex ?? 0);\n const stepperClassNames = cx(styles[\"stepper\"], className);\n\n useEffect(() => {\n const newItems = tabRef.current?.querySelectorAll<HTMLElement>(\n \"[role=tab]:not([disabled])\",\n );\n setItems(newItems);\n if (\n defaultIndex !== undefined &&\n newItems &&\n newItems.length > 0 &&\n defaultIndex >= newItems.length\n ) {\n const lastIndex = newItems.length - 1;\n setAllCompleted(true);\n setCurrent(lastIndex);\n setFocus(lastIndex);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n onChange?.({\n currentStepId: currentId,\n currentStepIndex: allCompleted ? undefined : current,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allCompleted, currentId, onChange]);\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const value = useMemo(\n () => ({\n current,\n setCurrent,\n currentId,\n setCurrentId,\n focus,\n setFocus,\n onComplete,\n items,\n allCompleted,\n setAllCompleted,\n allowNavigateToPrevStep,\n }),\n [\n current,\n currentId,\n focus,\n onComplete,\n items,\n allCompleted,\n setAllCompleted,\n allowNavigateToPrevStep,\n ],\n );\n\n return (\n <StepperContext.Provider value={value}>\n <motion.div\n transition={{ duration: 0 }}\n layout\n className={stepperClassNames}\n data-anv=\"stepper\"\n style={styleCombined}\n {...rest}\n ref={useMergeRefs([tabRef, ref])}\n >\n {children}\n </motion.div>\n </StepperContext.Provider>\n );\n }),\n {\n /**\n * Individual step component for the Stepper.\n *\n * Features:\n * - Visual progress indicator with animated bar\n * - Check icon for completed steps\n * - Keyboard navigation support\n * - Accessible with proper ARIA attributes\n * - Click handling for step navigation\n * - Visual states for current, completed, and future steps\n * - Responsive design with mobile-friendly layout\n * - Focus management for keyboard users\n * - Custom styling support\n *\n * @example\n * <Stepper.Step controls=\"step1\">\n * Personal Information\n * </Stepper.Step>\n *\n * @example\n * <Stepper.Step\n * controls=\"step2\"\n * onClick={(e, index) => console.log(`Clicked step ${index}`)}\n * >\n * Contact Details\n * </Stepper.Step>\n */\n Step: StepperStep,\n\n /**\n * Container component for organizing and displaying stepper steps.\n *\n * Features:\n * - Groups multiple stepper steps together\n * - Displays current step label\n * - Responsive design with mobile-friendly layout\n * - Accessible with proper ARIA roles\n * - Automatic step organization\n * - Visual step indicators\n * - Context-based current step display\n * - Flexible layout with CSS Grid/Flexbox\n * - Container queries for responsive behavior\n *\n * @example\n * <Stepper.List>\n * <Stepper.Step controls=\"step1\">Step 1</Stepper.Step>\n * <Stepper.Step controls=\"step2\">Step 2</Stepper.Step>\n * <Stepper.Step controls=\"step3\">Step 3</Stepper.Step>\n * </Stepper.List>\n */\n List: StepperList,\n\n /**\n * Content panel component for displaying step content in the Stepper.\n *\n * Features:\n * - Displays content for the current step only\n * - Smooth fade-in/fade-out animations\n * - Automatic overflow handling with scroll support\n * - Accessible with proper ARIA roles\n * - Layout utilities for positioning and spacing\n * - Motion animations for smooth transitions\n * - Focus management for keyboard navigation\n * - Responsive design with flexible layout\n * - Context-based visibility control\n *\n * @example\n * <Stepper.Panel id=\"step1\">\n * <h2>Personal Information</h2>\n * <form>\n * <label htmlFor=\"name\">Name:</label>\n * <input id=\"name\" type=\"text\" />\n * </form>\n * </Stepper.Panel>\n */\n Panel: StepperPanel,\n\n /**\n * Next button component for navigating to the next step in the Stepper.\n *\n * Features:\n * - Automatically advances to the next step\n * - Changes label to \"Complete\" on the final step\n * - Supports async validation with Promise return\n * - Prevents navigation when validation fails\n * - Hides when all steps are completed\n * - Accessible with proper button semantics\n * - Customizable appearance and styling\n * - Integration with stepper context\n * - Automatic completion handling\n *\n * @example\n * <Stepper.NextButton\n * nextLabel=\"Continue\"\n * completeLabel=\"Finish\"\n * />\n *\n * @example\n * <Stepper.NextButton\n * onClick={async (e) => {\n * const isValid = await validateForm();\n * return isValid;\n * }}\n * appearance=\"primary\"\n * />\n */\n NextButton: StepperNextButton,\n\n /**\n * Previous button component for navigating to the previous step in the Stepper.\n *\n * Features:\n * - Navigates to the previous step when available\n * - Hides when on the first step\n * - Restores navigation when returning from completion\n * - Accessible with proper button semantics\n * - Customizable label and styling\n * - Integration with stepper context\n * - Automatic focus management\n * - Support for completion state handling\n *\n * @example\n * <Stepper.PrevButton label=\"Go Back\" />\n *\n * @example\n * <Stepper.PrevButton\n * label=\"Previous Step\"\n * appearance=\"secondary\"\n * onClick={(e) => console.log('Going back')}\n * />\n */\n PrevButton: StepperPrevButton,\n\n /**\n * Final panel component displayed when all stepper steps are completed.\n *\n * Features:\n * - Displays only when all steps are completed\n * - Smooth fade-in animation on completion\n * - Automatic overflow handling with scroll support\n * - Accessible with proper ARIA roles\n * - Layout utilities for positioning and spacing\n * - Motion animations for smooth transitions\n * - Focus management for keyboard navigation\n * - Responsive design with flexible layout\n * - Context-based visibility control\n *\n * @example\n * <Stepper.FinalPanel>\n * <h2>Congratulations!</h2>\n * <p>You have successfully completed all steps.</p>\n * <Button onClick={handleSubmit}>Submit</Button>\n * </Stepper.FinalPanel>\n */\n FinalPanel: StepperFinalPanel,\n },\n);\nStepper.displayName = \"Stepper\";\n"],"names":["styles","Check","core.primitive.DurationSlow"],"mappings":"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"}
package/dist/Stepper.js CHANGED
@@ -1,2 +1,2 @@
1
- export { S as Stepper, S as default } from './Stepper-Dt8_ImvJ.js';
1
+ export { S as Stepper, S as default } from './Stepper-CQUXV6P4.js';
2
2
  //# sourceMappingURL=Stepper.js.map