@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,3 +1,4 @@
1
+ import { writeSelectorKey } from '@slotted/core/selector-key';
1
2
  import * as i0 from '@angular/core';
2
3
  import { InjectionToken, inject, input, booleanAttribute, signal, output, computed, HostAttributeToken, Injector, afterNextRender, ViewEncapsulation, ChangeDetectionStrategy, Component, contentChildren, forwardRef, ElementRef, EnvironmentInjector, ApplicationRef, effect, afterRenderEffect, untracked, DestroyRef, createComponent, Directive, numberAttribute } from '@angular/core';
3
4
  import { NgTemplateOutlet } from '@angular/common';
@@ -154,17 +155,19 @@ class SlBreadcrumb {
154
155
  afterNextRender(() => this.focusAfterExpand?.(), { injector: this.injector });
155
156
  }
156
157
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumb, deps: [], target: i0.ɵɵFactoryTarget.Component });
157
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlBreadcrumb, isStandalone: true, selector: "nav[slBreadcrumb]", inputs: { expandedValue: { classPropertyName: "expandedValue", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, maxItems: { classPropertyName: "maxItems", publicName: "maxItems", isSignal: true, isRequired: false, transformFunction: null }, itemsBeforeCollapse: { classPropertyName: "itemsBeforeCollapse", publicName: "itemsBeforeCollapse", isSignal: true, isRequired: false, transformFunction: null }, itemsAfterCollapse: { classPropertyName: "itemsAfterCollapse", publicName: "itemsAfterCollapse", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, overflow: { classPropertyName: "overflow", publicName: "overflow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandedChange: "expandedChange" }, host: { attributes: { "data-ui": "breadcrumb", "data-part": "root" }, properties: { "attr.aria-label": "accessibleLabel()", "attr.data-expanded": "expanded() ? \"\" : null", "attr.data-collapsed": "collapsedCount() > 0 ? collapsedCount() : null" } }, exportAs: ["slBreadcrumb"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui=breadcrumb]{--_rest: var(--slotted-breadcrumb-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-breadcrumb-color-current, var(--slotted-text, CanvasText));--_hover: var( --slotted-breadcrumb-color-hover, color-mix(in oklab, var(--_rest) 30%, var(--_strong)) );--_separator: var( --slotted-breadcrumb-separator-color, color-mix(in oklab, var(--_rest) 72%, transparent) );--_gap: var(--slotted-breadcrumb-gap, var(--slotted-control-gap-md, 8px));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_ellipsis-hover: var(--slotted-tone-secondary-subtle-hover);--_ellipsis-active: var(--slotted-tone-secondary-subtle-active);color:var(--_rest);display:block;font-family:var(--slotted-breadcrumb-font-family, var(--slotted-font-family-sans, inherit));font-size:var(--slotted-breadcrumb-font-size, var(--slotted-control-font-size-md, 13px));line-height:round(nearest,calc(var(--slotted-breadcrumb-line-height, var(--slotted-line-height-md, 1.5)) * 1em),2px)}[data-ui=breadcrumb] [data-part=list]{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--_gap);row-gap:max(var(--slotted-breadcrumb-row-gap, var(--slotted-space-2, .25rem)),calc(var(--slotted-target-min, 24px) - 1lh))}[data-ui=breadcrumb] [data-part=item]{align-items:center;column-gap:var(--_gap);display:flex;min-inline-size:0;max-inline-size:100%}[data-ui=breadcrumb] [data-part=item][hidden]{display:none}[data-ui=breadcrumb][data-expanded] [data-part=item]{transition:opacity var(--slotted-duration-medium) var(--slotted-easing-enter)}@starting-style{[data-ui=breadcrumb][data-expanded] [data-part=item]{opacity:0}}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger]){border-radius:var(--slotted-breadcrumb-radius, var(--slotted-control-radius, 4px));display:block;max-inline-size:var(--slotted-breadcrumb-item-measure, 100%);min-inline-size:0;overflow:hidden;text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:var(--slotted-breadcrumb-underline-thickness, from-font);text-overflow:ellipsis;text-underline-offset:var(--slotted-breadcrumb-underline-offset, .2em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);white-space:nowrap}[data-ui=breadcrumb] [data-part=link]{color:inherit}[data-ui=breadcrumb] [data-part=trigger]{appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:start}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger])>:is([data-ui=icon],[data-ui=avatar]){margin-inline-end:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger])>[data-ui=badge]{margin-inline-start:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui=breadcrumb] [data-part=trigger]>[data-ui=icon]:last-child{margin-inline:var(--slotted-space-2, 4px) 0;transition:rotate var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=breadcrumb] [data-part=trigger][data-open]>[data-ui=icon]:last-child{rotate:180deg}[data-ui=breadcrumb] [data-part=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):not([data-disabled]):hover{color:var(--_hover);text-decoration-color:currentColor}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):not([data-disabled]):is(:active,[data-open]){color:var(--_strong);text-decoration-color:currentColor}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]:not([data-disabled]):hover{color:var(--_strong)}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]:not([data-disabled]):is(:active,[data-open]){color:var(--_hover)}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-breadcrumb-focus-ring-offset, 1px);text-decoration-color:currentColor}[data-ui=breadcrumb] [data-part=ellipsis]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var( --slotted-breadcrumb-ellipsis-focus-ring-offset, calc(-1 * var(--slotted-focus-ring-width, 2px)) )}[data-ui=breadcrumb] [data-part=separator]{align-items:center;color:var(--_separator);display:flex;flex:none;justify-content:center}[data-ui=breadcrumb] [data-part=separator]:empty{background-color:currentColor;block-size:round(nearest,var(--slotted-breadcrumb-separator-length, .9em),1px);border-radius:var(--slotted-radius-full, 9999px);inline-size:var( --slotted-breadcrumb-separator-thickness, var(--slotted-border-width-thin, 1px) );rotate:var(--slotted-breadcrumb-separator-skew, 20deg)}[data-ui=breadcrumb] [data-part=separator]:empty:dir(rtl){rotate:calc(-1 * var(--slotted-breadcrumb-separator-skew, 20deg))}[data-ui=breadcrumb] [data-part=ellipsis]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;block-size:1lh;border:0;border-radius:var(--slotted-breadcrumb-ellipsis-radius, var(--slotted-radius-xs, 2px));color:inherit;cursor:pointer;display:flex;font:inherit;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;margin-inline:min(0px,calc(var(--slotted-space-2, .25rem) - var(--_gap)));padding:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=breadcrumb] [data-part=ellipsis]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=breadcrumb] [data-part=ellipsis]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui=breadcrumb] [data-part=ellipsis]:not([data-disabled]):hover{background-color:var(--slotted-breadcrumb-ellipsis-background-hover, var(--_ellipsis-hover))}[data-ui=breadcrumb] [data-part=ellipsis]:not([data-disabled]):active{background-color:var(--slotted-breadcrumb-ellipsis-background-active, var(--_ellipsis-active))}@media(forced-colors:active){[data-ui=breadcrumb] [data-part=separator]:empty{background-color:GrayText}[data-ui=breadcrumb] [data-part=ellipsis]{border:var(--slotted-border-width-thin, 1px) solid ButtonBorder}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
158
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlBreadcrumb, isStandalone: true, selector: "nav[slBreadcrumb]", inputs: { expandedValue: { classPropertyName: "expandedValue", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, maxItems: { classPropertyName: "maxItems", publicName: "maxItems", isSignal: true, isRequired: false, transformFunction: null }, itemsBeforeCollapse: { classPropertyName: "itemsBeforeCollapse", publicName: "itemsBeforeCollapse", isSignal: true, isRequired: false, transformFunction: null }, itemsAfterCollapse: { classPropertyName: "itemsAfterCollapse", publicName: "itemsAfterCollapse", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, overflow: { classPropertyName: "overflow", publicName: "overflow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandedChange: "expandedChange" }, host: { attributes: { "data-ui": "breadcrumb", "data-ui-breadcrumb": "", "data-part": "root", "data-part-root": "" }, properties: { "attr.aria-label": "accessibleLabel()", "attr.data-expanded": "expanded() ? \"\" : null", "attr.data-collapsed": "collapsedCount() > 0 ? collapsedCount() : null" } }, exportAs: ["slBreadcrumb"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui-breadcrumb]{--_rest: var(--slotted-breadcrumb-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-breadcrumb-color-current, var(--slotted-text, CanvasText));--_hover: var( --slotted-breadcrumb-color-hover, color-mix(in oklab, var(--_rest) 30%, var(--_strong)) );--_separator: var( --slotted-breadcrumb-separator-color, color-mix(in oklab, var(--_rest) 72%, transparent) );--_gap: var(--slotted-breadcrumb-gap, var(--slotted-control-gap-md, 8px));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_ellipsis-hover: var(--slotted-tone-secondary-subtle-hover);--_ellipsis-active: var(--slotted-tone-secondary-subtle-active);color:var(--_rest);display:block;font-family:var(--slotted-breadcrumb-font-family, var(--slotted-font-family-sans, inherit));font-size:var(--slotted-breadcrumb-font-size, var(--slotted-control-font-size-md, 13px));line-height:round(nearest,calc(var(--slotted-breadcrumb-line-height, var(--slotted-line-height-md, 1.5)) * 1em),2px)}[data-ui-breadcrumb] [data-part-list]{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--_gap);row-gap:max(var(--slotted-breadcrumb-row-gap, var(--slotted-space-2, .25rem)),calc(var(--slotted-target-min, 24px) - 1lh))}[data-ui-breadcrumb] [data-part-item]{align-items:center;column-gap:var(--_gap);display:flex;min-inline-size:0;max-inline-size:100%}[data-ui-breadcrumb] [data-part-item][hidden]{display:none}[data-ui-breadcrumb][data-expanded] [data-part-item]{transition:opacity var(--slotted-duration-medium) var(--slotted-easing-enter)}@starting-style{[data-ui-breadcrumb][data-expanded] [data-part-item]{opacity:0}}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger]){border-radius:var(--slotted-breadcrumb-radius, var(--slotted-control-radius, 4px));display:block;max-inline-size:var(--slotted-breadcrumb-item-measure, 100%);min-inline-size:0;overflow:hidden;text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:var(--slotted-breadcrumb-underline-thickness, from-font);text-overflow:ellipsis;text-underline-offset:var(--slotted-breadcrumb-underline-offset, .2em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);white-space:nowrap}[data-ui-breadcrumb] [data-part-link]{color:inherit}[data-ui-breadcrumb] [data-part-trigger]{appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:start}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger])>:is([data-ui-icon],[data-ui-avatar]){margin-inline-end:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger])>[data-ui-badge]{margin-inline-start:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui-breadcrumb] [data-part-trigger]>[data-ui-icon]:last-child{margin-inline:var(--slotted-space-2, 4px) 0;transition:rotate var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-breadcrumb] [data-part-trigger][data-open]>[data-ui-icon]:last-child{rotate:180deg}[data-ui-breadcrumb] [data-part-page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):not([data-disabled]):hover{color:var(--_hover);text-decoration-color:currentColor}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):not([data-disabled]):is(:active,[data-open]){color:var(--_strong);text-decoration-color:currentColor}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]:not([data-disabled]):hover{color:var(--_strong)}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]:not([data-disabled]):is(:active,[data-open]){color:var(--_hover)}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-breadcrumb-focus-ring-offset, 1px);text-decoration-color:currentColor}[data-ui-breadcrumb] [data-part-ellipsis]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var( --slotted-breadcrumb-ellipsis-focus-ring-offset, calc(-1 * var(--slotted-focus-ring-width, 2px)) )}[data-ui-breadcrumb] [data-part-separator]{align-items:center;color:var(--_separator);display:flex;flex:none;justify-content:center}[data-ui-breadcrumb] [data-part-separator]:empty{background-color:currentColor;block-size:round(nearest,var(--slotted-breadcrumb-separator-length, .9em),1px);border-radius:var(--slotted-radius-full, 9999px);inline-size:var( --slotted-breadcrumb-separator-thickness, var(--slotted-border-width-thin, 1px) );rotate:var(--slotted-breadcrumb-separator-skew, 20deg)}[data-ui-breadcrumb] [data-part-separator]:empty:dir(rtl){rotate:calc(-1 * var(--slotted-breadcrumb-separator-skew, 20deg))}[data-ui-breadcrumb] [data-part-ellipsis]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;block-size:1lh;border:0;border-radius:var(--slotted-breadcrumb-ellipsis-radius, var(--slotted-radius-xs, 2px));color:inherit;cursor:pointer;display:flex;font:inherit;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;margin-inline:min(0px,calc(var(--slotted-space-2, .25rem) - var(--_gap)));padding:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-breadcrumb] [data-part-ellipsis]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui-breadcrumb] [data-part-ellipsis]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui-breadcrumb] [data-part-ellipsis]:not([data-disabled]):hover{background-color:var(--slotted-breadcrumb-ellipsis-background-hover, var(--_ellipsis-hover))}[data-ui-breadcrumb] [data-part-ellipsis]:not([data-disabled]):active{background-color:var(--slotted-breadcrumb-ellipsis-background-active, var(--_ellipsis-active))}@media(forced-colors:active){[data-ui-breadcrumb] [data-part-separator]:empty{background-color:GrayText}[data-ui-breadcrumb] [data-part-ellipsis]{border:var(--slotted-border-width-thin, 1px) solid ButtonBorder}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
158
159
  }
