@angular/material 17.1.0-next.1 → 17.1.0-next.3

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 (386) hide show
  1. package/button/_button-base.scss +14 -2
  2. package/button/_button-theme.scss +11 -11
  3. package/button/_fab-theme.scss +1 -8
  4. package/button/index.d.ts +31 -2
  5. package/checkbox/_checkbox-theme.scss +5 -10
  6. package/checkbox/index.d.ts +28 -5
  7. package/core/index.d.ts +18 -2
  8. package/core/internal-form-field/_internal-form-field-theme.scss +37 -0
  9. package/core/tokens/m2/mat/_fab.scss +3 -0
  10. package/core/tokens/m2/mat/_filled-button.scss +3 -0
  11. package/core/tokens/m2/mat/_icon-button.scss +3 -0
  12. package/core/tokens/m2/mat/_outlined-button.scss +3 -0
  13. package/core/tokens/m2/mat/_protected-button.scss +3 -0
  14. package/core/tokens/m2/mat/_tab-header.scss +6 -1
  15. package/core/tokens/m2/mat/_text-button.scss +3 -0
  16. package/core/tokens/m2/mdc/_filled-button.scss +7 -6
  17. package/core/tokens/m2/mdc/_form-field.scss +46 -0
  18. package/core/tokens/m2/mdc/_outlined-button.scss +7 -7
  19. package/core/tokens/m2/mdc/_protected-button.scss +7 -6
  20. package/core/tokens/m2/mdc/_text-button.scss +7 -8
  21. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  22. package/esm2022/autocomplete/autocomplete-trigger.mjs +4 -4
  23. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  24. package/esm2022/autocomplete/module.mjs +5 -5
  25. package/esm2022/autocomplete/testing/autocomplete-harness.mjs +1 -1
  26. package/esm2022/badge/badge-module.mjs +5 -5
  27. package/esm2022/badge/badge.mjs +4 -4
  28. package/esm2022/badge/testing/badge-harness.mjs +1 -1
  29. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  30. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  31. package/esm2022/bottom-sheet/bottom-sheet-ref.mjs +1 -1
  32. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  33. package/esm2022/button/button-base.mjs +46 -19
  34. package/esm2022/button/button.mjs +9 -9
  35. package/esm2022/button/fab.mjs +17 -17
  36. package/esm2022/button/icon-button.mjs +9 -9
  37. package/esm2022/button/module.mjs +5 -5
  38. package/esm2022/button/public-api.mjs +2 -1
  39. package/esm2022/button/testing/button-harness.mjs +4 -3
  40. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  41. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  42. package/esm2022/button-toggle/testing/button-toggle-harness.mjs +1 -1
  43. package/esm2022/card/card.mjs +43 -43
  44. package/esm2022/card/module.mjs +5 -5
  45. package/esm2022/checkbox/checkbox-required-validator.mjs +11 -5
  46. package/esm2022/checkbox/checkbox.mjs +39 -7
  47. package/esm2022/checkbox/module.mjs +16 -13
  48. package/esm2022/checkbox/testing/checkbox-harness.mjs +1 -1
  49. package/esm2022/chips/chip-action.mjs +4 -4
  50. package/esm2022/chips/chip-edit-input.mjs +4 -4
  51. package/esm2022/chips/chip-grid.mjs +4 -4
  52. package/esm2022/chips/chip-icons.mjs +10 -10
  53. package/esm2022/chips/chip-input.mjs +4 -4
  54. package/esm2022/chips/chip-listbox.mjs +4 -5
  55. package/esm2022/chips/chip-option.mjs +4 -4
  56. package/esm2022/chips/chip-row.mjs +4 -4
  57. package/esm2022/chips/chip-set.mjs +4 -4
  58. package/esm2022/chips/chip.mjs +5 -4
  59. package/esm2022/chips/module.mjs +5 -5
  60. package/esm2022/chips/testing/chip-edit-input-harness.mjs +1 -1
  61. package/esm2022/chips/testing/chip-input-harness.mjs +1 -1
  62. package/esm2022/chips/testing/chip-listbox-harness.mjs +1 -1
  63. package/esm2022/chips/testing/chip-option-harness.mjs +1 -1
  64. package/esm2022/chips/testing/chip-row-harness.mjs +1 -1
  65. package/esm2022/core/common-behaviors/color.mjs +1 -1
  66. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  67. package/esm2022/core/common-behaviors/error-state.mjs +1 -1
  68. package/esm2022/core/common-behaviors/initialized.mjs +1 -1
  69. package/esm2022/core/datetime/date-adapter.mjs +1 -1
  70. package/esm2022/core/datetime/index.mjs +9 -9
  71. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  72. package/esm2022/core/error/error-options.mjs +7 -7
  73. package/esm2022/core/internal-form-field/internal-form-field.mjs +29 -0
  74. package/esm2022/core/line/line.mjs +8 -8
  75. package/esm2022/core/option/index.mjs +5 -5
  76. package/esm2022/core/option/optgroup.mjs +4 -4
  77. package/esm2022/core/option/option.mjs +4 -4
  78. package/esm2022/core/private/ripple-loader.mjs +30 -12
  79. package/esm2022/core/public-api.mjs +2 -1
  80. package/esm2022/core/ripple/index.mjs +5 -5
  81. package/esm2022/core/ripple/ripple-event-manager.mjs +1 -1
  82. package/esm2022/core/ripple/ripple-renderer.mjs +1 -1
  83. package/esm2022/core/ripple/ripple.mjs +4 -4
  84. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  85. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  86. package/esm2022/core/version.mjs +1 -1
  87. package/esm2022/datepicker/aria-accessible-name.mjs +1 -1
  88. package/esm2022/datepicker/calendar-body.mjs +4 -4
  89. package/esm2022/datepicker/calendar.mjs +7 -7
  90. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  91. package/esm2022/datepicker/date-range-input.mjs +4 -4
  92. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  93. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  94. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  95. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  96. package/esm2022/datepicker/datepicker-base.mjs +7 -7
  97. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  98. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  99. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  100. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  101. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  102. package/esm2022/datepicker/datepicker.mjs +4 -4
  103. package/esm2022/datepicker/month-view.mjs +4 -4
  104. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  105. package/esm2022/datepicker/testing/calendar-harness.mjs +1 -1
  106. package/esm2022/datepicker/testing/datepicker-input-harness-base.mjs +1 -1
  107. package/esm2022/datepicker/testing/datepicker-input-harness.mjs +1 -1
  108. package/esm2022/datepicker/testing/datepicker-trigger-harness-base.mjs +1 -1
  109. package/esm2022/datepicker/year-view.mjs +4 -4
  110. package/esm2022/dialog/dialog-container.mjs +4 -4
  111. package/esm2022/dialog/dialog-content-directives.mjs +13 -13
  112. package/esm2022/dialog/dialog-ref.mjs +1 -1
  113. package/esm2022/dialog/dialog.mjs +4 -4
  114. package/esm2022/dialog/module.mjs +5 -5
  115. package/esm2022/dialog/testing/dialog-opener.mjs +1 -1
  116. package/esm2022/divider/divider-module.mjs +5 -5
  117. package/esm2022/divider/divider.mjs +4 -4
  118. package/esm2022/expansion/accordion.mjs +4 -4
  119. package/esm2022/expansion/expansion-module.mjs +5 -5
  120. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  121. package/esm2022/expansion/expansion-panel-header.mjs +10 -10
  122. package/esm2022/expansion/expansion-panel.mjs +7 -7
  123. package/esm2022/expansion/testing/expansion-harness.mjs +1 -1
  124. package/esm2022/form-field/directives/error.mjs +4 -4
  125. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  126. package/esm2022/form-field/directives/hint.mjs +4 -4
  127. package/esm2022/form-field/directives/label.mjs +4 -4
  128. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  129. package/esm2022/form-field/directives/notched-outline.mjs +4 -4
  130. package/esm2022/form-field/directives/prefix.mjs +4 -4
  131. package/esm2022/form-field/directives/suffix.mjs +4 -4
  132. package/esm2022/form-field/form-field-control.mjs +4 -4
  133. package/esm2022/form-field/form-field.mjs +4 -4
  134. package/esm2022/form-field/module.mjs +5 -5
  135. package/esm2022/form-field/testing/form-field-harness.mjs +1 -1
  136. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  137. package/esm2022/grid-list/grid-list.mjs +4 -4
  138. package/esm2022/grid-list/grid-tile.mjs +16 -16
  139. package/esm2022/grid-list/testing/grid-list-harness.mjs +1 -1
  140. package/esm2022/grid-list/tile-coordinator.mjs +1 -1
  141. package/esm2022/grid-list/tile-styler.mjs +1 -1
  142. package/esm2022/icon/icon-module.mjs +5 -5
  143. package/esm2022/icon/icon-registry.mjs +4 -4
  144. package/esm2022/icon/icon.mjs +4 -4
  145. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  146. package/esm2022/icon/testing/icon-harness.mjs +1 -1
  147. package/esm2022/icon/trusted-types.mjs +1 -1
  148. package/esm2022/input/input.mjs +4 -4
  149. package/esm2022/input/module.mjs +5 -5
  150. package/esm2022/input/testing/input-harness.mjs +1 -1
  151. package/esm2022/input/testing/native-select-harness.mjs +1 -1
  152. package/esm2022/list/action-list.mjs +4 -4
  153. package/esm2022/list/list-base.mjs +7 -7
  154. package/esm2022/list/list-item-sections.mjs +19 -19
  155. package/esm2022/list/list-module.mjs +5 -5
  156. package/esm2022/list/list-option.mjs +4 -4
  157. package/esm2022/list/list.mjs +7 -7
  158. package/esm2022/list/nav-list.mjs +4 -4
  159. package/esm2022/list/selection-list.mjs +4 -4
  160. package/esm2022/list/subheader.mjs +4 -4
  161. package/esm2022/list/testing/list-harness-base.mjs +1 -1
  162. package/esm2022/list/testing/list-item-harness-base.mjs +1 -1
  163. package/esm2022/list/testing/selection-list-harness.mjs +1 -1
  164. package/esm2022/menu/menu-content.mjs +4 -4
  165. package/esm2022/menu/menu-item.mjs +4 -4
  166. package/esm2022/menu/menu-trigger.mjs +4 -4
  167. package/esm2022/menu/menu.mjs +4 -4
  168. package/esm2022/menu/module.mjs +5 -5
  169. package/esm2022/menu/testing/menu-harness.mjs +1 -1
  170. package/esm2022/paginator/module.mjs +5 -5
  171. package/esm2022/paginator/paginator-intl.mjs +4 -4
  172. package/esm2022/paginator/paginator.mjs +4 -4
  173. package/esm2022/paginator/testing/paginator-harness.mjs +1 -1
  174. package/esm2022/progress-bar/module.mjs +5 -5
  175. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  176. package/esm2022/progress-spinner/module.mjs +5 -5
  177. package/esm2022/progress-spinner/progress-spinner.mjs +4 -4
  178. package/esm2022/radio/module.mjs +5 -5
  179. package/esm2022/radio/radio.mjs +12 -9
  180. package/esm2022/radio/testing/radio-harness.mjs +1 -1
  181. package/esm2022/select/module.mjs +5 -5
  182. package/esm2022/select/select.mjs +7 -7
  183. package/esm2022/select/testing/select-harness.mjs +1 -1
  184. package/esm2022/sidenav/drawer.mjs +10 -10
  185. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  186. package/esm2022/sidenav/sidenav.mjs +10 -10
  187. package/esm2022/sidenav/testing/drawer-harness.mjs +1 -1
  188. package/esm2022/slide-toggle/module.mjs +16 -22
  189. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +11 -4
  190. package/esm2022/slide-toggle/slide-toggle.mjs +39 -8
  191. package/esm2022/slide-toggle/testing/slide-toggle-harness.mjs +1 -1
  192. package/esm2022/slider/module.mjs +5 -5
  193. package/esm2022/slider/slider-input.mjs +9 -8
  194. package/esm2022/slider/slider-thumb.mjs +4 -4
  195. package/esm2022/slider/slider.mjs +6 -6
  196. package/esm2022/slider/testing/slider-harness.mjs +1 -1
  197. package/esm2022/snack-bar/module.mjs +5 -5
  198. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  199. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  200. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  201. package/esm2022/snack-bar/snack-bar-ref.mjs +1 -1
  202. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  203. package/esm2022/snack-bar/testing/snack-bar-harness.mjs +1 -1
  204. package/esm2022/sort/sort-header-intl.mjs +4 -4
  205. package/esm2022/sort/sort-header.mjs +4 -4
  206. package/esm2022/sort/sort-module.mjs +5 -5
  207. package/esm2022/sort/sort.mjs +4 -4
  208. package/esm2022/sort/testing/sort-harness.mjs +1 -1
  209. package/esm2022/sort/testing/sort-header-harness.mjs +1 -1
  210. package/esm2022/stepper/step-content.mjs +4 -4
  211. package/esm2022/stepper/step-header.mjs +4 -4
  212. package/esm2022/stepper/step-label.mjs +4 -4
  213. package/esm2022/stepper/stepper-button.mjs +7 -7
  214. package/esm2022/stepper/stepper-icon.mjs +4 -4
  215. package/esm2022/stepper/stepper-intl.mjs +4 -4
  216. package/esm2022/stepper/stepper-module.mjs +5 -5
  217. package/esm2022/stepper/stepper.mjs +7 -7
  218. package/esm2022/stepper/testing/step-harness.mjs +1 -1
  219. package/esm2022/stepper/testing/stepper-harness.mjs +1 -1
  220. package/esm2022/table/cell.mjs +22 -22
  221. package/esm2022/table/module.mjs +5 -5
  222. package/esm2022/table/row.mjs +22 -22
  223. package/esm2022/table/table-data-source.mjs +1 -1
  224. package/esm2022/table/table.mjs +7 -7
  225. package/esm2022/table/testing/cell-harness.mjs +1 -1
  226. package/esm2022/table/testing/table-harness.mjs +1 -1
  227. package/esm2022/table/text-column.mjs +4 -4
  228. package/esm2022/tabs/ink-bar.mjs +1 -1
  229. package/esm2022/tabs/module.mjs +5 -5
  230. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  231. package/esm2022/tabs/tab-body.mjs +7 -7
  232. package/esm2022/tabs/tab-content.mjs +4 -4
  233. package/esm2022/tabs/tab-group.mjs +14 -5
  234. package/esm2022/tabs/tab-header.mjs +5 -5
  235. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  236. package/esm2022/tabs/tab-label.mjs +4 -4
  237. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +11 -11
  238. package/esm2022/tabs/tab.mjs +4 -4
  239. package/esm2022/tabs/testing/tab-group-harness.mjs +1 -1
  240. package/esm2022/tabs/testing/tab-nav-bar-harness.mjs +1 -1
  241. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  242. package/esm2022/toolbar/toolbar.mjs +7 -7
  243. package/esm2022/tooltip/module.mjs +5 -5
  244. package/esm2022/tooltip/tooltip.mjs +7 -7
  245. package/esm2022/tree/data-source/flat-data-source.mjs +1 -1
  246. package/esm2022/tree/node.mjs +10 -10
  247. package/esm2022/tree/outlet.mjs +4 -4
  248. package/esm2022/tree/padding.mjs +4 -4
  249. package/esm2022/tree/testing/node-harness.mjs +1 -1
  250. package/esm2022/tree/testing/tree-harness.mjs +1 -1
  251. package/esm2022/tree/toggle.mjs +4 -4
  252. package/esm2022/tree/tree-module.mjs +5 -5
  253. package/esm2022/tree/tree.mjs +4 -4
  254. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  255. package/fesm2022/autocomplete.mjs +13 -13
  256. package/fesm2022/autocomplete.mjs.map +1 -1
  257. package/fesm2022/badge/testing.mjs.map +1 -1
  258. package/fesm2022/badge.mjs +7 -7
  259. package/fesm2022/badge.mjs.map +1 -1
  260. package/fesm2022/bottom-sheet.mjs +10 -10
  261. package/fesm2022/bottom-sheet.mjs.map +1 -1
  262. package/fesm2022/button/testing.mjs +3 -2
  263. package/fesm2022/button/testing.mjs.map +1 -1
  264. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  265. package/fesm2022/button-toggle.mjs +10 -10
  266. package/fesm2022/button-toggle.mjs.map +1 -1
  267. package/fesm2022/button.mjs +82 -55
  268. package/fesm2022/button.mjs.map +1 -1
  269. package/fesm2022/card.mjs +46 -46
  270. package/fesm2022/card.mjs.map +1 -1
  271. package/fesm2022/checkbox/testing.mjs.map +1 -1
  272. package/fesm2022/checkbox.mjs +61 -20
  273. package/fesm2022/checkbox.mjs.map +1 -1
  274. package/fesm2022/chips/testing.mjs.map +1 -1
  275. package/fesm2022/chips.mjs +41 -41
  276. package/fesm2022/chips.mjs.map +1 -1
  277. package/fesm2022/core.mjs +103 -65
  278. package/fesm2022/core.mjs.map +1 -1
  279. package/fesm2022/datepicker/testing.mjs.map +1 -1
  280. package/fesm2022/datepicker.mjs +82 -82
  281. package/fesm2022/datepicker.mjs.map +1 -1
  282. package/fesm2022/dialog/testing.mjs.map +1 -1
  283. package/fesm2022/dialog.mjs +22 -22
  284. package/fesm2022/dialog.mjs.map +1 -1
  285. package/fesm2022/divider.mjs +7 -7
  286. package/fesm2022/divider.mjs.map +1 -1
  287. package/fesm2022/expansion/testing.mjs.map +1 -1
  288. package/fesm2022/expansion.mjs +25 -25
  289. package/fesm2022/expansion.mjs.map +1 -1
  290. package/fesm2022/form-field/testing.mjs.map +1 -1
  291. package/fesm2022/form-field.mjs +34 -34
  292. package/fesm2022/form-field.mjs.map +1 -1
  293. package/fesm2022/grid-list/testing.mjs.map +1 -1
  294. package/fesm2022/grid-list.mjs +22 -22
  295. package/fesm2022/grid-list.mjs.map +1 -1
  296. package/fesm2022/icon/testing.mjs +7 -7
  297. package/fesm2022/icon/testing.mjs.map +1 -1
  298. package/fesm2022/icon.mjs +10 -10
  299. package/fesm2022/icon.mjs.map +1 -1
  300. package/fesm2022/input/testing.mjs.map +1 -1
  301. package/fesm2022/input.mjs +7 -7
  302. package/fesm2022/input.mjs.map +1 -1
  303. package/fesm2022/list/testing.mjs.map +1 -1
  304. package/fesm2022/list.mjs +49 -49
  305. package/fesm2022/list.mjs.map +1 -1
  306. package/fesm2022/menu/testing.mjs.map +1 -1
  307. package/fesm2022/menu.mjs +16 -16
  308. package/fesm2022/menu.mjs.map +1 -1
  309. package/fesm2022/paginator/testing.mjs.map +1 -1
  310. package/fesm2022/paginator.mjs +10 -10
  311. package/fesm2022/paginator.mjs.map +1 -1
  312. package/fesm2022/progress-bar.mjs +7 -7
  313. package/fesm2022/progress-bar.mjs.map +1 -1
  314. package/fesm2022/progress-spinner.mjs +7 -7
  315. package/fesm2022/progress-spinner.mjs.map +1 -1
  316. package/fesm2022/radio/testing.mjs.map +1 -1
  317. package/fesm2022/radio.mjs +16 -13
  318. package/fesm2022/radio.mjs.map +1 -1
  319. package/fesm2022/select/testing.mjs.map +1 -1
  320. package/fesm2022/select.mjs +10 -10
  321. package/fesm2022/select.mjs.map +1 -1
  322. package/fesm2022/sidenav/testing.mjs.map +1 -1
  323. package/fesm2022/sidenav.mjs +22 -22
  324. package/fesm2022/sidenav.mjs.map +1 -1
  325. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  326. package/fesm2022/slide-toggle.mjs +61 -29
  327. package/fesm2022/slide-toggle.mjs.map +1 -1
  328. package/fesm2022/slider/testing.mjs.map +1 -1
  329. package/fesm2022/slider.mjs +20 -19
  330. package/fesm2022/slider.mjs.map +1 -1
  331. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  332. package/fesm2022/snack-bar.mjs +22 -22
  333. package/fesm2022/snack-bar.mjs.map +1 -1
  334. package/fesm2022/sort/testing.mjs.map +1 -1
  335. package/fesm2022/sort.mjs +13 -13
  336. package/fesm2022/sort.mjs.map +1 -1
  337. package/fesm2022/stepper/testing.mjs.map +1 -1
  338. package/fesm2022/stepper.mjs +31 -31
  339. package/fesm2022/stepper.mjs.map +1 -1
  340. package/fesm2022/table/testing.mjs.map +1 -1
  341. package/fesm2022/table.mjs +55 -55
  342. package/fesm2022/table.mjs.map +1 -1
  343. package/fesm2022/tabs/testing.mjs.map +1 -1
  344. package/fesm2022/tabs.mjs +52 -43
  345. package/fesm2022/tabs.mjs.map +1 -1
  346. package/fesm2022/toolbar.mjs +10 -10
  347. package/fesm2022/toolbar.mjs.map +1 -1
  348. package/fesm2022/tooltip.mjs +10 -10
  349. package/fesm2022/tooltip.mjs.map +1 -1
  350. package/fesm2022/tree/testing.mjs.map +1 -1
  351. package/fesm2022/tree.mjs +25 -25
  352. package/fesm2022/tree.mjs.map +1 -1
  353. package/package.json +2 -2
  354. package/prebuilt-themes/deeppurple-amber.css +1 -1
  355. package/prebuilt-themes/indigo-pink.css +1 -1
  356. package/prebuilt-themes/pink-bluegrey.css +1 -1
  357. package/prebuilt-themes/purple-green.css +1 -1
  358. package/radio/_radio-theme.scss +5 -10
  359. package/radio/index.d.ts +2 -0
  360. package/schematics/ng-add/fonts/material-fonts.js +1 -1
  361. package/schematics/ng-add/fonts/material-fonts.mjs +1 -1
  362. package/schematics/ng-add/index.js +2 -2
  363. package/schematics/ng-add/index.mjs +2 -2
  364. package/schematics/ng-add/package-config.js +1 -1
  365. package/schematics/ng-add/package-config.mjs +1 -1
  366. package/schematics/ng-add/setup-project.js +1 -1
  367. package/schematics/ng-add/setup-project.mjs +1 -1
  368. package/schematics/ng-add/theming/theming.js +1 -1
  369. package/schematics/ng-add/theming/theming.mjs +1 -1
  370. package/schematics/ng-generate/address-form/index.js +1 -1
  371. package/schematics/ng-generate/address-form/index.mjs +1 -1
  372. package/schematics/ng-generate/dashboard/index.js +1 -1
  373. package/schematics/ng-generate/dashboard/index.mjs +1 -1
  374. package/schematics/ng-generate/mdc-migration/index_bundled.js +202 -193
  375. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  376. package/schematics/ng-generate/navigation/index.js +1 -1
  377. package/schematics/ng-generate/navigation/index.mjs +1 -1
  378. package/schematics/ng-generate/table/index.js +1 -1
  379. package/schematics/ng-generate/table/index.mjs +1 -1
  380. package/schematics/ng-generate/tree/index.js +1 -1
  381. package/schematics/ng-generate/tree/index.mjs +1 -1
  382. package/schematics/ng-update/index_bundled.js.map +1 -1
  383. package/slide-toggle/_slide-toggle-theme.scss +5 -4
  384. package/slide-toggle/index.d.ts +30 -6
  385. package/tabs/_tabs-common.scss +20 -1
  386. package/tabs/index.d.ts +5 -1
