@servicetitan/anvil2 3.16.0 → 3.17.0

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 (296) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/{AiMark-BfmK30vL.js → AiMark-CYXbKuCA.js} +2 -2
  3. package/dist/{AiMark-BfmK30vL.js.map → AiMark-CYXbKuCA.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-lLo1N7Tj.js → Alert-CYpl0czJ.js} +3 -3
  6. package/dist/{Alert-lLo1N7Tj.js.map → Alert-CYpl0czJ.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-PfnsVVz1.js → Announcement-AN9HnhZ-.js} +2 -2
  9. package/dist/{Announcement-PfnsVVz1.js.map → Announcement-AN9HnhZ-.js.map} +1 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{Breadcrumbs-RdL4Fvmu.js → Breadcrumbs-C0CXs9Ma.js} +2 -2
  12. package/dist/{Breadcrumbs-RdL4Fvmu.js.map → Breadcrumbs-C0CXs9Ma.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Button-Dn6-01xl.js → Button-B_E6ybA-.js} +3 -3
  15. package/dist/{Button-Dn6-01xl.js.map → Button-B_E6ybA-.js.map} +1 -1
  16. package/dist/Button.js +1 -1
  17. package/dist/{ButtonToggle-BSU8GBxr.js → ButtonToggle-D0eXySEM.js} +2 -2
  18. package/dist/{ButtonToggle-BSU8GBxr.js.map → ButtonToggle-D0eXySEM.js.map} +1 -1
  19. package/dist/ButtonToggle.js +1 -1
  20. package/dist/{luxon-wpz4A-OQ.js → Calendar-BAIyDHX9.js} +1761 -3
  21. package/dist/Calendar-BAIyDHX9.js.map +1 -0
  22. package/dist/{Calendar-DoLRAWLp.js → Calendar-C_NPqjx3.js} +2 -2
  23. package/dist/{Calendar-DoLRAWLp.js.map → Calendar-C_NPqjx3.js.map} +1 -1
  24. package/dist/Calendar.js +2 -2
  25. package/dist/{Checkbox-U-kuWhgc.js → Checkbox-4Ow8rCbD.js} +2 -2
  26. package/dist/{Checkbox-U-kuWhgc.js.map → Checkbox-4Ow8rCbD.js.map} +1 -1
  27. package/dist/{Checkbox-CVxbe-iN.js → Checkbox-f1vutjn0.js} +3 -3
  28. package/dist/{Checkbox-CVxbe-iN.js.map → Checkbox-f1vutjn0.js.map} +1 -1
  29. package/dist/Checkbox.js +1 -1
  30. package/dist/{Chip-2OydLs66.js → Chip-AIF0WiNS.js} +2 -2
  31. package/dist/{Chip-2OydLs66.js.map → Chip-AIF0WiNS.js.map} +1 -1
  32. package/dist/Chip.js +1 -1
  33. package/dist/Combobox.js +1 -1
  34. package/dist/{DataTable-DIXP9-Bx.js → DataTableEditColumnsDrawer-DRgJgso9.js} +1288 -263
  35. package/dist/DataTableEditColumnsDrawer-DRgJgso9.js.map +1 -0
  36. package/dist/{DataTable.css → DataTableEditColumnsDrawer.css} +41 -0
  37. package/dist/{DateFieldRange-X2jdOTYY.js → DateFieldRange-D9PA985Z.js} +6 -7
  38. package/dist/{DateFieldRange-X2jdOTYY.js.map → DateFieldRange-D9PA985Z.js.map} +1 -1
  39. package/dist/DateFieldRange.js +1 -1
  40. package/dist/{DateFieldSingle-BJ16tpOz.js → DateFieldSingle-CMLojOb3.js} +6 -7
  41. package/dist/{DateFieldSingle-BJ16tpOz.js.map → DateFieldSingle-CMLojOb3.js.map} +1 -1
  42. package/dist/DateFieldSingle.js +1 -1
  43. package/dist/{DateFieldYearless-CMm8vtz_.js → DateFieldYearless-B5IyR75v.js} +4 -4
  44. package/dist/{DateFieldYearless-CMm8vtz_.js.map → DateFieldYearless-B5IyR75v.js.map} +1 -1
  45. package/dist/DateFieldYearless.js +1 -1
  46. package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js → DateFieldYearlessRange-8yXILjx7.js} +3 -3
  47. package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js.map → DateFieldYearlessRange-8yXILjx7.js.map} +1 -1
  48. package/dist/DateFieldYearlessRange.js +1 -1
  49. package/dist/{DaysOfTheWeek-BHXxs0Bo.js → DaysOfTheWeek-Cxp5VdYK.js} +3 -3
  50. package/dist/{DaysOfTheWeek-BHXxs0Bo.js.map → DaysOfTheWeek-Cxp5VdYK.js.map} +1 -1
  51. package/dist/DaysOfTheWeek.js +1 -1
  52. package/dist/{Dialog-_tHqOsbr.js → Dialog-KDAJphrA.js} +8 -7
  53. package/dist/Dialog-KDAJphrA.js.map +1 -0
  54. package/dist/Dialog.js +1 -1
  55. package/dist/{DialogCancelButton-C0r8hJ8Z.js → DialogCancelButton-CplrFu69.js} +2 -2
  56. package/dist/{DialogCancelButton-C0r8hJ8Z.js.map → DialogCancelButton-CplrFu69.js.map} +1 -1
  57. package/dist/Dnd.js +2 -2
  58. package/dist/{DndHandleButton-BRlodkDO.js → DndHandleButton-BJqj2hc0.js} +6 -4
  59. package/dist/DndHandleButton-BJqj2hc0.js.map +1 -0
  60. package/dist/DndSort.js +2 -2
  61. package/dist/{Drawer-D-ThWNp0.js → Drawer-C7E2NNnH.js} +9 -8
  62. package/dist/Drawer-C7E2NNnH.js.map +1 -0
  63. package/dist/Drawer.js +1 -1
  64. package/dist/DrillDown.css +41 -34
  65. package/dist/DrillDown.js +1 -1
  66. package/dist/DrillDown.module-BFE5BcJB.js +28 -0
  67. package/dist/DrillDown.module-BFE5BcJB.js.map +1 -0
  68. package/dist/{EditCard-B6l2vhBS.js → EditCard-CutlsXfK.js} +3 -3
  69. package/dist/{EditCard-B6l2vhBS.js.map → EditCard-CutlsXfK.js.map} +1 -1
  70. package/dist/EditCard.js +1 -1
  71. package/dist/{FieldLabel-ThEmUiAq.js → FieldLabel-DYcUS3A4.js} +2 -2
  72. package/dist/{FieldLabel-ThEmUiAq.js.map → FieldLabel-DYcUS3A4.js.map} +1 -1
  73. package/dist/FieldLabel.js +1 -1
  74. package/dist/{FilterBar-jFn8O7v7.js → FilterBar-DbDfZph-.js} +7 -7
  75. package/dist/{FilterBar-jFn8O7v7.js.map → FilterBar-DbDfZph-.js.map} +1 -1
  76. package/dist/FilterBar.js +1 -1
  77. package/dist/{InputMask-BQigi5oW.js → InputMask-BxdQc1ld.js} +3 -3
  78. package/dist/{InputMask-BQigi5oW.js.map → InputMask-BxdQc1ld.js.map} +1 -1
  79. package/dist/InputMask.js +1 -1
  80. package/dist/{ListView-YJscfG4x.js → ListView-BVanVvBk.js} +87 -108
  81. package/dist/ListView-BVanVvBk.js.map +1 -0
  82. package/dist/ListView.js +1 -1
  83. package/dist/{Listbox-CD9ZptSZ.js → Listbox-BR0YQIee.js} +2 -2
  84. package/dist/{Listbox-CD9ZptSZ.js.map → Listbox-BR0YQIee.js.map} +1 -1
  85. package/dist/Listbox.js +1 -1
  86. package/dist/{Menu-Da2OEN0o.js → Menu-DqP7YQgE.js} +2 -2
  87. package/dist/{Menu-Da2OEN0o.js.map → Menu-DqP7YQgE.js.map} +1 -1
  88. package/dist/Menu.js +1 -1
  89. package/dist/{MenuFooter-D__gg92C.js → MenuFooter-Dzhv0EfD.js} +2 -2
  90. package/dist/{MenuFooter-D__gg92C.js.map → MenuFooter-Dzhv0EfD.js.map} +1 -1
  91. package/dist/MultiSelectField.js +1 -1
  92. package/dist/{MultiSelectFieldSync-DuImKXuj.js → MultiSelectFieldSync-9253tott.js} +29 -29
  93. package/dist/{MultiSelectFieldSync-DuImKXuj.js.map → MultiSelectFieldSync-9253tott.js.map} +1 -1
  94. package/dist/MultiSelectFieldSync.css +71 -70
  95. package/dist/MultiSelectMenu.js +1 -1
  96. package/dist/{MultiSelectMenuSync-BhNXsgAN.js → MultiSelectMenuSync-BUJbWN2I.js} +5 -5
  97. package/dist/{MultiSelectMenuSync-BhNXsgAN.js.map → MultiSelectMenuSync-BUJbWN2I.js.map} +1 -1
  98. package/dist/{useNumberField-CXFYUZ_n.js → NumberField-DhxywJVp.js} +251 -5
  99. package/dist/NumberField-DhxywJVp.js.map +1 -0
  100. package/dist/NumberField.js +1 -1
  101. package/dist/{Page-ZSHNJs7z.js → Page-D_KL2tdK.js} +14 -13
  102. package/dist/{Page-ZSHNJs7z.js.map → Page-D_KL2tdK.js.map} +1 -1
  103. package/dist/Page.js +1 -1
  104. package/dist/{Pagination-Bsl99RRI.js → Pagination-DYpUtMha.js} +5 -5
  105. package/dist/{Pagination-Bsl99RRI.js.map → Pagination-DYpUtMha.js.map} +1 -1
  106. package/dist/Pagination.js +1 -1
  107. package/dist/{Popover-CIh1CsoJ.js → Popover-B2ix8Ji4.js} +2 -2
  108. package/dist/{Popover-CIh1CsoJ.js.map → Popover-B2ix8Ji4.js.map} +1 -1
  109. package/dist/Popover.js +1 -1
  110. package/dist/{ProgressBar-zPKYv4Il.js → ProgressBar-CjoOuJCi.js} +2 -2
  111. package/dist/{ProgressBar-zPKYv4Il.js.map → ProgressBar-CjoOuJCi.js.map} +1 -1
  112. package/dist/ProgressBar.js +1 -1
  113. package/dist/{Radio-C1VnatcL.js → Radio-Bz36_d0V.js} +2 -2
  114. package/dist/{Radio-C1VnatcL.js.map → Radio-Bz36_d0V.js.map} +1 -1
  115. package/dist/{Radio-BYowelK2.js → Radio-DOD1d9Vw.js} +3 -3
  116. package/dist/{Radio-BYowelK2.js.map → Radio-DOD1d9Vw.js.map} +1 -1
  117. package/dist/Radio.js +1 -1
  118. package/dist/{RichTextEditor-DcAVqd2d.js → RichTextEditor-BORVXVDw.js} +11 -11
  119. package/dist/{RichTextEditor-DcAVqd2d.js.map → RichTextEditor-BORVXVDw.js.map} +1 -1
  120. package/dist/RichTextEditor.js +1 -1
  121. package/dist/{SavedFiltersButton-Bl8mr-LB.js → SavedFiltersButton-vq_Kt4Qc.js} +10 -10
  122. package/dist/{SavedFiltersButton-Bl8mr-LB.js.map → SavedFiltersButton-vq_Kt4Qc.js.map} +1 -1
  123. package/dist/SavedFiltersButton.js +1 -1
  124. package/dist/{SegmentedControl-BHVJmmTH.js → SegmentedControl-BCqWq65N.js} +3 -3
  125. package/dist/{SegmentedControl-BHVJmmTH.js.map → SegmentedControl-BCqWq65N.js.map} +1 -1
  126. package/dist/SegmentedControl.js +1 -1
  127. package/dist/{SelectCard-DrmMU_GD.js → SelectCard-CJwetC1k.js} +3 -3
  128. package/dist/{SelectCard-DrmMU_GD.js.map → SelectCard-CJwetC1k.js.map} +1 -1
  129. package/dist/SelectCard.js +1 -1
  130. package/dist/SelectField.js +1 -1
  131. package/dist/{SelectFieldLabel-BxsKvfqo.js → SelectFieldLabel-BTKqybZm.js} +2 -2
  132. package/dist/{SelectFieldLabel-BxsKvfqo.js.map → SelectFieldLabel-BTKqybZm.js.map} +1 -1
  133. package/dist/{SelectFieldSync-SS7FELT3.js → SelectFieldSync-CoUi-BYw.js} +38 -11
  134. package/dist/SelectFieldSync-CoUi-BYw.js.map +1 -0
  135. package/dist/SelectMenu.js +1 -1
  136. package/dist/{SelectMenuSync-CPpE6vUG.js → SelectMenuSync-CvXx-6uU.js} +5 -5
  137. package/dist/{SelectMenuSync-CPpE6vUG.js.map → SelectMenuSync-CvXx-6uU.js.map} +1 -1
  138. package/dist/{SelectOptions-BDAu_9dv.js → SelectOptions-CGRUCyf4.js} +2 -2
  139. package/dist/{SelectOptions-BDAu_9dv.js.map → SelectOptions-CGRUCyf4.js.map} +1 -1
  140. package/dist/{SelectTrigger-B5h-aqhl.js → SelectTrigger-CRbl804u.js} +2 -2
  141. package/dist/{SelectTrigger-B5h-aqhl.js.map → SelectTrigger-CRbl804u.js.map} +1 -1
  142. package/dist/SelectTrigger.js +1 -1
  143. package/dist/{SelectTriggerBase-SML2Mlt-.js → SelectTriggerBase-BRUW_Zgc.js} +5 -5
  144. package/dist/{SelectTriggerBase-SML2Mlt-.js.map → SelectTriggerBase-BRUW_Zgc.js.map} +1 -1
  145. package/dist/SelectTriggerBase.css +51 -50
  146. package/dist/SelectTriggerBase.module-Dt4-6YvC.js +40 -0
  147. package/dist/SelectTriggerBase.module-Dt4-6YvC.js.map +1 -0
  148. package/dist/{Stepper-l_P6VPOv.js → Stepper-D3SHXfX1.js} +3 -3
  149. package/dist/{Stepper-l_P6VPOv.js.map → Stepper-D3SHXfX1.js.map} +1 -1
  150. package/dist/Stepper.js +1 -1
  151. package/dist/{Switch-1iNdXTik.js → Switch-rPPL4yEa.js} +2 -2
  152. package/dist/{Switch-1iNdXTik.js.map → Switch-rPPL4yEa.js.map} +1 -1
  153. package/dist/Switch.js +1 -1
  154. package/dist/{Tab-DR5YYXkq.js → Tab-CXwVQ5-G.js} +11 -7
  155. package/dist/Tab-CXwVQ5-G.js.map +1 -0
  156. package/dist/Tab.js +1 -1
  157. package/dist/Table.js +1 -1
  158. package/dist/{Text-rihxXHSe.js → Text-BRbkPr5s.js} +2 -2
  159. package/dist/{Text-rihxXHSe.js.map → Text-BRbkPr5s.js.map} +1 -1
  160. package/dist/Text.js +1 -1
  161. package/dist/{TextField-vuS7xeo-.js → TextField-B9hivHsD.js} +3 -3
  162. package/dist/{TextField-vuS7xeo-.js.map → TextField-B9hivHsD.js.map} +1 -1
  163. package/dist/{TextField-Bxd-Qzoi.js → TextField-DGRVg_Cw.js} +2 -2
  164. package/dist/{TextField-Bxd-Qzoi.js.map → TextField-DGRVg_Cw.js.map} +1 -1
  165. package/dist/TextField.js +1 -1
  166. package/dist/{Textarea-ppapJUwh.js → Textarea-DNqfV8rJ.js} +3 -3
  167. package/dist/{Textarea-ppapJUwh.js.map → Textarea-DNqfV8rJ.js.map} +1 -1
  168. package/dist/Textarea.js +1 -1
  169. package/dist/{TimeField-Hwt_oRbg.js → TimeField-DldMBNAj.js} +5 -5
  170. package/dist/{TimeField-Hwt_oRbg.js.map → TimeField-DldMBNAj.js.map} +1 -1
  171. package/dist/TimeField.js +1 -1
  172. package/dist/{TimezoneMessage-BrKB_psP.js → TimezoneMessage-CgVNxYpM.js} +2 -2
  173. package/dist/{TimezoneMessage-BrKB_psP.js.map → TimezoneMessage-CgVNxYpM.js.map} +1 -1
  174. package/dist/Toast.js +2 -2
  175. package/dist/{Toaster-dVGVVcat.js → Toaster-Bcy9XN3c.js} +2 -2
  176. package/dist/{Toaster-dVGVVcat.js.map → Toaster-Bcy9XN3c.js.map} +1 -1
  177. package/dist/{Toaster-SqkX0Kes.js → Toaster-C66ra4BK.js} +6 -8
  178. package/dist/Toaster-C66ra4BK.js.map +1 -0
  179. package/dist/{Toolbar-CMulzswf.js → Toolbar-Br-5yBxq.js} +5 -5
  180. package/dist/{Toolbar-CMulzswf.js.map → Toolbar-Br-5yBxq.js.map} +1 -1
  181. package/dist/{Toolbar-DGHZpFi9.js → Toolbar-DgPah7M3.js} +5 -5
  182. package/dist/{Toolbar-DGHZpFi9.js.map → Toolbar-DgPah7M3.js.map} +1 -1
  183. package/dist/Toolbar.js +2 -2
  184. package/dist/{ToolbarButtonToggle-T8YnSJ5x.js → ToolbarButtonToggle-BDfoHeie.js} +2 -2
  185. package/dist/{ToolbarButtonToggle-T8YnSJ5x.js.map → ToolbarButtonToggle-BDfoHeie.js.map} +1 -1
  186. package/dist/TreeSelectField.js +1 -1
  187. package/dist/{TreeSelectFieldSync-C0mXwYZL.js → TreeSelectFieldSync-1psUeqtG.js} +22 -22
  188. package/dist/{TreeSelectFieldSync-C0mXwYZL.js.map → TreeSelectFieldSync-1psUeqtG.js.map} +1 -1
  189. package/dist/TreeSelectFieldSync.css +36 -35
  190. package/dist/TreeSelectMenu.js +1 -1
  191. package/dist/{TreeSelectMenuSync-D2TvKxP-.js → TreeSelectMenuSync-DIPSYUnE.js} +4 -4
  192. package/dist/{TreeSelectMenuSync-D2TvKxP-.js.map → TreeSelectMenuSync-DIPSYUnE.js.map} +1 -1
  193. package/dist/{TypeaheadTextField-DgazozK7.js → TypeaheadTextField-Di9ulOBl.js} +3 -3
  194. package/dist/{TypeaheadTextField-DgazozK7.js.map → TypeaheadTextField-Di9ulOBl.js.map} +1 -1
  195. package/dist/TypeaheadTextField.js +1 -1
  196. package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js → YearlessDateInputWithPicker-CQ2-6Uj4.js} +3 -3
  197. package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js.map → YearlessDateInputWithPicker-CQ2-6Uj4.js.map} +1 -1
  198. package/dist/assets/icons/st/gnav_messages_active.svg +1 -0
  199. package/dist/assets/icons/st/gnav_messages_inactive.svg +1 -0
  200. package/dist/assets/icons/st.ts +2 -0
  201. package/dist/beta.js +17 -17
  202. package/dist/{bulkActionTypes-SukoplGV.js → bulkActionTypes-B71ZHjVu.js} +2 -2
  203. package/dist/{bulkActionTypes-SukoplGV.js.map → bulkActionTypes-B71ZHjVu.js.map} +1 -1
  204. package/dist/{filter-state-hDtCUggM.js → filter-state-Lw9qL0zP.js} +23 -23
  205. package/dist/{filter-state-hDtCUggM.js.map → filter-state-Lw9qL0zP.js.map} +1 -1
  206. package/dist/{index-C2dOrf4N.js → index-B3WhDZeI.js} +2 -2
  207. package/dist/{index-C2dOrf4N.js.map → index-B3WhDZeI.js.map} +1 -1
  208. package/dist/{index-Bldaza5t.js → index-CyN5oapA.js} +2 -2
  209. package/dist/{index-Bldaza5t.js.map → index-CyN5oapA.js.map} +1 -1
  210. package/dist/index-DfZCfS0S.js +36 -0
  211. package/dist/index-DfZCfS0S.js.map +1 -0
  212. package/dist/{index.esm-C2ZhC_8d.js → index.esm-CQXMoq5w.js} +2 -2
  213. package/dist/{index.esm-C2ZhC_8d.js.map → index.esm-CQXMoq5w.js.map} +1 -1
  214. package/dist/index.js +55 -53
  215. package/dist/index.js.map +1 -1
  216. package/dist/{react-ORV84FjM.js → react-CG1BUt2y.js} +5 -38
  217. package/dist/react-CG1BUt2y.js.map +1 -0
  218. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +31 -4
  219. package/dist/src/beta/components/Table/DataTable/DataTableEditColumnsDrawer.d.ts +18 -0
  220. package/dist/src/beta/components/Table/DataTable/index.d.ts +1 -0
  221. package/dist/src/beta/components/Table/DataTable/internal/DataTableAddRow.d.ts +11 -0
  222. package/dist/src/beta/components/Table/DataTable/internal/DataTableBulkActionBar.d.ts +23 -0
  223. package/dist/src/beta/components/Table/DataTable/internal/DataTableFilterToolbar.d.ts +12 -0
  224. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/EditColumnsDrawer.d.ts +29 -0
  225. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/columnLayout.d.ts +43 -0
  226. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/toEditColumnsSection.d.ts +7 -0
  227. package/dist/src/beta/components/Table/DataTable/parts.d.ts +17 -0
  228. package/dist/src/beta/components/Table/DataTable/types.d.ts +245 -2
  229. package/dist/src/beta/components/Table/types.d.ts +6 -0
  230. package/dist/src/components/DrillDown/DrillDownHeader.d.ts +11 -2
  231. package/dist/src/components/DrillDown/index.d.ts +1 -1
  232. package/dist/src/components/DrillDown/internal/DrillDownContext.d.ts +7 -2
  233. package/dist/src/components/DrillDown/internal/useDrillDownContextState.d.ts +6 -3
  234. package/dist/src/hooks/usePrefersReducedMotion/index.d.ts +2 -0
  235. package/dist/src/hooks/usePrefersReducedMotion/prefersReducedMotion.d.ts +6 -0
  236. package/dist/src/hooks/usePrefersReducedMotion/useReducedMotion.d.ts +5 -0
  237. package/dist/{stripInlineMarkdown-BhYLEiXu.js → stripInlineMarkdown-B6lAJb4-.js} +2 -2
  238. package/dist/{stripInlineMarkdown-BhYLEiXu.js.map → stripInlineMarkdown-B6lAJb4-.js.map} +1 -1
  239. package/dist/{syncFilterUtils-SMop8ckR.js → syncFilterUtils-DnhuqY1S.js} +4 -4
  240. package/dist/{syncFilterUtils-SMop8ckR.js.map → syncFilterUtils-DnhuqY1S.js.map} +1 -1
  241. package/dist/token/core/component-variables.scss +49 -49
  242. package/dist/token/core/component.js +49 -49
  243. package/dist/token/core/component.scss +40 -40
  244. package/dist/token.js +49 -49
  245. package/dist/token.js.map +1 -1
  246. package/dist/{treeSync-B38r1dRQ.js → treeSync-BDwht_1r.js} +3 -3
  247. package/dist/{treeSync-B38r1dRQ.js.map → treeSync-BDwht_1r.js.map} +1 -1
  248. package/dist/{use-reduced-motion-yYB9Tb0D.js → use-reduced-motion-CUshwaEW.js} +2 -2
  249. package/dist/{use-reduced-motion-yYB9Tb0D.js.map → use-reduced-motion-CUshwaEW.js.map} +1 -1
  250. package/dist/{useDrillDownContext-D5_NjqY4.js → useDrillDownContext-BLDjyNEt.js} +2 -2
  251. package/dist/{useDrillDownContext-D5_NjqY4.js.map → useDrillDownContext-BLDjyNEt.js.map} +1 -1
  252. package/dist/{useDrilldown-BOeeNUsy.js → useDrilldown-CGdhHs8L.js} +54 -21
  253. package/dist/{useDrilldown-BOeeNUsy.js.map → useDrilldown-CGdhHs8L.js.map} +1 -1
  254. package/dist/{useInfiniteCombobox-7oIT2Mzn.js → useInfiniteCombobox-Db0kaxCj.js} +4 -4
  255. package/dist/{useInfiniteCombobox-7oIT2Mzn.js.map → useInfiniteCombobox-Db0kaxCj.js.map} +1 -1
  256. package/dist/{useInitialFocus-CGybEc6x.js → useInitialFocus-fBiTU9l8.js} +7 -4
  257. package/dist/useInitialFocus-fBiTU9l8.js.map +1 -0
  258. package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js → useInvalidateOnOptionsChange-PweyDORd.js} +4 -4
  259. package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js.map → useInvalidateOnOptionsChange-PweyDORd.js.map} +1 -1
  260. package/dist/{usePrefersReducedMotion-DR9B_D6w.js → usePrefersReducedMotion-BLoVFiJL.js} +11 -3
  261. package/dist/usePrefersReducedMotion-BLoVFiJL.js.map +1 -0
  262. package/dist/usePrefersReducedMotion.js +2 -1
  263. package/dist/usePrefersReducedMotion.js.map +1 -1
  264. package/package.json +3 -3
  265. package/dist/Calendar-IzXG1aJw.js +0 -1761
  266. package/dist/Calendar-IzXG1aJw.js.map +0 -1
  267. package/dist/DataTable-DIXP9-Bx.js.map +0 -1
  268. package/dist/Dialog-_tHqOsbr.js.map +0 -1
  269. package/dist/DndHandleButton-BRlodkDO.js.map +0 -1
  270. package/dist/Drawer-D-ThWNp0.js.map +0 -1
  271. package/dist/DrillDown.module-1VBKDZRA.js +0 -27
  272. package/dist/DrillDown.module-1VBKDZRA.js.map +0 -1
  273. package/dist/Lato.css +0 -24
  274. package/dist/ListView-YJscfG4x.js.map +0 -1
  275. package/dist/NumberField-CxmJx4gs.js +0 -252
  276. package/dist/NumberField-CxmJx4gs.js.map +0 -1
  277. package/dist/SelectFieldSync-SS7FELT3.js.map +0 -1
  278. package/dist/SelectTriggerBase.module-mYOfdBGA.js +0 -40
  279. package/dist/SelectTriggerBase.module-mYOfdBGA.js.map +0 -1
  280. package/dist/Tab-DR5YYXkq.js.map +0 -1
  281. package/dist/Toaster-SqkX0Kes.js.map +0 -1
  282. package/dist/app-css.379821199ec8105f2efd.bundle.css +0 -57579
  283. package/dist/bugfix-71.1orion.css +0 -491
  284. package/dist/design-system.859a127fc3b66175f0f0.bundle.css +0 -34599
  285. package/dist/drag_indicator-BRHAPLSJ.js +0 -6
  286. package/dist/drag_indicator-BRHAPLSJ.js.map +0 -1
  287. package/dist/favicon.ico +0 -0
  288. package/dist/kendo-css.ed976099efbbcc8b0639.bundle.css +0 -20601
  289. package/dist/luxon-wpz4A-OQ.js.map +0 -1
  290. package/dist/main.e26f249642be9a4bd747.bundle.css +0 -50386
  291. package/dist/react-ORV84FjM.js.map +0 -1
  292. package/dist/sui.a9dc22e36a27b7ea1ee8.bundle.css +0 -41149
  293. package/dist/useInitialFocus-CGybEc6x.js.map +0 -1
  294. package/dist/useNumberField-CXFYUZ_n.js.map +0 -1
  295. package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +0 -1
  296. package/dist/vite.svg +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Stepper-l_P6VPOv.js","sources":["../src/components/Stepper/base/internal/StepperBaseContext.ts","../src/components/Stepper/base/internal/StepperStepIndexScope.tsx","../src/components/Stepper/base/StepperBaseList.tsx","../src/components/Stepper/base/StepperBaseStep.tsx","../src/components/Stepper/base/StepperBasePanel.tsx","../src/components/Stepper/base/StepperBase.tsx","../src/components/Stepper/StepperList.tsx","../src/components/Stepper/internal/StepperContext.ts","../src/components/Stepper/StepperStep.tsx","../src/components/Stepper/StepperPanel.tsx","../src/components/Stepper/StepperFinalPanel.tsx","../src/components/Stepper/internal/countRegisteredSteps.ts","../src/components/Stepper/StepperNextButton.tsx","../src/components/Stepper/StepperPrevButton.tsx","../src/components/Stepper/internal/StepperWizardBootstrap.tsx","../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import { createContext, useContext, useRef, type RefObject } from \"react\";\n\n/** Per-step outcome. Independent of whether the step is current. */\nexport type StepperBaseStepState = \"not started\" | \"started\" | \"complete\";\n\nexport type StepperBaseStepInfo = {\n index: number;\n id?: string;\n label: string;\n disabled: boolean;\n node: RefObject<HTMLButtonElement | null>;\n};\n\nexport type StepperBaseContextValue = {\n currentIndex: number;\n interactive: boolean;\n focusIndex: number;\n setFocusIndex: (index: number) => void;\n requestIndexChange: (index: number) => void;\n registerStep: (info: StepperBaseStepInfo) => () => void;\n getStep: (index: number) => StepperBaseStepInfo | undefined;\n getCurrentStep: () => StepperBaseStepInfo | undefined;\n getPanelId: (stepId: string) => string | undefined;\n registerPanel: (stepId: string, panelId: string) => () => void;\n};\n\nexport const StepperBaseContext = createContext<StepperBaseContextValue>({\n currentIndex: 0,\n interactive: false,\n focusIndex: 0,\n setFocusIndex: () => undefined,\n requestIndexChange: () => undefined,\n registerStep: () => () => undefined,\n getStep: () => undefined,\n getCurrentStep: () => undefined,\n getPanelId: () => undefined,\n registerPanel: () => () => undefined,\n});\n\n/**\n * Hands out 0-based indices in render order, so steps work inside fragments and\n * wrapper components rather than only as direct List children. Each render of\n * StepperStepIndexScope starts a new pass.\n */\nexport type StepperBaseStepIndexPass = {\n allocate: () => number;\n};\n\nexport const StepperBaseStepIndexPassContext =\n createContext<StepperBaseStepIndexPass | null>(null);\n\ntype AllocatedIndex = {\n pass: StepperBaseStepIndexPass;\n index: number;\n};\n\n/**\n * Index of the calling step, or undefined when it renders outside a List.\n *\n * A step allocates at most once per pass, so it keeps its index when it\n * re-renders alone and when StrictMode renders it twice.\n */\nexport function useStepperStepIndex() {\n const pass = useContext(StepperBaseStepIndexPassContext);\n const allocated = useRef<AllocatedIndex | null>(null);\n\n if (!pass) return undefined;\n\n if (allocated.current?.pass !== pass) {\n allocated.current = { pass, index: pass.allocate() };\n }\n\n return allocated.current.index;\n}\n","import type { ReactNode } from \"react\";\n\nimport {\n StepperBaseStepIndexPassContext,\n type StepperBaseStepIndexPass,\n} from \"./StepperBaseContext\";\n\nfunction startIndexPass(): StepperBaseStepIndexPass {\n let nextIndex = 0;\n\n return {\n allocate: () => {\n const index = nextIndex;\n nextIndex += 1;\n return index;\n },\n };\n}\n\nexport function StepperStepIndexScope({ children }: { children: ReactNode }) {\n return (\n <StepperBaseStepIndexPassContext.Provider value={startIndexPass()}>\n {children}\n </StepperBaseStepIndexPassContext.Provider>\n );\n}\n","import { type ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport cx from \"classnames\";\n\nimport { StepperBaseContext } from \"./internal/StepperBaseContext\";\nimport { StepperStepIndexScope } from \"./internal/StepperStepIndexScope\";\n\nimport styles from \"../StepperList.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type StepperBaseListProps = ComponentPropsWithoutRef<\"div\">;\n\n/** Track of `StepperBase.Step` children plus the compact current label. */\nexport const StepperBaseList = forwardRef<HTMLDivElement, StepperBaseListProps>(\n (props, ref) => {\n const { className, children, ...rest } = props;\n const { getCurrentStep } = useContext(StepperBaseContext);\n const currentLabel = getCurrentStep()?.label;\n\n return (\n <div\n {...rest}\n className={cx(styles[\"stepper-list\"], className)}\n data-anv=\"stepper-base-list\"\n ref={ref}\n role=\"tablist\"\n >\n <div className={styles[\"stepper-steps\"]}>\n <StepperStepIndexScope>{children}</StepperStepIndexScope>\n </div>\n <span className={styles.label}>{currentLabel}</span>\n </div>\n );\n },\n);\n\nStepperBaseList.displayName = \"StepperBaseList\";\n","import {\n forwardRef,\n useContext,\n useLayoutEffect,\n useRef,\n type KeyboardEvent,\n type MouseEvent,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\n\nimport { Icon } from \"../../Icon\";\nimport { useMergeRefs } from \"../../../hooks\";\nimport {\n StepperBaseContext,\n useStepperStepIndex,\n type StepperBaseStepState,\n} from \"./internal/StepperBaseContext\";\n\nimport styles from \"../StepperStep.module.scss\";\n\nexport type { StepperBaseStepState };\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"button\">, \"onClick\" | \"disabled\">\n */\nexport type StepperBaseStepProps = Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"onClick\" | \"disabled\"\n> & {\n /**\n * Visual outcome, independent of whether this step is current. Current plus\n * any state is legal. Defaults to `\"not started\"`.\n */\n state?: StepperBaseStepState;\n\n /** Required when a `StepperBase.Panel` `step` points here. */\n id?: string;\n\n /**\n * Blocks becoming current via click or keyboard. Defaults to `false`.\n */\n disabled?: boolean;\n\n /**\n * Notify only; does not replace `onIndexChange`. Receives this step's\n * 0-based index.\n */\n onClick?: (e: MouseEvent<HTMLButtonElement>, index?: number) => void;\n};\n\n/** Progress marker for one step in the track. */\nexport const StepperBaseStep = forwardRef<\n HTMLButtonElement,\n StepperBaseStepProps\n>((props, ref) => {\n const stepRef = useRef<HTMLButtonElement>(null);\n const index = useStepperStepIndex();\n const {\n currentIndex,\n interactive,\n focusIndex,\n setFocusIndex,\n requestIndexChange,\n registerStep,\n getStep,\n getPanelId,\n } = useContext(StepperBaseContext);\n const {\n state = \"not started\",\n id,\n disabled = false,\n onClick,\n children,\n onKeyDown,\n className,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n\n const childrenText =\n typeof children === \"string\"\n ? children\n : typeof children === \"number\"\n ? String(children)\n : undefined;\n const label = childrenText || ariaLabel || \"\";\n\n useLayoutEffect(() => {\n if (index === undefined) return;\n return registerStep({\n index,\n id,\n label,\n disabled,\n node: stepRef,\n });\n }, [disabled, id, index, label, registerStep]);\n\n const selected = index === currentIndex;\n const completed = state === \"complete\";\n const panelId = id ? getPanelId(id) : undefined;\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e, index);\n if (index === undefined) return;\n requestIndexChange(index);\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (!interactive || index === undefined) return;\n\n const activatable: number[] = [];\n for (let i = 0; ; i += 1) {\n const step = getStep(i);\n if (!step) break;\n if (!step.disabled) activatable.push(i);\n }\n if (activatable.length === 0) return;\n\n const currentPos = activatable.indexOf(focusIndex);\n const safePos = currentPos === -1 ? 0 : currentPos;\n\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n requestIndexChange(focusIndex);\n break;\n case \"ArrowRight\": {\n e.preventDefault();\n const next = activatable[(safePos + 1) % activatable.length];\n setFocusIndex(next);\n getStep(next)?.node.current?.focus();\n break;\n }\n case \"ArrowLeft\": {\n e.preventDefault();\n const prev =\n activatable[(safePos - 1 + activatable.length) % activatable.length];\n setFocusIndex(prev);\n getStep(prev)?.node.current?.focus();\n break;\n }\n default:\n break;\n }\n };\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n data-anv=\"stepper-base-step\"\n data-state={state}\n data-completed={completed}\n className={cx(styles[\"stepper-step\"], className, {\n [styles[\"can-navigate\"]]: interactive,\n })}\n aria-selected={selected}\n aria-controls={panelId}\n aria-disabled={disabled || undefined}\n aria-label={childrenText || ariaLabel}\n tabIndex={interactive && index === focusIndex && !disabled ? 0 : -1}\n onClick={onClickHandler}\n onKeyDown={interactive ? onKeyDownHandler : onKeyDown}\n {...rest}\n id={id}\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 {children}\n </span>\n </button>\n );\n});\n\nStepperBaseStep.displayName = \"StepperBaseStep\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n useId,\n useLayoutEffect,\n} from \"react\";\nimport cx from \"classnames\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport { motion } from \"motion/react\";\n\nimport type { LayoutUtilProps } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport { Overflow } from \"../../Overflow\";\nimport { StepperBaseContext } from \"./internal/StepperBaseContext\";\n\nimport styles from \"../StepperPanel.module.scss\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type StepperBasePanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /** Must match the controlling `StepperBase.Step` `id`. */\n step: string;\n\n /**\n * Panel element id. Generated when omitted (used for `aria-controls`).\n */\n id?: string;\n };\n\n/** Body shown while its named step is current. */\nexport const StepperBasePanel = forwardRef<\n HTMLDivElement,\n StepperBasePanelProps\n>((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n step,\n id: idProp,\n className,\n style,\n children,\n ...rest\n } = componentProps;\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const { getCurrentStep, registerPanel } = useContext(StepperBaseContext);\n const currentStep = getCurrentStep();\n const isCurrent = currentStep?.id === step;\n\n useLayoutEffect(() => {\n return registerPanel(step, id);\n }, [id, registerPanel, step]);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n if (!isCurrent) {\n return null;\n }\n\n return (\n <motion.div\n style={styleCombined}\n className={cx(styles[\"stepper-panel\"], className)}\n transition={{\n opacity: {\n duration: +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-base-panel\"\n id={id}\n ref={ref}\n >\n <Overflow flexGrow={1}>{children}</Overflow>\n </motion.div>\n );\n});\n\nStepperBasePanel.displayName = \"StepperBasePanel\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\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 type { LayoutUtilProps } from \"../../../types\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../../internal/hooks\";\n\nimport { StepperBaseList } from \"./StepperBaseList\";\nimport { StepperBaseStep } from \"./StepperBaseStep\";\nimport { StepperBasePanel } from \"./StepperBasePanel\";\nimport {\n StepperBaseContext,\n type StepperBaseContextValue,\n type StepperBaseStepInfo,\n} from \"./internal/StepperBaseContext\";\n\nimport styles from \"../Stepper.module.scss\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type StepperBaseProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /** Controlled current step (0-based). Pair with `onIndexChange`. */\n index?: number;\n\n /**\n * Uncontrolled start. Ignored when `index` is set. Defaults to `0`.\n */\n defaultIndex?: number;\n\n /** Called with the requested 0-based index. */\n onIndexChange?: (index: number) => void;\n\n /**\n * Click, Enter, and Space can activate a step. Arrow keys only move\n * focus. Defaults to `false`.\n */\n interactive?: boolean;\n };\n\n/**\n * Controllable stepper primitive: current index is controlled (`index` +\n * `onIndexChange`) or uncontrolled (`defaultIndex`). Each step's outcome is\n * independent of current. {@link Stepper} is the linear wizard on top.\n * Display-only until `interactive`. Panels are optional.\n *\n * @example\n * <StepperBase index={2}>\n * <StepperBase.List>\n * <StepperBase.Step state=\"complete\">Approved</StepperBase.Step>\n * <StepperBase.Step>Scheduled</StepperBase.Step>\n * </StepperBase.List>\n * </StepperBase>\n */\nexport const StepperBase = Object.assign(\n forwardRef<HTMLDivElement, StepperBaseProps>(\n function StepperBaseInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n index,\n defaultIndex = 0,\n onIndexChange,\n interactive = false,\n className,\n children,\n style,\n ...rest\n } = componentProps;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const [currentIndex, setCurrentIndex] = useOptionallyControlledState({\n controlledValue: index,\n defaultValue: defaultIndex,\n onChange: onIndexChange,\n });\n const [focusIndex, setFocusIndex] = useState(index ?? defaultIndex);\n\n useEffect(() => {\n setFocusIndex(currentIndex);\n }, [currentIndex]);\n const stepsRef = useRef<Map<number, StepperBaseStepInfo>>(new Map());\n const [stepsVersion, setStepsVersion] = useState(0);\n const panelsRef = useRef<Map<string, string>>(new Map());\n const [panelsVersion, setPanelsVersion] = useState(0);\n\n const bumpSteps = useCallback(() => {\n setStepsVersion((value) => value + 1);\n }, []);\n\n const bumpPanels = useCallback(() => {\n setPanelsVersion((value) => value + 1);\n }, []);\n\n const registerStep = useCallback(\n (info: StepperBaseStepInfo) => {\n stepsRef.current.set(info.index, info);\n bumpSteps();\n return () => {\n const current = stepsRef.current.get(info.index);\n // Same-object check: a remount may already have replaced this slot.\n if (current === info) {\n stepsRef.current.delete(info.index);\n bumpSteps();\n }\n };\n },\n [bumpSteps],\n );\n\n const getStep = useCallback((stepIndex: number) => {\n return stepsRef.current.get(stepIndex);\n }, []);\n\n const getCurrentStep = useCallback(() => {\n return stepsRef.current.get(currentIndex);\n }, [currentIndex]);\n\n const requestIndexChange = useCallback(\n (nextIndex: number) => {\n if (!interactive) return;\n const target = stepsRef.current.get(nextIndex);\n if (target?.disabled) return;\n setCurrentIndex(nextIndex);\n setFocusIndex(nextIndex);\n },\n [interactive, setCurrentIndex],\n );\n\n const registerPanel = useCallback(\n (stepId: string, panelId: string) => {\n panelsRef.current.set(stepId, panelId);\n bumpPanels();\n return () => {\n // Same-id check: a remount may already have replaced this panel.\n if (panelsRef.current.get(stepId) === panelId) {\n panelsRef.current.delete(stepId);\n bumpPanels();\n }\n };\n },\n [bumpPanels],\n );\n\n const getPanelId = useCallback((stepId: string) => {\n return panelsRef.current.get(stepId);\n }, []);\n\n // Maps live in refs; version counters in the dep list force consumers\n // to re-read them.\n const value = useMemo<StepperBaseContextValue>(\n () => ({\n currentIndex,\n interactive,\n focusIndex,\n setFocusIndex,\n requestIndexChange,\n registerStep,\n getStep,\n getCurrentStep,\n getPanelId,\n registerPanel,\n }),\n [\n currentIndex,\n interactive,\n focusIndex,\n requestIndexChange,\n registerStep,\n getStep,\n getCurrentStep,\n getPanelId,\n registerPanel,\n stepsVersion,\n panelsVersion,\n ],\n );\n\n const styleCombined = { ...style, ...layoutStyles };\n\n return (\n <StepperBaseContext.Provider value={value}>\n <motion.div\n transition={{ duration: 0 }}\n layout\n className={cx(styles.stepper, className)}\n data-anv=\"stepper-base\"\n style={styleCombined}\n {...rest}\n ref={useMergeRefs([rootRef, ref])}\n >\n {children}\n </motion.div>\n </StepperBaseContext.Provider>\n );\n },\n ),\n {\n /** Progress marker for one step in the track. */\n Step: StepperBaseStep,\n\n /** Track of `StepperBase.Step` children plus the compact current label. */\n List: StepperBaseList,\n\n /** Body shown while its named step is current. */\n Panel: StepperBasePanel,\n },\n);\nStepperBase.displayName = \"StepperBase\";\n","import { type ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport cx from \"classnames\";\n\nimport { StepperBaseContext } from \"./base/internal/StepperBaseContext\";\nimport { StepperStepIndexScope } from \"./base/internal/StepperStepIndexScope\";\n\nimport styles from \"./StepperList.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type StepperListProps = ComponentPropsWithoutRef<\"div\">;\n\n/** Track of `Stepper.Step` children plus the compact current label. */\nexport const StepperList = forwardRef<HTMLDivElement, StepperListProps>(\n (props, ref) => {\n const { className, children, onKeyDown: _onKeyDown, ...rest } = props;\n const { getCurrentStep } = useContext(StepperBaseContext);\n const currentLabel = getCurrentStep()?.label;\n\n const tabListClassNames = cx(styles[\"stepper-list\"], className);\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\"]}>\n <StepperStepIndexScope>{children}</StepperStepIndexScope>\n </div>\n <span className={styles.label}>{currentLabel}</span>\n </div>\n );\n },\n);\n\nStepperList.displayName = \"StepperList\";\n","import { type Dispatch, type 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 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 {\n forwardRef,\n useContext,\n useLayoutEffect,\n useRef,\n type KeyboardEvent,\n type MouseEvent,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\n\nimport { Icon } from \"../Icon\";\nimport { useMergeRefs } from \"../../hooks\";\nimport {\n StepperBaseContext,\n useStepperStepIndex,\n} from \"./base/internal/StepperBaseContext\";\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./StepperStep.module.scss\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"button\">, \"onClick\" | \"disabled\">\n */\nexport type StepperStepProps = Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"onClick\" | \"disabled\"\n> & {\n /** Must match the paired `Stepper.Panel` `id`. */\n controls: string;\n\n /**\n * Runs first and receives this step's 0-based index. Navigation still\n * requires `allowNavigateToPrevStep` and a non-future step.\n */\n onClick?: (e: MouseEvent<HTMLButtonElement>, index?: number) => void;\n};\n\n/** Progress marker for one step in the wizard track. */\nexport const StepperStep = forwardRef<HTMLButtonElement, StepperStepProps>(\n (props, ref) => {\n const stepRef = useRef<HTMLButtonElement>(null);\n const index = useStepperStepIndex();\n const { registerStep, getStep } = useContext(StepperBaseContext);\n const {\n current,\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 childrenText =\n typeof children === \"string\"\n ? children\n : typeof children === \"number\"\n ? String(children)\n : undefined;\n const label = childrenText || ariaLabel || \"\";\n\n useLayoutEffect(() => {\n if (index === undefined) return;\n return registerStep({\n index,\n id: controls,\n label,\n disabled: false,\n node: stepRef,\n });\n }, [controls, index, label, registerStep]);\n\n const selected = index === current;\n const completed = index !== undefined && index < current;\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);\n if (\n !allowNavigateToPrevStep ||\n selected ||\n index === undefined ||\n index > current\n ) {\n return;\n }\n setCurrent(index);\n setFocus(index);\n stepRef.current?.focus();\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n const focusableItems: HTMLElement[] = [];\n for (let i = 0; i <= current; i += 1) {\n const node = getStep(i)?.node.current;\n if (node) focusableItems.push(node);\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 return;\n }\n setFocus(nextFocus);\n focusableItems[nextFocus].focus();\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 return;\n }\n setFocus(prevFocus);\n focusableItems[prevFocus].focus();\n break;\n }\n };\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={\n allowNavigateToPrevStep && index === focus && !allCompleted ? 0 : -1\n }\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 type 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 type { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { Overflow } from \"../Overflow\";\nimport { StepperBaseContext } from \"./base/internal/StepperBaseContext\";\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./StepperPanel.module.scss\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type StepperPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /**\n * Must match the paired `Stepper.Step` `controls`. Only the current\n * incomplete panel renders.\n */\n id: string;\n };\n\n/** Body shown while its paired step is current and the wizard is incomplete. */\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 { allCompleted, setCurrentId } = useContext(StepperContext);\n const { getCurrentStep } = useContext(StepperBaseContext);\n\n const currentStepId = getCurrentStep()?.id;\n const isCurrent = currentStepId === id;\n\n useEffect(() => {\n if (isCurrent && !allCompleted) {\n setCurrentId(currentStepId ?? \"\");\n }\n }, [allCompleted, isCurrent, currentStepId, 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 type 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 type { 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 * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type StepperFinalPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps;\n\n/** Shown after the last Next completes, or when `defaultIndex` starts completed. */\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 type { StepperBaseContextValue } from \"../base/internal/StepperBaseContext\";\n\n/** Walks 0, 1, … until `getStep` returns undefined. A hole in the map ends the count. */\nexport function countRegisteredSteps(\n getStep: StepperBaseContextValue[\"getStep\"],\n): number {\n let count = 0;\n while (getStep(count)) count += 1;\n return count;\n}\n","import { forwardRef, useContext, type MouseEvent } from \"react\";\n\nimport { Button, type ButtonProps } from \"../Button\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\nimport { StepperBaseContext } from \"./base/internal/StepperBaseContext\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\nimport { countRegisteredSteps } from \"./internal/countRegisteredSteps\";\n\n/**\n * @extends Omit<ButtonProps, \"children\">\n * @extends DataTrackingId\n */\nexport type StepperNextButtonProps = Omit<ButtonProps, \"children\"> & {\n /** Label except on the last step. Defaults to `\"Next\"`. */\n nextLabel?: string;\n\n /** Label on the last step. Defaults to `\"Complete\"`. */\n completeLabel?: string;\n\n /**\n * Return `false` or a Promise that resolves to `false` to block advance.\n * `void` or `true` proceeds. Last successful click completes.\n */\n onClick?: (\n e: MouseEvent<HTMLButtonElement>,\n ) => void | boolean | Promise<boolean>;\n} & DataTrackingId;\n\n/**\n * Advances the wizard. Hidden after completion. Last step shows\n * `completeLabel` and fires `onComplete`. Appearance defaults to `primary`.\n */\nexport const StepperNextButton = forwardRef<\n HTMLButtonElement,\n StepperNextButtonProps\n>((props, ref) => {\n const {\n setAllCompleted,\n onComplete,\n setCurrent,\n setFocus,\n current,\n allCompleted,\n } = useContext(StepperContext);\n const { getStep } = useContext(StepperBaseContext);\n const stepCount = countRegisteredSteps(getStep);\n const isLastStep = stepCount > 0 && current === stepCount - 1;\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 (isLastStep) {\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 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 } 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 {isLastStep ? completeLabel : nextLabel}\n </Button>\n );\n});\n\nStepperNextButton.displayName = \"StepperNextButton\";\n","import { forwardRef, useContext, type MouseEvent } from \"react\";\n\nimport type { DataTrackingId } from \"../../types\";\nimport { Button, type ButtonProps } from \"../Button\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\n\n/**\n * @extends Omit<ButtonProps, \"children\">\n * @extends DataTrackingId\n */\nexport type StepperPrevButtonProps = Omit<ButtonProps, \"children\"> & {\n /** Button text. Defaults to `\"Previous\"`. */\n label?: string;\n} & DataTrackingId;\n\n/**\n * Goes back one step. Hidden on the first step. From FinalPanel, restores\n * the last step instead of decrementing.\n */\nexport const StepperPrevButton = forwardRef<\n HTMLButtonElement,\n StepperPrevButtonProps\n>((props, ref) => {\n const { setCurrent, setFocus, allCompleted, setAllCompleted, current } =\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 } 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 { useContext, useEffect, useRef } from \"react\";\n\nimport { StepperBaseContext } from \"../base/internal/StepperBaseContext\";\n\nimport { countRegisteredSteps } from \"./countRegisteredSteps\";\nimport { StepperContext } from \"./StepperContext\";\n\n/**\n * After the first step registers, `defaultIndex >=` step count marks the\n * wizard complete on the last step. Runs once.\n */\nexport function StepperWizardBootstrap({\n defaultIndex,\n}: {\n defaultIndex?: number;\n}) {\n const { getStep } = useContext(StepperBaseContext);\n const { setAllCompleted, setCurrent, setFocus } = useContext(StepperContext);\n const didBootstrap = useRef(false);\n const hasSteps = !!getStep(0);\n\n useEffect(() => {\n if (didBootstrap.current || !hasSteps) return;\n didBootstrap.current = true;\n\n const stepCount = countRegisteredSteps(getStep);\n if (defaultIndex !== undefined && defaultIndex >= stepCount) {\n const lastIndex = stepCount - 1;\n setAllCompleted?.(true);\n setCurrent(lastIndex);\n setFocus(lastIndex);\n }\n }, [defaultIndex, getStep, hasSteps, setAllCompleted, setCurrent, setFocus]);\n\n return null;\n}\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\n\nimport type { LayoutUtilProps } from \"../../types\";\nimport { StepperBase } from \"./base\";\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\";\nimport { StepperWizardBootstrap } from \"./internal/StepperWizardBootstrap\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\" | \"onChange\">\n * @extends LayoutUtilProps\n */\nexport type StepperProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\" | \"onChange\"\n> &\n LayoutUtilProps & {\n /**\n * Uncontrolled 0-based start. Defaults to `0`. When this is `>=` the\n * registered step count after steps mount, the wizard starts completed\n * on `Stepper.FinalPanel`.\n */\n defaultIndex?: number;\n\n /**\n * Lets users click and arrow-key to the current step and earlier ones.\n * Later steps stay inert. Does not affect Next/Prev. Defaults to `false`.\n */\n allowNavigateToPrevStep?: boolean;\n\n /**\n * Fires when the visible panel id or completed state changes.\n * `currentStepId` is that panel's `id`, or `\"final-panel\"`.\n * `currentStepIndex` is omitted on the final panel.\n */\n onChange?: (data: {\n currentStepId: string | \"final-panel\";\n currentStepIndex?: number;\n }) => void;\n\n /** Fires when Next succeeds on the last step. */\n onComplete?: () => void;\n };\n\n/**\n * Linear wizard built on {@link StepperBase}. Current step is uncontrolled.\n * Next/Prev drive progress; steps stay display-only unless\n * `allowNavigateToPrevStep` reopens earlier ones.\n *\n * @example\n * <Stepper allowNavigateToPrevStep>\n * <Stepper.List>\n * <Stepper.Step controls=\"step1\">One</Stepper.Step>\n * <Stepper.Step controls=\"step2\">Two</Stepper.Step>\n * </Stepper.List>\n * <Stepper.Panel id=\"step1\">First</Stepper.Panel>\n * <Stepper.Panel id=\"step2\">Second</Stepper.Panel>\n * <Stepper.FinalPanel>Done</Stepper.FinalPanel>\n * <Stepper.PrevButton />\n * <Stepper.NextButton />\n * </Stepper>\n */\nexport const Stepper = Object.assign(\n forwardRef<HTMLDivElement, StepperProps>(function StepperInner(props, ref) {\n const {\n defaultIndex,\n allowNavigateToPrevStep,\n children,\n onChange,\n onComplete,\n ...rest\n } = props;\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\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 value = useMemo(\n () => ({\n current,\n setCurrent,\n currentId,\n setCurrentId,\n focus,\n setFocus,\n onComplete,\n allCompleted,\n setAllCompleted,\n allowNavigateToPrevStep,\n }),\n [\n current,\n currentId,\n focus,\n onComplete,\n allCompleted,\n allowNavigateToPrevStep,\n ],\n );\n\n return (\n <StepperBase\n index={current}\n interactive={false}\n data-anv=\"stepper\"\n {...rest}\n ref={ref}\n >\n <StepperContext.Provider value={value}>\n <StepperWizardBootstrap defaultIndex={defaultIndex} />\n {children}\n </StepperContext.Provider>\n </StepperBase>\n );\n }),\n {\n /** Progress marker for one step in the track. */\n Step: StepperStep,\n\n /** Track of `Stepper.Step` children plus the compact current label. */\n List: StepperList,\n\n /** Body shown while its paired step is current and the wizard is incomplete. */\n Panel: StepperPanel,\n\n /** Advances; last step uses `completeLabel` and calls `onComplete`. */\n NextButton: StepperNextButton,\n\n /** Goes back one step, or leaves the completed FinalPanel. Hidden on the first step. */\n PrevButton: StepperPrevButton,\n\n /** Shown after the last Next completes, or when `defaultIndex` starts completed. */\n FinalPanel: StepperFinalPanel,\n },\n);\nStepper.displayName = \"Stepper\";\n"],"names":["styles","Check","core.primitive.DurationSlow","value"],"mappings":"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"}
