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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -2
  3. package/docs/AGENTS.snippet.md +10 -0
  4. package/docs/accordion.json +345 -0
  5. package/docs/accordion.md +207 -0
  6. package/docs/action-bar.json +421 -0
  7. package/docs/action-bar.md +364 -0
  8. package/docs/action-sheet.json +210 -0
  9. package/docs/action-sheet.md +19 -0
  10. package/docs/alert.json +407 -0
  11. package/docs/alert.md +239 -0
  12. package/docs/app-shell.examples.md +349 -0
  13. package/docs/app-shell.json +835 -0
  14. package/docs/app-shell.md +214 -0
  15. package/docs/aspect-ratio.json +159 -0
  16. package/docs/aspect-ratio.md +134 -0
  17. package/docs/attachment.json +486 -0
  18. package/docs/attachment.md +253 -0
  19. package/docs/avatar-group.json +208 -0
  20. package/docs/avatar-group.md +130 -0
  21. package/docs/avatar.json +342 -0
  22. package/docs/avatar.md +142 -0
  23. package/docs/badge.json +334 -0
  24. package/docs/badge.md +138 -0
  25. package/docs/breadcrumb.json +368 -0
  26. package/docs/breadcrumb.md +237 -0
  27. package/docs/button-group.json +158 -0
  28. package/docs/button-group.md +72 -0
  29. package/docs/button.examples.md +621 -0
  30. package/docs/button.json +977 -0
  31. package/docs/button.md +200 -0
  32. package/docs/calendar.json +592 -0
  33. package/docs/calendar.md +242 -0
  34. package/docs/card.json +283 -0
  35. package/docs/card.md +130 -0
  36. package/docs/carousel.json +560 -0
  37. package/docs/carousel.md +357 -0
  38. package/docs/cascader.json +933 -0
  39. package/docs/cascader.md +379 -0
  40. package/docs/chart.examples.md +582 -0
  41. package/docs/chart.json +1359 -0
  42. package/docs/chart.md +187 -0
  43. package/docs/checkbox-group.examples.md +612 -0
  44. package/docs/checkbox-group.json +395 -0
  45. package/docs/checkbox-group.md +106 -0
  46. package/docs/checkbox.examples.md +546 -0
  47. package/docs/checkbox.json +506 -0
  48. package/docs/checkbox.md +104 -0
  49. package/docs/code-block.json +616 -0
  50. package/docs/code-block.md +303 -0
  51. package/docs/collapsible.json +456 -0
  52. package/docs/collapsible.md +261 -0
  53. package/docs/color-picker.json +523 -0
  54. package/docs/color-picker.md +201 -0
  55. package/docs/column-manager.json +486 -0
  56. package/docs/column-manager.md +277 -0
  57. package/docs/combobox.examples.md +1732 -0
  58. package/docs/combobox.json +1250 -0
  59. package/docs/combobox.md +209 -0
  60. package/docs/command-palette.json +800 -0
  61. package/docs/command-palette.md +419 -0
  62. package/docs/container.json +156 -0
  63. package/docs/container.md +92 -0
  64. package/docs/context-menu.json +231 -0
  65. package/docs/context-menu.md +176 -0
  66. package/docs/currency-field.examples.md +321 -0
  67. package/docs/currency-field.json +649 -0
  68. package/docs/currency-field.md +128 -0
  69. package/docs/dashboard-grid.json +680 -0
  70. package/docs/dashboard-grid.md +265 -0
  71. package/docs/data-grid.examples.md +3064 -0
  72. package/docs/data-grid.json +1577 -0
  73. package/docs/data-grid.md +237 -0
  74. package/docs/data-grid.props.md +81 -0
  75. package/docs/data-list.json +685 -0
  76. package/docs/data-list.md +327 -0
  77. package/docs/date-field.json +490 -0
  78. package/docs/date-field.md +235 -0
  79. package/docs/date-picker.examples.md +1226 -0
  80. package/docs/date-picker.json +696 -0
  81. package/docs/date-picker.md +121 -0
  82. package/docs/date-range-picker.examples.md +1300 -0
  83. package/docs/date-range-picker.json +903 -0
  84. package/docs/date-range-picker.md +142 -0
  85. package/docs/datetime-field.json +665 -0
  86. package/docs/datetime-field.md +337 -0
  87. package/docs/datetime-picker.examples.md +1269 -0
  88. package/docs/datetime-picker.json +928 -0
  89. package/docs/datetime-picker.md +150 -0
  90. package/docs/datetime-range-picker.examples.md +225 -0
  91. package/docs/datetime-range-picker.json +1015 -0
  92. package/docs/datetime-range-picker.md +162 -0
  93. package/docs/description-list.json +471 -0
  94. package/docs/description-list.md +268 -0
  95. package/docs/detail-panel.json +530 -0
  96. package/docs/detail-panel.md +361 -0
  97. package/docs/dialog.examples.md +2467 -0
  98. package/docs/dialog.json +1141 -0
  99. package/docs/dialog.md +217 -0
  100. package/docs/dialog.props.md +63 -0
  101. package/docs/divider.json +148 -0
  102. package/docs/divider.md +83 -0
  103. package/docs/drawer.examples.md +1929 -0
  104. package/docs/drawer.json +753 -0
  105. package/docs/drawer.md +199 -0
  106. package/docs/entity-picker.json +946 -0
  107. package/docs/entity-picker.md +365 -0
  108. package/docs/event-calendar.examples.md +308 -0
  109. package/docs/event-calendar.json +1202 -0
  110. package/docs/event-calendar.md +201 -0
  111. package/docs/field-group.json +333 -0
  112. package/docs/field-group.md +181 -0
  113. package/docs/field.examples.md +676 -0
  114. package/docs/field.json +528 -0
  115. package/docs/field.md +127 -0
  116. package/docs/filter-bar.json +817 -0
  117. package/docs/filter-bar.md +380 -0
  118. package/docs/form.json +378 -0
  119. package/docs/form.md +235 -0
  120. package/docs/fullscreen.json +395 -0
  121. package/docs/fullscreen.md +225 -0
  122. package/docs/grid.json +176 -0
  123. package/docs/grid.md +74 -0
  124. package/docs/highlight.json +279 -0
  125. package/docs/highlight.md +210 -0
  126. package/docs/hover-card.json +254 -0
  127. package/docs/hover-card.md +213 -0
  128. package/docs/icon.json +173 -0
  129. package/docs/icon.md +101 -0
  130. package/docs/image.json +476 -0
  131. package/docs/image.md +254 -0
  132. package/docs/import-export-center.json +836 -0
  133. package/docs/import-export-center.md +345 -0
  134. package/docs/index.md +141 -0
  135. package/docs/inline-message.json +312 -0
  136. package/docs/inline-message.md +191 -0
  137. package/docs/inline.json +149 -0
  138. package/docs/inline.md +72 -0
  139. package/docs/kbd.json +350 -0
  140. package/docs/kbd.md +210 -0
  141. package/docs/link.json +264 -0
  142. package/docs/link.md +167 -0
  143. package/docs/list-item.json +463 -0
  144. package/docs/list-item.md +236 -0
  145. package/docs/list.json +321 -0
  146. package/docs/list.md +185 -0
  147. package/docs/listbox.json +807 -0
  148. package/docs/listbox.md +413 -0
  149. package/docs/loading-overlay.json +440 -0
  150. package/docs/loading-overlay.md +248 -0
  151. package/docs/markdown.json +461 -0
  152. package/docs/markdown.md +266 -0
  153. package/docs/menu.examples.md +1651 -0
  154. package/docs/menu.json +922 -0
  155. package/docs/menu.md +155 -0
  156. package/docs/menubar.json +292 -0
  157. package/docs/menubar.md +173 -0
  158. package/docs/message-scroller.json +401 -0
  159. package/docs/message-scroller.md +212 -0
  160. package/docs/message.json +862 -0
  161. package/docs/message.md +473 -0
  162. package/docs/multi-select.examples.md +1922 -0
  163. package/docs/multi-select.json +1314 -0
  164. package/docs/multi-select.md +213 -0
  165. package/docs/navigation-menu.json +529 -0
  166. package/docs/navigation-menu.md +329 -0
  167. package/docs/notification-center.json +664 -0
  168. package/docs/notification-center.md +372 -0
  169. package/docs/number-field.examples.md +1078 -0
  170. package/docs/number-field.json +668 -0
  171. package/docs/number-field.md +137 -0
  172. package/docs/otp-input.json +479 -0
  173. package/docs/otp-input.md +291 -0
  174. package/docs/page-header.json +574 -0
  175. package/docs/page-header.md +338 -0
  176. package/docs/page.json +332 -0
  177. package/docs/page.md +184 -0
  178. package/docs/pagination.json +434 -0
  179. package/docs/pagination.md +238 -0
  180. package/docs/popover.examples.md +1235 -0
  181. package/docs/popover.json +656 -0
  182. package/docs/popover.md +199 -0
  183. package/docs/progress-indicator.json +501 -0
  184. package/docs/progress-indicator.md +329 -0
  185. package/docs/prompt-composer.json +498 -0
  186. package/docs/prompt-composer.md +278 -0
  187. package/docs/prose.json +357 -0
  188. package/docs/prose.md +226 -0
  189. package/docs/radio-group.examples.md +626 -0
  190. package/docs/radio-group.json +541 -0
  191. package/docs/radio-group.md +112 -0
  192. package/docs/rating.json +1053 -0
  193. package/docs/rating.md +435 -0
  194. package/docs/result-state.json +376 -0
  195. package/docs/result-state.md +286 -0
  196. package/docs/saved-views.json +384 -0
  197. package/docs/saved-views.md +242 -0
  198. package/docs/scroll-area.json +120 -0
  199. package/docs/scroll-area.md +8 -0
  200. package/docs/section.json +344 -0
  201. package/docs/section.md +208 -0
  202. package/docs/segmented-control.json +429 -0
  203. package/docs/segmented-control.md +240 -0
  204. package/docs/select.examples.md +1214 -0
  205. package/docs/select.json +1147 -0
  206. package/docs/select.md +199 -0
  207. package/docs/side-navigation.json +632 -0
  208. package/docs/side-navigation.md +430 -0
  209. package/docs/skeleton.json +358 -0
  210. package/docs/skeleton.md +223 -0
  211. package/docs/slider.json +522 -0
  212. package/docs/slider.md +261 -0
  213. package/docs/sparkline.json +426 -0
  214. package/docs/sparkline.md +206 -0
  215. package/docs/split-button.json +361 -0
  216. package/docs/split-button.md +275 -0
  217. package/docs/splitter.json +142 -0
  218. package/docs/splitter.md +14 -0
  219. package/docs/stack.json +135 -0
  220. package/docs/stack.md +74 -0
  221. package/docs/stat-card.json +529 -0
  222. package/docs/stat-card.md +270 -0
  223. package/docs/status-indicator.json +314 -0
  224. package/docs/status-indicator.md +197 -0
  225. package/docs/stepper.json +451 -0
  226. package/docs/stepper.md +250 -0
  227. package/docs/switch.json +451 -0
  228. package/docs/switch.md +508 -0
  229. package/docs/table-of-contents.json +553 -0
  230. package/docs/table-of-contents.md +289 -0
  231. package/docs/table.examples.md +1981 -0
  232. package/docs/table.json +1059 -0
  233. package/docs/table.md +290 -0
  234. package/docs/tabs.examples.md +1370 -0
  235. package/docs/tabs.json +661 -0
  236. package/docs/tabs.md +211 -0
  237. package/docs/tag.json +813 -0
  238. package/docs/tag.md +241 -0
  239. package/docs/tags-input.json +771 -0
  240. package/docs/tags-input.md +361 -0
  241. package/docs/text-field.examples.md +821 -0
  242. package/docs/text-field.json +604 -0
  243. package/docs/text-field.md +125 -0
  244. package/docs/textarea.examples.md +612 -0
  245. package/docs/textarea.json +440 -0
  246. package/docs/textarea.md +98 -0
  247. package/docs/time-field.json +584 -0
  248. package/docs/time-field.md +291 -0
  249. package/docs/time-picker.json +679 -0
  250. package/docs/time-picker.md +315 -0
  251. package/docs/time-range-picker.examples.md +191 -0
  252. package/docs/time-range-picker.json +924 -0
  253. package/docs/time-range-picker.md +152 -0
  254. package/docs/timeline.json +839 -0
  255. package/docs/timeline.md +401 -0
  256. package/docs/toast.json +642 -0
  257. package/docs/toast.md +311 -0
  258. package/docs/toggle-group.json +417 -0
  259. package/docs/toggle-group.md +255 -0
  260. package/docs/toggle.json +326 -0
  261. package/docs/toggle.md +222 -0
  262. package/docs/toolbar.json +380 -0
  263. package/docs/toolbar.md +240 -0
  264. package/docs/tooltip.examples.md +664 -0
  265. package/docs/tooltip.json +604 -0
  266. package/docs/tooltip.md +146 -0
  267. package/docs/top-navigation.examples.md +287 -0
  268. package/docs/top-navigation.json +648 -0
  269. package/docs/top-navigation.md +138 -0
  270. package/docs/tour.json +759 -0
  271. package/docs/tour.md +337 -0
  272. package/docs/transfer.json +746 -0
  273. package/docs/transfer.md +273 -0
  274. package/docs/tree.json +918 -0
  275. package/docs/tree.md +397 -0
  276. package/docs/typography.json +317 -0
  277. package/docs/typography.md +107 -0
  278. package/docs/upload.examples.md +358 -0
  279. package/docs/upload.json +1103 -0
  280. package/docs/upload.md +166 -0
  281. package/docs/visually-hidden.json +71 -0
  282. package/docs/visually-hidden.md +42 -0
  283. package/docs/wizard.json +724 -0
  284. package/docs/wizard.md +295 -0
  285. package/fesm2022/slotted-angular-accordion.mjs +247 -0
  286. package/fesm2022/slotted-angular-accordion.mjs.map +1 -0
  287. package/fesm2022/slotted-angular-action-bar.mjs +639 -0
  288. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -0
  289. package/fesm2022/slotted-angular-action-sheet.mjs +749 -0
  290. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -0
  291. package/fesm2022/slotted-angular-alert.mjs +427 -0
  292. package/fesm2022/slotted-angular-alert.mjs.map +1 -0
  293. package/fesm2022/slotted-angular-app-shell.mjs +1334 -0
  294. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -0
  295. package/fesm2022/slotted-angular-aspect-ratio.mjs +63 -0
  296. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -0
  297. package/fesm2022/slotted-angular-attachment.mjs +595 -0
  298. package/fesm2022/slotted-angular-attachment.mjs.map +1 -0
  299. package/fesm2022/slotted-angular-avatar-group.mjs +230 -0
  300. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -0
  301. package/fesm2022/slotted-angular-avatar.mjs +330 -0
  302. package/fesm2022/slotted-angular-avatar.mjs.map +1 -0
  303. package/fesm2022/slotted-angular-badge.mjs +255 -0
  304. package/fesm2022/slotted-angular-badge.mjs.map +1 -0
  305. package/fesm2022/slotted-angular-breadcrumb.mjs +544 -0
  306. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -0
  307. package/fesm2022/slotted-angular-button-group.mjs +146 -0
  308. package/fesm2022/slotted-angular-button-group.mjs.map +1 -0
  309. package/fesm2022/slotted-angular-button.mjs +692 -0
  310. package/fesm2022/slotted-angular-button.mjs.map +1 -0
  311. package/fesm2022/slotted-angular-calendar.mjs +916 -0
  312. package/fesm2022/slotted-angular-calendar.mjs.map +1 -0
  313. package/fesm2022/slotted-angular-card.mjs +225 -0
  314. package/fesm2022/slotted-angular-card.mjs.map +1 -0
  315. package/fesm2022/slotted-angular-carousel.mjs +840 -0
  316. package/fesm2022/slotted-angular-carousel.mjs.map +1 -0
  317. package/fesm2022/slotted-angular-cascader.mjs +1839 -0
  318. package/fesm2022/slotted-angular-cascader.mjs.map +1 -0
  319. package/fesm2022/slotted-angular-chart.mjs +974 -0
  320. package/fesm2022/slotted-angular-chart.mjs.map +1 -0
  321. package/fesm2022/slotted-angular-checkbox-group.mjs +283 -0
  322. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -0
  323. package/fesm2022/slotted-angular-checkbox.mjs +468 -0
  324. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -0
  325. package/fesm2022/slotted-angular-code-block.mjs +476 -0
  326. package/fesm2022/slotted-angular-code-block.mjs.map +1 -0
  327. package/fesm2022/slotted-angular-collapsible.mjs +479 -0
  328. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -0
  329. package/fesm2022/slotted-angular-color-picker.mjs +910 -0
  330. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -0
  331. package/fesm2022/slotted-angular-column-manager.mjs +1037 -0
  332. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -0
  333. package/fesm2022/slotted-angular-combobox.mjs +1480 -0
  334. package/fesm2022/slotted-angular-combobox.mjs.map +1 -0
  335. package/fesm2022/slotted-angular-command-palette.mjs +1283 -0
  336. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -0
  337. package/fesm2022/slotted-angular-container.mjs +105 -0
  338. package/fesm2022/slotted-angular-container.mjs.map +1 -0
  339. package/fesm2022/slotted-angular-context-menu.mjs +221 -0
  340. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -0
  341. package/fesm2022/slotted-angular-currency-field.mjs +1131 -0
  342. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -0
  343. package/fesm2022/slotted-angular-dashboard-grid.mjs +1928 -0
  344. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -0
  345. package/fesm2022/slotted-angular-data-grid.mjs +6697 -0
  346. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -0
  347. package/fesm2022/slotted-angular-data-list.mjs +1418 -0
  348. package/fesm2022/slotted-angular-data-list.mjs.map +1 -0
  349. package/fesm2022/slotted-angular-date-field.mjs +772 -0
  350. package/fesm2022/slotted-angular-date-field.mjs.map +1 -0
  351. package/fesm2022/slotted-angular-date-picker.mjs +690 -0
  352. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -0
  353. package/fesm2022/slotted-angular-date-range-picker.mjs +1150 -0
  354. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -0
  355. package/fesm2022/slotted-angular-datetime-field.mjs +1058 -0
  356. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -0
  357. package/fesm2022/slotted-angular-datetime-picker.mjs +1362 -0
  358. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -0
  359. package/fesm2022/slotted-angular-datetime-range-picker.mjs +1872 -0
  360. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -0
  361. package/fesm2022/slotted-angular-description-list.mjs +545 -0
  362. package/fesm2022/slotted-angular-description-list.mjs.map +1 -0
  363. package/fesm2022/slotted-angular-detail-panel.mjs +754 -0
  364. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -0
  365. package/fesm2022/slotted-angular-dialog.mjs +980 -0
  366. package/fesm2022/slotted-angular-dialog.mjs.map +1 -0
  367. package/fesm2022/slotted-angular-divider.mjs +76 -0
  368. package/fesm2022/slotted-angular-divider.mjs.map +1 -0
  369. package/fesm2022/slotted-angular-drawer.mjs +1397 -0
  370. package/fesm2022/slotted-angular-drawer.mjs.map +1 -0
  371. package/fesm2022/slotted-angular-entity-picker.mjs +1987 -0
  372. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -0
  373. package/fesm2022/slotted-angular-event-calendar.mjs +2934 -0
  374. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -0
  375. package/fesm2022/slotted-angular-field-group.mjs +301 -0
  376. package/fesm2022/slotted-angular-field-group.mjs.map +1 -0
  377. package/fesm2022/slotted-angular-field.mjs +928 -0
  378. package/fesm2022/slotted-angular-field.mjs.map +1 -0
  379. package/fesm2022/slotted-angular-filter-bar.mjs +3107 -0
  380. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -0
  381. package/fesm2022/slotted-angular-form.mjs +592 -0
  382. package/fesm2022/slotted-angular-form.mjs.map +1 -0
  383. package/fesm2022/slotted-angular-fullscreen.mjs +314 -0
  384. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -0
  385. package/fesm2022/slotted-angular-grid.mjs +58 -0
  386. package/fesm2022/slotted-angular-grid.mjs.map +1 -0
  387. package/fesm2022/slotted-angular-highlight.mjs +123 -0
  388. package/fesm2022/slotted-angular-highlight.mjs.map +1 -0
  389. package/fesm2022/slotted-angular-hover-card.mjs +326 -0
  390. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -0
  391. package/fesm2022/slotted-angular-i18n.mjs +75 -0
  392. package/fesm2022/slotted-angular-i18n.mjs.map +1 -0
  393. package/fesm2022/slotted-angular-icon.mjs +232 -0
  394. package/fesm2022/slotted-angular-icon.mjs.map +1 -0
  395. package/fesm2022/slotted-angular-image.mjs +442 -0
  396. package/fesm2022/slotted-angular-image.mjs.map +1 -0
  397. package/fesm2022/slotted-angular-import-export-center.mjs +1792 -0
  398. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -0
  399. package/fesm2022/slotted-angular-inline-message.mjs +280 -0
  400. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -0
  401. package/fesm2022/slotted-angular-inline.mjs +52 -0
  402. package/fesm2022/slotted-angular-inline.mjs.map +1 -0
  403. package/fesm2022/slotted-angular-kbd.mjs +284 -0
  404. package/fesm2022/slotted-angular-kbd.mjs.map +1 -0
  405. package/fesm2022/slotted-angular-link.mjs +182 -0
  406. package/fesm2022/slotted-angular-link.mjs.map +1 -0
  407. package/fesm2022/slotted-angular-list-item.mjs +367 -0
  408. package/fesm2022/slotted-angular-list-item.mjs.map +1 -0
  409. package/fesm2022/slotted-angular-list.mjs +256 -0
  410. package/fesm2022/slotted-angular-list.mjs.map +1 -0
  411. package/fesm2022/slotted-angular-listbox.mjs +1274 -0
  412. package/fesm2022/slotted-angular-listbox.mjs.map +1 -0
  413. package/fesm2022/slotted-angular-loading-overlay.mjs +451 -0
  414. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -0
  415. package/fesm2022/slotted-angular-markdown.mjs +914 -0
  416. package/fesm2022/slotted-angular-markdown.mjs.map +1 -0
  417. package/fesm2022/slotted-angular-menu.mjs +1211 -0
  418. package/fesm2022/slotted-angular-menu.mjs.map +1 -0
  419. package/fesm2022/slotted-angular-menubar.mjs +230 -0
  420. package/fesm2022/slotted-angular-menubar.mjs.map +1 -0
  421. package/fesm2022/slotted-angular-message-scroller.mjs +378 -0
  422. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -0
  423. package/fesm2022/slotted-angular-message.mjs +866 -0
  424. package/fesm2022/slotted-angular-message.mjs.map +1 -0
  425. package/fesm2022/slotted-angular-multi-select.mjs +1939 -0
  426. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -0
  427. package/fesm2022/slotted-angular-navigation-menu.mjs +770 -0
  428. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -0
  429. package/fesm2022/slotted-angular-notification-center.mjs +1172 -0
  430. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -0
  431. package/fesm2022/slotted-angular-number-field.mjs +966 -0
  432. package/fesm2022/slotted-angular-number-field.mjs.map +1 -0
  433. package/fesm2022/slotted-angular-otp-input.mjs +629 -0
  434. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -0
  435. package/fesm2022/slotted-angular-page-header.mjs +788 -0
  436. package/fesm2022/slotted-angular-page-header.mjs.map +1 -0
  437. package/fesm2022/slotted-angular-page.mjs +255 -0
  438. package/fesm2022/slotted-angular-page.mjs.map +1 -0
  439. package/fesm2022/slotted-angular-pagination.mjs +562 -0
  440. package/fesm2022/slotted-angular-pagination.mjs.map +1 -0
  441. package/fesm2022/slotted-angular-popover.mjs +799 -0
  442. package/fesm2022/slotted-angular-popover.mjs.map +1 -0
  443. package/fesm2022/slotted-angular-progress-indicator.mjs +572 -0
  444. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -0
  445. package/fesm2022/slotted-angular-prompt-composer.mjs +596 -0
  446. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -0
  447. package/fesm2022/slotted-angular-prose.mjs +314 -0
  448. package/fesm2022/slotted-angular-prose.mjs.map +1 -0
  449. package/fesm2022/slotted-angular-radio-group.mjs +469 -0
  450. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -0
  451. package/fesm2022/slotted-angular-rating.mjs +1174 -0
  452. package/fesm2022/slotted-angular-rating.mjs.map +1 -0
  453. package/fesm2022/slotted-angular-result-state.mjs +330 -0
  454. package/fesm2022/slotted-angular-result-state.mjs.map +1 -0
  455. package/fesm2022/slotted-angular-saved-views.mjs +877 -0
  456. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -0
  457. package/fesm2022/slotted-angular-scroll-area.mjs +294 -0
  458. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -0
  459. package/fesm2022/slotted-angular-section.mjs +266 -0
  460. package/fesm2022/slotted-angular-section.mjs.map +1 -0
  461. package/fesm2022/slotted-angular-segmented-control.mjs +454 -0
  462. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -0
  463. package/fesm2022/slotted-angular-select.mjs +1899 -0
  464. package/fesm2022/slotted-angular-select.mjs.map +1 -0
  465. package/fesm2022/slotted-angular-side-navigation.mjs +1042 -0
  466. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -0
  467. package/fesm2022/slotted-angular-skeleton.mjs +316 -0
  468. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -0
  469. package/fesm2022/slotted-angular-slider.mjs +586 -0
  470. package/fesm2022/slotted-angular-slider.mjs.map +1 -0
  471. package/fesm2022/slotted-angular-sparkline.mjs +235 -0
  472. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -0
  473. package/fesm2022/slotted-angular-split-button.mjs +331 -0
  474. package/fesm2022/slotted-angular-split-button.mjs.map +1 -0
  475. package/fesm2022/slotted-angular-splitter.mjs +516 -0
  476. package/fesm2022/slotted-angular-splitter.mjs.map +1 -0
  477. package/fesm2022/slotted-angular-stack.mjs +48 -0
  478. package/fesm2022/slotted-angular-stack.mjs.map +1 -0
  479. package/fesm2022/slotted-angular-stat-card.mjs +478 -0
  480. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -0
  481. package/fesm2022/slotted-angular-status-indicator.mjs +155 -0
  482. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -0
  483. package/fesm2022/slotted-angular-stepper.mjs +536 -0
  484. package/fesm2022/slotted-angular-stepper.mjs.map +1 -0
  485. package/fesm2022/slotted-angular-switch.mjs +447 -0
  486. package/fesm2022/slotted-angular-switch.mjs.map +1 -0
  487. package/fesm2022/slotted-angular-table-of-contents.mjs +750 -0
  488. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -0
  489. package/fesm2022/slotted-angular-table.mjs +2518 -0
  490. package/fesm2022/slotted-angular-table.mjs.map +1 -0
  491. package/fesm2022/slotted-angular-tabs.mjs +829 -0
  492. package/fesm2022/slotted-angular-tabs.mjs.map +1 -0
  493. package/fesm2022/slotted-angular-tag.mjs +595 -0
  494. package/fesm2022/slotted-angular-tag.mjs.map +1 -0
  495. package/fesm2022/slotted-angular-tags-input.mjs +1211 -0
  496. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -0
  497. package/fesm2022/slotted-angular-text-field.mjs +674 -0
  498. package/fesm2022/slotted-angular-text-field.mjs.map +1 -0
  499. package/fesm2022/slotted-angular-textarea.mjs +275 -0
  500. package/fesm2022/slotted-angular-textarea.mjs.map +1 -0
  501. package/fesm2022/slotted-angular-theme.mjs +45 -0
  502. package/fesm2022/slotted-angular-theme.mjs.map +1 -0
  503. package/fesm2022/slotted-angular-time-field.mjs +895 -0
  504. package/fesm2022/slotted-angular-time-field.mjs.map +1 -0
  505. package/fesm2022/slotted-angular-time-picker.mjs +856 -0
  506. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -0
  507. package/fesm2022/slotted-angular-time-range-picker.mjs +1534 -0
  508. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -0
  509. package/fesm2022/slotted-angular-timeline.mjs +928 -0
  510. package/fesm2022/slotted-angular-timeline.mjs.map +1 -0
  511. package/fesm2022/slotted-angular-toast.mjs +917 -0
  512. package/fesm2022/slotted-angular-toast.mjs.map +1 -0
  513. package/fesm2022/slotted-angular-toggle-group.mjs +311 -0
  514. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -0
  515. package/fesm2022/slotted-angular-toggle.mjs +162 -0
  516. package/fesm2022/slotted-angular-toggle.mjs.map +1 -0
  517. package/fesm2022/slotted-angular-toolbar.mjs +536 -0
  518. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -0
  519. package/fesm2022/slotted-angular-tooltip.mjs +798 -0
  520. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -0
  521. package/fesm2022/slotted-angular-top-navigation.mjs +1308 -0
  522. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -0
  523. package/fesm2022/slotted-angular-tour.mjs +1330 -0
  524. package/fesm2022/slotted-angular-tour.mjs.map +1 -0
  525. package/fesm2022/slotted-angular-transfer.mjs +1406 -0
  526. package/fesm2022/slotted-angular-transfer.mjs.map +1 -0
  527. package/fesm2022/slotted-angular-tree.mjs +1448 -0
  528. package/fesm2022/slotted-angular-tree.mjs.map +1 -0
  529. package/fesm2022/slotted-angular-typography.mjs +184 -0
  530. package/fesm2022/slotted-angular-typography.mjs.map +1 -0
  531. package/fesm2022/slotted-angular-upload.mjs +1523 -0
  532. package/fesm2022/slotted-angular-upload.mjs.map +1 -0
  533. package/fesm2022/slotted-angular-visually-hidden.mjs +32 -0
  534. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -0
  535. package/fesm2022/slotted-angular-wizard.mjs +1715 -0
  536. package/fesm2022/slotted-angular-wizard.mjs.map +1 -0
  537. package/fesm2022/slotted-angular.mjs +4 -0
  538. package/fesm2022/slotted-angular.mjs.map +1 -0
  539. package/package.json +537 -3
  540. package/types/slotted-angular-accordion.d.ts +156 -0
  541. package/types/slotted-angular-accordion.d.ts.map +1 -0
  542. package/types/slotted-angular-action-bar.d.ts +291 -0
  543. package/types/slotted-angular-action-bar.d.ts.map +1 -0
  544. package/types/slotted-angular-action-sheet.d.ts +294 -0
  545. package/types/slotted-angular-action-sheet.d.ts.map +1 -0
  546. package/types/slotted-angular-alert.d.ts +214 -0
  547. package/types/slotted-angular-alert.d.ts.map +1 -0
  548. package/types/slotted-angular-app-shell.d.ts +549 -0
  549. package/types/slotted-angular-app-shell.d.ts.map +1 -0
  550. package/types/slotted-angular-aspect-ratio.d.ts +57 -0
  551. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -0
  552. package/types/slotted-angular-attachment.d.ts +294 -0
  553. package/types/slotted-angular-attachment.d.ts.map +1 -0
  554. package/types/slotted-angular-avatar-group.d.ts +119 -0
  555. package/types/slotted-angular-avatar-group.d.ts.map +1 -0
  556. package/types/slotted-angular-avatar.d.ts +202 -0
  557. package/types/slotted-angular-avatar.d.ts.map +1 -0
  558. package/types/slotted-angular-badge.d.ts +166 -0
  559. package/types/slotted-angular-badge.d.ts.map +1 -0
  560. package/types/slotted-angular-breadcrumb.d.ts +251 -0
  561. package/types/slotted-angular-breadcrumb.d.ts.map +1 -0
  562. package/types/slotted-angular-button-group.d.ts +89 -0
  563. package/types/slotted-angular-button-group.d.ts.map +1 -0
  564. package/types/slotted-angular-button.d.ts +390 -0
  565. package/types/slotted-angular-button.d.ts.map +1 -0
  566. package/types/slotted-angular-calendar.d.ts +280 -0
  567. package/types/slotted-angular-calendar.d.ts.map +1 -0
  568. package/types/slotted-angular-card.d.ts +140 -0
  569. package/types/slotted-angular-card.d.ts.map +1 -0
  570. package/types/slotted-angular-carousel.d.ts +288 -0
  571. package/types/slotted-angular-carousel.d.ts.map +1 -0
  572. package/types/slotted-angular-cascader.d.ts +351 -0
  573. package/types/slotted-angular-cascader.d.ts.map +1 -0
  574. package/types/slotted-angular-chart.d.ts +319 -0
  575. package/types/slotted-angular-chart.d.ts.map +1 -0
  576. package/types/slotted-angular-checkbox-group.d.ts +156 -0
  577. package/types/slotted-angular-checkbox-group.d.ts.map +1 -0
  578. package/types/slotted-angular-checkbox.d.ts +197 -0
  579. package/types/slotted-angular-checkbox.d.ts.map +1 -0
  580. package/types/slotted-angular-code-block.d.ts +158 -0
  581. package/types/slotted-angular-code-block.d.ts.map +1 -0
  582. package/types/slotted-angular-collapsible.d.ts +272 -0
  583. package/types/slotted-angular-collapsible.d.ts.map +1 -0
  584. package/types/slotted-angular-color-picker.d.ts +181 -0
  585. package/types/slotted-angular-color-picker.d.ts.map +1 -0
  586. package/types/slotted-angular-column-manager.d.ts +200 -0
  587. package/types/slotted-angular-column-manager.d.ts.map +1 -0
  588. package/types/slotted-angular-combobox.d.ts +449 -0
  589. package/types/slotted-angular-combobox.d.ts.map +1 -0
  590. package/types/slotted-angular-command-palette.d.ts +256 -0
  591. package/types/slotted-angular-command-palette.d.ts.map +1 -0
  592. package/types/slotted-angular-container.d.ts +84 -0
  593. package/types/slotted-angular-container.d.ts.map +1 -0
  594. package/types/slotted-angular-context-menu.d.ts +84 -0
  595. package/types/slotted-angular-context-menu.d.ts.map +1 -0
  596. package/types/slotted-angular-currency-field.d.ts +480 -0
  597. package/types/slotted-angular-currency-field.d.ts.map +1 -0
  598. package/types/slotted-angular-dashboard-grid.d.ts +341 -0
  599. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -0
  600. package/types/slotted-angular-data-grid.d.ts +1077 -0
  601. package/types/slotted-angular-data-grid.d.ts.map +1 -0
  602. package/types/slotted-angular-data-list.d.ts +272 -0
  603. package/types/slotted-angular-data-list.d.ts.map +1 -0
  604. package/types/slotted-angular-date-field.d.ts +320 -0
  605. package/types/slotted-angular-date-field.d.ts.map +1 -0
  606. package/types/slotted-angular-date-picker.d.ts +224 -0
  607. package/types/slotted-angular-date-picker.d.ts.map +1 -0
  608. package/types/slotted-angular-date-range-picker.d.ts +310 -0
  609. package/types/slotted-angular-date-range-picker.d.ts.map +1 -0
  610. package/types/slotted-angular-datetime-field.d.ts +362 -0
  611. package/types/slotted-angular-datetime-field.d.ts.map +1 -0
  612. package/types/slotted-angular-datetime-picker.d.ts +370 -0
  613. package/types/slotted-angular-datetime-picker.d.ts.map +1 -0
  614. package/types/slotted-angular-datetime-range-picker.d.ts +459 -0
  615. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -0
  616. package/types/slotted-angular-description-list.d.ts +281 -0
  617. package/types/slotted-angular-description-list.d.ts.map +1 -0
  618. package/types/slotted-angular-detail-panel.d.ts +240 -0
  619. package/types/slotted-angular-detail-panel.d.ts.map +1 -0
  620. package/types/slotted-angular-dialog.d.ts +497 -0
  621. package/types/slotted-angular-dialog.d.ts.map +1 -0
  622. package/types/slotted-angular-divider.d.ts +40 -0
  623. package/types/slotted-angular-divider.d.ts.map +1 -0
  624. package/types/slotted-angular-drawer.d.ts +532 -0
  625. package/types/slotted-angular-drawer.d.ts.map +1 -0
  626. package/types/slotted-angular-entity-picker.d.ts +338 -0
  627. package/types/slotted-angular-entity-picker.d.ts.map +1 -0
  628. package/types/slotted-angular-event-calendar.d.ts +574 -0
  629. package/types/slotted-angular-event-calendar.d.ts.map +1 -0
  630. package/types/slotted-angular-field-group.d.ts +152 -0
  631. package/types/slotted-angular-field-group.d.ts.map +1 -0
  632. package/types/slotted-angular-field.d.ts +535 -0
  633. package/types/slotted-angular-field.d.ts.map +1 -0
  634. package/types/slotted-angular-filter-bar.d.ts +573 -0
  635. package/types/slotted-angular-filter-bar.d.ts.map +1 -0
  636. package/types/slotted-angular-form.d.ts +298 -0
  637. package/types/slotted-angular-form.d.ts.map +1 -0
  638. package/types/slotted-angular-fullscreen.d.ts +145 -0
  639. package/types/slotted-angular-fullscreen.d.ts.map +1 -0
  640. package/types/slotted-angular-grid.d.ts +50 -0
  641. package/types/slotted-angular-grid.d.ts.map +1 -0
  642. package/types/slotted-angular-highlight.d.ts +93 -0
  643. package/types/slotted-angular-highlight.d.ts.map +1 -0
  644. package/types/slotted-angular-hover-card.d.ts +140 -0
  645. package/types/slotted-angular-hover-card.d.ts.map +1 -0
  646. package/types/slotted-angular-i18n.d.ts +46 -0
  647. package/types/slotted-angular-i18n.d.ts.map +1 -0
  648. package/types/slotted-angular-icon.d.ts +94 -0
  649. package/types/slotted-angular-icon.d.ts.map +1 -0
  650. package/types/slotted-angular-image.d.ts +251 -0
  651. package/types/slotted-angular-image.d.ts.map +1 -0
  652. package/types/slotted-angular-import-export-center.d.ts +351 -0
  653. package/types/slotted-angular-import-export-center.d.ts.map +1 -0
  654. package/types/slotted-angular-inline-message.d.ts +195 -0
  655. package/types/slotted-angular-inline-message.d.ts.map +1 -0
  656. package/types/slotted-angular-inline.d.ts +41 -0
  657. package/types/slotted-angular-inline.d.ts.map +1 -0
  658. package/types/slotted-angular-kbd.d.ts +174 -0
  659. package/types/slotted-angular-kbd.d.ts.map +1 -0
  660. package/types/slotted-angular-link.d.ts +94 -0
  661. package/types/slotted-angular-link.d.ts.map +1 -0
  662. package/types/slotted-angular-list-item.d.ts +210 -0
  663. package/types/slotted-angular-list-item.d.ts.map +1 -0
  664. package/types/slotted-angular-list.d.ts +176 -0
  665. package/types/slotted-angular-list.d.ts.map +1 -0
  666. package/types/slotted-angular-listbox.d.ts +470 -0
  667. package/types/slotted-angular-listbox.d.ts.map +1 -0
  668. package/types/slotted-angular-loading-overlay.d.ts +219 -0
  669. package/types/slotted-angular-loading-overlay.d.ts.map +1 -0
  670. package/types/slotted-angular-markdown.d.ts +172 -0
  671. package/types/slotted-angular-markdown.d.ts.map +1 -0
  672. package/types/slotted-angular-menu.d.ts +448 -0
  673. package/types/slotted-angular-menu.d.ts.map +1 -0
  674. package/types/slotted-angular-menubar.d.ts +90 -0
  675. package/types/slotted-angular-menubar.d.ts.map +1 -0
  676. package/types/slotted-angular-message-scroller.d.ts +151 -0
  677. package/types/slotted-angular-message-scroller.d.ts.map +1 -0
  678. package/types/slotted-angular-message.d.ts +348 -0
  679. package/types/slotted-angular-message.d.ts.map +1 -0
  680. package/types/slotted-angular-multi-select.d.ts +462 -0
  681. package/types/slotted-angular-multi-select.d.ts.map +1 -0
  682. package/types/slotted-angular-navigation-menu.d.ts +309 -0
  683. package/types/slotted-angular-navigation-menu.d.ts.map +1 -0
  684. package/types/slotted-angular-notification-center.d.ts +318 -0
  685. package/types/slotted-angular-notification-center.d.ts.map +1 -0
  686. package/types/slotted-angular-number-field.d.ts +402 -0
  687. package/types/slotted-angular-number-field.d.ts.map +1 -0
  688. package/types/slotted-angular-otp-input.d.ts +286 -0
  689. package/types/slotted-angular-otp-input.d.ts.map +1 -0
  690. package/types/slotted-angular-page-header.d.ts +334 -0
  691. package/types/slotted-angular-page-header.d.ts.map +1 -0
  692. package/types/slotted-angular-page.d.ts +141 -0
  693. package/types/slotted-angular-page.d.ts.map +1 -0
  694. package/types/slotted-angular-pagination.d.ts +213 -0
  695. package/types/slotted-angular-pagination.d.ts.map +1 -0
  696. package/types/slotted-angular-popover.d.ts +366 -0
  697. package/types/slotted-angular-popover.d.ts.map +1 -0
  698. package/types/slotted-angular-progress-indicator.d.ts +312 -0
  699. package/types/slotted-angular-progress-indicator.d.ts.map +1 -0
  700. package/types/slotted-angular-prompt-composer.d.ts +242 -0
  701. package/types/slotted-angular-prompt-composer.d.ts.map +1 -0
  702. package/types/slotted-angular-prose.d.ts +171 -0
  703. package/types/slotted-angular-prose.d.ts.map +1 -0
  704. package/types/slotted-angular-radio-group.d.ts +268 -0
  705. package/types/slotted-angular-radio-group.d.ts.map +1 -0
  706. package/types/slotted-angular-rating.d.ts +374 -0
  707. package/types/slotted-angular-rating.d.ts.map +1 -0
  708. package/types/slotted-angular-result-state.d.ts +217 -0
  709. package/types/slotted-angular-result-state.d.ts.map +1 -0
  710. package/types/slotted-angular-saved-views.d.ts +198 -0
  711. package/types/slotted-angular-saved-views.d.ts.map +1 -0
  712. package/types/slotted-angular-scroll-area.d.ts +186 -0
  713. package/types/slotted-angular-scroll-area.d.ts.map +1 -0
  714. package/types/slotted-angular-section.d.ts +143 -0
  715. package/types/slotted-angular-section.d.ts.map +1 -0
  716. package/types/slotted-angular-segmented-control.d.ts +251 -0
  717. package/types/slotted-angular-segmented-control.d.ts.map +1 -0
  718. package/types/slotted-angular-select.d.ts +507 -0
  719. package/types/slotted-angular-select.d.ts.map +1 -0
  720. package/types/slotted-angular-side-navigation.d.ts +373 -0
  721. package/types/slotted-angular-side-navigation.d.ts.map +1 -0
  722. package/types/slotted-angular-skeleton.d.ts +198 -0
  723. package/types/slotted-angular-skeleton.d.ts.map +1 -0
  724. package/types/slotted-angular-slider.d.ts +216 -0
  725. package/types/slotted-angular-slider.d.ts.map +1 -0
  726. package/types/slotted-angular-sparkline.d.ts +106 -0
  727. package/types/slotted-angular-sparkline.d.ts.map +1 -0
  728. package/types/slotted-angular-split-button.d.ts +180 -0
  729. package/types/slotted-angular-split-button.d.ts.map +1 -0
  730. package/types/slotted-angular-splitter.d.ts +206 -0
  731. package/types/slotted-angular-splitter.d.ts.map +1 -0
  732. package/types/slotted-angular-stack.d.ts +38 -0
  733. package/types/slotted-angular-stack.d.ts.map +1 -0
  734. package/types/slotted-angular-stat-card.d.ts +232 -0
  735. package/types/slotted-angular-stat-card.d.ts.map +1 -0
  736. package/types/slotted-angular-status-indicator.d.ts +106 -0
  737. package/types/slotted-angular-status-indicator.d.ts.map +1 -0
  738. package/types/slotted-angular-stepper.d.ts +198 -0
  739. package/types/slotted-angular-stepper.d.ts.map +1 -0
  740. package/types/slotted-angular-switch.d.ts +243 -0
  741. package/types/slotted-angular-switch.d.ts.map +1 -0
  742. package/types/slotted-angular-table-of-contents.d.ts +210 -0
  743. package/types/slotted-angular-table-of-contents.d.ts.map +1 -0
  744. package/types/slotted-angular-table.d.ts +888 -0
  745. package/types/slotted-angular-table.d.ts.map +1 -0
  746. package/types/slotted-angular-tabs.d.ts +340 -0
  747. package/types/slotted-angular-tabs.d.ts.map +1 -0
  748. package/types/slotted-angular-tag.d.ts +279 -0
  749. package/types/slotted-angular-tag.d.ts.map +1 -0
  750. package/types/slotted-angular-tags-input.d.ts +302 -0
  751. package/types/slotted-angular-tags-input.d.ts.map +1 -0
  752. package/types/slotted-angular-text-field.d.ts +334 -0
  753. package/types/slotted-angular-text-field.d.ts.map +1 -0
  754. package/types/slotted-angular-textarea.d.ts +150 -0
  755. package/types/slotted-angular-textarea.d.ts.map +1 -0
  756. package/types/slotted-angular-theme.d.ts +26 -0
  757. package/types/slotted-angular-theme.d.ts.map +1 -0
  758. package/types/slotted-angular-time-field.d.ts +300 -0
  759. package/types/slotted-angular-time-field.d.ts.map +1 -0
  760. package/types/slotted-angular-time-picker.d.ts +260 -0
  761. package/types/slotted-angular-time-picker.d.ts.map +1 -0
  762. package/types/slotted-angular-time-range-picker.d.ts +401 -0
  763. package/types/slotted-angular-time-range-picker.d.ts.map +1 -0
  764. package/types/slotted-angular-timeline.d.ts +329 -0
  765. package/types/slotted-angular-timeline.d.ts.map +1 -0
  766. package/types/slotted-angular-toast.d.ts +340 -0
  767. package/types/slotted-angular-toast.d.ts.map +1 -0
  768. package/types/slotted-angular-toggle-group.d.ts +167 -0
  769. package/types/slotted-angular-toggle-group.d.ts.map +1 -0
  770. package/types/slotted-angular-toggle.d.ts +106 -0
  771. package/types/slotted-angular-toggle.d.ts.map +1 -0
  772. package/types/slotted-angular-toolbar.d.ts +252 -0
  773. package/types/slotted-angular-toolbar.d.ts.map +1 -0
  774. package/types/slotted-angular-tooltip.d.ts +388 -0
  775. package/types/slotted-angular-tooltip.d.ts.map +1 -0
  776. package/types/slotted-angular-top-navigation.d.ts +442 -0
  777. package/types/slotted-angular-top-navigation.d.ts.map +1 -0
  778. package/types/slotted-angular-tour.d.ts +440 -0
  779. package/types/slotted-angular-tour.d.ts.map +1 -0
  780. package/types/slotted-angular-transfer.d.ts +296 -0
  781. package/types/slotted-angular-transfer.d.ts.map +1 -0
  782. package/types/slotted-angular-tree.d.ts +499 -0
  783. package/types/slotted-angular-tree.d.ts.map +1 -0
  784. package/types/slotted-angular-typography.d.ts +89 -0
  785. package/types/slotted-angular-typography.d.ts.map +1 -0
  786. package/types/slotted-angular-upload.d.ts +365 -0
  787. package/types/slotted-angular-upload.d.ts.map +1 -0
  788. package/types/slotted-angular-visually-hidden.d.ts +19 -0
  789. package/types/slotted-angular-visually-hidden.d.ts.map +1 -0
  790. package/types/slotted-angular-wizard.d.ts +441 -0
  791. package/types/slotted-angular-wizard.d.ts.map +1 -0
  792. package/types/slotted-angular.d.ts +3 -0
  793. package/types/slotted-angular.d.ts.map +1 -0