159
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumb, decorators: [{
160
161
  type: Component,
161
162
  args: [{ selector: 'nav[slBreadcrumb]', standalone: true, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'slBreadcrumb', host: {
162
163
  'data-ui': 'breadcrumb',
164
+ 'data-ui-breadcrumb': '',
163
165
  'data-part': 'root',
166
+ 'data-part-root': '',
164
167
  '[attr.aria-label]': 'accessibleLabel()',
165
168
  '[attr.data-expanded]': 'expanded() ? "" : null',
166
169
  '[attr.data-collapsed]': 'collapsedCount() > 0 ? collapsedCount() : null',
167
- }, styles: ["@layer slotted.components{[data-ui=breadcrumb]{--_rest: var(--slotted-breadcrumb-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-breadcrumb-color-current, var(--slotted-text, CanvasText));--_hover: var( --slotted-breadcrumb-color-hover, color-mix(in oklab, var(--_rest) 30%, var(--_strong)) );--_separator: var( --slotted-breadcrumb-separator-color, color-mix(in oklab, var(--_rest) 72%, transparent) );--_gap: var(--slotted-breadcrumb-gap, var(--slotted-control-gap-md, 8px));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_ellipsis-hover: var(--slotted-tone-secondary-subtle-hover);--_ellipsis-active: var(--slotted-tone-secondary-subtle-active);color:var(--_rest);display:block;font-family:var(--slotted-breadcrumb-font-family, var(--slotted-font-family-sans, inherit));font-size:var(--slotted-breadcrumb-font-size, var(--slotted-control-font-size-md, 13px));line-height:round(nearest,calc(var(--slotted-breadcrumb-line-height, var(--slotted-line-height-md, 1.5)) * 1em),2px)}[data-ui=breadcrumb] [data-part=list]{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--_gap);row-gap:max(var(--slotted-breadcrumb-row-gap, var(--slotted-space-2, .25rem)),calc(var(--slotted-target-min, 24px) - 1lh))}[data-ui=breadcrumb] [data-part=item]{align-items:center;column-gap:var(--_gap);display:flex;min-inline-size:0;max-inline-size:100%}[data-ui=breadcrumb] [data-part=item][hidden]{display:none}[data-ui=breadcrumb][data-expanded] [data-part=item]{transition:opacity var(--slotted-duration-medium) var(--slotted-easing-enter)}@starting-style{[data-ui=breadcrumb][data-expanded] [data-part=item]{opacity:0}}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger]){border-radius:var(--slotted-breadcrumb-radius, var(--slotted-control-radius, 4px));display:block;max-inline-size:var(--slotted-breadcrumb-item-measure, 100%);min-inline-size:0;overflow:hidden;text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:var(--slotted-breadcrumb-underline-thickness, from-font);text-overflow:ellipsis;text-underline-offset:var(--slotted-breadcrumb-underline-offset, .2em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);white-space:nowrap}[data-ui=breadcrumb] [data-part=link]{color:inherit}[data-ui=breadcrumb] [data-part=trigger]{appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:start}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger])>:is([data-ui=icon],[data-ui=avatar]){margin-inline-end:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger])>[data-ui=badge]{margin-inline-start:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui=breadcrumb] [data-part=trigger]>[data-ui=icon]:last-child{margin-inline:var(--slotted-space-2, 4px) 0;transition:rotate var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=breadcrumb] [data-part=trigger][data-open]>[data-ui=icon]:last-child{rotate:180deg}[data-ui=breadcrumb] [data-part=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):not([data-disabled]):hover{color:var(--_hover);text-decoration-color:currentColor}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):not([data-disabled]):is(:active,[data-open]){color:var(--_strong);text-decoration-color:currentColor}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]:not([data-disabled]):hover{color:var(--_strong)}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]:not([data-disabled]):is(:active,[data-open]){color:var(--_hover)}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-breadcrumb-focus-ring-offset, 1px);text-decoration-color:currentColor}[data-ui=breadcrumb] [data-part=ellipsis]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var( --slotted-breadcrumb-ellipsis-focus-ring-offset, calc(-1 * var(--slotted-focus-ring-width, 2px)) )}[data-ui=breadcrumb] [data-part=separator]{align-items:center;color:var(--_separator);display:flex;flex:none;justify-content:center}[data-ui=breadcrumb] [data-part=separator]:empty{background-color:currentColor;block-size:round(nearest,var(--slotted-breadcrumb-separator-length, .9em),1px);border-radius:var(--slotted-radius-full, 9999px);inline-size:var( --slotted-breadcrumb-separator-thickness, var(--slotted-border-width-thin, 1px) );rotate:var(--slotted-breadcrumb-separator-skew, 20deg)}[data-ui=breadcrumb] [data-part=separator]:empty:dir(rtl){rotate:calc(-1 * var(--slotted-breadcrumb-separator-skew, 20deg))}[data-ui=breadcrumb] [data-part=ellipsis]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;block-size:1lh;border:0;border-radius:var(--slotted-breadcrumb-ellipsis-radius, var(--slotted-radius-xs, 2px));color:inherit;cursor:pointer;display:flex;font:inherit;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;margin-inline:min(0px,calc(var(--slotted-space-2, .25rem) - var(--_gap)));padding:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=breadcrumb] [data-part=ellipsis]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=breadcrumb] [data-part=ellipsis]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui=breadcrumb] [data-part=ellipsis]:not([data-disabled]):hover{background-color:var(--slotted-breadcrumb-ellipsis-background-hover, var(--_ellipsis-hover))}[data-ui=breadcrumb] [data-part=ellipsis]:not([data-disabled]):active{background-color:var(--slotted-breadcrumb-ellipsis-background-active, var(--_ellipsis-active))}@media(forced-colors:active){[data-ui=breadcrumb] [data-part=separator]:empty{background-color:GrayText}[data-ui=breadcrumb] [data-part=ellipsis]{border:var(--slotted-border-width-thin, 1px) solid ButtonBorder}}}\n"] }]
170
+ }, styles: ["@layer slotted.components{[data-ui-breadcrumb]{--_rest: var(--slotted-breadcrumb-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-breadcrumb-color-current, var(--slotted-text, CanvasText));--_hover: var( --slotted-breadcrumb-color-hover, color-mix(in oklab, var(--_rest) 30%, var(--_strong)) );--_separator: var( --slotted-breadcrumb-separator-color, color-mix(in oklab, var(--_rest) 72%, transparent) );--_gap: var(--slotted-breadcrumb-gap, var(--slotted-control-gap-md, 8px));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_ellipsis-hover: var(--slotted-tone-secondary-subtle-hover);--_ellipsis-active: var(--slotted-tone-secondary-subtle-active);color:var(--_rest);display:block;font-family:var(--slotted-breadcrumb-font-family, var(--slotted-font-family-sans, inherit));font-size:var(--slotted-breadcrumb-font-size, var(--slotted-control-font-size-md, 13px));line-height:round(nearest,calc(var(--slotted-breadcrumb-line-height, var(--slotted-line-height-md, 1.5)) * 1em),2px)}[data-ui-breadcrumb] [data-part-list]{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--_gap);row-gap:max(var(--slotted-breadcrumb-row-gap, var(--slotted-space-2, .25rem)),calc(var(--slotted-target-min, 24px) - 1lh))}[data-ui-breadcrumb] [data-part-item]{align-items:center;column-gap:var(--_gap);display:flex;min-inline-size:0;max-inline-size:100%}[data-ui-breadcrumb] [data-part-item][hidden]{display:none}[data-ui-breadcrumb][data-expanded] [data-part-item]{transition:opacity var(--slotted-duration-medium) var(--slotted-easing-enter)}@starting-style{[data-ui-breadcrumb][data-expanded] [data-part-item]{opacity:0}}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger]){border-radius:var(--slotted-breadcrumb-radius, var(--slotted-control-radius, 4px));display:block;max-inline-size:var(--slotted-breadcrumb-item-measure, 100%);min-inline-size:0;overflow:hidden;text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:var(--slotted-breadcrumb-underline-thickness, from-font);text-overflow:ellipsis;text-underline-offset:var(--slotted-breadcrumb-underline-offset, .2em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);white-space:nowrap}[data-ui-breadcrumb] [data-part-link]{color:inherit}[data-ui-breadcrumb] [data-part-trigger]{appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:start}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger])>:is([data-ui-icon],[data-ui-avatar]){margin-inline-end:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger])>[data-ui-badge]{margin-inline-start:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui-breadcrumb] [data-part-trigger]>[data-ui-icon]:last-child{margin-inline:var(--slotted-space-2, 4px) 0;transition:rotate var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-breadcrumb] [data-part-trigger][data-open]>[data-ui-icon]:last-child{rotate:180deg}[data-ui-breadcrumb] [data-part-page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):not([data-disabled]):hover{color:var(--_hover);text-decoration-color:currentColor}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):not([data-disabled]):is(:active,[data-open]){color:var(--_strong);text-decoration-color:currentColor}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]:not([data-disabled]):hover{color:var(--_strong)}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]:not([data-disabled]):is(:active,[data-open]){color:var(--_hover)}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-breadcrumb-focus-ring-offset, 1px);text-decoration-color:currentColor}[data-ui-breadcrumb] [data-part-ellipsis]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var( --slotted-breadcrumb-ellipsis-focus-ring-offset, calc(-1 * var(--slotted-focus-ring-width, 2px)) )}[data-ui-breadcrumb] [data-part-separator]{align-items:center;color:var(--_separator);display:flex;flex:none;justify-content:center}[data-ui-breadcrumb] [data-part-separator]:empty{background-color:currentColor;block-size:round(nearest,var(--slotted-breadcrumb-separator-length, .9em),1px);border-radius:var(--slotted-radius-full, 9999px);inline-size:var( --slotted-breadcrumb-separator-thickness, var(--slotted-border-width-thin, 1px) );rotate:var(--slotted-breadcrumb-separator-skew, 20deg)}[data-ui-breadcrumb] [data-part-separator]:empty:dir(rtl){rotate:calc(-1 * var(--slotted-breadcrumb-separator-skew, 20deg))}[data-ui-breadcrumb] [data-part-ellipsis]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;block-size:1lh;border:0;border-radius:var(--slotted-breadcrumb-ellipsis-radius, var(--slotted-radius-xs, 2px));color:inherit;cursor:pointer;display:flex;font:inherit;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;margin-inline:min(0px,calc(var(--slotted-space-2, .25rem) - var(--_gap)));padding:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-breadcrumb] [data-part-ellipsis]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui-breadcrumb] [data-part-ellipsis]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui-breadcrumb] [data-part-ellipsis]:not([data-disabled]):hover{background-color:var(--slotted-breadcrumb-ellipsis-background-hover, var(--_ellipsis-hover))}[data-ui-breadcrumb] [data-part-ellipsis]:not([data-disabled]):active{background-color:var(--slotted-breadcrumb-ellipsis-background-active, var(--_ellipsis-active))}@media(forced-colors:active){[data-ui-breadcrumb] [data-part-separator]:empty{background-color:GrayText}[data-ui-breadcrumb] [data-part-ellipsis]{border:var(--slotted-border-width-thin, 1px) solid ButtonBorder}}}\n"] }]
168
171
  }], propDecorators: { expandedValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }], defaultExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultExpanded", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], maxItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxItems", required: false }] }], itemsBeforeCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsBeforeCollapse", required: false }] }], itemsAfterCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsAfterCollapse", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], overflow: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflow", required: false }] }], expandedChange: [{ type: i0.Output, args: ["expandedChange"] }] } });
