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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/docs/calendar.json +1 -1
  2. package/docs/code-block.json +92 -92
  3. package/docs/code-block.md +69 -69
  4. package/docs/currency-field.json +7 -0
  5. package/docs/currency-field.md +1 -0
  6. package/docs/data-grid.examples.md +1 -1
  7. package/docs/data-grid.json +21 -4
  8. package/docs/data-grid.md +1 -1
  9. package/docs/data-grid.props.md +5 -3
  10. package/docs/dialog.examples.md +138 -136
  11. package/docs/dialog.json +8 -8
  12. package/docs/filter-bar.json +118 -118
  13. package/docs/filter-bar.md +79 -79
  14. package/docs/guidelines/async-feedback.md +10 -0
  15. package/docs/guidelines/composition.md +11 -7
  16. package/docs/guidelines/index.md +6 -1
  17. package/docs/guidelines/list-pages.md +30 -0
  18. package/docs/guidelines/overviews.md +10 -0
  19. package/docs/markdown.json +79 -79
  20. package/docs/markdown.md +65 -65
  21. package/docs/page-header.json +1 -1
  22. package/docs/skills/compose-screen/SKILL.md +22 -10
  23. package/docs/skills/review-screen/SKILL.md +6 -0
  24. package/docs/skills/waiting-states/SKILL.md +4 -1
  25. package/docs/tags-input.json +28 -2
  26. package/docs/tags-input.md +4 -1
  27. package/docs/timeline.json +131 -131
  28. package/docs/timeline.md +123 -123
  29. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  30. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  31. package/fesm2022/slotted-angular-action-bar.mjs +21 -10
  32. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  33. package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
  34. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  35. package/fesm2022/slotted-angular-alert.mjs +17 -11
  36. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  37. package/fesm2022/slotted-angular-app-shell.mjs +52 -40
  38. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  39. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  40. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  41. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  42. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  43. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  44. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  45. package/fesm2022/slotted-angular-avatar.mjs +9 -6
  46. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  47. package/fesm2022/slotted-angular-badge.mjs +14 -10
  48. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  49. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  50. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  51. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  52. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  53. package/fesm2022/slotted-angular-button.mjs +53 -25
  54. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  55. package/fesm2022/slotted-angular-calendar.mjs +82 -30
  56. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  57. package/fesm2022/slotted-angular-card.mjs +18 -16
  58. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  59. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  60. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  61. package/fesm2022/slotted-angular-cascader.mjs +158 -64
  62. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  63. package/fesm2022/slotted-angular-chart.mjs +4 -2
  64. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  65. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  66. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  67. package/fesm2022/slotted-angular-checkbox.mjs +13 -8
  68. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  69. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  70. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  71. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  72. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  73. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  74. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  75. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  76. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  77. package/fesm2022/slotted-angular-combobox.mjs +77 -31
  78. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  79. package/fesm2022/slotted-angular-command-palette.mjs +150 -54
  80. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  81. package/fesm2022/slotted-angular-container.mjs +6 -4
  82. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  83. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  84. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  85. package/fesm2022/slotted-angular-currency-field.mjs +98 -32
  86. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  87. package/fesm2022/slotted-angular-dashboard-grid.mjs +127 -44
  88. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  89. package/fesm2022/slotted-angular-data-grid.mjs +309 -104
  90. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  91. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  92. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  93. package/fesm2022/slotted-angular-date-field.mjs +40 -14
  94. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  95. package/fesm2022/slotted-angular-date-picker.mjs +19 -9
  96. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  97. package/fesm2022/slotted-angular-date-range-picker.mjs +41 -16
  98. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  99. package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
  100. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  101. package/fesm2022/slotted-angular-datetime-picker.mjs +37 -23
  102. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  103. package/fesm2022/slotted-angular-datetime-range-picker.mjs +111 -42
  104. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  105. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  106. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  107. package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
  108. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  109. package/fesm2022/slotted-angular-dialog.mjs +61 -28
  110. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  111. package/fesm2022/slotted-angular-divider.mjs +7 -5
  112. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  113. package/fesm2022/slotted-angular-drawer.mjs +38 -26
  114. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  115. package/fesm2022/slotted-angular-entity-picker.mjs +195 -67
  116. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  117. package/fesm2022/slotted-angular-event-calendar.mjs +259 -102
  118. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  119. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  120. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  121. package/fesm2022/slotted-angular-field.mjs +35 -15
  122. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  123. package/fesm2022/slotted-angular-filter-bar.mjs +104 -43
  124. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  125. package/fesm2022/slotted-angular-form.mjs +18 -10
  126. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  127. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  128. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  129. package/fesm2022/slotted-angular-grid.mjs +4 -2
  130. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  131. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  132. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  133. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  134. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  135. package/fesm2022/slotted-angular-icon.mjs +6 -3
  136. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  137. package/fesm2022/slotted-angular-image.mjs +13 -10
  138. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  139. package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
  140. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  141. package/fesm2022/slotted-angular-inline-message.mjs +10 -8
  142. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  143. package/fesm2022/slotted-angular-inline.mjs +4 -2
  144. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  145. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  146. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  147. package/fesm2022/slotted-angular-link.mjs +5 -3
  148. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  149. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  150. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  151. package/fesm2022/slotted-angular-list.mjs +14 -10
  152. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  153. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  154. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  155. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  156. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  157. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  158. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  159. package/fesm2022/slotted-angular-menu.mjs +41 -27
  160. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  161. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  162. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  163. package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
  164. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  165. package/fesm2022/slotted-angular-message.mjs +113 -51
  166. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  167. package/fesm2022/slotted-angular-multi-select.mjs +133 -57
  168. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  169. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  170. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  171. package/fesm2022/slotted-angular-notification-center.mjs +107 -65
  172. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  173. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  174. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  175. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  176. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  177. package/fesm2022/slotted-angular-page-header.mjs +72 -42
  178. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  179. package/fesm2022/slotted-angular-page.mjs +18 -9
  180. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  181. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  182. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  183. package/fesm2022/slotted-angular-popover.mjs +25 -18
  184. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  185. package/fesm2022/slotted-angular-progress-indicator.mjs +122 -30
  186. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  187. package/fesm2022/slotted-angular-prompt-composer.mjs +24 -18
  188. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  189. package/fesm2022/slotted-angular-prose.mjs +14 -11
  190. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  191. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  192. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  193. package/fesm2022/slotted-angular-rating.mjs +138 -82
  194. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  195. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  196. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  197. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  198. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  199. package/fesm2022/slotted-angular-scroll-area.mjs +9 -5
  200. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  201. package/fesm2022/slotted-angular-section.mjs +34 -15
  202. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  203. package/fesm2022/slotted-angular-segmented-control.mjs +15 -9
  204. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  205. package/fesm2022/slotted-angular-select.mjs +135 -53
  206. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  207. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  208. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  209. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  210. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  211. package/fesm2022/slotted-angular-slider.mjs +31 -11
  212. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  213. package/fesm2022/slotted-angular-sparkline.mjs +29 -13
  214. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  215. package/fesm2022/slotted-angular-split-button.mjs +25 -11
  216. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  217. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  218. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  219. package/fesm2022/slotted-angular-stack.mjs +4 -2
  220. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  221. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  222. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  223. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  224. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  225. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  226. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  227. package/fesm2022/slotted-angular-switch.mjs +15 -10
  228. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  229. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  230. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  231. package/fesm2022/slotted-angular-table.mjs +135 -72
  232. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  233. package/fesm2022/slotted-angular-tabs.mjs +31 -14
  234. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  235. package/fesm2022/slotted-angular-tag.mjs +19 -12
  236. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  237. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  238. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  239. package/fesm2022/slotted-angular-text-field.mjs +49 -15
  240. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  241. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  242. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  243. package/fesm2022/slotted-angular-time-field.mjs +48 -14
  244. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  245. package/fesm2022/slotted-angular-time-picker.mjs +28 -14
  246. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  247. package/fesm2022/slotted-angular-time-range-picker.mjs +109 -40
  248. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  249. package/fesm2022/slotted-angular-timeline.mjs +135 -64
  250. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  251. package/fesm2022/slotted-angular-toast.mjs +42 -31
  252. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  253. package/fesm2022/slotted-angular-toggle-group.mjs +10 -6
  254. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  255. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  256. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  257. package/fesm2022/slotted-angular-toolbar.mjs +21 -10
  258. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  259. package/fesm2022/slotted-angular-tooltip.mjs +8 -5
  260. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  261. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  262. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  263. package/fesm2022/slotted-angular-tour.mjs +46 -21
  264. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  265. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  266. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  267. package/fesm2022/slotted-angular-tree.mjs +74 -26
  268. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  269. package/fesm2022/slotted-angular-typography.mjs +8 -4
  270. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  271. package/fesm2022/slotted-angular-upload.mjs +125 -57
  272. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  273. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  274. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  275. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  276. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  277. package/package.json +3 -3
  278. package/types/slotted-angular-accordion.d.ts.map +1 -1
  279. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  280. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  281. package/types/slotted-angular-alert.d.ts +1 -1
  282. package/types/slotted-angular-alert.d.ts.map +1 -1
  283. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  284. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  285. package/types/slotted-angular-attachment.d.ts +1 -1
  286. package/types/slotted-angular-attachment.d.ts.map +1 -1
  287. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  288. package/types/slotted-angular-avatar.d.ts.map +1 -1
  289. package/types/slotted-angular-badge.d.ts.map +1 -1
  290. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  291. package/types/slotted-angular-button-group.d.ts.map +1 -1
  292. package/types/slotted-angular-button.d.ts.map +1 -1
  293. package/types/slotted-angular-calendar.d.ts +2 -0
  294. package/types/slotted-angular-calendar.d.ts.map +1 -1
  295. package/types/slotted-angular-card.d.ts.map +1 -1
  296. package/types/slotted-angular-carousel.d.ts.map +1 -1
  297. package/types/slotted-angular-cascader.d.ts.map +1 -1
  298. package/types/slotted-angular-chart.d.ts.map +1 -1
  299. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  300. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  301. package/types/slotted-angular-code-block.d.ts +1 -1
  302. package/types/slotted-angular-code-block.d.ts.map +1 -1
  303. package/types/slotted-angular-collapsible.d.ts +1 -1
  304. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  305. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  306. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  307. package/types/slotted-angular-combobox.d.ts +1 -1
  308. package/types/slotted-angular-combobox.d.ts.map +1 -1
  309. package/types/slotted-angular-command-palette.d.ts +10 -1
  310. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  311. package/types/slotted-angular-container.d.ts.map +1 -1
  312. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  313. package/types/slotted-angular-currency-field.d.ts +39 -13
  314. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  315. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  316. package/types/slotted-angular-data-grid.d.ts +26 -2
  317. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  318. package/types/slotted-angular-data-list.d.ts.map +1 -1
  319. package/types/slotted-angular-date-field.d.ts.map +1 -1
  320. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  321. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  322. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  323. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  324. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  325. package/types/slotted-angular-description-list.d.ts.map +1 -1
  326. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  327. package/types/slotted-angular-dialog.d.ts +2 -1
  328. package/types/slotted-angular-dialog.d.ts.map +1 -1
  329. package/types/slotted-angular-divider.d.ts.map +1 -1
  330. package/types/slotted-angular-drawer.d.ts.map +1 -1
  331. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  332. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  333. package/types/slotted-angular-field-group.d.ts.map +1 -1
  334. package/types/slotted-angular-field.d.ts.map +1 -1
  335. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  336. package/types/slotted-angular-form.d.ts.map +1 -1
  337. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  338. package/types/slotted-angular-grid.d.ts.map +1 -1
  339. package/types/slotted-angular-highlight.d.ts.map +1 -1
  340. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  341. package/types/slotted-angular-icon.d.ts +1 -1
  342. package/types/slotted-angular-icon.d.ts.map +1 -1
  343. package/types/slotted-angular-image.d.ts.map +1 -1
  344. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  345. package/types/slotted-angular-inline-message.d.ts +1 -1
  346. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  347. package/types/slotted-angular-inline.d.ts.map +1 -1
  348. package/types/slotted-angular-kbd.d.ts.map +1 -1
  349. package/types/slotted-angular-link.d.ts.map +1 -1
  350. package/types/slotted-angular-list-item.d.ts.map +1 -1
  351. package/types/slotted-angular-list.d.ts.map +1 -1
  352. package/types/slotted-angular-listbox.d.ts.map +1 -1
  353. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  354. package/types/slotted-angular-markdown.d.ts.map +1 -1
  355. package/types/slotted-angular-menu.d.ts.map +1 -1
  356. package/types/slotted-angular-menubar.d.ts.map +1 -1
  357. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  358. package/types/slotted-angular-message.d.ts.map +1 -1
  359. package/types/slotted-angular-multi-select.d.ts +1 -1
  360. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  361. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  362. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  363. package/types/slotted-angular-number-field.d.ts.map +1 -1
  364. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  365. package/types/slotted-angular-page-header.d.ts +1 -1
  366. package/types/slotted-angular-page-header.d.ts.map +1 -1
  367. package/types/slotted-angular-page.d.ts.map +1 -1
  368. package/types/slotted-angular-pagination.d.ts.map +1 -1
  369. package/types/slotted-angular-popover.d.ts.map +1 -1
  370. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  371. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  372. package/types/slotted-angular-prose.d.ts.map +1 -1
  373. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  374. package/types/slotted-angular-rating.d.ts.map +1 -1
  375. package/types/slotted-angular-result-state.d.ts.map +1 -1
  376. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  377. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  378. package/types/slotted-angular-section.d.ts.map +1 -1
  379. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  380. package/types/slotted-angular-select.d.ts +1 -1
  381. package/types/slotted-angular-select.d.ts.map +1 -1
  382. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  383. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  384. package/types/slotted-angular-slider.d.ts.map +1 -1
  385. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  386. package/types/slotted-angular-split-button.d.ts.map +1 -1
  387. package/types/slotted-angular-splitter.d.ts.map +1 -1
  388. package/types/slotted-angular-stack.d.ts.map +1 -1
  389. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  390. package/types/slotted-angular-status-indicator.d.ts +1 -1
  391. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  392. package/types/slotted-angular-stepper.d.ts +1 -1
  393. package/types/slotted-angular-stepper.d.ts.map +1 -1
  394. package/types/slotted-angular-switch.d.ts.map +1 -1
  395. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  396. package/types/slotted-angular-table.d.ts.map +1 -1
  397. package/types/slotted-angular-tabs.d.ts.map +1 -1
  398. package/types/slotted-angular-tag.d.ts.map +1 -1
  399. package/types/slotted-angular-tags-input.d.ts +33 -1
  400. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  401. package/types/slotted-angular-text-field.d.ts.map +1 -1
  402. package/types/slotted-angular-textarea.d.ts.map +1 -1
  403. package/types/slotted-angular-time-field.d.ts.map +1 -1
  404. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  405. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  406. package/types/slotted-angular-timeline.d.ts.map +1 -1
  407. package/types/slotted-angular-toast.d.ts +2 -2
  408. package/types/slotted-angular-toast.d.ts.map +1 -1
  409. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  410. package/types/slotted-angular-toggle.d.ts.map +1 -1
  411. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  412. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  413. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  414. package/types/slotted-angular-tour.d.ts.map +1 -1
  415. package/types/slotted-angular-transfer.d.ts.map +1 -1
  416. package/types/slotted-angular-tree.d.ts.map +1 -1
  417. package/types/slotted-angular-typography.d.ts.map +1 -1
  418. package/types/slotted-angular-upload.d.ts +2 -2
  419. package/types/slotted-angular-upload.d.ts.map +1 -1
  420. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  421. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-tabs.mjs","sources":["../../tabs/src/tabs-defaults.ts","../../tabs/src/tabs.ts","../../tabs/src/tabs-parts.ts","../../tabs/src/slotted-angular-tabs.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** Whether moving focus to a tab also selects it. */\nexport type TabsActivation = 'automatic' | 'manual';\n\n/** Which way the list runs. A horizontal list scrolls; a vertical one stacks. */\nexport type TabsOrientation = 'horizontal' | 'vertical';\n\n/** The type step the list and its tabs sit at. */\nexport type TabsSize = 'sm' | 'md' | 'lg';\n\n/**\n * How the list is drawn. `line` is a row of labels over a hairline; `contained`\n * is a sunken track holding a surface per tab. Both paint the same marker,\n * which is what survives the `high-contrast` scheme.\n */\nexport type TabsVariant = 'line' | 'contained';\n\n/**\n * Whether the list draws the line its tabs stand on. `none` is for a list that\n * sits on a line the page already drew — a card header's edge, a table's own\n * rule — where two hairlines a pixel apart read as one smudge.\n */\nexport type TabsTrack = 'line' | 'none';\n\n/** Whether each tab is as wide as its label or takes an equal share of the line. */\nexport type TabsFit = 'auto' | 'equal';\n\n/**\n * When a panel exists. The names are Cloudscape's, which are the clearest three\n * words in the field for the same three behaviours.\n */\nexport type TabsMount = 'active' | 'lazy' | 'eager';\n\n/** Which way the selection travelled, from the two indices. */\nexport type TabsActivationDirection = 'forward' | 'backward' | 'none';\n\nexport interface TabsDefaults {\n activation: TabsActivation;\n fit: TabsFit;\n track: TabsTrack;\n loop: boolean;\n mount: TabsMount;\n orientation: TabsOrientation;\n size: TabsSize;\n variant: TabsVariant;\n}\n\nconst FALLBACK: TabsDefaults = {\n activation: 'automatic',\n fit: 'auto',\n loop: true,\n mount: 'active',\n orientation: 'horizontal',\n size: 'md',\n track: 'line',\n variant: 'line',\n};\n\nexport const TABS_DEFAULTS = new InjectionToken<TabsDefaults>('slotted tabs defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its tabs look and behave, rather than\n * repeating the same seven inputs on every family in a product. A family that\n * states any of them itself still wins.\n */\nexport function provideTabsDefaults(defaults: Partial<TabsDefaults>) {\n return {\n provide: TABS_DEFAULTS,\n useFactory: (): TabsDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a tabs family renders as here, before it states anything of its own. */\nexport function injectTabsDefaults(): TabsDefaults {\n return inject(TABS_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlTabsIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-tabs-${this.count}`;\n }\n}\n","import { createRemovalFocus, createRovingTabindex } from '@slotted/core/focus';\nimport type { RemovalFocusHandle, RovingTabindexHandle } from '@slotted/core/focus';\nimport { createIndicator } from '@slotted/core/measure';\nimport { createScrollAffordance, NOT_OVERFLOWING } from '@slotted/core/overflow';\nimport type { OverflowState, ScrollAffordanceHandle } from '@slotted/core/overflow';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n Injector,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { injectTabsDefaults, SlTabsIdFactory } from './tabs-defaults';\nimport type {\n TabsActivation,\n TabsActivationDirection,\n TabsFit,\n TabsMount,\n TabsOrientation,\n TabsSize,\n TabsTrack,\n TabsVariant,\n} from './tabs-defaults';\n\nexport type {\n TabsActivation,\n TabsActivationDirection,\n TabsDefaults,\n TabsFit,\n TabsMount,\n TabsOrientation,\n TabsSize,\n TabsTrack,\n TabsVariant,\n} from './tabs-defaults';\n\n/** Every tab in the list, in the order the DOM holds them. */\nexport const TAB_SELECTOR = '[data-part=\"tab\"]';\n\n/** Why the selection moved. */\nexport type TabsSelectionReason = 'pointer' | 'keyboard' | 'remove' | 'programmatic';\n\n/** Why a tab was dismissed. */\nexport type TabsDismissReason = 'pointer' | 'keyboard';\n\n/**\n * The request a dismissal carries. It holds no value pair, because nothing is\n * replacing anything: the value being dismissed is `value`, and the shape is\n * `tag`'s, which set the convention for a removal in this library.\n */\nexport interface TabsDismissRequest {\n readonly value: string;\n readonly reason: TabsDismissReason;\n readonly source: Event;\n readonly cancelled: boolean;\n cancel(): void;\n}\n\n/**\n * An identifier from a value, injectively.\n *\n * A value is the consumer's own string and may hold a space, which no\n * identifier may. Escaping the characters an identifier refuses — rather than\n * replacing them — is what keeps two values from wiring one panel.\n */\nexport function escapeTabValue(value: string): string {\n return value.replace(/[^\\w-]/g, (character) => `-${character.charCodeAt(0).toString(16)}-`);\n}\n\n/**\n * One view out of several, and the panels under it.\n *\n * **The keyboard is the APG's, and it is implemented once.** The list is a\n * roving tab stop from `@slotted/core/focus`: `Tab` enters on the selected tab,\n * the arrows of the flow axis move and wrap, `Home` and `End` reach the ends,\n * and the cross axis is left alone so the page still scrolls with focus inside\n * a horizontal list. `Delete` dismisses a dismissible tab, and focus lands\n * where the pattern says.\n *\n * **The marker moves without a measurement.** The root records which way the\n * selection travelled and the stylesheet turns that into a transform origin, so\n * the family is right in a server response and during the first paint.\n *\n * **The paging controls belong to the root**, because the root owns the observer\n * that knows whether they are needed. They are out of the tab sequence and out\n * of the accessibility tree: the arrows already reach every tab and bring it\n * into view.\n */\n@Component({\n selector: '[slTabs]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n exportAs: 'slTabs',\n template: `<ng-content />\n @if (paging()) {\n <button\n aria-hidden=\"true\"\n data-part=\"scroll\"\n data-direction=\"start\"\n type=\"button\"\n tabindex=\"-1\"\n [disabled]=\"overflow().atStart\"\n (click)=\"page(-1)\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n <button\n aria-hidden=\"true\"\n data-part=\"scroll\"\n data-direction=\"end\"\n type=\"button\"\n tabindex=\"-1\"\n [disabled]=\"overflow().atEnd\"\n (click)=\"page(1)\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n }`,\n styleUrl: '../../../styles/src/tabs/tabs.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'tabs',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-track]': 'resolvedTrack()',\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-fit]': 'resolvedFit()',\n '[attr.data-activation-direction]': 'direction()',\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[attr.data-overflowing]': \"overflow().overflowing ? '' : null\",\n },\n})\nexport class SlTabs implements OnInit {\n /** Present means the consumer owns the selection. */\n readonly value = input<string | undefined>(undefined);\n /** The value an uncontrolled family starts from, read once. */\n readonly defaultValue = input<string | undefined>(undefined);\n readonly activation = input<TabsActivation | undefined>(undefined);\n readonly orientation = input<TabsOrientation | undefined>(undefined);\n readonly size = input<TabsSize | undefined>(undefined);\n readonly variant = input<TabsVariant | undefined>(undefined);\n /** `none` draws no line at all, for a list standing on one the page drew. */\n readonly track = input<TabsTrack | undefined>(undefined);\n readonly fit = input<TabsFit | undefined>(undefined);\n readonly mount = input<TabsMount | undefined>(undefined);\n readonly loop = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** Reaches every tab as the native attribute, which is also what makes the\n browser skip it with the arrow keys. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** One output for one transition, carrying the reason and the event. */\n readonly valueChange = output<ChangeRequest<string | undefined>>();\n /**\n * Asked before a tab is dismissed. The family removes nothing: the consumer\n * owns the collection, and a component that removed itself would render\n * nothing while the consumer's array still held the item.\n */\n readonly tabDismiss = output<TabsDismissRequest>();\n\n private readonly defaults = injectTabsDefaults();\n private readonly baseId = inject(SlTabsIdFactory).next();\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n private readonly own = signal<string | undefined>(undefined);\n private readonly listElement = signal<HTMLElement | null>(null);\n private readonly seen = new Set<string>();\n private roving: RovingTabindexHandle | null = null;\n private affordance: ScrollAffordanceHandle | null = null;\n\n protected readonly direction = signal<TabsActivationDirection>('none');\n protected readonly overflow = signal<OverflowState>(NOT_OVERFLOWING);\n\n readonly selection = computed(() => this.value() ?? this.own());\n readonly resolvedActivation = computed(() => this.activation() ?? this.defaults.activation);\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedTrack = computed(() => this.track() ?? this.defaults.track);\n readonly resolvedFit = computed(() => this.fit() ?? this.defaults.fit);\n readonly resolvedMount = computed(() => this.mount() ?? this.defaults.mount);\n readonly resolvedLoop = computed(() => this.loop() ?? this.defaults.loop);\n\n protected readonly paging = computed(\n () => this.overflow().overflowing && this.resolvedOrientation() === 'horizontal',\n );\n\n constructor() {\n /**\n * The list constructs before this runs and hands over its element; the\n * handles are created once, after the first render, because two of them\n * measure and all three read the DOM the tabs are in.\n */\n afterNextRender(() => {\n const list = this.listElement();\n if (list !== null) this.observe(list);\n });\n }\n\n ngOnInit() {\n if (this.value() === undefined) this.own.set(this.defaultValue());\n const start = this.selection();\n if (start !== undefined) this.seen.add(start);\n }\n\n /** The identifiers a tab and its panel are wired together with. */\n identify(value: string) {\n const escaped = escapeTabValue(value);\n return { panelId: `${this.baseId}-panel-${escaped}`, tabId: `${this.baseId}-tab-${escaped}` };\n }\n\n /** Whether this value is the selected one. Read by every tab and panel. */\n holds(value: string): boolean {\n return this.selection() === value;\n }\n\n /** Whether this value has ever been selected, which is what `lazy` reads. */\n hasSeen(value: string): boolean {\n return this.seen.has(value);\n }\n\n /**\n * The list hands the root its element. The root owns the roving tab stop, the\n * removal focus and the overflow observer — all three are about that element,\n * and the root is what holds the value they act on.\n */\n attachList(element: HTMLElement) {\n this.listElement.set(element);\n }\n\n private tabElements(): HTMLElement[] {\n const list = this.listElement();\n return list === null ? [] : [...list.querySelectorAll<HTMLElement>(TAB_SELECTOR)];\n }\n\n private indexOf(value: string | undefined): number {\n if (value === undefined) return -1;\n return this.tabElements().findIndex((item) => item.getAttribute('data-value') === value);\n }\n\n /**\n * Asks the family to select one value. The direction is set in the same turn,\n * so the marker's origin and the selection reach the DOM in one paint.\n */\n select(next: string, reason: TabsSelectionReason, source?: Event) {\n if (next === this.selection()) return;\n\n let cancelled = false;\n const state = createControllable<string | undefined>({\n controlled: this.value(),\n initial: this.selection(),\n onRequest: (request) => {\n this.valueChange.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled) return;\n\n const from = this.indexOf(this.selection());\n const to = this.indexOf(next);\n if (from !== -1 && to !== -1) this.direction.set(to > from ? 'forward' : 'backward');\n\n this.seen.add(next);\n if (moved) this.own.set(next);\n\n /* The tab stop follows the selection, which is where `Tab` from outside the\n list lands. The DOM order does not change here, so the index is read\n straight away rather than waiting for a render. */\n if (to !== -1) this.roving?.setActive(to);\n this.revealSelected();\n }\n\n /**\n * The neighbour a dismissal leaves the selection to: the tab that followed\n * the dismissed one, or the one before it when the dismissed tab was last.\n * It is the APG's own focus rule for `Delete`, applied to the value.\n */\n private neighbourOf(dismissed: string): string | undefined {\n const values = this.tabElements()\n .map((item) => item.getAttribute('data-value'))\n .filter((candidate): candidate is string => candidate !== null);\n const index = values.indexOf(dismissed);\n if (index === -1) return undefined;\n return values[index + 1] ?? values[index - 1];\n }\n\n dismiss(value: string, reason: TabsDismissReason, source: Event) {\n let cancelled = false;\n const request: TabsDismissRequest = {\n value,\n reason,\n source,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n this.tabDismiss.emit(request);\n if (cancelled) return;\n\n if (!this.holds(value)) return;\n const next = this.neighbourOf(value);\n if (next !== undefined) this.select(next, 'remove', source);\n }\n\n /** Puts the tab stop on the selected tab and brings it into view. */\n syncSelection() {\n const index = this.indexOf(this.selection());\n if (index === -1) return;\n this.roving?.setActive(index);\n this.revealSelected();\n }\n\n private revealSelected() {\n const item = this.tabElements()[this.indexOf(this.selection())];\n if (item !== undefined) this.affordance?.reveal(item);\n }\n\n protected page(direction: -1 | 1) {\n this.affordance?.page(direction);\n }\n\n private observe(list: HTMLElement) {\n const tabindex = createRovingTabindex(list, {\n crossAxis: false,\n itemSelector: TAB_SELECTOR,\n loop: this.resolvedLoop(),\n onMove: (_index, item) => {\n this.affordance?.reveal(item);\n if (this.resolvedActivation() !== 'automatic') return;\n const next = item.getAttribute('data-value');\n if (next !== null) this.select(next, 'keyboard');\n },\n orientation: () => this.resolvedOrientation(),\n });\n this.roving = tabindex;\n\n /**\n * Where the keyboard goes when the tab it was on is dismissed. The list\n * is the last resort, which is why it holds `tabindex=\"-1\"`: a list\n * emptied by its final dismissal keeps focus rather than returning it\n * to the top of the page.\n */\n const removal: RemovalFocusHandle = createRemovalFocus(list, {\n itemSelector: TAB_SELECTOR,\n });\n /**\n * A list that starts to overflow — on its first render, or later when its\n * stylesheet arrives, a drawer opens or a hidden panel is shown — draws its\n * paging controls, and they narrow it: a tab revealed against the wider list\n * ended behind the end control. The selected tab is revealed again once the\n * controls are in the layout, on that transition and on no other, so a\n * reader scrolling the list keeps control.\n */\n let overflowing = false;\n const affordance = createScrollAffordance(list, {\n onChange: (state) => {\n this.overflow.set(state);\n if (state.overflowing && !overflowing) {\n afterNextRender(() => this.revealSelected(), { injector: this.injector });\n }\n overflowing = state.overflowing;\n },\n });\n this.affordance = affordance;\n this.overflow.set(affordance.state());\n\n /** The marker the list draws under the selected tab, measured by `createIndicator`. */\n const indicator = createIndicator(list, {\n orientation: () => this.resolvedOrientation(),\n part: 'marker',\n target: () =>\n list.querySelector<HTMLElement>(\n ':scope > [data-part=\"item\"][data-selected] > [data-part=\"tab\"]',\n ),\n });\n\n /**\n * A tab arriving or leaving has to reach both handles, and neither\n * binding can be told by the other's change detection. The DOM is the\n * one thing they agree on.\n */\n const observer = new MutationObserver(() => {\n tabindex.refresh();\n affordance.refresh();\n this.syncSelection();\n });\n observer.observe(list, { childList: true, subtree: true });\n this.syncSelection();\n\n this.destroyRef.onDestroy(() => {\n observer.disconnect();\n indicator.destroy();\n removal.destroy();\n affordance.destroy();\n tabindex.destroy();\n this.roving = null;\n this.affordance = null;\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlTabs } from './tabs';\nimport type { TabsDismissReason, TabsSelectionReason } from './tabs';\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It is why `Enter`, `Space` and a pointer are told apart without a\n * key listener existing for activation.\n */\nfunction activationReason(event: Event): TabsSelectionReason {\n return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/**\n * The list of tabs, and the one tab stop the family holds.\n *\n * It hands its element to the root, which owns the roving tab stop, the removal\n * focus and the overflow observer. `tabindex=\"-1\"` is the last resort of the\n * removal focus: a list emptied by its final dismissal keeps focus rather than\n * returning it to the top of the page.\n *\n * Its accessible name is the consumer's own `aria-label` or `aria-labelledby`:\n * only the page knows what the set of views is for.\n */\n@Directive({\n selector: '[slTabList]',\n standalone: true,\n exportAs: 'slTabList',\n host: {\n 'data-part': 'list',\n role: 'tablist',\n tabindex: '-1',\n '[attr.aria-orientation]': 'ariaOrientation()',\n },\n})\nexport class SlTabList {\n private readonly tabs = inject(SlTabs);\n\n protected readonly ariaOrientation = computed(() =>\n this.tabs.resolvedOrientation() === 'vertical' ? 'vertical' : null,\n );\n\n constructor() {\n this.tabs.attachList(inject(ElementRef<HTMLElement>).nativeElement);\n }\n}\n\n/**\n * What precedes the label inside a tab, such as an icon. It stands beside the\n * words rather than inside them, so the tab's gap spaces it and only the words\n * are clipped under `fit=\"equal\"`; the part sizes an icon to the tab's icon step.\n */\n@Directive({\n selector: '[slTabStart]',\n standalone: true,\n exportAs: 'slTabStart',\n host: { 'data-part': 'start' },\n})\nexport class SlTabStart {}\n\n/** What follows the label inside a tab, such as a count. */\n@Directive({\n selector: '[slTabEnd]',\n standalone: true,\n exportAs: 'slTabEnd',\n host: { 'data-part': 'end' },\n})\nexport class SlTabEnd {}\n\n/**\n * One tab, in the box that holds it.\n *\n * The host is that box, and it is presentational because a `button` may not\n * contain a `button`: a dismissible tab needs somewhere to put its second\n * control.\n *\n * `href` makes the control an anchor, and a click carrying a modifier key is\n * left to the browser so a deep link still opens in a new browser tab.\n */\n@Component({\n selector: '[slTab]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon],\n exportAs: 'slTab',\n /* The words and what stands beside them are written once and placed in\n whichever control the tab renders: a selecting `ng-content` repeated in\n both branches left the button branch without its icon and its count. */\n template: `<ng-template #content\n ><ng-content select=\"[slTabStart]\" /><span data-part=\"label\"><ng-content /></span\n ><ng-content select=\"[slTabEnd]\"\n /></ng-template>\n @if (href(); as destination) {\n <a\n #control\n data-part=\"tab\"\n role=\"tab\"\n [attr.id]=\"tabId()\"\n [attr.href]=\"destination\"\n [attr.data-value]=\"value()\"\n [attr.aria-controls]=\"panelId()\"\n [attr.aria-selected]=\"selected()\"\n [attr.aria-disabled]=\"resolvedDisabled() ? 'true' : null\"\n [attr.aria-keyshortcuts]=\"dismissible() ? 'Delete' : null\"\n [attr.tabindex]=\"selected() ? 0 : -1\"\n (click)=\"onClick($event)\"\n (keydown)=\"onKeydown($event)\"\n ><ng-container [ngTemplateOutlet]=\"content\"\n /></a>\n } @else {\n <button\n #control\n data-part=\"tab\"\n role=\"tab\"\n type=\"button\"\n [attr.id]=\"tabId()\"\n [attr.data-value]=\"value()\"\n [attr.aria-controls]=\"panelId()\"\n [attr.aria-selected]=\"selected()\"\n [attr.aria-keyshortcuts]=\"dismissible() ? 'Delete' : null\"\n [disabled]=\"resolvedDisabled()\"\n [attr.tabindex]=\"selected() ? 0 : -1\"\n (click)=\"onClick($event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n </button>\n }\n @if (dismissible()) {\n <button\n data-part=\"dismiss\"\n type=\"button\"\n tabindex=\"-1\"\n [attr.aria-label]=\"dismissLabel()\"\n [disabled]=\"resolvedDisabled()\"\n (click)=\"onDismiss($event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'item',\n role: 'presentation',\n '[attr.data-selected]': \"selected() ? '' : null\",\n },\n})\nexport class SlTab {\n /** What this tab selects. It is what the family's value holds. */\n readonly value = input.required<string>();\n /** Unstated rather than `false`, so the tab defers to the family. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** Whether this tab carries a control that closes it. */\n readonly dismissible = input(false, { transform: booleanAttribute });\n /** The accessible name of that control. Required whenever it is drawn. */\n readonly dismissLabel = input<string | undefined>(undefined);\n /** Makes the control an anchor, for a view a router can deep-link to. */\n readonly href = input<string | undefined>(undefined);\n /**\n * The id of the element this tab controls, when it is not a panel of this\n * family: a strip over one region whose content the value filters — a\n * feed, a table — names that region here, and `aria-controls` says so.\n */\n readonly controls = input<string | undefined>(undefined);\n\n /** The family this tab belongs to. Public, because a template may read it. */\n readonly tabs = inject(SlTabs);\n\n readonly selected = computed(() => this.tabs.holds(this.value()));\n /**\n * A family out of action takes every tab with it. The tab's own input can\n * only add to that, never subtract: a consumer that writes `[disabled]=\"false\"`\n * on a tab inside a disabled family is saying nothing about that family, and a\n * template that binds an expression writes `false` where it means \"not this\n * one\" — which is how every tab stayed operable while the family reported\n * itself disabled.\n */\n readonly resolvedDisabled = computed(() => this.tabs.disabled() || (this.disabled() ?? false));\n\n protected readonly tabId = computed(() => this.tabs.identify(this.value()).tabId);\n protected readonly panelId = computed(\n () => this.controls() ?? this.tabs.identify(this.value()).panelId,\n );\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.resolvedDisabled()) return;\n /* A modifier click on a link is the reader asking the browser for a new\n window, and swallowing it is what turns a real destination into a\n decoration. */\n if (\n this.href() !== undefined &&\n (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)\n ) {\n return;\n }\n if (this.href() !== undefined) event.preventDefault();\n this.tabs.select(this.value(), activationReason(event), event);\n }\n\n /**\n * `Delete` closes the tab, which is the key the APG names for it. A held key\n * repeats, and a repeat would close the tab focus has just landed on.\n */\n protected onKeydown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.repeat) return;\n if (!this.dismissible() || this.resolvedDisabled()) return;\n if (event.key !== 'Delete') return;\n\n event.preventDefault();\n this.tabs.dismiss(this.value(), 'keyboard' satisfies TabsDismissReason, event);\n }\n\n protected onDismiss(event: MouseEvent) {\n /* The control sits inside the item, whose click would otherwise select the\n tab that is being closed. */\n event.stopPropagation();\n this.tabs.dismiss(this.value(), 'pointer', event);\n }\n}\n\n/**\n * The content of a panel, as a template the panel instantiates.\n *\n * Projected markup is built by the consumer's own view whether a panel shows it\n * or not: a component inside a closed panel is constructed, change-detected and\n * keeps its state, and only its DOM is detached. A template is what `mount` can\n * act on. Under `active` it is instantiated on selection and destroyed after,\n * under `lazy` it is instantiated on first selection and kept, under `eager` it\n * is instantiated up front. It is the shape of Angular Material's `matTabContent`.\n *\n * It must be a direct child of the panel, so a panel never takes the template of\n * a family nested inside it.\n */\n@Directive({\n selector: 'ng-template[slTabPanelContent]',\n standalone: true,\n})\nexport class SlTabPanelContent {\n readonly template = inject(TemplateRef);\n}\n\n/**\n * The content of one tab.\n *\n * It is in the page's tab sequence, which is where `Tab` from the list goes, and\n * it is hidden with the attribute rather than with a class: a screen reader,\n * find-in-page and `:target` all already understand `hidden`.\n *\n * The panel itself always exists, so every tab's `aria-controls` names an\n * element. Whether its content is in the DOM is what `mount` decides. Content\n * written inside `<ng-template slTabPanelContent>` is also only built when\n * `mount` says so; projected markup is built by the consumer's view regardless.\n */\n@Component({\n selector: '[slTabPanel]',\n standalone: true,\n imports: [NgTemplateOutlet],\n exportAs: 'slTabPanel',\n template: `@if (present()) {\n @if (content(); as deferred) {\n <ng-container [ngTemplateOutlet]=\"deferred.template\" />\n } @else {\n <ng-content />\n }\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'panel',\n role: 'tabpanel',\n tabindex: '0',\n '[attr.id]': 'panelId()',\n '[attr.aria-labelledby]': 'tabId()',\n '[attr.hidden]': \"selected() ? null : ''\",\n },\n})\nexport class SlTabPanel {\n /** The tab this panel belongs to. */\n readonly value = input.required<string>();\n\n private readonly tabs = inject(SlTabs);\n\n /** The deferred content, when the consumer wrote one. */\n protected readonly content = contentChild(SlTabPanelContent, { descendants: false });\n\n readonly selected = computed(() => this.tabs.holds(this.value()));\n\n protected readonly panelId = computed(() => this.tabs.identify(this.value()).panelId);\n protected readonly tabId = computed(() => this.tabs.identify(this.value()).tabId);\n protected readonly present = computed(() => {\n const mount = this.tabs.resolvedMount();\n if (mount === 'eager') return true;\n if (this.selected()) return true;\n return mount === 'lazy' && this.tabs.hasSeen(this.value());\n });\n}\n\n/**\n * The slot beside the list, on the same row.\n *\n * What belongs in it is a `toolbar`: one tab stop for however many actions the\n * page puts there, which is what keeps the distance between the tab list and the\n * panel to the two stops the pattern asks for.\n */\n@Directive({\n selector: '[slTabActions]',\n standalone: true,\n exportAs: 'slTabActions',\n host: { 'data-part': 'actions' },\n})\nexport class SlTabActions {}\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-tabs.mjs","sources":["../../tabs/src/tabs-defaults.ts","../../tabs/src/tabs.ts","../../tabs/src/tabs-parts.ts","../../tabs/src/slotted-angular-tabs.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** Whether moving focus to a tab also selects it. */\nexport type TabsActivation = 'automatic' | 'manual';\n\n/** Which way the list runs. A horizontal list scrolls; a vertical one stacks. */\nexport type TabsOrientation = 'horizontal' | 'vertical';\n\n/** The type step the list and its tabs sit at. */\nexport type TabsSize = 'sm' | 'md' | 'lg';\n\n/**\n * How the list is drawn. `line` is a row of labels over a hairline; `contained`\n * is a sunken track holding a surface per tab. Both paint the same marker,\n * which is what survives the `high-contrast` scheme.\n */\nexport type TabsVariant = 'line' | 'contained';\n\n/**\n * Whether the list draws the line its tabs stand on. `none` is for a list that\n * sits on a line the page already drew — a card header's edge, a table's own\n * rule — where two hairlines a pixel apart read as one smudge.\n */\nexport type TabsTrack = 'line' | 'none';\n\n/** Whether each tab is as wide as its label or takes an equal share of the line. */\nexport type TabsFit = 'auto' | 'equal';\n\n/**\n * When a panel exists. The names are Cloudscape's, which are the clearest three\n * words in the field for the same three behaviours.\n */\nexport type TabsMount = 'active' | 'lazy' | 'eager';\n\n/** Which way the selection travelled, from the two indices. */\nexport type TabsActivationDirection = 'forward' | 'backward' | 'none';\n\nexport interface TabsDefaults {\n activation: TabsActivation;\n fit: TabsFit;\n track: TabsTrack;\n loop: boolean;\n mount: TabsMount;\n orientation: TabsOrientation;\n size: TabsSize;\n variant: TabsVariant;\n}\n\nconst FALLBACK: TabsDefaults = {\n activation: 'automatic',\n fit: 'auto',\n loop: true,\n mount: 'active',\n orientation: 'horizontal',\n size: 'md',\n track: 'line',\n variant: 'line',\n};\n\nexport const TABS_DEFAULTS = new InjectionToken<TabsDefaults>('slotted tabs defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its tabs look and behave, rather than\n * repeating the same seven inputs on every family in a product. A family that\n * states any of them itself still wins.\n */\nexport function provideTabsDefaults(defaults: Partial<TabsDefaults>) {\n return {\n provide: TABS_DEFAULTS,\n useFactory: (): TabsDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a tabs family renders as here, before it states anything of its own. */\nexport function injectTabsDefaults(): TabsDefaults {\n return inject(TABS_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlTabsIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-tabs-${this.count}`;\n }\n}\n","import { createRemovalFocus, createRovingTabindex } from '@slotted/core/focus';\nimport type { RemovalFocusHandle, RovingTabindexHandle } from '@slotted/core/focus';\nimport { createIndicator } from '@slotted/core/measure';\nimport { createScrollAffordance, NOT_OVERFLOWING } from '@slotted/core/overflow';\nimport type { OverflowState, ScrollAffordanceHandle } from '@slotted/core/overflow';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n Injector,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { injectTabsDefaults, SlTabsIdFactory } from './tabs-defaults';\nimport type {\n TabsActivation,\n TabsActivationDirection,\n TabsFit,\n TabsMount,\n TabsOrientation,\n TabsSize,\n TabsTrack,\n TabsVariant,\n} from './tabs-defaults';\n\nexport type {\n TabsActivation,\n TabsActivationDirection,\n TabsDefaults,\n TabsFit,\n TabsMount,\n TabsOrientation,\n TabsSize,\n TabsTrack,\n TabsVariant,\n} from './tabs-defaults';\n\n/** Every tab in the list, in the order the DOM holds them. */\nexport const TAB_SELECTOR = '[data-part=\"tab\"]';\n\n/** Why the selection moved. */\nexport type TabsSelectionReason = 'pointer' | 'keyboard' | 'remove' | 'programmatic';\n\n/** Why a tab was dismissed. */\nexport type TabsDismissReason = 'pointer' | 'keyboard';\n\n/**\n * The request a dismissal carries. It holds no value pair, because nothing is\n * replacing anything: the value being dismissed is `value`, and the shape is\n * `tag`'s, which set the convention for a removal in this library.\n */\nexport interface TabsDismissRequest {\n readonly value: string;\n readonly reason: TabsDismissReason;\n readonly source: Event;\n readonly cancelled: boolean;\n cancel(): void;\n}\n\n/**\n * An identifier from a value, injectively.\n *\n * A value is the consumer's own string and may hold a space, which no\n * identifier may. Escaping the characters an identifier refuses — rather than\n * replacing them — is what keeps two values from wiring one panel.\n */\nexport function escapeTabValue(value: string): string {\n return value.replace(/[^\\w-]/g, (character) => `-${character.charCodeAt(0).toString(16)}-`);\n}\n\n/**\n * One view out of several, and the panels under it.\n *\n * **The keyboard is the APG's, and it is implemented once.** The list is a\n * roving tab stop from `@slotted/core/focus`: `Tab` enters on the selected tab,\n * the arrows of the flow axis move and wrap, `Home` and `End` reach the ends,\n * and the cross axis is left alone so the page still scrolls with focus inside\n * a horizontal list. `Delete` dismisses a dismissible tab, and focus lands\n * where the pattern says.\n *\n * **The marker moves without a measurement.** The root records which way the\n * selection travelled and the stylesheet turns that into a transform origin, so\n * the family is right in a server response and during the first paint.\n *\n * **The paging controls belong to the root**, because the root owns the observer\n * that knows whether they are needed. They are out of the tab sequence and out\n * of the accessibility tree: the arrows already reach every tab and bring it\n * into view.\n */\n@Component({\n selector: '[slTabs]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n exportAs: 'slTabs',\n template: `<ng-content />\n @if (paging()) {\n <button\n aria-hidden=\"true\"\n data-part=\"scroll\"\n data-part-scroll=\"\"\n data-direction=\"start\"\n type=\"button\"\n tabindex=\"-1\"\n [disabled]=\"overflow().atStart\"\n (click)=\"page(-1)\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n <button\n aria-hidden=\"true\"\n data-part=\"scroll\"\n data-part-scroll=\"\"\n data-direction=\"end\"\n type=\"button\"\n tabindex=\"-1\"\n [disabled]=\"overflow().atEnd\"\n (click)=\"page(1)\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n }`,\n styleUrl: '../../../styles/src/tabs/tabs.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'tabs',\n 'data-ui-tabs': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-track]': 'resolvedTrack()',\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-fit]': 'resolvedFit()',\n '[attr.data-activation-direction]': 'direction()',\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[attr.data-overflowing]': \"overflow().overflowing ? '' : null\",\n },\n})\nexport class SlTabs implements OnInit {\n /** Present means the consumer owns the selection. */\n readonly value = input<string | undefined>(undefined);\n /** The value an uncontrolled family starts from, read once. */\n readonly defaultValue = input<string | undefined>(undefined);\n readonly activation = input<TabsActivation | undefined>(undefined);\n readonly orientation = input<TabsOrientation | undefined>(undefined);\n readonly size = input<TabsSize | undefined>(undefined);\n readonly variant = input<TabsVariant | undefined>(undefined);\n /** `none` draws no line at all, for a list standing on one the page drew. */\n readonly track = input<TabsTrack | undefined>(undefined);\n readonly fit = input<TabsFit | undefined>(undefined);\n readonly mount = input<TabsMount | undefined>(undefined);\n readonly loop = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** Reaches every tab as the native attribute, which is also what makes the\n browser skip it with the arrow keys. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** One output for one transition, carrying the reason and the event. */\n readonly valueChange = output<ChangeRequest<string | undefined>>();\n /**\n * Asked before a tab is dismissed. The family removes nothing: the consumer\n * owns the collection, and a component that removed itself would render\n * nothing while the consumer's array still held the item.\n */\n readonly tabDismiss = output<TabsDismissRequest>();\n\n private readonly defaults = injectTabsDefaults();\n private readonly baseId = inject(SlTabsIdFactory).next();\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n private readonly own = signal<string | undefined>(undefined);\n private readonly listElement = signal<HTMLElement | null>(null);\n private readonly seen = new Set<string>();\n private roving: RovingTabindexHandle | null = null;\n private affordance: ScrollAffordanceHandle | null = null;\n\n protected readonly direction = signal<TabsActivationDirection>('none');\n protected readonly overflow = signal<OverflowState>(NOT_OVERFLOWING);\n\n readonly selection = computed(() => this.value() ?? this.own());\n readonly resolvedActivation = computed(() => this.activation() ?? this.defaults.activation);\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedTrack = computed(() => this.track() ?? this.defaults.track);\n readonly resolvedFit = computed(() => this.fit() ?? this.defaults.fit);\n readonly resolvedMount = computed(() => this.mount() ?? this.defaults.mount);\n readonly resolvedLoop = computed(() => this.loop() ?? this.defaults.loop);\n\n protected readonly paging = computed(\n () => this.overflow().overflowing && this.resolvedOrientation() === 'horizontal',\n );\n\n constructor() {\n /**\n * The list constructs before this runs and hands over its element; the\n * handles are created once, after the first render, because two of them\n * measure and all three read the DOM the tabs are in.\n */\n afterNextRender(() => {\n const list = this.listElement();\n if (list !== null) this.observe(list);\n });\n }\n\n ngOnInit() {\n if (this.value() === undefined) this.own.set(this.defaultValue());\n const start = this.selection();\n if (start !== undefined) this.seen.add(start);\n }\n\n /** The identifiers a tab and its panel are wired together with. */\n identify(value: string) {\n const escaped = escapeTabValue(value);\n return { panelId: `${this.baseId}-panel-${escaped}`, tabId: `${this.baseId}-tab-${escaped}` };\n }\n\n /** Whether this value is the selected one. Read by every tab and panel. */\n holds(value: string): boolean {\n return this.selection() === value;\n }\n\n /** Whether this value has ever been selected, which is what `lazy` reads. */\n hasSeen(value: string): boolean {\n return this.seen.has(value);\n }\n\n /**\n * The list hands the root its element. The root owns the roving tab stop, the\n * removal focus and the overflow observer — all three are about that element,\n * and the root is what holds the value they act on.\n */\n attachList(element: HTMLElement) {\n this.listElement.set(element);\n }\n\n private tabElements(): HTMLElement[] {\n const list = this.listElement();\n return list === null ? [] : [...list.querySelectorAll<HTMLElement>(TAB_SELECTOR)];\n }\n\n private indexOf(value: string | undefined): number {\n if (value === undefined) return -1;\n return this.tabElements().findIndex((item) => item.getAttribute('data-value') === value);\n }\n\n /**\n * Asks the family to select one value. The direction is set in the same turn,\n * so the marker's origin and the selection reach the DOM in one paint.\n */\n select(next: string, reason: TabsSelectionReason, source?: Event) {\n if (next === this.selection()) return;\n\n let cancelled = false;\n const state = createControllable<string | undefined>({\n controlled: this.value(),\n initial: this.selection(),\n onRequest: (request) => {\n this.valueChange.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled) return;\n\n const from = this.indexOf(this.selection());\n const to = this.indexOf(next);\n if (from !== -1 && to !== -1) this.direction.set(to > from ? 'forward' : 'backward');\n\n this.seen.add(next);\n if (moved) this.own.set(next);\n\n /* The tab stop follows the selection, which is where `Tab` from outside the\n list lands. The DOM order does not change here, so the index is read\n straight away rather than waiting for a render. */\n if (to !== -1) this.roving?.setActive(to);\n this.revealSelected();\n }\n\n /**\n * The neighbour a dismissal leaves the selection to: the tab that followed\n * the dismissed one, or the one before it when the dismissed tab was last.\n * It is the APG's own focus rule for `Delete`, applied to the value.\n */\n private neighbourOf(dismissed: string): string | undefined {\n const values = this.tabElements()\n .map((item) => item.getAttribute('data-value'))\n .filter((candidate): candidate is string => candidate !== null);\n const index = values.indexOf(dismissed);\n if (index === -1) return undefined;\n return values[index + 1] ?? values[index - 1];\n }\n\n dismiss(value: string, reason: TabsDismissReason, source: Event) {\n let cancelled = false;\n const request: TabsDismissRequest = {\n value,\n reason,\n source,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n this.tabDismiss.emit(request);\n if (cancelled) return;\n\n if (!this.holds(value)) return;\n const next = this.neighbourOf(value);\n if (next !== undefined) this.select(next, 'remove', source);\n }\n\n /** Puts the tab stop on the selected tab and brings it into view. */\n syncSelection() {\n const index = this.indexOf(this.selection());\n if (index === -1) return;\n this.roving?.setActive(index);\n this.revealSelected();\n }\n\n private revealSelected() {\n const item = this.tabElements()[this.indexOf(this.selection())];\n if (item !== undefined) this.affordance?.reveal(item);\n }\n\n protected page(direction: -1 | 1) {\n this.affordance?.page(direction);\n }\n\n private observe(list: HTMLElement) {\n const tabindex = createRovingTabindex(list, {\n crossAxis: false,\n itemSelector: TAB_SELECTOR,\n loop: this.resolvedLoop(),\n onMove: (_index, item) => {\n this.affordance?.reveal(item);\n if (this.resolvedActivation() !== 'automatic') return;\n const next = item.getAttribute('data-value');\n if (next !== null) this.select(next, 'keyboard');\n },\n orientation: () => this.resolvedOrientation(),\n });\n this.roving = tabindex;\n\n /**\n * Where the keyboard goes when the tab it was on is dismissed. The list\n * is the last resort, which is why it holds `tabindex=\"-1\"`: a list\n * emptied by its final dismissal keeps focus rather than returning it\n * to the top of the page.\n */\n const removal: RemovalFocusHandle = createRemovalFocus(list, {\n itemSelector: TAB_SELECTOR,\n });\n /**\n * A list that starts to overflow — on its first render, or later when its\n * stylesheet arrives, a drawer opens or a hidden panel is shown — draws its\n * paging controls, and they narrow it: a tab revealed against the wider list\n * ended behind the end control. The selected tab is revealed again once the\n * controls are in the layout, on that transition and on no other, so a\n * reader scrolling the list keeps control.\n */\n let overflowing = false;\n const affordance = createScrollAffordance(list, {\n onChange: (state) => {\n this.overflow.set(state);\n if (state.overflowing && !overflowing) {\n afterNextRender(() => this.revealSelected(), { injector: this.injector });\n }\n overflowing = state.overflowing;\n },\n });\n this.affordance = affordance;\n this.overflow.set(affordance.state());\n\n /** The marker the list draws under the selected tab, measured by `createIndicator`. */\n const indicator = createIndicator(list, {\n orientation: () => this.resolvedOrientation(),\n part: 'marker',\n target: () =>\n list.querySelector<HTMLElement>(\n ':scope > [data-part=\"item\"][data-selected] > [data-part=\"tab\"]',\n ),\n });\n\n /**\n * A tab arriving or leaving has to reach both handles, and neither\n * binding can be told by the other's change detection. The DOM is the\n * one thing they agree on.\n */\n const observer = new MutationObserver(() => {\n tabindex.refresh();\n affordance.refresh();\n this.syncSelection();\n });\n observer.observe(list, { childList: true, subtree: true });\n this.syncSelection();\n\n this.destroyRef.onDestroy(() => {\n observer.disconnect();\n indicator.destroy();\n removal.destroy();\n affordance.destroy();\n tabindex.destroy();\n this.roving = null;\n this.affordance = null;\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlTabs } from './tabs';\nimport type { TabsDismissReason, TabsSelectionReason } from './tabs';\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It is why `Enter`, `Space` and a pointer are told apart without a\n * key listener existing for activation.\n */\nfunction activationReason(event: Event): TabsSelectionReason {\n return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/**\n * The list of tabs, and the one tab stop the family holds.\n *\n * It hands its element to the root, which owns the roving tab stop, the removal\n * focus and the overflow observer. `tabindex=\"-1\"` is the last resort of the\n * removal focus: a list emptied by its final dismissal keeps focus rather than\n * returning it to the top of the page.\n *\n * Its accessible name is the consumer's own `aria-label` or `aria-labelledby`:\n * only the page knows what the set of views is for.\n */\n@Directive({\n selector: '[slTabList]',\n standalone: true,\n exportAs: 'slTabList',\n host: {\n 'data-part': 'list',\n 'data-part-list': '',\n role: 'tablist',\n tabindex: '-1',\n '[attr.aria-orientation]': 'ariaOrientation()',\n },\n})\nexport class SlTabList {\n private readonly tabs = inject(SlTabs);\n\n protected readonly ariaOrientation = computed(() =>\n this.tabs.resolvedOrientation() === 'vertical' ? 'vertical' : null,\n );\n\n constructor() {\n this.tabs.attachList(inject(ElementRef<HTMLElement>).nativeElement);\n }\n}\n\n/**\n * What precedes the label inside a tab, such as an icon. It stands beside the\n * words rather than inside them, so the tab's gap spaces it and only the words\n * are clipped under `fit=\"equal\"`; the part sizes an icon to the tab's icon step.\n */\n@Directive({\n selector: '[slTabStart]',\n standalone: true,\n exportAs: 'slTabStart',\n host: { 'data-part': 'start', 'data-part-start': '' },\n})\nexport class SlTabStart {}\n\n/** What follows the label inside a tab, such as a count. */\n@Directive({\n selector: '[slTabEnd]',\n standalone: true,\n exportAs: 'slTabEnd',\n host: { 'data-part': 'end', 'data-part-end': '' },\n})\nexport class SlTabEnd {}\n\n/**\n * One tab, in the box that holds it.\n *\n * The host is that box, and it is presentational because a `button` may not\n * contain a `button`: a dismissible tab needs somewhere to put its second\n * control.\n *\n * `href` makes the control an anchor, and a click carrying a modifier key is\n * left to the browser so a deep link still opens in a new browser tab.\n */\n@Component({\n selector: '[slTab]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon],\n exportAs: 'slTab',\n /* The words and what stands beside them are written once and placed in\n whichever control the tab renders: a selecting `ng-content` repeated in\n both branches left the button branch without its icon and its count. */\n template: `<ng-template #content\n ><ng-content select=\"[slTabStart]\" /><span data-part=\"label\" data-part-label=\"\"\n ><ng-content /></span\n ><ng-content select=\"[slTabEnd]\"\n /></ng-template>\n @if (href(); as destination) {\n <a\n #control\n data-part=\"tab\"\n data-part-tab=\"\"\n role=\"tab\"\n [attr.id]=\"tabId()\"\n [attr.href]=\"destination\"\n [attr.data-value]=\"value()\"\n [attr.aria-controls]=\"panelId()\"\n [attr.aria-selected]=\"selected()\"\n [attr.aria-disabled]=\"resolvedDisabled() ? 'true' : null\"\n [attr.aria-keyshortcuts]=\"dismissible() ? 'Delete' : null\"\n [attr.tabindex]=\"selected() ? 0 : -1\"\n (click)=\"onClick($event)\"\n (keydown)=\"onKeydown($event)\"\n ><ng-container [ngTemplateOutlet]=\"content\"\n /></a>\n } @else {\n <button\n #control\n data-part=\"tab\"\n data-part-tab=\"\"\n role=\"tab\"\n type=\"button\"\n [attr.id]=\"tabId()\"\n [attr.data-value]=\"value()\"\n [attr.aria-controls]=\"panelId()\"\n [attr.aria-selected]=\"selected()\"\n [attr.aria-keyshortcuts]=\"dismissible() ? 'Delete' : null\"\n [disabled]=\"resolvedDisabled()\"\n [attr.tabindex]=\"selected() ? 0 : -1\"\n (click)=\"onClick($event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n </button>\n }\n @if (dismissible()) {\n <button\n data-part=\"dismiss\"\n data-part-dismiss=\"\"\n type=\"button\"\n tabindex=\"-1\"\n [attr.aria-label]=\"dismissLabel()\"\n [disabled]=\"resolvedDisabled()\"\n (click)=\"onDismiss($event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'item',\n 'data-part-item': '',\n role: 'presentation',\n '[attr.data-selected]': \"selected() ? '' : null\",\n },\n})\nexport class SlTab {\n /** What this tab selects. It is what the family's value holds. */\n readonly value = input.required<string>();\n /** Unstated rather than `false`, so the tab defers to the family. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** Whether this tab carries a control that closes it. */\n readonly dismissible = input(false, { transform: booleanAttribute });\n /** The accessible name of that control. Required whenever it is drawn. */\n readonly dismissLabel = input<string | undefined>(undefined);\n /** Makes the control an anchor, for a view a router can deep-link to. */\n readonly href = input<string | undefined>(undefined);\n /**\n * The id of the element this tab controls, when it is not a panel of this\n * family: a strip over one region whose content the value filters — a\n * feed, a table — names that region here, and `aria-controls` says so.\n */\n readonly controls = input<string | undefined>(undefined);\n\n /** The family this tab belongs to. Public, because a template may read it. */\n readonly tabs = inject(SlTabs);\n\n readonly selected = computed(() => this.tabs.holds(this.value()));\n /**\n * A family out of action takes every tab with it. The tab's own input can\n * only add to that, never subtract: a consumer that writes `[disabled]=\"false\"`\n * on a tab inside a disabled family is saying nothing about that family, and a\n * template that binds an expression writes `false` where it means \"not this\n * one\" — which is how every tab stayed operable while the family reported\n * itself disabled.\n */\n readonly resolvedDisabled = computed(() => this.tabs.disabled() || (this.disabled() ?? false));\n\n protected readonly tabId = computed(() => this.tabs.identify(this.value()).tabId);\n protected readonly panelId = computed(\n () => this.controls() ?? this.tabs.identify(this.value()).panelId,\n );\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.resolvedDisabled()) return;\n /* A modifier click on a link is the reader asking the browser for a new\n window, and swallowing it is what turns a real destination into a\n decoration. */\n if (\n this.href() !== undefined &&\n (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)\n ) {\n return;\n }\n if (this.href() !== undefined) event.preventDefault();\n this.tabs.select(this.value(), activationReason(event), event);\n }\n\n /**\n * `Delete` closes the tab, which is the key the APG names for it. A held key\n * repeats, and a repeat would close the tab focus has just landed on.\n */\n protected onKeydown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.repeat) return;\n if (!this.dismissible() || this.resolvedDisabled()) return;\n if (event.key !== 'Delete') return;\n\n event.preventDefault();\n this.tabs.dismiss(this.value(), 'keyboard' satisfies TabsDismissReason, event);\n }\n\n protected onDismiss(event: MouseEvent) {\n /* The control sits inside the item, whose click would otherwise select the\n tab that is being closed. */\n event.stopPropagation();\n this.tabs.dismiss(this.value(), 'pointer', event);\n }\n}\n\n/**\n * The content of a panel, as a template the panel instantiates.\n *\n * Projected markup is built by the consumer's own view whether a panel shows it\n * or not: a component inside a closed panel is constructed, change-detected and\n * keeps its state, and only its DOM is detached. A template is what `mount` can\n * act on. Under `active` it is instantiated on selection and destroyed after,\n * under `lazy` it is instantiated on first selection and kept, under `eager` it\n * is instantiated up front. It is the shape of Angular Material's `matTabContent`.\n *\n * It must be a direct child of the panel, so a panel never takes the template of\n * a family nested inside it.\n */\n@Directive({\n selector: 'ng-template[slTabPanelContent]',\n standalone: true,\n})\nexport class SlTabPanelContent {\n readonly template = inject(TemplateRef);\n}\n\n/**\n * The content of one tab.\n *\n * It is in the page's tab sequence, which is where `Tab` from the list goes, and\n * it is hidden with the attribute rather than with a class: a screen reader,\n * find-in-page and `:target` all already understand `hidden`.\n *\n * The panel itself always exists, so every tab's `aria-controls` names an\n * element. Whether its content is in the DOM is what `mount` decides. Content\n * written inside `<ng-template slTabPanelContent>` is also only built when\n * `mount` says so; projected markup is built by the consumer's view regardless.\n */\n@Component({\n selector: '[slTabPanel]',\n standalone: true,\n imports: [NgTemplateOutlet],\n exportAs: 'slTabPanel',\n template: `@if (present()) {\n @if (content(); as deferred) {\n <ng-container [ngTemplateOutlet]=\"deferred.template\" />\n } @else {\n <ng-content />\n }\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'panel',\n 'data-part-panel': '',\n role: 'tabpanel',\n tabindex: '0',\n '[attr.id]': 'panelId()',\n '[attr.aria-labelledby]': 'tabId()',\n '[attr.hidden]': \"selected() ? null : ''\",\n },\n})\nexport class SlTabPanel {\n /** The tab this panel belongs to. */\n readonly value = input.required<string>();\n\n private readonly tabs = inject(SlTabs);\n\n /** The deferred content, when the consumer wrote one. */\n protected readonly content = contentChild(SlTabPanelContent, { descendants: false });\n\n readonly selected = computed(() => this.tabs.holds(this.value()));\n\n protected readonly panelId = computed(() => this.tabs.identify(this.value()).panelId);\n protected readonly tabId = computed(() => this.tabs.identify(this.value()).tabId);\n protected readonly present = computed(() => {\n const mount = this.tabs.resolvedMount();\n if (mount === 'eager') return true;\n if (this.selected()) return true;\n return mount === 'lazy' && this.tabs.hasSeen(this.value());\n });\n}\n\n/**\n * The slot beside the list, on the same row.\n *\n * What belongs in it is a `toolbar`: one tab stop for however many actions the\n * page puts there, which is what keeps the distance between the tab list and the\n * panel to the two stops the pattern asks for.\n */\n@Directive({\n selector: '[slTabActions]',\n standalone: true,\n exportAs: 'slTabActions',\n host: { 'data-part': 'actions', 'data-part-actions': '' },\n})\nexport class SlTabActions {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -133,7 +133,7 @@ class SlTagGroup {
133
133
  });
134
134
  }