@@ -9854,6 +9854,37 @@ function getInjectFn(target) {
9854
9854
  return Identifiers.inject;
9855
9855
  }
9856
9856
  }
9857
+ var TagContentType;
9858
+ (function(TagContentType2) {
9859
+ TagContentType2[TagContentType2["RAW_TEXT"] = 0] = "RAW_TEXT";
9860
+ TagContentType2[TagContentType2["ESCAPABLE_RAW_TEXT"] = 1] = "ESCAPABLE_RAW_TEXT";
9861
+ TagContentType2[TagContentType2["PARSABLE_DATA"] = 2] = "PARSABLE_DATA";
9862
+ })(TagContentType || (TagContentType = {}));
9863
+ function splitNsName(elementName) {
9864
+ if (elementName[0] != ":") {
9865
+ return [null, elementName];
9866
+ }
9867
+ const colonIndex = elementName.indexOf(":", 1);
9868
+ if (colonIndex === -1) {
9869
+ throw new Error(`Unsupported format "${elementName}" expecting ":namespace:name"`);
9870
+ }
9871
+ return [elementName.slice(1, colonIndex), elementName.slice(colonIndex + 1)];
9872
+ }
9873
+ function isNgContainer(tagName) {
9874
+ return splitNsName(tagName)[1] === "ng-container";
9875
+ }
9876
+ function isNgContent(tagName) {
9877
+ return splitNsName(tagName)[1] === "ng-content";
9878
+ }
9879
+ function isNgTemplate(tagName) {
9880
+ return splitNsName(tagName)[1] === "ng-template";
9881
+ }
9882
+ function getNsPrefix(fullName) {
9883
+ return fullName === null ? null : splitNsName(fullName)[0];
9884
+ }
9885
+ function mergeNsAndName(prefix, localName) {
9886
+ return prefix ? `:${prefix}:${localName}` : localName;
9887
+ }
9857
9888
  var Comment$1 = class {
9858
9889
  constructor(value, sourceSpan) {
9859
9890
  this.value = value;
@@ -10686,6 +10717,23 @@ var DefinitionMap = class {
10686
10717
  return literalMap(this.values);
10687
10718
  }
10688
10719
  };
10720
+ function createCssSelectorFromNode(node) {
10721
+ const elementName = node instanceof Element$1 ? node.name : "ng-template";
10722
+ const attributes = getAttrsForDirectiveMatching(node);
10723
+ const cssSelector = new CssSelector();
10724
+ const elementNameNoNs = splitNsName(elementName)[1];
10725
+ cssSelector.setElement(elementNameNoNs);
10726
+ Object.getOwnPropertyNames(attributes).forEach((name) => {
10727
+ const nameNoNs = splitNsName(name)[1];
10728
+ const value = attributes[name];
10729
+ cssSelector.addAttribute(nameNoNs, value);
10730
+ if (name.toLowerCase() === "class") {
10731
+ const classes = value.trim().split(/\s+/);
10732
+ classes.forEach((className) => cssSelector.addClassName(className));
10733
+ }
10734
+ });
10735
+ return cssSelector;
10736
+ }
10689
10737
  function getAttrsForDirectiveMatching(elOrTpl) {
10690
10738
  const attributesMap = {};
10691
10739
  if (elOrTpl instanceof Template && elOrTpl.tagName !== "ng-template") {
@@ -13474,6 +13522,11 @@ var DerivedRepeaterVarIdentity;
13474
13522
  DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Even"] = 2] = "Even";
13475
13523
  DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Odd"] = 3] = "Odd";
13476
13524
  })(DerivedRepeaterVarIdentity || (DerivedRepeaterVarIdentity = {}));
13525
+ var I18nContextKind;
13526
+ (function(I18nContextKind2) {
13527
+ I18nContextKind2[I18nContextKind2["RootI18n"] = 0] = "RootI18n";
13528
+ I18nContextKind2[I18nContextKind2["Icu"] = 1] = "Icu";
13529
+ })(I18nContextKind || (I18nContextKind = {}));
13477
13530
  var ConsumesSlot = Symbol("ConsumesSlot");
13478
13531
  var DependsOnSlotContext = Symbol("DependsOnSlotContext");
13479
13532
  var ConsumesVarsTrait = Symbol("ConsumesVars");
@@ -14945,9 +14998,10 @@ function createIcuEndOp(xref) {
14945
14998
  xref
14946
14999
  }, NEW_OP);
