@sheetpane/grid 0.4.1 → 0.5.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.
@@ -0,0 +1,38 @@
1
+ /** How a fill continues its source. */
2
+ export interface FillOptions {
3
+ /** `back`: filling up or left, away from the source's first cell. */
4
+ back?: boolean;
5
+ /** Ctrl/⌘ held: a single number counts up, several numbers copy (Excel's toggle). */
6
+ invert?: boolean;
7
+ /** Ctrl+D / Ctrl+R: copy the source exactly — no series, no counting; formulas still move. */
8
+ copy?: boolean;
9
+ /** One step along the fill, in rows and columns, for shifting formulas: `{ dr: 1, dc: 0 }` down. */
10
+ unit: {
11
+ dr: number;
12
+ dc: number;
13
+ };
14
+ }
15
+ /**
16
+ * The values for `count` cells continuing `src`, nearest first.
17
+ * - Numbers: two or more make a linear series (1, 3 → 5, 7); one number repeats. Ctrl/⌘ swaps the two.
18
+ * - Text ending in a number counts on (`Q1` → `Q2`, `Item 09` → `Item 10`), unless Ctrl/⌘ is held.
19
+ * - A formula moves with the fill: its relative references shift by the distance (`=B2*C2` → `=B3*C3`).
20
+ * - Anything else repeats, the source as a cycle.
21
+ * @param src - The source inputs in sheet order (top to bottom, or left to right), as typed.
22
+ * @param count - How many cells to fill.
23
+ * @param o - Direction, the Ctrl/⌘ toggle, and the step for formulas.
24
+ * @returns The inputs to write, nearest the source first.
25
+ */
26
+ export declare function fillSeries(src: readonly string[], count: number, o: FillOptions): string[];
27
+ /**
28
+ * The rows (or columns) a double-click on the fill handle fills: down to the last filled cell of the
29
+ * column beside the source, as Excel does — the left one, else the right one.
30
+ * @param hasValue - Whether a cell holds something.
31
+ * @param from - The source's last row.
32
+ * @param left - The source's first column; the column left of it is looked at first.
33
+ * @param right - The source's last column; the column right of it is looked at next.
34
+ * @param rows - The sheet's row count.
35
+ * @returns The last row to fill, or `from` when there is nothing beside.
36
+ */
37
+ export declare function fillDownTo(hasValue: (row: number, col: number) => boolean, from: number, left: number, right: number, rows: number): number;
38
+ //# sourceMappingURL=fill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../src/excel/fill.ts"],"names":[],"mappings":"AAIA,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oGAAoG;IACpG,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,CAgC1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS3I"}
@@ -0,0 +1,78 @@
1
+ // The fill handle's arithmetic (Excel's AutoFill): what the cells beyond a source run hold when the
2
+ // handle is dragged past them, or Ctrl+D / Ctrl+R copies down or right. Pure, so it is tested alone.
3
+ import { shiftFormula } from '@sheetpane/export';
4
+ const NUM = /^\s*-?(\d+(\.\d*)?|\.\d+)\s*$/;
5
+ const TEXT_NUM = /^(.*\D)(\d+)$/;
6
+ const decimals = (s) => { const m = s.trim().match(/\.(\d+)$/); return m ? m[1].length : 0; };
7
+ /**
8
+ * The values for `count` cells continuing `src`, nearest first.
9
+ * - Numbers: two or more make a linear series (1, 3 → 5, 7); one number repeats. Ctrl/⌘ swaps the two.
10
+ * - Text ending in a number counts on (`Q1` → `Q2`, `Item 09` → `Item 10`), unless Ctrl/⌘ is held.
11
+ * - A formula moves with the fill: its relative references shift by the distance (`=B2*C2` → `=B3*C3`).
12
+ * - Anything else repeats, the source as a cycle.
13
+ * @param src - The source inputs in sheet order (top to bottom, or left to right), as typed.
14
+ * @param count - How many cells to fill.
15
+ * @param o - Direction, the Ctrl/⌘ toggle, and the step for formulas.
16
+ * @returns The inputs to write, nearest the source first.
17
+ */
18
+ export function fillSeries(src, count, o) {
19
+ const n = src.length, out = [];
20
+ if (!n || count <= 0)
21
+ return out;
22
+ const nums = src.map((s) => (NUM.test(s) ? Number(s) : NaN));
23
+ const allNum = nums.every((x) => Number.isFinite(x));
24
+ const series = !o.copy && allNum && (n >= 2) !== !!o.invert;
25
+ if (series) {
26
+ const step = n >= 2 ? (nums[n - 1] - nums[0]) / (n - 1) : 1;
27
+ const dp = Math.min(10, Math.max(...src.map(decimals), decimals(String(step))));
28
+ for (let t = 0; t < count; t++) {
29
+ const v = o.back ? nums[0] - step * (t + 1) : nums[n - 1] + step * (t + 1);
30
+ out.push(String(Number(v.toFixed(dp))));
31
+ }
32
+ return out;
33
+ }
34
+ for (let t = 0; t < count; t++) {
35
+ const cycle = Math.floor(t / n) + 1;
36
+ const i = o.back ? n - 1 - (t % n) : t % n;
37
+ const s = src[i];
38
+ if (s.startsWith('=')) {
39
+ const k = (o.back ? -1 : 1) * n * cycle;
40
+ out.push(shiftFormula(s, o.unit.dr * k, o.unit.dc * k));
41
+ continue;
42
+ }
43
+ const m = !o.copy && !o.invert && !allNum ? s.match(TEXT_NUM) : null;
44
+ if (m) {
45
+ const next = Number(m[2]) + (o.back ? -1 : 1) * cycle * n;
46
+ if (next >= 0) {
47
+ out.push(m[1] + String(next).padStart(m[2].length, '0'));
48
+ continue;
49
+ }
50
+ }
51
+ out.push(s);
52
+ }
53
+ return out;
54
+ }
55
+ /**
56
+ * The rows (or columns) a double-click on the fill handle fills: down to the last filled cell of the
57
+ * column beside the source, as Excel does — the left one, else the right one.
58
+ * @param hasValue - Whether a cell holds something.
59
+ * @param from - The source's last row.
60
+ * @param left - The source's first column; the column left of it is looked at first.
61
+ * @param right - The source's last column; the column right of it is looked at next.
62
+ * @param rows - The sheet's row count.
63
+ * @returns The last row to fill, or `from` when there is nothing beside.
64
+ */
65
+ export function fillDownTo(hasValue, from, left, right, rows) {
66
+ for (const col of [left - 1, right + 1]) {
67
+ if (col < 0)
68
+ continue;
69
+ if (!hasValue(from + 1, col))
70
+ continue;
71
+ let r = from + 1;
72
+ while (r + 1 < rows && hasValue(r + 1, col))
73
+ r++;
74
+ return r;
75
+ }
76
+ return from;
77
+ }
78
+ //# sourceMappingURL=fill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fill.js","sourceRoot":"","sources":["../../src/excel/fill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** What is floated: every menu, list and pop-up card the element draws — always a `.card`, never a button of the same name. */
2
+ export declare const FLOATS: string;
3
+ /** The gap kept from the viewport's edges, px. */
4
+ export declare const EDGE = 8;
5
+ /** The least height a card keeps where it opened, scrolling inside, before it is moved up instead, px. */
6
+ export declare const MIN_H = 160;
7
+ /**
8
+ * Where a card of size `w` × `h` goes, wanting `x`, `y` (viewport px), inside a viewport `vw` × `vh`. Moved in
9
+ * from the right and left edges. When it runs past the bottom: above its anchor if `anchor` (the height of
10
+ * what it hangs under) is given and it fits there; else it stays where it opened and scrolls inside, if
11
+ * `MIN_H` or more is left below; else it moves up, scrolling inside if still too tall. It never covers
12
+ * what opened it unless the viewport leaves no other room. Pure, so it is tested alone.
13
+ */
14
+ export declare function placeInViewport(x: number, y: number, w: number, h: number, vw: number, vh: number, anchor?: number, edge?: number): {
15
+ x: number;
16
+ y: number;
17
+ maxH?: number;
18
+ };
19
+ /** Lifts one card into the top layer and places it inside the viewport; a hidden card leaves the top layer. */
20
+ export declare function floatInViewport(el: HTMLElement): void;
21
+ /** Floats every card under `root`. */
22
+ export declare function floatAll(root: ParentNode): void;
23
+ //# sourceMappingURL=float.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float.d.ts","sourceRoot":"","sources":["../../src/excel/float.ts"],"names":[],"mappings":"AAMA,+HAA+H;AAC/H,eAAO,MAAM,MAAM,QAA2I,CAAC;AAE/J,kDAAkD;AAClD,eAAO,MAAM,IAAI,IAAI,CAAC;AAWtB,0GAA0G;AAC1G,eAAO,MAAM,KAAK,MAAM,CAAC;AAEzB;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,IAAI,SAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAUpK;AAED,+GAA+G;AAC/G,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAoBrD;AAED,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE/C"}
@@ -0,0 +1,82 @@
1
+ // Every dropdown, menu and pop-up card is drawn in the top layer and kept wholly inside the viewport
2
+ // (SR-LAW-13): no scroll box, `overflow: hidden` parent or stacking context can cut it off or cover it.
3
+ // Each is laid out where its markup puts it (under its cell, under its button); that spot, relative to the
4
+ // box it was laid out in, is remembered, and on every frame the card is placed there in the viewport —
5
+ // moved in from the right and bottom edges, and above its anchor when there is no room below.
6
+ /** What is floated: every menu, list and pop-up card the element draws — always a `.card`, never a button of the same name. */
7
+ export const FLOATS = ['ctxmenu', 'dlmenu', 'moremenu', 'hidmenu', 'fmenu', 'menu', 'szpop', 'callout', 'composer', 'help'].map((c) => `.card.${c}`).join(',');
8
+ /** The gap kept from the viewport's edges, px. */
9
+ export const EDGE = 8;
10
+ const homes = new WeakMap();
11
+ /** The viewport's size, without scroll bars. */
12
+ const viewport = () => {
13
+ const d = document.documentElement;
14
+ return { w: d.clientWidth || innerWidth, h: d.clientHeight || innerHeight };
15
+ };
16
+ /** The least height a card keeps where it opened, scrolling inside, before it is moved up instead, px. */
17
+ export const MIN_H = 160;
18
+ /**
19
+ * Where a card of size `w` × `h` goes, wanting `x`, `y` (viewport px), inside a viewport `vw` × `vh`. Moved in
20
+ * from the right and left edges. When it runs past the bottom: above its anchor if `anchor` (the height of
21
+ * what it hangs under) is given and it fits there; else it stays where it opened and scrolls inside, if
22
+ * `MIN_H` or more is left below; else it moves up, scrolling inside if still too tall. It never covers
23
+ * what opened it unless the viewport leaves no other room. Pure, so it is tested alone.
24
+ */
25
+ export function placeInViewport(x, y, w, h, vw, vh, anchor = 0, edge = EDGE) {
26
+ if (x + w > vw - edge)
27
+ x = vw - edge - w;
28
+ if (x < edge)
29
+ x = edge;
30
+ if (y < edge)
31
+ y = edge;
32
+ if (y + h <= vh - edge)
33
+ return { x, y };
34
+ if (anchor && y - anchor - h >= edge)
35
+ return { x, y: y - anchor - h };
36
+ const below = vh - edge - y;
37
+ if (below >= MIN_H)
38
+ return { x, y, maxH: below };
39
+ const top = Math.max(edge, vh - edge - h);
40
+ return top + h > vh - edge ? { x, y: top, maxH: vh - edge - top } : { x, y: top };
41
+ }
42
+ /** Lifts one card into the top layer and places it inside the viewport; a hidden card leaves the top layer. */
43
+ export function floatInViewport(el) {
44
+ const open = el.matches(':popover-open');
45
+ if (!el.isConnected || el.hidden || getComputedStyle(el).display === 'none' && !open) {
46
+ if (open)
47
+ el.hidePopover();
48
+ return;
49
+ }
50
+ let home = homes.get(el);
51
+ if (!home) {
52
+ const parent = el.offsetParent;
53
+ if (!parent)
54
+ return;
55
+ const r = el.getBoundingClientRect(), p = parent.getBoundingClientRect();
56
+ home = { parent, dx: r.left - p.left, dy: r.top - p.top, anchor: Number(el.dataset.anchorH ?? 0) || 0 };
57
+ homes.set(el, home);
58
+ el.setAttribute('popover', 'manual');
59
+ el.classList.add('sp-float');
60
+ }
61
+ if (!el.matches(':popover-open')) {
62
+ try {
63
+ el.showPopover();
64
+ }
65
+ catch {
66
+ return;
67
+ }
68
+ }
69
+ const p = home.parent.getBoundingClientRect(), v = viewport();
70
+ el.style.maxHeight = '';
71
+ const at = placeInViewport(p.left + home.dx, p.top + home.dy, el.offsetWidth, el.offsetHeight, v.w, v.h, home.anchor);
72
+ el.style.left = `${Math.round(at.x)}px`;
73
+ el.style.top = `${Math.round(at.y)}px`;
74
+ if (at.maxH !== undefined)
75
+ el.style.maxHeight = `${at.maxH}px`;
76
+ }
77
+ /** Floats every card under `root`. */
78
+ export function floatAll(root) {
79
+ for (const el of Array.from(root.querySelectorAll(FLOATS)))
80
+ floatInViewport(el);
81
+ }
82
+ //# sourceMappingURL=float.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float.js","sourceRoot":"","sources":["../../src/excel/float.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,11 @@ export interface SheetSizes {
33
33
  cols?: Readonly<Record<number, number>>;