169
172
  /**
170
173
  * The control that reveals what the collapse hides, in an item of its own.
@@ -188,18 +191,19 @@ class SlBreadcrumbEllipsis {
188
191
  this.trail.expand('keyboard', event);
189
192
  }
190
193
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlBreadcrumbEllipsis, isStandalone: true, selector: "li[slBreadcrumbEllipsis]", host: { attributes: { "data-part": "item" } }, ngImport: i0, template: `
194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlBreadcrumbEllipsis, isStandalone: true, selector: "li[slBreadcrumbEllipsis]", host: { attributes: { "data-part": "item", "data-part-item": "" } }, ngImport: i0, template: `
192
195
  <button
193
196
  [attr.aria-label]="label()"
194
197
  aria-expanded="false"
195
198
  data-part="ellipsis"
199
+ data-part-ellipsis=""
196
200
  type="button"
197
201
  (click)="trail.expand('pointer', $event)"
198
202
  (keydown)="onKeydown($event)"
199
203
  >
200
204
  <span slIcon><svg slGlyph name="ellipsis"></svg></span>
201
205
  </button>
202
- <span aria-hidden="true" data-part="separator">
206
+ <span aria-hidden="true" data-part="separator" data-part-separator="">
203
207
  <ng-container *ngTemplateOutlet="trail.separatorValue() ?? null"></ng-container>
204
208
  </span>
205
209
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
@@ -215,19 +219,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
215
219
  [attr.aria-label]="label()"
216
220
  aria-expanded="false"
217
221
  data-part="ellipsis"
222
+ data-part-ellipsis=""
218
223
  type="button"
219
224
  (click)="trail.expand('pointer', $event)"
220
225
  (keydown)="onKeydown($event)"
221
226
  >
222
227
  <span slIcon><svg slGlyph name="ellipsis"></svg></span>
223
228
  </button>
224
- <span aria-hidden="true" data-part="separator">
229
+ <span aria-hidden="true" data-part="separator" data-part-separator="">
225
230
  <ng-container *ngTemplateOutlet="trail.separatorValue() ?? null"></ng-container>
226
231
  </span>
227
232
  `,
228
233
  changeDetection: ChangeDetectionStrategy.OnPush,
229
234
  encapsulation: ViewEncapsulation.None,
230
- host: { 'data-part': 'item' },
235
+ host: { 'data-part': 'item', 'data-part-item': '' },
231
236
  }]
232
237
  }] });
233
238
  /**
@@ -380,7 +385,7 @@ class SlBreadcrumbList {
380
385
  return this.ellipsis.location.nativeElement;
381
386
  }
382
387
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
383
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.7", type: SlBreadcrumbList, isStandalone: true, selector: "ol[slBreadcrumbList]", host: { attributes: { "data-part": "list" } }, queries: [{ propertyName: "items", predicate: i0.forwardRef(() => SlBreadcrumbItem), isSignal: true }], exportAs: ["slBreadcrumbList"], ngImport: i0 });
388
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.7", type: SlBreadcrumbList, isStandalone: true, selector: "ol[slBreadcrumbList]", host: { attributes: { "data-part": "list", "data-part-list": "" } }, queries: [{ propertyName: "items", predicate: i0.forwardRef(() => SlBreadcrumbItem), isSignal: true }], exportAs: ["slBreadcrumbList"], ngImport: i0 });
384
389
  }
385
390
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbList, decorators: [{
386
391
  type: Directive,
@@ -388,7 +393,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
388
393
  selector: 'ol[slBreadcrumbList]',
389
394
  standalone: true,
390
395
  exportAs: 'slBreadcrumbList',
391
- host: { 'data-part': 'list' },
396
+ host: { 'data-part': 'list', 'data-part-list': '' },
392
397
  }]
393
398
  }], ctorParameters: () => [], propDecorators: { items: [{ type: i0.ContentChildren, args: [forwardRef(() => SlBreadcrumbItem), { isSignal: true }] }] } });
394
399
  /**
@@ -408,28 +413,29 @@ class SlBreadcrumbItem {
408
413
  this.element.querySelector('a, button, [tabindex]')?.focus();
409
414
  }
410
415
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
411
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlBreadcrumbItem, isStandalone: true, selector: "li[slBreadcrumbItem]", host: { attributes: { "data-part": "item" }, properties: { "attr.hidden": "collapsed() ? \"\" : null" } }, exportAs: ["slBreadcrumbItem"], ngImport: i0, template: `
416
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlBreadcrumbItem, isStandalone: true, selector: "li[slBreadcrumbItem]", host: { attributes: { "data-part": "item", "data-part-item": "" }, properties: { "attr.hidden": "collapsed() ? \"\" : null" } }, exportAs: ["slBreadcrumbItem"], ngImport: i0, template: `
412
417
  <ng-content></ng-content>
413
418
  @if (!last()) {
414
- <span aria-hidden="true" data-part="separator">
419
+ <span aria-hidden="true" data-part="separator" data-part-separator="">
415
420
  <ng-container *ngTemplateOutlet="trail.separatorValue() ?? null"></ng-container>
416
421
  </span>
417
422
  }
418
- `, isInline: true, styles: ["@layer slotted.components{[data-ui=breadcrumb]{--_rest: var(--slotted-breadcrumb-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-breadcrumb-color-current, var(--slotted-text, CanvasText));--_hover: var( --slotted-breadcrumb-color-hover, color-mix(in oklab, var(--_rest) 30%, var(--_strong)) );--_separator: var( --slotted-breadcrumb-separator-color, color-mix(in oklab, var(--_rest) 72%, transparent) );--_gap: var(--slotted-breadcrumb-gap, var(--slotted-control-gap-md, 8px));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_ellipsis-hover: var(--slotted-tone-secondary-subtle-hover);--_ellipsis-active: var(--slotted-tone-secondary-subtle-active);color:var(--_rest);display:block;font-family:var(--slotted-breadcrumb-font-family, var(--slotted-font-family-sans, inherit));font-size:var(--slotted-breadcrumb-font-size, var(--slotted-control-font-size-md, 13px));line-height:round(nearest,calc(var(--slotted-breadcrumb-line-height, var(--slotted-line-height-md, 1.5)) * 1em),2px)}[data-ui=breadcrumb] [data-part=list]{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--_gap);row-gap:max(var(--slotted-breadcrumb-row-gap, var(--slotted-space-2, .25rem)),calc(var(--slotted-target-min, 24px) - 1lh))}[data-ui=breadcrumb] [data-part=item]{align-items:center;column-gap:var(--_gap);display:flex;min-inline-size:0;max-inline-size:100%}[data-ui=breadcrumb] [data-part=item][hidden]{display:none}[data-ui=breadcrumb][data-expanded] [data-part=item]{transition:opacity var(--slotted-duration-medium) var(--slotted-easing-enter)}@starting-style{[data-ui=breadcrumb][data-expanded] [data-part=item]{opacity:0}}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger]){border-radius:var(--slotted-breadcrumb-radius, var(--slotted-control-radius, 4px));display:block;max-inline-size:var(--slotted-breadcrumb-item-measure, 100%);min-inline-size:0;overflow:hidden;text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:var(--slotted-breadcrumb-underline-thickness, from-font);text-overflow:ellipsis;text-underline-offset:var(--slotted-breadcrumb-underline-offset, .2em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);white-space:nowrap}[data-ui=breadcrumb] [data-part=link]{color:inherit}[data-ui=breadcrumb] [data-part=trigger]{appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:start}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger])>:is([data-ui=icon],[data-ui=avatar]){margin-inline-end:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger])>[data-ui=badge]{margin-inline-start:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui=breadcrumb] [data-part=trigger]>[data-ui=icon]:last-child{margin-inline:var(--slotted-space-2, 4px) 0;transition:rotate var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=breadcrumb] [data-part=trigger][data-open]>[data-ui=icon]:last-child{rotate:180deg}[data-ui=breadcrumb] [data-part=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):not([data-disabled]):hover{color:var(--_hover);text-decoration-color:currentColor}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):not([data-disabled]):is(:active,[data-open]){color:var(--_strong);text-decoration-color:currentColor}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]:not([data-disabled]):hover{color:var(--_strong)}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]:not([data-disabled]):is(:active,[data-open]){color:var(--_hover)}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-breadcrumb-focus-ring-offset, 1px);text-decoration-color:currentColor}[data-ui=breadcrumb] [data-part=ellipsis]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var( --slotted-breadcrumb-ellipsis-focus-ring-offset, calc(-1 * var(--slotted-focus-ring-width, 2px)) )}[data-ui=breadcrumb] [data-part=separator]{align-items:center;color:var(--_separator);display:flex;flex:none;justify-content:center}[data-ui=breadcrumb] [data-part=separator]:empty{background-color:currentColor;block-size:round(nearest,var(--slotted-breadcrumb-separator-length, .9em),1px);border-radius:var(--slotted-radius-full, 9999px);inline-size:var( --slotted-breadcrumb-separator-thickness, var(--slotted-border-width-thin, 1px) );rotate:var(--slotted-breadcrumb-separator-skew, 20deg)}[data-ui=breadcrumb] [data-part=separator]:empty:dir(rtl){rotate:calc(-1 * var(--slotted-breadcrumb-separator-skew, 20deg))}[data-ui=breadcrumb] [data-part=ellipsis]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;block-size:1lh;border:0;border-radius:var(--slotted-breadcrumb-ellipsis-radius, var(--slotted-radius-xs, 2px));color:inherit;cursor:pointer;display:flex;font:inherit;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;margin-inline:min(0px,calc(var(--slotted-space-2, .25rem) - var(--_gap)));padding:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=breadcrumb] [data-part=ellipsis]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=breadcrumb] [data-part=ellipsis]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui=breadcrumb] [data-part=ellipsis]:not([data-disabled]):hover{background-color:var(--slotted-breadcrumb-ellipsis-background-hover, var(--_ellipsis-hover))}[data-ui=breadcrumb] [data-part=ellipsis]:not([data-disabled]):active{background-color:var(--slotted-breadcrumb-ellipsis-background-active, var(--_ellipsis-active))}@media(forced-colors:active){[data-ui=breadcrumb] [data-part=separator]:empty{background-color:GrayText}[data-ui=breadcrumb] [data-part=ellipsis]{border:var(--slotted-border-width-thin, 1px) solid ButtonBorder}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
423
+ `, isInline: true, styles: ["@layer slotted.components{[data-ui-breadcrumb]{--_rest: var(--slotted-breadcrumb-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-breadcrumb-color-current, var(--slotted-text, CanvasText));--_hover: var( --slotted-breadcrumb-color-hover, color-mix(in oklab, var(--_rest) 30%, var(--_strong)) );--_separator: var( --slotted-breadcrumb-separator-color, color-mix(in oklab, var(--_rest) 72%, transparent) );--_gap: var(--slotted-breadcrumb-gap, var(--slotted-control-gap-md, 8px));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_ellipsis-hover: var(--slotted-tone-secondary-subtle-hover);--_ellipsis-active: var(--slotted-tone-secondary-subtle-active);color:var(--_rest);display:block;font-family:var(--slotted-breadcrumb-font-family, var(--slotted-font-family-sans, inherit));font-size:var(--slotted-breadcrumb-font-size, var(--slotted-control-font-size-md, 13px));line-height:round(nearest,calc(var(--slotted-breadcrumb-line-height, var(--slotted-line-height-md, 1.5)) * 1em),2px)}[data-ui-breadcrumb] [data-part-list]{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--_gap);row-gap:max(var(--slotted-breadcrumb-row-gap, var(--slotted-space-2, .25rem)),calc(var(--slotted-target-min, 24px) - 1lh))}[data-ui-breadcrumb] [data-part-item]{align-items:center;column-gap:var(--_gap);display:flex;min-inline-size:0;max-inline-size:100%}[data-ui-breadcrumb] [data-part-item][hidden]{display:none}[data-ui-breadcrumb][data-expanded] [data-part-item]{transition:opacity var(--slotted-duration-medium) var(--slotted-easing-enter)}@starting-style{[data-ui-breadcrumb][data-expanded] [data-part-item]{opacity:0}}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger]){border-radius:var(--slotted-breadcrumb-radius, var(--slotted-control-radius, 4px));display:block;max-inline-size:var(--slotted-breadcrumb-item-measure, 100%);min-inline-size:0;overflow:hidden;text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:var(--slotted-breadcrumb-underline-thickness, from-font);text-overflow:ellipsis;text-underline-offset:var(--slotted-breadcrumb-underline-offset, .2em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);white-space:nowrap}[data-ui-breadcrumb] [data-part-link]{color:inherit}[data-ui-breadcrumb] [data-part-trigger]{appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:start}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger])>:is([data-ui-icon],[data-ui-avatar]){margin-inline-end:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger])>[data-ui-badge]{margin-inline-start:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui-breadcrumb] [data-part-trigger]>[data-ui-icon]:last-child{margin-inline:var(--slotted-space-2, 4px) 0;transition:rotate var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-breadcrumb] [data-part-trigger][data-open]>[data-ui-icon]:last-child{rotate:180deg}[data-ui-breadcrumb] [data-part-page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):not([data-disabled]):hover{color:var(--_hover);text-decoration-color:currentColor}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):not([data-disabled]):is(:active,[data-open]){color:var(--_strong);text-decoration-color:currentColor}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]:not([data-disabled]):hover{color:var(--_strong)}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]:not([data-disabled]):is(:active,[data-open]){color:var(--_hover)}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-breadcrumb-focus-ring-offset, 1px);text-decoration-color:currentColor}[data-ui-breadcrumb] [data-part-ellipsis]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var( --slotted-breadcrumb-ellipsis-focus-ring-offset, calc(-1 * var(--slotted-focus-ring-width, 2px)) )}[data-ui-breadcrumb] [data-part-separator]{align-items:center;color:var(--_separator);display:flex;flex:none;justify-content:center}[data-ui-breadcrumb] [data-part-separator]:empty{background-color:currentColor;block-size:round(nearest,var(--slotted-breadcrumb-separator-length, .9em),1px);border-radius:var(--slotted-radius-full, 9999px);inline-size:var( --slotted-breadcrumb-separator-thickness, var(--slotted-border-width-thin, 1px) );rotate:var(--slotted-breadcrumb-separator-skew, 20deg)}[data-ui-breadcrumb] [data-part-separator]:empty:dir(rtl){rotate:calc(-1 * var(--slotted-breadcrumb-separator-skew, 20deg))}[data-ui-breadcrumb] [data-part-ellipsis]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;block-size:1lh;border:0;border-radius:var(--slotted-breadcrumb-ellipsis-radius, var(--slotted-radius-xs, 2px));color:inherit;cursor:pointer;display:flex;font:inherit;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;margin-inline:min(0px,calc(var(--slotted-space-2, .25rem) - var(--_gap)));padding:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-breadcrumb] [data-part-ellipsis]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui-breadcrumb] [data-part-ellipsis]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui-breadcrumb] [data-part-ellipsis]:not([data-disabled]):hover{background-color:var(--slotted-breadcrumb-ellipsis-background-hover, var(--_ellipsis-hover))}[data-ui-breadcrumb] [data-part-ellipsis]:not([data-disabled]):active{background-color:var(--slotted-breadcrumb-ellipsis-background-active, var(--_ellipsis-active))}@media(forced-colors:active){[data-ui-breadcrumb] [data-part-separator]:empty{background-color:GrayText}[data-ui-breadcrumb] [data-part-ellipsis]{border:var(--slotted-border-width-thin, 1px) solid ButtonBorder}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
419
424
  }
420
425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbItem, decorators: [{
421
426
  type: Component,
422
427
  args: [{ selector: 'li[slBreadcrumbItem]', standalone: true, imports: [NgTemplateOutlet], template: `
423
428
  <ng-content></ng-content>
424
429
  @if (!last()) {
425
- <span aria-hidden="true" data-part="separator">
430
+ <span aria-hidden="true" data-part="separator" data-part-separator="">
426
431
  <ng-container *ngTemplateOutlet="trail.separatorValue() ?? null"></ng-container>
427
432
  </span>
428
433
  }
429
434
  `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'slBreadcrumbItem', host: {
430
435
  'data-part': 'item',
436
+ 'data-part-item': '',
431
437
  '[attr.hidden]': 'collapsed() ? "" : null',
432
- }, styles: ["@layer slotted.components{[data-ui=breadcrumb]{--_rest: var(--slotted-breadcrumb-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-breadcrumb-color-current, var(--slotted-text, CanvasText));--_hover: var( --slotted-breadcrumb-color-hover, color-mix(in oklab, var(--_rest) 30%, var(--_strong)) );--_separator: var( --slotted-breadcrumb-separator-color, color-mix(in oklab, var(--_rest) 72%, transparent) );--_gap: var(--slotted-breadcrumb-gap, var(--slotted-control-gap-md, 8px));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_ellipsis-hover: var(--slotted-tone-secondary-subtle-hover);--_ellipsis-active: var(--slotted-tone-secondary-subtle-active);color:var(--_rest);display:block;font-family:var(--slotted-breadcrumb-font-family, var(--slotted-font-family-sans, inherit));font-size:var(--slotted-breadcrumb-font-size, var(--slotted-control-font-size-md, 13px));line-height:round(nearest,calc(var(--slotted-breadcrumb-line-height, var(--slotted-line-height-md, 1.5)) * 1em),2px)}[data-ui=breadcrumb] [data-part=list]{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--_gap);row-gap:max(var(--slotted-breadcrumb-row-gap, var(--slotted-space-2, .25rem)),calc(var(--slotted-target-min, 24px) - 1lh))}[data-ui=breadcrumb] [data-part=item]{align-items:center;column-gap:var(--_gap);display:flex;min-inline-size:0;max-inline-size:100%}[data-ui=breadcrumb] [data-part=item][hidden]{display:none}[data-ui=breadcrumb][data-expanded] [data-part=item]{transition:opacity var(--slotted-duration-medium) var(--slotted-easing-enter)}@starting-style{[data-ui=breadcrumb][data-expanded] [data-part=item]{opacity:0}}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger]){border-radius:var(--slotted-breadcrumb-radius, var(--slotted-control-radius, 4px));display:block;max-inline-size:var(--slotted-breadcrumb-item-measure, 100%);min-inline-size:0;overflow:hidden;text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:var(--slotted-breadcrumb-underline-thickness, from-font);text-overflow:ellipsis;text-underline-offset:var(--slotted-breadcrumb-underline-offset, .2em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);white-space:nowrap}[data-ui=breadcrumb] [data-part=link]{color:inherit}[data-ui=breadcrumb] [data-part=trigger]{appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:start}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger])>:is([data-ui=icon],[data-ui=avatar]){margin-inline-end:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui=breadcrumb] :is([data-part=link],[data-part=page],[data-part=trigger])>[data-ui=badge]{margin-inline-start:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui=breadcrumb] [data-part=trigger]>[data-ui=icon]:last-child{margin-inline:var(--slotted-space-2, 4px) 0;transition:rotate var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=breadcrumb] [data-part=trigger][data-open]>[data-ui=icon]:last-child{rotate:180deg}[data-ui=breadcrumb] [data-part=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):not([data-disabled]):hover{color:var(--_hover);text-decoration-color:currentColor}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):not([data-disabled]):is(:active,[data-open]){color:var(--_strong);text-decoration-color:currentColor}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]:not([data-disabled]):hover{color:var(--_strong)}[data-ui=breadcrumb] [data-part=trigger][aria-current=page]:not([data-disabled]):is(:active,[data-open]){color:var(--_hover)}[data-ui=breadcrumb] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-breadcrumb-focus-ring-offset, 1px);text-decoration-color:currentColor}[data-ui=breadcrumb] [data-part=ellipsis]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var( --slotted-breadcrumb-ellipsis-focus-ring-offset, calc(-1 * var(--slotted-focus-ring-width, 2px)) )}[data-ui=breadcrumb] [data-part=separator]{align-items:center;color:var(--_separator);display:flex;flex:none;justify-content:center}[data-ui=breadcrumb] [data-part=separator]:empty{background-color:currentColor;block-size:round(nearest,var(--slotted-breadcrumb-separator-length, .9em),1px);border-radius:var(--slotted-radius-full, 9999px);inline-size:var( --slotted-breadcrumb-separator-thickness, var(--slotted-border-width-thin, 1px) );rotate:var(--slotted-breadcrumb-separator-skew, 20deg)}[data-ui=breadcrumb] [data-part=separator]:empty:dir(rtl){rotate:calc(-1 * var(--slotted-breadcrumb-separator-skew, 20deg))}[data-ui=breadcrumb] [data-part=ellipsis]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;block-size:1lh;border:0;border-radius:var(--slotted-breadcrumb-ellipsis-radius, var(--slotted-radius-xs, 2px));color:inherit;cursor:pointer;display:flex;font:inherit;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;margin-inline:min(0px,calc(var(--slotted-space-2, .25rem) - var(--_gap)));padding:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=breadcrumb] [data-part=ellipsis]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=breadcrumb] [data-part=ellipsis]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui=breadcrumb] [data-part=ellipsis]:not([data-disabled]):hover{background-color:var(--slotted-breadcrumb-ellipsis-background-hover, var(--_ellipsis-hover))}[data-ui=breadcrumb] [data-part=ellipsis]:not([data-disabled]):active{background-color:var(--slotted-breadcrumb-ellipsis-background-active, var(--_ellipsis-active))}@media(forced-colors:active){[data-ui=breadcrumb] [data-part=separator]:empty{background-color:GrayText}[data-ui=breadcrumb] [data-part=ellipsis]{border:var(--slotted-border-width-thin, 1px) solid ButtonBorder}}}\n"] }]
438
+ }, styles: ["@layer slotted.components{[data-ui-breadcrumb]{--_rest: var(--slotted-breadcrumb-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-breadcrumb-color-current, var(--slotted-text, CanvasText));--_hover: var( --slotted-breadcrumb-color-hover, color-mix(in oklab, var(--_rest) 30%, var(--_strong)) );--_separator: var( --slotted-breadcrumb-separator-color, color-mix(in oklab, var(--_rest) 72%, transparent) );--_gap: var(--slotted-breadcrumb-gap, var(--slotted-control-gap-md, 8px));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_ellipsis-hover: var(--slotted-tone-secondary-subtle-hover);--_ellipsis-active: var(--slotted-tone-secondary-subtle-active);color:var(--_rest);display:block;font-family:var(--slotted-breadcrumb-font-family, var(--slotted-font-family-sans, inherit));font-size:var(--slotted-breadcrumb-font-size, var(--slotted-control-font-size-md, 13px));line-height:round(nearest,calc(var(--slotted-breadcrumb-line-height, var(--slotted-line-height-md, 1.5)) * 1em),2px)}[data-ui-breadcrumb] [data-part-list]{align-items:center;display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;column-gap:var(--_gap);row-gap:max(var(--slotted-breadcrumb-row-gap, var(--slotted-space-2, .25rem)),calc(var(--slotted-target-min, 24px) - 1lh))}[data-ui-breadcrumb] [data-part-item]{align-items:center;column-gap:var(--_gap);display:flex;min-inline-size:0;max-inline-size:100%}[data-ui-breadcrumb] [data-part-item][hidden]{display:none}[data-ui-breadcrumb][data-expanded] [data-part-item]{transition:opacity var(--slotted-duration-medium) var(--slotted-easing-enter)}@starting-style{[data-ui-breadcrumb][data-expanded] [data-part-item]{opacity:0}}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger]){border-radius:var(--slotted-breadcrumb-radius, var(--slotted-control-radius, 4px));display:block;max-inline-size:var(--slotted-breadcrumb-item-measure, 100%);min-inline-size:0;overflow:hidden;text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:var(--slotted-breadcrumb-underline-thickness, from-font);text-overflow:ellipsis;text-underline-offset:var(--slotted-breadcrumb-underline-offset, .2em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard);white-space:nowrap}[data-ui-breadcrumb] [data-part-link]{color:inherit}[data-ui-breadcrumb] [data-part-trigger]{appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:start}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger])>:is([data-ui-icon],[data-ui-avatar]){margin-inline-end:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui-breadcrumb] :is([data-part-link],[data-part-page],[data-part-trigger])>[data-ui-badge]{margin-inline-start:var(--slotted-breadcrumb-content-gap, var(--slotted-space-3, 6px))}[data-ui-breadcrumb] [data-part-trigger]>[data-ui-icon]:last-child{margin-inline:var(--slotted-space-2, 4px) 0;transition:rotate var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-breadcrumb] [data-part-trigger][data-open]>[data-ui-icon]:last-child{rotate:180deg}[data-ui-breadcrumb] [data-part-page]{color:var(--_strong);font-weight:var(--slotted-breadcrumb-page-weight, var(--slotted-font-weight-medium, 500))}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):not([data-disabled]):hover{color:var(--_hover);text-decoration-color:currentColor}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):not([data-disabled]):is(:active,[data-open]){color:var(--_strong);text-decoration-color:currentColor}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]:not([data-disabled]):hover{color:var(--_strong)}[data-ui-breadcrumb] [data-part-trigger][aria-current=page]:not([data-disabled]):is(:active,[data-open]){color:var(--_hover)}[data-ui-breadcrumb] :is([data-part-link],[data-part-trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-breadcrumb-focus-ring-offset, 1px);text-decoration-color:currentColor}[data-ui-breadcrumb] [data-part-ellipsis]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var( --slotted-breadcrumb-ellipsis-focus-ring-offset, calc(-1 * var(--slotted-focus-ring-width, 2px)) )}[data-ui-breadcrumb] [data-part-separator]{align-items:center;color:var(--_separator);display:flex;flex:none;justify-content:center}[data-ui-breadcrumb] [data-part-separator]:empty{background-color:currentColor;block-size:round(nearest,var(--slotted-breadcrumb-separator-length, .9em),1px);border-radius:var(--slotted-radius-full, 9999px);inline-size:var( --slotted-breadcrumb-separator-thickness, var(--slotted-border-width-thin, 1px) );rotate:var(--slotted-breadcrumb-separator-skew, 20deg)}[data-ui-breadcrumb] [data-part-separator]:empty:dir(rtl){rotate:calc(-1 * var(--slotted-breadcrumb-separator-skew, 20deg))}[data-ui-breadcrumb] [data-part-ellipsis]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;block-size:1lh;border:0;border-radius:var(--slotted-breadcrumb-ellipsis-radius, var(--slotted-radius-xs, 2px));color:inherit;cursor:pointer;display:flex;font:inherit;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;margin-inline:min(0px,calc(var(--slotted-space-2, .25rem) - var(--_gap)));padding:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-breadcrumb] [data-part-ellipsis]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui-breadcrumb] [data-part-ellipsis]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui-breadcrumb] [data-part-ellipsis]:not([data-disabled]):hover{background-color:var(--slotted-breadcrumb-ellipsis-background-hover, var(--_ellipsis-hover))}[data-ui-breadcrumb] [data-part-ellipsis]:not([data-disabled]):active{background-color:var(--slotted-breadcrumb-ellipsis-background-active, var(--_ellipsis-active))}@media(forced-colors:active){[data-ui-breadcrumb] [data-part-separator]:empty{background-color:GrayText}[data-ui-breadcrumb] [data-part-ellipsis]{border:var(--slotted-border-width-thin, 1px) solid ButtonBorder}}}\n"] }]
433
439
  }] });
434
440
  /**
435
441
  * An ancestor that can be reached. The directive sits on the consumer's own
@@ -443,7 +449,7 @@ class SlBreadcrumbLink {
443
449
  this.element.focus();
444
450
  }
445
451
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
446
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlBreadcrumbLink, isStandalone: true, selector: "a[slBreadcrumbLink]", host: { attributes: { "data-part": "link" } }, exportAs: ["slBreadcrumbLink"], ngImport: i0 });
452
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlBreadcrumbLink, isStandalone: true, selector: "a[slBreadcrumbLink]", host: { attributes: { "data-part": "link", "data-part-link": "" } }, exportAs: ["slBreadcrumbLink"], ngImport: i0 });
447
453
  }
448
454
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbLink, decorators: [{
449
455
  type: Directive,
@@ -451,7 +457,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
451
457
  selector: 'a[slBreadcrumbLink]',
452
458
  standalone: true,
453
459
  exportAs: 'slBreadcrumbLink',
454
- host: { 'data-part': 'link' },
460
+ host: { 'data-part': 'link', 'data-part-link': '' },
455
461
  }]
456
462
  }] });
457
463
  /**
@@ -461,7 +467,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
461
467
  */