135
135
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
136
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: SlTagGroup, isStandalone: true, selector: "[slTagGroup]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "tag", "data-part": "group", "tabindex": "-1" }, properties: { "attr.data-orientation": "orientation()", "attr.role": "role()", "attr.aria-orientation": "ariaOrientation()" } }, exportAs: ["slTagGroup"], ngImport: i0 });
136
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: SlTagGroup, isStandalone: true, selector: "[slTagGroup]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "tag", "data-ui-tag": "", "data-part": "group", "data-part-group": "", "tabindex": "-1" }, properties: { "attr.data-orientation": "orientation()", "attr.role": "role()", "attr.aria-orientation": "ariaOrientation()" } }, exportAs: ["slTagGroup"], ngImport: i0 });
137
137
  }
138
138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagGroup, decorators: [{
139
139
  type: Directive,
@@ -143,7 +143,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
143
143
  exportAs: 'slTagGroup',
144
144
  host: {
145
145
  'data-ui': 'tag',
146
+ 'data-ui-tag': '',
146
147
  'data-part': 'group',
148
+ 'data-part-group': '',
147
149
  tabindex: '-1',
148
150
  '[attr.data-orientation]': 'orientation()',
149
151
  '[attr.role]': 'role()',
@@ -275,13 +277,15 @@ class SlTag {
275
277
  this.requestRemoval('keyboard', event);
276
278
  }
277
279
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTag, deps: [], target: i0.ɵɵFactoryTarget.Component });
278
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlTag, isStandalone: true, selector: "[slTag]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, removable: { classPropertyName: "removable", publicName: "removable", isSignal: true, isRequired: false, transformFunction: null }, removeDisabled: { classPropertyName: "removeDisabled", publicName: "removeDisabled", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { remove: "remove" }, host: { attributes: { "data-ui": "tag", "data-part": "root" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.data-tone": "resolvedTone()", "attr.data-variant": "resolvedVariant()", "attr.data-size": "resolvedSize()", "attr.data-shape": "resolvedShape()", "attr.data-disabled": "disabled() ? '' : null", "attr.data-selected": "selected() ? '' : null", "attr.role": "role()" } }, exportAs: ["slTag"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui=tag][data-part=root]{--_solid: var(--slotted-tone-secondary-solid-hover);--_solid-hover: var(--slotted-tone-secondary-solid-active);--_solid-active: var(--slotted-tone-secondary-solid-active);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_subtle-hover: var(--slotted-tone-secondary-subtle-hover);--_subtle-active: var(--slotted-tone-secondary-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-secondary-border));--_text: var(--slotted-tone-secondary-text);--_edge: var(--_solid);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_inner-size: var(--slotted-control-inner-size-sm, 22px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-space-4, .5rem);--_gap: var(--slotted-space-2, .25rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_edge-width: var(--slotted-tag-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-radius-full, 9999px);--_inner-radius: max(0px, calc(var(--_radius) - var(--_edge-width)));--_own-size: calc( var(--_font-size) * var(--_line-height) + 2 * var(--_inset-block) + 2 * var(--_edge-width) );--_block-size: var(--slotted-control-inner-size, var(--_own-size));--_line: min( calc(var(--_font-size) * var(--_line-height)), calc(var(--_block-size) - 2 * var(--_edge-width)) );--_inset: max(0px, calc((var(--_block-size) - var(--_line) - 2 * var(--_edge-width)) / 2));align-items:stretch;border:var(--_edge-width) solid transparent;border-radius:var(--_radius);box-sizing:border-box;display:inline-flex;font-family:var(--slotted-tag-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-weight:var(--slotted-tag-font-weight, var(--slotted-font-weight-medium, 500));line-height:var(--_line);max-inline-size:100%;min-block-size:var(--_block-size);vertical-align:middle;white-space:nowrap}[data-ui=tag][data-part=root][hidden]{display:none}[data-ui=tag][data-part=root][data-tone=secondary]{--_edge: var(--_border)}[data-ui=tag][data-part=root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_solid-hover: var(--slotted-tone-accent-solid-hover);--_solid-active: var(--slotted-tone-accent-solid-active);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_subtle-hover: var(--slotted-tone-accent-subtle-hover);--_subtle-active: var(--slotted-tone-accent-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-accent-border));--_text: var(--slotted-tone-accent-text)}[data-ui=tag][data-part=root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_solid-hover: var(--slotted-tone-success-solid-hover);--_solid-active: var(--slotted-tone-success-solid-active);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_subtle-hover: var(--slotted-tone-success-subtle-hover);--_subtle-active: var(--slotted-tone-success-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-success-border));--_text: var(--slotted-tone-success-text)}[data-ui=tag][data-part=root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_solid-hover: var(--slotted-tone-warning-solid-hover);--_solid-active: var(--slotted-tone-warning-solid-active);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_subtle-hover: var(--slotted-tone-warning-subtle-hover);--_subtle-active: var(--slotted-tone-warning-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-warning-border));--_text: var(--slotted-tone-warning-text)}[data-ui=tag][data-part=root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_solid-hover: var(--slotted-tone-danger-solid-hover);--_solid-active: var(--slotted-tone-danger-solid-active);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_subtle-hover: var(--slotted-tone-danger-subtle-hover);--_subtle-active: var(--slotted-tone-danger-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-danger-border));--_text: var(--slotted-tone-danger-text)}[data-ui=tag][data-part=root][data-variant=solid]{background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonFace);color:var(--_on-solid, ButtonText)}[data-ui=tag][data-part=root][data-variant=soft]{background-color:var(--_surface, ButtonFace);border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui=tag][data-part=root][data-variant=outline]{background-color:transparent;border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui=tag][data-part=root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-1, .125rem));--_inset-inline: var(--slotted-space-3, .375rem)}[data-ui=tag][data-part=root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-3, .375rem));--_inset-inline: var(--slotted-space-5, .75rem);--_gap: var(--slotted-space-3, .375rem)}[data-ui=tag][data-part=root][data-shape=square]{--_radius: var(--slotted-radius-sm, 4px)}[data-ui=tag] [data-part=body]{align-items:center;background-color:transparent;border:0;border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;display:inline-flex;font:inherit;gap:var(--_gap);letter-spacing:inherit;min-inline-size:0;padding-block:var(--_inset);padding-inline:var(--_inset-inline);text-align:start;text-decoration:none;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=tag] [data-part=body]:last-child{border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius)}[data-ui=tag] [data-part=body]:has(+[data-part=remove]){padding-inline-end:var(--_gap)}[data-ui=tag] [data-part=body]:is(a,button){cursor:pointer}[data-ui=tag] [data-part=label]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}@supports (text-box: trim-both cap alphabetic){[data-ui=tag] [data-part=label]{margin-block:-.3em;padding-block:.3em;text-box:trim-both cap alphabetic}}[data-ui=tag] [data-part=start],[data-ui=tag] [data-part=end]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);box-sizing:border-box;display:inline-flex;flex:none;font-size:var(--_icon-size);inline-size:var(--_icon-size);justify-content:center;line-height:1}[data-ui=tag] [data-part=start]>*,[data-ui=tag] [data-part=end]>*{block-size:100%;display:block;inline-size:100%}[data-ui=tag] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:0;justify-content:center;margin-inline-end:calc(-1 * var(--_gap));opacity:0;overflow:hidden;transition:inline-size var(--slotted-duration-short) var(--slotted-easing-standard),margin-inline-end var(--slotted-duration-short) var(--slotted-easing-standard),opacity var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=tag][data-part=root][data-selected] [data-part=indicator]{inline-size:var(--_icon-size);margin-inline-end:0;opacity:1}[data-ui=tag] [data-part=remove]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;border:0;border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;flex:none;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;padding:0;position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=tag] [data-part=remove]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=tag] [data-part=remove]{inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)),calc(var(--_block-size) - 2 * var(--_edge-width)))}[data-ui=tag] [data-part=remove]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui=tag] [data-part=remove]:first-child{border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius)}[data-ui=tag][data-part=root][data-selected]:not([data-disabled]){background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonBorder);color:var(--_on-solid, ButtonText)}[data-ui=tag][data-part=root]{--_state-hover: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-hover, 8%), transparent );--_state-active: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-active, 14%), transparent )}[data-ui=tag][data-part=root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_state-hover)}[data-ui=tag][data-part=root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_state-active)}[data-ui=tag][data-part=root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_subtle-hover, ButtonFace)}[data-ui=tag][data-part=root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_subtle-active, ButtonFace)}[data-ui=tag][data-part=root][data-variant=solid]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled),[data-ui=tag][data-part=root][data-selected]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_solid-hover, Highlight)}[data-ui=tag][data-part=root][data-variant=solid]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled),[data-ui=tag][data-part=root][data-selected]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_solid-active, Highlight)}[data-ui=tag] [data-part=body]:focus-visible,[data-ui=tag] [data-part=remove]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-2 * var(--slotted-focus-ring-width, 2px))}[data-ui=tag][data-part=group]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=tag][data-part=root][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=tag][data-part=root][data-variant=solid][data-disabled],[data-ui=tag][data-part=root][data-variant=soft][data-disabled],[data-ui=tag][data-part=root][data-selected][data-disabled]{background-color:var(--slotted-disabled-background, Canvas);border-color:var(--slotted-disabled-border, GrayText)}[data-ui=tag][data-part=root][data-variant=outline][data-disabled]{background-color:transparent;border-color:var(--slotted-disabled-border, GrayText)}[data-ui=tag][data-part=root][data-disabled] :is([data-part=body],[data-part=remove]),[data-ui=tag] [data-part=body]:disabled,[data-ui=tag] [data-part=remove]:disabled{background-color:transparent;cursor:not-allowed}[data-ui=tag] [data-part=remove]:disabled{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=tag][data-part=group]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-tag-group-gap, var(--slotted-space-2, .25rem))}[data-ui=tag][data-part=group][data-orientation=vertical]{align-items:start;flex-direction:column;flex-wrap:nowrap;inline-size:fit-content}[data-ui=tag][data-part=group]:empty{display:none}@media(forced-colors:active){[data-ui=tag][data-part=root]{border-color:currentColor}[data-ui=tag][data-part=root][data-selected]:not([data-disabled]){background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=tag][data-part=root][data-disabled]{border-color:GrayText;color:GrayText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
280
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlTag, isStandalone: true, selector: "[slTag]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, removable: { classPropertyName: "removable", publicName: "removable", isSignal: true, isRequired: false, transformFunction: null }, removeDisabled: { classPropertyName: "removeDisabled", publicName: "removeDisabled", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { remove: "remove" }, host: { attributes: { "data-ui": "tag", "data-ui-tag": "", "data-part": "root", "data-part-root": "" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.data-tone": "resolvedTone()", "attr.data-variant": "resolvedVariant()", "attr.data-size": "resolvedSize()", "attr.data-shape": "resolvedShape()", "attr.data-disabled": "disabled() ? '' : null", "attr.data-selected": "selected() ? '' : null", "attr.role": "role()" } }, exportAs: ["slTag"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui-tag][data-part-root]{--_solid: var(--slotted-tone-secondary-solid-hover);--_solid-hover: var(--slotted-tone-secondary-solid-active);--_solid-active: var(--slotted-tone-secondary-solid-active);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_subtle-hover: var(--slotted-tone-secondary-subtle-hover);--_subtle-active: var(--slotted-tone-secondary-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-secondary-border));--_text: var(--slotted-tone-secondary-text);--_edge: var(--_solid);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_inner-size: var(--slotted-control-inner-size-sm, 22px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-space-4, .5rem);--_gap: var(--slotted-space-2, .25rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_edge-width: var(--slotted-tag-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-radius-full, 9999px);--_inner-radius: max(0px, calc(var(--_radius) - var(--_edge-width)));--_own-size: calc( var(--_font-size) * var(--_line-height) + 2 * var(--_inset-block) + 2 * var(--_edge-width) );--_block-size: var(--slotted-control-inner-size, var(--_own-size));--_line: min( calc(var(--_font-size) * var(--_line-height)), calc(var(--_block-size) - 2 * var(--_edge-width)) );--_inset: max(0px, calc((var(--_block-size) - var(--_line) - 2 * var(--_edge-width)) / 2));align-items:stretch;border:var(--_edge-width) solid transparent;border-radius:var(--_radius);box-sizing:border-box;display:inline-flex;font-family:var(--slotted-tag-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-weight:var(--slotted-tag-font-weight, var(--slotted-font-weight-medium, 500));line-height:var(--_line);max-inline-size:100%;min-block-size:var(--_block-size);vertical-align:middle;white-space:nowrap}[data-ui-tag][data-part-root][hidden]{display:none}[data-ui-tag][data-part-root][data-tone=secondary]{--_edge: var(--_border)}[data-ui-tag][data-part-root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_solid-hover: var(--slotted-tone-accent-solid-hover);--_solid-active: var(--slotted-tone-accent-solid-active);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_subtle-hover: var(--slotted-tone-accent-subtle-hover);--_subtle-active: var(--slotted-tone-accent-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-accent-border));--_text: var(--slotted-tone-accent-text)}[data-ui-tag][data-part-root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_solid-hover: var(--slotted-tone-success-solid-hover);--_solid-active: var(--slotted-tone-success-solid-active);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_subtle-hover: var(--slotted-tone-success-subtle-hover);--_subtle-active: var(--slotted-tone-success-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-success-border));--_text: var(--slotted-tone-success-text)}[data-ui-tag][data-part-root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_solid-hover: var(--slotted-tone-warning-solid-hover);--_solid-active: var(--slotted-tone-warning-solid-active);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_subtle-hover: var(--slotted-tone-warning-subtle-hover);--_subtle-active: var(--slotted-tone-warning-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-warning-border));--_text: var(--slotted-tone-warning-text)}[data-ui-tag][data-part-root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_solid-hover: var(--slotted-tone-danger-solid-hover);--_solid-active: var(--slotted-tone-danger-solid-active);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_subtle-hover: var(--slotted-tone-danger-subtle-hover);--_subtle-active: var(--slotted-tone-danger-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-danger-border));--_text: var(--slotted-tone-danger-text)}[data-ui-tag][data-part-root][data-variant=solid]{background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonFace);color:var(--_on-solid, ButtonText)}[data-ui-tag][data-part-root][data-variant=soft]{background-color:var(--_surface, ButtonFace);border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui-tag][data-part-root][data-variant=outline]{background-color:transparent;border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui-tag][data-part-root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-1, .125rem));--_inset-inline: var(--slotted-space-3, .375rem)}[data-ui-tag][data-part-root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-3, .375rem));--_inset-inline: var(--slotted-space-5, .75rem);--_gap: var(--slotted-space-3, .375rem)}[data-ui-tag][data-part-root][data-shape=square]{--_radius: var(--slotted-radius-sm, 4px)}[data-ui-tag] [data-part-body]{align-items:center;background-color:transparent;border:0;border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;display:inline-flex;font:inherit;gap:var(--_gap);letter-spacing:inherit;min-inline-size:0;padding-block:var(--_inset);padding-inline:var(--_inset-inline);text-align:start;text-decoration:none;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-tag] [data-part-body]:last-child{border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius)}[data-ui-tag] [data-part-body]:has(+[data-part-remove]){padding-inline-end:var(--_gap)}[data-ui-tag] [data-part-body]:is(a,button){cursor:pointer}[data-ui-tag] [data-part-label]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}@supports (text-box: trim-both cap alphabetic){[data-ui-tag] [data-part-label]{margin-block:-.3em;padding-block:.3em;text-box:trim-both cap alphabetic}}[data-ui-tag] [data-part-start],[data-ui-tag] [data-part-end]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);box-sizing:border-box;display:inline-flex;flex:none;font-size:var(--_icon-size);inline-size:var(--_icon-size);justify-content:center;line-height:1}[data-ui-tag] [data-part-start]>*,[data-ui-tag] [data-part-end]>*{block-size:100%;display:block;inline-size:100%}[data-ui-tag] [data-part-indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:0;justify-content:center;margin-inline-end:calc(-1 * var(--_gap));opacity:0;overflow:hidden;transition:inline-size var(--slotted-duration-short) var(--slotted-easing-standard),margin-inline-end var(--slotted-duration-short) var(--slotted-easing-standard),opacity var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-tag][data-part-root][data-selected] [data-part-indicator]{inline-size:var(--_icon-size);margin-inline-end:0;opacity:1}[data-ui-tag] [data-part-remove]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;border:0;border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;flex:none;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;padding:0;position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-tag] [data-part-remove]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui-tag] [data-part-remove]{inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)),calc(var(--_block-size) - 2 * var(--_edge-width)))}[data-ui-tag] [data-part-remove]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui-tag] [data-part-remove]:first-child{border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius)}[data-ui-tag][data-part-root][data-selected]:not([data-disabled]){background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonBorder);color:var(--_on-solid, ButtonText)}[data-ui-tag][data-part-root]{--_state-hover: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-hover, 8%), transparent );--_state-active: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-active, 14%), transparent )}[data-ui-tag][data-part-root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part-body]:is(a,button),[data-part-remove]):hover:not(:disabled){background-color:var(--_state-hover)}[data-ui-tag][data-part-root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part-body]:is(a,button),[data-part-remove]):active:not(:disabled){background-color:var(--_state-active)}[data-ui-tag][data-part-root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part-body]:is(a,button),[data-part-remove]):hover:not(:disabled){background-color:var(--_subtle-hover, ButtonFace)}[data-ui-tag][data-part-root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part-body]:is(a,button),[data-part-remove]):active:not(:disabled){background-color:var(--_subtle-active, ButtonFace)}[data-ui-tag][data-part-root][data-variant=solid]:not([data-disabled]) :is([data-part-body]:is(a,button),[data-part-remove]):hover:not(:disabled),[data-ui-tag][data-part-root][data-selected]:not([data-disabled]) :is([data-part-body]:is(a,button),[data-part-remove]):hover:not(:disabled){background-color:var(--_solid-hover, Highlight)}[data-ui-tag][data-part-root][data-variant=solid]:not([data-disabled]) :is([data-part-body]:is(a,button),[data-part-remove]):active:not(:disabled),[data-ui-tag][data-part-root][data-selected]:not([data-disabled]) :is([data-part-body]:is(a,button),[data-part-remove]):active:not(:disabled){background-color:var(--_solid-active, Highlight)}[data-ui-tag] [data-part-body]:focus-visible,[data-ui-tag] [data-part-remove]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-2 * var(--slotted-focus-ring-width, 2px))}[data-ui-tag][data-part-group]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-tag][data-part-root][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui-tag][data-part-root][data-variant=solid][data-disabled],[data-ui-tag][data-part-root][data-variant=soft][data-disabled],[data-ui-tag][data-part-root][data-selected][data-disabled]{background-color:var(--slotted-disabled-background, Canvas);border-color:var(--slotted-disabled-border, GrayText)}[data-ui-tag][data-part-root][data-variant=outline][data-disabled]{background-color:transparent;border-color:var(--slotted-disabled-border, GrayText)}[data-ui-tag][data-part-root][data-disabled] :is([data-part-body],[data-part-remove]),[data-ui-tag] [data-part-body]:disabled,[data-ui-tag] [data-part-remove]:disabled{background-color:transparent;cursor:not-allowed}[data-ui-tag] [data-part-remove]:disabled{color:var(--slotted-disabled-foreground, GrayText)}[data-ui-tag][data-part-group]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-tag-group-gap, var(--slotted-space-2, .25rem))}[data-ui-tag][data-part-group][data-orientation=vertical]{align-items:start;flex-direction:column;flex-wrap:nowrap;inline-size:fit-content}[data-ui-tag][data-part-group]:empty{display:none}@media(forced-colors:active){[data-ui-tag][data-part-root]{border-color:currentColor}[data-ui-tag][data-part-root][data-selected]:not([data-disabled]){background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui-tag][data-part-root][data-disabled]{border-color:GrayText;color:GrayText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
279
281
  }
280
282
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTag, decorators: [{
281
283
  type: Component,
282
284
  args: [{ selector: '[slTag]', standalone: true, exportAs: 'slTag', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
283
285
  'data-ui': 'tag',
286
+ 'data-ui-tag': '',
284
287
  'data-part': 'root',
288
+ 'data-part-root': '',
285
289
  '[attr.data-tone]': 'resolvedTone()',
286
290
  '[attr.data-variant]': 'resolvedVariant()',
287
291
  '[attr.data-size]': 'resolvedSize()',
@@ -290,7 +294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
290
294
  '[attr.data-selected]': "selected() ? '' : null",
291
295
  '[attr.role]': 'role()',
292
296
  '(keydown)': 'onKeydown($event)',
293
- }, styles: ["@layer slotted.components{[data-ui=tag][data-part=root]{--_solid: var(--slotted-tone-secondary-solid-hover);--_solid-hover: var(--slotted-tone-secondary-solid-active);--_solid-active: var(--slotted-tone-secondary-solid-active);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_subtle-hover: var(--slotted-tone-secondary-subtle-hover);--_subtle-active: var(--slotted-tone-secondary-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-secondary-border));--_text: var(--slotted-tone-secondary-text);--_edge: var(--_solid);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_inner-size: var(--slotted-control-inner-size-sm, 22px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-space-4, .5rem);--_gap: var(--slotted-space-2, .25rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_edge-width: var(--slotted-tag-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-radius-full, 9999px);--_inner-radius: max(0px, calc(var(--_radius) - var(--_edge-width)));--_own-size: calc( var(--_font-size) * var(--_line-height) + 2 * var(--_inset-block) + 2 * var(--_edge-width) );--_block-size: var(--slotted-control-inner-size, var(--_own-size));--_line: min( calc(var(--_font-size) * var(--_line-height)), calc(var(--_block-size) - 2 * var(--_edge-width)) );--_inset: max(0px, calc((var(--_block-size) - var(--_line) - 2 * var(--_edge-width)) / 2));align-items:stretch;border:var(--_edge-width) solid transparent;border-radius:var(--_radius);box-sizing:border-box;display:inline-flex;font-family:var(--slotted-tag-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-weight:var(--slotted-tag-font-weight, var(--slotted-font-weight-medium, 500));line-height:var(--_line);max-inline-size:100%;min-block-size:var(--_block-size);vertical-align:middle;white-space:nowrap}[data-ui=tag][data-part=root][hidden]{display:none}[data-ui=tag][data-part=root][data-tone=secondary]{--_edge: var(--_border)}[data-ui=tag][data-part=root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_solid-hover: var(--slotted-tone-accent-solid-hover);--_solid-active: var(--slotted-tone-accent-solid-active);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_subtle-hover: var(--slotted-tone-accent-subtle-hover);--_subtle-active: var(--slotted-tone-accent-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-accent-border));--_text: var(--slotted-tone-accent-text)}[data-ui=tag][data-part=root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_solid-hover: var(--slotted-tone-success-solid-hover);--_solid-active: var(--slotted-tone-success-solid-active);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_subtle-hover: var(--slotted-tone-success-subtle-hover);--_subtle-active: var(--slotted-tone-success-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-success-border));--_text: var(--slotted-tone-success-text)}[data-ui=tag][data-part=root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_solid-hover: var(--slotted-tone-warning-solid-hover);--_solid-active: var(--slotted-tone-warning-solid-active);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_subtle-hover: var(--slotted-tone-warning-subtle-hover);--_subtle-active: var(--slotted-tone-warning-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-warning-border));--_text: var(--slotted-tone-warning-text)}[data-ui=tag][data-part=root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_solid-hover: var(--slotted-tone-danger-solid-hover);--_solid-active: var(--slotted-tone-danger-solid-active);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_subtle-hover: var(--slotted-tone-danger-subtle-hover);--_subtle-active: var(--slotted-tone-danger-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-danger-border));--_text: var(--slotted-tone-danger-text)}[data-ui=tag][data-part=root][data-variant=solid]{background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonFace);color:var(--_on-solid, ButtonText)}[data-ui=tag][data-part=root][data-variant=soft]{background-color:var(--_surface, ButtonFace);border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui=tag][data-part=root][data-variant=outline]{background-color:transparent;border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui=tag][data-part=root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-1, .125rem));--_inset-inline: var(--slotted-space-3, .375rem)}[data-ui=tag][data-part=root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-3, .375rem));--_inset-inline: var(--slotted-space-5, .75rem);--_gap: var(--slotted-space-3, .375rem)}[data-ui=tag][data-part=root][data-shape=square]{--_radius: var(--slotted-radius-sm, 4px)}[data-ui=tag] [data-part=body]{align-items:center;background-color:transparent;border:0;border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;display:inline-flex;font:inherit;gap:var(--_gap);letter-spacing:inherit;min-inline-size:0;padding-block:var(--_inset);padding-inline:var(--_inset-inline);text-align:start;text-decoration:none;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=tag] [data-part=body]:last-child{border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius)}[data-ui=tag] [data-part=body]:has(+[data-part=remove]){padding-inline-end:var(--_gap)}[data-ui=tag] [data-part=body]:is(a,button){cursor:pointer}[data-ui=tag] [data-part=label]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}@supports (text-box: trim-both cap alphabetic){[data-ui=tag] [data-part=label]{margin-block:-.3em;padding-block:.3em;text-box:trim-both cap alphabetic}}[data-ui=tag] [data-part=start],[data-ui=tag] [data-part=end]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);box-sizing:border-box;display:inline-flex;flex:none;font-size:var(--_icon-size);inline-size:var(--_icon-size);justify-content:center;line-height:1}[data-ui=tag] [data-part=start]>*,[data-ui=tag] [data-part=end]>*{block-size:100%;display:block;inline-size:100%}[data-ui=tag] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:0;justify-content:center;margin-inline-end:calc(-1 * var(--_gap));opacity:0;overflow:hidden;transition:inline-size var(--slotted-duration-short) var(--slotted-easing-standard),margin-inline-end var(--slotted-duration-short) var(--slotted-easing-standard),opacity var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=tag][data-part=root][data-selected] [data-part=indicator]{inline-size:var(--_icon-size);margin-inline-end:0;opacity:1}[data-ui=tag] [data-part=remove]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;border:0;border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;flex:none;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;padding:0;position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=tag] [data-part=remove]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=tag] [data-part=remove]{inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)),calc(var(--_block-size) - 2 * var(--_edge-width)))}[data-ui=tag] [data-part=remove]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui=tag] [data-part=remove]:first-child{border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius)}[data-ui=tag][data-part=root][data-selected]:not([data-disabled]){background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonBorder);color:var(--_on-solid, ButtonText)}[data-ui=tag][data-part=root]{--_state-hover: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-hover, 8%), transparent );--_state-active: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-active, 14%), transparent )}[data-ui=tag][data-part=root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_state-hover)}[data-ui=tag][data-part=root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_state-active)}[data-ui=tag][data-part=root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_subtle-hover, ButtonFace)}[data-ui=tag][data-part=root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_subtle-active, ButtonFace)}[data-ui=tag][data-part=root][data-variant=solid]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled),[data-ui=tag][data-part=root][data-selected]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_solid-hover, Highlight)}[data-ui=tag][data-part=root][data-variant=solid]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled),[data-ui=tag][data-part=root][data-selected]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_solid-active, Highlight)}[data-ui=tag] [data-part=body]:focus-visible,[data-ui=tag] [data-part=remove]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-2 * var(--slotted-focus-ring-width, 2px))}[data-ui=tag][data-part=group]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=tag][data-part=root][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=tag][data-part=root][data-variant=solid][data-disabled],[data-ui=tag][data-part=root][data-variant=soft][data-disabled],[data-ui=tag][data-part=root][data-selected][data-disabled]{background-color:var(--slotted-disabled-background, Canvas);border-color:var(--slotted-disabled-border, GrayText)}[data-ui=tag][data-part=root][data-variant=outline][data-disabled]{background-color:transparent;border-color:var(--slotted-disabled-border, GrayText)}[data-ui=tag][data-part=root][data-disabled] :is([data-part=body],[data-part=remove]),[data-ui=tag] [data-part=body]:disabled,[data-ui=tag] [data-part=remove]:disabled{background-color:transparent;cursor:not-allowed}[data-ui=tag] [data-part=remove]:disabled{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=tag][data-part=group]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-tag-group-gap, var(--slotted-space-2, .25rem))}[data-ui=tag][data-part=group][data-orientation=vertical]{align-items:start;flex-direction:column;flex-wrap:nowrap;inline-size:fit-content}[data-ui=tag][data-part=group]:empty{display:none}@media(forced-colors:active){[data-ui=tag][data-part=root]{border-color:currentColor}[data-ui=tag][data-part=root][data-selected]:not([data-disabled]){background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=tag][data-part=root][data-disabled]{border-color:GrayText;color:GrayText}}}\n"] }]
297
+ }, styles: ["@layer slotted.components{[data-ui-tag][data-part-root]{--_solid: var(--slotted-tone-secondary-solid-hover);--_solid-hover: var(--slotted-tone-secondary-solid-active);--_solid-active: var(--slotted-tone-secondary-solid-active);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_subtle-hover: var(--slotted-tone-secondary-subtle-hover);--_subtle-active: var(--slotted-tone-secondary-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-secondary-border));--_text: var(--slotted-tone-secondary-text);--_edge: var(--_solid);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_inner-size: var(--slotted-control-inner-size-sm, 22px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-space-4, .5rem);--_gap: var(--slotted-space-2, .25rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_edge-width: var(--slotted-tag-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-radius-full, 9999px);--_inner-radius: max(0px, calc(var(--_radius) - var(--_edge-width)));--_own-size: calc( var(--_font-size) * var(--_line-height) + 2 * var(--_inset-block) + 2 * var(--_edge-width) );--_block-size: var(--slotted-control-inner-size, var(--_own-size));--_line: min( calc(var(--_font-size) * var(--_line-height)), calc(var(--_block-size) - 2 * var(--_edge-width)) );--_inset: max(0px, calc((var(--_block-size) - var(--_line) - 2 * var(--_edge-width)) / 2));align-items:stretch;border:var(--_edge-width) solid transparent;border-radius:var(--_radius);box-sizing:border-box;display:inline-flex;font-family:var(--slotted-tag-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-weight:var(--slotted-tag-font-weight, var(--slotted-font-weight-medium, 500));line-height:var(--_line);max-inline-size:100%;min-block-size:var(--_block-size);vertical-align:middle;white-space:nowrap}[data-ui-tag][data-part-root][hidden]{display:none}[data-ui-tag][data-part-root][data-tone=secondary]{--_edge: var(--_border)}[data-ui-tag][data-part-root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_solid-hover: var(--slotted-tone-accent-solid-hover);--_solid-active: var(--slotted-tone-accent-solid-active);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_subtle-hover: var(--slotted-tone-accent-subtle-hover);--_subtle-active: var(--slotted-tone-accent-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-accent-border));--_text: var(--slotted-tone-accent-text)}[data-ui-tag][data-part-root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_solid-hover: var(--slotted-tone-success-solid-hover);--_solid-active: var(--slotted-tone-success-solid-active);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_subtle-hover: var(--slotted-tone-success-subtle-hover);--_subtle-active: var(--slotted-tone-success-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-success-border));--_text: var(--slotted-tone-success-text)}[data-ui-tag][data-part-root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_solid-hover: var(--slotted-tone-warning-solid-hover);--_solid-active: var(--slotted-tone-warning-solid-active);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_subtle-hover: var(--slotted-tone-warning-subtle-hover);--_subtle-active: var(--slotted-tone-warning-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-warning-border));--_text: var(--slotted-tone-warning-text)}[data-ui-tag][data-part-root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_solid-hover: var(--slotted-tone-danger-solid-hover);--_solid-active: var(--slotted-tone-danger-solid-active);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_subtle-hover: var(--slotted-tone-danger-subtle-hover);--_subtle-active: var(--slotted-tone-danger-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-danger-border));--_text: var(--slotted-tone-danger-text)}[data-ui-tag][data-part-root][data-variant=solid]{background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonFace);color:var(--_on-solid, ButtonText)}[data-ui-tag][data-part-root][data-variant=soft]{background-color:var(--_surface, ButtonFace);border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui-tag][data-part-root][data-variant=outline]{background-color:transparent;border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui-tag][data-part-root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-1, .125rem));--_inset-inline: var(--slotted-space-3, .375rem)}[data-ui-tag][data-part-root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-3, .375rem));--_inset-inline: var(--slotted-space-5, .75rem);--_gap: var(--slotted-space-3, .375rem)}[data-ui-tag][data-part-root][data-shape=square]{--_radius: var(--slotted-radius-sm, 4px)}[data-ui-tag] [data-part-body]{align-items:center;background-color:transparent;border:0;border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;display:inline-flex;font:inherit;gap:var(--_gap);letter-spacing:inherit;min-inline-size:0;padding-block:var(--_inset);padding-inline:var(--_inset-inline);text-align:start;text-decoration:none;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-tag] [data-part-body]:last-child{border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius)}[data-ui-tag] [data-part-body]:has(+[data-part-remove]){padding-inline-end:var(--_gap)}[data-ui-tag] [data-part-body]:is(a,button){cursor:pointer}[data-ui-tag] [data-part-label]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}@supports (text-box: trim-both cap alphabetic){[data-ui-tag] [data-part-label]{margin-block:-.3em;padding-block:.3em;text-box:trim-both cap alphabetic}}[data-ui-tag] [data-part-start],[data-ui-tag] [data-part-end]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);box-sizing:border-box;display:inline-flex;flex:none;font-size:var(--_icon-size);inline-size:var(--_icon-size);justify-content:center;line-height:1}[data-ui-tag] [data-part-start]>*,[data-ui-tag] [data-part-end]>*{block-size:100%;display:block;inline-size:100%}[data-ui-tag] [data-part-indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:0;justify-content:center;margin-inline-end:calc(-1 * var(--_gap));opacity:0;overflow:hidden;transition:inline-size var(--slotted-duration-short) var(--slotted-easing-standard),margin-inline-end var(--slotted-duration-short) var(--slotted-easing-standard),opacity var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-tag][data-part-root][data-selected] [data-part-indicator]{inline-size:var(--_icon-size);margin-inline-end:0;opacity:1}[data-ui-tag] [data-part-remove]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;border:0;border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;flex:none;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;padding:0;position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-tag] [data-part-remove]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui-tag] [data-part-remove]{inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)),calc(var(--_block-size) - 2 * var(--_edge-width)))}[data-ui-tag] [data-part-remove]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui-tag] [data-part-remove]:first-child{border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius)}[data-ui-tag][data-part-root][data-selected]:not([data-disabled]){background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonBorder);color:var(--_on-solid, ButtonText)}[data-ui-tag][data-part-root]{--_state-hover: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-hover, 8%), transparent );--_state-active: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-active, 14%), transparent )}[data-ui-tag][data-part-root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part-body]:is(a,button),[data-part-remove]):hover:not(:disabled){background-color:var(--_state-hover)}[data-ui-tag][data-part-root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part-body]:is(a,button),[data-part-remove]):active:not(:disabled){background-color:var(--_state-active)}[data-ui-tag][data-part-root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part-body]:is(a,button),[data-part-remove]):hover:not(:disabled){background-color:var(--_subtle-hover, ButtonFace)}[data-ui-tag][data-part-root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part-body]:is(a,button),[data-part-remove]):active:not(:disabled){background-color:var(--_subtle-active, ButtonFace)}[data-ui-tag][data-part-root][data-variant=solid]:not([data-disabled]) :is([data-part-body]:is(a,button),[data-part-remove]):hover:not(:disabled),[data-ui-tag][data-part-root][data-selected]:not([data-disabled]) :is([data-part-body]:is(a,button),[data-part-remove]):hover:not(:disabled){background-color:var(--_solid-hover, Highlight)}[data-ui-tag][data-part-root][data-variant=solid]:not([data-disabled]) :is([data-part-body]:is(a,button),[data-part-remove]):active:not(:disabled),[data-ui-tag][data-part-root][data-selected]:not([data-disabled]) :is([data-part-body]:is(a,button),[data-part-remove]):active:not(:disabled){background-color:var(--_solid-active, Highlight)}[data-ui-tag] [data-part-body]:focus-visible,[data-ui-tag] [data-part-remove]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-2 * var(--slotted-focus-ring-width, 2px))}[data-ui-tag][data-part-group]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-tag][data-part-root][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui-tag][data-part-root][data-variant=solid][data-disabled],[data-ui-tag][data-part-root][data-variant=soft][data-disabled],[data-ui-tag][data-part-root][data-selected][data-disabled]{background-color:var(--slotted-disabled-background, Canvas);border-color:var(--slotted-disabled-border, GrayText)}[data-ui-tag][data-part-root][data-variant=outline][data-disabled]{background-color:transparent;border-color:var(--slotted-disabled-border, GrayText)}[data-ui-tag][data-part-root][data-disabled] :is([data-part-body],[data-part-remove]),[data-ui-tag] [data-part-body]:disabled,[data-ui-tag] [data-part-remove]:disabled{background-color:transparent;cursor:not-allowed}[data-ui-tag] [data-part-remove]:disabled{color:var(--slotted-disabled-foreground, GrayText)}[data-ui-tag][data-part-group]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-tag-group-gap, var(--slotted-space-2, .25rem))}[data-ui-tag][data-part-group][data-orientation=vertical]{align-items:start;flex-direction:column;flex-wrap:nowrap;inline-size:fit-content}[data-ui-tag][data-part-group]:empty{display:none}@media(forced-colors:active){[data-ui-tag][data-part-root]{border-color:currentColor}[data-ui-tag][data-part-root][data-selected]:not([data-disabled]){background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui-tag][data-part-root][data-disabled]{border-color:GrayText;color:GrayText}}}\n"] }]
294
298
  }], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], removable: [{ type: i0.Input, args: [{ isSignal: true, alias: "removable", required: false }] }], removeDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "removeDisabled", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], remove: [{ type: i0.Output, args: ["remove"] }] } });
