@book.dev/sdk 1.72.0 → 1.74.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/dist/content.d.ts CHANGED
@@ -1,23 +1,45 @@
1
1
  import type { PageSnapshot } from './types';
2
- /** Flatten a page snapshot (EditorJS or block-editor) into plain text. */
2
+ /** Flatten a page snapshot (legacy stored or block-editor) into plain text. */
3
3
  export declare function snapshotText(data: PageSnapshot | null | undefined): string;
4
- /** Turn plain text into EditorJS paragraph blocks (one per non-empty line). */
4
+ /**
5
+ * Turn plain text into block-native paragraph blocks (one per non-empty line):
6
+ * the JSON-projection shape a `blockdoc` stores (`{id, type, text: runs}`), NOT
7
+ * the legacy EditorJS `{type, data}` shape. Fed into {@link textSnapshot} and
8
+ * the block branch of {@link appendTextToSnapshot}.
9
+ */
5
10
  export declare function paragraphBlocks(content: string, idPrefix?: string): Array<{
6
11
  id: string;
7
12
  type: 'paragraph';
8
- data: {
9
- text: string;
10
- };
13
+ text: Array<{
14
+ t: string;
15
+ }>;
11
16
  }>;
12
- /** Build a fresh page snapshot whose document is the given plain text. */
17
+ /**
18
+ * Build a fresh page snapshot whose document is the given plain text — a
19
+ * block-native `blockdoc` (`editor: 'blocks'`), so pages created by the AI
20
+ * agent, the MCP server, and plugins carry the CRDT block editor's shape from
21
+ * birth and never hit the legacy migrate-on-open path. The blockdoc is the
22
+ * JSON-projection form (no CRDT `update`); the editor rebuilds the Y.Doc from
23
+ * `blocks` on first load and stamps a real update on the first save (exactly
24
+ * like {@link appendBlocksToSnapshot}). `editorjs` is kept as an empty
25
+ * placeholder — the retained storage key every reader tolerates.
26
+ */
13
27
  export declare function textSnapshot(content?: string, idPrefix?: string): PageSnapshot;
14
28
  /**
15
29
  * Append plain text to a page snapshot as paragraph blocks, returning the new
16
- * snapshot — or `null` when the page can't be appended to this way (the
17
- * collaborative block editor owns those documents). Used by the agent and the
18
- * MCP server so both apply the same guard.
30
+ * snapshot (or `data` unchanged when there's nothing to add). Used by the agent
31
+ * and the MCP server.
32
+ *
33
+ * A block-editor page (or any snapshot already carrying a `blockdoc`) gets the
34
+ * paragraphs merged into its blockdoc JSON projection — the stale CRDT `update`
35
+ * is dropped so a live client re-merges from `blocks` on next load (this
36
+ * server-side path has no live editor; mirrors {@link appendBlocksToSnapshot}).
37
+ * A pre-existing LEGACY page (no blockdoc) keeps its stored `editorjs` shape —
38
+ * its content upgrades to blockdoc only when the editor opens it
39
+ * (migrateLegacyBlocks) — so appended paragraphs use the legacy `{type, data}`
40
+ * shape there, never mixing dialects in one block list.
19
41
  */
20
- export declare function appendTextToSnapshot(data: PageSnapshot, content: string, idPrefix?: string): PageSnapshot | null;
42
+ export declare function appendTextToSnapshot(data: PageSnapshot, content: string, idPrefix?: string): PageSnapshot;
21
43
  /** A block to append to a block-editor page (the agent / MCP write path). */