@@ -0,0 +1,1269 @@
1
+ <!-- index: ./index.md -->
2
+ # datetime-picker
3
+
4
+ `data-ui="datetime-picker"` · Date and time field with a picker popover.
5
+
6
+ ## Examples
7
+
8
+ ### Playground
9
+
10
+ One Datetime Picker driven by the controls below the canvas. Open it: the calendar and the list are both in the panel, the head shows the value so far, and the panel closes on the press that completes the value.
11
+
12
+ Excerpt — not a complete module
13
+
14
+ ```html
15
+ <div slField>
16
+ <label slFieldLabel>Pickup date and time</label>
17
+ <div slDateTimePicker name="pickupAt" [clearable]="true"></div>
18
+ <span slFieldDescription>The carrier collects at this date and time.</span>
19
+ </div>
20
+ ```
21
+
22
+ ### Two surfaces in one dialog
23
+
24
+ The panel holds a grid drawn by SlCalendar and a listbox drawn by the Datetime Picker. Both are in the DOM at every width; no tabs switch between them, so assistive technology reads the same structure on a wide and a narrow screen.
25
+
26
+ Excerpt — not a complete module
27
+
28
+ ```html
29
+ <div slDateTimePicker [defaultOpen]="true"></div>
30
+ ```
31
+
32
+ ### Which surface takes focus on open
33
+
34
+ openTo decides where focus lands when the panel opens, not what the panel draws. Both surfaces are present either way, in the same order: the calendar, then the list.
35
+
36
+ Excerpt — not a complete module
37
+
38
+ ```html
39
+ <div slDateTimePicker openTo="time"></div>
40
+ ```
41
+
42
+ ### The value closes the panel, not a button
43
+
44
+ With closeOnSelect="auto", the press that completes the value closes the panel. A press on a value that was already whole changes one half and leaves the panel open, so the reader can change the day and then the time. always closes on every press that changes the value; never closes on none.
45
+
46
+ Excerpt — not a complete module
47
+
48
+ ```html
49
+ <div slDateTimePicker closeOnSelect="auto"></div>
50
+ <div slDateTimePicker closeOnSelect="always"></div>
51
+ <div slDateTimePicker closeOnSelect="never"></div>
52
+ ```
53
+
54
+ ### Seconds
55
+
56
+ granularity="second" writes seconds in the field, and a step of 30 offers a time every half minute. The list stops at maxOptions rows, so a step in seconds needs a window from minTime to maxTime to stay short.
57
+
58
+ Excerpt — not a complete module
59
+
60
+ ```html
61
+ <div slDateTimePicker granularity="second" [step]="30"></div>
62
+ ```
63
+
64
+ ### The step, and where it counts from
65
+
66
+ The list counts from min’s time when min is set and from midnight when it is not, the rule input[type=time] uses. A step of 900 from 09:07 offers 09:07, 09:22 and 09:37; the field still accepts 09:15 by typing.
67
+
68
+ Example
69
+
70
+ ```ts
71
+ import { Component } from '@angular/core';
72
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
73
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
74
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
75
+
76
+ @Component({
77
+ selector: 'app-datetime-picker-step',
78
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel],
79
+ template: `
80
+ <div slField>
81
+ <label slFieldLabel>Dock appointment</label>
82
+ <div
83
+ slDateTimePicker
84
+ [maxTime]="lastStart"
85
+ [minTime]="firstStart"
86
+ [referenceDateTime]="reference"
87
+ [step]="1800"
88
+ ></div>
89
+ <span slFieldDescription>Appointments start every 30 minutes from 7:15 AM.</span>
90
+ </div>
91
+ `,
92
+ })
93
+ export class DateTimePickerStep {
94
+ protected readonly firstStart = plainTime(7, 15);
95
+ protected readonly lastStart = plainTime(16, 45);
96
+ protected readonly reference = plainDateTime(plainDate(2026, 9, 30), plainTime(7, 15));
97
+ }
98
+ ```
99
+
100
+ ### Two pairs of bounds together
101
+
102
+ min and max bound the whole value; minTime and maxTime bound the times of every day inside the range. On the day of min the list starts at min’s time, on the day of max it stops at max’s time, and on every day between it runs from minTime to maxTime.
103
+
104
+ Excerpt — not a complete module
105
+
106
+ ```html
107
+ <div
108
+ slDateTimePicker
109
+ [min]="bookingOpens"
110
+ [max]="bookingCloses"
111
+ [minTime]="nine"
112
+ [maxTime]="six"
113
+ ></div>
114
+ ```
115
+
116
+ ### The list follows the day the reader is on
117
+
118
+ Before a day is chosen, the list answers the day the calendar has focused. Moving through the month recomputes it, so a Saturday that closes early shows its shorter list, or the empty state, while the reader is still deciding.
119
+
120
+ Excerpt — not a complete module
121
+
122
+ ```html
123
+ <div slDateTimePicker [isTimeUnavailable]="closesEarlyOnSaturday"></div>
124
+ ```
125
+
126
+ ### Refused times are disabled or hidden
127
+
128
+ A refused time stays in the list, disabled, so the reader can still see the step. unavailableOptions="hide" removes refused times instead. A day that offers no time shows the empty message.
129
+
130
+ Example
131
+
132
+ ```ts
133
+ import { Component } from '@angular/core';
134
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
135
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
136
+ import {
137
+ dayOfWeek,
138
+ plainDate,
139
+ plainDateTime,
140
+ plainTime,
141
+ type PlainDate,
142
+ type PlainTime,
143
+ } from '@slotted/core/date';
144
+
145
+ @Component({
146
+ selector: 'app-datetime-picker-unavailable',
147
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel],
148
+ template: `
149
+ <div slField>
150
+ <label slFieldLabel>Warehouse inspection</label>
151
+ <div
152
+ slDateTimePicker
153
+ [isDateUnavailable]="isWeekend"
154
+ [isTimeUnavailable]="isLunch"
155
+ [maxTime]="dayEnds"
156
+ [minTime]="dayStarts"
157
+ [referenceDateTime]="reference"
158
+ [step]="1800"
159
+ ></div>
160
+ <span slFieldDescription>Weekdays from 8:00 AM to 5:00 PM, closed for lunch at noon.</span>
161
+ </div>
162
+ `,
163
+ })
164
+ export class DateTimePickerUnavailable {
165
+ protected readonly dayStarts = plainTime(8, 0);
166
+ protected readonly dayEnds = plainTime(17, 0);
167
+ protected readonly reference = plainDateTime(plainDate(2026, 9, 30), plainTime(9, 0));
168
+ protected readonly isWeekend = (date: PlainDate) =>
169
+ dayOfWeek(date) === 0 || dayOfWeek(date) === 6;
170
+ protected readonly isLunch = (time: PlainTime) => time.hour === 12;
171
+ }
172
+ ```
173
+
174
+ ### One press for the current date and time
175
+
176
+ Now writes both halves from the clock in timeZone. It does the same as the relative expression 0 in the field, for a reader who does not know the expression. messages.now replaces its label.
177
+
178
+ Excerpt — not a complete module
179
+
180
+ ```html
181
+ <div slDateTimePicker [messages]="{ now: 'Right now' }"></div>
182
+ ```
183
+
184
+ ### Typing with the panel open
185
+
186
+ Alt+ArrowDown opens the panel and leaves focus in the field, so every key the segments take still works, including +, - and = for a relative expression. Escape closes the expression first and leaves the panel open.
187
+
188
+ Excerpt — not a complete module
189
+
190
+ ```html
191
+ <div slDateTimePicker [defaultOpen]="true" [referenceDateTime]="reference"></div>
192
+ ```
193
+
194
+ ### Your own shortcuts
195
+
196
+ An element with slDateTimePickerPresets adds a row in the head beside Now. The row wraps inside the panel’s width instead of widening it.
197
+
198
+ Excerpt — not a complete module
199
+
200
+ ```html
201
+ <div slDateTimePicker>
202
+ <div slDateTimePickerPresets>
203
+ <button slButton size="sm" variant="ghost" type="button" (click)="tomorrowAtNine()">
204
+ Tomorrow, 9:00 AM
205
+ </button>
206
+ <button slButton size="sm" variant="ghost" type="button" (click)="mondayAtTwo()">
207
+ Monday, 2:00 PM
208
+ </button>
209
+ </div>
210
+ </div>
211
+ ```
212
+
213
+ ### Size
214
+
215
+ The three steps of the control scale. Inside a field, an unset size follows the field. The rows of the list follow the same scale.
216
+
217
+ Example
218
+
219
+ ```ts
220
+ import { Component } from '@angular/core';
221
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
222
+ import { SlField, SlFieldLabel } from '@slotted/angular/field';
223
+ import { SlStack } from '@slotted/angular/stack';
224
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
225
+
226
+ @Component({
227
+ selector: 'app-datetime-picker-sizes',
228
+ imports: [SlDateTimePicker, SlField, SlFieldLabel, SlStack],
229
+ template: `
230
+ <div slStack [gap]="5">
231
+ <div slField>
232
+ <label slFieldLabel>Created after</label>
233
+ <div slDateTimePicker size="sm" [defaultValue]="created"></div>
234
+ </div>
235
+ <div slField>
236
+ <label slFieldLabel>Pickup</label>
237
+ <div slDateTimePicker size="md" [defaultValue]="pickup"></div>
238
+ </div>
239
+ <div slField>
240
+ <label slFieldLabel>Store opening</label>
241
+ <div slDateTimePicker size="lg" [defaultValue]="opening"></div>
242
+ </div>
243
+ </div>
244
+ `,
245
+ })
246
+ export class DateTimePickerSizes {
247
+ protected readonly created = plainDateTime(plainDate(2026, 9, 1), plainTime(0, 0));
248
+ protected readonly pickup = plainDateTime(plainDate(2026, 9, 30), plainTime(9, 0));
249
+ protected readonly opening = plainDateTime(plainDate(2026, 11, 2), plainTime(10, 0));
250
+ }
251
+ ```
252
+
253
+ ### Variant
254
+
255
+ The frame is the datetime field’s, the same frame every field in a form draws. plain draws no frame at rest, for a table cell or a toolbar, and still shows hover and focus.
256
+
257
+ Example
258
+
259
+ ```ts
260
+ import { Component } from '@angular/core';
261
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
262
+ import { SlField, SlFieldLabel } from '@slotted/angular/field';
263
+ import { SlStack } from '@slotted/angular/stack';
264
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
265
+
266
+ @Component({
267
+ selector: 'app-datetime-picker-variants',
268
+ imports: [SlDateTimePicker, SlField, SlFieldLabel, SlStack],
269
+ template: `
270
+ <div slStack [gap]="5">
271
+ <div slField>
272
+ <label slFieldLabel>Pickup</label>
273
+ <div slDateTimePicker variant="outline" [defaultValue]="pickup"></div>
274
+ </div>
275
+ <div slField>
276
+ <label slFieldLabel>Loading starts</label>
277
+ <div slDateTimePicker variant="subtle" [defaultValue]="pickup"></div>
278
+ </div>
279
+ <div slField>
280
+ <label slFieldLabel>Gate opens</label>
281
+ <div slDateTimePicker variant="plain" [defaultValue]="pickup"></div>
282
+ </div>
283
+ </div>
284
+ `,
285
+ })
286
+ export class DateTimePickerVariants {
287
+ protected readonly pickup = plainDateTime(plainDate(2026, 9, 30), plainTime(9, 0));
288
+ }
289
+ ```
290
+
291
+ ### Placement
292
+
293
+ Where the panel opens relative to the control. It is a preference: when the panel does not fit on that side, the positioner opens it on the other, and data-placement says which side it chose.
294
+
295
+ Excerpt — not a complete module
296
+
297
+ ```html
298
+ <div slDateTimePicker placement="top-start"></div>
299
+ ```
300
+
301
+ ### States
302
+
303
+ Read-only stays focusable and legible. Disabled takes no key and no press, and its trigger is a disabled button. Invalid draws the frame and the focus ring in the danger tone. In the list, the chosen time outranks the highlighted time, which outranks hover.
304
+
305
+ Example
306
+
307
+ ```ts
308
+ import { Component } from '@angular/core';
309
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
310
+ import { SlField, SlFieldDescription, SlFieldError, SlFieldLabel } from '@slotted/angular/field';
311
+ import { SlStack } from '@slotted/angular/stack';
312
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
313
+
314
+ @Component({
315
+ selector: 'app-datetime-picker-states',
316
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldError, SlFieldLabel, SlStack],
317
+ template: `
318
+ <div slStack [gap]="5">
319
+ <div slField invalid required>
320
+ <label slFieldLabel>Pickup</label>
321
+ <div slDateTimePicker [defaultValue]="early"></div>
322
+ <span slFieldError
323
+ >The pickup is before the order was placed, September 30 at 9:00 AM.</span
324
+ >
325
+ </div>
326
+ <div slField readOnly>
327
+ <label slFieldLabel>Order placed</label>
328
+ <div slDateTimePicker [defaultValue]="placed"></div>
329
+ <span slFieldDescription>Set when the order was placed.</span>
330
+ </div>
331
+ <div slField disabled>
332
+ <label slFieldLabel>Delivered</label>
333
+ <div slDateTimePicker></div>
334
+ <span slFieldDescription>Filled in by the carrier on delivery.</span>
335
+ </div>
336
+ </div>
337
+ `,
338
+ })
339
+ export class DateTimePickerStates {
340
+ protected readonly early = plainDateTime(plainDate(2026, 9, 29), plainTime(16, 0));
341
+ protected readonly placed = plainDateTime(plainDate(2026, 9, 30), plainTime(9, 0));
342
+ }
343
+ ```
344
+
345
+ ### In a form
346
+
347
+ The Datetime Picker is a form control: formControlName, formControl and ngModel bind the value, and name adds a hidden input that submits it as YYYY-MM-DDTHH:mm:ss. The field around it supplies the label, the description and the error, and passes its size, disabled state and validity to the Datetime Picker unless it sets its own.
348
+
349
+ Excerpt — not a complete module
350
+
351
+ ```html
352
+ <form [formGroup]="form">
353
+ <div slField>
354
+ <label slFieldLabel>Pickup date and time</label>
355
+ <div slDateTimePicker formControlName="pickupAt"></div>
356
+ <span slFieldDescription>The dock is open from 9:00 AM to 6:00 PM.</span>
357
+ </div>
358
+ </form>
359
+ ```
360
+
361
+ ### Narrow
362
+
363
+ With too little room for both surfaces, the list wraps under the calendar, in the value’s own order. Nothing is hidden and no switch is drawn.
364
+
365
+ Example
366
+
367
+ ```ts
368
+ import { Component, signal } from '@angular/core';
369
+ import { SlButton } from '@slotted/angular/button';
370
+ import { SlDateTimePicker, SlDateTimePickerPresets } from '@slotted/angular/datetime-picker';
371
+ import { SlField, SlFieldLabel } from '@slotted/angular/field';
372
+ import {
373
+ addDays,
374
+ plainDate,
375
+ plainDateTime,
376
+ plainTime,
377
+ type PlainDateTime,
378
+ } from '@slotted/core/date';
379
+
380
+ const TODAY = plainDate(2026, 9, 30);
381
+
382
+ @Component({
383
+ selector: 'app-datetime-picker-narrow',
384
+ imports: [SlButton, SlDateTimePicker, SlDateTimePickerPresets, SlField, SlFieldLabel],
385
+ template: `
386
+ <div slField>
387
+ <label slFieldLabel>Delivery appointment</label>
388
+ <div
389
+ slDateTimePicker
390
+ #picker="slDateTimePicker"
391
+ [referenceDateTime]="reference"
392
+ [step]="1800"
393
+ [value]="delivery()"
394
+ (valueChange)="delivery.set($event.value)"
395
+ >
396
+ <div slDateTimePickerPresets>
397
+ <button
398
+ slButton
399
+ size="sm"
400
+ type="button"
401
+ variant="ghost"
402
+ (click)="delivery.set(todayAtFive); picker.closeSurface()"
403
+ >
404
+ Today, 5:00 PM
405
+ </button>
406
+ <button
407
+ slButton
408
+ size="sm"
409
+ type="button"
410
+ variant="ghost"
411
+ (click)="delivery.set(tomorrowAtNine); picker.closeSurface()"
412
+ >
413
+ Tomorrow, 9:00 AM
414
+ </button>
415
+ </div>
416
+ </div>
417
+ </div>
418
+ `,
419
+ })
420
+ export class DateTimePickerNarrow {
421
+ protected readonly reference = plainDateTime(TODAY, plainTime(9, 0));
422
+ protected readonly todayAtFive = plainDateTime(TODAY, plainTime(17, 0));
423
+ protected readonly tomorrowAtNine = plainDateTime(addDays(TODAY, 1), plainTime(9, 0));
424
+ protected readonly delivery = signal<PlainDateTime | null>(null);
425
+ }
426
+ ```
427
+
428
+ ### Composition
429
+
430
+ provideDateTimePickerDefaults sets the step and the clock once; provideSlotted sets the language and the words; an ng-template with slDateTimePickerOption draws the content of one row; slDateTimePickerFooter takes your actions; and exportAs reaches focus(), openSurface() and closeSurface(). A value set on one Datetime Picker still wins over the provider.
431
+
432
+ Excerpt — not a complete module
433
+
434
+ ```html
435
+ <div slDateTimePicker>
436
+ <ng-template slDateTimePickerOption let-time let-label="label">
437
+ <span>{{ label }}</span>
438
+ <span>{{ seatsLeft(time) }} seats left</span>
439
+ </ng-template>
440
+ </div>
441
+ ```
442
+
443
+ ### Keyboard
444
+
445
+ Alt+ArrowDown opens the panel from a segment and leaves focus in the field. ArrowDown on the trigger opens it and moves focus into the surface openTo names. In the list: the arrow keys, Home, End, type-ahead, and PageUp and PageDown to the previous or next hour. Tab stays inside the panel while it is open, and each surface is one Tab stop.
446
+
447
+ Example
448
+
449
+ ```ts
450
+ import { Component, signal } from '@angular/core';
451
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
452
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
453
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
454
+ import type { ChangeRequest } from '@slotted/core/state';
455
+
456
+ @Component({
457
+ selector: 'app-datetime-picker-keyboard',
458
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel],
459
+ template: `
460
+ <div slField>
461
+ <label slFieldLabel>Dispatch</label>
462
+ <div
463
+ slDateTimePicker
464
+ [defaultValue]="dispatch"
465
+ [messages]="messages"
466
+ (openChange)="record($event)"
467
+ ></div>
468
+ <span slFieldDescription>{{ last() }}</span>
469
+ </div>
470
+ `,
471
+ })
472
+ export class DateTimePickerKeyboard {
473
+ protected readonly dispatch = plainDateTime(plainDate(2026, 9, 30), plainTime(16, 30));
474
+ protected readonly messages = {
475
+ choose: 'Choose dispatch time',
476
+ change: 'Change dispatch time, {date}',
477
+ };
478
+ protected readonly last = signal('Focus the field and press Alt+ArrowDown.');
479
+
480
+ protected record(request: ChangeRequest<boolean>): void {
481
+ this.last.set(`${request.value ? 'Opened' : 'Closed'} by ${request.reason}.`);
482
+ }
483
+ }
484
+ ```
485
+
486
+ ### bounds.ts
487
+
488
+ Example
489
+
490
+ ```ts
491
+ import { Component } from '@angular/core';
492
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
493
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
494
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
495
+
496
+ @Component({
497
+ selector: 'app-datetime-picker-bounds',
498
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel],
499
+ template: `
500
+ <div slField>
501
+ <label slFieldLabel>Container collection</label>
502
+ <div
503
+ slDateTimePicker
504
+ [defaultValue]="opens"
505
+ [max]="closes"
506
+ [maxTime]="dayEnds"
507
+ [min]="opens"
508
+ [minTime]="dayStarts"
509
+ [step]="3600"
510
+ ></div>
511
+ <span slFieldDescription>
512
+ From October 1 at 1:00 PM to October 9 at 12:00 PM, between 8:00 AM and 5:00 PM.
513
+ </span>
514
+ </div>
515
+ `,
516
+ })
517
+ export class DateTimePickerBounds {
518
+ protected readonly opens = plainDateTime(plainDate(2026, 10, 1), plainTime(13, 0));
519
+ protected readonly closes = plainDateTime(plainDate(2026, 10, 9), plainTime(12, 0));
520
+ protected readonly dayStarts = plainTime(8, 0);
521
+ protected readonly dayEnds = plainTime(17, 0);
522
+ }
523
+ ```
524
+
525
+ ### carrier-pickup.ts
526
+
527
+ Example
528
+
529
+ ```ts
530
+ import { Component, computed, signal } from '@angular/core';
531
+ import { SlButton } from '@slotted/angular/button';
532
+ import {
533
+ SlDateTimePicker,
534
+ SlDateTimePickerFooter,
535
+ SlDateTimePickerOption,
536
+ } from '@slotted/angular/datetime-picker';
537
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
538
+ import { SlText } from '@slotted/angular/typography';
539
+ import {
540
+ createDateTimeFormat,
541
+ dayOfWeek,
542
+ plainDate,
543
+ plainDateTime,
544
+ plainTime,
545
+ toISODate,
546
+ toISOTime,
547
+ type PlainDate,
548
+ type PlainDateTime,
549
+ type PlainTime,
550
+ } from '@slotted/core/date';
551
+
552
+ const TRUCKS_PER_WINDOW = 3;
553
+ /** Pickups already booked, by date and window. */
554
+ const BOOKED: Record<string, number> = {
555
+ '2026-10-01T08:00:00': 3,
556
+ '2026-10-01T10:30:00': 2,
557
+ '2026-10-02T13:00:00': 3,
558
+ '2026-10-02T15:30:00': 1,
559
+ };
560
+ const words = createDateTimeFormat({ locale: 'en-US' });
561
+
562
+ const trucksLeft = (time: PlainTime, date: PlainDate) =>
563
+ TRUCKS_PER_WINDOW - (BOOKED[`${toISODate(date)}T${toISOTime(time)}`] ?? 0);
564
+
565
+ @Component({
566
+ selector: 'app-datetime-picker-carrier-pickup',
567
+ imports: [
568
+ SlButton,
569
+ SlDateTimePicker,
570
+ SlDateTimePickerFooter,
571
+ SlDateTimePickerOption,
572
+ SlField,
573
+ SlFieldDescription,
574
+ SlFieldLabel,
575
+ SlText,
576
+ ],
577
+ template: `
578
+ <div slField required>
579
+ <label slFieldLabel>Carrier pickup slot</label>
580
+ <div
581
+ slDateTimePicker
582
+ #picker="slDateTimePicker"
583
+ closeOnSelect="never"
584
+ [isDateUnavailable]="isWeekend"
585
+ [isTimeUnavailable]="isFull"
586
+ [min]="earliest"
587
+ [options]="windows"
588
+ [referenceDateTime]="reference"
589
+ [value]="pickup()"
590
+ (valueChange)="pickup.set($event.value)"
591
+ >
592
+ <ng-template
593
+ slDateTimePickerOption
594
+ let-time
595
+ let-date="date"
596
+ let-label="label"
597
+ let-unavailable="unavailable"
598
+ >
599
+ <span>{{ label }}</span>
600
+ <span slText size="sm" tone="muted">{{ capacity(time, date, unavailable) }}</span>
601
+ </ng-template>
602
+ <div slDateTimePickerFooter>
603
+ <button slButton size="sm" type="button" (click)="picker.closeSurface()">Done</button>
604
+ </div>
605
+ </div>
606
+ <span slFieldDescription>{{ summary() }}</span>
607
+ </div>
608
+ `,
609
+ })
610
+ export class DateTimePickerCarrierPickup {
611
+ /** The windows Harbor Freightways collects in, every weekday. */
612
+ protected readonly windows = [
613
+ plainTime(8, 0),
614
+ plainTime(10, 30),
615
+ plainTime(13, 0),
616
+ plainTime(15, 30),
617
+ ];
618
+ protected readonly earliest = plainDateTime(plainDate(2026, 10, 1), plainTime(8, 0));
619
+ protected readonly reference = plainDateTime(plainDate(2026, 10, 1), plainTime(10, 30));
620
+ protected readonly pickup = signal<PlainDateTime | null>(null);
621
+ protected readonly summary = computed(() => {
622
+ const pickup = this.pickup();
623
+ return pickup === null
624
+ ? 'Harbor Freightways collects on weekdays, in four windows.'
625
+ : `Harbor Freightways collects on ${words.describe(pickup)}.`;
626
+ });
627
+
628
+ protected readonly isWeekend = (date: PlainDate) =>
629
+ dayOfWeek(date) === 0 || dayOfWeek(date) === 6;
630
+ protected readonly isFull = (time: PlainTime, date: PlainDate) => trucksLeft(time, date) === 0;
631
+
632
+ protected capacity(time: PlainTime, date: PlainDate, unavailable: boolean): string {
633
+ return unavailable ? 'Full' : `${trucksLeft(time, date)} of ${TRUCKS_PER_WINDOW} trucks left`;
634
+ }
635
+ }
636
+ ```
637
+
638
+ ### clearable.ts
639
+
640
+ Example
641
+
642
+ ```ts
643
+ import { Component } from '@angular/core';
644
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
645
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
646
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
647
+
648
+ @Component({
649
+ selector: 'app-datetime-picker-clearable',
650
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel],
651
+ template: `
652
+ <div slField>
653
+ <label slFieldLabel>Hold shipment until</label>
654
+ <div slDateTimePicker clearable [defaultValue]="holdUntil"></div>
655
+ <span slFieldDescription>Clear the date and time to release the shipment.</span>
656
+ </div>
657
+ `,
658
+ })
659
+ export class DateTimePickerClearable {
660
+ protected readonly holdUntil = plainDateTime(plainDate(2026, 10, 9), plainTime(17, 0));
661
+ }
662
+ ```
663
+
664
+ ### controlled.ts
665
+
666
+ Example
667
+
668
+ ```ts
669
+ import { Component, computed, signal } from '@angular/core';
670
+ import { SlButton } from '@slotted/angular/button';
671
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
672
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
673
+ import { SlInline } from '@slotted/angular/inline';
674
+ import { SlStack } from '@slotted/angular/stack';
675
+ import {
676
+ addDays,
677
+ createDateTimeFormat,
678
+ plainDate,
679
+ plainDateTime,
680
+ plainTime,
681
+ type PlainDateTime,
682
+ } from '@slotted/core/date';
683
+
684
+ const TODAY = plainDate(2026, 9, 30);
685
+ const words = createDateTimeFormat({ locale: 'en-US' });
686
+
687
+ @Component({
688
+ selector: 'app-datetime-picker-controlled',
689
+ imports: [
690
+ SlButton,
691
+ SlDateTimePicker,
692
+ SlField,
693
+ SlFieldDescription,
694
+ SlFieldLabel,
695
+ SlInline,
696
+ SlStack,
697
+ ],
698
+ template: `
699
+ <div slStack [gap]="4">
700
+ <div slField>
701
+ <label slFieldLabel>Call Harbor Freightways</label>
702
+ <div slDateTimePicker [value]="call()" (valueChange)="call.set($event.value)"></div>
703
+ <span slFieldDescription>{{ summary() }}</span>
704
+ </div>
705
+ <div slInline [gap]="2">
706
+ <button
707
+ slButton
708
+ size="sm"
709
+ tone="secondary"
710
+ type="button"
711
+ variant="outline"
712
+ (click)="schedule(1, 9)"
713
+ >
714
+ Tomorrow, 9:00 AM
715
+ </button>
716
+ <button
717
+ slButton
718
+ size="sm"
719
+ tone="secondary"
720
+ type="button"
721
+ variant="outline"
722
+ (click)="schedule(2, 14)"
723
+ >
724
+ Friday, 2:00 PM
725
+ </button>
726
+ <button
727
+ slButton
728
+ size="sm"
729
+ tone="secondary"
730
+ type="button"
731
+ variant="ghost"
732
+ (click)="call.set(null)"
733
+ >
734
+ No call
735
+ </button>
736
+ </div>
737
+ </div>
738
+ `,
739
+ })
740
+ export class DateTimePickerControlled {
741
+ protected readonly call = signal<PlainDateTime | null>(
742
+ plainDateTime(addDays(TODAY, 1), plainTime(9, 0)),
743
+ );
744
+ protected readonly summary = computed(() => {
745
+ const call = this.call();
746
+ return call === null ? 'No call scheduled.' : `Call on ${words.describe(call)}.`;
747
+ });
748
+
749
+ protected schedule(days: number, hour: number): void {
750
+ this.call.set(plainDateTime(addDays(TODAY, days), plainTime(hour, 0)));
751
+ }
752
+ }
753
+ ```
754
+
755
+ ### footer.ts
756
+
757
+ Example
758
+
759
+ ```ts
760
+ import { Component } from '@angular/core';
761
+ import { SlButton } from '@slotted/angular/button';
762
+ import { SlDateTimePicker, SlDateTimePickerFooter } from '@slotted/angular/datetime-picker';
763
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
764
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
765
+
766
+ @Component({
767
+ selector: 'app-datetime-picker-footer',
768
+ imports: [
769
+ SlButton,
770
+ SlDateTimePicker,
771
+ SlDateTimePickerFooter,
772
+ SlField,
773
+ SlFieldDescription,
774
+ SlFieldLabel,
775
+ ],
776
+ template: `
777
+ <div slField>
778
+ <label slFieldLabel>Maintenance window starts</label>
779
+ <div
780
+ slDateTimePicker
781
+ #picker="slDateTimePicker"
782
+ closeOnSelect="never"
783
+ [defaultValue]="start"
784
+ [step]="3600"
785
+ >
786
+ <div slDateTimePickerFooter>
787
+ <button slButton size="sm" type="button" (click)="picker.closeSurface()">Done</button>
788
+ </div>
789
+ </div>
790
+ <span slFieldDescription>Conveyors stop for four hours from this time.</span>
791
+ </div>
792
+ `,
793
+ })
794
+ export class DateTimePickerFooter {
795
+ protected readonly start = plainDateTime(plainDate(2026, 10, 3), plainTime(22, 0));
796
+ }
797
+ ```
798
+
799
+ ### form.ts
800
+
801
+ Example
802
+
803
+ ```ts
804
+ import { Component, computed, signal } from '@angular/core';
805
+ import { toSignal } from '@angular/core/rxjs-interop';
806
+ import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
807
+ import { SlButton } from '@slotted/angular/button';
808
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
809
+ import { SlField, SlFieldError, SlFieldLabel } from '@slotted/angular/field';
810
+ import { SlInline } from '@slotted/angular/inline';
811
+ import { SlStack } from '@slotted/angular/stack';
812
+ import { SlText } from '@slotted/angular/typography';
813
+ import {
814
+ plainDate,
815
+ plainDateTime,
816
+ plainTime,
817
+ toISODateTime,
818
+ type PlainDateTime,
819
+ } from '@slotted/core/date';
820
+
821
+ @Component({
822
+ selector: 'app-datetime-picker-form',
823
+ imports: [
824
+ ReactiveFormsModule,
825
+ SlButton,
826
+ SlDateTimePicker,
827
+ SlField,
828
+ SlFieldError,
829
+ SlFieldLabel,
830
+ SlInline,
831
+ SlStack,
832
+ SlText,
833
+ ],
834
+ template: `
835
+ <form novalidate [formGroup]="form" (ngSubmit)="submit()" (reset)="clear()">
836
+ <div slStack [gap]="5">
837
+ <div slField required [invalid]="error() === '' ? undefined : true">
838
+ <label slFieldLabel>Pickup date and time</label>
839
+ <div
840
+ slDateTimePicker
841
+ formControlName="pickupAt"
842
+ name="pickupAt"
843
+ [min]="earliest"
844
+ [referenceDateTime]="earliest"
845
+ ></div>
846
+ <span slFieldError live="polite" reserve>{{ error() }}</span>
847
+ </div>
848
+ <div slInline align="center" [gap]="3">
849
+ <button slButton type="submit">Book pickup</button>
850
+ <button slButton tone="secondary" type="reset" variant="outline">Reset</button>
851
+ @if (saved(); as message) {
852
+ <span slText size="sm" tone="muted">{{ message }}</span>
853
+ }
854
+ </div>
855
+ </div>
856
+ </form>
857
+ `,
858
+ })
859
+ export class DateTimePickerForm {
860
+ protected readonly earliest = plainDateTime(plainDate(2026, 10, 1), plainTime(8, 0));
861
+ protected readonly form = new FormGroup({
862
+ pickupAt: new FormControl<PlainDateTime | null>(null, Validators.required),
863
+ });
864
+ private readonly value = toSignal(this.form.controls.pickupAt.valueChanges, {
865
+ initialValue: this.form.controls.pickupAt.value,
866
+ });
867
+ private readonly submitted = signal(false);
868
+ protected readonly saved = signal<string | null>(null);
869
+ protected readonly error = computed(() => {
870
+ this.value();
871
+ const control = this.form.controls.pickupAt;
872
+ if (control.hasError('slottedDateTimeRange')) {
873
+ return 'Choose October 1, 2026 at 8:00 AM or later.';
874
+ }
875
+ if (this.submitted() && control.hasError('required')) return 'Choose a pickup date and time.';
876
+ return '';
877
+ });
878
+
879
+ protected submit(): void {
880
+ this.submitted.set(true);
881
+ const pickup = this.form.controls.pickupAt.value;
882
+ this.saved.set(
883
+ this.form.valid && pickup !== null ? `Pickup booked for ${toISODateTime(pickup)}.` : null,
884
+ );
885
+ }
886
+
887
+ protected clear(): void {
888
+ this.submitted.set(false);
889
+ this.saved.set(null);
890
+ }
891
+ }
892
+ ```
893
+
894
+ ### granularity.ts
895
+
896
+ Example
897
+
898
+ ```ts
899
+ import { Component } from '@angular/core';
900
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
901
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
902
+ import { SlStack } from '@slotted/angular/stack';
903
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
904
+
905
+ @Component({
906
+ selector: 'app-datetime-picker-granularity',
907
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel, SlStack],
908
+ template: `
909
+ <div slStack [gap]="5">
910
+ <div slField>
911
+ <label slFieldLabel>Shift starts</label>
912
+ <div slDateTimePicker granularity="hour" [defaultValue]="shift" [step]="3600"></div>
913
+ <span slFieldDescription>Shifts start on the hour.</span>
914
+ </div>
915
+ <div slField>
916
+ <label slFieldLabel>Batch run starts</label>
917
+ <div
918
+ slDateTimePicker
919
+ granularity="second"
920
+ [defaultValue]="batch"
921
+ [maxTime]="windowEnd"
922
+ [minTime]="windowStart"
923
+ [step]="30"
924
+ ></div>
925
+ <span slFieldDescription>The nightly run starts between 2:00:00 and 2:05:00 AM.</span>
926
+ </div>
927
+ </div>
928
+ `,
929
+ })
930
+ export class DateTimePickerGranularity {
931
+ protected readonly shift = plainDateTime(plainDate(2026, 10, 1), plainTime(6, 0));
932
+ protected readonly batch = plainDateTime(plainDate(2026, 9, 30), plainTime(2, 0, 30));
933
+ protected readonly windowStart = plainTime(2, 0);
934
+ protected readonly windowEnd = plainTime(2, 5);
935
+ }
936
+ ```
937
+
938
+ ### hour-cycle.ts
939
+
940
+ Example
941
+
942
+ ```ts
943
+ import { Component } from '@angular/core';
944
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
945
+ import { SlField, SlFieldLabel } from '@slotted/angular/field';
946
+ import { SlStack } from '@slotted/angular/stack';
947
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
948
+
949
+ @Component({
950
+ selector: 'app-datetime-picker-hour-cycle',
951
+ imports: [SlDateTimePicker, SlField, SlFieldLabel, SlStack],
952
+ template: `
953
+ <div slStack [gap]="5">
954
+ <div slField>
955
+ <label slFieldLabel>Departure, 12-hour clock</label>
956
+ <div slDateTimePicker [defaultValue]="departure" [hourCycle]="12"></div>
957
+ </div>
958
+ <div slField>
959
+ <label slFieldLabel>Departure, 24-hour clock</label>
960
+ <div slDateTimePicker [defaultValue]="departure" [hourCycle]="24"></div>
961
+ </div>
962
+ </div>
963
+ `,
964
+ })
965
+ export class DateTimePickerHourCycle {
966
+ protected readonly departure = plainDateTime(plainDate(2026, 9, 30), plainTime(18, 45));
967
+ }
968
+ ```
969
+
970
+ ### locale.ts
971
+
972
+ Example
973
+
974
+ ```ts
975
+ import { Component } from '@angular/core';
976
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
977
+ import { SlField, SlFieldLabel } from '@slotted/angular/field';
978
+ import { SlStack } from '@slotted/angular/stack';
979
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
980
+
981
+ @Component({
982
+ selector: 'app-datetime-picker-locale',
983
+ imports: [SlDateTimePicker, SlField, SlFieldLabel, SlStack],
984
+ template: `
985
+ <div slStack [gap]="5">
986
+ <div slField>
987
+ <label slFieldLabel>Pickup, United States (en-US)</label>
988
+ <div slDateTimePicker locale="en-US" [defaultValue]="pickup"></div>
989
+ </div>
990
+ <div slField>
991
+ <label slFieldLabel>Pickup, United Kingdom (en-GB)</label>
992
+ <div slDateTimePicker locale="en-GB" [defaultValue]="pickup"></div>
993
+ </div>
994
+ <div slField>
995
+ <label slFieldLabel>Pickup, Germany (de-DE)</label>
996
+ <div slDateTimePicker locale="de-DE" [defaultValue]="pickup"></div>
997
+ </div>
998
+ <div slField>
999
+ <label slFieldLabel>Pickup, Japan (ja-JP)</label>
1000
+ <div slDateTimePicker locale="ja-JP" [defaultValue]="pickup"></div>
1001
+ </div>
1002
+ </div>
1003
+ `,
1004
+ })
1005
+ export class DateTimePickerLocale {
1006
+ protected readonly pickup = plainDateTime(plainDate(2026, 9, 30), plainTime(14, 30));
1007
+ }
1008
+ ```
1009
+
1010
+ ### options.ts
1011
+
1012
+ Example
1013
+
1014
+ ```ts
1015
+ import { Component } from '@angular/core';
1016
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
1017
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
1018
+ import { plainDate, plainDateTime, plainTime } from '@slotted/core/date';
1019
+
1020
+ @Component({
1021
+ selector: 'app-datetime-picker-options',
1022
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel],
1023
+ template: `
1024
+ <div slField>
1025
+ <label slFieldLabel>Line-haul departure</label>
1026
+ <div slDateTimePicker [options]="departures" [referenceDateTime]="reference"></div>
1027
+ <span slFieldDescription>The Chicago to Memphis trailer leaves five times a day.</span>
1028
+ </div>
1029
+ `,
1030
+ })
1031
+ export class DateTimePickerOptions {
1032
+ protected readonly departures = [
1033
+ plainTime(5, 40),
1034
+ plainTime(8, 15),
1035
+ plainTime(11, 50),
1036
+ plainTime(16, 5),
1037
+ plainTime(21, 30),
1038
+ ];
1039
+ protected readonly reference = plainDateTime(plainDate(2026, 9, 30), plainTime(8, 15));
1040
+ }
1041
+ ```
1042
+
1043
+ ### publish-at.ts
1044
+
1045
+ Example
1046
+
1047
+ ```ts
1048
+ import { Component, computed, signal } from '@angular/core';
1049
+ import { SlButton } from '@slotted/angular/button';
1050
+ import { SlDateTimePicker, SlDateTimePickerPresets } from '@slotted/angular/datetime-picker';
1051
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
1052
+ import {
1053
+ addDays,
1054
+ createDateTimeFormat,
1055
+ dayOfWeek,
1056
+ plainDate,
1057
+ plainDateTime,
1058
+ plainTime,
1059
+ type PlainDateTime,
1060
+ } from '@slotted/core/date';
1061
+
1062
+ const NOW = plainDateTime(plainDate(2026, 9, 30), plainTime(9, 0));
1063
+ const TOMORROW = plainDateTime(addDays(NOW.date, 1), plainTime(9, 0));
1064
+ const NEXT_MONDAY = plainDateTime(
1065
+ addDays(NOW.date, (8 - dayOfWeek(NOW.date)) % 7 || 7),
1066
+ plainTime(9, 0),
1067
+ );
1068
+ const words = createDateTimeFormat({ locale: 'en-US' });
1069
+
1070
+ @Component({
1071
+ selector: 'app-datetime-picker-publish-at',
1072
+ imports: [
1073
+ SlButton,
1074
+ SlDateTimePicker,
1075
+ SlDateTimePickerPresets,
1076
+ SlField,
1077
+ SlFieldDescription,
1078
+ SlFieldLabel,
1079
+ ],
1080
+ template: `
1081
+ <div slField required>
1082
+ <label slFieldLabel>Publish the autumn price list at</label>
1083
+ <div
1084
+ slDateTimePicker
1085
+ #picker="slDateTimePicker"
1086
+ timeZone="America/New_York"
1087
+ [min]="now"
1088
+ [referenceDateTime]="now"
1089
+ [value]="publishAt()"
1090
+ (valueChange)="publishAt.set($event.value)"
1091
+ >
1092
+ <div slDateTimePickerPresets>
1093
+ <button
1094
+ slButton
1095
+ size="sm"
1096
+ type="button"
1097
+ variant="ghost"
1098
+ (click)="publishAt.set(tomorrow); picker.closeSurface()"
1099
+ >
1100
+ Tomorrow, 9:00 AM
1101
+ </button>
1102
+ <button
1103
+ slButton
1104
+ size="sm"
1105
+ type="button"
1106
+ variant="ghost"
1107
+ (click)="publishAt.set(nextMonday); picker.closeSurface()"
1108
+ >
1109
+ Monday, 9:00 AM
1110
+ </button>
1111
+ </div>
1112
+ </div>
1113
+ <span slFieldDescription>{{ summary() }}</span>
1114
+ </div>
1115
+ `,
1116
+ })
1117
+ export class DateTimePickerPublishAt {
1118
+ protected readonly now = NOW;
1119
+ protected readonly tomorrow = TOMORROW;
1120
+ protected readonly nextMonday = NEXT_MONDAY;
1121
+ protected readonly publishAt = signal<PlainDateTime | null>(TOMORROW);
1122
+ protected readonly summary = computed(() => {
1123
+ const publishAt = this.publishAt();
1124
+ return publishAt === null
1125
+ ? 'Choose when the new prices go live, New York time.'
1126
+ : `Prices go live on ${words.describe(publishAt)}, New York time.`;
1127
+ });
1128
+ }
1129
+ ```
1130
+
1131
+ ### reference.ts
1132
+
1133
+ Example
1134
+
1135
+ ```ts
1136
+ import { Component, computed, signal } from '@angular/core';
1137
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
1138
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
1139
+ import {
1140
+ createDateTimeFormat,
1141
+ plainDate,
1142
+ plainDateTime,
1143
+ plainTime,
1144
+ type PlainDateTime,
1145
+ } from '@slotted/core/date';
1146
+
1147
+ const words = createDateTimeFormat({ locale: 'en-US' });
1148
+
1149
+ @Component({
1150
+ selector: 'app-datetime-picker-reference',
1151
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel],
1152
+ template: `
1153
+ <div slField>
1154
+ <label slFieldLabel>Courier collection</label>
1155
+ <div
1156
+ slDateTimePicker
1157
+ [referenceDateTime]="endOfShift"
1158
+ [value]="collection()"
1159
+ (valueChange)="collection.set($event.value)"
1160
+ ></div>
1161
+ <span slFieldDescription>{{ summary() }}</span>
1162
+ </div>
1163
+ `,
1164
+ })
1165
+ export class DateTimePickerReference {
1166
+ protected readonly endOfShift = plainDateTime(plainDate(2026, 10, 1), plainTime(15, 0));
1167
+ protected readonly collection = signal<PlainDateTime | null>(null);
1168
+ protected readonly summary = computed(() => {
1169
+ const collection = this.collection();
1170
+ return collection === null
1171
+ ? 'A day chosen in the calendar opens the time list on 3:00 PM.'
1172
+ : `Collection on ${words.describe(collection)}.`;
1173
+ });
1174
+ }
1175
+ ```
1176
+
1177
+ ### time-zones.ts
1178
+
1179
+ Example
1180
+
1181
+ ```ts
1182
+ import { Component, computed, signal } from '@angular/core';
1183
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
1184
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
1185
+ import { SlStack } from '@slotted/angular/stack';
1186
+ import { SlText } from '@slotted/angular/typography';
1187
+ import { toISODateTime, wallClockIn, type PlainDateTime } from '@slotted/core/date';
1188
+
1189
+ /** The pickup as the server stores it: an instant, 7:00 PM UTC on September 30, 2026. */
1190
+ const STORED = Date.UTC(2026, 8, 30, 19, 0);
1191
+
1192
+ @Component({
1193
+ selector: 'app-datetime-picker-time-zones',
1194
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel, SlStack, SlText],
1195
+ template: `
1196
+ <div slStack [gap]="4">
1197
+ <div slField>
1198
+ <label slFieldLabel>Pickup, Chicago terminal</label>
1199
+ <div
1200
+ slDateTimePicker
1201
+ timeZone="America/Chicago"
1202
+ [value]="pickup()"
1203
+ (valueChange)="pickup.set($event.value)"
1204
+ ></div>
1205
+ <span slFieldDescription>Today and Now follow the clock in Chicago.</span>
1206
+ </div>
1207
+ <span slText size="sm" tone="muted">{{ readout() }}</span>
1208
+ </div>
1209
+ `,
1210
+ })
1211
+ export class DateTimePickerTimeZones {
1212
+ protected readonly pickup = signal<PlainDateTime | null>(wallClockIn(STORED, 'America/Chicago'));
1213
+ protected readonly readout = computed(() => {
1214
+ const pickup = this.pickup();
1215
+ return pickup === null ? 'Value: null' : `Value: ${toISODateTime(pickup)}, with no offset`;
1216
+ });
1217
+ }
1218
+ ```
1219
+
1220
+ ### typing.ts
1221
+
1222
+ Example
1223
+
1224
+ ```ts
1225
+ import { Component, signal } from '@angular/core';
1226
+ import { SlDateTimePicker } from '@slotted/angular/datetime-picker';
1227
+ import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
1228
+ import {
1229
+ plainDate,
1230
+ plainDateTime,
1231
+ plainTime,
1232
+ toISODateTime,
1233
+ type PlainDateTime,
1234
+ } from '@slotted/core/date';
1235
+ import type { ChangeRequest } from '@slotted/core/state';
1236
+
1237
+ const REASONS: Record<string, string> = {
1238
+ keyboard: 'from the keyboard',
1239
+ select: 'chosen in the panel',
1240
+ clear: 'cleared',
1241
+ blur: 'completed when the field lost focus',
1242
+ };
1243
+
1244
+ @Component({
1245
+ selector: 'app-datetime-picker-typing',
1246
+ imports: [SlDateTimePicker, SlField, SlFieldDescription, SlFieldLabel],
1247
+ template: `
1248
+ <div slField>
1249
+ <label slFieldLabel>Goods received at</label>
1250
+ <div
1251
+ slDateTimePicker
1252
+ [defaultValue]="received"
1253
+ [referenceDateTime]="received"
1254
+ (valueChange)="record($event)"
1255
+ ></div>
1256
+ <span slFieldDescription>{{ change() }}</span>
1257
+ </div>
1258
+ `,
1259
+ })
1260
+ export class DateTimePickerTyping {
1261
+ protected readonly received = plainDateTime(plainDate(2026, 9, 30), plainTime(14, 30));
1262
+ protected readonly change = signal('No change yet.');
1263
+
1264
+ protected record(request: ChangeRequest<PlainDateTime | null>): void {
1265
+ const text = request.value === null ? 'empty' : toISODateTime(request.value);
1266
+ this.change.set(`${text}, ${REASONS[request.reason] ?? request.reason}.`);
1267
+ }
1268
+ }
1269
+ ```