@slotted/angular 0.1.0-beta.1 → 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
@@ -111,13 +111,15 @@ class SlList {
111
111
  resolvedInset = computed(() => (this.inset() ?? this.defaults.inset) === true, /* @ts-ignore */
112
112
  ...(ngDevMode ? [{ debugName: "resolvedInset" }] : /* istanbul ignore next */ []));
113
113
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlList, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlList, isStandalone: true, selector: "ul[slList], ol[slList]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, marker: { classPropertyName: "marker", publicName: "marker", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "list", "data-part": "root" }, properties: { "attr.role": "role()", "attr.data-variant": "resolvedVariant()", "attr.data-size": "resolvedSize()", "attr.data-marker": "resolvedMarker()", "attr.data-inset": "resolvedInset() ? '' : null", "attr.data-loading": "loading() ? '' : null", "attr.aria-busy": "loading() ? 'true' : null" } }, exportAs: ["slList"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui=list][data-part=root],[data-ui=list] [data-part=section-list]{counter-reset:slotted-list-item;display:flex;flex-direction:column;list-style:none;margin-block:0;margin-inline:0;min-inline-size:0;padding-inline:0}[data-ui=list][data-part=root]{--_gap: var(--slotted-list-gap, var(--slotted-space-3, .375rem));--_frame-color: var(--slotted-list-border-color, var(--slotted-border-subtle, ButtonBorder));--_frame-width: var(--slotted-list-border-width, var(--slotted-border-width-thin, 1px));--_frame-radius: var(--slotted-list-radius, var(--slotted-radius-md, 6px));--_surface: var(--slotted-list-background, var(--slotted-surface, Canvas));--_section-color: var(--slotted-list-section-color, var(--slotted-text-muted, GrayText));--_section-font-size: var( --slotted-list-section-font-size, var(--slotted-font-size-xs, .75rem) );--_section-weight: var( --slotted-list-section-font-weight, var(--slotted-font-weight-semibold, 600) );--_section-inset-block: var( --slotted-list-section-padding-block, var(--slotted-space-4, .5rem) );--_row-inset-inline: var( --slotted-list-padding-inline, var(--slotted-control-padding-inline-md, 13px) );--_empty-color: var(--slotted-list-empty-color, var(--slotted-text-muted, GrayText));--_empty-inset: var(--slotted-list-empty-padding, var(--slotted-space-8, 1.5rem))}[data-ui=list][data-part=root][data-size=sm]{--_gap: var(--slotted-list-gap-sm, var(--slotted-space-2, .25rem));--_section-inset-block: var( --slotted-list-section-padding-block-sm, var(--slotted-space-3, .375rem) );--_row-inset-inline: var( --slotted-list-padding-inline-sm, var(--slotted-control-padding-inline-sm, 10px) );--_empty-inset: var(--slotted-list-empty-padding-sm, var(--slotted-space-6, 1rem))}[data-ui=list][data-part=root][data-size=lg]{--_gap: var(--slotted-list-gap-lg, var(--slotted-space-4, .5rem));--_section-inset-block: var( --slotted-list-section-padding-block-lg, var(--slotted-space-5, .75rem) );--_row-inset-inline: var( --slotted-list-padding-inline-lg, var(--slotted-control-padding-inline-lg, 16px) );--_empty-inset: var(--slotted-list-empty-padding-lg, var(--slotted-space-9, 2rem))}[data-ui=list][data-part=root][data-variant=framed]{background-color:var(--_surface);border:var(--_frame-width) solid var(--_frame-color);border-radius:var(--_frame-radius);overflow:clip}[data-ui=list][data-part=root][data-variant=separated]{row-gap:var(--_gap)}[data-ui=list] [data-part=section]{display:flex;flex-direction:column;min-inline-size:0}[data-ui=list][data-variant=separated] [data-part=section],[data-ui=list][data-variant=separated] [data-part=section-list]{row-gap:var(--_gap)}[data-ui=list] [data-part=section-label]{color:var(--_section-color);font-size:var(--_section-font-size);font-weight:var(--_section-weight);letter-spacing:var(--slotted-list-section-letter-spacing, 0);line-height:var(--slotted-line-height-sm, 1.45);margin-block:0;min-inline-size:0;padding-block:var(--_section-inset-block);padding-inline:var(--_row-inset-inline)}[data-ui=list][data-inset] [data-part=section-label],[data-ui=list][data-inset] [data-part=empty]{padding-inline:0}[data-ui=list] [data-part=section-label][data-sticky]{background-color:var(--_surface);inset-block-start:0;position:sticky;z-index:var(--slotted-z-index-sticky, 100)}[data-ui=list] [data-part=empty]{align-items:center;color:var(--_empty-color);display:flex;flex-direction:column;justify-content:center;min-inline-size:0;padding-block:var(--_empty-inset);padding-inline:var(--_row-inset-inline);text-align:center}[data-ui=list][data-part=root][data-loading]{cursor:progress}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
114
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlList, isStandalone: true, selector: "ul[slList], ol[slList]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, marker: { classPropertyName: "marker", publicName: "marker", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "list", "data-ui-list": "", "data-part": "root", "data-part-root": "" }, properties: { "attr.role": "role()", "attr.data-variant": "resolvedVariant()", "attr.data-size": "resolvedSize()", "attr.data-marker": "resolvedMarker()", "attr.data-inset": "resolvedInset() ? '' : null", "attr.data-loading": "loading() ? '' : null", "attr.aria-busy": "loading() ? 'true' : null" } }, exportAs: ["slList"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui-list][data-part-root],[data-ui-list] [data-part-section-list]{counter-reset:slotted-list-item;display:flex;flex-direction:column;list-style:none;margin-block:0;margin-inline:0;min-inline-size:0;padding-inline:0}[data-ui-list][data-part-root]{--_gap: var(--slotted-list-gap, var(--slotted-space-3, .375rem));--_frame-color: var(--slotted-list-border-color, var(--slotted-border-subtle, ButtonBorder));--_frame-width: var(--slotted-list-border-width, var(--slotted-border-width-thin, 1px));--_frame-radius: var(--slotted-list-radius, var(--slotted-radius-md, 6px));--_surface: var(--slotted-list-background, var(--slotted-surface, Canvas));--_section-color: var(--slotted-list-section-color, var(--slotted-text-muted, GrayText));--_section-font-size: var( --slotted-list-section-font-size, var(--slotted-font-size-xs, .75rem) );--_section-weight: var( --slotted-list-section-font-weight, var(--slotted-font-weight-semibold, 600) );--_section-inset-block: var( --slotted-list-section-padding-block, var(--slotted-space-4, .5rem) );--_row-inset-inline: var( --slotted-list-padding-inline, var(--slotted-control-padding-inline-md, 13px) );--_empty-color: var(--slotted-list-empty-color, var(--slotted-text-muted, GrayText));--_empty-inset: var(--slotted-list-empty-padding, var(--slotted-space-8, 1.5rem))}[data-ui-list][data-part-root][data-size=sm]{--_gap: var(--slotted-list-gap-sm, var(--slotted-space-2, .25rem));--_section-inset-block: var( --slotted-list-section-padding-block-sm, var(--slotted-space-3, .375rem) );--_row-inset-inline: var( --slotted-list-padding-inline-sm, var(--slotted-control-padding-inline-sm, 10px) );--_empty-inset: var(--slotted-list-empty-padding-sm, var(--slotted-space-6, 1rem))}[data-ui-list][data-part-root][data-size=lg]{--_gap: var(--slotted-list-gap-lg, var(--slotted-space-4, .5rem));--_section-inset-block: var( --slotted-list-section-padding-block-lg, var(--slotted-space-5, .75rem) );--_row-inset-inline: var( --slotted-list-padding-inline-lg, var(--slotted-control-padding-inline-lg, 16px) );--_empty-inset: var(--slotted-list-empty-padding-lg, var(--slotted-space-9, 2rem))}[data-ui-list][data-part-root][data-variant=framed]{background-color:var(--_surface);border:var(--_frame-width) solid var(--_frame-color);border-radius:var(--_frame-radius);overflow:clip}[data-ui-list][data-part-root][data-variant=separated]{row-gap:var(--_gap)}[data-ui-list] [data-part-section]{display:flex;flex-direction:column;min-inline-size:0}[data-ui-list][data-variant=separated] [data-part-section],[data-ui-list][data-variant=separated] [data-part-section-list]{row-gap:var(--_gap)}[data-ui-list] [data-part-section-label]{color:var(--_section-color);font-size:var(--_section-font-size);font-weight:var(--_section-weight);letter-spacing:var(--slotted-list-section-letter-spacing, 0);line-height:var(--slotted-line-height-sm, 1.45);margin-block:0;min-inline-size:0;padding-block:var(--_section-inset-block);padding-inline:var(--_row-inset-inline)}[data-ui-list][data-inset] [data-part-section-label],[data-ui-list][data-inset] [data-part-empty]{padding-inline:0}[data-ui-list] [data-part-section-label]:has(>[data-part-section-end]){align-items:baseline;display:flex;gap:var(--slotted-space-4, .5rem);justify-content:space-between}[data-ui-list] [data-part-section-end]{flex:none;font-variant-numeric:tabular-nums;white-space:nowrap}[data-ui-list] [data-part-section-label][data-variant=ruled]{border-block-end:var(--slotted-border-width-thin, 1px) solid var(--slotted-list-section-rule-color, var(--slotted-border-subtle, GrayText));color:var(--slotted-list-section-ruled-color, var(--slotted-text, CanvasText));font-weight:var(--slotted-font-weight-medium, 500)}[data-ui-list] [data-part-section-label][data-sticky]{background-color:var(--_surface);inset-block-start:0;position:sticky;z-index:var(--slotted-z-index-sticky, 100)}[data-ui-list] [data-part-empty]{align-items:center;color:var(--_empty-color);display:flex;flex-direction:column;justify-content:center;min-inline-size:0;padding-block:var(--_empty-inset);padding-inline:var(--_row-inset-inline);text-align:center}[data-ui-list][data-part-root][data-loading]{cursor:progress}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
115
115
  }
