@filip.mazev/blocks 1.4.10 → 1.4.11

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 (37) hide show
  1. package/README.md +15 -3
  2. package/core/styles/_index.scss +7 -0
  3. package/core/styles/_overlay.scss +4 -0
  4. package/core/styles/_palettes.scss +42 -0
  5. package/core/styles/_theme-engine.scss +180 -149
  6. package/core/styles/themes/_azure-coral-theme.scss +4 -0
  7. package/core/styles/themes/_blue-theme.scss +4 -3
  8. package/core/styles/themes/_cyberpunk-theme.scss +3 -2
  9. package/core/styles/themes/_graphite-sky-blue-theme.scss +19 -0
  10. package/core/styles/themes/_green-theme.scss +4 -3
  11. package/core/styles/themes/_high-contrast-theme.scss +25 -6
  12. package/core/styles/themes/_lime-violet-theme.scss +4 -0
  13. package/core/styles/themes/_orange-theme.scss +4 -3
  14. package/core/styles/themes/_purple-theme.scss +4 -3
  15. package/core/styles/themes/_red-theme.scss +4 -3
  16. package/core/styles/themes/_scarlet-cyan-theme.scss +4 -0
  17. package/core/styles/themes/_tangerine-indigo-theme.scss +4 -0
  18. package/core/styles/themes/_violet-teal-theme.scss +4 -0
  19. package/core/styles/themes/_white-theme.scss +4 -27
  20. package/fesm2022/filip.mazev-blocks-core.mjs +139 -35
  21. package/fesm2022/filip.mazev-blocks-core.mjs.map +1 -1
  22. package/fesm2022/filip.mazev-blocks-effects-runtime.mjs +1 -1
  23. package/fesm2022/filip.mazev-blocks-effects-runtime.mjs.map +1 -1
  24. package/fesm2022/filip.mazev-blocks-forms.mjs +16 -34
  25. package/fesm2022/filip.mazev-blocks-forms.mjs.map +1 -1
  26. package/fesm2022/filip.mazev-blocks-primitives.mjs +496 -41
  27. package/fesm2022/filip.mazev-blocks-primitives.mjs.map +1 -1
  28. package/fesm2022/filip.mazev-blocks.mjs +1 -1
  29. package/fesm2022/filip.mazev-blocks.mjs.map +1 -1
  30. package/package.json +1 -1
  31. package/schematics/ng-add/index.d.ts +10 -1
  32. package/schematics/ng-add/index.js +15 -4
  33. package/schematics/ng-add/schema.json +23 -17
  34. package/types/filip.mazev-blocks-core.d.ts +20 -7
  35. package/types/filip.mazev-blocks-forms.d.ts +2 -3
  36. package/types/filip.mazev-blocks-primitives.d.ts +118 -4
  37. package/types/filip.mazev-blocks.d.ts +1 -1
