@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.11

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 (598) hide show
  1. package/README.md +4 -0
  2. package/docs/AGENTS.snippet.md +12 -0
  3. package/docs/action-bar.json +4 -4
  4. package/docs/action-bar.md +3 -3
  5. package/docs/alert.json +7 -1
  6. package/docs/alert.md +3 -3
  7. package/docs/app-shell.examples.md +1 -1
  8. package/docs/app-shell.json +5 -5
  9. package/docs/app-shell.md +2 -2
  10. package/docs/avatar.json +22 -1
  11. package/docs/avatar.md +5 -3
  12. package/docs/badge.json +7 -1
  13. package/docs/badge.md +3 -3
  14. package/docs/button-group.json +2 -0
  15. package/docs/button-group.md +1 -1
  16. package/docs/button.json +51 -11
  17. package/docs/button.md +10 -6
  18. package/docs/calendar.json +8 -1
  19. package/docs/calendar.md +3 -2
  20. package/docs/cascader.json +1 -0
  21. package/docs/cascader.md +1 -1
  22. package/docs/chart.examples.md +1 -1
  23. package/docs/chart.json +10 -1
  24. package/docs/chart.md +3 -2
  25. package/docs/checkbox.json +7 -0
  26. package/docs/checkbox.md +1 -0
  27. package/docs/code-block.json +92 -92
  28. package/docs/code-block.md +69 -69
  29. package/docs/combobox.json +1 -0
  30. package/docs/combobox.md +1 -1
  31. package/docs/command-palette.json +1 -0
  32. package/docs/command-palette.md +1 -1
  33. package/docs/currency-field.json +40 -1
  34. package/docs/currency-field.md +5 -1
  35. package/docs/data-grid.examples.md +2 -2
  36. package/docs/data-grid.json +45 -7
  37. package/docs/data-grid.md +3 -1
  38. package/docs/data-grid.props.md +7 -4
  39. package/docs/data-list.json +2 -1
  40. package/docs/data-list.md +1 -1
  41. package/docs/date-field.json +9 -1
  42. package/docs/date-field.md +3 -2
  43. package/docs/date-picker.examples.md +36 -0
  44. package/docs/date-picker.json +20 -5
  45. package/docs/date-picker.md +5 -4
  46. package/docs/datetime-field.json +1 -0
  47. package/docs/datetime-field.md +1 -1
  48. package/docs/detail-panel.json +4 -2
  49. package/docs/detail-panel.md +8 -3
  50. package/docs/dialog.examples.md +158 -136
  51. package/docs/dialog.json +36 -11
  52. package/docs/dialog.md +4 -2
  53. package/docs/dialog.props.md +1 -1
  54. package/docs/drawer.json +11 -4
  55. package/docs/drawer.md +4 -3
  56. package/docs/entity-picker.json +19 -4
  57. package/docs/entity-picker.md +8 -6
  58. package/docs/event-calendar.json +7 -0
  59. package/docs/event-calendar.md +3 -2
  60. package/docs/filter-bar.json +118 -118
  61. package/docs/filter-bar.md +79 -79
  62. package/docs/form.json +2 -1
  63. package/docs/form.md +1 -1
  64. package/docs/guidelines/README.md +27 -0
  65. package/docs/guidelines/async-feedback.md +129 -0
  66. package/docs/guidelines/browsing.md +74 -0
  67. package/docs/guidelines/builders.md +97 -0
  68. package/docs/guidelines/composition.md +143 -0
  69. package/docs/guidelines/conversations.md +59 -0
  70. package/docs/guidelines/errors-and-conflicts.md +71 -0
  71. package/docs/guidelines/forms.md +202 -0
  72. package/docs/guidelines/index.md +130 -0
  73. package/docs/guidelines/layout-alignment.md +105 -0
  74. package/docs/guidelines/ledgers.md +45 -0
  75. package/docs/guidelines/list-pages.md +206 -0
  76. package/docs/guidelines/overviews.md +76 -0
  77. package/docs/guidelines/own-elements.md +115 -0
  78. package/docs/guidelines/reading-permissions.md +55 -0
  79. package/docs/guidelines/record-pages.md +178 -0
  80. package/docs/guidelines/reports.md +123 -0
  81. package/docs/guidelines/shell-composition.md +94 -0
  82. package/docs/guidelines/workspaces.md +46 -0
  83. package/docs/icon.json +3 -1
  84. package/docs/icon.md +3 -3
  85. package/docs/index.md +12 -0
  86. package/docs/inline-message.json +14 -2
  87. package/docs/inline-message.md +4 -3
  88. package/docs/list-item.json +9 -1
  89. package/docs/list-item.md +3 -3
  90. package/docs/list.json +19 -1
  91. package/docs/list.md +3 -1
  92. package/docs/markdown.json +79 -79
  93. package/docs/markdown.md +65 -65
  94. package/docs/menu.json +12 -0
  95. package/docs/menu.md +2 -0
  96. package/docs/message.json +7 -1
  97. package/docs/message.md +3 -3
  98. package/docs/multi-select.json +1 -0
  99. package/docs/multi-select.md +1 -1
  100. package/docs/notification-center.json +4 -0
  101. package/docs/notification-center.md +2 -2
  102. package/docs/number-field.json +1 -0
  103. package/docs/number-field.md +1 -1
  104. package/docs/otp-input.json +1 -0
  105. package/docs/otp-input.md +1 -1
  106. package/docs/page-header.json +22 -5
  107. package/docs/page-header.md +6 -4
  108. package/docs/page.json +2 -0
  109. package/docs/page.md +2 -1
  110. package/docs/popover.json +1 -1
  111. package/docs/progress-indicator.json +4 -3
  112. package/docs/progress-indicator.md +4 -4
  113. package/docs/prompt-composer.json +41 -1
  114. package/docs/prompt-composer.md +5 -1
  115. package/docs/rating.json +5 -3
  116. package/docs/rating.md +6 -6
  117. package/docs/section.json +28 -16
  118. package/docs/section.md +12 -10
  119. package/docs/segmented-control.json +36 -12
  120. package/docs/segmented-control.md +17 -1
  121. package/docs/select.json +1 -0
  122. package/docs/select.md +1 -1
  123. package/docs/side-navigation.json +1 -0
  124. package/docs/side-navigation.md +1 -1
  125. package/docs/skills/build-own-element/SKILL.md +90 -0
  126. package/docs/skills/compose-screen/SKILL.md +103 -0
  127. package/docs/skills/index.md +9 -0
  128. package/docs/skills/review-screen/SKILL.md +79 -0
  129. package/docs/skills/theme-app/SKILL.md +98 -0
  130. package/docs/skills/waiting-states/SKILL.md +143 -0
  131. package/docs/sparkline.json +5 -2
  132. package/docs/sparkline.md +4 -4
  133. package/docs/split-button.json +4 -1
  134. package/docs/split-button.md +3 -3
  135. package/docs/stat-card.json +5 -1
  136. package/docs/stat-card.md +3 -3
  137. package/docs/table.examples.md +3 -3
  138. package/docs/table.json +85 -3
  139. package/docs/table.md +12 -1
  140. package/docs/tabs.json +17 -7
  141. package/docs/tabs.md +3 -2
  142. package/docs/tag.json +14 -4
  143. package/docs/tag.md +6 -6
  144. package/docs/tags-input.json +29 -2
  145. package/docs/tags-input.md +4 -1
  146. package/docs/text-field.json +2 -1
  147. package/docs/text-field.md +2 -2
  148. package/docs/textarea.json +1 -0
  149. package/docs/textarea.md +1 -1
  150. package/docs/time-field.json +1 -0
  151. package/docs/time-field.md +1 -1
  152. package/docs/timeline.json +138 -132
  153. package/docs/timeline.md +125 -125
  154. package/docs/toast.json +8 -1
  155. package/docs/toast.md +3 -3
  156. package/docs/toggle-group.json +14 -3
  157. package/docs/toggle-group.md +3 -3
  158. package/docs/toggle.json +12 -3
  159. package/docs/toggle.md +3 -3
  160. package/docs/tokens.md +467 -0
  161. package/docs/toolbar.json +1 -1
  162. package/docs/toolbar.md +1 -1
  163. package/docs/tour.json +1 -1
  164. package/docs/typography.json +4 -2
  165. package/docs/typography.md +5 -5
  166. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  167. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  168. package/fesm2022/slotted-angular-action-bar.mjs +27 -12
  169. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  170. package/fesm2022/slotted-angular-action-sheet.mjs +48 -29
  171. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  172. package/fesm2022/slotted-angular-alert.mjs +18 -11
  173. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  174. package/fesm2022/slotted-angular-app-shell.mjs +111 -61
  175. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  176. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  177. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  178. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  179. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  180. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  181. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  182. package/fesm2022/slotted-angular-avatar.mjs +14 -7
  183. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  184. package/fesm2022/slotted-angular-badge.mjs +14 -10
  185. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  186. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  187. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  188. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  189. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  190. package/fesm2022/slotted-angular-button.mjs +120 -29
  191. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  192. package/fesm2022/slotted-angular-calendar.mjs +235 -58
  193. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  194. package/fesm2022/slotted-angular-card.mjs +18 -16
  195. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  196. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  197. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  198. package/fesm2022/slotted-angular-cascader.mjs +180 -66
  199. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  200. package/fesm2022/slotted-angular-chart.mjs +53 -20
  201. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  202. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  203. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  204. package/fesm2022/slotted-angular-checkbox.mjs +23 -9
  205. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  206. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  207. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  208. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  209. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  210. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  211. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  212. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  213. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  214. package/fesm2022/slotted-angular-combobox.mjs +118 -39
  215. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  216. package/fesm2022/slotted-angular-command-palette.mjs +162 -54
  217. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  218. package/fesm2022/slotted-angular-container.mjs +6 -4
  219. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  220. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  221. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  222. package/fesm2022/slotted-angular-currency-field.mjs +149 -32
  223. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  224. package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
  225. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  226. package/fesm2022/slotted-angular-data-grid.mjs +480 -129
  227. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  228. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  229. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  230. package/fesm2022/slotted-angular-date-field.mjs +74 -25
  231. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  232. package/fesm2022/slotted-angular-date-picker.mjs +112 -40
  233. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  234. package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
  235. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  236. package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
  237. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  238. package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
  239. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  240. package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
  241. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  242. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  243. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  244. package/fesm2022/slotted-angular-detail-panel.mjs +48 -30
  245. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  246. package/fesm2022/slotted-angular-dialog.mjs +72 -30
  247. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  248. package/fesm2022/slotted-angular-divider.mjs +7 -5
  249. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  250. package/fesm2022/slotted-angular-drawer.mjs +91 -37
  251. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  252. package/fesm2022/slotted-angular-entity-picker.mjs +474 -75
  253. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  254. package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
  255. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  256. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  257. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  258. package/fesm2022/slotted-angular-field.mjs +35 -15
  259. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  260. package/fesm2022/slotted-angular-filter-bar.mjs +118 -51
  261. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  262. package/fesm2022/slotted-angular-form.mjs +18 -10
  263. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  264. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  265. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  266. package/fesm2022/slotted-angular-grid.mjs +4 -2
  267. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  268. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  269. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  270. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  271. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  272. package/fesm2022/slotted-angular-icon.mjs +6 -3
  273. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  274. package/fesm2022/slotted-angular-image.mjs +13 -10
  275. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  276. package/fesm2022/slotted-angular-import-export-center.mjs +175 -99
  277. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  278. package/fesm2022/slotted-angular-inline-message.mjs +88 -13
  279. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  280. package/fesm2022/slotted-angular-inline.mjs +4 -2
  281. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  282. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  283. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  284. package/fesm2022/slotted-angular-link.mjs +5 -3
  285. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  286. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  287. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  288. package/fesm2022/slotted-angular-list.mjs +37 -22
  289. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  290. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  291. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  292. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  293. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  294. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  295. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  296. package/fesm2022/slotted-angular-menu.mjs +51 -29
  297. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  298. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  299. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  300. package/fesm2022/slotted-angular-message-scroller.mjs +34 -15
  301. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  302. package/fesm2022/slotted-angular-message.mjs +119 -51
  303. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  304. package/fesm2022/slotted-angular-multi-select.mjs +195 -87
  305. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  306. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  307. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  308. package/fesm2022/slotted-angular-notification-center.mjs +108 -65
  309. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  310. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  311. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  312. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  313. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  314. package/fesm2022/slotted-angular-page-header.mjs +90 -48
  315. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  316. package/fesm2022/slotted-angular-page.mjs +38 -10
  317. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  318. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  319. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  320. package/fesm2022/slotted-angular-popover.mjs +32 -19
  321. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  322. package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
  323. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  324. package/fesm2022/slotted-angular-prompt-composer.mjs +57 -20
  325. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  326. package/fesm2022/slotted-angular-prose.mjs +14 -11
  327. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  328. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  329. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  330. package/fesm2022/slotted-angular-rating.mjs +138 -82
  331. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  332. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  333. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  334. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  335. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  336. package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
  337. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  338. package/fesm2022/slotted-angular-section.mjs +53 -18
  339. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  340. package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
  341. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  342. package/fesm2022/slotted-angular-select.mjs +190 -94
  343. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  344. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  345. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  346. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  347. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  348. package/fesm2022/slotted-angular-slider.mjs +31 -11
  349. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  350. package/fesm2022/slotted-angular-sparkline.mjs +41 -14
  351. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  352. package/fesm2022/slotted-angular-split-button.mjs +37 -11
  353. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  354. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  355. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  356. package/fesm2022/slotted-angular-stack.mjs +4 -2
  357. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  358. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  359. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  360. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  361. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  362. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  363. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  364. package/fesm2022/slotted-angular-switch.mjs +15 -10
  365. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  366. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  367. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  368. package/fesm2022/slotted-angular-table.mjs +243 -73
  369. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  370. package/fesm2022/slotted-angular-tabs.mjs +42 -18
  371. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  372. package/fesm2022/slotted-angular-tag.mjs +19 -12
  373. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  374. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  375. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  376. package/fesm2022/slotted-angular-text-field.mjs +55 -15
  377. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  378. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  379. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  380. package/fesm2022/slotted-angular-time-field.mjs +48 -14
  381. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  382. package/fesm2022/slotted-angular-time-picker.mjs +32 -20
  383. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  384. package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
  385. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  386. package/fesm2022/slotted-angular-timeline.mjs +147 -64
  387. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  388. package/fesm2022/slotted-angular-toast.mjs +43 -31
  389. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  390. package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
  391. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  392. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  393. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  394. package/fesm2022/slotted-angular-toolbar.mjs +27 -12
  395. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  396. package/fesm2022/slotted-angular-tooltip.mjs +15 -6
  397. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  398. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  399. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  400. package/fesm2022/slotted-angular-tour.mjs +47 -22
  401. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  402. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  403. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  404. package/fesm2022/slotted-angular-tree.mjs +80 -26
  405. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  406. package/fesm2022/slotted-angular-typography.mjs +8 -4
  407. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  408. package/fesm2022/slotted-angular-upload.mjs +125 -57
  409. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  410. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  411. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  412. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  413. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  414. package/package.json +3 -3
  415. package/types/slotted-angular-accordion.d.ts.map +1 -1
  416. package/types/slotted-angular-action-bar.d.ts +2 -0
  417. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  418. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  419. package/types/slotted-angular-alert.d.ts +2 -2
  420. package/types/slotted-angular-alert.d.ts.map +1 -1
  421. package/types/slotted-angular-app-shell.d.ts +11 -3
  422. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  423. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  424. package/types/slotted-angular-attachment.d.ts +1 -1
  425. package/types/slotted-angular-attachment.d.ts.map +1 -1
  426. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  427. package/types/slotted-angular-avatar.d.ts +11 -3
  428. package/types/slotted-angular-avatar.d.ts.map +1 -1
  429. package/types/slotted-angular-badge.d.ts +1 -1
  430. package/types/slotted-angular-badge.d.ts.map +1 -1
  431. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  432. package/types/slotted-angular-button-group.d.ts +1 -1
  433. package/types/slotted-angular-button-group.d.ts.map +1 -1
  434. package/types/slotted-angular-button.d.ts +33 -13
  435. package/types/slotted-angular-button.d.ts.map +1 -1
  436. package/types/slotted-angular-calendar.d.ts +30 -2
  437. package/types/slotted-angular-calendar.d.ts.map +1 -1
  438. package/types/slotted-angular-card.d.ts.map +1 -1
  439. package/types/slotted-angular-carousel.d.ts.map +1 -1
  440. package/types/slotted-angular-cascader.d.ts.map +1 -1
  441. package/types/slotted-angular-chart.d.ts +10 -0
  442. package/types/slotted-angular-chart.d.ts.map +1 -1
  443. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  444. package/types/slotted-angular-checkbox.d.ts +7 -1
  445. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  446. package/types/slotted-angular-code-block.d.ts +1 -1
  447. package/types/slotted-angular-code-block.d.ts.map +1 -1
  448. package/types/slotted-angular-collapsible.d.ts +1 -1
  449. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  450. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  451. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  452. package/types/slotted-angular-combobox.d.ts +5 -1
  453. package/types/slotted-angular-combobox.d.ts.map +1 -1
  454. package/types/slotted-angular-command-palette.d.ts +10 -1
  455. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  456. package/types/slotted-angular-container.d.ts.map +1 -1
  457. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  458. package/types/slotted-angular-currency-field.d.ts +63 -15
  459. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  460. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  461. package/types/slotted-angular-data-grid.d.ts +72 -4
  462. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  463. package/types/slotted-angular-data-list.d.ts.map +1 -1
  464. package/types/slotted-angular-date-field.d.ts +11 -1
  465. package/types/slotted-angular-date-field.d.ts.map +1 -1
  466. package/types/slotted-angular-date-picker.d.ts +38 -12
  467. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  468. package/types/slotted-angular-date-range-picker.d.ts +0 -1
  469. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  470. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  471. package/types/slotted-angular-datetime-picker.d.ts +0 -1
  472. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  473. package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
  474. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  475. package/types/slotted-angular-description-list.d.ts.map +1 -1
  476. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  477. package/types/slotted-angular-dialog.d.ts +10 -3
  478. package/types/slotted-angular-dialog.d.ts.map +1 -1
  479. package/types/slotted-angular-divider.d.ts.map +1 -1
  480. package/types/slotted-angular-drawer.d.ts +12 -1
  481. package/types/slotted-angular-drawer.d.ts.map +1 -1
  482. package/types/slotted-angular-entity-picker.d.ts +63 -15
  483. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  484. package/types/slotted-angular-event-calendar.d.ts +9 -2
  485. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  486. package/types/slotted-angular-field-group.d.ts.map +1 -1
  487. package/types/slotted-angular-field.d.ts.map +1 -1
  488. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  489. package/types/slotted-angular-form.d.ts.map +1 -1
  490. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  491. package/types/slotted-angular-grid.d.ts.map +1 -1
  492. package/types/slotted-angular-highlight.d.ts.map +1 -1
  493. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  494. package/types/slotted-angular-icon.d.ts +2 -2
  495. package/types/slotted-angular-icon.d.ts.map +1 -1
  496. package/types/slotted-angular-image.d.ts.map +1 -1
  497. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  498. package/types/slotted-angular-inline-message.d.ts +25 -25
  499. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  500. package/types/slotted-angular-inline.d.ts.map +1 -1
  501. package/types/slotted-angular-kbd.d.ts.map +1 -1
  502. package/types/slotted-angular-link.d.ts.map +1 -1
  503. package/types/slotted-angular-list-item.d.ts +1 -1
  504. package/types/slotted-angular-list-item.d.ts.map +1 -1
  505. package/types/slotted-angular-list.d.ts +42 -27
  506. package/types/slotted-angular-list.d.ts.map +1 -1
  507. package/types/slotted-angular-listbox.d.ts.map +1 -1
  508. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  509. package/types/slotted-angular-markdown.d.ts.map +1 -1
  510. package/types/slotted-angular-menu.d.ts +11 -2
  511. package/types/slotted-angular-menu.d.ts.map +1 -1
  512. package/types/slotted-angular-menubar.d.ts.map +1 -1
  513. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  514. package/types/slotted-angular-message.d.ts +1 -1
  515. package/types/slotted-angular-message.d.ts.map +1 -1
  516. package/types/slotted-angular-multi-select.d.ts +15 -1
  517. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  518. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  519. package/types/slotted-angular-notification-center.d.ts +1 -1
  520. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  521. package/types/slotted-angular-number-field.d.ts.map +1 -1
  522. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  523. package/types/slotted-angular-page-header.d.ts +15 -6
  524. package/types/slotted-angular-page-header.d.ts.map +1 -1
  525. package/types/slotted-angular-page.d.ts.map +1 -1
  526. package/types/slotted-angular-pagination.d.ts.map +1 -1
  527. package/types/slotted-angular-popover.d.ts.map +1 -1
  528. package/types/slotted-angular-progress-indicator.d.ts +8 -1
  529. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  530. package/types/slotted-angular-prompt-composer.d.ts +11 -2
  531. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  532. package/types/slotted-angular-prose.d.ts.map +1 -1
  533. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  534. package/types/slotted-angular-rating.d.ts +1 -1
  535. package/types/slotted-angular-rating.d.ts.map +1 -1
  536. package/types/slotted-angular-result-state.d.ts.map +1 -1
  537. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  538. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  539. package/types/slotted-angular-section.d.ts +11 -3
  540. package/types/slotted-angular-section.d.ts.map +1 -1
  541. package/types/slotted-angular-segmented-control.d.ts +15 -2
  542. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  543. package/types/slotted-angular-select.d.ts +12 -2
  544. package/types/slotted-angular-select.d.ts.map +1 -1
  545. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  546. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  547. package/types/slotted-angular-slider.d.ts.map +1 -1
  548. package/types/slotted-angular-sparkline.d.ts +7 -1
  549. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  550. package/types/slotted-angular-split-button.d.ts +2 -2
  551. package/types/slotted-angular-split-button.d.ts.map +1 -1
  552. package/types/slotted-angular-splitter.d.ts.map +1 -1
  553. package/types/slotted-angular-stack.d.ts.map +1 -1
  554. package/types/slotted-angular-stat-card.d.ts +1 -1
  555. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  556. package/types/slotted-angular-status-indicator.d.ts +1 -1
  557. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  558. package/types/slotted-angular-stepper.d.ts +1 -1
  559. package/types/slotted-angular-stepper.d.ts.map +1 -1
  560. package/types/slotted-angular-switch.d.ts.map +1 -1
  561. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  562. package/types/slotted-angular-table.d.ts +63 -6
  563. package/types/slotted-angular-table.d.ts.map +1 -1
  564. package/types/slotted-angular-tabs.d.ts +3 -4
  565. package/types/slotted-angular-tabs.d.ts.map +1 -1
  566. package/types/slotted-angular-tag.d.ts +1 -1
  567. package/types/slotted-angular-tag.d.ts.map +1 -1
  568. package/types/slotted-angular-tags-input.d.ts +33 -1
  569. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  570. package/types/slotted-angular-text-field.d.ts.map +1 -1
  571. package/types/slotted-angular-textarea.d.ts.map +1 -1
  572. package/types/slotted-angular-theme.d.ts +1 -1
  573. package/types/slotted-angular-time-field.d.ts.map +1 -1
  574. package/types/slotted-angular-time-picker.d.ts +0 -1
  575. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  576. package/types/slotted-angular-time-range-picker.d.ts +0 -1
  577. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  578. package/types/slotted-angular-timeline.d.ts +1 -1
  579. package/types/slotted-angular-timeline.d.ts.map +1 -1
  580. package/types/slotted-angular-toast.d.ts +3 -3
  581. package/types/slotted-angular-toast.d.ts.map +1 -1
  582. package/types/slotted-angular-toggle-group.d.ts +8 -2
  583. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  584. package/types/slotted-angular-toggle.d.ts +1 -1
  585. package/types/slotted-angular-toggle.d.ts.map +1 -1
  586. package/types/slotted-angular-toolbar.d.ts +2 -0
  587. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  588. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  589. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  590. package/types/slotted-angular-tour.d.ts.map +1 -1
  591. package/types/slotted-angular-transfer.d.ts.map +1 -1
  592. package/types/slotted-angular-tree.d.ts.map +1 -1
  593. package/types/slotted-angular-typography.d.ts +1 -1
  594. package/types/slotted-angular-typography.d.ts.map +1 -1
  595. package/types/slotted-angular-upload.d.ts +2 -2
  596. package/types/slotted-angular-upload.d.ts.map +1 -1
  597. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  598. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-prose.mjs","sources":["../../prose/src/prose-defaults.ts","../../prose/src/prose.ts","../../prose/src/prose-parts.ts","../../prose/src/prose-scroll.ts","../../prose/src/slotted-angular-prose.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/**\n * The type-scale step the body text takes. Named for the scale's own steps, as\n * `slText` names its own, so the offset from control type is visible rather\n * than hidden: `lg` is one rem, and `--slotted-font-size-md` is the size a\n * button label is set in.\n */\nexport type ProseSize = 'md' | 'lg' | 'xl';\n\n/**\n * The space between blocks, from which every other distance in the region\n * derives. `tight` is a message in a thread, `normal` a documentation page,\n * `loose` an article.\n */\nexport type ProseFlow = 'tight' | 'normal' | 'loose';\n\nexport interface ProseDefaults {\n flow: ProseFlow;\n size: ProseSize;\n}\n\n/**\n * `lg` rather than the control step: the family exists for text a reader stays\n * with, and 0.875rem is the size a button label is set in. `normal` is the\n * documentation rhythm, which is what a region of rendered Markdown is in\n * unless the application says otherwise.\n *\n * The scrolling region's name comes from the catalog rather than a required\n * input because a Markdown renderer's component map cannot supply one per\n * table.\n */\nconst FALLBACK: ProseDefaults = {\n flow: 'normal',\n size: 'lg',\n};\n\nexport const PROSE_DEFAULTS = new InjectionToken<ProseDefaults>('slotted prose defaults', {\n providedIn: 'root',\n factory: (): ProseDefaults => ({ ...FALLBACK }),\n});\n\n/**\n * An application decides once how its rendered content reads — Typeset's\n * presets, as a provider rather than as a class. A region that states any of\n * them itself still wins: an explicit input is never overridden by the token.\n */\nexport function provideProseDefaults(defaults: Partial<ProseDefaults>) {\n return {\n provide: PROSE_DEFAULTS,\n useFactory: (): ProseDefaults => ({\n flow: defaults.flow ?? FALLBACK.flow,\n size: defaults.size ?? FALLBACK.size,\n }),\n };\n}\n\n/** What a region is set in here, before it states anything of its own. */\nexport function injectProseDefaults(): ProseDefaults {\n return inject(PROSE_DEFAULTS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectProseDefaults } from './prose-defaults';\nimport type { ProseFlow, ProseSize } from './prose-defaults';\n\nexport type { ProseFlow, ProseSize } from './prose-defaults';\n\n/**\n * The typography of a region the application did not author element by\n * element. The tree arrives from a Markdown renderer, a CMS or a language\n * model, and the page never gets to put an attribute on the `h2`.\n *\n * Text the application does author is `slText` and `slHeading`: those carry a\n * size, a weight and a tone per element, and wrapping two authored paragraphs\n * in this family is choosing a recipe over a decision. The boundary is who\n * wrote the tags.\n *\n * It does not sanitise. The renderer that produced the tree is where a\n * sanitiser belongs, and a component that both styled and sanitised would hide\n * which of the two failed.\n *\n * The selector is an attribute, so the page keeps its own element: a `div`\n * claims nothing, and `article`, `section` or `main` is a claim the page\n * makes. Measure is not painted here either — `slContainer` owns it, and one\n * element composes the two:\n *\n * ```html\n * <div slContainer size=\"measure\"><article slProse [innerHTML]=\"rendered\"></article></div>\n * ```\n */\n@Component({\n selector: '[slProse]',\n standalone: true,\n exportAs: 'slProse',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/prose/prose.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'prose',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-flow]': 'resolvedFlow()',\n },\n})\nexport class SlProse {\n /** The type-scale step the body text takes. Falls back to the token. */\n readonly size = input<ProseSize>();\n /** The space between blocks, from which every other distance derives. */\n readonly flow = input<ProseFlow>();\n\n private readonly defaults = injectProseDefaults();\n\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedFlow = computed(() => this.flow() ?? this.defaults.flow);\n}\n","import { afterNextRender, Directive, ElementRef, inject, Renderer2 } from '@angular/core';\n\n/**\n * The opening paragraph, one step up and in the muted tone. Tailwind's\n * equivalent is a class the author writes into the Markdown; this is a part,\n * so it is contract and it is selectable.\n */\n@Directive({\n selector: '[slProseLead]',\n standalone: true,\n exportAs: 'slProseLead',\n host: { 'data-part': 'lead' },\n})\nexport class SlProseLead {}\n\n/**\n * A heading's permalink. The destination is the consumer's —\n * `rehype-autolink-headings` writes it — and the family owns where it sits,\n * how large its target is, and the rule that it appears on hover **and** on\n * focus. It is hidden with opacity, never with `display: none`, so a keyboard\n * reader can reach it and a screen reader can announce it.\n */\n@Directive({\n selector: '[slProseAnchor]',\n standalone: true,\n exportAs: 'slProseAnchor',\n host: { 'data-part': 'anchor' },\n})\nexport class SlProseAnchor {\n private readonly host = inject(ElementRef<HTMLElement>);\n private readonly renderer = inject(Renderer2);\n\n constructor() {\n /**\n * A word joiner — U+2060, the zero-width character whose whole purpose is\n * to forbid a break without occupying anything — goes before the anchor,\n * so the last word of a title and its permalink wrap together. Without it\n * the whitespace a template leaves between the two is a break opportunity,\n * and an anchor that is invisible at rest wraps to a line of its own and\n * opens an empty line under every heading.\n *\n * It is written after the first render rather than in the template,\n * because the directive attaches to the consumer's own element and has no\n * template of its own to put a character in front of. Hydration has\n * finished by then, so the insertion is an ordinary DOM mutation. `Link`\n * uses the same device for its external marker.\n */\n afterNextRender(() => {\n const element: HTMLElement = this.host.nativeElement;\n const parent = element.parentNode;\n if (parent === null) return;\n\n const previous = element.previousSibling;\n if (previous?.nodeType === Node.TEXT_NODE && previous.textContent?.endsWith('\\u2060')) return;\n\n this.renderer.insertBefore(parent, this.renderer.createText('\\u2060'), element);\n });\n }\n}\n\n/**\n * A subtree the family does not style. Every content rule carries a guard\n * against this part and everything under it, and the four properties\n * inheritance still carried in — family, size, leading and wrapping — are\n * returned to control type here.\n *\n * Tailwind's `not-prose` and Typeset's `not-typeset` both leave the inherited\n * type in place, so a card inside a large region is set in the region's text.\n */\n@Directive({\n selector: '[slProseExclude]',\n standalone: true,\n exportAs: 'slProseExclude',\n host: { 'data-part': 'exclude' },\n})\nexport class SlProseExclude {}\n\n/** What GitHub Flavored Markdown emits at the end of a document. */\n@Directive({\n selector: '[slProseFootnotes]',\n standalone: true,\n exportAs: 'slProseFootnotes',\n host: { 'data-part': 'footnotes' },\n})\nexport class SlProseFootnotes {}\n","import { createScrollAffordance } from '@slotted/core/overflow';\nimport type { ScrollAffordanceHandle } from '@slotted/core/overflow';\nimport {\n afterNextRender,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { proseMessages, type PartialMessages, type ProseMessages } from '@slotted/core/i18n';\n\n/**\n * A wide block — a table, a fence — that scrolls sideways instead of pushing\n * the page over. The axe rule `scrollable-region-focusable` makes that a WCAG\n * 2.2 level A failure unless a keyboard can reach it, and anything that takes\n * focus then needs a name and a role or it fails SC 4.1.2. Adrian Roselli's\n * pattern is `<div role=\"region\" aria-labelledby tabindex=\"0\">`.\n *\n * None of the four surveyed implementations of this family ships it: Typeset's\n * `typeset-scroll` is a `div` with `overflow: auto`, and GitHub's table\n * wrapper is the same.\n *\n * The wiring is written **only while the block actually overflows**, measured\n * by `@slotted/core/overflow` — the module `slTabs` already uses. A tab stop\n * on a block that fits is a tab stop that does nothing, and a reader tabbing a\n * documentation page would hit one per table.\n *\n * `refresh()` is reachable through `exportAs`, for content that arrives after\n * the observer's last measurement:\n *\n * ```html\n * <div slProseScroll #wide=\"slProseScroll\"><table>…</table></div>\n * <button type=\"button\" (click)=\"wide.refresh()\">Reloaded</button>\n * ```\n */\n@Directive({\n selector: '[slProseScroll]',\n standalone: true,\n exportAs: 'slProseScroll',\n host: {\n 'data-part': 'scroll',\n '[attr.role]': 'resolvedRole()',\n '[attr.tabindex]': 'resolvedTabIndex()',\n '[attr.aria-label]': 'resolvedLabel()',\n '[attr.aria-labelledby]': 'resolvedLabelledBy()',\n },\n})\nexport class SlProseScroll {\n /**\n * Words laid over the catalog of the language in force: the last resort name\n * of the region (`scroll`). A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<ProseMessages> | undefined>(undefined);\n /** Names it from an element already on the page — a table's own caption. */\n readonly labelledBy = input<string>();\n\n private readonly host = inject(ElementRef<HTMLElement>);\n /** The family's words in the language in force, with this block's `messages` laid over them. */\n readonly t = injectMessages(proseMessages, this.messages);\n private readonly overflowing = signal(false);\n private affordance: ScrollAffordanceHandle | null = null;\n\n /**\n * A consumer who wrote its own `role` or `aria-label` on the element keeps\n * them: the attribute is read once, before anything is bound over it.\n */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n protected readonly resolvedRole = computed(() => {\n if (this.writtenRole !== null) return this.writtenRole;\n return this.overflowing() ? 'region' : null;\n });\n\n protected readonly resolvedTabIndex = computed(() => (this.overflowing() ? '0' : null));\n\n protected readonly resolvedLabelledBy = computed(() => {\n if (!this.overflowing()) return null;\n return this.labelledBy() ?? null;\n });\n\n protected readonly resolvedLabel = computed(() => {\n if (!this.overflowing() || this.labelledBy() !== undefined) return null;\n if (this.writtenLabel !== null) return this.writtenLabel;\n return this.t('scroll');\n });\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /**\n * The measurement runs after the first render and never during it, so the\n * server renders a plain scroller and hydration finds the same DOM. It is\n * also the first moment a browser can say whether the block overflows.\n */\n afterNextRender(() => {\n const handle = createScrollAffordance(this.host.nativeElement, {\n onChange: (state) => this.overflowing.set(state.overflowing),\n });\n this.affordance = handle;\n this.overflowing.set(handle.state().overflowing);\n\n destroyRef.onDestroy(() => {\n handle.destroy();\n this.affordance = null;\n });\n });\n }\n\n /** Measures the block again and rewrites the wiring if the answer changed. */\n refresh(): void {\n this.affordance?.refresh();\n }\n\n /** Whether the block is scrollable as of the last measurement. */\n isOverflowing(): boolean {\n return this.overflowing();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-prose.mjs","sources":["../../prose/src/prose-defaults.ts","../../prose/src/prose.ts","../../prose/src/prose-parts.ts","../../prose/src/prose-scroll.ts","../../prose/src/slotted-angular-prose.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/**\n * The type-scale step the body text takes. Named for the scale's own steps, as\n * `slText` names its own, so the offset from control type is visible rather\n * than hidden: `lg` is one rem, and `--slotted-font-size-md` is the size a\n * button label is set in.\n */\nexport type ProseSize = 'md' | 'lg' | 'xl';\n\n/**\n * The space between blocks, from which every other distance in the region\n * derives. `tight` is a message in a thread, `normal` a documentation page,\n * `loose` an article.\n */\nexport type ProseFlow = 'tight' | 'normal' | 'loose';\n\nexport interface ProseDefaults {\n flow: ProseFlow;\n size: ProseSize;\n}\n\n/**\n * `lg` rather than the control step: the family exists for text a reader stays\n * with, and 0.875rem is the size a button label is set in. `normal` is the\n * documentation rhythm, which is what a region of rendered Markdown is in\n * unless the application says otherwise.\n *\n * The scrolling region's name comes from the catalog rather than a required\n * input because a Markdown renderer's component map cannot supply one per\n * table.\n */\nconst FALLBACK: ProseDefaults = {\n flow: 'normal',\n size: 'lg',\n};\n\nexport const PROSE_DEFAULTS = new InjectionToken<ProseDefaults>('slotted prose defaults', {\n providedIn: 'root',\n factory: (): ProseDefaults => ({ ...FALLBACK }),\n});\n\n/**\n * An application decides once how its rendered content reads — Typeset's\n * presets, as a provider rather than as a class. A region that states any of\n * them itself still wins: an explicit input is never overridden by the token.\n */\nexport function provideProseDefaults(defaults: Partial<ProseDefaults>) {\n return {\n provide: PROSE_DEFAULTS,\n useFactory: (): ProseDefaults => ({\n flow: defaults.flow ?? FALLBACK.flow,\n size: defaults.size ?? FALLBACK.size,\n }),\n };\n}\n\n/** What a region is set in here, before it states anything of its own. */\nexport function injectProseDefaults(): ProseDefaults {\n return inject(PROSE_DEFAULTS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectProseDefaults } from './prose-defaults';\nimport type { ProseFlow, ProseSize } from './prose-defaults';\n\nexport type { ProseFlow, ProseSize } from './prose-defaults';\n\n/**\n * The typography of a region the application did not author element by\n * element. The tree arrives from a Markdown renderer, a CMS or a language\n * model, and the page never gets to put an attribute on the `h2`.\n *\n * Text the application does author is `slText` and `slHeading`: those carry a\n * size, a weight and a tone per element, and wrapping two authored paragraphs\n * in this family is choosing a recipe over a decision. The boundary is who\n * wrote the tags.\n *\n * It does not sanitise. The renderer that produced the tree is where a\n * sanitiser belongs, and a component that both styled and sanitised would hide\n * which of the two failed.\n *\n * The selector is an attribute, so the page keeps its own element: a `div`\n * claims nothing, and `article`, `section` or `main` is a claim the page\n * makes. Measure is not painted here either — `slContainer` owns it, and one\n * element composes the two:\n *\n * ```html\n * <div slContainer size=\"measure\"><article slProse [innerHTML]=\"rendered\"></article></div>\n * ```\n */\n@Component({\n selector: '[slProse]',\n standalone: true,\n exportAs: 'slProse',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/prose/prose.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'prose',\n 'data-ui-prose': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-flow]': 'resolvedFlow()',\n },\n})\nexport class SlProse {\n /** The type-scale step the body text takes. Falls back to the token. */\n readonly size = input<ProseSize>();\n /** The space between blocks, from which every other distance derives. */\n readonly flow = input<ProseFlow>();\n\n private readonly defaults = injectProseDefaults();\n\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedFlow = computed(() => this.flow() ?? this.defaults.flow);\n}\n","import { afterNextRender, Directive, ElementRef, inject, Renderer2 } from '@angular/core';\n\n/**\n * The opening paragraph, one step up and in the muted tone. Tailwind's\n * equivalent is a class the author writes into the Markdown; this is a part,\n * so it is contract and it is selectable.\n */\n@Directive({\n selector: '[slProseLead]',\n standalone: true,\n exportAs: 'slProseLead',\n host: { 'data-part': 'lead', 'data-part-lead': '' },\n})\nexport class SlProseLead {}\n\n/**\n * A heading's permalink. The destination is the consumer's —\n * `rehype-autolink-headings` writes it — and the family owns where it sits,\n * how large its target is, and the rule that it appears on hover **and** on\n * focus. It is hidden with opacity, never with `display: none`, so a keyboard\n * reader can reach it and a screen reader can announce it.\n */\n@Directive({\n selector: '[slProseAnchor]',\n standalone: true,\n exportAs: 'slProseAnchor',\n host: { 'data-part': 'anchor', 'data-part-anchor': '' },\n})\nexport class SlProseAnchor {\n private readonly host = inject(ElementRef<HTMLElement>);\n private readonly renderer = inject(Renderer2);\n\n constructor() {\n /**\n * A word joiner — U+2060, the zero-width character whose whole purpose is\n * to forbid a break without occupying anything — goes before the anchor,\n * so the last word of a title and its permalink wrap together. Without it\n * the whitespace a template leaves between the two is a break opportunity,\n * and an anchor that is invisible at rest wraps to a line of its own and\n * opens an empty line under every heading.\n *\n * It is written after the first render rather than in the template,\n * because the directive attaches to the consumer's own element and has no\n * template of its own to put a character in front of. Hydration has\n * finished by then, so the insertion is an ordinary DOM mutation. `Link`\n * uses the same device for its external marker.\n */\n afterNextRender(() => {\n const element: HTMLElement = this.host.nativeElement;\n const parent = element.parentNode;\n if (parent === null) return;\n\n const previous = element.previousSibling;\n if (previous?.nodeType === Node.TEXT_NODE && previous.textContent?.endsWith('\\u2060')) return;\n\n this.renderer.insertBefore(parent, this.renderer.createText('\\u2060'), element);\n });\n }\n}\n\n/**\n * A subtree the family does not style. Every content rule carries a guard\n * against this part and everything under it, and the four properties\n * inheritance still carried in — family, size, leading and wrapping — are\n * returned to control type here.\n *\n * Tailwind's `not-prose` and Typeset's `not-typeset` both leave the inherited\n * type in place, so a card inside a large region is set in the region's text.\n */\n@Directive({\n selector: '[slProseExclude]',\n standalone: true,\n exportAs: 'slProseExclude',\n host: { 'data-part': 'exclude', 'data-part-exclude': '' },\n})\nexport class SlProseExclude {}\n\n/** What GitHub Flavored Markdown emits at the end of a document. */\n@Directive({\n selector: '[slProseFootnotes]',\n standalone: true,\n exportAs: 'slProseFootnotes',\n host: { 'data-part': 'footnotes', 'data-part-footnotes': '' },\n})\nexport class SlProseFootnotes {}\n","import { createScrollAffordance } from '@slotted/core/overflow';\nimport type { ScrollAffordanceHandle } from '@slotted/core/overflow';\nimport {\n afterNextRender,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { proseMessages, type PartialMessages, type ProseMessages } from '@slotted/core/i18n';\n\n/**\n * A wide block — a table, a fence — that scrolls sideways instead of pushing\n * the page over. The axe rule `scrollable-region-focusable` makes that a WCAG\n * 2.2 level A failure unless a keyboard can reach it, and anything that takes\n * focus then needs a name and a role or it fails SC 4.1.2. Adrian Roselli's\n * pattern is `<div role=\"region\" aria-labelledby tabindex=\"0\">`.\n *\n * None of the four surveyed implementations of this family ships it: Typeset's\n * `typeset-scroll` is a `div` with `overflow: auto`, and GitHub's table\n * wrapper is the same.\n *\n * The wiring is written **only while the block actually overflows**, measured\n * by `@slotted/core/overflow` — the module `slTabs` already uses. A tab stop\n * on a block that fits is a tab stop that does nothing, and a reader tabbing a\n * documentation page would hit one per table.\n *\n * `refresh()` is reachable through `exportAs`, for content that arrives after\n * the observer's last measurement:\n *\n * ```html\n * <div slProseScroll #wide=\"slProseScroll\"><table>…</table></div>\n * <button type=\"button\" (click)=\"wide.refresh()\">Reloaded</button>\n * ```\n */\n@Directive({\n selector: '[slProseScroll]',\n standalone: true,\n exportAs: 'slProseScroll',\n host: {\n 'data-part': 'scroll',\n 'data-part-scroll': '',\n '[attr.role]': 'resolvedRole()',\n '[attr.tabindex]': 'resolvedTabIndex()',\n '[attr.aria-label]': 'resolvedLabel()',\n '[attr.aria-labelledby]': 'resolvedLabelledBy()',\n },\n})\nexport class SlProseScroll {\n /**\n * Words laid over the catalog of the language in force: the last resort name\n * of the region (`scroll`). A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<ProseMessages> | undefined>(undefined);\n /** Names it from an element already on the page — a table's own caption. */\n readonly labelledBy = input<string>();\n\n private readonly host = inject(ElementRef<HTMLElement>);\n /** The family's words in the language in force, with this block's `messages` laid over them. */\n readonly t = injectMessages(proseMessages, this.messages);\n private readonly overflowing = signal(false);\n private affordance: ScrollAffordanceHandle | null = null;\n\n /**\n * A consumer who wrote its own `role` or `aria-label` on the element keeps\n * them: the attribute is read once, before anything is bound over it.\n */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n protected readonly resolvedRole = computed(() => {\n if (this.writtenRole !== null) return this.writtenRole;\n return this.overflowing() ? 'region' : null;\n });\n\n protected readonly resolvedTabIndex = computed(() => (this.overflowing() ? '0' : null));\n\n protected readonly resolvedLabelledBy = computed(() => {\n if (!this.overflowing()) return null;\n return this.labelledBy() ?? null;\n });\n\n protected readonly resolvedLabel = computed(() => {\n if (!this.overflowing() || this.labelledBy() !== undefined) return null;\n if (this.writtenLabel !== null) return this.writtenLabel;\n return this.t('scroll');\n });\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /**\n * The measurement runs after the first render and never during it, so the\n * server renders a plain scroller and hydration finds the same DOM. It is\n * also the first moment a browser can say whether the block overflows.\n */\n afterNextRender(() => {\n const handle = createScrollAffordance(this.host.nativeElement, {\n onChange: (state) => this.overflowing.set(state.overflowing),\n });\n this.affordance = handle;\n this.overflowing.set(handle.state().overflowing);\n\n destroyRef.onDestroy(() => {\n handle.destroy();\n this.affordance = null;\n });\n });\n }\n\n /** Measures the block again and rewrites the wiring if the answer changed. */\n refresh(): void {\n this.affordance?.refresh();\n }\n\n /** Whether the block is scrollable as of the last measurement. */\n isOverflowing(): boolean {\n return this.overflowing();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -270,10 +270,10 @@ class SlRadioGroup {
270
270
  return value === null || value === undefined || value === '' ? { required: true } : null;
271
271
  }
272
272
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
273
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlRadioGroup, isStandalone: true, selector: "[slRadioGroup]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, labelPlacement: { classPropertyName: "labelPlacement", publicName: "labelPlacement", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "data-ui": "radio-group", "data-part": "root" }, properties: { "attr.role": "resolvedRole()", "attr.data-size": "resolvedSize()", "attr.data-orientation": "resolvedOrientation()", "attr.data-label-placement": "resolvedLabelPlacement()", "attr.data-variant": "resolvedVariant()", "attr.data-disabled": "resolvedDisabled() === true ? '' : null", "attr.data-invalid": "resolvedInvalid() === true ? '' : null", "attr.data-readonly": "resolvedReadOnly() === true ? '' : null", "attr.aria-labelledby": "labelledBy()", "attr.aria-describedby": "describedBy()", "attr.aria-invalid": "ariaInvalid()", "attr.aria-readonly": "ariaReadOnly()", "attr.aria-required": "ariaRequired()", "attr.aria-orientation": "ariaOrientation()" } }, providers: [
273
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlRadioGroup, isStandalone: true, selector: "[slRadioGroup]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, labelPlacement: { classPropertyName: "labelPlacement", publicName: "labelPlacement", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "data-ui": "radio-group", "data-ui-radio-group": "", "data-part": "root", "data-part-root": "" }, properties: { "attr.role": "resolvedRole()", "attr.data-size": "resolvedSize()", "attr.data-orientation": "resolvedOrientation()", "attr.data-label-placement": "resolvedLabelPlacement()", "attr.data-variant": "resolvedVariant()", "attr.data-disabled": "resolvedDisabled() === true ? '' : null", "attr.data-invalid": "resolvedInvalid() === true ? '' : null", "attr.data-readonly": "resolvedReadOnly() === true ? '' : null", "attr.aria-labelledby": "labelledBy()", "attr.aria-describedby": "describedBy()", "attr.aria-invalid": "ariaInvalid()", "attr.aria-readonly": "ariaReadOnly()", "attr.aria-required": "ariaRequired()", "attr.aria-orientation": "ariaOrientation()" } }, providers: [
274
274
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlRadioGroup), multi: true },
275
275
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlRadioGroup), multi: true },
276
- ], exportAs: ["slRadioGroup"], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer slotted.components{[data-ui=radio-group][data-part=root]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-md, 16px));--_font-size: var(--slotted-control-font-size-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_label-gap: var(--slotted-control-label-gap-md, 12px);--_line-height: var(--slotted-radio-group-line-height, var(--slotted-line-height-md, 1.5));--_halo-spread: calc(var(--_label-gap) / 2);--_target: var(--slotted-target-min, 24px);--_lift: calc((var(--_font-size) * var(--_line-height) - var(--_size)) / 2);--_description-gap: var(--slotted-space-3, .375rem);color:var(--slotted-radio-group-color, var(--slotted-text, CanvasText));display:flex;flex-direction:column;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--slotted-radio-group-gap, var(--_gap));line-height:var(--_line-height)}[data-ui=radio-group][data-part=root]:has([data-part=description]){row-gap:var(--slotted-radio-group-gap, calc(var(--_gap) * 2))}[data-ui=radio-group][data-part=root][data-orientation=horizontal]{flex-direction:row;flex-wrap:wrap;column-gap:calc(var(--_gap) * 2)}[data-ui=radio-group][data-part=root][data-size=sm]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-sm, 14px));--_font-size: var(--slotted-control-font-size-sm, 12px);--_gap: var(--slotted-control-gap-sm, 6px);--_label-gap: var(--slotted-control-label-gap-sm, 8px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-sm, 10px) )}[data-ui=radio-group][data-part=root][data-size=md]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-md, 16px));--_font-size: var(--slotted-control-font-size-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_label-gap: var(--slotted-control-label-gap-md, 12px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-md, 13px) )}[data-ui=radio-group][data-part=root][data-size=lg]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-lg, 18px));--_font-size: var(--slotted-control-font-size-lg, 14px);--_gap: var(--slotted-control-gap-lg, 8px);--_label-gap: var(--slotted-control-label-gap-lg, 12px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-lg, 16px) )}[data-ui=radio-group] [data-part=item]{align-content:start;display:grid;grid-template-columns:auto minmax(0,1fr);isolation:isolate;position:relative}[data-ui=radio-group][data-part=root]{--_direction: ltr}[data-ui=radio-group][data-part=root]:dir(rtl){--_direction: rtl}[data-ui=radio-group] [data-part=control]{appearance:none;background-color:var(--slotted-radio-group-background, var(--slotted-surface, Canvas));border:var(--slotted-radio-group-border-width, var(--slotted-border-width-medium, 1.5px)) solid var(--slotted-radio-group-border-color, var(--slotted-border-strong, ButtonBorder));border-radius:var(--slotted-radius-full, 9999px);block-size:var(--_size);box-sizing:border-box;cursor:pointer;grid-area:1 / 1;inline-size:var(--_size);margin:0;margin-block-start:var(--_lift);transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=radio-group] [data-part=indicator]{--slotted-icon-size: var(--_size);block-size:var(--_size);color:var(--slotted-radio-group-mark-color, var(--slotted-tone-accent-solid));display:flex;grid-area:1 / 1;inline-size:var(--_size);margin-block-start:var(--_lift);opacity:0;pointer-events:none;scale:.6;transition:opacity var(--slotted-duration-medium) var(--slotted-control-transition-easing),scale var(--slotted-duration-medium) var(--slotted-control-transition-easing)}[data-ui=radio-group] [data-part=control]:checked+[data-part=indicator]{opacity:1;scale:1}[data-ui=radio-group] [data-part=label]{cursor:pointer;grid-column:2;grid-row:1;overflow-wrap:anywhere}[data-ui=radio-group] [data-part=item]:has(>[data-part=label]){column-gap:var(--_label-gap)}[data-ui=radio-group][data-part=root]:not([data-variant=tile]) [data-part=label]{justify-self:start;position:relative}[data-ui=radio-group][data-part=root]:not([data-variant=tile]) [data-part=label]:before{block-size:var(--_target);content:\"\";direction:var(--_direction);inline-size:var(--_target);inset-block-start:calc(var(--_lift) + var(--_size) - var(--_target));inset-inline-start:calc((var(--_size) - var(--_target)) / 2 - var(--_size) - var(--_label-gap));position:absolute;z-index:-1}[data-ui=radio-group][data-part=root]:not([data-variant=tile]) [data-part=label]:after{background-color:var(--slotted-radio-group-halo-color, var(--slotted-tone-accent-text));border-radius:calc(var(--_size) / 2 + var(--_halo-spread));content:\"\";direction:var(--_direction);inset-block:calc(var(--_lift) - var(--_halo-spread));inset-inline-end:calc(-1.5 * var(--_halo-spread));inset-inline-start:calc(-1 * (var(--_size) + var(--_label-gap) + var(--_halo-spread)));opacity:0;position:absolute;transition:opacity var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);z-index:-1}[data-ui=radio-group][data-part=root]:not([data-variant=tile]) [data-part=label]:empty:after{inset-inline-end:calc(var(--_label-gap) - var(--_halo-spread))}[data-ui=radio-group] [data-part=description]{color:var(--slotted-radio-group-description-color, var(--slotted-text-muted, GrayText));font-size:var( --slotted-radio-group-description-font-size, var(--slotted-font-size-xs, .75rem) );grid-column:2;grid-row:2;line-height:var(--slotted-line-height-xs, 1.4);margin:0;overflow-wrap:anywhere;padding-block-start:var(--_description-gap)}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=item]{grid-template-columns:minmax(0,1fr) auto}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=control],[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=indicator]{grid-area:1 / 2}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=label],[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=description]{grid-column:1}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=label]{justify-self:stretch}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=label]:before{inset-inline-end:calc(-1 * (var(--_size) + var(--_label-gap)));inset-inline-start:auto}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=label]:after{inset-inline-end:calc(-1 * (var(--_size) + var(--_label-gap) + var(--_halo-spread)));inset-inline-start:calc(-1.5 * var(--_halo-spread))}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:hover:not(:disabled){border-color:var(--slotted-radio-group-hover-border-color, var(--slotted-tone-accent-border))}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:hover:not(:disabled)~[data-part=label]:after,[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:not(:disabled)~[data-part=label]:hover:after{opacity:var(--slotted-selection-halo-opacity, .12)}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:active:not(:disabled){background-color:var( --slotted-radio-group-active-background, var(--slotted-tone-accent-subtle-active) )}[data-ui=radio-group] [data-part=control]:checked{border-color:var(--slotted-radio-group-checked-border-color, var(--slotted-tone-accent-solid))}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:checked:hover:not(:disabled){border-color:var( --slotted-radio-group-checked-hover-border-color, var(--slotted-tone-accent-solid-hover) )}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:checked:active:not(:disabled){border-color:var( --slotted-radio-group-checked-active-border-color, var(--slotted-tone-accent-solid-active) )}[data-ui=radio-group] [data-part=control]: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=radio-group][data-part=root][data-invalid]{--slotted-focus-ring-color: var( --slotted-radio-group-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) )}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]{border-width:calc(var(--slotted-radio-group-border-width, var(--slotted-border-width-medium, 1.5px)) + var( --slotted-radio-group-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) ));border-color:var( --slotted-radio-group-invalid-border-color, var(--slotted-tone-danger-border) )}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]:checked{border-color:var( --slotted-radio-group-invalid-checked-border-color, var(--slotted-tone-danger-solid) )}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]:checked+[data-part=indicator]{color:var(--slotted-radio-group-invalid-mark-color, var(--slotted-tone-danger-solid))}[data-ui=radio-group][data-part=root][data-readonly] [data-part=control],[data-ui=radio-group][data-part=root][data-readonly] [data-part=label]{cursor:default}[data-ui=radio-group][data-part=root][data-readonly] [data-part=control]:not(:checked){background-color:var( --slotted-radio-group-readonly-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui=radio-group][data-part=root][data-disabled] [data-part=control],[data-ui=radio-group] [data-part=control]:disabled{background-color:var( --slotted-radio-group-disabled-background, var(--slotted-disabled-background) );border-color:var(--slotted-radio-group-disabled-border-color, var(--slotted-disabled-border));cursor:not-allowed}[data-ui=radio-group] [data-part=control]:disabled+[data-part=indicator]{color:var(--slotted-radio-group-disabled-mark-color, var(--slotted-disabled-foreground))}[data-ui=radio-group][data-part=root][data-disabled] [data-part=label],[data-ui=radio-group][data-part=root][data-disabled] [data-part=description],[data-ui=radio-group] [data-part=control]:disabled~[data-part=label],[data-ui=radio-group] [data-part=control]:disabled~[data-part=description]{color:var(--slotted-radio-group-disabled-color, var(--slotted-disabled-foreground));cursor:not-allowed}[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item]{--_description-gap: var( --slotted-radio-group-tile-description-gap, var(--slotted-space-2, .25rem) );--_tile-surface: var(--slotted-radio-group-tile-background, var(--slotted-surface, Canvas));--_tile-edge: var( --slotted-radio-group-tile-border-color, var(--slotted-control-border-color, ButtonBorder) );--_tile-edge-width: var(--slotted-control-border-width, 1px);background-color:var(--_tile-surface);border-radius:var(--slotted-radio-group-tile-radius, var(--slotted-radius-md, 6px));box-shadow:var(--slotted-control-shadow, none);cursor:pointer;padding:var(--_tile-inset);position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item]:before{border:calc(var(--_tile-edge-width) + var(--_tile-invalid-edge, 0px)) solid var(--_tile-edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute;transition:border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item] [data-part=label]:after{content:\"\";inset:0;position:absolute}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part=item]:has([data-part=control]:not(:disabled)):not(:has([data-part=control]:checked)):hover{--_tile-surface: var( --slotted-radio-group-tile-hover-background, var(--slotted-tone-accent-subtle-hover) );--_tile-edge: var( --slotted-radio-group-tile-hover-border-color, var(--slotted-tone-accent-border) )}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part=item]:has([data-part=control]:not(:disabled)):not(:has([data-part=control]:checked)):active{--_tile-surface: var( --slotted-radio-group-tile-active-background, var(--slotted-tone-accent-subtle-active) )}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]) [data-part=item]:has([data-part=control]:checked){--_tile-edge: var( --slotted-radio-group-tile-checked-border-color, var(--slotted-tone-accent-solid) );--_tile-edge-width: var(--slotted-border-width-thick, 2px)}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]) [data-part=item]:has([data-part=control]:checked){--_tile-surface: var( --slotted-radio-group-tile-checked-background, var(--slotted-tone-accent-surface) )}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part=item]:has([data-part=control]:checked:not(:disabled)):hover{--_tile-edge: var( --slotted-radio-group-tile-checked-hover-border-color, var(--slotted-tone-accent-solid-hover) )}[data-ui=radio-group][data-part=root][data-variant=tile][data-invalid] [data-part=item]{--_tile-edge: var( --slotted-radio-group-tile-invalid-border-color, var(--slotted-tone-danger-border) );--_tile-invalid-edge: var( --slotted-radio-group-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) )}[data-ui=radio-group][data-part=root][data-variant=tile][data-invalid] [data-part=item]:has([data-part=control]:checked){--_tile-surface: var( --slotted-radio-group-tile-invalid-checked-background, var(--slotted-tone-danger-surface) );--_tile-edge: var( --slotted-radio-group-tile-invalid-checked-border-color, var(--slotted-tone-danger-solid) )}[data-ui=radio-group][data-part=root][data-variant=tile][data-readonly] [data-part=item]{--_tile-surface: var( --slotted-radio-group-tile-readonly-background, var(--slotted-tone-secondary-subtle-hover) );--_tile-edge: var( --slotted-radio-group-tile-readonly-border-color, var(--slotted-border-strong) );cursor:default}[data-ui=radio-group][data-part=root][data-variant=tile][data-disabled] [data-part=item],[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item]:has([data-part=control]:disabled){--_tile-surface: var( --slotted-radio-group-tile-disabled-background, var(--slotted-disabled-background) );--_tile-edge: var( --slotted-radio-group-tile-disabled-border-color, var(--slotted-disabled-border) );box-shadow:none;cursor:not-allowed}[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item]:has([data-part=control]: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=radio-group][data-part=root][data-variant=tile] [data-part=control]:focus-visible{outline:none}@media(forced-colors:active){[data-ui=radio-group] [data-part=control]{background-color:Field;border-color:FieldText}[data-ui=radio-group] [data-part=control]:checked{background-color:Field;border-color:Highlight}[data-ui=radio-group] [data-part=control]:checked+[data-part=indicator]{color:Highlight}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]:checked{background-color:Field;border-color:CanvasText}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]:checked+[data-part=indicator]{color:Highlight}[data-ui=radio-group][data-part=root][data-variant=tile][data-invalid] [data-part=item],[data-ui=radio-group][data-part=root][data-variant=tile][data-invalid] [data-part=item]:has([data-part=control]:checked){--_tile-edge: CanvasText}[data-ui=radio-group] [data-part=control]:disabled{background-color:Field;border-color:GrayText}[data-ui=radio-group] [data-part=control]:disabled+[data-part=indicator]{color:GrayText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
276
+ ], exportAs: ["slRadioGroup"], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer slotted.components{[data-ui-radio-group][data-part-root]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-md, 16px));--_font-size: var(--slotted-control-font-size-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_label-gap: var(--slotted-control-label-gap-md, 12px);--_line-height: var(--slotted-radio-group-line-height, var(--slotted-line-height-md, 1.5));--_halo-spread: calc(var(--_label-gap) / 2);--_target: var(--slotted-target-min, 24px);--_lift: calc((var(--_font-size) * var(--_line-height) - var(--_size)) / 2);--_description-gap: var(--slotted-space-3, .375rem);color:var(--slotted-radio-group-color, var(--slotted-text, CanvasText));display:flex;flex-direction:column;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--slotted-radio-group-gap, var(--_gap));line-height:var(--_line-height)}[data-ui-radio-group][data-part-root]:has([data-part-description]){row-gap:var(--slotted-radio-group-gap, calc(var(--_gap) * 2))}[data-ui-radio-group][data-part-root][data-orientation=horizontal]{flex-direction:row;flex-wrap:wrap;column-gap:calc(var(--_gap) * 2)}[data-ui-radio-group][data-part-root][data-size=sm]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-sm, 14px));--_font-size: var(--slotted-control-font-size-sm, 12px);--_gap: var(--slotted-control-gap-sm, 6px);--_label-gap: var(--slotted-control-label-gap-sm, 8px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-sm, 10px) )}[data-ui-radio-group][data-part-root][data-size=md]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-md, 16px));--_font-size: var(--slotted-control-font-size-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_label-gap: var(--slotted-control-label-gap-md, 12px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-md, 13px) )}[data-ui-radio-group][data-part-root][data-size=lg]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-lg, 18px));--_font-size: var(--slotted-control-font-size-lg, 14px);--_gap: var(--slotted-control-gap-lg, 8px);--_label-gap: var(--slotted-control-label-gap-lg, 12px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-lg, 16px) )}[data-ui-radio-group] [data-part-item]{align-content:start;display:grid;grid-template-columns:auto minmax(0,1fr);isolation:isolate;position:relative}[data-ui-radio-group][data-part-root]{--_direction: ltr}[data-ui-radio-group][data-part-root]:dir(rtl){--_direction: rtl}[data-ui-radio-group] [data-part-control]{appearance:none;background-color:var(--slotted-radio-group-background, var(--slotted-surface, Canvas));border:var(--slotted-radio-group-border-width, var(--slotted-border-width-medium, 1.5px)) solid var(--slotted-radio-group-border-color, var(--slotted-border-strong, ButtonBorder));border-radius:var(--slotted-radius-full, 9999px);block-size:var(--_size);box-sizing:border-box;cursor:pointer;grid-area:1 / 1;inline-size:var(--_size);margin:0;margin-block-start:var(--_lift);transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-radio-group] [data-part-indicator]{--slotted-icon-size: var(--_size);block-size:var(--_size);color:var(--slotted-radio-group-mark-color, var(--slotted-tone-accent-solid));display:flex;grid-area:1 / 1;inline-size:var(--_size);margin-block-start:var(--_lift);opacity:0;pointer-events:none;scale:.6;transition:opacity var(--slotted-duration-medium) var(--slotted-control-transition-easing),scale var(--slotted-duration-medium) var(--slotted-control-transition-easing)}[data-ui-radio-group] [data-part-control]:checked+[data-part-indicator]{opacity:1;scale:1}[data-ui-radio-group] [data-part-label]{cursor:pointer;grid-column:2;grid-row:1;overflow-wrap:anywhere}[data-ui-radio-group] [data-part-item]:has(>[data-part-label]){column-gap:var(--_label-gap)}[data-ui-radio-group][data-part-root]:not([data-variant=tile]) [data-part-label]{justify-self:start;position:relative}[data-ui-radio-group][data-part-root]:not([data-variant=tile]) [data-part-label]:before{block-size:var(--_target);content:\"\";direction:var(--_direction);inline-size:var(--_target);inset-block-start:calc(var(--_lift) + var(--_size) - var(--_target));inset-inline-start:calc((var(--_size) - var(--_target)) / 2 - var(--_size) - var(--_label-gap));position:absolute;z-index:-1}[data-ui-radio-group][data-part-root]:not([data-variant=tile]) [data-part-label]:after{background-color:var(--slotted-radio-group-halo-color, var(--slotted-tone-accent-text));border-radius:calc(var(--_size) / 2 + var(--_halo-spread));content:\"\";direction:var(--_direction);inset-block:calc(var(--_lift) - var(--_halo-spread));inset-inline-end:calc(-1.5 * var(--_halo-spread));inset-inline-start:calc(-1 * (var(--_size) + var(--_label-gap) + var(--_halo-spread)));opacity:0;position:absolute;transition:opacity var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);z-index:-1}[data-ui-radio-group][data-part-root]:not([data-variant=tile]) [data-part-label]:empty:after{inset-inline-end:calc(var(--_label-gap) - var(--_halo-spread))}[data-ui-radio-group] [data-part-description]{color:var(--slotted-radio-group-description-color, var(--slotted-text-muted, GrayText));font-size:var( --slotted-radio-group-description-font-size, var(--slotted-font-size-xs, .75rem) );grid-column:2;grid-row:2;line-height:var(--slotted-line-height-xs, 1.4);margin:0;overflow-wrap:anywhere;padding-block-start:var(--_description-gap)}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-item]{grid-template-columns:minmax(0,1fr) auto}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-control],[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-indicator]{grid-area:1 / 2}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-label],[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-description]{grid-column:1}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-label]{justify-self:stretch}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-label]:before{inset-inline-end:calc(-1 * (var(--_size) + var(--_label-gap)));inset-inline-start:auto}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-label]:after{inset-inline-end:calc(-1 * (var(--_size) + var(--_label-gap) + var(--_halo-spread)));inset-inline-start:calc(-1.5 * var(--_halo-spread))}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:hover:not(:disabled){border-color:var(--slotted-radio-group-hover-border-color, var(--slotted-tone-accent-border))}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:hover:not(:disabled)~[data-part-label]:after,[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:not(:disabled)~[data-part-label]:hover:after{opacity:var(--slotted-selection-halo-opacity, .12)}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:active:not(:disabled){background-color:var( --slotted-radio-group-active-background, var(--slotted-tone-accent-subtle-active) )}[data-ui-radio-group] [data-part-control]:checked{border-color:var(--slotted-radio-group-checked-border-color, var(--slotted-tone-accent-solid))}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:checked:hover:not(:disabled){border-color:var( --slotted-radio-group-checked-hover-border-color, var(--slotted-tone-accent-solid-hover) )}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:checked:active:not(:disabled){border-color:var( --slotted-radio-group-checked-active-border-color, var(--slotted-tone-accent-solid-active) )}[data-ui-radio-group] [data-part-control]: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-radio-group][data-part-root][data-invalid]{--slotted-focus-ring-color: var( --slotted-radio-group-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) )}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]{border-width:calc(var(--slotted-radio-group-border-width, var(--slotted-border-width-medium, 1.5px)) + var( --slotted-radio-group-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) ));border-color:var( --slotted-radio-group-invalid-border-color, var(--slotted-tone-danger-border) )}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]:checked{border-color:var( --slotted-radio-group-invalid-checked-border-color, var(--slotted-tone-danger-solid) )}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]:checked+[data-part-indicator]{color:var(--slotted-radio-group-invalid-mark-color, var(--slotted-tone-danger-solid))}[data-ui-radio-group][data-part-root][data-readonly] [data-part-control],[data-ui-radio-group][data-part-root][data-readonly] [data-part-label]{cursor:default}[data-ui-radio-group][data-part-root][data-readonly] [data-part-control]:not(:checked){background-color:var( --slotted-radio-group-readonly-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui-radio-group][data-part-root][data-disabled] [data-part-control],[data-ui-radio-group] [data-part-control]:disabled{background-color:var( --slotted-radio-group-disabled-background, var(--slotted-disabled-background) );border-color:var(--slotted-radio-group-disabled-border-color, var(--slotted-disabled-border));cursor:not-allowed}[data-ui-radio-group] [data-part-control]:disabled+[data-part-indicator]{color:var(--slotted-radio-group-disabled-mark-color, var(--slotted-disabled-foreground))}[data-ui-radio-group][data-part-root][data-disabled] [data-part-label],[data-ui-radio-group][data-part-root][data-disabled] [data-part-description],[data-ui-radio-group] [data-part-control]:disabled~[data-part-label],[data-ui-radio-group] [data-part-control]:disabled~[data-part-description]{color:var(--slotted-radio-group-disabled-color, var(--slotted-disabled-foreground));cursor:not-allowed}[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item]{--_description-gap: var( --slotted-radio-group-tile-description-gap, var(--slotted-space-2, .25rem) );--_tile-surface: var(--slotted-radio-group-tile-background, var(--slotted-surface, Canvas));--_tile-edge: var( --slotted-radio-group-tile-border-color, var(--slotted-control-border-color, ButtonBorder) );--_tile-edge-width: var(--slotted-control-border-width, 1px);background-color:var(--_tile-surface);border-radius:var(--slotted-radio-group-tile-radius, var(--slotted-radius-md, 6px));box-shadow:var(--slotted-control-shadow, none);cursor:pointer;padding:var(--_tile-inset);position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item]:before{border:calc(var(--_tile-edge-width) + var(--_tile-invalid-edge, 0px)) solid var(--_tile-edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute;transition:border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item] [data-part-label]:after{content:\"\";inset:0;position:absolute}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part-item]:has([data-part-control]:not(:disabled)):not(:has([data-part-control]:checked)):hover{--_tile-surface: var( --slotted-radio-group-tile-hover-background, var(--slotted-tone-accent-subtle-hover) );--_tile-edge: var( --slotted-radio-group-tile-hover-border-color, var(--slotted-tone-accent-border) )}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part-item]:has([data-part-control]:not(:disabled)):not(:has([data-part-control]:checked)):active{--_tile-surface: var( --slotted-radio-group-tile-active-background, var(--slotted-tone-accent-subtle-active) )}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]) [data-part-item]:has([data-part-control]:checked){--_tile-edge: var( --slotted-radio-group-tile-checked-border-color, var(--slotted-tone-accent-solid) );--_tile-edge-width: var(--slotted-border-width-thick, 2px)}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]) [data-part-item]:has([data-part-control]:checked){--_tile-surface: var( --slotted-radio-group-tile-checked-background, var(--slotted-tone-accent-surface) )}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part-item]:has([data-part-control]:checked:not(:disabled)):hover{--_tile-edge: var( --slotted-radio-group-tile-checked-hover-border-color, var(--slotted-tone-accent-solid-hover) )}[data-ui-radio-group][data-part-root][data-variant=tile][data-invalid] [data-part-item]{--_tile-edge: var( --slotted-radio-group-tile-invalid-border-color, var(--slotted-tone-danger-border) );--_tile-invalid-edge: var( --slotted-radio-group-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) )}[data-ui-radio-group][data-part-root][data-variant=tile][data-invalid] [data-part-item]:has([data-part-control]:checked){--_tile-surface: var( --slotted-radio-group-tile-invalid-checked-background, var(--slotted-tone-danger-surface) );--_tile-edge: var( --slotted-radio-group-tile-invalid-checked-border-color, var(--slotted-tone-danger-solid) )}[data-ui-radio-group][data-part-root][data-variant=tile][data-readonly] [data-part-item]{--_tile-surface: var( --slotted-radio-group-tile-readonly-background, var(--slotted-tone-secondary-subtle-hover) );--_tile-edge: var( --slotted-radio-group-tile-readonly-border-color, var(--slotted-border-strong) );cursor:default}[data-ui-radio-group][data-part-root][data-variant=tile][data-disabled] [data-part-item],[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item]:has([data-part-control]:disabled){--_tile-surface: var( --slotted-radio-group-tile-disabled-background, var(--slotted-disabled-background) );--_tile-edge: var( --slotted-radio-group-tile-disabled-border-color, var(--slotted-disabled-border) );box-shadow:none;cursor:not-allowed}[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item]:has([data-part-control]: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-radio-group][data-part-root][data-variant=tile] [data-part-control]:focus-visible{outline:none}@media(forced-colors:active){[data-ui-radio-group] [data-part-control]{background-color:Field;border-color:FieldText}[data-ui-radio-group] [data-part-control]:checked{background-color:Field;border-color:Highlight}[data-ui-radio-group] [data-part-control]:checked+[data-part-indicator]{color:Highlight}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]:checked{background-color:Field;border-color:CanvasText}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]:checked+[data-part-indicator]{color:Highlight}[data-ui-radio-group][data-part-root][data-variant=tile][data-invalid] [data-part-item],[data-ui-radio-group][data-part-root][data-variant=tile][data-invalid] [data-part-item]:has([data-part-control]:checked){--_tile-edge: CanvasText}[data-ui-radio-group] [data-part-control]:disabled{background-color:Field;border-color:GrayText}[data-ui-radio-group] [data-part-control]:disabled+[data-part-indicator]{color:GrayText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
277
277
  }