462
468
  class SlBreadcrumbPage {
463
469
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbPage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
464
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlBreadcrumbPage, isStandalone: true, selector: "[slBreadcrumbPage]", host: { attributes: { "data-part": "page", "aria-current": "page" } }, exportAs: ["slBreadcrumbPage"], ngImport: i0 });
470
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlBreadcrumbPage, isStandalone: true, selector: "[slBreadcrumbPage]", host: { attributes: { "data-part": "page", "data-part-page": "", "aria-current": "page" } }, exportAs: ["slBreadcrumbPage"], ngImport: i0 });
465
471
  }
466
472
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbPage, decorators: [{
467
473
  type: Directive,
@@ -471,6 +477,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
471
477
  exportAs: 'slBreadcrumbPage',
472
478
  host: {
473
479
  'data-part': 'page',
480
+ 'data-part-page': '',
474
481
  'aria-current': 'page',
475
482
  },
476
483
  }]
@@ -503,10 +510,10 @@ class SlBreadcrumbTrigger {
503
510
  * part written back after the first render is never erased again —
504
511
  * `docs/build-briefing.md` records the rule.
505
512
  */
506
- afterNextRender(() => this.element.setAttribute('data-part', 'trigger'));
513
+ afterNextRender(() => writeSelectorKey(this.element, 'part', 'trigger'));
507
514
  }
