@angular/material 18.1.0-next.0 → 18.1.0-next.2

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 (317) hide show
  1. package/_index.scss +1 -1
  2. package/autocomplete/index.d.ts +1 -1
  3. package/badge/index.d.ts +4 -1
  4. package/bottom-sheet/index.d.ts +1 -1
  5. package/checkbox/_checkbox-common.scss +523 -0
  6. package/checkbox/_checkbox-theme.scss +23 -8
  7. package/checkbox/index.d.ts +10 -2
  8. package/chips/index.d.ts +5 -1
  9. package/core/index.d.ts +1 -1
  10. package/core/m2/_typography.scss +1 -1
  11. package/core/ripple/_ripple.scss +6 -0
  12. package/core/style/_vendor-prefixes.scss +5 -0
  13. package/core/theming/_config-validation.scss +3 -2
  14. package/core/theming/_definition.scss +4 -2
  15. package/core/theming/_palettes.scss +2 -0
  16. package/core/tokens/_m3-tokens.scss +168 -152
  17. package/core/tokens/m2/mdc/_checkbox.scss +3 -4
  18. package/core/tokens/m3/mat/_divider.scss +1 -1
  19. package/core/tokens/m3/mat/_expansion.scss +1 -1
  20. package/core/tokens/m3/mat/_stepper.scss +1 -1
  21. package/core/tokens/m3/mat/_table.scss +1 -1
  22. package/datepicker/index.d.ts +10 -2
  23. package/dialog/index.d.ts +0 -1
  24. package/dialog/testing/index.d.ts +1 -0
  25. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  26. package/esm2022/autocomplete/autocomplete-trigger.mjs +11 -10
  27. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  28. package/esm2022/autocomplete/module.mjs +5 -5
  29. package/esm2022/badge/badge-module.mjs +5 -5
  30. package/esm2022/badge/badge.mjs +11 -8
  31. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  32. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  33. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  34. package/esm2022/button/button-base.mjs +7 -7
  35. package/esm2022/button/button.mjs +7 -7
  36. package/esm2022/button/fab.mjs +13 -13
  37. package/esm2022/button/icon-button.mjs +7 -7
  38. package/esm2022/button/module.mjs +5 -5
  39. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  40. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  41. package/esm2022/card/card.mjs +43 -43
  42. package/esm2022/card/module.mjs +5 -5
  43. package/esm2022/checkbox/checkbox-config.mjs +1 -1
  44. package/esm2022/checkbox/checkbox-required-validator.mjs +4 -4
  45. package/esm2022/checkbox/checkbox.mjs +8 -15
  46. package/esm2022/checkbox/module.mjs +9 -9
  47. package/esm2022/chips/chip-action.mjs +4 -4
  48. package/esm2022/chips/chip-edit-input.mjs +4 -4
  49. package/esm2022/chips/chip-grid.mjs +4 -4
  50. package/esm2022/chips/chip-icons.mjs +10 -10
  51. package/esm2022/chips/chip-input.mjs +4 -4
  52. package/esm2022/chips/chip-listbox.mjs +4 -4
  53. package/esm2022/chips/chip-option.mjs +4 -4
  54. package/esm2022/chips/chip-row.mjs +4 -4
  55. package/esm2022/chips/chip-set.mjs +4 -4
  56. package/esm2022/chips/chip.mjs +9 -9
  57. package/esm2022/chips/module.mjs +5 -5
  58. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  59. package/esm2022/core/datetime/index.mjs +9 -9
  60. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  61. package/esm2022/core/error/error-options.mjs +7 -7
  62. package/esm2022/core/internal-form-field/internal-form-field.mjs +4 -4
  63. package/esm2022/core/line/line.mjs +8 -8
  64. package/esm2022/core/option/index.mjs +5 -5
  65. package/esm2022/core/option/optgroup.mjs +4 -4
  66. package/esm2022/core/option/option.mjs +4 -4
  67. package/esm2022/core/private/ripple-loader.mjs +4 -4
  68. package/esm2022/core/ripple/index.mjs +5 -5
  69. package/esm2022/core/ripple/ripple.mjs +4 -4
  70. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  71. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  72. package/esm2022/core/version.mjs +1 -1
  73. package/esm2022/datepicker/calendar-body.mjs +4 -4
  74. package/esm2022/datepicker/calendar.mjs +8 -8
  75. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  76. package/esm2022/datepicker/date-range-input.mjs +4 -4
  77. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  78. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  79. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  80. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  81. package/esm2022/datepicker/datepicker-base.mjs +20 -23
  82. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  83. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  84. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  85. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  86. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  87. package/esm2022/datepicker/datepicker.mjs +4 -4
  88. package/esm2022/datepicker/month-view.mjs +4 -4
  89. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  90. package/esm2022/datepicker/year-view.mjs +4 -4
  91. package/esm2022/dialog/dialog-container.mjs +4 -9
  92. package/esm2022/dialog/dialog-content-directives.mjs +16 -16
  93. package/esm2022/dialog/dialog.mjs +4 -4
  94. package/esm2022/dialog/module.mjs +5 -5
  95. package/esm2022/dialog/testing/dialog-opener.mjs +4 -3
  96. package/esm2022/divider/divider-module.mjs +5 -5
  97. package/esm2022/divider/divider.mjs +4 -4
  98. package/esm2022/expansion/accordion.mjs +4 -4
  99. package/esm2022/expansion/expansion-module.mjs +5 -5
  100. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  101. package/esm2022/expansion/expansion-panel-header.mjs +10 -10
  102. package/esm2022/expansion/expansion-panel.mjs +7 -7
  103. package/esm2022/form-field/directives/error.mjs +4 -4
  104. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  105. package/esm2022/form-field/directives/hint.mjs +4 -4
  106. package/esm2022/form-field/directives/label.mjs +4 -4
  107. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  108. package/esm2022/form-field/directives/notched-outline.mjs +4 -4
  109. package/esm2022/form-field/directives/prefix.mjs +4 -4
  110. package/esm2022/form-field/directives/suffix.mjs +4 -4
  111. package/esm2022/form-field/form-field-control.mjs +4 -4
  112. package/esm2022/form-field/form-field.mjs +4 -4
  113. package/esm2022/form-field/module.mjs +5 -5
  114. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  115. package/esm2022/grid-list/grid-list.mjs +4 -4
  116. package/esm2022/grid-list/grid-tile.mjs +16 -16
  117. package/esm2022/icon/icon-module.mjs +5 -5
  118. package/esm2022/icon/icon-registry.mjs +4 -4
  119. package/esm2022/icon/icon.mjs +4 -4
  120. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  121. package/esm2022/input/input.mjs +4 -4
  122. package/esm2022/input/module.mjs +5 -5
  123. package/esm2022/list/action-list.mjs +4 -4
  124. package/esm2022/list/list-base.mjs +7 -7
  125. package/esm2022/list/list-item-sections.mjs +19 -19
  126. package/esm2022/list/list-module.mjs +5 -5
  127. package/esm2022/list/list-option.mjs +6 -6
  128. package/esm2022/list/list.mjs +7 -7
  129. package/esm2022/list/nav-list.mjs +4 -4
  130. package/esm2022/list/selection-list.mjs +4 -4
  131. package/esm2022/list/subheader.mjs +4 -4
  132. package/esm2022/menu/menu-content.mjs +4 -4
  133. package/esm2022/menu/menu-item.mjs +4 -4
  134. package/esm2022/menu/menu-trigger.mjs +4 -4
  135. package/esm2022/menu/menu.mjs +4 -4
  136. package/esm2022/menu/module.mjs +5 -5
  137. package/esm2022/paginator/module.mjs +5 -5
  138. package/esm2022/paginator/paginator-intl.mjs +4 -4
  139. package/esm2022/paginator/paginator.mjs +4 -4
  140. package/esm2022/progress-bar/module.mjs +5 -5
  141. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  142. package/esm2022/progress-spinner/module.mjs +5 -5
  143. package/esm2022/progress-spinner/progress-spinner.mjs +4 -4
  144. package/esm2022/radio/module.mjs +5 -5
  145. package/esm2022/radio/radio.mjs +31 -9
  146. package/esm2022/select/module.mjs +5 -5
  147. package/esm2022/select/select.mjs +7 -7
  148. package/esm2022/sidenav/drawer.mjs +10 -10
  149. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  150. package/esm2022/sidenav/sidenav.mjs +10 -10
  151. package/esm2022/slide-toggle/module.mjs +9 -9
  152. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  153. package/esm2022/slide-toggle/slide-toggle.mjs +4 -4
  154. package/esm2022/slider/module.mjs +5 -5
  155. package/esm2022/slider/slider-input.mjs +7 -7
  156. package/esm2022/slider/slider-interface.mjs +2 -2
  157. package/esm2022/slider/slider-thumb.mjs +4 -4
  158. package/esm2022/slider/slider.mjs +9 -9
  159. package/esm2022/snack-bar/module.mjs +5 -5
  160. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  161. package/esm2022/snack-bar/snack-bar-container.mjs +6 -6
  162. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  163. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  164. package/esm2022/sort/sort-header-intl.mjs +4 -4
  165. package/esm2022/sort/sort-header.mjs +4 -4
  166. package/esm2022/sort/sort-module.mjs +5 -5
  167. package/esm2022/sort/sort.mjs +4 -4
  168. package/esm2022/stepper/step-content.mjs +4 -4
  169. package/esm2022/stepper/step-header.mjs +4 -4
  170. package/esm2022/stepper/step-label.mjs +4 -4
  171. package/esm2022/stepper/stepper-button.mjs +7 -7
  172. package/esm2022/stepper/stepper-icon.mjs +4 -4
  173. package/esm2022/stepper/stepper-intl.mjs +4 -4
  174. package/esm2022/stepper/stepper-module.mjs +5 -5
  175. package/esm2022/stepper/stepper.mjs +7 -7
  176. package/esm2022/table/cell.mjs +22 -22
  177. package/esm2022/table/module.mjs +5 -5
  178. package/esm2022/table/row.mjs +22 -22
  179. package/esm2022/table/table.mjs +9 -9
  180. package/esm2022/table/text-column.mjs +4 -4
  181. package/esm2022/tabs/ink-bar.mjs +4 -4
  182. package/esm2022/tabs/module.mjs +5 -5
  183. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  184. package/esm2022/tabs/tab-body.mjs +7 -7
  185. package/esm2022/tabs/tab-content.mjs +4 -4
  186. package/esm2022/tabs/tab-group.mjs +4 -4
  187. package/esm2022/tabs/tab-header.mjs +4 -4
  188. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  189. package/esm2022/tabs/tab-label.mjs +4 -4
  190. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +10 -10
  191. package/esm2022/tabs/tab.mjs +4 -4
  192. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  193. package/esm2022/toolbar/toolbar.mjs +7 -7
  194. package/esm2022/tooltip/module.mjs +5 -5
  195. package/esm2022/tooltip/tooltip.mjs +7 -7
  196. package/esm2022/tree/node.mjs +10 -10
  197. package/esm2022/tree/outlet.mjs +4 -4
  198. package/esm2022/tree/padding.mjs +4 -4
  199. package/esm2022/tree/toggle.mjs +4 -4
  200. package/esm2022/tree/tree-module.mjs +5 -5
  201. package/esm2022/tree/tree.mjs +4 -4
  202. package/fesm2022/autocomplete.mjs +14 -13
  203. package/fesm2022/autocomplete.mjs.map +1 -1
  204. package/fesm2022/badge.mjs +14 -11
  205. package/fesm2022/badge.mjs.map +1 -1
  206. package/fesm2022/bottom-sheet.mjs +10 -10
  207. package/fesm2022/bottom-sheet.mjs.map +1 -1
  208. package/fesm2022/button-toggle.mjs +10 -10
  209. package/fesm2022/button-toggle.mjs.map +1 -1
  210. package/fesm2022/button.mjs +34 -34
  211. package/fesm2022/button.mjs.map +1 -1
  212. package/fesm2022/card.mjs +46 -46
  213. package/fesm2022/card.mjs.map +1 -1
  214. package/fesm2022/checkbox.mjs +16 -16
  215. package/fesm2022/checkbox.mjs.map +1 -1
  216. package/fesm2022/chips.mjs +44 -44
  217. package/fesm2022/chips.mjs.map +1 -1
  218. package/fesm2022/core.mjs +59 -59
  219. package/fesm2022/core.mjs.map +1 -1
  220. package/fesm2022/datepicker.mjs +88 -84
  221. package/fesm2022/datepicker.mjs.map +1 -1
  222. package/fesm2022/dialog/testing.mjs +3 -2
  223. package/fesm2022/dialog/testing.mjs.map +1 -1
  224. package/fesm2022/dialog.mjs +25 -30
  225. package/fesm2022/dialog.mjs.map +1 -1
  226. package/fesm2022/divider.mjs +7 -7
  227. package/fesm2022/divider.mjs.map +1 -1
  228. package/fesm2022/expansion.mjs +25 -25
  229. package/fesm2022/expansion.mjs.map +1 -1
  230. package/fesm2022/form-field.mjs +34 -34
  231. package/fesm2022/form-field.mjs.map +1 -1
  232. package/fesm2022/grid-list.mjs +22 -22
  233. package/fesm2022/grid-list.mjs.map +1 -1
  234. package/fesm2022/icon/testing.mjs +7 -7
  235. package/fesm2022/icon/testing.mjs.map +1 -1
  236. package/fesm2022/icon.mjs +10 -10
  237. package/fesm2022/icon.mjs.map +1 -1
  238. package/fesm2022/input.mjs +7 -7
  239. package/fesm2022/input.mjs.map +1 -1
  240. package/fesm2022/list.mjs +51 -51
  241. package/fesm2022/list.mjs.map +1 -1
  242. package/fesm2022/menu.mjs +16 -16
  243. package/fesm2022/menu.mjs.map +1 -1
  244. package/fesm2022/paginator.mjs +10 -10
  245. package/fesm2022/paginator.mjs.map +1 -1
  246. package/fesm2022/progress-bar.mjs +7 -7
  247. package/fesm2022/progress-bar.mjs.map +1 -1
  248. package/fesm2022/progress-spinner.mjs +7 -7
  249. package/fesm2022/progress-spinner.mjs.map +1 -1
  250. package/fesm2022/radio.mjs +35 -13
  251. package/fesm2022/radio.mjs.map +1 -1
  252. package/fesm2022/select.mjs +10 -10
  253. package/fesm2022/select.mjs.map +1 -1
  254. package/fesm2022/sidenav.mjs +22 -22
  255. package/fesm2022/sidenav.mjs.map +1 -1
  256. package/fesm2022/slide-toggle.mjs +14 -14
  257. package/fesm2022/slide-toggle.mjs.map +1 -1
  258. package/fesm2022/slider.mjs +22 -22
  259. package/fesm2022/slider.mjs.map +1 -1
  260. package/fesm2022/snack-bar.mjs +24 -24
  261. package/fesm2022/snack-bar.mjs.map +1 -1
  262. package/fesm2022/sort.mjs +13 -13
  263. package/fesm2022/sort.mjs.map +1 -1
  264. package/fesm2022/stepper.mjs +31 -31
  265. package/fesm2022/stepper.mjs.map +1 -1
  266. package/fesm2022/table.mjs +57 -57
  267. package/fesm2022/table.mjs.map +1 -1
  268. package/fesm2022/tabs.mjs +43 -43
  269. package/fesm2022/tabs.mjs.map +1 -1
  270. package/fesm2022/toolbar.mjs +10 -10
  271. package/fesm2022/toolbar.mjs.map +1 -1
  272. package/fesm2022/tooltip.mjs +10 -10
  273. package/fesm2022/tooltip.mjs.map +1 -1
  274. package/fesm2022/tree.mjs +25 -25
  275. package/fesm2022/tree.mjs.map +1 -1
  276. package/list/_list-item-hcm-indicator.scss +19 -19
  277. package/list/_list-theme.scss +6 -4
  278. package/package.json +2 -2
  279. package/prebuilt-themes/azure-blue.css +1 -1
  280. package/prebuilt-themes/cyan-orange.css +1 -1
  281. package/prebuilt-themes/deeppurple-amber.css +1 -1
  282. package/prebuilt-themes/indigo-pink.css +1 -1
  283. package/prebuilt-themes/magenta-violet.css +1 -1
  284. package/prebuilt-themes/pink-bluegrey.css +1 -1
  285. package/prebuilt-themes/purple-green.css +1 -1
  286. package/prebuilt-themes/rose-red.css +1 -1
  287. package/radio/index.d.ts +1 -0
  288. package/schematics/ng-add/fonts/material-fonts.js +2 -3
  289. package/schematics/ng-add/fonts/material-fonts.mjs +2 -3
  290. package/schematics/ng-add/index.js +3 -3
  291. package/schematics/ng-add/index.mjs +3 -3
  292. package/schematics/ng-add/package-config.js +3 -4
  293. package/schematics/ng-add/package-config.mjs +3 -4
  294. package/schematics/ng-add/setup-project.js +2 -2
  295. package/schematics/ng-add/setup-project.mjs +2 -2
  296. package/schematics/ng-add/theming/create-custom-theme.js +4 -5
  297. package/schematics/ng-add/theming/create-custom-theme.mjs +4 -5
  298. package/schematics/ng-add/theming/theming.js +3 -4
  299. package/schematics/ng-add/theming/theming.mjs +3 -4
  300. package/schematics/ng-generate/address-form/index.js +2 -2
  301. package/schematics/ng-generate/address-form/index.mjs +2 -2
  302. package/schematics/ng-generate/dashboard/index.js +2 -2
  303. package/schematics/ng-generate/dashboard/index.mjs +2 -2
  304. package/schematics/ng-generate/m3-theme/index_bundled.js +83 -4
  305. package/schematics/ng-generate/m3-theme/index_bundled.js.map +3 -3
  306. package/schematics/ng-generate/navigation/index.js +2 -2
  307. package/schematics/ng-generate/navigation/index.mjs +2 -2
  308. package/schematics/ng-generate/table/index.js +2 -2
  309. package/schematics/ng-generate/table/index.mjs +2 -2
  310. package/schematics/ng-generate/tree/index.js +2 -2
  311. package/schematics/ng-generate/tree/index.mjs +2 -2
  312. package/schematics/ng-update/index_bundled.js +192 -57
  313. package/schematics/ng-update/index_bundled.js.map +2 -2
  314. package/slider/index.d.ts +1 -1
  315. package/snack-bar/_snack-bar-theme.scss +16 -7
  316. package/sort/index.d.ts +1 -1
  317. package/tree/index.d.ts +2 -2
