export declare const CHIPS_CSS = "/* ---------- chips row + settings entry (S5) ---------- */\n\n@media (max-width: 767px) {\n /* --- settings dialog / usage-stats panel / scheduled-tasks dialog portal fix ---\n dsh-client-ui-settings-general's SettingsRoot (trigger button +\n position:fixed;z-index:1000 modal), dsh-usage-stats' sidebar-footer\n badge (position:fixed panel), and @opendsh/dsh-plugin-scheduled-tasks'\n \"\u5B9A\u65F6\u4EFB\u52A1\" trigger (position:fixed;z-index:120 `.dshst-overlay`,\n verified against 0.2.0 \u2014 real-device report 2026-08-17: chip click\n produced no visible window) all mount as PLAIN CHILDREN of the sidebar\n tree \u2014 not a React portal to document.body \u2014 inside\n sidebar.settings / sidebar.footer.action\n (dsh-client-ui-sidebar's SidebarRoot: footArea > settingsArea /\n footerActions). home.css.ts sets the sidebar ROOT\n (`[data-mobile-nav=\"frame\"] > :first-child`) to display:none on the\n phone breakpoint (the app shell replaced the drawer) \u2014 and display:none\n removes the WHOLE subtree from the render tree, including\n position:fixed descendants, which cannot escape it the way they escape\n a merely-offscreen or opacity:0 ancestor. A `.click()` on the (still\n DOM-present) hidden trigger still flips its component-local `open`\n state and mounts the aria-modal dialog (synthetic dispatch bypasses\n hit-testing \u2014 S2.1 precedent), but nothing paints without this fix.\n\n Un-hiding the WHOLE sidebar would surface the session tree / new-session\n button underneath the dialog, so this is scoped to exactly the sidebar\n root plus its OWN direct children that are not on the path to\n footArea: display:contents on the root removes its own box (no\n duplicate page background/padding, no grid-column reflow) while\n letting footArea/footerActions/settingsArea resume their OWN official\n (non-none) display \u2014 logoRow / newSession / regionArea are hidden\n explicitly instead. :has() matches against the DOM tree regardless of\n the scope element's own computed display, so this reads correctly even\n though the whole subtree started at display:none (same precedent as\n every other :has()-gated rule in this stylesheet, e.g. the settings\n sheet adaptation below, which depends on exactly this becoming\n visible).\n\n `:first-child` is a layout-column WRAPPER\n (`pI_x6G_sidebarCol`, dsh-client-ui-layout's AppFrame grid cell), not\n SidebarRoot's own div \u2014 SidebarRoot (`hHd-Xa_root`) sits one more empty\n unstyled div below it (measured 2026-08-17: sidebarCol > div (no\n class) > div.hHd-Xa_root > logoRow/newSession/regionArea/footArea).\n display:contents on sidebarCol lets that whole chain resume its own\n official (non-none) display with no other rule needed, but the\n \"hide the other three\" selectors below must therefore be DESCENDANT\n (unscoped depth), not direct-child `>`, or they silently match\n nothing \u2014 confirmed live: an earlier `>`-only version left\n logoRow/newSession/regionArea at `display: flex`, which is only\n hidden from view by being fully underneath the usage-stats panel's\n opaque body, not by this rule. */\n [data-mobile-nav=\"frame\"] > :first-child:has([aria-modal=\"true\"], [data-usage-stats-panel], .dshst-overlay) {\n display: contents !important;\n }\n [data-mobile-nav=\"frame\"] > :first-child:has([aria-modal=\"true\"], [data-usage-stats-panel], .dshst-overlay) [class$=\"_logoRow\"],\n [data-mobile-nav=\"frame\"] > :first-child:has([aria-modal=\"true\"], [data-usage-stats-panel], .dshst-overlay) [class$=\"_newSession\"],\n [data-mobile-nav=\"frame\"] > :first-child:has([aria-modal=\"true\"], [data-usage-stats-panel], .dshst-overlay) [class$=\"_regionArea\"] {\n display: none !important;\n }\n\n /* Home-top settings gear: 44pt touch target, pushed to the row's end by\n its own auto margin (home-top itself stays a plain flex row). */\n [data-mobile-nav=\"home-settings\"] {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n margin-left: auto;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--dsw-alias-label-secondary, inherit);\n cursor: pointer;\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n }\n [data-mobile-nav=\"home-settings\"]:active {\n background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, .06));\n border-radius: 50%;\n }\n\n /* Plugin-entry chips row: one horizontally-scrolling line of 34px pills\n between the workspace title and the session list (prototype spec).\n Scrollbar hidden on BOTH engines (2026-08-18 user decision): iOS\n overlay scrollbars never showed anyway, but desktop browsers painted a\n permanent 2px strip under the pills. This revisits the AGENTS.md\n \"silently cut off the last tab\" lesson deliberately \u2014 with 4+ chips the\n row now always overflows mid-chip (a partially visible pill is the\n scroll affordance), unlike the early incident where the chips fit\n flush and the hidden overflow was undiscoverable. */\n [data-mobile-nav=\"chip-row\"] {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0 16px 10px;\n overflow-x: auto;\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n }\n [data-mobile-nav=\"chip-row\"]::-webkit-scrollbar {\n display: none;\n }\n [data-mobile-nav=\"chip\"],\n [data-mobile-nav=\"chip-more\"] {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 34px;\n padding: 0 14px;\n border: none;\n border-radius: 17px;\n /* Same surface as the list rows: the home page is bg-base since the\n 2026-08-20 swap (see home.css.ts), so a bg-base chip would disappear\n into it. */\n background: var(--dsw-specific-sidebar-fill, #f5f5f5);\n color: var(--dsw-alias-label-primary, inherit);\n font-family: inherit;\n font-size: 13px;\n font-weight: 500;\n white-space: nowrap;\n cursor: pointer;\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n box-shadow: 0 1px 3px rgba(0, 0, 0, .06);\n }\n [data-mobile-nav=\"chip-more\"] {\n padding: 0 9px;\n }\n [data-mobile-nav=\"chip\"]:active,\n [data-mobile-nav=\"chip-more\"]:active {\n background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, .06));\n }\n\n /* Harvested chip icon (S5.1): the cloned keeps whatever width/height\n the source plugin gave it (18px for the one verified live example) \u2014\n force it down to the same 16px box every hand-registered chip icon\n uses, CSS wins over the presentational SVG attributes. */\n [data-mobile-nav=\"chip-harvest-icon\"] {\n display: inline-flex;\n flex: none;\n }\n [data-mobile-nav=\"chip-harvest-icon\"] svg {\n display: block;\n width: 16px;\n height: 16px;\n }\n\n /* Customize sheet: toggle rows inside the SAME home-sheet-layer/mask/sheet\n chrome the workspace switcher declares in home.css.ts \u2014 S6's\n drag-to-close and mask-click-close bind to\n `[data-mobile-nav=\"home-sheet\"]` generically (effects/gestures.ts), so\n this second use of the marker needs no new gesture wiring. */\n [data-mobile-nav=\"chip-toggle-row\"] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n /* Real-device fix: without border-box this row's used width is\n 100% (of the sheet's own already-padded content box) PLUS the\n 12px+12px padding below, overflowing the sheet by 24px and\n shoving the flex:none toggle off its right edge (2026-08-17\n report: \"\u5F00\u5173\u8DD1\u5230\u5C4F\u5E55\u5916\"). home-sheet-item next door in\n home.css.ts has the identical width:100%+padding shape and the\n same latent bug, just with no trailing element to visibly clip. */\n box-sizing: border-box;\n min-height: 48px;\n padding: 0 12px;\n color: inherit;\n }\n [data-mobile-nav=\"chip-toggle-label\"] {\n flex: 1 1 auto;\n min-width: 0;\n font-size: 15px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n [data-mobile-nav=\"chip-toggle\"] {\n flex: none;\n position: relative;\n width: 42px;\n height: 26px;\n border: none;\n border-radius: 13px;\n background: var(--dsw-alias-border-l2, rgba(0, 0, 0, .16));\n cursor: pointer;\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n transition: background .15s var(--ds-ease-in-out, ease-in-out);\n }\n [data-mobile-nav=\"chip-toggle\"]::after {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: 22px;\n height: 22px;\n border-radius: 50%;\n background: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, .3);\n transition: transform .15s var(--ds-ease-in-out, ease-in-out);\n }\n [data-mobile-nav=\"chip-toggle\"][aria-checked=\"true\"] {\n background: var(--dsw-alias-button-primary-fill, #1a1a1a);\n }\n [data-mobile-nav=\"chip-toggle\"][aria-checked=\"true\"]::after {\n transform: translateX(16px);\n }\n @media (prefers-reduced-motion: reduce) {\n [data-mobile-nav=\"chip-toggle\"],\n [data-mobile-nav=\"chip-toggle\"]::after {\n transition: none !important;\n }\n }\n}\n"; //# sourceMappingURL=chips.css.d.ts.map