116
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlList, decorators: [{
117
117
  type: Component,
118
118
  args: [{ selector: 'ul[slList], ol[slList]', standalone: true, exportAs: 'slList', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
119
119
  'data-ui': 'list',
120
+ 'data-ui-list': '',
120
121
  'data-part': 'root',
122
+ 'data-part-root': '',
121
123
  '[attr.role]': 'role()',
122
124
  '[attr.data-variant]': 'resolvedVariant()',
123
125
  '[attr.data-size]': 'resolvedSize()',
@@ -125,21 +127,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
125
127
  '[attr.data-inset]': "resolvedInset() ? '' : null",
126
128
  '[attr.data-loading]': "loading() ? '' : null",
127
129
  '[attr.aria-busy]': "loading() ? 'true' : null",
128
- }, styles: ["@layer slotted.components{[data-ui=list][data-part=root],[data-ui=list] [data-part=section-list]{counter-reset:slotted-list-item;display:flex;flex-direction:column;list-style:none;margin-block:0;margin-inline:0;min-inline-size:0;padding-inline:0}[data-ui=list][data-part=root]{--_gap: var(--slotted-list-gap, var(--slotted-space-3, .375rem));--_frame-color: var(--slotted-list-border-color, var(--slotted-border-subtle, ButtonBorder));--_frame-width: var(--slotted-list-border-width, var(--slotted-border-width-thin, 1px));--_frame-radius: var(--slotted-list-radius, var(--slotted-radius-md, 6px));--_surface: var(--slotted-list-background, var(--slotted-surface, Canvas));--_section-color: var(--slotted-list-section-color, var(--slotted-text-muted, GrayText));--_section-font-size: var( --slotted-list-section-font-size, var(--slotted-font-size-xs, .75rem) );--_section-weight: var( --slotted-list-section-font-weight, var(--slotted-font-weight-semibold, 600) );--_section-inset-block: var( --slotted-list-section-padding-block, var(--slotted-space-4, .5rem) );--_row-inset-inline: var( --slotted-list-padding-inline, var(--slotted-control-padding-inline-md, 13px) );--_empty-color: var(--slotted-list-empty-color, var(--slotted-text-muted, GrayText));--_empty-inset: var(--slotted-list-empty-padding, var(--slotted-space-8, 1.5rem))}[data-ui=list][data-part=root][data-size=sm]{--_gap: var(--slotted-list-gap-sm, var(--slotted-space-2, .25rem));--_section-inset-block: var( --slotted-list-section-padding-block-sm, var(--slotted-space-3, .375rem) );--_row-inset-inline: var( --slotted-list-padding-inline-sm, var(--slotted-control-padding-inline-sm, 10px) );--_empty-inset: var(--slotted-list-empty-padding-sm, var(--slotted-space-6, 1rem))}[data-ui=list][data-part=root][data-size=lg]{--_gap: var(--slotted-list-gap-lg, var(--slotted-space-4, .5rem));--_section-inset-block: var( --slotted-list-section-padding-block-lg, var(--slotted-space-5, .75rem) );--_row-inset-inline: var( --slotted-list-padding-inline-lg, var(--slotted-control-padding-inline-lg, 16px) );--_empty-inset: var(--slotted-list-empty-padding-lg, var(--slotted-space-9, 2rem))}[data-ui=list][data-part=root][data-variant=framed]{background-color:var(--_surface);border:var(--_frame-width) solid var(--_frame-color);border-radius:var(--_frame-radius);overflow:clip}[data-ui=list][data-part=root][data-variant=separated]{row-gap:var(--_gap)}[data-ui=list] [data-part=section]{display:flex;flex-direction:column;min-inline-size:0}[data-ui=list][data-variant=separated] [data-part=section],[data-ui=list][data-variant=separated] [data-part=section-list]{row-gap:var(--_gap)}[data-ui=list] [data-part=section-label]{color:var(--_section-color);font-size:var(--_section-font-size);font-weight:var(--_section-weight);letter-spacing:var(--slotted-list-section-letter-spacing, 0);line-height:var(--slotted-line-height-sm, 1.45);margin-block:0;min-inline-size:0;padding-block:var(--_section-inset-block);padding-inline:var(--_row-inset-inline)}[data-ui=list][data-inset] [data-part=section-label],[data-ui=list][data-inset] [data-part=empty]{padding-inline:0}[data-ui=list] [data-part=section-label][data-sticky]{background-color:var(--_surface);inset-block-start:0;position:sticky;z-index:var(--slotted-z-index-sticky, 100)}[data-ui=list] [data-part=empty]{align-items:center;color:var(--_empty-color);display:flex;flex-direction:column;justify-content:center;min-inline-size:0;padding-block:var(--_empty-inset);padding-inline:var(--_row-inset-inline);text-align:center}[data-ui=list][data-part=root][data-loading]{cursor:progress}}\n"] }]
130
+ }, styles: ["@layer slotted.components{[data-ui-list][data-part-root],[data-ui-list] [data-part-section-list]{counter-reset:slotted-list-item;display:flex;flex-direction:column;list-style:none;margin-block:0;margin-inline:0;min-inline-size:0;padding-inline:0}[data-ui-list][data-part-root]{--_gap: var(--slotted-list-gap, var(--slotted-space-3, .375rem));--_frame-color: var(--slotted-list-border-color, var(--slotted-border-subtle, ButtonBorder));--_frame-width: var(--slotted-list-border-width, var(--slotted-border-width-thin, 1px));--_frame-radius: var(--slotted-list-radius, var(--slotted-radius-md, 6px));--_surface: var(--slotted-list-background, var(--slotted-surface, Canvas));--_section-color: var(--slotted-list-section-color, var(--slotted-text-muted, GrayText));--_section-font-size: var( --slotted-list-section-font-size, var(--slotted-font-size-xs, .75rem) );--_section-weight: var( --slotted-list-section-font-weight, var(--slotted-font-weight-semibold, 600) );--_section-inset-block: var( --slotted-list-section-padding-block, var(--slotted-space-4, .5rem) );--_row-inset-inline: var( --slotted-list-padding-inline, var(--slotted-control-padding-inline-md, 13px) );--_empty-color: var(--slotted-list-empty-color, var(--slotted-text-muted, GrayText));--_empty-inset: var(--slotted-list-empty-padding, var(--slotted-space-8, 1.5rem))}[data-ui-list][data-part-root][data-size=sm]{--_gap: var(--slotted-list-gap-sm, var(--slotted-space-2, .25rem));--_section-inset-block: var( --slotted-list-section-padding-block-sm, var(--slotted-space-3, .375rem) );--_row-inset-inline: var( --slotted-list-padding-inline-sm, var(--slotted-control-padding-inline-sm, 10px) );--_empty-inset: var(--slotted-list-empty-padding-sm, var(--slotted-space-6, 1rem))}[data-ui-list][data-part-root][data-size=lg]{--_gap: var(--slotted-list-gap-lg, var(--slotted-space-4, .5rem));--_section-inset-block: var( --slotted-list-section-padding-block-lg, var(--slotted-space-5, .75rem) );--_row-inset-inline: var( --slotted-list-padding-inline-lg, var(--slotted-control-padding-inline-lg, 16px) );--_empty-inset: var(--slotted-list-empty-padding-lg, var(--slotted-space-9, 2rem))}[data-ui-list][data-part-root][data-variant=framed]{background-color:var(--_surface);border:var(--_frame-width) solid var(--_frame-color);border-radius:var(--_frame-radius);overflow:clip}[data-ui-list][data-part-root][data-variant=separated]{row-gap:var(--_gap)}[data-ui-list] [data-part-section]{display:flex;flex-direction:column;min-inline-size:0}[data-ui-list][data-variant=separated] [data-part-section],[data-ui-list][data-variant=separated] [data-part-section-list]{row-gap:var(--_gap)}[data-ui-list] [data-part-section-label]{color:var(--_section-color);font-size:var(--_section-font-size);font-weight:var(--_section-weight);letter-spacing:var(--slotted-list-section-letter-spacing, 0);line-height:var(--slotted-line-height-sm, 1.45);margin-block:0;min-inline-size:0;padding-block:var(--_section-inset-block);padding-inline:var(--_row-inset-inline)}[data-ui-list][data-inset] [data-part-section-label],[data-ui-list][data-inset] [data-part-empty]{padding-inline:0}[data-ui-list] [data-part-section-label]:has(>[data-part-section-end]){align-items:baseline;display:flex;gap:var(--slotted-space-4, .5rem);justify-content:space-between}[data-ui-list] [data-part-section-end]{flex:none;font-variant-numeric:tabular-nums;white-space:nowrap}[data-ui-list] [data-part-section-label][data-variant=ruled]{border-block-end:var(--slotted-border-width-thin, 1px) solid var(--slotted-list-section-rule-color, var(--slotted-border-subtle, GrayText));color:var(--slotted-list-section-ruled-color, var(--slotted-text, CanvasText));font-weight:var(--slotted-font-weight-medium, 500)}[data-ui-list] [data-part-section-label][data-sticky]{background-color:var(--_surface);inset-block-start:0;position:sticky;z-index:var(--slotted-z-index-sticky, 100)}[data-ui-list] [data-part-empty]{align-items:center;color:var(--_empty-color);display:flex;flex-direction:column;justify-content:center;min-inline-size:0;padding-block:var(--_empty-inset);padding-inline:var(--_row-inset-inline);text-align:center}[data-ui-list][data-part-root][data-loading]{cursor:progress}}\n"] }]
129
131
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], marker: [{ type: i0.Input, args: [{ isSignal: true, alias: "marker", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }] } });
130
132
 