@@ -50,7 +50,7 @@ var __async = (__this, __arguments, generator) => {
50
50
  });
51
51
  };
52
52
 
53
- // bazel-out/darwin_arm64-fastbuild/bin/src/material/schematics/ng-generate/m3-theme/index.mjs
53
+ // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/m3-theme/index.mjs
54
54
  var m3_theme_exports = {};
55
55
  __export(m3_theme_exports, {
56
56
  default: () => m3_theme_default,
@@ -2513,9 +2513,21 @@ function customColor(source, color) {
2513
2513
  };
2514
2514
  }
2515
2515
 
2516
- // bazel-out/darwin_arm64-fastbuild/bin/src/material/schematics/ng-generate/m3-theme/index.mjs
2516
+ // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/m3-theme/index.mjs
2517
2517
  var HUE_TONES = [0, 10, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 95, 98, 99, 100];
2518
- var NEUTRAL_HUE_TONES = HUE_TONES.concat([4, 6, 12, 17, 22, 24, 87, 92, 94, 96]);
2518
+ var NEUTRAL_HUES = /* @__PURE__ */ new Map([
2519
+ [4, { prev: 0, next: 10 }],
2520
+ [6, { prev: 0, next: 10 }],
2521
+ [12, { prev: 10, next: 20 }],
2522
+ [17, { prev: 10, next: 20 }],
2523
+ [22, { prev: 20, next: 25 }],
2524
+ [24, { prev: 20, next: 25 }],
2525
+ [87, { prev: 80, next: 90 }],
2526
+ [92, { prev: 90, next: 95 }],
2527
+ [94, { prev: 90, next: 95 }],
2528
+ [96, { prev: 95, next: 98 }]
2529
+ ]);
2530
+ var NEUTRAL_HUE_TONES = [...HUE_TONES, ...NEUTRAL_HUES.keys()];
2519
2531
  function getMaterialTonalPalettes(color) {
2520
2532
  try {
2521
2533
  let argbColor = argbFromHex(color);
@@ -2567,7 +2579,7 @@ function generateSCSSTheme(colorPalettes, themeTypes, colorComment, useSystemVar
2567
2579
  "@use '@angular/material' as mat;",
2568
2580
  "",
2569
2581
  "// Note: " + colorComment,
2570
- "$_palettes: " + getColorPalettesSCSS(colorPalettes),
2582
+ "$_palettes: " + getColorPalettesSCSS(patchMissingHues(colorPalettes)),
2571
2583
  "",
2572
2584
  "$_rest: (",
2573
2585
  " secondary: map.get($_palettes, secondary),",
@@ -2623,6 +2635,73 @@ function m3_theme_default(options) {
2623
2635
  createThemeFile(themeScss, tree, options.directory);
2624
2636
  });
2625
2637
  }
2638
+ function patchMissingHues(palettes) {
2639
+ const neutral = palettes.get("neutral");
2640
+ if (!neutral) {
2641
+ return palettes;
2642
+ }
2643
+ let newNeutral = null;
2644
+ for (const [hue, { prev, next }] of NEUTRAL_HUES) {
2645
+ if (!neutral.has(hue) && neutral.has(prev) && neutral.has(next)) {
2646
+ const weight = (next - hue) / (next - prev);
2647
+ const result = mixColors(neutral.get(prev), neutral.get(next), weight);
2648
+ if (result !== null) {
2649
+ newNeutral != null ? newNeutral : newNeutral = new Map(neutral.entries());
2650
+ newNeutral.set(hue, result);
2651
+ }
2652
+ }
2653
+ }
2654
+ if (!newNeutral) {
2655
+ return palettes;
2656
+ }
2657
+ const newPalettes = /* @__PURE__ */ new Map();
2658
+ for (const [key, value] of palettes) {
2659
+ if (key === "neutral") {
2660
+ const sortedNeutral = Array.from(newNeutral.keys()).sort((a, b) => a - b).reduce((newHues, key2) => {
2661
+ newHues.set(key2, newNeutral.get(key2));
2662
+ return newHues;
2663
+ }, /* @__PURE__ */ new Map());
2664
+ newPalettes.set(key, sortedNeutral);
2665
+ } else {
2666
+ newPalettes.set(key, value);
2667
+ }
2668
+ }
2669
+ return newPalettes;
2670
+ }
2671
+ function mixColors(c1, c2, weight) {
2672
+ const normalizedWeight = weight * 2 - 1;
2673
+ const weight1 = (normalizedWeight + 1) / 2;
2674
+ const weight2 = 1 - weight1;
2675
+ const color1 = parseHexColor(c1);
2676
+ const color2 = parseHexColor(c2);
2677
+ if (color1 === null || color2 === null) {
2678
+ return null;
2679
+ }
2680
+ const red = Math.round(color1.red * weight1 + color2.red * weight2);
2681
+ const green = Math.round(color1.green * weight1 + color2.green * weight2);
2682
+ const blue = Math.round(color1.blue * weight1 + color2.blue * weight2);
2683
+ const intToHex = (value) => value.toString(16).padStart(2, "0");
2684
+ return `#${intToHex(red)}${intToHex(green)}${intToHex(blue)}`;
2685
+ }
2686
+ function parseHexColor(value) {
2687
+ if (!/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value)) {
2688
+ return null;
2689
+ }
2690
+ const hexToInt = (value2) => parseInt(value2, 16);
2691
+ let red;
2692
+ let green;
2693
+ let blue;
2694
+ if (value.length === 4) {
2695
+ red = hexToInt(value[1] + value[1]);
2696
+ green = hexToInt(value[2] + value[2]);
2697
+ blue = hexToInt(value[3] + value[3]);
2698
+ } else {
2699
+ red = hexToInt(value.slice(1, 3));
2700
+ green = hexToInt(value.slice(3, 5));
2701
+ blue = hexToInt(value.slice(5, 7));
2702
+ }
2703
+ return { red, green, blue };
2704
+ }
2626
2705
  // Annotate the CommonJS export names for ESM import in node:
2627
2706
  0 && (module.exports = {
2628
2707
  generateSCSSTheme