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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/docs/code-block.json +92 -92
  2. package/docs/code-block.md +69 -69
  3. package/docs/currency-field.json +7 -0
  4. package/docs/currency-field.md +1 -0
  5. package/docs/data-grid.examples.md +1 -1
  6. package/docs/data-grid.json +21 -4
  7. package/docs/data-grid.md +1 -1
  8. package/docs/data-grid.props.md +5 -3
  9. package/docs/dialog.examples.md +138 -136
  10. package/docs/dialog.json +8 -8
  11. package/docs/filter-bar.json +118 -118
  12. package/docs/filter-bar.md +79 -79
  13. package/docs/guidelines/async-feedback.md +10 -0
  14. package/docs/guidelines/composition.md +11 -7
  15. package/docs/guidelines/index.md +6 -1
  16. package/docs/guidelines/list-pages.md +30 -0
  17. package/docs/guidelines/overviews.md +10 -0
  18. package/docs/markdown.json +79 -79
  19. package/docs/markdown.md +65 -65
  20. package/docs/page-header.json +1 -1
  21. package/docs/skills/compose-screen/SKILL.md +22 -10
  22. package/docs/skills/review-screen/SKILL.md +6 -0
  23. package/docs/skills/waiting-states/SKILL.md +4 -1
  24. package/docs/tags-input.json +28 -2
  25. package/docs/tags-input.md +4 -1
  26. package/docs/timeline.json +131 -131
  27. package/docs/timeline.md +123 -123
  28. package/fesm2022/slotted-angular-accordion.mjs +4 -2
  29. package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
  30. package/fesm2022/slotted-angular-action-bar.mjs +21 -10
  31. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  32. package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
  33. package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
  34. package/fesm2022/slotted-angular-alert.mjs +17 -11
  35. package/fesm2022/slotted-angular-alert.mjs.map +1 -1
  36. package/fesm2022/slotted-angular-app-shell.mjs +52 -40
  37. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  38. package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
  39. package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
  40. package/fesm2022/slotted-angular-attachment.mjs +31 -20
  41. package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
  42. package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
  43. package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
  44. package/fesm2022/slotted-angular-avatar.mjs +9 -6
  45. package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
  46. package/fesm2022/slotted-angular-badge.mjs +14 -10
  47. package/fesm2022/slotted-angular-badge.mjs.map +1 -1
  48. package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
  49. package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
  50. package/fesm2022/slotted-angular-button-group.mjs +7 -4
  51. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  52. package/fesm2022/slotted-angular-button.mjs +53 -25
  53. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  54. package/fesm2022/slotted-angular-calendar.mjs +68 -26
  55. package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
  56. package/fesm2022/slotted-angular-card.mjs +18 -16
  57. package/fesm2022/slotted-angular-card.mjs.map +1 -1
  58. package/fesm2022/slotted-angular-carousel.mjs +22 -11
  59. package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
  60. package/fesm2022/slotted-angular-cascader.mjs +158 -64
  61. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  62. package/fesm2022/slotted-angular-chart.mjs +4 -2
  63. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  64. package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
  65. package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
  66. package/fesm2022/slotted-angular-checkbox.mjs +13 -8
  67. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  68. package/fesm2022/slotted-angular-code-block.mjs +29 -15
  69. package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
  70. package/fesm2022/slotted-angular-collapsible.mjs +20 -15
  71. package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
  72. package/fesm2022/slotted-angular-color-picker.mjs +77 -22
  73. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  74. package/fesm2022/slotted-angular-column-manager.mjs +68 -31
  75. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  76. package/fesm2022/slotted-angular-combobox.mjs +77 -31
  77. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  78. package/fesm2022/slotted-angular-command-palette.mjs +128 -51
  79. package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
  80. package/fesm2022/slotted-angular-container.mjs +6 -4
  81. package/fesm2022/slotted-angular-container.mjs.map +1 -1
  82. package/fesm2022/slotted-angular-context-menu.mjs +5 -4
  83. package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
  84. package/fesm2022/slotted-angular-currency-field.mjs +98 -32
  85. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  86. package/fesm2022/slotted-angular-dashboard-grid.mjs +127 -44
  87. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  88. package/fesm2022/slotted-angular-data-grid.mjs +309 -104
  89. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  90. package/fesm2022/slotted-angular-data-list.mjs +83 -50
  91. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  92. package/fesm2022/slotted-angular-date-field.mjs +38 -12
  93. package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
  94. package/fesm2022/slotted-angular-date-picker.mjs +19 -9
  95. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  96. package/fesm2022/slotted-angular-date-range-picker.mjs +41 -16
  97. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  98. package/fesm2022/slotted-angular-datetime-field.mjs +46 -14
  99. package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
  100. package/fesm2022/slotted-angular-datetime-picker.mjs +37 -23
  101. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  102. package/fesm2022/slotted-angular-datetime-range-picker.mjs +111 -42
  103. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  104. package/fesm2022/slotted-angular-description-list.mjs +33 -19
  105. package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
  106. package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
  107. package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
  108. package/fesm2022/slotted-angular-dialog.mjs +39 -28
  109. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  110. package/fesm2022/slotted-angular-divider.mjs +7 -5
  111. package/fesm2022/slotted-angular-divider.mjs.map +1 -1
  112. package/fesm2022/slotted-angular-drawer.mjs +32 -24
  113. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  114. package/fesm2022/slotted-angular-entity-picker.mjs +195 -67
  115. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  116. package/fesm2022/slotted-angular-event-calendar.mjs +259 -102
  117. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  118. package/fesm2022/slotted-angular-field-group.mjs +14 -7
  119. package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
  120. package/fesm2022/slotted-angular-field.mjs +35 -15
  121. package/fesm2022/slotted-angular-field.mjs.map +1 -1
  122. package/fesm2022/slotted-angular-filter-bar.mjs +104 -43
  123. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  124. package/fesm2022/slotted-angular-form.mjs +18 -10
  125. package/fesm2022/slotted-angular-form.mjs.map +1 -1
  126. package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
  127. package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
  128. package/fesm2022/slotted-angular-grid.mjs +4 -2
  129. package/fesm2022/slotted-angular-grid.mjs.map +1 -1
  130. package/fesm2022/slotted-angular-highlight.mjs +5 -3
  131. package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
  132. package/fesm2022/slotted-angular-hover-card.mjs +5 -4
  133. package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
  134. package/fesm2022/slotted-angular-icon.mjs +6 -3
  135. package/fesm2022/slotted-angular-icon.mjs.map +1 -1
  136. package/fesm2022/slotted-angular-image.mjs +13 -10
  137. package/fesm2022/slotted-angular-image.mjs.map +1 -1
  138. package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
  139. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  140. package/fesm2022/slotted-angular-inline-message.mjs +10 -8
  141. package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
  142. package/fesm2022/slotted-angular-inline.mjs +4 -2
  143. package/fesm2022/slotted-angular-inline.mjs.map +1 -1
  144. package/fesm2022/slotted-angular-kbd.mjs +11 -7
  145. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  146. package/fesm2022/slotted-angular-link.mjs +5 -3
  147. package/fesm2022/slotted-angular-link.mjs.map +1 -1
  148. package/fesm2022/slotted-angular-list-item.mjs +21 -18
  149. package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
  150. package/fesm2022/slotted-angular-list.mjs +14 -10
  151. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  152. package/fesm2022/slotted-angular-listbox.mjs +39 -21
  153. package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
  154. package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
  155. package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
  156. package/fesm2022/slotted-angular-markdown.mjs +31 -19
  157. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  158. package/fesm2022/slotted-angular-menu.mjs +41 -27
  159. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  160. package/fesm2022/slotted-angular-menubar.mjs +4 -2
  161. package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
  162. package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
  163. package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
  164. package/fesm2022/slotted-angular-message.mjs +113 -51
  165. package/fesm2022/slotted-angular-message.mjs.map +1 -1
  166. package/fesm2022/slotted-angular-multi-select.mjs +133 -57
  167. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  168. package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
  169. package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
  170. package/fesm2022/slotted-angular-notification-center.mjs +107 -65
  171. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  172. package/fesm2022/slotted-angular-number-field.mjs +23 -11
  173. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  174. package/fesm2022/slotted-angular-otp-input.mjs +13 -8
  175. package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
  176. package/fesm2022/slotted-angular-page-header.mjs +72 -42
  177. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  178. package/fesm2022/slotted-angular-page.mjs +18 -9
  179. package/fesm2022/slotted-angular-page.mjs.map +1 -1
  180. package/fesm2022/slotted-angular-pagination.mjs +35 -22
  181. package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
  182. package/fesm2022/slotted-angular-popover.mjs +25 -18
  183. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  184. package/fesm2022/slotted-angular-progress-indicator.mjs +122 -30
  185. package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
  186. package/fesm2022/slotted-angular-prompt-composer.mjs +24 -18
  187. package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
  188. package/fesm2022/slotted-angular-prose.mjs +14 -11
  189. package/fesm2022/slotted-angular-prose.mjs.map +1 -1
  190. package/fesm2022/slotted-angular-radio-group.mjs +15 -9
  191. package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
  192. package/fesm2022/slotted-angular-rating.mjs +138 -82
  193. package/fesm2022/slotted-angular-rating.mjs.map +1 -1
  194. package/fesm2022/slotted-angular-result-state.mjs +16 -12
  195. package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
  196. package/fesm2022/slotted-angular-saved-views.mjs +43 -16
  197. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  198. package/fesm2022/slotted-angular-scroll-area.mjs +9 -5
  199. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  200. package/fesm2022/slotted-angular-section.mjs +34 -15
  201. package/fesm2022/slotted-angular-section.mjs.map +1 -1
  202. package/fesm2022/slotted-angular-segmented-control.mjs +15 -9
  203. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  204. package/fesm2022/slotted-angular-select.mjs +135 -53
  205. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  206. package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
  207. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  208. package/fesm2022/slotted-angular-skeleton.mjs +32 -16
  209. package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
  210. package/fesm2022/slotted-angular-slider.mjs +31 -11
  211. package/fesm2022/slotted-angular-slider.mjs.map +1 -1
  212. package/fesm2022/slotted-angular-sparkline.mjs +29 -13
  213. package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
  214. package/fesm2022/slotted-angular-split-button.mjs +25 -11
  215. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  216. package/fesm2022/slotted-angular-splitter.mjs +11 -9
  217. package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
  218. package/fesm2022/slotted-angular-stack.mjs +4 -2
  219. package/fesm2022/slotted-angular-stack.mjs.map +1 -1
  220. package/fesm2022/slotted-angular-stat-card.mjs +35 -28
  221. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  222. package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
  223. package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
  224. package/fesm2022/slotted-angular-stepper.mjs +40 -15
  225. package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
  226. package/fesm2022/slotted-angular-switch.mjs +15 -10
  227. package/fesm2022/slotted-angular-switch.mjs.map +1 -1
  228. package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
  229. package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
  230. package/fesm2022/slotted-angular-table.mjs +135 -72
  231. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  232. package/fesm2022/slotted-angular-tabs.mjs +31 -14
  233. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  234. package/fesm2022/slotted-angular-tag.mjs +19 -12
  235. package/fesm2022/slotted-angular-tag.mjs.map +1 -1
  236. package/fesm2022/slotted-angular-tags-input.mjs +253 -28
  237. package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
  238. package/fesm2022/slotted-angular-text-field.mjs +49 -15
  239. package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
  240. package/fesm2022/slotted-angular-textarea.mjs +5 -3
  241. package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
  242. package/fesm2022/slotted-angular-time-field.mjs +46 -12
  243. package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
  244. package/fesm2022/slotted-angular-time-picker.mjs +28 -14
  245. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  246. package/fesm2022/slotted-angular-time-range-picker.mjs +109 -40
  247. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  248. package/fesm2022/slotted-angular-timeline.mjs +135 -64
  249. package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
  250. package/fesm2022/slotted-angular-toast.mjs +42 -31
  251. package/fesm2022/slotted-angular-toast.mjs.map +1 -1
  252. package/fesm2022/slotted-angular-toggle-group.mjs +10 -6
  253. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  254. package/fesm2022/slotted-angular-toggle.mjs +9 -4
  255. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  256. package/fesm2022/slotted-angular-toolbar.mjs +21 -10
  257. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  258. package/fesm2022/slotted-angular-tooltip.mjs +8 -5
  259. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  260. package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
  261. package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
  262. package/fesm2022/slotted-angular-tour.mjs +46 -21
  263. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  264. package/fesm2022/slotted-angular-transfer.mjs +69 -30
  265. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  266. package/fesm2022/slotted-angular-tree.mjs +74 -26
  267. package/fesm2022/slotted-angular-tree.mjs.map +1 -1
  268. package/fesm2022/slotted-angular-typography.mjs +8 -4
  269. package/fesm2022/slotted-angular-typography.mjs.map +1 -1
  270. package/fesm2022/slotted-angular-upload.mjs +125 -57
  271. package/fesm2022/slotted-angular-upload.mjs.map +1 -1
  272. package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
  273. package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
  274. package/fesm2022/slotted-angular-wizard.mjs +163 -65
  275. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  276. package/package.json +3 -3
  277. package/types/slotted-angular-accordion.d.ts.map +1 -1
  278. package/types/slotted-angular-action-bar.d.ts.map +1 -1
  279. package/types/slotted-angular-action-sheet.d.ts.map +1 -1
  280. package/types/slotted-angular-alert.d.ts +1 -1
  281. package/types/slotted-angular-alert.d.ts.map +1 -1
  282. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  283. package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
  284. package/types/slotted-angular-attachment.d.ts +1 -1
  285. package/types/slotted-angular-attachment.d.ts.map +1 -1
  286. package/types/slotted-angular-avatar-group.d.ts.map +1 -1
  287. package/types/slotted-angular-avatar.d.ts.map +1 -1
  288. package/types/slotted-angular-badge.d.ts.map +1 -1
  289. package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
  290. package/types/slotted-angular-button-group.d.ts.map +1 -1
  291. package/types/slotted-angular-button.d.ts.map +1 -1
  292. package/types/slotted-angular-calendar.d.ts.map +1 -1
  293. package/types/slotted-angular-card.d.ts.map +1 -1
  294. package/types/slotted-angular-carousel.d.ts.map +1 -1
  295. package/types/slotted-angular-cascader.d.ts.map +1 -1
  296. package/types/slotted-angular-chart.d.ts.map +1 -1
  297. package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
  298. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  299. package/types/slotted-angular-code-block.d.ts +1 -1
  300. package/types/slotted-angular-code-block.d.ts.map +1 -1
  301. package/types/slotted-angular-collapsible.d.ts +1 -1
  302. package/types/slotted-angular-collapsible.d.ts.map +1 -1
  303. package/types/slotted-angular-color-picker.d.ts.map +1 -1
  304. package/types/slotted-angular-column-manager.d.ts.map +1 -1
  305. package/types/slotted-angular-combobox.d.ts +1 -1
  306. package/types/slotted-angular-combobox.d.ts.map +1 -1
  307. package/types/slotted-angular-command-palette.d.ts.map +1 -1
  308. package/types/slotted-angular-container.d.ts.map +1 -1
  309. package/types/slotted-angular-context-menu.d.ts.map +1 -1
  310. package/types/slotted-angular-currency-field.d.ts +39 -13
  311. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  312. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  313. package/types/slotted-angular-data-grid.d.ts +26 -2
  314. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  315. package/types/slotted-angular-data-list.d.ts.map +1 -1
  316. package/types/slotted-angular-date-field.d.ts.map +1 -1
  317. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  318. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  319. package/types/slotted-angular-datetime-field.d.ts.map +1 -1
  320. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  321. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  322. package/types/slotted-angular-description-list.d.ts.map +1 -1
  323. package/types/slotted-angular-detail-panel.d.ts.map +1 -1
  324. package/types/slotted-angular-dialog.d.ts +2 -1
  325. package/types/slotted-angular-dialog.d.ts.map +1 -1
  326. package/types/slotted-angular-divider.d.ts.map +1 -1
  327. package/types/slotted-angular-drawer.d.ts.map +1 -1
  328. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  329. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  330. package/types/slotted-angular-field-group.d.ts.map +1 -1
  331. package/types/slotted-angular-field.d.ts.map +1 -1
  332. package/types/slotted-angular-filter-bar.d.ts.map +1 -1
  333. package/types/slotted-angular-form.d.ts.map +1 -1
  334. package/types/slotted-angular-fullscreen.d.ts.map +1 -1
  335. package/types/slotted-angular-grid.d.ts.map +1 -1
  336. package/types/slotted-angular-highlight.d.ts.map +1 -1
  337. package/types/slotted-angular-hover-card.d.ts.map +1 -1
  338. package/types/slotted-angular-icon.d.ts +1 -1
  339. package/types/slotted-angular-icon.d.ts.map +1 -1
  340. package/types/slotted-angular-image.d.ts.map +1 -1
  341. package/types/slotted-angular-import-export-center.d.ts.map +1 -1
  342. package/types/slotted-angular-inline-message.d.ts +1 -1
  343. package/types/slotted-angular-inline-message.d.ts.map +1 -1
  344. package/types/slotted-angular-inline.d.ts.map +1 -1
  345. package/types/slotted-angular-kbd.d.ts.map +1 -1
  346. package/types/slotted-angular-link.d.ts.map +1 -1
  347. package/types/slotted-angular-list-item.d.ts.map +1 -1
  348. package/types/slotted-angular-list.d.ts.map +1 -1
  349. package/types/slotted-angular-listbox.d.ts.map +1 -1
  350. package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
  351. package/types/slotted-angular-markdown.d.ts.map +1 -1
  352. package/types/slotted-angular-menu.d.ts.map +1 -1
  353. package/types/slotted-angular-menubar.d.ts.map +1 -1
  354. package/types/slotted-angular-message-scroller.d.ts.map +1 -1
  355. package/types/slotted-angular-message.d.ts.map +1 -1
  356. package/types/slotted-angular-multi-select.d.ts +1 -1
  357. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  358. package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
  359. package/types/slotted-angular-notification-center.d.ts.map +1 -1
  360. package/types/slotted-angular-number-field.d.ts.map +1 -1
  361. package/types/slotted-angular-otp-input.d.ts.map +1 -1
  362. package/types/slotted-angular-page-header.d.ts +1 -1
  363. package/types/slotted-angular-page-header.d.ts.map +1 -1
  364. package/types/slotted-angular-page.d.ts.map +1 -1
  365. package/types/slotted-angular-pagination.d.ts.map +1 -1
  366. package/types/slotted-angular-popover.d.ts.map +1 -1
  367. package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
  368. package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
  369. package/types/slotted-angular-prose.d.ts.map +1 -1
  370. package/types/slotted-angular-radio-group.d.ts.map +1 -1
  371. package/types/slotted-angular-rating.d.ts.map +1 -1
  372. package/types/slotted-angular-result-state.d.ts.map +1 -1
  373. package/types/slotted-angular-saved-views.d.ts.map +1 -1
  374. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  375. package/types/slotted-angular-section.d.ts.map +1 -1
  376. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  377. package/types/slotted-angular-select.d.ts +1 -1
  378. package/types/slotted-angular-select.d.ts.map +1 -1
  379. package/types/slotted-angular-side-navigation.d.ts.map +1 -1
  380. package/types/slotted-angular-skeleton.d.ts.map +1 -1
  381. package/types/slotted-angular-slider.d.ts.map +1 -1
  382. package/types/slotted-angular-sparkline.d.ts.map +1 -1
  383. package/types/slotted-angular-split-button.d.ts.map +1 -1
  384. package/types/slotted-angular-splitter.d.ts.map +1 -1
  385. package/types/slotted-angular-stack.d.ts.map +1 -1
  386. package/types/slotted-angular-stat-card.d.ts.map +1 -1
  387. package/types/slotted-angular-status-indicator.d.ts +1 -1
  388. package/types/slotted-angular-status-indicator.d.ts.map +1 -1
  389. package/types/slotted-angular-stepper.d.ts +1 -1
  390. package/types/slotted-angular-stepper.d.ts.map +1 -1
  391. package/types/slotted-angular-switch.d.ts.map +1 -1
  392. package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
  393. package/types/slotted-angular-table.d.ts.map +1 -1
  394. package/types/slotted-angular-tabs.d.ts.map +1 -1
  395. package/types/slotted-angular-tag.d.ts.map +1 -1
  396. package/types/slotted-angular-tags-input.d.ts +33 -1
  397. package/types/slotted-angular-tags-input.d.ts.map +1 -1
  398. package/types/slotted-angular-text-field.d.ts.map +1 -1
  399. package/types/slotted-angular-textarea.d.ts.map +1 -1
  400. package/types/slotted-angular-time-field.d.ts.map +1 -1
  401. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  402. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  403. package/types/slotted-angular-timeline.d.ts.map +1 -1
  404. package/types/slotted-angular-toast.d.ts +2 -2
  405. package/types/slotted-angular-toast.d.ts.map +1 -1
  406. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  407. package/types/slotted-angular-toggle.d.ts.map +1 -1
  408. package/types/slotted-angular-toolbar.d.ts.map +1 -1
  409. package/types/slotted-angular-tooltip.d.ts.map +1 -1
  410. package/types/slotted-angular-top-navigation.d.ts.map +1 -1
  411. package/types/slotted-angular-tour.d.ts.map +1 -1
  412. package/types/slotted-angular-transfer.d.ts.map +1 -1
  413. package/types/slotted-angular-tree.d.ts.map +1 -1
  414. package/types/slotted-angular-typography.d.ts.map +1 -1
  415. package/types/slotted-angular-upload.d.ts +2 -2
  416. package/types/slotted-angular-upload.d.ts.map +1 -1
  417. package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
  418. package/types/slotted-angular-wizard.d.ts.map +1 -1