278
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlRadioGroup, decorators: [{
279
279
  type: Component,
@@ -282,7 +282,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
282
282
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlRadioGroup), multi: true },
283
283
  ], host: {
284
284
  'data-ui': 'radio-group',
285
+ 'data-ui-radio-group': '',
285
286
  'data-part': 'root',
287
+ 'data-part-root': '',
286
288
  '[attr.role]': 'resolvedRole()',
287
289
  '[attr.data-size]': 'resolvedSize()',
288
290
  '[attr.data-orientation]': 'resolvedOrientation()',
@@ -297,7 +299,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
297
299
  '[attr.aria-readonly]': 'ariaReadOnly()',
298
300
  '[attr.aria-required]': 'ariaRequired()',
299
301
  '[attr.aria-orientation]': 'ariaOrientation()',
300
- }, styles: ["@layer slotted.components{[data-ui=radio-group][data-part=root]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-md, 16px));--_font-size: var(--slotted-control-font-size-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_label-gap: var(--slotted-control-label-gap-md, 12px);--_line-height: var(--slotted-radio-group-line-height, var(--slotted-line-height-md, 1.5));--_halo-spread: calc(var(--_label-gap) / 2);--_target: var(--slotted-target-min, 24px);--_lift: calc((var(--_font-size) * var(--_line-height) - var(--_size)) / 2);--_description-gap: var(--slotted-space-3, .375rem);color:var(--slotted-radio-group-color, var(--slotted-text, CanvasText));display:flex;flex-direction:column;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--slotted-radio-group-gap, var(--_gap));line-height:var(--_line-height)}[data-ui=radio-group][data-part=root]:has([data-part=description]){row-gap:var(--slotted-radio-group-gap, calc(var(--_gap) * 2))}[data-ui=radio-group][data-part=root][data-orientation=horizontal]{flex-direction:row;flex-wrap:wrap;column-gap:calc(var(--_gap) * 2)}[data-ui=radio-group][data-part=root][data-size=sm]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-sm, 14px));--_font-size: var(--slotted-control-font-size-sm, 12px);--_gap: var(--slotted-control-gap-sm, 6px);--_label-gap: var(--slotted-control-label-gap-sm, 8px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-sm, 10px) )}[data-ui=radio-group][data-part=root][data-size=md]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-md, 16px));--_font-size: var(--slotted-control-font-size-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_label-gap: var(--slotted-control-label-gap-md, 12px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-md, 13px) )}[data-ui=radio-group][data-part=root][data-size=lg]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-lg, 18px));--_font-size: var(--slotted-control-font-size-lg, 14px);--_gap: var(--slotted-control-gap-lg, 8px);--_label-gap: var(--slotted-control-label-gap-lg, 12px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-lg, 16px) )}[data-ui=radio-group] [data-part=item]{align-content:start;display:grid;grid-template-columns:auto minmax(0,1fr);isolation:isolate;position:relative}[data-ui=radio-group][data-part=root]{--_direction: ltr}[data-ui=radio-group][data-part=root]:dir(rtl){--_direction: rtl}[data-ui=radio-group] [data-part=control]{appearance:none;background-color:var(--slotted-radio-group-background, var(--slotted-surface, Canvas));border:var(--slotted-radio-group-border-width, var(--slotted-border-width-medium, 1.5px)) solid var(--slotted-radio-group-border-color, var(--slotted-border-strong, ButtonBorder));border-radius:var(--slotted-radius-full, 9999px);block-size:var(--_size);box-sizing:border-box;cursor:pointer;grid-area:1 / 1;inline-size:var(--_size);margin:0;margin-block-start:var(--_lift);transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=radio-group] [data-part=indicator]{--slotted-icon-size: var(--_size);block-size:var(--_size);color:var(--slotted-radio-group-mark-color, var(--slotted-tone-accent-solid));display:flex;grid-area:1 / 1;inline-size:var(--_size);margin-block-start:var(--_lift);opacity:0;pointer-events:none;scale:.6;transition:opacity var(--slotted-duration-medium) var(--slotted-control-transition-easing),scale var(--slotted-duration-medium) var(--slotted-control-transition-easing)}[data-ui=radio-group] [data-part=control]:checked+[data-part=indicator]{opacity:1;scale:1}[data-ui=radio-group] [data-part=label]{cursor:pointer;grid-column:2;grid-row:1;overflow-wrap:anywhere}[data-ui=radio-group] [data-part=item]:has(>[data-part=label]){column-gap:var(--_label-gap)}[data-ui=radio-group][data-part=root]:not([data-variant=tile]) [data-part=label]{justify-self:start;position:relative}[data-ui=radio-group][data-part=root]:not([data-variant=tile]) [data-part=label]:before{block-size:var(--_target);content:\"\";direction:var(--_direction);inline-size:var(--_target);inset-block-start:calc(var(--_lift) + var(--_size) - var(--_target));inset-inline-start:calc((var(--_size) - var(--_target)) / 2 - var(--_size) - var(--_label-gap));position:absolute;z-index:-1}[data-ui=radio-group][data-part=root]:not([data-variant=tile]) [data-part=label]:after{background-color:var(--slotted-radio-group-halo-color, var(--slotted-tone-accent-text));border-radius:calc(var(--_size) / 2 + var(--_halo-spread));content:\"\";direction:var(--_direction);inset-block:calc(var(--_lift) - var(--_halo-spread));inset-inline-end:calc(-1.5 * var(--_halo-spread));inset-inline-start:calc(-1 * (var(--_size) + var(--_label-gap) + var(--_halo-spread)));opacity:0;position:absolute;transition:opacity var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);z-index:-1}[data-ui=radio-group][data-part=root]:not([data-variant=tile]) [data-part=label]:empty:after{inset-inline-end:calc(var(--_label-gap) - var(--_halo-spread))}[data-ui=radio-group] [data-part=description]{color:var(--slotted-radio-group-description-color, var(--slotted-text-muted, GrayText));font-size:var( --slotted-radio-group-description-font-size, var(--slotted-font-size-xs, .75rem) );grid-column:2;grid-row:2;line-height:var(--slotted-line-height-xs, 1.4);margin:0;overflow-wrap:anywhere;padding-block-start:var(--_description-gap)}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=item]{grid-template-columns:minmax(0,1fr) auto}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=control],[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=indicator]{grid-area:1 / 2}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=label],[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=description]{grid-column:1}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=label]{justify-self:stretch}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=label]:before{inset-inline-end:calc(-1 * (var(--_size) + var(--_label-gap)));inset-inline-start:auto}[data-ui=radio-group][data-part=root][data-label-placement=start] [data-part=label]:after{inset-inline-end:calc(-1 * (var(--_size) + var(--_label-gap) + var(--_halo-spread)));inset-inline-start:calc(-1.5 * var(--_halo-spread))}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:hover:not(:disabled){border-color:var(--slotted-radio-group-hover-border-color, var(--slotted-tone-accent-border))}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:hover:not(:disabled)~[data-part=label]:after,[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:not(:disabled)~[data-part=label]:hover:after{opacity:var(--slotted-selection-halo-opacity, .12)}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:active:not(:disabled){background-color:var( --slotted-radio-group-active-background, var(--slotted-tone-accent-subtle-active) )}[data-ui=radio-group] [data-part=control]:checked{border-color:var(--slotted-radio-group-checked-border-color, var(--slotted-tone-accent-solid))}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:checked:hover:not(:disabled){border-color:var( --slotted-radio-group-checked-hover-border-color, var(--slotted-tone-accent-solid-hover) )}[data-ui=radio-group][data-part=root]:not([data-readonly]) [data-part=control]:checked:active:not(:disabled){border-color:var( --slotted-radio-group-checked-active-border-color, var(--slotted-tone-accent-solid-active) )}[data-ui=radio-group] [data-part=control]: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=radio-group][data-part=root][data-invalid]{--slotted-focus-ring-color: var( --slotted-radio-group-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) )}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]{border-width:calc(var(--slotted-radio-group-border-width, var(--slotted-border-width-medium, 1.5px)) + var( --slotted-radio-group-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) ));border-color:var( --slotted-radio-group-invalid-border-color, var(--slotted-tone-danger-border) )}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]:checked{border-color:var( --slotted-radio-group-invalid-checked-border-color, var(--slotted-tone-danger-solid) )}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]:checked+[data-part=indicator]{color:var(--slotted-radio-group-invalid-mark-color, var(--slotted-tone-danger-solid))}[data-ui=radio-group][data-part=root][data-readonly] [data-part=control],[data-ui=radio-group][data-part=root][data-readonly] [data-part=label]{cursor:default}[data-ui=radio-group][data-part=root][data-readonly] [data-part=control]:not(:checked){background-color:var( --slotted-radio-group-readonly-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui=radio-group][data-part=root][data-disabled] [data-part=control],[data-ui=radio-group] [data-part=control]:disabled{background-color:var( --slotted-radio-group-disabled-background, var(--slotted-disabled-background) );border-color:var(--slotted-radio-group-disabled-border-color, var(--slotted-disabled-border));cursor:not-allowed}[data-ui=radio-group] [data-part=control]:disabled+[data-part=indicator]{color:var(--slotted-radio-group-disabled-mark-color, var(--slotted-disabled-foreground))}[data-ui=radio-group][data-part=root][data-disabled] [data-part=label],[data-ui=radio-group][data-part=root][data-disabled] [data-part=description],[data-ui=radio-group] [data-part=control]:disabled~[data-part=label],[data-ui=radio-group] [data-part=control]:disabled~[data-part=description]{color:var(--slotted-radio-group-disabled-color, var(--slotted-disabled-foreground));cursor:not-allowed}[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item]{--_description-gap: var( --slotted-radio-group-tile-description-gap, var(--slotted-space-2, .25rem) );--_tile-surface: var(--slotted-radio-group-tile-background, var(--slotted-surface, Canvas));--_tile-edge: var( --slotted-radio-group-tile-border-color, var(--slotted-control-border-color, ButtonBorder) );--_tile-edge-width: var(--slotted-control-border-width, 1px);background-color:var(--_tile-surface);border-radius:var(--slotted-radio-group-tile-radius, var(--slotted-radius-md, 6px));box-shadow:var(--slotted-control-shadow, none);cursor:pointer;padding:var(--_tile-inset);position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item]:before{border:calc(var(--_tile-edge-width) + var(--_tile-invalid-edge, 0px)) solid var(--_tile-edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute;transition:border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item] [data-part=label]:after{content:\"\";inset:0;position:absolute}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part=item]:has([data-part=control]:not(:disabled)):not(:has([data-part=control]:checked)):hover{--_tile-surface: var( --slotted-radio-group-tile-hover-background, var(--slotted-tone-accent-subtle-hover) );--_tile-edge: var( --slotted-radio-group-tile-hover-border-color, var(--slotted-tone-accent-border) )}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part=item]:has([data-part=control]:not(:disabled)):not(:has([data-part=control]:checked)):active{--_tile-surface: var( --slotted-radio-group-tile-active-background, var(--slotted-tone-accent-subtle-active) )}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]) [data-part=item]:has([data-part=control]:checked){--_tile-edge: var( --slotted-radio-group-tile-checked-border-color, var(--slotted-tone-accent-solid) );--_tile-edge-width: var(--slotted-border-width-thick, 2px)}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]) [data-part=item]:has([data-part=control]:checked){--_tile-surface: var( --slotted-radio-group-tile-checked-background, var(--slotted-tone-accent-surface) )}[data-ui=radio-group][data-part=root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part=item]:has([data-part=control]:checked:not(:disabled)):hover{--_tile-edge: var( --slotted-radio-group-tile-checked-hover-border-color, var(--slotted-tone-accent-solid-hover) )}[data-ui=radio-group][data-part=root][data-variant=tile][data-invalid] [data-part=item]{--_tile-edge: var( --slotted-radio-group-tile-invalid-border-color, var(--slotted-tone-danger-border) );--_tile-invalid-edge: var( --slotted-radio-group-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) )}[data-ui=radio-group][data-part=root][data-variant=tile][data-invalid] [data-part=item]:has([data-part=control]:checked){--_tile-surface: var( --slotted-radio-group-tile-invalid-checked-background, var(--slotted-tone-danger-surface) );--_tile-edge: var( --slotted-radio-group-tile-invalid-checked-border-color, var(--slotted-tone-danger-solid) )}[data-ui=radio-group][data-part=root][data-variant=tile][data-readonly] [data-part=item]{--_tile-surface: var( --slotted-radio-group-tile-readonly-background, var(--slotted-tone-secondary-subtle-hover) );--_tile-edge: var( --slotted-radio-group-tile-readonly-border-color, var(--slotted-border-strong) );cursor:default}[data-ui=radio-group][data-part=root][data-variant=tile][data-disabled] [data-part=item],[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item]:has([data-part=control]:disabled){--_tile-surface: var( --slotted-radio-group-tile-disabled-background, var(--slotted-disabled-background) );--_tile-edge: var( --slotted-radio-group-tile-disabled-border-color, var(--slotted-disabled-border) );box-shadow:none;cursor:not-allowed}[data-ui=radio-group][data-part=root][data-variant=tile] [data-part=item]:has([data-part=control]: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=radio-group][data-part=root][data-variant=tile] [data-part=control]:focus-visible{outline:none}@media(forced-colors:active){[data-ui=radio-group] [data-part=control]{background-color:Field;border-color:FieldText}[data-ui=radio-group] [data-part=control]:checked{background-color:Field;border-color:Highlight}[data-ui=radio-group] [data-part=control]:checked+[data-part=indicator]{color:Highlight}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]:checked{background-color:Field;border-color:CanvasText}[data-ui=radio-group][data-part=root][data-invalid] [data-part=control]:checked+[data-part=indicator]{color:Highlight}[data-ui=radio-group][data-part=root][data-variant=tile][data-invalid] [data-part=item],[data-ui=radio-group][data-part=root][data-variant=tile][data-invalid] [data-part=item]:has([data-part=control]:checked){--_tile-edge: CanvasText}[data-ui=radio-group] [data-part=control]:disabled{background-color:Field;border-color:GrayText}[data-ui=radio-group] [data-part=control]:disabled+[data-part=indicator]{color:GrayText}}}\n"] }]
302
+ }, styles: ["@layer slotted.components{[data-ui-radio-group][data-part-root]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-md, 16px));--_font-size: var(--slotted-control-font-size-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_label-gap: var(--slotted-control-label-gap-md, 12px);--_line-height: var(--slotted-radio-group-line-height, var(--slotted-line-height-md, 1.5));--_halo-spread: calc(var(--_label-gap) / 2);--_target: var(--slotted-target-min, 24px);--_lift: calc((var(--_font-size) * var(--_line-height) - var(--_size)) / 2);--_description-gap: var(--slotted-space-3, .375rem);color:var(--slotted-radio-group-color, var(--slotted-text, CanvasText));display:flex;flex-direction:column;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--slotted-radio-group-gap, var(--_gap));line-height:var(--_line-height)}[data-ui-radio-group][data-part-root]:has([data-part-description]){row-gap:var(--slotted-radio-group-gap, calc(var(--_gap) * 2))}[data-ui-radio-group][data-part-root][data-orientation=horizontal]{flex-direction:row;flex-wrap:wrap;column-gap:calc(var(--_gap) * 2)}[data-ui-radio-group][data-part-root][data-size=sm]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-sm, 14px));--_font-size: var(--slotted-control-font-size-sm, 12px);--_gap: var(--slotted-control-gap-sm, 6px);--_label-gap: var(--slotted-control-label-gap-sm, 8px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-sm, 10px) )}[data-ui-radio-group][data-part-root][data-size=md]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-md, 16px));--_font-size: var(--slotted-control-font-size-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_label-gap: var(--slotted-control-label-gap-md, 12px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-md, 13px) )}[data-ui-radio-group][data-part-root][data-size=lg]{--_size: var(--slotted-radio-group-size, var(--slotted-selection-size-lg, 18px));--_font-size: var(--slotted-control-font-size-lg, 14px);--_gap: var(--slotted-control-gap-lg, 8px);--_label-gap: var(--slotted-control-label-gap-lg, 12px);--_tile-inset: var( --slotted-radio-group-tile-inset, var(--slotted-control-padding-inline-lg, 16px) )}[data-ui-radio-group] [data-part-item]{align-content:start;display:grid;grid-template-columns:auto minmax(0,1fr);isolation:isolate;position:relative}[data-ui-radio-group][data-part-root]{--_direction: ltr}[data-ui-radio-group][data-part-root]:dir(rtl){--_direction: rtl}[data-ui-radio-group] [data-part-control]{appearance:none;background-color:var(--slotted-radio-group-background, var(--slotted-surface, Canvas));border:var(--slotted-radio-group-border-width, var(--slotted-border-width-medium, 1.5px)) solid var(--slotted-radio-group-border-color, var(--slotted-border-strong, ButtonBorder));border-radius:var(--slotted-radius-full, 9999px);block-size:var(--_size);box-sizing:border-box;cursor:pointer;grid-area:1 / 1;inline-size:var(--_size);margin:0;margin-block-start:var(--_lift);transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-radio-group] [data-part-indicator]{--slotted-icon-size: var(--_size);block-size:var(--_size);color:var(--slotted-radio-group-mark-color, var(--slotted-tone-accent-solid));display:flex;grid-area:1 / 1;inline-size:var(--_size);margin-block-start:var(--_lift);opacity:0;pointer-events:none;scale:.6;transition:opacity var(--slotted-duration-medium) var(--slotted-control-transition-easing),scale var(--slotted-duration-medium) var(--slotted-control-transition-easing)}[data-ui-radio-group] [data-part-control]:checked+[data-part-indicator]{opacity:1;scale:1}[data-ui-radio-group] [data-part-label]{cursor:pointer;grid-column:2;grid-row:1;overflow-wrap:anywhere}[data-ui-radio-group] [data-part-item]:has(>[data-part-label]){column-gap:var(--_label-gap)}[data-ui-radio-group][data-part-root]:not([data-variant=tile]) [data-part-label]{justify-self:start;position:relative}[data-ui-radio-group][data-part-root]:not([data-variant=tile]) [data-part-label]:before{block-size:var(--_target);content:\"\";direction:var(--_direction);inline-size:var(--_target);inset-block-start:calc(var(--_lift) + var(--_size) - var(--_target));inset-inline-start:calc((var(--_size) - var(--_target)) / 2 - var(--_size) - var(--_label-gap));position:absolute;z-index:-1}[data-ui-radio-group][data-part-root]:not([data-variant=tile]) [data-part-label]:after{background-color:var(--slotted-radio-group-halo-color, var(--slotted-tone-accent-text));border-radius:calc(var(--_size) / 2 + var(--_halo-spread));content:\"\";direction:var(--_direction);inset-block:calc(var(--_lift) - var(--_halo-spread));inset-inline-end:calc(-1.5 * var(--_halo-spread));inset-inline-start:calc(-1 * (var(--_size) + var(--_label-gap) + var(--_halo-spread)));opacity:0;position:absolute;transition:opacity var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);z-index:-1}[data-ui-radio-group][data-part-root]:not([data-variant=tile]) [data-part-label]:empty:after{inset-inline-end:calc(var(--_label-gap) - var(--_halo-spread))}[data-ui-radio-group] [data-part-description]{color:var(--slotted-radio-group-description-color, var(--slotted-text-muted, GrayText));font-size:var( --slotted-radio-group-description-font-size, var(--slotted-font-size-xs, .75rem) );grid-column:2;grid-row:2;line-height:var(--slotted-line-height-xs, 1.4);margin:0;overflow-wrap:anywhere;padding-block-start:var(--_description-gap)}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-item]{grid-template-columns:minmax(0,1fr) auto}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-control],[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-indicator]{grid-area:1 / 2}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-label],[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-description]{grid-column:1}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-label]{justify-self:stretch}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-label]:before{inset-inline-end:calc(-1 * (var(--_size) + var(--_label-gap)));inset-inline-start:auto}[data-ui-radio-group][data-part-root][data-label-placement=start] [data-part-label]:after{inset-inline-end:calc(-1 * (var(--_size) + var(--_label-gap) + var(--_halo-spread)));inset-inline-start:calc(-1.5 * var(--_halo-spread))}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:hover:not(:disabled){border-color:var(--slotted-radio-group-hover-border-color, var(--slotted-tone-accent-border))}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:hover:not(:disabled)~[data-part-label]:after,[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:not(:disabled)~[data-part-label]:hover:after{opacity:var(--slotted-selection-halo-opacity, .12)}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:active:not(:disabled){background-color:var( --slotted-radio-group-active-background, var(--slotted-tone-accent-subtle-active) )}[data-ui-radio-group] [data-part-control]:checked{border-color:var(--slotted-radio-group-checked-border-color, var(--slotted-tone-accent-solid))}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:checked:hover:not(:disabled){border-color:var( --slotted-radio-group-checked-hover-border-color, var(--slotted-tone-accent-solid-hover) )}[data-ui-radio-group][data-part-root]:not([data-readonly]) [data-part-control]:checked:active:not(:disabled){border-color:var( --slotted-radio-group-checked-active-border-color, var(--slotted-tone-accent-solid-active) )}[data-ui-radio-group] [data-part-control]: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-radio-group][data-part-root][data-invalid]{--slotted-focus-ring-color: var( --slotted-radio-group-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) )}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]{border-width:calc(var(--slotted-radio-group-border-width, var(--slotted-border-width-medium, 1.5px)) + var( --slotted-radio-group-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) ));border-color:var( --slotted-radio-group-invalid-border-color, var(--slotted-tone-danger-border) )}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]:checked{border-color:var( --slotted-radio-group-invalid-checked-border-color, var(--slotted-tone-danger-solid) )}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]:checked+[data-part-indicator]{color:var(--slotted-radio-group-invalid-mark-color, var(--slotted-tone-danger-solid))}[data-ui-radio-group][data-part-root][data-readonly] [data-part-control],[data-ui-radio-group][data-part-root][data-readonly] [data-part-label]{cursor:default}[data-ui-radio-group][data-part-root][data-readonly] [data-part-control]:not(:checked){background-color:var( --slotted-radio-group-readonly-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui-radio-group][data-part-root][data-disabled] [data-part-control],[data-ui-radio-group] [data-part-control]:disabled{background-color:var( --slotted-radio-group-disabled-background, var(--slotted-disabled-background) );border-color:var(--slotted-radio-group-disabled-border-color, var(--slotted-disabled-border));cursor:not-allowed}[data-ui-radio-group] [data-part-control]:disabled+[data-part-indicator]{color:var(--slotted-radio-group-disabled-mark-color, var(--slotted-disabled-foreground))}[data-ui-radio-group][data-part-root][data-disabled] [data-part-label],[data-ui-radio-group][data-part-root][data-disabled] [data-part-description],[data-ui-radio-group] [data-part-control]:disabled~[data-part-label],[data-ui-radio-group] [data-part-control]:disabled~[data-part-description]{color:var(--slotted-radio-group-disabled-color, var(--slotted-disabled-foreground));cursor:not-allowed}[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item]{--_description-gap: var( --slotted-radio-group-tile-description-gap, var(--slotted-space-2, .25rem) );--_tile-surface: var(--slotted-radio-group-tile-background, var(--slotted-surface, Canvas));--_tile-edge: var( --slotted-radio-group-tile-border-color, var(--slotted-control-border-color, ButtonBorder) );--_tile-edge-width: var(--slotted-control-border-width, 1px);background-color:var(--_tile-surface);border-radius:var(--slotted-radio-group-tile-radius, var(--slotted-radius-md, 6px));box-shadow:var(--slotted-control-shadow, none);cursor:pointer;padding:var(--_tile-inset);position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item]:before{border:calc(var(--_tile-edge-width) + var(--_tile-invalid-edge, 0px)) solid var(--_tile-edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute;transition:border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item] [data-part-label]:after{content:\"\";inset:0;position:absolute}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part-item]:has([data-part-control]:not(:disabled)):not(:has([data-part-control]:checked)):hover{--_tile-surface: var( --slotted-radio-group-tile-hover-background, var(--slotted-tone-accent-subtle-hover) );--_tile-edge: var( --slotted-radio-group-tile-hover-border-color, var(--slotted-tone-accent-border) )}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part-item]:has([data-part-control]:not(:disabled)):not(:has([data-part-control]:checked)):active{--_tile-surface: var( --slotted-radio-group-tile-active-background, var(--slotted-tone-accent-subtle-active) )}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]) [data-part-item]:has([data-part-control]:checked){--_tile-edge: var( --slotted-radio-group-tile-checked-border-color, var(--slotted-tone-accent-solid) );--_tile-edge-width: var(--slotted-border-width-thick, 2px)}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]) [data-part-item]:has([data-part-control]:checked){--_tile-surface: var( --slotted-radio-group-tile-checked-background, var(--slotted-tone-accent-surface) )}[data-ui-radio-group][data-part-root][data-variant=tile]:not([data-readonly]):not([data-disabled]) [data-part-item]:has([data-part-control]:checked:not(:disabled)):hover{--_tile-edge: var( --slotted-radio-group-tile-checked-hover-border-color, var(--slotted-tone-accent-solid-hover) )}[data-ui-radio-group][data-part-root][data-variant=tile][data-invalid] [data-part-item]{--_tile-edge: var( --slotted-radio-group-tile-invalid-border-color, var(--slotted-tone-danger-border) );--_tile-invalid-edge: var( --slotted-radio-group-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) )}[data-ui-radio-group][data-part-root][data-variant=tile][data-invalid] [data-part-item]:has([data-part-control]:checked){--_tile-surface: var( --slotted-radio-group-tile-invalid-checked-background, var(--slotted-tone-danger-surface) );--_tile-edge: var( --slotted-radio-group-tile-invalid-checked-border-color, var(--slotted-tone-danger-solid) )}[data-ui-radio-group][data-part-root][data-variant=tile][data-readonly] [data-part-item]{--_tile-surface: var( --slotted-radio-group-tile-readonly-background, var(--slotted-tone-secondary-subtle-hover) );--_tile-edge: var( --slotted-radio-group-tile-readonly-border-color, var(--slotted-border-strong) );cursor:default}[data-ui-radio-group][data-part-root][data-variant=tile][data-disabled] [data-part-item],[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item]:has([data-part-control]:disabled){--_tile-surface: var( --slotted-radio-group-tile-disabled-background, var(--slotted-disabled-background) );--_tile-edge: var( --slotted-radio-group-tile-disabled-border-color, var(--slotted-disabled-border) );box-shadow:none;cursor:not-allowed}[data-ui-radio-group][data-part-root][data-variant=tile] [data-part-item]:has([data-part-control]: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-radio-group][data-part-root][data-variant=tile] [data-part-control]:focus-visible{outline:none}@media(forced-colors:active){[data-ui-radio-group] [data-part-control]{background-color:Field;border-color:FieldText}[data-ui-radio-group] [data-part-control]:checked{background-color:Field;border-color:Highlight}[data-ui-radio-group] [data-part-control]:checked+[data-part-indicator]{color:Highlight}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]:checked{background-color:Field;border-color:CanvasText}[data-ui-radio-group][data-part-root][data-invalid] [data-part-control]:checked+[data-part-indicator]{color:Highlight}[data-ui-radio-group][data-part-root][data-variant=tile][data-invalid] [data-part-item],[data-ui-radio-group][data-part-root][data-variant=tile][data-invalid] [data-part-item]:has([data-part-control]:checked){--_tile-edge: CanvasText}[data-ui-radio-group] [data-part-control]:disabled{background-color:Field;border-color:GrayText}[data-ui-radio-group] [data-part-control]:disabled+[data-part-indicator]{color:GrayText}}}\n"] }]
301
303
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], labelPlacement: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPlacement", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
302
304
 