34
34
  rows?: Readonly<Record<number, number>>;
35
35
  }
36
+ /** The least the grid shows of a sheet: an insert at its edge adds empty rows or columns the data alone would not reach. */
37
+ export interface SheetExtent {
38
+ rows?: number;
39
+ cols?: number;
40
+ }
36
41
  /** Points (the file's row heights) to pixels at 100 %. */
37
42
  export declare const ptToPx: (pt: number) => number;
38
43
  /**
@@ -43,9 +48,10 @@ export declare const ptToPx: (pt: number) => number;
43
48
  * @param mergeList - The merged ranges to draw; the file's by default.
44
49
  * @param sizes - The user's column widths and row heights, px at 100 % (W-47); they win over the file's.
45
50
  * @param hidden - Rows and columns drawn at 0 px (W-49); a size set on one is kept for when it shows again.
51
+ * @param extent - The least the grid shows, after an insert at the data's edge (SR-GRID 11e).
46
52
  * @returns The row and column counts, the column and row edges and the merges.
47
53
  */
48
- export declare function sheetGeometry(s: ImportedSheet, mergeList?: readonly string[], sizes?: SheetSizes, hidden?: SheetHidden): SheetGeometry;
54
+ export declare function sheetGeometry(s: ImportedSheet, mergeList?: readonly string[], sizes?: SheetSizes, hidden?: SheetHidden, extent?: SheetExtent): SheetGeometry;
49
55
  /** A row's top at 100 %; past the drawn rows each row is 28 px. */