@@ -621,12 +621,13 @@ class SlDateField {
621
621
  this.onValidatorChangeFn();
622
622
  }
623
623
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlDateField, deps: [], target: i0.ɵɵFactoryTarget.Component });
624
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlDateField, isStandalone: true, selector: "[slDateField]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, granularity: { classPropertyName: "granularity", publicName: "granularity", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, isDateUnavailable: { classPropertyName: "isDateUnavailable", publicName: "isDateUnavailable", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, yearPivot: { classPropertyName: "yearPivot", publicName: "yearPivot", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, groupId: { classPropertyName: "groupId", publicName: "groupId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "data-ui": "date-field", "data-part": "root" }, listeners: { "mousedown": "onRootMouseDown($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.data-size": "resolvedSize()", "attr.data-variant": "resolvedVariant()", "attr.data-calendar": "resolvedCalendar()", "attr.data-disabled": "resolvedDisabled() === true ? '' : null", "attr.data-invalid": "resolvedInvalid() === true ? '' : null", "attr.data-readonly": "resolvedReadOnly() === true ? '' : null", "attr.data-required": "resolvedRequired() === true ? '' : null" } }, providers: [
624
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlDateField, isStandalone: true, selector: "[slDateField]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, granularity: { classPropertyName: "granularity", publicName: "granularity", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, isDateUnavailable: { classPropertyName: "isDateUnavailable", publicName: "isDateUnavailable", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, yearPivot: { classPropertyName: "yearPivot", publicName: "yearPivot", isSignal: true, isRequired: false, transformFunction: null }, calendar: { classPropertyName: "calendar", publicName: "calendar", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, groupId: { classPropertyName: "groupId", publicName: "groupId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "data-ui": "date-field", "data-ui-date-field": "", "data-part": "root", "data-part-root": "" }, listeners: { "mousedown": "onRootMouseDown($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.data-size": "resolvedSize()", "attr.data-variant": "resolvedVariant()", "attr.data-calendar": "resolvedCalendar()", "attr.data-disabled": "resolvedDisabled() === true ? '' : null", "attr.data-invalid": "resolvedInvalid() === true ? '' : null", "attr.data-readonly": "resolvedReadOnly() === true ? '' : null", "attr.data-required": "resolvedRequired() === true ? '' : null" } }, providers: [
625
625
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlDateField), multi: true },
626
626
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlDateField), multi: true },
627
627
  ], exportAs: ["slDateField"], ngImport: i0, template: `<ng-content select="[slDateFieldStart]" />
628
628
  <div
629
629
  data-part="segments"
630
+ data-part-segments=""
630
631
  role="group"
631
632
  [attr.id]="controlId()"
632
633
  [attr.aria-label]="label() ?? writtenLabel"
@@ -640,10 +641,11 @@ class SlDateField {
640
641
  >
641
642
  @for (part of pattern(); track $index) {
642
643
  @if (part.type === 'literal') {
643
- <span data-part="literal" aria-hidden="true">{{ part.value }}</span>
644
+ <span data-part="literal" data-part-literal="" aria-hidden="true">{{ part.value }}</span>
644
645
  } @else {
645
646
  <div
646
647
  data-part="segment"
648
+ data-part-segment=""
647
649
  role="spinbutton"
648
650
  [attr.data-field]="part.type"
649
651
  [attr.data-placeholder]="valueOf(part.type) === null ? '' : null"
@@ -664,10 +666,13 @@ class SlDateField {
664
666
  }
665
667
  }
666
668
  </div>
667
- <span data-part="value-text" hidden [attr.id]="valueTextId">{{ spokenDate() }}</span>
669
+ <span data-part="value-text" data-part-value-text="" hidden [attr.id]="valueTextId">{{
670
+ spokenDate()
671
+ }}</span>
668
672
  @if (showClear()) {
669
673
  <button
670
674
  data-part="clear"
675
+ data-part-clear=""
671
676
  type="button"
672
677
  [attr.aria-label]="t('clear')"
673
678
  (click)="clear($event)"
@@ -676,13 +681,21 @@ class SlDateField {
676
681
  </button>
677
682
  }
678
683
  <ng-content select="[slDateFieldEnd]" />
679
- <input data-part="hidden-input" type="hidden" readonly [attr.name]="name()" [value]="iso()" />`, isInline: true, styles: ["@layer slotted.components{[data-ui=date-field][data-part=root]{--_font-size: var(--slotted-control-font-size-md, 13px);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_icon-floor: var(--slotted-date-field-icon-size-min, 14px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px));--_action-size: var( --slotted-date-field-action-size, min( calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)), calc( var(--_height) - var(--slotted-control-border-width, 1px) * 2 - var(--slotted-space-2, .25rem) ) ) );align-items:center;background-color:var(--slotted-date-field-background, var(--slotted-control-surface, Field));border:var(--slotted-control-border-width, 1px) solid var(--slotted-date-field-border-color, var(--slotted-control-border-color, ButtonBorder));border-radius:var(--slotted-date-field-radius, var(--slotted-control-radius, 4px));box-shadow:var(--slotted-date-field-shadow, var(--slotted-control-shadow, none));box-sizing:border-box;color:var(--slotted-date-field-color, var(--slotted-text, CanvasText));display:flex;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--_gap);inline-size:100%;min-block-size:var(--_height);min-inline-size:0;padding-inline:var(--_padding-inline);transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=date-field][data-part=root]:has(>[data-part=clear]:last-child){padding-inline-end:max(0px,calc(var(--_padding-inline) - (var(--_action-size) - var(--_icon-size)) / 2))}[data-ui=date-field] [data-part=segments]{align-items:center;cursor:text;display:flex;flex:1 1 auto;min-inline-size:0;overflow:hidden;font-variant-numeric:tabular-nums}[data-ui=date-field] [data-part=segment]{--_digits: 2;background-color:transparent;cursor:text;border-radius:var(--slotted-date-field-segment-radius, var(--slotted-radius-xs, 2px));box-sizing:content-box;color:inherit;caret-color:transparent;font:inherit;flex:0 0 auto;min-inline-size:var(--slotted-date-field-segment-min-inline-size, calc(var(--_digits) * 1ch));padding-inline:var( --slotted-date-field-segment-padding-inline, var(--slotted-space-1, .125rem) );text-align:center;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}[data-ui=date-field] [data-part=segment][data-field=year]{--_digits: 4}[data-ui=date-field] [data-part=segment][data-placeholder]{color:var(--slotted-date-field-placeholder-color, var(--slotted-text-muted, GrayText))}[data-ui=date-field] [data-part=literal]{color:var(--slotted-date-field-literal-color, var(--slotted-text-muted, GrayText));flex:0 0 auto;unicode-bidi:plaintext;-webkit-user-select:none;user-select:none}[data-ui=date-field][data-part=root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_height: var(--slotted-control-height-sm, 30px);--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);--_gap: var(--slotted-control-gap-sm, 6px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-sm, 14px))}[data-ui=date-field][data-part=root][data-size=md]{--_font-size: var(--slotted-control-font-size-md, 13px);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px))}[data-ui=date-field][data-part=root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_height: var(--slotted-control-height-lg, 38px);--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);--_gap: var(--slotted-control-gap-lg, 8px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-lg, 18px))}[data-ui=date-field][data-part=root][data-variant=subtle]{background-color:var( --slotted-date-field-subtle-background, var(--slotted-surface-sunken, Canvas) );border-color:var( --slotted-date-field-subtle-border-color, var(--slotted-border-subtle, ButtonBorder) )}[data-ui=date-field][data-part=root][data-variant=plain]{background-color:transparent;border-color:transparent;border-radius:var(--slotted-radius-none, 0px);box-shadow:none}[data-ui=date-field]>[data-part=start],[data-ui=date-field]>[data-part=end]{--slotted-icon-size: var(--_icon-size);align-items:center;color:var(--slotted-date-field-adornment-color, var(--slotted-text-muted, GrayText));display:inline-flex;flex:0 0 auto;gap:var(--slotted-space-2, .25rem);line-height:1;unicode-bidi:plaintext}[data-ui=date-field]>[data-part=start]>svg,[data-ui=date-field]>[data-part=end]>svg{block-size:var(--_icon-size);inline-size:var(--_icon-size)}[data-ui=date-field]>[data-part=clear]{align-items:center;appearance:none;background-color:transparent;block-size:var(--_action-size);border:0;border-radius:var(--slotted-date-field-radius, var(--slotted-control-radius, 4px));color:var(--slotted-date-field-action-color, var(--slotted-text-muted, GrayText));cursor:pointer;display:inline-flex;flex:0 0 auto;inline-size:var(--_action-size);justify-content:center;padding:0;position:relative;touch-action:manipulation;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);-webkit-tap-highlight-color:transparent}[data-ui=date-field]>[data-part=clear]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=date-field]>[data-part=clear]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}[data-ui=date-field]>[data-part=end]+[data-part=clear]:after{inset-inline-start:0}}[data-ui=date-field]>[data-part=clear]{--slotted-icon-size: var(--_icon-size)}[data-ui=date-field]>[data-part=clear]:hover:not(:disabled):not([data-disabled]){background-color:var( --slotted-date-field-action-hover-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui=date-field]>[data-part=clear]:active:not(:disabled):not([data-disabled]){background-color:var( --slotted-date-field-action-active-background, var(--slotted-tone-secondary-subtle-active) )}[data-ui=date-field]>[data-part=clear]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=date-field][data-part=root]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){border-color:var(--slotted-date-field-hover-border-color, var(--slotted-tone-accent-border))}[data-ui=date-field][data-part=root][data-variant=subtle]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){background-color:var( --slotted-date-field-subtle-hover-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui=date-field][data-part=root][data-variant=plain]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){background-color:var( --slotted-date-field-plain-hover-background, var(--slotted-tone-secondary-subtle-hover) );border-color:transparent}[data-ui=date-field][data-part=root]:has([data-part=segment]:focus){box-shadow:var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px) var(--slotted-focus-ring-color, Highlight);outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=date-field][data-part=root][data-variant=plain]:has([data-part=segment]:focus){box-shadow:none;outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=date-field] [data-part=segment]:focus{background-color:var( --slotted-date-field-segment-focus-background, var(--slotted-tone-accent-solid) );color:var(--slotted-date-field-segment-focus-color, var(--slotted-tone-accent-on-solid));outline:none}[data-ui=date-field][data-part=root][data-invalid]{--slotted-focus-ring-color: var( --slotted-date-field-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) );--_invalid-edge-width: var( --slotted-date-field-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) );--_invalid-edge-color: var( --slotted-date-field-invalid-border-color, var(--slotted-tone-danger-border) );--_invalid-edge: inset 0 0 0 var(--_invalid-edge-width) var(--_invalid-edge-color);border-color:var(--slotted-date-field-invalid-border-color, var(--slotted-tone-danger-border));box-shadow:var(--_invalid-edge)}[data-ui=date-field][data-part=root][data-invalid]:has([data-part=segment]:focus){box-shadow:var(--_invalid-edge),var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px) var(--slotted-focus-ring-color, Highlight)}[data-ui=date-field][data-part=root][data-variant=plain][data-invalid]:has([data-part=segment]:focus){box-shadow:inset 0 0 0 calc(var(--slotted-focus-ring-offset, 2px) - var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width)) var(--_invalid-edge-color)}@media(forced-colors:active){[data-ui=date-field][data-part=root][data-invalid]{outline:var(--_invalid-edge-width) solid CanvasText;outline-offset:calc(-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width)))}[data-ui=date-field][data-part=root][data-invalid]:has([data-part=segment]:focus){outline:calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=date-field][data-part=root][data-variant=plain][data-invalid]:has([data-part=segment]:focus){outline:calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * (var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)))}}[data-ui=date-field][data-part=root][data-readonly],[data-ui=date-field][data-part=root][data-readonly] [data-part=segments],[data-ui=date-field][data-part=root][data-readonly] [data-part=segment]{cursor:default}[data-ui=date-field][data-part=root][data-readonly]{background-color:var( --slotted-date-field-readonly-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui=date-field][data-part=root][data-disabled]{background-color:var( --slotted-date-field-disabled-background, var(--slotted-disabled-background) );border-color:var(--slotted-date-field-disabled-border-color, var(--slotted-disabled-border));box-shadow:none;color:var(--slotted-date-field-disabled-color, var(--slotted-disabled-foreground));cursor:not-allowed}[data-ui=date-field][data-part=root][data-disabled] [data-part=segments],[data-ui=date-field][data-part=root][data-disabled] [data-part=segment]{cursor:not-allowed}[data-ui=date-field][data-part=root][data-disabled]>[data-part=start],[data-ui=date-field][data-part=root][data-disabled]>[data-part=end],[data-ui=date-field][data-part=root][data-disabled] [data-part=literal],[data-ui=date-field][data-part=root][data-disabled] [data-part=segment][data-placeholder]{color:var(--slotted-disabled-foreground)}@media(forced-colors:active){[data-ui=date-field][data-part=root][data-variant=plain]{border-color:ButtonBorder}}}\n"], dependencies: [{ kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
684
+ <input
685
+ data-part="hidden-input"
686
+ data-part-hidden-input=""
687
+ type="hidden"
688
+ readonly
689
+ [attr.name]="name()"
690
+ [value]="iso()"
691
+ />`, isInline: true, styles: ["@layer slotted.components{[data-ui-date-field][data-part-root]{--_font-size: var(--slotted-control-font-size-md, 13px);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_icon-floor: var(--slotted-date-field-icon-size-min, 14px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px));--_action-size: var( --slotted-date-field-action-size, min( calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)), calc( var(--_height) - var(--slotted-control-border-width, 1px) * 2 - var(--slotted-space-2, .25rem) ) ) );align-items:center;background-color:var(--slotted-date-field-background, var(--slotted-control-surface, Field));border:var(--slotted-control-border-width, 1px) solid var(--slotted-date-field-border-color, var(--slotted-control-border-color, ButtonBorder));border-radius:var(--slotted-date-field-radius, var(--slotted-control-radius, 4px));box-shadow:var(--slotted-date-field-shadow, var(--slotted-control-shadow, none));box-sizing:border-box;color:var(--slotted-date-field-color, var(--slotted-text, CanvasText));display:flex;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--_gap);inline-size:100%;min-block-size:var(--_height);min-inline-size:0;padding-inline:var(--_padding-inline);transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-date-field][data-part-root]:has(>[data-part-clear]:last-child){padding-inline-end:max(0px,calc(var(--_padding-inline) - (var(--_action-size) - var(--_icon-size)) / 2))}[data-ui-date-field] [data-part-segments]{align-items:center;cursor:text;display:flex;flex:1 1 auto;min-inline-size:0;overflow:hidden;font-variant-numeric:tabular-nums}[data-ui-date-field] [data-part-segment]{--_digits: 2;background-color:transparent;cursor:text;border-radius:var(--slotted-date-field-segment-radius, var(--slotted-radius-xs, 2px));box-sizing:content-box;color:inherit;caret-color:transparent;font:inherit;flex:0 0 auto;min-inline-size:var(--slotted-date-field-segment-min-inline-size, calc(var(--_digits) * 1ch));padding-inline:var( --slotted-date-field-segment-padding-inline, var(--slotted-space-1, .125rem) );text-align:center;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}[data-ui-date-field] [data-part-segment][data-field=year]{--_digits: 4}[data-ui-date-field] [data-part-segment][data-placeholder]{color:var(--slotted-date-field-placeholder-color, var(--slotted-text-muted, GrayText))}[data-ui-date-field] [data-part-literal]{color:var(--slotted-date-field-literal-color, var(--slotted-text-muted, GrayText));flex:0 0 auto;unicode-bidi:plaintext;-webkit-user-select:none;user-select:none}[data-ui-date-field][data-part-root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_height: var(--slotted-control-height-sm, 30px);--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);--_gap: var(--slotted-control-gap-sm, 6px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-sm, 14px))}[data-ui-date-field][data-part-root][data-size=md]{--_font-size: var(--slotted-control-font-size-md, 13px);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px))}[data-ui-date-field][data-part-root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_height: var(--slotted-control-height-lg, 38px);--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);--_gap: var(--slotted-control-gap-lg, 8px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-lg, 18px))}[data-ui-date-field][data-part-root][data-variant=subtle]{background-color:var( --slotted-date-field-subtle-background, var(--slotted-surface-sunken, Canvas) );border-color:var( --slotted-date-field-subtle-border-color, var(--slotted-border-subtle, ButtonBorder) )}[data-ui-date-field][data-part-root][data-variant=plain]{background-color:transparent;border-color:transparent;border-radius:var(--slotted-radius-none, 0px);box-shadow:none}[data-ui-date-field]>[data-part-start],[data-ui-date-field]>[data-part-end]{--slotted-icon-size: var(--_icon-size);align-items:center;color:var(--slotted-date-field-adornment-color, var(--slotted-text-muted, GrayText));display:inline-flex;flex:0 0 auto;gap:var(--slotted-space-2, .25rem);line-height:1;unicode-bidi:plaintext}[data-ui-date-field]>[data-part-start]>svg,[data-ui-date-field]>[data-part-end]>svg{block-size:var(--_icon-size);inline-size:var(--_icon-size)}[data-ui-date-field]>[data-part-clear]{align-items:center;appearance:none;background-color:transparent;block-size:var(--_action-size);border:0;border-radius:var(--slotted-date-field-radius, var(--slotted-control-radius, 4px));color:var(--slotted-date-field-action-color, var(--slotted-text-muted, GrayText));cursor:pointer;display:inline-flex;flex:0 0 auto;inline-size:var(--_action-size);justify-content:center;padding:0;position:relative;touch-action:manipulation;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);-webkit-tap-highlight-color:transparent}[data-ui-date-field]>[data-part-clear]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui-date-field]>[data-part-clear]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}[data-ui-date-field]>[data-part-end]+[data-part-clear]:after{inset-inline-start:0}}[data-ui-date-field]>[data-part-clear]{--slotted-icon-size: var(--_icon-size)}[data-ui-date-field]>[data-part-clear]:hover:not(:disabled):not([data-disabled]){background-color:var( --slotted-date-field-action-hover-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui-date-field]>[data-part-clear]:active:not(:disabled):not([data-disabled]){background-color:var( --slotted-date-field-action-active-background, var(--slotted-tone-secondary-subtle-active) )}[data-ui-date-field]>[data-part-clear]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-date-field][data-part-root]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){border-color:var(--slotted-date-field-hover-border-color, var(--slotted-tone-accent-border))}[data-ui-date-field][data-part-root][data-variant=subtle]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){background-color:var( --slotted-date-field-subtle-hover-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui-date-field][data-part-root][data-variant=plain]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){background-color:var( --slotted-date-field-plain-hover-background, var(--slotted-tone-secondary-subtle-hover) );border-color:transparent}[data-ui-date-field][data-part-root]:has([data-part-segment]:focus){box-shadow:var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px) var(--slotted-focus-ring-color, Highlight);outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-date-field][data-part-root][data-variant=plain]:has([data-part-segment]:focus){box-shadow:none;outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-date-field] [data-part-segment]:focus{background-color:var( --slotted-date-field-segment-focus-background, var(--slotted-tone-accent-solid) );color:var(--slotted-date-field-segment-focus-color, var(--slotted-tone-accent-on-solid));outline:none}[data-ui-date-field][data-part-root][data-invalid]{--slotted-focus-ring-color: var( --slotted-date-field-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) );--_invalid-edge-width: var( --slotted-date-field-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) );--_invalid-edge-color: var( --slotted-date-field-invalid-border-color, var(--slotted-tone-danger-border) );--_invalid-edge: inset 0 0 0 var(--_invalid-edge-width) var(--_invalid-edge-color);border-color:var(--slotted-date-field-invalid-border-color, var(--slotted-tone-danger-border));box-shadow:var(--_invalid-edge)}[data-ui-date-field][data-part-root][data-invalid]:has([data-part-segment]:focus){box-shadow:var(--_invalid-edge),var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px) var(--slotted-focus-ring-color, Highlight)}[data-ui-date-field][data-part-root][data-variant=plain][data-invalid]:has([data-part-segment]:focus){box-shadow:inset 0 0 0 calc(var(--slotted-focus-ring-offset, 2px) - var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width)) var(--_invalid-edge-color)}@media(forced-colors:active){[data-ui-date-field][data-part-root][data-invalid]{outline:var(--_invalid-edge-width) solid CanvasText;outline-offset:calc(-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width)))}[data-ui-date-field][data-part-root][data-invalid]:has([data-part-segment]:focus){outline:calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-date-field][data-part-root][data-variant=plain][data-invalid]:has([data-part-segment]:focus){outline:calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * (var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)))}}[data-ui-date-field][data-part-root][data-readonly],[data-ui-date-field][data-part-root][data-readonly] [data-part-segments],[data-ui-date-field][data-part-root][data-readonly] [data-part-segment]{cursor:default}[data-ui-date-field][data-part-root][data-readonly]{background-color:var( --slotted-date-field-readonly-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui-date-field][data-part-root][data-disabled]{background-color:var( --slotted-date-field-disabled-background, var(--slotted-disabled-background) );border-color:var(--slotted-date-field-disabled-border-color, var(--slotted-disabled-border));box-shadow:none;color:var(--slotted-date-field-disabled-color, var(--slotted-disabled-foreground));cursor:not-allowed}[data-ui-date-field][data-part-root][data-disabled] [data-part-segments],[data-ui-date-field][data-part-root][data-disabled] [data-part-segment]{cursor:not-allowed}[data-ui-date-field][data-part-root][data-disabled]>[data-part-start],[data-ui-date-field][data-part-root][data-disabled]>[data-part-end],[data-ui-date-field][data-part-root][data-disabled] [data-part-literal],[data-ui-date-field][data-part-root][data-disabled] [data-part-segment][data-placeholder]{color:var(--slotted-disabled-foreground)}@media(forced-colors:active){[data-ui-date-field][data-part-root][data-variant=plain]{border-color:ButtonBorder}}}\n"], dependencies: [{ kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
680
692
  }
681
693
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlDateField, decorators: [{
682
694
  type: Component,
683
695
  args: [{ selector: '[slDateField]', standalone: true, exportAs: 'slDateField', imports: [SlGlyph, SlIcon], template: `<ng-content select="[slDateFieldStart]" />
684
696
  <div
685
697
  data-part="segments"
698
+ data-part-segments=""
686
699
  role="group"
687
700
  [attr.id]="controlId()"
688
701
  [attr.aria-label]="label() ?? writtenLabel"
@@ -696,10 +709,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
696
709
  >
697
710
  @for (part of pattern(); track $index) {
698
711
  @if (part.type === 'literal') {
699
- <span data-part="literal" aria-hidden="true">{{ part.value }}</span>
712
+ <span data-part="literal" data-part-literal="" aria-hidden="true">{{ part.value }}</span>
700
713
  } @else {
701
714
  <div
702
715
  data-part="segment"
716
+ data-part-segment=""
703
717
  role="spinbutton"
704
718
  [attr.data-field]="part.type"
705
719
  [attr.data-placeholder]="valueOf(part.type) === null ? '' : null"
@@ -720,10 +734,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
720
734
  }
721
735
  }
722
736
  </div>
723
- <span data-part="value-text" hidden [attr.id]="valueTextId">{{ spokenDate() }}</span>
737
+ <span data-part="value-text" data-part-value-text="" hidden [attr.id]="valueTextId">{{
738
+ spokenDate()
739
+ }}</span>
724
740
  @if (showClear()) {
725
741
  <button
726
742
  data-part="clear"
743
+ data-part-clear=""
727
744
  type="button"
728
745
  [attr.aria-label]="t('clear')"
729
746
  (click)="clear($event)"
@@ -732,12 +749,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
732
749
  </button>
733
750
  }
734
751
  <ng-content select="[slDateFieldEnd]" />
735
- <input data-part="hidden-input" type="hidden" readonly [attr.name]="name()" [value]="iso()" />`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
752
+ <input
753
+ data-part="hidden-input"
754
+ data-part-hidden-input=""
755
+ type="hidden"
756
+ readonly
757
+ [attr.name]="name()"
758
+ [value]="iso()"
759
+ />`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
736
760
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlDateField), multi: true },
737
761
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlDateField), multi: true },
738
762
  ], host: {
739
763
  'data-ui': 'date-field',
764
+ 'data-ui-date-field': '',
740
765
  'data-part': 'root',
766
+ 'data-part-root': '',
741
767
  '(mousedown)': 'onRootMouseDown($event)',
742
768
  '(keydown)': 'onKeyDown($event)',
743
769
  '[attr.data-size]': 'resolvedSize()',
@@ -747,7 +773,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
747
773
  '[attr.data-invalid]': "resolvedInvalid() === true ? '' : null",
748
774
  '[attr.data-readonly]': "resolvedReadOnly() === true ? '' : null",
749
775
  '[attr.data-required]': "resolvedRequired() === true ? '' : null",
750
- }, styles: ["@layer slotted.components{[data-ui=date-field][data-part=root]{--_font-size: var(--slotted-control-font-size-md, 13px);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_icon-floor: var(--slotted-date-field-icon-size-min, 14px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px));--_action-size: var( --slotted-date-field-action-size, min( calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)), calc( var(--_height) - var(--slotted-control-border-width, 1px) * 2 - var(--slotted-space-2, .25rem) ) ) );align-items:center;background-color:var(--slotted-date-field-background, var(--slotted-control-surface, Field));border:var(--slotted-control-border-width, 1px) solid var(--slotted-date-field-border-color, var(--slotted-control-border-color, ButtonBorder));border-radius:var(--slotted-date-field-radius, var(--slotted-control-radius, 4px));box-shadow:var(--slotted-date-field-shadow, var(--slotted-control-shadow, none));box-sizing:border-box;color:var(--slotted-date-field-color, var(--slotted-text, CanvasText));display:flex;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--_gap);inline-size:100%;min-block-size:var(--_height);min-inline-size:0;padding-inline:var(--_padding-inline);transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=date-field][data-part=root]:has(>[data-part=clear]:last-child){padding-inline-end:max(0px,calc(var(--_padding-inline) - (var(--_action-size) - var(--_icon-size)) / 2))}[data-ui=date-field] [data-part=segments]{align-items:center;cursor:text;display:flex;flex:1 1 auto;min-inline-size:0;overflow:hidden;font-variant-numeric:tabular-nums}[data-ui=date-field] [data-part=segment]{--_digits: 2;background-color:transparent;cursor:text;border-radius:var(--slotted-date-field-segment-radius, var(--slotted-radius-xs, 2px));box-sizing:content-box;color:inherit;caret-color:transparent;font:inherit;flex:0 0 auto;min-inline-size:var(--slotted-date-field-segment-min-inline-size, calc(var(--_digits) * 1ch));padding-inline:var( --slotted-date-field-segment-padding-inline, var(--slotted-space-1, .125rem) );text-align:center;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}[data-ui=date-field] [data-part=segment][data-field=year]{--_digits: 4}[data-ui=date-field] [data-part=segment][data-placeholder]{color:var(--slotted-date-field-placeholder-color, var(--slotted-text-muted, GrayText))}[data-ui=date-field] [data-part=literal]{color:var(--slotted-date-field-literal-color, var(--slotted-text-muted, GrayText));flex:0 0 auto;unicode-bidi:plaintext;-webkit-user-select:none;user-select:none}[data-ui=date-field][data-part=root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_height: var(--slotted-control-height-sm, 30px);--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);--_gap: var(--slotted-control-gap-sm, 6px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-sm, 14px))}[data-ui=date-field][data-part=root][data-size=md]{--_font-size: var(--slotted-control-font-size-md, 13px);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px))}[data-ui=date-field][data-part=root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_height: var(--slotted-control-height-lg, 38px);--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);--_gap: var(--slotted-control-gap-lg, 8px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-lg, 18px))}[data-ui=date-field][data-part=root][data-variant=subtle]{background-color:var( --slotted-date-field-subtle-background, var(--slotted-surface-sunken, Canvas) );border-color:var( --slotted-date-field-subtle-border-color, var(--slotted-border-subtle, ButtonBorder) )}[data-ui=date-field][data-part=root][data-variant=plain]{background-color:transparent;border-color:transparent;border-radius:var(--slotted-radius-none, 0px);box-shadow:none}[data-ui=date-field]>[data-part=start],[data-ui=date-field]>[data-part=end]{--slotted-icon-size: var(--_icon-size);align-items:center;color:var(--slotted-date-field-adornment-color, var(--slotted-text-muted, GrayText));display:inline-flex;flex:0 0 auto;gap:var(--slotted-space-2, .25rem);line-height:1;unicode-bidi:plaintext}[data-ui=date-field]>[data-part=start]>svg,[data-ui=date-field]>[data-part=end]>svg{block-size:var(--_icon-size);inline-size:var(--_icon-size)}[data-ui=date-field]>[data-part=clear]{align-items:center;appearance:none;background-color:transparent;block-size:var(--_action-size);border:0;border-radius:var(--slotted-date-field-radius, var(--slotted-control-radius, 4px));color:var(--slotted-date-field-action-color, var(--slotted-text-muted, GrayText));cursor:pointer;display:inline-flex;flex:0 0 auto;inline-size:var(--_action-size);justify-content:center;padding:0;position:relative;touch-action:manipulation;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);-webkit-tap-highlight-color:transparent}[data-ui=date-field]>[data-part=clear]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=date-field]>[data-part=clear]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}[data-ui=date-field]>[data-part=end]+[data-part=clear]:after{inset-inline-start:0}}[data-ui=date-field]>[data-part=clear]{--slotted-icon-size: var(--_icon-size)}[data-ui=date-field]>[data-part=clear]:hover:not(:disabled):not([data-disabled]){background-color:var( --slotted-date-field-action-hover-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui=date-field]>[data-part=clear]:active:not(:disabled):not([data-disabled]){background-color:var( --slotted-date-field-action-active-background, var(--slotted-tone-secondary-subtle-active) )}[data-ui=date-field]>[data-part=clear]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=date-field][data-part=root]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){border-color:var(--slotted-date-field-hover-border-color, var(--slotted-tone-accent-border))}[data-ui=date-field][data-part=root][data-variant=subtle]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){background-color:var( --slotted-date-field-subtle-hover-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui=date-field][data-part=root][data-variant=plain]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){background-color:var( --slotted-date-field-plain-hover-background, var(--slotted-tone-secondary-subtle-hover) );border-color:transparent}[data-ui=date-field][data-part=root]:has([data-part=segment]:focus){box-shadow:var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px) var(--slotted-focus-ring-color, Highlight);outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=date-field][data-part=root][data-variant=plain]:has([data-part=segment]:focus){box-shadow:none;outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui=date-field] [data-part=segment]:focus{background-color:var( --slotted-date-field-segment-focus-background, var(--slotted-tone-accent-solid) );color:var(--slotted-date-field-segment-focus-color, var(--slotted-tone-accent-on-solid));outline:none}[data-ui=date-field][data-part=root][data-invalid]{--slotted-focus-ring-color: var( --slotted-date-field-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) );--_invalid-edge-width: var( --slotted-date-field-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) );--_invalid-edge-color: var( --slotted-date-field-invalid-border-color, var(--slotted-tone-danger-border) );--_invalid-edge: inset 0 0 0 var(--_invalid-edge-width) var(--_invalid-edge-color);border-color:var(--slotted-date-field-invalid-border-color, var(--slotted-tone-danger-border));box-shadow:var(--_invalid-edge)}[data-ui=date-field][data-part=root][data-invalid]:has([data-part=segment]:focus){box-shadow:var(--_invalid-edge),var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px) var(--slotted-focus-ring-color, Highlight)}[data-ui=date-field][data-part=root][data-variant=plain][data-invalid]:has([data-part=segment]:focus){box-shadow:inset 0 0 0 calc(var(--slotted-focus-ring-offset, 2px) - var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width)) var(--_invalid-edge-color)}@media(forced-colors:active){[data-ui=date-field][data-part=root][data-invalid]{outline:var(--_invalid-edge-width) solid CanvasText;outline-offset:calc(-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width)))}[data-ui=date-field][data-part=root][data-invalid]:has([data-part=segment]:focus){outline:calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=date-field][data-part=root][data-variant=plain][data-invalid]:has([data-part=segment]:focus){outline:calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * (var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)))}}[data-ui=date-field][data-part=root][data-readonly],[data-ui=date-field][data-part=root][data-readonly] [data-part=segments],[data-ui=date-field][data-part=root][data-readonly] [data-part=segment]{cursor:default}[data-ui=date-field][data-part=root][data-readonly]{background-color:var( --slotted-date-field-readonly-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui=date-field][data-part=root][data-disabled]{background-color:var( --slotted-date-field-disabled-background, var(--slotted-disabled-background) );border-color:var(--slotted-date-field-disabled-border-color, var(--slotted-disabled-border));box-shadow:none;color:var(--slotted-date-field-disabled-color, var(--slotted-disabled-foreground));cursor:not-allowed}[data-ui=date-field][data-part=root][data-disabled] [data-part=segments],[data-ui=date-field][data-part=root][data-disabled] [data-part=segment]{cursor:not-allowed}[data-ui=date-field][data-part=root][data-disabled]>[data-part=start],[data-ui=date-field][data-part=root][data-disabled]>[data-part=end],[data-ui=date-field][data-part=root][data-disabled] [data-part=literal],[data-ui=date-field][data-part=root][data-disabled] [data-part=segment][data-placeholder]{color:var(--slotted-disabled-foreground)}@media(forced-colors:active){[data-ui=date-field][data-part=root][data-variant=plain]{border-color:ButtonBorder}}}\n"] }]
776
+ }, styles: ["@layer slotted.components{[data-ui-date-field][data-part-root]{--_font-size: var(--slotted-control-font-size-md, 13px);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_icon-floor: var(--slotted-date-field-icon-size-min, 14px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px));--_action-size: var( --slotted-date-field-action-size, min( calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)), calc( var(--_height) - var(--slotted-control-border-width, 1px) * 2 - var(--slotted-space-2, .25rem) ) ) );align-items:center;background-color:var(--slotted-date-field-background, var(--slotted-control-surface, Field));border:var(--slotted-control-border-width, 1px) solid var(--slotted-date-field-border-color, var(--slotted-control-border-color, ButtonBorder));border-radius:var(--slotted-date-field-radius, var(--slotted-control-radius, 4px));box-shadow:var(--slotted-date-field-shadow, var(--slotted-control-shadow, none));box-sizing:border-box;color:var(--slotted-date-field-color, var(--slotted-text, CanvasText));display:flex;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--_gap);inline-size:100%;min-block-size:var(--_height);min-inline-size:0;padding-inline:var(--_padding-inline);transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),box-shadow var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui-date-field][data-part-root]:has(>[data-part-clear]:last-child){padding-inline-end:max(0px,calc(var(--_padding-inline) - (var(--_action-size) - var(--_icon-size)) / 2))}[data-ui-date-field] [data-part-segments]{align-items:center;cursor:text;display:flex;flex:1 1 auto;min-inline-size:0;overflow:hidden;font-variant-numeric:tabular-nums}[data-ui-date-field] [data-part-segment]{--_digits: 2;background-color:transparent;cursor:text;border-radius:var(--slotted-date-field-segment-radius, var(--slotted-radius-xs, 2px));box-sizing:content-box;color:inherit;caret-color:transparent;font:inherit;flex:0 0 auto;min-inline-size:var(--slotted-date-field-segment-min-inline-size, calc(var(--_digits) * 1ch));padding-inline:var( --slotted-date-field-segment-padding-inline, var(--slotted-space-1, .125rem) );text-align:center;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}[data-ui-date-field] [data-part-segment][data-field=year]{--_digits: 4}[data-ui-date-field] [data-part-segment][data-placeholder]{color:var(--slotted-date-field-placeholder-color, var(--slotted-text-muted, GrayText))}[data-ui-date-field] [data-part-literal]{color:var(--slotted-date-field-literal-color, var(--slotted-text-muted, GrayText));flex:0 0 auto;unicode-bidi:plaintext;-webkit-user-select:none;user-select:none}[data-ui-date-field][data-part-root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_height: var(--slotted-control-height-sm, 30px);--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);--_gap: var(--slotted-control-gap-sm, 6px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-sm, 14px))}[data-ui-date-field][data-part-root][data-size=md]{--_font-size: var(--slotted-control-font-size-md, 13px);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_gap: var(--slotted-control-gap-md, 8px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-md, 16px))}[data-ui-date-field][data-part-root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_height: var(--slotted-control-height-lg, 38px);--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);--_gap: var(--slotted-control-gap-lg, 8px);--_icon-size: max(var(--_icon-floor), var(--slotted-control-icon-size-lg, 18px))}[data-ui-date-field][data-part-root][data-variant=subtle]{background-color:var( --slotted-date-field-subtle-background, var(--slotted-surface-sunken, Canvas) );border-color:var( --slotted-date-field-subtle-border-color, var(--slotted-border-subtle, ButtonBorder) )}[data-ui-date-field][data-part-root][data-variant=plain]{background-color:transparent;border-color:transparent;border-radius:var(--slotted-radius-none, 0px);box-shadow:none}[data-ui-date-field]>[data-part-start],[data-ui-date-field]>[data-part-end]{--slotted-icon-size: var(--_icon-size);align-items:center;color:var(--slotted-date-field-adornment-color, var(--slotted-text-muted, GrayText));display:inline-flex;flex:0 0 auto;gap:var(--slotted-space-2, .25rem);line-height:1;unicode-bidi:plaintext}[data-ui-date-field]>[data-part-start]>svg,[data-ui-date-field]>[data-part-end]>svg{block-size:var(--_icon-size);inline-size:var(--_icon-size)}[data-ui-date-field]>[data-part-clear]{align-items:center;appearance:none;background-color:transparent;block-size:var(--_action-size);border:0;border-radius:var(--slotted-date-field-radius, var(--slotted-control-radius, 4px));color:var(--slotted-date-field-action-color, var(--slotted-text-muted, GrayText));cursor:pointer;display:inline-flex;flex:0 0 auto;inline-size:var(--_action-size);justify-content:center;padding:0;position:relative;touch-action:manipulation;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);-webkit-tap-highlight-color:transparent}[data-ui-date-field]>[data-part-clear]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui-date-field]>[data-part-clear]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}[data-ui-date-field]>[data-part-end]+[data-part-clear]:after{inset-inline-start:0}}[data-ui-date-field]>[data-part-clear]{--slotted-icon-size: var(--_icon-size)}[data-ui-date-field]>[data-part-clear]:hover:not(:disabled):not([data-disabled]){background-color:var( --slotted-date-field-action-hover-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui-date-field]>[data-part-clear]:active:not(:disabled):not([data-disabled]){background-color:var( --slotted-date-field-action-active-background, var(--slotted-tone-secondary-subtle-active) )}[data-ui-date-field]>[data-part-clear]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-date-field][data-part-root]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){border-color:var(--slotted-date-field-hover-border-color, var(--slotted-tone-accent-border))}[data-ui-date-field][data-part-root][data-variant=subtle]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){background-color:var( --slotted-date-field-subtle-hover-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui-date-field][data-part-root][data-variant=plain]:hover:not([data-disabled]):not([data-readonly]):not([data-invalid]){background-color:var( --slotted-date-field-plain-hover-background, var(--slotted-tone-secondary-subtle-hover) );border-color:transparent}[data-ui-date-field][data-part-root]:has([data-part-segment]:focus){box-shadow:var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px) var(--slotted-focus-ring-color, Highlight);outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-date-field][data-part-root][data-variant=plain]:has([data-part-segment]:focus){box-shadow:none;outline-offset:calc(var(--slotted-focus-ring-offset, 2px) * -1)}[data-ui-date-field] [data-part-segment]:focus{background-color:var( --slotted-date-field-segment-focus-background, var(--slotted-tone-accent-solid) );color:var(--slotted-date-field-segment-focus-color, var(--slotted-tone-accent-on-solid));outline:none}[data-ui-date-field][data-part-root][data-invalid]{--slotted-focus-ring-color: var( --slotted-date-field-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) );--_invalid-edge-width: var( --slotted-date-field-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) );--_invalid-edge-color: var( --slotted-date-field-invalid-border-color, var(--slotted-tone-danger-border) );--_invalid-edge: inset 0 0 0 var(--_invalid-edge-width) var(--_invalid-edge-color);border-color:var(--slotted-date-field-invalid-border-color, var(--slotted-tone-danger-border));box-shadow:var(--_invalid-edge)}[data-ui-date-field][data-part-root][data-invalid]:has([data-part-segment]:focus){box-shadow:var(--_invalid-edge),var(--slotted-control-shadow-focus-geometry, 0 1px 4px -1px) var(--slotted-focus-ring-color, Highlight)}[data-ui-date-field][data-part-root][data-variant=plain][data-invalid]:has([data-part-segment]:focus){box-shadow:inset 0 0 0 calc(var(--slotted-focus-ring-offset, 2px) - var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width)) var(--_invalid-edge-color)}@media(forced-colors:active){[data-ui-date-field][data-part-root][data-invalid]{outline:var(--_invalid-edge-width) solid CanvasText;outline-offset:calc(-1 * (var(--slotted-control-border-width, 1px) + var(--_invalid-edge-width)))}[data-ui-date-field][data-part-root][data-invalid]:has([data-part-segment]:focus){outline:calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-date-field][data-part-root][data-variant=plain][data-invalid]:has([data-part-segment]:focus){outline:calc(var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)) double var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * (var(--slotted-focus-ring-width, 2px) + var(--_invalid-edge-width)))}}[data-ui-date-field][data-part-root][data-readonly],[data-ui-date-field][data-part-root][data-readonly] [data-part-segments],[data-ui-date-field][data-part-root][data-readonly] [data-part-segment]{cursor:default}[data-ui-date-field][data-part-root][data-readonly]{background-color:var( --slotted-date-field-readonly-background, var(--slotted-tone-secondary-subtle-hover) )}[data-ui-date-field][data-part-root][data-disabled]{background-color:var( --slotted-date-field-disabled-background, var(--slotted-disabled-background) );border-color:var(--slotted-date-field-disabled-border-color, var(--slotted-disabled-border));box-shadow:none;color:var(--slotted-date-field-disabled-color, var(--slotted-disabled-foreground));cursor:not-allowed}[data-ui-date-field][data-part-root][data-disabled] [data-part-segments],[data-ui-date-field][data-part-root][data-disabled] [data-part-segment]{cursor:not-allowed}[data-ui-date-field][data-part-root][data-disabled]>[data-part-start],[data-ui-date-field][data-part-root][data-disabled]>[data-part-end],[data-ui-date-field][data-part-root][data-disabled] [data-part-literal],[data-ui-date-field][data-part-root][data-disabled] [data-part-segment][data-placeholder]{color:var(--slotted-disabled-foreground)}@media(forced-colors:active){[data-ui-date-field][data-part-root][data-variant=plain]{border-color:ButtonBorder}}}\n"] }]
751
777
  }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], granularity: [{ type: i0.Input, args: [{ isSignal: true, alias: "granularity", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], isDateUnavailable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDateUnavailable", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], yearPivot: [{ type: i0.Input, args: [{ isSignal: true, alias: "yearPivot", required: false }] }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendar", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], groupId: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupId", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
752
778
 
753
779
  /**
@@ -761,7 +787,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
761
787
  */
762
788
  class SlDateFieldStart {
763
789
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlDateFieldStart, deps: [], target: i0.ɵɵFactoryTarget.Directive });
764
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlDateFieldStart, isStandalone: true, selector: "[slDateFieldStart]", host: { attributes: { "data-part": "start" } }, exportAs: ["slDateFieldStart"], ngImport: i0 });
790
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlDateFieldStart, isStandalone: true, selector: "[slDateFieldStart]", host: { attributes: { "data-part": "start", "data-part-start": "" } }, exportAs: ["slDateFieldStart"], ngImport: i0 });
765
791
  }