1
+ {"version":3,"file":"Stepper-D3SHXfX1.js","sources":["../src/components/Stepper/base/internal/StepperBaseContext.ts","../src/components/Stepper/base/internal/StepperStepIndexScope.tsx","../src/components/Stepper/base/StepperBaseList.tsx","../src/components/Stepper/base/StepperBaseStep.tsx","../src/components/Stepper/base/StepperBasePanel.tsx","../src/components/Stepper/base/StepperBase.tsx","../src/components/Stepper/StepperList.tsx","../src/components/Stepper/internal/StepperContext.ts","../src/components/Stepper/StepperStep.tsx","../src/components/Stepper/StepperPanel.tsx","../src/components/Stepper/StepperFinalPanel.tsx","../src/components/Stepper/internal/countRegisteredSteps.ts","../src/components/Stepper/StepperNextButton.tsx","../src/components/Stepper/StepperPrevButton.tsx","../src/components/Stepper/internal/StepperWizardBootstrap.tsx","../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import { createContext, useContext, useRef, type RefObject } from \"react\";\n\n/** Per-step outcome. Independent of whether the step is current. */\nexport type StepperBaseStepState = \"not started\" | \"started\" | \"complete\";\n\nexport type StepperBaseStepInfo = {\n index: number;\n id?: string;\n label: string;\n disabled: boolean;\n node: RefObject<HTMLButtonElement | null>;\n};\n\nexport type StepperBaseContextValue = {\n currentIndex: number;\n interactive: boolean;\n focusIndex: number;\n setFocusIndex: (index: number) => void;\n requestIndexChange: (index: number) => void;\n registerStep: (info: StepperBaseStepInfo) => () => void;\n getStep: (index: number) => StepperBaseStepInfo | undefined;\n getCurrentStep: () => StepperBaseStepInfo | undefined;\n getPanelId: (stepId: string) => string | undefined;\n registerPanel: (stepId: string, panelId: string) => () => void;\n};\n\nexport const StepperBaseContext = createContext<StepperBaseContextValue>({\n currentIndex: 0,\n interactive: false,\n focusIndex: 0,\n setFocusIndex: () => undefined,\n requestIndexChange: () => undefined,\n registerStep: () => () => undefined,\n getStep: () => undefined,\n getCurrentStep: () => undefined,\n getPanelId: () => undefined,\n registerPanel: () => () => undefined,\n});\n\n/**\n * Hands out 0-based indices in render order, so steps work inside fragments and\n * wrapper components rather than only as direct List children. Each render of\n * StepperStepIndexScope starts a new pass.\n */\nexport type StepperBaseStepIndexPass = {\n allocate: () => number;\n};\n\nexport const StepperBaseStepIndexPassContext =\n createContext<StepperBaseStepIndexPass | null>(null);\n\ntype AllocatedIndex = {\n pass: StepperBaseStepIndexPass;\n index: number;\n};\n\n/**\n * Index of the calling step, or undefined when it renders outside a List.\n *\n * A step allocates at most once per pass, so it keeps its index when it\n * re-renders alone and when StrictMode renders it twice.\n */\nexport function useStepperStepIndex() {\n const pass = useContext(StepperBaseStepIndexPassContext);\n const allocated = useRef<AllocatedIndex | null>(null);\n\n if (!pass) return undefined;\n\n if (allocated.current?.pass !== pass) {\n allocated.current = { pass, index: pass.allocate() };\n }\n\n return allocated.current.index;\n}\n","import type { ReactNode } from \"react\";\n\nimport {\n StepperBaseStepIndexPassContext,\n type StepperBaseStepIndexPass,\n} from \"./StepperBaseContext\";\n\nfunction startIndexPass(): StepperBaseStepIndexPass {\n let nextIndex = 0;\n\n return {\n allocate: () => {\n const index = nextIndex;\n nextIndex += 1;\n return index;\n },\n };\n}\n\nexport function StepperStepIndexScope({ children }: { children: ReactNode }) {\n return (\n <StepperBaseStepIndexPassContext.Provider value={startIndexPass()}>\n {children}\n </StepperBaseStepIndexPassContext.Provider>\n );\n}\n","import { type ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport cx from \"classnames\";\n\nimport { StepperBaseContext } from \"./internal/StepperBaseContext\";\nimport { StepperStepIndexScope } from \"./internal/StepperStepIndexScope\";\n\nimport styles from \"../StepperList.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type StepperBaseListProps = ComponentPropsWithoutRef<\"div\">;\n\n/** Track of `StepperBase.Step` children plus the compact current label. */\nexport const StepperBaseList = forwardRef<HTMLDivElement, StepperBaseListProps>(\n (props, ref) => {\n const { className, children, ...rest } = props;\n const { getCurrentStep } = useContext(StepperBaseContext);\n const currentLabel = getCurrentStep()?.label;\n\n return (\n <div\n {...rest}\n className={cx(styles[\"stepper-list\"], className)}\n data-anv=\"stepper-base-list\"\n ref={ref}\n role=\"tablist\"\n >\n <div className={styles[\"stepper-steps\"]}>\n <StepperStepIndexScope>{children}</StepperStepIndexScope>\n </div>\n <span className={styles.label}>{currentLabel}</span>\n </div>\n );\n },\n);\n\nStepperBaseList.displayName = \"StepperBaseList\";\n","import {\n forwardRef,\n useContext,\n useLayoutEffect,\n useRef,\n type KeyboardEvent,\n type MouseEvent,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\n\nimport { Icon } from \"../../Icon\";\nimport { useMergeRefs } from \"../../../hooks\";\nimport {\n StepperBaseContext,\n useStepperStepIndex,\n type StepperBaseStepState,\n} from \"./internal/StepperBaseContext\";\n\nimport styles from \"../StepperStep.module.scss\";\n\nexport type { StepperBaseStepState };\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"button\">, \"onClick\" | \"disabled\">\n */\nexport type StepperBaseStepProps = Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"onClick\" | \"disabled\"\n> & {\n /**\n * Visual outcome, independent of whether this step is current. Current plus\n * any state is legal. Defaults to `\"not started\"`.\n */\n state?: StepperBaseStepState;\n\n /** Required when a `StepperBase.Panel` `step` points here. */\n id?: string;\n\n /**\n * Blocks becoming current via click or keyboard. Defaults to `false`.\n */\n disabled?: boolean;\n\n /**\n * Notify only; does not replace `onIndexChange`. Receives this step's\n * 0-based index.\n */\n onClick?: (e: MouseEvent<HTMLButtonElement>, index?: number) => void;\n};\n\n/** Progress marker for one step in the track. */\nexport const StepperBaseStep = forwardRef<\n HTMLButtonElement,\n StepperBaseStepProps\n>((props, ref) => {\n const stepRef = useRef<HTMLButtonElement>(null);\n const index = useStepperStepIndex();\n const {\n currentIndex,\n interactive,\n focusIndex,\n setFocusIndex,\n requestIndexChange,\n registerStep,\n getStep,\n getPanelId,\n } = useContext(StepperBaseContext);\n const {\n state = \"not started\",\n id,\n disabled = false,\n onClick,\n children,\n onKeyDown,\n className,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n\n const childrenText =\n typeof children === \"string\"\n ? children\n : typeof children === \"number\"\n ? String(children)\n : undefined;\n const label = childrenText || ariaLabel || \"\";\n\n useLayoutEffect(() => {\n if (index === undefined) return;\n return registerStep({\n index,\n id,\n label,\n disabled,\n node: stepRef,\n });\n }, [disabled, id, index, label, registerStep]);\n\n const selected = index === currentIndex;\n const completed = state === \"complete\";\n const panelId = id ? getPanelId(id) : undefined;\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e, index);\n if (index === undefined) return;\n requestIndexChange(index);\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (!interactive || index === undefined) return;\n\n const activatable: number[] = [];\n for (let i = 0; ; i += 1) {\n const step = getStep(i);\n if (!step) break;\n if (!step.disabled) activatable.push(i);\n }\n if (activatable.length === 0) return;\n\n const currentPos = activatable.indexOf(focusIndex);\n const safePos = currentPos === -1 ? 0 : currentPos;\n\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n requestIndexChange(focusIndex);\n break;\n case \"ArrowRight\": {\n e.preventDefault();\n const next = activatable[(safePos + 1) % activatable.length];\n setFocusIndex(next);\n getStep(next)?.node.current?.focus();\n break;\n }\n case \"ArrowLeft\": {\n e.preventDefault();\n const prev =\n activatable[(safePos - 1 + activatable.length) % activatable.length];\n setFocusIndex(prev);\n getStep(prev)?.node.current?.focus();\n break;\n }\n default:\n break;\n }\n };\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n data-anv=\"stepper-base-step\"\n data-state={state}\n data-completed={completed}\n className={cx(styles[\"stepper-step\"], className, {\n [styles[\"can-navigate\"]]: interactive,\n })}\n aria-selected={selected}\n aria-controls={panelId}\n aria-disabled={disabled || undefined}\n aria-label={childrenText || ariaLabel}\n tabIndex={interactive && index === focusIndex && !disabled ? 0 : -1}\n onClick={onClickHandler}\n onKeyDown={interactive ? onKeyDownHandler : onKeyDown}\n {...rest}\n id={id}\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 {children}\n </span>\n </button>\n );\n});\n\nStepperBaseStep.displayName = \"StepperBaseStep\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n useId,\n useLayoutEffect,\n} from \"react\";\nimport cx from \"classnames\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport { motion } from \"motion/react\";\n\nimport type { LayoutUtilProps } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport { Overflow } from \"../../Overflow\";\nimport { StepperBaseContext } from \"./internal/StepperBaseContext\";\n\nimport styles from \"../StepperPanel.module.scss\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type StepperBasePanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /** Must match the controlling `StepperBase.Step` `id`. */\n step: string;\n\n /**\n * Panel element id. Generated when omitted (used for `aria-controls`).\n */\n id?: string;\n };\n\n/** Body shown while its named step is current. */\nexport const StepperBasePanel = forwardRef<\n HTMLDivElement,\n StepperBasePanelProps\n>((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n step,\n id: idProp,\n className,\n style,\n children,\n ...rest\n } = componentProps;\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const { getCurrentStep, registerPanel } = useContext(StepperBaseContext);\n const currentStep = getCurrentStep();\n const isCurrent = currentStep?.id === step;\n\n useLayoutEffect(() => {\n return registerPanel(step, id);\n }, [id, registerPanel, step]);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n if (!isCurrent) {\n return null;\n }\n\n return (\n <motion.div\n style={styleCombined}\n className={cx(styles[\"stepper-panel\"], className)}\n transition={{\n opacity: {\n duration: +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-base-panel\"\n id={id}\n ref={ref}\n >\n <Overflow flexGrow={1}>{children}</Overflow>\n </motion.div>\n );\n});\n\nStepperBasePanel.displayName = \"StepperBasePanel\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\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 type { LayoutUtilProps } from \"../../../types\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../../internal/hooks\";\n\nimport { StepperBaseList } from \"./StepperBaseList\";\nimport { StepperBaseStep } from \"./StepperBaseStep\";\nimport { StepperBasePanel } from \"./StepperBasePanel\";\nimport {\n StepperBaseContext,\n type StepperBaseContextValue,\n type StepperBaseStepInfo,\n} from \"./internal/StepperBaseContext\";\n\nimport styles from \"../Stepper.module.scss\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type StepperBaseProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /** Controlled current step (0-based). Pair with `onIndexChange`. */\n index?: number;\n\n /**\n * Uncontrolled start. Ignored when `index` is set. Defaults to `0`.\n */\n defaultIndex?: number;\n\n /** Called with the requested 0-based index. */\n onIndexChange?: (index: number) => void;\n\n /**\n * Click, Enter, and Space can activate a step. Arrow keys only move\n * focus. Defaults to `false`.\n */\n interactive?: boolean;\n };\n\n/**\n * Controllable stepper primitive: current index is controlled (`index` +\n * `onIndexChange`) or uncontrolled (`defaultIndex`). Each step's outcome is\n * independent of current. {@link Stepper} is the linear wizard on top.\n * Display-only until `interactive`. Panels are optional.\n *\n * @example\n * <StepperBase index={2}>\n * <StepperBase.List>\n * <StepperBase.Step state=\"complete\">Approved</StepperBase.Step>\n * <StepperBase.Step>Scheduled</StepperBase.Step>\n * </StepperBase.List>\n * </StepperBase>\n */\nexport const StepperBase = Object.assign(\n forwardRef<HTMLDivElement, StepperBaseProps>(\n function StepperBaseInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n index,\n defaultIndex = 0,\n onIndexChange,\n interactive = false,\n className,\n children,\n style,\n ...rest\n } = componentProps;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const [currentIndex, setCurrentIndex] = useOptionallyControlledState({\n controlledValue: index,\n defaultValue: defaultIndex,\n onChange: onIndexChange,\n });\n const [focusIndex, setFocusIndex] = useState(index ?? defaultIndex);\n\n useEffect(() => {\n setFocusIndex(currentIndex);\n }, [currentIndex]);\n const stepsRef = useRef<Map<number, StepperBaseStepInfo>>(new Map());\n const [stepsVersion, setStepsVersion] = useState(0);\n const panelsRef = useRef<Map<string, string>>(new Map());\n const [panelsVersion, setPanelsVersion] = useState(0);\n\n const bumpSteps = useCallback(() => {\n setStepsVersion((value) => value + 1);\n }, []);\n\n const bumpPanels = useCallback(() => {\n setPanelsVersion((value) => value + 1);\n }, []);\n\n const registerStep = useCallback(\n (info: StepperBaseStepInfo) => {\n stepsRef.current.set(info.index, info);\n bumpSteps();\n return () => {\n const current = stepsRef.current.get(info.index);\n // Same-object check: a remount may already have replaced this slot.\n if (current === info) {\n stepsRef.current.delete(info.index);\n bumpSteps();\n }\n };\n },\n [bumpSteps],\n );\n\n const getStep = useCallback((stepIndex: number) => {\n return stepsRef.current.get(stepIndex);\n }, []);\n\n const getCurrentStep = useCallback(() => {\n return stepsRef.current.get(currentIndex);\n }, [currentIndex]);\n\n const requestIndexChange = useCallback(\n (nextIndex: number) => {\n if (!interactive) return;\n const target = stepsRef.current.get(nextIndex);\n if (target?.disabled) return;\n setCurrentIndex(nextIndex);\n setFocusIndex(nextIndex);\n },\n [interactive, setCurrentIndex],\n );\n\n const registerPanel = useCallback(\n (stepId: string, panelId: string) => {\n panelsRef.current.set(stepId, panelId);\n bumpPanels();\n return () => {\n // Same-id check: a remount may already have replaced this panel.\n if (panelsRef.current.get(stepId) === panelId) {\n panelsRef.current.delete(stepId);\n bumpPanels();\n }\n };\n },\n [bumpPanels],\n );\n\n const getPanelId = useCallback((stepId: string) => {\n return panelsRef.current.get(stepId);\n }, []);\n\n // Maps live in refs; version counters in the dep list force consumers\n // to re-read them.\n const value = useMemo<StepperBaseContextValue>(\n () => ({\n currentIndex,\n interactive,\n focusIndex,\n setFocusIndex,\n requestIndexChange,\n registerStep,\n getStep,\n getCurrentStep,\n getPanelId,\n registerPanel,\n }),\n [\n currentIndex,\n interactive,\n focusIndex,\n requestIndexChange,\n registerStep,\n getStep,\n getCurrentStep,\n getPanelId,\n registerPanel,\n stepsVersion,\n panelsVersion,\n ],\n );\n\n const styleCombined = { ...style, ...layoutStyles };\n\n return (\n <StepperBaseContext.Provider value={value}>\n <motion.div\n transition={{ duration: 0 }}\n layout\n className={cx(styles.stepper, className)}\n data-anv=\"stepper-base\"\n style={styleCombined}\n {...rest}\n ref={useMergeRefs([rootRef, ref])}\n >\n {children}\n </motion.div>\n </StepperBaseContext.Provider>\n );\n },\n ),\n {\n /** Progress marker for one step in the track. */\n Step: StepperBaseStep,\n\n /** Track of `StepperBase.Step` children plus the compact current label. */\n List: StepperBaseList,\n\n /** Body shown while its named step is current. */\n Panel: StepperBasePanel,\n },\n);\nStepperBase.displayName = \"StepperBase\";\n","import { type ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport cx from \"classnames\";\n\nimport { StepperBaseContext } from \"./base/internal/StepperBaseContext\";\nimport { StepperStepIndexScope } from \"./base/internal/StepperStepIndexScope\";\n\nimport styles from \"./StepperList.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type StepperListProps = ComponentPropsWithoutRef<\"div\">;\n\n/** Track of `Stepper.Step` children plus the compact current label. */\nexport const StepperList = forwardRef<HTMLDivElement, StepperListProps>(\n (props, ref) => {\n const { className, children, onKeyDown: _onKeyDown, ...rest } = props;\n const { getCurrentStep } = useContext(StepperBaseContext);\n const currentLabel = getCurrentStep()?.label;\n\n const tabListClassNames = cx(styles[\"stepper-list\"], className);\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\"]}>\n <StepperStepIndexScope>{children}</StepperStepIndexScope>\n </div>\n <span className={styles.label}>{currentLabel}</span>\n </div>\n );\n },\n);\n\nStepperList.displayName = \"StepperList\";\n","import { type Dispatch, type 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 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 {\n forwardRef,\n useContext,\n useLayoutEffect,\n useRef,\n type KeyboardEvent,\n type MouseEvent,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\n\nimport { Icon } from \"../Icon\";\nimport { useMergeRefs } from \"../../hooks\";\nimport {\n StepperBaseContext,\n useStepperStepIndex,\n} from \"./base/internal/StepperBaseContext\";\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./StepperStep.module.scss\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"button\">, \"onClick\" | \"disabled\">\n */\nexport type StepperStepProps = Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"onClick\" | \"disabled\"\n> & {\n /** Must match the paired `Stepper.Panel` `id`. */\n controls: string;\n\n /**\n * Runs first and receives this step's 0-based index. Navigation still\n * requires `allowNavigateToPrevStep` and a non-future step.\n */\n onClick?: (e: MouseEvent<HTMLButtonElement>, index?: number) => void;\n};\n\n/** Progress marker for one step in the wizard track. */\nexport const StepperStep = forwardRef<HTMLButtonElement, StepperStepProps>(\n (props, ref) => {\n const stepRef = useRef<HTMLButtonElement>(null);\n const index = useStepperStepIndex();\n const { registerStep, getStep } = useContext(StepperBaseContext);\n const {\n current,\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 childrenText =\n typeof children === \"string\"\n ? children\n : typeof children === \"number\"\n ? String(children)\n : undefined;\n const label = childrenText || ariaLabel || \"\";\n\n useLayoutEffect(() => {\n if (index === undefined) return;\n return registerStep({\n index,\n id: controls,\n label,\n disabled: false,\n node: stepRef,\n });\n }, [controls, index, label, registerStep]);\n\n const selected = index === current;\n const completed = index !== undefined && index < current;\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);\n if (\n !allowNavigateToPrevStep ||\n selected ||\n index === undefined ||\n index > current\n ) {\n return;\n }\n setCurrent(index);\n setFocus(index);\n stepRef.current?.focus();\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n const focusableItems: HTMLElement[] = [];\n for (let i = 0; i <= current; i += 1) {\n const node = getStep(i)?.node.current;\n if (node) focusableItems.push(node);\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 return;\n }\n setFocus(nextFocus);\n focusableItems[nextFocus].focus();\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 return;\n }\n setFocus(prevFocus);\n focusableItems[prevFocus].focus();\n break;\n }\n };\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={\n allowNavigateToPrevStep && index === focus && !allCompleted ? 0 : -1\n }\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 type 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 type { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { Overflow } from \"../Overflow\";\nimport { StepperBaseContext } from \"./base/internal/StepperBaseContext\";\nimport { StepperContext } from \"./internal/StepperContext\";\n\nimport styles from \"./StepperPanel.module.scss\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type StepperPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /**\n * Must match the paired `Stepper.Step` `controls`. Only the current\n * incomplete panel renders.\n */\n id: string;\n };\n\n/** Body shown while its paired step is current and the wizard is incomplete. */\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 { allCompleted, setCurrentId } = useContext(StepperContext);\n const { getCurrentStep } = useContext(StepperBaseContext);\n\n const currentStepId = getCurrentStep()?.id;\n const isCurrent = currentStepId === id;\n\n useEffect(() => {\n if (isCurrent && !allCompleted) {\n setCurrentId(currentStepId ?? \"\");\n }\n }, [allCompleted, isCurrent, currentStepId, 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 type 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 type { 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 * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type StepperFinalPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps;\n\n/** Shown after the last Next completes, or when `defaultIndex` starts completed. */\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 type { StepperBaseContextValue } from \"../base/internal/StepperBaseContext\";\n\n/** Walks 0, 1, … until `getStep` returns undefined. A hole in the map ends the count. */\nexport function countRegisteredSteps(\n getStep: StepperBaseContextValue[\"getStep\"],\n): number {\n let count = 0;\n while (getStep(count)) count += 1;\n return count;\n}\n","import { forwardRef, useContext, type MouseEvent } from \"react\";\n\nimport { Button, type ButtonProps } from \"../Button\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\nimport { StepperBaseContext } from \"./base/internal/StepperBaseContext\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\nimport { countRegisteredSteps } from \"./internal/countRegisteredSteps\";\n\n/**\n * @extends Omit<ButtonProps, \"children\">\n * @extends DataTrackingId\n */\nexport type StepperNextButtonProps = Omit<ButtonProps, \"children\"> & {\n /** Label except on the last step. Defaults to `\"Next\"`. */\n nextLabel?: string;\n\n /** Label on the last step. Defaults to `\"Complete\"`. */\n completeLabel?: string;\n\n /**\n * Return `false` or a Promise that resolves to `false` to block advance.\n * `void` or `true` proceeds. Last successful click completes.\n */\n onClick?: (\n e: MouseEvent<HTMLButtonElement>,\n ) => void | boolean | Promise<boolean>;\n} & DataTrackingId;\n\n/**\n * Advances the wizard. Hidden after completion. Last step shows\n * `completeLabel` and fires `onComplete`. Appearance defaults to `primary`.\n */\nexport const StepperNextButton = forwardRef<\n HTMLButtonElement,\n StepperNextButtonProps\n>((props, ref) => {\n const {\n setAllCompleted,\n onComplete,\n setCurrent,\n setFocus,\n current,\n allCompleted,\n } = useContext(StepperContext);\n const { getStep } = useContext(StepperBaseContext);\n const stepCount = countRegisteredSteps(getStep);\n const isLastStep = stepCount > 0 && current === stepCount - 1;\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 (isLastStep) {\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 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 } 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 {isLastStep ? completeLabel : nextLabel}\n </Button>\n );\n});\n\nStepperNextButton.displayName = \"StepperNextButton\";\n","import { forwardRef, useContext, type MouseEvent } from \"react\";\n\nimport type { DataTrackingId } from \"../../types\";\nimport { Button, type ButtonProps } from \"../Button\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport { StepperContext } from \"./internal/StepperContext\";\n\n/**\n * @extends Omit<ButtonProps, \"children\">\n * @extends DataTrackingId\n */\nexport type StepperPrevButtonProps = Omit<ButtonProps, \"children\"> & {\n /** Button text. Defaults to `\"Previous\"`. */\n label?: string;\n} & DataTrackingId;\n\n/**\n * Goes back one step. Hidden on the first step. From FinalPanel, restores\n * the last step instead of decrementing.\n */\nexport const StepperPrevButton = forwardRef<\n HTMLButtonElement,\n StepperPrevButtonProps\n>((props, ref) => {\n const { setCurrent, setFocus, allCompleted, setAllCompleted, current } =\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 } 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 { useContext, useEffect, useRef } from \"react\";\n\nimport { StepperBaseContext } from \"../base/internal/StepperBaseContext\";\n\nimport { countRegisteredSteps } from \"./countRegisteredSteps\";\nimport { StepperContext } from \"./StepperContext\";\n\n/**\n * After the first step registers, `defaultIndex >=` step count marks the\n * wizard complete on the last step. Runs once.\n */\nexport function StepperWizardBootstrap({\n defaultIndex,\n}: {\n defaultIndex?: number;\n}) {\n const { getStep } = useContext(StepperBaseContext);\n const { setAllCompleted, setCurrent, setFocus } = useContext(StepperContext);\n const didBootstrap = useRef(false);\n const hasSteps = !!getStep(0);\n\n useEffect(() => {\n if (didBootstrap.current || !hasSteps) return;\n didBootstrap.current = true;\n\n const stepCount = countRegisteredSteps(getStep);\n if (defaultIndex !== undefined && defaultIndex >= stepCount) {\n const lastIndex = stepCount - 1;\n setAllCompleted?.(true);\n setCurrent(lastIndex);\n setFocus(lastIndex);\n }\n }, [defaultIndex, getStep, hasSteps, setAllCompleted, setCurrent, setFocus]);\n\n return null;\n}\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\n\nimport type { LayoutUtilProps } from \"../../types\";\nimport { StepperBase } from \"./base\";\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\";\nimport { StepperWizardBootstrap } from \"./internal/StepperWizardBootstrap\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\" | \"onChange\">\n * @extends LayoutUtilProps\n */\nexport type StepperProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\" | \"onChange\"\n> &\n LayoutUtilProps & {\n /**\n * Uncontrolled 0-based start. Defaults to `0`. When this is `>=` the\n * registered step count after steps mount, the wizard starts completed\n * on `Stepper.FinalPanel`.\n */\n defaultIndex?: number;\n\n /**\n * Lets users click and arrow-key to the current step and earlier ones.\n * Later steps stay inert. Does not affect Next/Prev. Defaults to `false`.\n */\n allowNavigateToPrevStep?: boolean;\n\n /**\n * Fires when the visible panel id or completed state changes.\n * `currentStepId` is that panel's `id`, or `\"final-panel\"`.\n * `currentStepIndex` is omitted on the final panel.\n */\n onChange?: (data: {\n currentStepId: string | \"final-panel\";\n currentStepIndex?: number;\n }) => void;\n\n /** Fires when Next succeeds on the last step. */\n onComplete?: () => void;\n };\n\n/**\n * Linear wizard built on {@link StepperBase}. Current step is uncontrolled.\n * Next/Prev drive progress; steps stay display-only unless\n * `allowNavigateToPrevStep` reopens earlier ones.\n *\n * @example\n * <Stepper allowNavigateToPrevStep>\n * <Stepper.List>\n * <Stepper.Step controls=\"step1\">One</Stepper.Step>\n * <Stepper.Step controls=\"step2\">Two</Stepper.Step>\n * </Stepper.List>\n * <Stepper.Panel id=\"step1\">First</Stepper.Panel>\n * <Stepper.Panel id=\"step2\">Second</Stepper.Panel>\n * <Stepper.FinalPanel>Done</Stepper.FinalPanel>\n * <Stepper.PrevButton />\n * <Stepper.NextButton />\n * </Stepper>\n */\nexport const Stepper = Object.assign(\n forwardRef<HTMLDivElement, StepperProps>(function StepperInner(props, ref) {\n const {\n defaultIndex,\n allowNavigateToPrevStep,\n children,\n onChange,\n onComplete,\n ...rest\n } = props;\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\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 value = useMemo(\n () => ({\n current,\n setCurrent,\n currentId,\n setCurrentId,\n focus,\n setFocus,\n onComplete,\n allCompleted,\n setAllCompleted,\n allowNavigateToPrevStep,\n }),\n [\n current,\n currentId,\n focus,\n onComplete,\n allCompleted,\n allowNavigateToPrevStep,\n ],\n );\n\n return (\n <StepperBase\n index={current}\n interactive={false}\n data-anv=\"stepper\"\n {...rest}\n ref={ref}\n >\n <StepperContext.Provider value={value}>\n <StepperWizardBootstrap defaultIndex={defaultIndex} />\n {children}\n </StepperContext.Provider>\n </StepperBase>\n );\n }),\n {\n /** Progress marker for one step in the track. */\n Step: StepperStep,\n\n /** Track of `Stepper.Step` children plus the compact current label. */\n List: StepperList,\n\n /** Body shown while its paired step is current and the wizard is incomplete. */\n Panel: StepperPanel,\n\n /** Advances; last step uses `completeLabel` and calls `onComplete`. */\n NextButton: StepperNextButton,\n\n /** Goes back one step, or leaves the completed FinalPanel. Hidden on the first step. */\n PrevButton: StepperPrevButton,\n\n /** Shown after the last Next completes, or when `defaultIndex` starts completed. */\n FinalPanel: StepperFinalPanel,\n },\n);\nStepper.displayName = \"Stepper\";\n"],"names":["styles","Check","core.primitive.DurationSlow","value"],"mappings":";;;;;;;;;;;;;;AA0BO,MAAM,qBAAqB,aAAA,CAAuC;AAAA,EACvE,YAAA,EAAc,CAAA;AAAA,EACd,WAAA,EAAa,KAAA;AAAA,EACb,UAAA,EAAY,CAAA;AAAA,EACZ,eAAe,MAAM,MAAA;AAAA,EACrB,oBAAoB,MAAM,MAAA;AAAA,EAC1B,YAAA,EAAc,MAAM,MAAM,MAAA;AAAA,EAC1B,SAAS,MAAM,MAAA;AAAA,EACf,gBAAgB,MAAM,MAAA;AAAA,EACtB,YAAY,MAAM,MAAA;AAAA,EAClB,aAAA,EAAe,MAAM,MAAM;AAC7B,CAAC,CAAA;AAWM,MAAM,+BAAA,GACX,cAA+C,IAAI,CAAA;AAa9C,SAAS,mBAAA,GAAsB;AACpC,EAAA,MAAM,IAAA,GAAO,WAAW,+BAA+B,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,OAA8B,IAAI,CAAA;AAEpD,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAElB,EAAA,IAAI,SAAA,CAAU,OAAA,EAAS,IAAA,KAAS,IAAA,EAAM;AACpC,IAAA,SAAA,CAAU,UAAU,EAAE,IAAA,EAAM,KAAA,EAAO,IAAA,CAAK,UAAS,EAAE;AAAA,EACrD;AAEA,EAAA,OAAO,UAAU,OAAA,CAAQ,KAAA;AAC3B;;AClEA,SAAS,cAAA,GAA2C;AAClD,EAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,EAAA,OAAO;AAAA,IACL,UAAU,MAAM;AACd,MAAA,MAAM,KAAA,GAAQ,SAAA;AACd,MAAA,SAAA,IAAa,CAAA;AACb,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,GACF;AACF;AAEO,SAAS,qBAAA,CAAsB,EAAE,QAAA,EAAS,EAA4B;AAC3E,EAAA,2BACG,+BAAA,CAAgC,QAAA,EAAhC,EAAyC,KAAA,EAAO,cAAA,IAC9C,QAAA,EACH,CAAA;AAEJ;;;;;;;;;ACXO,MAAM,eAAA,GAAkB,UAAA;AAAA,EAC7B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AACzC,IAAA,MAAM,EAAE,cAAA,EAAe,GAAI,UAAA,CAAW,kBAAkB,CAAA;AACxD,IAAA,MAAM,YAAA,GAAe,gBAAe,EAAG,KAAA;AAEvC,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,IAAA;AAAA,QACJ,SAAA,EAAW,EAAA,CAAGA,QAAA,CAAO,cAAc,GAAG,SAAS,CAAA;AAAA,QAC/C,UAAA,EAAS,mBAAA;AAAA,QACT,GAAA;AAAA,QACA,IAAA,EAAK,SAAA;AAAA,QAEL,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAWA,QAAA,CAAO,eAAe,GACpC,QAAA,kBAAA,GAAA,CAAC,qBAAA,EAAA,EAAuB,UAAS,CAAA,EACnC,CAAA;AAAA,0BACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWA,QAAA,CAAO,OAAQ,QAAA,EAAA,YAAA,EAAa;AAAA;AAAA;AAAA,KAC/C;AAAA,EAEJ;AACF,CAAA;AAEA,eAAA,CAAgB,WAAA,GAAc,iBAAA;;;;;;;;;;;;;;ACgBvB,MAAM,eAAA,GAAkB,UAAA,CAG7B,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM,OAAA,GAAU,OAA0B,IAAI,CAAA;AAC9C,EAAA,MAAM,QAAQ,mBAAA,EAAoB;AAClC,EAAA,MAAM;AAAA,IACJ,YAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,kBAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF,GAAI,WAAW,kBAAkB,CAAA;AACjC,EAAA,MAAM;AAAA,IACJ,KAAA,GAAQ,aAAA;AAAA,IACR,EAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,OAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,YAAA,GACJ,OAAO,QAAA,KAAa,QAAA,GAChB,QAAA,GACA,OAAO,QAAA,KAAa,QAAA,GAClB,MAAA,CAAO,QAAQ,CAAA,GACf,MAAA;AACR,EAAA,MAAM,KAAA,GAAQ,gBAAgB,SAAA,IAAa,EAAA;AAE3C,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,UAAU,MAAA,EAAW;AACzB,IAAA,OAAO,YAAA,CAAa;AAAA,MAClB,KAAA;AAAA,MACA,EAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH,GAAG,CAAC,QAAA,EAAU,IAAI,KAAA,EAAO,KAAA,EAAO,YAAY,CAAC,CAAA;AAE7C,EAAA,MAAM,WAAW,KAAA,KAAU,YAAA;AAC3B,EAAA,MAAM,YAAY,KAAA,KAAU,UAAA;AAC5B,EAAA,MAAM,OAAA,GAAU,EAAA,GAAK,UAAA,CAAW,EAAE,CAAA,GAAI,MAAA;AAEtC,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqC;AAC3D,IAAA,OAAA,GAAU,GAAG,KAAK,CAAA;AAClB,IAAA,IAAI,UAAU,MAAA,EAAW;AACzB,IAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAAwC;AAChE,IAAA,SAAA,GAAY,CAAC,CAAA;AACb,IAAA,IAAI,CAAC,WAAA,IAAe,KAAA,KAAU,MAAA,EAAW;AAEzC,IAAA,MAAM,cAAwB,EAAC;AAC/B,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,IAAK,CAAA,IAAK,CAAA,EAAG;AACxB,MAAA,MAAM,IAAA,GAAO,QAAQ,CAAC,CAAA;AACtB,MAAA,IAAI,CAAC,IAAA,EAAM;AACX,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,EAAU,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA,IACxC;AACA,IAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAE9B,IAAA,MAAM,UAAA,GAAa,WAAA,CAAY,OAAA,CAAQ,UAAU,CAAA;AACjD,IAAA,MAAM,OAAA,GAAU,UAAA,KAAe,EAAA,GAAK,CAAA,GAAI,UAAA;AAExC,IAAA,QAAQ,EAAE,IAAA;AAAM,MACd,KAAK,OAAA;AAAA,MACL,KAAK,OAAA;AACH,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,kBAAA,CAAmB,UAAU,CAAA;AAC7B,QAAA;AAAA,MACF,KAAK,YAAA,EAAc;AACjB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,MAAM,IAAA,GAAO,WAAA,CAAA,CAAa,OAAA,GAAU,CAAA,IAAK,YAAY,MAAM,CAAA;AAC3D,QAAA,aAAA,CAAc,IAAI,CAAA;AAClB,QAAA,OAAA,CAAQ,IAAI,CAAA,EAAG,IAAA,CAAK,OAAA,EAAS,KAAA,EAAM;AACnC,QAAA;AAAA,MACF;AAAA,MACA,KAAK,WAAA,EAAa;AAChB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,MAAM,OACJ,WAAA,CAAA,CAAa,OAAA,GAAU,IAAI,WAAA,CAAY,MAAA,IAAU,YAAY,MAAM,CAAA;AACrE,QAAA,aAAA,CAAc,IAAI,CAAA;AAClB,QAAA,OAAA,CAAQ,IAAI,CAAA,EAAG,IAAA,CAAK,OAAA,EAAS,KAAA,EAAM;AACnC,QAAA;AAAA,MACF;AAEE;AACJ,EACF,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAK,KAAA;AAAA,MACL,UAAA,EAAS,mBAAA;AAAA,MACT,YAAA,EAAY,KAAA;AAAA,MACZ,gBAAA,EAAgB,SAAA;AAAA,MAChB,SAAA,EAAW,EAAA,CAAGA,QAAA,CAAO,cAAc,GAAG,SAAA,EAAW;AAAA,QAC/C,CAACA,QAAA,CAAO,cAAc,CAAC,GAAG;AAAA,OAC3B,CAAA;AAAA,MACD,eAAA,EAAe,QAAA;AAAA,MACf,eAAA,EAAe,OAAA;AAAA,MACf,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,cAAY,YAAA,IAAgB,SAAA;AAAA,MAC5B,UAAU,WAAA,IAAe,KAAA,KAAU,UAAA,IAAc,CAAC,WAAW,CAAA,GAAI,EAAA;AAAA,MACjE,OAAA,EAAS,cAAA;AAAA,MACT,SAAA,EAAW,cAAc,gBAAA,GAAmB,SAAA;AAAA,MAC3C,GAAG,IAAA;AAAA,MACJ,EAAA;AAAA,MACA,GAAA,EAAK,YAAA,CAAa,CAAC,OAAA,EAAS,GAAG,CAAC,CAAA;AAAA,MAEhC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWA,QAAA,CAAO,GAAA,EAAK,CAAA;AAAA,wBAC7B,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWA,QAAA,CAAO,KAAA,EACtB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWA,QAAA,CAAO,MAAA,EACtB,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAKC,QAAA,EAAO,OAAA,EAAO,IAAA,EAAC,aAAA,EAAW,IAAA,EAAC,CAAA,EACxC,CAAA;AAAA,UACC;AAAA,SAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ,CAAC,CAAA;AAED,eAAA,CAAgB,WAAA,GAAc,iBAAA;;;;;;AClJvB,MAAM,gBAAA,GAAmB,UAAA,CAG9B,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,EAAA,EAAI,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,cAAA;AACJ,EAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,EAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,EAAA,MAAM,EAAE,cAAA,EAAgB,aAAA,EAAc,GAAI,WAAW,kBAAkB,CAAA;AACvE,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,MAAM,SAAA,GAAY,aAAa,EAAA,KAAO,IAAA;AAEtC,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,OAAO,aAAA,CAAc,MAAM,EAAE,CAAA;AAAA,EAC/B,CAAA,EAAG,CAAC,EAAA,EAAI,aAAA,EAAe,IAAI,CAAC,CAAA;AAE5B,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,GAAG,KAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA,CAAO,GAAA;AAAA,IAAP;AAAA,MACC,KAAA,EAAO,aAAA;AAAA,MACP,SAAA,EAAW,EAAA,CAAGD,QAAA,CAAO,eAAe,GAAG,SAAS,CAAA;AAAA,MAChD,UAAA,EAAY;AAAA,QACV,OAAA,EAAS;AAAA,UACP,QAAA,EAAU,CAACE,aAA4B,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA,GAAI;AAAA;AACnE,OACF;AAAA,MACA,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,MACtB,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,MACtB,IAAA,EAAM,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,MACnB,MAAA,EAAM,IAAA;AAAA,MACL,GAAG,IAAA;AAAA,MACJ,IAAA,EAAK,UAAA;AAAA,MACL,UAAA,EAAS,oBAAA;AAAA,MACT,EAAA;AAAA,MACA,GAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,QAAA,EAAU,CAAA,EAAI,QAAA,EAAS;AAAA;AAAA,GACnC;AAEJ,CAAC,CAAA;AAED,gBAAA,CAAiB,WAAA,GAAc,kBAAA;;;;;;;ACtBxB,MAAM,cAAc,MAAA,CAAO,MAAA;AAAA,EAChC,UAAA;AAAA,IACE,SAAS,gBAAA,CAAiB,KAAA,EAAO,GAAA,EAAK;AACpC,MAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,MAAA,MAAM;AAAA,QACJ,KAAA;AAAA,QACA,YAAA,GAAe,CAAA;AAAA,QACf,aAAA;AAAA,QACA,WAAA,GAAc,KAAA;AAAA,QACd,SAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,GAAG;AAAA,OACL,GAAI,cAAA;AAEJ,MAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAC3C,MAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,4BAAA,CAA6B;AAAA,QACnE,eAAA,EAAiB,KAAA;AAAA,QACjB,YAAA,EAAc,YAAA;AAAA,QACd,QAAA,EAAU;AAAA,OACX,CAAA;AACD,MAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,QAAA,CAAS,SAAS,YAAY,CAAA;AAElE,MAAA,SAAA,CAAU,MAAM;AACd,QAAA,aAAA,CAAc,YAAY,CAAA;AAAA,MAC5B,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AACjB,MAAA,MAAM,QAAA,GAAW,MAAA,iBAAyC,IAAI,GAAA,EAAK,CAAA;AACnE,MAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,CAAC,CAAA;AAClD,MAAA,MAAM,SAAA,GAAY,MAAA,iBAA4B,IAAI,GAAA,EAAK,CAAA;AACvD,MAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,CAAC,CAAA;AAEpD,MAAA,MAAM,SAAA,GAAY,YAAY,MAAM;AAClC,QAAA,eAAA,CAAgB,CAACC,MAAAA,KAAUA,MAAAA,GAAQ,CAAC,CAAA;AAAA,MACtC,CAAA,EAAG,EAAE,CAAA;AAEL,MAAA,MAAM,UAAA,GAAa,YAAY,MAAM;AACnC,QAAA,gBAAA,CAAiB,CAACA,MAAAA,KAAUA,MAAAA,GAAQ,CAAC,CAAA;AAAA,MACvC,CAAA,EAAG,EAAE,CAAA;AAEL,MAAA,MAAM,YAAA,GAAe,WAAA;AAAA,QACnB,CAAC,IAAA,KAA8B;AAC7B,UAAA,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,KAAA,EAAO,IAAI,CAAA;AACrC,UAAA,SAAA,EAAU;AACV,UAAA,OAAO,MAAM;AACX,YAAA,MAAM,OAAA,GAAU,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,KAAK,KAAK,CAAA;AAE/C,YAAA,IAAI,YAAY,IAAA,EAAM;AACpB,cAAA,QAAA,CAAS,OAAA,CAAQ,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAClC,cAAA,SAAA,EAAU;AAAA,YACZ;AAAA,UACF,CAAA;AAAA,QACF,CAAA;AAAA,QACA,CAAC,SAAS;AAAA,OACZ;AAEA,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,CAAC,SAAA,KAAsB;AACjD,QAAA,OAAO,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,SAAS,CAAA;AAAA,MACvC,CAAA,EAAG,EAAE,CAAA;AAEL,MAAA,MAAM,cAAA,GAAiB,YAAY,MAAM;AACvC,QAAA,OAAO,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,YAAY,CAAA;AAAA,MAC1C,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,MAAA,MAAM,kBAAA,GAAqB,WAAA;AAAA,QACzB,CAAC,SAAA,KAAsB;AACrB,UAAA,IAAI,CAAC,WAAA,EAAa;AAClB,UAAA,MAAM,MAAA,GAAS,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,SAAS,CAAA;AAC7C,UAAA,IAAI,QAAQ,QAAA,EAAU;AACtB,UAAA,eAAA,CAAgB,SAAS,CAAA;AACzB,UAAA,aAAA,CAAc,SAAS,CAAA;AAAA,QACzB,CAAA;AAAA,QACA,CAAC,aAAa,eAAe;AAAA,OAC/B;AAEA,MAAA,MAAM,aAAA,GAAgB,WAAA;AAAA,QACpB,CAAC,QAAgB,OAAA,KAAoB;AACnC,UAAA,SAAA,CAAU,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,OAAO,CAAA;AACrC,UAAA,UAAA,EAAW;AACX,UAAA,OAAO,MAAM;AAEX,YAAA,IAAI,SAAA,CAAU,OAAA,CAAQ,GAAA,CAAI,MAAM,MAAM,OAAA,EAAS;AAC7C,cAAA,SAAA,CAAU,OAAA,CAAQ,OAAO,MAAM,CAAA;AAC/B,cAAA,UAAA,EAAW;AAAA,YACb;AAAA,UACF,CAAA;AAAA,QACF,CAAA;AAAA,QACA,CAAC,UAAU;AAAA,OACb;AAEA,MAAA,MAAM,UAAA,GAAa,WAAA,CAAY,CAAC,MAAA,KAAmB;AACjD,QAAA,OAAO,SAAA,CAAU,OAAA,CAAQ,GAAA,CAAI,MAAM,CAAA;AAAA,MACrC,CAAA,EAAG,EAAE,CAAA;AAIL,MAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,QACZ,OAAO;AAAA,UACL,YAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAA;AAAA,UACA,aAAA;AAAA,UACA,kBAAA;AAAA,UACA,YAAA;AAAA,UACA,OAAA;AAAA,UACA,cAAA;AAAA,UACA,UAAA;AAAA,UACA;AAAA,SACF,CAAA;AAAA,QACA;AAAA,UACE,YAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAA;AAAA,UACA,kBAAA;AAAA,UACA,YAAA;AAAA,UACA,OAAA;AAAA,UACA,cAAA;AAAA,UACA,UAAA;AAAA,UACA,aAAA;AAAA,UACA,YAAA;AAAA,UACA;AAAA;AACF,OACF;AAEA,MAAA,MAAM,aAAA,GAAgB,EAAE,GAAG,KAAA,EAAO,GAAG,YAAA,EAAa;AAElD,MAAA,uBACE,GAAA,CAAC,kBAAA,CAAmB,QAAA,EAAnB,EAA4B,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA,CAAO,GAAA;AAAA,QAAP;AAAA,UACC,UAAA,EAAY,EAAE,QAAA,EAAU,CAAA,EAAE;AAAA,UAC1B,MAAA,EAAM,IAAA;AAAA,UACN,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,OAAA,EAAS,SAAS,CAAA;AAAA,UACvC,UAAA,EAAS,cAAA;AAAA,UACT,KAAA,EAAO,aAAA;AAAA,UACN,GAAG,IAAA;AAAA,UACJ,GAAA,EAAK,YAAA,CAAa,CAAC,OAAA,EAAS,GAAG,CAAC,CAAA;AAAA,UAE/B;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAAA,GACF;AAAA,EACA;AAAA;AAAA,IAEE,IAAA,EAAM,eAAA;AAAA;AAAA,IAGN,IAAA,EAAM,eAAA;AAAA;AAAA,IAGN,KAAA,EAAO;AAAA;AAEX;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;;AClNnB,MAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,WAAW,UAAA,EAAY,GAAG,MAAK,GAAI,KAAA;AAChE,IAAA,MAAM,EAAE,cAAA,EAAe,GAAI,UAAA,CAAW,kBAAkB,CAAA;AACxD,IAAA,MAAM,YAAA,GAAe,gBAAe,EAAG,KAAA;AAEvC,IAAA,MAAM,iBAAA,GAAoB,EAAA,CAAGH,QAAA,CAAO,cAAc,GAAG,SAAS,CAAA;AAE9D,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,IAAA;AAAA,QACJ,SAAA,EAAW,iBAAA;AAAA,QACX,UAAA,EAAS,cAAA;AAAA,QACT,GAAA;AAAA,QACA,IAAA,EAAK,SAAA;AAAA,QAEL,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAWA,QAAA,CAAO,eAAe,GACpC,QAAA,kBAAA,GAAA,CAAC,qBAAA,EAAA,EAAuB,UAAS,CAAA,EACnC,CAAA;AAAA,0BACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWA,QAAA,CAAO,OAAQ,QAAA,EAAA,YAAA,EAAa;AAAA;AAAA;AAAA,KAC/C;AAAA,EAEJ;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;ACxBnB,MAAM,iBAAiB,aAAA,CAAmC;AAAA,EAC/D,OAAA,EAAS,CAAA;AAAA,EACT,SAAA,EAAW,EAAA;AAAA,EACX,KAAA,EAAO,CAAA;AAAA,EACP,UAAU,MAAM,MAAA;AAAA,EAChB,YAAY,MAAM,MAAA;AAAA,EAClB,cAAc,MAAM;AACtB,CAAC,CAAA;;ACkBM,MAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,OAAA,GAAU,OAA0B,IAAI,CAAA;AAC9C,IAAA,MAAM,QAAQ,mBAAA,EAAoB;AAClC,IAAA,MAAM,EAAE,YAAA,EAAc,OAAA,EAAQ,GAAI,WAAW,kBAAkB,CAAA;AAC/D,IAAA,MAAM;AAAA,MACJ,OAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,cAAc,CAAA;AAC7B,IAAA,MAAM;AAAA,MACJ,OAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA,EAAc,SAAA;AAAA,MACd,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,YAAA,GACJ,OAAO,QAAA,KAAa,QAAA,GAChB,QAAA,GACA,OAAO,QAAA,KAAa,QAAA,GAClB,MAAA,CAAO,QAAQ,CAAA,GACf,MAAA;AACR,IAAA,MAAM,KAAA,GAAQ,gBAAgB,SAAA,IAAa,EAAA;AAE3C,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,UAAU,MAAA,EAAW;AACzB,MAAA,OAAO,YAAA,CAAa;AAAA,QAClB,KAAA;AAAA,QACA,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA;AAAA,QACA,QAAA,EAAU,KAAA;AAAA,QACV,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,GAAG,CAAC,QAAA,EAAU,KAAA,EAAO,KAAA,EAAO,YAAY,CAAC,CAAA;AAEzC,IAAA,MAAM,WAAW,KAAA,KAAU,OAAA;AAC3B,IAAA,MAAM,SAAA,GAAY,KAAA,KAAU,MAAA,IAAa,KAAA,GAAQ,OAAA;AAEjD,IAAA,MAAM,cAAA,GAAiB,EAAA,CAAGA,QAAA,CAAO,cAAc,GAAG,SAAA,EAAW;AAAA,MAC3D,CAACA,QAAA,CAAO,cAAc,CAAC,GAAG,uBAAA;AAAA,MAC1B,CAACA,QAAA,CAAO,eAAe,CAAC,GAAG;AAAA,KAC5B,CAAA;AAED,IAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqC;AAC3D,MAAA,OAAA,GAAU,GAAG,KAAK,CAAA;AAClB,MAAA,IACE,CAAC,uBAAA,IACD,QAAA,IACA,KAAA,KAAU,MAAA,IACV,QAAQ,OAAA,EACR;AACA,QAAA;AAAA,MACF;AACA,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,QAAA,CAAS,KAAK,CAAA;AACd,MAAA,OAAA,CAAQ,SAAS,KAAA,EAAM;AAAA,IACzB,CAAA;AAEA,IAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAAwC;AAChE,MAAA,SAAA,GAAY,CAAC,CAAA;AACb,MAAA,MAAM,iBAAgC,EAAC;AACvC,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,IAAK,OAAA,EAAS,KAAK,CAAA,EAAG;AACpC,QAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,CAAC,CAAA,EAAG,IAAA,CAAK,OAAA;AAC9B,QAAA,IAAI,IAAA,EAAM,cAAA,CAAe,IAAA,CAAK,IAAI,CAAA;AAAA,MACpC;AACA,MAAA,MAAM,YAAY,KAAA,GAAQ,CAAA;AAC1B,MAAA,MAAM,YAAY,KAAA,GAAQ,CAAA;AAC1B,MAAA,QAAQ,EAAE,IAAA;AAAM,QACd,KAAK,OAAA;AAAA,QACL,KAAK,OAAA;AACH,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,UAAA,CAAW,KAAK,CAAA;AAChB,UAAA;AAAA,QACF,KAAK,YAAA;AACH,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,IAAI,SAAA,KAAc,eAAe,MAAA,EAAQ;AACvC,YAAA,QAAA,CAAS,CAAC,CAAA;AACV,YAAA,cAAA,CAAe,CAAC,EAAE,KAAA,EAAM;AACxB,YAAA;AAAA,UACF;AACA,UAAA,QAAA,CAAS,SAAS,CAAA;AAClB,UAAA,cAAA,CAAe,SAAS,EAAE,KAAA,EAAM;AAChC,UAAA;AAAA,QACF,KAAK,WAAA;AACH,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,IAAI,UAAU,CAAA,EAAG;AACf,YAAA,MAAM,aAAA,GAAgB,eAAe,MAAA,GAAS,CAAA;AAC9C,YAAA,QAAA,CAAS,aAAa,CAAA;AACtB,YAAA,cAAA,CAAe,aAAa,EAAE,KAAA,EAAM;AACpC,YAAA;AAAA,UACF;AACA,UAAA,QAAA,CAAS,SAAS,CAAA;AAClB,UAAA,cAAA,CAAe,SAAS,EAAE,KAAA,EAAM;AAChC,UAAA;AAAA;AACJ,IACF,CAAA;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,KAAA;AAAA,QACL,UAAA,EAAS,cAAA;AAAA,QACT,SAAA,EAAW,cAAA;AAAA,QACX,eAAA,EAAe,QAAA;AAAA,QACf,eAAA,EAAe,QAAA;AAAA,QACf,cAAY,YAAA,IAAgB,SAAA;AAAA,QAC5B,UACE,uBAAA,IAA2B,KAAA,KAAU,KAAA,IAAS,CAAC,eAAe,CAAA,GAAI,EAAA;AAAA,QAEpE,gBAAA,EAAgB,SAAA;AAAA,QAChB,OAAA,EAAS,cAAA;AAAA,QACT,SAAA,EAAW,0BAA0B,gBAAA,GAAmB,SAAA;AAAA,QACvD,GAAG,IAAA;AAAA,QACJ,GAAA,EAAK,YAAA,CAAa,CAAC,OAAA,EAAS,GAAG,CAAC,CAAA;AAAA,QAEhC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWA,QAAA,CAAO,GAAA,EAAK,CAAA;AAAA,0BAC7B,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWA,QAAA,CAAO,KAAA,EACtB,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAWA,QAAA,CAAO,MAAA,EACtB,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAKC,QAAA,EAAO,OAAA,EAAO,IAAA,EAAC,aAAA,EAAW,IAAA,EAAC,CAAA,EACxC,CAAA;AAAA,YAEC;AAAA,WAAA,EACH;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;AC7InB,MAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM,EAAE,EAAA,EAAI,SAAA,EAAW,OAAO,QAAA,EAAU,GAAG,MAAK,GAAI,cAAA;AACpD,IAAA,MAAM,EAAE,YAAA,EAAc,YAAA,EAAa,GAAI,WAAW,cAAc,CAAA;AAChE,IAAA,MAAM,EAAE,cAAA,EAAe,GAAI,UAAA,CAAW,kBAAkB,CAAA;AAExD,IAAA,MAAM,aAAA,GAAgB,gBAAe,EAAG,EAAA;AACxC,IAAA,MAAM,YAAY,aAAA,KAAkB,EAAA;AAEpC,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,SAAA,IAAa,CAAC,YAAA,EAAc;AAC9B,QAAA,YAAA,CAAa,iBAAiB,EAAE,CAAA;AAAA,MAClC;AAAA,IACF,GAAG,CAAC,YAAA,EAAc,SAAA,EAAW,aAAA,EAAe,YAAY,CAAC,CAAA;AAEzD,IAAA,MAAM,kBAAA,GAAqB,EAAA,CAAGD,QAAA,CAAO,eAAe,GAAG,SAAS,CAAA;AAChE,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,IAAI,SAAA,IAAa,CAAC,YAAA,EAAc;AAC9B,MAAA,uBACE,GAAA;AAAA,QAAC,MAAA,CAAO,GAAA;AAAA,QAAP;AAAA,UACC,KAAA,EAAO,aAAA;AAAA,UACP,SAAA,EAAW,kBAAA;AAAA,UACX,UAAA,EAAY;AAAA,YACV,OAAA,EAAS;AAAA,cACP,QAAA,EACE,CAACE,aAA4B,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA,GAAI;AAAA;AAC3D,WACF;AAAA,UACA,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,UACtB,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,UACtB,IAAA,EAAM,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,UACnB,MAAA,EAAM,IAAA;AAAA,UACL,GAAG,IAAA;AAAA,UACJ,IAAA,EAAK,UAAA;AAAA,UACL,UAAA,EAAS,eAAA;AAAA,UACT,EAAA;AAAA,UACA,GAAA;AAAA,UAEA,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,QAAA,EAAU,CAAA,EAAI,QAAA,EAAS;AAAA;AAAA,OACnC;AAAA,IAEJ;AACA,IAAA,uBAAO,GAAA,CAAA,QAAA,EAAA,EAAE,CAAA;AAAA,EACX;AACF,CAAA;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;AC1DpB,MAAM,iBAAA,GAAoB,UAAA,CAG/B,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,EAAA,MAAM,EAAE,EAAA,EAAI,SAAA,EAAW,OAAO,QAAA,EAAU,GAAG,MAAK,GAAI,cAAA;AACpD,EAAA,MAAM,EAAE,YAAA,EAAc,YAAA,EAAa,GAAI,WAAW,cAAc,CAAA;AAEhE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,YAAA,CAAa,aAAa,CAAA;AAAA,IAC5B;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,YAAY,CAAC,CAAA;AAE/B,EAAA,MAAM,kBAAA,GAAqB,EAAA,CAAGF,QAAA,CAAO,eAAe,GAAG,SAAS,CAAA;AAChE,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,GAAG,KAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA,CAAO,GAAA;AAAA,MAAP;AAAA,QACC,KAAA,EAAO,aAAA;AAAA,QACP,SAAA,EAAW,kBAAA;AAAA,QACX,UAAA,EAAY;AAAA,UACV,OAAA,EAAS;AAAA,YACP,QAAA,EACE,CAACE,aAA4B,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAA,GAAI;AAAA;AAC3D,SACF;AAAA,QACA,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,QACtB,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,QACtB,IAAA,EAAM,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,QACnB,MAAA,EAAM,IAAA;AAAA,QACL,GAAG,IAAA;AAAA,QACJ,IAAA,EAAK,UAAA;AAAA,QACL,UAAA,EAAS,qBAAA;AAAA,QACT,QAAA,EAAU,CAAA;AAAA,QACV,GAAA;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,YAAU,QAAA,EAAS;AAAA;AAAA,KACtB;AAAA,EAEJ;AACA,EAAA,OAAO,IAAA;AACT,CAAC,CAAA;AAED,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;ACzEzB,SAAS,qBACd,OAAA,EACQ;AACR,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,OAAO,OAAA,CAAQ,KAAK,CAAA,EAAG,KAAA,IAAS,CAAA;AAChC,EAAA,OAAO,KAAA;AACT;;ACyBO,MAAM,iBAAA,GAAoB,UAAA,CAG/B,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM;AAAA,IACJ,eAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF,GAAI,WAAW,cAAc,CAAA;AAC7B,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,UAAA,CAAW,kBAAkB,CAAA;AACjD,EAAA,MAAM,SAAA,GAAY,qBAAqB,OAAO,CAAA;AAC9C,EAAA,MAAM,UAAA,GAAa,SAAA,GAAY,CAAA,IAAK,OAAA,KAAY,SAAA,GAAY,CAAA;AAC5D,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA,GAAY,MAAA;AAAA,IACZ,aAAA,GAAgB,UAAA;AAAA,IAChB,UAAA,GAAa,SAAA;AAAA,IACb,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,eAAA,GAAkB,IAAI,CAAA;AACtB,MAAA,UAAA,IAAa;AACb,MAAA;AAAA,IACF;AACA,IAAA,UAAA,CAAW,UAAU,CAAC,CAAA;AACtB,IAAA,QAAA,CAAS,UAAU,CAAC,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqC;AAC3D,IAAA,MAAM,aAAA,GAAgB,UAAU,CAAC,CAAA;AAEjC,IAAA,IACE,aAAA,KAAkB,MAAA,IAClB,aAAA,IACC,aAAA,YAAqC,OAAA,EACtC;AACA,MAAC,aAAA,CAA8C,IAAA,CAAK,CAAC,MAAA,KAAW;AAC9D,QAAA,IAAI,WAAW,KAAA,EAAO;AACtB,QAAA,iBAAA,EAAkB;AAAA,MACpB,CAAC,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,IAAK,kBAAqC,KAAA,EAAO;AACjD,MAAA,iBAAA,EAAkB;AAAA,IACpB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,eAAe,KAAA,CAAM;AAAA,GACvB;AAEA,EAAA,MAAM,aAAa,aAAA,CAAc;AAAA,IAC/B,IAAA,EAAM,mBAAA;AAAA,IACN,IAAA;AAAA,IACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GACxC,CAAA;AAED,EAAA,OAAO,eAAe,IAAA,mBACpB,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAS,qBAAA;AAAA,MACT,kBAAA,EAAkB,UAAA;AAAA,MAClB,OAAA,EAAS,cAAA;AAAA,MACT,UAAA;AAAA,MACA,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,uBAAa,aAAA,GAAgB;AAAA;AAAA,GAChC;AAEJ,CAAC,CAAA;AAED,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;AC1FzB,MAAM,iBAAA,GAAoB,UAAA,CAG/B,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM,EAAE,YAAY,QAAA,EAAU,YAAA,EAAc,iBAAiB,OAAA,EAAQ,GACnE,WAAW,cAAc,CAAA;AAC3B,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,GAAQ,YAAY,OAAA,EAAS,GAAG,MAAK,GAAI,KAAA;AAE1D,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqC;AAC3D,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,eAAA,GAAkB,KAAK,CAAA;AAAA,IACzB,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,UAAU,CAAC,CAAA;AACtB,MAAA,QAAA,CAAS,UAAU,CAAC,CAAA;AAAA,IACtB;AAEA,IAAA,OAAA,GAAU,CAAC,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,OAAO,KAAA,CAAM;AAAA,GACf;AAEA,EAAA,MAAM,aAAa,aAAA,CAAc;AAAA,IAC/B,IAAA,EAAM,mBAAA;AAAA,IACN,IAAA;AAAA,IACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GACxC,CAAA;AAED,EAAA,OAAO,OAAA,KAAY,IAAI,IAAA,mBACrB,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAS,qBAAA;AAAA,MACT,kBAAA,EAAkB,UAAA;AAAA,MAClB,OAAA,EAAS,cAAA;AAAA,MACT,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAC,CAAA;AAED,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;ACpDzB,SAAS,sBAAA,CAAuB;AAAA,EACrC;AACF,CAAA,EAEG;AACD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,UAAA,CAAW,kBAAkB,CAAA;AACjD,EAAA,MAAM,EAAE,eAAA,EAAiB,UAAA,EAAY,QAAA,EAAS,GAAI,WAAW,cAAc,CAAA;AAC3E,EAAA,MAAM,YAAA,GAAe,OAAO,KAAK,CAAA;AACjC,EAAA,MAAM,QAAA,GAAW,CAAC,CAAC,OAAA,CAAQ,CAAC,CAAA;AAE5B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAA,CAAa,OAAA,IAAW,CAAC,QAAA,EAAU;AACvC,IAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AAEvB,IAAA,MAAM,SAAA,GAAY,qBAAqB,OAAO,CAAA;AAC9C,IAAA,IAAI,YAAA,KAAiB,MAAA,IAAa,YAAA,IAAgB,SAAA,EAAW;AAC3D,MAAA,MAAM,YAAY,SAAA,GAAY,CAAA;AAC9B,MAAA,eAAA,GAAkB,IAAI,CAAA;AACtB,MAAA,UAAA,CAAW,SAAS,CAAA;AACpB,MAAA,QAAA,CAAS,SAAS,CAAA;AAAA,IACpB;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,OAAA,EAAS,UAAU,eAAA,EAAiB,UAAA,EAAY,QAAQ,CAAC,CAAA;AAE3E,EAAA,OAAO,IAAA;AACT;;ACuCO,MAAM,UAAU,MAAA,CAAO,MAAA;AAAA,EAC5B,UAAA,CAAyC,SAAS,YAAA,CAAa,KAAA,EAAO,GAAA,EAAK;AACzE,IAAA,MAAM;AAAA,MACJ,YAAA;AAAA,MACA,uBAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AACJ,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AACtD,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,CAAiB,gBAAgB,CAAC,CAAA;AAChE,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAiB,EAAE,CAAA;AACrD,IAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,QAAA,CAAiB,gBAAgB,CAAC,CAAA;AAE5D,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,QAAA,GAAW;AAAA,QACT,aAAA,EAAe,SAAA;AAAA,QACf,gBAAA,EAAkB,eAAe,MAAA,GAAY;AAAA,OAC9C,CAAA;AAAA,IAEH,CAAA,EAAG,CAAC,YAAA,EAAc,SAAA,EAAW,QAAQ,CAAC,CAAA;AAEtC,IAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,MACZ,OAAO;AAAA,QACL,OAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,KAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA;AAAA,QACA,YAAA;AAAA,QACA,eAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA;AAAA,QACE,OAAA;AAAA,QACA,SAAA;AAAA,QACA,KAAA;AAAA,QACA,UAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,OAAA;AAAA,QACP,WAAA,EAAa,KAAA;AAAA,QACb,UAAA,EAAS,SAAA;AAAA,QACR,GAAG,IAAA;AAAA,QACJ,GAAA;AAAA,QAEA,QAAA,kBAAA,IAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EACvB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,0BAAuB,YAAA,EAA4B,CAAA;AAAA,UACnD;AAAA,SAAA,EACH;AAAA;AAAA,KACF;AAAA,EAEJ,CAAC,CAAA;AAAA,EACD;AAAA;AAAA,IAEE,IAAA,EAAM,WAAA;AAAA;AAAA,IAGN,IAAA,EAAM,WAAA;AAAA;AAAA,IAGN,KAAA,EAAO,YAAA;AAAA;AAAA,IAGP,UAAA,EAAY,iBAAA;AAAA;AAAA,IAGZ,UAAA,EAAY,iBAAA;AAAA;AAAA,IAGZ,UAAA,EAAY;AAAA;AAEhB;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA;;;;"}
package/dist/Stepper.js CHANGED
@@ -1,2 +1,2 @@
1
- export { S as Stepper, a as StepperBase, S as default } from './Stepper-l_P6VPOv.js';
1
+ export { S as Stepper, a as StepperBase, S as default } from './Stepper-D3SHXfX1.js';
2
2
  //# sourceMappingURL=Stepper.js.map