295
299
 
296
300
  /**
@@ -305,7 +309,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
305
309
  * word gap inside the chip that the family's own `gap` is already drawing.
306
310
  */
307
311
  const TAG_BODY_TEMPLATE = '<ng-content select="[slTagStart]"></ng-content>' +
308
- '<span data-part="label" [id]="tag.labelId"><ng-content></ng-content></span>' +
312
+ '<span data-part="label" data-part-label="" [id]="tag.labelId"><ng-content></ng-content></span>' +
309
313
  '<ng-content select="[slTagEnd]"></ng-content>';
310
314
  /**
311
315
  * The content box, and the primary target when there is one. It is written on
@@ -376,7 +380,7 @@ class SlTagBody {
376
380
  }
377
381
  }
378
382
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
379
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlTagBody, isStandalone: true, selector: "[slTagBody]", host: { attributes: { "data-part": "body" }, properties: { "attr.disabled": "nativelyDisabled()", "attr.aria-disabled": "ariaDisabled()", "attr.role": "anchorRole()" } }, exportAs: ["slTagBody"], ngImport: i0, template: "<ng-content select=\"[slTagStart]\"></ng-content><span data-part=\"label\" [id]=\"tag.labelId\"><ng-content></ng-content></span><ng-content select=\"[slTagEnd]\"></ng-content>", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
383
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlTagBody, isStandalone: true, selector: "[slTagBody]", host: { attributes: { "data-part": "body", "data-part-body": "" }, properties: { "attr.disabled": "nativelyDisabled()", "attr.aria-disabled": "ariaDisabled()", "attr.role": "anchorRole()" } }, exportAs: ["slTagBody"], ngImport: i0, template: "<ng-content select=\"[slTagStart]\"></ng-content><span data-part=\"label\" data-part-label=\"\" [id]=\"tag.labelId\"><ng-content></ng-content></span><ng-content select=\"[slTagEnd]\"></ng-content>", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
380
384
  }
381
385
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagBody, decorators: [{
382
386
  type: Component,
@@ -389,6 +393,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
389
393
  encapsulation: ViewEncapsulation.None,
390
394
  host: {
391
395
  'data-part': 'body',
396
+ 'data-part-body': '',
392
397
  '[attr.disabled]': 'nativelyDisabled()',
393
398
  '[attr.aria-disabled]': 'ariaDisabled()',
394
399
  '[attr.role]': 'anchorRole()',
@@ -403,7 +408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
403
408
  */