766
792
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlDateFieldStart, decorators: [{
767
793
  type: Directive,
@@ -769,13 +795,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
769
795
  selector: '[slDateFieldStart]',
770
796
  standalone: true,
771
797
  exportAs: 'slDateFieldStart',
772
- host: { 'data-part': 'start' },
798
+ host: { 'data-part': 'start', 'data-part-start': '' },
773
799
  }]
774
800
  }] });
775
801
  /** An adornment after the date in the reading direction. */
776
802
  class SlDateFieldEnd {
777
803
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlDateFieldEnd, deps: [], target: i0.ɵɵFactoryTarget.Directive });
778
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlDateFieldEnd, isStandalone: true, selector: "[slDateFieldEnd]", host: { attributes: { "data-part": "end" } }, exportAs: ["slDateFieldEnd"], ngImport: i0 });
804
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlDateFieldEnd, isStandalone: true, selector: "[slDateFieldEnd]", host: { attributes: { "data-part": "end", "data-part-end": "" } }, exportAs: ["slDateFieldEnd"], ngImport: i0 });
779
805
  }
780
806
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlDateFieldEnd, decorators: [{
781
807
  type: Directive,
@@ -783,7 +809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
783
809
  selector: '[slDateFieldEnd]',
784
810
  standalone: true,
785
811
  exportAs: 'slDateFieldEnd',
786
- host: { 'data-part': 'end' },
812
+ host: { 'data-part': 'end', 'data-part-end': '' },
787
813
  }]