303
305
  /**
@@ -311,7 +313,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
311
313
  class SlRadioDescription {
312
314
  id = `${inject(SlRadioGroupIdFactory).next()}-description`;
313
315
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlRadioDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
314
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlRadioDescription, isStandalone: true, selector: "[slRadioDescription]", host: { attributes: { "data-part": "description" }, properties: { "attr.id": "id" } }, exportAs: ["slRadioDescription"], ngImport: i0 });
316
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlRadioDescription, isStandalone: true, selector: "[slRadioDescription]", host: { attributes: { "data-part": "description", "data-part-description": "" }, properties: { "attr.id": "id" } }, exportAs: ["slRadioDescription"], ngImport: i0 });
315
317
  }
316
318
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlRadioDescription, decorators: [{
317
319
  type: Directive,
@@ -321,6 +323,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
321
323
  exportAs: 'slRadioDescription',
322
324
  host: {
323
325
  'data-part': 'description',
326
+ 'data-part-description': '',
324
327
  '[attr.id]': 'id',
325
328
  },
326
329
  }]
@@ -407,9 +410,10 @@ class SlRadio {
407
410
  this.group.markTouched();
408
411
  }
409
412
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlRadio, deps: [], target: i0.ɵɵFactoryTarget.Component });
410
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.7", type: SlRadio, isStandalone: true, selector: "[slRadio]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "item" }, properties: { "attr.data-checked": "checked() ? '' : null", "attr.data-disabled": "resolvedDisabled() === true ? '' : null" } }, queries: [{ propertyName: "description", first: true, predicate: SlRadioDescription, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "element", first: true, predicate: ["control"], descendants: true, isSignal: true }], exportAs: ["slRadio"], ngImport: i0, template: `<input
413
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.7", type: SlRadio, isStandalone: true, selector: "[slRadio]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "item", "data-part-item": "" }, properties: { "attr.data-checked": "checked() ? '' : null", "attr.data-disabled": "resolvedDisabled() === true ? '' : null" } }, queries: [{ propertyName: "description", first: true, predicate: SlRadioDescription, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "element", first: true, predicate: ["control"], descendants: true, isSignal: true }], exportAs: ["slRadio"], ngImport: i0, template: `<input
411
414
  #control
412
415
  data-part="control"
416
+ data-part-control=""
413
417
  type="radio"
414
418
  [attr.id]="controlId"
415
419
  [attr.name]="group.resolvedName()"
@@ -420,10 +424,10 @@ class SlRadio {
420
424
  (click)="onClick($event)"
421
425
  (blur)="onBlur()"
422
426
  />
423
- <span data-part="indicator"
427
+ <span data-part="indicator" data-part-indicator=""
424
428
  ><span slIcon><svg slGlyph name="dot"></svg></span
425
429
  ></span>
426
- <label data-part="label" [attr.for]="controlId"><ng-content /></label>
430
+ <label data-part="label" data-part-label="" [attr.for]="controlId"><ng-content /></label>
427
431
  <ng-content select="[slRadioDescription]" />`, 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 });
428
432
  }
429
433
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlRadio, decorators: [{
@@ -436,6 +440,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
436
440
  template: `<input
437
441
  #control
438
442
  data-part="control"
443
+ data-part-control=""
439
444
  type="radio"
440
445
  [attr.id]="controlId"
441
446
  [attr.name]="group.resolvedName()"
@@ -446,15 +451,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
446
451
  (click)="onClick($event)"
447
452
  (blur)="onBlur()"
448
453
  />
449
- <span data-part="indicator"
454
+ <span data-part="indicator" data-part-indicator=""
450
455
  ><span slIcon><svg slGlyph name="dot"></svg></span
451
456
  ></span>
452
- <label data-part="label" [attr.for]="controlId"><ng-content /></label>
457
+ <label data-part="label" data-part-label="" [attr.for]="controlId"><ng-content /></label>
453
458
  <ng-content select="[slRadioDescription]" />`,
454
459
  changeDetection: ChangeDetectionStrategy.OnPush,
455
460
  encapsulation: ViewEncapsulation.None,
456
461
  host: {
457
462
  'data-part': 'item',
463
+ 'data-part-item': '',
458
464
  '[attr.data-checked]': "checked() ? '' : null",
459
465
  '[attr.data-disabled]': "resolvedDisabled() === true ? '' : null",
460
466
  },
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-radio-group.mjs","sources":["../../radio-group/src/radio-group-defaults.ts","../../radio-group/src/radio-group.ts","../../radio-group/src/radio-group-parts.ts","../../radio-group/src/slotted-angular-radio-group.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the group and every item inside it sit at. */\nexport type RadioGroupSize = 'sm' | 'md' | 'lg';\n\n/** How the choices flow. `horizontal` wraps; a set of options is not a scroll region. */\nexport type RadioGroupOrientation = 'vertical' | 'horizontal';\n\n/**\n * Whether the choice is a box beside a line of text or a framed surface whose\n * whole area is the target. `tile` is the name Carbon and Cloudscape give the\n * framed choice; Mantine and Chakra call it a card, which is a family here.\n */\nexport type RadioGroupVariant = 'plain' | 'tile';\n\n/**\n * Which side of its own label the circle is on. It is never inherited from a\n * `field`: that family's `labelPlacement` answers where a field's label sits\n * relative to its control, and a radio's label is its own.\n */\nexport type RadioGroupLabelPlacement = 'end' | 'start';\n\nexport interface RadioGroupDefaults {\n labelPlacement: RadioGroupLabelPlacement;\n variant: RadioGroupVariant;\n orientation: RadioGroupOrientation;\n size: RadioGroupSize;\n}\n\nconst FALLBACK: RadioGroupDefaults = {\n labelPlacement: 'end',\n orientation: 'vertical',\n size: 'md',\n variant: 'plain',\n};\n\nexport const RADIO_GROUP_DEFAULTS = new InjectionToken<RadioGroupDefaults>(\n 'slotted radio group defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once how its sets of choices flow, rather than\n * repeating the same inputs on every group in a form. A group that states any\n * of them itself still wins, and a field around it outranks this token for\n * `size`.\n */\nexport function provideRadioGroupDefaults(defaults: Partial<RadioGroupDefaults>) {\n return {\n provide: RADIO_GROUP_DEFAULTS,\n useFactory: (): RadioGroupDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a radio group renders as here, before it states anything of its own. */\nexport function injectRadioGroupDefaults(): RadioGroupDefaults {\n return inject(RADIO_GROUP_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 * It answers for the group's generated `name` as well as for each item's\n * identifier, because both have to be stable across the two renders.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlRadioGroupIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-radio-group-${this.count}`;\n }\n}\n","import { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { injectFieldDefaults, SlField, SlFieldDefaultsSource } from '@slotted/angular/field';\nimport { SlFieldGroup } from '@slotted/angular/field-group';\n\nimport { injectRadioGroupDefaults, SlRadioGroupIdFactory } from './radio-group-defaults';\nimport type {\n RadioGroupLabelPlacement,\n RadioGroupVariant,\n RadioGroupOrientation,\n RadioGroupSize,\n} from './radio-group-defaults';\n\nexport type {\n RadioGroupDefaults,\n RadioGroupLabelPlacement,\n RadioGroupVariant,\n RadioGroupOrientation,\n RadioGroupSize,\n} from './radio-group-defaults';\n\n/** Why the value moved. A radio group can produce exactly these two. */\nexport type RadioGroupSelectionReason = 'pointer' | 'keyboard';\n\n/**\n * What the group needs from each item, and nothing more.\n *\n * A structural type rather than the item's class, so the group does not import\n * the component that injects it — the cycle `text-field` breaks with an\n * abstract class, broken here with the smaller thing that works.\n */\nexport interface SlRadioGroupItem {\n /** Writes this item's element from the group's value. */\n syncElement(): void;\n}\n\n/**\n * One choice out of a set.\n *\n * **The keyboard is the platform's, and that is why the items share a `name`.**\n * Native radios in one form owner with one name already implement the APG's\n * whole table: Tab lands on the checked item or on the first, `Space` checks,\n * both arrow axes move focus and selection together, the set wraps, and\n * disabled items are skipped — in a right-to-left document too. A roving\n * `tabindex` written once per binding would reimplement all of it twice.\n *\n * **The role is conditional, and the condition is the field group.** A\n * `field-group` is a `fieldset` with a `legend`, which is already a named group;\n * a `radiogroup` inside it, named by the same legend, is the same set announced\n * twice. A `role` the consumer wrote wins over both.\n *\n * **`readOnly` is enforced, because the platform has none.** A radio ignores\n * `readonly`, so the group refuses the change on the item's own `click` — the\n * one event a pointer and `Space` share — and announces `aria-readonly`.\n */\n@Component({\n selector: '[slRadioGroup]',\n standalone: true,\n exportAs: 'slRadioGroup',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/radio-group/radio-group.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlRadioGroup), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlRadioGroup), multi: true },\n ],\n host: {\n 'data-ui': 'radio-group',\n 'data-part': 'root',\n '[attr.role]': 'resolvedRole()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-label-placement]': 'resolvedLabelPlacement()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-invalid]': 'ariaInvalid()',\n '[attr.aria-readonly]': 'ariaReadOnly()',\n '[attr.aria-required]': 'ariaRequired()',\n '[attr.aria-orientation]': 'ariaOrientation()',\n },\n})\nexport class SlRadioGroup implements ControlValueAccessor, OnInit, Validator {\n /** Present means the consumer owns the choice. */\n readonly value = input<string | undefined>(undefined);\n /** The value an uncontrolled group starts from, read once. */\n readonly defaultValue = input<string | undefined>(undefined);\n /**\n * The submission name the set shares, and the reason the platform treats it\n * as one group. Generated when it is not written, because grouping is by name\n * within the form owner and an unnamed set is not a set.\n */\n readonly name = input<string | undefined>(undefined);\n readonly size = input<RadioGroupSize | undefined>(undefined);\n readonly orientation = input<RadioGroupOrientation | undefined>(undefined);\n readonly labelPlacement = input<RadioGroupLabelPlacement | undefined>(undefined);\n readonly variant = input<RadioGroupVariant | undefined>(undefined);\n /** Unstated rather than `false`, so the group defers to the field around it. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly required = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * One output for one transition. Its `previous` is `undefined` while nothing\n * has been chosen, which is the state the APG asks a group to start in and\n * which a request typed over `string` alone could not say.\n */\n readonly valueChange = output<ChangeRequest<string | undefined>>();\n\n private readonly field = inject(SlField, { optional: true });\n private readonly fieldGroup = inject(SlFieldGroup, { optional: true });\n private readonly defaults = injectRadioGroupDefaults();\n /**\n * The field defaults in force: a field group's, or the application's own.\n * A group outside a field reads disabled and read-only from them, as React's\n * reads them from FieldDefaultsProvider.\n */\n private readonly fieldDefaultsSource = inject(SlFieldDefaultsSource, { optional: true });\n private readonly fieldDefaultsToken = injectFieldDefaults();\n private readonly fieldDefaults = computed(\n () => this.fieldDefaultsSource?.fieldDefaults() ?? this.fieldDefaultsToken,\n );\n private readonly generatedName = inject(SlRadioGroupIdFactory).next();\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n private readonly items = new Set<SlRadioGroupItem>();\n private readonly own = signal<string | undefined>(undefined);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n private onChangeFn: (value: string) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n\n readonly selection = computed(() => this.value() ?? this.own());\n readonly resolvedName = computed(() => this.name() ?? this.generatedName);\n\n readonly resolvedSize = computed(\n () =>\n this.size() ??\n this.field?.resolvedSize() ??\n this.fieldGroup?.resolvedSize() ??\n this.defaults.size,\n );\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedLabelPlacement = computed(\n () => this.labelPlacement() ?? this.defaults.labelPlacement,\n );\n /** Handed to every choice in the set: one plain box among four tiles is a\n set nobody meant to write. */\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ??\n this.formDisabled() ??\n this.field?.resolvedDisabled() ??\n this.fieldDefaults().disabled,\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.field?.resolvedReadOnly() ?? this.fieldDefaults().readOnly,\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.field?.invalid() ?? this.fieldGroup?.invalid(),\n );\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.fieldGroup?.required(),\n );\n\n protected readonly resolvedRole = computed(\n () => this.writtenRole ?? (this.fieldGroup === null ? 'radiogroup' : null),\n );\n /* A group has no element a label's for can reach, so inside a field the\n field's label names it, unless the consumer named it themselves. */\n protected readonly labelledBy = computed(\n () =>\n this.writtenLabelledBy ??\n (this.writtenLabel === null ? (this.field?.ids().label ?? null) : null),\n );\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.field?.describedBy()].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaReadOnly = computed(() =>\n this.resolvedReadOnly() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n /**\n * Only where the root owns the role, and only when the group flows the other\n * way: on an element with no role the attribute describes nothing, and\n * `radiogroup` already implies `vertical`.\n */\n protected readonly ariaOrientation = computed(() =>\n this.resolvedRole() === 'radiogroup' && this.resolvedOrientation() === 'horizontal'\n ? 'horizontal'\n : null,\n );\n\n ngOnInit() {\n if (this.value() === undefined) this.own.set(this.defaultValue());\n }\n\n /** An item joins the set, so the group can put every element back at once. */\n register(item: SlRadioGroupItem) {\n this.items.add(item);\n }\n\n /** An item leaves the set. */\n unregister(item: SlRadioGroupItem) {\n this.items.delete(item);\n }\n\n /**\n * Writes every item's element from the value.\n *\n * The HTML standard's canceled activation behaviour for a radio restores the\n * *clicked* element and nothing else, so the option that was chosen before\n * the refused click stays unchecked: checking one radio unchecks its\n * neighbours, and undoing the first half of that is all the platform offers.\n * Angular writes a property binding only when its value changes, and the\n * neighbour's did not, so the correction is made here — measured, in the\n * first run of this family's Angular spec, as a controlled group that lost\n * its choice after its consumer had said no.\n */\n restoreElements() {\n for (const item of this.items) item.syncElement();\n }\n\n /** Whether one value is the chosen one. Read by every item in the set. */\n holds(value: string): boolean {\n return this.selection() === value;\n }\n\n /**\n * Asks the group to move to one value. Returns whether the value actually\n * moved — false while a consumer owns it, which is what tells the item to\n * refuse the activation and let the platform put the element back.\n */\n select(value: string, reason: RadioGroupSelectionReason, source: Event): boolean {\n if (this.resolvedReadOnly() === true) return false;\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(value, reason, source);\n if (cancelled || !moved) return false;\n this.own.set(value);\n this.onChangeFn(value);\n return true;\n }\n\n writeValue(value: string | null | undefined) {\n this.own.set(value ?? undefined);\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n /** Marks the set touched, which an item calls when it loses focus. */\n markTouched() {\n this.onTouchedFn();\n }\n\n /**\n * The group owns validity over the set, which no single item can see:\n * \"choose one\" is a fact about the group and not about any one option.\n */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.resolvedRequired() !== true) return null;\n const value = control.value as string | null | undefined;\n return value === null || value === undefined || value === '' ? { required: true } : null;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlRadioGroup } from './radio-group';\nimport { SlRadioGroupIdFactory } from './radio-group-defaults';\nimport type { RadioGroupSelectionReason, SlRadioGroupItem } from './radio-group';\n\n/**\n * Help text under one item's label.\n *\n * It is a directive on the consumer's own element, so a `p`, a `span` or an\n * `inline-message` all work and none of them loses its own semantics. It\n * describes that item and not the set — what the set says belongs to the field\n * group above it.\n */\n@Directive({\n selector: '[slRadioDescription]',\n standalone: true,\n exportAs: 'slRadioDescription',\n host: {\n 'data-part': 'description',\n '[attr.id]': 'id',\n },\n})\nexport class SlRadioDescription {\n readonly id = `${inject(SlRadioGroupIdFactory).next()}-description`;\n}\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It is why `Space` and a pointer are told apart without a key\n * listener existing anywhere in the family.\n */\nfunction activationReason(event: Event): RadioGroupSelectionReason {\n return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/**\n * One item of the set.\n *\n * It is a part of `radio-group` and not an entry point of its own: outside a\n * group it has no exclusive set to belong to, and the platform's whole keyboard\n * model is defined over the set. `SlRadioGroup` is injected without `optional`,\n * so an item written outside one fails at construction rather than silently.\n *\n * The mark is a sibling of the control for the reason `checkbox` records —\n * Firefox renders no pseudo-element on an `input` — and the label names the\n * control through `for` so the description below it can be read without\n * choosing anything.\n */\n@Component({\n selector: '[slRadio]',\n standalone: true,\n exportAs: 'slRadio',\n imports: [SlGlyph, SlIcon],\n template: `<input\n #control\n data-part=\"control\"\n type=\"radio\"\n [attr.id]=\"controlId\"\n [attr.name]=\"group.resolvedName()\"\n [attr.value]=\"value()\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.disabled]=\"disabledAttribute()\"\n [checked]=\"checked()\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur()\"\n />\n <span data-part=\"indicator\"\n ><span slIcon><svg slGlyph name=\"dot\"></svg></span\n ></span>\n <label data-part=\"label\" [attr.for]=\"controlId\"><ng-content /></label>\n <ng-content select=\"[slRadioDescription]\" />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'item',\n '[attr.data-checked]': \"checked() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n },\n})\nexport class SlRadio implements SlRadioGroupItem {\n /** What this item selects. It is what the group's value holds. */\n readonly value = input.required<string>();\n /** Unstated rather than `false`, so the item defers to the group. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * The group the item belongs to. Injected without `optional`, and public\n * because the template reads the shared name from it and a consumer reaching\n * the item through `exportAs` may want the group's resolved step.\n */\n readonly group = inject(SlRadioGroup);\n\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly element = viewChild.required<ElementRef<HTMLInputElement>>('control');\n private readonly description = contentChild(SlRadioDescription, { descendants: true });\n\n /** The identifier the label points at. A consumer's own wins. */\n readonly controlId = this.writtenId ?? inject(SlRadioGroupIdFactory).next();\n\n readonly checked = computed(() => this.group.holds(this.value()));\n\n constructor() {\n this.group.register(this);\n inject(DestroyRef).onDestroy(() => this.group.unregister(this));\n }\n readonly resolvedDisabled = computed(() => this.disabled() ?? this.group.resolvedDisabled());\n\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.description()?.id].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly disabledAttribute = computed(() =>\n this.resolvedDisabled() === true ? '' : null,\n );\n\n /** The native element, for `focus()` and `click()`. */\n get inputElement(): HTMLInputElement {\n return this.element().nativeElement;\n }\n\n /** Writes this item's element from the group's value. */\n syncElement() {\n this.element().nativeElement.checked = this.checked();\n }\n\n /**\n * Refusing the default undoes the platform's pre-click check of *this*\n * element. It does not put the previously chosen neighbour back — checking a\n * radio unchecks its neighbours, and the canceled activation behaviour undoes\n * only the first half of that — so the group writes every element from the\n * value afterwards.\n */\n protected onClick(event: MouseEvent) {\n if (this.group.select(this.value(), activationReason(event), event)) return;\n event.preventDefault();\n this.group.restoreElements();\n }\n\n protected onBlur() {\n this.group.markTouched();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-radio-group.mjs","sources":["../../radio-group/src/radio-group-defaults.ts","../../radio-group/src/radio-group.ts","../../radio-group/src/radio-group-parts.ts","../../radio-group/src/slotted-angular-radio-group.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the group and every item inside it sit at. */\nexport type RadioGroupSize = 'sm' | 'md' | 'lg';\n\n/** How the choices flow. `horizontal` wraps; a set of options is not a scroll region. */\nexport type RadioGroupOrientation = 'vertical' | 'horizontal';\n\n/**\n * Whether the choice is a box beside a line of text or a framed surface whose\n * whole area is the target. `tile` is the name Carbon and Cloudscape give the\n * framed choice; Mantine and Chakra call it a card, which is a family here.\n */\nexport type RadioGroupVariant = 'plain' | 'tile';\n\n/**\n * Which side of its own label the circle is on. It is never inherited from a\n * `field`: that family's `labelPlacement` answers where a field's label sits\n * relative to its control, and a radio's label is its own.\n */\nexport type RadioGroupLabelPlacement = 'end' | 'start';\n\nexport interface RadioGroupDefaults {\n labelPlacement: RadioGroupLabelPlacement;\n variant: RadioGroupVariant;\n orientation: RadioGroupOrientation;\n size: RadioGroupSize;\n}\n\nconst FALLBACK: RadioGroupDefaults = {\n labelPlacement: 'end',\n orientation: 'vertical',\n size: 'md',\n variant: 'plain',\n};\n\nexport const RADIO_GROUP_DEFAULTS = new InjectionToken<RadioGroupDefaults>(\n 'slotted radio group defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once how its sets of choices flow, rather than\n * repeating the same inputs on every group in a form. A group that states any\n * of them itself still wins, and a field around it outranks this token for\n * `size`.\n */\nexport function provideRadioGroupDefaults(defaults: Partial<RadioGroupDefaults>) {\n return {\n provide: RADIO_GROUP_DEFAULTS,\n useFactory: (): RadioGroupDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a radio group renders as here, before it states anything of its own. */\nexport function injectRadioGroupDefaults(): RadioGroupDefaults {\n return inject(RADIO_GROUP_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 * It answers for the group's generated `name` as well as for each item's\n * identifier, because both have to be stable across the two renders.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlRadioGroupIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-radio-group-${this.count}`;\n }\n}\n","import { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { injectFieldDefaults, SlField, SlFieldDefaultsSource } from '@slotted/angular/field';\nimport { SlFieldGroup } from '@slotted/angular/field-group';\n\nimport { injectRadioGroupDefaults, SlRadioGroupIdFactory } from './radio-group-defaults';\nimport type {\n RadioGroupLabelPlacement,\n RadioGroupVariant,\n RadioGroupOrientation,\n RadioGroupSize,\n} from './radio-group-defaults';\n\nexport type {\n RadioGroupDefaults,\n RadioGroupLabelPlacement,\n RadioGroupVariant,\n RadioGroupOrientation,\n RadioGroupSize,\n} from './radio-group-defaults';\n\n/** Why the value moved. A radio group can produce exactly these two. */\nexport type RadioGroupSelectionReason = 'pointer' | 'keyboard';\n\n/**\n * What the group needs from each item, and nothing more.\n *\n * A structural type rather than the item's class, so the group does not import\n * the component that injects it — the cycle `text-field` breaks with an\n * abstract class, broken here with the smaller thing that works.\n */\nexport interface SlRadioGroupItem {\n /** Writes this item's element from the group's value. */\n syncElement(): void;\n}\n\n/**\n * One choice out of a set.\n *\n * **The keyboard is the platform's, and that is why the items share a `name`.**\n * Native radios in one form owner with one name already implement the APG's\n * whole table: Tab lands on the checked item or on the first, `Space` checks,\n * both arrow axes move focus and selection together, the set wraps, and\n * disabled items are skipped — in a right-to-left document too. A roving\n * `tabindex` written once per binding would reimplement all of it twice.\n *\n * **The role is conditional, and the condition is the field group.** A\n * `field-group` is a `fieldset` with a `legend`, which is already a named group;\n * a `radiogroup` inside it, named by the same legend, is the same set announced\n * twice. A `role` the consumer wrote wins over both.\n *\n * **`readOnly` is enforced, because the platform has none.** A radio ignores\n * `readonly`, so the group refuses the change on the item's own `click` — the\n * one event a pointer and `Space` share — and announces `aria-readonly`.\n */\n@Component({\n selector: '[slRadioGroup]',\n standalone: true,\n exportAs: 'slRadioGroup',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/radio-group/radio-group.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlRadioGroup), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlRadioGroup), multi: true },\n ],\n host: {\n 'data-ui': 'radio-group',\n 'data-ui-radio-group': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.role]': 'resolvedRole()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-label-placement]': 'resolvedLabelPlacement()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-invalid]': 'ariaInvalid()',\n '[attr.aria-readonly]': 'ariaReadOnly()',\n '[attr.aria-required]': 'ariaRequired()',\n '[attr.aria-orientation]': 'ariaOrientation()',\n },\n})\nexport class SlRadioGroup implements ControlValueAccessor, OnInit, Validator {\n /** Present means the consumer owns the choice. */\n readonly value = input<string | undefined>(undefined);\n /** The value an uncontrolled group starts from, read once. */\n readonly defaultValue = input<string | undefined>(undefined);\n /**\n * The submission name the set shares, and the reason the platform treats it\n * as one group. Generated when it is not written, because grouping is by name\n * within the form owner and an unnamed set is not a set.\n */\n readonly name = input<string | undefined>(undefined);\n readonly size = input<RadioGroupSize | undefined>(undefined);\n readonly orientation = input<RadioGroupOrientation | undefined>(undefined);\n readonly labelPlacement = input<RadioGroupLabelPlacement | undefined>(undefined);\n readonly variant = input<RadioGroupVariant | undefined>(undefined);\n /** Unstated rather than `false`, so the group defers to the field around it. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly required = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * One output for one transition. Its `previous` is `undefined` while nothing\n * has been chosen, which is the state the APG asks a group to start in and\n * which a request typed over `string` alone could not say.\n */\n readonly valueChange = output<ChangeRequest<string | undefined>>();\n\n private readonly field = inject(SlField, { optional: true });\n private readonly fieldGroup = inject(SlFieldGroup, { optional: true });\n private readonly defaults = injectRadioGroupDefaults();\n /**\n * The field defaults in force: a field group's, or the application's own.\n * A group outside a field reads disabled and read-only from them, as React's\n * reads them from FieldDefaultsProvider.\n */\n private readonly fieldDefaultsSource = inject(SlFieldDefaultsSource, { optional: true });\n private readonly fieldDefaultsToken = injectFieldDefaults();\n private readonly fieldDefaults = computed(\n () => this.fieldDefaultsSource?.fieldDefaults() ?? this.fieldDefaultsToken,\n );\n private readonly generatedName = inject(SlRadioGroupIdFactory).next();\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n private readonly items = new Set<SlRadioGroupItem>();\n private readonly own = signal<string | undefined>(undefined);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n private onChangeFn: (value: string) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n\n readonly selection = computed(() => this.value() ?? this.own());\n readonly resolvedName = computed(() => this.name() ?? this.generatedName);\n\n readonly resolvedSize = computed(\n () =>\n this.size() ??\n this.field?.resolvedSize() ??\n this.fieldGroup?.resolvedSize() ??\n this.defaults.size,\n );\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedLabelPlacement = computed(\n () => this.labelPlacement() ?? this.defaults.labelPlacement,\n );\n /** Handed to every choice in the set: one plain box among four tiles is a\n set nobody meant to write. */\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ??\n this.formDisabled() ??\n this.field?.resolvedDisabled() ??\n this.fieldDefaults().disabled,\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.field?.resolvedReadOnly() ?? this.fieldDefaults().readOnly,\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.field?.invalid() ?? this.fieldGroup?.invalid(),\n );\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.fieldGroup?.required(),\n );\n\n protected readonly resolvedRole = computed(\n () => this.writtenRole ?? (this.fieldGroup === null ? 'radiogroup' : null),\n );\n /* A group has no element a label's for can reach, so inside a field the\n field's label names it, unless the consumer named it themselves. */\n protected readonly labelledBy = computed(\n () =>\n this.writtenLabelledBy ??\n (this.writtenLabel === null ? (this.field?.ids().label ?? null) : null),\n );\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.field?.describedBy()].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaReadOnly = computed(() =>\n this.resolvedReadOnly() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n /**\n * Only where the root owns the role, and only when the group flows the other\n * way: on an element with no role the attribute describes nothing, and\n * `radiogroup` already implies `vertical`.\n */\n protected readonly ariaOrientation = computed(() =>\n this.resolvedRole() === 'radiogroup' && this.resolvedOrientation() === 'horizontal'\n ? 'horizontal'\n : null,\n );\n\n ngOnInit() {\n if (this.value() === undefined) this.own.set(this.defaultValue());\n }\n\n /** An item joins the set, so the group can put every element back at once. */\n register(item: SlRadioGroupItem) {\n this.items.add(item);\n }\n\n /** An item leaves the set. */\n unregister(item: SlRadioGroupItem) {\n this.items.delete(item);\n }\n\n /**\n * Writes every item's element from the value.\n *\n * The HTML standard's canceled activation behaviour for a radio restores the\n * *clicked* element and nothing else, so the option that was chosen before\n * the refused click stays unchecked: checking one radio unchecks its\n * neighbours, and undoing the first half of that is all the platform offers.\n * Angular writes a property binding only when its value changes, and the\n * neighbour's did not, so the correction is made here — measured, in the\n * first run of this family's Angular spec, as a controlled group that lost\n * its choice after its consumer had said no.\n */\n restoreElements() {\n for (const item of this.items) item.syncElement();\n }\n\n /** Whether one value is the chosen one. Read by every item in the set. */\n holds(value: string): boolean {\n return this.selection() === value;\n }\n\n /**\n * Asks the group to move to one value. Returns whether the value actually\n * moved — false while a consumer owns it, which is what tells the item to\n * refuse the activation and let the platform put the element back.\n */\n select(value: string, reason: RadioGroupSelectionReason, source: Event): boolean {\n if (this.resolvedReadOnly() === true) return false;\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(value, reason, source);\n if (cancelled || !moved) return false;\n this.own.set(value);\n this.onChangeFn(value);\n return true;\n }\n\n writeValue(value: string | null | undefined) {\n this.own.set(value ?? undefined);\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n /** Marks the set touched, which an item calls when it loses focus. */\n markTouched() {\n this.onTouchedFn();\n }\n\n /**\n * The group owns validity over the set, which no single item can see:\n * \"choose one\" is a fact about the group and not about any one option.\n */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.resolvedRequired() !== true) return null;\n const value = control.value as string | null | undefined;\n return value === null || value === undefined || value === '' ? { required: true } : null;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlRadioGroup } from './radio-group';\nimport { SlRadioGroupIdFactory } from './radio-group-defaults';\nimport type { RadioGroupSelectionReason, SlRadioGroupItem } from './radio-group';\n\n/**\n * Help text under one item's label.\n *\n * It is a directive on the consumer's own element, so a `p`, a `span` or an\n * `inline-message` all work and none of them loses its own semantics. It\n * describes that item and not the set — what the set says belongs to the field\n * group above it.\n */\n@Directive({\n selector: '[slRadioDescription]',\n standalone: true,\n exportAs: 'slRadioDescription',\n host: {\n 'data-part': 'description',\n 'data-part-description': '',\n '[attr.id]': 'id',\n },\n})\nexport class SlRadioDescription {\n readonly id = `${inject(SlRadioGroupIdFactory).next()}-description`;\n}\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It is why `Space` and a pointer are told apart without a key\n * listener existing anywhere in the family.\n */\nfunction activationReason(event: Event): RadioGroupSelectionReason {\n return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/**\n * One item of the set.\n *\n * It is a part of `radio-group` and not an entry point of its own: outside a\n * group it has no exclusive set to belong to, and the platform's whole keyboard\n * model is defined over the set. `SlRadioGroup` is injected without `optional`,\n * so an item written outside one fails at construction rather than silently.\n *\n * The mark is a sibling of the control for the reason `checkbox` records —\n * Firefox renders no pseudo-element on an `input` — and the label names the\n * control through `for` so the description below it can be read without\n * choosing anything.\n */\n@Component({\n selector: '[slRadio]',\n standalone: true,\n exportAs: 'slRadio',\n imports: [SlGlyph, SlIcon],\n template: `<input\n #control\n data-part=\"control\"\n data-part-control=\"\"\n type=\"radio\"\n [attr.id]=\"controlId\"\n [attr.name]=\"group.resolvedName()\"\n [attr.value]=\"value()\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.disabled]=\"disabledAttribute()\"\n [checked]=\"checked()\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur()\"\n />\n <span data-part=\"indicator\" data-part-indicator=\"\"\n ><span slIcon><svg slGlyph name=\"dot\"></svg></span\n ></span>\n <label data-part=\"label\" data-part-label=\"\" [attr.for]=\"controlId\"><ng-content /></label>\n <ng-content select=\"[slRadioDescription]\" />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'item',\n 'data-part-item': '',\n '[attr.data-checked]': \"checked() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n },\n})\nexport class SlRadio implements SlRadioGroupItem {\n /** What this item selects. It is what the group's value holds. */\n readonly value = input.required<string>();\n /** Unstated rather than `false`, so the item defers to the group. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * The group the item belongs to. Injected without `optional`, and public\n * because the template reads the shared name from it and a consumer reaching\n * the item through `exportAs` may want the group's resolved step.\n */\n readonly group = inject(SlRadioGroup);\n\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly element = viewChild.required<ElementRef<HTMLInputElement>>('control');\n private readonly description = contentChild(SlRadioDescription, { descendants: true });\n\n /** The identifier the label points at. A consumer's own wins. */\n readonly controlId = this.writtenId ?? inject(SlRadioGroupIdFactory).next();\n\n readonly checked = computed(() => this.group.holds(this.value()));\n\n constructor() {\n this.group.register(this);\n inject(DestroyRef).onDestroy(() => this.group.unregister(this));\n }\n readonly resolvedDisabled = computed(() => this.disabled() ?? this.group.resolvedDisabled());\n\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.description()?.id].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly disabledAttribute = computed(() =>\n this.resolvedDisabled() === true ? '' : null,\n );\n\n /** The native element, for `focus()` and `click()`. */\n get inputElement(): HTMLInputElement {\n return this.element().nativeElement;\n }\n\n /** Writes this item's element from the group's value. */\n syncElement() {\n this.element().nativeElement.checked = this.checked();\n }\n\n /**\n * Refusing the default undoes the platform's pre-click check of *this*\n * element. It does not put the previously chosen neighbour back — checking a\n * radio unchecks its neighbours, and the canceled activation behaviour undoes\n * only the first half of that — so the group writes every element from the\n * value afterwards.\n */\n protected onClick(event: MouseEvent) {\n if (this.group.select(this.value(), activationReason(event), event)) return;\n event.preventDefault();\n this.group.restoreElements();\n }\n\n protected onBlur() {\n this.group.markTouched();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}