@slotted/angular 0.0.0-stage → 0.1.0-beta.0

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 (793) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -2
  3. package/docs/AGENTS.snippet.md +10 -0
  4. package/docs/accordion.json +345 -0
  5. package/docs/accordion.md +207 -0
  6. package/docs/action-bar.json +421 -0
  7. package/docs/action-bar.md +364 -0
  8. package/docs/action-sheet.json +210 -0
  9. package/docs/action-sheet.md +19 -0
  10. package/docs/alert.json +407 -0
  11. package/docs/alert.md +239 -0
  12. package/docs/app-shell.examples.md +349 -0
  13. package/docs/app-shell.json +835 -0
  14. package/docs/app-shell.md +214 -0
  15. package/docs/aspect-ratio.json +159 -0
  16. package/docs/aspect-ratio.md +134 -0
  17. package/docs/attachment.json +486 -0
  18. package/docs/attachment.md +253 -0
  19. package/docs/avatar-group.json +208 -0
  20. package/docs/avatar-group.md +130 -0
  21. package/docs/avatar.json +342 -0
  22. package/docs/avatar.md +142 -0
  23. package/docs/badge.json +334 -0
  24. package/docs/badge.md +138 -0
  25. package/docs/breadcrumb.json +368 -0
  26. package/docs/breadcrumb.md +237 -0
  27. package/docs/button-group.json +158 -0
  28. package/docs/button-group.md +72 -0
  29. package/docs/button.examples.md +621 -0
  30. package/docs/button.json +977 -0
  31. package/docs/button.md +200 -0
  32. package/docs/calendar.json +592 -0
  33. package/docs/calendar.md +242 -0
  34. package/docs/card.json +283 -0
  35. package/docs/card.md +130 -0
  36. package/docs/carousel.json +560 -0
  37. package/docs/carousel.md +357 -0
  38. package/docs/cascader.json +933 -0
  39. package/docs/cascader.md +379 -0
  40. package/docs/chart.examples.md +582 -0
  41. package/docs/chart.json +1359 -0
  42. package/docs/chart.md +187 -0
  43. package/docs/checkbox-group.examples.md +612 -0
  44. package/docs/checkbox-group.json +395 -0
  45. package/docs/checkbox-group.md +106 -0
  46. package/docs/checkbox.examples.md +546 -0
  47. package/docs/checkbox.json +506 -0
  48. package/docs/checkbox.md +104 -0
  49. package/docs/code-block.json +616 -0
  50. package/docs/code-block.md +303 -0
  51. package/docs/collapsible.json +456 -0
  52. package/docs/collapsible.md +261 -0
  53. package/docs/color-picker.json +523 -0
  54. package/docs/color-picker.md +201 -0
  55. package/docs/column-manager.json +486 -0
  56. package/docs/column-manager.md +277 -0
  57. package/docs/combobox.examples.md +1732 -0
  58. package/docs/combobox.json +1250 -0
  59. package/docs/combobox.md +209 -0
  60. package/docs/command-palette.json +800 -0
  61. package/docs/command-palette.md +419 -0
  62. package/docs/container.json +156 -0
  63. package/docs/container.md +92 -0
  64. package/docs/context-menu.json +231 -0
  65. package/docs/context-menu.md +176 -0
  66. package/docs/currency-field.examples.md +321 -0
  67. package/docs/currency-field.json +649 -0
  68. package/docs/currency-field.md +128 -0
  69. package/docs/dashboard-grid.json +680 -0
  70. package/docs/dashboard-grid.md +265 -0
  71. package/docs/data-grid.examples.md +3064 -0
  72. package/docs/data-grid.json +1577 -0
  73. package/docs/data-grid.md +237 -0
  74. package/docs/data-grid.props.md +81 -0
  75. package/docs/data-list.json +685 -0
  76. package/docs/data-list.md +327 -0
  77. package/docs/date-field.json +490 -0
  78. package/docs/date-field.md +235 -0
  79. package/docs/date-picker.examples.md +1226 -0
  80. package/docs/date-picker.json +696 -0
  81. package/docs/date-picker.md +121 -0
  82. package/docs/date-range-picker.examples.md +1300 -0
  83. package/docs/date-range-picker.json +903 -0
  84. package/docs/date-range-picker.md +142 -0
  85. package/docs/datetime-field.json +665 -0
  86. package/docs/datetime-field.md +337 -0
  87. package/docs/datetime-picker.examples.md +1269 -0
  88. package/docs/datetime-picker.json +928 -0
  89. package/docs/datetime-picker.md +150 -0
  90. package/docs/datetime-range-picker.examples.md +225 -0
  91. package/docs/datetime-range-picker.json +1015 -0
  92. package/docs/datetime-range-picker.md +162 -0
  93. package/docs/description-list.json +471 -0
  94. package/docs/description-list.md +268 -0
  95. package/docs/detail-panel.json +530 -0
  96. package/docs/detail-panel.md +361 -0
  97. package/docs/dialog.examples.md +2467 -0
  98. package/docs/dialog.json +1141 -0
  99. package/docs/dialog.md +217 -0
  100. package/docs/dialog.props.md +63 -0
  101. package/docs/divider.json +148 -0
  102. package/docs/divider.md +83 -0
  103. package/docs/drawer.examples.md +1929 -0
  104. package/docs/drawer.json +753 -0
  105. package/docs/drawer.md +199 -0
  106. package/docs/entity-picker.json +946 -0
  107. package/docs/entity-picker.md +365 -0
  108. package/docs/event-calendar.examples.md +308 -0
  109. package/docs/event-calendar.json +1202 -0
  110. package/docs/event-calendar.md +201 -0
  111. package/docs/field-group.json +333 -0
  112. package/docs/field-group.md +181 -0
  113. package/docs/field.examples.md +676 -0
  114. package/docs/field.json +528 -0
  115. package/docs/field.md +127 -0
  116. package/docs/filter-bar.json +817 -0
  117. package/docs/filter-bar.md +380 -0
  118. package/docs/form.json +378 -0
  119. package/docs/form.md +235 -0
  120. package/docs/fullscreen.json +395 -0
  121. package/docs/fullscreen.md +225 -0
  122. package/docs/grid.json +176 -0
  123. package/docs/grid.md +74 -0
  124. package/docs/highlight.json +279 -0
  125. package/docs/highlight.md +210 -0
  126. package/docs/hover-card.json +254 -0
  127. package/docs/hover-card.md +213 -0
  128. package/docs/icon.json +173 -0
  129. package/docs/icon.md +101 -0
  130. package/docs/image.json +476 -0
  131. package/docs/image.md +254 -0
  132. package/docs/import-export-center.json +836 -0
  133. package/docs/import-export-center.md +345 -0
  134. package/docs/index.md +141 -0
  135. package/docs/inline-message.json +312 -0
  136. package/docs/inline-message.md +191 -0
  137. package/docs/inline.json +149 -0
  138. package/docs/inline.md +72 -0
  139. package/docs/kbd.json +350 -0
  140. package/docs/kbd.md +210 -0
  141. package/docs/link.json +264 -0
  142. package/docs/link.md +167 -0
  143. package/docs/list-item.json +463 -0
  144. package/docs/list-item.md +236 -0
  145. package/docs/list.json +321 -0
  146. package/docs/list.md +185 -0
  147. package/docs/listbox.json +807 -0
  148. package/docs/listbox.md +413 -0
  149. package/docs/loading-overlay.json +440 -0
  150. package/docs/loading-overlay.md +248 -0
  151. package/docs/markdown.json +461 -0
  152. package/docs/markdown.md +266 -0
  153. package/docs/menu.examples.md +1651 -0
  154. package/docs/menu.json +922 -0
  155. package/docs/menu.md +155 -0
  156. package/docs/menubar.json +292 -0
  157. package/docs/menubar.md +173 -0
  158. package/docs/message-scroller.json +401 -0
  159. package/docs/message-scroller.md +212 -0
  160. package/docs/message.json +862 -0
  161. package/docs/message.md +473 -0
  162. package/docs/multi-select.examples.md +1922 -0
  163. package/docs/multi-select.json +1314 -0
  164. package/docs/multi-select.md +213 -0
  165. package/docs/navigation-menu.json +529 -0
  166. package/docs/navigation-menu.md +329 -0
  167. package/docs/notification-center.json +664 -0
  168. package/docs/notification-center.md +372 -0
  169. package/docs/number-field.examples.md +1078 -0
  170. package/docs/number-field.json +668 -0
  171. package/docs/number-field.md +137 -0
  172. package/docs/otp-input.json +479 -0
  173. package/docs/otp-input.md +291 -0
  174. package/docs/page-header.json +574 -0
  175. package/docs/page-header.md +338 -0
  176. package/docs/page.json +332 -0
  177. package/docs/page.md +184 -0
  178. package/docs/pagination.json +434 -0
  179. package/docs/pagination.md +238 -0
  180. package/docs/popover.examples.md +1235 -0
  181. package/docs/popover.json +656 -0
  182. package/docs/popover.md +199 -0
  183. package/docs/progress-indicator.json +501 -0
  184. package/docs/progress-indicator.md +329 -0
  185. package/docs/prompt-composer.json +498 -0
  186. package/docs/prompt-composer.md +278 -0
  187. package/docs/prose.json +357 -0
  188. package/docs/prose.md +226 -0
  189. package/docs/radio-group.examples.md +626 -0
  190. package/docs/radio-group.json +541 -0
  191. package/docs/radio-group.md +112 -0
  192. package/docs/rating.json +1053 -0
  193. package/docs/rating.md +435 -0
  194. package/docs/result-state.json +376 -0
  195. package/docs/result-state.md +286 -0
  196. package/docs/saved-views.json +384 -0
  197. package/docs/saved-views.md +242 -0
  198. package/docs/scroll-area.json +120 -0
  199. package/docs/scroll-area.md +8 -0
  200. package/docs/section.json +344 -0
  201. package/docs/section.md +208 -0
  202. package/docs/segmented-control.json +429 -0
  203. package/docs/segmented-control.md +240 -0
  204. package/docs/select.examples.md +1214 -0
  205. package/docs/select.json +1147 -0
  206. package/docs/select.md +199 -0
  207. package/docs/side-navigation.json +632 -0
  208. package/docs/side-navigation.md +430 -0
  209. package/docs/skeleton.json +358 -0
  210. package/docs/skeleton.md +223 -0
  211. package/docs/slider.json +522 -0
  212. package/docs/slider.md +261 -0
  213. package/docs/sparkline.json +426 -0
  214. package/docs/sparkline.md +206 -0
  215. package/docs/split-button.json +361 -0
  216. package/docs/split-button.md +275 -0
  217. package/docs/splitter.json +142 -0
  218. package/docs/splitter.md +14 -0
  219. package/docs/stack.json +135 -0
  220. package/docs/stack.md +74 -0
  221. package/docs/stat-card.json +529 -0
  222. package/docs/stat-card.md +270 -0
  223. package/docs/status-indicator.json +314 -0
  224. package/docs/status-indicator.md +197 -0
  225. package/docs/stepper.json +451 -0
  226. package/docs/stepper.md +250 -0
  227. package/docs/switch.json +451 -0
  228. package/docs/switch.md +508 -0
  229. package/docs/table-of-contents.json +553 -0
  230. package/docs/table-of-contents.md +289 -0
  231. package/docs/table.examples.md +1981 -0
  232. package/docs/table.json +1059 -0
  233. package/docs/table.md +290 -0
  234. package/docs/tabs.examples.md +1370 -0
  235. package/docs/tabs.json +661 -0
  236. package/docs/tabs.md +211 -0
  237. package/docs/tag.json +813 -0
  238. package/docs/tag.md +241 -0
  239. package/docs/tags-input.json +771 -0
  240. package/docs/tags-input.md +361 -0
  241. package/docs/text-field.examples.md +821 -0
  242. package/docs/text-field.json +604 -0
  243. package/docs/text-field.md +125 -0
  244. package/docs/textarea.examples.md +612 -0
  245. package/docs/textarea.json +440 -0
  246. package/docs/textarea.md +98 -0
  247. package/docs/time-field.json +584 -0
  248. package/docs/time-field.md +291 -0
  249. package/docs/time-picker.json +679 -0
  250. package/docs/time-picker.md +315 -0
  251. package/docs/time-range-picker.examples.md +191 -0
  252. package/docs/time-range-picker.json +924 -0
  253. package/docs/time-range-picker.md +152 -0
  254. package/docs/timeline.json +839 -0
  255. package/docs/timeline.md +401 -0
  256. package/docs/toast.json +642 -0
  257. package/docs/toast.md +311 -0
  258. package/docs/toggle-group.json +417 -0
  259. package/docs/toggle-group.md +255 -0
  260. package/docs/toggle.json +326 -0
  261. package/docs/toggle.md +222 -0
  262. package/docs/toolbar.json +380 -0
  263. package/docs/toolbar.md +240 -0
  264. package/docs/tooltip.examples.md +664 -0
  265. package/docs/tooltip.json +604 -0
  266. package/docs/tooltip.md +146 -0
  267. package/docs/top-navigation.examples.md +287 -0
  268. package/docs/top-navigation.json +648 -0
  269. package/docs/top-navigation.md +138 -0
  270. package/docs/tour.json +759 -0
  271. package/docs/tour.md +337 -0
  272. package/docs/transfer.json +746 -0
  273. package/docs/transfer.md +273 -0
  274. package/docs/tree.json +918 -0
  275. package/docs/tree.md +397 -0
  276. package/docs/typography.json +317 -0
  277. package/docs/typography.md +107 -0
  278. package/docs/upload.examples.md +358 -0
  279. package/docs/upload.json +1103 -0
  280. package/docs/upload.md +166 -0
  281. package/docs/visually-hidden.json +71 -0
  282. package/docs/visually-hidden.md +42 -0
  283. package/docs/wizard.json +724 -0
  284. package/docs/wizard.md +295 -0
  285. package/fesm2022/slotted-angular-accordion.mjs +247 -0
  286. package/fesm2022/slotted-angular-accordion.mjs.map +1 -0
  287. package/fesm2022/slotted-angular-action-bar.mjs +639 -0
  288. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -0
  289. package/fesm2022/slotted-angular-action-sheet.mjs +749 -0
  290. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -0
  291. package/fesm2022/slotted-angular-alert.mjs +427 -0
  292. package/fesm2022/slotted-angular-alert.mjs.map +1 -0
  293. package/fesm2022/slotted-angular-app-shell.mjs +1334 -0
  294. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -0
  295. package/fesm2022/slotted-angular-aspect-ratio.mjs +63 -0
  296. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -0
  297. package/fesm2022/slotted-angular-attachment.mjs +595 -0
  298. package/fesm2022/slotted-angular-attachment.mjs.map +1 -0
  299. package/fesm2022/slotted-angular-avatar-group.mjs +230 -0
  300. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -0
  301. package/fesm2022/slotted-angular-avatar.mjs +330 -0
  302. package/fesm2022/slotted-angular-avatar.mjs.map +1 -0
  303. package/fesm2022/slotted-angular-badge.mjs +255 -0
  304. package/fesm2022/slotted-angular-badge.mjs.map +1 -0
  305. package/fesm2022/slotted-angular-breadcrumb.mjs +544 -0
  306. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -0
  307. package/fesm2022/slotted-angular-button-group.mjs +146 -0
  308. package/fesm2022/slotted-angular-button-group.mjs.map +1 -0
  309. package/fesm2022/slotted-angular-button.mjs +692 -0
  310. package/fesm2022/slotted-angular-button.mjs.map +1 -0
  311. package/fesm2022/slotted-angular-calendar.mjs +916 -0
  312. package/fesm2022/slotted-angular-calendar.mjs.map +1 -0
  313. package/fesm2022/slotted-angular-card.mjs +225 -0
  314. package/fesm2022/slotted-angular-card.mjs.map +1 -0
  315. package/fesm2022/slotted-angular-carousel.mjs +840 -0
  316. package/fesm2022/slotted-angular-carousel.mjs.map +1 -0
  317. package/fesm2022/slotted-angular-cascader.mjs +1839 -0
  318. package/fesm2022/slotted-angular-cascader.mjs.map +1 -0
  319. package/fesm2022/slotted-angular-chart.mjs +974 -0
  320. package/fesm2022/slotted-angular-chart.mjs.map +1 -0
  321. package/fesm2022/slotted-angular-checkbox-group.mjs +283 -0
  322. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -0
  323. package/fesm2022/slotted-angular-checkbox.mjs +468 -0
  324. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -0
  325. package/fesm2022/slotted-angular-code-block.mjs +476 -0
  326. package/fesm2022/slotted-angular-code-block.mjs.map +1 -0
  327. package/fesm2022/slotted-angular-collapsible.mjs +479 -0
  328. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -0
  329. package/fesm2022/slotted-angular-color-picker.mjs +910 -0
  330. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -0
  331. package/fesm2022/slotted-angular-column-manager.mjs +1037 -0
  332. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -0
  333. package/fesm2022/slotted-angular-combobox.mjs +1480 -0
  334. package/fesm2022/slotted-angular-combobox.mjs.map +1 -0
  335. package/fesm2022/slotted-angular-command-palette.mjs +1283 -0
  336. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -0
  337. package/fesm2022/slotted-angular-container.mjs +105 -0
  338. package/fesm2022/slotted-angular-container.mjs.map +1 -0
  339. package/fesm2022/slotted-angular-context-menu.mjs +221 -0
  340. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -0
  341. package/fesm2022/slotted-angular-currency-field.mjs +1131 -0
  342. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -0
  343. package/fesm2022/slotted-angular-dashboard-grid.mjs +1928 -0
  344. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -0
  345. package/fesm2022/slotted-angular-data-grid.mjs +6697 -0
  346. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -0
  347. package/fesm2022/slotted-angular-data-list.mjs +1418 -0
  348. package/fesm2022/slotted-angular-data-list.mjs.map +1 -0
  349. package/fesm2022/slotted-angular-date-field.mjs +772 -0
  350. package/fesm2022/slotted-angular-date-field.mjs.map +1 -0
  351. package/fesm2022/slotted-angular-date-picker.mjs +690 -0
  352. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -0
  353. package/fesm2022/slotted-angular-date-range-picker.mjs +1150 -0
  354. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -0
  355. package/fesm2022/slotted-angular-datetime-field.mjs +1058 -0
  356. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -0
  357. package/fesm2022/slotted-angular-datetime-picker.mjs +1362 -0
  358. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -0
  359. package/fesm2022/slotted-angular-datetime-range-picker.mjs +1872 -0
  360. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -0
  361. package/fesm2022/slotted-angular-description-list.mjs +545 -0
  362. package/fesm2022/slotted-angular-description-list.mjs.map +1 -0
  363. package/fesm2022/slotted-angular-detail-panel.mjs +754 -0
  364. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -0
  365. package/fesm2022/slotted-angular-dialog.mjs +980 -0
  366. package/fesm2022/slotted-angular-dialog.mjs.map +1 -0
  367. package/fesm2022/slotted-angular-divider.mjs +76 -0
  368. package/fesm2022/slotted-angular-divider.mjs.map +1 -0
  369. package/fesm2022/slotted-angular-drawer.mjs +1397 -0
  370. package/fesm2022/slotted-angular-drawer.mjs.map +1 -0
  371. package/fesm2022/slotted-angular-entity-picker.mjs +1987 -0
  372. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -0
  373. package/fesm2022/slotted-angular-event-calendar.mjs +2934 -0
  374. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -0
  375. package/fesm2022/slotted-angular-field-group.mjs +301 -0
  376. package/fesm2022/slotted-angular-field-group.mjs.map +1 -0
  377. package/fesm2022/slotted-angular-field.mjs +928 -0
  378. package/fesm2022/slotted-angular-field.mjs.map +1 -0
  379. package/fesm2022/slotted-angular-filter-bar.mjs +3107 -0
  380. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -0
  381. package/fesm2022/slotted-angular-form.mjs +592 -0
  382. package/fesm2022/slotted-angular-form.mjs.map +1 -0
  383. package/fesm2022/slotted-angular-fullscreen.mjs +314 -0
  384. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -0
  385. package/fesm2022/slotted-angular-grid.mjs +58 -0
  386. package/fesm2022/slotted-angular-grid.mjs.map +1 -0
  387. package/fesm2022/slotted-angular-highlight.mjs +123 -0
  388. package/fesm2022/slotted-angular-highlight.mjs.map +1 -0
  389. package/fesm2022/slotted-angular-hover-card.mjs +326 -0
  390. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -0
  391. package/fesm2022/slotted-angular-i18n.mjs +75 -0
  392. package/fesm2022/slotted-angular-i18n.mjs.map +1 -0
  393. package/fesm2022/slotted-angular-icon.mjs +232 -0
  394. package/fesm2022/slotted-angular-icon.mjs.map +1 -0
  395. package/fesm2022/slotted-angular-image.mjs +442 -0
  396. package/fesm2022/slotted-angular-image.mjs.map +1 -0
  397. package/fesm2022/slotted-angular-import-export-center.mjs +1792 -0
  398. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -0
  399. package/fesm2022/slotted-angular-inline-message.mjs +280 -0
  400. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -0
  401. package/fesm2022/slotted-angular-inline.mjs +52 -0
  402. package/fesm2022/slotted-angular-inline.mjs.map +1 -0
  403. package/fesm2022/slotted-angular-kbd.mjs +284 -0
  404. package/fesm2022/slotted-angular-kbd.mjs.map +1 -0
  405. package/fesm2022/slotted-angular-link.mjs +182 -0
  406. package/fesm2022/slotted-angular-link.mjs.map +1 -0
  407. package/fesm2022/slotted-angular-list-item.mjs +367 -0
  408. package/fesm2022/slotted-angular-list-item.mjs.map +1 -0
  409. package/fesm2022/slotted-angular-list.mjs +256 -0
  410. package/fesm2022/slotted-angular-list.mjs.map +1 -0
  411. package/fesm2022/slotted-angular-listbox.mjs +1274 -0
  412. package/fesm2022/slotted-angular-listbox.mjs.map +1 -0
  413. package/fesm2022/slotted-angular-loading-overlay.mjs +451 -0
  414. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -0
  415. package/fesm2022/slotted-angular-markdown.mjs +914 -0
  416. package/fesm2022/slotted-angular-markdown.mjs.map +1 -0
  417. package/fesm2022/slotted-angular-menu.mjs +1211 -0
  418. package/fesm2022/slotted-angular-menu.mjs.map +1 -0
  419. package/fesm2022/slotted-angular-menubar.mjs +230 -0
  420. package/fesm2022/slotted-angular-menubar.mjs.map +1 -0
  421. package/fesm2022/slotted-angular-message-scroller.mjs +378 -0
  422. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -0
  423. package/fesm2022/slotted-angular-message.mjs +866 -0
  424. package/fesm2022/slotted-angular-message.mjs.map +1 -0
  425. package/fesm2022/slotted-angular-multi-select.mjs +1939 -0
  426. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -0
  427. package/fesm2022/slotted-angular-navigation-menu.mjs +770 -0
  428. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -0
  429. package/fesm2022/slotted-angular-notification-center.mjs +1172 -0
  430. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -0
  431. package/fesm2022/slotted-angular-number-field.mjs +966 -0
  432. package/fesm2022/slotted-angular-number-field.mjs.map +1 -0
  433. package/fesm2022/slotted-angular-otp-input.mjs +629 -0
  434. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -0
  435. package/fesm2022/slotted-angular-page-header.mjs +788 -0
  436. package/fesm2022/slotted-angular-page-header.mjs.map +1 -0
  437. package/fesm2022/slotted-angular-page.mjs +255 -0
  438. package/fesm2022/slotted-angular-page.mjs.map +1 -0
  439. package/fesm2022/slotted-angular-pagination.mjs +562 -0
  440. package/fesm2022/slotted-angular-pagination.mjs.map +1 -0
  441. package/fesm2022/slotted-angular-popover.mjs +799 -0
  442. package/fesm2022/slotted-angular-popover.mjs.map +1 -0
  443. package/fesm2022/slotted-angular-progress-indicator.mjs +572 -0
  444. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -0
  445. package/fesm2022/slotted-angular-prompt-composer.mjs +596 -0
  446. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -0
  447. package/fesm2022/slotted-angular-prose.mjs +314 -0
  448. package/fesm2022/slotted-angular-prose.mjs.map +1 -0
  449. package/fesm2022/slotted-angular-radio-group.mjs +469 -0
  450. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -0
  451. package/fesm2022/slotted-angular-rating.mjs +1174 -0
  452. package/fesm2022/slotted-angular-rating.mjs.map +1 -0
  453. package/fesm2022/slotted-angular-result-state.mjs +330 -0
  454. package/fesm2022/slotted-angular-result-state.mjs.map +1 -0
  455. package/fesm2022/slotted-angular-saved-views.mjs +877 -0
  456. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -0
  457. package/fesm2022/slotted-angular-scroll-area.mjs +294 -0
  458. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -0
  459. package/fesm2022/slotted-angular-section.mjs +266 -0
  460. package/fesm2022/slotted-angular-section.mjs.map +1 -0
  461. package/fesm2022/slotted-angular-segmented-control.mjs +454 -0
  462. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -0
  463. package/fesm2022/slotted-angular-select.mjs +1899 -0
  464. package/fesm2022/slotted-angular-select.mjs.map +1 -0
  465. package/fesm2022/slotted-angular-side-navigation.mjs +1042 -0
  466. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -0
  467. package/fesm2022/slotted-angular-skeleton.mjs +316 -0
  468. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -0
  469. package/fesm2022/slotted-angular-slider.mjs +586 -0
  470. package/fesm2022/slotted-angular-slider.mjs.map +1 -0
  471. package/fesm2022/slotted-angular-sparkline.mjs +235 -0
  472. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -0
  473. package/fesm2022/slotted-angular-split-button.mjs +331 -0
  474. package/fesm2022/slotted-angular-split-button.mjs.map +1 -0
  475. package/fesm2022/slotted-angular-splitter.mjs +516 -0
  476. package/fesm2022/slotted-angular-splitter.mjs.map +1 -0
  477. package/fesm2022/slotted-angular-stack.mjs +48 -0
  478. package/fesm2022/slotted-angular-stack.mjs.map +1 -0
  479. package/fesm2022/slotted-angular-stat-card.mjs +478 -0
  480. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -0
  481. package/fesm2022/slotted-angular-status-indicator.mjs +155 -0
  482. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -0
  483. package/fesm2022/slotted-angular-stepper.mjs +536 -0
  484. package/fesm2022/slotted-angular-stepper.mjs.map +1 -0
  485. package/fesm2022/slotted-angular-switch.mjs +447 -0
  486. package/fesm2022/slotted-angular-switch.mjs.map +1 -0
  487. package/fesm2022/slotted-angular-table-of-contents.mjs +750 -0
  488. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -0
  489. package/fesm2022/slotted-angular-table.mjs +2518 -0
  490. package/fesm2022/slotted-angular-table.mjs.map +1 -0
  491. package/fesm2022/slotted-angular-tabs.mjs +829 -0
  492. package/fesm2022/slotted-angular-tabs.mjs.map +1 -0
  493. package/fesm2022/slotted-angular-tag.mjs +595 -0
  494. package/fesm2022/slotted-angular-tag.mjs.map +1 -0
  495. package/fesm2022/slotted-angular-tags-input.mjs +1211 -0
  496. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -0
  497. package/fesm2022/slotted-angular-text-field.mjs +674 -0
  498. package/fesm2022/slotted-angular-text-field.mjs.map +1 -0
  499. package/fesm2022/slotted-angular-textarea.mjs +275 -0
  500. package/fesm2022/slotted-angular-textarea.mjs.map +1 -0
  501. package/fesm2022/slotted-angular-theme.mjs +45 -0
  502. package/fesm2022/slotted-angular-theme.mjs.map +1 -0
  503. package/fesm2022/slotted-angular-time-field.mjs +895 -0
  504. package/fesm2022/slotted-angular-time-field.mjs.map +1 -0
  505. package/fesm2022/slotted-angular-time-picker.mjs +856 -0
  506. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -0
  507. package/fesm2022/slotted-angular-time-range-picker.mjs +1534 -0
  508. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -0
  509. package/fesm2022/slotted-angular-timeline.mjs +928 -0
  510. package/fesm2022/slotted-angular-timeline.mjs.map +1 -0
  511. package/fesm2022/slotted-angular-toast.mjs +917 -0
  512. package/fesm2022/slotted-angular-toast.mjs.map +1 -0
  513. package/fesm2022/slotted-angular-toggle-group.mjs +311 -0
  514. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -0
  515. package/fesm2022/slotted-angular-toggle.mjs +162 -0
  516. package/fesm2022/slotted-angular-toggle.mjs.map +1 -0
  517. package/fesm2022/slotted-angular-toolbar.mjs +536 -0
  518. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -0
  519. package/fesm2022/slotted-angular-tooltip.mjs +798 -0
  520. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -0
  521. package/fesm2022/slotted-angular-top-navigation.mjs +1308 -0
  522. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -0
  523. package/fesm2022/slotted-angular-tour.mjs +1330 -0
  524. package/fesm2022/slotted-angular-tour.mjs.map +1 -0
  525. package/fesm2022/slotted-angular-transfer.mjs +1406 -0
  526. package/fesm2022/slotted-angular-transfer.mjs.map +1 -0
  527. package/fesm2022/slotted-angular-tree.mjs +1448 -0
  528. package/fesm2022/slotted-angular-tree.mjs.map +1 -0
  529. package/fesm2022/slotted-angular-typography.mjs +184 -0
  530. package/fesm2022/slotted-angular-typography.mjs.map +1 -0
  531. package/fesm2022/slotted-angular-upload.mjs +1523 -0
  532. package/fesm2022/slotted-angular-upload.mjs.map +1 -0
  533. package/fesm2022/slotted-angular-visually-hidden.mjs +32 -0
  534. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -0
  535. package/fesm2022/slotted-angular-wizard.mjs +1715 -0
  536. package/fesm2022/slotted-angular-wizard.mjs.map +1 -0
  537. package/fesm2022/slotted-angular.mjs +4 -0
  538. package/fesm2022/slotted-angular.mjs.map +1 -0
  539. package/package.json +537 -3
  540. package/types/slotted-angular-accordion.d.ts +156 -0
  541. package/types/slotted-angular-accordion.d.ts.map +1 -0
  542. package/types/slotted-angular-action-bar.d.ts +291 -0
  543. package/types/slotted-angular-action-bar.d.ts.map +1 -0
  544. package/types/slotted-angular-action-sheet.d.ts +294 -0
  545. package/types/slotted-angular-action-sheet.d.ts.map +1 -0
  546. package/types/slotted-angular-alert.d.ts +214 -0
  547. package/types/slotted-angular-alert.d.ts.map +1 -0
  548. package/types/slotted-angular-app-shell.d.ts +549 -0
  549. package/types/slotted-angular-app-shell.d.ts.map +1 -0
  550. package/types/slotted-angular-aspect-ratio.d.ts +57 -0
  551. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -0
  552. package/types/slotted-angular-attachment.d.ts +294 -0
  553. package/types/slotted-angular-attachment.d.ts.map +1 -0
  554. package/types/slotted-angular-avatar-group.d.ts +119 -0
  555. package/types/slotted-angular-avatar-group.d.ts.map +1 -0
  556. package/types/slotted-angular-avatar.d.ts +202 -0
  557. package/types/slotted-angular-avatar.d.ts.map +1 -0
  558. package/types/slotted-angular-badge.d.ts +166 -0
  559. package/types/slotted-angular-badge.d.ts.map +1 -0
  560. package/types/slotted-angular-breadcrumb.d.ts +251 -0
  561. package/types/slotted-angular-breadcrumb.d.ts.map +1 -0
  562. package/types/slotted-angular-button-group.d.ts +89 -0
  563. package/types/slotted-angular-button-group.d.ts.map +1 -0
  564. package/types/slotted-angular-button.d.ts +390 -0
  565. package/types/slotted-angular-button.d.ts.map +1 -0
  566. package/types/slotted-angular-calendar.d.ts +280 -0
  567. package/types/slotted-angular-calendar.d.ts.map +1 -0
  568. package/types/slotted-angular-card.d.ts +140 -0
  569. package/types/slotted-angular-card.d.ts.map +1 -0
  570. package/types/slotted-angular-carousel.d.ts +288 -0
  571. package/types/slotted-angular-carousel.d.ts.map +1 -0
  572. package/types/slotted-angular-cascader.d.ts +351 -0
  573. package/types/slotted-angular-cascader.d.ts.map +1 -0
  574. package/types/slotted-angular-chart.d.ts +319 -0
  575. package/types/slotted-angular-chart.d.ts.map +1 -0
  576. package/types/slotted-angular-checkbox-group.d.ts +156 -0
  577. package/types/slotted-angular-checkbox-group.d.ts.map +1 -0
  578. package/types/slotted-angular-checkbox.d.ts +197 -0
  579. package/types/slotted-angular-checkbox.d.ts.map +1 -0
  580. package/types/slotted-angular-code-block.d.ts +158 -0
  581. package/types/slotted-angular-code-block.d.ts.map +1 -0
  582. package/types/slotted-angular-collapsible.d.ts +272 -0
  583. package/types/slotted-angular-collapsible.d.ts.map +1 -0
  584. package/types/slotted-angular-color-picker.d.ts +181 -0
  585. package/types/slotted-angular-color-picker.d.ts.map +1 -0
  586. package/types/slotted-angular-column-manager.d.ts +200 -0
  587. package/types/slotted-angular-column-manager.d.ts.map +1 -0
  588. package/types/slotted-angular-combobox.d.ts +449 -0
  589. package/types/slotted-angular-combobox.d.ts.map +1 -0
  590. package/types/slotted-angular-command-palette.d.ts +256 -0
  591. package/types/slotted-angular-command-palette.d.ts.map +1 -0
  592. package/types/slotted-angular-container.d.ts +84 -0
  593. package/types/slotted-angular-container.d.ts.map +1 -0
  594. package/types/slotted-angular-context-menu.d.ts +84 -0
  595. package/types/slotted-angular-context-menu.d.ts.map +1 -0
  596. package/types/slotted-angular-currency-field.d.ts +480 -0
  597. package/types/slotted-angular-currency-field.d.ts.map +1 -0
  598. package/types/slotted-angular-dashboard-grid.d.ts +341 -0
  599. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -0
  600. package/types/slotted-angular-data-grid.d.ts +1077 -0
  601. package/types/slotted-angular-data-grid.d.ts.map +1 -0
  602. package/types/slotted-angular-data-list.d.ts +272 -0
  603. package/types/slotted-angular-data-list.d.ts.map +1 -0
  604. package/types/slotted-angular-date-field.d.ts +320 -0
  605. package/types/slotted-angular-date-field.d.ts.map +1 -0
  606. package/types/slotted-angular-date-picker.d.ts +224 -0
  607. package/types/slotted-angular-date-picker.d.ts.map +1 -0
  608. package/types/slotted-angular-date-range-picker.d.ts +310 -0
  609. package/types/slotted-angular-date-range-picker.d.ts.map +1 -0
  610. package/types/slotted-angular-datetime-field.d.ts +362 -0
  611. package/types/slotted-angular-datetime-field.d.ts.map +1 -0
  612. package/types/slotted-angular-datetime-picker.d.ts +370 -0
  613. package/types/slotted-angular-datetime-picker.d.ts.map +1 -0
  614. package/types/slotted-angular-datetime-range-picker.d.ts +459 -0
  615. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -0
  616. package/types/slotted-angular-description-list.d.ts +281 -0
  617. package/types/slotted-angular-description-list.d.ts.map +1 -0
  618. package/types/slotted-angular-detail-panel.d.ts +240 -0
  619. package/types/slotted-angular-detail-panel.d.ts.map +1 -0
  620. package/types/slotted-angular-dialog.d.ts +497 -0
  621. package/types/slotted-angular-dialog.d.ts.map +1 -0
  622. package/types/slotted-angular-divider.d.ts +40 -0
  623. package/types/slotted-angular-divider.d.ts.map +1 -0
  624. package/types/slotted-angular-drawer.d.ts +532 -0
  625. package/types/slotted-angular-drawer.d.ts.map +1 -0
  626. package/types/slotted-angular-entity-picker.d.ts +338 -0
  627. package/types/slotted-angular-entity-picker.d.ts.map +1 -0
  628. package/types/slotted-angular-event-calendar.d.ts +574 -0
  629. package/types/slotted-angular-event-calendar.d.ts.map +1 -0
  630. package/types/slotted-angular-field-group.d.ts +152 -0
  631. package/types/slotted-angular-field-group.d.ts.map +1 -0
  632. package/types/slotted-angular-field.d.ts +535 -0
  633. package/types/slotted-angular-field.d.ts.map +1 -0
  634. package/types/slotted-angular-filter-bar.d.ts +573 -0
  635. package/types/slotted-angular-filter-bar.d.ts.map +1 -0
  636. package/types/slotted-angular-form.d.ts +298 -0
  637. package/types/slotted-angular-form.d.ts.map +1 -0
  638. package/types/slotted-angular-fullscreen.d.ts +145 -0
  639. package/types/slotted-angular-fullscreen.d.ts.map +1 -0
  640. package/types/slotted-angular-grid.d.ts +50 -0
  641. package/types/slotted-angular-grid.d.ts.map +1 -0
  642. package/types/slotted-angular-highlight.d.ts +93 -0
  643. package/types/slotted-angular-highlight.d.ts.map +1 -0
  644. package/types/slotted-angular-hover-card.d.ts +140 -0
  645. package/types/slotted-angular-hover-card.d.ts.map +1 -0
  646. package/types/slotted-angular-i18n.d.ts +46 -0
  647. package/types/slotted-angular-i18n.d.ts.map +1 -0
  648. package/types/slotted-angular-icon.d.ts +94 -0
  649. package/types/slotted-angular-icon.d.ts.map +1 -0
  650. package/types/slotted-angular-image.d.ts +251 -0
  651. package/types/slotted-angular-image.d.ts.map +1 -0
  652. package/types/slotted-angular-import-export-center.d.ts +351 -0
  653. package/types/slotted-angular-import-export-center.d.ts.map +1 -0
  654. package/types/slotted-angular-inline-message.d.ts +195 -0
  655. package/types/slotted-angular-inline-message.d.ts.map +1 -0
  656. package/types/slotted-angular-inline.d.ts +41 -0
  657. package/types/slotted-angular-inline.d.ts.map +1 -0
  658. package/types/slotted-angular-kbd.d.ts +174 -0
  659. package/types/slotted-angular-kbd.d.ts.map +1 -0
  660. package/types/slotted-angular-link.d.ts +94 -0
  661. package/types/slotted-angular-link.d.ts.map +1 -0
  662. package/types/slotted-angular-list-item.d.ts +210 -0
  663. package/types/slotted-angular-list-item.d.ts.map +1 -0
  664. package/types/slotted-angular-list.d.ts +176 -0
  665. package/types/slotted-angular-list.d.ts.map +1 -0
  666. package/types/slotted-angular-listbox.d.ts +470 -0
  667. package/types/slotted-angular-listbox.d.ts.map +1 -0
  668. package/types/slotted-angular-loading-overlay.d.ts +219 -0
  669. package/types/slotted-angular-loading-overlay.d.ts.map +1 -0
  670. package/types/slotted-angular-markdown.d.ts +172 -0
  671. package/types/slotted-angular-markdown.d.ts.map +1 -0
  672. package/types/slotted-angular-menu.d.ts +448 -0
  673. package/types/slotted-angular-menu.d.ts.map +1 -0
  674. package/types/slotted-angular-menubar.d.ts +90 -0
  675. package/types/slotted-angular-menubar.d.ts.map +1 -0
  676. package/types/slotted-angular-message-scroller.d.ts +151 -0
  677. package/types/slotted-angular-message-scroller.d.ts.map +1 -0
  678. package/types/slotted-angular-message.d.ts +348 -0
  679. package/types/slotted-angular-message.d.ts.map +1 -0
  680. package/types/slotted-angular-multi-select.d.ts +462 -0
  681. package/types/slotted-angular-multi-select.d.ts.map +1 -0
  682. package/types/slotted-angular-navigation-menu.d.ts +309 -0
  683. package/types/slotted-angular-navigation-menu.d.ts.map +1 -0
  684. package/types/slotted-angular-notification-center.d.ts +318 -0
  685. package/types/slotted-angular-notification-center.d.ts.map +1 -0
  686. package/types/slotted-angular-number-field.d.ts +402 -0
  687. package/types/slotted-angular-number-field.d.ts.map +1 -0
  688. package/types/slotted-angular-otp-input.d.ts +286 -0
  689. package/types/slotted-angular-otp-input.d.ts.map +1 -0
  690. package/types/slotted-angular-page-header.d.ts +334 -0
  691. package/types/slotted-angular-page-header.d.ts.map +1 -0
  692. package/types/slotted-angular-page.d.ts +141 -0
  693. package/types/slotted-angular-page.d.ts.map +1 -0
  694. package/types/slotted-angular-pagination.d.ts +213 -0
  695. package/types/slotted-angular-pagination.d.ts.map +1 -0
  696. package/types/slotted-angular-popover.d.ts +366 -0
  697. package/types/slotted-angular-popover.d.ts.map +1 -0
  698. package/types/slotted-angular-progress-indicator.d.ts +312 -0
  699. package/types/slotted-angular-progress-indicator.d.ts.map +1 -0
  700. package/types/slotted-angular-prompt-composer.d.ts +242 -0
  701. package/types/slotted-angular-prompt-composer.d.ts.map +1 -0
  702. package/types/slotted-angular-prose.d.ts +171 -0
  703. package/types/slotted-angular-prose.d.ts.map +1 -0
  704. package/types/slotted-angular-radio-group.d.ts +268 -0
  705. package/types/slotted-angular-radio-group.d.ts.map +1 -0
  706. package/types/slotted-angular-rating.d.ts +374 -0
  707. package/types/slotted-angular-rating.d.ts.map +1 -0
  708. package/types/slotted-angular-result-state.d.ts +217 -0
  709. package/types/slotted-angular-result-state.d.ts.map +1 -0
  710. package/types/slotted-angular-saved-views.d.ts +198 -0
  711. package/types/slotted-angular-saved-views.d.ts.map +1 -0
  712. package/types/slotted-angular-scroll-area.d.ts +186 -0
  713. package/types/slotted-angular-scroll-area.d.ts.map +1 -0
  714. package/types/slotted-angular-section.d.ts +143 -0
  715. package/types/slotted-angular-section.d.ts.map +1 -0
  716. package/types/slotted-angular-segmented-control.d.ts +251 -0
  717. package/types/slotted-angular-segmented-control.d.ts.map +1 -0
  718. package/types/slotted-angular-select.d.ts +507 -0
  719. package/types/slotted-angular-select.d.ts.map +1 -0
  720. package/types/slotted-angular-side-navigation.d.ts +373 -0
  721. package/types/slotted-angular-side-navigation.d.ts.map +1 -0
  722. package/types/slotted-angular-skeleton.d.ts +198 -0
  723. package/types/slotted-angular-skeleton.d.ts.map +1 -0
  724. package/types/slotted-angular-slider.d.ts +216 -0
  725. package/types/slotted-angular-slider.d.ts.map +1 -0
  726. package/types/slotted-angular-sparkline.d.ts +106 -0
  727. package/types/slotted-angular-sparkline.d.ts.map +1 -0
  728. package/types/slotted-angular-split-button.d.ts +180 -0
  729. package/types/slotted-angular-split-button.d.ts.map +1 -0
  730. package/types/slotted-angular-splitter.d.ts +206 -0
  731. package/types/slotted-angular-splitter.d.ts.map +1 -0
  732. package/types/slotted-angular-stack.d.ts +38 -0
  733. package/types/slotted-angular-stack.d.ts.map +1 -0
  734. package/types/slotted-angular-stat-card.d.ts +232 -0
  735. package/types/slotted-angular-stat-card.d.ts.map +1 -0
  736. package/types/slotted-angular-status-indicator.d.ts +106 -0
  737. package/types/slotted-angular-status-indicator.d.ts.map +1 -0
  738. package/types/slotted-angular-stepper.d.ts +198 -0
  739. package/types/slotted-angular-stepper.d.ts.map +1 -0
  740. package/types/slotted-angular-switch.d.ts +243 -0
  741. package/types/slotted-angular-switch.d.ts.map +1 -0
  742. package/types/slotted-angular-table-of-contents.d.ts +210 -0
  743. package/types/slotted-angular-table-of-contents.d.ts.map +1 -0
  744. package/types/slotted-angular-table.d.ts +888 -0
  745. package/types/slotted-angular-table.d.ts.map +1 -0
  746. package/types/slotted-angular-tabs.d.ts +340 -0
  747. package/types/slotted-angular-tabs.d.ts.map +1 -0
  748. package/types/slotted-angular-tag.d.ts +279 -0
  749. package/types/slotted-angular-tag.d.ts.map +1 -0
  750. package/types/slotted-angular-tags-input.d.ts +302 -0
  751. package/types/slotted-angular-tags-input.d.ts.map +1 -0
  752. package/types/slotted-angular-text-field.d.ts +334 -0
  753. package/types/slotted-angular-text-field.d.ts.map +1 -0
  754. package/types/slotted-angular-textarea.d.ts +150 -0
  755. package/types/slotted-angular-textarea.d.ts.map +1 -0
  756. package/types/slotted-angular-theme.d.ts +26 -0
  757. package/types/slotted-angular-theme.d.ts.map +1 -0
  758. package/types/slotted-angular-time-field.d.ts +300 -0
  759. package/types/slotted-angular-time-field.d.ts.map +1 -0
  760. package/types/slotted-angular-time-picker.d.ts +260 -0
  761. package/types/slotted-angular-time-picker.d.ts.map +1 -0
  762. package/types/slotted-angular-time-range-picker.d.ts +401 -0
  763. package/types/slotted-angular-time-range-picker.d.ts.map +1 -0
  764. package/types/slotted-angular-timeline.d.ts +329 -0
  765. package/types/slotted-angular-timeline.d.ts.map +1 -0
  766. package/types/slotted-angular-toast.d.ts +340 -0
  767. package/types/slotted-angular-toast.d.ts.map +1 -0
  768. package/types/slotted-angular-toggle-group.d.ts +167 -0
  769. package/types/slotted-angular-toggle-group.d.ts.map +1 -0
  770. package/types/slotted-angular-toggle.d.ts +106 -0
  771. package/types/slotted-angular-toggle.d.ts.map +1 -0
  772. package/types/slotted-angular-toolbar.d.ts +252 -0
  773. package/types/slotted-angular-toolbar.d.ts.map +1 -0
  774. package/types/slotted-angular-tooltip.d.ts +388 -0
  775. package/types/slotted-angular-tooltip.d.ts.map +1 -0
  776. package/types/slotted-angular-top-navigation.d.ts +442 -0
  777. package/types/slotted-angular-top-navigation.d.ts.map +1 -0
  778. package/types/slotted-angular-tour.d.ts +440 -0
  779. package/types/slotted-angular-tour.d.ts.map +1 -0
  780. package/types/slotted-angular-transfer.d.ts +296 -0
  781. package/types/slotted-angular-transfer.d.ts.map +1 -0
  782. package/types/slotted-angular-tree.d.ts +499 -0
  783. package/types/slotted-angular-tree.d.ts.map +1 -0
  784. package/types/slotted-angular-typography.d.ts +89 -0
  785. package/types/slotted-angular-typography.d.ts.map +1 -0
  786. package/types/slotted-angular-upload.d.ts +365 -0
  787. package/types/slotted-angular-upload.d.ts.map +1 -0
  788. package/types/slotted-angular-visually-hidden.d.ts +19 -0
  789. package/types/slotted-angular-visually-hidden.d.ts.map +1 -0
  790. package/types/slotted-angular-wizard.d.ts +441 -0
  791. package/types/slotted-angular-wizard.d.ts.map +1 -0
  792. package/types/slotted-angular.d.ts +3 -0
  793. package/types/slotted-angular.d.ts.map +1 -0