50
56
  export declare function rowTop(g: SheetGeometry, r: number): number;
51
57
  /** A row's height at 100 %. */
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/excel/geometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/excel/geometry.ts"],"names":[],"mappings":"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"}
@@ -25,9 +25,10 @@ export const ptToPx = (pt) => Math.round((pt * 96) / 72);
25
25
  * @param mergeList - The merged ranges to draw; the file's by default.
26
26
  * @param sizes - The user's column widths and row heights, px at 100 % (W-47); they win over the file's.
27
27
  * @param hidden - Rows and columns drawn at 0 px (W-49); a size set on one is kept for when it shows again.
28
+ * @param extent - The least the grid shows, after an insert at the data's edge (SR-GRID 11e).
28
29
  * @returns The row and column counts, the column and row edges and the merges.
29
30
  */
30
- export function sheetGeometry(s, mergeList = s.merges ?? [], sizes = {}, hidden = {}) {
31
+ export function sheetGeometry(s, mergeList = s.merges ?? [], sizes = {}, hidden = {}, extent = {}) {
31
32
  const dataCols = s.rows.reduce((m, r) => Math.max(m, r.length), 0);
32
33
  const merges = mergeList.map((m) => parseRange(m)).filter((m) => !!m);
33
34
  const ruled = [...(s.dataValidations ?? []).flatMap((v) => v.sqref), ...(s.conditionalFormats ?? []).flatMap((f) => f.sqref)]
@@ -38,8 +39,8 @@ export function sheetGeometry(s, mergeList = s.merges ?? [], sizes = {}, hidden
38
39
  .filter((n) => !!n);
39
40
  const drawnCols = drawn.map((n) => n.col).filter((n) => n <= dataCols + 26);
40
41
  const drawnRows = drawn.map((n) => n.row).filter((n) => n <= s.rows.length + 200);
41
- const cols = Math.max(1, dataCols, ...merges.map((m) => m.right + 1), ...ruled.map((c) => c + 1), ...drawnCols);
42
- const rows = Math.max(s.rows.length + 3, 20, ...merges.map((m) => m.bottom + 1), ...drawnRows);
42
+ const cols = Math.max(1, dataCols, ...merges.map((m) => m.right + 1), ...ruled.map((c) => c + 1), ...drawnCols, extent.cols ?? 0);
43
+ const rows = Math.max(s.rows.length + 3, 20, ...merges.map((m) => m.bottom + 1), ...drawnRows, extent.rows ?? 0);
43
44
  const dflt = s.defaultColWidth !== undefined ? charsToPx(s.defaultColWidth) : DEFAULT_COL_PX;
44
45
  const fileWidths = s.columnWidths ?? [];
45
46
  const guess = fileWidths.length === 0 && !s.path;
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../src/excel/geometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../src/excel/geometry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/excel/styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,QAmCpB,CAAC;AAEF,eAAO,MAAM,SAAS,QAoMrB,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/excel/styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,QAmCpB,CAAC;AAEF,eAAO,MAAM,SAAS,QAoNrB,CAAC"}
@@ -108,6 +108,19 @@ dialog::backdrop{background:rgba(22,23,26,.42)}
108
108
  .sf{background:var(--sp-accent-soft);opacity:.6}
109
109
  .sb,.sa,.sc{border:0 solid var(--sp-accent)}
110
110
  .sc{border-style:dashed}
111
+ /* the fill handle (Edit): a square at the selection's corner; dragged, a dashed reach and the last value */
112
+ .sellayer>.fh{width:8px;height:8px;background:var(--sp-accent);box-shadow:0 0 0 1.5px var(--sp-cell);pointer-events:auto!important;cursor:crosshair;touch-action:none}
113
+ .sellayer>.fh:hover{transform:scale(1.25)}
114
+ .sfp{border:0 dashed var(--sp-ink-2)}
115
+ .sellayer>.ftip{padding:3px 7px;border-radius:4px;background:var(--sp-ink);color:var(--sp-surface);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:var(--sp-shadow)}
116
+ /* the in-cell editor: on the cell, as wide as the text needs (to the sheet's edge) */
117
+ .ice{position:absolute;z-index:7;box-sizing:border-box;margin:0;padding:0 calc(.6em - 2px);border:2px solid var(--sp-accent);border-radius:0;background:var(--sp-cell);color:var(--sp-ink);font:inherit;line-height:normal;outline:none;box-shadow:0 2px 10px rgba(22,23,26,.18);field-sizing:content;text-align:left}
118
+ /* a file dragged over a loaded sheet */
119
+ .dropov{position:absolute;inset:8px;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed var(--sp-accent);border-radius:var(--sp-r-lg);background:color-mix(in srgb,var(--sp-accent-soft) 94%,transparent);color:var(--sp-accent-ink);font-weight:600;pointer-events:none;text-align:center;padding:16px}
120
+ .dropov svg{width:28px;height:28px}
121
+ .dropov small{font-weight:400;color:var(--sp-ink-2);max-width:46ch}
122
+ /* headers answer the pointer */
123
+ .hrow [data-hc]:hover,.rh[data-hr]:hover{background:color-mix(in srgb,var(--sp-accent-soft) 45%,var(--sp-head))}
111
124
  .sband{box-sizing:border-box;pointer-events:none}
112
125
  .sh{width:24px;height:24px;display:grid;place-items:center;pointer-events:auto!important;touch-action:none;cursor:grab}
113
126
  .sh::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--sp-cell);border:2px solid var(--sp-accent);box-sizing:border-box}
@@ -180,6 +193,9 @@ dialog::backdrop{background:rgba(22,23,26,.42)}
180
193
  .msep{height:1px;margin:4px 6px;background:var(--sp-line)}
181
194
  .export .badge-n[hidden]{display:none}
182
195
  .kbd{display:inline-block;font-size:11px;padding:2px 5px;border:1px solid rgba(255,255,255,.35);border-radius:4px}
196
+ /* SR-LAW-13: a card in the top layer — the popover's own margin, inset and padding undone; placed by float.ts */
197
+ .sp-float[popover]{position:fixed;margin:0;inset:auto;max-width:calc(100vw - 16px);overflow:auto}
198
+ :where(.sp-float[popover]){padding:0}
183
199
  .card{position:absolute;background:var(--sp-surface);border:1px solid var(--sp-line);border-radius:var(--sp-r-lg);box-shadow:var(--sp-shadow);z-index:8;overflow:hidden;display:flex;flex-direction:column}
184
200
  .card .hd{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--sp-line)}
185
201
  .card .hd .t{font-weight:600;font-size:13px}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/excel/styles.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0EAA0E;AAC1E,uEAAuE;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCpC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoMnC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/excel/styles.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0EAA0E;AAC1E,uEAAuE;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCpC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoNnC,CAAC"}