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

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 @@
1
+ {"version":3,"file":"slotted-angular-upload.mjs","sources":["../../upload/src/upload-defaults.ts","../../upload/src/upload-viewer.ts","../../upload/src/upload.ts","../../upload/src/slotted-angular-upload.ts"],"sourcesContent":["import { formatBytes, formatDuration } from '@slotted/core/upload';\nimport type { DuplicatePolicy, UploadAdapterLike } from '@slotted/core/upload';\nimport { inject, InjectionToken } from '@angular/core';\n\n/** Which of the three shapes the consolidation names is drawn. */\nexport type UploadVariant = 'dropzone' | 'button' | 'field';\n\n/** A column of rows, or a wall of pictures. The same rows, arranged. */\nexport type UploadLayout = 'list' | 'grid';\n\nexport type UploadSize = 'sm' | 'md' | 'lg';\nexport type UploadPreview = 'auto' | 'none';\nexport type UploadView = 'auto' | 'none';\n\nexport type UploadFilesReason =\n 'select' | 'pointer' | 'keyboard' | 'remove' | 'clear' | 'programmatic';\n\nexport type UploadViewingReason =\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'dismiss' | 'programmatic';\n\n/** The two formatters a row, the summary and the viewer read, bound to one locale. */\nexport interface UploadFormatters {\n bytes(value: number): string;\n duration(seconds: number): string;\n}\n\nexport interface UploadDefaults {\n variant: UploadVariant;\n layout: UploadLayout;\n size: UploadSize;\n preview: UploadPreview;\n view: UploadView;\n duplicates: DuplicatePolicy;\n clickToBrowse: boolean;\n allowDrop: boolean;\n allowPaste: boolean;\n preventDocumentDrop: boolean;\n autoUpload: boolean;\n pendingBlocksSubmit: boolean;\n adapter: UploadAdapterLike | undefined;\n concurrency: number;\n retries: number;\n retryDelay: number;\n stallAfter: number;\n maxRows: number;\n fileKey: ((file: File) => string) | undefined;\n}\n\nconst FALLBACK: UploadDefaults = {\n variant: 'dropzone',\n layout: 'list',\n size: 'md',\n preview: 'auto',\n view: 'auto',\n duplicates: 'reject',\n clickToBrowse: true,\n allowDrop: true,\n allowPaste: true,\n preventDocumentDrop: true,\n autoUpload: true,\n pendingBlocksSubmit: true,\n adapter: undefined,\n concurrency: 3,\n retries: 0,\n retryDelay: 1000,\n stallAfter: 10000,\n maxRows: 6,\n fileKey: undefined,\n};\n\nexport const UPLOAD_DEFAULTS = new InjectionToken<UploadDefaults>('slotted upload defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/** What `provideUploadDefaults` takes: any of the defaults, the rest kept. */\nexport type UploadDefaultsInput = Partial<UploadDefaults>;\n\n/**\n * An application decides once what its uploads accept, where they send and how\n * many run at once. An upload that states any of them itself still wins. Every\n * word and the locale that writes sizes and durations come from the language\n * in force (`provideSlotted`).\n *\n * The adapter is here for the same reason: an application sends to one place,\n * and repeating the sender on every form is how one of them ends up pointing\n * somewhere else.\n */\nexport function provideUploadDefaults(defaults: UploadDefaultsInput) {\n return {\n provide: UPLOAD_DEFAULTS,\n useFactory: (): UploadDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\nexport function injectUploadDefaults(): UploadDefaults {\n return inject(UPLOAD_DEFAULTS);\n}\n\n/** The two formatters a row and a summary read, bound to one locale. */\nexport function uploadFormatters(locale: string): UploadFormatters {\n return {\n bytes: (value: number) => formatBytes(value, locale),\n duration: (seconds: number) => formatDuration(seconds, locale),\n };\n}\n","import { SlDialog, SlDialogTitle } from '@slotted/angular/dialog';\nimport type { DialogChangeRequest } from '@slotted/angular/dialog';\nimport { formatBytes, isViewable } from '@slotted/core/upload';\nimport type { FileKind, UploadFile } from '@slotted/core/upload';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\nimport { uploadMessages, type PartialMessages, type UploadMessages } from '@slotted/core/i18n';\n\nimport type { UploadSize, UploadViewingReason } from './upload-defaults';\n\n/**\n * What a file is drawn as on its tile: one glyph per kind, the plain file for\n * anything no kind claims. The row's tile and the viewer's stage read the same\n * map, so a kind never has two marks.\n */\nexport const KIND_GLYPH: Record<FileKind, GlyphName> = {\n archive: 'file-archive',\n audio: 'file-audio',\n document: 'file-type',\n image: 'file-image',\n other: 'file',\n pdf: 'file-text',\n presentation: 'presentation',\n spreadsheet: 'file-spreadsheet',\n video: 'file-video',\n};\n\nexport interface UploadViewingRequest {\n key: string | null;\n reason: UploadViewingReason;\n source: unknown;\n}\n\n/**\n * A file, full screen, on a surface of its own.\n *\n * A preview that left the page was the first answer and it was the wrong one:\n * it loses the form the reader was in the middle of filling in. The tab\n * survives as the escape hatch in the header, where a PDF is better read in the\n * browser's own full window.\n *\n * `dialog` owns the layer, the scrim, the focus containment, the scroll lock and\n * Escape, exactly as it does in React; what this owns is the stage, the header\n * and the two controls that move through the set. The first answer drew the\n * surface here instead, on the ground that the Angular dialog is opened through\n * a service — it is not: `sl-dialog` is a component with `open` and projected\n * content, and drawing the surface by hand shipped a panel with no layer, no\n * scrim and no containment, sitting in the page under the family.\n */\n@Component({\n selector: 'div[slUploadViewer]',\n standalone: true,\n exportAs: 'slUploadViewer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SlDialog, SlDialogTitle, SlGlyph, SlIcon],\n host: {\n '[attr.hidden]': 'current() ? null : \"\"',\n '(keydown)': 'onKey($event)',\n },\n template: `\n <!--\n The layer stands whether or not a file is open, and the open input is what\n moves it. Written the other way round — the dialog created by the same\n block that opens it — the presence machine reached open in an effect after\n the view had been made and the layer's own template was never refreshed:\n the component reported itself open and mounted, with nothing in the\n document to show for it.\n -->\n <sl-dialog\n (openChangeRequest)=\"onDialogRequest($event)\"\n [open]=\"current() !== undefined\"\n fullScreen=\"always\"\n >\n @if (current(); as file) {\n <div [attr.data-size]=\"size()\" data-part=\"viewer\" data-ui=\"upload\">\n <div data-part=\"viewerHeader\">\n <div>\n <h2 data-part=\"viewerTitle\" slDialogTitle>{{ file.name }}</h2>\n <span data-part=\"viewerMeta\">{{ metaText() }}</span>\n </div>\n <span data-part=\"viewerActions\">\n @if (url()) {\n <button\n (click)=\"openExternally()\"\n [attr.aria-label]=\"t('viewerExternal')\"\n data-part=\"viewerExternal\"\n type=\"button\"\n >\n <span slIcon><svg slGlyph name=\"external\"></svg></span>\n </button>\n }\n <button\n (click)=\"close($event)\"\n [attr.aria-label]=\"t('viewerClose')\"\n data-part=\"viewerClose\"\n type=\"button\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n </span>\n </div>\n\n <div data-part=\"viewerStage\">\n @if (shown().length > 1) {\n <button\n (click)=\"move(-1, $event)\"\n [attr.aria-label]=\"t('viewerPrevious')\"\n [disabled]=\"index() <= 0\"\n data-part=\"viewerPrevious\"\n type=\"button\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n }\n\n @switch (stage()) {\n @case ('image') {\n <img [alt]=\"file.name\" [src]=\"url()\" />\n }\n @case ('video') {\n <video [src]=\"url()\" controls></video>\n }\n @case ('audio') {\n <audio [src]=\"url()\" controls></audio>\n }\n @case ('pdf') {\n <iframe [src]=\"frameUrl()\" [title]=\"file.name\"></iframe>\n }\n @case ('text') {\n <iframe [src]=\"frameUrl()\" [title]=\"file.name\" sandbox=\"\"></iframe>\n }\n @default {\n <span\n [attr.data-extension]=\"extensionLabel()\"\n [attr.data-kind]=\"file.kind\"\n data-part=\"preview\"\n >\n <span slIcon><svg slGlyph [name]=\"kindGlyph[file.kind]\"></svg></span>\n </span>\n <p>{{ t('viewerUnsupported') }}</p>\n }\n }\n\n @if (shown().length > 1) {\n <button\n (click)=\"move(1, $event)\"\n [attr.aria-label]=\"t('viewerNext')\"\n [disabled]=\"index() === -1 || index() >= shown().length - 1\"\n data-part=\"viewerNext\"\n type=\"button\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n }\n </div>\n </div>\n }\n </sl-dialog>\n `,\n})\nexport class SlUploadViewer {\n readonly files = input<readonly UploadFile[]>([]);\n readonly viewing = input<string | null>(null);\n readonly urls = input<ReadonlyMap<string, string>>(new Map());\n /** The upload's own `messages`, laid over the catalog of the language in force. */\n readonly messages = input<PartialMessages<UploadMessages> | undefined>(undefined);\n /** What the size is written in. Absent, the language in force. */\n readonly locale = input<string | undefined>(undefined);\n /** The family's size, restated on the layer: it is portalled out of the root. */\n readonly size = input<UploadSize>('md');\n\n readonly viewingChange = output<UploadViewingRequest>();\n\n protected readonly kindGlyph = KIND_GLYPH;\n private readonly contextLocale = injectLocale();\n /** The family's words in the language in force, with the upload's `messages` laid over them. */\n readonly t = injectMessages(uploadMessages, this.messages);\n\n /**\n * Only what the viewer can render, so previous and next skip a spreadsheet\n * sitting between two photographs rather than stopping on it.\n */\n readonly shown = computed(() =>\n this.files().filter((file) => file.file !== undefined && isViewable(file)),\n );\n readonly index = computed(() => this.shown().findIndex((file) => file.key === this.viewing()));\n readonly current = computed(() => {\n const key = this.viewing();\n if (key === null) return undefined;\n return this.shown()[this.index()] ?? this.files().find((file) => file.key === key);\n });\n\n readonly url = computed(() => {\n const file = this.current();\n return file === undefined ? undefined : this.urls().get(file.key);\n });\n\n /**\n * The frame's source, trusted explicitly. Angular refuses an interpolated\n * resource URL and renders an empty frame instead, which is what a PDF was\n * here until it was measured. What is trusted is not a consumer's string: it\n * is the object URL this family made, with `URL.createObjectURL`, for a file\n * the reader chose in this browser.\n */\n private readonly sanitizer = inject(DomSanitizer);\n readonly frameUrl = computed(() => {\n const url = this.url();\n return url === undefined ? null : this.sanitizer.bypassSecurityTrustResourceUrl(url);\n });\n\n readonly stage = computed(() => {\n const file = this.current();\n if (file === undefined || this.url() === undefined) return 'unsupported';\n const type = file.type.split(';')[0] ?? '';\n if (type.startsWith('image/')) return 'image';\n if (type.startsWith('video/')) return 'video';\n if (type.startsWith('audio/')) return 'audio';\n /*\n * A PDF is framed without `sandbox` and everything else with it, and the\n * asymmetry is measured rather than assumed. Chrome's PDF viewer is blocked in\n * a sandboxed frame — with `sandbox=\"\"` and with `sandbox=\"allow-scripts\"`\n * alike, both photographed against a one-page document — so the sandbox that\n * protects a dropped `text/html` file is also what made every PDF preview a\n * grey box, which is how a reader met it.\n *\n * What makes the exception safe is the type: the object URL carries the file's\n * own media type, Chrome dispatches `application/pdf` to the PDF viewer by\n * that type and does not sniff HTML out of it — an HTML document served as\n * `application/pdf` in an unsandboxed frame ran no script, measured the same\n * way. Text keeps the sandbox, with neither `allow-scripts` nor\n * `allow-same-origin`, because an object URL inherits this document's origin.\n */\n if (type === 'application/pdf') return 'pdf';\n if (type.startsWith('text/')) return 'text';\n return 'unsupported';\n });\n\n readonly metaText = computed(() => {\n const file = this.current();\n if (file === undefined) return '';\n const size = formatBytes(file.size, this.locale() ?? this.contextLocale());\n const kind = this.t(file.kind);\n return this.index() === -1\n ? this.t('viewerMeta', { size, kind })\n : this.t('viewerMetaPosition', {\n size,\n kind,\n index: this.index() + 1,\n count: this.shown().length,\n });\n });\n\n readonly extensionLabel = computed(() => {\n const name = this.current()?.name ?? '';\n const dot = name.lastIndexOf('.');\n return dot <= 0 ? this.t('noExtension') : name.slice(dot + 1).toUpperCase();\n });\n\n constructor() {\n const onKey = (event: KeyboardEvent) => {\n if (this.current() === undefined) return;\n this.onKey(event);\n };\n document.addEventListener('keydown', onKey);\n inject(DestroyRef).onDestroy(() => document.removeEventListener('keydown', onKey));\n }\n\n protected onKey(event: KeyboardEvent) {\n if (this.current() === undefined) return;\n const shown = this.shown();\n\n /* Escape is the dialog's, and it arrives here as a close request instead. */\n if (event.key === 'ArrowLeft') this.move(-1, event);\n else if (event.key === 'ArrowRight') this.move(1, event);\n else if (event.key === 'Home') this.emit(shown[0]?.key ?? null, 'keyboard', event);\n else if (event.key === 'End') this.emit(shown.at(-1)?.key ?? null, 'keyboard', event);\n else return;\n\n event.preventDefault();\n }\n\n protected move(step: number, source: Event) {\n const next = this.shown()[this.index() + step];\n if (next !== undefined) this.emit(next.key, 'keyboard', source);\n }\n\n protected close(source: Event) {\n this.emit(null, 'pointer', source);\n }\n\n /**\n * The layer closed itself — Escape, the scrim, or the dialog's own control.\n * Only the reasons this family declares survive the translation; the rest is\n * a dismissal, which is what `dismiss` means in every state model here.\n */\n protected onDialogRequest(request: DialogChangeRequest) {\n if (request.value) return;\n const reason =\n request.reason === 'escape' || request.reason === 'outsidePress' ? request.reason : 'dismiss';\n this.emit(null, reason, request.source);\n }\n\n protected openExternally() {\n const url = this.url();\n if (url !== undefined) window.open(url, '_blank', 'noopener,noreferrer');\n }\n\n private emit(key: string | null, reason: UploadViewingReason, source: unknown) {\n this.viewingChange.emit({ key, reason, source });\n }\n}\n","import { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\nimport {\n createUploadRunner,\n estimateRemaining,\n isViewable,\n selectFiles,\n splitName,\n uploadSummary,\n} from '@slotted/core/upload';\nimport type {\n DuplicatePolicy,\n UploadAdapterLike,\n UploadFile,\n UploadPatch,\n UploadRejectionReason,\n UploadRunner,\n} from '@slotted/core/upload';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlProgressBar } from '@slotted/angular/progress-indicator';\nimport { uploadMessages, type PartialMessages, type UploadMessages } from '@slotted/core/i18n';\n\nimport {\n injectUploadDefaults,\n uploadFormatters,\n type UploadLayout,\n type UploadPreview,\n type UploadSize,\n type UploadVariant,\n type UploadView,\n} from './upload-defaults';\nimport { KIND_GLYPH, SlUploadViewer } from './upload-viewer';\n\n/**\n * Files, and what happens to them.\n *\n * One family for what `docs/component-features.md` §17 lists as three: a drop\n * region, a file input, and the manager that shows what is being sent.\n *\n * **The trigger is the `<label>` and the region is not.** What the reader\n * focuses is an `<input type=\"file\">` clipped to one pixel inside the trigger,\n * so the input's accessible name is the trigger's own text rather than every\n * word in the box.\n *\n * **The family calls an adapter and reports what it says.** It holds no URL, no\n * method, no header and no credential.\n */\n@Component({\n selector: 'div[slUpload]',\n standalone: true,\n exportAs: 'slUpload',\n imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlProgressBar, SlUploadViewer],\n styleUrls: [\n '../../../styles/src/upload/upload.css',\n '../../../styles/src/progress-indicator/progress-indicator.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlUpload), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlUpload), multi: true },\n ],\n host: {\n 'data-ui': 'upload',\n 'data-part': 'root',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-disabled]': \"resolvedDisabled() ? '' : null\",\n '[attr.data-readonly]': \"readOnly() ? '' : null\",\n '[attr.data-invalid]': \"invalid() ? '' : null\",\n '[attr.data-required]': \"required() ? '' : null\",\n '[attr.data-loading]': \"summary().pending ? '' : null\",\n '[attr.data-complete]': \"summary().complete ? '' : null\",\n '[attr.data-dragging]': \"dragging() || documentDrag() ? '' : null\",\n },\n template: `\n @if (label() && !insideField()) {\n <span data-part=\"label\">{{ label() }}</span>\n }\n @if (description() && !insideField()) {\n <p [id]=\"descriptionId\" data-part=\"description\">{{ description() }}</p>\n }\n\n @if (resolvedVariant() === 'button') {\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n } @else {\n <div\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragLeave()\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop($event)\"\n (paste)=\"onPaste($event)\"\n (click)=\"onZoneClick($event)\"\n [attr.data-drop-target]=\"verdict() === 'target' ? '' : null\"\n [attr.data-drop-invalid]=\"verdict() === 'invalid' ? '' : null\"\n [attr.data-browsable]=\"browsable() ? '' : null\"\n data-part=\"dropzone\"\n >\n <!-- The region carries the mark, so the trigger inside it does not. -->\n @if (resolvedVariant() === 'dropzone') {\n <span slIcon><svg slGlyph name=\"upload\"></svg></span>\n {{ t('dropzone') }}\n }\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n @if (resolvedVariant() === 'field') {\n <span data-part=\"meta\">{{ fieldSummary() }}</span>\n }\n </div>\n }\n\n @if (files().length > 1) {\n <div data-part=\"summary\">\n <span>{{ summaryText() }}</span>\n @if (!readOnly()) {\n <button (click)=\"clear($event)\" data-part=\"clear\" type=\"button\">\n {{ t('clear') }}\n </button>\n }\n </div>\n }\n\n @if (showList()) {\n <ul [style.--slotted-upload-visible-rows]=\"visibleRows()\" data-part=\"list\">\n @for (file of files(); track file.key) {\n <li [attr.data-status]=\"file.status\" data-part=\"item\">\n @if (resolvedPreview() !== 'none' || resolvedLayout() === 'grid') {\n <span\n [attr.data-extension]=\"extensionLabel(file)\"\n [attr.data-kind]=\"file.kind\"\n data-part=\"preview\"\n >\n @if (url(file) && file.type.startsWith('image/')) {\n <img [src]=\"url(file)\" alt=\"\" />\n } @else {\n <span slIcon><svg slGlyph [name]=\"kindGlyph[file.kind]\"></svg></span>\n }\n </span>\n }\n\n <div data-part=\"body\">\n @if (openable(file)) {\n <button (click)=\"open(file, $event)\" data-part=\"filename\" dir=\"auto\" type=\"button\">\n <span data-part=\"name\">{{ stem(file) }}</span>\n @if (extension(file)) {\n <span data-part=\"extension\">{{ extension(file) }}</span>\n }\n </button>\n } @else {\n <span data-part=\"filename\" dir=\"auto\">\n <span data-part=\"name\">{{ stem(file) }}</span>\n @if (extension(file)) {\n <span data-part=\"extension\">{{ extension(file) }}</span>\n }\n </span>\n }\n <div data-part=\"detail\">\n <span data-part=\"meta\">{{ formatters().bytes(file.size) }}</span>\n <span data-part=\"status\">{{ statusText(file) }}</span>\n </div>\n </div>\n\n <span data-part=\"actions\">\n @for (action of actions(file); track action.part) {\n <button\n (click)=\"act(file, action.action, $event)\"\n [attr.aria-label]=\"action.label\"\n [attr.data-part]=\"action.part\"\n type=\"button\"\n >\n <span slIcon><svg slGlyph [name]=\"action.glyph\"></svg></span>\n </button>\n }\n </span>\n\n @if (showBar(file)) {\n <div data-part=\"progress\">\n <div\n [tone]=\"file.status === 'uploading' ? 'accent' : 'warning'\"\n [value]=\"percent(file)\"\n decorative\n size=\"sm\"\n slProgressBar\n ></div>\n </div>\n }\n\n @if (file.status === 'rejected' || file.status === 'error') {\n <p data-part=\"message\">{{ messageText(file) }}</p>\n }\n </li>\n }\n </ul>\n }\n\n <ng-content />\n\n <div\n (viewingChange)=\"setViewing($event.key, $event.reason, $event.source)\"\n [files]=\"files()\"\n [locale]=\"resolvedLocale()\"\n [messages]=\"messages()\"\n [size]=\"resolvedSize()\"\n [urls]=\"urls()\"\n [viewing]=\"resolvedView() === 'none' ? null : viewing()\"\n slUploadViewer\n ></div>\n\n <ng-template #triggerTemplate>\n <label #trigger data-part=\"trigger\">\n @if (resolvedVariant() !== 'dropzone') {\n <span slIcon><svg slGlyph name=\"upload\"></svg></span>\n }\n <input\n #control\n (change)=\"onPicked($event)\"\n [attr.accept]=\"accept() ?? null\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.capture]=\"capture() ?? null\"\n [attr.disabled]=\"resolvedDisabled() ? '' : null\"\n [attr.id]=\"controlId\"\n [attr.multiple]=\"multiple() ? '' : null\"\n [attr.name]=\"name() ?? null\"\n [attr.required]=\"required() ? '' : null\"\n [attr.webkitdirectory]=\"directory() ? '' : null\"\n data-part=\"input\"\n type=\"file\"\n />\n {{ t('trigger') }}\n </label>\n </ng-template>\n `,\n})\nexport class SlUpload implements ControlValueAccessor, Validator {\n private readonly defaults = injectUploadDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * A static `id` the consumer wrote, read before any binding computes, so the\n * binding never writes over it.\n */\n private static count = 0;\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n readonly controlId = this.writtenId ?? `slotted-upload-${(SlUpload.count += 1)}`;\n readonly descriptionId = `${this.controlId}-description`;\n protected readonly kindGlyph = KIND_GLYPH;\n\n /** Present means the consumer owns the selection. */\n readonly files = model<readonly UploadFile[]>([]);\n /** Present means the consumer owns which file the viewer is open on. */\n readonly viewing = model<string | null>(null);\n\n readonly filesChange2 = output<ChangeRequest<readonly UploadFile[]>>({ alias: 'filesRequest' });\n readonly viewingRequest = output<ChangeRequest<string | null>>();\n readonly reject = output<readonly UploadFile[]>();\n\n readonly accept = input<string | undefined>(undefined);\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly directory = input(false, { transform: booleanAttribute });\n readonly capture = input<'user' | 'environment' | undefined>(undefined);\n readonly maxFiles = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly minFiles = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly maxSize = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly minSize = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly maxTotalSize = input<number | undefined, unknown>(undefined, {\n transform: optionalNumber,\n });\n /**\n * The consumer's own rule. It is `fileValidator` in the class and `validate`\n * in a template, because `Validator.validate` is a method this class already\n * has and two members cannot share a name.\n */\n readonly fileValidator = input<\n ((file: File) => UploadRejectionReason | null | undefined) | undefined\n >(undefined, { alias: 'validate' });\n readonly transform = input<((files: File[]) => File[] | Promise<File[]>) | undefined>(undefined);\n\n readonly variant = input<UploadVariant | undefined>(undefined);\n readonly layout = input<UploadLayout | undefined>(undefined);\n readonly size = input<UploadSize | undefined>(undefined);\n readonly preview = input<UploadPreview | undefined>(undefined);\n readonly view = input<UploadView | undefined>(undefined);\n readonly duplicates = input<DuplicatePolicy | undefined>(undefined);\n readonly clickToBrowse = input<boolean | undefined, unknown>(undefined, {\n transform: optionalBoolean,\n });\n readonly allowDrop = input<boolean | undefined, unknown>(undefined, {\n transform: optionalBoolean,\n });\n readonly allowPaste = input<boolean | undefined, unknown>(undefined, {\n transform: optionalBoolean,\n });\n readonly preventDocumentDrop = input<boolean | undefined, unknown>(undefined, {\n transform: optionalBoolean,\n });\n readonly autoUpload = input<boolean | undefined, unknown>(undefined, {\n transform: optionalBoolean,\n });\n readonly pendingBlocksSubmit = input<boolean | undefined, unknown>(undefined, {\n transform: optionalBoolean,\n });\n\n readonly adapter = input<UploadAdapterLike | undefined>(undefined);\n readonly concurrency = input<number | undefined, unknown>(undefined, {\n transform: optionalNumber,\n });\n readonly retries = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly retryDelay = input<number | undefined, unknown>(undefined, {\n transform: optionalNumber,\n });\n readonly stallAfter = input<number | undefined, unknown>(undefined, {\n transform: optionalNumber,\n });\n readonly maxRows = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** What sizes and durations are written in. Absent, the language in force. */\n readonly locale = input<string | undefined>(undefined);\n readonly fileKey = input<((file: File) => string) | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * controls, the word for each status and each kind, the sentences about the\n * queue, and why a file was refused (`rejection.*`). Only the application\n * knows whether a limit is a policy, a plan or a bug, so a refusal is worded\n * here.\n */\n readonly messages = input<PartialMessages<UploadMessages> | undefined>(undefined);\n\n readonly label = input<string | undefined>(undefined);\n readonly description = input<string | undefined>(undefined);\n readonly name = input<string | undefined>(undefined);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly readOnly = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n\n private readonly formDisabled = signal(false);\n readonly dragging = signal(false);\n readonly documentDrag = signal(false);\n readonly verdict = signal<'target' | 'invalid' | null>(null);\n readonly urls = signal<ReadonlyMap<string, string>>(new Map());\n private readonly pausable = signal(false);\n private readonly samples = signal<Array<{ at: number; loaded: number }>>([]);\n private depth = 0;\n private runner: UploadRunner | null = null;\n private statuses: ReadonlyMap<string, UploadFile['status']> = new Map();\n /** `null` until the first run, which records the initial list without saying it. */\n private finished: boolean | null = null;\n private onChangeFn: (value: readonly UploadFile[]) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n private onValidatorChange: () => void = () => undefined;\n\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedLayout = computed(() => this.layout() ?? this.defaults.layout);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedPreview = computed(() => this.preview() ?? this.defaults.preview);\n readonly resolvedView = computed(() => this.view() ?? this.defaults.view);\n private readonly contextLocale = injectLocale();\n readonly resolvedLocale = computed(() => this.locale() ?? this.contextLocale());\n /** The family's words in the language in force, with this upload's `messages` laid over them. */\n readonly t = injectMessages(uploadMessages, this.messages);\n readonly resolvedDisabled = computed(() => this.disabled() || this.formDisabled());\n readonly formatters = computed(() => uploadFormatters(this.resolvedLocale()));\n readonly summary = computed(() => uploadSummary(this.files()));\n readonly insideField = computed(() => this.host.closest('[data-ui=\"field\"]') !== null);\n\n readonly visibleRows = computed(() => {\n const rows = this.maxRows() ?? this.defaults.maxRows;\n return rows === 0 ? this.files().length : rows;\n });\n\n readonly showList = computed(\n () =>\n this.files().length > 0 && !(this.resolvedVariant() === 'field' && this.files().length === 1),\n );\n\n readonly fieldSummary = computed(() => {\n const list = this.files();\n if (list.length === 0) return '—';\n const first = list[0];\n if (list.length === 1 && first !== undefined) {\n return `${first.name} · ${this.formatters().bytes(first.size)}`;\n }\n return this.t('selection', { count: list.length });\n });\n\n readonly summaryText = computed(() => {\n const summary = this.summary();\n const remaining = summary.pending ? estimateRemaining(this.samples(), summary) : null;\n const counts = { uploaded: summary.counts.success, total: summary.total };\n return remaining === null\n ? this.t('summary', counts)\n : this.t('summaryRemaining', {\n ...counts,\n duration: this.formatters().duration(remaining),\n });\n });\n\n /** Whether a click anywhere in the region opens the picker, which is when it answers a pointer. */\n protected readonly browsable = computed(\n () => (this.clickToBrowse() ?? this.defaults.clickToBrowse) && this.accepting(),\n );\n\n protected readonly describedBy = computed(() => {\n const parts = [this.description() === undefined ? undefined : this.descriptionId].filter(\n Boolean,\n );\n return parts.length === 0 ? null : parts.join(' ');\n });\n\n constructor() {\n /* The runner is rebuilt when the adapter or its policy changes, and torn\n down with the component: an aborted transfer is what a page navigating\n away owes the reader. */\n effect((onCleanup) => {\n const adapter = this.adapter() ?? this.defaults.adapter;\n if (adapter === undefined) {\n this.runner = null;\n this.pausable.set(false);\n return;\n }\n const runner = createUploadRunner({\n adapter,\n concurrency: this.concurrency() ?? this.defaults.concurrency,\n retries: this.retries() ?? this.defaults.retries,\n retryDelay: this.retryDelay() ?? this.defaults.retryDelay,\n stallAfter: this.stallAfter() ?? this.defaults.stallAfter,\n onPatch: (key, patch) => this.patch(key, patch),\n });\n this.runner = runner;\n this.pausable.set(runner.pausable);\n onCleanup(() => runner.destroy());\n });\n\n /*\n * The status changes the reader did not necessarily cause and may not be\n * looking at are said: a transfer that failed, one that was stopped, and\n * the queue finishing. The previous status of every row is kept so each is\n * said once; a row seen for the first time is the list's initial content,\n * which the contract keeps silent.\n */\n effect(() => {\n const list = this.files();\n const summary = this.summary();\n untracked(() => {\n const announcer = getLiveAnnouncer();\n for (const file of list) {\n const before = this.statuses.get(file.key);\n if (before === undefined || before === file.status) continue;\n if (file.status === 'error' || file.status === 'canceled') {\n announcer?.announce(\n this.t('fileNotice', { name: file.name, message: this.t(file.status) }),\n );\n }\n }\n this.statuses = new Map(list.map((file) => [file.key, file.status]));\n\n const finished = summary.complete && summary.total > 0;\n if (finished && this.finished === false) {\n announcer?.announce(\n this.t('finished', { uploaded: summary.counts.success, total: summary.total }),\n );\n }\n this.finished = finished;\n });\n });\n\n /*\n * The family created the object URLs, so the family revokes them. §14\n * requires the revocation by name; Ant Design leaves it to the consumer and\n * Uppy owns a plugin for it.\n */\n effect(() => {\n const list = this.files();\n const wanted = new Map(this.urls());\n let moved = false;\n\n for (const file of list) {\n if (file.file === undefined || wanted.has(file.key) || !isViewable(file)) continue;\n wanted.set(file.key, URL.createObjectURL(file.file));\n moved = true;\n }\n const live = new Set(list.map((file) => file.key));\n for (const [key, url] of wanted) {\n if (live.has(key)) continue;\n URL.revokeObjectURL(url);\n wanted.delete(key);\n moved = true;\n }\n if (moved) this.urls.set(wanted);\n });\n\n /* The throughput window the remaining time is read from. */\n effect(() => {\n const loaded = this.summary().loaded;\n const samples = this.samples();\n if (samples.at(-1)?.loaded === loaded) return;\n this.samples.set([...samples, { at: Date.now(), loaded }].slice(-8));\n });\n\n /*\n * None of the nine surveyed implementations answers what happens when a\n * form is submitted while the bytes are still moving. The native submit is\n * refused on the control the reader can see, and Reactive Forms hears the\n * same thing through `Validator`.\n */\n effect(() => {\n const blocked = this.pendingBlocked();\n const element = this.host.querySelector<HTMLInputElement>('[data-part=\"input\"]');\n element?.setCustomValidity(blocked ? this.t('pending') : '');\n this.onValidatorChange();\n });\n\n this.destroyRef.onDestroy(() => {\n for (const url of this.urls().values()) URL.revokeObjectURL(url);\n this.runner?.destroy();\n this.documentGuard?.();\n });\n\n effect((onCleanup) => {\n if (!(this.preventDocumentDrop() ?? this.defaults.preventDocumentDrop)) return;\n onCleanup(this.guardDocument());\n });\n }\n\n private documentGuard: (() => void) | null = null;\n\n /**\n * A file dropped beside the region navigates the browser to that file and\n * loses the form. The drag it knows about is published so an application can\n * draw its own full-screen zone — which is a decision about the application,\n * not about a control.\n */\n private guardDocument() {\n const inside = (event: DragEvent) =>\n (event.target as Element | null)?.closest?.('[data-ui=\"upload\"]') !== null &&\n (event.target as Element | null)?.closest?.('[data-ui=\"upload\"]') !== undefined;\n\n const over = (event: DragEvent) => {\n if (![...(event.dataTransfer?.types ?? [])].includes('Files')) return;\n this.documentDrag.set(true);\n if (!inside(event)) {\n event.preventDefault();\n if (event.dataTransfer !== null) event.dataTransfer.dropEffect = 'none';\n }\n };\n const drop = (event: DragEvent) => {\n this.documentDrag.set(false);\n if (!inside(event)) event.preventDefault();\n };\n\n document.addEventListener('dragover', over);\n document.addEventListener('drop', drop);\n document.addEventListener('dragend', drop);\n this.documentGuard = () => {\n document.removeEventListener('dragover', over);\n document.removeEventListener('drop', drop);\n document.removeEventListener('dragend', drop);\n this.documentGuard = null;\n };\n return this.documentGuard;\n }\n\n /* ── Reactive Forms ─────────────────────────────────────────────────── */\n\n writeValue(value: readonly UploadFile[] | readonly File[] | null) {\n if (value === null) {\n this.files.set([]);\n return;\n }\n /* A form may hand back either shape; the value the family emits is always\n the richer one, because a row draws more than its bytes. */\n const normalised = value.map((entry) =>\n entry instanceof File\n ? {\n key: `${entry.name}:${entry.size}:${entry.lastModified}`,\n file: entry,\n name: entry.name,\n size: entry.size,\n type: entry.type,\n kind: 'other' as const,\n status: 'success' as const,\n loaded: entry.size,\n attempts: 0,\n }\n : entry,\n );\n this.files.set(normalised as readonly UploadFile[]);\n }\n\n registerOnChange(fn: (value: readonly UploadFile[]) => void) {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n registerOnValidatorChange(fn: () => void) {\n this.onValidatorChange = fn;\n }\n\n validate(): ValidationErrors | null {\n const errors: ValidationErrors = {};\n const summary = this.summary();\n const min = this.minFiles();\n const max = this.maxFiles();\n\n if (this.required() && summary.counts.success === 0) errors['required'] = true;\n if (min !== undefined && summary.counts.success < min) errors['minFiles'] = { min };\n if (max !== undefined && summary.total - summary.counts.rejected > max) {\n errors['maxFiles'] = { max };\n }\n if (this.pendingBlocked()) errors['uploadPending'] = true;\n\n return Object.keys(errors).length === 0 ? null : errors;\n }\n\n private pendingBlocked() {\n return (\n (this.pendingBlocksSubmit() ?? this.defaults.pendingBlocksSubmit) && this.summary().pending\n );\n }\n\n /* ── The selection ──────────────────────────────────────────────────── */\n\n private accepting() {\n return !this.resolvedDisabled() && !this.readOnly();\n }\n\n private request(next: readonly UploadFile[], reason: string, source: unknown) {\n const state = createControllable<readonly UploadFile[]>({\n controlled: undefined,\n initial: this.files(),\n onRequest: (change) => this.filesChange2.emit(change),\n equals: (a, b) => a === b,\n });\n state.request(next, reason as ChangeReason, source);\n this.files.set(next);\n this.onChangeFn(next);\n this.onValidatorChange();\n }\n\n private patch(key: string, changes: UploadPatch) {\n this.files.set(\n this.files().map((file) =>\n file.key === key ? ({ ...file, ...changes } as UploadFile) : file,\n ),\n );\n this.onChangeFn(this.files());\n this.onValidatorChange();\n }\n\n private async take(incoming: readonly File[], reason: string, source: unknown) {\n if (!this.accepting() || incoming.length === 0) return;\n const transform = this.transform();\n const prepared = transform === undefined ? [...incoming] : await transform([...incoming]);\n\n const existing = this.files();\n const outcome = selectFiles(prepared, existing, {\n accept: this.accept(),\n multiple: this.multiple(),\n directory: this.directory(),\n maxFiles: this.maxFiles(),\n maxSize: this.maxSize(),\n minSize: this.minSize(),\n maxTotalSize: this.maxTotalSize(),\n duplicates: this.duplicates() ?? this.defaults.duplicates,\n validate: this.fileValidator(),\n fileKey: this.fileKey() ?? this.defaults.fileKey,\n });\n\n this.request(outcome.files, reason, source);\n\n /* A refused file joins the list too, and is announced below with its reason. */\n const kept = outcome.files.filter(\n (file) => file.status !== 'rejected' && !existing.includes(file),\n ).length;\n const announcer = getLiveAnnouncer();\n if (kept > 0) announcer?.announce(this.t('added', { count: kept }));\n if (outcome.rejected.length > 0) {\n this.reject.emit(outcome.rejected);\n for (const file of outcome.rejected) {\n announcer?.announce(\n this.t('fileNotice', { name: file.name, message: this.messageText(file) }),\n );\n }\n }\n\n if (!(this.autoUpload() ?? this.defaults.autoUpload)) return;\n for (const file of outcome.files) {\n if (file.status !== 'ready' || file.file === undefined) continue;\n this.runner?.enqueue(file.key, file.file);\n }\n }\n\n protected onPicked(event: Event) {\n const element = event.target as HTMLInputElement;\n void this.take([...(element.files ?? [])], 'select', event);\n /* Emptied so that choosing the same file twice is two selections rather\n than one silent nothing. */\n element.value = '';\n }\n\n /* ── The drag ───────────────────────────────────────────────────────── */\n\n private judge(transferred: DataTransfer | null): 'target' | 'invalid' {\n const items = [...(transferred?.items ?? [])].filter((item) => item.kind === 'file');\n const max = this.maxFiles();\n if (items.length === 0) return 'invalid';\n if (!this.multiple() && items.length > 1) return 'invalid';\n if (max !== undefined && items.length > max) return 'invalid';\n\n const accept = this.accept();\n if (accept === undefined || accept.trim() === '') return 'target';\n return items.some((item) => item.type !== '' && !matchesTypeOnly(item.type, accept))\n ? 'invalid'\n : 'target';\n }\n\n protected onDragEnter(event: DragEvent) {\n if (!(this.allowDrop() ?? this.defaults.allowDrop) || !this.accepting()) return;\n /*\n * `dragenter` and `dragleave` fire for every element the pointer crosses, so\n * a drag moving onto a child fires `dragleave` on the region. Clearing the\n * state there makes the highlight flicker across the whole zone.\n */\n this.depth += 1;\n this.dragging.set(true);\n this.verdict.set(this.judge(event.dataTransfer));\n }\n\n protected onDragLeave() {\n if (!(this.allowDrop() ?? this.defaults.allowDrop) || !this.accepting()) return;\n this.depth -= 1;\n if (this.depth > 0) return;\n this.depth = 0;\n this.dragging.set(false);\n this.verdict.set(null);\n }\n\n protected onDragOver(event: DragEvent) {\n if (!(this.allowDrop() ?? this.defaults.allowDrop) || !this.accepting()) return;\n /* The default action of `dragover` is to refuse the drop. */\n event.preventDefault();\n }\n\n protected onDrop(event: DragEvent) {\n if (!(this.allowDrop() ?? this.defaults.allowDrop) || !this.accepting()) return;\n event.preventDefault();\n this.depth = 0;\n this.dragging.set(false);\n this.verdict.set(null);\n void this.take([...(event.dataTransfer?.files ?? [])], 'pointer', event);\n }\n\n protected onPaste(event: ClipboardEvent) {\n if (!(this.allowPaste() ?? this.defaults.allowPaste) || !this.accepting()) return;\n const pasted = [...(event.clipboardData?.files ?? [])];\n if (pasted.length > 0) void this.take(pasted, 'keyboard', event);\n }\n\n protected onZoneClick(event: MouseEvent) {\n if (!(this.clickToBrowse() ?? this.defaults.clickToBrowse) || !this.accepting()) return;\n if ((event.target as Element).closest('[data-part=\"trigger\"]')) return;\n this.host.querySelector<HTMLElement>('[data-part=\"trigger\"]')?.click();\n }\n\n /* ── One row ────────────────────────────────────────────────────────── */\n\n protected stem(file: UploadFile) {\n return splitName(file.name).stem;\n }\n\n protected extension(file: UploadFile) {\n return splitName(file.name).extension;\n }\n\n protected extensionLabel(file: UploadFile) {\n const extension = splitName(file.name).extension;\n return extension === '' ? this.t('noExtension') : extension.slice(1).toUpperCase();\n }\n\n protected url(file: UploadFile) {\n return this.urls().get(file.key);\n }\n\n protected openable(file: UploadFile) {\n return this.resolvedView() !== 'none' && this.url(file) !== undefined && isViewable(file);\n }\n\n protected showBar(file: UploadFile) {\n return ['uploading', 'paused', 'stalled'].includes(file.status);\n }\n\n protected percent(file: UploadFile): number | null {\n return file.total !== undefined && file.total > 0 ? (file.loaded / file.total) * 100 : null;\n }\n\n protected statusText(file: UploadFile) {\n const word = this.t(file.status);\n const percent = this.percent(file);\n return this.showBar(file) && percent !== null ? `${word} · ${Math.round(percent)}%` : word;\n }\n\n /** The status word for a failure; for a refusal, the catalog's sentence for its reason. */\n protected messageText(file: UploadFile) {\n if (file.status !== 'rejected') return this.t('error');\n return file.reason === 'size'\n ? this.t('rejection.size', { size: this.formatters().bytes(file.size) })\n : this.t(`rejection.${file.reason ?? 'custom'}`);\n }\n\n protected actions(file: UploadFile) {\n if (this.readOnly()) return [];\n /* The control's name is the action's message holding the file's name, so a\n language writes its own order. */\n const named = { name: file.name };\n /* Five marks chosen against each other, because they appear together on one\n row: a cross means *stop this* and a bin means *take it away*. */\n const start = {\n part: 'start',\n glyph: 'play',\n label: this.t('start', named),\n action: 'start',\n } as const;\n const resume = {\n part: 'start',\n glyph: 'play',\n label: this.t('resume', named),\n action: 'resume',\n } as const;\n const pause = {\n part: 'pause',\n glyph: 'pause',\n label: this.t('pause', named),\n action: 'pause',\n } as const;\n const retry = {\n part: 'retry',\n glyph: 'rotate-ccw',\n label: this.t('retry', named),\n action: 'retry',\n } as const;\n const cancel = {\n part: 'cancel',\n glyph: 'x',\n label: this.t('cancel', named),\n action: 'cancel',\n } as const;\n const remove = {\n part: 'remove',\n glyph: 'trash',\n label: this.t('remove', named),\n action: 'remove',\n } as const;\n\n switch (file.status) {\n case 'ready':\n return [start, remove];\n case 'queued':\n return [cancel, remove];\n case 'uploading':\n return this.pausable() ? [pause, cancel] : [cancel];\n case 'paused':\n return [resume, cancel];\n case 'stalled':\n return [cancel];\n case 'error':\n return [retry, remove];\n case 'canceled':\n return [start, remove];\n default:\n return [remove];\n }\n }\n\n protected act(\n file: UploadFile,\n action: 'start' | 'pause' | 'resume' | 'retry' | 'cancel' | 'remove',\n source: Event,\n ) {\n if (action === 'remove') {\n this.runner?.remove(file.key);\n this.request(\n this.files().filter((entry) => entry.key !== file.key),\n 'remove',\n source,\n );\n if (this.viewing() === file.key) this.setViewing(null, 'dismiss', source);\n this.onTouchedFn();\n return;\n }\n if (file.file === undefined || this.runner === null) return;\n if (action === 'start' || action === 'retry') this.runner.start(file.key, file.file);\n else if (action === 'pause') this.runner.pause(file.key);\n else if (action === 'resume') this.runner.resume(file.key);\n else this.runner.cancel(file.key);\n }\n\n protected clear(source: Event) {\n for (const file of this.files()) this.runner?.remove(file.key);\n this.request([], 'clear', source);\n }\n\n protected open(file: UploadFile, source: Event) {\n this.setViewing(file.key, 'pointer', source);\n }\n\n setViewing(key: string | null, reason: string, source: unknown) {\n const state = createControllable<string | null>({\n controlled: undefined,\n initial: this.viewing(),\n onRequest: (change) => this.viewingRequest.emit(change),\n });\n state.request(key, reason as ChangeReason, source);\n this.viewing.set(key);\n }\n\n /* ── The five a template cannot write ───────────────────────────────── */\n\n browse() {\n this.host.querySelector<HTMLInputElement>('[data-part=\"input\"]')?.click();\n }\n\n upload() {\n for (const file of this.files()) {\n if (file.status !== 'ready' || file.file === undefined) continue;\n this.runner?.start(file.key, file.file);\n }\n }\n\n retryAll() {\n for (const file of this.files()) {\n if (file.status !== 'error' || file.file === undefined) continue;\n this.runner?.start(file.key, file.file);\n }\n }\n\n cancelAll() {\n for (const file of this.files()) this.runner?.cancel(file.key);\n }\n}\n\nfunction optionalNumber(value: unknown) {\n return value === undefined || value === null || value === '' ? undefined : numberAttribute(value);\n}\n\nfunction optionalBoolean(value: unknown) {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n\n/**\n * The half of `accept` a drag can answer. A token that names an extension says\n * nothing about an item whose name the platform has not given us yet.\n */\nfunction matchesTypeOnly(type: string, accept: string) {\n const tokens = accept\n .split(',')\n .map((token) => token.trim().toLowerCase())\n .filter((token) => token.length > 0 && !token.startsWith('.'));\n if (tokens.length === 0) return true;\n\n const [group, subtype] = type.toLowerCase().split('/');\n return tokens.some((token) => {\n const [tokenGroup, tokenSubtype] = token.split('/');\n return (\n (tokenGroup === '*' || tokenGroup === group) &&\n (tokenSubtype === '*' || tokenSubtype === subtype)\n );\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, booleanAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
+
4
+ /**
5
+ * Content that assistive technology reaches and sight does not. Bound to an
6
+ * attribute rather than to an element, because the element is the consumer's
7
+ * decision: a live region is a span, a skip link is an anchor.
8
+ *
9
+ * The family paints nothing. `focusable` stops the hiding while focus is
10
+ * inside, and what appears is the element the consumer wrote — a skip link's
11
+ * appearance belongs to the link, not to a hiding rule.
12
+ */
13
+ class SlVisuallyHidden {
14
+ focusable = input(false, { ...(ngDevMode ? { debugName: "focusable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlVisuallyHidden, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlVisuallyHidden, isStandalone: true, selector: "[slVisuallyHidden]", inputs: { focusable: { classPropertyName: "focusable", publicName: "focusable", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "visually-hidden", "data-part": "root" }, properties: { "attr.data-focusable": "focusable() ? '' : null" } }, exportAs: ["slVisuallyHidden"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui=visually-hidden]:not([data-focusable]:focus-within){block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;inset-block-start:0;inset-inline-start:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlVisuallyHidden, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: '[slVisuallyHidden]', standalone: true, exportAs: 'slVisuallyHidden', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
21
+ 'data-ui': 'visually-hidden',
22
+ 'data-part': 'root',
23
+ '[attr.data-focusable]': "focusable() ? '' : null",
24
+ }, styles: ["@layer slotted.components{[data-ui=visually-hidden]:not([data-focusable]:focus-within){block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;inset-block-start:0;inset-inline-start:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}}\n"] }]
25
+ }], propDecorators: { focusable: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusable", required: false }] }] } });
26
+
27
+ /**
28
+ * Generated bundle index. Do not edit.
29
+ */
30
+
31
+ export { SlVisuallyHidden };
32
+ //# sourceMappingURL=slotted-angular-visually-hidden.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slotted-angular-visually-hidden.mjs","sources":["../../visually-hidden/src/visually-hidden.ts","../../visually-hidden/src/slotted-angular-visually-hidden.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * Content that assistive technology reaches and sight does not. Bound to an\n * attribute rather than to an element, because the element is the consumer's\n * decision: a live region is a span, a skip link is an anchor.\n *\n * The family paints nothing. `focusable` stops the hiding while focus is\n * inside, and what appears is the element the consumer wrote — a skip link's\n * appearance belongs to the link, not to a hiding rule.\n */\n@Component({\n selector: '[slVisuallyHidden]',\n standalone: true,\n exportAs: 'slVisuallyHidden',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/visually-hidden/visually-hidden.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'visually-hidden',\n 'data-part': 'root',\n '[attr.data-focusable]': \"focusable() ? '' : null\",\n },\n})\nexport class SlVisuallyHidden {\n readonly focusable = input(false, { transform: booleanAttribute });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAQA;;;;;;;;AAQG;MAeU,gBAAgB,CAAA;IAClB,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;uGADvD,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,6YAVjB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6QAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAU1B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,QAAA,EACN,kBAAkB,YAClB,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,uBAAuB,EAAE,yBAAyB;AACnD,qBAAA,EAAA,MAAA,EAAA,CAAA,6QAAA,CAAA,EAAA;;;AC7BH;;AAEG;;"}