@@ -0,0 +1,52 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ /**
5
+ * Inline arranges its children along the inline axis and lets them wrap. It
6
+ * paints nothing and adds no semantics: the element is the one the consumer
7
+ * wrote, so a list of tags stays a list.
8
+ *
9
+ * An axis reaches the stylesheet only when someone decided it. The base rule
10
+ * already carries the family defaults — wrapping, centred, separated by half a
11
+ * rem — and a layout is the most numerous element in a document.
12
+ *
13
+ * There is no input that reverses the children. The order they are written in
14
+ * is the order they are read in, by a screen reader and by the Tab key alike.
15
+ */
16
+ class SlInline {
17
+ /** Positions items across the flow. `baseline` puts their type on one line. */
18
+ align = input(/* @ts-ignore */
19
+ ...(ngDevMode ? [undefined, { debugName: "align" }] : /* istanbul ignore next */ []));
20
+ /** Separation between items, as a step on the space scale. */
21
+ gap = input(/* @ts-ignore */
22
+ ...(ngDevMode ? [undefined, { debugName: "gap" }] : /* istanbul ignore next */ []));
23
+ /** Positions items along the flow, and distributes the space between them. */
24
+ justify = input(/* @ts-ignore */
25
+ ...(ngDevMode ? [undefined, { debugName: "justify" }] : /* istanbul ignore next */ []));
26
+ /** `nowrap` keeps one line, and overflows a container narrower than it. */
27
+ wrap = input(/* @ts-ignore */
28
+ ...(ngDevMode ? [undefined, { debugName: "wrap" }] : /* istanbul ignore next */ []));
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlInline, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlInline, isStandalone: true, selector: "[slInline]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "inline", "data-part": "root" }, properties: { "attr.data-gap": "gap() ?? null", "attr.data-align": "align() ?? null", "attr.align": "null", "attr.data-justify": "justify() ?? null", "attr.data-wrap": "wrap() ?? null" } }, exportAs: ["slInline"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui=inline]{--_gap: var(--slotted-space-4, .5rem);display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--_gap);min-inline-size:0}[data-ui=inline][data-gap=\"0\"]{--_gap: 0}[data-ui=inline][data-gap=\"1\"]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=inline][data-gap=\"2\"]{--_gap: var(--slotted-space-2, .25rem)}[data-ui=inline][data-gap=\"3\"]{--_gap: var(--slotted-space-3, .375rem)}[data-ui=inline][data-gap=\"4\"]{--_gap: var(--slotted-space-4, .5rem)}[data-ui=inline][data-gap=\"5\"]{--_gap: var(--slotted-space-5, .75rem)}[data-ui=inline][data-gap=\"6\"]{--_gap: var(--slotted-space-6, 1rem)}[data-ui=inline][data-gap=\"7\"]{--_gap: var(--slotted-space-7, 1.25rem)}[data-ui=inline][data-gap=\"8\"]{--_gap: var(--slotted-space-8, 1.5rem)}[data-ui=inline][data-gap=\"9\"]{--_gap: var(--slotted-space-9, 2rem)}[data-ui=inline][data-gap=\"10\"]{--_gap: var(--slotted-space-10, 2.5rem)}[data-ui=inline][data-gap=\"11\"]{--_gap: var(--slotted-space-11, 3rem)}[data-ui=inline][data-gap=\"12\"]{--_gap: var(--slotted-space-12, 4rem)}[data-ui=inline][data-align=start]{align-items:start}[data-ui=inline][data-align=center]{align-items:center}[data-ui=inline][data-align=end]{align-items:end}[data-ui=inline][data-align=stretch]{align-items:stretch}[data-ui=inline][data-align=baseline]{align-items:baseline}[data-ui=inline][data-justify=start]{justify-content:start}[data-ui=inline][data-justify=center]{justify-content:center}[data-ui=inline][data-justify=end]{justify-content:end}[data-ui=inline][data-justify=between]{justify-content:space-between}[data-ui=inline][data-justify=around]{justify-content:space-around}[data-ui=inline][data-justify=evenly]{justify-content:space-evenly}[data-ui=inline][data-wrap=wrap]{flex-wrap:wrap}[data-ui=inline][data-wrap=nowrap]{flex-wrap:nowrap}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlInline, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: '[slInline]', standalone: true, exportAs: 'slInline', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
35
+ 'data-ui': 'inline',
36
+ 'data-part': 'root',
37
+ '[attr.data-gap]': 'gap() ?? null',
38
+ '[attr.data-align]': 'align() ?? null',
39
+ /* `align` is also an obsolete HTML attribute a browser still honours on a
40
+ div, centring its text; written statically for the input it would stay. */
41
+ '[attr.align]': 'null',
42
+ '[attr.data-justify]': 'justify() ?? null',
43
+ '[attr.data-wrap]': 'wrap() ?? null',
44
+ }, styles: ["@layer slotted.components{[data-ui=inline]{--_gap: var(--slotted-space-4, .5rem);display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--_gap);min-inline-size:0}[data-ui=inline][data-gap=\"0\"]{--_gap: 0}[data-ui=inline][data-gap=\"1\"]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=inline][data-gap=\"2\"]{--_gap: var(--slotted-space-2, .25rem)}[data-ui=inline][data-gap=\"3\"]{--_gap: var(--slotted-space-3, .375rem)}[data-ui=inline][data-gap=\"4\"]{--_gap: var(--slotted-space-4, .5rem)}[data-ui=inline][data-gap=\"5\"]{--_gap: var(--slotted-space-5, .75rem)}[data-ui=inline][data-gap=\"6\"]{--_gap: var(--slotted-space-6, 1rem)}[data-ui=inline][data-gap=\"7\"]{--_gap: var(--slotted-space-7, 1.25rem)}[data-ui=inline][data-gap=\"8\"]{--_gap: var(--slotted-space-8, 1.5rem)}[data-ui=inline][data-gap=\"9\"]{--_gap: var(--slotted-space-9, 2rem)}[data-ui=inline][data-gap=\"10\"]{--_gap: var(--slotted-space-10, 2.5rem)}[data-ui=inline][data-gap=\"11\"]{--_gap: var(--slotted-space-11, 3rem)}[data-ui=inline][data-gap=\"12\"]{--_gap: var(--slotted-space-12, 4rem)}[data-ui=inline][data-align=start]{align-items:start}[data-ui=inline][data-align=center]{align-items:center}[data-ui=inline][data-align=end]{align-items:end}[data-ui=inline][data-align=stretch]{align-items:stretch}[data-ui=inline][data-align=baseline]{align-items:baseline}[data-ui=inline][data-justify=start]{justify-content:start}[data-ui=inline][data-justify=center]{justify-content:center}[data-ui=inline][data-justify=end]{justify-content:end}[data-ui=inline][data-justify=between]{justify-content:space-between}[data-ui=inline][data-justify=around]{justify-content:space-around}[data-ui=inline][data-justify=evenly]{justify-content:space-evenly}[data-ui=inline][data-wrap=wrap]{flex-wrap:wrap}[data-ui=inline][data-wrap=nowrap]{flex-wrap:nowrap}}\n"] }]
45
+ }], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }] } });
46
+
47
+ /**
48
+ * Generated bundle index. Do not edit.
49
+ */
50
+
51
+ export { SlInline };
52
+ //# sourceMappingURL=slotted-angular-inline.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slotted-angular-inline.mjs","sources":["../../inline/src/inline.ts","../../inline/src/slotted-angular-inline.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A step on the space scale. Separation is chosen from the scale rather than\n * stated as a length, so a theme retunes every layout at once and no component\n * invents a rhythm of its own. `0` is the absence of separation.\n */\nexport type InlineGap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/** Across the flow, which for a run is the block axis. */\nexport type InlineAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n\n/** Along the flow, which for a run is the inline axis. */\nexport type InlineJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n\nexport type InlineWrap = 'wrap' | 'nowrap';\n\n/**\n * Inline arranges its children along the inline axis and lets them wrap. It\n * paints nothing and adds no semantics: the element is the one the consumer\n * wrote, so a list of tags stays a list.\n *\n * An axis reaches the stylesheet only when someone decided it. The base rule\n * already carries the family defaults — wrapping, centred, separated by half a\n * rem — and a layout is the most numerous element in a document.\n *\n * There is no input that reverses the children. The order they are written in\n * is the order they are read in, by a screen reader and by the Tab key alike.\n */\n@Component({\n selector: '[slInline]',\n standalone: true,\n exportAs: 'slInline',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/inline/inline.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'inline',\n 'data-part': 'root',\n '[attr.data-gap]': 'gap() ?? null',\n '[attr.data-align]': 'align() ?? null',\n /* `align` is also an obsolete HTML attribute a browser still honours on a\n div, centring its text; written statically for the input it would stay. */\n '[attr.align]': 'null',\n '[attr.data-justify]': 'justify() ?? null',\n '[attr.data-wrap]': 'wrap() ?? null',\n },\n})\nexport class SlInline {\n /** Positions items across the flow. `baseline` puts their type on one line. */\n readonly align = input<InlineAlign>();\n /** Separation between items, as a step on the space scale. */\n readonly gap = input<InlineGap>();\n /** Positions items along the flow, and distributes the space between them. */\n readonly justify = input<InlineJustify>();\n /** `nowrap` keeps one line, and overflows a container narrower than it. */\n readonly wrap = input<InlineWrap>();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAiBA;;;;;;;;;;;AAWG;MAqBU,QAAQ,CAAA;;AAEV,IAAA,KAAK,GAAG,KAAK;yFAAe;;AAE5B,IAAA,GAAG,GAAG,KAAK;uFAAa;;AAExB,IAAA,OAAO,GAAG,KAAK;2FAAiB;;AAEhC,IAAA,IAAI,GAAG,KAAK;wFAAc;uGARxB,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,u0BAhBT,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ozDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAgB1B,QAAQ,EAAA,UAAA,EAAA,CAAA;kBApBpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,QAAA,EACN,UAAU,YACV,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,iBAAiB,EAAE,eAAe;AAClC,wBAAA,mBAAmB,EAAE,iBAAiB;AACtC;AAC6E;AAC7E,wBAAA,cAAc,EAAE,MAAM;AACtB,wBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,wBAAA,kBAAkB,EAAE,gBAAgB;AACrC,qBAAA,EAAA,MAAA,EAAA,CAAA,ozDAAA,CAAA,EAAA;;;AC/CH;;AAEG;;"}
@@ -0,0 +1,284 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, PLATFORM_ID, isDevMode, input, booleanAttribute, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';
3
+ import { injectMessages } from '@slotted/angular/i18n';
4
+ import { keysMessages } from '@slotted/core/i18n';
5
+ import { resolvePlatform, resolveKey, resolveShortcut } from '@slotted/core/keys';
6
+ import { isPlatformBrowser } from '@angular/common';
7
+
8
+ const FALLBACK = {
9
+ platform: 'auto',
10
+ size: 'md',
11
+ variant: 'raised',
12
+ separator: '+',
13
+ legends: undefined,
14
+ names: undefined,
15
+ };
16
+ const KBD_DEFAULTS = new InjectionToken('slotted kbd defaults', {
17
+ providedIn: 'root',
18
+ factory: () => FALLBACK,
19
+ });
20
+ /**
21
+ * An application decides once which platform its shortcuts are written for, how
22
+ * its keys are painted, and which legends and names it writes in place of the
23
+ * catalog's for particular keys. A key that states any of them itself still
24
+ * wins: an explicit input is never overridden by the token. The words come from
25
+ * the `keys` catalog of the language in force (`provideSlotted`).
26
+ */
27
+ function provideKbdDefaults(defaults) {
28
+ return {
29
+ provide: KBD_DEFAULTS,
30
+ useFactory: () => ({
31
+ platform: defaults.platform ?? FALLBACK.platform,
32
+ size: defaults.size ?? FALLBACK.size,
33
+ variant: defaults.variant ?? FALLBACK.variant,
34
+ separator: defaults.separator ?? FALLBACK.separator,
35
+ legends: defaults.legends ?? FALLBACK.legends,
36
+ names: defaults.names ?? FALLBACK.names,
37
+ }),
38
+ };
39
+ }
40
+ /** What a key renders as here, before it states anything of its own. */
41
+ function injectKbdDefaults() {
42
+ return inject(KBD_DEFAULTS);
43
+ }
44
+ /**
45
+ * The reader's platform, resolved synchronously in the browser and never on the
46
+ * server.
47
+ *
48
+ * The asymmetry with the React binding is deliberate and is the one worth
49
+ * recording. React has `useSyncExternalStore`, which distinguishes a hydrating
50
+ * render from a plain client one, so it can be right on the first paint of a
51
+ * client-rendered page *and* free of hydration mismatches on a server-rendered
52
+ * one. Angular exposes no equivalent, so the choice is between a flash on every
53
+ * page and a mismatch on hydrated ones. This binding takes neither: it resolves
54
+ * at once in the browser, which is right for the client-rendered application,
55
+ * and an application that server-renders states `platform` through
56
+ * `provideKbdDefaults` — at which point nothing is detected at all.
57
+ *
58
+ * A development-mode warning is what stops that requirement from being
59
+ * discovered by a reader seeing `Ctrl` on their Mac.
60
+ */
61
+ function injectKbdPlatform() {
62
+ const defaults = injectKbdDefaults();
63
+ const browser = isPlatformBrowser(inject(PLATFORM_ID));
64
+ if (!browser && defaults.platform === 'auto' && isDevMode()) {
65
+ console.warn('[slotted/kbd] The platform cannot be detected on the server, so every shortcut is ' +
66
+ 'rendered for `other`. Call provideKbdDefaults({ platform }) to state it.');
67
+ }
68
+ return (stated) => {
69
+ const requested = stated ?? defaults.platform;
70
+ if (requested !== 'auto')
71
+ return requested;
72
+ return browser ? resolvePlatform('auto') : 'other';
73
+ };
74
+ }
75
+
76
+ const SHORTCUT_AXES = new InjectionToken('slotted kbd shortcut axes');
77
+ /**
78
+ * A namespace rather than a class, because there is nothing to instantiate: the
79
+ * combination provides its own signals and a key reads them if it has a
80
+ * combination to read.
81
+ */
82
+ const SlShortcutAxes = {
83
+ token: SHORTCUT_AXES,
84
+ injectOptional: () => inject(SHORTCUT_AXES, { optional: true, skipSelf: false }),
85
+ };
86
+
87
+ /**
88
+ * One key of a keyboard, drawn so a reader can find it on theirs.
89
+ *
90
+ * The directive is written on the consumer's own `<kbd>`, which is the element
91
+ * the HTML Standard defines for exactly this and the reason this binding needs
92
+ * no `render` prop: substituting the element is Angular's default.
93
+ *
94
+ * It is not a control: nothing here is focusable, nothing answers hover, and
95
+ * nothing binds a shortcut. Registering one is the application's, because WCAG
96
+ * 2.2 2.1.4 Character Key Shortcuts can only be answered by whoever knows
97
+ * whether the shortcut can be turned off.
98
+ */
99
+ class SlKbd {
100
+ /**
101
+ * A token from the vocabulary — `mod`, `meta`, `shift`, `escape`, `up` — or
102
+ * any of its aliases. It resolves to the legend the reader's platform draws
103
+ * and the word a screen reader hears in place of it.
104
+ */
105
+ keyName = input(undefined, /* @ts-ignore */
106
+ ...(ngDevMode ? [{ debugName: "keyName" }] : /* istanbul ignore next */ []));
107
+ /** Defaults to the combination, then to the provider, then to `auto`. */
108
+ platform = input(undefined, /* @ts-ignore */
109
+ ...(ngDevMode ? [{ debugName: "platform" }] : /* istanbul ignore next */ []));
110
+ /** Defaults to the combination, then to the provider, then to `md`. */
111
+ size = input(undefined, /* @ts-ignore */
112
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
113
+ /** Defaults to the combination, then to the provider, then to `raised`. */
114
+ variant = input(undefined, /* @ts-ignore */
115
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
116
+ /**
117
+ * Dims the key without claiming the item's semantics. `kbd` may carry only
118
+ * the global ARIA attributes, and `aria-disabled` is not one of them, so the
119
+ * row this key belongs to is what says it is unavailable.
120
+ */
121
+ disabled = input(undefined, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
122
+ /**
123
+ * Words laid over the `keys` catalog of the language in force, key by key:
124
+ * `legends.*` for what a cap shows, `names.*` for what a reader hears.
125
+ */
126
+ messages = input(undefined, /* @ts-ignore */
127
+ ...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
128
+ defaults = injectKbdDefaults();
129
+ platformOf = injectKbdPlatform();
130
+ t = injectMessages(keysMessages, this.messages);
131
+ /**
132
+ * The combination this key sits in, when it sits in one. It is optional, so a
133
+ * key written on its own works, and a key written by hand inside a `Shortcut`
134
+ * is painted like the combination around it without repeating four inputs.
135
+ */
136
+ group = SlShortcutAxes.injectOptional();
137
+ resolvedPlatform = computed(() => this.platformOf(this.platform() ?? this.group?.platform()), /* @ts-ignore */
138
+ ...(ngDevMode ? [{ debugName: "resolvedPlatform" }] : /* istanbul ignore next */ []));
139
+ resolvedSize = computed(() => this.size() ?? this.group?.size() ?? this.defaults.size, /* @ts-ignore */
140
+ ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
141
+ resolvedVariant = computed(() => this.variant() ?? this.group?.variant() ?? this.defaults.variant, /* @ts-ignore */
142
+ ...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
143
+ resolvedDisabled = computed(() => this.disabled() ?? this.group?.disabled() ?? false, /* @ts-ignore */
144
+ ...(ngDevMode ? [{ debugName: "resolvedDisabled" }] : /* istanbul ignore next */ []));
145
+ key = computed(() => {
146
+ const token = this.keyName();
147
+ if (token === undefined || token === '')
148
+ return undefined;
149
+ return resolveKey(token, {
150
+ platform: this.resolvedPlatform(),
151
+ t: this.t,
152
+ legends: this.defaults.legends,
153
+ names: this.defaults.names,
154
+ });
155
+ }, /* @ts-ignore */
156
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
157
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlKbd, deps: [], target: i0.ɵɵFactoryTarget.Component });
158
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlKbd, isStandalone: true, selector: "kbd[slKbd]", inputs: { keyName: { classPropertyName: "keyName", publicName: "keyName", isSignal: true, isRequired: false, transformFunction: null }, platform: { classPropertyName: "platform", publicName: "platform", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", 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 }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "kbd", "data-part": "root" }, properties: { "attr.data-size": "resolvedSize()", "attr.data-variant": "resolvedVariant()", "attr.data-key": "key()?.token ?? null", "attr.data-platform": "keyName() ? resolvedPlatform() : null", "attr.data-disabled": "resolvedDisabled() ? \"\" : null" } }, exportAs: ["slKbd"], ngImport: i0, template: `<span data-part="legend" [attr.aria-hidden]="key() ? true : null" [attr.data-legend]="key()?.symbolic ? 'symbol' : null">@if (key(); as resolved) {{{ resolved.legend }}} @else {<ng-content></ng-content>}</span>@if (key()?.name; as name) {<span data-part="name">{{ name }}</span>}`, isInline: true, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;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),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
159
+ }
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlKbd, decorators: [{
161
+ type: Component,
162
+ args: [{ selector: 'kbd[slKbd]', standalone: true, exportAs: 'slKbd', template: `<span data-part="legend" [attr.aria-hidden]="key() ? true : null" [attr.data-legend]="key()?.symbolic ? 'symbol' : null">@if (key(); as resolved) {{{ resolved.legend }}} @else {<ng-content></ng-content>}</span>@if (key()?.name; as name) {<span data-part="name">{{ name }}</span>}`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
163
+ 'data-ui': 'kbd',
164
+ 'data-part': 'root',
165
+ '[attr.data-size]': 'resolvedSize()',
166
+ '[attr.data-variant]': 'resolvedVariant()',
167
+ '[attr.data-key]': 'key()?.token ?? null',
168
+ '[attr.data-platform]': 'keyName() ? resolvedPlatform() : null',
169
+ '[attr.data-disabled]': 'resolvedDisabled() ? "" : null',
170
+ }, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;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),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"] }]
171
+ }], propDecorators: { keyName: [{ type: i0.Input, args: [{ isSignal: true, alias: "keyName", required: false }] }], platform: [{ type: i0.Input, args: [{ isSignal: true, alias: "platform", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }] } });
172
+
173
+ /**
174
+ * A whole key combination, and the element the HTML Standard says it is:
175
+ * “nesting a `kbd` element within another `kbd` element represents an actual key
176
+ * or other unit of input as a portion of a larger input”. shadcn's `KbdGroup` is
177
+ * a `div`, and Chakra and Radix put the whole combination inside one `kbd` as
178
+ * text; this is the markup the specification describes.
179
+ *
180
+ * `keys` is written once and rendered for the reader's platform. The modifiers
181
+ * are reordered into that platform's own convention — the Apple Style Guide
182
+ * writes Fn, Control, Option, Shift, Command, and Microsoft writes the Windows
183
+ * key ahead of Ctrl, Alt and Shift — so one authored string is right on both.
184
+ * The escape hatch is composition rather than a fifth input: keys projected into
185
+ * this element are rendered exactly as written.
186
+ */
187
+ class SlShortcut {
188
+ /**
189
+ * The shortcut, written once: `+` joins keys pressed together and whitespace
190
+ * joins the steps of a sequence.
191
+ */
192
+ keys = input(undefined, /* @ts-ignore */
193
+ ...(ngDevMode ? [{ debugName: "keys" }] : /* istanbul ignore next */ []));
194
+ /** Defaults to the provider, then to `auto`. */
195
+ platform = input(undefined, /* @ts-ignore */
196
+ ...(ngDevMode ? [{ debugName: "platform" }] : /* istanbul ignore next */ []));
197
+ /** Defaults to the provider, then to `md`. */
198
+ size = input(undefined, /* @ts-ignore */
199
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
200
+ /** Defaults to the provider, then to `raised`. */
201
+ variant = input(undefined, /* @ts-ignore */
202
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
203
+ disabled = input(undefined, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
204
+ /** Between two simultaneous keys. Defaults to the provider, then to `+`. */
205
+ separator = input(undefined, /* @ts-ignore */
206
+ ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
207
+ /**
208
+ * Words laid over the `keys` catalog of the language in force, key by key:
209
+ * `legends.*`, `names.*`, and `then` between two steps of a sequence.
210
+ */
211
+ messages = input(undefined, /* @ts-ignore */
212
+ ...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
213
+ /** Replaces what the eye sees, per key token. Defaults to the provider. */
214
+ legends = input(undefined, /* @ts-ignore */
215
+ ...(ngDevMode ? [{ debugName: "legends" }] : /* istanbul ignore next */ []));
216
+ /** Replaces what a reader hears, per key token. Defaults to the provider. */
217
+ names = input(undefined, /* @ts-ignore */
218
+ ...(ngDevMode ? [{ debugName: "names" }] : /* istanbul ignore next */ []));
219
+ defaults = injectKbdDefaults();
220
+ platformOf = injectKbdPlatform();
221
+ t = injectMessages(keysMessages, this.messages);
222
+ resolvedPlatform = computed(() => this.platformOf(this.platform()), /* @ts-ignore */
223
+ ...(ngDevMode ? [{ debugName: "resolvedPlatform" }] : /* istanbul ignore next */ []));
224
+ resolvedSize = computed(() => this.size() ?? this.defaults.size, /* @ts-ignore */
225
+ ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
226
+ resolvedVariant = computed(() => this.variant() ?? this.defaults.variant, /* @ts-ignore */
227
+ ...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
228
+ resolved = computed(() => {
229
+ const keys = this.keys();
230
+ if (keys === undefined)
231
+ return undefined;
232
+ return resolveShortcut(keys, {
233
+ platform: this.resolvedPlatform(),
234
+ t: this.t,
235
+ legends: this.legends() ?? this.defaults.legends,
236
+ names: this.names() ?? this.defaults.names,
237
+ separator: this.separator() ?? this.defaults.separator,
238
+ });
239
+ }, /* @ts-ignore */
240
+ ...(ngDevMode ? [{ debugName: "resolved" }] : /* istanbul ignore next */ []));
241
+ empty = computed(() => this.resolved()?.steps.length === 0, /* @ts-ignore */
242
+ ...(ngDevMode ? [{ debugName: "empty" }] : /* istanbul ignore next */ []));
243
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlShortcut, deps: [], target: i0.ɵɵFactoryTarget.Component });
244
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlShortcut, isStandalone: true, selector: "kbd[slShortcut]", inputs: { keys: { classPropertyName: "keys", publicName: "keys", isSignal: true, isRequired: false, transformFunction: null }, platform: { classPropertyName: "platform", publicName: "platform", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", 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 }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, legends: { classPropertyName: "legends", publicName: "legends", isSignal: true, isRequired: false, transformFunction: null }, names: { classPropertyName: "names", publicName: "names", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "kbd", "data-part": "shortcut" }, properties: { "attr.data-platform": "resolvedPlatform()", "attr.data-size": "resolvedSize()", "attr.data-variant": "resolvedVariant()", "attr.data-disabled": "disabled() ? \"\" : null", "style.display": "empty() ? \"none\" : null" } }, providers: [
245
+ {
246
+ provide: SlShortcutAxes.token,
247
+ /* The decorator runs before the class binding exists. */
248
+ useExisting: forwardRef(() => SlShortcut),
249
+ },
250
+ ], exportAs: ["slShortcut"], ngImport: i0, template: `@if (resolved(); as shortcut) {@for (step of shortcut.steps; track $index) {@if (!$first) {<span data-part="separator" data-separator="then">{{ shortcut.thenLabel }}</span>}@for (key of step; track $index) {@if (!$first && shortcut.separator) {<span aria-hidden="true" data-part="separator" data-separator="plus">{{ shortcut.separator }}</span>}<kbd data-ui="kbd" data-part="root" [attr.data-key]="key.token" [attr.data-platform]="shortcut.platform" [attr.data-size]="resolvedSize()" [attr.data-variant]="resolvedVariant()" [attr.data-disabled]="disabled() ? '' : null"><span data-part="legend" aria-hidden="true" [attr.data-legend]="key.symbolic ? 'symbol' : null">{{ key.legend }}</span>@if (key.name; as name) {<span data-part="name">{{ name }}</span>}</kbd>}}} @else {<ng-content></ng-content>}`, isInline: true, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;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),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
251
+ }
252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlShortcut, decorators: [{
253
+ type: Component,
254
+ args: [{ selector: 'kbd[slShortcut]', standalone: true, exportAs: 'slShortcut', template: `@if (resolved(); as shortcut) {@for (step of shortcut.steps; track $index) {@if (!$first) {<span data-part="separator" data-separator="then">{{ shortcut.thenLabel }}</span>}@for (key of step; track $index) {@if (!$first && shortcut.separator) {<span aria-hidden="true" data-part="separator" data-separator="plus">{{ shortcut.separator }}</span>}<kbd data-ui="kbd" data-part="root" [attr.data-key]="key.token" [attr.data-platform]="shortcut.platform" [attr.data-size]="resolvedSize()" [attr.data-variant]="resolvedVariant()" [attr.data-disabled]="disabled() ? '' : null"><span data-part="legend" aria-hidden="true" [attr.data-legend]="key.symbolic ? 'symbol' : null">{{ key.legend }}</span>@if (key.name; as name) {<span data-part="name">{{ name }}</span>}</kbd>}}} @else {<ng-content></ng-content>}`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
255
+ {
256
+ provide: SlShortcutAxes.token,
257
+ /* The decorator runs before the class binding exists. */
258
+ useExisting: forwardRef(() => SlShortcut),
259
+ },
260
+ ], host: {
261
+ 'data-ui': 'kbd',
262
+ 'data-part': 'shortcut',
263
+ '[attr.data-platform]': 'resolvedPlatform()',
264
+ '[attr.data-size]': 'resolvedSize()',
265
+ '[attr.data-variant]': 'resolvedVariant()',
266
+ '[attr.data-disabled]': 'disabled() ? "" : null',
267
+ /**
268
+ * A combination with nothing in it is nothing, not an empty cap at the end
269
+ * of a row announcing that a shortcut exists. The React binding returns
270
+ * nothing; this directive is written on an element the consumer owns, so it
271
+ * cannot un-write it, and `display: none` is the same outcome the platform
272
+ * can give from here. The inline style is what beats the family's own
273
+ * `display: inline-flex`, which the `hidden` attribute would lose to.
274
+ */
275
+ '[style.display]': 'empty() ? "none" : null',
276
+ }, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;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),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"] }]
277
+ }], propDecorators: { keys: [{ type: i0.Input, args: [{ isSignal: true, alias: "keys", required: false }] }], platform: [{ type: i0.Input, args: [{ isSignal: true, alias: "platform", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], legends: [{ type: i0.Input, args: [{ isSignal: true, alias: "legends", required: false }] }], names: [{ type: i0.Input, args: [{ isSignal: true, alias: "names", required: false }] }] } });
278
+
279
+ /**
280
+ * Generated bundle index. Do not edit.
281
+ */
282
+
283
+ export { KBD_DEFAULTS, SlKbd, SlShortcut, injectKbdDefaults, injectKbdPlatform, provideKbdDefaults };
284
+ //# sourceMappingURL=slotted-angular-kbd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slotted-angular-kbd.mjs","sources":["../../kbd/src/kbd-defaults.ts","../../kbd/src/kbd-axes.ts","../../kbd/src/kbd.ts","../../kbd/src/shortcut.ts","../../kbd/src/slotted-angular-kbd.ts"],"sourcesContent":["import { inject, InjectionToken, isDevMode, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport type { KbdPlatform, KbdPlatformInput } from '@slotted/core/keys';\nimport { resolvePlatform } from '@slotted/core/keys';\n\nexport type { KbdPlatform, KbdPlatformInput } from '@slotted/core/keys';\n\n/**\n * Four absolute heights — 16, 20, 24 and 28 pixels — and one that reads the text\n * around it. `inherit` is the step prose wants: an absolute cap inside a heading\n * is a stamp, and one in fine print is a slab.\n */\nexport type KbdSize = 'xs' | 'sm' | 'md' | 'lg' | 'inherit';\n\n/**\n * `raised` is the only value that looks like a key. `outline` owns no ground,\n * so it carries over any surface. `soft` is the tinted chip. `plain` is the\n * menu-row form, and it takes the colour of the text it sits in.\n */\nexport type KbdVariant = 'raised' | 'outline' | 'soft' | 'plain';\n\nexport interface KbdDefaults {\n /**\n * `auto` asks the runtime. State it instead where the page is rendered on a\n * server: nothing is detected then, and the first paint is already right.\n */\n platform: KbdPlatformInput;\n size: KbdSize;\n variant: KbdVariant;\n /** Between two simultaneous keys. A Mac joins with nothing whatever this says. */\n separator: string;\n /** Replaces what the eye sees, per key token: `{ ctrl: 'Strg' }`. */\n legends: Readonly<Record<string, string>> | undefined;\n /** Replaces what a reader hears, per key token: `{ ctrl: 'Steuerung' }`. */\n names: Readonly<Record<string, string>> | undefined;\n}\n\nconst FALLBACK: KbdDefaults = {\n platform: 'auto',\n size: 'md',\n variant: 'raised',\n separator: '+',\n legends: undefined,\n names: undefined,\n};\n\nexport const KBD_DEFAULTS = new InjectionToken<KbdDefaults>('slotted kbd defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once which platform its shortcuts are written for, how\n * its keys are painted, and which legends and names it writes in place of the\n * catalog's for particular keys. A key that states any of them itself still\n * wins: an explicit input is never overridden by the token. The words come from\n * the `keys` catalog of the language in force (`provideSlotted`).\n */\nexport function provideKbdDefaults(defaults: Partial<KbdDefaults>) {\n return {\n provide: KBD_DEFAULTS,\n useFactory: (): KbdDefaults => ({\n platform: defaults.platform ?? FALLBACK.platform,\n size: defaults.size ?? FALLBACK.size,\n variant: defaults.variant ?? FALLBACK.variant,\n separator: defaults.separator ?? FALLBACK.separator,\n legends: defaults.legends ?? FALLBACK.legends,\n names: defaults.names ?? FALLBACK.names,\n }),\n };\n}\n\n/** What a key renders as here, before it states anything of its own. */\nexport function injectKbdDefaults(): KbdDefaults {\n return inject(KBD_DEFAULTS);\n}\n\n/**\n * The reader's platform, resolved synchronously in the browser and never on the\n * server.\n *\n * The asymmetry with the React binding is deliberate and is the one worth\n * recording. React has `useSyncExternalStore`, which distinguishes a hydrating\n * render from a plain client one, so it can be right on the first paint of a\n * client-rendered page *and* free of hydration mismatches on a server-rendered\n * one. Angular exposes no equivalent, so the choice is between a flash on every\n * page and a mismatch on hydrated ones. This binding takes neither: it resolves\n * at once in the browser, which is right for the client-rendered application,\n * and an application that server-renders states `platform` through\n * `provideKbdDefaults` — at which point nothing is detected at all.\n *\n * A development-mode warning is what stops that requirement from being\n * discovered by a reader seeing `Ctrl` on their Mac.\n */\nexport function injectKbdPlatform(): (stated?: KbdPlatformInput) => KbdPlatform {\n const defaults = injectKbdDefaults();\n const browser = isPlatformBrowser(inject(PLATFORM_ID));\n\n if (!browser && defaults.platform === 'auto' && isDevMode()) {\n console.warn(\n '[slotted/kbd] The platform cannot be detected on the server, so every shortcut is ' +\n 'rendered for `other`. Call provideKbdDefaults({ platform }) to state it.',\n );\n }\n\n return (stated?: KbdPlatformInput) => {\n const requested = stated ?? defaults.platform;\n if (requested !== 'auto') return requested;\n return browser ? resolvePlatform('auto') : 'other';\n };\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport type { Signal } from '@angular/core';\n\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\n\n/**\n * What a combination hands to the keys inside it.\n *\n * Only what the combination was told is handed on: a key that states its own\n * size still wins, and a combination that states nothing hands on nothing, so\n * the provider's default is still what answers. Without this a page writing its\n * own keys inside a `Shortcut` would have to repeat four inputs on each of\n * them, and a key that forgot one would be painted differently from the\n * combination holding it.\n */\nexport interface SlShortcutAxesValue {\n platform: Signal<KbdPlatformInput | undefined>;\n size: Signal<KbdSize | undefined>;\n variant: Signal<KbdVariant | undefined>;\n disabled: Signal<boolean | undefined>;\n}\n\nconst SHORTCUT_AXES = new InjectionToken<SlShortcutAxesValue>('slotted kbd shortcut axes');\n\n/**\n * A namespace rather than a class, because there is nothing to instantiate: the\n * combination provides its own signals and a key reads them if it has a\n * combination to read.\n */\nexport const SlShortcutAxes = {\n token: SHORTCUT_AXES,\n injectOptional: (): SlShortcutAxesValue | null =>\n inject(SHORTCUT_AXES, { optional: true, skipSelf: false }),\n} as const;\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { keysMessages, type KeysMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { resolveKey } from '@slotted/core/keys';\n\nimport { injectKbdDefaults, injectKbdPlatform } from './kbd-defaults';\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\nimport { SlShortcutAxes } from './kbd-axes';\n\n/**\n * One key of a keyboard, drawn so a reader can find it on theirs.\n *\n * The directive is written on the consumer's own `<kbd>`, which is the element\n * the HTML Standard defines for exactly this and the reason this binding needs\n * no `render` prop: substituting the element is Angular's default.\n *\n * It is not a control: nothing here is focusable, nothing answers hover, and\n * nothing binds a shortcut. Registering one is the application's, because WCAG\n * 2.2 2.1.4 Character Key Shortcuts can only be answered by whoever knows\n * whether the shortcut can be turned off.\n */\n@Component({\n selector: 'kbd[slKbd]',\n standalone: true,\n exportAs: 'slKbd',\n /**\n * A named key wins over projected content, because it is the more specific of\n * two explicit instructions — and because content cannot be asked whether it\n * exists, so any rule that depended on the answer would be one only the React\n * binding could keep.\n *\n * Every space in this template is load-bearing: Angular collapses a newline\n * between two nodes into a space, and a space inside the legend would be a\n * space inside the key's word.\n */\n // prettier-ignore\n template: `<span data-part=\"legend\" [attr.aria-hidden]=\"key() ? true : null\" [attr.data-legend]=\"key()?.symbolic ? 'symbol' : null\">@if (key(); as resolved) {{{ resolved.legend }}} @else {<ng-content></ng-content>}</span>@if (key()?.name; as name) {<span data-part=\"name\">{{ name }}</span>}`,\n styleUrl: '../../../styles/src/kbd/kbd.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'kbd',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-key]': 'key()?.token ?? null',\n '[attr.data-platform]': 'keyName() ? resolvedPlatform() : null',\n '[attr.data-disabled]': 'resolvedDisabled() ? \"\" : null',\n },\n})\nexport class SlKbd {\n /**\n * A token from the vocabulary — `mod`, `meta`, `shift`, `escape`, `up` — or\n * any of its aliases. It resolves to the legend the reader's platform draws\n * and the word a screen reader hears in place of it.\n */\n readonly keyName = input<string | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `auto`. */\n readonly platform = input<KbdPlatformInput | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `md`. */\n readonly size = input<KbdSize | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `raised`. */\n readonly variant = input<KbdVariant | undefined>(undefined);\n /**\n * Dims the key without claiming the item's semantics. `kbd` may carry only\n * the global ARIA attributes, and `aria-disabled` is not one of them, so the\n * row this key belongs to is what says it is unavailable.\n */\n readonly disabled = input(undefined, { transform: booleanAttribute });\n /**\n * Words laid over the `keys` catalog of the language in force, key by key:\n * `legends.*` for what a cap shows, `names.*` for what a reader hears.\n */\n readonly messages = input<PartialMessages<KeysMessages> | undefined>(undefined);\n\n private readonly defaults = injectKbdDefaults();\n private readonly platformOf = injectKbdPlatform();\n private readonly t = injectMessages(keysMessages, this.messages);\n /**\n * The combination this key sits in, when it sits in one. It is optional, so a\n * key written on its own works, and a key written by hand inside a `Shortcut`\n * is painted like the combination around it without repeating four inputs.\n */\n private readonly group = SlShortcutAxes.injectOptional();\n\n protected readonly resolvedPlatform = computed(() =>\n this.platformOf(this.platform() ?? this.group?.platform()),\n );\n protected readonly resolvedSize = computed(\n () => this.size() ?? this.group?.size() ?? this.defaults.size,\n );\n protected readonly resolvedVariant = computed(\n () => this.variant() ?? this.group?.variant() ?? this.defaults.variant,\n );\n protected readonly resolvedDisabled = computed(\n () => this.disabled() ?? this.group?.disabled() ?? false,\n );\n\n protected readonly key = computed(() => {\n const token = this.keyName();\n if (token === undefined || token === '') return undefined;\n return resolveKey(token, {\n platform: this.resolvedPlatform(),\n t: this.t,\n legends: this.defaults.legends,\n names: this.defaults.names,\n });\n });\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { keysMessages, type KeysMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { resolveShortcut } from '@slotted/core/keys';\n\nimport { SlShortcutAxes } from './kbd-axes';\nimport { injectKbdDefaults, injectKbdPlatform } from './kbd-defaults';\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\n\n/**\n * A whole key combination, and the element the HTML Standard says it is:\n * “nesting a `kbd` element within another `kbd` element represents an actual key\n * or other unit of input as a portion of a larger input”. shadcn's `KbdGroup` is\n * a `div`, and Chakra and Radix put the whole combination inside one `kbd` as\n * text; this is the markup the specification describes.\n *\n * `keys` is written once and rendered for the reader's platform. The modifiers\n * are reordered into that platform's own convention — the Apple Style Guide\n * writes Fn, Control, Option, Shift, Command, and Microsoft writes the Windows\n * key ahead of Ctrl, Alt and Shift — so one authored string is right on both.\n * The escape hatch is composition rather than a fifth input: keys projected into\n * this element are rendered exactly as written.\n */\n@Component({\n selector: 'kbd[slShortcut]',\n standalone: true,\n exportAs: 'slShortcut',\n /**\n * The key markup is written here as well as in `SlKbd`, because a rendered key\n * has no token to hand back to that component — the combination resolved it\n * already, under its own `legends` and `names`. The two are held identical by\n * `kbd.spec.ts`, which renders the same key both ways and compares the DOM,\n * rather than by a shared helper that could only serve one of them.\n *\n * Every space is load-bearing: Angular collapses a newline between two nodes\n * into a space, and a space between two caps is a space the gap already owns.\n */\n // prettier-ignore\n template: `@if (resolved(); as shortcut) {@for (step of shortcut.steps; track $index) {@if (!$first) {<span data-part=\"separator\" data-separator=\"then\">{{ shortcut.thenLabel }}</span>}@for (key of step; track $index) {@if (!$first && shortcut.separator) {<span aria-hidden=\"true\" data-part=\"separator\" data-separator=\"plus\">{{ shortcut.separator }}</span>}<kbd data-ui=\"kbd\" data-part=\"root\" [attr.data-key]=\"key.token\" [attr.data-platform]=\"shortcut.platform\" [attr.data-size]=\"resolvedSize()\" [attr.data-variant]=\"resolvedVariant()\" [attr.data-disabled]=\"disabled() ? '' : null\"><span data-part=\"legend\" aria-hidden=\"true\" [attr.data-legend]=\"key.symbolic ? 'symbol' : null\">{{ key.legend }}</span>@if (key.name; as name) {<span data-part=\"name\">{{ name }}</span>}</kbd>}}} @else {<ng-content></ng-content>}`,\n styleUrl: '../../../styles/src/kbd/kbd.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: SlShortcutAxes.token,\n /* The decorator runs before the class binding exists. */\n useExisting: forwardRef(() => SlShortcut),\n },\n ],\n host: {\n 'data-ui': 'kbd',\n 'data-part': 'shortcut',\n '[attr.data-platform]': 'resolvedPlatform()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n /**\n * A combination with nothing in it is nothing, not an empty cap at the end\n * of a row announcing that a shortcut exists. The React binding returns\n * nothing; this directive is written on an element the consumer owns, so it\n * cannot un-write it, and `display: none` is the same outcome the platform\n * can give from here. The inline style is what beats the family's own\n * `display: inline-flex`, which the `hidden` attribute would lose to.\n */\n '[style.display]': 'empty() ? \"none\" : null',\n },\n})\nexport class SlShortcut {\n /**\n * The shortcut, written once: `+` joins keys pressed together and whitespace\n * joins the steps of a sequence.\n */\n readonly keys = input<string | undefined>(undefined);\n /** Defaults to the provider, then to `auto`. */\n readonly platform = input<KbdPlatformInput | undefined>(undefined);\n /** Defaults to the provider, then to `md`. */\n readonly size = input<KbdSize | undefined>(undefined);\n /** Defaults to the provider, then to `raised`. */\n readonly variant = input<KbdVariant | undefined>(undefined);\n readonly disabled = input(undefined, { transform: booleanAttribute });\n /** Between two simultaneous keys. Defaults to the provider, then to `+`. */\n readonly separator = input<string | undefined>(undefined);\n /**\n * Words laid over the `keys` catalog of the language in force, key by key:\n * `legends.*`, `names.*`, and `then` between two steps of a sequence.\n */\n readonly messages = input<PartialMessages<KeysMessages> | undefined>(undefined);\n /** Replaces what the eye sees, per key token. Defaults to the provider. */\n readonly legends = input<Readonly<Record<string, string>> | undefined>(undefined);\n /** Replaces what a reader hears, per key token. Defaults to the provider. */\n readonly names = input<Readonly<Record<string, string>> | undefined>(undefined);\n\n private readonly defaults = injectKbdDefaults();\n private readonly platformOf = injectKbdPlatform();\n private readonly t = injectMessages(keysMessages, this.messages);\n\n protected readonly resolvedPlatform = computed(() => this.platformOf(this.platform()));\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n\n protected readonly resolved = computed(() => {\n const keys = this.keys();\n if (keys === undefined) return undefined;\n return resolveShortcut(keys, {\n platform: this.resolvedPlatform(),\n t: this.t,\n legends: this.legends() ?? this.defaults.legends,\n names: this.names() ?? this.defaults.names,\n separator: this.separator() ?? this.defaults.separator,\n });\n });\n\n protected readonly empty = computed(() => this.resolved()?.steps.length === 0);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}