131
- /**
132
- * A group inside the set: the `li` holding a heading and a nested list, which
133
- * is the grouping HTML already has. MUI, Angular Material, Primer and React
134
- * Aria each leave the heading loose among the rows instead, so a reader hears a
135
- * heading inside a set rather than a set with a name.
136
- *
137
- * The three elements are the consumer's own, which is what this ecosystem
138
- * composes with: the heading keeps whichever level the document needs, and the
139
- * nested list keeps `ul` or `ol` to match the set around it. React reads the
140
- * heading element off a `level` input instead, because there the component owns
141
- * the tag; both reach the same accessibility tree.
142
- */
143
133
  class SlListSection {
144
134
  /**
145
135
  * The id the heading carries and the nested list names itself by. It is held
@@ -149,7 +139,7 @@ class SlListSection {
149
139
  labelId = signal(undefined, /* @ts-ignore */
150
140
  ...(ngDevMode ? [{ debugName: "labelId" }] : /* istanbul ignore next */ []));
151
141
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListSection, deps: [], target: i0.ɵɵFactoryTarget.Directive });
152
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlListSection, isStandalone: true, selector: "li[slListSection]", host: { attributes: { "data-part": "section" } }, exportAs: ["slListSection"], ngImport: i0 });
142
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlListSection, isStandalone: true, selector: "li[slListSection]", host: { attributes: { "data-part": "section", "data-part-section": "" } }, exportAs: ["slListSection"], ngImport: i0 });
153
143
  }
