@editora/ui-core 0.1.12 → 0.1.14

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 (141) hide show
  1. package/README.md +95 -5
  2. package/dist/alert-dialog.cjs.js +18 -18
  3. package/dist/alert-dialog.esm.js +130 -117
  4. package/dist/app-header.cjs.js +22 -2
  5. package/dist/app-header.esm.js +22 -2
  6. package/dist/badge.cjs.js +5 -5
  7. package/dist/badge.esm.js +9 -8
  8. package/dist/color-picker.cjs.js +4 -4
  9. package/dist/color-picker.esm.js +40 -31
  10. package/dist/combobox.cjs.js +21 -21
  11. package/dist/combobox.esm.js +79 -40
  12. package/dist/command-palette.cjs.js +1 -1
  13. package/dist/command-palette.esm.js +2 -2
  14. package/dist/components/date-time-utils.d.ts +2 -1
  15. package/dist/components/date-time-utils.d.ts.map +1 -1
  16. package/dist/components/ui-alert-dialog.d.ts +2 -0
  17. package/dist/components/ui-alert-dialog.d.ts.map +1 -1
  18. package/dist/components/ui-app-header.d.ts.map +1 -1
  19. package/dist/components/ui-badge.d.ts.map +1 -1
  20. package/dist/components/ui-color-picker.d.ts.map +1 -1
  21. package/dist/components/ui-combobox.d.ts +4 -1
  22. package/dist/components/ui-combobox.d.ts.map +1 -1
  23. package/dist/components/ui-context-menu.d.ts +6 -0
  24. package/dist/components/ui-context-menu.d.ts.map +1 -1
  25. package/dist/components/ui-date-picker.d.ts +3 -0
  26. package/dist/components/ui-date-picker.d.ts.map +1 -1
  27. package/dist/components/ui-date-range-picker.d.ts +3 -0
  28. package/dist/components/ui-date-range-picker.d.ts.map +1 -1
  29. package/dist/components/ui-date-range-time-picker.d.ts +3 -0
  30. package/dist/components/ui-date-range-time-picker.d.ts.map +1 -1
  31. package/dist/components/ui-date-time-picker.d.ts +3 -0
  32. package/dist/components/ui-date-time-picker.d.ts.map +1 -1
  33. package/dist/components/ui-dialog.d.ts +3 -0
  34. package/dist/components/ui-dialog.d.ts.map +1 -1
  35. package/dist/components/ui-drawer.d.ts +14 -0
  36. package/dist/components/ui-drawer.d.ts.map +1 -1
  37. package/dist/components/ui-floating-toolbar.d.ts +3 -0
  38. package/dist/components/ui-floating-toolbar.d.ts.map +1 -1
  39. package/dist/components/ui-gantt.d.ts +30 -1
  40. package/dist/components/ui-gantt.d.ts.map +1 -1
  41. package/dist/components/ui-hover-card.d.ts +3 -0
  42. package/dist/components/ui-hover-card.d.ts.map +1 -1
  43. package/dist/components/ui-menu.d.ts +1 -0
  44. package/dist/components/ui-menu.d.ts.map +1 -1
  45. package/dist/components/ui-menubar.d.ts +1 -0
  46. package/dist/components/ui-menubar.d.ts.map +1 -1
  47. package/dist/components/ui-positioner.d.ts.map +1 -1
  48. package/dist/components/ui-quick-actions.d.ts.map +1 -1
  49. package/dist/components/ui-radio.d.ts +47 -0
  50. package/dist/components/ui-radio.d.ts.map +1 -0
  51. package/dist/components/ui-select.d.ts +8 -0
  52. package/dist/components/ui-select.d.ts.map +1 -1
  53. package/dist/components/ui-selection-popup.d.ts.map +1 -1
  54. package/dist/components/ui-stepper.d.ts.map +1 -1
  55. package/dist/components/ui-time-picker.d.ts +3 -0
  56. package/dist/components/ui-time-picker.d.ts.map +1 -1
  57. package/dist/context-menu.cjs.js +12 -12
  58. package/dist/context-menu.esm.js +160 -133
  59. package/dist/date-field.cjs.js +1 -1
  60. package/dist/date-field.esm.js +3 -2
  61. package/dist/date-picker.cjs.js +13 -13
  62. package/dist/date-picker.esm.js +101 -67
  63. package/dist/date-range-picker.cjs.js +14 -14
  64. package/dist/date-range-picker.esm.js +99 -65
  65. package/dist/date-range-time-picker.cjs.js +13 -13
  66. package/dist/date-range-time-picker.esm.js +77 -45
  67. package/dist/date-time-picker.cjs.js +13 -13
  68. package/dist/date-time-picker.esm.js +133 -101
  69. package/dist/date-time-utils-66480de4.js +1 -0
  70. package/dist/date-time-utils-a2c7af25.mjs +307 -0
  71. package/dist/dialog.cjs.js +29 -20
  72. package/dist/dialog.esm.js +90 -70
  73. package/dist/drawer.cjs.js +16 -16
  74. package/dist/drawer.esm.js +216 -98
  75. package/dist/floating-toolbar.cjs.js +6 -16
  76. package/dist/floating-toolbar.esm.js +57 -40
  77. package/dist/gantt.cjs.js +656 -74
  78. package/dist/gantt.esm.js +1050 -100
  79. package/dist/hover-card.cjs.js +4 -4
  80. package/dist/hover-card.esm.js +62 -39
  81. package/dist/index.cjs.js +1 -1
  82. package/dist/index.d.ts +2 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.esm.js +300 -286
  85. package/dist/menu.cjs.js +2 -2
  86. package/dist/menu.esm.js +118 -110
  87. package/dist/menubar.cjs.js +5 -5
  88. package/dist/menubar.esm.js +83 -78
  89. package/dist/{overlayManager-ece06517.js → overlayManager-0eda4e08.js} +1 -1
  90. package/dist/{overlayManager-86454af7.mjs → overlayManager-5bbd4dc3.mjs} +1 -1
  91. package/dist/popover.cjs.js +1 -1
  92. package/dist/popover.esm.js +2 -2
  93. package/dist/portal-c69756c0.js +1 -0
  94. package/dist/portal-fe73e5cc.mjs +123 -0
  95. package/dist/portal.d.ts +29 -3
  96. package/dist/portal.d.ts.map +1 -1
  97. package/dist/positioner-33529bb8.js +1 -0
  98. package/dist/positioner-e9770c66.mjs +582 -0
  99. package/dist/positioner.cjs.js +2 -2
  100. package/dist/positioner.esm.js +36 -26
  101. package/dist/primitives/positioner.d.ts +199 -1
  102. package/dist/primitives/positioner.d.ts.map +1 -1
  103. package/dist/quick-actions.cjs.js +10 -4
  104. package/dist/quick-actions.esm.js +27 -21
  105. package/dist/radio.cjs.js +259 -0
  106. package/dist/radio.esm.js +455 -0
  107. package/dist/{runtime-4ac0107b.mjs → runtime-161f68a2.mjs} +24 -23
  108. package/dist/runtime-3f13807b.js +1 -0
  109. package/dist/runtime.cjs.js +1 -1
  110. package/dist/runtime.d.ts +2 -0
  111. package/dist/runtime.d.ts.map +1 -1
  112. package/dist/runtime.esm.js +39 -24
  113. package/dist/scroll-lock-31da444f.mjs +56 -0
  114. package/dist/scroll-lock-d7b0df21.js +1 -0
  115. package/dist/scroll-lock.d.ts.map +1 -1
  116. package/dist/select.cjs.js +14 -15
  117. package/dist/select.esm.js +117 -97
  118. package/dist/selection-popup.cjs.js +4 -7
  119. package/dist/selection-popup.esm.js +8 -11
  120. package/dist/split-button.cjs.js +1 -1
  121. package/dist/split-button.esm.js +2 -2
  122. package/dist/standalone/radio.d.ts +2 -0
  123. package/dist/standalone/radio.d.ts.map +1 -0
  124. package/dist/stepper.cjs.js +19 -50
  125. package/dist/stepper.esm.js +17 -48
  126. package/dist/time-field.cjs.js +1 -1
  127. package/dist/time-field.esm.js +3 -2
  128. package/dist/time-picker.cjs.js +15 -15
  129. package/dist/time-picker.esm.js +100 -68
  130. package/dist/tooltip.cjs.js +1 -1
  131. package/dist/tooltip.esm.js +2 -1
  132. package/package.json +1 -1
  133. package/dist/date-time-utils-5cf58cd0.js +0 -1
  134. package/dist/date-time-utils-bdceb7af.mjs +0 -273
  135. package/dist/portal-1cf392ca.mjs +0 -114
  136. package/dist/portal-d8d7fbca.js +0 -1
  137. package/dist/positioner-accc6e5f.js +0 -1
  138. package/dist/positioner-fbd61bf1.mjs +0 -132
  139. package/dist/runtime-5f282bc8.js +0 -1
  140. package/dist/scroll-lock-48793569.js +0 -1
  141. package/dist/scroll-lock-9de6d328.mjs +0 -53