404
409
  class SlTagStart {
405
410
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagStart, deps: [], target: i0.ɵɵFactoryTarget.Directive });
406
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlTagStart, isStandalone: true, selector: "[slTagStart]", host: { attributes: { "data-part": "start" } }, exportAs: ["slTagStart"], ngImport: i0 });
411
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlTagStart, isStandalone: true, selector: "[slTagStart]", host: { attributes: { "data-part": "start", "data-part-start": "" } }, exportAs: ["slTagStart"], ngImport: i0 });
407
412
  }
408
413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagStart, decorators: [{
409
414
  type: Directive,
@@ -411,13 +416,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
411
416
  selector: '[slTagStart]',
412
417
  standalone: true,
413
418
  exportAs: 'slTagStart',
414
- host: { 'data-part': 'start' },
419
+ host: { 'data-part': 'start', 'data-part-start': '' },
415
420
  }]
416
421
  }] });
417
422
  /** A glyph after the words. */
418
423
  class SlTagEnd {
419
424
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagEnd, deps: [], target: i0.ɵɵFactoryTarget.Directive });
420
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlTagEnd, isStandalone: true, selector: "[slTagEnd]", host: { attributes: { "data-part": "end" } }, exportAs: ["slTagEnd"], ngImport: i0 });
425
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlTagEnd, isStandalone: true, selector: "[slTagEnd]", host: { attributes: { "data-part": "end", "data-part-end": "" } }, exportAs: ["slTagEnd"], ngImport: i0 });
421
426
  }
