@slotted/angular 0.1.0-beta.8 → 0.1.0-beta.9

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 (418) hide show
  1. package/docs/code-block.json +92 -92
  2. package/docs/code-block.md +69 -69
  3. package/docs/currency-field.json +7 -0
  4. package/docs/currency-field.md +1 -0
  5. package/docs/data-grid.examples.md +1 -1
  6. package/docs/data-grid.json +21 -4
  7. package/docs/data-grid.md +1 -1
  8. package/docs/data-grid.props.md +5 -3
  9. package/docs/dialog.examples.md +138 -136
  10. package/docs/dialog.json +8 -8
  11. package/docs/filter-bar.json +118 -118
  12. package/docs/filter-bar.md +79 -79
  13. package/docs/guidelines/async-feedback.md +10 -0
  14. package/docs/guidelines/composition.md +11 -7
  15. package/docs/guidelines/index.md +6 -1
  16. package/docs/guidelines/list-pages.md +30 -0
  17. package/docs/guidelines/overviews.md +10 -0
  18. package/docs/markdown.json +79 -79
  19. package/docs/markdown.md +65 -65
  20. package/docs/page-header.json +1 -1
  21. package/docs/skills/compose-screen/SKILL.md +22 -10
  22. package/docs/skills/review-screen/SKILL.md +6 -0
  23. package/docs/skills/waiting-states/SKILL.md +4 -1
  24. package/docs/tags-input.json +28 -2
  25. package/docs/tags-input.md +4 -1
  26. package/docs/timeline.json +131 -131
  27. package/docs/timeline.md +123 -123
  28. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  29. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  30. package/fesm2022/slotted-angular-action-bar.mjs +21 -10
  31. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  32. package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
  33. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  34. package/fesm2022/slotted-angular-alert.mjs +17 -11
  35. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  36. package/fesm2022/slotted-angular-app-shell.mjs +52 -40
  37. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  38. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  39. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  40. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  41. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  42. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  43. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  44. package/fesm2022/slotted-angular-avatar.mjs +9 -6
  45. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  46. package/fesm2022/slotted-angular-badge.mjs +14 -10
  47. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  48. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  49. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  50. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  51. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  52. package/fesm2022/slotted-angular-button.mjs +53 -25
  53. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  54. package/fesm2022/slotted-angular-calendar.mjs +68 -26
  55. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  56. package/fesm2022/slotted-angular-card.mjs +18 -16
  57. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  58. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  59. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  60. package/fesm2022/slotted-angular-cascader.mjs +158 -64
  61. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  62. package/fesm2022/slotted-angular-chart.mjs +4 -2
  63. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  64. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  65. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  66. package/fesm2022/slotted-angular-checkbox.mjs +13 -8
  67. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  68. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  69. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  70. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  71. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  72. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  73. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  74. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  75. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  76. package/fesm2022/slotted-angular-combobox.mjs +77 -31
  77. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  78. package/fesm2022/slotted-angular-command-palette.mjs +128 -51
  79. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  80. package/fesm2022/slotted-angular-container.mjs +6 -4
  81. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  82. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  83. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  84. package/fesm2022/slotted-angular-currency-field.mjs +98 -32
  85. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  86. package/fesm2022/slotted-angular-dashboard-grid.mjs +127 -44
  87. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  88. package/fesm2022/slotted-angular-data-grid.mjs +309 -104
  89. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  90. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  91. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  92. package/fesm2022/slotted-angular-date-field.mjs +38 -12
  93. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  94. package/fesm2022/slotted-angular-date-picker.mjs +19 -9
  95. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  96. package/fesm2022/slotted-angular-date-range-picker.mjs +41 -16
  97. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  98. package/fesm2022/slotted-angular-datetime-field.mjs +46 -14
  99. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  100. package/fesm2022/slotted-angular-datetime-picker.mjs +37 -23
  101. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  102. package/fesm2022/slotted-angular-datetime-range-picker.mjs +111 -42
  103. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  104. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  105. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  106. package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
  107. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  108. package/fesm2022/slotted-angular-dialog.mjs +39 -28
  109. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  110. package/fesm2022/slotted-angular-divider.mjs +7 -5
  111. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  112. package/fesm2022/slotted-angular-drawer.mjs +32 -24
  113. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  114. package/fesm2022/slotted-angular-entity-picker.mjs +195 -67
  115. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  116. package/fesm2022/slotted-angular-event-calendar.mjs +259 -102
  117. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  118. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  119. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  120. package/fesm2022/slotted-angular-field.mjs +35 -15
  121. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  122. package/fesm2022/slotted-angular-filter-bar.mjs +104 -43
  123. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  124. package/fesm2022/slotted-angular-form.mjs +18 -10
  125. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  126. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  127. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  128. package/fesm2022/slotted-angular-grid.mjs +4 -2
  129. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  130. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  131. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  132. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  133. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  134. package/fesm2022/slotted-angular-icon.mjs +6 -3
  135. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  136. package/fesm2022/slotted-angular-image.mjs +13 -10
  137. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  138. package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
  139. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  140. package/fesm2022/slotted-angular-inline-message.mjs +10 -8
  141. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  142. package/fesm2022/slotted-angular-inline.mjs +4 -2
  143. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  144. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  145. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  146. package/fesm2022/slotted-angular-link.mjs +5 -3
  147. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  148. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  149. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  150. package/fesm2022/slotted-angular-list.mjs +14 -10
  151. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  152. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  153. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  154. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  155. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  156. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  157. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  158. package/fesm2022/slotted-angular-menu.mjs +41 -27
  159. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  160. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  161. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  162. package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
  163. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  164. package/fesm2022/slotted-angular-message.mjs +113 -51
  165. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  166. package/fesm2022/slotted-angular-multi-select.mjs +133 -57
  167. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  168. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  169. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  170. package/fesm2022/slotted-angular-notification-center.mjs +107 -65
  171. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  172. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  173. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  174. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  175. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  176. package/fesm2022/slotted-angular-page-header.mjs +72 -42
  177. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  178. package/fesm2022/slotted-angular-page.mjs +18 -9
  179. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  180. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  181. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  182. package/fesm2022/slotted-angular-popover.mjs +25 -18
  183. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  184. package/fesm2022/slotted-angular-progress-indicator.mjs +122 -30
  185. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  186. package/fesm2022/slotted-angular-prompt-composer.mjs +24 -18
  187. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  188. package/fesm2022/slotted-angular-prose.mjs +14 -11
  189. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  190. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  191. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  192. package/fesm2022/slotted-angular-rating.mjs +138 -82
  193. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  194. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  195. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  196. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  197. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  198. package/fesm2022/slotted-angular-scroll-area.mjs +9 -5
  199. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  200. package/fesm2022/slotted-angular-section.mjs +34 -15
  201. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  202. package/fesm2022/slotted-angular-segmented-control.mjs +15 -9
  203. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  204. package/fesm2022/slotted-angular-select.mjs +135 -53
  205. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  206. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  207. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  208. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  209. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  210. package/fesm2022/slotted-angular-slider.mjs +31 -11
  211. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  212. package/fesm2022/slotted-angular-sparkline.mjs +29 -13
  213. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  214. package/fesm2022/slotted-angular-split-button.mjs +25 -11
  215. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  216. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  217. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  218. package/fesm2022/slotted-angular-stack.mjs +4 -2
  219. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  220. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  221. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  222. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  223. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  224. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  225. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  226. package/fesm2022/slotted-angular-switch.mjs +15 -10
  227. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  228. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  229. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  230. package/fesm2022/slotted-angular-table.mjs +135 -72
  231. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  232. package/fesm2022/slotted-angular-tabs.mjs +31 -14
  233. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  234. package/fesm2022/slotted-angular-tag.mjs +19 -12
  235. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  236. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  237. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  238. package/fesm2022/slotted-angular-text-field.mjs +49 -15
  239. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  240. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  241. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  242. package/fesm2022/slotted-angular-time-field.mjs +46 -12
  243. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  244. package/fesm2022/slotted-angular-time-picker.mjs +28 -14
  245. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  246. package/fesm2022/slotted-angular-time-range-picker.mjs +109 -40
  247. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  248. package/fesm2022/slotted-angular-timeline.mjs +135 -64
  249. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  250. package/fesm2022/slotted-angular-toast.mjs +42 -31
  251. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  252. package/fesm2022/slotted-angular-toggle-group.mjs +10 -6
  253. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  254. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  255. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  256. package/fesm2022/slotted-angular-toolbar.mjs +21 -10
  257. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  258. package/fesm2022/slotted-angular-tooltip.mjs +8 -5
  259. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  260. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  261. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  262. package/fesm2022/slotted-angular-tour.mjs +46 -21
  263. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  264. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  265. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  266. package/fesm2022/slotted-angular-tree.mjs +74 -26
  267. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  268. package/fesm2022/slotted-angular-typography.mjs +8 -4
  269. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  270. package/fesm2022/slotted-angular-upload.mjs +125 -57
  271. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  272. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  273. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  274. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  275. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  276. package/package.json +3 -3
  277. package/types/slotted-angular-accordion.d.ts.map +1 -1
  278. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  279. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  280. package/types/slotted-angular-alert.d.ts +1 -1
  281. package/types/slotted-angular-alert.d.ts.map +1 -1
  282. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  283. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  284. package/types/slotted-angular-attachment.d.ts +1 -1
  285. package/types/slotted-angular-attachment.d.ts.map +1 -1
  286. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  287. package/types/slotted-angular-avatar.d.ts.map +1 -1
  288. package/types/slotted-angular-badge.d.ts.map +1 -1
  289. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  290. package/types/slotted-angular-button-group.d.ts.map +1 -1
  291. package/types/slotted-angular-button.d.ts.map +1 -1
  292. package/types/slotted-angular-calendar.d.ts.map +1 -1
  293. package/types/slotted-angular-card.d.ts.map +1 -1
  294. package/types/slotted-angular-carousel.d.ts.map +1 -1
  295. package/types/slotted-angular-cascader.d.ts.map +1 -1
  296. package/types/slotted-angular-chart.d.ts.map +1 -1
  297. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  298. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  299. package/types/slotted-angular-code-block.d.ts +1 -1
  300. package/types/slotted-angular-code-block.d.ts.map +1 -1
  301. package/types/slotted-angular-collapsible.d.ts +1 -1
  302. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  303. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  304. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  305. package/types/slotted-angular-combobox.d.ts +1 -1
  306. package/types/slotted-angular-combobox.d.ts.map +1 -1
  307. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  308. package/types/slotted-angular-container.d.ts.map +1 -1
  309. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  310. package/types/slotted-angular-currency-field.d.ts +39 -13
  311. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  312. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  313. package/types/slotted-angular-data-grid.d.ts +26 -2
  314. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  315. package/types/slotted-angular-data-list.d.ts.map +1 -1
  316. package/types/slotted-angular-date-field.d.ts.map +1 -1
  317. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  318. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  319. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  320. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  321. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  322. package/types/slotted-angular-description-list.d.ts.map +1 -1
  323. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  324. package/types/slotted-angular-dialog.d.ts +2 -1
  325. package/types/slotted-angular-dialog.d.ts.map +1 -1
  326. package/types/slotted-angular-divider.d.ts.map +1 -1
  327. package/types/slotted-angular-drawer.d.ts.map +1 -1
  328. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  329. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  330. package/types/slotted-angular-field-group.d.ts.map +1 -1
  331. package/types/slotted-angular-field.d.ts.map +1 -1
  332. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  333. package/types/slotted-angular-form.d.ts.map +1 -1
  334. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  335. package/types/slotted-angular-grid.d.ts.map +1 -1
  336. package/types/slotted-angular-highlight.d.ts.map +1 -1
  337. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  338. package/types/slotted-angular-icon.d.ts +1 -1
  339. package/types/slotted-angular-icon.d.ts.map +1 -1
  340. package/types/slotted-angular-image.d.ts.map +1 -1
  341. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  342. package/types/slotted-angular-inline-message.d.ts +1 -1
  343. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  344. package/types/slotted-angular-inline.d.ts.map +1 -1
  345. package/types/slotted-angular-kbd.d.ts.map +1 -1
  346. package/types/slotted-angular-link.d.ts.map +1 -1
  347. package/types/slotted-angular-list-item.d.ts.map +1 -1
  348. package/types/slotted-angular-list.d.ts.map +1 -1
  349. package/types/slotted-angular-listbox.d.ts.map +1 -1
  350. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  351. package/types/slotted-angular-markdown.d.ts.map +1 -1
  352. package/types/slotted-angular-menu.d.ts.map +1 -1
  353. package/types/slotted-angular-menubar.d.ts.map +1 -1
  354. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  355. package/types/slotted-angular-message.d.ts.map +1 -1
  356. package/types/slotted-angular-multi-select.d.ts +1 -1
  357. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  358. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  359. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  360. package/types/slotted-angular-number-field.d.ts.map +1 -1
  361. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  362. package/types/slotted-angular-page-header.d.ts +1 -1
  363. package/types/slotted-angular-page-header.d.ts.map +1 -1
  364. package/types/slotted-angular-page.d.ts.map +1 -1
  365. package/types/slotted-angular-pagination.d.ts.map +1 -1
  366. package/types/slotted-angular-popover.d.ts.map +1 -1
  367. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  368. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  369. package/types/slotted-angular-prose.d.ts.map +1 -1
  370. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  371. package/types/slotted-angular-rating.d.ts.map +1 -1
  372. package/types/slotted-angular-result-state.d.ts.map +1 -1
  373. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  374. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  375. package/types/slotted-angular-section.d.ts.map +1 -1
  376. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  377. package/types/slotted-angular-select.d.ts +1 -1
  378. package/types/slotted-angular-select.d.ts.map +1 -1
  379. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  380. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  381. package/types/slotted-angular-slider.d.ts.map +1 -1
  382. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  383. package/types/slotted-angular-split-button.d.ts.map +1 -1
  384. package/types/slotted-angular-splitter.d.ts.map +1 -1
  385. package/types/slotted-angular-stack.d.ts.map +1 -1
  386. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  387. package/types/slotted-angular-status-indicator.d.ts +1 -1
  388. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  389. package/types/slotted-angular-stepper.d.ts +1 -1
  390. package/types/slotted-angular-stepper.d.ts.map +1 -1
  391. package/types/slotted-angular-switch.d.ts.map +1 -1
  392. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  393. package/types/slotted-angular-table.d.ts.map +1 -1
  394. package/types/slotted-angular-tabs.d.ts.map +1 -1
  395. package/types/slotted-angular-tag.d.ts.map +1 -1
  396. package/types/slotted-angular-tags-input.d.ts +33 -1
  397. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  398. package/types/slotted-angular-text-field.d.ts.map +1 -1
  399. package/types/slotted-angular-textarea.d.ts.map +1 -1
  400. package/types/slotted-angular-time-field.d.ts.map +1 -1
  401. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  402. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  403. package/types/slotted-angular-timeline.d.ts.map +1 -1
  404. package/types/slotted-angular-toast.d.ts +2 -2
  405. package/types/slotted-angular-toast.d.ts.map +1 -1
  406. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  407. package/types/slotted-angular-toggle.d.ts.map +1 -1
  408. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  409. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  410. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  411. package/types/slotted-angular-tour.d.ts.map +1 -1
  412. package/types/slotted-angular-transfer.d.ts.map +1 -1
  413. package/types/slotted-angular-tree.d.ts.map +1 -1
  414. package/types/slotted-angular-typography.d.ts.map +1 -1
  415. package/types/slotted-angular-upload.d.ts +2 -2
  416. package/types/slotted-angular-upload.d.ts.map +1 -1
  417. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  418. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-page-header.mjs","sources":["../../page-header/src/page-header-defaults.ts","../../page-header/src/page-header.ts","../../page-header/src/page-header-parts.ts","../../page-header/src/slotted-angular-page-header.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the title sits at. The snapped title takes the step below it. */\nexport type PageHeaderSize = 'sm' | 'md' | 'lg';\n\n/** The rank of the heading. A page's own header is `1`. */\nexport type PageHeaderLevel = '1' | '2' | '3';\n\n/**\n * What collapses the header area. `scroll` collapses it when it leaves the\n * scrollport and re-opens it when it returns; `manual` leaves it to the toggle,\n * the pin and the application, and the whole header stays while the page\n * scrolls.\n */\nexport type PageHeaderCollapse = 'scroll' | 'manual';\n\n/**\n * The ground and the frame. `band` is a strip of the surface with a hairline\n * under it; `plain` paints no ground at rest and takes the surface back once\n * content passes under it; `floating` is a box of its own, rounded, that\n * slides to an inset below the scroller's edge once stuck.\n */\nexport type PageHeaderVariant = 'band' | 'plain' | 'floating';\n\n/** Why the header area opened or closed. */\nexport type PageHeaderExpandedReason = 'pointer' | 'keyboard' | 'scroll' | 'programmatic';\n\n/** Why the pin took hold or let go. */\nexport type PageHeaderPinnedReason = 'pointer' | 'keyboard' | 'programmatic';\n\nexport interface PageHeaderDefaults {\n collapse: PageHeaderCollapse;\n level: PageHeaderLevel;\n size: PageHeaderSize;\n variant: PageHeaderVariant;\n}\n\nconst FALLBACK: PageHeaderDefaults = {\n collapse: 'scroll',\n level: '1',\n size: 'md',\n variant: 'band',\n};\n\nexport const PAGE_HEADER_DEFAULTS = new InjectionToken<PageHeaderDefaults>(\n 'slotted page-header defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once how its page headers behave — the size, the\n * rank, whether a scroll collapses the area — rather than repeating them on\n * every screen. A header that states any of them itself still wins. Its words\n * come from the language in force (`provideSlotted`).\n */\nexport function providePageHeaderDefaults(defaults: Partial<PageHeaderDefaults>) {\n return {\n provide: PAGE_HEADER_DEFAULTS,\n useFactory: (): PageHeaderDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a page header renders as here, before it states anything of its own. */\nexport function injectPageHeaderDefaults(): PageHeaderDefaults {\n return inject(PAGE_HEADER_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field`\n * records: a module-level counter produces colliding sequences when two\n * applications render in one server process, and the server and the client\n * sequences must match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlPageHeaderIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-page-header-${this.count}`;\n }\n}\n","import {\n pageHeaderMessages,\n type PageHeaderMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { createStickyHeader } from '@slotted/core/sticky-header';\nimport type { StickyHeaderHandle } from '@slotted/core/sticky-header';\nimport { SlContainer } from '@slotted/angular/container';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlPage } from '@slotted/angular/page';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectPageHeaderDefaults, SlPageHeaderIdFactory } from './page-header-defaults';\nimport type {\n PageHeaderCollapse,\n PageHeaderExpandedReason,\n PageHeaderLevel,\n PageHeaderPinnedReason,\n PageHeaderSize,\n PageHeaderVariant,\n} from './page-header-defaults';\n\nexport type {\n PageHeaderCollapse,\n PageHeaderDefaults,\n PageHeaderExpandedReason,\n PageHeaderLevel,\n PageHeaderPinnedReason,\n PageHeaderSize,\n PageHeaderVariant,\n} from './page-header-defaults';\n\ntype MovedBy = 'control' | 'pin' | 'programmatic' | 'scroll';\n\n/**\n * The shell of a screen's top: a title area that never leaves, a header area\n * that scrolls away under it and comes back, a pill of controls on the\n * chrome's edge, and a slot for tabs. SAP Fiori's Dynamic Page, rebuilt on one\n * sticky root.\n *\n * **The stylesheet does the moving.** The root is `position: sticky` with a\n * negative offset the size of the header area, measured into\n * `--slotted-page-header-collapse` by `@slotted/core/sticky-header`, which\n * the React binding drives the same way. Scrolling takes the area under the\n * title and leaves the title where it is.\n *\n * **Two values a template may bind.** `expanded` moves by the toggle, by the\n * pin, by the application and by the scroll; `pinned` by the pin and the\n * application. Each move is first a request on `expandedRequest` or\n * `pinnedRequest`, carrying the reason — `scroll` is a reason of its own — and\n * `cancel()`.\n */\n@Component({\n selector: '[slPageHeader]',\n standalone: true,\n exportAs: 'slPageHeader',\n imports: [SlContainer],\n template: `<div slContainer [size]=\"containerSize()\" [inset]=\"containerInset()\">\n <ng-content />\n </div>`,\n styleUrl: '../../../styles/src/page-header/page-header.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'page-header',\n 'data-part': 'root',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-level]': 'resolvedLevel()',\n '[attr.data-collapse]': 'resolvedCollapse()',\n '[attr.data-expanded]': \"expanded() ? '' : null\",\n '[attr.data-revealed]': \"revealed() ? '' : null\",\n '[attr.data-scrolled]': \"scrolled() ? '' : null\",\n '[attr.data-tall]': \"tall() ? '' : null\",\n '[attr.data-compact]': \"compact() ? '' : null\",\n '[attr.data-stuck]': \"stuck() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n '[attr.aria-busy]': \"loading() ? 'true' : null\",\n },\n})\nexport class SlPageHeader {\n /** Whether the header area is open. Two-way, so a template may bind it directly. */\n readonly expanded = model<boolean>(true);\n /** Whether the pin holds the area open. Two-way. */\n readonly pinned = model<boolean>(false);\n readonly variant = input<PageHeaderVariant | undefined>(undefined);\n readonly size = input<PageHeaderSize | undefined>(undefined);\n readonly level = input<PageHeaderLevel | undefined>(undefined);\n readonly collapse = input<PageHeaderCollapse | undefined>(undefined);\n /**\n * Whether the title has not arrived yet. The heading, the subheading and the\n * description render `slSkeletonText` in place of their words; the actions\n * stay operable; the root carries `aria-busy`.\n */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * toggle, the pin and the header area's name. A static `aria-label` on a\n * part still wins.\n */\n readonly messages = input<PartialMessages<PageHeaderMessages> | undefined>(undefined);\n\n /** One output for one transition of the header area, carrying the reason and the event. */\n readonly expandedRequest = output<ChangeRequest<boolean>>();\n /** One output for one transition of the pin, carrying the reason and the event. */\n readonly pinnedRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectPageHeaderDefaults();\n private readonly page = inject(SlPage, { optional: true });\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n private readonly generated = inject(SlPageHeaderIdFactory).next();\n\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedLevel = computed(() => this.level() ?? this.defaults.level);\n readonly resolvedCollapse = computed(() => this.collapse() ?? this.defaults.collapse);\n /** The family's words in the language in force, with this header's `messages` laid over them. */\n readonly t = injectMessages(pageHeaderMessages, this.messages);\n\n protected readonly containerSize = computed(() => this.page?.resolvedWidth() ?? 'content');\n protected readonly containerInset = computed(() => this.page?.resolvedInset());\n\n /** Whether the scroll has passed the area — a measured fact. */\n readonly scrolled = signal(false);\n /** The header is too much of the screen to hold; the pin is hidden and a held header let go. */\n readonly tall = signal(false);\n /** The header is narrower than the compact size class; it is in the flow and nothing condenses it. */\n readonly compact = signal(false);\n /** Whether the area is shown whole in place although the scroll has passed it. */\n readonly revealed = signal(false);\n /** Whether content passes under the chrome — a measured fact `plain` and `floating` read. */\n readonly stuck = signal(false);\n\n private engine: StickyHeaderHandle | null = null;\n /** Who asked for the move the next change detection will show. */\n private expandedBy: MovedBy = 'programmatic';\n\n /** The identifiers that wire the toggle to the area and the root to its heading. */\n ids() {\n return { areaId: `${this.generated}-area`, headingId: `${this.generated}-heading` };\n }\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /* The engine is told once a value has actually changed, whoever changed it. */\n let seenExpanded = untracked(() => this.expanded());\n effect(() => {\n const expanded = this.expanded();\n if (expanded === seenExpanded) return;\n seenExpanded = expanded;\n this.engine?.expandedChanged(expanded, this.expandedBy);\n this.expandedBy = 'programmatic';\n });\n let seenPinned = untracked(() => this.pinned());\n effect(() => {\n const pinned = this.pinned();\n if (pinned === seenPinned) return;\n seenPinned = pinned;\n this.engine?.pinnedChanged(pinned);\n });\n\n afterNextRender(() => {\n const part = (name: string) =>\n this.native.querySelector<HTMLElement>(`:scope > * > [data-part=\"${name}\"]`);\n const attach = () => {\n this.engine?.destroy();\n this.engine = createStickyHeader({\n root: this.native,\n area: () => part('header-area'),\n chrome: () =>\n [part('title-area'), part('controls'), part('tabs')].filter(\n (element): element is HTMLElement => element !== null,\n ),\n state: () => ({\n expanded: this.expanded(),\n pinned: this.pinned(),\n collapse: this.resolvedCollapse(),\n }),\n onScrolled: (next) => this.scrolled.set(next),\n onRevealed: (next) => this.revealed.set(next),\n onStuck: (next) => this.stuck.set(next),\n onScrollRequest: (next) => this.request(next, 'scroll', undefined, 'scroll'),\n onTall: (next) => this.tall.set(next),\n onCompact: (next) => this.compact.set(next),\n onPinRequest: (next) => this.requestPinned(next, 'programmatic'),\n contained: () => this.filledBody(),\n });\n };\n attach();\n destroyRef.onDestroy(() => this.engine?.destroy());\n });\n\n /* The axis rebuilds the engine, because it decides which observers exist. */\n effect(() => {\n this.resolvedCollapse();\n untracked(() => this.engine?.refresh());\n });\n }\n\n /**\n * The body of the page this header heads, while that page fills: nothing\n * scrolls outside it there, so its principal scroller is what snaps the area.\n * Read from the DOM on every scroll, so a page that turns `fill` on or off\n * is followed without rebuilding the engine.\n */\n private filledBody(): HTMLElement | null {\n const page = this.native.closest<HTMLElement>('[data-ui=\"page\"]');\n if (page === null || !page.hasAttribute('data-fill')) return null;\n return page.querySelector<HTMLElement>(':scope > [data-part=\"scroll\"] > [data-part=\"body\"]');\n }\n\n private request(\n next: boolean,\n reason: PageHeaderExpandedReason,\n source: Event | undefined,\n by: MovedBy,\n ) {\n if (next === this.expanded()) return;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.expanded(),\n onRequest: (request) => {\n this.expandedRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled || !moved) return;\n this.expandedBy = by;\n this.expanded.set(next);\n }\n\n private requestPinned(next: boolean, reason: PageHeaderPinnedReason, source?: Event) {\n if (next === this.pinned()) return;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.pinned(),\n onRequest: (request) => {\n this.pinnedRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled || !moved) return;\n this.pinned.set(next);\n /* A pinned header is by definition an open one. */\n if (next && !this.expanded()) this.request(true, 'programmatic', source, 'pin');\n }\n\n /** Asks the header area to open or close, carrying the reason and the originating event. */\n setExpanded(next: boolean, reason: PageHeaderExpandedReason, source?: Event) {\n /* Collapsing by the toggle while pinned lets the pin go first. */\n if (!next && this.pinned()) this.requestPinned(false, 'programmatic', source);\n this.request(next, reason, source, reason === 'programmatic' ? 'programmatic' : 'control');\n }\n\n /** Asks the pin to take hold or let go, carrying the reason and the originating event. */\n setPinned(next: boolean, reason: PageHeaderPinnedReason, source?: Event) {\n this.requestPinned(next, reason, source);\n }\n\n /** Opens the header area, carrying `programmatic`. Scrolled past, it reveals it in place. */\n expand() {\n this.request(true, 'programmatic', undefined, 'programmatic');\n }\n\n /** Closes the header area, carrying `programmatic`. */\n collapseArea() {\n if (this.pinned()) this.requestPinned(false, 'programmatic');\n this.request(false, 'programmatic', undefined, 'programmatic');\n }\n\n /** Takes hold, carrying `programmatic`; a collapsed area opens with it. */\n pin() {\n this.requestPinned(true, 'programmatic');\n }\n\n /** Lets go, carrying `programmatic`. */\n unpin() {\n this.requestPinned(false, 'programmatic');\n }\n}\n","import { SlSkeletonText } from '@slotted/angular/skeleton';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n effect,\n ElementRef,\n booleanAttribute,\n HostAttributeToken,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n injectProgressIndicatorDefaults,\n SlProgressBar,\n type ProgressSize,\n type ProgressTone,\n} from '@slotted/angular/progress-indicator';\n\nimport { SlPageHeader } from './page-header';\n\nconst HEADINGS = new Set(['H1', 'H2', 'H3', 'H4', 'H5', 'H6']);\n\n/** A click synthesised by the keyboard reports no detail; a real one reports the click count. */\nfunction activationReason(event: MouseEvent) {\n return event.detail === 0 ? ('keyboard' as const) : ('pointer' as const);\n}\n\n/** The strip that never leaves: nav, title row and controls. Sticky at 0 inside the root. */\n@Directive({\n selector: '[slPageHeaderTitleArea]',\n standalone: true,\n host: { 'data-part': 'title-area' },\n})\nexport class SlPageHeaderTitleArea {}\n\n/** The row above the title: the way back, then the breadcrumbs. */\n@Directive({ selector: '[slPageHeaderNav]', standalone: true, host: { 'data-part': 'nav' } })\nexport class SlPageHeaderNav {}\n\n/**\n * The way back: the consumer's own link or button, with the arrow the family\n * draws before it. The arrow points along the reading direction and mirrors\n * with it.\n */\n@Component({\n selector: '[slPageHeaderBack]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<span slIcon directional><svg slGlyph name=\"arrow-left\"></svg></span><ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'data-part': 'back' },\n})\nexport class SlPageHeaderBack {}\n\n/** The slot a breadcrumb sits in. Hidden below 600 pixels. */\n@Directive({\n selector: '[slPageHeaderBreadcrumbs]',\n standalone: true,\n host: { 'data-part': 'breadcrumbs' },\n})\nexport class SlPageHeaderBreadcrumbs {}\n\n/** Visual, title, actions and navigation, on one row that wraps. */\n@Directive({\n selector: '[slPageHeaderTitleRow]',\n standalone: true,\n host: { 'data-part': 'title-row' },\n})\nexport class SlPageHeaderTitleRow {}\n\n/** The mark before the heading: an avatar, an icon, an image. */\n@Directive({ selector: '[slPageHeaderVisual]', standalone: true, host: { 'data-part': 'visual' } })\nexport class SlPageHeaderVisual {}\n\n/** The column of heading, marks and subheading. */\n@Directive({ selector: '[slPageHeaderTitle]', standalone: true, host: { 'data-part': 'title' } })\nexport class SlPageHeaderTitle {}\n\n/** The status beside the heading: a tag, a badge, a status indicator. */\n@Directive({ selector: '[slPageHeaderMarks]', standalone: true, host: { 'data-part': 'marks' } })\nexport class SlPageHeaderMarks {}\n\n/** The slot a toolbar sits in, pushed to the end of the title row. */\n@Directive({\n selector: '[slPageHeaderActions]',\n standalone: true,\n host: { 'data-part': 'actions' },\n})\nexport class SlPageHeaderActions {}\n\n/** The previous and next record, at the far end of the title row. */\n@Directive({\n selector: '[slPageHeaderNavigation]',\n standalone: true,\n host: { 'data-part': 'navigation' },\n})\nexport class SlPageHeaderNavigation {}\n\n/** The picture of the record, a column before the content of the header area. */\n@Directive({ selector: '[slPageHeaderFigure]', standalone: true, host: { 'data-part': 'figure' } })\nexport class SlPageHeaderFigure {}\n\n/** A column of whatever only makes sense at rest. */\n@Directive({\n selector: '[slPageHeaderContent]',\n standalone: true,\n host: { 'data-part': 'content' },\n})\nexport class SlPageHeaderContent {}\n\n/** The slot a tabs family sits in, last in the root. */\n@Directive({ selector: '[slPageHeaderTabs]', standalone: true, host: { 'data-part': 'tabs' } })\nexport class SlPageHeaderTabs {}\n\n/**\n * The heading. The element is the consumer's own: `<h1 slPageHeaderHeading>`\n * is a native heading and this adds nothing to it, while a `div` or an\n * `input` gets `role=\"heading\"` and the level the header resolved. While\n * loading it renders `slSkeletonText` in place of its words.\n */\n@Component({\n selector: '[slPageHeaderHeading]',\n standalone: true,\n exportAs: 'slPageHeaderHeading',\n imports: [SlSkeletonText],\n template: `@if (header.loading()) {\n <span slSkeletonText [lines]=\"1\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'heading',\n '[attr.id]': 'header.ids().headingId',\n '[attr.role]': 'ariaRole()',\n '[attr.aria-level]': 'ariaLevel()',\n },\n})\nexport class SlPageHeaderHeading {\n protected readonly header = inject(SlPageHeader);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n private readonly isNativeHeading = HEADINGS.has(this.native.tagName);\n\n protected readonly ariaRole = computed(() => (this.isNativeHeading ? null : 'heading'));\n protected readonly ariaLevel = computed(() =>\n this.isNativeHeading ? null : this.header.resolvedLevel(),\n );\n}\n\n/** One line under the heading, in the muted text, part of what stays visible. */\n@Component({\n selector: '[slPageHeaderSubheading]',\n standalone: true,\n imports: [SlSkeletonText],\n template: `@if (header.loading()) {\n <span slSkeletonText [lines]=\"1\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'subheading' },\n})\nexport class SlPageHeaderSubheading {\n protected readonly header = inject(SlPageHeader);\n}\n\n/** A paragraph with a measure, inside the header area's content. */\n@Component({\n selector: '[slPageHeaderDescription]',\n standalone: true,\n imports: [SlSkeletonText],\n template: `@if (header.loading()) {\n <span slSkeletonText [lines]=\"2\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'description' },\n})\nexport class SlPageHeaderDescription {\n protected readonly header = inject(SlPageHeader);\n}\n\n/**\n * The region that collapses. Collapsed by the control it is `inert` and\n * hidden from assistive technology; scrolled past it is neither, so a control\n * inside it that receives focus is scrolled back into view and the header\n * re-opens with the reason `scroll`.\n */\n@Directive({\n selector: '[slPageHeaderArea]',\n standalone: true,\n exportAs: 'slPageHeaderArea',\n host: {\n 'data-part': 'header-area',\n role: 'region',\n '[attr.id]': 'header.ids().areaId',\n '[attr.aria-label]': 'label()',\n },\n})\nexport class SlPageHeaderArea {\n protected readonly header = inject(SlPageHeader);\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n\n protected readonly label = computed(() => this.written ?? this.header.t('headerArea'));\n\n constructor() {\n effect(() => {\n const closedByControl = !this.header.expanded() && !this.header.scrolled();\n if (closedByControl) {\n this.native.setAttribute('inert', '');\n this.native.setAttribute('aria-hidden', 'true');\n } else {\n this.native.removeAttribute('inert');\n this.native.removeAttribute('aria-hidden');\n }\n });\n }\n}\n\n/** The zero-height row on the chrome's edge; the pill is its only child. */\n@Component({\n selector: '[slPageHeaderControls]',\n standalone: true,\n template: `<div><ng-content /></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'controls' },\n})\nexport class SlPageHeaderControls {}\n\n/**\n * The disclosure control: the consumer's own `button`, so `Enter` and `Space`\n * are the platform's. `aria-expanded` and `aria-controls` are the pattern's\n * two properties.\n */\n@Component({\n selector: 'button[slPageHeaderToggle]',\n standalone: true,\n exportAs: 'slPageHeaderToggle',\n imports: [SlGlyph, SlIcon],\n /* The stylesheet turns the chevron half a turn while the area is shown. */\n template: `<ng-content\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-part': 'toggle',\n type: 'button',\n '[attr.aria-expanded]': 'header.expanded()',\n '[attr.aria-controls]': 'header.ids().areaId',\n '[attr.aria-label]': 'label()',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlPageHeaderToggle {\n protected readonly header = inject(SlPageHeader);\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n protected readonly label = computed(() => {\n if (this.written !== null) return this.written;\n return this.header.expanded() ? this.header.t('collapse') : this.header.t('expand');\n });\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.header.setExpanded(!this.header.expanded(), activationReason(event), event);\n }\n}\n\n/** The pin: a toggle button with `aria-pressed`, which is the `pressed` state the vocabulary has. */\n@Component({\n selector: 'button[slPageHeaderPin]',\n standalone: true,\n exportAs: 'slPageHeaderPin',\n imports: [SlGlyph, SlIcon],\n /* The mark says what a press does: pin while free, unpin while held. */\n template: `<ng-content\n ><span slIcon><svg slGlyph [name]=\"header.pinned() ? 'pin-off' : 'pin'\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-part': 'pin',\n type: 'button',\n '[attr.aria-pressed]': 'header.pinned()',\n '[attr.data-pressed]': \"header.pinned() ? '' : null\",\n '[attr.aria-label]': 'label()',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlPageHeaderPin {\n protected readonly header = inject(SlPageHeader);\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n protected readonly label = computed(() => {\n if (this.written !== null) return this.written;\n return this.header.pinned() ? this.header.t('unpin') : this.header.t('pin');\n });\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.header.setPinned(!this.header.pinned(), activationReason(event), event);\n }\n}\n\n/**\n * A refresh of what is already on screen, drawn over the line where the chrome\n * ends. Written after the controls and before the tabs, as the controls are:\n * there it is the line the pill straddles, and with no tabs it is the root's\n * own hairline. The frame is a row of the container one hairline tall; the\n * stylesheet gives the bar the header's width and draws nothing while the\n * title is still loading or while a region around the header is busy. `size`\n * defaults to `sm`, `delay` to 200 and `minDuration` to 400 milliseconds; an\n * input, then `provideProgressIndicatorDefaults()`, wins.\n */\n@Component({\n selector: '[slPageHeaderProgress]',\n standalone: true,\n exportAs: 'slPageHeaderProgress',\n imports: [SlProgressBar],\n template: `<div\n slProgressBar\n placement=\"edge-end\"\n [buffer]=\"buffer()\"\n [delay]=\"delay() ?? defaults.delay ?? 200\"\n [label]=\"label() ?? header.t('progress')\"\n [loading]=\"loading()\"\n [max]=\"max()\"\n [min]=\"min()\"\n [minDuration]=\"minDuration() ?? defaults.minDuration ?? 400\"\n [size]=\"size() ?? 'sm'\"\n [tone]=\"tone()\"\n [value]=\"value()\"\n [valueText]=\"valueText()\"\n (withdraw)=\"withdraw.emit()\"\n ></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'progress' },\n})\nexport class SlPageHeaderProgress {\n protected readonly header = inject(SlPageHeader);\n protected readonly defaults = injectProgressIndicatorDefaults();\n\n readonly loading = input(true, { transform: booleanAttribute });\n readonly value = input<number | null | undefined>(undefined);\n readonly min = input<number | undefined>(undefined);\n readonly max = input<number | undefined>(undefined);\n readonly buffer = input<number | null | undefined>(undefined);\n readonly valueText = input<string | undefined>(undefined);\n readonly label = input<string | undefined>(undefined);\n readonly tone = input<ProgressTone | undefined>(undefined);\n readonly size = input<ProgressSize | undefined>(undefined);\n readonly delay = input<number | undefined>(undefined);\n readonly minDuration = input<number | undefined>(undefined);\n /** The bar was painted and has been withdrawn. */\n readonly withdraw = output<void>();\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-page-header.mjs","sources":["../../page-header/src/page-header-defaults.ts","../../page-header/src/page-header.ts","../../page-header/src/page-header-parts.ts","../../page-header/src/slotted-angular-page-header.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the title sits at. The snapped title takes the step below it. */\nexport type PageHeaderSize = 'sm' | 'md' | 'lg';\n\n/** The rank of the heading. A page's own header is `1`. */\nexport type PageHeaderLevel = '1' | '2' | '3';\n\n/**\n * What collapses the header area. `scroll` collapses it when it leaves the\n * scrollport and re-opens it when it returns; `manual` leaves it to the toggle,\n * the pin and the application, and the whole header stays while the page\n * scrolls.\n */\nexport type PageHeaderCollapse = 'scroll' | 'manual';\n\n/**\n * The ground and the frame. `band` is a strip of the surface with a hairline\n * under it; `plain` paints no ground at rest and takes the surface back once\n * content passes under it; `floating` is a box of its own, rounded, that\n * slides to an inset below the scroller's edge once stuck.\n */\nexport type PageHeaderVariant = 'band' | 'plain' | 'floating';\n\n/** Why the header area opened or closed. */\nexport type PageHeaderExpandedReason = 'pointer' | 'keyboard' | 'scroll' | 'programmatic';\n\n/** Why the pin took hold or let go. */\nexport type PageHeaderPinnedReason = 'pointer' | 'keyboard' | 'programmatic';\n\nexport interface PageHeaderDefaults {\n collapse: PageHeaderCollapse;\n level: PageHeaderLevel;\n size: PageHeaderSize;\n variant: PageHeaderVariant;\n}\n\nconst FALLBACK: PageHeaderDefaults = {\n collapse: 'scroll',\n level: '1',\n size: 'md',\n variant: 'band',\n};\n\nexport const PAGE_HEADER_DEFAULTS = new InjectionToken<PageHeaderDefaults>(\n 'slotted page-header defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once how its page headers behave — the size, the\n * rank, whether a scroll collapses the area — rather than repeating them on\n * every screen. A header that states any of them itself still wins. Its words\n * come from the language in force (`provideSlotted`).\n */\nexport function providePageHeaderDefaults(defaults: Partial<PageHeaderDefaults>) {\n return {\n provide: PAGE_HEADER_DEFAULTS,\n useFactory: (): PageHeaderDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a page header renders as here, before it states anything of its own. */\nexport function injectPageHeaderDefaults(): PageHeaderDefaults {\n return inject(PAGE_HEADER_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field`\n * records: a module-level counter produces colliding sequences when two\n * applications render in one server process, and the server and the client\n * sequences must match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlPageHeaderIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-page-header-${this.count}`;\n }\n}\n","import {\n pageHeaderMessages,\n type PageHeaderMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { createStickyHeader } from '@slotted/core/sticky-header';\nimport type { StickyHeaderHandle } from '@slotted/core/sticky-header';\nimport { SlContainer } from '@slotted/angular/container';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlPage } from '@slotted/angular/page';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectPageHeaderDefaults, SlPageHeaderIdFactory } from './page-header-defaults';\nimport type {\n PageHeaderCollapse,\n PageHeaderExpandedReason,\n PageHeaderLevel,\n PageHeaderPinnedReason,\n PageHeaderSize,\n PageHeaderVariant,\n} from './page-header-defaults';\n\nexport type {\n PageHeaderCollapse,\n PageHeaderDefaults,\n PageHeaderExpandedReason,\n PageHeaderLevel,\n PageHeaderPinnedReason,\n PageHeaderSize,\n PageHeaderVariant,\n} from './page-header-defaults';\n\ntype MovedBy = 'control' | 'pin' | 'programmatic' | 'scroll';\n\n/**\n * The shell of a screen's top: a title area that never leaves, a header area\n * that scrolls away under it and comes back, a pill of controls on the\n * chrome's edge, and a slot for tabs. SAP Fiori's Dynamic Page, rebuilt on one\n * sticky root.\n *\n * **The stylesheet does the moving.** The root is `position: sticky` with a\n * negative offset the size of the header area, measured into\n * `--slotted-page-header-collapse` by `@slotted/core/sticky-header`, which\n * the React binding drives the same way. Scrolling takes the area under the\n * title and leaves the title where it is.\n *\n * **Two values a template may bind.** `expanded` moves by the toggle, by the\n * pin, by the application and by the scroll; `pinned` by the pin and the\n * application. Each move is first a request on `expandedRequest` or\n * `pinnedRequest`, carrying the reason — `scroll` is a reason of its own — and\n * `cancel()`.\n */\n@Component({\n selector: '[slPageHeader]',\n standalone: true,\n exportAs: 'slPageHeader',\n imports: [SlContainer],\n template: `<div slContainer [size]=\"containerSize()\" [inset]=\"containerInset()\">\n <ng-content />\n </div>`,\n styleUrl: '../../../styles/src/page-header/page-header.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'page-header',\n 'data-ui-page-header': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-level]': 'resolvedLevel()',\n '[attr.data-collapse]': 'resolvedCollapse()',\n '[attr.data-expanded]': \"expanded() ? '' : null\",\n '[attr.data-revealed]': \"revealed() ? '' : null\",\n '[attr.data-scrolled]': \"scrolled() ? '' : null\",\n '[attr.data-tall]': \"tall() ? '' : null\",\n '[attr.data-compact]': \"compact() ? '' : null\",\n '[attr.data-stuck]': \"stuck() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n '[attr.aria-busy]': \"loading() ? 'true' : null\",\n },\n})\nexport class SlPageHeader {\n /** Whether the header area is open. Two-way, so a template may bind it directly. */\n readonly expanded = model<boolean>(true);\n /** Whether the pin holds the area open. Two-way. */\n readonly pinned = model<boolean>(false);\n readonly variant = input<PageHeaderVariant | undefined>(undefined);\n readonly size = input<PageHeaderSize | undefined>(undefined);\n readonly level = input<PageHeaderLevel | undefined>(undefined);\n readonly collapse = input<PageHeaderCollapse | undefined>(undefined);\n /**\n * Whether the title has not arrived yet. The heading, the subheading and the\n * description render `slSkeletonText` in place of their words; the actions\n * stay operable; the root carries `aria-busy`.\n */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * toggle, the pin and the header area's name. A static `aria-label` on a\n * part still wins.\n */\n readonly messages = input<PartialMessages<PageHeaderMessages> | undefined>(undefined);\n\n /** One output for one transition of the header area, carrying the reason and the event. */\n readonly expandedRequest = output<ChangeRequest<boolean>>();\n /** One output for one transition of the pin, carrying the reason and the event. */\n readonly pinnedRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectPageHeaderDefaults();\n private readonly page = inject(SlPage, { optional: true });\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n private readonly generated = inject(SlPageHeaderIdFactory).next();\n\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedLevel = computed(() => this.level() ?? this.defaults.level);\n readonly resolvedCollapse = computed(() => this.collapse() ?? this.defaults.collapse);\n /** The family's words in the language in force, with this header's `messages` laid over them. */\n readonly t = injectMessages(pageHeaderMessages, this.messages);\n\n protected readonly containerSize = computed(() => this.page?.resolvedWidth() ?? 'content');\n protected readonly containerInset = computed(() => this.page?.resolvedInset());\n\n /** Whether the scroll has passed the area — a measured fact. */\n readonly scrolled = signal(false);\n /** The header is too much of the screen to hold; the pin is hidden and a held header let go. */\n readonly tall = signal(false);\n /** The frame is narrower than the compact size class — a phone; the header is in the flow and nothing condenses it. */\n readonly compact = signal(false);\n /** Whether the area is shown whole in place although the scroll has passed it. */\n readonly revealed = signal(false);\n /** Whether content passes under the chrome — a measured fact `plain` and `floating` read. */\n readonly stuck = signal(false);\n\n private engine: StickyHeaderHandle | null = null;\n /** Who asked for the move the next change detection will show. */\n private expandedBy: MovedBy = 'programmatic';\n\n /** The identifiers that wire the toggle to the area and the root to its heading. */\n ids() {\n return { areaId: `${this.generated}-area`, headingId: `${this.generated}-heading` };\n }\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /* The engine is told once a value has actually changed, whoever changed it. */\n let seenExpanded = untracked(() => this.expanded());\n effect(() => {\n const expanded = this.expanded();\n if (expanded === seenExpanded) return;\n seenExpanded = expanded;\n this.engine?.expandedChanged(expanded, this.expandedBy);\n this.expandedBy = 'programmatic';\n });\n let seenPinned = untracked(() => this.pinned());\n effect(() => {\n const pinned = this.pinned();\n if (pinned === seenPinned) return;\n seenPinned = pinned;\n this.engine?.pinnedChanged(pinned);\n });\n\n afterNextRender(() => {\n const part = (name: string) =>\n this.native.querySelector<HTMLElement>(`:scope > * > [data-part=\"${name}\"]`);\n const attach = () => {\n this.engine?.destroy();\n this.engine = createStickyHeader({\n root: this.native,\n area: () => part('header-area'),\n chrome: () =>\n [part('title-area'), part('controls'), part('tabs')].filter(\n (element): element is HTMLElement => element !== null,\n ),\n state: () => ({\n expanded: this.expanded(),\n pinned: this.pinned(),\n collapse: this.resolvedCollapse(),\n }),\n onScrolled: (next) => this.scrolled.set(next),\n onRevealed: (next) => this.revealed.set(next),\n onStuck: (next) => this.stuck.set(next),\n onScrollRequest: (next) => this.request(next, 'scroll', undefined, 'scroll'),\n onTall: (next) => this.tall.set(next),\n onCompact: (next) => this.compact.set(next),\n onPinRequest: (next) => this.requestPinned(next, 'programmatic'),\n contained: () => this.filledBody(),\n });\n };\n attach();\n destroyRef.onDestroy(() => this.engine?.destroy());\n });\n\n /* The axis rebuilds the engine, because it decides which observers exist. */\n effect(() => {\n this.resolvedCollapse();\n untracked(() => this.engine?.refresh());\n });\n }\n\n /**\n * The body of the page this header heads, while that page fills: nothing\n * scrolls outside it there, so its principal scroller is what snaps the area.\n * Read from the DOM on every scroll, so a page that turns `fill` on or off\n * is followed without rebuilding the engine.\n */\n private filledBody(): HTMLElement | null {\n const page = this.native.closest<HTMLElement>('[data-ui=\"page\"]');\n if (page === null || !page.hasAttribute('data-fill')) return null;\n return page.querySelector<HTMLElement>(':scope > [data-part=\"scroll\"] > [data-part=\"body\"]');\n }\n\n private request(\n next: boolean,\n reason: PageHeaderExpandedReason,\n source: Event | undefined,\n by: MovedBy,\n ) {\n if (next === this.expanded()) return;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.expanded(),\n onRequest: (request) => {\n this.expandedRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled || !moved) return;\n this.expandedBy = by;\n this.expanded.set(next);\n }\n\n private requestPinned(next: boolean, reason: PageHeaderPinnedReason, source?: Event) {\n if (next === this.pinned()) return;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.pinned(),\n onRequest: (request) => {\n this.pinnedRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled || !moved) return;\n this.pinned.set(next);\n /* A pinned header is by definition an open one. */\n if (next && !this.expanded()) this.request(true, 'programmatic', source, 'pin');\n }\n\n /** Asks the header area to open or close, carrying the reason and the originating event. */\n setExpanded(next: boolean, reason: PageHeaderExpandedReason, source?: Event) {\n /* Collapsing by the toggle while pinned lets the pin go first. */\n if (!next && this.pinned()) this.requestPinned(false, 'programmatic', source);\n this.request(next, reason, source, reason === 'programmatic' ? 'programmatic' : 'control');\n }\n\n /** Asks the pin to take hold or let go, carrying the reason and the originating event. */\n setPinned(next: boolean, reason: PageHeaderPinnedReason, source?: Event) {\n this.requestPinned(next, reason, source);\n }\n\n /** Opens the header area, carrying `programmatic`. Scrolled past, it reveals it in place. */\n expand() {\n this.request(true, 'programmatic', undefined, 'programmatic');\n }\n\n /** Closes the header area, carrying `programmatic`. */\n collapseArea() {\n if (this.pinned()) this.requestPinned(false, 'programmatic');\n this.request(false, 'programmatic', undefined, 'programmatic');\n }\n\n /** Takes hold, carrying `programmatic`; a collapsed area opens with it. */\n pin() {\n this.requestPinned(true, 'programmatic');\n }\n\n /** Lets go, carrying `programmatic`. */\n unpin() {\n this.requestPinned(false, 'programmatic');\n }\n}\n","import { SlSkeletonText } from '@slotted/angular/skeleton';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n effect,\n ElementRef,\n booleanAttribute,\n HostAttributeToken,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n injectProgressIndicatorDefaults,\n SlProgressBar,\n type ProgressSize,\n type ProgressTone,\n} from '@slotted/angular/progress-indicator';\n\nimport { SlPageHeader } from './page-header';\n\nconst HEADINGS = new Set(['H1', 'H2', 'H3', 'H4', 'H5', 'H6']);\n\n/** A click synthesised by the keyboard reports no detail; a real one reports the click count. */\nfunction activationReason(event: MouseEvent) {\n return event.detail === 0 ? ('keyboard' as const) : ('pointer' as const);\n}\n\n/** The strip that never leaves: nav, title row and controls. Sticky at 0 inside the root. */\n@Directive({\n selector: '[slPageHeaderTitleArea]',\n standalone: true,\n host: { 'data-part': 'title-area', 'data-part-title-area': '' },\n})\nexport class SlPageHeaderTitleArea {}\n\n/** The row above the title: the way back, then the breadcrumbs. */\n@Directive({\n selector: '[slPageHeaderNav]',\n standalone: true,\n host: { 'data-part': 'nav', 'data-part-nav': '' },\n})\nexport class SlPageHeaderNav {}\n\n/**\n * The way back: the consumer's own link or button, with the arrow the family\n * draws before it. The arrow points along the reading direction and mirrors\n * with it.\n */\n@Component({\n selector: '[slPageHeaderBack]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<span slIcon directional><svg slGlyph name=\"arrow-left\"></svg></span><ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'data-part': 'back', 'data-part-back': '' },\n})\nexport class SlPageHeaderBack {}\n\n/** The slot a breadcrumb sits in. Hidden below 600 pixels. */\n@Directive({\n selector: '[slPageHeaderBreadcrumbs]',\n standalone: true,\n host: { 'data-part': 'breadcrumbs', 'data-part-breadcrumbs': '' },\n})\nexport class SlPageHeaderBreadcrumbs {}\n\n/** Visual, title, actions and navigation, on one row that wraps. */\n@Directive({\n selector: '[slPageHeaderTitleRow]',\n standalone: true,\n host: { 'data-part': 'title-row', 'data-part-title-row': '' },\n})\nexport class SlPageHeaderTitleRow {}\n\n/** The mark before the heading: an avatar, an icon, an image. */\n@Directive({\n selector: '[slPageHeaderVisual]',\n standalone: true,\n host: { 'data-part': 'visual', 'data-part-visual': '' },\n})\nexport class SlPageHeaderVisual {}\n\n/** The column of heading, marks and subheading. */\n@Directive({\n selector: '[slPageHeaderTitle]',\n standalone: true,\n host: { 'data-part': 'title', 'data-part-title': '' },\n})\nexport class SlPageHeaderTitle {}\n\n/** The status beside the heading: a tag, a badge, a status indicator. */\n@Directive({\n selector: '[slPageHeaderMarks]',\n standalone: true,\n host: { 'data-part': 'marks', 'data-part-marks': '' },\n})\nexport class SlPageHeaderMarks {}\n\n/** The slot a toolbar sits in, pushed to the end of the title row. */\n@Directive({\n selector: '[slPageHeaderActions]',\n standalone: true,\n host: { 'data-part': 'actions', 'data-part-actions': '' },\n})\nexport class SlPageHeaderActions {}\n\n/** The previous and next record, at the far end of the title row. */\n@Directive({\n selector: '[slPageHeaderNavigation]',\n standalone: true,\n host: { 'data-part': 'navigation', 'data-part-navigation': '' },\n})\nexport class SlPageHeaderNavigation {}\n\n/** The picture of the record, a column before the content of the header area. */\n@Directive({\n selector: '[slPageHeaderFigure]',\n standalone: true,\n host: { 'data-part': 'figure', 'data-part-figure': '' },\n})\nexport class SlPageHeaderFigure {}\n\n/** A column of whatever only makes sense at rest. */\n@Directive({\n selector: '[slPageHeaderContent]',\n standalone: true,\n host: { 'data-part': 'content', 'data-part-content': '' },\n})\nexport class SlPageHeaderContent {}\n\n/** The slot a tabs family sits in, last in the root. */\n@Directive({\n selector: '[slPageHeaderTabs]',\n standalone: true,\n host: { 'data-part': 'tabs', 'data-part-tabs': '' },\n})\nexport class SlPageHeaderTabs {}\n\n/**\n * The heading. The element is the consumer's own: `<h1 slPageHeaderHeading>`\n * is a native heading and this adds nothing to it, while a `div` or an\n * `input` gets `role=\"heading\"` and the level the header resolved. While\n * loading it renders `slSkeletonText` in place of its words.\n */\n@Component({\n selector: '[slPageHeaderHeading]',\n standalone: true,\n exportAs: 'slPageHeaderHeading',\n imports: [SlSkeletonText],\n template: `@if (header.loading()) {\n <span slSkeletonText [lines]=\"1\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'heading',\n 'data-part-heading': '',\n '[attr.id]': 'header.ids().headingId',\n '[attr.role]': 'ariaRole()',\n '[attr.aria-level]': 'ariaLevel()',\n },\n})\nexport class SlPageHeaderHeading {\n protected readonly header = inject(SlPageHeader);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n private readonly isNativeHeading = HEADINGS.has(this.native.tagName);\n\n protected readonly ariaRole = computed(() => (this.isNativeHeading ? null : 'heading'));\n protected readonly ariaLevel = computed(() =>\n this.isNativeHeading ? null : this.header.resolvedLevel(),\n );\n}\n\n/** One line under the heading, in the muted text, part of what stays visible. */\n@Component({\n selector: '[slPageHeaderSubheading]',\n standalone: true,\n imports: [SlSkeletonText],\n template: `@if (header.loading()) {\n <span slSkeletonText [lines]=\"1\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'subheading', 'data-part-subheading': '' },\n})\nexport class SlPageHeaderSubheading {\n protected readonly header = inject(SlPageHeader);\n}\n\n/** A paragraph with a measure, inside the header area's content. */\n@Component({\n selector: '[slPageHeaderDescription]',\n standalone: true,\n imports: [SlSkeletonText],\n template: `@if (header.loading()) {\n <span slSkeletonText [lines]=\"2\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'description', 'data-part-description': '' },\n})\nexport class SlPageHeaderDescription {\n protected readonly header = inject(SlPageHeader);\n}\n\n/**\n * The region that collapses. Collapsed by the control it is `inert` and\n * hidden from assistive technology; scrolled past it is neither, so a control\n * inside it that receives focus is scrolled back into view and the header\n * re-opens with the reason `scroll`.\n */\n@Directive({\n selector: '[slPageHeaderArea]',\n standalone: true,\n exportAs: 'slPageHeaderArea',\n host: {\n 'data-part': 'header-area',\n 'data-part-header-area': '',\n role: 'region',\n '[attr.id]': 'header.ids().areaId',\n '[attr.aria-label]': 'label()',\n },\n})\nexport class SlPageHeaderArea {\n protected readonly header = inject(SlPageHeader);\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n\n protected readonly label = computed(() => this.written ?? this.header.t('headerArea'));\n\n constructor() {\n effect(() => {\n const closedByControl = !this.header.expanded() && !this.header.scrolled();\n if (closedByControl) {\n this.native.setAttribute('inert', '');\n this.native.setAttribute('aria-hidden', 'true');\n } else {\n this.native.removeAttribute('inert');\n this.native.removeAttribute('aria-hidden');\n }\n });\n }\n}\n\n/** The zero-height row on the chrome's edge; the pill is its only child. */\n@Component({\n selector: '[slPageHeaderControls]',\n standalone: true,\n template: `<div><ng-content /></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'controls', 'data-part-controls': '' },\n})\nexport class SlPageHeaderControls {}\n\n/**\n * The disclosure control: the consumer's own `button`, so `Enter` and `Space`\n * are the platform's. `aria-expanded` and `aria-controls` are the pattern's\n * two properties.\n */\n@Component({\n selector: 'button[slPageHeaderToggle]',\n standalone: true,\n exportAs: 'slPageHeaderToggle',\n imports: [SlGlyph, SlIcon],\n /* The stylesheet turns the chevron half a turn while the area is shown. */\n template: `<ng-content\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-part': 'toggle',\n 'data-part-toggle': '',\n type: 'button',\n '[attr.aria-expanded]': 'header.expanded()',\n '[attr.aria-controls]': 'header.ids().areaId',\n '[attr.aria-label]': 'label()',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlPageHeaderToggle {\n protected readonly header = inject(SlPageHeader);\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n protected readonly label = computed(() => {\n if (this.written !== null) return this.written;\n return this.header.expanded() ? this.header.t('collapse') : this.header.t('expand');\n });\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.header.setExpanded(!this.header.expanded(), activationReason(event), event);\n }\n}\n\n/** The pin: a toggle button with `aria-pressed`, which is the `pressed` state the vocabulary has. */\n@Component({\n selector: 'button[slPageHeaderPin]',\n standalone: true,\n exportAs: 'slPageHeaderPin',\n imports: [SlGlyph, SlIcon],\n /* The mark says what a press does: pin while free, unpin while held. */\n template: `<ng-content\n ><span slIcon><svg slGlyph [name]=\"header.pinned() ? 'pin-off' : 'pin'\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-part': 'pin',\n 'data-part-pin': '',\n type: 'button',\n '[attr.aria-pressed]': 'header.pinned()',\n '[attr.data-pressed]': \"header.pinned() ? '' : null\",\n '[attr.aria-label]': 'label()',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlPageHeaderPin {\n protected readonly header = inject(SlPageHeader);\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n protected readonly label = computed(() => {\n if (this.written !== null) return this.written;\n return this.header.pinned() ? this.header.t('unpin') : this.header.t('pin');\n });\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.header.setPinned(!this.header.pinned(), activationReason(event), event);\n }\n}\n\n/**\n * A refresh of what is already on screen, drawn over the line where the chrome\n * ends. Written after the controls and before the tabs, as the controls are:\n * there it is the line the pill straddles, and with no tabs it is the root's\n * own hairline. The frame is a row of the container one hairline tall; the\n * stylesheet gives the bar the header's width and draws nothing while the\n * title is still loading or while a region around the header is busy. `size`\n * defaults to `sm`, `delay` to 200 and `minDuration` to 400 milliseconds; an\n * input, then `provideProgressIndicatorDefaults()`, wins.\n */\n@Component({\n selector: '[slPageHeaderProgress]',\n standalone: true,\n exportAs: 'slPageHeaderProgress',\n imports: [SlProgressBar],\n template: `<div\n slProgressBar\n placement=\"edge-end\"\n [buffer]=\"buffer()\"\n [delay]=\"delay() ?? defaults.delay ?? 200\"\n [label]=\"label() ?? header.t('progress')\"\n [loading]=\"loading()\"\n [max]=\"max()\"\n [min]=\"min()\"\n [minDuration]=\"minDuration() ?? defaults.minDuration ?? 400\"\n [size]=\"size() ?? 'sm'\"\n [tone]=\"tone()\"\n [value]=\"value()\"\n [valueText]=\"valueText()\"\n (withdraw)=\"withdraw.emit()\"\n ></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'progress', 'data-part-progress': '' },\n})\nexport class SlPageHeaderProgress {\n protected readonly header = inject(SlPageHeader);\n protected readonly defaults = injectProgressIndicatorDefaults();\n\n readonly loading = input(true, { transform: booleanAttribute });\n readonly value = input<number | null | undefined>(undefined);\n readonly min = input<number | undefined>(undefined);\n readonly max = input<number | undefined>(undefined);\n readonly buffer = input<number | null | undefined>(undefined);\n readonly valueText = input<string | undefined>(undefined);\n readonly label = input<string | undefined>(undefined);\n readonly tone = input<ProgressTone | undefined>(undefined);\n readonly size = input<ProgressSize | undefined>(undefined);\n readonly delay = input<number | undefined>(undefined);\n readonly minDuration = input<number | undefined>(undefined);\n /** The bar was painted and has been withdrawn. */\n readonly withdraw = output<void>();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -140,9 +140,14 @@ class SlPage {
140
140
  return;
141
141
  const target = findScrollParent(this.native) ?? this.native.ownerDocument.documentElement;
142
142
  const bar = () => this.native.querySelector(':scope > [data-part="footer"]');
143
+ /* The property inherits, so every write invalidates style for everything
144
+ under the scroller: it is written only when the height changes. */
143
145
  const publish = () => {
144
146
  const height = this.resolvedScroll() === 'self' ? 0 : (bar()?.offsetHeight ?? 0);
145
- target.style.setProperty(STICKY_BOTTOM_PROPERTY, `${height}px`);
147
+ const value = `${height}px`;
148
+ if (target.style.getPropertyValue(STICKY_BOTTOM_PROPERTY) === value)
149
+ return;
150
+ target.style.setProperty(STICKY_BOTTOM_PROPERTY, value);
146
151
  };
147
152
  const observer = new ResizeObserver(publish);
148
153
  observer.observe(this.native);
@@ -157,28 +162,30 @@ class SlPage {
157
162
  });
158
163
  }
159
164
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
160
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlPage, isStandalone: true, selector: "[slPage]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, ground: { classPropertyName: "ground", publicName: "ground", isSignal: true, isRequired: false, transformFunction: null }, landmark: { classPropertyName: "landmark", publicName: "landmark", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "page", "data-part": "root" }, properties: { "attr.role": "role()", "attr.data-width": "resolvedWidth()", "attr.data-scroll": "resolvedScroll()", "attr.data-ground": "resolvedGround()", "attr.data-fill": "fill() ? '' : null", "attr.data-loading": "loading() ? '' : null" } }, exportAs: ["slPage"], ngImport: i0, template: `<div data-part="scroll">
165
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlPage, isStandalone: true, selector: "[slPage]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, ground: { classPropertyName: "ground", publicName: "ground", isSignal: true, isRequired: false, transformFunction: null }, landmark: { classPropertyName: "landmark", publicName: "landmark", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "page", "data-ui-page": "", "data-part": "root", "data-part-root": "" }, properties: { "attr.role": "role()", "attr.data-width": "resolvedWidth()", "attr.data-scroll": "resolvedScroll()", "attr.data-ground": "resolvedGround()", "attr.data-fill": "fill() ? '' : null", "attr.data-loading": "loading() ? '' : null" } }, exportAs: ["slPage"], ngImport: i0, template: `<div data-part="scroll" data-part-scroll="">
161
166
  <ng-content select="[slPageHeader]" />
162
167
  <ng-content />
163
168
  </div>
164
- <ng-content select="[slPageFooter]" />`, isInline: true, styles: ["@layer slotted.components{[data-ui=page]{--_ground: var(--slotted-page-background-sunken, var(--slotted-surface-sunken, Canvas));--_padding-block: var(--slotted-page-padding-block, var(--slotted-space-8, 1.5rem));--_footer-ground: var(--slotted-page-footer-background, var(--slotted-surface, Canvas));--_footer-rule: var(--slotted-page-footer-border, var(--slotted-border-subtle, ButtonBorder));--_footer-padding-block: var( --slotted-page-footer-padding-block, var(--slotted-space-4, .5rem) );--_duration: var(--slotted-duration-medium);--_easing: var(--slotted-easing-standard, cubic-bezier(.2, 0, 0, 1));--slotted-page-ground: var(--_ground);--slotted-table-sticky-offset: var(--slotted-page-sticky-top, 0px);--slotted-table-sticky-offset-end: var(--slotted-page-sticky-bottom, 0px);background-color:var(--_ground);color:var(--slotted-text, CanvasText);container:slotted-page / inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-block-size:100%;min-inline-size:0}[data-ui=page][data-ground=surface]{--_ground: var(--slotted-page-background-surface, var(--slotted-surface, Canvas))}[data-ui=page]>[data-part=scroll]{display:flex;flex:1 0 auto;flex-direction:column;min-inline-size:0;overflow-anchor:none}[data-ui=page][data-scroll=self]{block-size:100%;min-block-size:0}[data-ui=page][data-scroll=self]>[data-part=scroll]{flex:1 1 auto;min-block-size:0;overflow:auto;overscroll-behavior:contain}[data-ui=page]>[data-part=scroll]>[data-part=body]{flex:1 0 auto;min-inline-size:0;padding-block:var(--_padding-block)}@container slotted-page (width >= 600px){[data-ui=page][data-fill]>[data-part=scroll]>[data-part=body]{display:flex;flex:1 1 auto;flex-direction:column;min-block-size:0}[data-ui=page][data-fill]>[data-part=scroll]>[data-part=body]>*{flex:1 1 auto;min-block-size:0}}[data-ui=page][data-loading]>[data-part=scroll]>[data-part=body]{cursor:progress}[data-ui=page]>[data-part=footer]{background-color:var(--_footer-ground);border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_footer-rule);inset-block-end:0;min-inline-size:0;padding-block:var(--_footer-padding-block);position:sticky;transition:translate var(--_duration) var(--_easing),opacity var(--_duration) var(--_easing);z-index:var(--slotted-z-index-sticky, 100)}[data-ui=page][data-scroll=self]>[data-part=footer]{position:static}[data-ui=page]>[data-part=footer][data-status=entering],[data-ui=page]>[data-part=footer][data-status=exiting]{opacity:0;translate:0 100%}[data-ui=page]>[data-part=footer]>*>[data-part=actions]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-control-gap-md, 8px);justify-content:flex-end;min-inline-size:0}@container slotted-page (width < 600px){[data-ui=page] [data-ui=container][data-inset=\"5\"],[data-ui=page] [data-ui=container][data-inset=\"6\"],[data-ui=page] [data-ui=container][data-inset=\"7\"],[data-ui=page] [data-ui=container][data-inset=\"8\"],[data-ui=page] [data-ui=container][data-inset=\"9\"],[data-ui=page] [data-ui=container][data-inset=\"10\"],[data-ui=page] [data-ui=container][data-inset=\"11\"],[data-ui=page] [data-ui=container][data-inset=\"12\"]{--_inset: var(--slotted-space-4, .5rem)}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
169
+ <ng-content select="[slPageFooter]" />`, isInline: true, styles: ["@layer slotted.components{[data-ui-page]{--_ground: var(--slotted-page-background-sunken, var(--slotted-surface-sunken, Canvas));--_padding-block: var(--slotted-page-padding-block, var(--slotted-space-8, 1.5rem));--_footer-ground: var(--slotted-page-footer-background, var(--slotted-surface, Canvas));--_footer-rule: var(--slotted-page-footer-border, var(--slotted-border-subtle, ButtonBorder));--_footer-padding-block: var( --slotted-page-footer-padding-block, var(--slotted-space-4, .5rem) );--_duration: var(--slotted-duration-medium);--_easing: var(--slotted-easing-standard, cubic-bezier(.2, 0, 0, 1));--slotted-page-ground: var(--_ground);--slotted-table-sticky-offset: var(--slotted-page-sticky-top, 0px);--slotted-table-sticky-offset-end: var(--slotted-page-sticky-bottom, 0px);background-color:var(--_ground);color:var(--slotted-text, CanvasText);container:slotted-page / inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-block-size:100%;min-inline-size:0}[data-ui-page][data-ground=surface]{--_ground: var(--slotted-page-background-surface, var(--slotted-surface, Canvas))}[data-ui-page]>[data-part-scroll]{display:flex;flex:1 0 auto;flex-direction:column;min-inline-size:0;overflow-anchor:none}[data-ui-page][data-scroll=self]{block-size:100%;min-block-size:0}[data-ui-page][data-scroll=self]>[data-part-scroll]{flex:1 1 auto;min-block-size:0;overflow:auto;overscroll-behavior:contain}[data-ui-page]>[data-part-scroll]>[data-part-body]{flex:1 0 auto;min-inline-size:0;padding-block:var(--_padding-block)}@container slotted-page (width >= 600px){[data-ui-page][data-fill]>[data-part-scroll]>[data-part-body]{display:flex;flex:1 1 auto;flex-direction:column;min-block-size:0}[data-ui-page][data-fill]>[data-part-scroll]>[data-part-body]>*{flex:1 1 auto;min-block-size:0}}[data-ui-page][data-loading]>[data-part-scroll]>[data-part-body]{cursor:progress}[data-ui-page]>[data-part-footer]{background-color:var(--_footer-ground);border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_footer-rule);inset-block-end:0;min-inline-size:0;padding-block:var(--_footer-padding-block);position:sticky;transition:translate var(--_duration) var(--_easing),opacity var(--_duration) var(--_easing);z-index:var(--slotted-z-index-sticky, 100)}[data-ui-page][data-scroll=self]>[data-part-footer]{position:static}[data-ui-page]>[data-part-footer][data-status=entering],[data-ui-page]>[data-part-footer][data-status=exiting]{opacity:0;translate:0 100%}[data-ui-page]>[data-part-footer]>*>[data-part-actions]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-control-gap-md, 8px);justify-content:flex-end;min-inline-size:0}@container slotted-page (width < 600px){[data-ui-page] [data-ui-container][data-inset=\"5\"],[data-ui-page] [data-ui-container][data-inset=\"6\"],[data-ui-page] [data-ui-container][data-inset=\"7\"],[data-ui-page] [data-ui-container][data-inset=\"8\"],[data-ui-page] [data-ui-container][data-inset=\"9\"],[data-ui-page] [data-ui-container][data-inset=\"10\"],[data-ui-page] [data-ui-container][data-inset=\"11\"],[data-ui-page] [data-ui-container][data-inset=\"12\"]{--_inset: var(--slotted-space-4, .5rem)}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
165
170
  }
166
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlPage, decorators: [{
167
172
  type: Component,
168
- args: [{ selector: '[slPage]', standalone: true, exportAs: 'slPage', template: `<div data-part="scroll">
173
+ args: [{ selector: '[slPage]', standalone: true, exportAs: 'slPage', template: `<div data-part="scroll" data-part-scroll="">
169
174
  <ng-content select="[slPageHeader]" />
170
175
  <ng-content />
171
176
  </div>
172
177
  <ng-content select="[slPageFooter]" />`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
173
178
  'data-ui': 'page',
179
+ 'data-ui-page': '',
174
180
  'data-part': 'root',
181
+ 'data-part-root': '',
175
182
  '[attr.role]': 'role()',
176
183
  '[attr.data-width]': 'resolvedWidth()',
177
184
  '[attr.data-scroll]': 'resolvedScroll()',
178
185
  '[attr.data-ground]': 'resolvedGround()',
179
186
  '[attr.data-fill]': "fill() ? '' : null",
180
187
  '[attr.data-loading]': "loading() ? '' : null",
181
- }, styles: ["@layer slotted.components{[data-ui=page]{--_ground: var(--slotted-page-background-sunken, var(--slotted-surface-sunken, Canvas));--_padding-block: var(--slotted-page-padding-block, var(--slotted-space-8, 1.5rem));--_footer-ground: var(--slotted-page-footer-background, var(--slotted-surface, Canvas));--_footer-rule: var(--slotted-page-footer-border, var(--slotted-border-subtle, ButtonBorder));--_footer-padding-block: var( --slotted-page-footer-padding-block, var(--slotted-space-4, .5rem) );--_duration: var(--slotted-duration-medium);--_easing: var(--slotted-easing-standard, cubic-bezier(.2, 0, 0, 1));--slotted-page-ground: var(--_ground);--slotted-table-sticky-offset: var(--slotted-page-sticky-top, 0px);--slotted-table-sticky-offset-end: var(--slotted-page-sticky-bottom, 0px);background-color:var(--_ground);color:var(--slotted-text, CanvasText);container:slotted-page / inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-block-size:100%;min-inline-size:0}[data-ui=page][data-ground=surface]{--_ground: var(--slotted-page-background-surface, var(--slotted-surface, Canvas))}[data-ui=page]>[data-part=scroll]{display:flex;flex:1 0 auto;flex-direction:column;min-inline-size:0;overflow-anchor:none}[data-ui=page][data-scroll=self]{block-size:100%;min-block-size:0}[data-ui=page][data-scroll=self]>[data-part=scroll]{flex:1 1 auto;min-block-size:0;overflow:auto;overscroll-behavior:contain}[data-ui=page]>[data-part=scroll]>[data-part=body]{flex:1 0 auto;min-inline-size:0;padding-block:var(--_padding-block)}@container slotted-page (width >= 600px){[data-ui=page][data-fill]>[data-part=scroll]>[data-part=body]{display:flex;flex:1 1 auto;flex-direction:column;min-block-size:0}[data-ui=page][data-fill]>[data-part=scroll]>[data-part=body]>*{flex:1 1 auto;min-block-size:0}}[data-ui=page][data-loading]>[data-part=scroll]>[data-part=body]{cursor:progress}[data-ui=page]>[data-part=footer]{background-color:var(--_footer-ground);border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_footer-rule);inset-block-end:0;min-inline-size:0;padding-block:var(--_footer-padding-block);position:sticky;transition:translate var(--_duration) var(--_easing),opacity var(--_duration) var(--_easing);z-index:var(--slotted-z-index-sticky, 100)}[data-ui=page][data-scroll=self]>[data-part=footer]{position:static}[data-ui=page]>[data-part=footer][data-status=entering],[data-ui=page]>[data-part=footer][data-status=exiting]{opacity:0;translate:0 100%}[data-ui=page]>[data-part=footer]>*>[data-part=actions]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-control-gap-md, 8px);justify-content:flex-end;min-inline-size:0}@container slotted-page (width < 600px){[data-ui=page] [data-ui=container][data-inset=\"5\"],[data-ui=page] [data-ui=container][data-inset=\"6\"],[data-ui=page] [data-ui=container][data-inset=\"7\"],[data-ui=page] [data-ui=container][data-inset=\"8\"],[data-ui=page] [data-ui=container][data-inset=\"9\"],[data-ui=page] [data-ui=container][data-inset=\"10\"],[data-ui=page] [data-ui=container][data-inset=\"11\"],[data-ui=page] [data-ui=container][data-inset=\"12\"]{--_inset: var(--slotted-space-4, .5rem)}}}\n"] }]
188
+ }, styles: ["@layer slotted.components{[data-ui-page]{--_ground: var(--slotted-page-background-sunken, var(--slotted-surface-sunken, Canvas));--_padding-block: var(--slotted-page-padding-block, var(--slotted-space-8, 1.5rem));--_footer-ground: var(--slotted-page-footer-background, var(--slotted-surface, Canvas));--_footer-rule: var(--slotted-page-footer-border, var(--slotted-border-subtle, ButtonBorder));--_footer-padding-block: var( --slotted-page-footer-padding-block, var(--slotted-space-4, .5rem) );--_duration: var(--slotted-duration-medium);--_easing: var(--slotted-easing-standard, cubic-bezier(.2, 0, 0, 1));--slotted-page-ground: var(--_ground);--slotted-table-sticky-offset: var(--slotted-page-sticky-top, 0px);--slotted-table-sticky-offset-end: var(--slotted-page-sticky-bottom, 0px);background-color:var(--_ground);color:var(--slotted-text, CanvasText);container:slotted-page / inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-block-size:100%;min-inline-size:0}[data-ui-page][data-ground=surface]{--_ground: var(--slotted-page-background-surface, var(--slotted-surface, Canvas))}[data-ui-page]>[data-part-scroll]{display:flex;flex:1 0 auto;flex-direction:column;min-inline-size:0;overflow-anchor:none}[data-ui-page][data-scroll=self]{block-size:100%;min-block-size:0}[data-ui-page][data-scroll=self]>[data-part-scroll]{flex:1 1 auto;min-block-size:0;overflow:auto;overscroll-behavior:contain}[data-ui-page]>[data-part-scroll]>[data-part-body]{flex:1 0 auto;min-inline-size:0;padding-block:var(--_padding-block)}@container slotted-page (width >= 600px){[data-ui-page][data-fill]>[data-part-scroll]>[data-part-body]{display:flex;flex:1 1 auto;flex-direction:column;min-block-size:0}[data-ui-page][data-fill]>[data-part-scroll]>[data-part-body]>*{flex:1 1 auto;min-block-size:0}}[data-ui-page][data-loading]>[data-part-scroll]>[data-part-body]{cursor:progress}[data-ui-page]>[data-part-footer]{background-color:var(--_footer-ground);border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_footer-rule);inset-block-end:0;min-inline-size:0;padding-block:var(--_footer-padding-block);position:sticky;transition:translate var(--_duration) var(--_easing),opacity var(--_duration) var(--_easing);z-index:var(--slotted-z-index-sticky, 100)}[data-ui-page][data-scroll=self]>[data-part-footer]{position:static}[data-ui-page]>[data-part-footer][data-status=entering],[data-ui-page]>[data-part-footer][data-status=exiting]{opacity:0;translate:0 100%}[data-ui-page]>[data-part-footer]>*>[data-part-actions]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-control-gap-md, 8px);justify-content:flex-end;min-inline-size:0}@container slotted-page (width < 600px){[data-ui-page] [data-ui-container][data-inset=\"5\"],[data-ui-page] [data-ui-container][data-inset=\"6\"],[data-ui-page] [data-ui-container][data-inset=\"7\"],[data-ui-page] [data-ui-container][data-inset=\"8\"],[data-ui-page] [data-ui-container][data-inset=\"9\"],[data-ui-page] [data-ui-container][data-inset=\"10\"],[data-ui-page] [data-ui-container][data-inset=\"11\"],[data-ui-page] [data-ui-container][data-inset=\"12\"]{--_inset: var(--slotted-space-4, .5rem)}}}\n"] }]
182
189
  }], ctorParameters: () => [], propDecorators: { width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], scroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "scroll", required: false }] }], ground: [{ type: i0.Input, args: [{ isSignal: true, alias: "ground", required: false }] }], landmark: [{ type: i0.Input, args: [{ isSignal: true, alias: "landmark", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }] } });
183
190
  /**
184
191
  * The padded column: one container at the page's width and inset, and one
@@ -188,7 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
188
195
  class SlPageBody {
189
196
  page = inject(SlPage, { optional: true });
190
197
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlPageBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlPageBody, isStandalone: true, selector: "[slPageBody]", host: { attributes: { "data-part": "body" }, properties: { "attr.aria-busy": "page?.loading() ? 'true' : null" } }, exportAs: ["slPageBody"], hostDirectives: [{ directive: i1.SlHeadingLevel }], ngImport: i0, template: `<div slContainer [size]="page?.resolvedWidth()" [inset]="page?.resolvedInset()">
198
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlPageBody, isStandalone: true, selector: "[slPageBody]", host: { attributes: { "data-part": "body", "data-part-body": "" }, properties: { "attr.aria-busy": "page?.loading() ? 'true' : null" } }, exportAs: ["slPageBody"], hostDirectives: [{ directive: i1.SlHeadingLevel }], ngImport: i0, template: `<div slContainer [size]="page?.resolvedWidth()" [inset]="page?.resolvedInset()">
192
199
  <ng-content />
193
200
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SlContainer, selector: "[slContainer]", inputs: ["size", "inset", "align"], exportAs: ["slContainer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
194
201
  }
@@ -207,6 +214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
207
214
  encapsulation: ViewEncapsulation.None,
208
215
  host: {
209
216
  'data-part': 'body',
217
+ 'data-part-body': '',
210
218
  '[attr.aria-busy]': "page?.loading() ? 'true' : null",
211
219
  },
212
220
  }]
@@ -241,8 +249,8 @@ class SlPageFooter {
241
249
  inject(DestroyRef).onDestroy(() => presence.destroy());
242
250
  }
243
251
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlPageFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
244
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlPageFooter, isStandalone: true, selector: "[slPageFooter]", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "footer" }, properties: { "attr.aria-label": "label()", "attr.data-status": "status()", "attr.hidden": "status() === 'unmounted' ? '' : null" } }, exportAs: ["slPageFooter"], ngImport: i0, template: `<div slContainer [size]="page?.resolvedWidth()" [inset]="page?.resolvedInset()">
245
- <div data-part="actions"><ng-content /></div>
252
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlPageFooter, isStandalone: true, selector: "[slPageFooter]", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "footer", "data-part-footer": "" }, properties: { "attr.aria-label": "label()", "attr.data-status": "status()", "attr.hidden": "status() === 'unmounted' ? '' : null" } }, exportAs: ["slPageFooter"], ngImport: i0, template: `<div slContainer [size]="page?.resolvedWidth()" [inset]="page?.resolvedInset()">
253
+ <div data-part="actions" data-part-actions=""><ng-content /></div>
246
254
  </div>`, isInline: true, dependencies: [{ kind: "component", type: SlContainer, selector: "[slContainer]", inputs: ["size", "inset", "align"], exportAs: ["slContainer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
247
255
  }
248
256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlPageFooter, decorators: [{
@@ -253,12 +261,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
253
261
  exportAs: 'slPageFooter',
254
262
  imports: [SlContainer],
255
263
  template: `<div slContainer [size]="page?.resolvedWidth()" [inset]="page?.resolvedInset()">
256
- <div data-part="actions"><ng-content /></div>
264
+ <div data-part="actions" data-part-actions=""><ng-content /></div>
257
265
  </div>`,
258
266
  changeDetection: ChangeDetectionStrategy.OnPush,
259
267
  encapsulation: ViewEncapsulation.None,
260
268
  host: {
261
269
  'data-part': 'footer',
270
+ 'data-part-footer': '',
262
271
  '[attr.aria-label]': 'label()',
263
272
  '[attr.data-status]': 'status()',
264
273
  '[attr.hidden]': "status() === 'unmounted' ? '' : null",
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-page.mjs","sources":["../../page/src/page-defaults.ts","../../page/src/page.ts","../../page/src/slotted-angular-page.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/** The width of the content column: the container's own sizes. */\nexport type PageWidth = 'measure' | 'content' | 'wide' | 'full' | 'bleed';\n\n/** The inset of the content column from the edge of the page: the container's own steps. */\nexport type PageInset = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/**\n * Who scrolls. `ancestor` puts the page inside whatever scrolls and makes it\n * at least as tall as that, so the footer has a bottom to stick to. `self`\n * makes the page's own scroll part the scroller, with the footer below it.\n */\nexport type PageScroll = 'ancestor' | 'self';\n\n/** The ground: the sunken canvas of an application, or the plain surface of a document. */\nexport type PageGround = 'sunken' | 'surface';\n\n/** Whether the root is the document's `main` landmark. */\nexport type PageLandmark = 'main' | 'none';\n\nexport interface PageDefaults {\n ground: PageGround;\n inset: PageInset;\n landmark: PageLandmark;\n scroll: PageScroll;\n width: PageWidth;\n}\n\nconst FALLBACK: PageDefaults = {\n ground: 'sunken',\n inset: 6,\n landmark: 'main',\n scroll: 'ancestor',\n width: 'wide',\n};\n\nexport const PAGE_DEFAULTS = new InjectionToken<PageDefaults>('slotted page defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its pages are laid out — the measure, the\n * inset, who scrolls, the ground — rather than repeating the same inputs on\n * every route. A page that states any of them itself still wins. Its words\n * come from the language in force (`provideSlotted`).\n */\nexport function providePageDefaults(defaults: Partial<PageDefaults>) {\n return {\n provide: PAGE_DEFAULTS,\n useFactory: (): PageDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a page renders as here, before it states anything of its own. */\nexport function injectPageDefaults(): PageDefaults {\n return inject(PAGE_DEFAULTS);\n}\n","import { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { findScrollParent } from '@slotted/core/sticky-header';\nimport { SlContainer } from '@slotted/angular/container';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlHeadingLevel } from '@slotted/angular/typography';\nimport { pageMessages, type PageMessages, type PartialMessages } from '@slotted/core/i18n';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n isDevMode,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectPageDefaults } from './page-defaults';\nimport type { PageGround, PageInset, PageLandmark, PageScroll, PageWidth } from './page-defaults';\n\nexport type {\n PageDefaults,\n PageGround,\n PageInset,\n PageLandmark,\n PageScroll,\n PageWidth,\n} from './page-defaults';\n\n/** The custom property the scroller carries for what sticks above the footer. */\nexport const STICKY_BOTTOM_PROPERTY = '--slotted-page-sticky-bottom';\n\n/**\n * The inset lives on the body, so content written straight into the page is\n * drawn against the viewport's edges and nothing else says why. A header is\n * not that content — it carries its own inset — so it is the one child the\n * check passes over.\n */\nfunction warnWithoutBody(root: HTMLElement) {\n const scroll = root.querySelector(':scope > [data-part=\"scroll\"]');\n if (scroll === null) return;\n const content = [...scroll.children].filter(\n (child) => child.getAttribute('data-ui') !== 'page-header',\n );\n if (content.length === 0) return;\n if (content.some((child) => child.getAttribute('data-part') === 'body')) return;\n console.warn(\n 'slPage has content outside slPageBody. Content outside the body receives no inset: wrap it in an element carrying slPageBody.',\n );\n}\n\n/**\n * The column of a screen: who scrolls, how wide the content is, where the\n * footer stays, how much air the body has.\n *\n * **The header is a direct child of what scrolls.** There is no header part: a\n * `sticky` element never leaves the box that contains it, so a wrapper exactly\n * the header's height would pin nothing. The element carrying `slPageHeader`\n * is projected first into the scroll part, beside the body.\n *\n * **The footer is projected outside the scroll part** — below the scroller\n * under `self`, stuck to the bottom of the root under `ancestor` — which is\n * what content projection is for. It keeps its box through its exit on\n * `open`, so the bar slides out rather than vanishing.\n *\n * **The element is the consumer's.** `<main slPage>` is the main landmark and\n * the directive adds nothing; `<div slPage>` gets `role=\"main\"` unless\n * `landmark=\"none\"` says the document already has one.\n */\n@Component({\n selector: '[slPage]',\n standalone: true,\n exportAs: 'slPage',\n template: `<div data-part=\"scroll\">\n <ng-content select=\"[slPageHeader]\" />\n <ng-content />\n </div>\n <ng-content select=\"[slPageFooter]\" />`,\n styleUrl: '../../../styles/src/page/page.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'page',\n 'data-part': 'root',\n '[attr.role]': 'role()',\n '[attr.data-width]': 'resolvedWidth()',\n '[attr.data-scroll]': 'resolvedScroll()',\n '[attr.data-ground]': 'resolvedGround()',\n '[attr.data-fill]': \"fill() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n },\n})\nexport class SlPage {\n /** Defaults to the provider, then `wide`. */\n readonly width = input<PageWidth | undefined>(undefined);\n /** Defaults to the provider, then `6`. */\n readonly inset = input<PageInset | undefined>(undefined);\n /** Defaults to the provider, then `ancestor`. */\n readonly scroll = input<PageScroll | undefined>(undefined);\n /** Defaults to the provider, then `sunken`. */\n readonly ground = input<PageGround | undefined>(undefined);\n /** Defaults to the provider, then `main`. */\n readonly landmark = input<PageLandmark | undefined>(undefined);\n /**\n * Fills the height it was given: the body stops growing with its content and\n * the container inside it stretches to what is left. With `scroll=\"self\"`\n * nothing then scrolls outside the body, so the body's principal scroller —\n * not a form control, and at least half the body's height — is what\n * collapses the header: past 16 pixels down it snaps the area shut, and back\n * at its top it opens it again. From 600 pixels of the page's width up;\n * below it the page scrolls as it does without `fill`.\n */\n readonly fill = input(false, { transform: booleanAttribute });\n /** The body carries `aria-busy`; what stands in for the content is each family's own placeholder. */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force: the footer's\n * accessible name (`footer`). A static `aria-label` on the footer still wins.\n */\n readonly messages = input<PartialMessages<PageMessages> | undefined>(undefined);\n\n private readonly defaults = injectPageDefaults();\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n readonly resolvedWidth = computed(() => this.width() ?? this.defaults.width);\n readonly resolvedInset = computed(() => this.inset() ?? this.defaults.inset);\n readonly resolvedScroll = computed(() => this.scroll() ?? this.defaults.scroll);\n readonly resolvedGround = computed(() => this.ground() ?? this.defaults.ground);\n readonly resolvedLandmark = computed(() => this.landmark() ?? this.defaults.landmark);\n /** The family's words in the language in force, with this page's `messages` laid over them. */\n readonly t = injectMessages(pageMessages, this.messages);\n\n /** `role=\"main\"` only where the element is not already `main`, and only when asked. */\n protected readonly role = computed(() => {\n if (this.writtenRole !== null) return this.writtenRole;\n if (this.resolvedLandmark() !== 'main') return null;\n return this.native.tagName === 'MAIN' ? null : 'main';\n });\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n afterNextRender(() => {\n if (isDevMode()) warnWithoutBody(this.native);\n if (typeof ResizeObserver === 'undefined') return;\n const target = findScrollParent(this.native) ?? this.native.ownerDocument.documentElement;\n const bar = () => this.native.querySelector<HTMLElement>(':scope > [data-part=\"footer\"]');\n const publish = () => {\n const height = this.resolvedScroll() === 'self' ? 0 : (bar()?.offsetHeight ?? 0);\n target.style.setProperty(STICKY_BOTTOM_PROPERTY, `${height}px`);\n };\n const observer = new ResizeObserver(publish);\n observer.observe(this.native);\n const footer = bar();\n if (footer !== null) observer.observe(footer);\n publish();\n destroyRef.onDestroy(() => {\n observer.disconnect();\n target.style.removeProperty(STICKY_BOTTOM_PROPERTY);\n });\n });\n }\n}\n\n/**\n * The padded column: one container at the page's width and inset, and one\n * outline step deeper than the header — `slHeadingLevel` is a host directive,\n * so a section written directly in the body takes `h2`.\n */\n@Component({\n selector: '[slPageBody]',\n standalone: true,\n exportAs: 'slPageBody',\n imports: [SlContainer],\n hostDirectives: [SlHeadingLevel],\n template: `<div slContainer [size]=\"page?.resolvedWidth()\" [inset]=\"page?.resolvedInset()\">\n <ng-content />\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'body',\n '[attr.aria-busy]': \"page?.loading() ? 'true' : null\",\n },\n})\nexport class SlPageBody {\n protected readonly page = inject(SlPage, { optional: true });\n}\n\n/**\n * The bar for the actions that finish the task. In the flow and never fixed:\n * it takes its own height, so the last line of content scrolls up to it\n * rather than under it. `open` keeps the element through its exit, so the bar\n * slides out rather than vanishing; the status reaches the DOM for the\n * stylesheet to transition on.\n */\n@Component({\n selector: '[slPageFooter]',\n standalone: true,\n exportAs: 'slPageFooter',\n imports: [SlContainer],\n template: `<div slContainer [size]=\"page?.resolvedWidth()\" [inset]=\"page?.resolvedInset()\">\n <div data-part=\"actions\"><ng-content /></div>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'footer',\n '[attr.aria-label]': 'label()',\n '[attr.data-status]': 'status()',\n '[attr.hidden]': \"status() === 'unmounted' ? '' : null\",\n },\n})\nexport class SlPageFooter {\n /** Whether the bar is shown. `false` slides it out and hides it once it has left. */\n readonly open = input(true, { transform: booleanAttribute });\n\n protected readonly page = inject(SlPage, { optional: true });\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n protected readonly status = signal<PresenceStatus>('open');\n /** A footer outside a page still speaks the language in force. */\n private readonly own = injectMessages(pageMessages);\n\n protected readonly label = computed(\n () => this.written ?? (this.page === null ? this.own('footer') : this.page.t('footer')),\n );\n\n constructor() {\n const presence = createPresence({\n present: this.open(),\n skipInitialAnimation: true,\n onStatusChange: (next) => this.status.set(next),\n });\n presence.setNode(this.native);\n effect(() => presence.sync(this.open()));\n inject(DestroyRef).onDestroy(() => presence.destroy());\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-page.mjs","sources":["../../page/src/page-defaults.ts","../../page/src/page.ts","../../page/src/slotted-angular-page.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/** The width of the content column: the container's own sizes. */\nexport type PageWidth = 'measure' | 'content' | 'wide' | 'full' | 'bleed';\n\n/** The inset of the content column from the edge of the page: the container's own steps. */\nexport type PageInset = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/**\n * Who scrolls. `ancestor` puts the page inside whatever scrolls and makes it\n * at least as tall as that, so the footer has a bottom to stick to. `self`\n * makes the page's own scroll part the scroller, with the footer below it.\n */\nexport type PageScroll = 'ancestor' | 'self';\n\n/** The ground: the sunken canvas of an application, or the plain surface of a document. */\nexport type PageGround = 'sunken' | 'surface';\n\n/** Whether the root is the document's `main` landmark. */\nexport type PageLandmark = 'main' | 'none';\n\nexport interface PageDefaults {\n ground: PageGround;\n inset: PageInset;\n landmark: PageLandmark;\n scroll: PageScroll;\n width: PageWidth;\n}\n\nconst FALLBACK: PageDefaults = {\n ground: 'sunken',\n inset: 6,\n landmark: 'main',\n scroll: 'ancestor',\n width: 'wide',\n};\n\nexport const PAGE_DEFAULTS = new InjectionToken<PageDefaults>('slotted page defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its pages are laid out — the measure, the\n * inset, who scrolls, the ground — rather than repeating the same inputs on\n * every route. A page that states any of them itself still wins. Its words\n * come from the language in force (`provideSlotted`).\n */\nexport function providePageDefaults(defaults: Partial<PageDefaults>) {\n return {\n provide: PAGE_DEFAULTS,\n useFactory: (): PageDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a page renders as here, before it states anything of its own. */\nexport function injectPageDefaults(): PageDefaults {\n return inject(PAGE_DEFAULTS);\n}\n","import { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { findScrollParent } from '@slotted/core/sticky-header';\nimport { SlContainer } from '@slotted/angular/container';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlHeadingLevel } from '@slotted/angular/typography';\nimport { pageMessages, type PageMessages, type PartialMessages } from '@slotted/core/i18n';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n isDevMode,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectPageDefaults } from './page-defaults';\nimport type { PageGround, PageInset, PageLandmark, PageScroll, PageWidth } from './page-defaults';\n\nexport type {\n PageDefaults,\n PageGround,\n PageInset,\n PageLandmark,\n PageScroll,\n PageWidth,\n} from './page-defaults';\n\n/** The custom property the scroller carries for what sticks above the footer. */\nexport const STICKY_BOTTOM_PROPERTY = '--slotted-page-sticky-bottom';\n\n/**\n * The inset lives on the body, so content written straight into the page is\n * drawn against the viewport's edges and nothing else says why. A header is\n * not that content — it carries its own inset — so it is the one child the\n * check passes over.\n */\nfunction warnWithoutBody(root: HTMLElement) {\n const scroll = root.querySelector(':scope > [data-part=\"scroll\"]');\n if (scroll === null) return;\n const content = [...scroll.children].filter(\n (child) => child.getAttribute('data-ui') !== 'page-header',\n );\n if (content.length === 0) return;\n if (content.some((child) => child.getAttribute('data-part') === 'body')) return;\n console.warn(\n 'slPage has content outside slPageBody. Content outside the body receives no inset: wrap it in an element carrying slPageBody.',\n );\n}\n\n/**\n * The column of a screen: who scrolls, how wide the content is, where the\n * footer stays, how much air the body has.\n *\n * **The header is a direct child of what scrolls.** There is no header part: a\n * `sticky` element never leaves the box that contains it, so a wrapper exactly\n * the header's height would pin nothing. The element carrying `slPageHeader`\n * is projected first into the scroll part, beside the body.\n *\n * **The footer is projected outside the scroll part** — below the scroller\n * under `self`, stuck to the bottom of the root under `ancestor` — which is\n * what content projection is for. It keeps its box through its exit on\n * `open`, so the bar slides out rather than vanishing.\n *\n * **The element is the consumer's.** `<main slPage>` is the main landmark and\n * the directive adds nothing; `<div slPage>` gets `role=\"main\"` unless\n * `landmark=\"none\"` says the document already has one.\n */\n@Component({\n selector: '[slPage]',\n standalone: true,\n exportAs: 'slPage',\n template: `<div data-part=\"scroll\" data-part-scroll=\"\">\n <ng-content select=\"[slPageHeader]\" />\n <ng-content />\n </div>\n <ng-content select=\"[slPageFooter]\" />`,\n styleUrl: '../../../styles/src/page/page.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'page',\n 'data-ui-page': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.role]': 'role()',\n '[attr.data-width]': 'resolvedWidth()',\n '[attr.data-scroll]': 'resolvedScroll()',\n '[attr.data-ground]': 'resolvedGround()',\n '[attr.data-fill]': \"fill() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n },\n})\nexport class SlPage {\n /** Defaults to the provider, then `wide`. */\n readonly width = input<PageWidth | undefined>(undefined);\n /** Defaults to the provider, then `6`. */\n readonly inset = input<PageInset | undefined>(undefined);\n /** Defaults to the provider, then `ancestor`. */\n readonly scroll = input<PageScroll | undefined>(undefined);\n /** Defaults to the provider, then `sunken`. */\n readonly ground = input<PageGround | undefined>(undefined);\n /** Defaults to the provider, then `main`. */\n readonly landmark = input<PageLandmark | undefined>(undefined);\n /**\n * Fills the height it was given: the body stops growing with its content and\n * the container inside it stretches to what is left. With `scroll=\"self\"`\n * nothing then scrolls outside the body, so the body's principal scroller —\n * not a form control, and at least half the body's height — is what\n * collapses the header: past 16 pixels down it snaps the area shut, and back\n * at its top it opens it again. From 600 pixels of the page's width up;\n * below it the page scrolls as it does without `fill`.\n */\n readonly fill = input(false, { transform: booleanAttribute });\n /** The body carries `aria-busy`; what stands in for the content is each family's own placeholder. */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force: the footer's\n * accessible name (`footer`). A static `aria-label` on the footer still wins.\n */\n readonly messages = input<PartialMessages<PageMessages> | undefined>(undefined);\n\n private readonly defaults = injectPageDefaults();\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n readonly resolvedWidth = computed(() => this.width() ?? this.defaults.width);\n readonly resolvedInset = computed(() => this.inset() ?? this.defaults.inset);\n readonly resolvedScroll = computed(() => this.scroll() ?? this.defaults.scroll);\n readonly resolvedGround = computed(() => this.ground() ?? this.defaults.ground);\n readonly resolvedLandmark = computed(() => this.landmark() ?? this.defaults.landmark);\n /** The family's words in the language in force, with this page's `messages` laid over them. */\n readonly t = injectMessages(pageMessages, this.messages);\n\n /** `role=\"main\"` only where the element is not already `main`, and only when asked. */\n protected readonly role = computed(() => {\n if (this.writtenRole !== null) return this.writtenRole;\n if (this.resolvedLandmark() !== 'main') return null;\n return this.native.tagName === 'MAIN' ? null : 'main';\n });\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n afterNextRender(() => {\n if (isDevMode()) warnWithoutBody(this.native);\n if (typeof ResizeObserver === 'undefined') return;\n const target = findScrollParent(this.native) ?? this.native.ownerDocument.documentElement;\n const bar = () => this.native.querySelector<HTMLElement>(':scope > [data-part=\"footer\"]');\n /* The property inherits, so every write invalidates style for everything\n under the scroller: it is written only when the height changes. */\n const publish = () => {\n const height = this.resolvedScroll() === 'self' ? 0 : (bar()?.offsetHeight ?? 0);\n const value = `${height}px`;\n if (target.style.getPropertyValue(STICKY_BOTTOM_PROPERTY) === value) return;\n target.style.setProperty(STICKY_BOTTOM_PROPERTY, value);\n };\n const observer = new ResizeObserver(publish);\n observer.observe(this.native);\n const footer = bar();\n if (footer !== null) observer.observe(footer);\n publish();\n destroyRef.onDestroy(() => {\n observer.disconnect();\n target.style.removeProperty(STICKY_BOTTOM_PROPERTY);\n });\n });\n }\n}\n\n/**\n * The padded column: one container at the page's width and inset, and one\n * outline step deeper than the header — `slHeadingLevel` is a host directive,\n * so a section written directly in the body takes `h2`.\n */\n@Component({\n selector: '[slPageBody]',\n standalone: true,\n exportAs: 'slPageBody',\n imports: [SlContainer],\n hostDirectives: [SlHeadingLevel],\n template: `<div slContainer [size]=\"page?.resolvedWidth()\" [inset]=\"page?.resolvedInset()\">\n <ng-content />\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'body',\n 'data-part-body': '',\n '[attr.aria-busy]': \"page?.loading() ? 'true' : null\",\n },\n})\nexport class SlPageBody {\n protected readonly page = inject(SlPage, { optional: true });\n}\n\n/**\n * The bar for the actions that finish the task. In the flow and never fixed:\n * it takes its own height, so the last line of content scrolls up to it\n * rather than under it. `open` keeps the element through its exit, so the bar\n * slides out rather than vanishing; the status reaches the DOM for the\n * stylesheet to transition on.\n */\n@Component({\n selector: '[slPageFooter]',\n standalone: true,\n exportAs: 'slPageFooter',\n imports: [SlContainer],\n template: `<div slContainer [size]=\"page?.resolvedWidth()\" [inset]=\"page?.resolvedInset()\">\n <div data-part=\"actions\" data-part-actions=\"\"><ng-content /></div>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'footer',\n 'data-part-footer': '',\n '[attr.aria-label]': 'label()',\n '[attr.data-status]': 'status()',\n '[attr.hidden]': \"status() === 'unmounted' ? '' : null\",\n },\n})\nexport class SlPageFooter {\n /** Whether the bar is shown. `false` slides it out and hides it once it has left. */\n readonly open = input(true, { transform: booleanAttribute });\n\n protected readonly page = inject(SlPage, { optional: true });\n private readonly written = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n protected readonly status = signal<PresenceStatus>('open');\n /** A footer outside a page still speaks the language in force. */\n private readonly own = injectMessages(pageMessages);\n\n protected readonly label = computed(\n () => this.written ?? (this.page === null ? this.own('footer') : this.page.t('footer')),\n );\n\n constructor() {\n const presence = createPresence({\n present: this.open(),\n skipInitialAnimation: true,\n onStatusChange: (next) => this.status.set(next),\n });\n presence.setNode(this.native);\n effect(() => presence.sync(this.open()));\n inject(DestroyRef).onDestroy(() => presence.destroy());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}