@@ -12,12 +12,22 @@ $high-contrast-light-theme: validate-theme(
12
12
  'bg-neutral': $hc-white,
13
13
  'bg-neutral-hover': get-color-from-palette('neutral', 50),
14
14
  'bg-neutral-active': get-color-from-palette('neutral', 100),
15
-
16
15
  'primary': $hc-black,
17
16
  'primary-hover': $hc-black,
18
17
  'primary-active': $hc-black,
19
18
  'primary-subtle': $hc-white,
20
19
  'on-primary': $hc-white,
20
+ 'on-primary-hover': $hc-white,
21
+ 'on-primary-active': $hc-white,
22
+ 'accent': $hc-black,
23
+ 'accent-hover': $hc-black,
24
+ 'accent-active': $hc-black,
25
+ 'accent-subtle': $hc-white,
26
+ 'on-accent': $hc-white,
27
+ 'on-accent-hover': $hc-white,
28
+ 'on-accent-active': $hc-white,
29
+ 'text-accent': $hc-black,
30
+ 'border-accent': $hc-black,
21
31
 
22
32
  'text-heading': $hc-black,
23
33
  'text-primary': $hc-black,
@@ -28,7 +38,6 @@ $high-contrast-light-theme: validate-theme(
28
38
  'text-success': get-color-from-palette('success', 800),
29
39
  'text-warn': get-color-from-palette('warn', 800),
30
40
  'text-danger': get-color-from-palette('danger', 700),
31
-
32
41
  'border-subtle': $hc-black,
33
42
  'border-default': $hc-black,
34
43
  'border-strong': $hc-black,
@@ -65,8 +74,8 @@ $high-contrast-light-theme: validate-theme(
65
74
  'scroll-bg': $hc-white,
66
75
  'scroll-thumb': $hc-black,
67
76
  'scroll-thumb-hover': get-color-from-palette('neutral', 700),
68
-
69
77
  'meta-brand-palette': 'neutral',
78
+ 'meta-accent-palette': 'neutral',
70
79
  ),
71
80
  'high-contrast-light'
72
81
  ) !default;
@@ -81,12 +90,22 @@ $high-contrast-dark-theme: validate-theme(
81
90
  'bg-neutral': $hc-black,
82
91
  'bg-neutral-hover': get-color-from-palette('neutral', 1000),
83
92
  'bg-neutral-active': get-color-from-palette('neutral', 1000),
84
-
85
93
  'primary': $hc-white,
86
94
  'primary-hover': $hc-white,
87
95
  'primary-active': $hc-white,
88
96
  'primary-subtle': $hc-black,
89
97
  'on-primary': $hc-black,
98
+ 'on-primary-hover': $hc-black,
99
+ 'on-primary-active': $hc-black,
100
+ 'accent': $hc-white,
101
+ 'accent-hover': $hc-white,
102
+ 'accent-active': $hc-white,
103
+ 'accent-subtle': $hc-black,
104
+ 'on-accent': $hc-black,
105
+ 'on-accent-hover': $hc-black,
106
+ 'on-accent-active': $hc-black,
107
+ 'text-accent': $hc-white,
108
+ 'border-accent': $hc-white,
90
109
 
91
110
  'text-heading': $hc-white,
92
111
  'text-primary': $hc-white,
@@ -134,13 +153,12 @@ $high-contrast-dark-theme: validate-theme(
134
153
  'scroll-bg': $hc-black,
135
154
  'scroll-thumb': $hc-white,
136
155
  'scroll-thumb-hover': get-color-from-palette('neutral', 300),
137
-
138
156
  'meta-brand-palette': 'neutral',
157
+ 'meta-accent-palette': 'neutral',
139
158
  ),
140
159
  'high-contrast-dark'
141
160
  ) !default;
142
161
 
143
- // The Blocks high-contrast palette is an explicit accessibility choice, independent of OS media queries.
144
162
  :where(.high-contrast, .bx-high-contrast-scope) {
145
163
  [data-bx-surface] {
146
164
  color: var(--bx-glass-text, var(--bx-text-primary)) !important;
@@ -154,6 +172,7 @@ $high-contrast-dark-theme: validate-theme(
154
172
  [data-bx-surface],
155
173
  .bx-glass-material {
156
174
  background: var(--bx-glass-surface, var(--bx-bg-surface)) !important;
175
+ /* stylelint-disable-next-line property-no-vendor-prefix -- Required to disable glass in older Safari. */
157
176
  -webkit-backdrop-filter: none !important;
158
177
  backdrop-filter: none !important;
159
178
  box-shadow: none !important;
@@ -0,0 +1,4 @@
1
+ @use '../theme-engine' as *;
2
+
3
+ $lime-violet-light-theme: make-light-theme('lime', 'cool-violet');
4
+ $lime-violet-dark-theme: make-dark-theme('lime', 'cool-violet');
@@ -1,4 +1,5 @@
1
- @use '../theme-engine' as *;
1
+ // Compatibility aliases. New applications should use the paired palette name.
2
+ @use 'tangerine-indigo-theme' as paired;
2
3
 
3
- $orange-light-theme: make-light-theme('orange');
4
- $orange-dark-theme: make-dark-theme('orange');
4
+ $orange-light-theme: paired.$tangerine-indigo-light-theme;
5
+ $orange-dark-theme: paired.$tangerine-indigo-dark-theme;
@@ -1,4 +1,5 @@
1
- @use '../theme-engine' as *;
1
+ // Compatibility aliases. New applications should use the paired palette name.
2
+ @use 'violet-teal-theme' as paired;
2
3
 
3
- $purple-light-theme: make-light-theme('purple');
4
- $purple-dark-theme: make-dark-theme('purple');
4
+ $purple-light-theme: paired.$violet-teal-light-theme;
5
+ $purple-dark-theme: paired.$violet-teal-dark-theme;
@@ -1,4 +1,5 @@
1
- @use '../theme-engine' as *;
1
+ // Compatibility aliases. New applications should use the paired palette name.
2
+ @use 'scarlet-cyan-theme' as paired;
2
3
 
3
- $red-light-theme: make-light-theme('red');
4
- $red-dark-theme: make-dark-theme('red');
4
+ $red-light-theme: paired.$scarlet-cyan-light-theme;
5
+ $red-dark-theme: paired.$scarlet-cyan-dark-theme;
@@ -0,0 +1,4 @@
1
+ @use '../theme-engine' as *;
2
+
3
+ $scarlet-cyan-light-theme: make-light-theme('scarlet', 'cyan');
4
+ $scarlet-cyan-dark-theme: make-dark-theme('scarlet', 'cyan');
@@ -0,0 +1,4 @@
1
+ @use '../theme-engine' as *;
2
+
3
+ $tangerine-indigo-light-theme: make-light-theme('tangerine', 'indigo');
4
+ $tangerine-indigo-dark-theme: make-dark-theme('tangerine', 'indigo');
@@ -0,0 +1,4 @@
1
+ @use '../theme-engine' as *;
2
+
3
+ $violet-teal-light-theme: make-light-theme('violet', 'teal');
4
+ $violet-teal-dark-theme: make-dark-theme('violet', 'teal');
@@ -1,28 +1,5 @@
1
- @use '../theme-engine' as *;
1
+ // Compatibility aliases. New applications should use the paired palette name.
2
+ @use 'graphite-sky-blue-theme' as paired;
2
3
 
3
- $white-light-theme: make-light-theme(
4
- 'neutral',
5
- $overrides: (
6
- 'primary': #525252,
7
- 'primary-hover': #404040,
8
- 'primary-active': #262626,
9
- 'primary-subtle': rgba(#737373, 0.12),
10
- 'on-primary': #ffffff,
11
- 'text-brand': #404040,
12
- 'border-brand': #737373,
13
- )
14
- );
15
- $white-dark-theme: make-dark-theme(
16
- 'neutral',
17
- $overrides: (
18
- 'primary': #ffffff,
19
- 'primary-hover': #e5e5e5,
20
- 'primary-active': #d4d4d4,
21
- 'primary-subtle': rgba(#ffffff, 0.12),
22
- 'on-primary': #171717,
23
- 'text-brand': #f5f5f5,
24
- 'border-brand': #d4d4d4,
25
- 'scroll-thumb': #737373,
26
- 'scroll-thumb-hover': #a3a3a3,
27
- )
28
- );
4
+ $white-light-theme: paired.$graphite-sky-blue-light-theme;
5
+ $white-dark-theme: paired.$graphite-sky-blue-dark-theme;
@@ -5,7 +5,7 @@ import { fromEvent } from "rxjs";
5
5
  import { debounceTime, distinctUntilChanged, map } from "rxjs/operators";
6
6
  import { toObservable } from "@angular/core/rxjs-interop";
7
7
  import { configureAppearance } from "@filip.mazev/blocks/effects/runtime";
8
- import { ConnectionPositionPair, Overlay } from "@angular/cdk/overlay";
8
+ import { ConnectionPositionPair, FlexibleConnectedPositionStrategy, Overlay } from "@angular/cdk/overlay";
9
9
  import { NgControl, Validators } from "@angular/forms";
10
10
  var DesktopOS;
11
11
  (function(DesktopOS) {
@@ -348,43 +348,63 @@ const DEFAULT_APPEARANCE_CONFIG = Object.freeze({
348
348
  quality: "auto",
349
349
  reducedTransparency: false
350
350
  });
351
+ const LEGACY_THEME_IDS = {
352
+ white: "graphite-sky-blue",
353
+ blue: "azure-coral",
354
+ purple: "violet-teal",
355
+ orange: "tangerine-indigo",
356
+ red: "scarlet-cyan",
357
+ green: "lime-violet"
358
+ };
351
359
  const THEME_PALETTES = [
352
360
  {
353
- id: "white",
354
- label: "White",
355
- className: "theme-white"
361
+ id: "graphite-sky-blue",
362
+ label: "Graphite / Sky Blue",
363
+ className: "theme-graphite-sky-blue",
364
+ colors: ["#525252", "#38bdf8"]
356
365
  },
357
366
  {
358
- id: "blue",
359
- label: "Blue",
360
- className: "theme-blue"
367
+ id: "azure-coral",
368
+ label: "Azure / Coral",
369
+ className: "theme-azure-coral",
370
+ colors: ["#217eff", "#f87763"]
361
371
  },
362
372
  {
363
- id: "purple",
364
- label: "Purple",
365
- className: "theme-purple"
373
+ id: "violet-teal",
374
+ label: "Violet / Teal",
375
+ className: "theme-violet-teal",
376
+ colors: ["#6d00ff", "#0d9488"]
366
377
  },
367
378
  {
368
- id: "orange",
369
- label: "Orange",
370
- className: "theme-orange"
379
+ id: "tangerine-indigo",
380
+ label: "Tangerine / Indigo",
381
+ className: "theme-tangerine-indigo",
382
+ colors: ["#ff6900", "#4f78f5"]
371
383
  },
372
384
  {
373
- id: "red",
374
- label: "Red",
375
- className: "theme-red"
385
+ id: "scarlet-cyan",
386
+ label: "Scarlet / Cyan",
387
+ className: "theme-scarlet-cyan",
388
+ colors: ["#e3241b", "#0891b2"]
376
389
  },
377
390
  {
378
- id: "green",
379
- label: "Green",
380
- className: "theme-green"
391
+ id: "lime-violet",
392
+ label: "Lime / Violet",
393
+ className: "theme-lime-violet",
394
+ colors: ["#c4f53d", "#6842a6"]
381
395
  },
382
396
  {
383
397
  id: "cyberpunk",
384
398
  label: "Cyberpunk",
385
- className: "theme-cyberpunk"
399
+ className: "theme-cyberpunk",
400
+ colors: ["#3e5669", "#e6da00"]
386
401
  }
387
402
  ];
403
+ function resolveThemeId(value) {
404
+ const palette = THEME_PALETTES.find((item) => item.id === value);
405
+ if (palette) return palette.id;
406
+ if (value && Object.prototype.hasOwnProperty.call(LEGACY_THEME_IDS, value)) return LEGACY_THEME_IDS[value];
407
+ }
388
408
  var BxA11yService = class BxA11yService {
389
409
  document = inject(DOCUMENT$1);
390
410
  platformId = inject(PLATFORM_ID);
@@ -457,7 +477,7 @@ var ThemingService = class ThemingService {
457
477
  _appearance = signal({ ...DEFAULT_APPEARANCE_CONFIG }, ...ngDevMode ? [{ debugName: "_appearance" }] : /* istanbul ignore next */ []);
458
478
  appearance = this._appearance.asReadonly();
459
479
  palettes = THEME_PALETTES;
460
- _palette = signal("white", ...ngDevMode ? [{ debugName: "_palette" }] : /* istanbul ignore next */ []);
480
+ _palette = signal("graphite-sky-blue", ...ngDevMode ? [{ debugName: "_palette" }] : /* istanbul ignore next */ []);
461
481
  palette = this._palette.asReadonly();
462
482
  paletteLabel = computed(() => this.palettes.find((item) => item.id === this.palette())?.label ?? this.palettes[0].label, ...ngDevMode ? [{ debugName: "paletteLabel" }] : /* istanbul ignore next */ []);
463
483
  _highContrast = signal(false, ...ngDevMode ? [{ debugName: "_highContrast" }] : /* istanbul ignore next */ []);
@@ -485,7 +505,7 @@ var ThemingService = class ThemingService {
485
505
  this.restoreAppearance();
486
506
  const palette = this.readStored("theme-palette");
487
507
  const storedHighContrast = this.readStored("theme-high-contrast");
488
- this.setPalette(this.palettes.some((item) => item.id === palette) ? palette : "white");
508
+ this.setPalette(resolveThemeId(palette) ?? "graphite-sky-blue");
489
509
  this.setHighContrast(storedHighContrast === null ? palette === "high-contrast" : storedHighContrast === "true");
490
510
  this.appearanceController = configureAppearance(this.document.documentElement, {
491
511
  ...this.appearance(),
@@ -504,10 +524,12 @@ var ThemingService = class ThemingService {
504
524
  if (this.isBrowser) this.writeStored("theme", theme);
505
525
  }
506
526
  setPalette(palette) {
507
- if (!this.palettes.some((item) => item.id === palette)) return;
508
- this._palette.set(palette);
509
- for (const item of this.palettes) this.document.documentElement.classList.toggle(item.className, item.id === palette);
510
- if (this.isBrowser) this.writeStored("theme-palette", palette);
527
+ const id = resolveThemeId(palette);
528
+ if (!id) return;
529
+ this._palette.set(id);
530
+ for (const legacy of Object.keys(LEGACY_THEME_IDS)) this.document.documentElement.classList.remove(`theme-${legacy}`);
531
+ for (const item of this.palettes) this.document.documentElement.classList.toggle(item.className, item.id === id);
532
+ if (this.isBrowser) this.writeStored("theme-palette", id);
511
533
  }
512
534
  setHighContrast(enabled) {
513
535
  this._highContrast.set(enabled);
@@ -975,12 +997,29 @@ i0.ɵɵngDeclareClassMetadata({
975
997
  const DEFAULT_DEBOUNCE_TIME = 300;
976
998
  const SCROLL_LOCK_INSTANCE_IDENTIFIER = "scroll_lock_instance_";
977
999
  const PALETTE_NAMES = [
1000
+ "primary",
1001
+ "accent",
1002
+ "graphite",
1003
+ "sky-blue",
1004
+ "azure",
1005
+ "coral",
1006
+ "violet",
1007
+ "teal",
1008
+ "tangerine",
1009
+ "indigo",
1010
+ "scarlet",
1011
+ "cyan",
1012
+ "lime",
1013
+ "cool-violet",
1014
+ "cyber-yellow",
1015
+ "cyber-slate",
978
1016
  "blue",
979
1017
  "orange",
980
1018
  "purple",
981
1019
  "red",
982
1020
  "green",
983
1021
  "danger",
1022
+ "warn",
984
1023
  "success",
985
1024
  "information",
986
1025
  "neutral"
@@ -1014,6 +1053,17 @@ const SEMANTIC_PAIRS = {
1014
1053
  "text-brand": "bg-surface",
1015
1054
  "text-inverse": "primary",
1016
1055
  "on-primary": "primary",
1056
+ "on-primary-hover": "primary-hover",
1057
+ "on-primary-active": "primary-active",
1058
+ accent: "accent-subtle",
1059
+ "accent-hover": "on-accent-hover",
1060
+ "accent-active": "on-accent-active",
1061
+ "accent-subtle": "text-accent",
1062
+ "on-accent": "accent",
1063
+ "on-accent-hover": "accent-hover",
1064
+ "on-accent-active": "accent-active",
1065
+ "text-accent": "accent-subtle",
1066
+ "border-accent": "bg-surface",
1017
1067
  primary: "primary-subtle",
1018
1068
  "primary-hover": "on-primary",
1019
1069
  "primary-active": "on-primary",
@@ -1096,23 +1146,22 @@ function inheritOverlayTheme(source, pane) {
1096
1146
  const copied = /* @__PURE__ */ new Set();
1097
1147
  const refresh = () => {
1098
1148
  const styles = win.getComputedStyle(source);
1149
+ const inherited = win.getComputedStyle(pane.parentElement ?? pane);
1099
1150
  const current = /* @__PURE__ */ new Set();
1100
1151
  for (let index = 0; index < styles.length; index++) {
1101
1152
  const property = styles.item(index);
1102
- if (property.startsWith("--bx-") && property !== "--bx-glassiness" && !property.startsWith("--bx-glass-")) {
1103
- pane.style.setProperty(property, styles.getPropertyValue(property));
1104
- current.add(property);
1153
+ if (property.startsWith("--")) {
1154
+ const value = styles.getPropertyValue(property);
1155
+ if (value !== inherited.getPropertyValue(property)) {
1156
+ pane.style.setProperty(property, value);
1157
+ current.add(property);
1158
+ }
1105
1159
  }
1106
1160
  }
1107
1161
  for (const property of copied) if (!current.has(property)) pane.style.removeProperty(property);
1108
1162
  copied.clear();
1109
1163
  current.forEach((property) => copied.add(property));
1110
- pane.style.setProperty("--bx-glass-surface", "var(--bx-bg-surface)");
1111
- pane.style.setProperty("--bx-glass-text", "var(--bx-text-primary)");
1112
- pane.style.setProperty("--bx-glass-edge", "var(--bx-border-subtle)");
1113
- pane.style.setProperty("--bx-glass-accent", "var(--bx-primary)");
1114
1164
  pane.classList.toggle("bx-high-contrast-scope", !!source.closest(".high-contrast, .bx-high-contrast-scope"));
1115
- pane.style.color = "var(--bx-text-primary)";
1116
1165
  pane.style.fontFamily = styles.fontFamily;
1117
1166
  pane.style.colorScheme = styles.colorScheme;
1118
1167
  };
@@ -1132,6 +1181,61 @@ function inheritOverlayTheme(source, pane) {
1132
1181
  });
1133
1182
  return () => observer.disconnect();
1134
1183
  }
1135
- export { BREAKPOINTS, BX_I18N, BxA11yService, BxBaseControl, BxOverlayPositionService, BxShortcutService, DEFAULT_APPEARANCE_CONFIG, DEFAULT_DEBOUNCE_TIME, DesktopOS, DeviceTypeService, FALLBACK_COLOR, MobileOS, PALETTE_NAMES, SCROLL_LOCK_INSTANCE_IDENTIFIER, SEMANTIC_PAIRS, SHADE_NUMBERS, ScrollLockService, THEME_PALETTES, TOKEN_COLOR_DELIMITER, TOKEN_DELIMITER, TOKEN_PREFIX, ThemingService, WindowDimensionsService, getComplementaryToken, inheritOverlayTheme, invertPaletteToken, isOSShortcut, isPaletteToken, isTextWithKey, isThemedColor, resolveTokenToCssVar, uuidv4 };
1184
+ let nextAnchor = 0;
1185
+ function trackOverlayOrigin(overlay, origin) {
1186
+ const view = origin.ownerDocument.defaultView;
1187
+ const strategy = overlay.getConfig().positionStrategy;
1188
+ if (!view || !(strategy instanceof FlexibleConnectedPositionStrategy)) return () => {};
1189
+ const host = overlay.hostElement;
1190
+ const anchor = view.CSS?.supports("position-anchor", "--bx-origin") && !!(origin.compareDocumentPosition(host) & Node.DOCUMENT_POSITION_FOLLOWING) ? `--bx-overlay-origin-${++nextAnchor}` : null;
1191
+ const originalAnchor = origin.style.getPropertyValue("anchor-name");
1192
+ const originalPriority = origin.style.getPropertyPriority("anchor-name");
1193
+ if (anchor) {
1194
+ const names = view.getComputedStyle(origin).getPropertyValue("anchor-name").trim();
1195
+ origin.style.setProperty("anchor-name", names && names !== "none" ? `${names}, ${anchor}` : anchor);
1196
+ host.style.setProperty("position-anchor", anchor);
1197
+ }
1198
+ const reposition = () => {
1199
+ if (!overlay.hasAttached()) return;
1200
+ if (!anchor) {
1201
+ strategy.reapplyLastPosition();
1202
+ return;
1203
+ }
1204
+ host.classList.remove("bx-overlay-anchored");
1205
+ overlay.updatePosition();
1206
+ const source = origin.getBoundingClientRect();
1207
+ const target = host.getBoundingClientRect();
1208
+ host.style.setProperty("--bx-overlay-anchor-top", `calc(anchor(top) + ${target.top - source.top}px)`);
1209
+ host.style.setProperty("--bx-overlay-anchor-left", `calc(anchor(left) + ${target.left - source.left}px)`);
1210
+ host.classList.add("bx-overlay-anchored");
1211
+ };
1212
+ const onScroll = (event) => {
1213
+ const target = event.target;
1214
+ if (target === view || target instanceof Node && target.contains(origin)) reposition();
1215
+ };
1216
+ if (!anchor) view.addEventListener("scroll", onScroll, {
1217
+ capture: true,
1218
+ passive: true
1219
+ });
1220
+ view.addEventListener("resize", reposition, { passive: true });
1221
+ const resize = new view.ResizeObserver(reposition);
1222
+ resize.observe(origin);
1223
+ resize.observe(overlay.overlayElement);
1224
+ reposition();
1225
+ return () => {
1226
+ resize.disconnect();
1227
+ view.removeEventListener("resize", reposition);
1228
+ if (!anchor) view.removeEventListener("scroll", onScroll, true);
1229
+ else {
1230
+ host.classList.remove("bx-overlay-anchored");
1231
+ host.style.removeProperty("position-anchor");
1232
+ host.style.removeProperty("--bx-overlay-anchor-top");
1233
+ host.style.removeProperty("--bx-overlay-anchor-left");
1234
+ if (originalAnchor) origin.style.setProperty("anchor-name", originalAnchor, originalPriority);
1235
+ else origin.style.removeProperty("anchor-name");
1236
+ }
1237
+ };
1238
+ }
1239
+ export { BREAKPOINTS, BX_I18N, BxA11yService, BxBaseControl, BxOverlayPositionService, BxShortcutService, DEFAULT_APPEARANCE_CONFIG, DEFAULT_DEBOUNCE_TIME, DesktopOS, DeviceTypeService, FALLBACK_COLOR, LEGACY_THEME_IDS, MobileOS, PALETTE_NAMES, SCROLL_LOCK_INSTANCE_IDENTIFIER, SEMANTIC_PAIRS, SHADE_NUMBERS, ScrollLockService, THEME_PALETTES, TOKEN_COLOR_DELIMITER, TOKEN_DELIMITER, TOKEN_PREFIX, ThemingService, WindowDimensionsService, getComplementaryToken, inheritOverlayTheme, invertPaletteToken, isOSShortcut, isPaletteToken, isTextWithKey, isThemedColor, resolveThemeId, resolveTokenToCssVar, trackOverlayOrigin, uuidv4 };
1136
1240
 
1137
1241
  //# sourceMappingURL=filip.mazev-blocks-core.mjs.map