@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.11

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 (598) hide show
  1. package/README.md +4 -0
  2. package/docs/AGENTS.snippet.md +12 -0
  3. package/docs/action-bar.json +4 -4
  4. package/docs/action-bar.md +3 -3
  5. package/docs/alert.json +7 -1
  6. package/docs/alert.md +3 -3
  7. package/docs/app-shell.examples.md +1 -1
  8. package/docs/app-shell.json +5 -5
  9. package/docs/app-shell.md +2 -2
  10. package/docs/avatar.json +22 -1
  11. package/docs/avatar.md +5 -3
  12. package/docs/badge.json +7 -1
  13. package/docs/badge.md +3 -3
  14. package/docs/button-group.json +2 -0
  15. package/docs/button-group.md +1 -1
  16. package/docs/button.json +51 -11
  17. package/docs/button.md +10 -6
  18. package/docs/calendar.json +8 -1
  19. package/docs/calendar.md +3 -2
  20. package/docs/cascader.json +1 -0
  21. package/docs/cascader.md +1 -1
  22. package/docs/chart.examples.md +1 -1
  23. package/docs/chart.json +10 -1
  24. package/docs/chart.md +3 -2
  25. package/docs/checkbox.json +7 -0
  26. package/docs/checkbox.md +1 -0
  27. package/docs/code-block.json +92 -92
  28. package/docs/code-block.md +69 -69
  29. package/docs/combobox.json +1 -0
  30. package/docs/combobox.md +1 -1
  31. package/docs/command-palette.json +1 -0
  32. package/docs/command-palette.md +1 -1
  33. package/docs/currency-field.json +40 -1
  34. package/docs/currency-field.md +5 -1
  35. package/docs/data-grid.examples.md +2 -2
  36. package/docs/data-grid.json +45 -7
  37. package/docs/data-grid.md +3 -1
  38. package/docs/data-grid.props.md +7 -4
  39. package/docs/data-list.json +2 -1
  40. package/docs/data-list.md +1 -1
  41. package/docs/date-field.json +9 -1
  42. package/docs/date-field.md +3 -2
  43. package/docs/date-picker.examples.md +36 -0
  44. package/docs/date-picker.json +20 -5
  45. package/docs/date-picker.md +5 -4
  46. package/docs/datetime-field.json +1 -0
  47. package/docs/datetime-field.md +1 -1
  48. package/docs/detail-panel.json +4 -2
  49. package/docs/detail-panel.md +8 -3
  50. package/docs/dialog.examples.md +158 -136
  51. package/docs/dialog.json +36 -11
  52. package/docs/dialog.md +4 -2
  53. package/docs/dialog.props.md +1 -1
  54. package/docs/drawer.json +11 -4
  55. package/docs/drawer.md +4 -3
  56. package/docs/entity-picker.json +19 -4
  57. package/docs/entity-picker.md +8 -6
  58. package/docs/event-calendar.json +7 -0
  59. package/docs/event-calendar.md +3 -2
  60. package/docs/filter-bar.json +118 -118
  61. package/docs/filter-bar.md +79 -79
  62. package/docs/form.json +2 -1
  63. package/docs/form.md +1 -1
  64. package/docs/guidelines/README.md +27 -0
  65. package/docs/guidelines/async-feedback.md +129 -0
  66. package/docs/guidelines/browsing.md +74 -0
  67. package/docs/guidelines/builders.md +97 -0
  68. package/docs/guidelines/composition.md +143 -0
  69. package/docs/guidelines/conversations.md +59 -0
  70. package/docs/guidelines/errors-and-conflicts.md +71 -0
  71. package/docs/guidelines/forms.md +202 -0
  72. package/docs/guidelines/index.md +130 -0
  73. package/docs/guidelines/layout-alignment.md +105 -0
  74. package/docs/guidelines/ledgers.md +45 -0
  75. package/docs/guidelines/list-pages.md +206 -0
  76. package/docs/guidelines/overviews.md +76 -0
  77. package/docs/guidelines/own-elements.md +115 -0
  78. package/docs/guidelines/reading-permissions.md +55 -0
  79. package/docs/guidelines/record-pages.md +178 -0
  80. package/docs/guidelines/reports.md +123 -0
  81. package/docs/guidelines/shell-composition.md +94 -0
  82. package/docs/guidelines/workspaces.md +46 -0
  83. package/docs/icon.json +3 -1
  84. package/docs/icon.md +3 -3
  85. package/docs/index.md +12 -0
  86. package/docs/inline-message.json +14 -2
  87. package/docs/inline-message.md +4 -3
  88. package/docs/list-item.json +9 -1
  89. package/docs/list-item.md +3 -3
  90. package/docs/list.json +19 -1
  91. package/docs/list.md +3 -1
  92. package/docs/markdown.json +79 -79
  93. package/docs/markdown.md +65 -65
  94. package/docs/menu.json +12 -0
  95. package/docs/menu.md +2 -0
  96. package/docs/message.json +7 -1
  97. package/docs/message.md +3 -3
  98. package/docs/multi-select.json +1 -0
  99. package/docs/multi-select.md +1 -1
  100. package/docs/notification-center.json +4 -0
  101. package/docs/notification-center.md +2 -2
  102. package/docs/number-field.json +1 -0
  103. package/docs/number-field.md +1 -1
  104. package/docs/otp-input.json +1 -0
  105. package/docs/otp-input.md +1 -1
  106. package/docs/page-header.json +22 -5
  107. package/docs/page-header.md +6 -4
  108. package/docs/page.json +2 -0
  109. package/docs/page.md +2 -1
  110. package/docs/popover.json +1 -1
  111. package/docs/progress-indicator.json +4 -3
  112. package/docs/progress-indicator.md +4 -4
  113. package/docs/prompt-composer.json +41 -1
  114. package/docs/prompt-composer.md +5 -1
  115. package/docs/rating.json +5 -3
  116. package/docs/rating.md +6 -6
  117. package/docs/section.json +28 -16
  118. package/docs/section.md +12 -10
  119. package/docs/segmented-control.json +36 -12
  120. package/docs/segmented-control.md +17 -1
  121. package/docs/select.json +1 -0
  122. package/docs/select.md +1 -1
  123. package/docs/side-navigation.json +1 -0
  124. package/docs/side-navigation.md +1 -1
  125. package/docs/skills/build-own-element/SKILL.md +90 -0
  126. package/docs/skills/compose-screen/SKILL.md +103 -0
  127. package/docs/skills/index.md +9 -0
  128. package/docs/skills/review-screen/SKILL.md +79 -0
  129. package/docs/skills/theme-app/SKILL.md +98 -0
  130. package/docs/skills/waiting-states/SKILL.md +143 -0
  131. package/docs/sparkline.json +5 -2
  132. package/docs/sparkline.md +4 -4
  133. package/docs/split-button.json +4 -1
  134. package/docs/split-button.md +3 -3
  135. package/docs/stat-card.json +5 -1
  136. package/docs/stat-card.md +3 -3
  137. package/docs/table.examples.md +3 -3
  138. package/docs/table.json +85 -3
  139. package/docs/table.md +12 -1
  140. package/docs/tabs.json +17 -7
  141. package/docs/tabs.md +3 -2
  142. package/docs/tag.json +14 -4
  143. package/docs/tag.md +6 -6
  144. package/docs/tags-input.json +29 -2
  145. package/docs/tags-input.md +4 -1
  146. package/docs/text-field.json +2 -1
  147. package/docs/text-field.md +2 -2
  148. package/docs/textarea.json +1 -0
  149. package/docs/textarea.md +1 -1
  150. package/docs/time-field.json +1 -0
  151. package/docs/time-field.md +1 -1
  152. package/docs/timeline.json +138 -132
  153. package/docs/timeline.md +125 -125
  154. package/docs/toast.json +8 -1
  155. package/docs/toast.md +3 -3
  156. package/docs/toggle-group.json +14 -3
  157. package/docs/toggle-group.md +3 -3
  158. package/docs/toggle.json +12 -3
  159. package/docs/toggle.md +3 -3
  160. package/docs/tokens.md +467 -0
  161. package/docs/toolbar.json +1 -1
  162. package/docs/toolbar.md +1 -1
  163. package/docs/tour.json +1 -1
  164. package/docs/typography.json +4 -2
  165. package/docs/typography.md +5 -5
  166. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  167. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  168. package/fesm2022/slotted-angular-action-bar.mjs +27 -12
  169. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  170. package/fesm2022/slotted-angular-action-sheet.mjs +48 -29
  171. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  172. package/fesm2022/slotted-angular-alert.mjs +18 -11
  173. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  174. package/fesm2022/slotted-angular-app-shell.mjs +111 -61
  175. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  176. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  177. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  178. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  179. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  180. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  181. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  182. package/fesm2022/slotted-angular-avatar.mjs +14 -7
  183. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  184. package/fesm2022/slotted-angular-badge.mjs +14 -10
  185. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  186. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  187. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  188. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  189. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  190. package/fesm2022/slotted-angular-button.mjs +120 -29
  191. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  192. package/fesm2022/slotted-angular-calendar.mjs +235 -58
  193. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  194. package/fesm2022/slotted-angular-card.mjs +18 -16
  195. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  196. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  197. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  198. package/fesm2022/slotted-angular-cascader.mjs +180 -66
  199. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  200. package/fesm2022/slotted-angular-chart.mjs +53 -20
  201. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  202. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  203. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  204. package/fesm2022/slotted-angular-checkbox.mjs +23 -9
  205. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  206. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  207. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  208. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  209. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  210. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  211. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  212. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  213. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  214. package/fesm2022/slotted-angular-combobox.mjs +118 -39
  215. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  216. package/fesm2022/slotted-angular-command-palette.mjs +162 -54
  217. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  218. package/fesm2022/slotted-angular-container.mjs +6 -4
  219. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  220. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  221. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  222. package/fesm2022/slotted-angular-currency-field.mjs +149 -32
  223. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  224. package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
  225. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  226. package/fesm2022/slotted-angular-data-grid.mjs +480 -129
  227. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  228. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  229. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  230. package/fesm2022/slotted-angular-date-field.mjs +74 -25
  231. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  232. package/fesm2022/slotted-angular-date-picker.mjs +112 -40
  233. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  234. package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
  235. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  236. package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
  237. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  238. package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
  239. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  240. package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
  241. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  242. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  243. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  244. package/fesm2022/slotted-angular-detail-panel.mjs +48 -30
  245. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  246. package/fesm2022/slotted-angular-dialog.mjs +72 -30
  247. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  248. package/fesm2022/slotted-angular-divider.mjs +7 -5
  249. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  250. package/fesm2022/slotted-angular-drawer.mjs +91 -37
  251. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  252. package/fesm2022/slotted-angular-entity-picker.mjs +474 -75
  253. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  254. package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
  255. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  256. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  257. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  258. package/fesm2022/slotted-angular-field.mjs +35 -15
  259. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  260. package/fesm2022/slotted-angular-filter-bar.mjs +118 -51
  261. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  262. package/fesm2022/slotted-angular-form.mjs +18 -10
  263. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  264. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  265. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  266. package/fesm2022/slotted-angular-grid.mjs +4 -2
  267. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  268. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  269. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  270. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  271. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  272. package/fesm2022/slotted-angular-icon.mjs +6 -3
  273. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  274. package/fesm2022/slotted-angular-image.mjs +13 -10
  275. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  276. package/fesm2022/slotted-angular-import-export-center.mjs +175 -99
  277. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  278. package/fesm2022/slotted-angular-inline-message.mjs +88 -13
  279. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  280. package/fesm2022/slotted-angular-inline.mjs +4 -2
  281. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  282. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  283. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  284. package/fesm2022/slotted-angular-link.mjs +5 -3
  285. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  286. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  287. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  288. package/fesm2022/slotted-angular-list.mjs +37 -22
  289. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  290. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  291. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  292. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  293. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  294. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  295. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  296. package/fesm2022/slotted-angular-menu.mjs +51 -29
  297. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  298. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  299. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  300. package/fesm2022/slotted-angular-message-scroller.mjs +34 -15
  301. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  302. package/fesm2022/slotted-angular-message.mjs +119 -51
  303. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  304. package/fesm2022/slotted-angular-multi-select.mjs +195 -87
  305. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  306. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  307. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  308. package/fesm2022/slotted-angular-notification-center.mjs +108 -65
  309. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  310. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  311. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  312. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  313. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  314. package/fesm2022/slotted-angular-page-header.mjs +90 -48
  315. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  316. package/fesm2022/slotted-angular-page.mjs +38 -10
  317. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  318. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  319. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  320. package/fesm2022/slotted-angular-popover.mjs +32 -19
  321. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  322. package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
  323. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  324. package/fesm2022/slotted-angular-prompt-composer.mjs +57 -20
  325. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  326. package/fesm2022/slotted-angular-prose.mjs +14 -11
  327. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  328. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  329. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  330. package/fesm2022/slotted-angular-rating.mjs +138 -82
  331. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  332. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  333. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  334. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  335. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  336. package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
  337. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  338. package/fesm2022/slotted-angular-section.mjs +53 -18
  339. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  340. package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
  341. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  342. package/fesm2022/slotted-angular-select.mjs +190 -94
  343. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  344. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  345. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  346. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  347. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  348. package/fesm2022/slotted-angular-slider.mjs +31 -11
  349. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  350. package/fesm2022/slotted-angular-sparkline.mjs +41 -14
  351. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  352. package/fesm2022/slotted-angular-split-button.mjs +37 -11
  353. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  354. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  355. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  356. package/fesm2022/slotted-angular-stack.mjs +4 -2
  357. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  358. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  359. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  360. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  361. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  362. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  363. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  364. package/fesm2022/slotted-angular-switch.mjs +15 -10
  365. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  366. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  367. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  368. package/fesm2022/slotted-angular-table.mjs +243 -73
  369. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  370. package/fesm2022/slotted-angular-tabs.mjs +42 -18
  371. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  372. package/fesm2022/slotted-angular-tag.mjs +19 -12
  373. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  374. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  375. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  376. package/fesm2022/slotted-angular-text-field.mjs +55 -15
  377. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  378. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  379. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  380. package/fesm2022/slotted-angular-time-field.mjs +48 -14
  381. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  382. package/fesm2022/slotted-angular-time-picker.mjs +32 -20
  383. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  384. package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
  385. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  386. package/fesm2022/slotted-angular-timeline.mjs +147 -64
  387. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  388. package/fesm2022/slotted-angular-toast.mjs +43 -31
  389. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  390. package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
  391. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  392. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  393. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  394. package/fesm2022/slotted-angular-toolbar.mjs +27 -12
  395. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  396. package/fesm2022/slotted-angular-tooltip.mjs +15 -6
  397. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  398. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  399. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  400. package/fesm2022/slotted-angular-tour.mjs +47 -22
  401. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  402. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  403. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  404. package/fesm2022/slotted-angular-tree.mjs +80 -26
  405. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  406. package/fesm2022/slotted-angular-typography.mjs +8 -4
  407. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  408. package/fesm2022/slotted-angular-upload.mjs +125 -57
  409. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  410. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  411. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  412. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  413. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  414. package/package.json +3 -3
  415. package/types/slotted-angular-accordion.d.ts.map +1 -1
  416. package/types/slotted-angular-action-bar.d.ts +2 -0
  417. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  418. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  419. package/types/slotted-angular-alert.d.ts +2 -2
  420. package/types/slotted-angular-alert.d.ts.map +1 -1
  421. package/types/slotted-angular-app-shell.d.ts +11 -3
  422. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  423. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  424. package/types/slotted-angular-attachment.d.ts +1 -1
  425. package/types/slotted-angular-attachment.d.ts.map +1 -1
  426. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  427. package/types/slotted-angular-avatar.d.ts +11 -3
  428. package/types/slotted-angular-avatar.d.ts.map +1 -1
  429. package/types/slotted-angular-badge.d.ts +1 -1
  430. package/types/slotted-angular-badge.d.ts.map +1 -1
  431. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  432. package/types/slotted-angular-button-group.d.ts +1 -1
  433. package/types/slotted-angular-button-group.d.ts.map +1 -1
  434. package/types/slotted-angular-button.d.ts +33 -13
  435. package/types/slotted-angular-button.d.ts.map +1 -1
  436. package/types/slotted-angular-calendar.d.ts +30 -2
  437. package/types/slotted-angular-calendar.d.ts.map +1 -1
  438. package/types/slotted-angular-card.d.ts.map +1 -1
  439. package/types/slotted-angular-carousel.d.ts.map +1 -1
  440. package/types/slotted-angular-cascader.d.ts.map +1 -1
  441. package/types/slotted-angular-chart.d.ts +10 -0
  442. package/types/slotted-angular-chart.d.ts.map +1 -1
  443. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  444. package/types/slotted-angular-checkbox.d.ts +7 -1
  445. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  446. package/types/slotted-angular-code-block.d.ts +1 -1
  447. package/types/slotted-angular-code-block.d.ts.map +1 -1
  448. package/types/slotted-angular-collapsible.d.ts +1 -1
  449. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  450. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  451. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  452. package/types/slotted-angular-combobox.d.ts +5 -1
  453. package/types/slotted-angular-combobox.d.ts.map +1 -1
  454. package/types/slotted-angular-command-palette.d.ts +10 -1
  455. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  456. package/types/slotted-angular-container.d.ts.map +1 -1
  457. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  458. package/types/slotted-angular-currency-field.d.ts +63 -15
  459. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  460. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  461. package/types/slotted-angular-data-grid.d.ts +72 -4
  462. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  463. package/types/slotted-angular-data-list.d.ts.map +1 -1
  464. package/types/slotted-angular-date-field.d.ts +11 -1
  465. package/types/slotted-angular-date-field.d.ts.map +1 -1
  466. package/types/slotted-angular-date-picker.d.ts +38 -12
  467. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  468. package/types/slotted-angular-date-range-picker.d.ts +0 -1
  469. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  470. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  471. package/types/slotted-angular-datetime-picker.d.ts +0 -1
  472. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  473. package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
  474. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  475. package/types/slotted-angular-description-list.d.ts.map +1 -1
  476. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  477. package/types/slotted-angular-dialog.d.ts +10 -3
  478. package/types/slotted-angular-dialog.d.ts.map +1 -1
  479. package/types/slotted-angular-divider.d.ts.map +1 -1
  480. package/types/slotted-angular-drawer.d.ts +12 -1
  481. package/types/slotted-angular-drawer.d.ts.map +1 -1
  482. package/types/slotted-angular-entity-picker.d.ts +63 -15
  483. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  484. package/types/slotted-angular-event-calendar.d.ts +9 -2
  485. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  486. package/types/slotted-angular-field-group.d.ts.map +1 -1
  487. package/types/slotted-angular-field.d.ts.map +1 -1
  488. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  489. package/types/slotted-angular-form.d.ts.map +1 -1
  490. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  491. package/types/slotted-angular-grid.d.ts.map +1 -1
  492. package/types/slotted-angular-highlight.d.ts.map +1 -1
  493. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  494. package/types/slotted-angular-icon.d.ts +2 -2
  495. package/types/slotted-angular-icon.d.ts.map +1 -1
  496. package/types/slotted-angular-image.d.ts.map +1 -1
  497. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  498. package/types/slotted-angular-inline-message.d.ts +25 -25
  499. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  500. package/types/slotted-angular-inline.d.ts.map +1 -1
  501. package/types/slotted-angular-kbd.d.ts.map +1 -1
  502. package/types/slotted-angular-link.d.ts.map +1 -1
  503. package/types/slotted-angular-list-item.d.ts +1 -1
  504. package/types/slotted-angular-list-item.d.ts.map +1 -1
  505. package/types/slotted-angular-list.d.ts +42 -27
  506. package/types/slotted-angular-list.d.ts.map +1 -1
  507. package/types/slotted-angular-listbox.d.ts.map +1 -1
  508. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  509. package/types/slotted-angular-markdown.d.ts.map +1 -1
  510. package/types/slotted-angular-menu.d.ts +11 -2
  511. package/types/slotted-angular-menu.d.ts.map +1 -1
  512. package/types/slotted-angular-menubar.d.ts.map +1 -1
  513. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  514. package/types/slotted-angular-message.d.ts +1 -1
  515. package/types/slotted-angular-message.d.ts.map +1 -1
  516. package/types/slotted-angular-multi-select.d.ts +15 -1
  517. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  518. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  519. package/types/slotted-angular-notification-center.d.ts +1 -1
  520. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  521. package/types/slotted-angular-number-field.d.ts.map +1 -1
  522. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  523. package/types/slotted-angular-page-header.d.ts +15 -6
  524. package/types/slotted-angular-page-header.d.ts.map +1 -1
  525. package/types/slotted-angular-page.d.ts.map +1 -1
  526. package/types/slotted-angular-pagination.d.ts.map +1 -1
  527. package/types/slotted-angular-popover.d.ts.map +1 -1
  528. package/types/slotted-angular-progress-indicator.d.ts +8 -1
  529. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  530. package/types/slotted-angular-prompt-composer.d.ts +11 -2
  531. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  532. package/types/slotted-angular-prose.d.ts.map +1 -1
  533. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  534. package/types/slotted-angular-rating.d.ts +1 -1
  535. package/types/slotted-angular-rating.d.ts.map +1 -1
  536. package/types/slotted-angular-result-state.d.ts.map +1 -1
  537. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  538. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  539. package/types/slotted-angular-section.d.ts +11 -3
  540. package/types/slotted-angular-section.d.ts.map +1 -1
  541. package/types/slotted-angular-segmented-control.d.ts +15 -2
  542. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  543. package/types/slotted-angular-select.d.ts +12 -2
  544. package/types/slotted-angular-select.d.ts.map +1 -1
  545. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  546. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  547. package/types/slotted-angular-slider.d.ts.map +1 -1
  548. package/types/slotted-angular-sparkline.d.ts +7 -1
  549. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  550. package/types/slotted-angular-split-button.d.ts +2 -2
  551. package/types/slotted-angular-split-button.d.ts.map +1 -1
  552. package/types/slotted-angular-splitter.d.ts.map +1 -1
  553. package/types/slotted-angular-stack.d.ts.map +1 -1
  554. package/types/slotted-angular-stat-card.d.ts +1 -1
  555. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  556. package/types/slotted-angular-status-indicator.d.ts +1 -1
  557. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  558. package/types/slotted-angular-stepper.d.ts +1 -1
  559. package/types/slotted-angular-stepper.d.ts.map +1 -1
  560. package/types/slotted-angular-switch.d.ts.map +1 -1
  561. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  562. package/types/slotted-angular-table.d.ts +63 -6
  563. package/types/slotted-angular-table.d.ts.map +1 -1
  564. package/types/slotted-angular-tabs.d.ts +3 -4
  565. package/types/slotted-angular-tabs.d.ts.map +1 -1
  566. package/types/slotted-angular-tag.d.ts +1 -1
  567. package/types/slotted-angular-tag.d.ts.map +1 -1
  568. package/types/slotted-angular-tags-input.d.ts +33 -1
  569. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  570. package/types/slotted-angular-text-field.d.ts.map +1 -1
  571. package/types/slotted-angular-textarea.d.ts.map +1 -1
  572. package/types/slotted-angular-theme.d.ts +1 -1
  573. package/types/slotted-angular-time-field.d.ts.map +1 -1
  574. package/types/slotted-angular-time-picker.d.ts +0 -1
  575. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  576. package/types/slotted-angular-time-range-picker.d.ts +0 -1
  577. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  578. package/types/slotted-angular-timeline.d.ts +1 -1
  579. package/types/slotted-angular-timeline.d.ts.map +1 -1
  580. package/types/slotted-angular-toast.d.ts +3 -3
  581. package/types/slotted-angular-toast.d.ts.map +1 -1
  582. package/types/slotted-angular-toggle-group.d.ts +8 -2
  583. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  584. package/types/slotted-angular-toggle.d.ts +1 -1
  585. package/types/slotted-angular-toggle.d.ts.map +1 -1
  586. package/types/slotted-angular-toolbar.d.ts +2 -0
  587. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  588. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  589. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  590. package/types/slotted-angular-tour.d.ts.map +1 -1
  591. package/types/slotted-angular-transfer.d.ts.map +1 -1
  592. package/types/slotted-angular-tree.d.ts.map +1 -1
  593. package/types/slotted-angular-typography.d.ts +1 -1
  594. package/types/slotted-angular-typography.d.ts.map +1 -1
  595. package/types/slotted-angular-upload.d.ts +2 -2
  596. package/types/slotted-angular-upload.d.ts.map +1 -1
  597. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  598. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-wizard.mjs","sources":["../../wizard/src/wizard-defaults.ts","../../wizard/src/wizard.ts","../../wizard/src/slotted-angular-wizard.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { Provider } from '@angular/core';\nimport type { FormErrorInput } from '@slotted/core/form';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\nimport type {\n StepValues,\n WizardPersistence,\n WizardSnapshot,\n WizardValue,\n} from '@slotted/core/wizard';\n\nexport type { StepValues, WizardPersistence, WizardSnapshot, WizardValue };\n\n/** Where the list of steps stands: beside the step, above it, or nowhere. */\nexport type WizardProgress = 'start' | 'top' | 'none';\n/** What scrolls: the page around the wizard, or the wizard's own step. */\nexport type WizardScroll = 'ancestor' | 'self';\n/** When a draft is written without the reader asking. */\nexport type WizardAutosave = 'none' | 'step';\nexport type WizardLevel = 2 | 3 | 4;\n\nexport type WizardStepReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'submit' | 'programmatic'\n>;\nexport type WizardValueReason = Extract<ChangeReason, 'submit' | 'clear' | 'programmatic'>;\nexport type WizardProgressOpenReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'select' | 'escape' | 'programmatic'\n>;\nexport type WizardDraftReason = Extract<ChangeReason, 'pointer' | 'submit' | 'programmatic'>;\n\nexport interface WizardStepRequest extends ChangeRequest<string> {\n readonly reason: WizardStepReason;\n}\nexport interface WizardValueRequest extends ChangeRequest<WizardValue> {\n readonly reason: WizardValueReason;\n}\nexport interface WizardProgressOpenRequest extends ChangeRequest<boolean> {\n readonly reason: WizardProgressOpenReason;\n}\n\nexport interface WizardDefaults {\n progress: WizardProgress;\n linear: boolean;\n level: WizardLevel;\n scroll: WizardScroll;\n /** How long an asynchronous restore may take before its skeleton is drawn. */\n delay: number;\n /** How long a drawn skeleton stays, so it does not flash. */\n minDuration: number;\n}\n\n/**\n * What a submission may answer instead of succeeding. `step` sends the reader\n * back to the step whose answers the server refused, and `errors` are\n * published to that step's form, keyed by control name.\n */\nexport interface WizardFailure {\n message?: string | undefined;\n step?: string | undefined;\n errors?: FormErrorInput | undefined;\n}\n\nexport interface WizardSubmitRequest {\n reason: 'submit';\n source: unknown;\n /** Every accepted answer, including steps that are not present any more. */\n value: WizardValue;\n}\n\nexport type WizardSubmit = (\n values: WizardValue,\n request: WizardSubmitRequest,\n) => void | WizardFailure | Promise<void | WizardFailure>;\n\nexport interface WizardCancelRequest {\n /** Whether anything typed or accepted has not been submitted. */\n dirty: boolean;\n source: unknown;\n}\n\nexport interface WizardDraftRequest {\n snapshot: WizardSnapshot;\n reason: WizardDraftReason;\n source: unknown;\n}\n\nexport interface WizardValidateContext {\n value: WizardValue;\n signal: AbortSignal;\n}\n\nexport type WizardValidate = (\n values: StepValues,\n context: WizardValidateContext,\n) => FormErrorInput | void | Promise<FormErrorInput | void>;\n\n/**\n * `linear` is on: the wave's scope says direct navigation depends on the\n * steps already completed. `delay` and `minDuration` are the loading-states\n * pair, so a restore that answers in eighty milliseconds draws nothing.\n */\nexport const WIZARD_FALLBACK: WizardDefaults = {\n delay: 200,\n level: 2,\n linear: true,\n minDuration: 400,\n progress: 'start',\n scroll: 'ancestor',\n};\n\nexport const WIZARD_DEFAULTS = new InjectionToken<WizardDefaults>('slotted wizard defaults', {\n providedIn: 'root',\n factory: () => WIZARD_FALLBACK,\n});\n\n/**\n * An application decides once how its wizards lay out. A wizard that states\n * any of it itself still wins. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideWizardDefaults(defaults: Partial<WizardDefaults>): Provider {\n return {\n provide: WIZARD_DEFAULTS,\n useFactory: (): WizardDefaults => ({ ...WIZARD_FALLBACK, ...defaults }),\n };\n}\n\nexport function injectWizardDefaults(): WizardDefaults {\n return inject(WIZARD_DEFAULTS);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { AfterContentInit } from '@angular/core';\nimport { ControlContainer } from '@angular/forms';\nimport { hasErrors, isDirty, normaliseErrors } from '@slotted/core/form';\nimport type { FormErrorInput } from '@slotted/core/form';\nimport { wizardMessages, type PartialMessages, type WizardMessages } from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n assertUniqueSteps,\n clampStep,\n createSnapshot,\n firstIncomplete,\n formValues,\n includedValues,\n nextDestination,\n previousStep,\n reachableStep,\n replacementStep,\n stepComplete,\n stepPosition,\n} from '@slotted/core/wizard';\nimport type {\n StepValues,\n WizardPersistence,\n WizardSnapshot,\n WizardStepEntry,\n WizardValue,\n} from '@slotted/core/wizard';\nimport { SlAlert, SlAlertContent, SlAlertDescription, SlAlertTitle } from '@slotted/angular/alert';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlForm } from '@slotted/angular/form';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport { SlStepper, SlStepperList, SlStepperStep } from '@slotted/angular/stepper';\nimport { SlTag } from '@slotted/angular/tag';\n\nimport { injectWizardDefaults } from './wizard-defaults';\nimport type {\n WizardAutosave,\n WizardCancelRequest,\n WizardDraftReason,\n WizardDraftRequest,\n WizardFailure,\n WizardLevel,\n WizardProgress,\n WizardProgressOpenRequest,\n WizardScroll,\n WizardStepReason,\n WizardStepRequest,\n WizardSubmit,\n WizardValidate,\n WizardValueRequest,\n} from './wizard-defaults';\n\nlet counter = 0;\n\nconst EMPTY: WizardValue = {};\n\nconst isPromise = (candidate: unknown): candidate is Promise<unknown> =>\n typeof candidate === 'object' && candidate !== null && 'then' in candidate;\n\nconst optionalBoolean = (raw: unknown) => (raw === undefined ? undefined : booleanAttribute(raw));\n\nfunction without(map: WizardValue, name: string): WizardValue {\n if (!Object.hasOwn(map, name)) return map;\n const next: Record<string, StepValues> = { ...map };\n delete next[name];\n return next;\n}\n\n/** What one step's template is given. */\nexport interface WizardStepContext {\n /** The answers to show: typed and not yet accepted, else accepted, else none. */\n $implicit: StepValues;\n values: StepValues;\n name: string;\n complete: boolean;\n optional: boolean;\n /**\n * What a failed submission sent back for this step, keyed by control name,\n * for the form's `[defaultErrors]`. The form family reads it once, and the\n * wizard renders the step again when it changes.\n */\n errors: FormErrorInput | undefined;\n}\n\n/**\n * One step: its name, its label and its content, which is rendered only while\n * it is the current step. A branch is `@if` around the template; the wizard\n * reacts to the list changing under the reader by the rules of the design\n * (§5.6).\n */\n@Directive({ selector: 'ng-template[slWizardStep]', standalone: true, exportAs: 'slWizardStep' })\nexport class SlWizardStep {\n readonly name = input.required<string>({ alias: 'slWizardStep' });\n readonly label = input.required<string>();\n readonly description = input<string | undefined>(undefined);\n readonly optional = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Runs after the platform's and Reactive Forms' own validation pass. */\n readonly validate = input<WizardValidate | undefined>(undefined);\n /** The answers to accept instead of the form's values. */\n readonly values = input<StepValues | undefined>(undefined);\n readonly template = inject<TemplateRef<WizardStepContext>>(TemplateRef);\n\n static ngTemplateContextGuard(\n _directive: SlWizardStep,\n context: unknown,\n ): context is WizardStepContext {\n return context !== null;\n }\n}\n\n/** What stands in place of the step and the actions after an accepted submission. */\n@Directive({ selector: 'ng-template[slWizardComplete]', standalone: true })\nexport class SlWizardComplete {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/** A row of actions of the consumer's own, in place of the default one. */\n@Directive({ selector: 'ng-template[slWizardActions]', standalone: true })\nexport class SlWizardActions {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/** The group of actions that leave the flow, at the start of the row. */\n@Directive({\n selector: '[slWizardActionsStart]',\n standalone: true,\n host: { 'data-part': 'actions-start' },\n})\nexport class SlWizardActionsStart {}\n\n/** The group of actions that move the flow, at the end of the row. */\n@Directive({\n selector: '[slWizardActionsEnd]',\n standalone: true,\n host: { 'data-part': 'actions-end' },\n})\nexport class SlWizardActionsEnd {}\n\n/**\n * The step's form. It is the consumer's `form[slForm]`, because\n * `formControlName` resolves its `ControlContainer` through the injector of\n * the template it is written in, and a form the wizard rendered would not be\n * that one. With a `FormGroup` on it, the group's raw value is the step's\n * answers and its pending status holds the step; without one, `FormData`.\n */\n@Directive({\n selector: 'form[slWizardForm]',\n standalone: true,\n exportAs: 'slWizardForm',\n host: {\n '[attr.id]': 'wizard.formId',\n '[attr.aria-labelledby]': 'wizard.titleId',\n },\n})\nexport class SlWizardForm {\n protected readonly wizard = inject(forwardRef(() => SlWizard));\n private readonly form = inject(SlForm, { self: true });\n private readonly container = inject(ControlContainer, { optional: true, self: true });\n readonly element = inject<ElementRef<HTMLFormElement>>(ElementRef).nativeElement;\n\n constructor() {\n this.wizard.registerForm(this);\n inject(DestroyRef).onDestroy(() => this.wizard.unregisterForm(this));\n const subscription = this.form.formSubmit.subscribe(({ event, values, errors, pending }) => {\n const control = this.container?.control;\n const run = (): FormErrorInput | void | Promise<FormErrorInput | void> =>\n this.wizard.commit((control?.getRawValue() as StepValues | undefined) ?? values, event);\n if (control?.pending === true) {\n pending(\n new Promise<FormErrorInput | void>((resolve) => {\n const watch = control.statusChanges.subscribe((status) => {\n if (status === 'PENDING') return;\n watch.unsubscribe();\n if (status === 'INVALID') {\n this.form.validateNow();\n resolve(undefined);\n return;\n }\n const answer = run();\n if (isPromise(answer)) void answer.then(resolve);\n else resolve(answer);\n });\n }),\n );\n return;\n }\n const answer = run();\n if (isPromise(answer)) pending(answer as Promise<FormErrorInput | void>);\n else if (answer !== undefined) errors(answer);\n });\n inject(DestroyRef).onDestroy(() => subscription.unsubscribe());\n }\n\n /** What is typed now, whatever has been accepted. */\n typed(): StepValues {\n const control = this.container?.control;\n if (control !== null && control !== undefined) return control.getRawValue() as StepValues;\n return formValues(new FormData(this.element));\n }\n\n dirty(): boolean {\n const control = this.container?.control;\n return control !== null && control !== undefined ? control.dirty : isDirty(this.element);\n }\n\n submit() {\n this.element.requestSubmit();\n }\n}\n\n/**\n * A flow of steps that accumulates answers.\n *\n * **The steps are the templates the consumer writes**, and a branch is `@if`\n * around one. The wizard reacts to the list changing under the reader by the\n * eight rules of the design (§5.6): the current step is never moved because a\n * step appeared before it, a current step that left the list gives way to the\n * next one still present, and an absent step keeps its answers without\n * submitting them.\n *\n * **Each step's form is the consumer's `form[slForm][slWizardForm]`**, so a\n * `FormGroup` lives in the consumer's component, keeps what was typed across\n * steps, and validates through Reactive Forms before the step's own\n * `validate`. The next button stands outside the form and submits it through\n * the platform's `form` attribute.\n *\n * **It holds accepted answers, not typed ones.** A step is complete exactly\n * when its name is in `value`.\n */\n@Component({\n selector: '[slWizard]',\n standalone: true,\n exportAs: 'slWizard',\n imports: [\n NgTemplateOutlet,\n SlAlert,\n SlAlertContent,\n SlAlertDescription,\n SlAlertTitle,\n SlButton,\n SlGlyph,\n SlIcon,\n SlSkeleton,\n SlStepper,\n SlStepperList,\n SlStepperStep,\n SlTag,\n forwardRef(() => SlWizardNext),\n forwardRef(() => SlWizardPrevious),\n forwardRef(() => SlWizardCancel),\n forwardRef(() => SlWizardSaveDraft),\n forwardRef(() => SlWizardSkip),\n forwardRef(() => SlWizardDraftStatus),\n SlWizardActionsStart,\n SlWizardActionsEnd,\n ],\n template: `\n <div data-part=\"layout\">\n @if (resolvedProgress() !== 'none') {\n <div\n data-part=\"progress\"\n [attr.data-open]=\"progressOpen() ? '' : null\"\n (keydown)=\"onProgressKeydown($event)\"\n >\n <button\n #toggle\n data-part=\"progress-toggle\"\n type=\"button\"\n [attr.aria-controls]=\"listId\"\n [attr.aria-expanded]=\"progressOpen()\"\n (click)=\"toggleProgress($event)\"\n >\n <span data-part=\"progress-position\">{{ positionText() }}</span>\n <span aria-hidden=\"true\" data-part=\"progress-track\">\n @for (entry of entries(); track entry.name) {\n <span\n data-part=\"progress-segment\"\n [attr.data-complete]=\"\n finished() || (entry.name !== current() && isComplete(entry.name)) ? '' : null\n \"\n [attr.data-current]=\"!finished() && entry.name === current() ? '' : null\"\n [attr.data-invalid]=\"invalid().has(entry.name) ? '' : null\"\n ></span>\n }\n </span>\n <span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n <div\n slStepper\n [messages]=\"stepperMessages()\"\n [navigation]=\"phase() === 'complete' ? 'none' : 'button'\"\n [orientation]=\"resolvedProgress() === 'top' ? 'horizontal' : 'vertical'\"\n [step]=\"finished() ? entries().length : currentIndex()\"\n (stepChange)=\"onHeader($event)\"\n >\n <ol slStepperList [attr.id]=\"listId\">\n @for (item of steps(); track item.name()) {\n <li\n slStepperStep\n [complete]=\"phase() === 'complete' || isComplete(item.name())\"\n [description]=\"item.optional() ? t('optional') : undefined\"\n [disabled]=\"disabled() || item.disabled() || !isReachable(item.name())\"\n [invalid]=\"invalid().has(item.name())\"\n [label]=\"item.label()\"\n [loading]=\"pending() === item.name()\"\n ></li>\n }\n </ol>\n </div>\n </div>\n }\n\n <div data-part=\"main\">\n @if (errorShown()) {\n <div data-part=\"error\">\n <section #alert slAlert live=\"off\" reach=\"section\" tone=\"danger\">\n <div slAlertContent>\n <div slAlertTitle>{{ error() ?? t('submitFailed') }}</div>\n @if (error() === undefined && failure()?.message) {\n <p slAlertDescription>{{ failure()?.message }}</p>\n }\n </div>\n </section>\n </div>\n }\n\n @if (phase() === 'complete') {\n <div #complete data-part=\"complete\" tabindex=\"-1\">\n @if (completeTemplate(); as done) {\n <ng-container *ngTemplateOutlet=\"done.template\"></ng-container>\n }\n </div>\n } @else {\n <div data-part=\"step\" [attr.aria-busy]=\"restoring() ? 'true' : null\">\n @if (restoring()) {\n @if (skeleton()) {\n <div aria-hidden=\"true\" data-part=\"step-header\">\n <div data-part=\"step-title\">\n <span data-part=\"position\"><span slSkeleton inlineSize=\"5.5rem\"></span></span>\n <span slSkeleton inlineSize=\"13rem\"></span>\n </div>\n </div>\n <div aria-hidden=\"true\" data-part=\"skeleton\">\n <div data-label-placement=\"top\" data-part=\"root\" data-size=\"md\" data-ui=\"field\">\n <span data-part=\"label\"><span slSkeleton inlineSize=\"7rem\"></span></span>\n <div data-part=\"control\">\n <span\n slSkeleton\n shape=\"block\"\n blockSize=\"var(--slotted-control-height-md)\"\n ></span>\n </div>\n </div>\n </div>\n }\n } @else if (currentStep(); as step) {\n <div data-part=\"step-header\">\n @switch (resolvedLevel()) {\n @case (3) {\n <h3 #title data-part=\"step-title\" tabindex=\"-1\" [id]=\"titleId\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: step }\" />\n </h3>\n }\n @case (4) {\n <h4 #title data-part=\"step-title\" tabindex=\"-1\" [id]=\"titleId\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: step }\" />\n </h4>\n }\n @default {\n <h2 #title data-part=\"step-title\" tabindex=\"-1\" [id]=\"titleId\">\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: step }\" />\n </h2>\n }\n }\n @if (step.description()) {\n <p data-part=\"step-description\">{{ step.description() }}</p>\n }\n </div>\n @for (key of [renderKey()]; track key) {\n <ng-container *ngTemplateOutlet=\"step.template; context: stepContext()\" />\n }\n }\n </div>\n @if (!restoring()) {\n <div data-part=\"actions\">\n @if (actionsTemplate(); as custom) {\n <ng-container *ngTemplateOutlet=\"custom.template\"></ng-container>\n } @else {\n <div slWizardActionsStart>\n @if (canCancel()) {\n <button\n slButton\n slWizardCancel\n tone=\"secondary\"\n variant=\"ghost\"\n focusableWhenDisabled\n [disabled]=\"phase() === 'submitting'\"\n >\n {{ t('cancel') }}\n </button>\n }\n @if (canSaveDraft()) {\n <button\n slButton\n slWizardSaveDraft\n tone=\"secondary\"\n variant=\"ghost\"\n focusableWhenDisabled\n [disabled]=\"disabled() || busy()\"\n [loading]=\"draftState() === 'saving'\"\n >\n {{ t('saveDraft') }}\n </button>\n <span slWizardDraftStatus></span>\n }\n </div>\n <div slWizardActionsEnd>\n @if (optionalStep()) {\n <button\n slButton\n slWizardSkip\n tone=\"secondary\"\n variant=\"ghost\"\n focusableWhenDisabled\n [disabled]=\"disabled() || busy()\"\n >\n {{ t('skip') }}\n </button>\n }\n @if (!isFirst()) {\n <button\n slButton\n slWizardPrevious\n tone=\"secondary\"\n variant=\"outline\"\n focusableWhenDisabled\n [disabled]=\"disabled() || busy()\"\n >\n {{ t('previous') }}\n </button>\n }\n <button\n slButton\n slWizardNext\n tone=\"accent\"\n variant=\"solid\"\n focusableWhenDisabled\n [disabled]=\"disabled()\"\n [loading]=\"busy()\"\n [type]=\"hasForm() ? 'submit' : 'button'\"\n >\n {{ nextLabel() }}\n </button>\n </div>\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #heading let-step>\n <span data-part=\"position\">{{ positionText() }}</span>\n {{ step.label() }}\n @if (step.optional()) {\n <span data-part=\"optional\"\n >{{ ' '\n }}<span slTag shape=\"pill\" size=\"sm\" tone=\"secondary\" variant=\"soft\">{{\n t('optional')\n }}</span>\n </span>\n }\n </ng-template>\n `,\n styleUrls: [\n '../../../styles/src/wizard/wizard.css',\n '../../../styles/src/field/field.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'wizard',\n 'data-part': 'root',\n '[attr.data-progress]': 'resolvedProgress()',\n '[attr.data-scroll]': 'resolvedScroll()',\n '[attr.data-loading]': \"phase() === 'submitting' || restoring() ? '' : null\",\n '[attr.data-invalid]': \"errorShown() ? '' : null\",\n '[attr.data-complete]': \"phase() === 'complete' ? '' : null\",\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n },\n})\nexport class SlWizard implements AfterContentInit {\n /** The current step's name. Two-way; a router binds it. */\n readonly step = model<string | undefined>(undefined);\n /** The accepted answers, by step name. Two-way. */\n readonly value = model<WizardValue | undefined>(undefined);\n /** Whether the compact list of steps is open. Two-way. */\n readonly progressOpen = model<boolean>(false);\n\n /** The step an unbound wizard starts on, read once and clamped to one in reach. */\n readonly defaultStep = input<string | undefined>(undefined);\n readonly defaultValue = input<WizardValue | undefined>(undefined);\n /** Whether an unbound compact list starts open, read once. */\n readonly defaultProgressOpen = input(false, { transform: booleanAttribute });\n\n readonly progress = input<WizardProgress | undefined>(undefined);\n readonly scroll = input<WizardScroll | undefined>(undefined);\n readonly linear = input(undefined, { transform: optionalBoolean });\n readonly level = input<WizardLevel | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * name of the list of steps (`progress`), the position, the actions, the\n * draft status and the failures.\n */\n readonly messages = input<PartialMessages<WizardMessages> | undefined>(undefined);\n readonly disabled = input(false, { transform: booleanAttribute });\n /** An error of the consumer's own, shown above the step; it wins over a failed submission. */\n readonly error = input<string | undefined>(undefined);\n /** Called with the answers of the steps present, once the last step is accepted. */\n readonly submitWizard = input<WizardSubmit | undefined>(undefined);\n readonly persistence = input<WizardPersistence | undefined>(undefined);\n /** The flow's version; a draft of another version is not restored. */\n readonly version = input<string | number | undefined>(undefined);\n /** Defaults to `step` when `persistence` is given, `none` otherwise. */\n readonly autosave = input<WizardAutosave | undefined>(undefined);\n readonly guardUnsaved = input(false, { transform: booleanAttribute });\n /**\n * Shows the cancel action. An Angular output cannot say whether anything\n * listens to it, which is how the React binding decides; here it is stated.\n */\n readonly cancellable = input(false, { transform: booleanAttribute });\n /** Shows the save-draft action without `persistence`, for a `(draftSave)` of the consumer's own. */\n readonly draftable = input(false, { transform: booleanAttribute });\n readonly delay = input(undefined, {\n transform: (raw: unknown) => (raw === undefined ? undefined : numberAttribute(raw)),\n });\n readonly minDuration = input(undefined, {\n transform: (raw: unknown) => (raw === undefined ? undefined : numberAttribute(raw)),\n });\n\n /** One output per transition, carrying its reason and `cancel()`. */\n readonly stepChangeRequest = output<WizardStepRequest>();\n readonly valueChangeRequest = output<WizardValueRequest>();\n readonly progressOpenChangeRequest = output<WizardProgressOpenRequest>();\n /** Asked by the cancel action; the family closes nothing itself. */\n readonly cancelRequest = output<WizardCancelRequest>();\n /** A draft was written, before `persistence` keeps it. */\n readonly draftSave = output<WizardDraftRequest>();\n /** The submission was accepted. */\n readonly completed = output<WizardValue>();\n\n readonly steps = contentChildren(SlWizardStep);\n protected readonly completeTemplate = contentChild(SlWizardComplete);\n protected readonly actionsTemplate = contentChild(SlWizardActions);\n\n private readonly defaults = injectWizardDefaults();\n private readonly injector = inject(Injector);\n private readonly titleRef = viewChild<ElementRef<HTMLElement>>('title');\n private readonly alertRef = viewChild('alert', { read: ElementRef });\n private readonly completeRef = viewChild<ElementRef<HTMLElement>>('complete');\n private readonly toggleRef = viewChild<ElementRef<HTMLButtonElement>>('toggle');\n\n private readonly id = `slotted-wizard-${(counter += 1)}`;\n readonly formId = `${this.id}-form`;\n readonly titleId = `${this.id}-title`;\n readonly listId = `${this.id}-list`;\n\n /** The family's words in the language in force, with this wizard's `messages` laid over them. */\n readonly t = injectMessages(wizardMessages, this.messages);\n /** The locale in force: what the hour a draft was saved is written in. */\n readonly locale = injectLocale();\n /**\n * The list of steps is a stepper named by this family's `progress`: the\n * written word is handed over as a message function, so the stepper never\n * reads it as message grammar again.\n */\n protected readonly stepperMessages = computed(() => {\n const progress = this.t('progress');\n return { label: () => progress };\n });\n readonly resolvedProgress = computed(() => this.progress() ?? this.defaults.progress);\n readonly resolvedScroll = computed(() => this.scroll() ?? this.defaults.scroll);\n readonly resolvedLinear = computed(() => this.linear() ?? this.defaults.linear);\n readonly resolvedLevel = computed(() => this.level() ?? this.defaults.level);\n private readonly resolvedAutosave = computed(\n () => this.autosave() ?? (this.persistence() === undefined ? 'none' : 'step'),\n );\n\n readonly entries = computed<WizardStepEntry[]>(() =>\n this.steps().map((step) => ({ disabled: step.disabled(), name: step.name() })),\n );\n\n private readonly accepted = computed(() => this.value() ?? EMPTY);\n protected readonly drafts = signal<WizardValue>(EMPTY);\n protected readonly invalid = signal<ReadonlySet<string>>(new Set());\n readonly pending = signal<string | undefined>(undefined);\n readonly phase = signal<'editing' | 'submitting' | 'complete'>('editing');\n protected readonly failure = signal<WizardFailure | undefined>(undefined);\n readonly draftState = signal<'idle' | 'saving' | 'saved' | 'failed'>('idle');\n readonly savedAt = signal<Date | undefined>(undefined);\n protected readonly restoring = signal(false);\n protected readonly skeleton = signal(false);\n private readonly returnTo = signal<string | undefined>(undefined);\n private readonly epoch = signal(0);\n private readonly stepErrors = signal<Record<string, FormErrorInput>>({});\n private readonly form = signal<SlWizardForm | undefined>(undefined);\n\n /** The list before its last change, for a current step that left it. */\n private previousEntries: readonly WizardStepEntry[] = [];\n /** The step the family itself last wrote, so a router's write can be told apart. */\n private ownWrite: string | undefined;\n private validation: AbortController | undefined;\n private jumpTarget: string | undefined;\n private focusNext: 'title' | 'alert' | 'complete' | undefined;\n private initialised = false;\n\n private usable(name: string | undefined) {\n return this.entries().some((entry) => entry.name === name && entry.disabled !== true);\n }\n\n /**\n * The step shown. A requested step that is absent gives way to the next one\n * still present in the old order (decision 2 shows that one at once); the\n * current step is never moved because a step appeared before it (decision 1).\n */\n readonly current = computed<string | undefined>(() => {\n const requested = this.step();\n const entries = this.entries();\n if (this.usable(requested)) return requested;\n const before = untracked(() => this.previousEntries);\n const linear = this.resolvedLinear();\n return requested === undefined\n ? clampStep({ linear, requested, steps: entries, value: this.accepted() })\n : (replacementStep({ after: entries, before, current: requested }) ??\n clampStep({ linear, requested, steps: entries, value: this.accepted() }));\n });\n\n /**\n * After an accepted submission the flow has no current step: the stepper is\n * given the index past the last, so every header reads complete. Left on the\n * last step, that header kept its number, because a current step outranks a\n * complete one.\n */\n protected readonly finished = computed(() => this.phase() === 'complete');\n\n protected readonly currentIndex = computed(() =>\n Math.max(\n 0,\n this.entries().findIndex((entry) => entry.name === this.current()),\n ),\n );\n readonly currentStep = computed(() =>\n this.steps().find((step) => step.name() === this.current()),\n );\n protected readonly optionalStep = computed(() => this.currentStep()?.optional() === true);\n readonly position = computed(() => stepPosition(this.entries(), this.current()));\n protected readonly positionText = computed(() =>\n this.t('position', { index: this.position().index, count: this.position().count }),\n );\n readonly isFirst = computed(() => {\n const current = this.current();\n return current === undefined || previousStep({ current, steps: this.entries() }) === undefined;\n });\n readonly returning = computed(() => {\n const back = this.returnTo();\n return back !== undefined && this.entries().some((entry) => entry.name === back);\n });\n readonly isFinal = computed(() => {\n const current = this.current();\n if (current === undefined) return false;\n return (\n nextDestination({\n current,\n returnTo: this.returnTo(),\n steps: this.entries(),\n value: { ...this.accepted(), [current]: {} },\n }).kind === 'submit'\n );\n });\n protected readonly nextLabel = computed(() =>\n this.t(this.returning() ? 'return' : this.isFinal() ? 'submit' : 'next'),\n );\n readonly busy = computed(() => this.pending() !== undefined || this.phase() === 'submitting');\n readonly hasForm = computed(() => this.form() !== undefined);\n protected readonly canCancel = computed(() => this.cancellable());\n protected readonly canSaveDraft = computed(\n () => this.draftable() || this.persistence() !== undefined,\n );\n protected readonly errorShown = computed(\n () => this.error() !== undefined || this.failure() !== undefined,\n );\n protected readonly renderKey = computed(() => `${this.current() ?? ''}-${this.epoch()}`);\n protected readonly stepContext = computed<WizardStepContext>(() => {\n const name = this.current() ?? '';\n const values = this.drafts()[name] ?? this.accepted()[name] ?? {};\n return {\n $implicit: values,\n complete: stepComplete(this.accepted(), name),\n errors: this.stepErrors()[name],\n name,\n optional: this.optionalStep(),\n values,\n };\n });\n\n constructor() {\n /* A resolved step that differs from the requested one is written back. */\n effect(() => {\n const current = this.current();\n const requested = this.step();\n const entries = this.entries();\n untracked(() => {\n this.previousEntries = entries;\n if (!this.initialised) return;\n assertUniqueSteps(entries);\n if (current === undefined || current === requested) return;\n this.leave();\n this.requestStep(current, 'programmatic', undefined, false);\n });\n });\n\n /* A step a router wrote on its own is clamped to one in reach. */\n effect(() => {\n const requested = this.step();\n untracked(() => {\n if (!this.initialised || requested === undefined || requested === this.ownWrite) return;\n const clamped = clampStep({\n linear: this.resolvedLinear(),\n requested,\n steps: this.entries(),\n value: this.accepted(),\n });\n if (clamped !== undefined && clamped !== requested) {\n this.requestStep(clamped, 'programmatic', undefined, false);\n }\n });\n });\n\n /* Focus follows the step, the failure or the completion, after render. */\n effect(() => {\n this.current();\n this.phase();\n this.failure();\n untracked(() => {\n const target = this.focusNext;\n if (target === undefined) return;\n afterNextRender(\n () => {\n if (this.focusNext !== target) return;\n const element =\n target === 'alert'\n ? (this.alertRef()?.nativeElement as HTMLElement | undefined)\n : target === 'complete'\n ? this.completeRef()?.nativeElement\n : this.titleRef()?.nativeElement;\n if (element === undefined) return;\n this.focusNext = undefined;\n element.focus();\n },\n { injector: this.injector },\n );\n });\n });\n\n const destroyRef = inject(DestroyRef);\n const onBeforeUnload = (event: BeforeUnloadEvent) => {\n if (this.guardUnsaved() && this.dirty()) event.preventDefault();\n };\n if (typeof window !== 'undefined') {\n window.addEventListener('beforeunload', onBeforeUnload);\n destroyRef.onDestroy(() => window.removeEventListener('beforeunload', onBeforeUnload));\n }\n destroyRef.onDestroy(() => this.validation?.abort());\n }\n\n ngAfterContentInit() {\n assertUniqueSteps(this.entries());\n if (this.defaultProgressOpen() && !this.progressOpen()) this.progressOpen.set(true);\n const loaded = this.persistence()?.load();\n const snapshot = isPromise(loaded) ? undefined : loaded;\n /* A restored value is requested in either mode, so a consumer that derives\n a branch from it — through [(value)] or (valueChangeRequest) — hears it. */\n if (snapshot !== undefined) this.requestValue(snapshot.value, 'programmatic');\n else if (this.value() === undefined) this.value.set(this.defaultValue() ?? EMPTY);\n if (snapshot !== undefined) {\n this.drafts.set(snapshot.drafts);\n this.resolveRestored(snapshot.step);\n }\n const requested = snapshot?.step ?? this.step() ?? this.defaultStep();\n const start = clampStep({\n linear: this.resolvedLinear(),\n requested,\n steps: this.entries(),\n value: this.accepted(),\n });\n if (start !== undefined && start !== this.step()) {\n if (this.step() === undefined) {\n this.ownWrite = start;\n this.step.set(start);\n } else this.requestStep(start, 'programmatic', undefined, false);\n }\n this.initialised = true;\n if (isPromise(loaded)) this.restore(loaded as Promise<WizardSnapshot | undefined>);\n }\n\n /* ── Requests ──────────────────────────────────────────────────────── */\n\n private requestStep(next: string, reason: WizardStepReason, source: unknown, focus = true) {\n const from = this.current();\n if (next === from && next === this.step()) return false;\n let cancelled = false;\n const state = createControllable<string>({\n initial: this.step() ?? from ?? next,\n onRequest: (raw) => {\n this.stepChangeRequest.emit(this.wrap(raw, reason));\n cancelled = raw.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (!moved || cancelled) return false;\n this.ownWrite = next;\n this.step.set(next);\n if (focus) this.focusNext = 'title';\n return true;\n }\n\n private requestValue(next: WizardValue, reason: WizardValueRequest['reason'], source?: unknown) {\n let cancelled = false;\n const state = createControllable<WizardValue>({\n initial: this.accepted(),\n onRequest: (raw) => {\n this.valueChangeRequest.emit(this.wrap(raw, reason));\n cancelled = raw.cancelled;\n },\n });\n if (!state.request(next, reason, source) || cancelled) return false;\n this.value.set(next);\n return true;\n }\n\n private requestOpen(\n next: boolean,\n reason: WizardProgressOpenRequest['reason'],\n source?: unknown,\n ) {\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.progressOpen(),\n onRequest: (raw) => {\n this.progressOpenChangeRequest.emit(this.wrap(raw, reason));\n cancelled = raw.cancelled;\n },\n });\n if (!state.request(next, reason, source) || cancelled) return;\n this.progressOpen.set(next);\n }\n\n private wrap<T, R extends string>(raw: ChangeRequest<T>, reason: R) {\n return {\n cancel: () => raw.cancel(),\n get cancelled() {\n return raw.cancelled;\n },\n previous: raw.previous,\n reason,\n source: raw.source,\n value: raw.value,\n } as ChangeRequest<T> & { reason: R };\n }\n\n /* ── Forms ─────────────────────────────────────────────────────────── */\n\n registerForm(form: SlWizardForm) {\n this.form.set(form);\n }\n\n unregisterForm(form: SlWizardForm) {\n if (this.form() === form) this.form.set(undefined);\n }\n\n isComplete(name: string) {\n return stepComplete(this.accepted(), name);\n }\n\n isReachable(name: string) {\n return (\n this.phase() === 'complete' ||\n reachableStep({\n current: this.current(),\n linear: this.resolvedLinear(),\n steps: this.entries(),\n target: name,\n value: this.accepted(),\n })\n );\n }\n\n /* ── The cycle of a step ───────────────────────────────────────────── */\n\n /**\n * The step's form passed the platform's and Reactive Forms' validation. The\n * step's `validate` runs next; a promise holds the next button in its\n * loading state and is aborted when the reader leaves (decision 4).\n */\n commit(\n typed: StepValues,\n source: unknown,\n ): FormErrorInput | void | Promise<FormErrorInput | void> {\n const name = this.current();\n if (name === undefined || this.pending() !== undefined || this.phase() !== 'editing') return;\n const step = this.currentStep();\n const answers = step?.values() ?? typed;\n const check = step?.validate();\n if (check === undefined) {\n this.accept(name, answers, source);\n return;\n }\n\n this.validation?.abort();\n const controller = new AbortController();\n this.validation = controller;\n const found = (errors: FormErrorInput | void): FormErrorInput | void => {\n if (controller.signal.aborted) return;\n if (this.validation === controller) this.validation = undefined;\n this.pending.set(undefined);\n if (errors !== undefined && errors !== null && hasErrors(normaliseErrors(errors))) {\n this.markInvalid(name, true);\n this.jumpTarget = undefined;\n return errors;\n }\n if (this.current() !== name) return;\n this.accept(name, answers, source);\n };\n const result = check(answers, { signal: controller.signal, value: this.accepted() });\n if (!isPromise(result)) return found(result);\n this.pending.set(name);\n return (result as Promise<FormErrorInput | void>).then(found, () => {\n if (!controller.signal.aborted) this.pending.set(undefined);\n });\n }\n\n private accept(name: string, answers: StepValues, source: unknown) {\n const accepted = { ...this.accepted(), [name]: answers };\n if (!this.requestValue(accepted, 'submit', source)) return;\n const drafts = without(this.drafts(), name);\n this.drafts.set(drafts);\n this.stepErrors.update((errors) => {\n if (!(name in errors)) return errors;\n const next = { ...errors };\n delete next[name];\n return next;\n });\n this.markInvalid(name, false);\n /**\n * Where the flow goes is decided after the consumer's template has run\n * again with the new value, not now. A step the answer opens — Company\n * after Business, an `@if` over the value — exists only once the view\n * that declares it has been checked; decided here, the destination\n * skipped it and went to the step after.\n */\n afterNextRender(\n () => {\n if (this.current() !== name || this.phase() !== 'editing') return;\n if (this.resolvedAutosave() === 'step') {\n const destination = nextDestination({\n current: name,\n returnTo: this.returnTo(),\n steps: this.entries(),\n value: accepted,\n });\n void this.write(\n accepted,\n drafts,\n destination.kind === 'step' ? destination.name : name,\n 'submit',\n source,\n );\n }\n this.route(accepted, name, source);\n },\n { injector: this.injector },\n );\n }\n\n private route(accepted: WizardValue, name: string, source: unknown) {\n const steps = this.entries();\n const jump = this.jumpTarget;\n this.jumpTarget = undefined;\n if (\n jump !== undefined &&\n reachableStep({\n current: name,\n linear: this.resolvedLinear(),\n steps,\n target: jump,\n value: accepted,\n })\n ) {\n this.requestStep(jump, 'pointer', source);\n return;\n }\n const back = this.returnTo();\n const destination = nextDestination({ current: name, returnTo: back, steps, value: accepted });\n if (back !== undefined && (destination.kind === 'submit' || destination.name === back)) {\n this.returnTo.set(undefined);\n }\n if (back !== undefined && !steps.some((entry) => entry.name === back))\n this.returnTo.set(undefined);\n if (destination.kind === 'step') this.requestStep(destination.name, 'submit', source);\n else this.submitFlow(accepted, source);\n }\n\n private submitFlow(accepted: WizardValue, source: unknown) {\n const open = firstIncomplete({ steps: this.entries(), value: accepted });\n if (open !== undefined) {\n this.requestStep(open, 'submit', source);\n this.failure.set({ message: this.t('incomplete') });\n this.focusNext = 'alert';\n return;\n }\n this.failure.set(undefined);\n this.phase.set('submitting');\n const settle = (answer: unknown) => {\n if (typeof answer === 'object' && answer !== null) {\n this.fail(answer as WizardFailure, source);\n return;\n }\n this.phase.set('complete');\n this.drafts.set(EMPTY);\n void this.persistence()?.clear();\n this.focusNext = 'complete';\n this.completed.emit(accepted);\n };\n let answer: unknown;\n try {\n answer = this.submitWizard()?.(includedValues(accepted, this.entries()), {\n reason: 'submit',\n source,\n value: accepted,\n });\n } catch {\n this.fail({}, source);\n return;\n }\n if (isPromise(answer)) {\n answer.then(settle, () => this.fail({}, source));\n return;\n }\n settle(answer);\n }\n\n private fail(reported: WizardFailure, source: unknown) {\n this.phase.set('editing');\n this.failure.set(reported);\n const target = reported.step;\n if (target !== undefined && this.entries().some((entry) => entry.name === target)) {\n if (reported.errors !== undefined) {\n this.stepErrors.update((errors) => ({\n ...errors,\n [target]: reported.errors as FormErrorInput,\n }));\n this.markInvalid(target, true);\n }\n if (target === this.current()) this.epoch.update((epoch) => epoch + 1);\n else this.requestStep(target, 'programmatic', source);\n }\n this.focusNext = 'alert';\n }\n\n /** The errors a failed submission sent back for this step, for its form. */\n errorsFor(name: string): FormErrorInput | undefined {\n return this.stepErrors()[name];\n }\n\n private markInvalid(name: string, invalid: boolean) {\n this.invalid.update((names) => {\n if (names.has(name) === invalid) return names;\n const next = new Set(names);\n if (invalid) next.add(name);\n else next.delete(name);\n return next;\n });\n }\n\n private leave() {\n this.validation?.abort();\n this.validation = undefined;\n this.pending.set(undefined);\n }\n\n /** What was typed on this step and not accepted, kept for when it returns. */\n private stash(): WizardValue {\n const form = this.form();\n const name = this.current();\n if (form === undefined || name === undefined || !form.dirty()) return this.drafts();\n const next = { ...this.drafts(), [name]: form.typed() };\n this.drafts.set(next);\n return next;\n }\n\n private async write(\n value: WizardValue,\n drafts: WizardValue,\n step: string,\n reason: WizardDraftReason,\n source: unknown,\n ) {\n const persistence = this.persistence();\n const snapshot = createSnapshot({ drafts, step, value, version: this.version() });\n this.draftState.set('saving');\n try {\n this.draftSave.emit({ reason, snapshot, source });\n await persistence?.save(snapshot);\n this.savedAt.set(new Date(snapshot.savedAt));\n this.draftState.set('saved');\n } catch {\n this.draftState.set('failed');\n }\n }\n\n private restore(load: Promise<WizardSnapshot | undefined>) {\n this.restoring.set(true);\n let shownAt: number | undefined;\n const delay = this.delay() ?? this.defaults.delay;\n const minDuration = this.minDuration() ?? this.defaults.minDuration;\n const timer = setTimeout(() => {\n shownAt = Date.now();\n this.skeleton.set(true);\n }, delay);\n const finish = (snapshot: WizardSnapshot | undefined) => {\n clearTimeout(timer);\n const apply = () => {\n this.skeleton.set(false);\n this.restoring.set(false);\n if (snapshot === undefined) return;\n this.requestValue(snapshot.value, 'programmatic');\n this.drafts.set(snapshot.drafts);\n this.resolveRestored(snapshot.step);\n };\n const remaining = shownAt === undefined ? 0 : minDuration - (Date.now() - shownAt);\n if (remaining > 0) setTimeout(apply, remaining);\n else apply();\n };\n load.then(finish, () => finish(undefined));\n }\n\n /**\n * The step a draft was saved on, resolved after the consumer's template has\n * run with the restored value: the step may be one that value opens, and\n * before that render it does not exist.\n */\n private resolveRestored(step: string) {\n afterNextRender(\n () => {\n const target = clampStep({\n linear: this.resolvedLinear(),\n requested: step,\n steps: this.entries(),\n value: this.accepted(),\n });\n if (target !== undefined && target !== this.current()) {\n this.requestStep(target, 'programmatic', undefined, false);\n }\n },\n { injector: this.injector },\n );\n }\n\n private dirty() {\n const form = this.form();\n return (\n this.phase() !== 'complete' &&\n ((form !== undefined && form.dirty()) ||\n Object.keys(this.drafts()).length > 0 ||\n Object.keys(this.accepted()).length > 0)\n );\n }\n\n /* ── The moves ─────────────────────────────────────────────────────── */\n\n /** Submits the current step, as the next button does. */\n next(source?: unknown) {\n if (this.disabled() || this.phase() !== 'editing') return;\n const form = this.form();\n if (form !== undefined) {\n form.submit();\n return;\n }\n const name = this.current();\n if (name !== undefined) void this.commit({}, source);\n }\n\n /** One step back, keeping what was typed. */\n previous(source?: unknown) {\n const name = this.current();\n if (name === undefined || this.busy() || this.disabled() || this.phase() !== 'editing') return;\n const target = previousStep({ current: name, steps: this.entries() });\n if (target === undefined) return;\n this.stash();\n this.leave();\n this.requestStep(target, 'pointer', source);\n }\n\n /** Goes to a step: back freely, forward through a submission of this one. */\n goTo(name: string, reason: WizardStepReason = 'programmatic', source?: unknown) {\n const from = this.current();\n const steps = this.entries();\n if (from === undefined || name === from || this.phase() !== 'editing' || this.disabled())\n return;\n const target = steps.findIndex((entry) => entry.name === name);\n const here = steps.findIndex((entry) => entry.name === from);\n if (target === -1) return;\n if (target < here) {\n this.stash();\n this.leave();\n this.requestStep(name, reason, source);\n return;\n }\n if (this.pending() !== undefined) return;\n if (\n !reachableStep({\n current: from,\n linear: this.resolvedLinear(),\n steps,\n target: name,\n value: { ...this.accepted(), [from]: {} },\n })\n ) {\n return;\n }\n this.jumpTarget = name;\n this.next(source);\n if (this.validation === undefined && this.jumpTarget === name) this.jumpTarget = undefined;\n }\n\n /** Goes to a step and comes back here once it is accepted. */\n edit(name: string, source?: unknown) {\n const from = this.current();\n if (from === undefined || this.phase() !== 'editing' || this.disabled()) return;\n this.returnTo.set(from);\n this.stash();\n this.leave();\n this.requestStep(name, 'pointer', source);\n }\n\n /** Accepts an optional step with no answers. */\n skip(source?: unknown) {\n const name = this.current();\n if (name === undefined || !this.optionalStep() || this.busy() || this.disabled()) return;\n if (this.phase() !== 'editing') return;\n this.leave();\n this.accept(name, {}, source);\n }\n\n cancel(source?: unknown) {\n if (this.phase() === 'submitting') return;\n this.cancelRequest.emit({ dirty: this.dirty(), source });\n }\n\n saveDraft(reason: WizardDraftReason = 'programmatic', source?: unknown) {\n const name = this.current();\n if (name === undefined || this.phase() !== 'editing') return;\n const drafts = this.stash();\n void this.write(this.accepted(), drafts, name, reason, source);\n }\n\n clearDraft() {\n this.draftState.set('idle');\n this.savedAt.set(undefined);\n void this.persistence()?.clear();\n }\n\n /** Back to the first step, with no answers, no draft and no error. */\n reset() {\n this.leave();\n this.jumpTarget = undefined;\n this.returnTo.set(undefined);\n this.failure.set(undefined);\n this.phase.set('editing');\n this.drafts.set(EMPTY);\n this.stepErrors.set({});\n this.invalid.set(new Set());\n this.draftState.set('idle');\n this.savedAt.set(undefined);\n this.requestValue(EMPTY, 'clear');\n const first = clampStep({\n linear: this.resolvedLinear(),\n requested: undefined,\n steps: this.entries(),\n value: EMPTY,\n });\n if (first !== undefined) this.requestStep(first, 'programmatic', undefined);\n void this.persistence()?.clear();\n }\n\n focus() {\n this.titleRef()?.nativeElement.focus();\n }\n\n /* ── The progress ──────────────────────────────────────────────────── */\n\n protected onHeader(request: ChangeRequest<number>) {\n const target = this.entries()[request.value]?.name;\n if (target === undefined) return;\n if (this.progressOpen()) this.requestOpen(false, 'select', request.source);\n this.goTo(target, request.reason === 'keyboard' ? 'keyboard' : 'pointer', request.source);\n }\n\n protected toggleProgress(event: MouseEvent) {\n this.requestOpen(!this.progressOpen(), event.detail === 0 ? 'keyboard' : 'pointer', event);\n }\n\n protected onProgressKeydown(event: KeyboardEvent) {\n if (event.key !== 'Escape' || !this.progressOpen()) return;\n event.preventDefault();\n this.requestOpen(false, 'escape', event);\n this.toggleRef()?.nativeElement.focus();\n }\n}\n\n/* ── The actions ─────────────────────────────────────────────────────── */\n\n/**\n * The next button. On a plain `button` a consumer wrote it submits the step's\n * form; beside `slButton` in the default row it is `type=\"submit\"` associated\n * to the form by the platform's `form` attribute. The part is a binding, so it\n * wins over `slButton`'s static `data-part=\"root\"` and follows the switch to\n * `submit` on the final step.\n */\n@Directive({\n selector: 'button[slWizardNext]',\n standalone: true,\n host: {\n '[attr.data-part]': \"wizard.isFinal() && !wizard.returning() ? 'submit' : 'next'\",\n '[attr.data-final]': \"wizard.isFinal() && !wizard.returning() ? '' : null\",\n '[attr.form]': 'wizard.hasForm() ? wizard.formId : null',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlWizardNext {\n protected readonly wizard = inject(SlWizard);\n private readonly button = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n if (this.wizard.busy() || this.wizard.disabled()) {\n event.preventDefault();\n return;\n }\n if (this.button.type === 'submit' && this.wizard.hasForm()) return;\n this.wizard.next(event);\n }\n}\n\n@Directive({\n selector: 'button[slWizardPrevious]',\n standalone: true,\n host: { '[attr.data-part]': \"'previous'\", '(click)': 'onClick($event)' },\n})\nexport class SlWizardPrevious {\n private readonly wizard = inject(SlWizard);\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.wizard.previous(event);\n }\n}\n\n@Directive({\n selector: 'button[slWizardCancel]',\n standalone: true,\n host: { '[attr.data-part]': \"'cancel'\", '(click)': 'onClick($event)' },\n})\nexport class SlWizardCancel {\n private readonly wizard = inject(SlWizard);\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.wizard.cancel(event);\n }\n}\n\n@Directive({\n selector: 'button[slWizardSaveDraft]',\n standalone: true,\n host: { '[attr.data-part]': \"'save-draft'\", '(click)': 'onClick($event)' },\n})\nexport class SlWizardSaveDraft {\n private readonly wizard = inject(SlWizard);\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.wizard.saveDraft('pointer', event);\n }\n}\n\n@Directive({\n selector: 'button[slWizardSkip]',\n standalone: true,\n host: { '[attr.data-part]': \"'skip'\", '(click)': 'onClick($event)' },\n})\nexport class SlWizardSkip {\n private readonly wizard = inject(SlWizard);\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.wizard.skip(event);\n }\n}\n\n/** The polite status that says when the draft was saved. */\n@Component({\n selector: '[slWizardDraftStatus]',\n standalone: true,\n template: '{{ text() }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'data-part': 'draft-status', role: 'status' },\n})\nexport class SlWizardDraftStatus {\n private readonly wizard = inject(SlWizard);\n protected readonly text = computed(() => {\n const t = this.wizard.t;\n const state = this.wizard.draftState();\n const savedAt = this.wizard.savedAt();\n if (state === 'saving') return t('saving');\n if (state === 'failed') return t('draftFailed');\n if (state === 'saved' && savedAt !== undefined) {\n const time = new Intl.DateTimeFormat(this.wizard.locale(), {\n hour: '2-digit',\n minute: '2-digit',\n }).format(savedAt);\n return t('saved', { time });\n }\n return '';\n });\n}\n\n/**\n * The control a review step puts beside each answer: it goes to the named\n * step and sets the return point. Its name is the label and the step's label,\n * \"Change shipping address\".\n */\n@Component({\n selector: 'button[slWizardEdit]',\n standalone: true,\n template: `<ng-content>{{ wizard.t('edit') }}</ng-content>\n @if (target(); as step) {\n {{ ' ' }}<span data-ui=\"visually-hidden\">{{ step.label() }}</span>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-part': 'edit',\n type: 'button',\n '[attr.aria-disabled]': \"unavailable() ? 'true' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlWizardEdit {\n protected readonly wizard = inject(SlWizard);\n readonly step = input.required<string>({ alias: 'slWizardEdit' });\n protected readonly target = computed(() =>\n this.wizard.steps().find((candidate) => candidate.name() === this.step()),\n );\n protected readonly unavailable = computed(\n () => this.wizard.disabled() || this.wizard.busy() || this.target() === undefined,\n );\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.unavailable()) return;\n this.wizard.edit(this.step(), event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-wizard.mjs","sources":["../../wizard/src/wizard-defaults.ts","../../wizard/src/wizard.ts","../../wizard/src/slotted-angular-wizard.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { Provider } from '@angular/core';\nimport type { FormErrorInput } from '@slotted/core/form';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\nimport type {\n StepValues,\n WizardPersistence,\n WizardSnapshot,\n WizardValue,\n} from '@slotted/core/wizard';\n\nexport type { StepValues, WizardPersistence, WizardSnapshot, WizardValue };\n\n/** Where the list of steps stands: beside the step, above it, or nowhere. */\nexport type WizardProgress = 'start' | 'top' | 'none';\n/** What scrolls: the page around the wizard, or the wizard's own step. */\nexport type WizardScroll = 'ancestor' | 'self';\n/** When a draft is written without the reader asking. */\nexport type WizardAutosave = 'none' | 'step';\nexport type WizardLevel = 2 | 3 | 4;\n\nexport type WizardStepReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'submit' | 'programmatic'\n>;\nexport type WizardValueReason = Extract<ChangeReason, 'submit' | 'clear' | 'programmatic'>;\nexport type WizardProgressOpenReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'select' | 'escape' | 'programmatic'\n>;\nexport type WizardDraftReason = Extract<ChangeReason, 'pointer' | 'submit' | 'programmatic'>;\n\nexport interface WizardStepRequest extends ChangeRequest<string> {\n readonly reason: WizardStepReason;\n}\nexport interface WizardValueRequest extends ChangeRequest<WizardValue> {\n readonly reason: WizardValueReason;\n}\nexport interface WizardProgressOpenRequest extends ChangeRequest<boolean> {\n readonly reason: WizardProgressOpenReason;\n}\n\nexport interface WizardDefaults {\n progress: WizardProgress;\n linear: boolean;\n level: WizardLevel;\n scroll: WizardScroll;\n /** How long an asynchronous restore may take before its skeleton is drawn. */\n delay: number;\n /** How long a drawn skeleton stays, so it does not flash. */\n minDuration: number;\n}\n\n/**\n * What a submission may answer instead of succeeding. `step` sends the reader\n * back to the step whose answers the server refused, and `errors` are\n * published to that step's form, keyed by control name.\n */\nexport interface WizardFailure {\n message?: string | undefined;\n step?: string | undefined;\n errors?: FormErrorInput | undefined;\n}\n\nexport interface WizardSubmitRequest {\n reason: 'submit';\n source: unknown;\n /** Every accepted answer, including steps that are not present any more. */\n value: WizardValue;\n}\n\nexport type WizardSubmit = (\n values: WizardValue,\n request: WizardSubmitRequest,\n) => void | WizardFailure | Promise<void | WizardFailure>;\n\nexport interface WizardCancelRequest {\n /** Whether anything typed or accepted has not been submitted. */\n dirty: boolean;\n source: unknown;\n}\n\nexport interface WizardDraftRequest {\n snapshot: WizardSnapshot;\n reason: WizardDraftReason;\n source: unknown;\n}\n\nexport interface WizardValidateContext {\n value: WizardValue;\n signal: AbortSignal;\n}\n\nexport type WizardValidate = (\n values: StepValues,\n context: WizardValidateContext,\n) => FormErrorInput | void | Promise<FormErrorInput | void>;\n\n/**\n * `linear` is on: the wave's scope says direct navigation depends on the\n * steps already completed. `delay` and `minDuration` are the loading-states\n * pair, so a restore that answers in eighty milliseconds draws nothing.\n */\nexport const WIZARD_FALLBACK: WizardDefaults = {\n delay: 200,\n level: 2,\n linear: true,\n minDuration: 400,\n progress: 'start',\n scroll: 'ancestor',\n};\n\nexport const WIZARD_DEFAULTS = new InjectionToken<WizardDefaults>('slotted wizard defaults', {\n providedIn: 'root',\n factory: () => WIZARD_FALLBACK,\n});\n\n/**\n * An application decides once how its wizards lay out. A wizard that states\n * any of it itself still wins. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideWizardDefaults(defaults: Partial<WizardDefaults>): Provider {\n return {\n provide: WIZARD_DEFAULTS,\n useFactory: (): WizardDefaults => ({ ...WIZARD_FALLBACK, ...defaults }),\n };\n}\n\nexport function injectWizardDefaults(): WizardDefaults {\n return inject(WIZARD_DEFAULTS);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { AfterContentInit } from '@angular/core';\nimport { ControlContainer } from '@angular/forms';\nimport { hasErrors, isDirty, normaliseErrors } from '@slotted/core/form';\nimport type { FormErrorInput } from '@slotted/core/form';\nimport { wizardMessages, type PartialMessages, type WizardMessages } from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n assertUniqueSteps,\n clampStep,\n createSnapshot,\n firstIncomplete,\n formValues,\n includedValues,\n nextDestination,\n previousStep,\n reachableStep,\n replacementStep,\n stepComplete,\n stepPosition,\n} from '@slotted/core/wizard';\nimport type {\n StepValues,\n WizardPersistence,\n WizardSnapshot,\n WizardStepEntry,\n WizardValue,\n} from '@slotted/core/wizard';\nimport { SlAlert, SlAlertContent, SlAlertDescription, SlAlertTitle } from '@slotted/angular/alert';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlForm } from '@slotted/angular/form';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport { SlStepper, SlStepperList, SlStepperStep } from '@slotted/angular/stepper';\nimport { SlTag } from '@slotted/angular/tag';\n\nimport { injectWizardDefaults } from './wizard-defaults';\nimport type {\n WizardAutosave,\n WizardCancelRequest,\n WizardDraftReason,\n WizardDraftRequest,\n WizardFailure,\n WizardLevel,\n WizardProgress,\n WizardProgressOpenRequest,\n WizardScroll,\n WizardStepReason,\n WizardStepRequest,\n WizardSubmit,\n WizardValidate,\n WizardValueRequest,\n} from './wizard-defaults';\n\nlet counter = 0;\n\nconst EMPTY: WizardValue = {};\n\nconst isPromise = (candidate: unknown): candidate is Promise<unknown> =>\n typeof candidate === 'object' && candidate !== null && 'then' in candidate;\n\nconst optionalBoolean = (raw: unknown) => (raw === undefined ? undefined : booleanAttribute(raw));\n\nfunction without(map: WizardValue, name: string): WizardValue {\n if (!Object.hasOwn(map, name)) return map;\n const next: Record<string, StepValues> = { ...map };\n delete next[name];\n return next;\n}\n\n/** What one step's template is given. */\nexport interface WizardStepContext {\n /** The answers to show: typed and not yet accepted, else accepted, else none. */\n $implicit: StepValues;\n values: StepValues;\n name: string;\n complete: boolean;\n optional: boolean;\n /**\n * What a failed submission sent back for this step, keyed by control name,\n * for the form's `[defaultErrors]`. The form family reads it once, and the\n * wizard renders the step again when it changes.\n */\n errors: FormErrorInput | undefined;\n}\n\n/**\n * One step: its name, its label and its content, which is rendered only while\n * it is the current step. A branch is `@if` around the template; the wizard\n * reacts to the list changing under the reader by the rules of the design\n * (§5.6).\n */\n@Directive({ selector: 'ng-template[slWizardStep]', standalone: true, exportAs: 'slWizardStep' })\nexport class SlWizardStep {\n readonly name = input.required<string>({ alias: 'slWizardStep' });\n readonly label = input.required<string>();\n readonly description = input<string | undefined>(undefined);\n readonly optional = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Runs after the platform's and Reactive Forms' own validation pass. */\n readonly validate = input<WizardValidate | undefined>(undefined);\n /** The answers to accept instead of the form's values. */\n readonly values = input<StepValues | undefined>(undefined);\n readonly template = inject<TemplateRef<WizardStepContext>>(TemplateRef);\n\n static ngTemplateContextGuard(\n _directive: SlWizardStep,\n context: unknown,\n ): context is WizardStepContext {\n return context !== null;\n }\n}\n\n/** What stands in place of the step and the actions after an accepted submission. */\n@Directive({ selector: 'ng-template[slWizardComplete]', standalone: true })\nexport class SlWizardComplete {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/** A row of actions of the consumer's own, in place of the default one. */\n@Directive({ selector: 'ng-template[slWizardActions]', standalone: true })\nexport class SlWizardActions {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\n/** The group of actions that leave the flow, at the start of the row. */\n@Directive({\n selector: '[slWizardActionsStart]',\n standalone: true,\n host: { 'data-part': 'actions-start', 'data-part-actions-start': '' },\n})\nexport class SlWizardActionsStart {}\n\n/** The group of actions that move the flow, at the end of the row. */\n@Directive({\n selector: '[slWizardActionsEnd]',\n standalone: true,\n host: { 'data-part': 'actions-end', 'data-part-actions-end': '' },\n})\nexport class SlWizardActionsEnd {}\n\n/**\n * The step's form. It is the consumer's `form[slForm]`, because\n * `formControlName` resolves its `ControlContainer` through the injector of\n * the template it is written in, and a form the wizard rendered would not be\n * that one. With a `FormGroup` on it, the group's raw value is the step's\n * answers and its pending status holds the step; without one, `FormData`.\n */\n@Directive({\n selector: 'form[slWizardForm]',\n standalone: true,\n exportAs: 'slWizardForm',\n host: {\n '[attr.id]': 'wizard.formId',\n '[attr.aria-labelledby]': 'wizard.titleId',\n },\n})\nexport class SlWizardForm {\n protected readonly wizard = inject(forwardRef(() => SlWizard));\n private readonly form = inject(SlForm, { self: true });\n private readonly container = inject(ControlContainer, { optional: true, self: true });\n readonly element = inject<ElementRef<HTMLFormElement>>(ElementRef).nativeElement;\n\n constructor() {\n this.wizard.registerForm(this);\n inject(DestroyRef).onDestroy(() => this.wizard.unregisterForm(this));\n const subscription = this.form.formSubmit.subscribe(({ event, values, errors, pending }) => {\n const control = this.container?.control;\n const run = (): FormErrorInput | void | Promise<FormErrorInput | void> =>\n this.wizard.commit((control?.getRawValue() as StepValues | undefined) ?? values, event);\n if (control?.pending === true) {\n pending(\n new Promise<FormErrorInput | void>((resolve) => {\n const watch = control.statusChanges.subscribe((status) => {\n if (status === 'PENDING') return;\n watch.unsubscribe();\n if (status === 'INVALID') {\n this.form.validateNow();\n resolve(undefined);\n return;\n }\n const answer = run();\n if (isPromise(answer)) void answer.then(resolve);\n else resolve(answer);\n });\n }),\n );\n return;\n }\n const answer = run();\n if (isPromise(answer)) pending(answer as Promise<FormErrorInput | void>);\n else if (answer !== undefined) errors(answer);\n });\n inject(DestroyRef).onDestroy(() => subscription.unsubscribe());\n }\n\n /** What is typed now, whatever has been accepted. */\n typed(): StepValues {\n const control = this.container?.control;\n if (control !== null && control !== undefined) return control.getRawValue() as StepValues;\n return formValues(new FormData(this.element));\n }\n\n dirty(): boolean {\n const control = this.container?.control;\n return control !== null && control !== undefined ? control.dirty : isDirty(this.element);\n }\n\n submit() {\n this.element.requestSubmit();\n }\n}\n\n/**\n * A flow of steps that accumulates answers.\n *\n * **The steps are the templates the consumer writes**, and a branch is `@if`\n * around one. The wizard reacts to the list changing under the reader by the\n * eight rules of the design (§5.6): the current step is never moved because a\n * step appeared before it, a current step that left the list gives way to the\n * next one still present, and an absent step keeps its answers without\n * submitting them.\n *\n * **Each step's form is the consumer's `form[slForm][slWizardForm]`**, so a\n * `FormGroup` lives in the consumer's component, keeps what was typed across\n * steps, and validates through Reactive Forms before the step's own\n * `validate`. The next button stands outside the form and submits it through\n * the platform's `form` attribute.\n *\n * **It holds accepted answers, not typed ones.** A step is complete exactly\n * when its name is in `value`.\n */\n@Component({\n selector: '[slWizard]',\n standalone: true,\n exportAs: 'slWizard',\n imports: [\n NgTemplateOutlet,\n SlAlert,\n SlAlertContent,\n SlAlertDescription,\n SlAlertTitle,\n SlButton,\n SlGlyph,\n SlIcon,\n SlSkeleton,\n SlStepper,\n SlStepperList,\n SlStepperStep,\n SlTag,\n forwardRef(() => SlWizardNext),\n forwardRef(() => SlWizardPrevious),\n forwardRef(() => SlWizardCancel),\n forwardRef(() => SlWizardSaveDraft),\n forwardRef(() => SlWizardSkip),\n forwardRef(() => SlWizardDraftStatus),\n SlWizardActionsStart,\n SlWizardActionsEnd,\n ],\n template: `\n <div data-part=\"layout\" data-part-layout=\"\">\n @if (resolvedProgress() !== 'none') {\n <div\n data-part=\"progress\"\n data-part-progress=\"\"\n [attr.data-open]=\"progressOpen() ? '' : null\"\n (keydown)=\"onProgressKeydown($event)\"\n >\n <button\n #toggle\n data-part=\"progress-toggle\"\n data-part-progress-toggle=\"\"\n type=\"button\"\n [attr.aria-controls]=\"listId\"\n [attr.aria-expanded]=\"progressOpen()\"\n (click)=\"toggleProgress($event)\"\n >\n <span data-part=\"progress-position\" data-part-progress-position=\"\">{{\n positionText()\n }}</span>\n <span aria-hidden=\"true\" data-part=\"progress-track\" data-part-progress-track=\"\">\n @for (entry of entries(); track entry.name) {\n <span\n data-part=\"progress-segment\"\n data-part-progress-segment=\"\"\n [attr.data-complete]=\"\n finished() || (entry.name !== current() && isComplete(entry.name)) ? '' : null\n \"\n [attr.data-current]=\"!finished() && entry.name === current() ? '' : null\"\n [attr.data-invalid]=\"invalid().has(entry.name) ? '' : null\"\n ></span>\n }\n </span>\n <span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n <div\n slStepper\n [messages]=\"stepperMessages()\"\n [navigation]=\"phase() === 'complete' ? 'none' : 'button'\"\n [orientation]=\"resolvedProgress() === 'top' ? 'horizontal' : 'vertical'\"\n [step]=\"finished() ? entries().length : currentIndex()\"\n (stepChange)=\"onHeader($event)\"\n >\n <ol slStepperList [attr.id]=\"listId\">\n @for (item of steps(); track item.name()) {\n <li\n slStepperStep\n [complete]=\"phase() === 'complete' || isComplete(item.name())\"\n [description]=\"item.optional() ? t('optional') : undefined\"\n [disabled]=\"disabled() || item.disabled() || !isReachable(item.name())\"\n [invalid]=\"invalid().has(item.name())\"\n [label]=\"item.label()\"\n [loading]=\"pending() === item.name()\"\n ></li>\n }\n </ol>\n </div>\n </div>\n }\n\n <div data-part=\"main\" data-part-main=\"\">\n @if (errorShown()) {\n <div data-part=\"error\" data-part-error=\"\">\n <section #alert slAlert live=\"off\" reach=\"section\" tone=\"danger\">\n <div slAlertContent>\n <div slAlertTitle>{{ error() ?? t('submitFailed') }}</div>\n @if (error() === undefined && failure()?.message) {\n <p slAlertDescription>{{ failure()?.message }}</p>\n }\n </div>\n </section>\n </div>\n }\n\n @if (phase() === 'complete') {\n <div #complete data-part=\"complete\" data-part-complete=\"\" tabindex=\"-1\">\n @if (completeTemplate(); as done) {\n <ng-container *ngTemplateOutlet=\"done.template\"></ng-container>\n }\n </div>\n } @else {\n <div data-part=\"step\" data-part-step=\"\" [attr.aria-busy]=\"restoring() ? 'true' : null\">\n @if (restoring()) {\n @if (skeleton()) {\n <div aria-hidden=\"true\" data-part=\"step-header\" data-part-step-header=\"\">\n <div data-part=\"step-title\" data-part-step-title=\"\">\n <span data-part=\"position\" data-part-position=\"\"\n ><span slSkeleton inlineSize=\"5.5rem\"></span\n ></span>\n <span slSkeleton inlineSize=\"13rem\"></span>\n </div>\n </div>\n <div aria-hidden=\"true\" data-part=\"skeleton\" data-part-skeleton=\"\">\n <div\n data-label-placement=\"top\"\n data-part=\"root\"\n data-part-root=\"\"\n data-size=\"md\"\n data-ui=\"field\"\n data-ui-field=\"\"\n >\n <span data-part=\"label\" data-part-label=\"\"\n ><span slSkeleton inlineSize=\"7rem\"></span\n ></span>\n <div data-part=\"control\" data-part-control=\"\">\n <span\n slSkeleton\n shape=\"block\"\n blockSize=\"var(--slotted-control-height-md)\"\n ></span>\n </div>\n </div>\n </div>\n }\n } @else if (currentStep(); as step) {\n <div data-part=\"step-header\" data-part-step-header=\"\">\n @switch (resolvedLevel()) {\n @case (3) {\n <h3\n #title\n data-part=\"step-title\"\n data-part-step-title=\"\"\n tabindex=\"-1\"\n [id]=\"titleId\"\n >\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: step }\" />\n </h3>\n }\n @case (4) {\n <h4\n #title\n data-part=\"step-title\"\n data-part-step-title=\"\"\n tabindex=\"-1\"\n [id]=\"titleId\"\n >\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: step }\" />\n </h4>\n }\n @default {\n <h2\n #title\n data-part=\"step-title\"\n data-part-step-title=\"\"\n tabindex=\"-1\"\n [id]=\"titleId\"\n >\n <ng-container *ngTemplateOutlet=\"heading; context: { $implicit: step }\" />\n </h2>\n }\n }\n @if (step.description()) {\n <p data-part=\"step-description\" data-part-step-description=\"\">\n {{ step.description() }}\n </p>\n }\n </div>\n @for (key of [renderKey()]; track key) {\n <ng-container *ngTemplateOutlet=\"step.template; context: stepContext()\" />\n }\n }\n </div>\n @if (!restoring()) {\n <div data-part=\"actions\" data-part-actions=\"\">\n @if (actionsTemplate(); as custom) {\n <ng-container *ngTemplateOutlet=\"custom.template\"></ng-container>\n } @else {\n <div slWizardActionsStart>\n @if (canCancel()) {\n <button\n slButton\n slWizardCancel\n tone=\"secondary\"\n variant=\"ghost\"\n focusableWhenDisabled\n [disabled]=\"phase() === 'submitting'\"\n >\n {{ t('cancel') }}\n </button>\n }\n @if (canSaveDraft()) {\n <button\n slButton\n slWizardSaveDraft\n tone=\"secondary\"\n variant=\"ghost\"\n focusableWhenDisabled\n [disabled]=\"disabled() || busy()\"\n [loading]=\"draftState() === 'saving'\"\n >\n {{ t('saveDraft') }}\n </button>\n <span slWizardDraftStatus></span>\n }\n </div>\n <div slWizardActionsEnd>\n @if (optionalStep()) {\n <button\n slButton\n slWizardSkip\n tone=\"secondary\"\n variant=\"ghost\"\n focusableWhenDisabled\n [disabled]=\"disabled() || busy()\"\n >\n {{ t('skip') }}\n </button>\n }\n @if (!isFirst()) {\n <button\n slButton\n slWizardPrevious\n tone=\"secondary\"\n variant=\"outline\"\n focusableWhenDisabled\n [disabled]=\"disabled() || busy()\"\n >\n {{ t('previous') }}\n </button>\n }\n <button\n slButton\n slWizardNext\n tone=\"accent\"\n variant=\"solid\"\n focusableWhenDisabled\n [disabled]=\"disabled()\"\n [loading]=\"busy()\"\n [type]=\"hasForm() ? 'submit' : 'button'\"\n >\n {{ nextLabel() }}\n </button>\n </div>\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #heading let-step>\n <span data-part=\"position\" data-part-position=\"\">{{ positionText() }}</span>\n {{ step.label() }}\n @if (step.optional()) {\n <span data-part=\"optional\" data-part-optional=\"\"\n >{{ ' '\n }}<span slTag shape=\"pill\" size=\"sm\" tone=\"secondary\" variant=\"soft\">{{\n t('optional')\n }}</span>\n </span>\n }\n </ng-template>\n `,\n styleUrls: [\n '../../../styles/src/wizard/wizard.css',\n '../../../styles/src/field/field.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'wizard',\n 'data-ui-wizard': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-progress]': 'resolvedProgress()',\n '[attr.data-scroll]': 'resolvedScroll()',\n '[attr.data-loading]': \"phase() === 'submitting' || restoring() ? '' : null\",\n '[attr.data-invalid]': \"errorShown() ? '' : null\",\n '[attr.data-complete]': \"phase() === 'complete' ? '' : null\",\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n },\n})\nexport class SlWizard implements AfterContentInit {\n /** The current step's name. Two-way; a router binds it. */\n readonly step = model<string | undefined>(undefined);\n /** The accepted answers, by step name. Two-way. */\n readonly value = model<WizardValue | undefined>(undefined);\n /** Whether the compact list of steps is open. Two-way. */\n readonly progressOpen = model<boolean>(false);\n\n /** The step an unbound wizard starts on, read once and clamped to one in reach. */\n readonly defaultStep = input<string | undefined>(undefined);\n readonly defaultValue = input<WizardValue | undefined>(undefined);\n /** Whether an unbound compact list starts open, read once. */\n readonly defaultProgressOpen = input(false, { transform: booleanAttribute });\n\n readonly progress = input<WizardProgress | undefined>(undefined);\n readonly scroll = input<WizardScroll | undefined>(undefined);\n readonly linear = input(undefined, { transform: optionalBoolean });\n readonly level = input<WizardLevel | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * name of the list of steps (`progress`), the position, the actions, the\n * draft status and the failures.\n */\n readonly messages = input<PartialMessages<WizardMessages> | undefined>(undefined);\n readonly disabled = input(false, { transform: booleanAttribute });\n /** An error of the consumer's own, shown above the step; it wins over a failed submission. */\n readonly error = input<string | undefined>(undefined);\n /** Called with the answers of the steps present, once the last step is accepted. */\n readonly submitWizard = input<WizardSubmit | undefined>(undefined);\n readonly persistence = input<WizardPersistence | undefined>(undefined);\n /** The flow's version; a draft of another version is not restored. */\n readonly version = input<string | number | undefined>(undefined);\n /** Defaults to `step` when `persistence` is given, `none` otherwise. */\n readonly autosave = input<WizardAutosave | undefined>(undefined);\n readonly guardUnsaved = input(false, { transform: booleanAttribute });\n /**\n * Shows the cancel action. An Angular output cannot say whether anything\n * listens to it, which is how the React binding decides; here it is stated.\n */\n readonly cancellable = input(false, { transform: booleanAttribute });\n /** Shows the save-draft action without `persistence`, for a `(draftSave)` of the consumer's own. */\n readonly draftable = input(false, { transform: booleanAttribute });\n readonly delay = input(undefined, {\n transform: (raw: unknown) => (raw === undefined ? undefined : numberAttribute(raw)),\n });\n readonly minDuration = input(undefined, {\n transform: (raw: unknown) => (raw === undefined ? undefined : numberAttribute(raw)),\n });\n\n /** One output per transition, carrying its reason and `cancel()`. */\n readonly stepChangeRequest = output<WizardStepRequest>();\n readonly valueChangeRequest = output<WizardValueRequest>();\n readonly progressOpenChangeRequest = output<WizardProgressOpenRequest>();\n /** Asked by the cancel action; the family closes nothing itself. */\n readonly cancelRequest = output<WizardCancelRequest>();\n /** A draft was written, before `persistence` keeps it. */\n readonly draftSave = output<WizardDraftRequest>();\n /** The submission was accepted. */\n readonly completed = output<WizardValue>();\n\n readonly steps = contentChildren(SlWizardStep);\n protected readonly completeTemplate = contentChild(SlWizardComplete);\n protected readonly actionsTemplate = contentChild(SlWizardActions);\n\n private readonly defaults = injectWizardDefaults();\n private readonly injector = inject(Injector);\n private readonly titleRef = viewChild<ElementRef<HTMLElement>>('title');\n private readonly alertRef = viewChild('alert', { read: ElementRef });\n private readonly completeRef = viewChild<ElementRef<HTMLElement>>('complete');\n private readonly toggleRef = viewChild<ElementRef<HTMLButtonElement>>('toggle');\n\n private readonly id = `slotted-wizard-${(counter += 1)}`;\n readonly formId = `${this.id}-form`;\n readonly titleId = `${this.id}-title`;\n readonly listId = `${this.id}-list`;\n\n /** The family's words in the language in force, with this wizard's `messages` laid over them. */\n readonly t = injectMessages(wizardMessages, this.messages);\n /** The locale in force: what the hour a draft was saved is written in. */\n readonly locale = injectLocale();\n /**\n * The list of steps is a stepper named by this family's `progress`: the\n * written word is handed over as a message function, so the stepper never\n * reads it as message grammar again.\n */\n protected readonly stepperMessages = computed(() => {\n const progress = this.t('progress');\n return { label: () => progress };\n });\n readonly resolvedProgress = computed(() => this.progress() ?? this.defaults.progress);\n readonly resolvedScroll = computed(() => this.scroll() ?? this.defaults.scroll);\n readonly resolvedLinear = computed(() => this.linear() ?? this.defaults.linear);\n readonly resolvedLevel = computed(() => this.level() ?? this.defaults.level);\n private readonly resolvedAutosave = computed(\n () => this.autosave() ?? (this.persistence() === undefined ? 'none' : 'step'),\n );\n\n readonly entries = computed<WizardStepEntry[]>(() =>\n this.steps().map((step) => ({ disabled: step.disabled(), name: step.name() })),\n );\n\n private readonly accepted = computed(() => this.value() ?? EMPTY);\n protected readonly drafts = signal<WizardValue>(EMPTY);\n protected readonly invalid = signal<ReadonlySet<string>>(new Set());\n readonly pending = signal<string | undefined>(undefined);\n readonly phase = signal<'editing' | 'submitting' | 'complete'>('editing');\n protected readonly failure = signal<WizardFailure | undefined>(undefined);\n readonly draftState = signal<'idle' | 'saving' | 'saved' | 'failed'>('idle');\n readonly savedAt = signal<Date | undefined>(undefined);\n protected readonly restoring = signal(false);\n protected readonly skeleton = signal(false);\n private readonly returnTo = signal<string | undefined>(undefined);\n private readonly epoch = signal(0);\n private readonly stepErrors = signal<Record<string, FormErrorInput>>({});\n private readonly form = signal<SlWizardForm | undefined>(undefined);\n\n /** The list before its last change, for a current step that left it. */\n private previousEntries: readonly WizardStepEntry[] = [];\n /** The step the family itself last wrote, so a router's write can be told apart. */\n private ownWrite: string | undefined;\n private validation: AbortController | undefined;\n private jumpTarget: string | undefined;\n private focusNext: 'title' | 'alert' | 'complete' | undefined;\n private initialised = false;\n\n private usable(name: string | undefined) {\n return this.entries().some((entry) => entry.name === name && entry.disabled !== true);\n }\n\n /**\n * The step shown. A requested step that is absent gives way to the next one\n * still present in the old order (decision 2 shows that one at once); the\n * current step is never moved because a step appeared before it (decision 1).\n */\n readonly current = computed<string | undefined>(() => {\n const requested = this.step();\n const entries = this.entries();\n if (this.usable(requested)) return requested;\n const before = untracked(() => this.previousEntries);\n const linear = this.resolvedLinear();\n return requested === undefined\n ? clampStep({ linear, requested, steps: entries, value: this.accepted() })\n : (replacementStep({ after: entries, before, current: requested }) ??\n clampStep({ linear, requested, steps: entries, value: this.accepted() }));\n });\n\n /**\n * After an accepted submission the flow has no current step: the stepper is\n * given the index past the last, so every header reads complete. Left on the\n * last step, that header kept its number, because a current step outranks a\n * complete one.\n */\n protected readonly finished = computed(() => this.phase() === 'complete');\n\n protected readonly currentIndex = computed(() =>\n Math.max(\n 0,\n this.entries().findIndex((entry) => entry.name === this.current()),\n ),\n );\n readonly currentStep = computed(() =>\n this.steps().find((step) => step.name() === this.current()),\n );\n protected readonly optionalStep = computed(() => this.currentStep()?.optional() === true);\n readonly position = computed(() => stepPosition(this.entries(), this.current()));\n protected readonly positionText = computed(() =>\n this.t('position', { index: this.position().index, count: this.position().count }),\n );\n readonly isFirst = computed(() => {\n const current = this.current();\n return current === undefined || previousStep({ current, steps: this.entries() }) === undefined;\n });\n readonly returning = computed(() => {\n const back = this.returnTo();\n return back !== undefined && this.entries().some((entry) => entry.name === back);\n });\n readonly isFinal = computed(() => {\n const current = this.current();\n if (current === undefined) return false;\n return (\n nextDestination({\n current,\n returnTo: this.returnTo(),\n steps: this.entries(),\n value: { ...this.accepted(), [current]: {} },\n }).kind === 'submit'\n );\n });\n protected readonly nextLabel = computed(() =>\n this.t(this.returning() ? 'return' : this.isFinal() ? 'submit' : 'next'),\n );\n readonly busy = computed(() => this.pending() !== undefined || this.phase() === 'submitting');\n readonly hasForm = computed(() => this.form() !== undefined);\n protected readonly canCancel = computed(() => this.cancellable());\n protected readonly canSaveDraft = computed(\n () => this.draftable() || this.persistence() !== undefined,\n );\n protected readonly errorShown = computed(\n () => this.error() !== undefined || this.failure() !== undefined,\n );\n protected readonly renderKey = computed(() => `${this.current() ?? ''}-${this.epoch()}`);\n protected readonly stepContext = computed<WizardStepContext>(() => {\n const name = this.current() ?? '';\n const values = this.drafts()[name] ?? this.accepted()[name] ?? {};\n return {\n $implicit: values,\n complete: stepComplete(this.accepted(), name),\n errors: this.stepErrors()[name],\n name,\n optional: this.optionalStep(),\n values,\n };\n });\n\n constructor() {\n /* A resolved step that differs from the requested one is written back. */\n effect(() => {\n const current = this.current();\n const requested = this.step();\n const entries = this.entries();\n untracked(() => {\n this.previousEntries = entries;\n if (!this.initialised) return;\n assertUniqueSteps(entries);\n if (current === undefined || current === requested) return;\n this.leave();\n this.requestStep(current, 'programmatic', undefined, false);\n });\n });\n\n /* A step a router wrote on its own is clamped to one in reach. */\n effect(() => {\n const requested = this.step();\n untracked(() => {\n if (!this.initialised || requested === undefined || requested === this.ownWrite) return;\n const clamped = clampStep({\n linear: this.resolvedLinear(),\n requested,\n steps: this.entries(),\n value: this.accepted(),\n });\n if (clamped !== undefined && clamped !== requested) {\n this.requestStep(clamped, 'programmatic', undefined, false);\n }\n });\n });\n\n /* Focus follows the step, the failure or the completion, after render. */\n effect(() => {\n this.current();\n this.phase();\n this.failure();\n untracked(() => {\n const target = this.focusNext;\n if (target === undefined) return;\n afterNextRender(\n () => {\n if (this.focusNext !== target) return;\n const element =\n target === 'alert'\n ? (this.alertRef()?.nativeElement as HTMLElement | undefined)\n : target === 'complete'\n ? this.completeRef()?.nativeElement\n : this.titleRef()?.nativeElement;\n if (element === undefined) return;\n this.focusNext = undefined;\n element.focus();\n },\n { injector: this.injector },\n );\n });\n });\n\n const destroyRef = inject(DestroyRef);\n const onBeforeUnload = (event: BeforeUnloadEvent) => {\n if (this.guardUnsaved() && this.dirty()) event.preventDefault();\n };\n if (typeof window !== 'undefined') {\n window.addEventListener('beforeunload', onBeforeUnload);\n destroyRef.onDestroy(() => window.removeEventListener('beforeunload', onBeforeUnload));\n }\n destroyRef.onDestroy(() => this.validation?.abort());\n }\n\n ngAfterContentInit() {\n assertUniqueSteps(this.entries());\n if (this.defaultProgressOpen() && !this.progressOpen()) this.progressOpen.set(true);\n const loaded = this.persistence()?.load();\n const snapshot = isPromise(loaded) ? undefined : loaded;\n /* A restored value is requested in either mode, so a consumer that derives\n a branch from it — through [(value)] or (valueChangeRequest) — hears it. */\n if (snapshot !== undefined) this.requestValue(snapshot.value, 'programmatic');\n else if (this.value() === undefined) this.value.set(this.defaultValue() ?? EMPTY);\n if (snapshot !== undefined) {\n this.drafts.set(snapshot.drafts);\n this.resolveRestored(snapshot.step);\n }\n const requested = snapshot?.step ?? this.step() ?? this.defaultStep();\n const start = clampStep({\n linear: this.resolvedLinear(),\n requested,\n steps: this.entries(),\n value: this.accepted(),\n });\n if (start !== undefined && start !== this.step()) {\n if (this.step() === undefined) {\n this.ownWrite = start;\n this.step.set(start);\n } else this.requestStep(start, 'programmatic', undefined, false);\n }\n this.initialised = true;\n if (isPromise(loaded)) this.restore(loaded as Promise<WizardSnapshot | undefined>);\n }\n\n /* ── Requests ──────────────────────────────────────────────────────── */\n\n private requestStep(next: string, reason: WizardStepReason, source: unknown, focus = true) {\n const from = this.current();\n if (next === from && next === this.step()) return false;\n let cancelled = false;\n const state = createControllable<string>({\n initial: this.step() ?? from ?? next,\n onRequest: (raw) => {\n this.stepChangeRequest.emit(this.wrap(raw, reason));\n cancelled = raw.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (!moved || cancelled) return false;\n this.ownWrite = next;\n this.step.set(next);\n if (focus) this.focusNext = 'title';\n return true;\n }\n\n private requestValue(next: WizardValue, reason: WizardValueRequest['reason'], source?: unknown) {\n let cancelled = false;\n const state = createControllable<WizardValue>({\n initial: this.accepted(),\n onRequest: (raw) => {\n this.valueChangeRequest.emit(this.wrap(raw, reason));\n cancelled = raw.cancelled;\n },\n });\n if (!state.request(next, reason, source) || cancelled) return false;\n this.value.set(next);\n return true;\n }\n\n private requestOpen(\n next: boolean,\n reason: WizardProgressOpenRequest['reason'],\n source?: unknown,\n ) {\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.progressOpen(),\n onRequest: (raw) => {\n this.progressOpenChangeRequest.emit(this.wrap(raw, reason));\n cancelled = raw.cancelled;\n },\n });\n if (!state.request(next, reason, source) || cancelled) return;\n this.progressOpen.set(next);\n }\n\n private wrap<T, R extends string>(raw: ChangeRequest<T>, reason: R) {\n return {\n cancel: () => raw.cancel(),\n get cancelled() {\n return raw.cancelled;\n },\n previous: raw.previous,\n reason,\n source: raw.source,\n value: raw.value,\n } as ChangeRequest<T> & { reason: R };\n }\n\n /* ── Forms ─────────────────────────────────────────────────────────── */\n\n registerForm(form: SlWizardForm) {\n this.form.set(form);\n }\n\n unregisterForm(form: SlWizardForm) {\n if (this.form() === form) this.form.set(undefined);\n }\n\n isComplete(name: string) {\n return stepComplete(this.accepted(), name);\n }\n\n isReachable(name: string) {\n return (\n this.phase() === 'complete' ||\n reachableStep({\n current: this.current(),\n linear: this.resolvedLinear(),\n steps: this.entries(),\n target: name,\n value: this.accepted(),\n })\n );\n }\n\n /* ── The cycle of a step ───────────────────────────────────────────── */\n\n /**\n * The step's form passed the platform's and Reactive Forms' validation. The\n * step's `validate` runs next; a promise holds the next button in its\n * loading state and is aborted when the reader leaves (decision 4).\n */\n commit(\n typed: StepValues,\n source: unknown,\n ): FormErrorInput | void | Promise<FormErrorInput | void> {\n const name = this.current();\n if (name === undefined || this.pending() !== undefined || this.phase() !== 'editing') return;\n const step = this.currentStep();\n const answers = step?.values() ?? typed;\n const check = step?.validate();\n if (check === undefined) {\n this.accept(name, answers, source);\n return;\n }\n\n this.validation?.abort();\n const controller = new AbortController();\n this.validation = controller;\n const found = (errors: FormErrorInput | void): FormErrorInput | void => {\n if (controller.signal.aborted) return;\n if (this.validation === controller) this.validation = undefined;\n this.pending.set(undefined);\n if (errors !== undefined && errors !== null && hasErrors(normaliseErrors(errors))) {\n this.markInvalid(name, true);\n this.jumpTarget = undefined;\n return errors;\n }\n if (this.current() !== name) return;\n this.accept(name, answers, source);\n };\n const result = check(answers, { signal: controller.signal, value: this.accepted() });\n if (!isPromise(result)) return found(result);\n this.pending.set(name);\n return (result as Promise<FormErrorInput | void>).then(found, () => {\n if (!controller.signal.aborted) this.pending.set(undefined);\n });\n }\n\n private accept(name: string, answers: StepValues, source: unknown) {\n const accepted = { ...this.accepted(), [name]: answers };\n if (!this.requestValue(accepted, 'submit', source)) return;\n const drafts = without(this.drafts(), name);\n this.drafts.set(drafts);\n this.stepErrors.update((errors) => {\n if (!(name in errors)) return errors;\n const next = { ...errors };\n delete next[name];\n return next;\n });\n this.markInvalid(name, false);\n /**\n * Where the flow goes is decided after the consumer's template has run\n * again with the new value, not now. A step the answer opens — Company\n * after Business, an `@if` over the value — exists only once the view\n * that declares it has been checked; decided here, the destination\n * skipped it and went to the step after.\n */\n afterNextRender(\n () => {\n if (this.current() !== name || this.phase() !== 'editing') return;\n if (this.resolvedAutosave() === 'step') {\n const destination = nextDestination({\n current: name,\n returnTo: this.returnTo(),\n steps: this.entries(),\n value: accepted,\n });\n void this.write(\n accepted,\n drafts,\n destination.kind === 'step' ? destination.name : name,\n 'submit',\n source,\n );\n }\n this.route(accepted, name, source);\n },\n { injector: this.injector },\n );\n }\n\n private route(accepted: WizardValue, name: string, source: unknown) {\n const steps = this.entries();\n const jump = this.jumpTarget;\n this.jumpTarget = undefined;\n if (\n jump !== undefined &&\n reachableStep({\n current: name,\n linear: this.resolvedLinear(),\n steps,\n target: jump,\n value: accepted,\n })\n ) {\n this.requestStep(jump, 'pointer', source);\n return;\n }\n const back = this.returnTo();\n const destination = nextDestination({ current: name, returnTo: back, steps, value: accepted });\n if (back !== undefined && (destination.kind === 'submit' || destination.name === back)) {\n this.returnTo.set(undefined);\n }\n if (back !== undefined && !steps.some((entry) => entry.name === back))\n this.returnTo.set(undefined);\n if (destination.kind === 'step') this.requestStep(destination.name, 'submit', source);\n else this.submitFlow(accepted, source);\n }\n\n private submitFlow(accepted: WizardValue, source: unknown) {\n const open = firstIncomplete({ steps: this.entries(), value: accepted });\n if (open !== undefined) {\n this.requestStep(open, 'submit', source);\n this.failure.set({ message: this.t('incomplete') });\n this.focusNext = 'alert';\n return;\n }\n this.failure.set(undefined);\n this.phase.set('submitting');\n const settle = (answer: unknown) => {\n if (typeof answer === 'object' && answer !== null) {\n this.fail(answer as WizardFailure, source);\n return;\n }\n this.phase.set('complete');\n this.drafts.set(EMPTY);\n void this.persistence()?.clear();\n this.focusNext = 'complete';\n this.completed.emit(accepted);\n };\n let answer: unknown;\n try {\n answer = this.submitWizard()?.(includedValues(accepted, this.entries()), {\n reason: 'submit',\n source,\n value: accepted,\n });\n } catch {\n this.fail({}, source);\n return;\n }\n if (isPromise(answer)) {\n answer.then(settle, () => this.fail({}, source));\n return;\n }\n settle(answer);\n }\n\n private fail(reported: WizardFailure, source: unknown) {\n this.phase.set('editing');\n this.failure.set(reported);\n const target = reported.step;\n if (target !== undefined && this.entries().some((entry) => entry.name === target)) {\n if (reported.errors !== undefined) {\n this.stepErrors.update((errors) => ({\n ...errors,\n [target]: reported.errors as FormErrorInput,\n }));\n this.markInvalid(target, true);\n }\n if (target === this.current()) this.epoch.update((epoch) => epoch + 1);\n else this.requestStep(target, 'programmatic', source);\n }\n this.focusNext = 'alert';\n }\n\n /** The errors a failed submission sent back for this step, for its form. */\n errorsFor(name: string): FormErrorInput | undefined {\n return this.stepErrors()[name];\n }\n\n private markInvalid(name: string, invalid: boolean) {\n this.invalid.update((names) => {\n if (names.has(name) === invalid) return names;\n const next = new Set(names);\n if (invalid) next.add(name);\n else next.delete(name);\n return next;\n });\n }\n\n private leave() {\n this.validation?.abort();\n this.validation = undefined;\n this.pending.set(undefined);\n }\n\n /** What was typed on this step and not accepted, kept for when it returns. */\n private stash(): WizardValue {\n const form = this.form();\n const name = this.current();\n if (form === undefined || name === undefined || !form.dirty()) return this.drafts();\n const next = { ...this.drafts(), [name]: form.typed() };\n this.drafts.set(next);\n return next;\n }\n\n private async write(\n value: WizardValue,\n drafts: WizardValue,\n step: string,\n reason: WizardDraftReason,\n source: unknown,\n ) {\n const persistence = this.persistence();\n const snapshot = createSnapshot({ drafts, step, value, version: this.version() });\n this.draftState.set('saving');\n try {\n this.draftSave.emit({ reason, snapshot, source });\n await persistence?.save(snapshot);\n this.savedAt.set(new Date(snapshot.savedAt));\n this.draftState.set('saved');\n } catch {\n this.draftState.set('failed');\n }\n }\n\n private restore(load: Promise<WizardSnapshot | undefined>) {\n this.restoring.set(true);\n let shownAt: number | undefined;\n const delay = this.delay() ?? this.defaults.delay;\n const minDuration = this.minDuration() ?? this.defaults.minDuration;\n const timer = setTimeout(() => {\n shownAt = Date.now();\n this.skeleton.set(true);\n }, delay);\n const finish = (snapshot: WizardSnapshot | undefined) => {\n clearTimeout(timer);\n const apply = () => {\n this.skeleton.set(false);\n this.restoring.set(false);\n if (snapshot === undefined) return;\n this.requestValue(snapshot.value, 'programmatic');\n this.drafts.set(snapshot.drafts);\n this.resolveRestored(snapshot.step);\n };\n const remaining = shownAt === undefined ? 0 : minDuration - (Date.now() - shownAt);\n if (remaining > 0) setTimeout(apply, remaining);\n else apply();\n };\n load.then(finish, () => finish(undefined));\n }\n\n /**\n * The step a draft was saved on, resolved after the consumer's template has\n * run with the restored value: the step may be one that value opens, and\n * before that render it does not exist.\n */\n private resolveRestored(step: string) {\n afterNextRender(\n () => {\n const target = clampStep({\n linear: this.resolvedLinear(),\n requested: step,\n steps: this.entries(),\n value: this.accepted(),\n });\n if (target !== undefined && target !== this.current()) {\n this.requestStep(target, 'programmatic', undefined, false);\n }\n },\n { injector: this.injector },\n );\n }\n\n private dirty() {\n const form = this.form();\n return (\n this.phase() !== 'complete' &&\n ((form !== undefined && form.dirty()) ||\n Object.keys(this.drafts()).length > 0 ||\n Object.keys(this.accepted()).length > 0)\n );\n }\n\n /* ── The moves ─────────────────────────────────────────────────────── */\n\n /** Submits the current step, as the next button does. */\n next(source?: unknown) {\n if (this.disabled() || this.phase() !== 'editing') return;\n const form = this.form();\n if (form !== undefined) {\n form.submit();\n return;\n }\n const name = this.current();\n if (name !== undefined) void this.commit({}, source);\n }\n\n /** One step back, keeping what was typed. */\n previous(source?: unknown) {\n const name = this.current();\n if (name === undefined || this.busy() || this.disabled() || this.phase() !== 'editing') return;\n const target = previousStep({ current: name, steps: this.entries() });\n if (target === undefined) return;\n this.stash();\n this.leave();\n this.requestStep(target, 'pointer', source);\n }\n\n /** Goes to a step: back freely, forward through a submission of this one. */\n goTo(name: string, reason: WizardStepReason = 'programmatic', source?: unknown) {\n const from = this.current();\n const steps = this.entries();\n if (from === undefined || name === from || this.phase() !== 'editing' || this.disabled())\n return;\n const target = steps.findIndex((entry) => entry.name === name);\n const here = steps.findIndex((entry) => entry.name === from);\n if (target === -1) return;\n if (target < here) {\n this.stash();\n this.leave();\n this.requestStep(name, reason, source);\n return;\n }\n if (this.pending() !== undefined) return;\n if (\n !reachableStep({\n current: from,\n linear: this.resolvedLinear(),\n steps,\n target: name,\n value: { ...this.accepted(), [from]: {} },\n })\n ) {\n return;\n }\n this.jumpTarget = name;\n this.next(source);\n if (this.validation === undefined && this.jumpTarget === name) this.jumpTarget = undefined;\n }\n\n /** Goes to a step and comes back here once it is accepted. */\n edit(name: string, source?: unknown) {\n const from = this.current();\n if (from === undefined || this.phase() !== 'editing' || this.disabled()) return;\n this.returnTo.set(from);\n this.stash();\n this.leave();\n this.requestStep(name, 'pointer', source);\n }\n\n /** Accepts an optional step with no answers. */\n skip(source?: unknown) {\n const name = this.current();\n if (name === undefined || !this.optionalStep() || this.busy() || this.disabled()) return;\n if (this.phase() !== 'editing') return;\n this.leave();\n this.accept(name, {}, source);\n }\n\n cancel(source?: unknown) {\n if (this.phase() === 'submitting') return;\n this.cancelRequest.emit({ dirty: this.dirty(), source });\n }\n\n saveDraft(reason: WizardDraftReason = 'programmatic', source?: unknown) {\n const name = this.current();\n if (name === undefined || this.phase() !== 'editing') return;\n const drafts = this.stash();\n void this.write(this.accepted(), drafts, name, reason, source);\n }\n\n clearDraft() {\n this.draftState.set('idle');\n this.savedAt.set(undefined);\n void this.persistence()?.clear();\n }\n\n /** Back to the first step, with no answers, no draft and no error. */\n reset() {\n this.leave();\n this.jumpTarget = undefined;\n this.returnTo.set(undefined);\n this.failure.set(undefined);\n this.phase.set('editing');\n this.drafts.set(EMPTY);\n this.stepErrors.set({});\n this.invalid.set(new Set());\n this.draftState.set('idle');\n this.savedAt.set(undefined);\n this.requestValue(EMPTY, 'clear');\n const first = clampStep({\n linear: this.resolvedLinear(),\n requested: undefined,\n steps: this.entries(),\n value: EMPTY,\n });\n if (first !== undefined) this.requestStep(first, 'programmatic', undefined);\n void this.persistence()?.clear();\n }\n\n focus() {\n this.titleRef()?.nativeElement.focus();\n }\n\n /* ── The progress ──────────────────────────────────────────────────── */\n\n protected onHeader(request: ChangeRequest<number>) {\n const target = this.entries()[request.value]?.name;\n if (target === undefined) return;\n if (this.progressOpen()) this.requestOpen(false, 'select', request.source);\n this.goTo(target, request.reason === 'keyboard' ? 'keyboard' : 'pointer', request.source);\n }\n\n protected toggleProgress(event: MouseEvent) {\n this.requestOpen(!this.progressOpen(), event.detail === 0 ? 'keyboard' : 'pointer', event);\n }\n\n protected onProgressKeydown(event: KeyboardEvent) {\n if (event.key !== 'Escape' || !this.progressOpen()) return;\n event.preventDefault();\n this.requestOpen(false, 'escape', event);\n this.toggleRef()?.nativeElement.focus();\n }\n}\n\n/* ── The actions ─────────────────────────────────────────────────────── */\n\n/**\n * The next button. On a plain `button` a consumer wrote it submits the step's\n * form; beside `slButton` in the default row it is `type=\"submit\"` associated\n * to the form by the platform's `form` attribute. The part is a binding, so it\n * wins over `slButton`'s static `data-part=\"root\"` and follows the switch to\n * `submit` on the final step.\n */\n@Directive({\n selector: 'button[slWizardNext]',\n standalone: true,\n host: {\n '[attr.data-part]': \"wizard.isFinal() && !wizard.returning() ? 'submit' : 'next'\",\n '[attr.data-part-root]': 'null',\n '[attr.data-part-submit]': \"wizard.isFinal() && !wizard.returning() ? '' : null\",\n '[attr.data-part-next]': \"wizard.isFinal() && !wizard.returning() ? null : ''\",\n '[attr.data-final]': \"wizard.isFinal() && !wizard.returning() ? '' : null\",\n '[attr.form]': 'wizard.hasForm() ? wizard.formId : null',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlWizardNext {\n protected readonly wizard = inject(SlWizard);\n private readonly button = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n if (this.wizard.busy() || this.wizard.disabled()) {\n event.preventDefault();\n return;\n }\n if (this.button.type === 'submit' && this.wizard.hasForm()) return;\n this.wizard.next(event);\n }\n}\n\n@Directive({\n selector: 'button[slWizardPrevious]',\n standalone: true,\n host: {\n '[attr.data-part]': \"'previous'\",\n '[attr.data-part-root]': 'null',\n '[attr.data-part-previous]': \"''\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlWizardPrevious {\n private readonly wizard = inject(SlWizard);\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.wizard.previous(event);\n }\n}\n\n@Directive({\n selector: 'button[slWizardCancel]',\n standalone: true,\n host: {\n '[attr.data-part]': \"'cancel'\",\n '[attr.data-part-root]': 'null',\n '[attr.data-part-cancel]': \"''\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlWizardCancel {\n private readonly wizard = inject(SlWizard);\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.wizard.cancel(event);\n }\n}\n\n@Directive({\n selector: 'button[slWizardSaveDraft]',\n standalone: true,\n host: {\n '[attr.data-part]': \"'save-draft'\",\n '[attr.data-part-root]': 'null',\n '[attr.data-part-save-draft]': \"''\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlWizardSaveDraft {\n private readonly wizard = inject(SlWizard);\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.wizard.saveDraft('pointer', event);\n }\n}\n\n@Directive({\n selector: 'button[slWizardSkip]',\n standalone: true,\n host: {\n '[attr.data-part]': \"'skip'\",\n '[attr.data-part-root]': 'null',\n '[attr.data-part-skip]': \"''\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlWizardSkip {\n private readonly wizard = inject(SlWizard);\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.wizard.skip(event);\n }\n}\n\n/** The polite status that says when the draft was saved. */\n@Component({\n selector: '[slWizardDraftStatus]',\n standalone: true,\n template: '{{ text() }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'data-part': 'draft-status', 'data-part-draft-status': '', role: 'status' },\n})\nexport class SlWizardDraftStatus {\n private readonly wizard = inject(SlWizard);\n protected readonly text = computed(() => {\n const t = this.wizard.t;\n const state = this.wizard.draftState();\n const savedAt = this.wizard.savedAt();\n if (state === 'saving') return t('saving');\n if (state === 'failed') return t('draftFailed');\n if (state === 'saved' && savedAt !== undefined) {\n const time = new Intl.DateTimeFormat(this.wizard.locale(), {\n hour: '2-digit',\n minute: '2-digit',\n }).format(savedAt);\n return t('saved', { time });\n }\n return '';\n });\n}\n\n/**\n * The control a review step puts beside each answer: it goes to the named\n * step and sets the return point. Its name is the label and the step's label,\n * \"Change shipping address\".\n */\n@Component({\n selector: 'button[slWizardEdit]',\n standalone: true,\n template: `<ng-content>{{ wizard.t('edit') }}</ng-content>\n @if (target(); as step) {\n {{ ' ' }}<span data-ui=\"visually-hidden\" data-ui-visually-hidden=\"\">{{ step.label() }}</span>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-part': 'edit',\n 'data-part-edit': '',\n type: 'button',\n '[attr.aria-disabled]': \"unavailable() ? 'true' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlWizardEdit {\n protected readonly wizard = inject(SlWizard);\n readonly step = input.required<string>({ alias: 'slWizardEdit' });\n protected readonly target = computed(() =>\n this.wizard.steps().find((candidate) => candidate.name() === this.step()),\n );\n protected readonly unavailable = computed(\n () => this.wizard.disabled() || this.wizard.busy() || this.target() === undefined,\n );\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.unavailable()) return;\n this.wizard.edit(this.step(), event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slotted/angular",
3
- "version": "0.1.0-beta.1",
3
+ "version": "0.1.0-beta.11",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,8 +16,8 @@
16
16
  "@angular/common": ">=22.1.0 <23",
17
17
  "@angular/core": ">=22.1.0 <23",
18
18
  "@angular/forms": ">=22.1.0 <23",
19
- "@slotted/core": "0.1.0-beta.1",
20
- "@slotted/theme": "0.1.0-beta.1"
19
+ "@slotted/core": "0.1.0-beta.11",
20
+ "@slotted/theme": "0.1.0-beta.11"
21
21
  },
22
22
  "module": "fesm2022/slotted-angular.mjs",
23
23
  "typings": "types/slotted-angular.d.ts",