@@ -1,6 +1,6 @@
1
- import { E as Z } from "./ElementBase-909688f3.mjs";
2
- import { a as L, r as I } from "./scroll-lock-9de6d328.mjs";
3
- const G = `
1
+ import { E as J } from "./ElementBase-909688f3.mjs";
2
+ import { a as L, r as S } from "./scroll-lock-31da444f.mjs";
3
+ const Q = `
4
4
  :host {
5
5
  display: block;
6
6
  color-scheme: light dark;
@@ -499,53 +499,65 @@ const G = `
499
499
  border: 1px solid CanvasText;
500
500
  }
501
501
  }
502
- `, J = 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
503
- function h(i, t) {
504
- if (i == null)
502
+ `, X = 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
503
+ function p(e, t) {
504
+ if (e == null)
505
505
  return t;
506
- const e = i.trim().toLowerCase();
507
- return e !== "false" && e !== "0" && e !== "off";
506
+ const i = e.trim().toLowerCase();
507
+ return i !== "false" && i !== "0" && i !== "off";
508
508
  }
509
- function a(i) {
510
- return String(i).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
509
+ function a(e) {
510
+ return String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
511
511
  }
512
- function Q(i) {
513
- return i === "info" || i === "success" || i === "warning" || i === "danger" ? i : "neutral";
512
+ function tt(e) {
513
+ return e === "info" || e === "success" || e === "warning" || e === "danger" ? e : "neutral";
514
514
  }
515
- function X(i) {
516
- return i === "sm" || i === "1" ? "sm" : i === "lg" || i === "3" ? "lg" : "md";
515
+ function it(e) {
516
+ return e === "sm" || e === "1" ? "sm" : e === "lg" || e === "3" ? "lg" : "md";
517
517
  }
518
- function tt(i) {
519
- return i === "soft" || i === "outline" || i === "solid" ? i : "surface";
518
+ function et(e) {
519
+ return e === "soft" || e === "outline" || e === "solid" ? e : "surface";
520
520
  }
521
- function et(i) {
522
- return i === "none" || i === "high" ? i : "low";
521
+ function rt(e) {
522
+ return e === "none" || e === "high" ? e : "low";
523
523
  }
524
- function it(i) {
525
- return i === "none" ? "none" : "line";
524
+ function st(e) {
525
+ return e === "none" ? "none" : "line";
526
526
  }
527
- function rt(i, t = "var(--base-alert-dialog-radius, var(--ui-radius, 4px))") {
528
- if (i == null)
527
+ function at(e, t = "var(--base-alert-dialog-radius, var(--ui-radius, 4px))") {
528
+ if (e == null)
529
529
  return t;
530
- const e = i.trim().toLowerCase();
531
- return e ? e === "full" || e === "pill" ? "999px" : /^-?\d+(\.\d+)?$/.test(e) ? `${e}px` : i : t;
530
+ const i = e.trim().toLowerCase();
531
+ return i ? i === "full" || i === "pill" ? "999px" : /^-?\d+(\.\d+)?$/.test(i) ? `${i}px` : e : t;
532
532
  }
533
- const st = /* @__PURE__ */ new Set(["tone", "size", "variant", "elevation", "indicator", "radius"]);
534
- function at(i) {
535
- return i === "success" ? '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M5 10.2 8.3 13.4 15 6.8"></path></svg>' : i === "warning" ? '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M10 3.6 17 16.4H3L10 3.6Z"></path><path d="M10 8v3.4"></path><circle cx="10" cy="14.1" r="0.9" fill="currentColor" stroke="none"></circle></svg>' : i === "danger" ? '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><circle cx="10" cy="10" r="7.1"></circle><path d="m7.5 7.5 5 5M12.5 7.5l-5 5"></path></svg>' : i === "info" ? '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><circle cx="10" cy="10" r="7.1"></circle><path d="M10 13v-3.8"></path><circle cx="10" cy="6.5" r="0.9" fill="currentColor" stroke="none"></circle></svg>' : '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M6 10h8"></path><circle cx="10" cy="10" r="7.1"></circle></svg>';
533
+ const ot = /* @__PURE__ */ new Set(["tone", "size", "variant", "elevation", "indicator", "radius"]);
534
+ function nt(e) {
535
+ return e === "success" ? '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M5 10.2 8.3 13.4 15 6.8"></path></svg>' : e === "warning" ? '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M10 3.6 17 16.4H3L10 3.6Z"></path><path d="M10 8v3.4"></path><circle cx="10" cy="14.1" r="0.9" fill="currentColor" stroke="none"></circle></svg>' : e === "danger" ? '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><circle cx="10" cy="10" r="7.1"></circle><path d="m7.5 7.5 5 5M12.5 7.5l-5 5"></path></svg>' : e === "info" ? '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><circle cx="10" cy="10" r="7.1"></circle><path d="M10 13v-3.8"></path><circle cx="10" cy="6.5" r="0.9" fill="currentColor" stroke="none"></circle></svg>' : '<svg width="16" height="16" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M6 10h8"></path><circle cx="10" cy="10" r="7.1"></circle></svg>';
536
536
  }
537
537
  function l() {
538
538
  return typeof window < "u" && typeof document < "u";
539
539
  }
540
- function S() {
540
+ function $() {
541
541
  if (!l())
542
542
  return null;
543
- const i = document.activeElement;
544
- return i instanceof HTMLElement ? i : null;
543
+ const e = document.activeElement;
544
+ return e instanceof HTMLElement ? e : null;
545
545
  }
546
- const $ = class c extends Z {
546
+ function v(e) {
547
+ return typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => e()) : window.setTimeout(e, 16);
548
+ }
549
+ function h(e) {
550
+ if (e) {
551
+ if (typeof cancelAnimationFrame == "function") {
552
+ cancelAnimationFrame(e);
553
+ return;
554
+ }
555
+ window.clearTimeout(e);
556
+ }
557
+ }
558
+ const B = class c extends J {
547
559
  constructor() {
548
- super(), this._lastActive = null, this._active = !1, this._terminalEmitted = !1, this._closeMeta = null, this._uid = Math.random().toString(36).slice(2, 10), this._dialogId = "", this._config = {}, this._inputValue = "", this._checked = !1, this._runtimeError = "", this._activeHeadless = !1, this._onClick = this._onClick.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onFocusIn = this._onFocusIn.bind(this), this._onInput = this._onInput.bind(this), this._dialogId = this._uid;
560
+ super(), this._lastActive = null, this._active = !1, this._terminalEmitted = !1, this._closeMeta = null, this._uid = Math.random().toString(36).slice(2, 10), this._dialogId = "", this._config = {}, this._inputValue = "", this._checked = !1, this._runtimeError = "", this._activeHeadless = !1, this._focusInitialFrame = 0, this._restoreFocusFrame = 0, this._onClick = this._onClick.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onFocusIn = this._onFocusIn.bind(this), this._onInput = this._onInput.bind(this), this._dialogId = this._uid;
549
561
  }
550
562
  static get observedAttributes() {
551
563
  return [
@@ -579,11 +591,11 @@ const $ = class c extends Z {
579
591
  super.connectedCallback(), this.root.addEventListener("click", this._onClick), this.root.addEventListener("keydown", this._onKeyDown), this.root.addEventListener("input", this._onInput), this._syncFromAttributes(), this._syncVisualTokens(), this._syncOpenState();
580
592
  }
581
593
  disconnectedCallback() {
582
- this.root.removeEventListener("click", this._onClick), this.root.removeEventListener("keydown", this._onKeyDown), this.root.removeEventListener("input", this._onInput), this._active && !this._terminalEmitted && this.close("dismiss", "unmount"), this._deactivate(), super.disconnectedCallback();
594
+ this.root.removeEventListener("click", this._onClick), this.root.removeEventListener("keydown", this._onKeyDown), this.root.removeEventListener("input", this._onInput), this._focusInitialFrame && (h(this._focusInitialFrame), this._focusInitialFrame = 0), this._restoreFocusFrame && (h(this._restoreFocusFrame), this._restoreFocusFrame = 0), this._active && !this._terminalEmitted && this.close("dismiss", "unmount"), this._deactivate(), super.disconnectedCallback();
583
595
  }
584
- attributeChangedCallback(t, e, r) {
585
- if (e !== r) {
586
- if (st.has(t)) {
596
+ attributeChangedCallback(t, i, r) {
597
+ if (i !== r) {
598
+ if (ot.has(t)) {
587
599
  this._syncVisualTokens();
588
600
  return;
589
601
  }
@@ -611,25 +623,25 @@ const $ = class c extends Z {
611
623
  t ? this.setAttribute("headless", "") : this.removeAttribute("headless");
612
624
  }
613
625
  get dismissible() {
614
- return h(this.getAttribute("dismissible"), !0);
626
+ return p(this.getAttribute("dismissible"), !0);
615
627
  }
616
628
  set dismissible(t) {
617
629
  this.setAttribute("dismissible", String(t));
618
630
  }
619
631
  get closeOnEsc() {
620
- return h(this.getAttribute("close-on-esc"), this.dismissible);
632
+ return p(this.getAttribute("close-on-esc"), this.dismissible);
621
633
  }
622
634
  set closeOnEsc(t) {
623
635
  this.setAttribute("close-on-esc", String(t));
624
636
  }
625
637
  get closeOnBackdrop() {
626
- return h(this.getAttribute("close-on-backdrop"), this.dismissible);
638
+ return p(this.getAttribute("close-on-backdrop"), this.dismissible);
627
639
  }
628
640
  set closeOnBackdrop(t) {
629
641
  this.setAttribute("close-on-backdrop", String(t));
630
642
  }
631
643
  get lockWhileLoading() {
632
- return h(this.getAttribute("lock-while-loading"), !0);
644
+ return p(this.getAttribute("lock-while-loading"), !0);
633
645
  }
634
646
  set lockWhileLoading(t) {
635
647
  this.setAttribute("lock-while-loading", String(t));
@@ -641,7 +653,7 @@ const $ = class c extends Z {
641
653
  this.setAttribute("role", t);
642
654
  }
643
655
  get tone() {
644
- return Q(this.getAttribute("tone"));
656
+ return tt(this.getAttribute("tone"));
645
657
  }
646
658
  set tone(t) {
647
659
  if (t === "neutral") {
@@ -651,7 +663,7 @@ const $ = class c extends Z {
651
663
  this.setAttribute("tone", t);
652
664
  }
653
665
  get size() {
654
- return X(this.getAttribute("size"));
666
+ return it(this.getAttribute("size"));
655
667
  }
656
668
  set size(t) {
657
669
  if (t === "md") {
@@ -661,7 +673,7 @@ const $ = class c extends Z {
661
673
  this.setAttribute("size", t);
662
674
  }
663
675
  get variant() {
664
- return tt(this.getAttribute("variant"));
676
+ return et(this.getAttribute("variant"));
665
677
  }
666
678
  set variant(t) {
667
679
  if (t === "surface") {
@@ -671,7 +683,7 @@ const $ = class c extends Z {
671
683
  this.setAttribute("variant", t);
672
684
  }
673
685
  get elevation() {
674
- return et(this.getAttribute("elevation"));
686
+ return rt(this.getAttribute("elevation"));
675
687
  }
676
688
  set elevation(t) {
677
689
  if (t === "low") {
@@ -681,7 +693,7 @@ const $ = class c extends Z {
681
693
  this.setAttribute("elevation", t);
682
694
  }
683
695
  get indicator() {
684
- return it(this.getAttribute("indicator"));
696
+ return st(this.getAttribute("indicator"));
685
697
  }
686
698
  set indicator(t) {
687
699
  if (t === "line") {
@@ -731,8 +743,8 @@ const $ = class c extends Z {
731
743
  return this._config;
732
744
  }
733
745
  set config(t) {
734
- var e, r;
735
- this._config = t || {}, this._config.id && (this._dialogId = this._config.id), this._config.dismissible != null && (this.dismissible = !!this._config.dismissible), this._config.closeOnEsc != null && (this.closeOnEsc = !!this._config.closeOnEsc), this._config.closeOnBackdrop != null && (this.closeOnBackdrop = !!this._config.closeOnBackdrop), this._config.lockWhileLoading != null && (this.lockWhileLoading = !!this._config.lockWhileLoading), this._config.role && (this.roleType = this._config.role), this._config.tone && (this.tone = this._config.tone), this._config.size && (this.size = this._config.size), this._config.variant && (this.variant = this._config.variant), this._config.elevation && (this.elevation = this._config.elevation), this._config.indicator && (this.indicator = this._config.indicator), this._config.radius != null && (this.radius = String(this._config.radius)), this._config.ariaLabel && this.setAttribute("aria-label", this._config.ariaLabel), this._config.ariaLabelledby && this.setAttribute("aria-labelledby", this._config.ariaLabelledby), this._config.ariaDescribedby && this.setAttribute("aria-describedby", this._config.ariaDescribedby), this._config.initialFocus && (this.initialFocus = this._config.initialFocus), this._config.headless != null && (this.headless = !!this._config.headless), this._inputValue = ((e = this._config.input) == null ? void 0 : e.value) ?? this._inputValue, this._checked = ((r = this._config.checkbox) == null ? void 0 : r.checked) ?? this._checked, this._runtimeError = this._config.errorMessage || "", this._syncVisualTokens(), this.requestRender();
746
+ var i, r;
747
+ this._config = t || {}, this._config.id && (this._dialogId = this._config.id), this._config.dismissible != null && (this.dismissible = !!this._config.dismissible), this._config.closeOnEsc != null && (this.closeOnEsc = !!this._config.closeOnEsc), this._config.closeOnBackdrop != null && (this.closeOnBackdrop = !!this._config.closeOnBackdrop), this._config.lockWhileLoading != null && (this.lockWhileLoading = !!this._config.lockWhileLoading), this._config.role && (this.roleType = this._config.role), this._config.tone && (this.tone = this._config.tone), this._config.size && (this.size = this._config.size), this._config.variant && (this.variant = this._config.variant), this._config.elevation && (this.elevation = this._config.elevation), this._config.indicator && (this.indicator = this._config.indicator), this._config.radius != null && (this.radius = String(this._config.radius)), this._config.ariaLabel && this.setAttribute("aria-label", this._config.ariaLabel), this._config.ariaLabelledby && this.setAttribute("aria-labelledby", this._config.ariaLabelledby), this._config.ariaDescribedby && this.setAttribute("aria-describedby", this._config.ariaDescribedby), this._config.initialFocus && (this.initialFocus = this._config.initialFocus), this._config.headless != null && (this.headless = !!this._config.headless), this._inputValue = ((i = this._config.input) == null ? void 0 : i.value) ?? this._inputValue, this._checked = ((r = this._config.checkbox) == null ? void 0 : r.checked) ?? this._checked, this._runtimeError = this._config.errorMessage || "", this._syncVisualTokens(), this.requestRender();
736
748
  }
737
749
  getInputValue() {
738
750
  const t = this.root.querySelector(".input");
@@ -740,8 +752,8 @@ const $ = class c extends Z {
740
752
  }
741
753
  setInputValue(t) {
742
754
  this._inputValue = t;
743
- const e = this.root.querySelector(".input");
744
- e && (e.value = t);
755
+ const i = this.root.querySelector(".input");
756
+ i && (i.value = t);
745
757
  }
746
758
  getChecked() {
747
759
  const t = this.root.querySelector(".checkbox-input");
@@ -749,8 +761,8 @@ const $ = class c extends Z {
749
761
  }
750
762
  setChecked(t) {
751
763
  this._checked = t;
752
- const e = this.root.querySelector(".checkbox-input");
753
- e && (e.checked = t);
764
+ const i = this.root.querySelector(".checkbox-input");
765
+ i && (i.checked = t);
754
766
  }
755
767
  setError(t) {
756
768
  this._runtimeError = t, this.state = t ? "error" : "idle", this.requestRender();
@@ -758,14 +770,14 @@ const $ = class c extends Z {
758
770
  clearError() {
759
771
  this._runtimeError = "", this.state === "error" && (this.state = "idle"), this.requestRender();
760
772
  }
761
- close(t = "dismiss", e, r) {
762
- this._terminalEmitted || (this._closeMeta = { action: t, source: e, reason: r }, this.hasAttribute("open") && this.removeAttribute("open"), this._syncOpenState());
773
+ close(t = "dismiss", i, r) {
774
+ this._terminalEmitted || (this._closeMeta = { action: t, source: i, reason: r }, this.hasAttribute("open") && this.removeAttribute("open"), this._syncOpenState());
763
775
  }
764
776
  _syncFromAttributes() {
765
777
  this.hasAttribute("role") || this.setAttribute("role", "alertdialog");
766
778
  }
767
779
  _syncVisualTokens() {
768
- this.style.setProperty("--ui-alert-radius", rt(this.getAttribute("radius")));
780
+ this.style.setProperty("--ui-alert-radius", at(this.getAttribute("radius")));
769
781
  }
770
782
  _syncOpenState() {
771
783
  const t = this.hasAttribute("open");
@@ -776,18 +788,18 @@ const $ = class c extends Z {
776
788
  !t && this._active && this._deactivate();
777
789
  }
778
790
  _activate() {
779
- this._active = !0, this._activeHeadless = this.headless, this._terminalEmitted = !1, this._closeMeta = null, c._openStack.includes(this) || c._openStack.push(this), this._lastActive = this.headless ? null : S(), this.headless || L(), l() && !this.headless && document.addEventListener("focusin", this._onFocusIn, !0);
791
+ this._active = !0, this._activeHeadless = this.headless, this._terminalEmitted = !1, this._closeMeta = null, c._openStack.includes(this) || c._openStack.push(this), this._lastActive = this.headless ? null : $(), this.headless || L(), l() && !this.headless && document.addEventListener("focusin", this._onFocusIn, !0);
780
792
  const t = this.dialogId || this._uid;
781
- this._dispatchWithLegacy("ui-open", "open", { id: t }), this.headless || setTimeout(() => {
782
- this._focusInitial();
783
- }, 0), this.requestRender();
793
+ this._dispatchWithLegacy("ui-open", "open", { id: t }), this.headless || (this._focusInitialFrame && h(this._focusInitialFrame), this._focusInitialFrame = v(() => {
794
+ this._focusInitialFrame = 0, this._focusInitial();
795
+ })), this.requestRender();
784
796
  }
785
797
  _deactivate() {
786
798
  if (!this._active)
787
799
  return;
788
800
  this._active = !1;
789
801
  const t = c._openStack.lastIndexOf(this);
790
- if (t >= 0 && c._openStack.splice(t, 1), l() && !this._activeHeadless && document.removeEventListener("focusin", this._onFocusIn, !0), this._activeHeadless || I(), !this._terminalEmitted) {
802
+ if (t >= 0 && c._openStack.splice(t, 1), l() && !this._activeHeadless && document.removeEventListener("focusin", this._onFocusIn, !0), this._activeHeadless || S(), !this._terminalEmitted) {
791
803
  const r = this._closeMeta || { action: "dismiss", source: "abort" }, s = this.dialogId || this._uid;
792
804
  r.action === "cancel" ? this._dispatchWithLegacy("ui-cancel", "cancel", { id: s }) : r.action === "dismiss" && this._dispatchWithLegacy("ui-dismiss", "dismiss", {
793
805
  id: s,
@@ -800,26 +812,27 @@ const $ = class c extends Z {
800
812
  reason: r.reason
801
813
  }), this._terminalEmitted = !0, this._closeMeta = null;
802
814
  }
803
- const e = this._lastActive;
804
- this._lastActive = null, e && !this._activeHeadless && setTimeout(() => {
815
+ const i = this._lastActive;
816
+ this._lastActive = null, i && !this._activeHeadless && (this._restoreFocusFrame && h(this._restoreFocusFrame), this._restoreFocusFrame = v(() => {
817
+ this._restoreFocusFrame = 0;
805
818
  try {
806
- e.focus();
819
+ i.focus();
807
820
  } catch {
808
821
  }
809
- }, 0), this._activeHeadless = !1, this.requestRender();
822
+ })), this._activeHeadless = !1, this.requestRender();
810
823
  }
811
824
  _syncActiveEnvironment() {
812
825
  if (this._active && this.headless !== this._activeHeadless) {
813
826
  if (this.headless) {
814
- l() && document.removeEventListener("focusin", this._onFocusIn, !0), I(), this._lastActive = null, this._activeHeadless = !0;
827
+ l() && document.removeEventListener("focusin", this._onFocusIn, !0), S(), this._lastActive = null, this._activeHeadless = !0;
815
828
  return;
816
829
  }
817
- this._lastActive = S(), L(), l() && document.addEventListener("focusin", this._onFocusIn, !0), this._activeHeadless = !1, setTimeout(() => {
818
- this._focusInitial();
819
- }, 0);
830
+ this._lastActive = $(), L(), l() && document.addEventListener("focusin", this._onFocusIn, !0), this._activeHeadless = !1, this._focusInitialFrame && h(this._focusInitialFrame), this._focusInitialFrame = v(() => {
831
+ this._focusInitialFrame = 0, this._focusInitial();
832
+ });
820
833
  }
821
834
  }
822
- _dispatchWithLegacy(t, e, r, s = !1) {
835
+ _dispatchWithLegacy(t, i, r, s = !1) {
823
836
  const o = new CustomEvent(t, {
824
837
  detail: r,
825
838
  bubbles: !0,
@@ -827,7 +840,7 @@ const $ = class c extends Z {
827
840
  cancelable: s
828
841
  });
829
842
  this.dispatchEvent(o);
830
- const n = new CustomEvent(e, {
843
+ const n = new CustomEvent(i, {
831
844
  detail: r,
832
845
  bubbles: !0,
833
846
  composed: !0,
@@ -845,10 +858,10 @@ const $ = class c extends Z {
845
858
  return this.root.querySelector(".dialog");
846
859
  }
847
860
  _collectFocusable(t) {
848
- return Array.from(t.querySelectorAll(J)).filter((e) => {
849
- if (e.disabled || e.getAttribute("aria-hidden") === "true")
861
+ return Array.from(t.querySelectorAll(X)).filter((i) => {
862
+ if (i.disabled || i.getAttribute("aria-hidden") === "true")
850
863
  return !1;
851
- const s = l() ? window.getComputedStyle(e) : null;
864
+ const s = l() ? window.getComputedStyle(i) : null;
852
865
  return !(s && (s.display === "none" || s.visibility === "hidden"));
853
866
  });
854
867
  }
@@ -858,9 +871,9 @@ const $ = class c extends Z {
858
871
  const t = this._queryPanel();
859
872
  if (!t)
860
873
  return;
861
- const e = this.initialFocus;
862
- if (e) {
863
- const n = t.querySelector(e);
874
+ const i = this.initialFocus;
875
+ if (i) {
876
+ const n = t.querySelector(i);
864
877
  if (n && typeof n.focus == "function") {
865
878
  n.focus();
866
879
  return;
@@ -876,17 +889,17 @@ const $ = class c extends Z {
876
889
  _handleTab(t) {
877
890
  if (t.key !== "Tab")
878
891
  return;
879
- const e = this._queryPanel();
880
- if (!e)
892
+ const i = this._queryPanel();
893
+ if (!i)
881
894
  return;
882
- const r = this._collectFocusable(e);
895
+ const r = this._collectFocusable(i);
883
896
  if (!r.length) {
884
- t.preventDefault(), e.focus();
897
+ t.preventDefault(), i.focus();
885
898
  return;
886
899
  }
887
900
  const s = this.root.activeElement || document.activeElement, o = r[0], n = r[r.length - 1];
888
901
  if (t.shiftKey) {
889
- (s === o || !s || !e.contains(s)) && (t.preventDefault(), n.focus());
902
+ (s === o || !s || !i.contains(s)) && (t.preventDefault(), n.focus());
890
903
  return;
891
904
  }
892
905
  s === n && (t.preventDefault(), o.focus());
@@ -894,15 +907,15 @@ const $ = class c extends Z {
894
907
  _onFocusIn(t) {
895
908
  if (!this.open || !this._isTopMost())
896
909
  return;
897
- const e = this._queryPanel();
898
- if (!e)
910
+ const i = this._queryPanel();
911
+ if (!i)
899
912
  return;
900
913
  const r = t.target;
901
- (typeof t.composedPath == "function" ? t.composedPath() : []).includes(e) || r && e.contains(r) || this._focusInitial();
914
+ (typeof t.composedPath == "function" ? t.composedPath() : []).includes(i) || r && i.contains(r) || this._focusInitial();
902
915
  }
903
916
  _onInput(t) {
904
- const e = t.target;
905
- e && (e.classList.contains("input") && (this._inputValue = e.value), e.classList.contains("checkbox-input") && (this._checked = e.checked), this._dispatchWithLegacy("ui-change", "change", {
917
+ const i = t.target;
918
+ i && (i.classList.contains("input") && (this._inputValue = i.value), i.classList.contains("checkbox-input") && (this._checked = i.checked), this._dispatchWithLegacy("ui-change", "change", {
906
919
  id: this.dialogId || this._uid,
907
920
  inputValue: this._inputValue,
908
921
  checked: this._checked
@@ -911,8 +924,8 @@ const $ = class c extends Z {
911
924
  _isInteractionLocked() {
912
925
  return this.state === "loading" && this.lockWhileLoading;
913
926
  }
914
- _requestDismiss(t, e) {
915
- this._isInteractionLocked() || this.close("dismiss", t, e);
927
+ _requestDismiss(t, i) {
928
+ this._isInteractionLocked() || this.close("dismiss", t, i);
916
929
  }
917
930
  _handleConfirm() {
918
931
  const t = {
@@ -928,21 +941,21 @@ const $ = class c extends Z {
928
941
  _onClick(t) {
929
942
  if (!this.open || !this._isTopMost())
930
943
  return;
931
- const e = t.target;
932
- if (e) {
933
- if (e.classList.contains("backdrop") && this.closeOnBackdrop) {
944
+ const i = t.target;
945
+ if (i) {
946
+ if (i.classList.contains("backdrop") && this.closeOnBackdrop) {
934
947
  this._requestDismiss("backdrop");
935
948
  return;
936
949
  }
937
- if (e.closest(".close")) {
950
+ if (i.closest(".close")) {
938
951
  this._requestDismiss("close-icon");
939
952
  return;
940
953
  }
941
- if (e.closest(".btn-confirm")) {
954
+ if (i.closest(".btn-confirm")) {
942
955
  this._handleConfirm();
943
956
  return;
944
957
  }
945
- e.closest(".btn-cancel") && this._handleCancel();
958
+ i.closest(".btn-cancel") && this._handleCancel();
946
959
  }
947
960
  }
948
961
  _onKeyDown(t) {
@@ -957,77 +970,77 @@ const $ = class c extends Z {
957
970
  }
958
971
  }
959
972
  render() {
960
- var y, w, A, z, E, C;
973
+ var A, F, z, I, E, C;
961
974
  if (!this.open) {
962
975
  this.setContent("");
963
976
  return;
964
977
  }
965
- const t = this._config.title ?? this.getAttribute("title") ?? "", e = this._config.description ?? this.getAttribute("description") ?? "", r = this._config.confirmText ?? this.getAttribute("confirm-text") ?? "Confirm", s = this._config.cancelText ?? this.getAttribute("cancel-text") ?? "Cancel", o = this._config.loadingText ?? this.getAttribute("loading-text") ?? "Working...", n = !!((y = this._config.input) != null && y.enabled), B = ((w = this._config.input) == null ? void 0 : w.label) || "Value", T = ((A = this._config.input) == null ? void 0 : A.placeholder) || "", q = !!((z = this._config.input) != null && z.required), F = !!((E = this._config.checkbox) != null && E.enabled), D = ((C = this._config.checkbox) == null ? void 0 : C.label) || "Remember this choice", M = this.state, p = this._runtimeError || this._config.errorMessage || this.getAttribute("error-message") || "", v = `ui-alert-title-${this._uid}`, m = `ui-alert-description-${this._uid}`, x = `ui-alert-error-${this._uid}`, O = !!this.querySelector('[slot="title"]'), V = !!this.querySelector('[slot="description"]'), H = !!this.querySelector('[slot="icon"]'), W = !!this.querySelector('[slot="footer"]'), R = !!this.querySelector('[slot="content"]'), g = O || !!t, b = V || !!e, P = H || g || b, j = this._config.showCancel ?? this.dismissible, K = this._config.showClose ?? this.dismissible, Y = this.tone, U = this.getAttribute("aria-label") || "", N = this.getAttribute("aria-labelledby") || "", _ = this.getAttribute("aria-describedby") || "", f = N || (g ? v : ""), k = U || (f ? "" : t || e || "Dialog"), u = [];
966
- _ ? u.push(_) : (b && u.push(m), p && u.push(x));
967
- const d = M === "loading";
978
+ const t = this._config.title ?? this.getAttribute("title") ?? "", i = this._config.description ?? this.getAttribute("description") ?? "", r = this._config.confirmText ?? this.getAttribute("confirm-text") ?? "Confirm", s = this._config.cancelText ?? this.getAttribute("cancel-text") ?? "Cancel", o = this._config.loadingText ?? this.getAttribute("loading-text") ?? "Working...", n = !!((A = this._config.input) != null && A.enabled), T = ((F = this._config.input) == null ? void 0 : F.label) || "Value", q = ((z = this._config.input) == null ? void 0 : z.placeholder) || "", D = !!((I = this._config.input) != null && I.required), M = !!((E = this._config.checkbox) != null && E.enabled), O = ((C = this._config.checkbox) == null ? void 0 : C.label) || "Remember this choice", V = this.state, f = this._runtimeError || this._config.errorMessage || this.getAttribute("error-message") || "", x = `ui-alert-title-${this._uid}`, _ = `ui-alert-description-${this._uid}`, k = `ui-alert-error-${this._uid}`, H = !!this.querySelector('[slot="title"]'), W = !!this.querySelector('[slot="description"]'), R = !!this.querySelector('[slot="icon"]'), P = !!this.querySelector('[slot="footer"]'), j = !!this.querySelector('[slot="content"]'), g = H || !!t, b = W || !!i, K = R || g || b, Y = this._config.showCancel ?? this.dismissible, U = this._config.showClose ?? this.dismissible, N = this.tone, Z = this.getAttribute("aria-label") || "", G = this.getAttribute("aria-labelledby") || "", y = this.getAttribute("aria-describedby") || "", m = G || (g ? x : ""), w = Z || (m ? "" : t || i || "Dialog"), u = [];
979
+ y ? u.push(y) : (b && u.push(_), f && u.push(k));
980
+ const d = V === "loading";
968
981
  this.setContent(`
969
- <style>${G}</style>
982
+ <style>${Q}</style>
970
983
  <div class="backdrop" part="backdrop" role="presentation" data-open="${String(this.open)}">
971
984
  <section
972
985
  class="dialog"
973
986
  part="dialog"
974
987
  role="${a(this.roleType)}"
975
988
  aria-modal="true"
976
- ${k ? `aria-label="${a(k)}"` : ""}
977
- ${f ? `aria-labelledby="${a(f)}"` : ""}
989
+ ${w ? `aria-label="${a(w)}"` : ""}
990
+ ${m ? `aria-labelledby="${a(m)}"` : ""}
978
991
  ${u.length ? `aria-describedby="${a(u.join(" "))}"` : ""}
979
992
  tabindex="-1"
980
993
  >
981
- ${K ? `<button class="close" part="close" aria-label="Close dialog">
994
+ ${U ? `<button class="close" part="close" aria-label="Close dialog">
982
995
  <svg width="14" height="14" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round">
983
996
  <path d="m6 6 8 8M14 6l-8 8"></path>
984
997
  </svg>
985
998
  </button>` : ""}
986
999
 
987
- ${P ? `<header class="header">
1000
+ ${K ? `<header class="header">
988
1001
  <div class="header-main">
989
1002
  <span class="icon-wrap" part="icon-wrap" aria-hidden="true">
990
1003
  <span class="icon" part="icon">
991
- <slot name="icon">${at(Y)}</slot>
1004
+ <slot name="icon">${nt(N)}</slot>
992
1005
  </span>
993
1006
  </span>
994
1007
  <div class="heading">
995
- ${g ? `<h2 id="${v}" class="title" part="title"><slot name="title">${a(t)}</slot></h2>` : ""}
996
- ${b ? `<p id="${m}" class="description" part="description"><slot name="description">${a(e)}</slot></p>` : ""}
1008
+ ${g ? `<h2 id="${x}" class="title" part="title"><slot name="title">${a(t)}</slot></h2>` : ""}
1009
+ ${b ? `<p id="${_}" class="description" part="description"><slot name="description">${a(i)}</slot></p>` : ""}
997
1010
  </div>
998
1011
  </div>
999
1012
  </header>` : ""}
1000
1013
 
1001
1014
  <div class="content" part="content">
1002
- ${R ? '<slot name="content"></slot>' : "<slot></slot>"}
1015
+ ${j ? '<slot name="content"></slot>' : "<slot></slot>"}
1003
1016
 
1004
1017
  ${n ? `<label class="input-wrap">
1005
- <span class="label">${a(B)}</span>
1018
+ <span class="label">${a(T)}</span>
1006
1019
  <input
1007
1020
  class="input"
1008
1021
  part="input"
1009
1022
  type="text"
1010
1023
  value="${a(this.getInputValue())}"
1011
- placeholder="${a(T)}"
1012
- ${q ? "required" : ""}
1024
+ placeholder="${a(q)}"
1025
+ ${D ? "required" : ""}
1013
1026
  ${d ? "disabled" : ""}
1014
1027
  />
1015
1028
  </label>` : ""}
1016
1029
 
1017
- ${F ? `<label class="checkbox" part="checkbox">
1030
+ ${M ? `<label class="checkbox" part="checkbox">
1018
1031
  <span class="checkbox-line">
1019
1032
  <input class="checkbox-input" type="checkbox" ${this.getChecked() ? "checked" : ""} ${d ? "disabled" : ""} />
1020
- <span>${a(D)}</span>
1033
+ <span>${a(O)}</span>
1021
1034
  </span>
1022
1035
  </label>` : ""}
1023
1036
  </div>
1024
1037
 
1025
- <div class="error" id="${x}" part="error" aria-live="polite" data-empty="${String(!p)}">${a(p)}</div>
1038
+ <div class="error" id="${k}" part="error" aria-live="polite" data-empty="${String(!f)}">${a(f)}</div>
1026
1039
 
1027
1040
  <footer class="footer" part="footer">
1028
1041
  ${d ? `<span class="loading"><span class="spinner" aria-hidden="true"></span><span>${a(o)}</span></span>` : '<span aria-hidden="true"></span>'}
1029
1042
 
1030
- ${W ? '<slot name="footer"></slot>' : `${j ? `<button class="btn btn-cancel" part="cancel" type="button" ${d ? "disabled" : ""}>${a(s)}</button>` : ""}
1043
+ ${P ? '<slot name="footer"></slot>' : `${Y ? `<button class="btn btn-cancel" part="cancel" type="button" ${d ? "disabled" : ""}>${a(s)}</button>` : ""}
1031
1044
  <button class="btn btn-confirm" part="confirm" type="button" ${d ? "disabled" : ""}>${a(r)}</button>`}
1032
1045
  </footer>
1033
1046
  </section>
@@ -1035,9 +1048,9 @@ const $ = class c extends Z {
1035
1048
  `);
1036
1049
  }
1037
1050
  };
1038
- $._openStack = [];
1039
- let ot = $;
1040
- typeof customElements < "u" && !customElements.get("ui-alert-dialog") && customElements.define("ui-alert-dialog", ot);
1051
+ B._openStack = [];
1052
+ let lt = B;
1053
+ typeof customElements < "u" && !customElements.get("ui-alert-dialog") && customElements.define("ui-alert-dialog", lt);
1041
1054
  export {
1042
- ot as UIAlertDialog
1055
+ lt as UIAlertDialog
1043
1056
  };
@@ -6,6 +6,9 @@
6
6
  --ui-app-header-height-large: 76px;
7
7
  --ui-app-header-bg-base: var(--base-app-header-bg, var(--color-panel, var(--ui-color-surface, #ffffff)));
8
8
  --ui-app-header-bg: var(--ui-app-header-bg-base);
9
+ --ui-app-header-sticky-bg-base: var(--base-app-header-sticky-bg, var(--ui-color-surface, #ffffff));
10
+ --ui-app-header-surface-bg: var(--ui-app-header-bg);
11
+ --ui-app-header-surface-backdrop: blur(6px) saturate(1.05);
9
12
  --ui-app-header-color: var(--ui-color-text, var(--ui-text, #202020));
10
13
  --ui-app-header-muted: color-mix(in srgb, var(--ui-app-header-color) 56%, var(--ui-color-muted, var(--ui-muted, #646464)) 44%);
11
14
  --ui-app-header-accent: var(--ui-color-primary, var(--ui-primary, #2563eb));
@@ -114,6 +117,22 @@
114
117
  position: sticky;
115
118
  top: 0;
116
119
  z-index: var(--ui-app-header-z);
120
+ --ui-app-header-surface-bg: var(--ui-app-header-sticky-bg-base);
121
+ --ui-app-header-surface-backdrop: none;
122
+ contain: paint;
123
+ }
124
+
125
+ :host([sticky][variant='soft']) {
126
+ --ui-app-header-surface-bg: color-mix(in srgb, var(--ui-app-header-accent) 8%, var(--ui-app-header-sticky-bg-base));
127
+ }
128
+
129
+ :host([sticky][variant='solid']) {
130
+ --ui-app-header-surface-bg: var(--ui-app-header-accent);
131
+ }
132
+
133
+ :host([sticky]) header {
134
+ transform: translateZ(0);
135
+ backface-visibility: hidden;
117
136
  }
118
137
 
119
138
  header {
@@ -123,14 +142,15 @@
123
142
  grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto);
124
143
  align-items: center;
125
144
  gap: var(--ui-app-header-gap);
126
- background: var(--ui-app-header-bg);
145
+ background: var(--ui-app-header-surface-bg);
127
146
  color: var(--ui-app-header-color);
128
147
  border: var(--ui-app-header-border);
129
148
  padding: 0 var(--ui-app-header-padding-x);
130
149
  box-sizing: border-box;
131
150
  border-radius: var(--ui-app-header-radius);
132
151
  box-shadow: var(--ui-app-header-shadow);
133
- backdrop-filter: blur(6px) saturate(1.05);
152
+ -webkit-backdrop-filter: var(--ui-app-header-surface-backdrop);
153
+ backdrop-filter: var(--ui-app-header-surface-backdrop);
134
154
  transition:
135
155
  background var(--ui-app-header-duration) var(--ui-app-header-easing),
136
156
  border-color var(--ui-app-header-duration) var(--ui-app-header-easing),