422
427
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagEnd, decorators: [{
423
428
  type: Directive,
@@ -425,7 +430,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
425
430
  selector: '[slTagEnd]',
426
431
  standalone: true,
427
432
  exportAs: 'slTagEnd',
428
- host: { 'data-part': 'end' },
433
+ host: { 'data-part': 'end', 'data-part-end': '' },
429
434
  }]
430
435
  }] });
431
436
 
@@ -453,7 +458,7 @@ class SlTagRemove {
453
458
  this.tag.requestRemoval('remove', event);
454
459
  }
455
460
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagRemove, deps: [], target: i0.ɵɵFactoryTarget.Component });
456
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlTagRemove, isStandalone: true, selector: "button[slTagRemove]", host: { attributes: { "data-part": "remove", "type": "button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.aria-labelledby": "labelledBy()", "attr.disabled": "tag.removeRefused() ? '' : null" } }, exportAs: ["slTagRemove"], ngImport: i0, template: `<ng-content
461
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlTagRemove, isStandalone: true, selector: "button[slTagRemove]", host: { attributes: { "data-part": "remove", "data-part-remove": "", "type": "button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.aria-labelledby": "labelledBy()", "attr.disabled": "tag.removeRefused() ? '' : null" } }, exportAs: ["slTagRemove"], ngImport: i0, template: `<ng-content
457
462
  ><span slIcon><svg slGlyph name="x"></svg></span></ng-content