22
44
  export interface AppendBlock {
23
45
  type: string;
@@ -27,7 +49,7 @@ export interface AppendBlock {
27
49
  }
28
50
  /**
29
51
  * Append blocks to a **block-editor** page's JSON projection, returning the new
30
- * snapshot — or `null` for legacy EditorJS pages (use {@link appendTextToSnapshot}
52
+ * snapshot — or `null` for legacy stored pages (use {@link appendTextToSnapshot}
31
53
  * there). This mutates only the JSON projection (`blockdoc.blocks`), NOT the
32
54
  * CRDT `update` — so a *live* editor on that page should apply the change
33
55
  * through the editor bridge instead (one CRDT transaction, undoable). This
package/dist/content.js CHANGED
@@ -1,5 +1,5 @@
1
1
  const stripHtml = (s) => s.replace(/<[^>]+>/g, ' ').replace(/\s+/g, ' ').trim();
2
- /** Flatten a page snapshot (EditorJS or block-editor) into plain text. */
2
+ /** Flatten a page snapshot (legacy stored or block-editor) into plain text. */
3
3
  export function snapshotText(data) {
4
4
  if (!data)
5
5
  return '';
@@ -20,7 +20,7 @@ export function snapshotText(data) {
20
20
  walk(blockdoc.blocks);
21
21
  return parts.join('\n').trim();
22
22
  }
23
- // EditorJS pages: pull the text-ish fields out of each block.
23
+ // Legacy stored pages: pull the text-ish fields out of each block.
24
24
  const blocks = data.editorjs?.blocks ?? [];
25
25
  for (const b of blocks) {
26
26
  const d = b.data ?? {};
@@ -48,28 +48,59 @@ export function snapshotText(data) {
48
48
  }
49
49
  return parts.join('\n').trim();
50
50
  }
51
- /** Turn plain text into EditorJS paragraph blocks (one per non-empty line). */
51
+ /**
52
+ * Turn plain text into block-native paragraph blocks (one per non-empty line):
53
+ * the JSON-projection shape a `blockdoc` stores (`{id, type, text: runs}`), NOT
54
+ * the legacy EditorJS `{type, data}` shape. Fed into {@link textSnapshot} and
55
+ * the block branch of {@link appendTextToSnapshot}.
56
+ */
52
57
  export function paragraphBlocks(content, idPrefix = 'gen') {
53
58
  return content
54
59
  .split('\n')
55
60
  .map((l) => l.trim())
56
61
  .filter(Boolean)
57
- .map((text, i) => ({ id: `${idPrefix}-${i}`, type: 'paragraph', data: { text } }));
62
+ .map((text, i) => ({ id: `${idPrefix}-${i}`, type: 'paragraph', text: [{ t: text }] }));
58
63
  }
59
- /** Build a fresh page snapshot whose document is the given plain text. */
64
+ /**
65
+ * Build a fresh page snapshot whose document is the given plain text — a
66
+ * block-native `blockdoc` (`editor: 'blocks'`), so pages created by the AI
67
+ * agent, the MCP server, and plugins carry the CRDT block editor's shape from
68
+ * birth and never hit the legacy migrate-on-open path. The blockdoc is the
69
+ * JSON-projection form (no CRDT `update`); the editor rebuilds the Y.Doc from
70
+ * `blocks` on first load and stamps a real update on the first save (exactly
71
+ * like {@link appendBlocksToSnapshot}). `editorjs` is kept as an empty
72
+ * placeholder — the retained storage key every reader tolerates.
73
+ */
60
74
  export function textSnapshot(content = '', idPrefix = 'gen') {
61
- return { editorjs: { blocks: paragraphBlocks(content, idPrefix) }, values: [], names: [] };
75
+ return { editorjs: { blocks: [] }, values: [], names: [], editor: 'blocks', blockdoc: { blocks: paragraphBlocks(content, idPrefix) } };
62
76
  }
63
77
  /**
64
78
  * Append plain text to a page snapshot as paragraph blocks, returning the new
65
- * snapshot — or `null` when the page can't be appended to this way (the
66
- * collaborative block editor owns those documents). Used by the agent and the
67
- * MCP server so both apply the same guard.
79
+ * snapshot (or `data` unchanged when there's nothing to add). Used by the agent
80
+ * and the MCP server.
81
+ *
82
+ * A block-editor page (or any snapshot already carrying a `blockdoc`) gets the
83
+ * paragraphs merged into its blockdoc JSON projection — the stale CRDT `update`
84
+ * is dropped so a live client re-merges from `blocks` on next load (this
85
+ * server-side path has no live editor; mirrors {@link appendBlocksToSnapshot}).
86
+ * A pre-existing LEGACY page (no blockdoc) keeps its stored `editorjs` shape —
87
+ * its content upgrades to blockdoc only when the editor opens it
88
+ * (migrateLegacyBlocks) — so appended paragraphs use the legacy `{type, data}`
89
+ * shape there, never mixing dialects in one block list.
68
90
  */
69
91
  export function appendTextToSnapshot(data, content, idPrefix = 'gen') {
70
- if (data.editor === 'blocks')
71
- return null;
72
- const added = paragraphBlocks(content, idPrefix);
92
+ if (data.editor === 'blocks' || data.blockdoc) {
93
+ const added = paragraphBlocks(content, idPrefix);
94
+ if (added.length === 0)
95
+ return data;
96
+ const blockdoc = data.blockdoc ?? { blocks: [] };
97
+ return { ...data, editor: 'blocks', blockdoc: { ...blockdoc, update: undefined, blocks: [...(blockdoc.blocks ?? []), ...added] } };
98
+ }
99
+ const added = content
100
+ .split('\n')
101
+ .map((l) => l.trim())
102
+ .filter(Boolean)
103
+ .map((text, i) => ({ id: `${idPrefix}-${i}`, type: 'paragraph', data: { text } }));
73
104
  if (added.length === 0)
74
105
  return data;
75
106
  const editorjs = data.editorjs ?? { blocks: [] };
@@ -77,7 +108,7 @@ export function appendTextToSnapshot(data, content, idPrefix = 'gen') {
77
108
  }
78
109
  /**
79
110
  * Append blocks to a **block-editor** page's JSON projection, returning the new
80
- * snapshot — or `null` for legacy EditorJS pages (use {@link appendTextToSnapshot}
111
+ * snapshot — or `null` for legacy stored pages (use {@link appendTextToSnapshot}
81
112
  * there). This mutates only the JSON projection (`blockdoc.blocks`), NOT the
82
113
  * CRDT `update` — so a *live* editor on that page should apply the change
83
114
  * through the editor bridge instead (one CRDT transaction, undoable). This
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Canonical data-colour palette — the single source for every colour OpenBook
3
+ * paints *data* with: select-option chips, tag dots/swatches, chart series
4
+ * (kit + database), and status lights.
5
+ *
6
+ * The default **Pastel** scheme is the owner-selected soft-pastel set (rendered
7
+ * candidates reviewed 2026-07-05): light fills/chips + a per-hue dark chip and a
8
+ * dark dot/series fill. The **Vivid** and **Muted** schemes are the
9
+ * contrast-solved sets from `docs/design/ob-375-palette-audit.mjs` and are not
10
+ * rendered yet (they land with the "Data colours" control, OB-379).
11
+ *
12
+ * Plain data, no DOM. The UI consumes it as CSS variables at runtime
13
+ * (`applyDataColors` in `@book.dev/ui`) and inlines the resolved values at
14
+ * export time (exports are self-contained HTML/PDF and must not read live
15
+ * CSS variables).
16
+ *
17
+ * The 9 {@link SELECT_COLORS} names (database.ts) are a strict subset of
18
+ * {@link DATA_COLOR_TOKENS}; `teal`/`cyan`/`indigo` are extension tokens that
19
+ * are NOT storable on select options and are not part of the rendered pastel
20
+ * cycle (stored enum stays 9 — rendering-only).
21
+ */
22
+ export type DataColorToken = 'gray' | 'brown' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple' | 'pink' | 'red' | 'teal' | 'cyan' | 'indigo';
23
+ export type DataColorScheme = 'pastel' | 'vivid' | 'muted';
24
+ export interface ChipColors {
25
+ bg: string;
26
+ fg: string;
27
+ }
28
+ export interface DataColor {
29
+ /** Dot/swatch, chart-series and status-lamp fill in **light** mode. */
30
+ fill: string;
31
+ /** The same, in **dark** mode (dots/swatches flip; equals `fill` when the
32
+ * scheme is mode-invariant — i.e. every token bar the pastel select set). */
33
+ fillDark: string;
34
+ chip: {
35
+ light: ChipColors;
36
+ dark: ChipColors;
37
+ };
38
+ }
39
+ export declare const DATA_COLOR_TOKENS: readonly ["gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red", "teal", "cyan", "indigo"];
40
+ export declare const DATA_COLOR_SCHEMES: readonly ["pastel", "vivid", "muted"];
41
+ export declare const DEFAULT_DATA_COLOR_SCHEME: DataColorScheme;
42
+ export declare const isDataColorToken: (v: unknown) => v is DataColorToken;
43
+ /**
44
+ * Canonical series cycling order for charts (kit + database) — the 9 select
45
+ * tokens, blue-first, giving 9 distinguishable series before repeating. The
46
+ * extension tokens (`teal`/`cyan`/`indigo`) sit outside the cycle.
47
+ */
48
+ export declare const SERIES_ORDER: readonly ["blue", "orange", "green", "purple", "pink", "yellow", "red", "brown", "gray"];
49
+ /**
50
+ * Hairline stroke carried by chart shapes, swatch dots and status lamps in the
51
+ * pastel/muted schemes, **light mode only** (soft-pastel fills sit low against a
52
+ * white page; the hairline keeps them legible). Vivid and dark mode get none.
53
+ */
54
+ export declare const DATA_STROKE = "rgba(0,0,0,0.12)";
55
+ /** The scheme's hairline stroke for a light surface ('none' for vivid). */
56
+ export declare const dataStroke: (scheme: DataColorScheme) => string;
57
+ type Palette = Record<DataColorToken, DataColor>;
58
+ export declare const DATA_PALETTE: Record<DataColorScheme, Palette>;
59
+ /** The light-mode fill for chart series `i` (cycles over {@link SERIES_ORDER}). */
60
+ export declare const seriesColor: (i: number, scheme?: DataColorScheme) => string;
61
+ /**
62
+ * Semantic token behind each status-light state. Warn is **yellow** (not orange):
63
+ * at the soft-pastel saturations orange and red are near-identical, so the trio
64
+ * uses green / yellow / red for a glanceable traffic light.
65
+ */
66
+ export declare const STATUS_TOKENS: {
67
+ readonly ok: "green";
68
+ readonly warn: "yellow";
69
+ readonly bad: "red";
70
+ };
71
+ /** The status-lamp light-mode fill for a state (`ok → green`, `warn → yellow`, `bad → red`). */
72
+ export declare const statusColor: (s: "ok" | "warn" | "bad", scheme?: DataColorScheme) => string;
73
+ /** A `#rrggbb` hex as an `rgba()` string at the given alpha (for export inlining). */
74
+ export declare function hexAlpha(hex: string, alpha: number): string;
75
+ export {};
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Canonical data-colour palette — the single source for every colour OpenBook
3
+ * paints *data* with: select-option chips, tag dots/swatches, chart series
4
+ * (kit + database), and status lights.
5
+ *
6
+ * The default **Pastel** scheme is the owner-selected soft-pastel set (rendered
7
+ * candidates reviewed 2026-07-05): light fills/chips + a per-hue dark chip and a
8
+ * dark dot/series fill. The **Vivid** and **Muted** schemes are the
9
+ * contrast-solved sets from `docs/design/ob-375-palette-audit.mjs` and are not
10
+ * rendered yet (they land with the "Data colours" control, OB-379).
11
+ *
12
+ * Plain data, no DOM. The UI consumes it as CSS variables at runtime
13
+ * (`applyDataColors` in `@book.dev/ui`) and inlines the resolved values at
14
+ * export time (exports are self-contained HTML/PDF and must not read live
15
+ * CSS variables).
16
+ *
17
+ * The 9 {@link SELECT_COLORS} names (database.ts) are a strict subset of
18
+ * {@link DATA_COLOR_TOKENS}; `teal`/`cyan`/`indigo` are extension tokens that
19
+ * are NOT storable on select options and are not part of the rendered pastel
20
+ * cycle (stored enum stays 9 — rendering-only).
21
+ */
22
+ export const DATA_COLOR_TOKENS = [
23
+ 'gray', 'brown', 'orange', 'yellow', 'green', 'blue',
24
+ 'purple', 'pink', 'red', 'teal', 'cyan', 'indigo',
25
+ ];
26
+ export const DATA_COLOR_SCHEMES = ['pastel', 'vivid', 'muted'];
27
+ export const DEFAULT_DATA_COLOR_SCHEME = 'pastel';
28
+ export const isDataColorToken = (v) => typeof v === 'string' && DATA_COLOR_TOKENS.includes(v);
29
+ /**
30
+ * Canonical series cycling order for charts (kit + database) — the 9 select
31
+ * tokens, blue-first, giving 9 distinguishable series before repeating. The
32
+ * extension tokens (`teal`/`cyan`/`indigo`) sit outside the cycle.
33
+ */
34
+ export const SERIES_ORDER = [
35
+ 'blue', 'orange', 'green', 'purple', 'pink', 'yellow', 'red', 'brown', 'gray',
36
+ ];
37
+ /**
38
+ * Hairline stroke carried by chart shapes, swatch dots and status lamps in the
39
+ * pastel/muted schemes, **light mode only** (soft-pastel fills sit low against a
40
+ * white page; the hairline keeps them legible). Vivid and dark mode get none.
41
+ */
42
+ export const DATA_STROKE = 'rgba(0,0,0,0.12)';
43
+ /** The scheme's hairline stroke for a light surface ('none' for vivid). */
44
+ export const dataStroke = (scheme) => scheme === 'vivid' ? 'none' : DATA_STROKE;
45
+ /** `fillDark` defaults to `fill` — the mode-invariant case (vivid/muted, and the
46
+ * pastel extension tokens). The pastel select tokens pass a distinct dark dot;
47
+ * so do the muted status trio (green/yellow/red), whose LIGHT fill is punched up
48
+ * for a clearer traffic light while the dark fill stays the desaturated wash. */
49
+ const entry = (fill, lightBg, lightFg, darkBg, darkFg, fillDark = fill) => ({
50
+ fill,
51
+ fillDark,
52
+ chip: { light: { bg: lightBg, fg: lightFg }, dark: { bg: darkBg, fg: darkFg } },
53
+ });
54
+ /**
55
+ * Pastel (default) — the owner-selected soft-pastel set. Light fill / chip bg /
56
+ * chip fg / dark dot-fill are owner values (rendered-candidate pick, 2026-07-05);
57
+ * the per-hue dark chip (deep muted bg + light on-hue fg, all ≥ 4.5:1) is derived
58
+ * — see the derivation guard in `dataColors.test.ts`. `teal`/`cyan`/`indigo` are
59
+ * unrendered extension tokens (kept from the audit set, mode-invariant).
60
+ */
61
+ const PASTEL = {
62
+ gray: entry('#c3c6cb', '#e3e2e0', '#5c6475', '#31363f', '#cccfd7', '#b0b5bf'),
63
+ brown: entry('#d7af9d', '#eee0da', '#9d4c2a', '#4f2f22', '#e8c8ba', '#ddac98'),
64
+ orange: entry('#debea6', '#fadec9', '#935425', '#4f3522', '#e8ceba', '#e3bda1'),
65
+ yellow: entry('#dac495', '#fdecc8', '#876622', '#4f4022', '#e8d9ba', '#e0c690'),
66
+ green: entry('#9fdf9f', '#dbeddb', '#1e761e', '#224f22', '#bae8ba', '#9ae49a'),
67
+ blue: entry('#a9ccdf', '#d3e5ef', '#24698f', '#223f4f', '#bad8e8', '#a5cde4'),
68
+ purple: entry('#cdade1', '#e8deee', '#9032c8', '#3e224f', '#d7bae8', '#cfa8e6'),
69
+ pink: entry('#dea6be', '#f5e0e9', '#b82e69', '#4f2235', '#e8bace', '#e3a1bd'),
70
+ red: entry('#deaea6', '#ffe2dd', '#b4412d', '#4f2822', '#e8c1ba', '#e3aaa1'),
71
+ teal: entry('#5eead4', '#99f6e4', '#115e59', '#203836', '#99f6e4'),
72
+ cyan: entry('#67e8f9', '#a5f3fc', '#155e75', '#213840', '#a5f3fc'),
73
+ indigo: entry('#a5b4fc', '#c7d2fe', '#3730a3', '#2c2b4c', '#c7d2fe'),
74
+ };
75
+ /** Vivid: today's saturated `SWATCH_HEX` look (orange `#f59e0b` → `#f97316`). */
76
+ const VIVID = {
77
+ gray: entry('#9ca3af', '#d4d4d8', '#32373e', '#484b51', '#cdd0d6'),
78
+ brown: entry('#b08968', '#bdac9e', '#45372b', '#534437', '#d8d1ca'),
79
+ orange: entry('#f97316', '#fdba74', '#603110', '#693e21', '#e7cdbb'),
80
+ yellow: entry('#eab308', '#fde047', '#5f4c11', '#685721', '#e7dcbc'),
81
+ green: entry('#22c55e', '#86efac', '#1a5630', '#2a603e', '#c1e1cd'),
82
+ blue: entry('#3b82f6', '#93c5fd', '#122f5e', '#223d67', '#bccce6'),
83
+ purple: entry('#a855f7', '#d8b4fe', '#39125e', '#462267', '#d2bce6'),
84
+ pink: entry('#ec4899', '#f9a8d4', '#5a1638', '#642644', '#e4bed1'),
85
+ red: entry('#ef4444', '#fca5a5', '#5c1515', '#652525', '#e4bebe'),
86
+ teal: entry('#14b8a6', '#5eead4', '#165a52', '#26635d', '#bfe4df'),
87
+ cyan: entry('#06b6d4', '#67e8f9', '#105460', '#215e69', '#bbe0e7'),
88
+ indigo: entry('#6366f1', '#a5b4fc', '#15165b', '#252764', '#bebfe4'),
89
+ };
90
+ /**
91
+ * Muted: hue preserved, saturation compressed — greyed washes. The status trio
92
+ * (green/yellow/red) carries a punched-up **light** fill (+12% saturation, hue
93
+ * kept) so the status lamps read as a clear red/yellow/green traffic light while
94
+ * still sitting in the muted family (well below vivid); their dark fill keeps the
95
+ * desaturated wash (OB-379 review). No other muted value moves.
96
+ */
97
+ const MUTED = {
98
+ gray: entry('#8d929a', '#e4e5e7', '#4d5056', '#3b3d40', '#c4c6ca'),
99
+ brown: entry('#9f9389', '#e8e5e3', '#59514a', '#413d3a', '#cac7c3'),
100
+ orange: entry('#b28e75', '#ebe5e0', '#694d3a', '#463c34', '#d2c5bc'),
101
+ yellow: entry('#bfa969', '#ebe8e0', '#685d3b', '#464235', '#d1ccbc', '#b2a376'),
102
+ green: entry('#70b88b', '#e2e9e4', '#40634d', '#37443b', '#bfcfc5', '#7dab8e'),
103
+ blue: entry('#778db1', '#e0e4eb', '#3b4c68', '#353b46', '#bdc4d1'),
104
+ purple: entry('#9577b1', '#e6e0eb', '#523b68', '#3d3546', '#c7bdd1'),
105
+ pink: entry('#ae7a94', '#eae1e5', '#653e51', '#45363d', '#d0bec7'),
106
+ red: entry('#bc6c6c', '#eae1e1', '#663d3d', '#453535', '#d0bdbd', '#af7979'),
107
+ teal: entry('#7aaea8', '#e1eae9', '#3e6561', '#364543', '#bed0ce'),
108
+ cyan: entry('#76a9b2', '#e0e9eb', '#3a6269', '#354346', '#bcced2'),
109
+ indigo: entry('#797aaf', '#e1e1ea', '#3d3e66', '#363645', '#bebed0'),
110
+ };
111
+ export const DATA_PALETTE = {
112
+ pastel: PASTEL,
113
+ vivid: VIVID,
114
+ muted: MUTED,
115
+ };
116
+ // ── Derivations ──────────────────────────────────────────────────────────────
117
+ /** The light-mode fill for chart series `i` (cycles over {@link SERIES_ORDER}). */
118
+ export const seriesColor = (i, scheme = DEFAULT_DATA_COLOR_SCHEME) => DATA_PALETTE[scheme][SERIES_ORDER[i % SERIES_ORDER.length]].fill;
119
+ /**
120
+ * Semantic token behind each status-light state. Warn is **yellow** (not orange):
121
+ * at the soft-pastel saturations orange and red are near-identical, so the trio
122
+ * uses green / yellow / red for a glanceable traffic light.
123
+ */
124
+ export const STATUS_TOKENS = { ok: 'green', warn: 'yellow', bad: 'red' };
125
+ /** The status-lamp light-mode fill for a state (`ok → green`, `warn → yellow`, `bad → red`). */
126
+ export const statusColor = (s, scheme = DEFAULT_DATA_COLOR_SCHEME) => DATA_PALETTE[scheme][STATUS_TOKENS[s]].fill;
127
+ /** A `#rrggbb` hex as an `rgba()` string at the given alpha (for export inlining). */
128
+ export function hexAlpha(hex, alpha) {
129
+ const m = /^#([0-9a-f]{6})$/i.exec(hex);
130
+ if (!m)
131
+ return hex;
132
+ const n = parseInt(m[1], 16);
133
+ return `rgba(${(n >> 16) & 0xff},${(n >> 8) & 0xff},${n & 0xff},${alpha})`;
134
+ }
135
+ //# sourceMappingURL=dataColors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataColors.js","sourceRoot":"","sources":["../src/dataColors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { API, type ApiError, type CompactResult } from './routes';
4
4
  export type { DataClient, PageSubscription, FetchLike, LiveSourceLike, HttpDataClientOptions, IdentityCredential } from './client';
5
5
  export { HttpDataClient } from './client';
6
6
  export { ForwardingApiError, ForwardingClient, TunnelClient, MemoryKeyStore, mintSiteKeypair, signWithSiteKey, verifyWithSiteKey, FORWARDED_HEADER, signRosterAssertion, verifyRosterAssertion, ROSTER_ASSERTION_VERSION, ROSTER_ASSERTION_SKEW_MS, type KeyStore, type SiteIdentity, type ForwardingClientOptions, type TunnelStatus, type RosterAssertionPayload, type SignRosterAssertionInput, type VerifyRosterAssertionInput, } from './forwarding';
7
+ export { DATA_PALETTE, DATA_COLOR_TOKENS, DATA_COLOR_SCHEMES, DEFAULT_DATA_COLOR_SCHEME, SERIES_ORDER, DATA_STROKE, STATUS_TOKENS, dataStroke, isDataColorToken, seriesColor, statusColor, hexAlpha, type DataColorToken, type DataColorScheme, type DataColor, type ChipColors, } from './dataColors';
7
8
  export type { DatabasePropertyType, NumberFormat, NumberDisplay, StatusGroup, RollupFunction, RollupConfig, RelationCardinality, DatabaseSelectOption, DatabaseProperty, DateRange, LocationValue, PropertyGroup, RowTemplate, DatabaseViewType, ChartAggregate, SummaryType, FilterOperator, FilterConjunction, DatabaseFilter, DatabaseFilterGroup, FilterNode, SortDirection, DatabaseSort, DatabaseView, DatabaseMetric, ColorRule, DatabaseSchema, StoredDatabase, DatabaseInput, DatabaseUpdate, DatabaseRow, RowInput, RowUpdate, RowGroup, ChartDatum, ChartSeries, ChartSegment, ChartGroup, ChartMatrix, DateSpan, GraphNode, GraphEdge, DependencyGraph, InverseUpdate, RowTreeNode, } from './database';
8
9
  export { TITLE_PROPERTY_ID, SELECT_COLORS, NO_VALUE_GROUP, STATUS_GROUPS, RELATIVE_DATE_OPS, projectExports, rowValue, matchesFilter, rowMatchesCondition, applyView, viewFilterRoot, isFilterGroup, shortId, defaultDatabaseSchema, defaultView, defaultStatusOptions, removeProperty, formatNumber, formatUniqueId, numberProgress, groupRows, groupRowsBy, groupRowsByParent, PARENT_GROUP_ID, NO_PARENT_GROUP, aggregateRows, aggregateMatrix, CHART_TOTAL_SERIES, summarizeColumn, dateStart, dateEnd, parseDay, rowDateSpan, rowLocation, asLocation, dependencyGraph, syncInverseUpdates, relationSides, buildRowTree, flattenRowTree, isImageUrl, firstImageUrl, coverImageUrl, } from './database';
9
10
  export { evaluateFormula, formulaReferences, FormulaError, type FormulaValue, type FormulaResolver, } from './formula';
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ export { emptyPageSnapshot, PAGE_VISIBILITIES } from './types';
2
2
  export { API } from './routes';
3
3
  export { HttpDataClient } from './client';
4
4
  export { ForwardingApiError, ForwardingClient, TunnelClient, MemoryKeyStore, mintSiteKeypair, signWithSiteKey, verifyWithSiteKey, FORWARDED_HEADER, signRosterAssertion, verifyRosterAssertion, ROSTER_ASSERTION_VERSION, ROSTER_ASSERTION_SKEW_MS, } from './forwarding';
5
+ export { DATA_PALETTE, DATA_COLOR_TOKENS, DATA_COLOR_SCHEMES, DEFAULT_DATA_COLOR_SCHEME, SERIES_ORDER, DATA_STROKE, STATUS_TOKENS, dataStroke, isDataColorToken, seriesColor, statusColor, hexAlpha, } from './dataColors';
5
6
  export { TITLE_PROPERTY_ID, SELECT_COLORS, NO_VALUE_GROUP, STATUS_GROUPS, RELATIVE_DATE_OPS, projectExports, rowValue, matchesFilter, rowMatchesCondition, applyView, viewFilterRoot, isFilterGroup, shortId, defaultDatabaseSchema, defaultView, defaultStatusOptions, removeProperty, formatNumber, formatUniqueId, numberProgress, groupRows, groupRowsBy, groupRowsByParent, PARENT_GROUP_ID, NO_PARENT_GROUP, aggregateRows, aggregateMatrix, CHART_TOTAL_SERIES, summarizeColumn, dateStart, dateEnd, parseDay, rowDateSpan, rowLocation, asLocation, dependencyGraph, syncInverseUpdates, relationSides, buildRowTree, flattenRowTree, isImageUrl, firstImageUrl, coverImageUrl, } from './database';
6
7
  export { evaluateFormula, formulaReferences, FormulaError, } from './formula';
7
8
  export { OWNER_PROPERTY_ID, VERIFICATION_PROPERTY_ID, BACKLINKS_PROPERTY_ID, THEME_PROPERTY_ID, COVER_PROPERTY_ID, FONTS_PROPERTY_ID, ICON_PROPERTY_ID, FULLWIDTH_PROPERTY_ID, SYSTEM_PAGE_PROPERTIES, isVerified, verificationExpired, isVerificationActive, makeVerification, extractMentionIds, propertiesReferencePage, } from './pageProperties';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/mtime.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Pure and isomorphic (no DOM, no Node): it reads whichever block projection a
9
9
  * page uses — the CRDT block editor's JSON projection (`blockdoc.blocks`) or the
10
- * legacy EditorJS blocks (`editorjs.blocks`) — so the same logic runs on the
10
+ * legacy stored blocks (`editorjs.blocks`) — so the same logic runs on the
11
11
  * server write path and in unit tests.
12
12
  */
13
13
  import type { PageSnapshot } from './types';
@@ -28,8 +28,8 @@ export interface BlockDigest {
28
28
  export declare function contentHash(input: string): string;
29
29
  /**
30
30
  * The ordered list of a snapshot's top-level blocks, each as a {@link BlockDigest}.
31
- * Reads the block-editor projection for `editor: 'blocks'` pages and the EditorJS
32
- * blocks otherwise. A block with no explicit id falls back to a positional id so
31
+ * Reads the block-editor projection for `editor: 'blocks'` pages and the legacy
32
+ * stored `editorjs` blocks otherwise. A block with no explicit id falls back to a positional id so
33
33
  * an unchanged document still matches itself across versions.
34
34
  */
35
35
  export declare function snapshotBlocks(data: PageSnapshot | null | undefined): BlockDigest[];
package/dist/mtime.js CHANGED
@@ -24,8 +24,8 @@ function stableStringify(value) {
24
24
  }
25
25
  /**
26
26
  * The ordered list of a snapshot's top-level blocks, each as a {@link BlockDigest}.
27
- * Reads the block-editor projection for `editor: 'blocks'` pages and the EditorJS
28
- * blocks otherwise. A block with no explicit id falls back to a positional id so
27
+ * Reads the block-editor projection for `editor: 'blocks'` pages and the legacy
28
+ * stored `editorjs` blocks otherwise. A block with no explicit id falls back to a positional id so
29
29
  * an unchanged document still matches itself across versions.
30
30
  */
31
31
  export function snapshotBlocks(data) {
package/dist/mtime.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mtime.js","sourceRoot":"","sources":["../src/mtime.ts"],"names":[],"mappings":"AAqCA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,2DAA2D;QAC3D,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,+EAA+E;AAC/E,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC7E,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAqC;IAClE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAiD,CAAC;IACxE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAChE,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;YACrD,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACrD,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAC,CAAC,CAAC;SACvG,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAI,IAAI,CAAC,QAAsD,EAAE,MAAM,IAAI,EAAE,CAAC;IAC1F,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACrD,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACrD,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC;KACjE,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAqC,EACrC,IAAkB,EAClB,MAAc;IAEd,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAiB,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IAE9D,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAoB,EAAE;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAqC,EACrC,IAAkB,EAClB,SAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAEzC,OAAO,EAAC,GAAG,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAC,CAAC;AACnE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,IAAqC;IACpE,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,MAAM,KAAK,IAAI,IAAI,GAAG,GAAG,MAAM;YAAE,MAAM,GAAG,GAAG,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"mtime.js","sourceRoot":"","sources":["../src/mtime.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -10,12 +10,17 @@
10
10
  */
11
11
  /**
12
12
  * The serialized form of a reactive document. Three sibling keys:
13
- * - `editorjs` — EditorJS `OutputData` (kept opaque here so the SDK has no
14
- * dependency on the editor; cast at the edit site).
13
+ * - `editorjs` — the block-native export projection (`{blocks}`), and for
14
+ * legacy pages the stored block list. **The JSON key name `editorjs` is a
15
+ * RETAINED storage / back-compat alias** — do not rename it on disk; every
16
+ * persisted snapshot uses it and renaming would strand stored data. In
17
+ * memory this shape is `ExportDoc` (see ui `exportBlocks.ts`). Kept opaque
18
+ * here so the SDK has no dependency on the editor; cast at the edit site.
15
19
  * - `values` — `[cellId, value]` pairs from the reactive store.
16
20
  * - `names` — `[name, cellId]` pairs (the name index).
17
21
  */
18
22
  export interface PageSnapshot {
23
+ /** Retained storage/back-compat alias for the export projection; see doc above. */
19
24
  editorjs: unknown;
20
25
  values: Array<[string, unknown]>;
21
26
  names: Array<[string, string]>;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqCH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAiB,EAAE,CAAC,CAAC;IACpD,QAAQ,EAAE,EAAC,MAAM,EAAE,EAAE,EAAC;IACtB,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;CACV,CAAC,CAAC;AAgGH;4EAC4E;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,SAAS;IACT,QAAQ;IACR,eAAe;IACf,SAAS;IACT,YAAY;CACb,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0CH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAiB,EAAE,CAAC,CAAC;IACpD,QAAQ,EAAE,EAAC,MAAM,EAAE,EAAE,EAAC;IACtB,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;CACV,CAAC,CAAC;AAgGH;4EAC4E;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,SAAS;IACT,QAAQ;IACR,eAAe;IACf,SAAS;IACT,YAAY;CACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@book.dev/sdk",
3
- "version": "1.72.0",
3
+ "version": "1.74.0",
4
4
  "description": "Shared OpenBook types and HTTP client used by the server, desktop, and web.",
5
5
  "repository": {
6
6
  "type": "git",