154
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListSection, decorators: [{
155
145
  type: Directive,
@@ -157,7 +147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
157
147
  selector: 'li[slListSection]',
158
148
  standalone: true,
159
149
  exportAs: 'slListSection',
160
- host: { 'data-part': 'section' },
150
+ host: { 'data-part': 'section', 'data-part-section': '' },
161
151
  }]
162
152
  }] });
163
153
  /**
@@ -166,6 +156,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
166
156
  * read as one list rather than as several.
167
157
  */
168
158
  class SlListSectionLabel {
159
+ /**
160
+ * How the heading is drawn. `caption` is the small muted name; `ruled` is the
161
+ * name in the text colour over a rule, with no ground behind it.
162
+ */
163
+ variant = input('caption', /* @ts-ignore */
164
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
169
165
  /**
170
166
  * Keeps the name in place while its own rows scroll past it. It takes the
171
167
  * set's surface and the library's sticky stack level, which is what a
@@ -180,7 +176,7 @@ class SlListSectionLabel {
180
176
  this.section?.labelId.set(this.id);
181
177
  }
182
178
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListSectionLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
183
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: SlListSectionLabel, isStandalone: true, selector: "[slListSectionLabel]", inputs: { sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "section-label" }, properties: { "attr.id": "id", "attr.data-sticky": "sticky() ? '' : null" } }, exportAs: ["slListSectionLabel"], ngImport: i0 });
179
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: SlListSectionLabel, isStandalone: true, selector: "[slListSectionLabel]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "section-label", "data-part-section-label": "" }, properties: { "attr.id": "id", "attr.data-sticky": "sticky() ? '' : null", "attr.data-variant": "variant()" } }, exportAs: ["slListSectionLabel"], ngImport: i0 });
184
180
  }
185
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListSectionLabel, decorators: [{
186
182
  type: Directive,
@@ -190,11 +186,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
190
186
  exportAs: 'slListSectionLabel',
191
187
  host: {
192
188
  'data-part': 'section-label',
189
+ 'data-part-section-label': '',
193
190
  '[attr.id]': 'id',
194
191
  '[attr.data-sticky]': "sticky() ? '' : null",
192
+ '[attr.data-variant]': 'variant()',
195
193
  },
196
194
  }]
197
- }], ctorParameters: () => [], propDecorators: { sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }] } });
195
+ }], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }] } });
196
+ /**
197
+ * What stands at the end of a group heading, on the line of the name: a day's
198
+ * balance, a count. Set in tabular figures.
199
+ */
200
+ class SlListSectionEnd {
201
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListSectionEnd, deps: [], target: i0.ɵɵFactoryTarget.Directive });
202
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlListSectionEnd, isStandalone: true, selector: "[slListSectionEnd]", host: { attributes: { "data-part": "section-end", "data-part-section-end": "" } }, ngImport: i0 });
203
+ }
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListSectionEnd, decorators: [{
205
+ type: Directive,
206
+ args: [{
207
+ selector: '[slListSectionEnd]',
208
+ standalone: true,
209
+ host: { 'data-part': 'section-end', 'data-part-section-end': '' },
210
+ }]
211
+ }] });
198
212
  /**
199
213
  * The rows of one group. `role="list"` for the same reason the set writes it:
200
214
  * the family draws its own marker, and the native one is what Safari and
@@ -210,7 +224,7 @@ class SlListSectionList {
210
224
  role = this.writtenRole ?? 'list';
211
225
  labelledBy = () => this.writtenLabelledBy ?? this.section?.labelId() ?? null;
212
226
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListSectionList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
213
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlListSectionList, isStandalone: true, selector: "ul[slListSectionList], ol[slListSectionList]", host: { attributes: { "data-part": "section-list" }, properties: { "attr.role": "role", "attr.aria-labelledby": "labelledBy()" } }, exportAs: ["slListSectionList"], ngImport: i0 });
227
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlListSectionList, isStandalone: true, selector: "ul[slListSectionList], ol[slListSectionList]", host: { attributes: { "data-part": "section-list", "data-part-section-list": "" }, properties: { "attr.role": "role", "attr.aria-labelledby": "labelledBy()" } }, exportAs: ["slListSectionList"], ngImport: i0 });
214
228
  }
215
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListSectionList, decorators: [{
216
230
  type: Directive,
@@ -220,6 +234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
220
234
  exportAs: 'slListSectionList',
221
235
  host: {
222
236
  'data-part': 'section-list',
237
+ 'data-part-section-list': '',
223
238
  '[attr.role]': 'role',
224
239
  '[attr.aria-labelledby]': 'labelledBy()',
225
240
  },
@@ -236,7 +251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
236
251
  */
