/** * Scheduler stylesheet, injected on demand. * * **Deliberately not joined into `styles/base-styles.ts`.** That module builds a * single string at import time from ~34 CSS modules, which no bundler can * tree-shake — anything added there ships to every consumer of the core package, * including ones that never construct a scheduler. This string is only reachable * from the scheduler's own module graph, and the plugin injects it from `init`, * so it costs nothing until a scheduler actually exists. * * Every colour resolves a `--pg-*` design token with a fallback. That is what * makes the scheduler follow mode (light/dark) and variant (ion/neon/photon/ * quantum) changes with no code and no re-render — the same tokens the grid * itself is painted from. Scheduler-specific knobs are namespaced * `--pg-scheduler-*` and each falls back to a core token, so a host that never * themes the scheduler still gets something coherent. */ export declare const schedulerCss = "\n.pg-scheduler {\n --pg-scheduler-grid-line: var(--pg-colors-border-strong, var(--pg-colors-border, #cbd5e1));\n --pg-scheduler-grid-line-strong: var(--pg-colors-border-strong, #cbd5e1);\n --pg-scheduler-nonworking: color-mix(in srgb, var(--pg-colors-text-primary, #0f172a) 4%, transparent);\n --pg-scheduler-today: color-mix(in srgb, var(--pg-colors-primary, #2563eb) 8%, transparent);\n --pg-scheduler-now: var(--pg-colors-danger, #dc2626);\n --pg-scheduler-bar-radius: var(--pg-borders-radius-sm, 4px);\n --pg-scheduler-bar-font-size: var(--pg-typography-font-size-xs, 11px);\n --pg-scheduler-selection: var(--pg-colors-primary, #2563eb);\n --pg-scheduler-drag-preview: color-mix(in srgb, var(--pg-colors-primary, #2563eb) 30%, transparent);\n}\n\n/* \u2500\u2500 Timeline header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Sits in the grid's own header region, to the right of the pinned resource\n columns, and pans with --pg-scroll-x like the centre panel does. */\n.pg-scheduler-header {\n position: absolute;\n top: 0;\n bottom: 0;\n overflow: hidden;\n background: var(--pg-colors-header-background, #f8fafc);\n border-bottom: 1px solid var(--pg-colors-header-border, #e2e8f0);\n pointer-events: auto;\n}\n\n.pg-scheduler-header__inner {\n position: relative;\n height: 100%;\n will-change: transform;\n}\n\n.pg-scheduler-header__band {\n position: relative;\n display: block;\n border-bottom: 1px solid var(--pg-scheduler-grid-line);\n}\n\n.pg-scheduler-header__cell {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-right: 1px solid var(--pg-scheduler-grid-line);\n color: var(--pg-colors-header-text, #374151);\n font-size: var(--pg-typography-font-size-xs, 11px);\n font-weight: var(--pg-typography-header-font-weight, 600);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0 4px;\n}\n\n/* The slot row carries the finest granularity, so it gets the lighter rule. */\n.pg-scheduler-header__cell--slot {\n font-weight: var(--pg-typography-font-weight-medium, 500);\n color: var(--pg-colors-text-secondary, #475569);\n}\n\n.pg-scheduler-header__cell--nonworking { background: var(--pg-scheduler-nonworking); }\n.pg-scheduler-header__cell--today {\n background: var(--pg-scheduler-today);\n color: var(--pg-colors-primary, #2563eb);\n font-weight: var(--pg-typography-font-weight-semi-bold, 600);\n}\n\n/* \u2500\u2500 Timeline body \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Two stacked layers inside the plugin layer: a static backdrop of column\n shading and gridlines, and the event bars above it. Separating them means a\n scroll repaints neither -- both are moved by the layer's transform. */\n/* Intentionally sets no inset: the element already carries the plugin-layer\n class, whose geometry (including the scrollbar gutter on the right) must win. */\n.pg-scheduler-body { overflow: hidden; }\n\n.pg-scheduler-canvas {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n will-change: transform;\n}\n\n.pg-scheduler-col {\n position: absolute;\n box-sizing: border-box;\n border-right: 1px solid var(--pg-scheduler-grid-line);\n pointer-events: none;\n}\n\n.pg-scheduler-col--nonworking { background: var(--pg-scheduler-nonworking); }\n.pg-scheduler-col--today { background: var(--pg-scheduler-today); }\n\n/* Horizontal separators, one per rendered row.\n\n Drawn by the scheduler rather than inherited from the grid's own row borders:\n with every resource column pinned left the centre panel is empty, so there is\n no row element under the timeline to carry a line. Positioned from the same\n rows the bars use, which is what makes them align with the pinned section at\n any scroll offset and any row height. */\n.pg-scheduler-row-line {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n height: 1px;\n background: var(--pg-scheduler-grid-line);\n pointer-events: none;\n will-change: transform;\n}\n\n/* Current-time marker. A 2px rule rather than a full column, so it reads as an\n instant rather than a span. */\n.pg-scheduler-now {\n position: absolute;\n width: 2px;\n background: var(--pg-scheduler-now);\n pointer-events: none;\n z-index: 3;\n}\n\n/* \u2500\u2500 Event bars \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Positioned entirely by transform: translate() -- a composited property, so\n moving 600 bars never invalidates layout. Width/height are the only\n layout-affecting properties written, and only when they actually change. */\n.pg-scheduler-bar {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n gap: 4px;\n box-sizing: border-box;\n padding: 0 6px;\n border-radius: var(--pg-scheduler-bar-radius);\n border: 1px solid transparent;\n font-size: var(--pg-scheduler-bar-font-size);\n line-height: 1.2;\n white-space: nowrap;\n overflow: hidden;\n cursor: default;\n pointer-events: auto;\n user-select: none;\n will-change: transform;\n transition: box-shadow var(--pg-transitions-duration-fast, 130ms) ease;\n}\n\n.pg-scheduler-bar__icon { flex: none; display: inline-flex; align-items: center; opacity: 0.85; }\n.pg-scheduler-bar__label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: var(--pg-typography-font-weight-medium, 500);\n}\n.pg-scheduler-bar__badge {\n flex: none;\n padding: 0 4px;\n border-radius: var(--pg-borders-radius-pill, 999px);\n background: rgba(255, 255, 255, 0.25);\n font-size: 10px;\n font-weight: 600;\n}\n.pg-scheduler-bar__checkbox { flex: none; margin: 0 2px 0 0; }\n\n.pg-scheduler-bar--selected {\n box-shadow: 0 0 0 2px var(--pg-scheduler-selection),\n 0 0 0 4px color-mix(in srgb, var(--pg-scheduler-selection) 25%, transparent);\n z-index: 2;\n}\n\n.pg-scheduler-bar--locked { cursor: not-allowed; }\n.pg-scheduler-bar--dragging { opacity: 0.4; }\n\n/* Resize affordances. Zero-width until hover so they never steal a click from\n a narrow bar, and suppressed entirely on locked bars. */\n.pg-scheduler-bar__handle {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n opacity: 0;\n}\n.pg-scheduler-bar__handle--start { left: 0; }\n.pg-scheduler-bar__handle--end { right: 0; }\n.pg-scheduler-bar:hover .pg-scheduler-bar__handle { opacity: 1; }\n.pg-scheduler-bar--locked .pg-scheduler-bar__handle { display: none; }\n\n.pg-scheduler-bar:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px var(--pg-colors-surface, #fff),\n 0 0 0 4px var(--pg-scheduler-selection);\n z-index: 3;\n}\n\n/* Ghost shown while dragging or resizing. Outline-only so the bar underneath\n stays readable and the user can see what they are covering. */\n.pg-scheduler-preview {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n border: 2px dashed var(--pg-scheduler-selection);\n background: var(--pg-scheduler-drag-preview);\n border-radius: var(--pg-scheduler-bar-radius);\n pointer-events: none;\n z-index: 4;\n will-change: transform;\n}\n\n.pg-scheduler-preview--invalid {\n border-color: var(--pg-colors-danger, #dc2626);\n background: color-mix(in srgb, var(--pg-colors-danger, #dc2626) 20%, transparent);\n}\n\n/* Shown when a frame exceeds the bar budget: past a certain density the bars\n are narrower than their own text, so a count communicates more than the\n bars would. */\n.pg-scheduler-overflow {\n position: absolute;\n right: 4px;\n padding: 0 6px;\n border-radius: var(--pg-borders-radius-pill, 999px);\n background: var(--pg-colors-badge-background, #eff6ff);\n color: var(--pg-colors-badge-text, #1d4ed8);\n font-size: 10px;\n font-weight: 600;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .pg-scheduler-bar { transition: none; }\n}\n"; /** * Injects the scheduler stylesheet once per document. * * Idempotent via the element id, following `IconRenderer.injectSpinKeyframes` — * several scheduler instances on one page share the single sheet. */ export declare function injectSchedulerStyles(): void; /** * Removes the stylesheet. * * Not called on plugin destroy: a second scheduler on the page would still need * it, and the sheet is inert without matching elements. Exposed for hosts that * tear down the library entirely. */ export declare function removeSchedulerStyles(): void; //# sourceMappingURL=scheduler-styles.d.ts.map