@corum/corum-ui-base 0.6.0 → 0.7.0

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 CHANGED
@@ -1,4 +1,4 @@
1
- ;(function(){if(typeof document!=='undefined'&&document.querySelector('style[data-plugin="@corum/corum-ui-base"]')===null){var s=document.createElement('style');s.setAttribute('data-plugin','@corum/corum-ui-base');s.textContent=".N9y1Ba_card {\n background: var(--corum-glass-1, var(--dsw-alias-bg-layer-1));\n border: 1px solid var(--corum-glass-border, var(--dsw-alias-border-l1));\n border-radius: 18px;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n height: 100%;\n min-height: 0;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.N9y1Ba_cardTransparent {\n background: none;\n border-color: #0000;\n}\n\n.N9y1Ba_body {\n flex-direction: column;\n flex: 1;\n min-height: 0;\n display: flex;\n overflow: hidden;\n}\n\n.N9y1Ba_body > * {\n flex: 1;\n min-height: 0;\n}\n.KbY6GG_grid, .KbY6GG_branchRow, .KbY6GG_branchColumn {\n width: 100%;\n min-width: 0;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n.KbY6GG_branchCell {\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n display: flex;\n position: absolute;\n overflow: hidden;\n}\n\n.KbY6GG_branchInner {\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.KbY6GG_sashV {\n cursor: col-resize;\n z-index: 35;\n touch-action: none;\n width: 8px;\n position: absolute;\n}\n\n.KbY6GG_sashH {\n cursor: row-resize;\n z-index: 35;\n touch-action: none;\n height: 8px;\n position: absolute;\n}\n\n.KbY6GG_sashV:after, .KbY6GG_sashH:after {\n content: \"\";\n background: var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n opacity: 0;\n border-radius: 2px;\n transition: opacity .12s;\n position: absolute;\n}\n\n.KbY6GG_sashV:after {\n width: 3px;\n margin-left: -1.5px;\n top: 0;\n bottom: 0;\n left: 50%;\n}\n\n.KbY6GG_sashH:after {\n height: 3px;\n margin-top: -1.5px;\n top: 50%;\n left: 0;\n right: 0;\n}\n\n.KbY6GG_sashV:hover:after, .KbY6GG_sashH:hover:after {\n opacity: 1;\n}\n\n.KbY6GG_leaf {\n will-change: transform;\n user-select: text;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n height: 100%;\n min-height: 0;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n[data-drag-ghost], [data-drag-ghost] * {\n backdrop-filter: none !important;\n}\n\n.KbY6GG_detachedPlaceholder {\n justify-content: center;\n align-items: center;\n gap: calc(6px * var(--corum-density-scale, 1));\n height: 100%;\n color: var(--dsw-alias-label-tertiary);\n font-size: calc(12px * var(--corum-ui-font-scale, 1));\n flex-direction: column;\n display: flex;\n}\n\n.KbY6GG_detachedIcon {\n font-size: calc(20px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-brand-primary);\n}\n\n.KbY6GG_detachedHint {\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-dimmed);\n}\n\n.KbY6GG_dropHint {\n pointer-events: none;\n background: var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n opacity: .16;\n z-index: 5;\n position: absolute;\n inset: 0;\n}\n\n.KbY6GG_dropHint[data-zone=\"left\"] {\n border-radius: 14px 0 0 14px;\n right: 50%;\n}\n\n.KbY6GG_dropHint[data-zone=\"right\"] {\n border-radius: 0 14px 14px 0;\n left: 50%;\n}\n\n.KbY6GG_dropHint[data-zone=\"top\"] {\n border-radius: 14px 14px 0 0;\n bottom: 50%;\n}\n\n.KbY6GG_dropHint[data-zone=\"bottom\"] {\n border-radius: 0 0 14px 14px;\n top: 50%;\n}\n\n.KbY6GG_dropHint[data-zone=\"center\"] {\n opacity: .22;\n border-radius: 14px;\n inset: 0;\n}\n\n.KbY6GG_leaf[data-drop-zone] {\n outline: 2px solid var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n outline-offset: -2px;\n}\n\n.KbY6GG_dockPreview {\n pointer-events: none;\n background: var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n opacity: .22;\n border: 2px solid var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n z-index: 40;\n border-radius: 12px;\n transition: left 80ms, top 80ms, width 80ms, height 80ms;\n position: absolute;\n}\n.K0s1dq_host {\n z-index: 100;\n pointer-events: none;\n position: fixed;\n inset: 0;\n}\n\n.K0s1dq_item {\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.K0s1dq_item[data-modal] {\n pointer-events: auto;\n}\n\n.K0s1dq_mask {\n background: var(--dsw-alias-bg-mask-1);\n backdrop-filter: var(--dsw-mask-blur);\n position: absolute;\n inset: 0;\n}\n\n.K0s1dq_body {\n pointer-events: auto;\n position: relative;\n}\n.yPBkUG_overlay {\n z-index: 10001;\n backdrop-filter: blur(8px);\n background: #00000059;\n justify-content: center;\n align-items: center;\n display: flex;\n position: fixed;\n inset: 0;\n}\n\n.yPBkUG_dialog {\n gap: calc(8px * var(--corum-density-scale, 1));\n width: 360px;\n max-width: calc(100vw - 48px);\n padding: calc(16px * var(--corum-density-scale, 1));\n border: 1px solid var(--corum-glass-border);\n background: var(--corum-glass-1);\n backdrop-filter: blur(16px) saturate(140%);\n box-sizing: border-box;\n border-radius: 16px;\n flex-direction: column;\n display: flex;\n position: relative;\n box-shadow: 0 16px 48px #0000004d;\n}\n\n.yPBkUG_closeBtn {\n cursor: pointer;\n width: 24px;\n height: 24px;\n color: var(--dsw-alias-label-tertiary);\n background: none;\n border: none;\n border-radius: 6px;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.yPBkUG_closeBtn:hover {\n background: var(--corum-glass-2);\n color: var(--dsw-alias-label-secondary);\n}\n\n.yPBkUG_inlinePop {\n gap: calc(8px * var(--corum-density-scale, 1));\n width: 224px;\n padding: calc(10px * var(--corum-density-scale, 1));\n border: 1px solid var(--corum-glass-border);\n background: var(--corum-glass-1);\n box-sizing: border-box;\n z-index: 20;\n border-radius: 12px;\n flex-direction: column;\n display: flex;\n position: absolute;\n bottom: calc(100% + 8px);\n right: 0;\n box-shadow: 0 12px 28px #00000040;\n}\n\n.yPBkUG_title {\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(12px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-primary);\n font-weight: 600;\n}\n\n.yPBkUG_dialog .yPBkUG_title {\n font-size: calc(15px * var(--corum-ui-font-scale, 1));\n font-weight: 700;\n}\n\n.yPBkUG_message {\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-secondary);\n font-weight: 400;\n line-height: 1.5;\n}\n\n.yPBkUG_dialog .yPBkUG_message {\n font-size: calc(13px * var(--corum-ui-font-scale, 1));\n}\n\n.yPBkUG_warning {\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(10px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-state-error-primary);\n font-weight: 400;\n line-height: 1.4;\n}\n\n.yPBkUG_dialog .yPBkUG_warning {\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n}\n\n.yPBkUG_row {\n justify-content: flex-end;\n gap: calc(6px * var(--corum-density-scale, 1));\n padding-top: calc(4px * var(--corum-density-scale, 1));\n display: flex;\n}\n\n.yPBkUG_cancelBtn {\n padding: calc(5px * var(--corum-density-scale, 1)) calc(12px * var(--corum-density-scale, 1));\n border: 1px solid var(--corum-glass-border);\n background: var(--corum-glass-2);\n cursor: pointer;\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-primary);\n border-radius: 8px;\n font-weight: 400;\n}\n\n.yPBkUG_cancelBtn:disabled {\n opacity: .5;\n cursor: default;\n}\n\n.yPBkUG_confirmBtnDanger {\n padding: calc(5px * var(--corum-density-scale, 1)) calc(12px * var(--corum-density-scale, 1));\n background: var(--dsw-alias-state-error-primary);\n cursor: pointer;\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--corum-label-on-brand);\n border: none;\n border-radius: 8px;\n font-weight: 600;\n}\n\n.yPBkUG_confirmBtnPrimary {\n padding: calc(5px * var(--corum-density-scale, 1)) calc(12px * var(--corum-density-scale, 1));\n background: var(--dsw-alias-brand-primary, var(--corum-state-running));\n cursor: pointer;\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--corum-label-on-brand);\n border: none;\n border-radius: 8px;\n font-weight: 600;\n}\n\n.yPBkUG_confirmBtnDanger:disabled, .yPBkUG_confirmBtnPrimary:disabled {\n opacity: .5;\n cursor: default;\n}\n.C7ym2q_tileGrid {\n --mosaic-gap: calc(8px * var(--corum-density-scale, 1));\n --mosaic-unit: min(calc(128px * var(--corum-density-scale, 1)),\n calc((100cqw - 5 * var(--mosaic-gap)) / 6));\n gap: var(--mosaic-gap);\n flex-direction: column;\n align-content: start;\n min-width: 0;\n display: flex;\n container-type: inline-size;\n}\n\n.C7ym2q_mosaicBlock {\n align-items: stretch;\n gap: var(--mosaic-gap);\n width: 100%;\n min-width: 0;\n display: flex;\n}\n\n.C7ym2q_mosaicBlock[data-mosaic-block=\"264\"] {\n height: max(calc(2 * var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1))) + var(--mosaic-gap)),\n calc(200px * var(--corum-density-scale, 1)));\n}\n\n.C7ym2q_mosaicBlock[data-mosaic-block=\"128\"] {\n height: max(var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1))),\n calc(96px * var(--corum-density-scale, 1)));\n}\n\n.C7ym2q_mosaicCol {\n gap: var(--mosaic-gap);\n min-width: 0;\n min-height: 0;\n width: var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1)));\n flex-direction: column;\n flex: none;\n display: flex;\n}\n\n.C7ym2q_mosaicCol[data-col=\"264\"] {\n width: calc(2 * var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1))) + var(--mosaic-gap));\n}\n\n.C7ym2q_mosaicCol > * {\n flex: 1 1 0;\n min-width: 0;\n min-height: 0;\n}\n\n.C7ym2q_mosaicCol > [data-tile-size=\"big\"], .C7ym2q_mosaicCol > [data-tile-size=\"tall\"] {\n flex: auto;\n}\n\n.C7ym2q_tile {\n box-sizing: border-box;\n padding: clamp(calc(8px * var(--corum-density-scale, 1)),\n calc(var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1))) * .09),\n calc(12px * var(--corum-density-scale, 1)));\n border: 1px solid var(--corum-glass-border);\n background: var(--tile-tint, var(--corum-glass-1));\n text-align: left;\n cursor: pointer;\n border-radius: 10px;\n flex-direction: column;\n justify-content: space-between;\n font-family: inherit;\n transition: border-color .15s, background .15s;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.C7ym2q_tile:hover {\n border-color: var(--corum-glass-border-active);\n}\n\n.C7ym2q_tile:focus-visible {\n outline: 2px solid var(--dsw-alias-brand-primary);\n outline-offset: 1px;\n}\n\n.C7ym2q_tileTintViolet {\n --tile-tint: var(--corum-tile-violet, var(--corum-glass-1));\n}\n\n.C7ym2q_tileTintDeep {\n --tile-tint: var(--corum-tile-deep, var(--corum-glass-1));\n}\n\n.C7ym2q_tileTintSlate {\n --tile-tint: var(--corum-tile-slate, var(--corum-glass-1));\n}\n\n.C7ym2q_tileTintMauve {\n --tile-tint: var(--corum-tile-mauve, var(--corum-glass-1));\n}\n\n.C7ym2q_tileActive {\n background: var(--corum-glass-2);\n border-color: var(--corum-glass-border-active);\n}\n\n.C7ym2q_tile[data-tile-size=\"big\"]:before, .C7ym2q_tileGlow:before {\n content: \"\";\n pointer-events: none;\n background: radial-gradient(circle at 78% 22%,\n color-mix(in srgb, var(--dsw-alias-brand-primary) 36%, transparent) 0%,\n transparent 62%);\n position: absolute;\n inset: 0;\n}\n\n.C7ym2q_tileTop {\n justify-content: space-between;\n align-items: center;\n gap: calc(6px * var(--corum-density-scale, 1));\n display: flex;\n position: relative;\n}\n\n.C7ym2q_tileIcon {\n color: var(--dsw-alias-brand-text);\n flex: none;\n display: inline-flex;\n}\n\n.C7ym2q_tileCorner {\n top: calc(10px * var(--corum-density-scale, 1));\n right: calc(10px * var(--corum-density-scale, 1));\n align-items: center;\n gap: calc(3px * var(--corum-density-scale, 1));\n display: inline-flex;\n position: absolute;\n}\n\n.C7ym2q_tileBottom {\n gap: calc(3px * var(--corum-density-scale, 1));\n flex-direction: column;\n min-width: 0;\n display: flex;\n position: relative;\n}\n\n.C7ym2q_tileNameRow {\n align-items: flex-start;\n gap: calc(4px * var(--corum-density-scale, 1));\n flex-direction: column;\n width: 100%;\n min-width: 0;\n display: flex;\n}\n\n.C7ym2q_tileName {\n -webkit-line-clamp: 3;\n overflow-wrap: anywhere;\n width: 100%;\n min-width: 0;\n color: var(--dsw-alias-label-primary);\n font-weight: 600;\n font-size: calc(13px * var(--corum-ui-font-scale, 1));\n -webkit-box-orient: vertical;\n min-height: 3.9em;\n line-height: 1.3;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.C7ym2q_tile[data-tile-size=\"big\"] .C7ym2q_tileName {\n font-size: calc(15px * var(--corum-ui-font-scale, 1));\n}\n\n.C7ym2q_tileVersion {\n height: calc(16px * var(--corum-density-scale, 1));\n padding: 0 calc(6px * var(--corum-density-scale, 1));\n border: 1px solid var(--corum-glass-border);\n background: var(--corum-glass-3);\n color: var(--dsw-alias-label-tertiary);\n font-family: JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: calc(9px * var(--corum-ui-font-scale, 1));\n white-space: nowrap;\n border-radius: 999px;\n flex: none;\n align-items: center;\n width: fit-content;\n font-weight: 600;\n display: inline-flex;\n}\n\n.C7ym2q_tileSub {\n font-size: calc(10px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.C7ym2q_tileBodyScaffold {\n gap: calc(3px * var(--corum-density-scale, 1));\n flex-direction: column;\n width: 100%;\n min-width: 0;\n min-height: 0;\n display: flex;\n}\n\n.C7ym2q_tile[data-tile-size=\"wide\"] .C7ym2q_tileBodyScaffold {\n align-items: flex-start;\n gap: calc(10px * var(--corum-density-scale, 1));\n flex-direction: row;\n}\n\n.C7ym2q_tile[data-tile-size=\"wide\"] .C7ym2q_tileBodyText {\n flex: auto;\n min-width: 0;\n}\n\n.C7ym2q_tile[data-tile-size=\"tall\"] .C7ym2q_tileBodyScaffold {\n justify-content: space-between;\n}\n\n.C7ym2q_tile[data-tile-size=\"big\"] .C7ym2q_tileName, .C7ym2q_tile[data-tile-size=\"tall\"] .C7ym2q_tileName {\n -webkit-line-clamp: 3;\n min-height: 3.9em;\n}\n\n.C7ym2q_tileDot {\n background: var(--dsw-alias-state-success-primary);\n border-radius: 50%;\n flex: none;\n width: 8px;\n height: 8px;\n}\n\n.C7ym2q_tileDotOff {\n background: var(--dsw-alias-label-dimmed);\n}\n\n.C7ym2q_tileSwitch {\n width: calc(32px * var(--corum-density-scale, 1));\n height: calc(18px * var(--corum-density-scale, 1));\n background: var(--dsw-alias-brand-primary);\n cursor: pointer;\n border: 1px solid #0000;\n border-radius: 999px;\n flex: none;\n padding: 0;\n transition: background .15s;\n position: relative;\n}\n\n.C7ym2q_tileSwitch[data-off] {\n background: var(--corum-glass-3);\n border-color: var(--corum-glass-border);\n}\n\n.C7ym2q_tileSwitch:disabled {\n opacity: .5;\n cursor: default;\n}\n\n.C7ym2q_tileSwitchKnob {\n background: var(--corum-label-on-brand);\n border-radius: 50%;\n width: 14px;\n height: 14px;\n transition: left .15s;\n position: absolute;\n top: 2px;\n left: 14px;\n}\n\n.C7ym2q_tileSwitch[data-off] .C7ym2q_tileSwitchKnob {\n background: var(--dsw-alias-label-dimmed);\n left: 2px;\n}\n\n.C7ym2q_tilePlaceholder {\n justify-content: center;\n align-items: center;\n gap: calc(8px * var(--corum-density-scale, 1));\n box-sizing: border-box;\n padding: calc(12px * var(--corum-density-scale, 1));\n border: 1px dashed var(--corum-glass-border);\n color: var(--dsw-alias-label-dimmed);\n cursor: default;\n background: none;\n border-radius: 10px;\n flex-direction: column;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.C7ym2q_tilePlaceholderIcon {\n color: var(--dsw-alias-label-dimmed);\n display: inline-flex;\n}\n\n.C7ym2q_tilePlaceholderText {\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-dimmed);\n margin: 0;\n}\n\n.C7ym2q_hotRow {\n gap: var(--mosaic-gap, calc(8px * var(--corum-density-scale, 1)));\n min-width: 0;\n display: flex;\n}\n\n.C7ym2q_hotRow > * {\n min-width: 0;\n height: calc(120px * var(--corum-density-scale, 1));\n flex: 1 1 0;\n}\n\n.C7ym2q_tile {\n container-type: size;\n}\n\n@container (height <= 180px) {\n .C7ym2q_tileName {\n -webkit-line-clamp: 2;\n min-height: 2.6em;\n }\n}\n\n@container (height <= 140px) {\n .C7ym2q_tileName {\n -webkit-line-clamp: 1;\n white-space: nowrap;\n text-overflow: ellipsis;\n min-height: 1.3em;\n }\n}\n\n@container (height <= 170px) {\n .C7ym2q_tileVersion {\n display: none;\n }\n}\n\n@container (height <= 85px) {\n .C7ym2q_tileIcon svg {\n width: 16px;\n height: 16px;\n }\n}\nbody {\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, \"PingFang SC\", \"SF Pro Text\", system-ui, sans-serif);\n}\n\ncode, pre, kbd, samp, [data-corume-mono] {\n font-family: JetBrains Mono, SFMono-Regular, Menlo, Consolas, monospace;\n}\n\n@media (prefers-reduced-motion: reduce) {\n *, :before, :after {\n transition-duration: .001ms !important;\n animation-duration: .001ms !important;\n animation-iteration-count: 1 !important;\n }\n}\n";document.head.appendChild(s);}})();
1
+ ;(function(){if(typeof document!=='undefined'&&document.querySelector('style[data-plugin="@corum/corum-ui-base"]')===null){var s=document.createElement('style');s.setAttribute('data-plugin','@corum/corum-ui-base');s.textContent=".oT9sTq_card {\n background: var(--corum-glass-1, var(--dsw-alias-bg-layer-1));\n border: 1px solid var(--corum-glass-border, var(--dsw-alias-border-l1));\n border-radius: 18px;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n height: 100%;\n min-height: 0;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.oT9sTq_cardTransparent {\n background: none;\n border-color: #0000;\n}\n\n.oT9sTq_body {\n flex-direction: column;\n flex: 1;\n min-height: 0;\n display: flex;\n overflow: hidden;\n}\n\n.oT9sTq_body > * {\n flex: 1;\n min-height: 0;\n}\n.rUtG1G_grid, .rUtG1G_branchRow, .rUtG1G_branchColumn {\n width: 100%;\n min-width: 0;\n height: 100%;\n min-height: 0;\n position: relative;\n overflow: hidden;\n}\n\n.rUtG1G_branchCell {\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n display: flex;\n position: absolute;\n overflow: hidden;\n}\n\n.rUtG1G_branchInner {\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.rUtG1G_sashV {\n cursor: col-resize;\n z-index: 35;\n touch-action: none;\n width: 8px;\n position: absolute;\n}\n\n.rUtG1G_sashH {\n cursor: row-resize;\n z-index: 35;\n touch-action: none;\n height: 8px;\n position: absolute;\n}\n\n.rUtG1G_sashV:after, .rUtG1G_sashH:after {\n content: \"\";\n background: var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n opacity: 0;\n border-radius: 2px;\n transition: opacity .12s;\n position: absolute;\n}\n\n.rUtG1G_sashV:after {\n width: 3px;\n margin-left: -1.5px;\n top: 0;\n bottom: 0;\n left: 50%;\n}\n\n.rUtG1G_sashH:after {\n height: 3px;\n margin-top: -1.5px;\n top: 50%;\n left: 0;\n right: 0;\n}\n\n.rUtG1G_sashV:hover:after, .rUtG1G_sashH:hover:after {\n opacity: 1;\n}\n\n.rUtG1G_leaf {\n will-change: transform;\n user-select: text;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n height: 100%;\n min-height: 0;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n[data-drag-ghost], [data-drag-ghost] * {\n backdrop-filter: none !important;\n}\n\n.rUtG1G_detachedPlaceholder {\n justify-content: center;\n align-items: center;\n gap: calc(6px * var(--corum-density-scale, 1));\n height: 100%;\n color: var(--dsw-alias-label-tertiary);\n font-size: calc(12px * var(--corum-ui-font-scale, 1));\n flex-direction: column;\n display: flex;\n}\n\n.rUtG1G_detachedIcon {\n font-size: calc(20px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-brand-primary);\n}\n\n.rUtG1G_detachedHint {\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-dimmed);\n}\n\n.rUtG1G_dropHint {\n pointer-events: none;\n background: var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n opacity: .16;\n z-index: 5;\n position: absolute;\n inset: 0;\n}\n\n.rUtG1G_dropHint[data-zone=\"left\"] {\n border-radius: 14px 0 0 14px;\n right: 50%;\n}\n\n.rUtG1G_dropHint[data-zone=\"right\"] {\n border-radius: 0 14px 14px 0;\n left: 50%;\n}\n\n.rUtG1G_dropHint[data-zone=\"top\"] {\n border-radius: 14px 14px 0 0;\n bottom: 50%;\n}\n\n.rUtG1G_dropHint[data-zone=\"bottom\"] {\n border-radius: 0 0 14px 14px;\n top: 50%;\n}\n\n.rUtG1G_dropHint[data-zone=\"center\"] {\n opacity: .22;\n border-radius: 14px;\n inset: 0;\n}\n\n.rUtG1G_leaf[data-drop-zone] {\n outline: 2px solid var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n outline-offset: -2px;\n}\n\n.rUtG1G_dockPreview {\n pointer-events: none;\n background: var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n opacity: .22;\n border: 2px solid var(--corum-glass-border-active, var(--dsw-alias-brand-primary));\n z-index: 40;\n border-radius: 12px;\n transition: left 80ms, top 80ms, width 80ms, height 80ms;\n position: absolute;\n}\n.kH9e0W_host {\n z-index: 100;\n pointer-events: none;\n position: fixed;\n inset: 0;\n}\n\n.kH9e0W_item {\n pointer-events: none;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.kH9e0W_item[data-modal] {\n pointer-events: auto;\n}\n\n.kH9e0W_mask {\n background: var(--dsw-alias-bg-mask-1);\n backdrop-filter: var(--dsw-mask-blur);\n position: absolute;\n inset: 0;\n}\n\n.kH9e0W_body {\n pointer-events: auto;\n position: relative;\n}\n.wavfcW_overlay {\n z-index: 10001;\n backdrop-filter: blur(8px);\n background: #00000059;\n justify-content: center;\n align-items: center;\n display: flex;\n position: fixed;\n inset: 0;\n}\n\n.wavfcW_dialog {\n gap: calc(8px * var(--corum-density-scale, 1));\n width: 360px;\n max-width: calc(100vw - 48px);\n padding: calc(16px * var(--corum-density-scale, 1));\n border: 1px solid var(--corum-glass-border);\n background: var(--corum-glass-1);\n backdrop-filter: blur(16px) saturate(140%);\n box-sizing: border-box;\n border-radius: 16px;\n flex-direction: column;\n display: flex;\n position: relative;\n box-shadow: 0 16px 48px #0000004d;\n}\n\n.wavfcW_closeBtn {\n cursor: pointer;\n width: 24px;\n height: 24px;\n color: var(--dsw-alias-label-tertiary);\n background: none;\n border: none;\n border-radius: 6px;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.wavfcW_closeBtn:hover {\n background: var(--corum-glass-2);\n color: var(--dsw-alias-label-secondary);\n}\n\n.wavfcW_inlinePop {\n gap: calc(8px * var(--corum-density-scale, 1));\n width: 224px;\n padding: calc(10px * var(--corum-density-scale, 1));\n border: 1px solid var(--corum-glass-border);\n background: var(--corum-glass-1);\n box-sizing: border-box;\n z-index: 20;\n border-radius: 12px;\n flex-direction: column;\n display: flex;\n position: absolute;\n bottom: calc(100% + 8px);\n right: 0;\n box-shadow: 0 12px 28px #00000040;\n}\n\n.wavfcW_title {\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(12px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-primary);\n font-weight: 600;\n}\n\n.wavfcW_dialog .wavfcW_title {\n font-size: calc(15px * var(--corum-ui-font-scale, 1));\n font-weight: 700;\n}\n\n.wavfcW_message {\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-secondary);\n font-weight: 400;\n line-height: 1.5;\n}\n\n.wavfcW_dialog .wavfcW_message {\n font-size: calc(13px * var(--corum-ui-font-scale, 1));\n}\n\n.wavfcW_warning {\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(10px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-state-error-primary);\n font-weight: 400;\n line-height: 1.4;\n}\n\n.wavfcW_dialog .wavfcW_warning {\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n}\n\n.wavfcW_row {\n justify-content: flex-end;\n gap: calc(6px * var(--corum-density-scale, 1));\n padding-top: calc(4px * var(--corum-density-scale, 1));\n display: flex;\n}\n\n.wavfcW_cancelBtn {\n padding: calc(5px * var(--corum-density-scale, 1)) calc(12px * var(--corum-density-scale, 1));\n border: 1px solid var(--corum-glass-border);\n background: var(--corum-glass-2);\n cursor: pointer;\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-primary);\n border-radius: 8px;\n font-weight: 400;\n}\n\n.wavfcW_cancelBtn:disabled {\n opacity: .5;\n cursor: default;\n}\n\n.wavfcW_confirmBtnDanger {\n padding: calc(5px * var(--corum-density-scale, 1)) calc(12px * var(--corum-density-scale, 1));\n background: var(--dsw-alias-state-error-primary);\n cursor: pointer;\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--corum-label-on-brand);\n border: none;\n border-radius: 8px;\n font-weight: 600;\n}\n\n.wavfcW_confirmBtnPrimary {\n padding: calc(5px * var(--corum-density-scale, 1)) calc(12px * var(--corum-density-scale, 1));\n background: var(--dsw-alias-brand-primary, var(--corum-state-running));\n cursor: pointer;\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, sans-serif);\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--corum-label-on-brand);\n border: none;\n border-radius: 8px;\n font-weight: 600;\n}\n\n.wavfcW_confirmBtnDanger:disabled, .wavfcW_confirmBtnPrimary:disabled {\n opacity: .5;\n cursor: default;\n}\n.kgnWfG_tileGrid {\n --mosaic-gap: calc(8px * var(--corum-density-scale, 1));\n --mosaic-unit: min(calc(128px * var(--corum-density-scale, 1)),\n calc((100cqw - 5 * var(--mosaic-gap)) / 6));\n gap: var(--mosaic-gap);\n flex-direction: column;\n align-content: start;\n min-width: 0;\n display: flex;\n container-type: inline-size;\n}\n\n.kgnWfG_mosaicBlock {\n align-items: stretch;\n gap: var(--mosaic-gap);\n width: 100%;\n min-width: 0;\n display: flex;\n}\n\n.kgnWfG_mosaicBlock[data-mosaic-block=\"264\"] {\n height: max(calc(2 * var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1))) + var(--mosaic-gap)),\n calc(200px * var(--corum-density-scale, 1)));\n}\n\n.kgnWfG_mosaicBlock[data-mosaic-block=\"128\"] {\n height: max(var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1))),\n calc(96px * var(--corum-density-scale, 1)));\n}\n\n.kgnWfG_mosaicCol {\n gap: var(--mosaic-gap);\n min-width: 0;\n min-height: 0;\n width: var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1)));\n flex-direction: column;\n flex: none;\n display: flex;\n}\n\n.kgnWfG_mosaicCol[data-col=\"264\"] {\n width: calc(2 * var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1))) + var(--mosaic-gap));\n}\n\n.kgnWfG_mosaicCol > * {\n flex: 1 1 0;\n min-width: 0;\n min-height: 0;\n}\n\n.kgnWfG_mosaicCol > [data-tile-size=\"big\"], .kgnWfG_mosaicCol > [data-tile-size=\"tall\"] {\n flex: auto;\n}\n\n.kgnWfG_tile {\n box-sizing: border-box;\n padding: clamp(calc(8px * var(--corum-density-scale, 1)),\n calc(var(--mosaic-unit, calc(128px * var(--corum-density-scale, 1))) * .09),\n calc(12px * var(--corum-density-scale, 1)));\n border: 1px solid var(--corum-glass-border);\n background: var(--tile-tint, var(--corum-glass-1));\n text-align: left;\n cursor: pointer;\n border-radius: 0;\n flex-direction: column;\n justify-content: space-between;\n font-family: inherit;\n transition: border-color .15s, background .15s;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.kgnWfG_tile:hover {\n border-color: var(--corum-glass-border-active);\n}\n\n.kgnWfG_tile:focus-visible {\n outline: 2px solid var(--dsw-alias-brand-primary);\n outline-offset: 1px;\n}\n\n.kgnWfG_tileTintViolet {\n --tile-tint: var(--corum-tile-violet, var(--corum-glass-1));\n}\n\n.kgnWfG_tileTintDeep {\n --tile-tint: var(--corum-tile-deep, var(--corum-glass-1));\n}\n\n.kgnWfG_tileTintSlate {\n --tile-tint: var(--corum-tile-slate, var(--corum-glass-1));\n}\n\n.kgnWfG_tileTintMauve {\n --tile-tint: var(--corum-tile-mauve, var(--corum-glass-1));\n}\n\n.kgnWfG_tileTintBlue {\n --tile-tint: var(--corum-tile-blue, var(--corum-glass-1));\n}\n\n.kgnWfG_tileTintCyan {\n --tile-tint: var(--corum-tile-cyan, var(--corum-glass-1));\n}\n\n.kgnWfG_tileTintEmerald {\n --tile-tint: var(--corum-tile-emerald, var(--corum-glass-1));\n}\n\n.kgnWfG_tileTintAmber {\n --tile-tint: var(--corum-tile-amber, var(--corum-glass-1));\n}\n\n.kgnWfG_tileTintRose {\n --tile-tint: var(--corum-tile-rose, var(--corum-glass-1));\n}\n\n.kgnWfG_tileActive {\n background: var(--corum-glass-2);\n border-color: var(--corum-glass-border-active);\n}\n\n.kgnWfG_tile[data-tile-size=\"big\"]:before, .kgnWfG_tileGlow:before {\n content: \"\";\n pointer-events: none;\n background: radial-gradient(circle at 78% 22%,\n color-mix(in srgb, var(--dsw-alias-brand-primary) 36%, transparent) 0%,\n transparent 62%);\n position: absolute;\n inset: 0;\n}\n\n.kgnWfG_tileTop {\n justify-content: space-between;\n align-items: center;\n gap: calc(6px * var(--corum-density-scale, 1));\n display: flex;\n position: relative;\n}\n\n.kgnWfG_tileIcon {\n color: var(--dsw-alias-brand-text);\n flex: none;\n display: inline-flex;\n}\n\n.kgnWfG_tileCorner {\n top: calc(10px * var(--corum-density-scale, 1));\n right: calc(10px * var(--corum-density-scale, 1));\n align-items: center;\n gap: calc(3px * var(--corum-density-scale, 1));\n display: inline-flex;\n position: absolute;\n}\n\n.kgnWfG_tileBottom {\n gap: calc(3px * var(--corum-density-scale, 1));\n flex-direction: column;\n min-width: 0;\n display: flex;\n position: relative;\n}\n\n.kgnWfG_tileNameRow {\n align-items: flex-start;\n gap: calc(4px * var(--corum-density-scale, 1));\n flex-direction: column;\n width: 100%;\n min-width: 0;\n display: flex;\n}\n\n.kgnWfG_tileName {\n -webkit-line-clamp: 3;\n overflow-wrap: anywhere;\n width: 100%;\n min-width: 0;\n color: var(--dsw-alias-label-primary);\n font-weight: 600;\n font-size: calc(13px * var(--corum-ui-font-scale, 1));\n -webkit-box-orient: vertical;\n min-height: 3.9em;\n line-height: 1.3;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.kgnWfG_tile[data-tile-size=\"big\"] .kgnWfG_tileName {\n font-size: calc(15px * var(--corum-ui-font-scale, 1));\n}\n\n.kgnWfG_tileVersion {\n height: calc(16px * var(--corum-density-scale, 1));\n padding: 0 calc(6px * var(--corum-density-scale, 1));\n border: 1px solid var(--corum-glass-border);\n background: var(--corum-glass-3);\n color: var(--dsw-alias-label-tertiary);\n font-family: JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: calc(9px * var(--corum-ui-font-scale, 1));\n white-space: nowrap;\n border-radius: 999px;\n flex: none;\n align-items: center;\n width: fit-content;\n font-weight: 600;\n display: inline-flex;\n}\n\n.kgnWfG_tileSub {\n font-size: calc(10px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.kgnWfG_tileBodyScaffold {\n gap: calc(3px * var(--corum-density-scale, 1));\n flex-direction: column;\n width: 100%;\n min-width: 0;\n min-height: 0;\n display: flex;\n}\n\n.kgnWfG_tile[data-tile-size=\"wide\"] .kgnWfG_tileBodyScaffold {\n align-items: flex-start;\n gap: calc(10px * var(--corum-density-scale, 1));\n flex-direction: row;\n}\n\n.kgnWfG_tile[data-tile-size=\"wide\"] .kgnWfG_tileBodyText {\n flex: auto;\n min-width: 0;\n}\n\n.kgnWfG_tile[data-tile-size=\"tall\"] .kgnWfG_tileBodyScaffold {\n justify-content: space-between;\n}\n\n.kgnWfG_tile[data-tile-size=\"big\"] .kgnWfG_tileName, .kgnWfG_tile[data-tile-size=\"tall\"] .kgnWfG_tileName {\n -webkit-line-clamp: 3;\n min-height: 3.9em;\n}\n\n.kgnWfG_tileDot {\n background: var(--dsw-alias-state-success-primary);\n border-radius: 50%;\n flex: none;\n width: 8px;\n height: 8px;\n}\n\n.kgnWfG_tileDotOff {\n background: var(--dsw-alias-label-dimmed);\n}\n\n.kgnWfG_tileSwitch {\n width: calc(32px * var(--corum-density-scale, 1));\n height: calc(18px * var(--corum-density-scale, 1));\n background: var(--dsw-alias-brand-primary);\n cursor: pointer;\n border: 1px solid #0000;\n border-radius: 999px;\n flex: none;\n padding: 0;\n transition: background .15s;\n position: relative;\n}\n\n.kgnWfG_tileSwitch[data-off] {\n background: var(--corum-glass-3);\n border-color: var(--corum-glass-border);\n}\n\n.kgnWfG_tileSwitch:disabled {\n opacity: .5;\n cursor: default;\n}\n\n.kgnWfG_tileSwitchKnob {\n background: var(--corum-label-on-brand);\n border-radius: 50%;\n width: 14px;\n height: 14px;\n transition: left .15s;\n position: absolute;\n top: 2px;\n left: 14px;\n}\n\n.kgnWfG_tileSwitch[data-off] .kgnWfG_tileSwitchKnob {\n background: var(--dsw-alias-label-dimmed);\n left: 2px;\n}\n\n.kgnWfG_tilePlaceholder {\n justify-content: center;\n align-items: center;\n gap: calc(8px * var(--corum-density-scale, 1));\n box-sizing: border-box;\n padding: calc(12px * var(--corum-density-scale, 1));\n border: 1px dashed var(--corum-glass-border);\n color: var(--dsw-alias-label-dimmed);\n cursor: default;\n background: none;\n border-radius: 0;\n flex-direction: column;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.kgnWfG_tilePlaceholderIcon {\n color: var(--dsw-alias-label-dimmed);\n display: inline-flex;\n}\n\n.kgnWfG_tilePlaceholderText {\n font-size: calc(11px * var(--corum-ui-font-scale, 1));\n color: var(--dsw-alias-label-dimmed);\n margin: 0;\n}\n\n.kgnWfG_hotRow {\n gap: var(--mosaic-gap, calc(8px * var(--corum-density-scale, 1)));\n min-width: 0;\n display: flex;\n}\n\n.kgnWfG_hotRow > * {\n min-width: 0;\n height: calc(120px * var(--corum-density-scale, 1));\n flex: 1 1 0;\n}\n\n.kgnWfG_tile {\n container-type: size;\n}\n\n@container (height <= 180px) {\n .kgnWfG_tileName {\n -webkit-line-clamp: 2;\n min-height: 2.6em;\n }\n}\n\n@container (height <= 140px) {\n .kgnWfG_tileName {\n -webkit-line-clamp: 1;\n white-space: nowrap;\n text-overflow: ellipsis;\n min-height: 1.3em;\n }\n}\n\n@container (height <= 170px) {\n .kgnWfG_tileVersion {\n display: none;\n }\n}\n\n@container (height <= 85px) {\n .kgnWfG_tileIcon svg {\n width: 16px;\n height: 16px;\n }\n}\nbody {\n font-family: var(--corum-ui-font-family, \"Inter\", -apple-system, \"PingFang SC\", \"SF Pro Text\", system-ui, sans-serif);\n}\n\ncode, pre, kbd, samp, [data-corume-mono] {\n font-family: JetBrains Mono, SFMono-Regular, Menlo, Consolas, monospace;\n}\n\n@media (prefers-reduced-motion: reduce) {\n *, :before, :after {\n transition-duration: .001ms !important;\n animation-duration: .001ms !important;\n animation-iteration-count: 1 !important;\n }\n}\n";document.head.appendChild(s);}})();
2
2
  window.__ModuleLoader__.load({
3
3
  id: "@corum/corum-ui-base",
4
4
  factory: (require) => {
@@ -570,9 +570,9 @@ window.__ModuleLoader__.load({
570
570
  //#endregion
571
571
  //#region src/client/RegionCard.module.css
572
572
  var RegionCard_module_default = {
573
- "body": "N9y1Ba_body",
574
- "card": "N9y1Ba_card",
575
- "cardTransparent": "N9y1Ba_cardTransparent"
573
+ "body": "oT9sTq_body",
574
+ "card": "oT9sTq_card",
575
+ "cardTransparent": "oT9sTq_cardTransparent"
576
576
  };
577
577
  //#endregion
578
578
  //#region src/client/RegionCard.tsx
@@ -724,19 +724,19 @@ window.__ModuleLoader__.load({
724
724
  //#endregion
725
725
  //#region src/client/GridView.module.css
726
726
  var GridView_module_default = {
727
- "branchCell": "KbY6GG_branchCell",
728
- "branchColumn": "KbY6GG_branchColumn",
729
- "branchInner": "KbY6GG_branchInner",
730
- "branchRow": "KbY6GG_branchRow",
731
- "detachedHint": "KbY6GG_detachedHint",
732
- "detachedIcon": "KbY6GG_detachedIcon",
733
- "detachedPlaceholder": "KbY6GG_detachedPlaceholder",
734
- "dockPreview": "KbY6GG_dockPreview",
735
- "dropHint": "KbY6GG_dropHint",
736
- "grid": "KbY6GG_grid",
737
- "leaf": "KbY6GG_leaf",
738
- "sashH": "KbY6GG_sashH",
739
- "sashV": "KbY6GG_sashV"
727
+ "branchCell": "rUtG1G_branchCell",
728
+ "branchColumn": "rUtG1G_branchColumn",
729
+ "branchInner": "rUtG1G_branchInner",
730
+ "branchRow": "rUtG1G_branchRow",
731
+ "detachedHint": "rUtG1G_detachedHint",
732
+ "detachedIcon": "rUtG1G_detachedIcon",
733
+ "detachedPlaceholder": "rUtG1G_detachedPlaceholder",
734
+ "dockPreview": "rUtG1G_dockPreview",
735
+ "dropHint": "rUtG1G_dropHint",
736
+ "grid": "rUtG1G_grid",
737
+ "leaf": "rUtG1G_leaf",
738
+ "sashH": "rUtG1G_sashH",
739
+ "sashV": "rUtG1G_sashV"
740
740
  };
741
741
  //#endregion
742
742
  //#region src/client/GridView.tsx
@@ -1205,10 +1205,10 @@ window.__ModuleLoader__.load({
1205
1205
  //#endregion
1206
1206
  //#region src/client/FloatingLayer.module.css
1207
1207
  var FloatingLayer_module_default = {
1208
- "body": "K0s1dq_body",
1209
- "host": "K0s1dq_host",
1210
- "item": "K0s1dq_item",
1211
- "mask": "K0s1dq_mask"
1208
+ "body": "kH9e0W_body",
1209
+ "host": "kH9e0W_host",
1210
+ "item": "kH9e0W_item",
1211
+ "mask": "kH9e0W_mask"
1212
1212
  };
1213
1213
  //#endregion
1214
1214
  //#region src/client/FloatingLayer.tsx
@@ -1306,17 +1306,17 @@ window.__ModuleLoader__.load({
1306
1306
  //#endregion
1307
1307
  //#region src/client/ConfirmDialog.module.css
1308
1308
  var ConfirmDialog_module_default = {
1309
- "cancelBtn": "yPBkUG_cancelBtn",
1310
- "closeBtn": "yPBkUG_closeBtn",
1311
- "confirmBtnDanger": "yPBkUG_confirmBtnDanger",
1312
- "confirmBtnPrimary": "yPBkUG_confirmBtnPrimary",
1313
- "dialog": "yPBkUG_dialog",
1314
- "inlinePop": "yPBkUG_inlinePop",
1315
- "message": "yPBkUG_message",
1316
- "overlay": "yPBkUG_overlay",
1317
- "row": "yPBkUG_row",
1318
- "title": "yPBkUG_title",
1319
- "warning": "yPBkUG_warning"
1309
+ "cancelBtn": "wavfcW_cancelBtn",
1310
+ "closeBtn": "wavfcW_closeBtn",
1311
+ "confirmBtnDanger": "wavfcW_confirmBtnDanger",
1312
+ "confirmBtnPrimary": "wavfcW_confirmBtnPrimary",
1313
+ "dialog": "wavfcW_dialog",
1314
+ "inlinePop": "wavfcW_inlinePop",
1315
+ "message": "wavfcW_message",
1316
+ "overlay": "wavfcW_overlay",
1317
+ "row": "wavfcW_row",
1318
+ "title": "wavfcW_title",
1319
+ "warning": "wavfcW_warning"
1320
1320
  };
1321
1321
  //#endregion
1322
1322
  //#region src/client/ConfirmDialog.tsx
@@ -1521,7 +1521,17 @@ window.__ModuleLoader__.load({
1521
1521
  * @param blockIndex - 第几个块(0 起)。
1522
1522
  * @returns 该块的形状配额。
1523
1523
  */
1524
- function planBlockShape(blockIndex) {
1524
+ function planBlockShape(blockIndex, rng) {
1525
+ if (rng !== void 0) {
1526
+ const big = rng() < .65 ? rng() < .2 ? 2 : 1 : 0;
1527
+ const tall = rng() < .55 ? rng() < .5 ? 1 : 2 : 0;
1528
+ return {
1529
+ big,
1530
+ wide: 1 + Math.floor(rng() * 3),
1531
+ tall: big === 0 && tall === 0 ? 1 : tall,
1532
+ small: Math.floor(rng() * 2)
1533
+ };
1534
+ }
1525
1535
  const RECIPES = [
1526
1536
  {
1527
1537
  big: 1,
@@ -1736,7 +1746,7 @@ window.__ModuleLoader__.load({
1736
1746
  const count = typeof items === "number" ? items : items.length;
1737
1747
  if (count <= 0) return [];
1738
1748
  const mode = options.columns ?? 6;
1739
- const rng = mulberry32(MOSAIC_SEED);
1749
+ const rng = mulberry32(options.seed ?? 23063);
1740
1750
  const blocks = [];
1741
1751
  const hints = options.hints ?? [];
1742
1752
  const entryPinned = options.pinFirstTwoSmalls === true && count >= 2;
@@ -1760,7 +1770,7 @@ window.__ModuleLoader__.load({
1760
1770
  let cursor = 0;
1761
1771
  const take = () => order[cursor++] ?? 0;
1762
1772
  const buildBlock = (kind, pin, room, blockIndex) => {
1763
- const kept = trimCols(kind === "264" ? buildColSkeleton(rng, mode, pin, planBlockShape(blockIndex)) : buildColSkeleton128(rng, mode), room);
1773
+ const kept = trimCols(kind === "264" ? buildColSkeleton(rng, mode, pin, planBlockShape(blockIndex, rng)) : buildColSkeleton128(rng, mode), room);
1764
1774
  let firstColPlaced = false;
1765
1775
  if (pin && kept.length > 0 && kept[0].sizes.length > 0) {
1766
1776
  const first = kept[0];
@@ -1803,12 +1813,10 @@ window.__ModuleLoader__.load({
1803
1813
  }]
1804
1814
  });
1805
1815
  while (cursor < count) {
1806
- let kind = rng() < .5 ? "264" : "128";
1807
1816
  const last = blocks.length === 0 ? null : blocks[blocks.length - 1].kind;
1808
- if (last !== null) {
1809
- for (let i = 0; i < BLOCK_RETYPE_MAX && kind === last; i++) kind = rng() < .5 ? "264" : "128";
1810
- if (kind === last) kind = last === "264" ? "128" : "264";
1811
- }
1817
+ let kind;
1818
+ if (last === null) kind = rng() < .5 ? "264" : "128";
1819
+ else kind = rng() < .6 ? last : last === "264" ? "128" : "264";
1812
1820
  if (emit({
1813
1821
  kind,
1814
1822
  cols: buildBlock(kind, false, count - cursor, blocks.length)
@@ -1846,34 +1854,39 @@ window.__ModuleLoader__.load({
1846
1854
  //#endregion
1847
1855
  //#region src/client/mosaic.module.css
1848
1856
  var mosaic_module_default = {
1849
- "hotRow": "C7ym2q_hotRow",
1850
- "mosaicBlock": "C7ym2q_mosaicBlock",
1851
- "mosaicCol": "C7ym2q_mosaicCol",
1852
- "tile": "C7ym2q_tile",
1853
- "tileActive": "C7ym2q_tileActive",
1854
- "tileBodyScaffold": "C7ym2q_tileBodyScaffold",
1855
- "tileBodyText": "C7ym2q_tileBodyText",
1856
- "tileBottom": "C7ym2q_tileBottom",
1857
- "tileCorner": "C7ym2q_tileCorner",
1858
- "tileDot": "C7ym2q_tileDot",
1859
- "tileDotOff": "C7ym2q_tileDotOff",
1860
- "tileGlow": "C7ym2q_tileGlow",
1861
- "tileGrid": "C7ym2q_tileGrid",
1862
- "tileIcon": "C7ym2q_tileIcon",
1863
- "tileName": "C7ym2q_tileName",
1864
- "tileNameRow": "C7ym2q_tileNameRow",
1865
- "tilePlaceholder": "C7ym2q_tilePlaceholder",
1866
- "tilePlaceholderIcon": "C7ym2q_tilePlaceholderIcon",
1867
- "tilePlaceholderText": "C7ym2q_tilePlaceholderText",
1868
- "tileSub": "C7ym2q_tileSub",
1869
- "tileSwitch": "C7ym2q_tileSwitch",
1870
- "tileSwitchKnob": "C7ym2q_tileSwitchKnob",
1871
- "tileTintDeep": "C7ym2q_tileTintDeep",
1872
- "tileTintMauve": "C7ym2q_tileTintMauve",
1873
- "tileTintSlate": "C7ym2q_tileTintSlate",
1874
- "tileTintViolet": "C7ym2q_tileTintViolet",
1875
- "tileTop": "C7ym2q_tileTop",
1876
- "tileVersion": "C7ym2q_tileVersion"
1857
+ "hotRow": "kgnWfG_hotRow",
1858
+ "mosaicBlock": "kgnWfG_mosaicBlock",
1859
+ "mosaicCol": "kgnWfG_mosaicCol",
1860
+ "tile": "kgnWfG_tile",
1861
+ "tileActive": "kgnWfG_tileActive",
1862
+ "tileBodyScaffold": "kgnWfG_tileBodyScaffold",
1863
+ "tileBodyText": "kgnWfG_tileBodyText",
1864
+ "tileBottom": "kgnWfG_tileBottom",
1865
+ "tileCorner": "kgnWfG_tileCorner",
1866
+ "tileDot": "kgnWfG_tileDot",
1867
+ "tileDotOff": "kgnWfG_tileDotOff",
1868
+ "tileGlow": "kgnWfG_tileGlow",
1869
+ "tileGrid": "kgnWfG_tileGrid",
1870
+ "tileIcon": "kgnWfG_tileIcon",
1871
+ "tileName": "kgnWfG_tileName",
1872
+ "tileNameRow": "kgnWfG_tileNameRow",
1873
+ "tilePlaceholder": "kgnWfG_tilePlaceholder",
1874
+ "tilePlaceholderIcon": "kgnWfG_tilePlaceholderIcon",
1875
+ "tilePlaceholderText": "kgnWfG_tilePlaceholderText",
1876
+ "tileSub": "kgnWfG_tileSub",
1877
+ "tileSwitch": "kgnWfG_tileSwitch",
1878
+ "tileSwitchKnob": "kgnWfG_tileSwitchKnob",
1879
+ "tileTintAmber": "kgnWfG_tileTintAmber",
1880
+ "tileTintBlue": "kgnWfG_tileTintBlue",
1881
+ "tileTintCyan": "kgnWfG_tileTintCyan",
1882
+ "tileTintDeep": "kgnWfG_tileTintDeep",
1883
+ "tileTintEmerald": "kgnWfG_tileTintEmerald",
1884
+ "tileTintMauve": "kgnWfG_tileTintMauve",
1885
+ "tileTintRose": "kgnWfG_tileTintRose",
1886
+ "tileTintSlate": "kgnWfG_tileTintSlate",
1887
+ "tileTintViolet": "kgnWfG_tileTintViolet",
1888
+ "tileTop": "kgnWfG_tileTop",
1889
+ "tileVersion": "kgnWfG_tileVersion"
1877
1890
  };
1878
1891
  //#endregion
1879
1892
  //#region src/client/MosaicWall.tsx
@@ -1898,14 +1911,54 @@ window.__ModuleLoader__.load({
1898
1911
  *
1899
1912
  * @module corum-ui-base/client/Mosaic
1900
1913
  */
1914
+ /**
1915
+ * 磁贴底色档位(token 见 theme.css)。
1916
+ *
1917
+ * 2026-10-24 从 4 档扩到 9 档:用户反馈「配色太单一」。档位按色相命名,
1918
+ * 不绑定语义;具体用哪档由 `tintForName` 按名字稳定散列,保证同一项每次
1919
+ * 渲染同色、相邻项不同色。
1920
+ */
1921
+ const MOSAIC_TINTS = [
1922
+ "violet",
1923
+ "blue",
1924
+ "emerald",
1925
+ "amber",
1926
+ "rose",
1927
+ "cyan",
1928
+ "mauve",
1929
+ "deep",
1930
+ "slate"
1931
+ ];
1901
1932
  /** 档位 → 样式类名(消费方按语义挑档,不再自己拼类名)。 */
1902
1933
  const TINT_CLASS = {
1903
1934
  violet: mosaic_module_default.tileTintViolet,
1935
+ blue: mosaic_module_default.tileTintBlue,
1936
+ emerald: mosaic_module_default.tileTintEmerald,
1937
+ amber: mosaic_module_default.tileTintAmber,
1938
+ rose: mosaic_module_default.tileTintRose,
1939
+ cyan: mosaic_module_default.tileTintCyan,
1940
+ mauve: mosaic_module_default.tileTintMauve,
1904
1941
  deep: mosaic_module_default.tileTintDeep,
1905
- slate: mosaic_module_default.tileTintSlate,
1906
- mauve: mosaic_module_default.tileTintMauve
1942
+ slate: mosaic_module_default.tileTintSlate
1907
1943
  };
1908
1944
  /**
1945
+ * 按名字稳定取一个磁贴底色档(FNV-1a 散列)。
1946
+ *
1947
+ * 用途:列表页的磁贴不再「一律紫」,但也不能每次渲染变来变去——名字相同 ⇒
1948
+ * 颜色相同;不同项按色相轮转。语义色(类型徽标、选中态)仍由调用方单独控制。
1949
+ *
1950
+ * @param name - 稳定标识(包名 / 服务器名 / 技能名 / 扩展包 id)。
1951
+ * @returns 9 档之一。
1952
+ */
1953
+ function tintForName(name) {
1954
+ let hash = 2166136261;
1955
+ for (const ch of name.toLowerCase()) {
1956
+ hash ^= ch.codePointAt(0) ?? 0;
1957
+ hash = Math.imul(hash, 16777619);
1958
+ }
1959
+ return MOSAIC_TINTS[(hash >>> 0) % MOSAIC_TINTS.length];
1960
+ }
1961
+ /**
1909
1962
  * 按形状分档的贴内骨架。
1910
1963
  *
1911
1964
  * @param props - 见 {@link MosaicTileBodyProps}。
@@ -2127,6 +2180,7 @@ window.__ModuleLoader__.load({
2127
2180
  exports.INTERACTIVE_SELECTOR = INTERACTIVE_SELECTOR;
2128
2181
  exports.MIN_UNIT_FOR_6COL = MIN_UNIT_FOR_6COL;
2129
2182
  exports.MOSAIC_SEED = MOSAIC_SEED;
2183
+ exports.MOSAIC_TINTS = MOSAIC_TINTS;
2130
2184
  exports.MosaicTileBody = MosaicTileBody;
2131
2185
  exports.MosaicWall = MosaicWall;
2132
2186
  exports.RegionCard = RegionCard;
@@ -2175,6 +2229,7 @@ window.__ModuleLoader__.load({
2175
2229
  exports.slotsInGrid = slotsInGrid;
2176
2230
  exports.slotsNotInGrid = slotsNotInGrid;
2177
2231
  exports.subtreeMinSize = subtreeMinSize;
2232
+ exports.tintForName = tintForName;
2178
2233
  exports.useFloatingLayer = useFloatingLayer;
2179
2234
  exports.useMosaicColumns = useMosaicColumns;
2180
2235
  exports.webSearchCredentialRef = webSearchCredentialRef;