@nonamelego/dsh-catppuccin 0.6.3-beta.0 → 0.6.3-beta.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.
- package/lib/client.js +116 -15
- package/lib/client.js.map +1 -1
- package/lib/index.js +7 -4
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -590,7 +590,7 @@ window.__ModuleLoader__.load({
|
|
|
590
590
|
* (item II — lazy CSS), so editing the stylesheet means editing
|
|
591
591
|
* glass.module.css and rebuilding.
|
|
592
592
|
*/
|
|
593
|
-
const GLASS_CSS_TEXT = "[data-dsh-glass] body{--dsh-glass-card:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(52% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-card-raised:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(64% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-card-hover:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(76% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-rim:color-mix(in srgb, var(--dsw-alias-label-primary) 18%, transparent);--dsh-glass-rim-soft:color-mix(in srgb, var(--dsw-alias-label-primary) 12%, transparent);--dsh-glass-rim-strong:color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);--dsh-glass-edge:inset 0 1px 0 #ffffff6b;--dsh-glass-drop:0 10px 32px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 38%, transparent);--dsh-glass-input-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 65%, transparent), 0 8px 24px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 80%, transparent);--dsh-glass-ground:color-mix(in srgb, color-mix(in srgb, var(--dsw-alias-bg-base), #fff calc(var(--dsh-glass-brightness-white,0) * 100%)), #000 calc(var(--dsh-glass-brightness-black,0) * 100%));--dsh-glass-ambience:calc(1 - var(--dsh-glass-brightness-white,0) - var(--dsh-glass-brightness-black,0));--dsh-glass-wash-tint:#fff;--dsh-glass-wash-mix:22%}[data-dsh-glass] body[data-ds-dark-theme]{--dsh-glass-rim:color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);--dsh-glass-rim-soft:color-mix(in srgb, var(--dsw-alias-label-primary) 16%, transparent);--dsh-glass-rim-strong:color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);--dsh-glass-edge:inset 0 1px 0 #ffffff14;--dsh-glass-drop:0 10px 32px #02060e73;--dsh-glass-input-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 65%, transparent), 0 8px 24px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 80%, transparent);--dsh-glass-wash-tint:var(--dsw-alias-bg-layer-1);--dsh-glass-wash-mix:68%}[data-dsh-glass] body{background: radial-gradient(58% 46% at 18% 6%, color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) calc(12% * var(--dsh-glass-ambience)), transparent), transparent 68%), radial-gradient(48% 42% at 86% 14%, color-mix(in srgb, var(--dsw-alias-state-success-tertiary) calc(10% * var(--dsh-glass-ambience)), transparent), transparent 62%), linear-gradient(165deg, color-mix(in srgb, var(--dsh-glass-ground), var(--dsh-glass-wash-tint) calc(var(--dsh-glass-wash-mix) * var(--dsh-glass-ambience))) 0%, var(--dsh-glass-ground) 55%, color-mix(in srgb, var(--dsh-glass-ground), #000 calc(5% * var(--dsh-glass-ambience))) 100%)}[data-dsh-glass] [data-dsh-glass-frame],[data-dsh-glass] [data-phase],[data-dsh-glass] [data-dsh-glass-details]{background:0 0}[data-dsh-glass-float] [data-phase=active] header{z-index:8;position:relative}[data-dsh-glass-float] [class*=banner]{position:static}[data-dsh-glass-float] [data-phase=active] [data-conversation-scroll]{margin-top:-95px;padding-top:107px}[data-dsh-glass] [data-phase] [class*=composerSeat][class*=composerSeat]{background:0 0}[data-dsh-glass] [data-dsh-glass-fade]{z-index:7;pointer-events:none;backdrop-filter:blur(5px);background:#ffffff2e;height:13px;position:fixed;left:0;right:0}[data-dsh-glass] body[data-ds-dark-theme] [data-dsh-glass-fade]{background:#00000024}[data-dsh-glass] [data-dsh-glass-fade=top]{top:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000 100%)}[data-dsh-glass][data-windows-titlebar] [data-dsh-glass-fade=top]{display:none}[data-dsh-glass] [data-dsh-glass-fade=bottom]{bottom:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 100%);mask-image:linear-gradient(#0000 0%,#000 100%)}[data-dsh-glass-float] [data-menu-material=translucent],[data-dsh-glass-float] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-float] [role=dialog],[data-dsh-glass-float] [role=alert],[data-dsh-glass-float] [data-trigger-menu],[data-dsh-glass-float] [data-dsh-glass-surface]{border-radius:14px}[data-dsh-glass-float] [role=menuitem],[data-dsh-glass-float] [role=tooltip],[data-dsh-glass-float] [class*=pill]{border-radius:8px}[data-dsh-glass-float] button[class*=button]{border-radius:10px}[data-dsh-glass-float] [class*=iconButton],[data-dsh-glass-float] [class*=searchButton]{border-radius:8px}[data-dsh-glass-float] [class*=block]{--dsl-code-block-border-radius:14px;--dsl-diff-radius:14px;--dsl-read-radius:14px;--dsl-terminal-radius:14px;--dsl-web-radius:14px;--dsl-search-radius:14px;border-radius:14px}[data-dsh-glass-float] [data-dsh-glass-add]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-dsh-glass-add]:hover:not(:disabled){background:var(--dsh-glass-card-hover)}[data-dsh-glass-float] [data-dsh-glass-surface]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-dsh-glass-surface]:hover:not(:disabled){background:var(--dsh-glass-card-hover)}[data-dsh-glass-float] [data-conversation-scroll] [class*=bubble]{border:1px solid var(--dsh-glass-rim-soft);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(46% * var(--dsh-glass-frost,1)), transparent);border-radius:14px}[data-dsh-glass-float] [class*=card]{border-radius:14px}[data-dsh-glass] [data-dsh-glass-settings]{--dsh-glass-settings-raised:calc(38% + 38% * var(--dsh-glass-frost,1));--dsh-glass-settings-soft:calc(30% + 30% * var(--dsh-glass-frost,1));--dsw-alias-bg-module-platform:color-mix(in srgb, var(--dsw-static-neutral-bluish-800) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-3:color-mix(in srgb, var(--dsw-static-neutral-bluish-800) var(--dsh-glass-settings-soft), transparent);--dsw-alias-bg-layer-2:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-1:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-soft), transparent);--dsw-specific-sidebar-nav-item-active:color-mix(in srgb, var(--dsw-static-neutral-bluish-750) var(--dsh-glass-settings-raised), transparent);--dsw-specific-sidebar-nav-item-hover:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-soft), transparent)}[data-dsh-glass] body:not([data-ds-dark-theme]) [data-dsh-glass-settings]{--dsw-alias-bg-module-platform:color-mix(in srgb, var(--dsw-static-neutral-bluish-60) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-3:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-soft), transparent);--dsw-alias-bg-layer-2:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-1:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-soft), transparent);--dsw-specific-sidebar-nav-item-active:color-mix(in srgb, var(--dsw-static-neutral-bluish-100) var(--dsh-glass-settings-raised), transparent);--dsw-specific-sidebar-nav-item-hover:color-mix(in srgb, var(--dsw-static-neutral-bluish-75) var(--dsh-glass-settings-soft), transparent)}[data-dsh-glass-float] [data-phase] header{border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);backdrop-filter:blur(var(--dsh-glass-blur,14px));border-radius:20px;margin:12px 16px 0;padding:10px 16px 8px}[data-dsh-glass-float] [data-phase] header:after{display:none}[data-dsh-glass-float] [data-dsh-glass-frame][data-sidebar-collapsed] [data-phase] header{margin-left:28px}[data-dsh-glass-float] [class*=sidebarCol]{--dsw-specific-sidebar-fill:transparent;z-index:9;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-drop);border-radius:20px;margin:12px;padding:10px 12px 14px;position:relative;overflow:hidden}[data-dsh-glass-float] [class*=sidebarCol]:before{content:\"\";border-radius:inherit;background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge);z-index:-1;pointer-events:none;transition:border-radius .15s var(--ds-ease-in-out);position:absolute;inset:0}[data-dsh-glass-float] [data-dsh-glass-frame][data-sidebar-collapsed] [class*=sidebarCol]{transition:margin .15s var(--ds-ease-in-out), border-radius .15s var(--ds-ease-in-out);border-radius:16px;margin:12px -12px 12px 12px;padding:0}[data-dsh-glass-float] [data-dsh-glass-frame]:not([data-sidebar-collapsed]) [data-dsh-glass-sidebar-root]{width:100%!important}[data-dsh-glass-float] [data-dsh-glass-trajectory]{border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);width:calc(100% - 32px);height:calc(100% - 20px);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);border-radius:20px;margin:8px 16px 12px;overflow:hidden}[data-dsh-glass-float] [data-dsh-glass-trajectory] [role=toolbar],[data-dsh-glass-float] [data-dsh-glass-trajectory] section[aria-label=Trajectory\\ timeline]{background:0 0}[data-dsh-glass-float] [data-composer-card],[data-dsh-glass-float] [data-composer-card]:after{border-radius:24px}[data-dsh-glass-float] [data-composer-card]{z-index:8;isolation:isolate;border:1px solid var(--dsh-glass-rim-strong);box-shadow:var(--dsh-glass-input-shadow);background:0 0;position:relative}[data-dsh-glass-float] [data-composer-card]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass-float] [data-dsh-glass-inputbar]:not([class*=hero]):not(:has([data-dsh-glass-stats])){padding-bottom:12px}[data-dsh-glass-float] [role=treeitem][aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover)}[data-dsh-glass-float] button[class*=button]:hover:not(:disabled),[data-dsh-glass-float] [role=menuitem]:hover:not(:disabled){box-shadow:0 0 12px color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 20%, transparent)}[data-dsh-glass-float] [data-menu-material=translucent]:not(:focus-visible){--dsw-menu-surface-fill:var(--dsh-glass-card-raised);--dsw-menu-backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [role=menu]:not([data-menu-material]):not([data-menu-material] *){background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim-soft);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-menu-material=translucent]:has([role=group]>[role=menuitemradio]){--dsw-menu-surface-fill:color-mix(in srgb, var(--dsw-alias-bg-layer-2) 70%, transparent)}[data-dsh-glass-float] [data-menu-group]:has(>[role=menuitemradio])>[data-menu-group-heading]{background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,14px));border-radius:999px;align-items:center;width:fit-content;margin:3px 0 5px 6px;padding:3px 10px;display:inline-flex}[data-dsh-glass-float] [role=dialog][aria-modal=true]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass] [data-conversation-scroll]{text-shadow:0 0 1px #ffffff80}[data-dsh-glass] body[data-ds-dark-theme] [data-conversation-scroll]{text-shadow:0 0 1px #0006}[data-dsh-glass-float] [data-dsh-glass-inputbar] [data-slot]{color:var(--dsw-alias-label-secondary)}[data-dsh-glass]{--dsh-glass-entry-scale:1}[data-dsh-glass-compat]{--dsh-glass-entry-scale:0}[data-dsh-glass] [data-testid^=view-]{animation:dsh-glass-in calc(.26s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out)}[data-dsh-glass] [data-tool]{animation:dsh-glass-rise calc(.3s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out) both}[data-dsh-glass] [role=dialog]{animation:dsh-glass-dialog-in calc(.24s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out)}@keyframes dsh-glass-in{0%{opacity:0}}@keyframes dsh-glass-rise{0%{opacity:0;transform:translateY(6px)}}@keyframes dsh-glass-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}[data-dsh-glass] :focus-visible{outline:2px solid color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 85%, transparent);outline-offset:1px}[data-dsh-glass] ::selection{background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 35%, transparent)}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-compat] [class*=popover],[data-dsh-glass-compat] [class*=dropdown]{backdrop-filter:blur(12px)}[data-dsh-glass-compat] [data-menu-material=translucent]:not(:focus-visible){--dsw-menu-surface-fill:var(--dsh-glass-card-raised);--dsw-menu-backdrop-filter:blur(12px)}[data-dsh-glass-compat] [data-sidebar-right-panel][data-sidebar-right-open],[data-dsh-glass-compat] [data-sidebar-right-panel][data-sidebar-right-open] [class*=panel]{backdrop-filter:blur(12px)}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-compat] [class*=popover],[data-dsh-glass-compat] [class*=dropdown]{background:var(--dsh-glass-card-raised)}[data-dsh-glass-compat] [data-composer-card]{isolation:isolate;backdrop-filter:none;background:0 0;position:relative}[data-dsh-glass-compat] [data-composer-card]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *):not(:focus-visible),[data-dsh-glass-compat] [data-composer-card]:not(:focus-visible),[data-dsh-glass-compat] [class*=popover]:not(:focus-visible),[data-dsh-glass-compat] [class*=dropdown]:not(:focus-visible){outline:1px solid var(--dsh-glass-rim);outline-offset:-1px}[data-dsh-glass-compat] [role=dialog][aria-modal=true]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);backdrop-filter:blur(var(--dsh-glass-blur,12px))}@media (prefers-reduced-motion:reduce){[data-dsh-glass] [data-testid^=view-],[data-dsh-glass] [data-tool],[data-dsh-glass] [role=dialog]{animation:none}}";
|
|
593
|
+
const GLASS_CSS_TEXT = "[data-dsh-glass] body{--dsh-glass-card:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(52% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-card-raised:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(64% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-card-hover:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(76% * var(--dsh-glass-frost,1)), transparent);--dsh-glass-rim:color-mix(in srgb, var(--dsw-alias-label-primary) 18%, transparent);--dsh-glass-rim-soft:color-mix(in srgb, var(--dsw-alias-label-primary) 12%, transparent);--dsh-glass-rim-strong:color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);--dsh-glass-edge:inset 0 1px 0 #ffffff6b;--dsh-glass-drop:0 10px 32px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 38%, transparent);--dsh-glass-input-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 65%, transparent), 0 8px 24px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 80%, transparent);--dsh-glass-ground:color-mix(in srgb, color-mix(in srgb, var(--dsw-alias-bg-base), #fff calc(var(--dsh-glass-brightness-white,0) * 100%)), #000 calc(var(--dsh-glass-brightness-black,0) * 100%));--dsh-glass-ambience:calc(1 - var(--dsh-glass-brightness-white,0) - var(--dsh-glass-brightness-black,0));--dsh-glass-wash-tint:#fff;--dsh-glass-wash-mix:22%}[data-dsh-glass] body[data-ds-dark-theme]{--dsh-glass-rim:color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);--dsh-glass-rim-soft:color-mix(in srgb, var(--dsw-alias-label-primary) 16%, transparent);--dsh-glass-rim-strong:color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);--dsh-glass-edge:inset 0 1px 0 #ffffff14;--dsh-glass-drop:0 10px 32px #02060e73;--dsh-glass-input-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 65%, transparent), 0 8px 24px color-mix(in srgb, var(--dsw-alias-bg-mask-2) 80%, transparent);--dsh-glass-wash-tint:var(--dsw-alias-bg-layer-1);--dsh-glass-wash-mix:68%}[data-dsh-glass] body{background: radial-gradient(58% 46% at 18% 6%, color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) calc(12% * var(--dsh-glass-ambience) * var(--dsh-glass-glow,0)), transparent), transparent 68%), radial-gradient(48% 42% at 86% 14%, color-mix(in srgb, var(--dsw-alias-state-success-tertiary) calc(10% * var(--dsh-glass-ambience) * var(--dsh-glass-glow,0)), transparent), transparent 62%), linear-gradient(165deg, color-mix(in srgb, var(--dsh-glass-ground), var(--dsh-glass-wash-tint) calc(var(--dsh-glass-wash-mix) * var(--dsh-glass-ambience))) 0%, var(--dsh-glass-ground) 55%, color-mix(in srgb, var(--dsh-glass-ground), #000 calc(5% * var(--dsh-glass-ambience))) 100%)}[data-dsh-glass] [data-dsh-glass-frame],[data-dsh-glass] [data-phase],[data-dsh-glass] [data-dsh-glass-details],[data-dsh-glass-float] [data-dsh-glass-frame]>[class*=centerCol]{background:0 0}[data-dsh-glass-float] [data-phase=active] header{z-index:8;position:relative}[data-dsh-glass-float] [class*=banner]{position:static}[data-dsh-glass-float] [data-phase=active] [data-conversation-scroll]{margin-top:-95px;padding-top:107px}[data-dsh-glass] [data-phase] [class*=composerSeat][class*=composerSeat]{background:0 0}[data-dsh-glass] [data-dsh-glass-fade]{z-index:7;pointer-events:none;backdrop-filter:blur(5px);background:#ffffff2e;height:13px;position:fixed;left:0;right:0}[data-dsh-glass] body[data-ds-dark-theme] [data-dsh-glass-fade]{background:#00000024}[data-dsh-glass] [data-dsh-glass-fade=top]{top:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000 100%)}[data-dsh-glass][data-windows-titlebar] [data-dsh-glass-fade=top]{display:none}[data-dsh-glass] [data-dsh-glass-fade=bottom]{bottom:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 100%);mask-image:linear-gradient(#0000 0%,#000 100%)}[data-dsh-glass-float] [data-menu-material=translucent],[data-dsh-glass-float] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-float] [role=dialog],[data-dsh-glass-float] [role=alert],[data-dsh-glass-float] [data-trigger-menu],[data-dsh-glass-float] [data-dsh-glass-surface]{border-radius:14px}[data-dsh-glass-float] [role=menuitem],[data-dsh-glass-float] [role=tooltip],[data-dsh-glass-float] [class*=pill]{border-radius:8px}[data-dsh-glass-float] button[class*=button]{border-radius:10px}[data-dsh-glass-float] [class*=iconButton],[data-dsh-glass-float] [class*=searchButton]{border-radius:8px}[data-dsh-glass-float] [class*=block]{--dsl-code-block-border-radius:14px;--dsl-diff-radius:14px;--dsl-read-radius:14px;--dsl-terminal-radius:14px;--dsl-web-radius:14px;--dsl-search-radius:14px;border-radius:14px}[data-dsh-glass-float] [data-dsh-glass-add]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-dsh-glass-add]:hover:not(:disabled){background:var(--dsh-glass-card-hover)}[data-dsh-glass-float] [data-dsh-glass-surface]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-dsh-glass-surface]:hover:not(:disabled){background:var(--dsh-glass-card-hover)}[data-dsh-glass-float] [data-conversation-scroll] [class*=bubble]{border:1px solid var(--dsh-glass-rim-soft);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(46% * var(--dsh-glass-frost,1)), transparent);border-radius:14px}[data-dsh-glass-float] [class*=card]{border-radius:14px}[data-dsh-glass-float] [data-reader-reasoning-card]:not([data-overflow=false][data-expanded=false]),[data-dsh-glass-compat] [data-reader-reasoning-card]:not([data-overflow=false][data-expanded=false]){background:color-mix(in srgb, var(--dsw-alias-bg-module-platform) calc(52% * var(--dsh-glass-frost,1)), transparent);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-changed-files],html[data-dsh-glass-float] [data-presented-file]{--changes-fill:var(--dsh-glass-card);--deliverable-fill:var(--dsh-glass-card);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-presented-file],html[data-dsh-glass-float] [data-changed-files]{background:var(--dsh-glass-card)}html[data-dsh-glass-float] [data-changed-files]>:first-child,html[data-dsh-glass-float] [data-changed-files] ul>li>:first-child,html[data-dsh-glass-float] [data-changed-files] ul{background:0 0}html[data-dsh-glass-float] [data-changed-files] ul{border-top:.5px solid var(--dsh-glass-rim-soft)}html[data-dsh-glass-float] [data-changed-files]>:first-child>:first-child,html[data-dsh-glass-float] [data-presented-file]>:first-child{background:var(--dsh-glass-card-raised)}html[data-dsh-glass-float] [data-turn-trigger]{background:var(--dsh-glass-card);border-color:var(--dsh-glass-rim-soft);border-radius:14px}html[data-dsh-glass-float] [data-turn-trigger]:hover{background:var(--dsh-glass-card-hover)}[data-dsh-glass] [data-dsh-glass-settings]{--dsh-glass-settings-raised:calc(38% + 38% * var(--dsh-glass-frost,1));--dsh-glass-settings-soft:calc(30% + 30% * var(--dsh-glass-frost,1));--dsw-alias-bg-module-platform:color-mix(in srgb, var(--dsw-static-neutral-bluish-800) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-3:color-mix(in srgb, var(--dsw-static-neutral-bluish-800) var(--dsh-glass-settings-soft), transparent);--dsw-alias-bg-layer-2:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-1:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-soft), transparent);--dsw-specific-sidebar-nav-item-active:color-mix(in srgb, var(--dsw-static-neutral-bluish-750) var(--dsh-glass-settings-raised), transparent);--dsw-specific-sidebar-nav-item-hover:color-mix(in srgb, var(--dsw-static-neutral-bluish-850) var(--dsh-glass-settings-soft), transparent)}[data-dsh-glass] body:not([data-ds-dark-theme]) [data-dsh-glass-settings]{--dsw-alias-bg-module-platform:color-mix(in srgb, var(--dsw-static-neutral-bluish-60) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-3:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-soft), transparent);--dsw-alias-bg-layer-2:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-raised), transparent);--dsw-alias-bg-layer-1:color-mix(in srgb, var(--dsw-static-neutral-bluish-00) var(--dsh-glass-settings-soft), transparent);--dsw-specific-sidebar-nav-item-active:color-mix(in srgb, var(--dsw-static-neutral-bluish-100) var(--dsh-glass-settings-raised), transparent);--dsw-specific-sidebar-nav-item-hover:color-mix(in srgb, var(--dsw-static-neutral-bluish-75) var(--dsh-glass-settings-soft), transparent)}[data-dsh-glass-float] [data-phase] header:not([class*=headerBlank]){border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);backdrop-filter:blur(var(--dsh-glass-blur,14px));border-radius:20px;margin:12px 16px 0;padding:10px 16px 8px}[data-dsh-glass-float] [data-phase] header:not([class*=headerBlank]):after{display:none}[data-dsh-glass-float] [data-dsh-glass-frame][data-sidebar-collapsed] [data-phase] header:not([class*=headerBlank]){margin-left:28px}[data-dsh-glass-float] [class*=sidebarCol]{--dsw-specific-sidebar-fill:transparent;z-index:9;border:1px solid var(--dsh-glass-rim-soft);box-shadow:var(--dsh-glass-drop);border-radius:20px;margin:12px;padding:10px 12px 14px;position:relative;overflow:hidden}[data-dsh-glass-float] [class*=sidebarCol]:before{content:\"\";border-radius:inherit;background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge);z-index:-1;pointer-events:none;transition:border-radius .15s var(--ds-ease-in-out);position:absolute;inset:0}[data-dsh-glass-float] body{--dsw-specific-sidebar-fill:color-mix(in srgb, var(--dsw-alias-bg-layer-1) calc(52% * var(--dsh-glass-frost,1)), color-mix(in srgb, var(--dsh-glass-ground), var(--dsh-glass-wash-tint) calc(var(--dsh-glass-wash-mix) * var(--dsh-glass-ambience))))!important}[data-dsh-glass-float] [data-dsh-glass-frame][data-sidebar-collapsed] [class*=sidebarCol]{transition:margin .15s var(--ds-ease-in-out), border-radius .15s var(--ds-ease-in-out);border-radius:16px;margin:12px -12px 12px 12px;padding:0}[data-dsh-glass-float] [data-dsh-glass-frame]:not([data-sidebar-collapsed]) [data-dsh-glass-sidebar-root]{width:100%!important}[data-dsh-glass-float] [data-dsh-glass-trajectory]{border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);width:calc(100% - 32px);height:calc(100% - 20px);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);border-radius:20px;margin:8px 16px 12px;overflow:hidden}[data-dsh-glass-float] [data-dsh-glass-trajectory] [role=toolbar],[data-dsh-glass-float] [data-dsh-glass-trajectory] section[aria-label=Trajectory\\ timeline]{background:0 0}[data-dsh-glass-float] [data-composer-card],[data-dsh-glass-float] [data-composer-card]:after{border-radius:24px}[data-dsh-glass-float] [data-composer-card]{z-index:8;isolation:isolate;border:1px solid var(--dsh-glass-rim-strong);box-shadow:var(--dsh-glass-input-shadow);background:0 0;position:relative}[data-dsh-glass-float] [data-composer-card]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass-float] [data-dsh-glass-inputbar]:not([class*=hero]):not(:has([data-dsh-glass-stats])){padding-bottom:12px}[data-dsh-glass-float] [role=treeitem][aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover)}[data-dsh-glass-float] button[class*=button]:hover:not(:disabled),[data-dsh-glass-float] [role=menuitem]:hover:not(:disabled){box-shadow:0 0 12px color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 20%, transparent)}[data-dsh-glass-float] [data-menu-material=translucent]:not(:focus-visible){--dsw-menu-surface-fill:var(--dsh-glass-card-raised);--dsw-menu-backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [role=menu]:not([data-menu-material]):not([data-menu-material] *){background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim-soft);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass-float] [data-menu-material=translucent]:has([role=group]>[role=menuitemradio]){--dsw-menu-surface-fill:color-mix(in srgb, var(--dsw-alias-bg-layer-2) 70%, transparent)}[data-dsh-glass-float] [data-menu-group]:has(>[role=menuitemradio])>[data-menu-group-heading]{background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,14px));border-radius:999px;align-items:center;width:fit-content;margin:3px 0 5px 6px;padding:3px 10px;display:inline-flex}[data-dsh-glass-float] [role=dialog][aria-modal=true]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge);backdrop-filter:blur(var(--dsh-glass-blur,14px))}[data-dsh-glass] [data-conversation-scroll]{text-shadow:0 0 1px #ffffff80}[data-dsh-glass] body[data-ds-dark-theme] [data-conversation-scroll]{text-shadow:0 0 1px #0006}[data-dsh-glass-float] [data-dsh-glass-inputbar] [data-slot]{color:var(--dsw-alias-label-secondary)}[data-dsh-glass]{--dsh-glass-entry-scale:1}[data-dsh-glass-compat]{--dsh-glass-entry-scale:0}[data-dsh-glass] [data-testid^=view-]{animation:dsh-glass-in calc(.26s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out)}[data-dsh-glass] [data-tool]{animation:dsh-glass-rise calc(.3s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out) both}[data-dsh-glass] [role=dialog]{animation:dsh-glass-dialog-in calc(.24s * var(--dsh-glass-entry-scale,1)) var(--ds-ease-in-out)}@keyframes dsh-glass-in{0%{opacity:0}}@keyframes dsh-glass-rise{0%{opacity:0;transform:translateY(6px)}}@keyframes dsh-glass-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}[data-dsh-glass] :focus-visible{outline:2px solid color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 85%, transparent);outline-offset:1px}[data-dsh-glass] ::selection{background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 35%, transparent)}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-compat] [class*=popover],[data-dsh-glass-compat] [class*=dropdown]{backdrop-filter:blur(12px)}[data-dsh-glass-compat] [data-menu-material=translucent]:not(:focus-visible){--dsw-menu-surface-fill:var(--dsh-glass-card-raised);--dsw-menu-backdrop-filter:blur(12px)}[data-dsh-glass-compat] [data-sidebar-right-panel][data-sidebar-right-open],[data-dsh-glass-compat] [data-sidebar-right-panel][data-sidebar-right-open] [class*=panel]{backdrop-filter:blur(12px)}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-compat] [class*=popover],[data-dsh-glass-compat] [class*=dropdown]{background:var(--dsh-glass-card-raised)}[data-dsh-glass-compat] [data-composer-card]{isolation:isolate;backdrop-filter:none;background:0 0;position:relative}[data-dsh-glass-compat] [data-composer-card]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}[data-dsh-glass-compat] [role=menu]:not([data-menu-material]):not([data-menu-material] *):not(:focus-visible),[data-dsh-glass-compat] [data-composer-card]:not(:focus-visible),[data-dsh-glass-compat] [class*=popover]:not(:focus-visible),[data-dsh-glass-compat] [class*=dropdown]:not(:focus-visible){outline:1px solid var(--dsh-glass-rim);outline-offset:-1px}[data-dsh-glass-compat] [role=dialog][aria-modal=true]{background:var(--dsh-glass-card-raised);border:1px solid var(--dsh-glass-rim);backdrop-filter:blur(var(--dsh-glass-blur,12px))}@media (prefers-reduced-motion:reduce){[data-dsh-glass] [data-testid^=view-],[data-dsh-glass] [data-tool],[data-dsh-glass] [role=dialog]{animation:none}}";
|
|
594
594
|
/** Legacy settings namespace (DSH <= 0.1.6-alpha.2): the Host registers it
|
|
595
595
|
* through `settings.installSection`, the Client binds it through
|
|
596
596
|
* `ctx.settingsScope` (see `src/settings-catppuccin.ts`). */
|
|
@@ -640,7 +640,8 @@ window.__ModuleLoader__.load({
|
|
|
640
640
|
mode: "mica",
|
|
641
641
|
blur: 5,
|
|
642
642
|
frost: 20,
|
|
643
|
-
brightness: 50
|
|
643
|
+
brightness: 50,
|
|
644
|
+
glow: false
|
|
644
645
|
};
|
|
645
646
|
/** Shipped update-check channel: chase the stable `latest` tag. */
|
|
646
647
|
const DEFAULT_UPDATE_CHANNEL = "latest";
|
|
@@ -708,6 +709,7 @@ window.__ModuleLoader__.load({
|
|
|
708
709
|
state.glass.blur = clampFinite(glass.blur, 0, 40, DEFAULT_GLASS.blur);
|
|
709
710
|
state.glass.frost = clampFinite(glass.frost, 0, 100, DEFAULT_GLASS.frost);
|
|
710
711
|
state.glass.brightness = clampFinite(glass.brightness, 0, 100, DEFAULT_GLASS.brightness);
|
|
712
|
+
state.glass.glow = glass.glow === true;
|
|
711
713
|
state.autoCheck = raw.autoCheck !== false;
|
|
712
714
|
state.updateChannel = raw.updateChannel === "beta" ? "beta" : "latest";
|
|
713
715
|
state.overrides = sanitizeOverrides(raw.overrides);
|
|
@@ -719,7 +721,7 @@ window.__ModuleLoader__.load({
|
|
|
719
721
|
* "no durable state yet" apart from "an explicit default choice". */
|
|
720
722
|
function isDefaultState(state) {
|
|
721
723
|
const expected = defaultState();
|
|
722
|
-
return state.flavor === expected.flavor && state.glass.enabled === expected.glass.enabled && state.glass.mode === expected.glass.mode && state.glass.blur === expected.glass.blur && state.glass.frost === expected.glass.frost && state.glass.brightness === expected.glass.brightness && state.autoCheck === expected.autoCheck && state.updateChannel === expected.updateChannel && Object.keys(state.overrides).length === 0 && state.shikiStyle === expected.shikiStyle;
|
|
724
|
+
return state.flavor === expected.flavor && state.glass.enabled === expected.glass.enabled && state.glass.mode === expected.glass.mode && state.glass.blur === expected.glass.blur && state.glass.frost === expected.glass.frost && state.glass.brightness === expected.glass.brightness && state.glass.glow === expected.glass.glow && state.autoCheck === expected.autoCheck && state.updateChannel === expected.updateChannel && Object.keys(state.overrides).length === 0 && state.shikiStyle === expected.shikiStyle;
|
|
723
725
|
}
|
|
724
726
|
/** Drop the synthetic `version` field: full state → settings-document section. */
|
|
725
727
|
function settingsSectionFromState(state) {
|
|
@@ -740,7 +742,7 @@ window.__ModuleLoader__.load({
|
|
|
740
742
|
/** Whether two settings sections are field-for-field equal (used to skip
|
|
741
743
|
* redundant mirror writes and to recognize the Host echoing our own write). */
|
|
742
744
|
function settingsSectionsEqual(a, b) {
|
|
743
|
-
return a.flavor === b.flavor && a.glass.enabled === b.glass.enabled && a.glass.mode === b.glass.mode && a.glass.blur === b.glass.blur && a.glass.frost === b.glass.frost && a.glass.brightness === b.glass.brightness && a.autoCheck === b.autoCheck && a.updateChannel === b.updateChannel && a.shikiStyle === b.shikiStyle && Object.keys(a.overrides).every((key) => b.overrides[key] === a.overrides[key]) && Object.keys(b.overrides).every((key) => a.overrides[key] === b.overrides[key]);
|
|
745
|
+
return a.flavor === b.flavor && a.glass.enabled === b.glass.enabled && a.glass.mode === b.glass.mode && a.glass.blur === b.glass.blur && a.glass.frost === b.glass.frost && a.glass.brightness === b.glass.brightness && a.glass.glow === b.glass.glow && a.autoCheck === b.autoCheck && a.updateChannel === b.updateChannel && a.shikiStyle === b.shikiStyle && Object.keys(a.overrides).every((key) => b.overrides[key] === a.overrides[key]) && Object.keys(b.overrides).every((key) => a.overrides[key] === b.overrides[key]);
|
|
744
746
|
}
|
|
745
747
|
//#endregion
|
|
746
748
|
//#region src/client/glass/glass-layer.ts
|
|
@@ -750,6 +752,19 @@ window.__ModuleLoader__.load({
|
|
|
750
752
|
const GLASS_FLOAT_ATTRIBUTE = "data-dsh-glass-float";
|
|
751
753
|
/** html attribute selecting the compatibility (stock-layout) rules. */
|
|
752
754
|
const GLASS_COMPAT_ATTRIBUTE = "data-dsh-glass-compat";
|
|
755
|
+
/** The knob-driven custom properties `applySettings()` publishes. They live on
|
|
756
|
+
* <html> (the stylesheet's root scope) and are MIRRORED onto <body> for one
|
|
757
|
+
* reason: the official desktop shell re-reads its native caption colour when
|
|
758
|
+
* <body>'s style attribute changes (`syncWindowsAppearance` in the shell's
|
|
759
|
+
* `lib/preload-app.cjs` observes that attribute, `data-ds-dark-theme` and
|
|
760
|
+
* the <head> subtree) — see `applySettings`. */
|
|
761
|
+
const GLASS_KNOB_PROPERTIES = [
|
|
762
|
+
"--dsh-glass-blur",
|
|
763
|
+
"--dsh-glass-frost",
|
|
764
|
+
"--dsh-glass-brightness-black",
|
|
765
|
+
"--dsh-glass-brightness-white",
|
|
766
|
+
"--dsh-glass-glow"
|
|
767
|
+
];
|
|
753
768
|
/** localStorage key carrying the layer enable flag. */
|
|
754
769
|
const GLASS_ENABLED_KEY = "dsh.catppuccin.glass.enabled";
|
|
755
770
|
/** Plugin identity stamped onto the lazily-mounted glass <style> tag (the
|
|
@@ -774,7 +789,8 @@ window.__ModuleLoader__.load({
|
|
|
774
789
|
mode: DEFAULT_GLASS.mode,
|
|
775
790
|
blur: DEFAULT_GLASS.blur,
|
|
776
791
|
frost: DEFAULT_GLASS.frost,
|
|
777
|
-
brightness: DEFAULT_GLASS.brightness
|
|
792
|
+
brightness: DEFAULT_GLASS.brightness,
|
|
793
|
+
glow: DEFAULT_GLASS.glow
|
|
778
794
|
};
|
|
779
795
|
/** Numeric knob keys and their localStorage names. */
|
|
780
796
|
const NUMERIC_KEYS = {
|
|
@@ -790,6 +806,8 @@ window.__ModuleLoader__.load({
|
|
|
790
806
|
* storage key, which silently killed cross-tab knob sync; audit F1). */
|
|
791
807
|
const NUMERIC_STORAGE_KEYS = Object.values(NUMERIC_KEYS);
|
|
792
808
|
const MODE_KEY = "dsh.catppuccin.glass.mode";
|
|
809
|
+
/** localStorage key of the ground-glow switch (issue #26). */
|
|
810
|
+
const GLOW_KEY = "dsh.catppuccin.glass.glow";
|
|
793
811
|
/** Clamp a numeric knob into its sane range. */
|
|
794
812
|
function clampSetting(key, value) {
|
|
795
813
|
const max = key === "blur" ? 40 : 100;
|
|
@@ -839,6 +857,21 @@ window.__ModuleLoader__.load({
|
|
|
839
857
|
localStorage.setItem(GLASS_ENABLED_KEY, String(value));
|
|
840
858
|
} catch {}
|
|
841
859
|
}
|
|
860
|
+
/** Read the ground-glow switch (absent storage means the shipped default: off). */
|
|
861
|
+
function readGlow() {
|
|
862
|
+
try {
|
|
863
|
+
const raw = localStorage.getItem(GLOW_KEY);
|
|
864
|
+
return raw === null ? SETTINGS_DEFAULTS.glow : raw === "true";
|
|
865
|
+
} catch {
|
|
866
|
+
return SETTINGS_DEFAULTS.glow;
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
/** Persist the ground-glow switch. */
|
|
870
|
+
function writeGlow(value) {
|
|
871
|
+
try {
|
|
872
|
+
localStorage.setItem(GLOW_KEY, String(value));
|
|
873
|
+
} catch {}
|
|
874
|
+
}
|
|
842
875
|
/** Resolved scheme from the theme service (falls back to the body attribute). */
|
|
843
876
|
function resolveDark(ctx) {
|
|
844
877
|
try {
|
|
@@ -888,7 +921,7 @@ window.__ModuleLoader__.load({
|
|
|
888
921
|
} else if (event.key === "dsh.catppuccin.glass.enabled") {
|
|
889
922
|
this.enabled = readEnabled();
|
|
890
923
|
this.sync();
|
|
891
|
-
} else if (event.key === MODE_KEY || NUMERIC_STORAGE_KEYS.includes(event.key)) {
|
|
924
|
+
} else if (event.key === MODE_KEY || event.key === GLOW_KEY || NUMERIC_STORAGE_KEYS.includes(event.key)) {
|
|
892
925
|
this.reloadSettings();
|
|
893
926
|
if (this.enabled) this.applySettings();
|
|
894
927
|
this.publish();
|
|
@@ -926,7 +959,8 @@ window.__ModuleLoader__.load({
|
|
|
926
959
|
mode: this.settings.mode,
|
|
927
960
|
blur: this.settings.blur,
|
|
928
961
|
frost: this.settings.frost,
|
|
929
|
-
brightness: this.settings.brightness
|
|
962
|
+
brightness: this.settings.brightness,
|
|
963
|
+
glow: this.settings.glow
|
|
930
964
|
};
|
|
931
965
|
}
|
|
932
966
|
/** Overlay durable state hydrated from the Host file: persist it to
|
|
@@ -938,13 +972,15 @@ window.__ModuleLoader__.load({
|
|
|
938
972
|
mode: remote.mode === "compat" ? "compat" : "mica",
|
|
939
973
|
blur: clampSetting("blur", remote.blur),
|
|
940
974
|
frost: clampSetting("frost", remote.frost),
|
|
941
|
-
brightness: clampSetting("brightness", remote.brightness)
|
|
975
|
+
brightness: clampSetting("brightness", remote.brightness),
|
|
976
|
+
glow: remote.glow === true
|
|
942
977
|
};
|
|
943
978
|
writeEnabled(this.enabled);
|
|
944
979
|
writeMode(this.settings.mode);
|
|
945
980
|
writeSetting("blur", this.settings.blur);
|
|
946
981
|
writeSetting("frost", this.settings.frost);
|
|
947
982
|
writeSetting("brightness", this.settings.brightness);
|
|
983
|
+
writeGlow(this.settings.glow);
|
|
948
984
|
this.sync();
|
|
949
985
|
}
|
|
950
986
|
/** Flip the layer: persist, then apply or retract every owned effect. */
|
|
@@ -989,6 +1025,14 @@ window.__ModuleLoader__.load({
|
|
|
989
1025
|
if (this.enabled) this.applySettings();
|
|
990
1026
|
this.publish();
|
|
991
1027
|
}
|
|
1028
|
+
/** Toggle the two static ground glows (issue #26; wash-only is the default). */
|
|
1029
|
+
setGlow(value) {
|
|
1030
|
+
if (value === this.settings.glow) return;
|
|
1031
|
+
this.settings.glow = value;
|
|
1032
|
+
writeGlow(value);
|
|
1033
|
+
if (this.enabled) this.applySettings();
|
|
1034
|
+
this.publish();
|
|
1035
|
+
}
|
|
992
1036
|
/** Restore every knob to the shipped defaults (persisted immediately). */
|
|
993
1037
|
resetDefaults() {
|
|
994
1038
|
this.settings = { ...SETTINGS_DEFAULTS };
|
|
@@ -996,6 +1040,7 @@ window.__ModuleLoader__.load({
|
|
|
996
1040
|
writeSetting("blur", this.settings.blur);
|
|
997
1041
|
writeSetting("frost", this.settings.frost);
|
|
998
1042
|
writeSetting("brightness", this.settings.brightness);
|
|
1043
|
+
writeGlow(this.settings.glow);
|
|
999
1044
|
if (this.enabled) this.applySettings();
|
|
1000
1045
|
this.publish();
|
|
1001
1046
|
}
|
|
@@ -1005,7 +1050,8 @@ window.__ModuleLoader__.load({
|
|
|
1005
1050
|
mode: readMode(),
|
|
1006
1051
|
blur: readSetting("blur"),
|
|
1007
1052
|
frost: readSetting("frost"),
|
|
1008
|
-
brightness: readSetting("brightness")
|
|
1053
|
+
brightness: readSetting("brightness"),
|
|
1054
|
+
glow: readGlow()
|
|
1009
1055
|
};
|
|
1010
1056
|
}
|
|
1011
1057
|
buildSnapshot() {
|
|
@@ -1027,14 +1073,20 @@ window.__ModuleLoader__.load({
|
|
|
1027
1073
|
/** Write the knob-driven CSS variables and mode attributes onto <html>. */
|
|
1028
1074
|
applySettings() {
|
|
1029
1075
|
const style = document.documentElement.style;
|
|
1030
|
-
style.setProperty("--dsh-glass-blur", `${this.settings.blur}px`);
|
|
1031
|
-
style.setProperty("--dsh-glass-frost", String(Math.min(this.settings.frost / 50, 1.4)));
|
|
1032
1076
|
const dark = this.dark;
|
|
1033
|
-
|
|
1034
|
-
|
|
1077
|
+
const knobs = {
|
|
1078
|
+
"--dsh-glass-blur": `${this.settings.blur}px`,
|
|
1079
|
+
"--dsh-glass-frost": String(Math.min(this.settings.frost / 50, 1.4)),
|
|
1080
|
+
"--dsh-glass-brightness-black": String(dark ? Math.max(0, (50 - this.settings.brightness) / 50) : 0),
|
|
1081
|
+
"--dsh-glass-brightness-white": String(dark ? 0 : Math.max(0, (this.settings.brightness - 50) / 50)),
|
|
1082
|
+
"--dsh-glass-glow": this.settings.glow ? "1" : "0"
|
|
1083
|
+
};
|
|
1084
|
+
for (const [property, value] of Object.entries(knobs)) style.setProperty(property, value);
|
|
1035
1085
|
const compat = this.settings.mode === "compat";
|
|
1036
1086
|
document.documentElement.toggleAttribute(GLASS_FLOAT_ATTRIBUTE, !compat);
|
|
1037
1087
|
document.documentElement.toggleAttribute(GLASS_COMPAT_ATTRIBUTE, compat);
|
|
1088
|
+
const body = document.body;
|
|
1089
|
+
if (body !== null) for (const [property, value] of Object.entries(knobs)) body.style.setProperty(property, value);
|
|
1038
1090
|
}
|
|
1039
1091
|
mount() {
|
|
1040
1092
|
this.ensureStyle();
|
|
@@ -1051,6 +1103,8 @@ window.__ModuleLoader__.load({
|
|
|
1051
1103
|
this.seamDisposer?.();
|
|
1052
1104
|
this.seamDisposer = void 0;
|
|
1053
1105
|
this.releaseStyle();
|
|
1106
|
+
const body = document.body;
|
|
1107
|
+
if (body !== null) for (const property of GLASS_KNOB_PROPERTIES) body.style.removeProperty(property);
|
|
1054
1108
|
}
|
|
1055
1109
|
/** Mount the glass stylesheet <style> tag (lazy — first enable only;
|
|
1056
1110
|
* re-append when toggling back on). The CSS text ships in the bundle as
|
|
@@ -1273,8 +1327,8 @@ window.__ModuleLoader__.load({
|
|
|
1273
1327
|
* @param props - composed slot props.
|
|
1274
1328
|
* @returns the General section row.
|
|
1275
1329
|
*/
|
|
1276
|
-
function GlassRow({ t, getState, subscribe, setEnabled, setMode, setBlur, setFrost, setBrightness, resetDefaults }) {
|
|
1277
|
-
const { enabled, mode, blur, frost, brightness, dark } = (0, react.useSyncExternalStore)(subscribe, getState);
|
|
1330
|
+
function GlassRow({ t, getState, subscribe, setEnabled, setMode, setBlur, setFrost, setBrightness, setGlow, resetDefaults }) {
|
|
1331
|
+
const { enabled, mode, blur, frost, brightness, glow, dark } = (0, react.useSyncExternalStore)(subscribe, getState);
|
|
1278
1332
|
const bgMin = dark ? 0 : 50;
|
|
1279
1333
|
const bgMax = dark ? 50 : 100;
|
|
1280
1334
|
const bgDisplay = Math.min(bgMax, Math.max(bgMin, brightness));
|
|
@@ -1407,6 +1461,31 @@ window.__ModuleLoader__.load({
|
|
|
1407
1461
|
className: GlassRow_module_css_default.knobHint,
|
|
1408
1462
|
children: t(dark ? "glass.brightnessHintDark" : "glass.brightnessHintLight")
|
|
1409
1463
|
}),
|
|
1464
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1465
|
+
className: GlassRow_module_css_default.row,
|
|
1466
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1467
|
+
className: GlassRow_module_css_default.rowLabel,
|
|
1468
|
+
children: t("glass.glow")
|
|
1469
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
1470
|
+
type: "button",
|
|
1471
|
+
role: "switch",
|
|
1472
|
+
"aria-checked": glow,
|
|
1473
|
+
"aria-label": t("glass.glow"),
|
|
1474
|
+
className: glow ? GlassRow_module_css_default.toggleOn : GlassRow_module_css_default.toggle,
|
|
1475
|
+
onClick: () => {
|
|
1476
|
+
setGlow(!glow);
|
|
1477
|
+
},
|
|
1478
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
1479
|
+
className: GlassRow_module_css_default.check,
|
|
1480
|
+
"aria-hidden": "true",
|
|
1481
|
+
children: glow ? "✓" : ""
|
|
1482
|
+
})
|
|
1483
|
+
})]
|
|
1484
|
+
}),
|
|
1485
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1486
|
+
className: GlassRow_module_css_default.rowHint,
|
|
1487
|
+
children: t("glass.glowHint")
|
|
1488
|
+
}),
|
|
1410
1489
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1411
1490
|
className: GlassRow_module_css_default.row,
|
|
1412
1491
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
@@ -2089,6 +2168,8 @@ window.__ModuleLoader__.load({
|
|
|
2089
2168
|
"glass.brightness": "背景亮度",
|
|
2090
2169
|
"glass.brightnessHintDark": "深色模式:0 压暗至纯黑,50 原样",
|
|
2091
2170
|
"glass.brightnessHintLight": "浅色模式:50 原样,100 提亮至纯白",
|
|
2171
|
+
"glass.glow": "地面光斑",
|
|
2172
|
+
"glass.glowHint": "在渐变地面上叠加两枚柔光斑(0.6.3 的观感)。光斑固定在屏幕上,各块玻璃面板会透出它的不同部位,所以默认关闭;打开后左上角会明显偏亮",
|
|
2092
2173
|
"glass.reset": "还原默认值",
|
|
2093
2174
|
"update.title": "检查 Catppuccin 插件更新",
|
|
2094
2175
|
"update.description": "检测本插件(dsh-catppuccin)在 npm 上的最新版本,判断当前安装是否需要升级。",
|
|
@@ -2169,6 +2250,8 @@ window.__ModuleLoader__.load({
|
|
|
2169
2250
|
"glass.brightness": "Backdrop brightness",
|
|
2170
2251
|
"glass.brightnessHintDark": "Dark mode: 0 fades to pure black, 50 unchanged",
|
|
2171
2252
|
"glass.brightnessHintLight": "Light mode: 50 unchanged, 100 brightens to pure white",
|
|
2253
|
+
"glass.glow": "Ground glows",
|
|
2254
|
+
"glass.glowHint": "Adds the two soft radial glows back on top of the gradient ground (the 0.6.3 look). They are pinned to the screen while the glass panes sit elsewhere, so each pane transmits a different slice of them — off by default; turning it on visibly brightens the top-left corner",
|
|
2172
2255
|
"glass.reset": "Reset to defaults",
|
|
2173
2256
|
"update.title": "Check for Catppuccin plugin updates",
|
|
2174
2257
|
"update.description": "Checks npm for the latest dsh-catppuccin release and whether this install is current.",
|
|
@@ -2249,6 +2332,8 @@ window.__ModuleLoader__.load({
|
|
|
2249
2332
|
"glass.brightness": "背景の輝度",
|
|
2250
2333
|
"glass.brightnessHintDark": "ダーク: 0 で純黒、50 でそのまま",
|
|
2251
2334
|
"glass.brightnessHintLight": "ライト: 50 でそのまま、100 で純白",
|
|
2335
|
+
"glass.glow": "地面の光だまり",
|
|
2336
|
+
"glass.glowHint": "グラデーションの地面に 2 つの柔らかな光だまりを重ねます(0.6.3 の見た目)。光だまりは画面に固定され、各ガラス面はその別々の部分を透かすため、既定ではオフ。オンにすると左上が明るくなります",
|
|
2252
2337
|
"glass.reset": "デフォルトに戻す",
|
|
2253
2338
|
"update.title": "Catppuccin プラグインの更新を確認",
|
|
2254
2339
|
"update.description": "npm 上の dsh-catppuccin 最新版を確認し、このインストールが最新かどうかを判断します。",
|
|
@@ -2329,6 +2414,8 @@ window.__ModuleLoader__.load({
|
|
|
2329
2414
|
"glass.brightness": "배경 밝기",
|
|
2330
2415
|
"glass.brightnessHintDark": "다크 모드: 0이면 순수 검정, 50이면 그대로",
|
|
2331
2416
|
"glass.brightnessHintLight": "라이트 모드: 50이면 그대로, 100이면 순수 흰색",
|
|
2417
|
+
"glass.glow": "지면 광점",
|
|
2418
|
+
"glass.glowHint": "그라데이션 지면 위에 부드러운 광점 두 개를 다시 올립니다(0.6.3 모양). 광점은 화면에 고정되어 각 유리 패널이 서로 다른 부분을 비추므로 기본값은 꺼짐이며, 켜면 왼쪽 위가 밝아집니다",
|
|
2332
2419
|
"glass.reset": "기본값으로 되돌리기",
|
|
2333
2420
|
"update.title": "Catppuccin 플러그인 업데이트 확인",
|
|
2334
2421
|
"update.description": "npm의 최신 dsh-catppuccin 버전을 확인하고 현재 설치가 최신인지 판단합니다.",
|
|
@@ -2409,6 +2496,8 @@ window.__ModuleLoader__.load({
|
|
|
2409
2496
|
"glass.brightness": "Brillo del fondo",
|
|
2410
2497
|
"glass.brightnessHintDark": "Modo oscuro: 0 atenúa a negro puro, 50 sin cambios",
|
|
2411
2498
|
"glass.brightnessHintLight": "Modo claro: 50 sin cambios, 100 aclara hasta blanco puro",
|
|
2499
|
+
"glass.glow": "Destellos del fondo",
|
|
2500
|
+
"glass.glowHint": "Vuelve a añadir los dos destellos radiales suaves sobre el fondo degradado (el aspecto de 0.6.3). Están fijados a la pantalla y cada panel de vidrio deja pasar una parte distinta, por eso está desactivado por defecto; al activarlo se aclara la esquina superior izquierda",
|
|
2412
2501
|
"glass.reset": "Restablecer valores",
|
|
2413
2502
|
"update.title": "Comprobar actualizaciones del plugin Catppuccin",
|
|
2414
2503
|
"update.description": "Comprueba en npm la última versión de dsh-catppuccin y si esta instalación está al día.",
|
|
@@ -2489,6 +2578,8 @@ window.__ModuleLoader__.load({
|
|
|
2489
2578
|
"glass.brightness": "Luminosité du fond",
|
|
2490
2579
|
"glass.brightnessHintDark": "Mode sombre : 0 atténue vers le noir pur, 50 inchangé",
|
|
2491
2580
|
"glass.brightnessHintLight": "Mode clair : 50 inchangé, 100 éclaircit vers le blanc pur",
|
|
2581
|
+
"glass.glow": "Halos du fond",
|
|
2582
|
+
"glass.glowHint": "Rajoute les deux halos radiaux doux sur le fond dégradé (l'aspect 0.6.3). Ils sont fixés à l'écran et chaque panneau de verre en laisse passer une partie différente, d'où la valeur par défaut désactivée ; l'activer éclaircit le coin supérieur gauche",
|
|
2492
2583
|
"glass.reset": "Restaurer les valeurs",
|
|
2493
2584
|
"update.title": "Vérifier les mises à jour du plugin Catppuccin",
|
|
2494
2585
|
"update.description": "Interroge npm pour la dernière version de dsh-catppuccin et indique si cette installation est à jour.",
|
|
@@ -2569,6 +2660,8 @@ window.__ModuleLoader__.load({
|
|
|
2569
2660
|
"glass.brightness": "Hintergrundhelligkeit",
|
|
2570
2661
|
"glass.brightnessHintDark": "Dunkelmodus: 0 verdunkelt zu reinem Schwarz, 50 unverändert",
|
|
2571
2662
|
"glass.brightnessHintLight": "Hellmodus: 50 unverändert, 100 hellt zu reinem Weiß auf",
|
|
2663
|
+
"glass.glow": "Hintergrund-Lichtflecken",
|
|
2664
|
+
"glass.glowHint": "Legt die beiden weichen Lichtflecken wieder über den Verlaufs-Hintergrund (das Aussehen von 0.6.3). Sie sind am Bildschirm fixiert und jede Glasscheibe lässt einen anderen Ausschnitt durch, deshalb standardmäßig aus; eingeschaltet hellt sich die linke obere Ecke auf",
|
|
2572
2665
|
"glass.reset": "Standardwerte wiederherstellen",
|
|
2573
2666
|
"update.title": "Catppuccin-Plugin-Updates prüfen",
|
|
2574
2667
|
"update.description": "Prüft die neueste dsh-catppuccin-Version auf npm und ob diese Installation aktuell ist.",
|
|
@@ -3723,6 +3816,11 @@ window.__ModuleLoader__.load({
|
|
|
3723
3816
|
path: ["glass", "brightness"],
|
|
3724
3817
|
value: section.glass.brightness
|
|
3725
3818
|
},
|
|
3819
|
+
{
|
|
3820
|
+
op: "set",
|
|
3821
|
+
path: ["glass", "glow"],
|
|
3822
|
+
value: section.glass.glow
|
|
3823
|
+
},
|
|
3726
3824
|
{
|
|
3727
3825
|
op: "set",
|
|
3728
3826
|
path: ["autoCheck"],
|
|
@@ -4416,6 +4514,9 @@ window.__ModuleLoader__.load({
|
|
|
4416
4514
|
setBrightness: (brightness) => {
|
|
4417
4515
|
glass.setBrightness(brightness);
|
|
4418
4516
|
},
|
|
4517
|
+
setGlow: (glow) => {
|
|
4518
|
+
glass.setGlow(glow);
|
|
4519
|
+
},
|
|
4419
4520
|
resetDefaults: () => {
|
|
4420
4521
|
glass.resetDefaults();
|
|
4421
4522
|
}
|