@@ -3,7 +3,7 @@ import { forwardRef, useId } from 'react';
3
3
  import { S as SvgCheck } from './check-Cf67OWrZ.js';
4
4
  import { I as Icon } from './Icon-B5zwN7GD.js';
5
5
  import { F as Flex } from './Flex-CRF7gj0_.js';
6
- import { A as AiMark } from './AiMark-BfmK30vL.js';
6
+ import { A as AiMark } from './AiMark-CYXbKuCA.js';
7
7
  import { c as cx } from './index-De1g9FRV.js';
8
8
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
9
9
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
@@ -100,4 +100,4 @@ const Switch = forwardRef(
100
100
  Switch.displayName = "Switch";
101
101
 
102
102
  export { Switch as S };
103
- //# sourceMappingURL=Switch-1iNdXTik.js.map
103
+ //# sourceMappingURL=Switch-rPPL4yEa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch-1iNdXTik.js","sources":["../src/components/Switch/Switch.tsx"],"sourcesContent":["import {\n type ChangeEvent,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type Ref,\n forwardRef,\n useId,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport type {\n AiMarkWithTooltipOrPopoverProps,\n DataTrackingId,\n LayoutUtilProps,\n} from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport Icon from \"../Icon\";\nimport Flex from \"../Flex\";\nimport { Helper } from \"../../internal/components\";\nimport { AiMark } from \"../../components/AiMark\";\n\nimport cx from \"classnames\";\nimport styles from \"./Switch.module.scss\";\n\nexport type SwitchState = {\n /** Checked state after the event. */\n checked: boolean;\n /** Value from the switch input. */\n value?: string | number | readonly string[];\n};\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"onChange\">\n * @extends LayoutUtilProps\n */\nexport type SwitchProps = Omit<ComponentPropsWithoutRef<\"input\">, \"onChange\"> &\n LayoutUtilProps & {\n /** Called with the input event and resulting checked state. */\n onChange?: (e: ChangeEvent<HTMLInputElement>, state: SwitchState) => void;\n\n /**\n * Visible label content. When omitted, provide `aria-label`; otherwise the\n * accessible name defaults to \"Toggle option\".\n */\n label?: ReactElement | string;\n\n /** AI mark rendered after the visible label. */\n labelAiMark?: AiMarkWithTooltipOrPopoverProps[\"aiMark\"];\n\n /** Secondary copy rendered below the label. */\n description?: string;\n } & DataTrackingId;\n\n/** Checkbox-backed switch for toggling an option on or off. */\nexport const Switch = forwardRef(\n (props: SwitchProps, ref: Ref<HTMLInputElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n label,\n labelAiMark,\n description,\n className,\n onChange,\n checked,\n defaultChecked,\n value,\n style,\n \"aria-label\": ariaLabel,\n ...rest\n } = componentProps;\n\n const helperUid = useId();\n\n const onChangeHandler = (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e, { value, checked: e.target.checked });\n };\n\n const data = {\n label: childrenToString(label),\n ariaLabel: ariaLabel || \"Toggle option\",\n ariaLabelledBy: rest[\"aria-labelledby\"],\n value,\n };\n\n const trackingId = useTrackingId({\n name: \"Switch\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n\n const switchClassNames = cx(styles[\"switch\"], className);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n alignItems: description ? \"flex-start\" : \"center\",\n };\n\n return (\n <label className={switchClassNames} style={styleCombined}>\n <input\n className={styles[\"input\"]}\n data-tracking-id={trackingId}\n data-anv=\"switch\"\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n value={value}\n aria-checked={checked ?? defaultChecked}\n aria-label={label ? undefined : ariaLabel || \"Toggle option\"}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={onChangeHandler}\n {...rest}\n />\n <span aria-hidden className={styles[\"toggle\"]}>\n <span className={styles[\"thumb\"]}>\n <Icon svg={Check} className={styles[\"check\"]} />\n </span>\n </span>\n {label || description ? (\n <Flex direction=\"column\" gap={1}>\n <Flex alignItems=\"center\" gap={2}>\n {label}\n {labelAiMark && (\n <AiMark\n className={styles[\"ai-mark-icon\"]}\n type=\"gradient\"\n popoverOrTooltipConfig={\n typeof labelAiMark === \"object\" ? labelAiMark : undefined\n }\n />\n )}\n </Flex>\n {description && <Helper id={helperUid} description={description} />}\n </Flex>\n ) : null}\n </label>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n"],"names":["Check"],"mappings":"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"}
1
+ {"version":3,"file":"Switch-rPPL4yEa.js","sources":["../src/components/Switch/Switch.tsx"],"sourcesContent":["import {\n type ChangeEvent,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type Ref,\n forwardRef,\n useId,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport type {\n AiMarkWithTooltipOrPopoverProps,\n DataTrackingId,\n LayoutUtilProps,\n} from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport Icon from \"../Icon\";\nimport Flex from \"../Flex\";\nimport { Helper } from \"../../internal/components\";\nimport { AiMark } from \"../../components/AiMark\";\n\nimport cx from \"classnames\";\nimport styles from \"./Switch.module.scss\";\n\nexport type SwitchState = {\n /** Checked state after the event. */\n checked: boolean;\n /** Value from the switch input. */\n value?: string | number | readonly string[];\n};\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"onChange\">\n * @extends LayoutUtilProps\n */\nexport type SwitchProps = Omit<ComponentPropsWithoutRef<\"input\">, \"onChange\"> &\n LayoutUtilProps & {\n /** Called with the input event and resulting checked state. */\n onChange?: (e: ChangeEvent<HTMLInputElement>, state: SwitchState) => void;\n\n /**\n * Visible label content. When omitted, provide `aria-label`; otherwise the\n * accessible name defaults to \"Toggle option\".\n */\n label?: ReactElement | string;\n\n /** AI mark rendered after the visible label. */\n labelAiMark?: AiMarkWithTooltipOrPopoverProps[\"aiMark\"];\n\n /** Secondary copy rendered below the label. */\n description?: string;\n } & DataTrackingId;\n\n/** Checkbox-backed switch for toggling an option on or off. */\nexport const Switch = forwardRef(\n (props: SwitchProps, ref: Ref<HTMLInputElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n label,\n labelAiMark,\n description,\n className,\n onChange,\n checked,\n defaultChecked,\n value,\n style,\n \"aria-label\": ariaLabel,\n ...rest\n } = componentProps;\n\n const helperUid = useId();\n\n const onChangeHandler = (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e, { value, checked: e.target.checked });\n };\n\n const data = {\n label: childrenToString(label),\n ariaLabel: ariaLabel || \"Toggle option\",\n ariaLabelledBy: rest[\"aria-labelledby\"],\n value,\n };\n\n const trackingId = useTrackingId({\n name: \"Switch\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n\n const switchClassNames = cx(styles[\"switch\"], className);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n alignItems: description ? \"flex-start\" : \"center\",\n };\n\n return (\n <label className={switchClassNames} style={styleCombined}>\n <input\n className={styles[\"input\"]}\n data-tracking-id={trackingId}\n data-anv=\"switch\"\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n value={value}\n aria-checked={checked ?? defaultChecked}\n aria-label={label ? undefined : ariaLabel || \"Toggle option\"}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={onChangeHandler}\n {...rest}\n />\n <span aria-hidden className={styles[\"toggle\"]}>\n <span className={styles[\"thumb\"]}>\n <Icon svg={Check} className={styles[\"check\"]} />\n </span>\n </span>\n {label || description ? (\n <Flex direction=\"column\" gap={1}>\n <Flex alignItems=\"center\" gap={2}>\n {label}\n {labelAiMark && (\n <AiMark\n className={styles[\"ai-mark-icon\"]}\n type=\"gradient\"\n popoverOrTooltipConfig={\n typeof labelAiMark === \"object\" ? labelAiMark : undefined\n }\n />\n )}\n </Flex>\n {description && <Helper id={helperUid} description={description} />}\n </Flex>\n ) : null}\n </label>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n"],"names":["Check"],"mappings":"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"}
package/dist/Switch.js CHANGED
@@ -1,2 +1,2 @@
1
- export { S as Switch, S as default } from './Switch-1iNdXTik.js';
1
+ export { S as Switch, S as default } from './Switch-rPPL4yEa.js';
2
2
  //# sourceMappingURL=Switch.js.map
@@ -1,10 +1,10 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { useId, useRef, useContext, useInsertionEffect, useMemo, Children, isValidElement, useState, createContext, forwardRef, useCallback, useLayoutEffect, useEffect } from 'react';
4
- import { M as MotionConfigContext, a as isHTMLElement, u as useConstant, b as useIsomorphicLayoutEffect, P as PresenceContext, c as usePresence, L as LayoutGroupContext, m as motion } from './react-ORV84FjM.js';
4
+ import { M as MotionConfigContext, i as isHTMLElement, u as useConstant, a as useIsomorphicLayoutEffect, P as PresenceContext, b as usePresence, L as LayoutGroupContext, m as motion } from './react-CG1BUt2y.js';
5
5
  import { D as DurationDefault, e as DurationSlow } from './primitive-BXgYQTTw.js';
6
6
  import { c as cx } from './index-De1g9FRV.js';
7
- import { u as useReducedMotion } from './use-reduced-motion-yYB9Tb0D.js';
7
+ import { u as useReducedMotion } from './use-reduced-motion-CUshwaEW.js';
8
8
  import { useTrackingId } from './useTrackingId.js';
9
9
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
10
10
  import { I as Icon } from './Icon-B5zwN7GD.js';
@@ -552,11 +552,15 @@ const TabList = forwardRef(
552
552
  const startOverflow = dir === "ltr" ? leftOverflow : rightOverflow;
553
553
  const endOverflow = dir === "ltr" ? rightOverflow : leftOverflow;
554
554
  const calculateOverflow = useCallback(
555
- (el) => {
555
+ (el, revealOnly = false) => {
556
556
  const leftOverflows = dir === "ltr" ? el.scrollLeft > 0 : el.scrollLeft > el.offsetWidth - el.scrollWidth + 1;
557
557
  const rightOverflows = dir === "ltr" ? el.scrollLeft < el.scrollWidth - el.offsetWidth : el.scrollLeft < 0;
558
- setLeftOverflow(leftOverflows);
559
- setRightOverflow(rightOverflows);
558
+ setLeftOverflow(
559
+ (prev) => revealOnly ? prev || leftOverflows : leftOverflows
560
+ );
561
+ setRightOverflow(
562
+ (prev) => revealOnly ? prev || rightOverflows : rightOverflows
563
+ );
560
564
  },
561
565
  [dir]
562
566
  );
@@ -581,7 +585,7 @@ const TabList = forwardRef(
581
585
  }
582
586
  const scroller = scrollRef.current;
583
587
  if (!scroller) return;
584
- calculateOverflow(scroller);
588
+ calculateOverflow(scroller, true);
585
589
  }, [calculateOverflow, startOverflow, endOverflow]);
586
590
  const scrollOverflow = (direction) => {
587
591
  const scroller = scrollRef.current;
@@ -871,4 +875,4 @@ const Tab = Object.assign(
871
875
  Tab.displayName = "Tab";
872
876
 
873
877
  export { Tab as T };
874
- //# sourceMappingURL=Tab-DR5YYXkq.js.map
878
+ //# sourceMappingURL=Tab-CXwVQ5-G.js.map