@nonamelego/dsh-catppuccin 0.6.6-beta.1 → 0.6.7

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/README.en.md CHANGED
@@ -262,7 +262,12 @@ The **Glass** section lives on the **Settings → Catppuccin** page:
262
262
  collapses back to pure white / pure black.
263
263
  - **Ground glows**: adds two screen-pinned soft glows on top of the ground (the `0.6.3` look),
264
264
  **off by default** — they do not follow the panes, so each pane transmits a different slice
265
- of them and the top-left corner brightens visibly when on.
265
+ of them and the top-left corner brightens visibly when on. Once on, a **glow strength** knob
266
+ (0–200%, `100%` = that look and the default; the ceiling is a conservative
267
+ contrast budget on Latte, see `docs/issue-32-glow-tuning.md`) and a **glow spread**
268
+ knob (100–250%, `100%` = the shipped radii; it only enlarges, so the light stops
269
+ piling up in one corner) scale the two glows only — the wash is never touched, and at either end of the
270
+ brightness knob the ambience collapses and the glows fade out with it.
266
271
  - **In-place previews**: a **ground sample strip** in the glass section (drag brightness or
267
272
  toggle the glows and it changes on the spot — it is painted by the page ground's own rule);
268
273
  a **code sample** under the highlight picker (reads `--shiki-token-*`, so switching to
@@ -330,7 +335,7 @@ matches are exactly these:
330
335
  | Composer card | `[data-composer-card]` (the material is painted on its `::before`, see issue #19) |
331
336
  | Menus | `[data-menu-material='translucent']` (the host MenuSurface's own material hook — the recipe overrides the `--dsw-menu-surface-fill` / `--dsw-menu-backdrop-filter` its material plane reads) plus the hand-rolled-menu fallback `[role='menu']:not([data-menu-material]):not([data-menu-material] *)` |
332
337
  | Popovers | `[class*='popover']` / `[class*='dropdown']` (still substrings) |
333
- | Modal dialogs | `[role='dialog'][aria-modal='true']` |
338
+ | Modal dialogs | `[role='presentation'] > [role='dialog'][aria-modal='true']` (**seat guard**: only a panel seated under `[role='presentation']`; a body-level full-screen layer is not one — see issue #34) |
334
339
  | Host right sidebar (open state only) | `[data-sidebar-right-panel][data-sidebar-right-open]` |
335
340
 
336
341
  **A new class name in a third-party plugin can still be misread.** When you hit one, work through three
package/README.md CHANGED
@@ -229,8 +229,15 @@ dsh plugin --profile dsh-tui add https://github.com/NoNameLeGo/dsh-catppuccin-th
229
229
  不透明度。
230
230
  - **背景亮度**:深色模式 0–50 压暗、浅色模式 50–100 提亮(50 为原样),
231
231
  直接调和进地面底色;拉到两端时氛围层淡出,回到纯白 / 纯黑。
232
+ - **卡片间距**(4–24 px,**仅云母**):悬浮卡与窗口边缘的留白,另附**紧凑 / 标准 / 宽松**三档
233
+ (8 / 12 / 20 px,默认标准)。只改外边距,正文列宽不变——间距是从侧栏列里扣的,所以**侧栏卡自身会变窄**;
234
+ 折叠侧栏时窄轨最多向右探出 16px(再大会压住正文)。兼容模式与这个旋钮无关,设置里也会一并隐藏。
232
235
  - **地面光斑**:在地面渐变上叠两枚**固定于屏幕**的柔光斑(`0.6.3` 的观感),**默认关**——
233
236
  光斑不跟面板走,每块玻璃透出的是它的不同部位,打开后左上角会明显偏亮。
237
+ 打开后还有 **光斑强度**(0–200%,`100%` 就是上述观感,默认值;上限是**保守值**,按 Latte 上文字的
238
+ 对比度预算定,见 `docs/issue-32-glow-tuning.md`)和 **光斑范围**(100–250%,`100%` = 出厂的两枚半径;
239
+ 只放大,用来把光摊平、别堆在角落里)——
240
+ 强度只放大两枚光斑,**不动**洗底渐变;背景亮度拉到两端时氛围归零,光斑随之淡出。
234
241
  - **就地预览**:玻璃区里有一条**地面样本条**(拖亮度或切光斑,它当场变化——取的就是页面地面那套色);
235
242
  代码高亮下方有**代码样本**(直接读 `--shiki-token-*`,切「柔和注释」即刻变色);
236
243
  模式选择旁的 **看一眼主界面** 会关掉设置页,让你直接看真实布局。
@@ -289,7 +296,7 @@ dsh plugin --profile dsh-tui add https://github.com/NoNameLeGo/dsh-catppuccin-th
289
296
  | 输入框卡片 | `[data-composer-card]`(材质画在它的 `::before` 上,见 issue #19) |
290
297
  | 菜单 | `[data-menu-material='translucent']`(宿主 MenuSurface 的材质钩子;配方覆写它自带材质面读的 `--dsw-menu-surface-fill` / `--dsw-menu-backdrop-filter`)+ 手写菜单兜底 `[role='menu']:not([data-menu-material]):not([data-menu-material] *)` |
291
298
  | 弹出层 | `[class*='popover']` / `[class*='dropdown']`(仍是子串) |
292
- | 模态框 | `[role='dialog'][aria-modal='true']` |
299
+ | 模态框 | `[role='presentation'] > [role='dialog'][aria-modal='true']`(**座位守卫**:只命中挂在 `[role='presentation']` 下面的面板;body 直挂的全屏浮层不算,见 issue #34) |
293
300
  | 宿主右侧栏(仅展开态) | `[data-sidebar-right-panel][data-sidebar-right-open]` |
294
301
 
295
302
  **第三方插件里新出现的类名仍可能被误命中**。遇到时走三步:**① 只读取证**(一段粘进控制台的探针脚本,
package/lib/client.js CHANGED
@@ -534,7 +534,7 @@ window.__ModuleLoader__.load({
534
534
  * (item II — lazy CSS), so editing the stylesheet means editing
535
535
  * glass.module.css and rebuilding.
536
536
  */
537
- 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,[data-dsh-glass] [data-dsh-glass-ground-sample]{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-phase] [data-dsh-glass-inputbar]>[class*=dock],[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[data-composer-dock]{position:relative}[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[class*=dock]:before,[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[data-composer-dock]:before{content:\"\";left:calc(-1 * var(--dsh-composer-side-clearance,16px));right:calc(-1 * var(--dsh-composer-side-clearance,16px));z-index:-1;pointer-events:none;background:color-mix(in srgb, color-mix(in srgb, var(--dsh-glass-ground), #000 calc(5% * var(--dsh-glass-ambience))) calc(70% + 10% * var(--dsh-glass-frost,1)), transparent);height:calc(100% + 12px);backdrop-filter:blur(var(--dsh-glass-blur,14px));position:absolute;bottom:-4px;-webkit-mask-image:linear-gradient(#0000 0,#000 18px);mask-image:linear-gradient(#0000 0,#000 18px)}[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-soft);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]){width:100%;max-width:min(calc(var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,1500px) * .64), 920px)) + 32px), calc(100% - 32px));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 auto 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]){width:auto;max-width:none;margin-left:28px;margin-right:16px}[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]{width:calc(100% - 32px);max-width:min(calc(var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,1500px) * .64), 920px)) + 32px), calc(100% - 32px));border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);height:calc(100% - 20px);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);border-radius:20px;margin:8px auto 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] body[data-ds-dark-theme] [data-menu-material=translucent]:not(:focus-visible){outline:1px solid var(--dsh-glass-rim-soft);outline-offset:-1px}[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]{isolation:isolate;backdrop-filter:none;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);background:0 0;border-radius:20px;position:relative}[data-dsh-glass-float] [role=dialog][aria-modal=true]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,14px));pointer-events:none;position:absolute;inset:0}[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}}[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]{isolation:isolate;backdrop-filter:none;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);background:0 0;position:relative}[data-dsh-glass-compat] [role=dialog][aria-modal=true]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,12px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass-settings] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-settings] .dsm-select-menu{background:color-mix(in srgb, var(--dsh-glass-ground) 92%, transparent);backdrop-filter:blur(12px);box-shadow:var(--dsh-glass-drop)}[data-dsh-glass-settings] .dsm-panel-head{isolation:isolate;outline:1px solid var(--dsh-glass-rim-soft);outline-offset:-1px;background:0 0;border-radius:14px;padding:6px 12px 4px}[data-dsh-glass-settings] .dsm-panel-head:before{content:\"\";z-index:-1;border-radius:inherit;background:color-mix(in srgb, var(--dsh-glass-ground) 78%, transparent);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){[data-dsh-glass] [data-testid^=view-],[data-dsh-glass] [data-tool],[data-dsh-glass] [role=dialog]{animation:none}}";
537
+ 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,[data-dsh-glass] [data-dsh-glass-ground-sample]{background: radial-gradient(calc(58% * var(--dsh-glass-glow-size,1)) calc(46% * var(--dsh-glass-glow-size,1)) 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) * var(--dsh-glass-glow-strength,1)), transparent), transparent 68%), radial-gradient(calc(48% * var(--dsh-glass-glow-size,1)) calc(42% * var(--dsh-glass-glow-size,1)) at 86% 14%, color-mix(in srgb, var(--dsw-alias-state-success-tertiary) calc(10% * var(--dsh-glass-ambience) * var(--dsh-glass-glow,0) * var(--dsh-glass-glow-strength,1)), 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-phase] [data-dsh-glass-inputbar]>[class*=dock],[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[data-composer-dock]{position:relative}[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[class*=dock]:before,[data-dsh-glass] [data-phase] [data-dsh-glass-inputbar]>[data-composer-dock]:before{content:\"\";left:calc(-1 * var(--dsh-composer-side-clearance,16px));right:calc(-1 * var(--dsh-composer-side-clearance,16px));z-index:-1;pointer-events:none;background:color-mix(in srgb, color-mix(in srgb, var(--dsh-glass-ground), #000 calc(5% * var(--dsh-glass-ambience))) calc(70% + 10% * var(--dsh-glass-frost,1)), transparent);height:calc(100% + 12px);backdrop-filter:blur(var(--dsh-glass-blur,14px));position:absolute;bottom:-4px;-webkit-mask-image:linear-gradient(#0000 0,#000 18px);mask-image:linear-gradient(#0000 0,#000 18px)}[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-soft);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]){width:100%;margin:var(--dsh-glass-gap,12px) auto 0;max-width:min(calc(var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,1500px) * .64), 920px)) + 32px), calc(100% - 32px));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;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]){width:auto;margin-left:calc(var(--dsh-glass-gap,12px) + 16px);max-width:none;margin-right:16px}[data-dsh-glass-float] [class*=sidebarCol]{--dsw-specific-sidebar-fill:transparent;z-index:9;margin:var(--dsh-glass-gap,12px);border:1px solid var(--dsh-glass-rim-soft);box-shadow:var(--dsh-glass-drop);border-radius:20px;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]{margin:var(--dsh-glass-gap,12px) calc(-1 * min(var(--dsh-glass-gap,12px), 16px)) var(--dsh-glass-gap,12px) var(--dsh-glass-gap,12px);transition:margin .15s var(--ds-ease-in-out), border-radius .15s var(--ds-ease-in-out);border-radius:16px;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]{margin:8px auto var(--dsh-glass-gap,12px);width:calc(100% - 32px);max-width:min(calc(var(--dsh-chat-user-width,clamp(680px, calc(var(--dsh-conversation-column-width,1500px) * .64), 920px)) + 32px), calc(100% - 32px));height:calc(100% - 8px - var(--dsh-glass-gap,12px));border:1px solid var(--dsh-glass-rim);background:var(--dsh-glass-card);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);border-radius:20px;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:var(--dsh-glass-gap,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] body[data-ds-dark-theme] [data-menu-material=translucent]:not(:focus-visible){outline:1px solid var(--dsh-glass-rim-soft);outline-offset:-1px}[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=presentation]>[role=dialog][aria-modal=true]{isolation:isolate;backdrop-filter:none;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);background:0 0;border-radius:20px;position:relative}[data-dsh-glass-float] [role=presentation]>[role=dialog][aria-modal=true]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,14px));pointer-events:none;position:absolute;inset:0}[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}}[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=presentation]>[role=dialog][aria-modal=true]{isolation:isolate;backdrop-filter:none;border:1px solid var(--dsh-glass-rim);box-shadow:var(--dsh-glass-edge), var(--dsh-glass-drop);background:0 0;position:relative}[data-dsh-glass-compat] [role=presentation]>[role=dialog][aria-modal=true]:before{content:\"\";z-index:-1;border-radius:inherit;background:var(--dsh-glass-card-raised);backdrop-filter:blur(var(--dsh-glass-blur,12px));pointer-events:none;position:absolute;inset:0}[data-dsh-glass-settings] [role=menu]:not([data-menu-material]):not([data-menu-material] *),[data-dsh-glass-settings] .dsm-select-menu{background:color-mix(in srgb, var(--dsh-glass-ground) 92%, transparent);backdrop-filter:blur(12px);box-shadow:var(--dsh-glass-drop)}[data-dsh-glass-settings] .dsm-panel-head{isolation:isolate;outline:1px solid var(--dsh-glass-rim-soft);outline-offset:-1px;background:0 0;border-radius:14px;padding:6px 12px 4px}[data-dsh-glass-settings] .dsm-panel-head:before{content:\"\";z-index:-1;border-radius:inherit;background:color-mix(in srgb, var(--dsh-glass-ground) 78%, transparent);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){[data-dsh-glass] [data-testid^=view-],[data-dsh-glass] [data-tool],[data-dsh-glass] [role=dialog]{animation:none}}";
538
538
  /** Legacy settings namespace (DSH <= 0.1.6-alpha.2): the Host registers it
539
539
  * through `settings.installSection`, the Client binds it through
540
540
  * `ctx.settingsScope` (see `src/settings-catppuccin.ts`). */
@@ -585,6 +585,9 @@ window.__ModuleLoader__.load({
585
585
  blur: 5,
586
586
  frost: 20,
587
587
  brightness: 50,
588
+ gap: 12,
589
+ glowStrength: 100,
590
+ glowSize: 100,
588
591
  glow: false
589
592
  };
590
593
  /** Shipped update-check channel: chase the stable `latest` tag. */
@@ -653,6 +656,9 @@ window.__ModuleLoader__.load({
653
656
  state.glass.blur = clampFinite(glass.blur, 0, 40, DEFAULT_GLASS.blur);
654
657
  state.glass.frost = clampFinite(glass.frost, 0, 100, DEFAULT_GLASS.frost);
655
658
  state.glass.brightness = clampFinite(glass.brightness, 0, 100, DEFAULT_GLASS.brightness);
659
+ state.glass.gap = clampFinite(glass.gap, 4, 24, DEFAULT_GLASS.gap);
660
+ state.glass.glowStrength = clampFinite(glass.glowStrength, 0, 200, DEFAULT_GLASS.glowStrength);
661
+ state.glass.glowSize = clampFinite(glass.glowSize, 100, 250, DEFAULT_GLASS.glowSize);
656
662
  state.glass.glow = glass.glow === true;
657
663
  state.autoCheck = raw.autoCheck !== false;
658
664
  state.updateChannel = raw.updateChannel === "beta" ? "beta" : "latest";
@@ -665,7 +671,7 @@ window.__ModuleLoader__.load({
665
671
  * "no durable state yet" apart from "an explicit default choice". */
666
672
  function isDefaultState(state) {
667
673
  const expected = defaultState();
668
- 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;
674
+ 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.gap === expected.glass.gap && state.glass.glowStrength === expected.glass.glowStrength && state.glass.glowSize === expected.glass.glowSize && state.glass.glow === expected.glass.glow && state.autoCheck === expected.autoCheck && state.updateChannel === expected.updateChannel && Object.keys(state.overrides).length === 0 && state.shikiStyle === expected.shikiStyle;
669
675
  }
670
676
  /** Drop the synthetic `version` field: full state → settings-document section. */
671
677
  function settingsSectionFromState(state) {
@@ -693,7 +699,7 @@ window.__ModuleLoader__.load({
693
699
  /** Whether two settings sections are field-for-field equal (used to skip
694
700
  * redundant mirror writes and to recognize the Host echoing our own write). */
695
701
  function settingsSectionsEqual(a, b) {
696
- 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 && sameOverrides(a.overrides, b.overrides);
702
+ 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.gap === b.glass.gap && a.glass.glowStrength === b.glass.glowStrength && a.glass.glowSize === b.glass.glowSize && a.glass.glow === b.glass.glow && a.autoCheck === b.autoCheck && a.updateChannel === b.updateChannel && a.shikiStyle === b.shikiStyle && sameOverrides(a.overrides, b.overrides);
697
703
  }
698
704
  /**
699
705
  * Replay the local changes a window made BEFORE the durable channel became
@@ -753,6 +759,9 @@ window.__ModuleLoader__.load({
753
759
  carryGlass("blur");
754
760
  carryGlass("frost");
755
761
  carryGlass("brightness");
762
+ carryGlass("gap");
763
+ carryGlass("glowStrength");
764
+ carryGlass("glowSize");
756
765
  carryGlass("glow");
757
766
  carry("autoCheck");
758
767
  carry("updateChannel");
@@ -785,7 +794,10 @@ window.__ModuleLoader__.load({
785
794
  "--dsh-glass-frost",
786
795
  "--dsh-glass-brightness-black",
787
796
  "--dsh-glass-brightness-white",
788
- "--dsh-glass-glow"
797
+ "--dsh-glass-glow",
798
+ "--dsh-glass-gap",
799
+ "--dsh-glass-glow-strength",
800
+ "--dsh-glass-glow-size"
789
801
  ];
790
802
  /** localStorage key carrying the layer enable flag. */
791
803
  const GLASS_ENABLED_KEY = "dsh.catppuccin.glass.enabled";
@@ -812,13 +824,31 @@ window.__ModuleLoader__.load({
812
824
  blur: DEFAULT_GLASS.blur,
813
825
  frost: DEFAULT_GLASS.frost,
814
826
  brightness: DEFAULT_GLASS.brightness,
827
+ gap: DEFAULT_GLASS.gap,
828
+ glowStrength: DEFAULT_GLASS.glowStrength,
829
+ glowSize: DEFAULT_GLASS.glowSize,
815
830
  glow: DEFAULT_GLASS.glow
816
831
  };
817
832
  /** Numeric knob keys and their localStorage names. */
818
833
  const NUMERIC_KEYS = {
819
834
  blur: "dsh.catppuccin.glass.blur",
820
835
  frost: "dsh.catppuccin.glass.frost",
821
- brightness: "dsh.catppuccin.glass.brightness"
836
+ brightness: "dsh.catppuccin.glass.brightness",
837
+ gap: "dsh.catppuccin.glass.gap",
838
+ glowStrength: "dsh.catppuccin.glass.glow-strength",
839
+ glowSize: "dsh.catppuccin.glass.glow-size"
840
+ };
841
+ /** Per-knob [min, max]. One table instead of the old `key === 'blur' ? 40 : 100`
842
+ * test: the gap knob is the first one that is NOT zero-based (4-24, issue
843
+ * #31), and a shared "0 to max" clamp would have silently turned its floor
844
+ * into 0 and its ceiling into 100. */
845
+ const NUMERIC_BOUNDS = {
846
+ blur: [0, 40],
847
+ frost: [0, 100],
848
+ brightness: [0, 100],
849
+ gap: [4, 24],
850
+ glowStrength: [0, 200],
851
+ glowSize: [100, 250]
822
852
  };
823
853
  /** The localStorage names of the numeric knobs — the reverse of
824
854
  * `NUMERIC_KEYS`. Used by the cross-tab `storage` handler: the event's `key`
@@ -830,10 +860,13 @@ window.__ModuleLoader__.load({
830
860
  const MODE_KEY = "dsh.catppuccin.glass.mode";
831
861
  /** localStorage key of the ground-glow switch (issue #26). */
832
862
  const GLOW_KEY = "dsh.catppuccin.glass.glow";
833
- /** Clamp a numeric knob into its sane range. */
863
+ /** Clamp a numeric knob into its `NUMERIC_BOUNDS` range. Two knobs are NOT
864
+ * 0-100 and would silently snap back if folded into that arm: `gap` (issue
865
+ * #31, 4-24px) and `glowStrength` (issue #32, 0-`GLOW_STRENGTH_MAX`% — a
866
+ * contrast budget, not a taste number). */
834
867
  function clampSetting(key, value) {
835
- const max = key === "blur" ? 40 : 100;
836
- return Number.isFinite(value) ? Math.min(max, Math.max(0, value)) : SETTINGS_DEFAULTS[key];
868
+ const [min, max] = NUMERIC_BOUNDS[key];
869
+ return Number.isFinite(value) ? Math.min(max, Math.max(min, value)) : SETTINGS_DEFAULTS[key];
837
870
  }
838
871
  /** Read one numeric knob from localStorage (absent/parse failure means the default). */
839
872
  function readSetting(key) {
@@ -982,6 +1015,9 @@ window.__ModuleLoader__.load({
982
1015
  blur: this.settings.blur,
983
1016
  frost: this.settings.frost,
984
1017
  brightness: this.settings.brightness,
1018
+ gap: this.settings.gap,
1019
+ glowStrength: this.settings.glowStrength,
1020
+ glowSize: this.settings.glowSize,
985
1021
  glow: this.settings.glow
986
1022
  };
987
1023
  }
@@ -995,6 +1031,9 @@ window.__ModuleLoader__.load({
995
1031
  blur: clampSetting("blur", remote.blur),
996
1032
  frost: clampSetting("frost", remote.frost),
997
1033
  brightness: clampSetting("brightness", remote.brightness),
1034
+ gap: clampSetting("gap", remote.gap),
1035
+ glowStrength: clampSetting("glowStrength", remote.glowStrength),
1036
+ glowSize: clampSetting("glowSize", remote.glowSize),
998
1037
  glow: remote.glow === true
999
1038
  };
1000
1039
  writeEnabled(this.enabled);
@@ -1002,6 +1041,9 @@ window.__ModuleLoader__.load({
1002
1041
  writeSetting("blur", this.settings.blur);
1003
1042
  writeSetting("frost", this.settings.frost);
1004
1043
  writeSetting("brightness", this.settings.brightness);
1044
+ writeSetting("gap", this.settings.gap);
1045
+ writeSetting("glowStrength", this.settings.glowStrength);
1046
+ writeSetting("glowSize", this.settings.glowSize);
1005
1047
  writeGlow(this.settings.glow);
1006
1048
  this.sync();
1007
1049
  }
@@ -1047,6 +1089,22 @@ window.__ModuleLoader__.load({
1047
1089
  if (this.enabled) this.applySettings();
1048
1090
  this.publish();
1049
1091
  }
1092
+ /**
1093
+ * Set the floating-card inset (px, 4-24) — issue #31.
1094
+ *
1095
+ * Layout-only: it writes `--dsh-glass-gap`, which the mica rules read for the
1096
+ * sidebar sheet's margin, the header/trajectory margins and the composer
1097
+ * bar's bottom pad. No repaint of any material, so a drag is cheap; the
1098
+ * presets call it with a constant.
1099
+ */
1100
+ setGap(value) {
1101
+ const next = clampSetting("gap", value);
1102
+ if (next === this.settings.gap) return;
1103
+ this.settings.gap = next;
1104
+ writeSetting("gap", next);
1105
+ if (this.enabled) this.applySettings();
1106
+ this.publish();
1107
+ }
1050
1108
  /** Toggle the two static ground glows (issue #26; wash-only is the default). */
1051
1109
  setGlow(value) {
1052
1110
  if (value === this.settings.glow) return;
@@ -1055,6 +1113,29 @@ window.__ModuleLoader__.load({
1055
1113
  if (this.enabled) this.applySettings();
1056
1114
  this.publish();
1057
1115
  }
1116
+ /** Set the ground-glow strength, percent of the shipped look (issue #32).
1117
+ * Only scales the two radial layers — the wash is deliberately untouchable
1118
+ * (it is the issue #26 default) and the switch stays the on/off. */
1119
+ setGlowStrength(value) {
1120
+ const next = clampSetting("glowStrength", value);
1121
+ if (next === this.settings.glowStrength) return;
1122
+ this.settings.glowStrength = next;
1123
+ writeSetting("glowStrength", next);
1124
+ if (this.enabled) this.applySettings();
1125
+ this.publish();
1126
+ }
1127
+ /** Set the ground-glow SPREAD, percent of the shipped radii (issue #32
1128
+ * follow-up). Geometry only: the peak alpha stays put, the falloff flattens
1129
+ * — and positions stay hardcoded (no "where" axis, see
1130
+ * `docs/issue-32-glow-tuning.md` §2). */
1131
+ setGlowSize(value) {
1132
+ const next = clampSetting("glowSize", value);
1133
+ if (next === this.settings.glowSize) return;
1134
+ this.settings.glowSize = next;
1135
+ writeSetting("glowSize", next);
1136
+ if (this.enabled) this.applySettings();
1137
+ this.publish();
1138
+ }
1058
1139
  /** Restore every knob to the shipped defaults (persisted immediately). */
1059
1140
  resetDefaults() {
1060
1141
  this.settings = { ...SETTINGS_DEFAULTS };
@@ -1062,6 +1143,9 @@ window.__ModuleLoader__.load({
1062
1143
  writeSetting("blur", this.settings.blur);
1063
1144
  writeSetting("frost", this.settings.frost);
1064
1145
  writeSetting("brightness", this.settings.brightness);
1146
+ writeSetting("gap", this.settings.gap);
1147
+ writeSetting("glowStrength", this.settings.glowStrength);
1148
+ writeSetting("glowSize", this.settings.glowSize);
1065
1149
  writeGlow(this.settings.glow);
1066
1150
  if (this.enabled) this.applySettings();
1067
1151
  this.publish();
@@ -1073,6 +1157,9 @@ window.__ModuleLoader__.load({
1073
1157
  blur: readSetting("blur"),
1074
1158
  frost: readSetting("frost"),
1075
1159
  brightness: readSetting("brightness"),
1160
+ gap: readSetting("gap"),
1161
+ glowStrength: readSetting("glowStrength"),
1162
+ glowSize: readSetting("glowSize"),
1076
1163
  glow: readGlow()
1077
1164
  };
1078
1165
  }
@@ -1101,7 +1188,10 @@ window.__ModuleLoader__.load({
1101
1188
  "--dsh-glass-frost": String(Math.min(this.settings.frost / 50, 1.4)),
1102
1189
  "--dsh-glass-brightness-black": String(dark ? Math.max(0, (50 - this.settings.brightness) / 50) : 0),
1103
1190
  "--dsh-glass-brightness-white": String(dark ? 0 : Math.max(0, (this.settings.brightness - 50) / 50)),
1104
- "--dsh-glass-glow": this.settings.glow ? "1" : "0"
1191
+ "--dsh-glass-glow": this.settings.glow ? "1" : "0",
1192
+ "--dsh-glass-gap": `${this.settings.gap}px`,
1193
+ "--dsh-glass-glow-strength": String(this.settings.glowStrength / 100),
1194
+ "--dsh-glass-glow-size": String(this.settings.glowSize / 100)
1105
1195
  };
1106
1196
  for (const [property, value] of Object.entries(knobs)) style.setProperty(property, value);
1107
1197
  const compat = this.settings.mode === "compat";
@@ -1316,17 +1406,42 @@ window.__ModuleLoader__.load({
1316
1406
  }
1317
1407
  ];
1318
1408
  /**
1409
+ * Floating-card inset presets (issue #31) — a SEPARATE axis from the material
1410
+ * presets above, and deliberately not folded into them: `activePreset` matches
1411
+ * on the blur/frost/brightness triple, so a gap-only change would otherwise
1412
+ * flip the material row to "custom" for no reason. The three tiers sit inside
1413
+ * the knob's 4-24 range; the slider stays for anything in between.
1414
+ */
1415
+ const GAP_PRESETS = [
1416
+ {
1417
+ id: "compact",
1418
+ key: "glass.gapCompact",
1419
+ gap: 8
1420
+ },
1421
+ {
1422
+ id: "standard",
1423
+ key: "glass.gapStandard",
1424
+ gap: SETTINGS_DEFAULTS.gap
1425
+ },
1426
+ {
1427
+ id: "loose",
1428
+ key: "glass.gapLoose",
1429
+ gap: 20
1430
+ }
1431
+ ];
1432
+ /**
1319
1433
  * Render the glass row: title, the master switch, and — while enabled — the
1320
1434
  * mode picker and every knob.
1321
1435
  * @param props - composed slot props.
1322
1436
  * @returns the settings row.
1323
1437
  */
1324
- function GlassRow({ t, getState, subscribe, setEnabled, setMode, setBlur, setFrost, setBrightness, setGlow, resetDefaults, onPreviewMain }) {
1325
- const { enabled, mode, blur, frost, brightness, glow, dark } = (0, react.useSyncExternalStore)(subscribe, getState);
1438
+ function GlassRow({ t, getState, subscribe, setEnabled, setMode, setBlur, setFrost, setBrightness, setGap, setGlow, setGlowStrength, setGlowSize, resetDefaults, onPreviewMain }) {
1439
+ const { enabled, mode, blur, frost, brightness, gap, glow, glowStrength, glowSize, dark } = (0, react.useSyncExternalStore)(subscribe, getState);
1326
1440
  const bgMin = dark ? 0 : 50;
1327
1441
  const bgMax = dark ? 50 : 100;
1328
1442
  const bgDisplay = Math.min(bgMax, Math.max(bgMin, brightness));
1329
1443
  const activePreset = GLASS_PRESETS.find((p) => p.blur === blur && p.frost === frost && p.brightness === brightness)?.id ?? "";
1444
+ const activeGapPreset = GAP_PRESETS.find((p) => p.gap === gap)?.id ?? "";
1330
1445
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1331
1446
  className: settings_row_module_css_default.row,
1332
1447
  "data-catppuccin-row": "glass",
@@ -1444,6 +1559,41 @@ window.__ModuleLoader__.load({
1444
1559
  className: GlassRow_module_css_default.rowHint,
1445
1560
  children: t(dark ? "glass.brightnessHintDark" : "glass.brightnessHintLight")
1446
1561
  }),
1562
+ mode === "mica" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
1563
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1564
+ className: GlassRow_module_css_default.row,
1565
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1566
+ className: GlassRow_module_css_default.rowLabel,
1567
+ children: t("glass.gap")
1568
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1569
+ className: GlassRow_module_css_default.presetGroup,
1570
+ role: "group",
1571
+ "aria-label": t("glass.gap"),
1572
+ children: GAP_PRESETS.map((preset) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
1573
+ size: "sm",
1574
+ variant: activeGapPreset === preset.id ? "primary" : "outline",
1575
+ "aria-pressed": activeGapPreset === preset.id,
1576
+ onClick: () => {
1577
+ setGap(preset.gap);
1578
+ },
1579
+ children: t(preset.key)
1580
+ }, preset.id))
1581
+ })]
1582
+ }),
1583
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Knob, {
1584
+ label: t("glass.gap"),
1585
+ value: gap,
1586
+ min: 4,
1587
+ max: 24,
1588
+ step: 1,
1589
+ unit: "px",
1590
+ onChange: setGap
1591
+ }),
1592
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1593
+ className: GlassRow_module_css_default.rowHint,
1594
+ children: t("glass.gapHint")
1595
+ })
1596
+ ] }),
1447
1597
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1448
1598
  className: GlassRow_module_css_default.row,
1449
1599
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -1461,6 +1611,23 @@ window.__ModuleLoader__.load({
1461
1611
  className: GlassRow_module_css_default.rowHint,
1462
1612
  children: t("glass.glowHint")
1463
1613
  }),
1614
+ glow && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Knob, {
1615
+ label: t("glass.glowStrength"),
1616
+ value: glowStrength,
1617
+ min: 0,
1618
+ max: 200,
1619
+ step: 5,
1620
+ unit: "%",
1621
+ onChange: setGlowStrength
1622
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Knob, {
1623
+ label: t("glass.glowSize"),
1624
+ value: glowSize,
1625
+ min: 100,
1626
+ max: 250,
1627
+ step: 5,
1628
+ unit: "%",
1629
+ onChange: setGlowSize
1630
+ })] }),
1464
1631
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1465
1632
  className: GlassRow_module_css_default.sampleRow,
1466
1633
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -2081,8 +2248,15 @@ window.__ModuleLoader__.load({
2081
2248
  "glass.brightness": "背景亮度",
2082
2249
  "glass.brightnessHintDark": "深色模式:0 压暗至纯黑,50 原样",
2083
2250
  "glass.brightnessHintLight": "浅色模式:50 原样,100 提亮至纯白",
2251
+ "glass.gap": "卡片间距",
2252
+ "glass.gapHint": "云母模式下悬浮卡片与窗口边缘的留白。调大后侧栏卡片自身会变窄,正文列宽不变;兼容模式不受影响。",
2253
+ "glass.gapCompact": "紧凑",
2254
+ "glass.gapStandard": "标准",
2255
+ "glass.gapLoose": "宽松",
2084
2256
  "glass.glow": "地面光斑",
2085
- "glass.glowHint": "在渐变地面上叠加两枚柔光斑(0.6.3 的观感)。光斑固定在屏幕上,各块玻璃面板会透出它的不同部位,所以默认关闭;打开后左上角会明显偏亮",
2257
+ "glass.glowHint": "在渐变地面上叠加两枚柔光斑(0.6.3 的观感)。光斑固定在屏幕上,各块玻璃面板会透出它的不同部位,所以默认关闭;打开后左上角会明显偏亮,强度可调,100% 即上述观感。背景亮度拉满时氛围归零,光斑会一并淡出",
2258
+ "glass.glowStrength": "地面光斑强度",
2259
+ "glass.glowSize": "地面光斑范围",
2086
2260
  "glass.previewGround": "地面样本",
2087
2261
  "glass.previewGroundHint": "这一段就是页面地面的真实取色:拖动「背景亮度」或切换「地面光斑」,它当场变化。",
2088
2262
  "glass.reset": "还原默认值",
@@ -2169,8 +2343,15 @@ window.__ModuleLoader__.load({
2169
2343
  "glass.brightness": "Backdrop brightness",
2170
2344
  "glass.brightnessHintDark": "Dark mode: 0 fades to pure black, 50 unchanged",
2171
2345
  "glass.brightnessHintLight": "Light mode: 50 unchanged, 100 brightens to pure white",
2346
+ "glass.gap": "Card spacing",
2347
+ "glass.gapHint": "Whitespace between the floating cards and the window edge (Mica only). A larger gap narrows the sidebar sheet itself; the reading column does not move. Compatibility mode is unaffected.",
2348
+ "glass.gapCompact": "Compact",
2349
+ "glass.gapStandard": "Standard",
2350
+ "glass.gapLoose": "Loose",
2172
2351
  "glass.glow": "Ground glows",
2173
- "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",
2352
+ "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, and the strength knob below scales it (100% is that look). At maximum backdrop brightness the ambience collapses and the glows fade out with it",
2353
+ "glass.glowStrength": "Ground glow strength",
2354
+ "glass.glowSize": "Ground glow spread",
2174
2355
  "glass.previewGround": "Ground sample",
2175
2356
  "glass.previewGroundHint": "This strip is the page ground itself: drag the brightness knob or toggle the glows and it changes on the spot.",
2176
2357
  "glass.reset": "Reset to defaults",
@@ -2257,8 +2438,15 @@ window.__ModuleLoader__.load({
2257
2438
  "glass.brightness": "背景の輝度",
2258
2439
  "glass.brightnessHintDark": "ダーク: 0 で純黒、50 でそのまま",
2259
2440
  "glass.brightnessHintLight": "ライト: 50 でそのまま、100 で純白",
2441
+ "glass.gap": "カード間隔",
2442
+ "glass.gapHint": "Mica モードで浮遊カードとウィンドウ端のあいだに取る余白。広げるとサイドバーのカード自体が細くなり、本文の列幅は変わりません。互換モードには影響しません。",
2443
+ "glass.gapCompact": "コンパクト",
2444
+ "glass.gapStandard": "標準",
2445
+ "glass.gapLoose": "ゆったり",
2260
2446
  "glass.glow": "地面の光だまり",
2261
- "glass.glowHint": "グラデーションの地面に 2 つの柔らかな光だまりを重ねます(0.6.3 の見た目)。光だまりは画面に固定され、各ガラス面はその別々の部分を透かすため、既定ではオフ。オンにすると左上が明るくなります",
2447
+ "glass.glowHint": "グラデーションの地面に 2 つの柔らかな光だまりを重ねます(0.6.3 の見た目)。光だまりは画面に固定され、各ガラス面はその別々の部分を透かすため、既定ではオフ。オンにすると左上が明るくなります。下の強さで拡大でき、100% がその見た目です。背景の明るさを最大にすると雰囲気が 0 になり、光だまりも消えます",
2448
+ "glass.glowStrength": "地面の光だまりの強さ",
2449
+ "glass.glowSize": "地面の光だまりの広がり",
2262
2450
  "glass.previewGround": "地面サンプル",
2263
2451
  "glass.previewGroundHint": "この帯はページの地面そのものです。背景の輝度を動かすか光だまりを切り替えると、その場で変わります。",
2264
2452
  "glass.reset": "デフォルトに戻す",
@@ -2345,8 +2533,15 @@ window.__ModuleLoader__.load({
2345
2533
  "glass.brightness": "배경 밝기",
2346
2534
  "glass.brightnessHintDark": "다크 모드: 0이면 순수 검정, 50이면 그대로",
2347
2535
  "glass.brightnessHintLight": "라이트 모드: 50이면 그대로, 100이면 순수 흰색",
2536
+ "glass.gap": "카드 간격",
2537
+ "glass.gapHint": "Mica 모드에서 떠 있는 카드와 창 가장자리 사이의 여백입니다. 넓히면 사이드바 카드 자체가 좁아지고 본문 열 너비는 그대로입니다. 호환 모드에는 영향이 없습니다.",
2538
+ "glass.gapCompact": "좁게",
2539
+ "glass.gapStandard": "표준",
2540
+ "glass.gapLoose": "넓게",
2348
2541
  "glass.glow": "지면 광점",
2349
- "glass.glowHint": "그라데이션 지면 위에 부드러운 광점 두 개를 다시 올립니다(0.6.3 모양). 광점은 화면에 고정되어 각 유리 패널이 서로 다른 부분을 비추므로 기본값은 꺼짐이며, 켜면 왼쪽 위가 밝아집니다",
2542
+ "glass.glowHint": "그라데이션 지면 위에 부드러운 광점 두 개를 다시 올립니다(0.6.3 모양). 광점은 화면에 고정되어 각 유리 패널이 서로 다른 부분을 비추므로 기본값은 꺼짐이며, 켜면 왼쪽 위가 밝아집니다. 아래 강도로 키울 수 있고 100%가 그 모양입니다. 배경 밝기를 최대로 올리면 분위기가 0이 되어 광점도 사라집니다",
2543
+ "glass.glowStrength": "지면 광점 강도",
2544
+ "glass.glowSize": "지면 광점 범위",
2350
2545
  "glass.previewGround": "바닥 샘플",
2351
2546
  "glass.previewGroundHint": "이 띠는 페이지 바닥 그대로입니다. 배경 밝기를 움직이거나 빛무리를 켜면 바로 바뀝니다.",
2352
2547
  "glass.reset": "기본값으로 되돌리기",
@@ -2433,8 +2628,15 @@ window.__ModuleLoader__.load({
2433
2628
  "glass.brightness": "Brillo del fondo",
2434
2629
  "glass.brightnessHintDark": "Modo oscuro: 0 atenúa a negro puro, 50 sin cambios",
2435
2630
  "glass.brightnessHintLight": "Modo claro: 50 sin cambios, 100 aclara hasta blanco puro",
2631
+ "glass.gap": "Espaciado de tarjetas",
2632
+ "glass.gapHint": "Espacio entre las tarjetas flotantes y el borde de la ventana (solo Mica). Al ampliarlo, la tarjeta de la barra lateral se estrecha; la columna de lectura no se mueve. El modo Compatibilidad no se ve afectado.",
2633
+ "glass.gapCompact": "Compacto",
2634
+ "glass.gapStandard": "Estándar",
2635
+ "glass.gapLoose": "Amplio",
2436
2636
  "glass.glow": "Destellos del fondo",
2437
- "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",
2637
+ "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 y el control de intensidad de abajo lo amplía (100 % es ese aspecto). Con el brillo del fondo al máximo la ambientación se anula y los destellos desaparecen con ella",
2638
+ "glass.glowStrength": "Intensidad de los destellos",
2639
+ "glass.glowSize": "Extensión de los destellos",
2438
2640
  "glass.previewGround": "Muestra del fondo",
2439
2641
  "glass.previewGroundHint": "Esta banda es el fondo real de la página: mueve el brillo o activa los destellos y cambia al instante.",
2440
2642
  "glass.reset": "Restablecer valores",
@@ -2521,8 +2723,15 @@ window.__ModuleLoader__.load({
2521
2723
  "glass.brightness": "Luminosité du fond",
2522
2724
  "glass.brightnessHintDark": "Mode sombre : 0 atténue vers le noir pur, 50 inchangé",
2523
2725
  "glass.brightnessHintLight": "Mode clair : 50 inchangé, 100 éclaircit vers le blanc pur",
2726
+ "glass.gap": "Espacement des cartes",
2727
+ "glass.gapHint": "Espace entre les cartes flottantes et le bord de la fenêtre (Mica uniquement). En l'augmentant, la carte de la barre latérale se rétrécit ; la colonne de lecture ne bouge pas. Le mode Compatibilité n'est pas concerné.",
2728
+ "glass.gapCompact": "Compact",
2729
+ "glass.gapStandard": "Standard",
2730
+ "glass.gapLoose": "Large",
2524
2731
  "glass.glow": "Halos du fond",
2525
- "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",
2732
+ "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, et le curseur d'intensité ci-dessous l'amplifie (100 % correspond à cet aspect). Au maximum de luminosité du fond, l'ambiance s'annule et les halos disparaissent avec elle",
2733
+ "glass.glowStrength": "Intensité des halos",
2734
+ "glass.glowSize": "Étendue des halos",
2526
2735
  "glass.previewGround": "Échantillon du fond",
2527
2736
  "glass.previewGroundHint": "Cette bande est le fond réel de la page : bougez la luminosité ou activez les halos et elle change aussitôt.",
2528
2737
  "glass.reset": "Restaurer les valeurs",
@@ -2609,8 +2818,15 @@ window.__ModuleLoader__.load({
2609
2818
  "glass.brightness": "Hintergrundhelligkeit",
2610
2819
  "glass.brightnessHintDark": "Dunkelmodus: 0 verdunkelt zu reinem Schwarz, 50 unverändert",
2611
2820
  "glass.brightnessHintLight": "Hellmodus: 50 unverändert, 100 hellt zu reinem Weiß auf",
2821
+ "glass.gap": "Kartenabstand",
2822
+ "glass.gapHint": "Abstand zwischen den schwebenden Karten und dem Fensterrand (nur Mica). Ein größerer Abstand verschmälert die Seitenleisten-Karte selbst; die Lesespalte bleibt gleich. Der Kompatibilitätsmodus ist nicht betroffen.",
2823
+ "glass.gapCompact": "Kompakt",
2824
+ "glass.gapStandard": "Standard",
2825
+ "glass.gapLoose": "Weit",
2612
2826
  "glass.glow": "Hintergrund-Lichtflecken",
2613
- "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",
2827
+ "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, und der Regler für die Stärke darunter verstärkt sie (100 % entspricht diesem Aussehen). Bei maximaler Hintergrundhelligkeit fällt die Ambience auf 0 und die Lichtflecken verschwinden mit",
2828
+ "glass.glowStrength": "Stärke der Lichtflecken",
2829
+ "glass.glowSize": "Ausdehnung der Lichtflecken",
2614
2830
  "glass.previewGround": "Bodenprobe",
2615
2831
  "glass.previewGroundHint": "Dieser Streifen ist der echte Seitenhintergrund: Helligkeit ziehen oder Lichtflecken einschalten – er ändert sich sofort.",
2616
2832
  "glass.reset": "Standardwerte wiederherstellen",
@@ -3811,6 +4027,21 @@ window.__ModuleLoader__.load({
3811
4027
  path: ["glass", "brightness"],
3812
4028
  value: section.glass.brightness
3813
4029
  },
4030
+ {
4031
+ op: "set",
4032
+ path: ["glass", "gap"],
4033
+ value: section.glass.gap
4034
+ },
4035
+ {
4036
+ op: "set",
4037
+ path: ["glass", "glowStrength"],
4038
+ value: section.glass.glowStrength
4039
+ },
4040
+ {
4041
+ op: "set",
4042
+ path: ["glass", "glowSize"],
4043
+ value: section.glass.glowSize
4044
+ },
3814
4045
  {
3815
4046
  op: "set",
3816
4047
  path: ["glass", "glow"],
@@ -4609,9 +4840,18 @@ window.__ModuleLoader__.load({
4609
4840
  setBrightness: (brightness) => {
4610
4841
  glass.setBrightness(brightness);
4611
4842
  },
4843
+ setGap: (gap) => {
4844
+ glass.setGap(gap);
4845
+ },
4612
4846
  setGlow: (glow) => {
4613
4847
  glass.setGlow(glow);
4614
4848
  },
4849
+ setGlowStrength: (glowStrength) => {
4850
+ glass.setGlowStrength(glowStrength);
4851
+ },
4852
+ setGlowSize: (glowSize) => {
4853
+ glass.setGlowSize(glowSize);
4854
+ },
4615
4855
  resetDefaults: () => {
4616
4856
  glass.resetDefaults();
4617
4857
  }