788
814
  }] });
789
815
 
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-date-field.mjs","sources":["../../date-field/src/date-field-defaults.ts","../../date-field/src/date-field.ts","../../date-field/src/date-field-parts.ts","../../date-field/src/slotted-angular-date-field.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/** The type step the control sits at, matching the field around it. */\nexport type DateFieldSize = 'sm' | 'md' | 'lg';\n\n/**\n * How much frame the control shows. The three steps `text-field` set, so a form\n * holding a name and a date shows one frame twice rather than two frames.\n */\nexport type DateFieldVariant = 'outline' | 'subtle' | 'plain';\n\n/**\n * The calendar system the value is written in.\n *\n * One value today, and it is an axis rather than a silence: a second calendar\n * system is a second arithmetic, and declaring the axis now is what keeps its\n * arrival from being a contract break.\n */\nexport type DateFieldCalendar = 'gregory';\n\n/**\n * Two typed digits up to twenty years ahead of this year are this century, and\n * anything above them is the last: `30` is 2030 and `80` is 1980 in 2026.\n *\n * A birth-date field sets it to `0`, and then only a year already past can be\n * typed in two digits. The number is stated rather than inferred because the\n * alternative is two bindings guessing, differently, at what `26` means.\n */\nexport const DATE_FIELD_YEAR_PIVOT = 20;\n\nexport interface DateFieldDefaults {\n calendar: DateFieldCalendar;\n /** `0` is Sunday. Unset means the locale decides. */\n firstDayOfWeek: number | undefined;\n size: DateFieldSize;\n /** Which zone answers \"what is today\". Unset means the runtime's own. */\n timeZone: string | undefined;\n variant: DateFieldVariant;\n yearPivot: number;\n}\n\nconst FALLBACK: DateFieldDefaults = {\n calendar: 'gregory',\n firstDayOfWeek: undefined,\n size: 'md',\n timeZone: undefined,\n variant: 'outline',\n yearPivot: DATE_FIELD_YEAR_PIVOT,\n};\n\nexport const DATE_FIELD_DEFAULTS = new InjectionToken<DateFieldDefaults>(\n 'slotted date field defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once what its dates look like, which zone answers\n * \"today\" and how a two-digit year resolves, rather than repeating the same\n * inputs on every control in a form. A control that states any of them itself\n * still wins. The locale that writes the dates, and the clear button's name,\n * come from the language in force (`provideSlotted`).\n */\nexport function provideDateFieldDefaults(defaults: Partial<DateFieldDefaults>) {\n return {\n provide: DATE_FIELD_DEFAULTS,\n useFactory: (): DateFieldDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a date field renders as here, before it states anything of its own. */\nexport function injectDateFieldDefaults(): DateFieldDefaults {\n return inject(DATE_FIELD_DEFAULTS);\n}\n","import {\n boundSegment,\n clearSegment,\n commitTyping,\n createDateFormat,\n dateOf,\n EMPTY_SEGMENTS,\n fieldRange,\n isDateInRange,\n isSameDate,\n parseISOYearMonth,\n plainDate,\n segmentsOf,\n stepSegment,\n toISODate,\n toISOYearMonth,\n todayIn,\n typeDigit,\n yearMonthPattern,\n} from '@slotted/core/date';\nimport type { DateFieldName, PlainDate, SegmentState } from '@slotted/core/date';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n dateFieldMessages,\n type DateFieldMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { SlField } from '@slotted/angular/field';\n\nimport { injectDateFieldDefaults } from './date-field-defaults';\nimport type { DateFieldCalendar, DateFieldSize, DateFieldVariant } from './date-field-defaults';\n\n/**\n * How far `PageUp` and `PageDown` move each field.\n *\n * Five is the APG spin-button example's step, adopted for the day and the\n * month. The year departs: five years is not a page of years, and ten is the\n * step the calendar's own year view pages by, so the two agree. The cost is\n * written in `specs/components/date-field/contract.json` under `departures`.\n */\nconst PAGE_STEP: Record<DateFieldName, number> = { day: 5, month: 5, year: 10 };\n\n/**\n * The hidden element carrying the whole date needs an identifier the group can\n * point `aria-labelledby` at, and Angular has no `useId`. A module counter is\n * what the framework leaves: it is stable for a given render order, which is\n * what hydration needs, and it never reaches the public surface.\n */\nlet sequence = 0;\n\n/** What a request carries beyond the value. */\nexport interface DateFieldChangeRequest extends ChangeRequest<PlainDate | null> {\n readonly segments: SegmentState;\n}\n\n/**\n * A segmented date control: one spin button per field, in the order the locale\n * writes them.\n *\n * **The frame is not the control.** The element carrying `data-ui` is the\n * consumer's own box with no role; `role=\"group\"` is on the row of segments,\n * which is what the APG's spin-button example names as the thing that tells a\n * screen-reader user that three buttons are one date.\n *\n * **Angular renders the segments and React renders the segments.** The two\n * bindings share the arithmetic in `@slotted/core/date` and nothing else: this\n * one is a component with a template and a `ControlValueAccessor`, because a\n * date belongs in a Reactive Form and Angular has the integration point for it.\n * It also implements `Validator`, which React has no equivalent of and which is\n * the asymmetry `references/frameworks.md` asks to be recorded rather than\n * levelled away — `min`, `max` and `isDateUnavailable` are validity this\n * control owns and no other validator can see.\n *\n * **The segments are the state and the value is derived.** A date with a day\n * and a month and no year is not a date, so the value is `null` — and that is\n * not the same as an empty field. The request carries the segments so a\n * consumer can tell them apart.\n */\n@Component({\n selector: '[slDateField]',\n standalone: true,\n exportAs: 'slDateField',\n imports: [SlGlyph, SlIcon],\n template: `<ng-content select=\"[slDateFieldStart]\" />\n <div\n data-part=\"segments\"\n role=\"group\"\n [attr.id]=\"controlId()\"\n [attr.aria-label]=\"label() ?? writtenLabel\"\n [attr.aria-labelledby]=\"labelledBy()\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-readonly]=\"ariaReadonly()\"\n [attr.aria-disabled]=\"ariaDisabled()\"\n (paste)=\"onPaste($event)\"\n >\n @for (part of pattern(); track $index) {\n @if (part.type === 'literal') {\n <span data-part=\"literal\" aria-hidden=\"true\">{{ part.value }}</span>\n } @else {\n <div\n data-part=\"segment\"\n role=\"spinbutton\"\n [attr.data-field]=\"part.type\"\n [attr.data-placeholder]=\"valueOf(part.type) === null ? '' : null\"\n [attr.aria-label]=\"t(part.type)\"\n [attr.aria-valuenow]=\"valueOf(part.type)\"\n [attr.aria-valuemin]=\"rangeOf(part.type).min\"\n [attr.aria-valuemax]=\"rangeOf(part.type).max\"\n [attr.aria-valuetext]=\"spokenOf(part.type)\"\n [attr.aria-disabled]=\"ariaDisabled()\"\n [attr.aria-readonly]=\"ariaReadonly()\"\n [tabindex]=\"tabIndexOf(part.type)\"\n (mousedown)=\"onSegmentMouseDown($event)\"\n (focus)=\"activeField.set(part.type)\"\n (blur)=\"onBlur()\"\n >\n {{ textOf(part.type) }}\n </div>\n }\n }\n </div>\n <span data-part=\"value-text\" hidden [attr.id]=\"valueTextId\">{{ spokenDate() }}</span>\n @if (showClear()) {\n <button\n data-part=\"clear\"\n type=\"button\"\n [attr.aria-label]=\"t('clear')\"\n (click)=\"clear($event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n <ng-content select=\"[slDateFieldEnd]\" />\n <input data-part=\"hidden-input\" type=\"hidden\" readonly [attr.name]=\"name()\" [value]=\"iso()\" />`,\n styleUrl: '../../../styles/src/date-field/date-field.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlDateField), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlDateField), multi: true },\n ],\n host: {\n 'data-ui': 'date-field',\n 'data-part': 'root',\n '(mousedown)': 'onRootMouseDown($event)',\n '(keydown)': 'onKeyDown($event)',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-calendar]': 'resolvedCalendar()',\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.data-required]': \"resolvedRequired() === true ? '' : null\",\n },\n})\nexport class SlDateField implements ControlValueAccessor, Validator, OnInit {\n /** Present means the consumer owns the value. */\n readonly value = input<PlainDate | null | undefined>(undefined);\n /** The value the control starts from when nobody else writes one. */\n readonly defaultValue = input<PlainDate | null | undefined>(undefined);\n\n /**\n * What the control holds: a day, or a month of a year. Under `month` the\n * field shows the month and the year segments in the locale's order, its\n * value is the first day of that month, and the hidden input submits\n * `YYYY-MM`. Defaults to `day`.\n */\n readonly granularity = input<'day' | 'month' | undefined>(undefined);\n\n /** The earliest date the control accepts. Also a form validity rule. */\n readonly min = input<PlainDate | undefined>(undefined);\n /** The latest date the control accepts. Also a form validity rule. */\n readonly max = input<PlainDate | undefined>(undefined);\n /** Refuses particular dates — a weekend, a holiday, a booked day. */\n readonly isDateUnavailable = input<((date: PlainDate) => boolean) | undefined>(undefined);\n\n /**\n * BCP 47. Decides the field order, the separators and the placeholder.\n * Unset, the language in force decides.\n */\n readonly locale = input<string | undefined>(undefined);\n /** Which zone answers \"what is today\", and nothing else. */\n readonly timeZone = input<string | undefined>(undefined);\n readonly firstDayOfWeek = input<number | undefined, unknown>(undefined, {\n transform: (value) =>\n value === undefined || value === null ? undefined : numberAttribute(value),\n });\n readonly yearPivot = input<number | undefined, unknown>(undefined, {\n transform: (value) =>\n value === undefined || value === null ? undefined : numberAttribute(value),\n });\n readonly calendar = input<DateFieldCalendar | undefined>(undefined);\n\n readonly size = input<DateFieldSize | undefined>(undefined);\n readonly variant = input<DateFieldVariant | undefined>(undefined);\n\n /** Unstated rather than `false`, so the control defers to the field. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly required = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /** Draws a button that empties the value and returns focus to the control. */\n readonly clearable = input(false, { transform: booleanAttribute });\n /** Words laid over the catalog of the language in force, key by key: the clear button's name. */\n readonly messages = input<PartialMessages<DateFieldMessages> | undefined>(undefined);\n /** The name a plain form post carries the ISO string under. */\n readonly name = input<string | undefined>(undefined);\n /**\n * The accessible name, when it is bound rather than written: a static\n * `aria-label` is read once from the host, and a family naming this field\n * from its own input — `date-range-picker` names its two ends — has no\n * static attribute to write.\n */\n readonly label = input<string | undefined>(undefined);\n /**\n * The group's identifier, when it is bound rather than written: a family\n * holding two of these inside one field — `date-range-picker` — gives each\n * its own, where both would otherwise take the field's.\n */\n readonly groupId = input<string | undefined>(undefined);\n\n /**\n * One output for one transition, carrying the value, the value it replaces,\n * the segments, the reason, the originating event and `cancel()`. There is no\n * `[(value)]`, because a two-way binding has one slot and can carry none of\n * those; a form gets the same movement through `ControlValueAccessor`.\n */\n readonly valueChange = output<DateFieldChangeRequest>();\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly defaults = injectDateFieldDefaults();\n private readonly appLocale = injectLocale();\n /** The family's words in the language in force, with this field's `messages` laid over them. */\n readonly t = injectMessages(dateFieldMessages, this.messages);\n private readonly field = inject(SlField, { optional: true });\n\n /** Read before the host binding computes, so it never writes over it. */\n protected readonly writtenLabel = inject(new HostAttributeToken('aria-label'), {\n optional: true,\n });\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n\n /** The whole date in words, for the group's own accessible name. */\n protected readonly valueTextId = `sl-date-field-${String((sequence += 1))}`;\n\n private readonly segments = signal<SegmentState>(EMPTY_SEGMENTS);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n /**\n * Which day it is, resolved after construction rather than during it, so a\n * server and a browser in different zones never disagree about the markup.\n * Nothing is drawn from it: it is the date an empty segment steps to.\n */\n private readonly reference = signal<PlainDate>(plainDate(2000, 1, 1));\n protected readonly activeField = signal<DateFieldName | undefined>(undefined);\n\n private onChangeFn: (value: PlainDate | null) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n private onValidatorChangeFn: () => void = () => undefined;\n\n protected readonly format = computed(() =>\n createDateFormat({\n locale: this.locale() ?? this.appLocale(),\n firstDayOfWeek: this.firstDayOfWeek() ?? this.defaults.firstDayOfWeek,\n yearPivot: this.yearPivot() ?? this.defaults.yearPivot,\n }),\n );\n\n /** A field that holds a month draws the locale's pattern without its day. */\n protected readonly monthly = computed(() => this.granularity() === 'month');\n protected readonly pattern = computed(() =>\n this.monthly() ? yearMonthPattern(this.format().pattern) : this.format().pattern,\n );\n\n protected readonly fields = computed(() =>\n this.pattern()\n .filter((part) => part.type !== 'literal')\n .map((part) => part.type as DateFieldName),\n );\n\n /** The date the segments make, or `null` while any of them is unfilled. */\n readonly date = computed(() => dateOf(this.segments()));\n protected readonly iso = computed(() => {\n const date = this.date();\n if (date === null) return '';\n return this.monthly()\n ? toISOYearMonth({ year: date.year, month: date.month })\n : toISODate(date);\n });\n protected readonly spokenDate = computed(() => {\n const date = this.date();\n if (date === null) return '';\n return this.monthly() ? this.format().monthYear(date) : this.format().describe(date);\n });\n\n readonly resolvedSize = computed(\n () => this.size() ?? this.field?.resolvedSize() ?? this.defaults.size,\n );\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedCalendar = computed(() => this.calendar() ?? this.defaults.calendar);\n readonly resolvedDisabled = computed(\n () => this.disabled() ?? this.formDisabled() ?? this.field?.resolvedDisabled(),\n );\n readonly resolvedReadOnly = computed(() => this.readOnly() ?? this.field?.resolvedReadOnly());\n readonly resolvedRequired = computed(() => this.required() ?? this.field?.required());\n\n /**\n * Validity the family owns, beside the validity the consumer states. A date\n * outside the bounds or refused by the predicate is invalid whatever the\n * field around it says, because this control is the only thing that knows.\n */\n readonly resolvedInvalid = computed(() => {\n const date = this.date();\n if (date !== null && !isDateInRange(date, this.min(), this.max())) return true;\n if (date !== null && this.isDateUnavailable()?.(date) === true) return true;\n return this.invalid() ?? this.field?.invalid();\n });\n\n protected readonly controlId = computed(\n () => this.groupId() ?? this.writtenId ?? this.field?.ids().control ?? null,\n );\n protected readonly labelledBy = computed(() => {\n if (this.label() !== undefined || this.writtenLabel !== null) return null;\n const merged = [this.writtenLabelledBy ?? this.field?.ids().label, this.valueTextId].filter(\n Boolean,\n );\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.field?.describedBy()].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n protected readonly ariaReadonly = computed(() =>\n this.resolvedReadOnly() === true ? 'true' : null,\n );\n protected readonly ariaDisabled = computed(() =>\n this.resolvedDisabled() === true ? 'true' : null,\n );\n\n private readonly editable = computed(\n () => this.resolvedDisabled() !== true && this.resolvedReadOnly() !== true,\n );\n\n protected readonly showClear = computed(() => {\n if (!this.clearable() || !this.editable()) return false;\n const held = this.segments();\n return this.fields().some((name) => held[name] !== null);\n });\n\n /**\n * Angular creates a component before it binds any input, so the starting\n * value is read here rather than in the constructor: read there, both\n * `value` and `defaultValue` are `undefined` and the control starts empty.\n */\n constructor() {\n /**\n * A consumer's own value writes the segments, and only when it names a\n * different date: written on every change detection it would throw away a\n * half-typed date on the keystroke that completes a different one.\n *\n * Without it a controlled `[value]` only ever reached the control once, in\n * `ngOnInit` — which is what the first run of `date-picker`'s spec showed\n * as a field still holding the ninth after the calendar had chosen the\n * seventeenth.\n */\n effect(() => {\n const next = this.value();\n if (next === undefined) return;\n const segments = this.segments();\n /* A run of digits still being typed is not a value the consumer refused;\n the guard `time-field` records, taken here for the same reason. */\n if (segments.typing !== null) return;\n if (isSameDate(dateOf(segments), next)) return;\n this.segments.set(segmentsOf(next));\n });\n }\n\n ngOnInit() {\n this.segments.set(segmentsOf(this.value() ?? this.defaultValue() ?? null));\n this.reference.set(todayIn(this.timeZone() ?? this.defaults.timeZone));\n }\n\n /* ── The value ───────────────────────────────────────────────────────── */\n\n writeValue(value: PlainDate | null | undefined) {\n this.segments.set(segmentsOf(value ?? null));\n }\n\n registerOnChange(fn: (value: PlainDate | null) => 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.onValidatorChangeFn = fn;\n }\n\n /**\n * The rules no other validator can see. `required` is left to Angular's own,\n * because a form already has a word for it and two would disagree.\n */\n validate(control: AbstractControl): ValidationErrors | null {\n const date = control.value as PlainDate | null;\n if (date === null || date === undefined) return null;\n\n const min = this.min();\n const max = this.max();\n if (!isDateInRange(date, min, max)) {\n return { slottedDateRange: { min, max, actual: date } };\n }\n if (this.isDateUnavailable()?.(date) === true) {\n return { slottedDateUnavailable: { actual: date } };\n }\n return null;\n }\n\n /** Puts focus on the first segment, which is where typing starts. */\n focus() {\n const first = this.fields()[0];\n if (first !== undefined) this.focusField(first);\n }\n\n /**\n * Where a press on the frame puts the reader: the first field still waiting\n * for a value, and the first field of the date when none is.\n *\n * A press that landed on the frame's own padding, on the gap between two\n * fields or on an adornment did nothing at all — the reader saw a control\n * that looked like a text field and answered like a picture. Every text\n * control on the page answers a press anywhere inside its border, and this\n * one has to as well.\n */\n focusEntry() {\n const held = this.segments();\n const empty = this.fields().find((name) => held[name] === null);\n const target = empty ?? this.fields()[0];\n if (target !== undefined) this.focusField(target);\n }\n\n /**\n * A press inside the frame that landed on nothing of its own. The default is\n * prevented so the press does not immediately blur the field it just gave\n * focus to, which is what a `mousedown` on a non-focusable box would do.\n */\n protected onRootMouseDown(event: MouseEvent) {\n const target = event.target as HTMLElement | null;\n if (target?.closest('[data-part=\"segment\"], button, a, input, select, textarea') != null) {\n return;\n }\n event.preventDefault();\n this.focusEntry();\n }\n\n /**\n * Safari does not focus a `div` on a press even when it carries a\n * `tabindex`, so the press says so itself rather than relying on it.\n */\n protected onSegmentMouseDown(event: MouseEvent) {\n event.preventDefault();\n (event.currentTarget as HTMLElement).focus();\n }\n\n /** Empties every segment, with the `clear` reason. */\n clear(source?: Event) {\n this.commit(EMPTY_SEGMENTS, 'clear', source);\n this.focus();\n }\n\n /* ── The keyboard ────────────────────────────────────────────────────── */\n\n /**\n * A key the field acted on is the field's, and nothing above it sees it.\n *\n * Every application that binds a bare key guards it with \"is the target an\n * editable element\", and that guard tests for `input`, `textarea` and\n * `contenteditable`. A `div` with `role=\"spinbutton\"` is none of the three,\n * so a reader typing a date into this control fires every single-key\n * shortcut on the page: in Storybook, pressing `1` moved focus out of the\n * story and into the sidebar, and the date could not be typed at all.\n *\n * `preventDefault` alone does not help — a shortcut handler reads the key,\n * not the default. The event has to stop.\n */\n private consume(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n /**\n * The keys are handled on the host rather than on each segment, so a\n * consumer's own `(keydown)` on the same element still runs before the\n * family stops the event — which is the composition React gets by calling\n * the consumer's handler first.\n */\n protected onKeyDown(event: KeyboardEvent) {\n const segment = (event.target as HTMLElement | null)?.closest<HTMLElement>(\n '[data-part=\"segment\"]',\n );\n const name = segment?.dataset['field'] as DateFieldName | undefined;\n if (name === undefined) return;\n\n /* An inline direction is a physical pair of keys and a logical order, so\n the arrow that walks forward is the one pointing along the writing\n direction rather than the one pointing right. */\n const rtl = getComputedStyle(this.element).direction === 'rtl';\n const forward = rtl ? 'ArrowLeft' : 'ArrowRight';\n const backward = rtl ? 'ArrowRight' : 'ArrowLeft';\n\n if (event.key === forward) {\n this.consume(event);\n this.moveBy(name, 1);\n return;\n }\n if (event.key === backward) {\n this.consume(event);\n this.moveBy(name, -1);\n return;\n }\n\n if (!this.editable()) return;\n\n /**\n * `Alt` with an arrow is not this control's chord. `date-picker` opens its\n * calendar with `Alt`+`ArrowDown`, and a segment that stepped on it would\n * eat the only shortcut the surface has.\n */\n if (event.altKey) return;\n\n const held = this.segments();\n const reference = this.reference();\n\n switch (event.key) {\n case 'ArrowUp':\n this.consume(event);\n this.commit(stepSegment(held, name, 1, reference), 'keyboard', event);\n return;\n case 'ArrowDown':\n this.consume(event);\n this.commit(stepSegment(held, name, -1, reference), 'keyboard', event);\n return;\n case 'PageUp':\n this.consume(event);\n this.commit(stepSegment(held, name, PAGE_STEP[name], reference), 'keyboard', event);\n return;\n case 'PageDown':\n this.consume(event);\n this.commit(stepSegment(held, name, -PAGE_STEP[name], reference), 'keyboard', event);\n return;\n case 'Home':\n this.consume(event);\n this.commit(boundSegment(held, name, 'min', reference), 'keyboard', event);\n return;\n case 'End':\n this.consume(event);\n this.commit(boundSegment(held, name, 'max', reference), 'keyboard', event);\n return;\n case 'Backspace':\n case 'Delete':\n this.consume(event);\n this.commit(clearSegment(held, name), 'clear', event);\n return;\n default:\n break;\n }\n\n if (/^\\d$/.test(event.key)) {\n this.consume(event);\n const typed = typeDigit(held, name, Number(event.key), this.format(), reference);\n this.commit(typed.segments, 'keyboard', event);\n if (typed.advance) this.moveBy(name, 1);\n }\n }\n\n /**\n * A whole date, pasted. The locale's shape is read first and ISO 8601 after\n * it, so `12/03/2026` is December to an American and March to a Brazilian\n * while `2026-09-09` is the ninth to both.\n */\n protected onPaste(event: ClipboardEvent) {\n if (!this.editable()) return;\n const text = event.clipboardData?.getData('text/plain') ?? '';\n const month = this.monthly() ? parseISOYearMonth(text) : null;\n const parsed =\n month === null ? this.format().parse(text) : plainDate(month.year, month.month, 1);\n if (parsed === null) return;\n event.preventDefault();\n this.commit(segmentsOf(parsed), 'keyboard', event);\n }\n\n /** A run of typed digits ends when focus leaves, and a short year resolves. */\n protected onBlur() {\n this.activeField.set(undefined);\n this.onTouchedFn();\n const held = this.segments();\n if (held.typing === null) return;\n this.commit(commitTyping(held, this.format(), this.reference()), 'blur', undefined);\n }\n\n /* ── What the template reads ─────────────────────────────────────────── */\n\n protected valueOf(field: DateFieldName): number | null {\n return this.segments()[field];\n }\n\n protected rangeOf(field: DateFieldName) {\n const held = this.segments();\n const reference = this.reference();\n return fieldRange(field, {\n year: held.year ?? reference.year,\n month: held.month ?? reference.month,\n });\n }\n\n /** What a reader hears instead of the number: a month says its own name. */\n protected spokenOf(field: DateFieldName): string | null {\n const raw = this.segments()[field];\n if (raw === null) return null;\n if (field !== 'month') return String(raw);\n return this.format().monthNames('long')[raw - 1] ?? String(raw);\n }\n\n /**\n * What one field shows.\n *\n * A finished value is padded to the field's width, so the three columns hold\n * their place: `9` and `09` occupy the same box and the separators never step\n * sideways. A value still being typed is **not** padded — it is the digits\n * the reader has put in, in the order they put them. Padded, a year on its\n * way to 2026 read `0002`, then `0020`, then `0202`, which is three numbers\n * nobody typed.\n */\n protected textOf(field: DateFieldName): string {\n const held = this.segments();\n const raw = held[field];\n if (raw === null) {\n return this.format().pattern.find((part) => part.type === field)?.value ?? '';\n }\n\n const typing = held.typing;\n if (typing !== null && typing.field === field) {\n return String(raw).padStart(typing.digits, '0');\n }\n\n const reference = this.reference();\n return this.format().formatField(\n {\n year: held.year ?? reference.year,\n month: held.month ?? reference.month,\n day: held.day ?? reference.day,\n },\n field,\n );\n }\n\n /** Exactly one segment is in the tab sequence, which is the roving model. */\n protected tabIndexOf(field: DateFieldName): number {\n if (this.resolvedDisabled() === true) return -1;\n return field === (this.activeField() ?? this.fields()[0]) ? 0 : -1;\n }\n\n /* ── The machinery ───────────────────────────────────────────────────── */\n\n private focusField(name: DateFieldName) {\n this.activeField.set(name);\n this.element.querySelector<HTMLElement>(`[data-part=\"segment\"][data-field=\"${name}\"]`)?.focus();\n }\n\n private moveBy(name: DateFieldName, step: number) {\n const next = this.fields()[this.fields().indexOf(name) + step];\n if (next !== undefined) this.focusField(next);\n }\n\n /**\n * Moves the segments, and asks before the derived value moves with them.\n *\n * A run of typed digits moves the display and not the value: typing `2026`\n * into a year passes through 2, 20 and 202 on the way, and a request per\n * digit would ask a consumer's server about the year 2. The request is\n * emitted when the run ends.\n */\n private commit(given: SegmentState, reason: ChangeReason, source: Event | undefined) {\n /* A month has no day segment to fill, so the day is the first of it. */\n const next = this.monthly() && given.day !== 1 ? { ...given, day: 1, intendedDay: 1 } : given;\n const previous = this.date();\n this.segments.set(next);\n if (next.typing !== null) return;\n\n const nextValue = dateOf(next);\n let cancelled = false;\n const state = createControllable<PlainDate | null>({\n controlled: undefined,\n initial: previous,\n equals: isSameDate,\n onRequest: (request) => {\n this.valueChange.emit({ ...request, segments: next });\n cancelled = request.cancelled;\n },\n });\n state.request(nextValue, reason, source);\n\n if (cancelled) return;\n this.onChangeFn(nextValue);\n this.onValidatorChangeFn();\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * An adornment before the date in the reading direction: a calendar mark, a\n * label, an icon. Named for the direction rather than for a side, so the same\n * markup puts the mark before the date in both directions.\n *\n * It is a directive on the consumer's own element, so an `icon`, a `kbd` or a\n * `span` all work and none of them loses its own semantics. The stylesheet\n * sizes any icon inside it from the control's own glyph scale.\n */\n@Directive({\n selector: '[slDateFieldStart]',\n standalone: true,\n exportAs: 'slDateFieldStart',\n host: { 'data-part': 'start' },\n})\nexport class SlDateFieldStart {}\n\n/** An adornment after the date in the reading direction. */\n@Directive({\n selector: '[slDateFieldEnd]',\n standalone: true,\n exportAs: 'slDateFieldEnd',\n host: { 'data-part': 'end' },\n})\nexport class SlDateFieldEnd {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-date-field.mjs","sources":["../../date-field/src/date-field-defaults.ts","../../date-field/src/date-field.ts","../../date-field/src/date-field-parts.ts","../../date-field/src/slotted-angular-date-field.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/** The type step the control sits at, matching the field around it. */\nexport type DateFieldSize = 'sm' | 'md' | 'lg';\n\n/**\n * How much frame the control shows. The three steps `text-field` set, so a form\n * holding a name and a date shows one frame twice rather than two frames.\n */\nexport type DateFieldVariant = 'outline' | 'subtle' | 'plain';\n\n/**\n * The calendar system the value is written in.\n *\n * One value today, and it is an axis rather than a silence: a second calendar\n * system is a second arithmetic, and declaring the axis now is what keeps its\n * arrival from being a contract break.\n */\nexport type DateFieldCalendar = 'gregory';\n\n/**\n * Two typed digits up to twenty years ahead of this year are this century, and\n * anything above them is the last: `30` is 2030 and `80` is 1980 in 2026.\n *\n * A birth-date field sets it to `0`, and then only a year already past can be\n * typed in two digits. The number is stated rather than inferred because the\n * alternative is two bindings guessing, differently, at what `26` means.\n */\nexport const DATE_FIELD_YEAR_PIVOT = 20;\n\nexport interface DateFieldDefaults {\n calendar: DateFieldCalendar;\n /** `0` is Sunday. Unset means the locale decides. */\n firstDayOfWeek: number | undefined;\n size: DateFieldSize;\n /** Which zone answers \"what is today\". Unset means the runtime's own. */\n timeZone: string | undefined;\n variant: DateFieldVariant;\n yearPivot: number;\n}\n\nconst FALLBACK: DateFieldDefaults = {\n calendar: 'gregory',\n firstDayOfWeek: undefined,\n size: 'md',\n timeZone: undefined,\n variant: 'outline',\n yearPivot: DATE_FIELD_YEAR_PIVOT,\n};\n\nexport const DATE_FIELD_DEFAULTS = new InjectionToken<DateFieldDefaults>(\n 'slotted date field defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once what its dates look like, which zone answers\n * \"today\" and how a two-digit year resolves, rather than repeating the same\n * inputs on every control in a form. A control that states any of them itself\n * still wins. The locale that writes the dates, and the clear button's name,\n * come from the language in force (`provideSlotted`).\n */\nexport function provideDateFieldDefaults(defaults: Partial<DateFieldDefaults>) {\n return {\n provide: DATE_FIELD_DEFAULTS,\n useFactory: (): DateFieldDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a date field renders as here, before it states anything of its own. */\nexport function injectDateFieldDefaults(): DateFieldDefaults {\n return inject(DATE_FIELD_DEFAULTS);\n}\n","import {\n boundSegment,\n clearSegment,\n commitTyping,\n createDateFormat,\n dateOf,\n EMPTY_SEGMENTS,\n fieldRange,\n isDateInRange,\n isSameDate,\n parseISOYearMonth,\n plainDate,\n segmentsOf,\n stepSegment,\n toISODate,\n toISOYearMonth,\n todayIn,\n typeDigit,\n yearMonthPattern,\n} from '@slotted/core/date';\nimport type { DateFieldName, PlainDate, SegmentState } from '@slotted/core/date';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n dateFieldMessages,\n type DateFieldMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { SlField } from '@slotted/angular/field';\n\nimport { injectDateFieldDefaults } from './date-field-defaults';\nimport type { DateFieldCalendar, DateFieldSize, DateFieldVariant } from './date-field-defaults';\n\n/**\n * How far `PageUp` and `PageDown` move each field.\n *\n * Five is the APG spin-button example's step, adopted for the day and the\n * month. The year departs: five years is not a page of years, and ten is the\n * step the calendar's own year view pages by, so the two agree. The cost is\n * written in `specs/components/date-field/contract.json` under `departures`.\n */\nconst PAGE_STEP: Record<DateFieldName, number> = { day: 5, month: 5, year: 10 };\n\n/**\n * The hidden element carrying the whole date needs an identifier the group can\n * point `aria-labelledby` at, and Angular has no `useId`. A module counter is\n * what the framework leaves: it is stable for a given render order, which is\n * what hydration needs, and it never reaches the public surface.\n */\nlet sequence = 0;\n\n/** What a request carries beyond the value. */\nexport interface DateFieldChangeRequest extends ChangeRequest<PlainDate | null> {\n readonly segments: SegmentState;\n}\n\n/**\n * A segmented date control: one spin button per field, in the order the locale\n * writes them.\n *\n * **The frame is not the control.** The element carrying `data-ui` is the\n * consumer's own box with no role; `role=\"group\"` is on the row of segments,\n * which is what the APG's spin-button example names as the thing that tells a\n * screen-reader user that three buttons are one date.\n *\n * **Angular renders the segments and React renders the segments.** The two\n * bindings share the arithmetic in `@slotted/core/date` and nothing else: this\n * one is a component with a template and a `ControlValueAccessor`, because a\n * date belongs in a Reactive Form and Angular has the integration point for it.\n * It also implements `Validator`, which React has no equivalent of and which is\n * the asymmetry `references/frameworks.md` asks to be recorded rather than\n * levelled away — `min`, `max` and `isDateUnavailable` are validity this\n * control owns and no other validator can see.\n *\n * **The segments are the state and the value is derived.** A date with a day\n * and a month and no year is not a date, so the value is `null` — and that is\n * not the same as an empty field. The request carries the segments so a\n * consumer can tell them apart.\n */\n@Component({\n selector: '[slDateField]',\n standalone: true,\n exportAs: 'slDateField',\n imports: [SlGlyph, SlIcon],\n template: `<ng-content select=\"[slDateFieldStart]\" />\n <div\n data-part=\"segments\"\n data-part-segments=\"\"\n role=\"group\"\n [attr.id]=\"controlId()\"\n [attr.aria-label]=\"label() ?? writtenLabel\"\n [attr.aria-labelledby]=\"labelledBy()\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-readonly]=\"ariaReadonly()\"\n [attr.aria-disabled]=\"ariaDisabled()\"\n (paste)=\"onPaste($event)\"\n >\n @for (part of pattern(); track $index) {\n @if (part.type === 'literal') {\n <span data-part=\"literal\" data-part-literal=\"\" aria-hidden=\"true\">{{ part.value }}</span>\n } @else {\n <div\n data-part=\"segment\"\n data-part-segment=\"\"\n role=\"spinbutton\"\n [attr.data-field]=\"part.type\"\n [attr.data-placeholder]=\"valueOf(part.type) === null ? '' : null\"\n [attr.aria-label]=\"t(part.type)\"\n [attr.aria-valuenow]=\"valueOf(part.type)\"\n [attr.aria-valuemin]=\"rangeOf(part.type).min\"\n [attr.aria-valuemax]=\"rangeOf(part.type).max\"\n [attr.aria-valuetext]=\"spokenOf(part.type)\"\n [attr.aria-disabled]=\"ariaDisabled()\"\n [attr.aria-readonly]=\"ariaReadonly()\"\n [tabindex]=\"tabIndexOf(part.type)\"\n (mousedown)=\"onSegmentMouseDown($event)\"\n (focus)=\"activeField.set(part.type)\"\n (blur)=\"onBlur()\"\n >\n {{ textOf(part.type) }}\n </div>\n }\n }\n </div>\n <span data-part=\"value-text\" data-part-value-text=\"\" hidden [attr.id]=\"valueTextId\">{{\n spokenDate()\n }}</span>\n @if (showClear()) {\n <button\n data-part=\"clear\"\n data-part-clear=\"\"\n type=\"button\"\n [attr.aria-label]=\"t('clear')\"\n (click)=\"clear($event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n <ng-content select=\"[slDateFieldEnd]\" />\n <input\n data-part=\"hidden-input\"\n data-part-hidden-input=\"\"\n type=\"hidden\"\n readonly\n [attr.name]=\"name()\"\n [value]=\"iso()\"\n />`,\n styleUrl: '../../../styles/src/date-field/date-field.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlDateField), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlDateField), multi: true },\n ],\n host: {\n 'data-ui': 'date-field',\n 'data-ui-date-field': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '(mousedown)': 'onRootMouseDown($event)',\n '(keydown)': 'onKeyDown($event)',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-calendar]': 'resolvedCalendar()',\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.data-required]': \"resolvedRequired() === true ? '' : null\",\n },\n})\nexport class SlDateField implements ControlValueAccessor, Validator, OnInit {\n /** Present means the consumer owns the value. */\n readonly value = input<PlainDate | null | undefined>(undefined);\n /** The value the control starts from when nobody else writes one. */\n readonly defaultValue = input<PlainDate | null | undefined>(undefined);\n\n /**\n * What the control holds: a day, or a month of a year. Under `month` the\n * field shows the month and the year segments in the locale's order, its\n * value is the first day of that month, and the hidden input submits\n * `YYYY-MM`. Defaults to `day`.\n */\n readonly granularity = input<'day' | 'month' | undefined>(undefined);\n\n /** The earliest date the control accepts. Also a form validity rule. */\n readonly min = input<PlainDate | undefined>(undefined);\n /** The latest date the control accepts. Also a form validity rule. */\n readonly max = input<PlainDate | undefined>(undefined);\n /** Refuses particular dates — a weekend, a holiday, a booked day. */\n readonly isDateUnavailable = input<((date: PlainDate) => boolean) | undefined>(undefined);\n\n /**\n * BCP 47. Decides the field order, the separators and the placeholder.\n * Unset, the language in force decides.\n */\n readonly locale = input<string | undefined>(undefined);\n /** Which zone answers \"what is today\", and nothing else. */\n readonly timeZone = input<string | undefined>(undefined);\n readonly firstDayOfWeek = input<number | undefined, unknown>(undefined, {\n transform: (value) =>\n value === undefined || value === null ? undefined : numberAttribute(value),\n });\n readonly yearPivot = input<number | undefined, unknown>(undefined, {\n transform: (value) =>\n value === undefined || value === null ? undefined : numberAttribute(value),\n });\n readonly calendar = input<DateFieldCalendar | undefined>(undefined);\n\n readonly size = input<DateFieldSize | undefined>(undefined);\n readonly variant = input<DateFieldVariant | undefined>(undefined);\n\n /** Unstated rather than `false`, so the control defers to the field. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly required = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /** Draws a button that empties the value and returns focus to the control. */\n readonly clearable = input(false, { transform: booleanAttribute });\n /** Words laid over the catalog of the language in force, key by key: the clear button's name. */\n readonly messages = input<PartialMessages<DateFieldMessages> | undefined>(undefined);\n /** The name a plain form post carries the ISO string under. */\n readonly name = input<string | undefined>(undefined);\n /**\n * The accessible name, when it is bound rather than written: a static\n * `aria-label` is read once from the host, and a family naming this field\n * from its own input — `date-range-picker` names its two ends — has no\n * static attribute to write.\n */\n readonly label = input<string | undefined>(undefined);\n /**\n * The group's identifier, when it is bound rather than written: a family\n * holding two of these inside one field — `date-range-picker` — gives each\n * its own, where both would otherwise take the field's.\n */\n readonly groupId = input<string | undefined>(undefined);\n\n /**\n * One output for one transition, carrying the value, the value it replaces,\n * the segments, the reason, the originating event and `cancel()`. There is no\n * `[(value)]`, because a two-way binding has one slot and can carry none of\n * those; a form gets the same movement through `ControlValueAccessor`.\n */\n readonly valueChange = output<DateFieldChangeRequest>();\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly defaults = injectDateFieldDefaults();\n private readonly appLocale = injectLocale();\n /** The family's words in the language in force, with this field's `messages` laid over them. */\n readonly t = injectMessages(dateFieldMessages, this.messages);\n private readonly field = inject(SlField, { optional: true });\n\n /** Read before the host binding computes, so it never writes over it. */\n protected readonly writtenLabel = inject(new HostAttributeToken('aria-label'), {\n optional: true,\n });\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n\n /** The whole date in words, for the group's own accessible name. */\n protected readonly valueTextId = `sl-date-field-${String((sequence += 1))}`;\n\n private readonly segments = signal<SegmentState>(EMPTY_SEGMENTS);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n /**\n * Which day it is, resolved after construction rather than during it, so a\n * server and a browser in different zones never disagree about the markup.\n * Nothing is drawn from it: it is the date an empty segment steps to.\n */\n private readonly reference = signal<PlainDate>(plainDate(2000, 1, 1));\n protected readonly activeField = signal<DateFieldName | undefined>(undefined);\n\n private onChangeFn: (value: PlainDate | null) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n private onValidatorChangeFn: () => void = () => undefined;\n\n protected readonly format = computed(() =>\n createDateFormat({\n locale: this.locale() ?? this.appLocale(),\n firstDayOfWeek: this.firstDayOfWeek() ?? this.defaults.firstDayOfWeek,\n yearPivot: this.yearPivot() ?? this.defaults.yearPivot,\n }),\n );\n\n /** A field that holds a month draws the locale's pattern without its day. */\n protected readonly monthly = computed(() => this.granularity() === 'month');\n protected readonly pattern = computed(() =>\n this.monthly() ? yearMonthPattern(this.format().pattern) : this.format().pattern,\n );\n\n protected readonly fields = computed(() =>\n this.pattern()\n .filter((part) => part.type !== 'literal')\n .map((part) => part.type as DateFieldName),\n );\n\n /** The date the segments make, or `null` while any of them is unfilled. */\n readonly date = computed(() => dateOf(this.segments()));\n protected readonly iso = computed(() => {\n const date = this.date();\n if (date === null) return '';\n return this.monthly()\n ? toISOYearMonth({ year: date.year, month: date.month })\n : toISODate(date);\n });\n protected readonly spokenDate = computed(() => {\n const date = this.date();\n if (date === null) return '';\n return this.monthly() ? this.format().monthYear(date) : this.format().describe(date);\n });\n\n readonly resolvedSize = computed(\n () => this.size() ?? this.field?.resolvedSize() ?? this.defaults.size,\n );\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedCalendar = computed(() => this.calendar() ?? this.defaults.calendar);\n readonly resolvedDisabled = computed(\n () => this.disabled() ?? this.formDisabled() ?? this.field?.resolvedDisabled(),\n );\n readonly resolvedReadOnly = computed(() => this.readOnly() ?? this.field?.resolvedReadOnly());\n readonly resolvedRequired = computed(() => this.required() ?? this.field?.required());\n\n /**\n * Validity the family owns, beside the validity the consumer states. A date\n * outside the bounds or refused by the predicate is invalid whatever the\n * field around it says, because this control is the only thing that knows.\n */\n readonly resolvedInvalid = computed(() => {\n const date = this.date();\n if (date !== null && !isDateInRange(date, this.min(), this.max())) return true;\n if (date !== null && this.isDateUnavailable()?.(date) === true) return true;\n return this.invalid() ?? this.field?.invalid();\n });\n\n protected readonly controlId = computed(\n () => this.groupId() ?? this.writtenId ?? this.field?.ids().control ?? null,\n );\n protected readonly labelledBy = computed(() => {\n if (this.label() !== undefined || this.writtenLabel !== null) return null;\n const merged = [this.writtenLabelledBy ?? this.field?.ids().label, this.valueTextId].filter(\n Boolean,\n );\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.field?.describedBy()].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n protected readonly ariaReadonly = computed(() =>\n this.resolvedReadOnly() === true ? 'true' : null,\n );\n protected readonly ariaDisabled = computed(() =>\n this.resolvedDisabled() === true ? 'true' : null,\n );\n\n private readonly editable = computed(\n () => this.resolvedDisabled() !== true && this.resolvedReadOnly() !== true,\n );\n\n protected readonly showClear = computed(() => {\n if (!this.clearable() || !this.editable()) return false;\n const held = this.segments();\n return this.fields().some((name) => held[name] !== null);\n });\n\n /**\n * Angular creates a component before it binds any input, so the starting\n * value is read here rather than in the constructor: read there, both\n * `value` and `defaultValue` are `undefined` and the control starts empty.\n */\n constructor() {\n /**\n * A consumer's own value writes the segments, and only when it names a\n * different date: written on every change detection it would throw away a\n * half-typed date on the keystroke that completes a different one.\n *\n * Without it a controlled `[value]` only ever reached the control once, in\n * `ngOnInit` — which is what the first run of `date-picker`'s spec showed\n * as a field still holding the ninth after the calendar had chosen the\n * seventeenth.\n */\n effect(() => {\n const next = this.value();\n if (next === undefined) return;\n const segments = this.segments();\n /* A run of digits still being typed is not a value the consumer refused;\n the guard `time-field` records, taken here for the same reason. */\n if (segments.typing !== null) return;\n if (isSameDate(dateOf(segments), next)) return;\n this.segments.set(segmentsOf(next));\n });\n }\n\n ngOnInit() {\n this.segments.set(segmentsOf(this.value() ?? this.defaultValue() ?? null));\n this.reference.set(todayIn(this.timeZone() ?? this.defaults.timeZone));\n }\n\n /* ── The value ───────────────────────────────────────────────────────── */\n\n writeValue(value: PlainDate | null | undefined) {\n this.segments.set(segmentsOf(value ?? null));\n }\n\n registerOnChange(fn: (value: PlainDate | null) => 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.onValidatorChangeFn = fn;\n }\n\n /**\n * The rules no other validator can see. `required` is left to Angular's own,\n * because a form already has a word for it and two would disagree.\n */\n validate(control: AbstractControl): ValidationErrors | null {\n const date = control.value as PlainDate | null;\n if (date === null || date === undefined) return null;\n\n const min = this.min();\n const max = this.max();\n if (!isDateInRange(date, min, max)) {\n return { slottedDateRange: { min, max, actual: date } };\n }\n if (this.isDateUnavailable()?.(date) === true) {\n return { slottedDateUnavailable: { actual: date } };\n }\n return null;\n }\n\n /** Puts focus on the first segment, which is where typing starts. */\n focus() {\n const first = this.fields()[0];\n if (first !== undefined) this.focusField(first);\n }\n\n /**\n * Where a press on the frame puts the reader: the first field still waiting\n * for a value, and the first field of the date when none is.\n *\n * A press that landed on the frame's own padding, on the gap between two\n * fields or on an adornment did nothing at all — the reader saw a control\n * that looked like a text field and answered like a picture. Every text\n * control on the page answers a press anywhere inside its border, and this\n * one has to as well.\n */\n focusEntry() {\n const held = this.segments();\n const empty = this.fields().find((name) => held[name] === null);\n const target = empty ?? this.fields()[0];\n if (target !== undefined) this.focusField(target);\n }\n\n /**\n * A press inside the frame that landed on nothing of its own. The default is\n * prevented so the press does not immediately blur the field it just gave\n * focus to, which is what a `mousedown` on a non-focusable box would do.\n */\n protected onRootMouseDown(event: MouseEvent) {\n const target = event.target as HTMLElement | null;\n if (target?.closest('[data-part=\"segment\"], button, a, input, select, textarea') != null) {\n return;\n }\n event.preventDefault();\n this.focusEntry();\n }\n\n /**\n * Safari does not focus a `div` on a press even when it carries a\n * `tabindex`, so the press says so itself rather than relying on it.\n */\n protected onSegmentMouseDown(event: MouseEvent) {\n event.preventDefault();\n (event.currentTarget as HTMLElement).focus();\n }\n\n /** Empties every segment, with the `clear` reason. */\n clear(source?: Event) {\n this.commit(EMPTY_SEGMENTS, 'clear', source);\n this.focus();\n }\n\n /* ── The keyboard ────────────────────────────────────────────────────── */\n\n /**\n * A key the field acted on is the field's, and nothing above it sees it.\n *\n * Every application that binds a bare key guards it with \"is the target an\n * editable element\", and that guard tests for `input`, `textarea` and\n * `contenteditable`. A `div` with `role=\"spinbutton\"` is none of the three,\n * so a reader typing a date into this control fires every single-key\n * shortcut on the page: in Storybook, pressing `1` moved focus out of the\n * story and into the sidebar, and the date could not be typed at all.\n *\n * `preventDefault` alone does not help — a shortcut handler reads the key,\n * not the default. The event has to stop.\n */\n private consume(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n /**\n * The keys are handled on the host rather than on each segment, so a\n * consumer's own `(keydown)` on the same element still runs before the\n * family stops the event — which is the composition React gets by calling\n * the consumer's handler first.\n */\n protected onKeyDown(event: KeyboardEvent) {\n const segment = (event.target as HTMLElement | null)?.closest<HTMLElement>(\n '[data-part=\"segment\"]',\n );\n const name = segment?.dataset['field'] as DateFieldName | undefined;\n if (name === undefined) return;\n\n /* An inline direction is a physical pair of keys and a logical order, so\n the arrow that walks forward is the one pointing along the writing\n direction rather than the one pointing right. */\n const rtl = getComputedStyle(this.element).direction === 'rtl';\n const forward = rtl ? 'ArrowLeft' : 'ArrowRight';\n const backward = rtl ? 'ArrowRight' : 'ArrowLeft';\n\n if (event.key === forward) {\n this.consume(event);\n this.moveBy(name, 1);\n return;\n }\n if (event.key === backward) {\n this.consume(event);\n this.moveBy(name, -1);\n return;\n }\n\n if (!this.editable()) return;\n\n /**\n * `Alt` with an arrow is not this control's chord. `date-picker` opens its\n * calendar with `Alt`+`ArrowDown`, and a segment that stepped on it would\n * eat the only shortcut the surface has.\n */\n if (event.altKey) return;\n\n const held = this.segments();\n const reference = this.reference();\n\n switch (event.key) {\n case 'ArrowUp':\n this.consume(event);\n this.commit(stepSegment(held, name, 1, reference), 'keyboard', event);\n return;\n case 'ArrowDown':\n this.consume(event);\n this.commit(stepSegment(held, name, -1, reference), 'keyboard', event);\n return;\n case 'PageUp':\n this.consume(event);\n this.commit(stepSegment(held, name, PAGE_STEP[name], reference), 'keyboard', event);\n return;\n case 'PageDown':\n this.consume(event);\n this.commit(stepSegment(held, name, -PAGE_STEP[name], reference), 'keyboard', event);\n return;\n case 'Home':\n this.consume(event);\n this.commit(boundSegment(held, name, 'min', reference), 'keyboard', event);\n return;\n case 'End':\n this.consume(event);\n this.commit(boundSegment(held, name, 'max', reference), 'keyboard', event);\n return;\n case 'Backspace':\n case 'Delete':\n this.consume(event);\n this.commit(clearSegment(held, name), 'clear', event);\n return;\n default:\n break;\n }\n\n if (/^\\d$/.test(event.key)) {\n this.consume(event);\n const typed = typeDigit(held, name, Number(event.key), this.format(), reference);\n this.commit(typed.segments, 'keyboard', event);\n if (typed.advance) this.moveBy(name, 1);\n }\n }\n\n /**\n * A whole date, pasted. The locale's shape is read first and ISO 8601 after\n * it, so `12/03/2026` is December to an American and March to a Brazilian\n * while `2026-09-09` is the ninth to both.\n */\n protected onPaste(event: ClipboardEvent) {\n if (!this.editable()) return;\n const text = event.clipboardData?.getData('text/plain') ?? '';\n const month = this.monthly() ? parseISOYearMonth(text) : null;\n const parsed =\n month === null ? this.format().parse(text) : plainDate(month.year, month.month, 1);\n if (parsed === null) return;\n event.preventDefault();\n this.commit(segmentsOf(parsed), 'keyboard', event);\n }\n\n /** A run of typed digits ends when focus leaves, and a short year resolves. */\n protected onBlur() {\n this.activeField.set(undefined);\n this.onTouchedFn();\n const held = this.segments();\n if (held.typing === null) return;\n this.commit(commitTyping(held, this.format(), this.reference()), 'blur', undefined);\n }\n\n /* ── What the template reads ─────────────────────────────────────────── */\n\n protected valueOf(field: DateFieldName): number | null {\n return this.segments()[field];\n }\n\n protected rangeOf(field: DateFieldName) {\n const held = this.segments();\n const reference = this.reference();\n return fieldRange(field, {\n year: held.year ?? reference.year,\n month: held.month ?? reference.month,\n });\n }\n\n /** What a reader hears instead of the number: a month says its own name. */\n protected spokenOf(field: DateFieldName): string | null {\n const raw = this.segments()[field];\n if (raw === null) return null;\n if (field !== 'month') return String(raw);\n return this.format().monthNames('long')[raw - 1] ?? String(raw);\n }\n\n /**\n * What one field shows.\n *\n * A finished value is padded to the field's width, so the three columns hold\n * their place: `9` and `09` occupy the same box and the separators never step\n * sideways. A value still being typed is **not** padded — it is the digits\n * the reader has put in, in the order they put them. Padded, a year on its\n * way to 2026 read `0002`, then `0020`, then `0202`, which is three numbers\n * nobody typed.\n */\n protected textOf(field: DateFieldName): string {\n const held = this.segments();\n const raw = held[field];\n if (raw === null) {\n return this.format().pattern.find((part) => part.type === field)?.value ?? '';\n }\n\n const typing = held.typing;\n if (typing !== null && typing.field === field) {\n return String(raw).padStart(typing.digits, '0');\n }\n\n const reference = this.reference();\n return this.format().formatField(\n {\n year: held.year ?? reference.year,\n month: held.month ?? reference.month,\n day: held.day ?? reference.day,\n },\n field,\n );\n }\n\n /** Exactly one segment is in the tab sequence, which is the roving model. */\n protected tabIndexOf(field: DateFieldName): number {\n if (this.resolvedDisabled() === true) return -1;\n return field === (this.activeField() ?? this.fields()[0]) ? 0 : -1;\n }\n\n /* ── The machinery ───────────────────────────────────────────────────── */\n\n private focusField(name: DateFieldName) {\n this.activeField.set(name);\n this.element.querySelector<HTMLElement>(`[data-part=\"segment\"][data-field=\"${name}\"]`)?.focus();\n }\n\n private moveBy(name: DateFieldName, step: number) {\n const next = this.fields()[this.fields().indexOf(name) + step];\n if (next !== undefined) this.focusField(next);\n }\n\n /**\n * Moves the segments, and asks before the derived value moves with them.\n *\n * A run of typed digits moves the display and not the value: typing `2026`\n * into a year passes through 2, 20 and 202 on the way, and a request per\n * digit would ask a consumer's server about the year 2. The request is\n * emitted when the run ends.\n */\n private commit(given: SegmentState, reason: ChangeReason, source: Event | undefined) {\n /* A month has no day segment to fill, so the day is the first of it. */\n const next = this.monthly() && given.day !== 1 ? { ...given, day: 1, intendedDay: 1 } : given;\n const previous = this.date();\n this.segments.set(next);\n if (next.typing !== null) return;\n\n const nextValue = dateOf(next);\n let cancelled = false;\n const state = createControllable<PlainDate | null>({\n controlled: undefined,\n initial: previous,\n equals: isSameDate,\n onRequest: (request) => {\n this.valueChange.emit({ ...request, segments: next });\n cancelled = request.cancelled;\n },\n });\n state.request(nextValue, reason, source);\n\n if (cancelled) return;\n this.onChangeFn(nextValue);\n this.onValidatorChangeFn();\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * An adornment before the date in the reading direction: a calendar mark, a\n * label, an icon. Named for the direction rather than for a side, so the same\n * markup puts the mark before the date in both directions.\n *\n * It is a directive on the consumer's own element, so an `icon`, a `kbd` or a\n * `span` all work and none of them loses its own semantics. The stylesheet\n * sizes any icon inside it from the control's own glyph scale.\n */\n@Directive({\n selector: '[slDateFieldStart]',\n standalone: true,\n exportAs: 'slDateFieldStart',\n host: { 'data-part': 'start', 'data-part-start': '' },\n})\nexport class SlDateFieldStart {}\n\n/** An adornment after the date in the reading direction. */\n@Directive({\n selector: '[slDateFieldEnd]',\n standalone: true,\n exportAs: 'slDateFieldEnd',\n host: { 'data-part': 'end', 'data-part-end': '' },\n})\nexport class SlDateFieldEnd {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}