/** * Photon Grid base styles — summary rows section. * * Concatenated (in order) by base-styles.ts; edit here, not there. Registered * immediately after `panels.css.ts` because a summary band mirrors the panel * structure and must be able to override panel-level rules it inherits. * * Every colour, spacing, font and radius resolves through a `--pg-*` theme * token, so summary rows follow light/dark, every variant, and any host token * override with no code here. The only literal dimensions are the two gutter * widths, which MUST stay byte-identical to `.pg-th--checkbox` / `.pg-th--serial` * in `header.css.ts` — they are the same physical column, and a mismatch shifts * every summary cell out of alignment with its header. */ export declare const summaryCss = "/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Summary band \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* One horizontal strip of summary rows anchored to an edge of the body.\n Mirrors .pg-grid__header's three-panel flex row so a summary cell lines up\n with its column through the same --pg-left/right-panel-width variables the\n header and body already publish \u2014 no measurement, no per-frame sync. */\n.pg-summary {\n display: flex;\n flex-direction: row;\n flex-shrink: 0;\n overflow: hidden;\n position: relative;\n z-index: 6;\n background: var(--pg-colors-summary-background, var(--pg-colors-header-background, #f8fafc));\n color: var(--pg-colors-summary-text, var(--pg-colors-text-primary, #0f172a));\n font-weight: var(--pg-typography-font-weight-semibold, 600);\n}\n/* A band with no rows must not reserve its border or background. */\n.pg-summary--empty {\n display: none;\n}\n/* Docked above the first data row: the divider belongs on its underside. */\n.pg-summary--top {\n border-bottom: 1px solid var(--pg-colors-summary-border, var(--pg-colors-border, #e2e8f0));\n}\n/* Docked below the last data row: divider on top, and a lift so the band reads\n as floating above content scrolling underneath it. */\n.pg-summary--bottom {\n border-top: 1px solid var(--pg-colors-summary-border, var(--pg-colors-border, #e2e8f0));\n}\n.pg-summary--sticky.pg-summary--bottom {\n box-shadow: var(--pg-shadows-summary-bottom, 0 -2px 4px rgba(0, 0, 0, 0.04));\n}\n.pg-summary--sticky.pg-summary--top {\n box-shadow: var(--pg-shadows-summary-top, 0 2px 4px rgba(0, 0, 0, 0.04));\n}\n\n/* \u2500\u2500 In-content (non-sticky) bands \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 These scroll with the data instead of docking. They live in an absolutely\n positioned layer inside .pg-grid__body and are moved by --pg-summary-offset-y,\n which GridRenderer computes in JS doubles every frame.\n Deliberately NOT a CSS calc() of scroll position: the value is always within a\n viewport's worth of zero, which keeps it clear of the float32 rasterisation\n limit that forces the data rows through origin rebasing (see the note above\n .pg-panel__content in panels.css.ts).\n No box-shadow here \u2014 an in-content band is part of the content, and a lift\n would make it read as pinned. */\n.pg-summary-layer {\n position: absolute;\n top: 0;\n left: 0;\n right: var(--pg-scrollbar-v-live-width, 0px);\n bottom: 0;\n pointer-events: none;\n overflow: hidden;\n z-index: 2;\n}\n.pg-summary--inline {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n transform: translateY(var(--pg-summary-offset-y, 0px));\n pointer-events: auto;\n box-shadow: none;\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Regions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* Left / center / right, sized exactly like the body panels they sit above or\n below. The center region clips, and its inner strip carries the same\n translateX the center header inner uses \u2014 so horizontal scrolling is free. */\n.pg-summary__region {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n overflow: hidden;\n position: relative;\n}\n.pg-summary__region--left {\n width: var(--pg-left-panel-width, 0px);\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n z-index: 2;\n}\n.pg-summary__region--center {\n flex: 1 1 0;\n min-width: 0;\n}\n.pg-summary__region--right {\n width: calc(var(--pg-right-panel-width, 0px) - 1px);\n border-left: 1px solid var(--pg-colors-border, #e2e8f0);\n z-index: 2;\n}\n.pg-summary__region-inner {\n display: flex;\n flex-direction: column;\n width: var(--pg-center-content-width, 100%);\n transform: translateX(var(--pg-scroll-x, 0px));\n}\n/* Mirrors the vertical scrollbar's flex item in the body row, exactly as\n .pg-header-vscroll-spacer does \u2014 without it the band's center region is one\n scrollbar wider than the body's and right-pinned cells shift. */\n.pg-summary__vscroll-spacer {\n flex-shrink: 0;\n width: var(--pg-scrollbar-v-live-width, 0px);\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Rows \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* Height is written inline per row (each summary row may set its own), so it is\n deliberately absent here. */\n.pg-summary__row {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n flex-shrink: 0;\n box-sizing: border-box;\n}\n.pg-summary__row + .pg-summary__row {\n border-top: 1px solid var(--pg-colors-summary-row-border, var(--pg-colors-border, #e2e8f0));\n}\n\n/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Cells \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* Width comes from ColumnStyleManager's generated [data-col-id] rule, which is\n what makes a column resize update summary cells in the same frame as the\n header and body. Only spanned cells and spacers override it inline. */\n.pg-summary__cell {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n overflow: hidden;\n padding: 0 var(--pg-spacing-sm, 8px);\n font-size: var(--pg-typography-font-size-sm, 13px);\n line-height: var(--pg-typography-line-height-normal, 1.5);\n}\n.pg-summary__cell--v-border {\n border-right: 1px solid var(--pg-colors-border, #e2e8f0);\n}\n.pg-summary__cell--align-right { justify-content: flex-end; text-align: right; }\n.pg-summary__cell--align-center { justify-content: center; text-align: center; }\n/* Gutter widths: see the file header \u2014 these MUST match header.css.ts. */\n.pg-summary__cell--checkbox {\n width: 44px;\n min-width: 44px;\n max-width: 44px;\n padding: 0;\n}\n.pg-summary__cell--serial {\n width: 52px;\n min-width: 52px;\n max-width: 52px;\n padding: 0;\n}\n.pg-summary__cell--group {\n padding: 0 var(--pg-spacing-sm, 8px);\n}\n/* Filler for columns outside the horizontal virtual window. Never painted, so\n it carries no border or padding that could show through. */\n.pg-summary__spacer {\n flex-shrink: 0;\n pointer-events: none;\n}\n.pg-summary__value {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n"; //# sourceMappingURL=summary.css.d.ts.map