458
463
  ><span hidden [id]="tag.removeWordId">{{ tag.t('remove') }}</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 });
459
464
  }
@@ -471,6 +476,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
471
476
  encapsulation: ViewEncapsulation.None,
472
477
  host: {
473
478
  'data-part': 'remove',
479
+ 'data-part-remove': '',
474
480
  type: 'button',
475
481
  '[attr.aria-labelledby]': 'labelledBy()',
476
482
  '[attr.disabled]': "tag.removeRefused() ? '' : null",
@@ -562,7 +568,7 @@ class SlTagToggle {
562
568
  this.state.request(event);
563
569
  }
564
570
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagToggle, deps: [], target: i0.ɵɵFactoryTarget.Component });
565
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlTagToggle, isStandalone: true, selector: "button[slTagToggle]", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, defaultSelected: { classPropertyName: "defaultSelected", publicName: "defaultSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, host: { attributes: { "data-part": "body", "type": "button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.aria-pressed": "isSelected()", "attr.disabled": "tag.disabled() ? '' : null" } }, exportAs: ["slTagToggle"], ngImport: i0, template: "<span aria-hidden=\"true\" data-part=\"indicator\"\n ><span slIcon><svg slGlyph name=\"check\"></svg></span></span\n ><ng-content select=\"[slTagStart]\"></ng-content><span data-part=\"label\" [id]=\"tag.labelId\"><ng-content></ng-content></span><ng-content select=\"[slTagEnd]\"></ng-content>", 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 });
571
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlTagToggle, isStandalone: true, selector: "button[slTagToggle]", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, defaultSelected: { classPropertyName: "defaultSelected", publicName: "defaultSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, host: { attributes: { "data-part": "body", "data-part-body": "", "type": "button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.aria-pressed": "isSelected()", "attr.disabled": "tag.disabled() ? '' : null" } }, exportAs: ["slTagToggle"], ngImport: i0, template: "<span aria-hidden=\"true\" data-part=\"indicator\" data-part-indicator=\"\"\n ><span slIcon><svg slGlyph name=\"check\"></svg></span></span\n ><ng-content select=\"[slTagStart]\"></ng-content><span data-part=\"label\" data-part-label=\"\" [id]=\"tag.labelId\"><ng-content></ng-content></span><ng-content select=\"[slTagEnd]\"></ng-content>", 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 });
566
572
  }
567
573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagToggle, decorators: [{
568
574
  type: Component,
@@ -572,13 +578,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
572
578
  exportAs: 'slTagToggle',
573
579
  imports: [SlGlyph, SlIcon],
574
580
  /* The selection mark's check, which the sheet uncovers when the chip is on. */
575
- template: `<span aria-hidden="true" data-part="indicator"
581
+ template: `<span aria-hidden="true" data-part="indicator" data-part-indicator=""
576
582
  ><span slIcon><svg slGlyph name="check"></svg></span></span
577
583
  >${TAG_BODY_TEMPLATE}`,
578
584
  changeDetection: ChangeDetectionStrategy.OnPush,
579
585
  encapsulation: ViewEncapsulation.None,
580
586
  host: {
581
587
  'data-part': 'body',
588
+ 'data-part-body': '',
582
589
  type: 'button',
583
590
  '[attr.aria-pressed]': 'isSelected()',
584
591
  '[attr.disabled]': "tag.disabled() ? '' : null",