237
252
  class SlListEmpty {
238
253
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive });
239
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlListEmpty, isStandalone: true, selector: "li[slListEmpty]", host: { attributes: { "data-part": "empty" } }, exportAs: ["slListEmpty"], ngImport: i0 });
254
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlListEmpty, isStandalone: true, selector: "li[slListEmpty]", host: { attributes: { "data-part": "empty", "data-part-empty": "" } }, exportAs: ["slListEmpty"], ngImport: i0 });
240
255
  }
241
256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlListEmpty, decorators: [{
242
257
  type: Directive,
@@ -244,7 +259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
244
259
  selector: 'li[slListEmpty]',
245
260
  standalone: true,
246
261
  exportAs: 'slListEmpty',
247
- host: { 'data-part': 'empty' },
262
+ host: { 'data-part': 'empty', 'data-part-empty': '' },
248
263
  }]
249
264
  }] });
250
265
 
@@ -252,5 +267,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
252
267
  * Generated bundle index. Do not edit.
253
268
  */
254
269
 
255
- export { LIST_DEFAULTS, SlList, SlListEmpty, SlListIdFactory, SlListSection, SlListSectionLabel, SlListSectionList, injectListDefaults, provideListDefaults };
270
+ export { LIST_DEFAULTS, SlList, SlListEmpty, SlListIdFactory, SlListSection, SlListSectionEnd, SlListSectionLabel, SlListSectionList, injectListDefaults, provideListDefaults };
256
271
  //# sourceMappingURL=slotted-angular-list.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-list.mjs","sources":["../../list/src/list-defaults.ts","../../list/src/list.ts","../../list/src/list-parts.ts","../../list/src/slotted-angular-list.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** How the rows are told apart. The vocabulary is `accordion`'s. */\nexport type ListVariant = 'plain' | 'ruled' | 'framed' | 'separated';\n\n/** The room a row gets. Density is the application's choice; this is not. */\nexport type ListSize = 'sm' | 'md' | 'lg';\n\n/**\n * What is painted in the marker column. It is a separate question from\n * `ordered`: an ordered set whose rows carry their own badges paints no number\n * and still reads in order.\n */\nexport type ListMarker = 'none' | 'bullet' | 'number';\n\nexport interface ListDefaults {\n inset: boolean;\n marker: ListMarker;\n size: ListSize;\n variant: ListVariant;\n}\n\nconst FALLBACK: ListDefaults = { inset: false, marker: 'none', size: 'md', variant: 'plain' };\n\nexport const LIST_DEFAULTS = new InjectionToken<ListDefaults>('slotted list defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its lists are told apart and how much room a\n * row gets, rather than repeating four inputs on every list. A list that states\n * any of them itself still wins: an explicit input is never overridden by the\n * token.\n */\nexport function provideListDefaults(defaults: Partial<ListDefaults>) {\n return {\n provide: LIST_DEFAULTS,\n useFactory: (): ListDefaults => ({\n inset: defaults.inset ?? FALLBACK.inset,\n marker: defaults.marker ?? FALLBACK.marker,\n size: defaults.size ?? FALLBACK.size,\n variant: defaults.variant ?? FALLBACK.variant,\n }),\n };\n}\n\n/** What a list renders as here, before it states anything of its own. */\nexport function injectListDefaults(): ListDefaults {\n return inject(LIST_DEFAULTS);\n}\n\n/**\n * A group's heading names its own nested list, so the heading needs an id and\n * the id has to be the same string on the server and in the browser. A counter\n * held by the injector produces one; `Math.random` would not match for\n * hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlListIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-list-${this.count}`;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectListDefaults } from './list-defaults';\nimport type { ListMarker, ListSize, ListVariant } from './list-defaults';\n\nexport type { ListMarker, ListSize, ListVariant } from './list-defaults';\n\n/**\n * A vertical run of related rows. The rows are `slListItem`, a family of its\n * own; this one decides how they are told apart, how much room each gets, what\n * is painted in the marker column and whether they keep their inline padding,\n * and hands those four down through the injector.\n *\n * The directive goes on the element the page wrote — `<ul slList>` or\n * `<ol slList>` — because the element carries the reading order and that is the\n * page's decision, not the family's.\n *\n * **`role=\"list\"` is written, and it is not redundant.** The family draws its\n * own marker, because a row is a content box beside its independent targets and\n * CSS has no `display` that is both `list-item` and a grid. Safari and\n * VoiceOver drop list semantics the moment CSS removes the marker, so the role\n * restores what the layout costs. A `role` the consumer wrote themselves — a\n * `menu`, a `listbox` they are wiring — survives.\n *\n * The set holds no state a consumer can own. Selection with roving focus is\n * `listbox`'s and `table`'s: ARIA 1.2 does not allow `aria-selected` on\n * `listitem`, so a selection model here would announce nothing.\n */\n@Component({\n selector: 'ul[slList], ol[slList]',\n standalone: true,\n exportAs: 'slList',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/list/list.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'list',\n 'data-part': 'root',\n '[attr.role]': 'role()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-marker]': 'resolvedMarker()',\n '[attr.data-inset]': \"resolvedInset() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n '[attr.aria-busy]': \"loading() ? 'true' : null\",\n },\n})\nexport class SlList {\n /** How the rows are told apart. Falls back to the injected default. */\n readonly variant = input<ListVariant>();\n /** The room a row gets. Falls back to the injected default. */\n readonly size = input<ListSize>();\n /** What is painted in the marker column. Falls back to the injected default. */\n readonly marker = input<ListMarker>();\n /**\n * Takes the rows' inline padding away, for a list inside a box that already\n * pads its own content. The rule and the fill still run edge to edge.\n */\n readonly inset = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /**\n * `aria-busy` on the set, which ARIA 1.2 §5.2.6 asks of a container whose\n * rows have not arrived. The family draws no placeholder: `skeleton` owns\n * that geometry and goes inside the rows.\n */\n readonly loading = input(false, { transform: booleanAttribute });\n\n private readonly defaults = injectListDefaults();\n\n /** A role the consumer wrote is never replaced by the family's. */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n protected readonly role = computed(() => this.writtenRole ?? 'list');\n /* Public, because a row reads them: the set is what a row asks when it has\n not been told itself. `role` stays protected — it is the host's alone. */\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedMarker = computed(() => this.marker() ?? this.defaults.marker);\n\n /**\n * Read by every row under this set, and by the row's own input first. The\n * input stays `undefined` until it is written, so a list that states\n * `inset=\"false\"` under a provider that states `true` keeps its own answer —\n * `booleanAttribute` alone would fold the two together.\n */\n readonly resolvedInset = computed(() => (this.inset() ?? this.defaults.inset) === true);\n}\n","import {\n booleanAttribute,\n Directive,\n HostAttributeToken,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { SlListIdFactory } from './list-defaults';\n\n/**\n * A group inside the set: the `li` holding a heading and a nested list, which\n * is the grouping HTML already has. MUI, Angular Material, Primer and React\n * Aria each leave the heading loose among the rows instead, so a reader hears a\n * heading inside a set rather than a set with a name.\n *\n * The three elements are the consumer's own, which is what this ecosystem\n * composes with: the heading keeps whichever level the document needs, and the\n * nested list keeps `ul` or `ol` to match the set around it. React reads the\n * heading element off a `level` input instead, because there the component owns\n * the tag; both reach the same accessibility tree.\n */\n@Directive({\n selector: 'li[slListSection]',\n standalone: true,\n exportAs: 'slListSection',\n host: { 'data-part': 'section' },\n})\nexport class SlListSection {\n /**\n * The id the heading carries and the nested list names itself by. It is held\n * here rather than passed between the two, because the pair is the group and\n * neither half can name the other on its own.\n */\n readonly labelId = signal<string | undefined>(undefined);\n}\n\n/**\n * The group's name. It shares the row's inline inset, so the heading and the\n * titles under it stand in one column — the alignment that makes a grouped list\n * read as one list rather than as several.\n */\n@Directive({\n selector: '[slListSectionLabel]',\n standalone: true,\n exportAs: 'slListSectionLabel',\n host: {\n 'data-part': 'section-label',\n '[attr.id]': 'id',\n '[attr.data-sticky]': \"sticky() ? '' : null\",\n },\n})\nexport class SlListSectionLabel {\n /**\n * Keeps the name in place while its own rows scroll past it. It takes the\n * set's surface and the library's sticky stack level, which is what a\n * consumer writing `position: sticky` alone does not get.\n */\n readonly sticky = input(false, { transform: booleanAttribute });\n\n private readonly section = inject(SlListSection, { optional: true });\n /** An id the consumer wrote is never replaced by the family's. */\n private readonly written = inject(new HostAttributeToken('id'), { optional: true });\n\n readonly id = this.written ?? inject(SlListIdFactory).next();\n\n constructor() {\n this.section?.labelId.set(this.id);\n }\n}\n\n/**\n * The rows of one group. `role=\"list\"` for the same reason the set writes it:\n * the family draws its own marker, and the native one is what Safari and\n * VoiceOver read the semantics from.\n */\n@Directive({\n selector: 'ul[slListSectionList], ol[slListSectionList]',\n standalone: true,\n exportAs: 'slListSectionList',\n host: {\n 'data-part': 'section-list',\n '[attr.role]': 'role',\n '[attr.aria-labelledby]': 'labelledBy()',\n },\n})\nexport class SlListSectionList {\n private readonly section = inject(SlListSection, { optional: true });\n /** A role the consumer wrote is never replaced by the family's. */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n readonly role = this.writtenRole ?? 'list';\n\n readonly labelledBy = () => this.writtenLabelledBy ?? this.section?.labelId() ?? null;\n}\n\n/**\n * What the set says when it holds nothing. It is an `li`, so the reader hears\n * \"list, one item\" and then the message; a message outside the list leaves them\n * with \"list, zero items\" and silence, and leaves the words outside the box a\n * framed set paints.\n *\n * The family supplies the box, the height and the muted ink. The words are the\n * page's, and `result-state` is what goes in here.\n */\n@Directive({\n selector: 'li[slListEmpty]',\n standalone: true,\n exportAs: 'slListEmpty',\n host: { 'data-part': 'empty' },\n})\nexport class SlListEmpty {}\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-list.mjs","sources":["../../list/src/list-defaults.ts","../../list/src/list.ts","../../list/src/list-parts.ts","../../list/src/slotted-angular-list.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** How the rows are told apart. The vocabulary is `accordion`'s. */\nexport type ListVariant = 'plain' | 'ruled' | 'framed' | 'separated';\n\n/** The room a row gets. Density is the application's choice; this is not. */\nexport type ListSize = 'sm' | 'md' | 'lg';\n\n/**\n * What is painted in the marker column. It is a separate question from\n * `ordered`: an ordered set whose rows carry their own badges paints no number\n * and still reads in order.\n */\nexport type ListMarker = 'none' | 'bullet' | 'number';\n\nexport interface ListDefaults {\n inset: boolean;\n marker: ListMarker;\n size: ListSize;\n variant: ListVariant;\n}\n\nconst FALLBACK: ListDefaults = { inset: false, marker: 'none', size: 'md', variant: 'plain' };\n\nexport const LIST_DEFAULTS = new InjectionToken<ListDefaults>('slotted list defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its lists are told apart and how much room a\n * row gets, rather than repeating four inputs on every list. A list that states\n * any of them itself still wins: an explicit input is never overridden by the\n * token.\n */\nexport function provideListDefaults(defaults: Partial<ListDefaults>) {\n return {\n provide: LIST_DEFAULTS,\n useFactory: (): ListDefaults => ({\n inset: defaults.inset ?? FALLBACK.inset,\n marker: defaults.marker ?? FALLBACK.marker,\n size: defaults.size ?? FALLBACK.size,\n variant: defaults.variant ?? FALLBACK.variant,\n }),\n };\n}\n\n/** What a list renders as here, before it states anything of its own. */\nexport function injectListDefaults(): ListDefaults {\n return inject(LIST_DEFAULTS);\n}\n\n/**\n * A group's heading names its own nested list, so the heading needs an id and\n * the id has to be the same string on the server and in the browser. A counter\n * held by the injector produces one; `Math.random` would not match for\n * hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlListIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-list-${this.count}`;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectListDefaults } from './list-defaults';\nimport type { ListMarker, ListSize, ListVariant } from './list-defaults';\n\nexport type { ListMarker, ListSize, ListVariant } from './list-defaults';\n\n/**\n * A vertical run of related rows. The rows are `slListItem`, a family of its\n * own; this one decides how they are told apart, how much room each gets, what\n * is painted in the marker column and whether they keep their inline padding,\n * and hands those four down through the injector.\n *\n * The directive goes on the element the page wrote — `<ul slList>` or\n * `<ol slList>` — because the element carries the reading order and that is the\n * page's decision, not the family's.\n *\n * **`role=\"list\"` is written, and it is not redundant.** The family draws its\n * own marker, because a row is a content box beside its independent targets and\n * CSS has no `display` that is both `list-item` and a grid. Safari and\n * VoiceOver drop list semantics the moment CSS removes the marker, so the role\n * restores what the layout costs. A `role` the consumer wrote themselves — a\n * `menu`, a `listbox` they are wiring — survives.\n *\n * The set holds no state a consumer can own. Selection with roving focus is\n * `listbox`'s and `table`'s: ARIA 1.2 does not allow `aria-selected` on\n * `listitem`, so a selection model here would announce nothing.\n */\n@Component({\n selector: 'ul[slList], ol[slList]',\n standalone: true,\n exportAs: 'slList',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/list/list.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'list',\n 'data-ui-list': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.role]': 'role()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-marker]': 'resolvedMarker()',\n '[attr.data-inset]': \"resolvedInset() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n '[attr.aria-busy]': \"loading() ? 'true' : null\",\n },\n})\nexport class SlList {\n /** How the rows are told apart. Falls back to the injected default. */\n readonly variant = input<ListVariant>();\n /** The room a row gets. Falls back to the injected default. */\n readonly size = input<ListSize>();\n /** What is painted in the marker column. Falls back to the injected default. */\n readonly marker = input<ListMarker>();\n /**\n * Takes the rows' inline padding away, for a list inside a box that already\n * pads its own content. The rule and the fill still run edge to edge.\n */\n readonly inset = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /**\n * `aria-busy` on the set, which ARIA 1.2 §5.2.6 asks of a container whose\n * rows have not arrived. The family draws no placeholder: `skeleton` owns\n * that geometry and goes inside the rows.\n */\n readonly loading = input(false, { transform: booleanAttribute });\n\n private readonly defaults = injectListDefaults();\n\n /** A role the consumer wrote is never replaced by the family's. */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n protected readonly role = computed(() => this.writtenRole ?? 'list');\n /* Public, because a row reads them: the set is what a row asks when it has\n not been told itself. `role` stays protected — it is the host's alone. */\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedMarker = computed(() => this.marker() ?? this.defaults.marker);\n\n /**\n * Read by every row under this set, and by the row's own input first. The\n * input stays `undefined` until it is written, so a list that states\n * `inset=\"false\"` under a provider that states `true` keeps its own answer —\n * `booleanAttribute` alone would fold the two together.\n */\n readonly resolvedInset = computed(() => (this.inset() ?? this.defaults.inset) === true);\n}\n","import {\n booleanAttribute,\n Directive,\n HostAttributeToken,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { SlListIdFactory } from './list-defaults';\n\n/**\n * A group inside the set: the `li` holding a heading and a nested list, which\n * is the grouping HTML already has. MUI, Angular Material, Primer and React\n * Aria each leave the heading loose among the rows instead, so a reader hears a\n * heading inside a set rather than a set with a name.\n *\n * The three elements are the consumer's own, which is what this ecosystem\n * composes with: the heading keeps whichever level the document needs, and the\n * nested list keeps `ul` or `ol` to match the set around it. React reads the\n * heading element off a `level` input instead, because there the component owns\n * the tag; both reach the same accessibility tree.\n */\n/** How a group heading is drawn. */\nexport type ListSectionLabelVariant = 'caption' | 'ruled';\n\n@Directive({\n selector: 'li[slListSection]',\n standalone: true,\n exportAs: 'slListSection',\n host: { 'data-part': 'section', 'data-part-section': '' },\n})\nexport class SlListSection {\n /**\n * The id the heading carries and the nested list names itself by. It is held\n * here rather than passed between the two, because the pair is the group and\n * neither half can name the other on its own.\n */\n readonly labelId = signal<string | undefined>(undefined);\n}\n\n/**\n * The group's name. It shares the row's inline inset, so the heading and the\n * titles under it stand in one column — the alignment that makes a grouped list\n * read as one list rather than as several.\n */\n@Directive({\n selector: '[slListSectionLabel]',\n standalone: true,\n exportAs: 'slListSectionLabel',\n host: {\n 'data-part': 'section-label',\n 'data-part-section-label': '',\n '[attr.id]': 'id',\n '[attr.data-sticky]': \"sticky() ? '' : null\",\n '[attr.data-variant]': 'variant()',\n },\n})\nexport class SlListSectionLabel {\n /**\n * How the heading is drawn. `caption` is the small muted name; `ruled` is the\n * name in the text colour over a rule, with no ground behind it.\n */\n readonly variant = input<ListSectionLabelVariant>('caption');\n /**\n * Keeps the name in place while its own rows scroll past it. It takes the\n * set's surface and the library's sticky stack level, which is what a\n * consumer writing `position: sticky` alone does not get.\n */\n readonly sticky = input(false, { transform: booleanAttribute });\n\n private readonly section = inject(SlListSection, { optional: true });\n /** An id the consumer wrote is never replaced by the family's. */\n private readonly written = inject(new HostAttributeToken('id'), { optional: true });\n\n readonly id = this.written ?? inject(SlListIdFactory).next();\n\n constructor() {\n this.section?.labelId.set(this.id);\n }\n}\n\n/**\n * What stands at the end of a group heading, on the line of the name: a day's\n * balance, a count. Set in tabular figures.\n */\n@Directive({\n selector: '[slListSectionEnd]',\n standalone: true,\n host: { 'data-part': 'section-end', 'data-part-section-end': '' },\n})\nexport class SlListSectionEnd {}\n\n/**\n * The rows of one group. `role=\"list\"` for the same reason the set writes it:\n * the family draws its own marker, and the native one is what Safari and\n * VoiceOver read the semantics from.\n */\n@Directive({\n selector: 'ul[slListSectionList], ol[slListSectionList]',\n standalone: true,\n exportAs: 'slListSectionList',\n host: {\n 'data-part': 'section-list',\n 'data-part-section-list': '',\n '[attr.role]': 'role',\n '[attr.aria-labelledby]': 'labelledBy()',\n },\n})\nexport class SlListSectionList {\n private readonly section = inject(SlListSection, { optional: true });\n /** A role the consumer wrote is never replaced by the family's. */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n readonly role = this.writtenRole ?? 'list';\n\n readonly labelledBy = () => this.writtenLabelledBy ?? this.section?.labelId() ?? null;\n}\n\n/**\n * What the set says when it holds nothing. It is an `li`, so the reader hears\n * \"list, one item\" and then the message; a message outside the list leaves them\n * with \"list, zero items\" and silence, and leaves the words outside the box a\n * framed set paints.\n *\n * The family supplies the box, the height and the muted ink. The words are the\n * page's, and `result-state` is what goes in here.\n */\n@Directive({\n selector: 'li[slListEmpty]',\n standalone: true,\n exportAs: 'slListEmpty',\n host: { 'data-part': 'empty', 'data-part-empty': '' },\n})\nexport class SlListEmpty {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}