14947
15000
  }
14948
- function createI18nContextOp(xref, i18nBlock, message, sourceSpan) {
15001
+ function createI18nContextOp(contextKind, xref, i18nBlock, message, sourceSpan) {
14949
15002
  return __spreadValues({
14950
15003
  kind: OpKind.I18nContext,
15004
+ contextKind,
14951
15005
  xref,
14952
15006
  i18nBlock,
14953
15007
  message,
@@ -15118,7 +15172,6 @@ function needsApplication(i18nContexts, op) {
15118
15172
  }
15119
15173
  function assignI18nSlotDependencies(job) {
15120
15174
  const i18nLastSlotConsumers = /* @__PURE__ */ new Map();
15121
- const i18nContexts = /* @__PURE__ */ new Map();
15122
15175
  let lastSlotConsumer = null;
15123
15176
  let currentI18nOp = null;
15124
15177
  for (const unit of job.units) {
@@ -15134,15 +15187,11 @@ function assignI18nSlotDependencies(job) {
15134
15187
  i18nLastSlotConsumers.set(currentI18nOp.xref, lastSlotConsumer);
15135
15188
  currentI18nOp = null;
15136
15189
  break;
15137
- case OpKind.I18nContext:
15138
- i18nContexts.set(op.xref, op);
15139
- break;
15140
15190
  }
15141
15191
  }
15142
15192
  for (const op of unit.update) {
15143
15193
  if (op.kind === OpKind.I18nExpression) {
15144
- const i18nContext = i18nContexts.get(op.context);
15145
- op.target = i18nLastSlotConsumers.get(i18nContext.i18nBlock);
15194
+ op.target = i18nLastSlotConsumers.get(op.target);
15146
15195
  }
15147
15196
  }
15148
15197
  }
@@ -15379,37 +15428,6 @@ function generateConditionalExpressions(job) {
15379
15428
  }
15380
15429
  }
15381
15430
  }
15382
- var TagContentType;
15383
- (function(TagContentType2) {
15384
- TagContentType2[TagContentType2["RAW_TEXT"] = 0] = "RAW_TEXT";
15385
- TagContentType2[TagContentType2["ESCAPABLE_RAW_TEXT"] = 1] = "ESCAPABLE_RAW_TEXT";
15386
- TagContentType2[TagContentType2["PARSABLE_DATA"] = 2] = "PARSABLE_DATA";
15387
- })(TagContentType || (TagContentType = {}));
15388
- function splitNsName(elementName) {
15389
- if (elementName[0] != ":") {
15390
- return [null, elementName];
15391
- }
15392
- const colonIndex = elementName.indexOf(":", 1);
15393
- if (colonIndex === -1) {
15394
- throw new Error(`Unsupported format "${elementName}" expecting ":namespace:name"`);
15395
- }
15396
- return [elementName.slice(1, colonIndex), elementName.slice(colonIndex + 1)];
15397
- }
15398
- function isNgContainer(tagName) {
15399
- return splitNsName(tagName)[1] === "ng-container";
15400
- }
15401
- function isNgContent(tagName) {
15402
- return splitNsName(tagName)[1] === "ng-content";
15403
- }
15404
- function isNgTemplate(tagName) {
15405
- return splitNsName(tagName)[1] === "ng-template";
15406
- }
15407
- function getNsPrefix(fullName) {
15408
- return fullName === null ? null : splitNsName(fullName)[0];
15409
- }
15410
- function mergeNsAndName(prefix, localName) {
15411
- return prefix ? `:${prefix}:${localName}` : localName;
15412
- }
15413
15431
  var BINARY_OPERATORS = /* @__PURE__ */ new Map([
15414
15432
  ["&&", BinaryOperator.And],
15415
15433
  [">", BinaryOperator.Bigger],
@@ -15617,16 +15635,20 @@ function createDeferDepsFns(job) {
15617
15635
  }
15618
15636
  }
15619
15637
  function createI18nContexts(job) {
15638
+ const rootContexts = /* @__PURE__ */ new Map();
15620
15639
  let currentI18nOp = null;
15621
15640
  let xref;
15622
15641
  for (const unit of job.units) {
15623
15642
  for (const op of unit.create) {
15624
15643
  switch (op.kind) {
15625
15644
  case OpKind.I18nStart:
15626
- xref = job.allocateXrefId();
15627
- unit.create.push(createI18nContextOp(xref, op.xref, op.message, null));
15628
- op.context = xref;
15629
15645
  currentI18nOp = op;
15646
+ if (op.xref === op.root) {
15647
+ xref = job.allocateXrefId();
15648
+ unit.create.push(createI18nContextOp(I18nContextKind.RootI18n, xref, op.xref, op.message, null));
15649
+ op.context = xref;
15650
+ rootContexts.set(op.xref, xref);
15651
+ }
15630
15652
  break;
15631
15653
  case OpKind.I18nEnd:
15632
15654
  currentI18nOp = null;
@@ -15637,7 +15659,7 @@ function createI18nContexts(job) {
15637
15659
  }
15638
15660
  if (op.message.id !== currentI18nOp.message.id) {
15639
15661
  xref = job.allocateXrefId();
15640
- unit.create.push(createI18nContextOp(xref, currentI18nOp.xref, op.message, null));
15662
+ unit.create.push(createI18nContextOp(I18nContextKind.Icu, xref, currentI18nOp.xref, op.message, null));
15641
15663
  op.context = xref;
15642
15664
  } else {
15643
15665
  op.context = currentI18nOp.context;
@@ -15646,6 +15668,13 @@ function createI18nContexts(job) {
15646
15668
  }
15647
15669
  }
15648
15670
  }
15671
+ for (const unit of job.units) {
15672
+ for (const op of unit.create) {
15673
+ if (op.kind === OpKind.I18nStart && op.xref !== op.root) {
15674
+ op.context = rootContexts.get(op.root);
15675
+ }
15676
+ }
15677
+ }
15649
15678
  }
15650
15679
  function configureDeferInstructions(job) {
15651
15680
  for (const unit of job.units) {
@@ -15923,7 +15952,7 @@ var LIST_END_MARKER = "]";
15923
15952
  var LIST_DELIMITER = "|";
15924
15953
  function extractI18nMessages(job) {
15925
15954
  const i18nContexts = /* @__PURE__ */ new Map();
15926
- const i18nBlockContexts = /* @__PURE__ */ new Set();
15955
+ const i18nBlocks = /* @__PURE__ */ new Map();
15927
15956
  for (const unit of job.units) {
15928
15957
  for (const op of unit.create) {
15929
15958
  switch (op.kind) {
@@ -15931,7 +15960,7 @@ function extractI18nMessages(job) {
15931
15960
  i18nContexts.set(op.xref, op);
15932
15961
  break;
15933
15962
  case OpKind.I18nStart:
15934
- i18nBlockContexts.add(op.context);
15963
+ i18nBlocks.set(op.xref, op);
15935
15964
  break;
15936
15965
  }
15937
15966
  }
@@ -15956,11 +15985,12 @@ function extractI18nMessages(job) {
15956
15985
  if (!op.context) {
15957
15986
  throw Error("ICU op should have its context set.");
15958
15987
  }
15959
- if (!i18nBlockContexts.has(op.context)) {
15960
- const i18nContext = i18nContexts.get(op.context);
15988
+ const i18nContext = i18nContexts.get(op.context);
15989
+ if (i18nContext.contextKind === I18nContextKind.Icu) {
15961
15990
  const subMessage = createI18nMessage(job, i18nContext, op.messagePlaceholder);
15962
15991
  unit.create.push(subMessage);
15963
- const parentMessage = i18nBlockMessages.get(i18nContext.i18nBlock);
15992
+ const rootI18nId = i18nBlocks.get(i18nContext.i18nBlock).root;
15993
+ const parentMessage = i18nBlockMessages.get(rootI18nId);
15964
15994
  parentMessage == null ? void 0 : parentMessage.subMessages.push(subMessage.xref);
15965
15995
  }
15966
15996
  OpList.remove(op);
@@ -15973,30 +16003,67 @@ function extractI18nMessages(job) {
15973
16003
  }
15974
16004
  }
15975
16005
  function createI18nMessage(job, context, messagePlaceholder) {
15976
- let needsPostprocessing = context.postprocessingParams.size > 0;
15977
- for (const values of context.params.values()) {
15978
- if (values.length > 1) {
15979
- needsPostprocessing = true;
15980
- }
15981
- }
15982
- return createI18nMessageOp(job.allocateXrefId(), context.i18nBlock, context.message, messagePlaceholder != null ? messagePlaceholder : null, formatParams(context.params), formatParams(context.postprocessingParams), needsPostprocessing);
16006
+ let [formattedParams, needsPostprocessing] = formatParams(context.params);
16007
+ const [formattedPostprocessingParams] = formatParams(context.postprocessingParams);
16008
+ needsPostprocessing || (needsPostprocessing = formattedPostprocessingParams.size > 0);
16009
+ return createI18nMessageOp(job.allocateXrefId(), context.i18nBlock, context.message, messagePlaceholder != null ? messagePlaceholder : null, formattedParams, formattedPostprocessingParams, needsPostprocessing);
15983
16010
  }
15984
16011
  function formatParams(params) {
15985
- const result = /* @__PURE__ */ new Map();
16012
+ const formattedParams = /* @__PURE__ */ new Map();
16013
+ let needsPostprocessing = false;
15986
16014
  for (const [placeholder, placeholderValues] of params) {
15987
- const serializedValues = formatParamValues(placeholderValues);
16015
+ const [serializedValues, paramNeedsPostprocessing] = formatParamValues(placeholderValues);
16016
+ needsPostprocessing || (needsPostprocessing = paramNeedsPostprocessing);
15988
16017
  if (serializedValues !== null) {
15989
- result.set(placeholder, literal(formatParamValues(placeholderValues)));
16018
+ formattedParams.set(placeholder, literal(serializedValues));
15990
16019
  }
15991
16020
  }
15992
- return result;
16021
+ return [formattedParams, needsPostprocessing];
15993
16022
  }
15994
16023
  function formatParamValues(values) {
15995
16024
  if (values.length === 0) {
15996
- return null;
16025
+ return [null, false];
15997
16026
  }
16027
+ collapseElementTemplatePairs(values);
15998
16028
  const serializedValues = values.map((value) => formatValue(value));
15999
- return serializedValues.length === 1 ? serializedValues[0] : `${LIST_START_MARKER}${serializedValues.join(LIST_DELIMITER)}${LIST_END_MARKER}`;
16029
+ return serializedValues.length === 1 ? [serializedValues[0], false] : [`${LIST_START_MARKER}${serializedValues.join(LIST_DELIMITER)}${LIST_END_MARKER}`, true];
16030
+ }
16031
+ function collapseElementTemplatePairs(values) {
16032
+ var _a2;
16033
+ const valueIndiciesBySubTemplateIndex = /* @__PURE__ */ new Map();
16034
+ for (let i = 0; i < values.length; i++) {
16035
+ const value = values[i];
16036
+ if (value.subTemplateIndex !== null && value.flags & (I18nParamValueFlags.ElementTag | I18nParamValueFlags.TemplateTag)) {
16037
+ const valueIndicies = (_a2 = valueIndiciesBySubTemplateIndex.get(value.subTemplateIndex)) != null ? _a2 : [];
16038
+ valueIndicies.push(i);
16039
+ valueIndiciesBySubTemplateIndex.set(value.subTemplateIndex, valueIndicies);
16040
+ }
16041
+ }
16042
+ for (const [subTemplateIndex, valueIndicies] of valueIndiciesBySubTemplateIndex) {
16043
+ if (valueIndicies.length > 1) {
16044
+ const elementIndex = valueIndicies.find((index2) => values[index2].flags & I18nParamValueFlags.ElementTag);
16045
+ const templateIndex = valueIndicies.find((index2) => values[index2].flags & I18nParamValueFlags.TemplateTag);
16046
+ if (elementIndex !== void 0 && templateIndex !== void 0) {
16047
+ const elementValue = values[elementIndex];
16048
+ const templateValue = values[templateIndex];
16049
+ let compundValue;
16050
+ if (elementValue.flags & I18nParamValueFlags.OpenTag && elementValue.flags & I18nParamValueFlags.CloseTag) {
16051
+ compundValue = `${formatValue(templateValue)}${formatValue(elementValue)}${formatValue(templateValue)}`;
16052
+ } else if (elementValue.flags & I18nParamValueFlags.OpenTag) {
16053
+ compundValue = `${formatValue(templateValue)}${formatValue(elementValue)}`;
16054
+ } else {
16055
+ compundValue = `${formatValue(elementValue)}${formatValue(templateValue)}`;
16056
+ }
16057
+ values.splice(elementIndex, 1, { value: compundValue, subTemplateIndex, flags: I18nParamValueFlags.None });
16058
+ values.splice(templateIndex, 1, null);
16059
+ }
16060
+ }
16061
+ }
16062
+ for (let i = values.length - 1; i >= 0; i--) {
16063
+ if (values[i] === null) {
16064
+ values.splice(i, 1);
16065
+ }
16066
+ }
16000
16067
  }
16001
16068
  function formatValue(value) {
16002
16069
  if (value.flags === I18nParamValueFlags.None) {
@@ -22306,45 +22373,6 @@ function serializeLocalRefs(refs) {
22306
22373
  }
22307
22374
  return literalArr(constRefs);
22308
22375
  }
22309
- function mergeI18nContexts(job) {
22310
- const i18nOps = /* @__PURE__ */ new Map();
22311
- const i18nContexts = /* @__PURE__ */ new Map();
22312
- for (const unit of job.units) {
22313
- for (const op of unit.create) {
22314
- switch (op.kind) {
22315
- case OpKind.I18nStart:
22316
- if (!op.context) {
22317
- throw Error("I18n op should have its context set.");
22318
- }
22319
- i18nOps.set(op.xref, op);
22320
- break;
22321
- case OpKind.I18nContext:
22322
- i18nContexts.set(op.xref, op);
22323
- break;
22324
- }
22325
- }
22326
- }
22327
- for (const childI18nOp of i18nOps.values()) {
22328
- if (childI18nOp.xref !== childI18nOp.root) {
22329
- const childContext = i18nContexts.get(childI18nOp.context);
22330
- const rootI18nOp = i18nOps.get(childI18nOp.root);
22331
- const rootContext = i18nContexts.get(rootI18nOp.context);
22332
- mergeParams(rootContext.params, childContext.params);
22333
- mergeParams(rootContext.postprocessingParams, childContext.postprocessingParams);
22334
- }
22335
- }
22336
- }
22337
- function mergeParams(to, from) {
22338
- for (const [placeholder, fromValues] of from) {
22339
- const toValues = to.get(placeholder) || [];
22340
- const flags = fromValues[0].flags;
22341
- if (flags & I18nParamValueFlags.CloseTag && !(flags & I18nParamValueFlags.OpenTag)) {
22342
- to.set(placeholder, [...fromValues, ...toValues]);
22343
- } else {
22344
- to.set(placeholder, [...toValues, ...fromValues]);
22345
- }
22346
- }
22347
- }
22348
22376
  function emitNamespaceChanges(job) {
22349
22377
  for (const unit of job.units) {
22350
22378
  let activeNamespace = Namespace.HTML;
@@ -22831,9 +22859,10 @@ function propagateI18nBlocksToTemplates(unit, subTemplateIndex) {
22831
22859
  subTemplateIndex++;
22832
22860
  wrapTemplateWithI18n(templateView, i18nBlock);
22833
22861
  }
22834
- propagateI18nBlocksToTemplates(templateView, subTemplateIndex);
22862
+ subTemplateIndex = propagateI18nBlocksToTemplates(templateView, subTemplateIndex);
22835
22863
  }
22836
22864
  }
22865
+ return subTemplateIndex;
22837
22866
  }
22838
22867
  function wrapTemplateWithI18n(unit, parentI18n) {
22839
22868
  var _a2;
@@ -23900,55 +23929,67 @@ function resolveI18nElementPlaceholders(job) {
23900
23929
  }
23901
23930
  }
23902
23931
  }
23903
- for (const unit of job.units) {
23904
- let currentOps = null;
23905
- for (const op of unit.create) {
23906
- switch (op.kind) {
23907
- case OpKind.I18nStart:
23908
- if (!op.context) {
23909
- throw Error("Could not find i18n context for i18n op");
23932
+ resolvePlaceholdersForView(job, job.root, i18nContexts, elements);
23933
+ }
23934
+ function resolvePlaceholdersForView(job, unit, i18nContexts, elements) {
23935
+ let currentOps = null;
23936
+ for (const op of unit.create) {
23937
+ switch (op.kind) {
23938
+ case OpKind.I18nStart:
23939
+ if (!op.context) {
23940
+ throw Error("Could not find i18n context for i18n op");
23941
+ }
23942
+ currentOps = { i18nBlock: op, i18nContext: i18nContexts.get(op.context) };
23943
+ break;
23944
+ case OpKind.I18nEnd:
23945
+ currentOps = null;
23946
+ break;
23947
+ case OpKind.ElementStart:
23948
+ if (op.i18nPlaceholder !== void 0) {
23949
+ if (currentOps === null) {
23950
+ throw Error("i18n tag placeholder should only occur inside an i18n block");
23910
23951
  }
23911
- currentOps = { i18nBlock: op, i18nContext: i18nContexts.get(op.context) };
23912
- break;
23913
- case OpKind.I18nEnd:
23914
- currentOps = null;
23915
- break;
23916
- case OpKind.ElementStart:
23917
- if (op.i18nPlaceholder !== void 0) {
23918
- if (currentOps === null) {
23919
- throw Error("i18n tag placeholder should only occur inside an i18n block");
23920
- }
23921
- const { startName, closeName } = op.i18nPlaceholder;
23922
- let flags = I18nParamValueFlags.ElementTag | I18nParamValueFlags.OpenTag;
23923
- if (closeName === "") {
23924
- flags |= I18nParamValueFlags.CloseTag;
23925
- }
23926
- addParam(currentOps.i18nContext.params, startName, op.handle.slot, currentOps.i18nBlock.subTemplateIndex, flags);
23952
+ const { startName, closeName } = op.i18nPlaceholder;
23953
+ let flags = I18nParamValueFlags.ElementTag | I18nParamValueFlags.OpenTag;
23954
+ if (closeName === "") {
23955
+ flags |= I18nParamValueFlags.CloseTag;
23927
23956
  }
23928
- break;
23929
- case OpKind.ElementEnd:
23930
- const startOp = elements.get(op.xref);
23931
- if (startOp && startOp.i18nPlaceholder !== void 0) {
23932
- if (currentOps === null) {
23933
- throw Error("i18n tag placeholder should only occur inside an i18n block");
23934
- }
23935
- const { closeName } = startOp.i18nPlaceholder;
23936
- if (closeName !== "") {
23937
- addParam(currentOps.i18nContext.params, closeName, startOp.handle.slot, currentOps.i18nBlock.subTemplateIndex, I18nParamValueFlags.ElementTag | I18nParamValueFlags.CloseTag);
23938
- }
23957
+ addParam(currentOps.i18nContext.params, startName, op.handle.slot, currentOps.i18nBlock.subTemplateIndex, flags);
23958
+ }
23959
+ break;
23960
+ case OpKind.ElementEnd:
23961
+ const startOp = elements.get(op.xref);
23962
+ if (startOp && startOp.i18nPlaceholder !== void 0) {
23963
+ if (currentOps === null) {
23964
+ throw Error("i18n tag placeholder should only occur inside an i18n block");
23939
23965
  }
23940
- break;
23941
- case OpKind.Template:
23942
- if (op.i18nPlaceholder !== void 0) {
23943
- if (currentOps === null) {
23944
- throw Error("i18n tag placeholder should only occur inside an i18n block");
23945
- }
23946
- const subTemplateIndex = getSubTemplateIndexForTemplateTag(job, currentOps.i18nBlock, op);
23947
- addParam(currentOps.i18nContext.params, op.i18nPlaceholder.startName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag);
23948
- addParam(currentOps.i18nContext.params, op.i18nPlaceholder.closeName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag | I18nParamValueFlags.CloseTag);
23966
+ const { closeName } = startOp.i18nPlaceholder;
23967
+ if (closeName !== "") {
23968
+ addParam(currentOps.i18nContext.params, closeName, startOp.handle.slot, currentOps.i18nBlock.subTemplateIndex, I18nParamValueFlags.ElementTag | I18nParamValueFlags.CloseTag);
23949
23969
  }
23950
- break;
23951
- }
23970
+ }
23971
+ break;
23972
+ case OpKind.Template:
23973
+ if (op.i18nPlaceholder !== void 0) {
23974
+ if (currentOps === null) {
23975
+ throw Error("i18n tag placeholder should only occur inside an i18n block");
23976
+ }
23977
+ let startFlags = I18nParamValueFlags.TemplateTag | I18nParamValueFlags.OpenTag;
23978
+ const subTemplateIndex = getSubTemplateIndexForTemplateTag(job, currentOps.i18nBlock, op);
23979
+ const { startName, closeName } = op.i18nPlaceholder;
23980
+ const isSelfClosing = closeName === "";
23981
+ if (isSelfClosing) {
23982
+ startFlags |= I18nParamValueFlags.CloseTag;
23983
+ }
23984
+ addParam(currentOps.i18nContext.params, startName, op.handle.slot, subTemplateIndex, startFlags);
23985
+ resolvePlaceholdersForView(job, job.views.get(op.xref), i18nContexts, elements);
23986
+ if (!isSelfClosing) {
23987
+ addParam(currentOps.i18nContext.params, closeName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag | I18nParamValueFlags.CloseTag);
23988
+ }
23989
+ } else {
23990
+ resolvePlaceholdersForView(job, job.views.get(op.xref), i18nContexts, elements);
23991
+ }
23992
+ break;
23952
23993
  }
23953
23994
  }
23954
23995
  }
@@ -23986,8 +24027,8 @@ function resolveI18nExpressionPlaceholders(job) {
23986
24027
  for (const op of unit.update) {
23987
24028
  if (op.kind === OpKind.I18nExpression) {
23988
24029
  const i18nContext = i18nContexts.get(op.context);
23989
- const index2 = expressionIndices.get(i18nContext.i18nBlock) || 0;
23990
- const subTemplateIndex = subTemplateIndicies.get(i18nContext.i18nBlock);
24030
+ const index2 = expressionIndices.get(op.target) || 0;
24031
+ const subTemplateIndex = subTemplateIndicies.get(op.target);
23991
24032
  const params = op.resolutionTime === I18nParamResolutionTime.Creation ? i18nContext.params : i18nContext.postprocessingParams;
23992
24033
  const values = params.get(op.i18nPlaceholder) || [];
23993
24034
  values.push({
@@ -23996,34 +24037,18 @@ function resolveI18nExpressionPlaceholders(job) {
23996
24037
  flags: I18nParamValueFlags.ExpressionIndex
23997
24038
  });
23998
24039
  params.set(op.i18nPlaceholder, values);
23999
- expressionIndices.set(i18nContext.i18nBlock, index2 + 1);
24040
+ expressionIndices.set(op.target, index2 + 1);
24000
24041
  }
24001
24042
  }
24002
24043
  }
24003
24044
  }
24004
24045
  function resolveI18nIcuPlaceholders(job) {
24005
- const contextOps = /* @__PURE__ */ new Map();
24006
- for (const unit of job.units) {
24007
- for (const op of unit.create) {
24008
- switch (op.kind) {
24009
- case OpKind.I18nContext:
24010
- contextOps.set(op.xref, op);
24011
- break;
24012
- }
24013
- }
24014
- }
24015
24046
  for (const unit of job.units) {
24016
24047
  for (const op of unit.create) {
24017
- switch (op.kind) {
24018
- case OpKind.IcuStart:
24019
- if (op.context === null) {
24020
- throw Error("Icu should have its i18n context set.");
24021
- }
24022
- const i18nContext = contextOps.get(op.context);
24023
- for (const node of op.message.nodes) {
24024
- node.visit(new ResolveIcuPlaceholdersVisitor(i18nContext.postprocessingParams));
24025
- }
24026
- break;
24048
+ if (op.kind === OpKind.I18nContext && op.contextKind === I18nContextKind.Icu) {
24049
+ for (const node of op.message.nodes) {
24050
+ node.visit(new ResolveIcuPlaceholdersVisitor(op.postprocessingParams));
24051
+ }
24027
24052
  }
24028
24053
  }
24029
24054
  }
@@ -24819,7 +24844,6 @@ var phases = [
24819
24844
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nElementPlaceholders },
24820
24845
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nExpressionPlaceholders },
24821
24846
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nIcuPlaceholders },
24822
- { kind: CompilationJobKind.Tmpl, fn: mergeI18nContexts },
24823
24847
  { kind: CompilationJobKind.Tmpl, fn: extractI18nMessages },
24824
24848
  { kind: CompilationJobKind.Tmpl, fn: generateTrackFns },
24825
24849
  { kind: CompilationJobKind.Tmpl, fn: collectI18nConsts },
@@ -29031,21 +29055,6 @@ var TrackByBindingScope = class extends BindingScope {
29031
29055
  return this.componentAccessCount;
29032
29056
  }
29033
29057
  };
29034
- function createCssSelector(elementName, attributes) {
29035
- const cssSelector = new CssSelector();
29036
- const elementNameNoNs = splitNsName(elementName)[1];
29037
- cssSelector.setElement(elementNameNoNs);
29038
- Object.getOwnPropertyNames(attributes).forEach((name) => {
29039
- const nameNoNs = splitNsName(name)[1];
29040
- const value = attributes[name];
29041
- cssSelector.addAttribute(nameNoNs, value);
29042
- if (name.toLowerCase() === "class") {
29043
- const classes = value.trim().split(/\s+/);
29044
- classes.forEach((className) => cssSelector.addClassName(className));
29045
- }
29046
- });
29047
- return cssSelector;
29048
- }
29049
29058
  function getNgProjectAsLiteral(attribute2) {
29050
29059
  const parsedR3Selector = parseSelectorToR3Selector(attribute2.value)[0];
29051
29060
  return [literal(5), asLiteral(parsedR3Selector)];
@@ -29312,6 +29321,9 @@ function addFeatures(definitionMap, meta) {
29312
29321
  break;
29313
29322
  }
29314
29323
  }
29324
+ if ((_a2 = meta.hostDirectives) == null ? void 0 : _a2.length) {
29325
+ features.push(importExpr(Identifiers.HostDirectivesFeature).callFn([createHostDirectivesFeatureArg(meta.hostDirectives)]));
29326
+ }
29315
29327
  if (meta.usesInheritance) {
29316
29328
  features.push(importExpr(Identifiers.InheritDefinitionFeature));
29317
29329
  }
@@ -29324,9 +29336,6 @@ function addFeatures(definitionMap, meta) {
29324
29336
  if (meta.hasOwnProperty("template") && meta.isStandalone) {
29325
29337
  features.push(importExpr(Identifiers.StandaloneFeature));
29326
29338
  }
29327
- if ((_a2 = meta.hostDirectives) == null ? void 0 : _a2.length) {
29328
- features.push(importExpr(Identifiers.HostDirectivesFeature).callFn([createHostDirectivesFeatureArg(meta.hostDirectives)]));
29329
- }
29330
29339
  if (features.length) {
29331
29340
  definitionMap.set("features", literalArr(features));
29332
29341
  }
@@ -30029,13 +30038,13 @@ var DirectiveBinder = class {
30029
30038
  template2.forEach((node) => node.visit(this));
30030
30039
  }
30031
30040
  visitElement(element2) {
30032
- this.visitElementOrTemplate(element2.name, element2);
30041
+ this.visitElementOrTemplate(element2);
30033
30042
  }
30034
30043
  visitTemplate(template2) {
30035
- this.visitElementOrTemplate("ng-template", template2);
30044
+ this.visitElementOrTemplate(template2);
30036
30045
  }
30037
- visitElementOrTemplate(elementName, node) {
30038
- const cssSelector = createCssSelector(elementName, getAttrsForDirectiveMatching(node));
30046
+ visitElementOrTemplate(node) {
30047
+ const cssSelector = createCssSelectorFromNode(node);
30039
30048
  const directives = [];
30040
30049
  this.matcher.match(cssSelector, (_selector, results) => directives.push(...results));
30041
30050
  if (directives.length > 0) {
@@ -31017,7 +31026,7 @@ function publishFacade(global) {
31017
31026
  const ng = global.ng || (global.ng = {});
31018
31027
  ng.\u0275compilerFacade = new CompilerFacadeImpl();
31019
31028
  }
31020
- var VERSION = new Version("17.0.4");
31029
+ var VERSION = new Version("17.1.0-next.2");
31021
31030
  var _VisitorMode;
31022
31031
  (function(_VisitorMode2) {
31023
31032
  _VisitorMode2[_VisitorMode2["Extract"] = 0] = "Extract";
@@ -32971,7 +32980,7 @@ ${[...componentsToMigrate].join("\n")}`);
32971
32980
  * found in the LICENSE file at https://angular.io/license
32972
32981
  */
32973
32982
  /**
32974
- * @license Angular v17.0.4
32983
+ * @license Angular v17.1.0-next.2
32975
32984
  * (c) 2010-2022 Google LLC. https://angular.io/
32976
32985
  * License: MIT
32977
32986
  */