508
515
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbTrigger, deps: [], target: i0.ɵɵFactoryTarget.Component });
509
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlBreadcrumbTrigger, isStandalone: true, selector: "button[slBreadcrumbTrigger]", inputs: { current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "trigger" }, properties: { "attr.type": "ownType ?? \"button\"", "attr.aria-current": "current() ? \"page\" : ownCurrent" } }, exportAs: ["slBreadcrumbTrigger"], ngImport: i0, template: `<ng-content></ng-content><span slIcon><svg slGlyph name="chevron-down"></svg></span>`, isInline: true, dependencies: [{ kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
516
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlBreadcrumbTrigger, isStandalone: true, selector: "button[slBreadcrumbTrigger]", inputs: { current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "trigger", "data-part-trigger": "" }, properties: { "attr.type": "ownType ?? \"button\"", "attr.aria-current": "current() ? \"page\" : ownCurrent" } }, exportAs: ["slBreadcrumbTrigger"], ngImport: i0, template: `<ng-content></ng-content><span slIcon><svg slGlyph name="chevron-down"></svg></span>`, isInline: true, dependencies: [{ kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
510
517
  }
511
518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBreadcrumbTrigger, decorators: [{
512
519
  type: Component,
@@ -520,6 +527,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
520
527
  exportAs: 'slBreadcrumbTrigger',
521
528
  host: {
522
529
  'data-part': 'trigger',
530
+ 'data-part-trigger': '',
523
531
  '[attr.type]': 'ownType ?? "button"',
524
532
  '[attr.aria-current]': 'current() ? "page" : ownCurrent',
525
533
  },
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-breadcrumb.mjs","sources":["../../breadcrumb/src/breadcrumb.constants.ts","../../breadcrumb/src/breadcrumb.ts","../../breadcrumb/src/slotted-angular-breadcrumb.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\n\n/**\n * What a trail does with crumbs its width cannot hold. `collapse` folds the\n * middle ones into the ellipsis; `wrap` lets the row break onto a second line\n * and only the count collapses.\n */\nexport type BreadcrumbOverflow = 'collapse' | 'wrap';\n\n/** Why the trail expanded. Only two things can ask: a press and a key. */\nexport type BreadcrumbExpandReason = 'pointer' | 'keyboard';\n\n/**\n * What every trail on the page does before it states anything of its own. The\n * three collapse numbers are here because how deep a trail may get before it\n * folds is a decision about the application rather than about one page.\n */\nexport interface BreadcrumbDefaults {\n itemsAfterCollapse?: number;\n itemsBeforeCollapse?: number;\n maxItems?: number;\n overflow?: BreadcrumbOverflow;\n /** The mark drawn between two crumbs, rendered once per item. */\n separator?: TemplateRef<unknown>;\n}\n\nexport const BREADCRUMB_DEFAULT_MAX_ITEMS = 8;\nexport const BREADCRUMB_DEFAULT_ITEMS_BEFORE = 1;\nexport const BREADCRUMB_DEFAULT_ITEMS_AFTER = 2;\nexport const BREADCRUMB_DEFAULT_OVERFLOW: BreadcrumbOverflow = 'collapse';\n\nexport const BREADCRUMB_DEFAULTS_TOKEN = new InjectionToken<BreadcrumbDefaults>(\n 'slotted breadcrumb defaults',\n { providedIn: 'root', factory: (): BreadcrumbDefaults => ({}) },\n);\n\n/**\n * An application decides once how deep its trails may get before they fold,\n * whether they fold for want of width, and what is drawn between two crumbs. A\n * trail that states any of those itself still wins: an explicit input is never\n * overridden by the token. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideBreadcrumbDefaults(defaults: BreadcrumbDefaults) {\n return { provide: BREADCRUMB_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectBreadcrumbDefaults(): BreadcrumbDefaults {\n return inject(BREADCRUMB_DEFAULTS_TOKEN);\n}\n\n/**\n * Which crumbs survive a collapse, as indices into the trail. Shared with the\n * React binding's own copy through the tests that assert the same table, and\n * deliberately not shared through `@slotted/core`: it is four lines, and a core\n * module exists for arithmetic two bindings would otherwise get *differently*\n * wrong, not for arithmetic they would each get right.\n */\nexport function collapsedRange(count: number, before: number, after: number) {\n const kept = Math.max(0, before) + Math.max(0, after);\n if (count <= kept) return undefined;\n return { start: Math.max(0, before), end: count - Math.max(0, after) };\n}\n","import {\n afterNextRender,\n afterRenderEffect,\n ApplicationRef,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n type ComponentRef,\n computed,\n contentChildren,\n createComponent,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n EnvironmentInjector,\n forwardRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n breadcrumbMessages,\n type BreadcrumbMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { createCollapse, type CollapseHandle } from '@slotted/core/overflow';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport {\n BREADCRUMB_DEFAULT_ITEMS_AFTER,\n BREADCRUMB_DEFAULT_ITEMS_BEFORE,\n BREADCRUMB_DEFAULT_MAX_ITEMS,\n BREADCRUMB_DEFAULT_OVERFLOW,\n collapsedRange,\n injectBreadcrumbDefaults,\n type BreadcrumbExpandReason,\n type BreadcrumbOverflow,\n} from './breadcrumb.constants';\n\n/**\n * The trail of ancestors above the current page.\n *\n * **The landmark and the list are the platform's.** `nav` makes the trail\n * findable and `ol` carries the hierarchy and the set size, which is the whole\n * of the APG's Breadcrumb pattern: it lists no keyboard interaction and two\n * attributes, and both are written here rather than reimplemented.\n *\n * **The collapse expands in place.** An overlay would need a layer, a\n * positioner and a dismissal policy; this needs none of them. The hidden\n * crumbs carry `hidden`, so they leave the accessibility tree with the page,\n * and the button that hides them names the count.\n *\n * **A trail that does not fit folds.** With `overflow=\"collapse\"` the list\n * measures itself and folds the middle crumbs its width cannot hold into the\n * same ellipsis, nearest the root first; what folded is read from the layout\n * and reported in `data-collapsed`, not owned by anyone.\n *\n * **It is a component on the consumer's own `nav`.** A directive carries no\n * `styleUrl`, and the element was never the family's to choose.\n */\n@Component({\n selector: 'nav[slBreadcrumb]',\n standalone: true,\n template: '<ng-content></ng-content>',\n styleUrls: ['../../../styles/src/breadcrumb/breadcrumb.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumb',\n host: {\n 'data-ui': 'breadcrumb',\n 'data-part': 'root',\n '[attr.aria-label]': 'accessibleLabel()',\n '[attr.data-expanded]': 'expanded() ? \"\" : null',\n '[attr.data-collapsed]': 'collapsedCount() > 0 ? collapsedCount() : null',\n },\n})\nexport class SlBreadcrumb {\n /**\n * Present means controlled, for the life of the component, which is why the\n * unset value is `undefined` rather than `false`: a family that read `false`\n * as a consumer's answer would never own its own state.\n */\n readonly expandedValue = input(undefined, {\n alias: 'expanded',\n transform: (value: boolean | string | undefined) =>\n value === undefined ? undefined : booleanAttribute(value),\n });\n /** What an uncontrolled trail starts from, read once. */\n readonly defaultExpanded = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * landmark's name (`label`) and the ellipsis. A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<BreadcrumbMessages> | undefined>(undefined);\n readonly maxItems = input(undefined, { transform: optionalNumber });\n readonly itemsBeforeCollapse = input(undefined, { transform: optionalNumber });\n readonly itemsAfterCollapse = input(undefined, { transform: optionalNumber });\n readonly separator = input<TemplateRef<unknown> | undefined>(undefined);\n /** What the trail does with crumbs its width cannot hold. */\n readonly overflow = input<BreadcrumbOverflow | undefined>(undefined);\n\n /** How many crumbs are folded into the ellipsis, written by the list. */\n readonly collapsedCount = signal(0);\n\n /**\n * Emitted before the trail expands, carrying the value it replaces, the\n * reason and the event it came from. It is not the second half of\n * `[(expanded)]`: a two-way binding has one slot and can carry none of those.\n */\n readonly expandedChange = output<ChangeRequest<boolean>>();\n\n private readonly own = signal(false);\n readonly expanded = computed(() => this.expandedValue() ?? this.own());\n\n private readonly defaults = injectBreadcrumbDefaults();\n\n /** A static `aria-label` the consumer wrote survives the host binding. */\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n /** The family's words in the language in force, with this trail's `messages` laid over them. */\n readonly t = injectMessages(breadcrumbMessages, this.messages);\n readonly accessibleLabel = computed(() => this.ownLabel ?? this.t('label'));\n readonly maxItemsValue = computed(\n () => this.maxItems() ?? this.defaults.maxItems ?? BREADCRUMB_DEFAULT_MAX_ITEMS,\n );\n readonly beforeValue = computed(\n () =>\n this.itemsBeforeCollapse() ??\n this.defaults.itemsBeforeCollapse ??\n BREADCRUMB_DEFAULT_ITEMS_BEFORE,\n );\n readonly afterValue = computed(\n () =>\n this.itemsAfterCollapse() ??\n this.defaults.itemsAfterCollapse ??\n BREADCRUMB_DEFAULT_ITEMS_AFTER,\n );\n readonly separatorValue = computed(() => this.separator() ?? this.defaults.separator);\n readonly overflowValue = computed(\n () => this.overflow() ?? this.defaults.overflow ?? BREADCRUMB_DEFAULT_OVERFLOW,\n );\n\n /**\n * Where focus goes once the ellipsis stops existing, registered by the list —\n * the only part that can see which crumb the ellipsis replaced. React reaches\n * the same crumb through an id it generates; Angular reaches it through the\n * query it already has, and neither writes anything the other does not.\n */\n private focusAfterExpand: (() => void) | undefined;\n\n registerFocusTarget(focus: (() => void) | undefined) {\n this.focusAfterExpand = focus;\n }\n\n private readonly injector = inject(Injector);\n\n /**\n * The ellipsis stops existing the moment it is pressed, and focus on a\n * removed element is lost to the body — so it is given to the first crumb the\n * expansion revealed. The move waits a microtask because that crumb is still\n * hidden while this runs.\n */\n expand(reason: BreadcrumbExpandReason, source?: Event) {\n if (this.expanded()) return;\n const state = createControllable<boolean>({\n controlled: this.expandedValue(),\n initial: this.expanded(),\n onRequest: (request) => this.expandedChange.emit(request),\n });\n if (state.request(true, reason, source)) this.own.set(true);\n /**\n * After the render, not after a microtask: the crumb focus moves to is\n * still hidden while this runs, and a microtask fires before Angular has\n * written the DOM. Focus then stayed on a removed button and fell to the\n * body, which the spec caught and nothing else would have.\n */\n afterNextRender(() => this.focusAfterExpand?.(), { injector: this.injector });\n }\n}\n\n/**\n * The control that reveals what the collapse hides, in an item of its own.\n *\n * The list creates it rather than any crumb drawing it, because it has to be a\n * sibling of the crumbs: a crumb that drew it inside itself hid it together\n * with itself, since the first crumb the collapse hides is the one it stands\n * in front of. Its accessible name carries the count, because three dots say\n * nothing about how much is behind them.\n */\n@Component({\n selector: 'li[slBreadcrumbEllipsis]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon],\n template: `\n <button\n [attr.aria-label]=\"label()\"\n aria-expanded=\"false\"\n data-part=\"ellipsis\"\n type=\"button\"\n (click)=\"trail.expand('pointer', $event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <span slIcon><svg slGlyph name=\"ellipsis\"></svg></span>\n </button>\n <span aria-hidden=\"true\" data-part=\"separator\">\n <ng-container *ngTemplateOutlet=\"trail.separatorValue() ?? null\"></ng-container>\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'item' },\n})\nclass SlBreadcrumbEllipsis {\n readonly trail = inject(SlBreadcrumb);\n /* Declared below this class, and read only when an instance is created. */\n private readonly list = inject(SlBreadcrumbList);\n\n readonly label = computed(() => this.trail.t('showHidden', { count: this.list.hiddenCount() }));\n\n onKeydown(event: KeyboardEvent) {\n /* `Enter` and `Space` both activate a button and the browser turns each\n into a click; this is what tells the two apart in the request. */\n if (event.key === 'Enter' || event.key === ' ') this.trail.expand('keyboard', event);\n }\n}\n\n/**\n * The ordered list, and the one part that knows how many crumbs there are.\n *\n * It queries its items rather than projecting them blindly, because two facts\n * about a crumb can only be known from the outside: whether it is the last —\n * the last draws no separator — and whether the count collapse is hiding it.\n * It also owns the ellipsis, which it places in front of the first crumb that\n * can fold, and the width collapse.\n *\n * That is where the two bindings differ and the DOM does not: React maps its\n * children, Angular writes the same facts back onto queried items and inserts\n * the ellipsis's item itself.\n */\n@Directive({\n selector: 'ol[slBreadcrumbList]',\n standalone: true,\n exportAs: 'slBreadcrumbList',\n host: { 'data-part': 'list' },\n})\nexport class SlBreadcrumbList {\n private readonly trail = inject(SlBreadcrumb);\n /* The crumb is declared below this class, and the dev-server transform puts\n the query predicate in a static initializer — a direct reference would read\n the binding before it exists. `forwardRef` defers the read to the query. */\n private readonly items = contentChildren<SlBreadcrumbItem>(forwardRef(() => SlBreadcrumbItem));\n private readonly host: HTMLOListElement = inject(ElementRef).nativeElement;\n private readonly injector = inject(Injector);\n private readonly environment = inject(EnvironmentInjector);\n private readonly application = inject(ApplicationRef);\n\n private ellipsis: ComponentRef<SlBreadcrumbEllipsis> | null = null;\n private collapse: CollapseHandle | null = null;\n private readonly folded = signal(0);\n\n /**\n * The range is computed whether or not the trail is expanded, because two\n * different things read it. The collapse reads it only while folded; the\n * focus target reads it afterwards, and it has to still be there — the id\n * used to disappear with the ellipsis, which left focus on a removed button\n * and therefore on the body.\n */\n private readonly range = computed(() => {\n const count = this.items().length;\n const maxItems = this.trail.maxItemsValue();\n return maxItems <= 0 || count <= maxItems\n ? undefined\n : collapsedRange(count, this.trail.beforeValue(), this.trail.afterValue());\n });\n private readonly counted = computed(() => (this.trail.expanded() ? undefined : this.range()));\n /** Whether there is a middle at all: crumbs outside the ones that never fold. */\n private readonly middle = computed(\n () =>\n this.items().length >\n Math.max(0, this.trail.beforeValue()) + Math.max(0, this.trail.afterValue()),\n );\n /**\n * The width collapse runs only while the count has hidden nothing: a trail\n * the count already folded shows only the crumbs that never fold. One writer\n * per `hidden` attribute keeps the two from undoing each other — the item's\n * host binding writes it for the count, `createCollapse` for the width.\n */\n private readonly measuring = computed(\n () =>\n this.trail.overflowValue() === 'collapse' &&\n !this.trail.expanded() &&\n this.range() === undefined &&\n this.middle(),\n );\n\n readonly hiddenCount = computed(() => {\n const counted = this.counted();\n return counted === undefined ? this.folded() : counted.end - counted.start;\n });\n\n constructor() {\n effect(() => {\n const items = this.items();\n const counted = this.counted();\n for (const [index, item] of items.entries()) {\n item.last.set(index === items.length - 1);\n item.collapsed.set(counted !== undefined && index >= counted.start && index < counted.end);\n }\n /* The first crumb an expansion reveals, whichever collapse hid it. */\n const revealed = this.middle() ? items[Math.max(0, this.trail.beforeValue())] : undefined;\n this.trail.registerFocusTarget(revealed === undefined ? undefined : () => revealed.focus());\n this.trail.collapsedCount.set(this.hiddenCount());\n });\n\n afterRenderEffect(() => {\n const items = this.items();\n const counted = this.counted() !== undefined;\n const measuring = this.measuring();\n const anchor =\n counted || measuring ? items[Math.max(0, this.trail.beforeValue())] : undefined;\n untracked(() => this.place(anchor?.element, counted, measuring));\n });\n\n inject(DestroyRef).onDestroy(() => {\n this.collapse?.destroy();\n this.ellipsis?.destroy();\n });\n }\n\n /**\n * Puts the ellipsis's item in front of the first crumb that can fold, or\n * takes it away, and starts or stops the width measurement.\n */\n private place(anchor: HTMLElement | undefined, counted: boolean, measuring: boolean) {\n if (!measuring) {\n this.collapse?.destroy();\n this.collapse = null;\n this.folded.set(0);\n }\n if (anchor === undefined) {\n if (this.ellipsis !== null) {\n this.application.detachView(this.ellipsis.hostView);\n this.ellipsis.destroy();\n this.ellipsis = null;\n }\n return;\n }\n\n const item = this.ensureEllipsis();\n if (item.nextElementSibling !== anchor) this.host.insertBefore(item, anchor);\n\n if (counted) {\n item.removeAttribute('hidden');\n return;\n }\n if (this.collapse === null) {\n /* Until the width has been measured the ellipsis stands for nothing. */\n item.setAttribute('hidden', '');\n const units = () =>\n [...this.host.children].filter(\n (unit): unit is HTMLElement => unit instanceof HTMLElement && unit !== item,\n );\n const before = Math.max(0, this.trail.beforeValue());\n const after = Math.max(0, this.trail.afterValue());\n this.collapse = createCollapse(this.host, {\n /* Only the middle folds: the first crumbs and the last ones never do. */\n collapsible: (unit) => {\n const index = units().indexOf(unit);\n return index >= before && index < units().length - after;\n },\n onChange: (hidden) => this.folded.set(hidden.length),\n /* Nearest the root first, so the folded run stays beside the ellipsis. */\n rank: (unit) => units().indexOf(unit),\n trigger: () => item,\n units,\n });\n } else {\n this.collapse.refresh();\n }\n }\n\n private ensureEllipsis(): HTMLElement {\n if (this.ellipsis === null) {\n this.ellipsis = createComponent(SlBreadcrumbEllipsis, {\n elementInjector: this.injector,\n environmentInjector: this.environment,\n hostElement: this.host.ownerDocument.createElement('li'),\n });\n this.application.attachView(this.ellipsis.hostView);\n }\n return this.ellipsis.location.nativeElement as HTMLElement;\n }\n}\n\n/**\n * One ancestor, or the current page. It carries the separator after it, so a\n * consumer writes none and never leaves a trailing one behind.\n */\n@Component({\n selector: 'li[slBreadcrumbItem]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `\n <ng-content></ng-content>\n @if (!last()) {\n <span aria-hidden=\"true\" data-part=\"separator\">\n <ng-container *ngTemplateOutlet=\"trail.separatorValue() ?? null\"></ng-container>\n </span>\n }\n `,\n styleUrls: ['../../../styles/src/breadcrumb/breadcrumb.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumbItem',\n host: {\n 'data-part': 'item',\n '[attr.hidden]': 'collapsed() ? \"\" : null',\n },\n})\nexport class SlBreadcrumbItem {\n readonly trail = inject(SlBreadcrumb);\n\n readonly element: HTMLElement = inject(ElementRef).nativeElement;\n\n /** Written by the list, which is the only part that can see the whole trail. */\n readonly last = signal(false);\n readonly collapsed = signal(false);\n\n /** The crumb's own control, whatever the consumer made it. */\n focus() {\n this.element.querySelector<HTMLElement>('a, button, [tabindex]')?.focus();\n }\n}\n\n/**\n * An ancestor that can be reached. The directive sits on the consumer's own\n * anchor, so the role, `Enter`, the context menu and every modified click are\n * the platform's — and `routerLink` composes on the same element, because the\n * element was never the family's to begin with.\n */\n@Directive({\n selector: 'a[slBreadcrumbLink]',\n standalone: true,\n exportAs: 'slBreadcrumbLink',\n host: { 'data-part': 'link' },\n})\nexport class SlBreadcrumbLink {\n private readonly element: HTMLAnchorElement = inject(ElementRef).nativeElement;\n\n focus() {\n this.element.focus();\n }\n}\n\n/**\n * The page the reader is on. It is text rather than a link, because a link to\n * the page you are already on goes nowhere, and it carries `aria-current=\"page\"`\n * — the value the ARIA specification names for a link within a set of pages.\n */\n@Directive({\n selector: '[slBreadcrumbPage]',\n standalone: true,\n exportAs: 'slBreadcrumbPage',\n host: {\n 'data-part': 'page',\n 'aria-current': 'page',\n },\n})\nexport class SlBreadcrumbPage {}\n\n/**\n * A crumb that opens a menu of its siblings — the organisation, the project,\n * the environment. It is a component on the consumer's own `button`, because an\n * `a` without `href` takes no focus, and it draws the chevron after the label.\n * The menu composes on the same element:\n *\n * ```html\n * <button slBreadcrumbTrigger current [slMenuTriggerFor]=\"environments\">Production</button>\n * ```\n *\n * `current` keeps `aria-current=\"page\"` on the switcher of the page the reader\n * is on, which a switcher does not stop being.\n */\n@Component({\n selector: 'button[slBreadcrumbTrigger]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content></ng-content><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumbTrigger',\n host: {\n 'data-part': 'trigger',\n '[attr.type]': 'ownType ?? \"button\"',\n '[attr.aria-current]': 'current() ? \"page\" : ownCurrent',\n },\n})\nexport class SlBreadcrumbTrigger {\n readonly current = input(false, { transform: booleanAttribute });\n\n protected readonly ownType = inject(new HostAttributeToken('type'), { optional: true });\n protected readonly ownCurrent = inject(new HostAttributeToken('aria-current'), {\n optional: true,\n });\n private readonly element: HTMLElement = inject(ElementRef).nativeElement;\n\n constructor() {\n /**\n * `slMenuTriggerFor` on the same element binds `data-part` to `null` when\n * its trigger is a plain control, which erased this part and the whole\n * crumb's styling with it. The erasing expression is a constant, so the\n * part written back after the first render is never erased again —\n * `docs/build-briefing.md` records the rule.\n */\n afterNextRender(() => this.element.setAttribute('data-part', 'trigger'));\n }\n}\n\n/**\n * Absence has to survive the transform: `numberAttribute` maps an unset input\n * to `NaN`, and a family that read that would stop deferring to the provider.\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","/**\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-breadcrumb.mjs","sources":["../../breadcrumb/src/breadcrumb.constants.ts","../../breadcrumb/src/breadcrumb.ts","../../breadcrumb/src/slotted-angular-breadcrumb.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\n\n/**\n * What a trail does with crumbs its width cannot hold. `collapse` folds the\n * middle ones into the ellipsis; `wrap` lets the row break onto a second line\n * and only the count collapses.\n */\nexport type BreadcrumbOverflow = 'collapse' | 'wrap';\n\n/** Why the trail expanded. Only two things can ask: a press and a key. */\nexport type BreadcrumbExpandReason = 'pointer' | 'keyboard';\n\n/**\n * What every trail on the page does before it states anything of its own. The\n * three collapse numbers are here because how deep a trail may get before it\n * folds is a decision about the application rather than about one page.\n */\nexport interface BreadcrumbDefaults {\n itemsAfterCollapse?: number;\n itemsBeforeCollapse?: number;\n maxItems?: number;\n overflow?: BreadcrumbOverflow;\n /** The mark drawn between two crumbs, rendered once per item. */\n separator?: TemplateRef<unknown>;\n}\n\nexport const BREADCRUMB_DEFAULT_MAX_ITEMS = 8;\nexport const BREADCRUMB_DEFAULT_ITEMS_BEFORE = 1;\nexport const BREADCRUMB_DEFAULT_ITEMS_AFTER = 2;\nexport const BREADCRUMB_DEFAULT_OVERFLOW: BreadcrumbOverflow = 'collapse';\n\nexport const BREADCRUMB_DEFAULTS_TOKEN = new InjectionToken<BreadcrumbDefaults>(\n 'slotted breadcrumb defaults',\n { providedIn: 'root', factory: (): BreadcrumbDefaults => ({}) },\n);\n\n/**\n * An application decides once how deep its trails may get before they fold,\n * whether they fold for want of width, and what is drawn between two crumbs. A\n * trail that states any of those itself still wins: an explicit input is never\n * overridden by the token. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideBreadcrumbDefaults(defaults: BreadcrumbDefaults) {\n return { provide: BREADCRUMB_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectBreadcrumbDefaults(): BreadcrumbDefaults {\n return inject(BREADCRUMB_DEFAULTS_TOKEN);\n}\n\n/**\n * Which crumbs survive a collapse, as indices into the trail. Shared with the\n * React binding's own copy through the tests that assert the same table, and\n * deliberately not shared through `@slotted/core`: it is four lines, and a core\n * module exists for arithmetic two bindings would otherwise get *differently*\n * wrong, not for arithmetic they would each get right.\n */\nexport function collapsedRange(count: number, before: number, after: number) {\n const kept = Math.max(0, before) + Math.max(0, after);\n if (count <= kept) return undefined;\n return { start: Math.max(0, before), end: count - Math.max(0, after) };\n}\n","import { writeSelectorKey } from '@slotted/core/selector-key';\nimport {\n afterNextRender,\n afterRenderEffect,\n ApplicationRef,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n type ComponentRef,\n computed,\n contentChildren,\n createComponent,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n EnvironmentInjector,\n forwardRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n breadcrumbMessages,\n type BreadcrumbMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { createCollapse, type CollapseHandle } from '@slotted/core/overflow';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport {\n BREADCRUMB_DEFAULT_ITEMS_AFTER,\n BREADCRUMB_DEFAULT_ITEMS_BEFORE,\n BREADCRUMB_DEFAULT_MAX_ITEMS,\n BREADCRUMB_DEFAULT_OVERFLOW,\n collapsedRange,\n injectBreadcrumbDefaults,\n type BreadcrumbExpandReason,\n type BreadcrumbOverflow,\n} from './breadcrumb.constants';\n\n/**\n * The trail of ancestors above the current page.\n *\n * **The landmark and the list are the platform's.** `nav` makes the trail\n * findable and `ol` carries the hierarchy and the set size, which is the whole\n * of the APG's Breadcrumb pattern: it lists no keyboard interaction and two\n * attributes, and both are written here rather than reimplemented.\n *\n * **The collapse expands in place.** An overlay would need a layer, a\n * positioner and a dismissal policy; this needs none of them. The hidden\n * crumbs carry `hidden`, so they leave the accessibility tree with the page,\n * and the button that hides them names the count.\n *\n * **A trail that does not fit folds.** With `overflow=\"collapse\"` the list\n * measures itself and folds the middle crumbs its width cannot hold into the\n * same ellipsis, nearest the root first; what folded is read from the layout\n * and reported in `data-collapsed`, not owned by anyone.\n *\n * **It is a component on the consumer's own `nav`.** A directive carries no\n * `styleUrl`, and the element was never the family's to choose.\n */\n@Component({\n selector: 'nav[slBreadcrumb]',\n standalone: true,\n template: '<ng-content></ng-content>',\n styleUrls: ['../../../styles/src/breadcrumb/breadcrumb.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumb',\n host: {\n 'data-ui': 'breadcrumb',\n 'data-ui-breadcrumb': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.aria-label]': 'accessibleLabel()',\n '[attr.data-expanded]': 'expanded() ? \"\" : null',\n '[attr.data-collapsed]': 'collapsedCount() > 0 ? collapsedCount() : null',\n },\n})\nexport class SlBreadcrumb {\n /**\n * Present means controlled, for the life of the component, which is why the\n * unset value is `undefined` rather than `false`: a family that read `false`\n * as a consumer's answer would never own its own state.\n */\n readonly expandedValue = input(undefined, {\n alias: 'expanded',\n transform: (value: boolean | string | undefined) =>\n value === undefined ? undefined : booleanAttribute(value),\n });\n /** What an uncontrolled trail starts from, read once. */\n readonly defaultExpanded = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * landmark's name (`label`) and the ellipsis. A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<BreadcrumbMessages> | undefined>(undefined);\n readonly maxItems = input(undefined, { transform: optionalNumber });\n readonly itemsBeforeCollapse = input(undefined, { transform: optionalNumber });\n readonly itemsAfterCollapse = input(undefined, { transform: optionalNumber });\n readonly separator = input<TemplateRef<unknown> | undefined>(undefined);\n /** What the trail does with crumbs its width cannot hold. */\n readonly overflow = input<BreadcrumbOverflow | undefined>(undefined);\n\n /** How many crumbs are folded into the ellipsis, written by the list. */\n readonly collapsedCount = signal(0);\n\n /**\n * Emitted before the trail expands, carrying the value it replaces, the\n * reason and the event it came from. It is not the second half of\n * `[(expanded)]`: a two-way binding has one slot and can carry none of those.\n */\n readonly expandedChange = output<ChangeRequest<boolean>>();\n\n private readonly own = signal(false);\n readonly expanded = computed(() => this.expandedValue() ?? this.own());\n\n private readonly defaults = injectBreadcrumbDefaults();\n\n /** A static `aria-label` the consumer wrote survives the host binding. */\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n /** The family's words in the language in force, with this trail's `messages` laid over them. */\n readonly t = injectMessages(breadcrumbMessages, this.messages);\n readonly accessibleLabel = computed(() => this.ownLabel ?? this.t('label'));\n readonly maxItemsValue = computed(\n () => this.maxItems() ?? this.defaults.maxItems ?? BREADCRUMB_DEFAULT_MAX_ITEMS,\n );\n readonly beforeValue = computed(\n () =>\n this.itemsBeforeCollapse() ??\n this.defaults.itemsBeforeCollapse ??\n BREADCRUMB_DEFAULT_ITEMS_BEFORE,\n );\n readonly afterValue = computed(\n () =>\n this.itemsAfterCollapse() ??\n this.defaults.itemsAfterCollapse ??\n BREADCRUMB_DEFAULT_ITEMS_AFTER,\n );\n readonly separatorValue = computed(() => this.separator() ?? this.defaults.separator);\n readonly overflowValue = computed(\n () => this.overflow() ?? this.defaults.overflow ?? BREADCRUMB_DEFAULT_OVERFLOW,\n );\n\n /**\n * Where focus goes once the ellipsis stops existing, registered by the list —\n * the only part that can see which crumb the ellipsis replaced. React reaches\n * the same crumb through an id it generates; Angular reaches it through the\n * query it already has, and neither writes anything the other does not.\n */\n private focusAfterExpand: (() => void) | undefined;\n\n registerFocusTarget(focus: (() => void) | undefined) {\n this.focusAfterExpand = focus;\n }\n\n private readonly injector = inject(Injector);\n\n /**\n * The ellipsis stops existing the moment it is pressed, and focus on a\n * removed element is lost to the body — so it is given to the first crumb the\n * expansion revealed. The move waits a microtask because that crumb is still\n * hidden while this runs.\n */\n expand(reason: BreadcrumbExpandReason, source?: Event) {\n if (this.expanded()) return;\n const state = createControllable<boolean>({\n controlled: this.expandedValue(),\n initial: this.expanded(),\n onRequest: (request) => this.expandedChange.emit(request),\n });\n if (state.request(true, reason, source)) this.own.set(true);\n /**\n * After the render, not after a microtask: the crumb focus moves to is\n * still hidden while this runs, and a microtask fires before Angular has\n * written the DOM. Focus then stayed on a removed button and fell to the\n * body, which the spec caught and nothing else would have.\n */\n afterNextRender(() => this.focusAfterExpand?.(), { injector: this.injector });\n }\n}\n\n/**\n * The control that reveals what the collapse hides, in an item of its own.\n *\n * The list creates it rather than any crumb drawing it, because it has to be a\n * sibling of the crumbs: a crumb that drew it inside itself hid it together\n * with itself, since the first crumb the collapse hides is the one it stands\n * in front of. Its accessible name carries the count, because three dots say\n * nothing about how much is behind them.\n */\n@Component({\n selector: 'li[slBreadcrumbEllipsis]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon],\n template: `\n <button\n [attr.aria-label]=\"label()\"\n aria-expanded=\"false\"\n data-part=\"ellipsis\"\n data-part-ellipsis=\"\"\n type=\"button\"\n (click)=\"trail.expand('pointer', $event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <span slIcon><svg slGlyph name=\"ellipsis\"></svg></span>\n </button>\n <span aria-hidden=\"true\" data-part=\"separator\" data-part-separator=\"\">\n <ng-container *ngTemplateOutlet=\"trail.separatorValue() ?? null\"></ng-container>\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'item', 'data-part-item': '' },\n})\nclass SlBreadcrumbEllipsis {\n readonly trail = inject(SlBreadcrumb);\n /* Declared below this class, and read only when an instance is created. */\n private readonly list = inject(SlBreadcrumbList);\n\n readonly label = computed(() => this.trail.t('showHidden', { count: this.list.hiddenCount() }));\n\n onKeydown(event: KeyboardEvent) {\n /* `Enter` and `Space` both activate a button and the browser turns each\n into a click; this is what tells the two apart in the request. */\n if (event.key === 'Enter' || event.key === ' ') this.trail.expand('keyboard', event);\n }\n}\n\n/**\n * The ordered list, and the one part that knows how many crumbs there are.\n *\n * It queries its items rather than projecting them blindly, because two facts\n * about a crumb can only be known from the outside: whether it is the last —\n * the last draws no separator — and whether the count collapse is hiding it.\n * It also owns the ellipsis, which it places in front of the first crumb that\n * can fold, and the width collapse.\n *\n * That is where the two bindings differ and the DOM does not: React maps its\n * children, Angular writes the same facts back onto queried items and inserts\n * the ellipsis's item itself.\n */\n@Directive({\n selector: 'ol[slBreadcrumbList]',\n standalone: true,\n exportAs: 'slBreadcrumbList',\n host: { 'data-part': 'list', 'data-part-list': '' },\n})\nexport class SlBreadcrumbList {\n private readonly trail = inject(SlBreadcrumb);\n /* The crumb is declared below this class, and the dev-server transform puts\n the query predicate in a static initializer — a direct reference would read\n the binding before it exists. `forwardRef` defers the read to the query. */\n private readonly items = contentChildren<SlBreadcrumbItem>(forwardRef(() => SlBreadcrumbItem));\n private readonly host: HTMLOListElement = inject(ElementRef).nativeElement;\n private readonly injector = inject(Injector);\n private readonly environment = inject(EnvironmentInjector);\n private readonly application = inject(ApplicationRef);\n\n private ellipsis: ComponentRef<SlBreadcrumbEllipsis> | null = null;\n private collapse: CollapseHandle | null = null;\n private readonly folded = signal(0);\n\n /**\n * The range is computed whether or not the trail is expanded, because two\n * different things read it. The collapse reads it only while folded; the\n * focus target reads it afterwards, and it has to still be there — the id\n * used to disappear with the ellipsis, which left focus on a removed button\n * and therefore on the body.\n */\n private readonly range = computed(() => {\n const count = this.items().length;\n const maxItems = this.trail.maxItemsValue();\n return maxItems <= 0 || count <= maxItems\n ? undefined\n : collapsedRange(count, this.trail.beforeValue(), this.trail.afterValue());\n });\n private readonly counted = computed(() => (this.trail.expanded() ? undefined : this.range()));\n /** Whether there is a middle at all: crumbs outside the ones that never fold. */\n private readonly middle = computed(\n () =>\n this.items().length >\n Math.max(0, this.trail.beforeValue()) + Math.max(0, this.trail.afterValue()),\n );\n /**\n * The width collapse runs only while the count has hidden nothing: a trail\n * the count already folded shows only the crumbs that never fold. One writer\n * per `hidden` attribute keeps the two from undoing each other — the item's\n * host binding writes it for the count, `createCollapse` for the width.\n */\n private readonly measuring = computed(\n () =>\n this.trail.overflowValue() === 'collapse' &&\n !this.trail.expanded() &&\n this.range() === undefined &&\n this.middle(),\n );\n\n readonly hiddenCount = computed(() => {\n const counted = this.counted();\n return counted === undefined ? this.folded() : counted.end - counted.start;\n });\n\n constructor() {\n effect(() => {\n const items = this.items();\n const counted = this.counted();\n for (const [index, item] of items.entries()) {\n item.last.set(index === items.length - 1);\n item.collapsed.set(counted !== undefined && index >= counted.start && index < counted.end);\n }\n /* The first crumb an expansion reveals, whichever collapse hid it. */\n const revealed = this.middle() ? items[Math.max(0, this.trail.beforeValue())] : undefined;\n this.trail.registerFocusTarget(revealed === undefined ? undefined : () => revealed.focus());\n this.trail.collapsedCount.set(this.hiddenCount());\n });\n\n afterRenderEffect(() => {\n const items = this.items();\n const counted = this.counted() !== undefined;\n const measuring = this.measuring();\n const anchor =\n counted || measuring ? items[Math.max(0, this.trail.beforeValue())] : undefined;\n untracked(() => this.place(anchor?.element, counted, measuring));\n });\n\n inject(DestroyRef).onDestroy(() => {\n this.collapse?.destroy();\n this.ellipsis?.destroy();\n });\n }\n\n /**\n * Puts the ellipsis's item in front of the first crumb that can fold, or\n * takes it away, and starts or stops the width measurement.\n */\n private place(anchor: HTMLElement | undefined, counted: boolean, measuring: boolean) {\n if (!measuring) {\n this.collapse?.destroy();\n this.collapse = null;\n this.folded.set(0);\n }\n if (anchor === undefined) {\n if (this.ellipsis !== null) {\n this.application.detachView(this.ellipsis.hostView);\n this.ellipsis.destroy();\n this.ellipsis = null;\n }\n return;\n }\n\n const item = this.ensureEllipsis();\n if (item.nextElementSibling !== anchor) this.host.insertBefore(item, anchor);\n\n if (counted) {\n item.removeAttribute('hidden');\n return;\n }\n if (this.collapse === null) {\n /* Until the width has been measured the ellipsis stands for nothing. */\n item.setAttribute('hidden', '');\n const units = () =>\n [...this.host.children].filter(\n (unit): unit is HTMLElement => unit instanceof HTMLElement && unit !== item,\n );\n const before = Math.max(0, this.trail.beforeValue());\n const after = Math.max(0, this.trail.afterValue());\n this.collapse = createCollapse(this.host, {\n /* Only the middle folds: the first crumbs and the last ones never do. */\n collapsible: (unit) => {\n const index = units().indexOf(unit);\n return index >= before && index < units().length - after;\n },\n onChange: (hidden) => this.folded.set(hidden.length),\n /* Nearest the root first, so the folded run stays beside the ellipsis. */\n rank: (unit) => units().indexOf(unit),\n trigger: () => item,\n units,\n });\n } else {\n this.collapse.refresh();\n }\n }\n\n private ensureEllipsis(): HTMLElement {\n if (this.ellipsis === null) {\n this.ellipsis = createComponent(SlBreadcrumbEllipsis, {\n elementInjector: this.injector,\n environmentInjector: this.environment,\n hostElement: this.host.ownerDocument.createElement('li'),\n });\n this.application.attachView(this.ellipsis.hostView);\n }\n return this.ellipsis.location.nativeElement as HTMLElement;\n }\n}\n\n/**\n * One ancestor, or the current page. It carries the separator after it, so a\n * consumer writes none and never leaves a trailing one behind.\n */\n@Component({\n selector: 'li[slBreadcrumbItem]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `\n <ng-content></ng-content>\n @if (!last()) {\n <span aria-hidden=\"true\" data-part=\"separator\" data-part-separator=\"\">\n <ng-container *ngTemplateOutlet=\"trail.separatorValue() ?? null\"></ng-container>\n </span>\n }\n `,\n styleUrls: ['../../../styles/src/breadcrumb/breadcrumb.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumbItem',\n host: {\n 'data-part': 'item',\n 'data-part-item': '',\n '[attr.hidden]': 'collapsed() ? \"\" : null',\n },\n})\nexport class SlBreadcrumbItem {\n readonly trail = inject(SlBreadcrumb);\n\n readonly element: HTMLElement = inject(ElementRef).nativeElement;\n\n /** Written by the list, which is the only part that can see the whole trail. */\n readonly last = signal(false);\n readonly collapsed = signal(false);\n\n /** The crumb's own control, whatever the consumer made it. */\n focus() {\n this.element.querySelector<HTMLElement>('a, button, [tabindex]')?.focus();\n }\n}\n\n/**\n * An ancestor that can be reached. The directive sits on the consumer's own\n * anchor, so the role, `Enter`, the context menu and every modified click are\n * the platform's — and `routerLink` composes on the same element, because the\n * element was never the family's to begin with.\n */\n@Directive({\n selector: 'a[slBreadcrumbLink]',\n standalone: true,\n exportAs: 'slBreadcrumbLink',\n host: { 'data-part': 'link', 'data-part-link': '' },\n})\nexport class SlBreadcrumbLink {\n private readonly element: HTMLAnchorElement = inject(ElementRef).nativeElement;\n\n focus() {\n this.element.focus();\n }\n}\n\n/**\n * The page the reader is on. It is text rather than a link, because a link to\n * the page you are already on goes nowhere, and it carries `aria-current=\"page\"`\n * — the value the ARIA specification names for a link within a set of pages.\n */\n@Directive({\n selector: '[slBreadcrumbPage]',\n standalone: true,\n exportAs: 'slBreadcrumbPage',\n host: {\n 'data-part': 'page',\n 'data-part-page': '',\n 'aria-current': 'page',\n },\n})\nexport class SlBreadcrumbPage {}\n\n/**\n * A crumb that opens a menu of its siblings — the organisation, the project,\n * the environment. It is a component on the consumer's own `button`, because an\n * `a` without `href` takes no focus, and it draws the chevron after the label.\n * The menu composes on the same element:\n *\n * ```html\n * <button slBreadcrumbTrigger current [slMenuTriggerFor]=\"environments\">Production</button>\n * ```\n *\n * `current` keeps `aria-current=\"page\"` on the switcher of the page the reader\n * is on, which a switcher does not stop being.\n */\n@Component({\n selector: 'button[slBreadcrumbTrigger]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content></ng-content><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumbTrigger',\n host: {\n 'data-part': 'trigger',\n 'data-part-trigger': '',\n '[attr.type]': 'ownType ?? \"button\"',\n '[attr.aria-current]': 'current() ? \"page\" : ownCurrent',\n },\n})\nexport class SlBreadcrumbTrigger {\n readonly current = input(false, { transform: booleanAttribute });\n\n protected readonly ownType = inject(new HostAttributeToken('type'), { optional: true });\n protected readonly ownCurrent = inject(new HostAttributeToken('aria-current'), {\n optional: true,\n });\n private readonly element: HTMLElement = inject(ElementRef).nativeElement;\n\n constructor() {\n /**\n * `slMenuTriggerFor` on the same element binds `data-part` to `null` when\n * its trigger is a plain control, which erased this part and the whole\n * crumb's styling with it. The erasing expression is a constant, so the\n * part written back after the first render is never erased again —\n * `docs/build-briefing.md` records the rule.\n */\n afterNextRender(() => writeSelectorKey(this.element, 'part', 'trigger'));\n }\n}\n\n/**\n * Absence has to survive the transform: `numberAttribute` maps an unset input\n * to `NaN`, and a family that read that would stop deferring to the provider.\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}