@slotted/angular 0.1.0-beta.0 → 0.1.0-beta.10

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 (588) hide show
  1. package/README.md +4 -0
  2. package/docs/AGENTS.snippet.md +12 -0
  3. package/docs/alert.json +7 -1
  4. package/docs/alert.md +3 -3
  5. package/docs/app-shell.examples.md +1 -1
  6. package/docs/app-shell.json +5 -5
  7. package/docs/app-shell.md +2 -2
  8. package/docs/avatar.json +22 -1
  9. package/docs/avatar.md +5 -3
  10. package/docs/badge.json +7 -1
  11. package/docs/badge.md +3 -3
  12. package/docs/button-group.json +2 -0
  13. package/docs/button-group.md +1 -1
  14. package/docs/button.json +51 -11
  15. package/docs/button.md +10 -6
  16. package/docs/calendar.json +8 -1
  17. package/docs/calendar.md +1 -0
  18. package/docs/cascader.json +1 -0
  19. package/docs/cascader.md +1 -1
  20. package/docs/chart.examples.md +1 -1
  21. package/docs/chart.json +10 -1
  22. package/docs/chart.md +3 -2
  23. package/docs/checkbox.json +7 -0
  24. package/docs/checkbox.md +1 -0
  25. package/docs/code-block.json +92 -92
  26. package/docs/code-block.md +69 -69
  27. package/docs/combobox.json +1 -0
  28. package/docs/combobox.md +1 -1
  29. package/docs/currency-field.json +40 -1
  30. package/docs/currency-field.md +5 -1
  31. package/docs/data-grid.examples.md +2 -2
  32. package/docs/data-grid.json +24 -7
  33. package/docs/data-grid.md +1 -1
  34. package/docs/data-grid.props.md +6 -4
  35. package/docs/data-list.json +2 -1
  36. package/docs/data-list.md +1 -1
  37. package/docs/date-field.json +9 -1
  38. package/docs/date-field.md +3 -2
  39. package/docs/date-picker.examples.md +36 -0
  40. package/docs/date-picker.json +20 -5
  41. package/docs/date-picker.md +5 -4
  42. package/docs/datetime-field.json +1 -0
  43. package/docs/datetime-field.md +1 -1
  44. package/docs/dialog.examples.md +158 -136
  45. package/docs/dialog.json +35 -11
  46. package/docs/dialog.md +4 -2
  47. package/docs/dialog.props.md +1 -1
  48. package/docs/drawer.json +5 -0
  49. package/docs/drawer.md +1 -0
  50. package/docs/entity-picker.json +19 -4
  51. package/docs/entity-picker.md +8 -6
  52. package/docs/event-calendar.json +7 -0
  53. package/docs/event-calendar.md +1 -0
  54. package/docs/filter-bar.json +118 -118
  55. package/docs/filter-bar.md +79 -79
  56. package/docs/form.json +2 -1
  57. package/docs/form.md +1 -1
  58. package/docs/guidelines/README.md +27 -0
  59. package/docs/guidelines/async-feedback.md +129 -0
  60. package/docs/guidelines/browsing.md +74 -0
  61. package/docs/guidelines/builders.md +97 -0
  62. package/docs/guidelines/composition.md +143 -0
  63. package/docs/guidelines/conversations.md +59 -0
  64. package/docs/guidelines/errors-and-conflicts.md +71 -0
  65. package/docs/guidelines/forms.md +202 -0
  66. package/docs/guidelines/index.md +129 -0
  67. package/docs/guidelines/layout-alignment.md +95 -0
  68. package/docs/guidelines/ledgers.md +45 -0
  69. package/docs/guidelines/list-pages.md +206 -0
  70. package/docs/guidelines/overviews.md +76 -0
  71. package/docs/guidelines/own-elements.md +115 -0
  72. package/docs/guidelines/reading-permissions.md +55 -0
  73. package/docs/guidelines/record-pages.md +178 -0
  74. package/docs/guidelines/reports.md +123 -0
  75. package/docs/guidelines/shell-composition.md +94 -0
  76. package/docs/guidelines/workspaces.md +46 -0
  77. package/docs/icon.json +3 -1
  78. package/docs/icon.md +3 -3
  79. package/docs/index.md +12 -0
  80. package/docs/inline-message.json +14 -2
  81. package/docs/inline-message.md +4 -3
  82. package/docs/list-item.json +9 -1
  83. package/docs/list-item.md +3 -3
  84. package/docs/list.json +19 -1
  85. package/docs/list.md +3 -1
  86. package/docs/markdown.json +79 -79
  87. package/docs/markdown.md +65 -65
  88. package/docs/menu.json +12 -0
  89. package/docs/menu.md +2 -0
  90. package/docs/message.json +7 -1
  91. package/docs/message.md +3 -3
  92. package/docs/multi-select.json +1 -0
  93. package/docs/multi-select.md +1 -1
  94. package/docs/notification-center.json +4 -0
  95. package/docs/notification-center.md +2 -2
  96. package/docs/number-field.json +1 -0
  97. package/docs/number-field.md +1 -1
  98. package/docs/otp-input.json +1 -0
  99. package/docs/otp-input.md +1 -1
  100. package/docs/page-header.json +4 -3
  101. package/docs/page-header.md +2 -2
  102. package/docs/page.json +1 -0
  103. package/docs/page.md +1 -0
  104. package/docs/popover.json +1 -1
  105. package/docs/progress-indicator.json +4 -3
  106. package/docs/progress-indicator.md +4 -4
  107. package/docs/prompt-composer.json +41 -1
  108. package/docs/prompt-composer.md +5 -1
  109. package/docs/rating.json +5 -3
  110. package/docs/rating.md +5 -5
  111. package/docs/section.json +27 -15
  112. package/docs/section.md +11 -9
  113. package/docs/segmented-control.json +36 -12
  114. package/docs/segmented-control.md +17 -1
  115. package/docs/select.json +1 -0
  116. package/docs/select.md +1 -1
  117. package/docs/side-navigation.json +1 -0
  118. package/docs/side-navigation.md +1 -1
  119. package/docs/skills/build-own-element/SKILL.md +90 -0
  120. package/docs/skills/compose-screen/SKILL.md +95 -0
  121. package/docs/skills/index.md +9 -0
  122. package/docs/skills/review-screen/SKILL.md +77 -0
  123. package/docs/skills/theme-app/SKILL.md +87 -0
  124. package/docs/skills/waiting-states/SKILL.md +143 -0
  125. package/docs/sparkline.json +5 -2
  126. package/docs/sparkline.md +4 -4
  127. package/docs/split-button.json +4 -1
  128. package/docs/split-button.md +3 -3
  129. package/docs/stat-card.json +5 -1
  130. package/docs/stat-card.md +3 -3
  131. package/docs/table.examples.md +3 -3
  132. package/docs/table.json +85 -3
  133. package/docs/table.md +12 -1
  134. package/docs/tabs.json +17 -7
  135. package/docs/tabs.md +3 -2
  136. package/docs/tag.json +14 -4
  137. package/docs/tag.md +6 -6
  138. package/docs/tags-input.json +29 -2
  139. package/docs/tags-input.md +4 -1
  140. package/docs/text-field.json +2 -1
  141. package/docs/text-field.md +2 -2
  142. package/docs/textarea.json +1 -0
  143. package/docs/textarea.md +1 -1
  144. package/docs/time-field.json +1 -0
  145. package/docs/time-field.md +1 -1
  146. package/docs/timeline.json +138 -132
  147. package/docs/timeline.md +125 -125
  148. package/docs/toast.json +7 -1
  149. package/docs/toast.md +3 -3
  150. package/docs/toggle-group.json +14 -3
  151. package/docs/toggle-group.md +3 -3
  152. package/docs/toggle.json +12 -3
  153. package/docs/toggle.md +3 -3
  154. package/docs/tokens.md +467 -0
  155. package/docs/tour.json +1 -1
  156. package/docs/typography.json +4 -2
  157. package/docs/typography.md +4 -4
  158. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  159. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  160. package/fesm2022/slotted-angular-action-bar.mjs +22 -11
  161. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  162. package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
  163. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  164. package/fesm2022/slotted-angular-alert.mjs +18 -11
  165. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  166. package/fesm2022/slotted-angular-app-shell.mjs +111 -61
  167. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  168. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  169. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  170. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  171. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  172. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  173. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  174. package/fesm2022/slotted-angular-avatar.mjs +14 -7
  175. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  176. package/fesm2022/slotted-angular-badge.mjs +14 -10
  177. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  178. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  179. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  180. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  181. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  182. package/fesm2022/slotted-angular-button.mjs +90 -29
  183. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  184. package/fesm2022/slotted-angular-calendar.mjs +235 -58
  185. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  186. package/fesm2022/slotted-angular-card.mjs +18 -16
  187. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  188. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  189. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  190. package/fesm2022/slotted-angular-cascader.mjs +166 -66
  191. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  192. package/fesm2022/slotted-angular-chart.mjs +53 -20
  193. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  194. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  195. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  196. package/fesm2022/slotted-angular-checkbox.mjs +23 -9
  197. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  198. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  199. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  200. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  201. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  202. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  203. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  204. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  205. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  206. package/fesm2022/slotted-angular-combobox.mjs +112 -39
  207. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  208. package/fesm2022/slotted-angular-command-palette.mjs +150 -54
  209. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  210. package/fesm2022/slotted-angular-container.mjs +6 -4
  211. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  212. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  213. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  214. package/fesm2022/slotted-angular-currency-field.mjs +149 -32
  215. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  216. package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
  217. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  218. package/fesm2022/slotted-angular-data-grid.mjs +354 -113
  219. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  220. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  221. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  222. package/fesm2022/slotted-angular-date-field.mjs +74 -25
  223. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  224. package/fesm2022/slotted-angular-date-picker.mjs +112 -40
  225. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  226. package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
  227. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  228. package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
  229. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  230. package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
  231. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  232. package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
  233. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  234. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  235. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  236. package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
  237. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  238. package/fesm2022/slotted-angular-dialog.mjs +72 -30
  239. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  240. package/fesm2022/slotted-angular-divider.mjs +7 -5
  241. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  242. package/fesm2022/slotted-angular-drawer.mjs +53 -29
  243. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  244. package/fesm2022/slotted-angular-entity-picker.mjs +468 -75
  245. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  246. package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
  247. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  248. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  249. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  250. package/fesm2022/slotted-angular-field.mjs +35 -15
  251. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  252. package/fesm2022/slotted-angular-filter-bar.mjs +112 -51
  253. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  254. package/fesm2022/slotted-angular-form.mjs +18 -10
  255. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  256. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  257. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  258. package/fesm2022/slotted-angular-grid.mjs +4 -2
  259. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  260. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  261. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  262. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  263. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  264. package/fesm2022/slotted-angular-icon.mjs +6 -3
  265. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  266. package/fesm2022/slotted-angular-image.mjs +13 -10
  267. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  268. package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
  269. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  270. package/fesm2022/slotted-angular-inline-message.mjs +88 -13
  271. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  272. package/fesm2022/slotted-angular-inline.mjs +4 -2
  273. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  274. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  275. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  276. package/fesm2022/slotted-angular-link.mjs +5 -3
  277. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  278. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  279. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  280. package/fesm2022/slotted-angular-list.mjs +37 -22
  281. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  282. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  283. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  284. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  285. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  286. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  287. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  288. package/fesm2022/slotted-angular-menu.mjs +51 -29
  289. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  290. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  291. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  292. package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
  293. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  294. package/fesm2022/slotted-angular-message.mjs +113 -51
  295. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  296. package/fesm2022/slotted-angular-multi-select.mjs +189 -87
  297. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  298. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  299. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  300. package/fesm2022/slotted-angular-notification-center.mjs +108 -65
  301. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  302. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  303. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  304. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  305. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  306. package/fesm2022/slotted-angular-page-header.mjs +75 -45
  307. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  308. package/fesm2022/slotted-angular-page.mjs +38 -10
  309. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  310. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  311. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  312. package/fesm2022/slotted-angular-popover.mjs +32 -19
  313. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  314. package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
  315. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  316. package/fesm2022/slotted-angular-prompt-composer.mjs +41 -20
  317. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  318. package/fesm2022/slotted-angular-prose.mjs +14 -11
  319. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  320. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  321. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  322. package/fesm2022/slotted-angular-rating.mjs +138 -82
  323. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  324. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  325. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  326. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  327. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  328. package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
  329. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  330. package/fesm2022/slotted-angular-section.mjs +53 -18
  331. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  332. package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
  333. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  334. package/fesm2022/slotted-angular-select.mjs +184 -94
  335. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  336. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  337. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  338. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  339. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  340. package/fesm2022/slotted-angular-slider.mjs +31 -11
  341. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  342. package/fesm2022/slotted-angular-sparkline.mjs +41 -14
  343. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  344. package/fesm2022/slotted-angular-split-button.mjs +25 -11
  345. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  346. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  347. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  348. package/fesm2022/slotted-angular-stack.mjs +4 -2
  349. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  350. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  351. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  352. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  353. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  354. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  355. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  356. package/fesm2022/slotted-angular-switch.mjs +15 -10
  357. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  358. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  359. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  360. package/fesm2022/slotted-angular-table.mjs +243 -73
  361. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  362. package/fesm2022/slotted-angular-tabs.mjs +42 -18
  363. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  364. package/fesm2022/slotted-angular-tag.mjs +19 -12
  365. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  366. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  367. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  368. package/fesm2022/slotted-angular-text-field.mjs +49 -15
  369. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  370. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  371. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  372. package/fesm2022/slotted-angular-time-field.mjs +48 -14
  373. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  374. package/fesm2022/slotted-angular-time-picker.mjs +32 -20
  375. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  376. package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
  377. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  378. package/fesm2022/slotted-angular-timeline.mjs +135 -64
  379. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  380. package/fesm2022/slotted-angular-toast.mjs +43 -31
  381. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  382. package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
  383. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  384. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  385. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  386. package/fesm2022/slotted-angular-toolbar.mjs +22 -11
  387. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  388. package/fesm2022/slotted-angular-tooltip.mjs +15 -6
  389. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  390. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  391. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  392. package/fesm2022/slotted-angular-tour.mjs +47 -22
  393. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  394. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  395. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  396. package/fesm2022/slotted-angular-tree.mjs +74 -26
  397. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  398. package/fesm2022/slotted-angular-typography.mjs +8 -4
  399. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  400. package/fesm2022/slotted-angular-upload.mjs +125 -57
  401. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  402. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  403. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  404. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  405. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  406. package/package.json +3 -3
  407. package/types/slotted-angular-accordion.d.ts.map +1 -1
  408. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  409. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  410. package/types/slotted-angular-alert.d.ts +2 -2
  411. package/types/slotted-angular-alert.d.ts.map +1 -1
  412. package/types/slotted-angular-app-shell.d.ts +11 -3
  413. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  414. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  415. package/types/slotted-angular-attachment.d.ts +1 -1
  416. package/types/slotted-angular-attachment.d.ts.map +1 -1
  417. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  418. package/types/slotted-angular-avatar.d.ts +11 -3
  419. package/types/slotted-angular-avatar.d.ts.map +1 -1
  420. package/types/slotted-angular-badge.d.ts +1 -1
  421. package/types/slotted-angular-badge.d.ts.map +1 -1
  422. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  423. package/types/slotted-angular-button-group.d.ts +1 -1
  424. package/types/slotted-angular-button-group.d.ts.map +1 -1
  425. package/types/slotted-angular-button.d.ts +33 -13
  426. package/types/slotted-angular-button.d.ts.map +1 -1
  427. package/types/slotted-angular-calendar.d.ts +30 -2
  428. package/types/slotted-angular-calendar.d.ts.map +1 -1
  429. package/types/slotted-angular-card.d.ts.map +1 -1
  430. package/types/slotted-angular-carousel.d.ts.map +1 -1
  431. package/types/slotted-angular-cascader.d.ts.map +1 -1
  432. package/types/slotted-angular-chart.d.ts +10 -0
  433. package/types/slotted-angular-chart.d.ts.map +1 -1
  434. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  435. package/types/slotted-angular-checkbox.d.ts +7 -1
  436. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  437. package/types/slotted-angular-code-block.d.ts +1 -1
  438. package/types/slotted-angular-code-block.d.ts.map +1 -1
  439. package/types/slotted-angular-collapsible.d.ts +1 -1
  440. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  441. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  442. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  443. package/types/slotted-angular-combobox.d.ts +5 -1
  444. package/types/slotted-angular-combobox.d.ts.map +1 -1
  445. package/types/slotted-angular-command-palette.d.ts +10 -1
  446. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  447. package/types/slotted-angular-container.d.ts.map +1 -1
  448. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  449. package/types/slotted-angular-currency-field.d.ts +63 -15
  450. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  451. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  452. package/types/slotted-angular-data-grid.d.ts +49 -4
  453. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  454. package/types/slotted-angular-data-list.d.ts.map +1 -1
  455. package/types/slotted-angular-date-field.d.ts +11 -1
  456. package/types/slotted-angular-date-field.d.ts.map +1 -1
  457. package/types/slotted-angular-date-picker.d.ts +38 -12
  458. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  459. package/types/slotted-angular-date-range-picker.d.ts +0 -1
  460. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  461. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  462. package/types/slotted-angular-datetime-picker.d.ts +0 -1
  463. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  464. package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
  465. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  466. package/types/slotted-angular-description-list.d.ts.map +1 -1
  467. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  468. package/types/slotted-angular-dialog.d.ts +10 -3
  469. package/types/slotted-angular-dialog.d.ts.map +1 -1
  470. package/types/slotted-angular-divider.d.ts.map +1 -1
  471. package/types/slotted-angular-drawer.d.ts +7 -1
  472. package/types/slotted-angular-drawer.d.ts.map +1 -1
  473. package/types/slotted-angular-entity-picker.d.ts +63 -15
  474. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  475. package/types/slotted-angular-event-calendar.d.ts +9 -2
  476. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  477. package/types/slotted-angular-field-group.d.ts.map +1 -1
  478. package/types/slotted-angular-field.d.ts.map +1 -1
  479. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  480. package/types/slotted-angular-form.d.ts.map +1 -1
  481. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  482. package/types/slotted-angular-grid.d.ts.map +1 -1
  483. package/types/slotted-angular-highlight.d.ts.map +1 -1
  484. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  485. package/types/slotted-angular-icon.d.ts +2 -2
  486. package/types/slotted-angular-icon.d.ts.map +1 -1
  487. package/types/slotted-angular-image.d.ts.map +1 -1
  488. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  489. package/types/slotted-angular-inline-message.d.ts +25 -25
  490. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  491. package/types/slotted-angular-inline.d.ts.map +1 -1
  492. package/types/slotted-angular-kbd.d.ts.map +1 -1
  493. package/types/slotted-angular-link.d.ts.map +1 -1
  494. package/types/slotted-angular-list-item.d.ts +1 -1
  495. package/types/slotted-angular-list-item.d.ts.map +1 -1
  496. package/types/slotted-angular-list.d.ts +42 -27
  497. package/types/slotted-angular-list.d.ts.map +1 -1
  498. package/types/slotted-angular-listbox.d.ts.map +1 -1
  499. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  500. package/types/slotted-angular-markdown.d.ts.map +1 -1
  501. package/types/slotted-angular-menu.d.ts +11 -2
  502. package/types/slotted-angular-menu.d.ts.map +1 -1
  503. package/types/slotted-angular-menubar.d.ts.map +1 -1
  504. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  505. package/types/slotted-angular-message.d.ts +1 -1
  506. package/types/slotted-angular-message.d.ts.map +1 -1
  507. package/types/slotted-angular-multi-select.d.ts +15 -1
  508. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  509. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  510. package/types/slotted-angular-notification-center.d.ts +1 -1
  511. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  512. package/types/slotted-angular-number-field.d.ts.map +1 -1
  513. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  514. package/types/slotted-angular-page-header.d.ts +4 -4
  515. package/types/slotted-angular-page-header.d.ts.map +1 -1
  516. package/types/slotted-angular-page.d.ts.map +1 -1
  517. package/types/slotted-angular-pagination.d.ts.map +1 -1
  518. package/types/slotted-angular-popover.d.ts.map +1 -1
  519. package/types/slotted-angular-progress-indicator.d.ts +8 -1
  520. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  521. package/types/slotted-angular-prompt-composer.d.ts +11 -2
  522. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  523. package/types/slotted-angular-prose.d.ts.map +1 -1
  524. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  525. package/types/slotted-angular-rating.d.ts +1 -1
  526. package/types/slotted-angular-rating.d.ts.map +1 -1
  527. package/types/slotted-angular-result-state.d.ts.map +1 -1
  528. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  529. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  530. package/types/slotted-angular-section.d.ts +11 -3
  531. package/types/slotted-angular-section.d.ts.map +1 -1
  532. package/types/slotted-angular-segmented-control.d.ts +15 -2
  533. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  534. package/types/slotted-angular-select.d.ts +12 -2
  535. package/types/slotted-angular-select.d.ts.map +1 -1
  536. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  537. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  538. package/types/slotted-angular-slider.d.ts.map +1 -1
  539. package/types/slotted-angular-sparkline.d.ts +7 -1
  540. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  541. package/types/slotted-angular-split-button.d.ts +2 -2
  542. package/types/slotted-angular-split-button.d.ts.map +1 -1
  543. package/types/slotted-angular-splitter.d.ts.map +1 -1
  544. package/types/slotted-angular-stack.d.ts.map +1 -1
  545. package/types/slotted-angular-stat-card.d.ts +1 -1
  546. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  547. package/types/slotted-angular-status-indicator.d.ts +1 -1
  548. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  549. package/types/slotted-angular-stepper.d.ts +1 -1
  550. package/types/slotted-angular-stepper.d.ts.map +1 -1
  551. package/types/slotted-angular-switch.d.ts.map +1 -1
  552. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  553. package/types/slotted-angular-table.d.ts +63 -6
  554. package/types/slotted-angular-table.d.ts.map +1 -1
  555. package/types/slotted-angular-tabs.d.ts +3 -4
  556. package/types/slotted-angular-tabs.d.ts.map +1 -1
  557. package/types/slotted-angular-tag.d.ts +1 -1
  558. package/types/slotted-angular-tag.d.ts.map +1 -1
  559. package/types/slotted-angular-tags-input.d.ts +33 -1
  560. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  561. package/types/slotted-angular-text-field.d.ts.map +1 -1
  562. package/types/slotted-angular-textarea.d.ts.map +1 -1
  563. package/types/slotted-angular-theme.d.ts +1 -1
  564. package/types/slotted-angular-time-field.d.ts.map +1 -1
  565. package/types/slotted-angular-time-picker.d.ts +0 -1
  566. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  567. package/types/slotted-angular-time-range-picker.d.ts +0 -1
  568. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  569. package/types/slotted-angular-timeline.d.ts +1 -1
  570. package/types/slotted-angular-timeline.d.ts.map +1 -1
  571. package/types/slotted-angular-toast.d.ts +3 -3
  572. package/types/slotted-angular-toast.d.ts.map +1 -1
  573. package/types/slotted-angular-toggle-group.d.ts +8 -2
  574. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  575. package/types/slotted-angular-toggle.d.ts +1 -1
  576. package/types/slotted-angular-toggle.d.ts.map +1 -1
  577. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  578. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  579. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  580. package/types/slotted-angular-tour.d.ts.map +1 -1
  581. package/types/slotted-angular-transfer.d.ts.map +1 -1
  582. package/types/slotted-angular-tree.d.ts.map +1 -1
  583. package/types/slotted-angular-typography.d.ts +1 -1
  584. package/types/slotted-angular-typography.d.ts.map +1 -1
  585. package/types/slotted-angular-upload.d.ts +2 -2
  586. package/types/slotted-angular-upload.d.ts.map +1 -1
  587. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  588. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-timeline.mjs","sources":["../../timeline/src/timeline.constants.ts","../../timeline/src/timeline.ts","../../timeline/src/slotted-angular-timeline.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type {\n TimelineConnector,\n TimelineGrowing,\n TimelineOrder,\n TimelinePlacement,\n TimelineSide,\n TimelineTimeFormat,\n TimestampValue,\n} from '@slotted/core/timeline';\n\nexport type TimelineMode = 'list' | 'feed';\nexport type TimelineOrientation = 'vertical' | 'horizontal';\nexport type TimelineVariant = 'solid' | 'outline' | 'subtle' | 'plain';\nexport type TimelineTone = 'secondary' | 'accent' | 'success' | 'warning' | 'danger';\nexport type TimelineSize = 'sm' | 'md' | 'lg';\nexport type TimelineLevel = 2 | 3 | 4 | 5 | 6;\nexport type TimelineOpenReason = 'pointer' | 'keyboard' | 'programmatic';\nexport type TimelineLoadMoreReason = 'pointer' | 'keyboard' | 'scroll';\nexport type TimelineRevealReason = 'pointer' | 'keyboard';\nexport type {\n TimelineConnector,\n TimelineGrowing,\n TimelineOrder,\n TimelinePlacement,\n TimelineSide,\n TimelineTimeFormat,\n TimestampValue,\n};\n\nexport const TIMELINE_DEFAULT_MODE: TimelineMode = 'list';\nexport const TIMELINE_DEFAULT_ORIENTATION: TimelineOrientation = 'vertical';\nexport const TIMELINE_DEFAULT_PLACEMENT: TimelinePlacement = 'end';\nexport const TIMELINE_DEFAULT_ORDER: TimelineOrder = 'oldest-first';\nexport const TIMELINE_DEFAULT_VARIANT: TimelineVariant = 'subtle';\nexport const TIMELINE_DEFAULT_TONE: TimelineTone = 'secondary';\nexport const TIMELINE_DEFAULT_SIZE: TimelineSize = 'md';\nexport const TIMELINE_DEFAULT_GROWING: TimelineGrowing = 'none';\nexport const TIMELINE_DEFAULT_TIME_FORMAT: TimelineTimeFormat = 'absolute';\nexport const TIMELINE_DEFAULT_LEVEL: TimelineLevel = 3;\n\nexport interface TimelineDefaults {\n mode?: TimelineMode;\n orientation?: TimelineOrientation;\n placement?: TimelinePlacement;\n order?: TimelineOrder;\n variant?: TimelineVariant;\n tone?: TimelineTone;\n size?: TimelineSize;\n growing?: TimelineGrowing;\n timeFormat?: TimelineTimeFormat;\n timeZone?: string;\n /** The moment relative readings count from, in epoch milliseconds. */\n now?: number;\n level?: TimelineLevel;\n}\n\nexport const TIMELINE_DEFAULTS_TOKEN = new InjectionToken<TimelineDefaults>(\n 'slotted timeline defaults',\n { providedIn: 'root', factory: (): TimelineDefaults => ({}) },\n);\n\n/**\n * An application decides once which way its timelines run, which side the\n * events take, how a timestamp is written and in which zone, the moment a\n * relative reading counts from. A timeline that states any of those itself\n * still wins: an explicit input is never overridden by the token. Its words\n * and locale come from the language in force (`provideSlotted`).\n */\nexport function provideTimelineDefaults(defaults: TimelineDefaults) {\n return { provide: TIMELINE_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectTimelineDefaults(): TimelineDefaults {\n return inject(TIMELINE_DEFAULTS_TOKEN);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n linkedSignal,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { tabbables } from '@slotted/core/focus';\nimport { timelineMessages, type PartialMessages, type TimelineMessages } from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n connectorOf,\n feedFocusTarget,\n formatTimestamp,\n isComplete,\n revealFocusIndex,\n setSizeOf,\n sideOf,\n} from '@slotted/core/timeline';\nimport type {\n TimelineConnector,\n TimelineGrowing,\n TimelineOrder,\n TimelinePlacement,\n TimelineSide,\n TimelineTimeFormat,\n TimestampValue,\n} from '@slotted/core/timeline';\n\nimport {\n injectTimelineDefaults,\n TIMELINE_DEFAULT_GROWING,\n TIMELINE_DEFAULT_LEVEL,\n TIMELINE_DEFAULT_MODE,\n TIMELINE_DEFAULT_ORDER,\n TIMELINE_DEFAULT_ORIENTATION,\n TIMELINE_DEFAULT_PLACEMENT,\n TIMELINE_DEFAULT_SIZE,\n TIMELINE_DEFAULT_TIME_FORMAT,\n TIMELINE_DEFAULT_TONE,\n TIMELINE_DEFAULT_VARIANT,\n type TimelineLevel,\n type TimelineLoadMoreReason,\n type TimelineMode,\n type TimelineOpenReason,\n type TimelineOrientation,\n type TimelineRevealReason,\n type TimelineSize,\n type TimelineTone,\n type TimelineVariant,\n} from './timeline.constants';\n\nlet counter = 0;\n\n/**\n * An ordered list of events on one line, each with a marker, a machine\n * timestamp and a body — and, in feed mode, the APG Feed pattern drawn the\n * same way.\n *\n * **It is an `ol`, or a feed, and `mode` decides which.** The consumer writes\n * the list element, so the mode says which one: `ol[slTimelineList]` with\n * `li[slTimelineItem]` in list mode, `div[slTimelineList]` with\n * `article[slTimelineItem]` in feed mode — a `li` admits no `article` role.\n * In feed mode the list is `role=\"feed\"`, every article carries its position,\n * the set size and its label, the feed is busy while more is on its way, and\n * `PageDown`, `PageUp`, `Control+End` and `Control+Home` do what the pattern\n * says.\n *\n * **It never reverses the array.** `order` says what the list is, and it is\n * what decides where `autoComplete` cuts.\n *\n * **It holds no events.** Loading more and revealing fresh ones are outputs\n * with a reason and nothing to hold; the consumer owns the array. The one\n * mutable value is whether a group is open, on `slTimelineGroup`.\n */\n@Component({\n selector: '[slTimeline]',\n standalone: true,\n template: `\n @if (heldCount() > 0) {\n <button\n #fresh\n data-part=\"fresh\"\n type=\"button\"\n [hidden]=\"freshCount() <= 0\"\n (click)=\"reveal($event)\"\n >\n {{ t('freshItems', { count: heldCount() }) }}\n </button>\n }\n <ng-content></ng-content>\n @if (growingValue() !== 'none') {\n @if (loading()) {\n <div #more aria-live=\"polite\" data-part=\"more\">\n <span aria-hidden=\"true\" data-part=\"root\" data-ui=\"spinner\"></span>\n {{ t('loading') }}\n </div>\n } @else if (growingValue() === 'button') {\n <button #more data-part=\"more\" type=\"button\" (click)=\"loadMore($event)\">\n {{ t('loadMore') }}\n </button>\n } @else {\n <div #more data-part=\"more\"></div>\n }\n }\n @if (loaded() === 0 && !loading()) {\n <div data-part=\"empty\">\n <ng-content select=\"[slTimelineEmpty]\">{{ t('empty') }}</ng-content>\n </div>\n }\n `,\n styleUrls: [\n '../../../styles/src/timeline/timeline.css',\n '../../../styles/src/spinner/spinner.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slTimeline',\n host: {\n 'data-ui': 'timeline',\n 'data-part': 'root',\n '[attr.data-mode]': 'modeValue()',\n '[attr.data-orientation]': 'orientationValue()',\n '[attr.data-placement]': 'placementValue()',\n '[attr.data-order]': 'orderValue()',\n '[attr.data-variant]': 'variantValue()',\n '[attr.data-tone]': 'toneValue()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-growing]': 'growingValue()',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.data-reflow]': 'reflow() ? null : \"false\"',\n },\n})\nexport class SlTimeline {\n readonly mode = input<TimelineMode | undefined>(undefined);\n readonly orientation = input<TimelineOrientation | undefined>(undefined);\n readonly placement = input<TimelinePlacement | undefined>(undefined);\n readonly order = input<TimelineOrder | undefined>(undefined);\n readonly variant = input<TimelineVariant | undefined>(undefined);\n readonly tone = input<TimelineTone | undefined>(undefined);\n readonly size = input<TimelineSize | undefined>(undefined);\n readonly growing = input<TimelineGrowing | undefined>(undefined);\n readonly timeFormat = input<TimelineTimeFormat | undefined>(undefined);\n /** For the timestamps; defaults to the language in force (`provideSlotted`). */\n readonly locale = input<string | undefined>(undefined);\n readonly timeZone = input<string | undefined>(undefined);\n readonly now = input(undefined, { transform: optionalNumber });\n readonly level = input(undefined, { transform: optionalLevel });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * more control, the waiting line, the fresh pill, the empty line, the\n * current event's mark and a folded group's trigger.\n */\n readonly messages = input<PartialMessages<TimelineMessages> | undefined>(undefined);\n /** The accessible name of the list. */\n readonly label = input<string | undefined>(undefined);\n /** The total number of events, when the application knows it. */\n readonly count = input(undefined, { transform: optionalNumber });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly freshCount = input(0, { transform: numberAttribute });\n readonly autoComplete = input(false, { transform: booleanAttribute });\n readonly reflow = input(true, { transform: booleanAttribute });\n\n /** Asked when the reader presses the more control, or scrolls to it. */\n readonly loadMoreRequest = output<{ reason: TimelineLoadMoreReason; event?: Event }>();\n /** Asked when the reader presses the pill that holds fresh events. */\n readonly revealRequest = output<{ reason: TimelineRevealReason; event?: Event }>();\n\n private readonly defaults = injectTimelineDefaults();\n private readonly destroyRef = inject(DestroyRef);\n private readonly moreElement = viewChild<ElementRef<HTMLElement>>('more');\n private readonly freshElement = viewChild<ElementRef<HTMLButtonElement>>('fresh');\n private readonly host: HTMLElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly injector = inject(Injector);\n private readonly items = signal<readonly SlTimelineItem[]>([]);\n\n readonly id = `slotted-timeline-${(counter += 1)}`;\n\n readonly modeValue = computed(() => this.mode() ?? this.defaults.mode ?? TIMELINE_DEFAULT_MODE);\n readonly orientationValue = computed(\n () => this.orientation() ?? this.defaults.orientation ?? TIMELINE_DEFAULT_ORIENTATION,\n );\n readonly placementValue = computed(\n () => this.placement() ?? this.defaults.placement ?? TIMELINE_DEFAULT_PLACEMENT,\n );\n readonly orderValue = computed(\n () => this.order() ?? this.defaults.order ?? TIMELINE_DEFAULT_ORDER,\n );\n readonly variantValue = computed(\n () => this.variant() ?? this.defaults.variant ?? TIMELINE_DEFAULT_VARIANT,\n );\n readonly toneValue = computed(() => this.tone() ?? this.defaults.tone ?? TIMELINE_DEFAULT_TONE);\n readonly sizeValue = computed(() => this.size() ?? this.defaults.size ?? TIMELINE_DEFAULT_SIZE);\n readonly growingValue = computed(\n () => this.growing() ?? this.defaults.growing ?? TIMELINE_DEFAULT_GROWING,\n );\n readonly timeFormatValue = computed(\n () => this.timeFormat() ?? this.defaults.timeFormat ?? TIMELINE_DEFAULT_TIME_FORMAT,\n );\n private readonly runtimeLocale = injectLocale();\n readonly localeValue = computed(() => this.locale() ?? this.runtimeLocale());\n readonly timeZoneValue = computed(() => this.timeZone() ?? this.defaults.timeZone);\n readonly nowValue = computed(() => this.now() ?? this.defaults.now);\n readonly levelValue = computed(\n () => this.level() ?? this.defaults.level ?? TIMELINE_DEFAULT_LEVEL,\n );\n /** The family's words in the language in force, with this timeline's `messages` laid over them. */\n readonly t = injectMessages(timelineMessages, this.messages);\n readonly feed = computed(() => this.modeValue() === 'feed');\n\n /**\n * The pill's last count, kept past the change that drops it to zero: the\n * pill stays mounted from its first appearance, hidden at zero with the\n * words it had, so it can leave with a transition instead of vanishing.\n */\n readonly heldCount = linkedSignal<number, number>({\n source: this.freshCount,\n computation: (count, previous) => (count > 0 ? count : (previous?.value ?? 0)),\n });\n\n /** How many events the list laid out. */\n readonly loaded = computed(() => this.items().length);\n /** The index of the event marked current, in DOM order, or -1. */\n readonly currentIndex = computed(() => this.items().findIndex((item) => item.current()));\n\n constructor() {\n /** Fresh events are announced once per change of the count, politely. */\n effect(() => {\n const count = this.freshCount();\n if (count <= 0) return;\n getLiveAnnouncer().announce(untracked(() => this.t('freshItems', { count })));\n });\n\n /**\n * A reader who pressed the pill is taken to the first event it revealed,\n * not left on a control that is hiding. Whether focus is on the pill is\n * read now, before the view hides it; the event is focused once the view\n * has rendered what the reveal added.\n */\n let previousFresh = 0;\n effect(() => {\n const count = this.freshCount();\n const revealed = previousFresh;\n previousFresh = count;\n if (count > 0 || revealed <= 0) return;\n const pill = untracked(() => this.freshElement())?.nativeElement;\n if (pill === undefined || !pill.contains(pill.ownerDocument.activeElement)) return;\n afterNextRender({ write: () => this.focusRevealed(revealed) }, { injector: this.injector });\n });\n\n /**\n * `growing=\"scroll\"` asks when the end of the loaded list enters the\n * scrollport. Only where the observer exists: a server, or a test without\n * one, asks for nothing and the consumer who needs a control there\n * declares `button`.\n */\n effect((onCleanup) => {\n const more = this.moreElement()?.nativeElement;\n if (this.growingValue() !== 'scroll' || more === undefined || this.loading()) return;\n if (typeof IntersectionObserver === 'undefined') return;\n const observer = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n this.loadMoreRequest.emit({ reason: 'scroll' });\n }\n });\n observer.observe(more);\n onCleanup(() => observer.disconnect());\n });\n this.destroyRef.onDestroy(() => this.items.set([]));\n }\n\n register(items: readonly SlTimelineItem[]) {\n this.items.set(items);\n }\n\n itemId(index: number, part: string) {\n return `${this.id}-${index}-${part}`;\n }\n\n loadMore(event: Event) {\n const reason: TimelineLoadMoreReason =\n (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n this.loadMoreRequest.emit({ event, reason });\n }\n\n private focusRevealed(revealed: number) {\n const all = [...this.host.querySelectorAll<HTMLElement>('[data-part=\"item\"]')].filter(\n (article) => article.closest('[data-part=\"group-list\"][hidden]') === null,\n );\n const index = revealFocusIndex({ loaded: all.length, revealed, order: this.orderValue() });\n const event = index === null ? undefined : all[index];\n if (event === undefined) return;\n (event.hasAttribute('tabindex') ? event : tabbables(event)[0])?.focus();\n }\n\n reveal(event: Event) {\n const reason: TimelineRevealReason =\n (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n this.revealRequest.emit({ event, reason });\n }\n}\n\n/**\n * Every event that lays out under a list, in DOM order, is indexed by the one\n * list that sees them all; the last event of each list — the root's or a\n * group's — is told so by the list it is a direct child of, because it draws\n * no connector.\n */\nfunction assignLast(items: readonly SlTimelineItem[]) {\n for (const [index, item] of items.entries()) {\n item.last.set(index === items.length - 1);\n }\n}\n\n/**\n * The list: an `ol`, or a `div` that is a feed. It carries the name, the busy\n * state and the feed keys, and it is the one part that sees every event, so\n * it is what numbers them.\n */\n@Directive({\n selector: 'ol[slTimelineList], div[slTimelineList]',\n standalone: true,\n exportAs: 'slTimelineList',\n host: {\n 'data-part': 'list',\n '[attr.id]': 'timeline.id',\n '[attr.role]': 'timeline.feed() ? \"feed\" : null',\n '[attr.aria-label]': 'accessibleLabel()',\n '[attr.aria-busy]': 'timeline.feed() && timeline.loading() ? \"true\" : null',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SlTimelineList {\n readonly timeline = inject(SlTimeline);\n private readonly element: HTMLElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly ownLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n private readonly all = contentChildren<SlTimelineItem>(\n forwardRef(() => SlTimelineItem),\n { descendants: true },\n );\n private readonly own = contentChildren<SlTimelineItem>(forwardRef(() => SlTimelineItem));\n\n readonly accessibleLabel = computed(() =>\n this.ownLabel !== null || this.ownLabelledBy !== null ? null : (this.timeline.label() ?? null),\n );\n\n constructor() {\n effect(() => {\n const items = this.all();\n this.timeline.register(items);\n for (const [index, item] of items.entries()) item.index.set(index);\n });\n effect(() => assignLast(this.own()));\n }\n\n /** The articles a key can reach: every one not inside a folded group. */\n articles(): HTMLElement[] {\n return [...this.element.querySelectorAll<HTMLElement>('[data-part=\"item\"]')].filter(\n (article) => article.closest('[data-part=\"group-list\"][hidden]') === null,\n );\n }\n\n focusItem(index: number) {\n this.articles()[index]?.focus();\n }\n\n onKeydown(raw: Event) {\n const event = raw as KeyboardEvent;\n if (event.defaultPrevented || !this.timeline.feed()) return;\n const all = this.articles();\n const from = all.findIndex((article) => article.contains(event.target as Node));\n const target = feedFocusTarget({\n count: all.length,\n ctrlKey: event.ctrlKey,\n from,\n key: event.key,\n metaKey: event.metaKey,\n });\n if (target === null) return;\n event.preventDefault();\n if (typeof target === 'number') {\n all[target]?.focus();\n return;\n }\n const list = this.element;\n const page = tabbables(list.ownerDocument.body);\n const outside =\n target === 'after'\n ? page.find(\n (candidate) =>\n list.compareDocumentPosition(candidate) & Node.DOCUMENT_POSITION_FOLLOWING &&\n !list.contains(candidate),\n )\n : [...page]\n .reverse()\n .find(\n (candidate) =>\n list.compareDocumentPosition(candidate) & Node.DOCUMENT_POSITION_PRECEDING &&\n !list.contains(candidate),\n );\n outside?.focus();\n }\n}\n\n/**\n * A period: a heading and its own list of events. `collapsible` makes the\n * heading a disclosure — a `button` with `aria-expanded` and `aria-controls`\n * — and the list takes `hidden` when it is closed rather than leaving the\n * DOM. `open` is the family's one mutable value: `[(open)]` for the value,\n * `(openRequest)` for the request that carries the reason and can be\n * cancelled.\n */\n@Component({\n selector: 'li[slTimelineGroup], div[slTimelineGroup]',\n standalone: true,\n template: `\n @switch (levelValue()) {\n @case (2) {\n <h2 data-part=\"group-label\"><ng-container *ngTemplateOutlet=\"heading\"></ng-container></h2>\n }\n @case (4) {\n <h4 data-part=\"group-label\"><ng-container *ngTemplateOutlet=\"heading\"></ng-container></h4>\n }\n @case (5) {\n <h5 data-part=\"group-label\"><ng-container *ngTemplateOutlet=\"heading\"></ng-container></h5>\n }\n @case (6) {\n <h6 data-part=\"group-label\"><ng-container *ngTemplateOutlet=\"heading\"></ng-container></h6>\n }\n @default {\n <h3 data-part=\"group-label\"><ng-container *ngTemplateOutlet=\"heading\"></ng-container></h3>\n }\n }\n <ng-content></ng-content>\n\n <ng-template #heading>\n @if (collapsible()) {\n <button\n [attr.aria-controls]=\"listId\"\n [attr.aria-expanded]=\"isOpen()\"\n data-part=\"group-trigger\"\n type=\"button\"\n (click)=\"toggle($event)\"\n >\n <span aria-hidden=\"true\" data-part=\"group-indicator\"\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></span>\n {{ label()\n }}<span data-ui=\"visually-hidden\">{{\n isOpen() ? timeline.t('collapse') : timeline.t('expand')\n }}</span>\n </button>\n } @else {\n {{ label() }}\n }\n </ng-template>\n `,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon],\n styleUrls: [\n '../../../styles/src/timeline/timeline.css',\n '../../../styles/src/spinner/spinner.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slTimelineGroup',\n host: {\n 'data-part': 'group',\n '[attr.data-open]': 'isOpen() ? \"\" : null',\n },\n})\nexport class SlTimelineGroup {\n readonly timeline = inject(SlTimeline);\n\n /** The period's name, as the heading. */\n readonly label = input.required<string>();\n readonly level = input(undefined, { transform: optionalLevel });\n readonly collapsible = input(false, { transform: booleanAttribute });\n /** Present means controlled, for the life of the group. */\n readonly open = model<boolean | undefined>(undefined);\n /** Where an uncontrolled group starts, read once. */\n readonly defaultOpen = input(true, { transform: booleanAttribute });\n /** Emitted before the group moves, with the request that carries the reason. */\n readonly openRequest = output<ChangeRequest<boolean>>();\n\n private readonly own = signal<boolean | undefined>(undefined);\n readonly listId = `${this.timeline.id}-group-${(counter += 1)}`;\n\n readonly levelValue = computed(() => this.level() ?? this.timeline.levelValue());\n readonly isOpen = computed(\n () => !this.collapsible() || (this.open() ?? this.own() ?? this.defaultOpen()),\n );\n\n toggle(event: Event) {\n const reason: TimelineOpenReason = (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n this.setOpen(!this.isOpen(), reason, event);\n }\n\n setOpen(next: boolean, reason: TimelineOpenReason = 'programmatic', source?: Event) {\n const state = createControllable<boolean>({\n controlled: untracked(() => this.open()),\n initial: untracked(() => this.isOpen()),\n onRequest: (request) => this.openRequest.emit(request),\n });\n if (state.request(next, reason, source)) {\n this.own.set(next);\n this.open.set(next);\n }\n }\n}\n\n/** The list inside a group: hidden while the group is folded. */\n@Directive({\n selector: 'ol[slTimelineGroupList], div[slTimelineGroupList]',\n standalone: true,\n exportAs: 'slTimelineGroupList',\n host: {\n 'data-part': 'group-list',\n '[attr.id]': 'group.listId',\n '[hidden]': '!group.isOpen()',\n },\n})\nexport class SlTimelineGroupList {\n readonly group = inject(SlTimelineGroup);\n private readonly own = contentChildren<SlTimelineItem>(forwardRef(() => SlTimelineItem));\n\n constructor() {\n effect(() => assignLast(this.own()));\n }\n}\n\n/**\n * One event: its marker on the rail, the line to the next one, and its body.\n * The body's parts are inputs for the plain case — `title`, `description`,\n * `actor`, `time` — and projected content for the rich one, each under its\n * own directive, so a title can be a link and an actor an avatar.\n *\n * In feed mode it is an `article` and a tab stop, labelled by its title, its\n * actor and its time and described by its description, with its position in\n * the set.\n */\n@Component({\n selector: 'li[slTimelineItem], article[slTimelineItem]',\n standalone: true,\n imports: [forwardRef(() => SlTimelineTime), SlGlyph, SlIcon],\n /*\n * A finished dot's check is the marker's default content, which projected\n * artwork replaces. `data-check` tells the sheet it is the family's own, so\n * the marker stays a dot rather than becoming a badge.\n */\n template: `\n <ng-content select=\"[slTimelineOpposite]\"></ng-content>\n <div data-part=\"rail\">\n <span data-part=\"marker\">\n @if (loading()) {\n <span aria-hidden=\"true\" data-part=\"root\" data-ui=\"spinner\"></span>\n } @else {\n <ng-content select=\"[slTimelineMarker]\">\n @if (finished() && !current()) {\n <span slIcon data-check=\"\"><svg slGlyph name=\"check\"></svg></span>\n }\n </ng-content>\n }\n </span>\n @if (!last()) {\n <span aria-hidden=\"true\" data-part=\"connector\"></span>\n }\n </div>\n <div data-part=\"content\">\n @if (title() !== undefined) {\n <div data-part=\"title\" [id]=\"partId('title')\">{{ title() }}</div>\n }\n <ng-content select=\"[slTimelineTitle]\"></ng-content>\n @if (current()) {\n <span data-ui=\"visually-hidden\" [id]=\"partId('current')\">{{ timeline.t('current') }}</span>\n }\n @if (time() !== undefined) {\n @if (timeLabel() !== undefined) {\n <time slTimelineTime [id]=\"partId('time')\" [value]=\"time()!\">{{ timeLabel() }}</time>\n } @else {\n <time slTimelineTime [id]=\"partId('time')\" [value]=\"time()!\"></time>\n }\n }\n @if (actor() !== undefined) {\n <div data-part=\"actor\" [id]=\"partId('actor')\">{{ actor() }}</div>\n }\n <ng-content select=\"[slTimelineActor]\"></ng-content>\n @if (description() !== undefined) {\n <div data-part=\"description\" [id]=\"partId('description')\">{{ description() }}</div>\n }\n <ng-content select=\"[slTimelineDescription]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"[slTimelineActions]\"></ng-content>\n </div>\n `,\n styleUrls: [\n '../../../styles/src/timeline/timeline.css',\n '../../../styles/src/spinner/spinner.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slTimelineItem',\n host: {\n 'data-part': 'item',\n '[attr.role]': 'timeline.feed() ? \"article\" : null',\n '[attr.tabindex]': 'timeline.feed() ? (ownTabindex ?? \"0\") : null',\n '[attr.aria-posinset]': 'timeline.feed() ? index() + 1 : null',\n '[attr.aria-setsize]': 'timeline.feed() ? setSize() : null',\n '[attr.aria-labelledby]': 'timeline.feed() ? labelledBy() : null',\n '[attr.aria-describedby]': 'timeline.feed() ? describedBy() : null',\n '[attr.aria-current]': 'current() ? \"true\" : null',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-current]': 'current() ? \"\" : null',\n '[attr.data-complete]': 'finished() && !current() ? \"\" : null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.data-connector]': 'line() === \"solid\" ? null : line()',\n '[attr.data-side]': 'sideValue()',\n '[attr.data-tone]': 'tone() ?? timeline.toneValue()',\n '[attr.data-variant]': 'variant() ?? timeline.variantValue()',\n },\n})\nexport class SlTimelineItem {\n readonly timeline = inject(SlTimeline);\n readonly ownTabindex = inject(new HostAttributeToken('tabindex'), { optional: true });\n\n readonly title = input<string | undefined>(undefined);\n readonly description = input<string | undefined>(undefined);\n readonly actor = input<string | undefined>(undefined);\n /** When it happened. Written to `datetime` and formatted for the reader. */\n readonly time = input<TimestampValue | undefined>(undefined);\n /** What the reader sees in place of the formatted time. */\n readonly timeLabel = input<string | undefined>(undefined);\n readonly current = input(false, { transform: booleanAttribute });\n /** Whether this event is finished. Outranks the derivation. */\n readonly complete = input(undefined, { transform: optionalBoolean });\n readonly loading = input(false, { transform: booleanAttribute });\n /** The line after this event; `dashed` is derived for the future side. */\n readonly connector = input<TimelineConnector | undefined>(undefined);\n /** Which side the body takes in `alternate`; parity otherwise. */\n readonly side = input<TimelineSide | undefined>(undefined);\n readonly tone = input<TimelineTone | undefined>(undefined);\n readonly variant = input<TimelineVariant | undefined>(undefined);\n\n /** Written by the list that sees every event. */\n readonly index = signal(0);\n /** Written by the list this event is a direct child of. */\n readonly last = signal(true);\n\n private readonly projectedTitle = contentChild(forwardRef(() => SlTimelineTitle));\n private readonly projectedActor = contentChild(forwardRef(() => SlTimelineActor));\n private readonly projectedDescription = contentChild(forwardRef(() => SlTimelineDescription));\n\n readonly finished = computed(() =>\n isComplete({\n autoComplete: this.timeline.autoComplete(),\n complete: this.complete(),\n currentIndex: this.timeline.currentIndex(),\n index: this.index(),\n order: this.timeline.orderValue(),\n }),\n );\n readonly line = computed(() =>\n connectorOf({\n autoComplete: this.timeline.autoComplete(),\n connector: this.connector(),\n currentIndex: this.timeline.currentIndex(),\n index: this.index(),\n order: this.timeline.orderValue(),\n }),\n );\n readonly sideValue = computed(() =>\n this.timeline.placementValue() === 'alternate' || this.side() !== undefined\n ? sideOf(this.timeline.placementValue(), this.index(), this.side())\n : null,\n );\n readonly setSize = computed(() =>\n setSizeOf({\n count: this.timeline.count(),\n growing: this.timeline.growingValue(),\n loaded: this.timeline.loaded(),\n }),\n );\n readonly labelledBy = computed(() => {\n const ids = [\n this.title() !== undefined || this.projectedTitle() !== undefined\n ? this.partId('title')\n : null,\n this.current() ? this.partId('current') : null,\n this.actor() !== undefined || this.projectedActor() !== undefined\n ? this.partId('actor')\n : null,\n this.time() !== undefined ? this.partId('time') : null,\n ].filter((id): id is string => id !== null);\n return ids.length === 0 ? null : ids.join(' ');\n });\n readonly describedBy = computed(() =>\n this.description() !== undefined || this.projectedDescription() !== undefined\n ? this.partId('description')\n : null,\n );\n\n partId(part: string) {\n return this.timeline.itemId(this.index(), part);\n }\n}\n\n/**\n * When it happened, as the platform reads it and as the reader does. The\n * machine value always goes to `datetime`; the text is the family's\n * formatting unless the consumer projected their own, and a relative reading\n * keeps the absolute one in `title`. Outside a timeline it still works, from\n * the locale in force and the runtime's zone.\n */\n@Component({\n selector: 'time[slTimelineTime]',\n standalone: true,\n template: '<ng-content>{{ formatted().text }}</ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slTimelineTime',\n host: {\n 'data-part': 'time',\n '[attr.datetime]': 'formatted().dateTime',\n '[attr.title]': 'formatted().title',\n },\n})\nexport class SlTimelineTime {\n private readonly timeline = inject(SlTimeline, { optional: true });\n private readonly runtimeLocale = injectLocale();\n\n readonly value = input.required<TimestampValue>();\n readonly format = input<TimelineTimeFormat | undefined>(undefined);\n readonly locale = input<string | undefined>(undefined);\n readonly timeZone = input<string | undefined>(undefined);\n readonly now = input(undefined, { transform: optionalNumber });\n\n readonly formatted = computed(() =>\n formatTimestamp(this.value(), {\n format: this.format() ?? this.timeline?.timeFormatValue(),\n locale: this.locale() ?? this.timeline?.localeValue() ?? this.runtimeLocale(),\n now: this.now() ?? this.timeline?.nowValue(),\n timeZone: this.timeZone() ?? this.timeline?.timeZoneValue(),\n }),\n );\n}\n\n/**\n * The body's parts as the consumer's own elements: a title that is a link, an\n * actor that is an avatar beside a name, a description with markup, a row of\n * buttons, content for the other side of the rail, artwork for the marker.\n * Each directive writes the part and the id the article is labelled by.\n */\n@Directive({\n selector: '[slTimelineTitle]',\n standalone: true,\n host: { 'data-part': 'title', '[attr.id]': 'item.partId(\"title\")' },\n})\nexport class SlTimelineTitle {\n readonly item = inject(SlTimelineItem);\n}\n\n@Directive({\n selector: '[slTimelineActor]',\n standalone: true,\n host: { 'data-part': 'actor', '[attr.id]': 'item.partId(\"actor\")' },\n})\nexport class SlTimelineActor {\n readonly item = inject(SlTimelineItem);\n}\n\n@Directive({\n selector: '[slTimelineDescription]',\n standalone: true,\n host: { 'data-part': 'description', '[attr.id]': 'item.partId(\"description\")' },\n})\nexport class SlTimelineDescription {\n readonly item = inject(SlTimelineItem);\n}\n\n@Directive({ selector: '[slTimelineActions]', standalone: true, host: { 'data-part': 'actions' } })\nexport class SlTimelineActions {}\n\n@Directive({\n selector: '[slTimelineOpposite]',\n standalone: true,\n host: { 'data-part': 'opposite' },\n})\nexport class SlTimelineOpposite {}\n\n/** Artwork projected into the marker; the marker itself is the family's. */\n@Directive({ selector: '[slTimelineMarker]', standalone: true })\nexport class SlTimelineMarker {}\n\n/** What stands in for the list while it has no events. */\n@Directive({ selector: '[slTimelineEmpty]', standalone: true })\nexport class SlTimelineEmpty {}\n\n/** Absence has to survive the transform, so an unset input stays unset. */\nfunction optionalBoolean(value: boolean | string | undefined) {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n\nfunction optionalNumber(value: number | string | undefined) {\n if (value === undefined || value === null || value === '') return undefined;\n const parsed = numberAttribute(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction optionalLevel(value: number | string | undefined): TimelineLevel | undefined {\n const parsed = optionalNumber(value);\n return parsed === 2 || parsed === 3 || parsed === 4 || parsed === 5 || parsed === 6\n ? parsed\n : undefined;\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-timeline.mjs","sources":["../../timeline/src/timeline.constants.ts","../../timeline/src/timeline.ts","../../timeline/src/slotted-angular-timeline.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type {\n TimelineConnector,\n TimelineGrowing,\n TimelineOrder,\n TimelinePlacement,\n TimelineSide,\n TimelineTimeFormat,\n TimestampValue,\n} from '@slotted/core/timeline';\n\nexport type TimelineMode = 'list' | 'feed';\nexport type TimelineOrientation = 'vertical' | 'horizontal';\nexport type TimelineVariant = 'solid' | 'outline' | 'subtle' | 'plain';\nexport type TimelineTone = 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'danger';\nexport type TimelineSize = 'sm' | 'md' | 'lg';\nexport type TimelineLevel = 2 | 3 | 4 | 5 | 6;\nexport type TimelineOpenReason = 'pointer' | 'keyboard' | 'programmatic';\nexport type TimelineLoadMoreReason = 'pointer' | 'keyboard' | 'scroll';\nexport type TimelineRevealReason = 'pointer' | 'keyboard';\nexport type {\n TimelineConnector,\n TimelineGrowing,\n TimelineOrder,\n TimelinePlacement,\n TimelineSide,\n TimelineTimeFormat,\n TimestampValue,\n};\n\nexport const TIMELINE_DEFAULT_MODE: TimelineMode = 'list';\nexport const TIMELINE_DEFAULT_ORIENTATION: TimelineOrientation = 'vertical';\nexport const TIMELINE_DEFAULT_PLACEMENT: TimelinePlacement = 'end';\nexport const TIMELINE_DEFAULT_ORDER: TimelineOrder = 'oldest-first';\nexport const TIMELINE_DEFAULT_VARIANT: TimelineVariant = 'subtle';\nexport const TIMELINE_DEFAULT_TONE: TimelineTone = 'secondary';\nexport const TIMELINE_DEFAULT_SIZE: TimelineSize = 'md';\nexport const TIMELINE_DEFAULT_GROWING: TimelineGrowing = 'none';\nexport const TIMELINE_DEFAULT_TIME_FORMAT: TimelineTimeFormat = 'absolute';\nexport const TIMELINE_DEFAULT_LEVEL: TimelineLevel = 3;\n\nexport interface TimelineDefaults {\n mode?: TimelineMode;\n orientation?: TimelineOrientation;\n placement?: TimelinePlacement;\n order?: TimelineOrder;\n variant?: TimelineVariant;\n tone?: TimelineTone;\n size?: TimelineSize;\n growing?: TimelineGrowing;\n timeFormat?: TimelineTimeFormat;\n timeZone?: string;\n /** The moment relative readings count from, in epoch milliseconds. */\n now?: number;\n level?: TimelineLevel;\n}\n\nexport const TIMELINE_DEFAULTS_TOKEN = new InjectionToken<TimelineDefaults>(\n 'slotted timeline defaults',\n { providedIn: 'root', factory: (): TimelineDefaults => ({}) },\n);\n\n/**\n * An application decides once which way its timelines run, which side the\n * events take, how a timestamp is written and in which zone, the moment a\n * relative reading counts from. A timeline that states any of those itself\n * still wins: an explicit input is never overridden by the token. Its words\n * and locale come from the language in force (`provideSlotted`).\n */\nexport function provideTimelineDefaults(defaults: TimelineDefaults) {\n return { provide: TIMELINE_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectTimelineDefaults(): TimelineDefaults {\n return inject(TIMELINE_DEFAULTS_TOKEN);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n linkedSignal,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { tabbables } from '@slotted/core/focus';\nimport { timelineMessages, type PartialMessages, type TimelineMessages } from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n connectorOf,\n feedFocusTarget,\n formatTimestamp,\n isComplete,\n revealFocusIndex,\n setSizeOf,\n sideOf,\n} from '@slotted/core/timeline';\nimport type {\n TimelineConnector,\n TimelineGrowing,\n TimelineOrder,\n TimelinePlacement,\n TimelineSide,\n TimelineTimeFormat,\n TimestampValue,\n} from '@slotted/core/timeline';\n\nimport {\n injectTimelineDefaults,\n TIMELINE_DEFAULT_GROWING,\n TIMELINE_DEFAULT_LEVEL,\n TIMELINE_DEFAULT_MODE,\n TIMELINE_DEFAULT_ORDER,\n TIMELINE_DEFAULT_ORIENTATION,\n TIMELINE_DEFAULT_PLACEMENT,\n TIMELINE_DEFAULT_SIZE,\n TIMELINE_DEFAULT_TIME_FORMAT,\n TIMELINE_DEFAULT_TONE,\n TIMELINE_DEFAULT_VARIANT,\n type TimelineLevel,\n type TimelineLoadMoreReason,\n type TimelineMode,\n type TimelineOpenReason,\n type TimelineOrientation,\n type TimelineRevealReason,\n type TimelineSize,\n type TimelineTone,\n type TimelineVariant,\n} from './timeline.constants';\n\nlet counter = 0;\n\n/**\n * An ordered list of events on one line, each with a marker, a machine\n * timestamp and a body — and, in feed mode, the APG Feed pattern drawn the\n * same way.\n *\n * **It is an `ol`, or a feed, and `mode` decides which.** The consumer writes\n * the list element, so the mode says which one: `ol[slTimelineList]` with\n * `li[slTimelineItem]` in list mode, `div[slTimelineList]` with\n * `article[slTimelineItem]` in feed mode — a `li` admits no `article` role.\n * In feed mode the list is `role=\"feed\"`, every article carries its position,\n * the set size and its label, the feed is busy while more is on its way, and\n * `PageDown`, `PageUp`, `Control+End` and `Control+Home` do what the pattern\n * says.\n *\n * **It never reverses the array.** `order` says what the list is, and it is\n * what decides where `autoComplete` cuts.\n *\n * **It holds no events.** Loading more and revealing fresh ones are outputs\n * with a reason and nothing to hold; the consumer owns the array. The one\n * mutable value is whether a group is open, on `slTimelineGroup`.\n */\n@Component({\n selector: '[slTimeline]',\n standalone: true,\n template: `\n @if (heldCount() > 0) {\n <button\n #fresh\n data-part=\"fresh\"\n data-part-fresh=\"\"\n type=\"button\"\n [hidden]=\"freshCount() <= 0\"\n (click)=\"reveal($event)\"\n >\n {{ t('freshItems', { count: heldCount() }) }}\n </button>\n }\n <ng-content></ng-content>\n @if (growingValue() !== 'none') {\n @if (loading()) {\n <div #more aria-live=\"polite\" data-part=\"more\" data-part-more=\"\">\n <span\n aria-hidden=\"true\"\n data-part=\"root\"\n data-part-root=\"\"\n data-ui=\"spinner\"\n data-ui-spinner=\"\"\n ></span>\n {{ t('loading') }}\n </div>\n } @else if (growingValue() === 'button') {\n <button #more data-part=\"more\" data-part-more=\"\" type=\"button\" (click)=\"loadMore($event)\">\n {{ t('loadMore') }}\n </button>\n } @else {\n <div #more data-part=\"more\" data-part-more=\"\"></div>\n }\n }\n @if (loaded() === 0 && !loading()) {\n <div data-part=\"empty\" data-part-empty=\"\">\n <ng-content select=\"[slTimelineEmpty]\">{{ t('empty') }}</ng-content>\n </div>\n }\n `,\n styleUrls: [\n '../../../styles/src/timeline/timeline.css',\n '../../../styles/src/spinner/spinner.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slTimeline',\n host: {\n 'data-ui': 'timeline',\n 'data-ui-timeline': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-mode]': 'modeValue()',\n '[attr.data-orientation]': 'orientationValue()',\n '[attr.data-placement]': 'placementValue()',\n '[attr.data-order]': 'orderValue()',\n '[attr.data-variant]': 'variantValue()',\n '[attr.data-tone]': 'toneValue()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-growing]': 'growingValue()',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.data-reflow]': 'reflow() ? null : \"false\"',\n },\n})\nexport class SlTimeline {\n readonly mode = input<TimelineMode | undefined>(undefined);\n readonly orientation = input<TimelineOrientation | undefined>(undefined);\n readonly placement = input<TimelinePlacement | undefined>(undefined);\n readonly order = input<TimelineOrder | undefined>(undefined);\n readonly variant = input<TimelineVariant | undefined>(undefined);\n readonly tone = input<TimelineTone | undefined>(undefined);\n readonly size = input<TimelineSize | undefined>(undefined);\n readonly growing = input<TimelineGrowing | undefined>(undefined);\n readonly timeFormat = input<TimelineTimeFormat | undefined>(undefined);\n /** For the timestamps; defaults to the language in force (`provideSlotted`). */\n readonly locale = input<string | undefined>(undefined);\n readonly timeZone = input<string | undefined>(undefined);\n readonly now = input(undefined, { transform: optionalNumber });\n readonly level = input(undefined, { transform: optionalLevel });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * more control, the waiting line, the fresh pill, the empty line, the\n * current event's mark and a folded group's trigger.\n */\n readonly messages = input<PartialMessages<TimelineMessages> | undefined>(undefined);\n /** The accessible name of the list. */\n readonly label = input<string | undefined>(undefined);\n /** The total number of events, when the application knows it. */\n readonly count = input(undefined, { transform: optionalNumber });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly freshCount = input(0, { transform: numberAttribute });\n readonly autoComplete = input(false, { transform: booleanAttribute });\n readonly reflow = input(true, { transform: booleanAttribute });\n\n /** Asked when the reader presses the more control, or scrolls to it. */\n readonly loadMoreRequest = output<{ reason: TimelineLoadMoreReason; event?: Event }>();\n /** Asked when the reader presses the pill that holds fresh events. */\n readonly revealRequest = output<{ reason: TimelineRevealReason; event?: Event }>();\n\n private readonly defaults = injectTimelineDefaults();\n private readonly destroyRef = inject(DestroyRef);\n private readonly moreElement = viewChild<ElementRef<HTMLElement>>('more');\n private readonly freshElement = viewChild<ElementRef<HTMLButtonElement>>('fresh');\n private readonly host: HTMLElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly injector = inject(Injector);\n private readonly items = signal<readonly SlTimelineItem[]>([]);\n\n readonly id = `slotted-timeline-${(counter += 1)}`;\n\n readonly modeValue = computed(() => this.mode() ?? this.defaults.mode ?? TIMELINE_DEFAULT_MODE);\n readonly orientationValue = computed(\n () => this.orientation() ?? this.defaults.orientation ?? TIMELINE_DEFAULT_ORIENTATION,\n );\n readonly placementValue = computed(\n () => this.placement() ?? this.defaults.placement ?? TIMELINE_DEFAULT_PLACEMENT,\n );\n readonly orderValue = computed(\n () => this.order() ?? this.defaults.order ?? TIMELINE_DEFAULT_ORDER,\n );\n readonly variantValue = computed(\n () => this.variant() ?? this.defaults.variant ?? TIMELINE_DEFAULT_VARIANT,\n );\n readonly toneValue = computed(() => this.tone() ?? this.defaults.tone ?? TIMELINE_DEFAULT_TONE);\n readonly sizeValue = computed(() => this.size() ?? this.defaults.size ?? TIMELINE_DEFAULT_SIZE);\n readonly growingValue = computed(\n () => this.growing() ?? this.defaults.growing ?? TIMELINE_DEFAULT_GROWING,\n );\n readonly timeFormatValue = computed(\n () => this.timeFormat() ?? this.defaults.timeFormat ?? TIMELINE_DEFAULT_TIME_FORMAT,\n );\n private readonly runtimeLocale = injectLocale();\n readonly localeValue = computed(() => this.locale() ?? this.runtimeLocale());\n readonly timeZoneValue = computed(() => this.timeZone() ?? this.defaults.timeZone);\n readonly nowValue = computed(() => this.now() ?? this.defaults.now);\n readonly levelValue = computed(\n () => this.level() ?? this.defaults.level ?? TIMELINE_DEFAULT_LEVEL,\n );\n /** The family's words in the language in force, with this timeline's `messages` laid over them. */\n readonly t = injectMessages(timelineMessages, this.messages);\n readonly feed = computed(() => this.modeValue() === 'feed');\n\n /**\n * The pill's last count, kept past the change that drops it to zero: the\n * pill stays mounted from its first appearance, hidden at zero with the\n * words it had, so it can leave with a transition instead of vanishing.\n */\n readonly heldCount = linkedSignal<number, number>({\n source: this.freshCount,\n computation: (count, previous) => (count > 0 ? count : (previous?.value ?? 0)),\n });\n\n /** How many events the list laid out. */\n readonly loaded = computed(() => this.items().length);\n /** The index of the event marked current, in DOM order, or -1. */\n readonly currentIndex = computed(() => this.items().findIndex((item) => item.current()));\n\n constructor() {\n /** Fresh events are announced once per change of the count, politely. */\n effect(() => {\n const count = this.freshCount();\n if (count <= 0) return;\n getLiveAnnouncer().announce(untracked(() => this.t('freshItems', { count })));\n });\n\n /**\n * A reader who pressed the pill is taken to the first event it revealed,\n * not left on a control that is hiding. Whether focus is on the pill is\n * read now, before the view hides it; the event is focused once the view\n * has rendered what the reveal added.\n */\n let previousFresh = 0;\n effect(() => {\n const count = this.freshCount();\n const revealed = previousFresh;\n previousFresh = count;\n if (count > 0 || revealed <= 0) return;\n const pill = untracked(() => this.freshElement())?.nativeElement;\n if (pill === undefined || !pill.contains(pill.ownerDocument.activeElement)) return;\n afterNextRender({ write: () => this.focusRevealed(revealed) }, { injector: this.injector });\n });\n\n /**\n * `growing=\"scroll\"` asks when the end of the loaded list enters the\n * scrollport. Only where the observer exists: a server, or a test without\n * one, asks for nothing and the consumer who needs a control there\n * declares `button`.\n */\n effect((onCleanup) => {\n const more = this.moreElement()?.nativeElement;\n if (this.growingValue() !== 'scroll' || more === undefined || this.loading()) return;\n if (typeof IntersectionObserver === 'undefined') return;\n const observer = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n this.loadMoreRequest.emit({ reason: 'scroll' });\n }\n });\n observer.observe(more);\n onCleanup(() => observer.disconnect());\n });\n this.destroyRef.onDestroy(() => this.items.set([]));\n }\n\n register(items: readonly SlTimelineItem[]) {\n this.items.set(items);\n }\n\n itemId(index: number, part: string) {\n return `${this.id}-${index}-${part}`;\n }\n\n loadMore(event: Event) {\n const reason: TimelineLoadMoreReason =\n (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n this.loadMoreRequest.emit({ event, reason });\n }\n\n private focusRevealed(revealed: number) {\n const all = [...this.host.querySelectorAll<HTMLElement>('[data-part=\"item\"]')].filter(\n (article) => article.closest('[data-part=\"group-list\"][hidden]') === null,\n );\n const index = revealFocusIndex({ loaded: all.length, revealed, order: this.orderValue() });\n const event = index === null ? undefined : all[index];\n if (event === undefined) return;\n (event.hasAttribute('tabindex') ? event : tabbables(event)[0])?.focus();\n }\n\n reveal(event: Event) {\n const reason: TimelineRevealReason =\n (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n this.revealRequest.emit({ event, reason });\n }\n}\n\n/**\n * Every event that lays out under a list, in DOM order, is indexed by the one\n * list that sees them all; the last event of each list — the root's or a\n * group's — is told so by the list it is a direct child of, because it draws\n * no connector.\n */\nfunction assignLast(items: readonly SlTimelineItem[]) {\n for (const [index, item] of items.entries()) {\n item.last.set(index === items.length - 1);\n }\n}\n\n/**\n * The list: an `ol`, or a `div` that is a feed. It carries the name, the busy\n * state and the feed keys, and it is the one part that sees every event, so\n * it is what numbers them.\n */\n@Directive({\n selector: 'ol[slTimelineList], div[slTimelineList]',\n standalone: true,\n exportAs: 'slTimelineList',\n host: {\n 'data-part': 'list',\n 'data-part-list': '',\n '[attr.id]': 'timeline.id',\n '[attr.role]': 'timeline.feed() ? \"feed\" : null',\n '[attr.aria-label]': 'accessibleLabel()',\n '[attr.aria-busy]': 'timeline.feed() && timeline.loading() ? \"true\" : null',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class SlTimelineList {\n readonly timeline = inject(SlTimeline);\n private readonly element: HTMLElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly ownLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n private readonly all = contentChildren<SlTimelineItem>(\n forwardRef(() => SlTimelineItem),\n { descendants: true },\n );\n private readonly own = contentChildren<SlTimelineItem>(forwardRef(() => SlTimelineItem));\n\n readonly accessibleLabel = computed(() =>\n this.ownLabel !== null || this.ownLabelledBy !== null ? null : (this.timeline.label() ?? null),\n );\n\n constructor() {\n effect(() => {\n const items = this.all();\n this.timeline.register(items);\n for (const [index, item] of items.entries()) item.index.set(index);\n });\n effect(() => assignLast(this.own()));\n }\n\n /** The articles a key can reach: every one not inside a folded group. */\n articles(): HTMLElement[] {\n return [...this.element.querySelectorAll<HTMLElement>('[data-part=\"item\"]')].filter(\n (article) => article.closest('[data-part=\"group-list\"][hidden]') === null,\n );\n }\n\n focusItem(index: number) {\n this.articles()[index]?.focus();\n }\n\n onKeydown(raw: Event) {\n const event = raw as KeyboardEvent;\n if (event.defaultPrevented || !this.timeline.feed()) return;\n const all = this.articles();\n const from = all.findIndex((article) => article.contains(event.target as Node));\n const target = feedFocusTarget({\n count: all.length,\n ctrlKey: event.ctrlKey,\n from,\n key: event.key,\n metaKey: event.metaKey,\n });\n if (target === null) return;\n event.preventDefault();\n if (typeof target === 'number') {\n all[target]?.focus();\n return;\n }\n const list = this.element;\n const page = tabbables(list.ownerDocument.body);\n const outside =\n target === 'after'\n ? page.find(\n (candidate) =>\n list.compareDocumentPosition(candidate) & Node.DOCUMENT_POSITION_FOLLOWING &&\n !list.contains(candidate),\n )\n : [...page]\n .reverse()\n .find(\n (candidate) =>\n list.compareDocumentPosition(candidate) & Node.DOCUMENT_POSITION_PRECEDING &&\n !list.contains(candidate),\n );\n outside?.focus();\n }\n}\n\n/**\n * A period: a heading and its own list of events. `collapsible` makes the\n * heading a disclosure — a `button` with `aria-expanded` and `aria-controls`\n * — and the list takes `hidden` when it is closed rather than leaving the\n * DOM. `open` is the family's one mutable value: `[(open)]` for the value,\n * `(openRequest)` for the request that carries the reason and can be\n * cancelled.\n */\n@Component({\n selector: 'li[slTimelineGroup], div[slTimelineGroup]',\n standalone: true,\n template: `\n @switch (levelValue()) {\n @case (2) {\n <h2 data-part=\"group-label\" data-part-group-label=\"\">\n <ng-container *ngTemplateOutlet=\"heading\"></ng-container>\n </h2>\n }\n @case (4) {\n <h4 data-part=\"group-label\" data-part-group-label=\"\">\n <ng-container *ngTemplateOutlet=\"heading\"></ng-container>\n </h4>\n }\n @case (5) {\n <h5 data-part=\"group-label\" data-part-group-label=\"\">\n <ng-container *ngTemplateOutlet=\"heading\"></ng-container>\n </h5>\n }\n @case (6) {\n <h6 data-part=\"group-label\" data-part-group-label=\"\">\n <ng-container *ngTemplateOutlet=\"heading\"></ng-container>\n </h6>\n }\n @default {\n <h3 data-part=\"group-label\" data-part-group-label=\"\">\n <ng-container *ngTemplateOutlet=\"heading\"></ng-container>\n </h3>\n }\n }\n <ng-content></ng-content>\n\n <ng-template #heading>\n @if (collapsible()) {\n <button\n [attr.aria-controls]=\"listId\"\n [attr.aria-expanded]=\"isOpen()\"\n data-part=\"group-trigger\"\n data-part-group-trigger=\"\"\n type=\"button\"\n (click)=\"toggle($event)\"\n >\n <span aria-hidden=\"true\" data-part=\"group-indicator\" data-part-group-indicator=\"\"\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></span>\n {{ label()\n }}<span data-ui=\"visually-hidden\" data-ui-visually-hidden=\"\">{{\n isOpen() ? timeline.t('collapse') : timeline.t('expand')\n }}</span>\n </button>\n } @else {\n {{ label() }}\n }\n </ng-template>\n `,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon],\n styleUrls: [\n '../../../styles/src/timeline/timeline.css',\n '../../../styles/src/spinner/spinner.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slTimelineGroup',\n host: {\n 'data-part': 'group',\n 'data-part-group': '',\n '[attr.data-open]': 'isOpen() ? \"\" : null',\n },\n})\nexport class SlTimelineGroup {\n readonly timeline = inject(SlTimeline);\n\n /** The period's name, as the heading. */\n readonly label = input.required<string>();\n readonly level = input(undefined, { transform: optionalLevel });\n readonly collapsible = input(false, { transform: booleanAttribute });\n /** Present means controlled, for the life of the group. */\n readonly open = model<boolean | undefined>(undefined);\n /** Where an uncontrolled group starts, read once. */\n readonly defaultOpen = input(true, { transform: booleanAttribute });\n /** Emitted before the group moves, with the request that carries the reason. */\n readonly openRequest = output<ChangeRequest<boolean>>();\n\n private readonly own = signal<boolean | undefined>(undefined);\n readonly listId = `${this.timeline.id}-group-${(counter += 1)}`;\n\n readonly levelValue = computed(() => this.level() ?? this.timeline.levelValue());\n readonly isOpen = computed(\n () => !this.collapsible() || (this.open() ?? this.own() ?? this.defaultOpen()),\n );\n\n toggle(event: Event) {\n const reason: TimelineOpenReason = (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n this.setOpen(!this.isOpen(), reason, event);\n }\n\n setOpen(next: boolean, reason: TimelineOpenReason = 'programmatic', source?: Event) {\n const state = createControllable<boolean>({\n controlled: untracked(() => this.open()),\n initial: untracked(() => this.isOpen()),\n onRequest: (request) => this.openRequest.emit(request),\n });\n if (state.request(next, reason, source)) {\n this.own.set(next);\n this.open.set(next);\n }\n }\n}\n\n/** The list inside a group: hidden while the group is folded. */\n@Directive({\n selector: 'ol[slTimelineGroupList], div[slTimelineGroupList]',\n standalone: true,\n exportAs: 'slTimelineGroupList',\n host: {\n 'data-part': 'group-list',\n 'data-part-group-list': '',\n '[attr.id]': 'group.listId',\n '[hidden]': '!group.isOpen()',\n },\n})\nexport class SlTimelineGroupList {\n readonly group = inject(SlTimelineGroup);\n private readonly own = contentChildren<SlTimelineItem>(forwardRef(() => SlTimelineItem));\n\n constructor() {\n effect(() => assignLast(this.own()));\n }\n}\n\n/**\n * One event: its marker on the rail, the line to the next one, and its body.\n * The body's parts are inputs for the plain case — `title`, `description`,\n * `actor`, `time` — and projected content for the rich one, each under its\n * own directive, so a title can be a link and an actor an avatar.\n *\n * In feed mode it is an `article` and a tab stop, labelled by its title, its\n * actor and its time and described by its description, with its position in\n * the set.\n */\n@Component({\n selector: 'li[slTimelineItem], article[slTimelineItem]',\n standalone: true,\n imports: [forwardRef(() => SlTimelineTime), SlGlyph, SlIcon],\n /*\n * A finished dot's check is the marker's default content, which projected\n * artwork replaces. `data-check` tells the sheet it is the family's own, so\n * the marker stays a dot rather than becoming a badge.\n */\n template: `\n <ng-content select=\"[slTimelineOpposite]\"></ng-content>\n <div data-part=\"rail\" data-part-rail=\"\">\n <span data-part=\"marker\" data-part-marker=\"\">\n @if (loading()) {\n <span\n aria-hidden=\"true\"\n data-part=\"root\"\n data-part-root=\"\"\n data-ui=\"spinner\"\n data-ui-spinner=\"\"\n ></span>\n } @else {\n <ng-content select=\"[slTimelineMarker]\">\n @if (finished() && !current()) {\n <span slIcon data-check=\"\"><svg slGlyph name=\"check\"></svg></span>\n }\n </ng-content>\n }\n </span>\n @if (!last()) {\n <span aria-hidden=\"true\" data-part=\"connector\" data-part-connector=\"\"></span>\n }\n </div>\n <div data-part=\"content\" data-part-content=\"\">\n @if (title() !== undefined) {\n <div data-part=\"title\" data-part-title=\"\" [id]=\"partId('title')\">{{ title() }}</div>\n }\n <ng-content select=\"[slTimelineTitle]\"></ng-content>\n @if (current()) {\n <span data-ui=\"visually-hidden\" data-ui-visually-hidden=\"\" [id]=\"partId('current')\">{{\n timeline.t('current')\n }}</span>\n }\n @if (time() !== undefined) {\n @if (timeLabel() !== undefined) {\n <time slTimelineTime [id]=\"partId('time')\" [value]=\"time()!\">{{ timeLabel() }}</time>\n } @else {\n <time slTimelineTime [id]=\"partId('time')\" [value]=\"time()!\"></time>\n }\n }\n @if (actor() !== undefined) {\n <div data-part=\"actor\" data-part-actor=\"\" [id]=\"partId('actor')\">{{ actor() }}</div>\n }\n <ng-content select=\"[slTimelineActor]\"></ng-content>\n @if (description() !== undefined) {\n <div data-part=\"description\" data-part-description=\"\" [id]=\"partId('description')\">\n {{ description() }}\n </div>\n }\n <ng-content select=\"[slTimelineDescription]\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"[slTimelineActions]\"></ng-content>\n </div>\n `,\n styleUrls: [\n '../../../styles/src/timeline/timeline.css',\n '../../../styles/src/spinner/spinner.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slTimelineItem',\n host: {\n 'data-part': 'item',\n 'data-part-item': '',\n '[attr.role]': 'timeline.feed() ? \"article\" : null',\n '[attr.tabindex]': 'timeline.feed() ? (ownTabindex ?? \"0\") : null',\n '[attr.aria-posinset]': 'timeline.feed() ? index() + 1 : null',\n '[attr.aria-setsize]': 'timeline.feed() ? setSize() : null',\n '[attr.aria-labelledby]': 'timeline.feed() ? labelledBy() : null',\n '[attr.aria-describedby]': 'timeline.feed() ? describedBy() : null',\n '[attr.aria-current]': 'current() ? \"true\" : null',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-current]': 'current() ? \"\" : null',\n '[attr.data-complete]': 'finished() && !current() ? \"\" : null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.data-connector]': 'line() === \"solid\" ? null : line()',\n '[attr.data-side]': 'sideValue()',\n '[attr.data-tone]': 'tone() ?? timeline.toneValue()',\n '[attr.data-variant]': 'variant() ?? timeline.variantValue()',\n },\n})\nexport class SlTimelineItem {\n readonly timeline = inject(SlTimeline);\n readonly ownTabindex = inject(new HostAttributeToken('tabindex'), { optional: true });\n\n readonly title = input<string | undefined>(undefined);\n readonly description = input<string | undefined>(undefined);\n readonly actor = input<string | undefined>(undefined);\n /** When it happened. Written to `datetime` and formatted for the reader. */\n readonly time = input<TimestampValue | undefined>(undefined);\n /** What the reader sees in place of the formatted time. */\n readonly timeLabel = input<string | undefined>(undefined);\n readonly current = input(false, { transform: booleanAttribute });\n /** Whether this event is finished. Outranks the derivation. */\n readonly complete = input(undefined, { transform: optionalBoolean });\n readonly loading = input(false, { transform: booleanAttribute });\n /** The line after this event; `dashed` is derived for the future side. */\n readonly connector = input<TimelineConnector | undefined>(undefined);\n /** Which side the body takes in `alternate`; parity otherwise. */\n readonly side = input<TimelineSide | undefined>(undefined);\n readonly tone = input<TimelineTone | undefined>(undefined);\n readonly variant = input<TimelineVariant | undefined>(undefined);\n\n /** Written by the list that sees every event. */\n readonly index = signal(0);\n /** Written by the list this event is a direct child of. */\n readonly last = signal(true);\n\n private readonly projectedTitle = contentChild(forwardRef(() => SlTimelineTitle));\n private readonly projectedActor = contentChild(forwardRef(() => SlTimelineActor));\n private readonly projectedDescription = contentChild(forwardRef(() => SlTimelineDescription));\n\n readonly finished = computed(() =>\n isComplete({\n autoComplete: this.timeline.autoComplete(),\n complete: this.complete(),\n currentIndex: this.timeline.currentIndex(),\n index: this.index(),\n order: this.timeline.orderValue(),\n }),\n );\n readonly line = computed(() =>\n connectorOf({\n autoComplete: this.timeline.autoComplete(),\n connector: this.connector(),\n currentIndex: this.timeline.currentIndex(),\n index: this.index(),\n order: this.timeline.orderValue(),\n }),\n );\n readonly sideValue = computed(() =>\n this.timeline.placementValue() === 'alternate' || this.side() !== undefined\n ? sideOf(this.timeline.placementValue(), this.index(), this.side())\n : null,\n );\n readonly setSize = computed(() =>\n setSizeOf({\n count: this.timeline.count(),\n growing: this.timeline.growingValue(),\n loaded: this.timeline.loaded(),\n }),\n );\n readonly labelledBy = computed(() => {\n const ids = [\n this.title() !== undefined || this.projectedTitle() !== undefined\n ? this.partId('title')\n : null,\n this.current() ? this.partId('current') : null,\n this.actor() !== undefined || this.projectedActor() !== undefined\n ? this.partId('actor')\n : null,\n this.time() !== undefined ? this.partId('time') : null,\n ].filter((id): id is string => id !== null);\n return ids.length === 0 ? null : ids.join(' ');\n });\n readonly describedBy = computed(() =>\n this.description() !== undefined || this.projectedDescription() !== undefined\n ? this.partId('description')\n : null,\n );\n\n partId(part: string) {\n return this.timeline.itemId(this.index(), part);\n }\n}\n\n/**\n * When it happened, as the platform reads it and as the reader does. The\n * machine value always goes to `datetime`; the text is the family's\n * formatting unless the consumer projected their own, and a relative reading\n * keeps the absolute one in `title`. Outside a timeline it still works, from\n * the locale in force and the runtime's zone.\n */\n@Component({\n selector: 'time[slTimelineTime]',\n standalone: true,\n template: '<ng-content>{{ formatted().text }}</ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slTimelineTime',\n host: {\n 'data-part': 'time',\n 'data-part-time': '',\n '[attr.datetime]': 'formatted().dateTime',\n '[attr.title]': 'formatted().title',\n },\n})\nexport class SlTimelineTime {\n private readonly timeline = inject(SlTimeline, { optional: true });\n private readonly runtimeLocale = injectLocale();\n\n readonly value = input.required<TimestampValue>();\n readonly format = input<TimelineTimeFormat | undefined>(undefined);\n readonly locale = input<string | undefined>(undefined);\n readonly timeZone = input<string | undefined>(undefined);\n readonly now = input(undefined, { transform: optionalNumber });\n\n readonly formatted = computed(() =>\n formatTimestamp(this.value(), {\n format: this.format() ?? this.timeline?.timeFormatValue(),\n locale: this.locale() ?? this.timeline?.localeValue() ?? this.runtimeLocale(),\n now: this.now() ?? this.timeline?.nowValue(),\n timeZone: this.timeZone() ?? this.timeline?.timeZoneValue(),\n }),\n );\n}\n\n/**\n * The body's parts as the consumer's own elements: a title that is a link, an\n * actor that is an avatar beside a name, a description with markup, a row of\n * buttons, content for the other side of the rail, artwork for the marker.\n * Each directive writes the part and the id the article is labelled by.\n */\n@Directive({\n selector: '[slTimelineTitle]',\n standalone: true,\n host: { 'data-part': 'title', 'data-part-title': '', '[attr.id]': 'item.partId(\"title\")' },\n})\nexport class SlTimelineTitle {\n readonly item = inject(SlTimelineItem);\n}\n\n@Directive({\n selector: '[slTimelineActor]',\n standalone: true,\n host: { 'data-part': 'actor', 'data-part-actor': '', '[attr.id]': 'item.partId(\"actor\")' },\n})\nexport class SlTimelineActor {\n readonly item = inject(SlTimelineItem);\n}\n\n@Directive({\n selector: '[slTimelineDescription]',\n standalone: true,\n host: {\n 'data-part': 'description',\n 'data-part-description': '',\n '[attr.id]': 'item.partId(\"description\")',\n },\n})\nexport class SlTimelineDescription {\n readonly item = inject(SlTimelineItem);\n}\n\n@Directive({\n selector: '[slTimelineActions]',\n standalone: true,\n host: { 'data-part': 'actions', 'data-part-actions': '' },\n})\nexport class SlTimelineActions {}\n\n@Directive({\n selector: '[slTimelineOpposite]',\n standalone: true,\n host: { 'data-part': 'opposite', 'data-part-opposite': '' },\n})\nexport class SlTimelineOpposite {}\n\n/** Artwork projected into the marker; the marker itself is the family's. */\n@Directive({ selector: '[slTimelineMarker]', standalone: true })\nexport class SlTimelineMarker {}\n\n/** What stands in for the list while it has no events. */\n@Directive({ selector: '[slTimelineEmpty]', standalone: true })\nexport class SlTimelineEmpty {}\n\n/** Absence has to survive the transform, so an unset input stays unset. */\nfunction optionalBoolean(value: boolean | string | undefined) {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n\nfunction optionalNumber(value: number | string | undefined) {\n if (value === undefined || value === null || value === '') return undefined;\n const parsed = numberAttribute(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction optionalLevel(value: number | string | undefined): TimelineLevel | undefined {\n const parsed = optionalNumber(value);\n return parsed === 2 || parsed === 3 || parsed === 4 || parsed === 5 || parsed === 6\n ? parsed\n : undefined;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}