@graview/primitives 0.1.0 → 0.1.2
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/arrange-bar.d.ts +2 -0
- package/dist/arrange-bar.d.ts.map +1 -1
- package/dist/arrange-bar.js +50 -3
- package/dist/arrange-bar.js.map +1 -1
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +3 -1
- package/dist/chat.js.map +1 -1
- package/dist/companion.d.ts.map +1 -1
- package/dist/companion.js +19 -6
- package/dist/companion.js.map +1 -1
- package/dist/connections.js +2 -2
- package/dist/connections.js.map +1 -1
- package/dist/default-view.d.ts +22 -0
- package/dist/default-view.d.ts.map +1 -0
- package/dist/default-view.js +56 -0
- package/dist/default-view.js.map +1 -0
- package/dist/default-views.d.ts.map +1 -1
- package/dist/default-views.js +31 -10
- package/dist/default-views.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +6 -4
- package/dist/find.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lens/coverage.d.ts.map +1 -1
- package/dist/lens/coverage.js +14 -6
- package/dist/lens/coverage.js.map +1 -1
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +2 -1
- package/dist/places.js.map +1 -1
- package/dist/profile.js +2 -2
- package/dist/profile.js.map +1 -1
- package/dist/seeding.d.ts +13 -0
- package/dist/seeding.d.ts.map +1 -1
- package/dist/seeding.js +23 -6
- package/dist/seeding.js.map +1 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +40 -5
- package/dist/shell.js.map +1 -1
- package/dist/spec-css.d.ts +3 -0
- package/dist/spec-css.d.ts.map +1 -0
- package/dist/spec-css.js +31 -0
- package/dist/spec-css.js.map +1 -0
- package/dist/spec-views.d.ts +84 -0
- package/dist/spec-views.d.ts.map +1 -0
- package/dist/spec-views.js +309 -0
- package/dist/spec-views.js.map +1 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +6 -1
- package/dist/theme.js.map +1 -1
- package/dist/workbench/activity.d.ts +10 -0
- package/dist/workbench/activity.d.ts.map +1 -1
- package/dist/workbench/activity.js +14 -8
- package/dist/workbench/activity.js.map +1 -1
- package/dist/workbench/answer-args.d.ts +2 -1
- package/dist/workbench/answer-args.d.ts.map +1 -1
- package/dist/workbench/answer-args.js +55 -8
- package/dist/workbench/answer-args.js.map +1 -1
- package/dist/workbench/inspector.d.ts.map +1 -1
- package/dist/workbench/inspector.js +10 -3
- package/dist/workbench/inspector.js.map +1 -1
- package/package.json +6 -6
package/dist/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,EAAgC,MAAM,gBAAgB,CAAC;AAExH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAkB,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** The stylesheet the blocks are drawn with: classes over the theme's tokens, and nothing a spec can reach. */
|
|
2
|
+
export declare const SPEC_VIEW_CSS = "\n.graview-spec { display: flex; flex-direction: column; gap: 6px; min-width: 0; color: var(--graview-ink); }\n.graview-spec-row { flex-direction: row; align-items: center; gap: 8px; white-space: nowrap; overflow: hidden; box-sizing: border-box; max-width: 100%; padding: 3px 10px; border: 1px solid var(--graview-edge); border-radius: 999px; background: var(--graview-panel); font-size: 0.875rem; }\n.graview-spec-row[data-selected] { border-color: var(--graview-accent); }\n.graview-spec-row > * { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.graview-spec-page { padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid var(--graview-edge); }\n.graview-spec-title { font-family: var(--graview-font-display, inherit); font-weight: 600; font-size: 1rem; line-height: 1.3; overflow-wrap: anywhere; }\n.graview-spec-text { margin: 0; font-size: 0.875rem; line-height: 1.45; overflow-wrap: anywhere; }\n.graview-spec-text[data-graview-tone] { color: var(--graview-spec-tone); }\n.graview-spec-badge { align-self: flex-start; display: inline-block; max-width: 100%; box-sizing: border-box; padding: 1px 8px; border: 1px solid currentColor; border-radius: 999px; background: var(--graview-panel); color: var(--graview-spec-tone, var(--graview-ink-muted)); font-size: 0.8125rem; font-weight: 600; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.graview-spec-row .graview-spec-badge, .graview-spec-group[data-direction=\"row\"] .graview-spec-badge { align-self: center; }\n.graview-spec [data-graview-tone=\"good\"] { --graview-spec-tone: var(--graview-good); }\n.graview-spec [data-graview-tone=\"bad\"] { --graview-spec-tone: var(--graview-bad); }\n.graview-spec [data-graview-tone=\"warn\"] { --graview-spec-tone: var(--graview-warn); }\n.graview-spec [data-graview-tone=\"accent\"] { --graview-spec-tone: var(--graview-accent); }\n.graview-spec [data-graview-tone=\"neutral\"] { --graview-spec-tone: var(--graview-ink-muted); }\n.graview-spec-field { display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; min-width: 0; font-size: 0.875rem; line-height: 1.4; }\n.graview-spec-label { color: var(--graview-ink-muted); }\n.graview-spec-value { min-width: 0; color: var(--graview-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }\n.graview-spec-link { position: relative; z-index: 1; color: var(--graview-accent); text-decoration: underline; }\n.graview-spec-progress { display: grid; gap: 4px; font-size: 0.8125rem; }\n.graview-spec-track { display: block; height: 6px; border-radius: 999px; background: var(--graview-edge); overflow: hidden; }\n.graview-spec-fill { display: block; height: 100%; background: var(--graview-accent); }\n.graview-spec-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }\n.graview-spec-group[data-direction=\"row\"] { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px 10px; }\n.graview-spec-row .graview-spec-group { flex-wrap: nowrap; }\n.graview-spec-divider { width: 100%; margin: 2px 0; border: 0; border-top: 1px solid var(--graview-edge); }\n.graview-spec-figure { display: inline-flex; width: 22px; height: 22px; }\n";
|
|
3
|
+
//# sourceMappingURL=spec-css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-css.d.ts","sourceRoot":"","sources":["../src/spec-css.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,eAAO,MAAM,aAAa,2pGA4BzB,CAAC"}
|
package/dist/spec-css.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** The stylesheet the blocks are drawn with: classes over the theme's tokens, and nothing a spec can reach. */
|
|
2
|
+
export const SPEC_VIEW_CSS = `
|
|
3
|
+
.graview-spec { display: flex; flex-direction: column; gap: 6px; min-width: 0; color: var(--graview-ink); }
|
|
4
|
+
.graview-spec-row { flex-direction: row; align-items: center; gap: 8px; white-space: nowrap; overflow: hidden; box-sizing: border-box; max-width: 100%; padding: 3px 10px; border: 1px solid var(--graview-edge); border-radius: 999px; background: var(--graview-panel); font-size: 0.875rem; }
|
|
5
|
+
.graview-spec-row[data-selected] { border-color: var(--graview-accent); }
|
|
6
|
+
.graview-spec-row > * { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
7
|
+
.graview-spec-page { padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid var(--graview-edge); }
|
|
8
|
+
.graview-spec-title { font-family: var(--graview-font-display, inherit); font-weight: 600; font-size: 1rem; line-height: 1.3; overflow-wrap: anywhere; }
|
|
9
|
+
.graview-spec-text { margin: 0; font-size: 0.875rem; line-height: 1.45; overflow-wrap: anywhere; }
|
|
10
|
+
.graview-spec-text[data-graview-tone] { color: var(--graview-spec-tone); }
|
|
11
|
+
.graview-spec-badge { align-self: flex-start; display: inline-block; max-width: 100%; box-sizing: border-box; padding: 1px 8px; border: 1px solid currentColor; border-radius: 999px; background: var(--graview-panel); color: var(--graview-spec-tone, var(--graview-ink-muted)); font-size: 0.8125rem; font-weight: 600; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
12
|
+
.graview-spec-row .graview-spec-badge, .graview-spec-group[data-direction="row"] .graview-spec-badge { align-self: center; }
|
|
13
|
+
.graview-spec [data-graview-tone="good"] { --graview-spec-tone: var(--graview-good); }
|
|
14
|
+
.graview-spec [data-graview-tone="bad"] { --graview-spec-tone: var(--graview-bad); }
|
|
15
|
+
.graview-spec [data-graview-tone="warn"] { --graview-spec-tone: var(--graview-warn); }
|
|
16
|
+
.graview-spec [data-graview-tone="accent"] { --graview-spec-tone: var(--graview-accent); }
|
|
17
|
+
.graview-spec [data-graview-tone="neutral"] { --graview-spec-tone: var(--graview-ink-muted); }
|
|
18
|
+
.graview-spec-field { display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; min-width: 0; font-size: 0.875rem; line-height: 1.4; }
|
|
19
|
+
.graview-spec-label { color: var(--graview-ink-muted); }
|
|
20
|
+
.graview-spec-value { min-width: 0; color: var(--graview-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
|
|
21
|
+
.graview-spec-link { position: relative; z-index: 1; color: var(--graview-accent); text-decoration: underline; }
|
|
22
|
+
.graview-spec-progress { display: grid; gap: 4px; font-size: 0.8125rem; }
|
|
23
|
+
.graview-spec-track { display: block; height: 6px; border-radius: 999px; background: var(--graview-edge); overflow: hidden; }
|
|
24
|
+
.graview-spec-fill { display: block; height: 100%; background: var(--graview-accent); }
|
|
25
|
+
.graview-spec-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
|
|
26
|
+
.graview-spec-group[data-direction="row"] { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
|
|
27
|
+
.graview-spec-row .graview-spec-group { flex-wrap: nowrap; }
|
|
28
|
+
.graview-spec-divider { width: 100%; margin: 2px 0; border: 0; border-top: 1px solid var(--graview-edge); }
|
|
29
|
+
.graview-spec-figure { display: inline-flex; width: 22px; height: 22px; }
|
|
30
|
+
`;
|
|
31
|
+
//# sourceMappingURL=spec-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-css.js","sourceRoot":"","sources":["../src/spec-css.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B5B,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { valueWords, type AnyGraphNode, type AnySchema, type GraphReader } from "@graview/core";
|
|
2
|
+
import { VIEW_FIELD_FORMATS, type Expr, type FieldSpec, type KindShape, type TemplatePart, type ViewBlock, type ViewSlot, type ViewSpecsByKind, type ViewTone } from "@graview/core/document";
|
|
3
|
+
import { type ReactViewRegistry } from "@graview/react";
|
|
4
|
+
import type { ReactNode } from "react";
|
|
5
|
+
export { SPEC_VIEW_CSS } from "./spec-css.js";
|
|
6
|
+
type Parsed<T> = T | null;
|
|
7
|
+
type Tone = ViewTone | {
|
|
8
|
+
readonly expr: Parsed<Expr>;
|
|
9
|
+
};
|
|
10
|
+
/** A block, parsed: templates and expressions are read once, when the spec is registered. */
|
|
11
|
+
export type SpecBlock = {
|
|
12
|
+
readonly t: "title";
|
|
13
|
+
readonly parts: Parsed<readonly TemplatePart[]>;
|
|
14
|
+
} | {
|
|
15
|
+
readonly t: "text" | "badge";
|
|
16
|
+
readonly parts: Parsed<readonly TemplatePart[]>;
|
|
17
|
+
readonly tone?: Tone;
|
|
18
|
+
} | {
|
|
19
|
+
readonly t: "field";
|
|
20
|
+
readonly field: string;
|
|
21
|
+
readonly as?: (typeof VIEW_FIELD_FORMATS)[number];
|
|
22
|
+
readonly label?: string;
|
|
23
|
+
} | {
|
|
24
|
+
readonly t: "progress";
|
|
25
|
+
readonly value: Parsed<Expr>;
|
|
26
|
+
readonly max: Parsed<Expr>;
|
|
27
|
+
readonly label?: string;
|
|
28
|
+
} | {
|
|
29
|
+
readonly t: "group";
|
|
30
|
+
readonly blocks: readonly SpecBlock[];
|
|
31
|
+
readonly direction: "row" | "column";
|
|
32
|
+
} | {
|
|
33
|
+
readonly t: "when";
|
|
34
|
+
readonly when: Parsed<Expr>;
|
|
35
|
+
readonly show: readonly SpecBlock[];
|
|
36
|
+
} | {
|
|
37
|
+
readonly t: "divider";
|
|
38
|
+
} | {
|
|
39
|
+
readonly t: "figure";
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Parse a spec's blocks. A spec `graview check` passed parses cleanly; a
|
|
43
|
+
* part that does not is drawn as "—", and a block outside the vocabulary is
|
|
44
|
+
* not drawn at all.
|
|
45
|
+
*/
|
|
46
|
+
export declare function compileBlocks(blocks: readonly ViewBlock[] | readonly unknown[], depth?: number): readonly SpecBlock[];
|
|
47
|
+
/** Everything a spec reads to draw one record: nothing else reaches it. */
|
|
48
|
+
export interface SpecContext {
|
|
49
|
+
readonly node: AnyGraphNode;
|
|
50
|
+
/** For one-edge hops (`{fills.name}`); without it, a hop draws "—". */
|
|
51
|
+
readonly graph?: GraphReader;
|
|
52
|
+
readonly kinds: ReadonlyMap<string, KindShape>;
|
|
53
|
+
/** The kind's declared fields, in the document's words: which may be a link, which is a date. */
|
|
54
|
+
readonly fields: Readonly<Record<string, FieldSpec>>;
|
|
55
|
+
/** How the declaration says a field and its values (`display.labels`, `display.format`). */
|
|
56
|
+
readonly definition?: Parameters<typeof valueWords>[0];
|
|
57
|
+
readonly today: string;
|
|
58
|
+
readonly figure?: () => ReactNode;
|
|
59
|
+
}
|
|
60
|
+
/** Only http(s) is ever a link; anything else — `javascript:`, `data:`, a typo — is shown as words. */
|
|
61
|
+
export declare function safeHref(value: unknown): string | undefined;
|
|
62
|
+
/** Blocks, drawn for one record. Pure: everything they read is in `ctx`. */
|
|
63
|
+
export declare function SpecBlocks({ blocks, ctx }: {
|
|
64
|
+
readonly blocks: readonly SpecBlock[];
|
|
65
|
+
readonly ctx: SpecContext;
|
|
66
|
+
}): ReactNode;
|
|
67
|
+
/** The drawing context for a record, from the provider every view is drawn under. */
|
|
68
|
+
export declare function useSpecContext(node: AnyGraphNode): SpecContext;
|
|
69
|
+
/** One slot of a spec, drawn for one record. */
|
|
70
|
+
export declare function SpecView({ slot, blocks, node, selected }: {
|
|
71
|
+
readonly slot: ViewSlot;
|
|
72
|
+
readonly blocks: readonly SpecBlock[];
|
|
73
|
+
readonly node: AnyGraphNode;
|
|
74
|
+
readonly selected?: boolean;
|
|
75
|
+
}): import("react").JSX.Element;
|
|
76
|
+
/**
|
|
77
|
+
* A kind's specs, registered into the view matrix over whatever is there:
|
|
78
|
+
* `card` at one × summary, `row` at one × glyph, and `page` at one × full,
|
|
79
|
+
* drawn above the framework's own view for that cell. A kind the schema
|
|
80
|
+
* does not declare is skipped — `graview check` says so. Returns the
|
|
81
|
+
* registry, as `register` does.
|
|
82
|
+
*/
|
|
83
|
+
export declare function registerViewSpecs<S extends AnySchema>(registry: ReactViewRegistry<S>, schema: S, specs: ViewSpecsByKind | undefined): ReactViewRegistry<S>;
|
|
84
|
+
//# sourceMappingURL=spec-views.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-views.d.ts","sourceRoot":"","sources":["../src/spec-views.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { fieldWords, labelOf, valueWords } from "@graview/core";
|
|
3
|
+
import { evaluateExpr, fieldSpecOf, formatValue, parseExpr, parseTemplate, renderTemplate, shapesOfSchema, VIEW_FIELD_FORMATS, VIEW_TONES, } from "@graview/core/document";
|
|
4
|
+
import { useGraview } from "@graview/react";
|
|
5
|
+
import { DefaultView } from "./default-view.js";
|
|
6
|
+
import { KindFigure } from "./figure.js";
|
|
7
|
+
import { Panel } from "./primitives/index.js";
|
|
8
|
+
/*
|
|
9
|
+
* VIEWS AS DATA, DRAWN (FR-03).
|
|
10
|
+
*
|
|
11
|
+
* A view spec is a short list of blocks from a closed set — title, text,
|
|
12
|
+
* badge, field, progress, group, when, divider, figure — bound to the
|
|
13
|
+
* record by templates and conditions in the rule language. This draws them
|
|
14
|
+
* into the framework's own view matrix, so the workbench and the pages face
|
|
15
|
+
* resolve a spec exactly as they resolve a component:
|
|
16
|
+
*
|
|
17
|
+
* card → one × summary the card a record stands as beside the focus, and
|
|
18
|
+
* a card of the pages face's gallery
|
|
19
|
+
* row → one × glyph the one line a record is drawn as among many: a
|
|
20
|
+
* focused group's members, a list page's rows (FR-37)
|
|
21
|
+
* page → one × full ABOVE the default record view, which keeps its
|
|
22
|
+
* rename, fields and connections; on the pages
|
|
23
|
+
* face, above the derived record page
|
|
24
|
+
*
|
|
25
|
+
* NOTHING HERE IS CODE. A block's words come from templates and the rule
|
|
26
|
+
* language, evaluated under a step budget; nothing is parsed as markup,
|
|
27
|
+
* nothing is evaluated as script, and the only styling is a fixed set of
|
|
28
|
+
* classes over the theme's own tokens. The one link a view draws is a `url`
|
|
29
|
+
* field's own value, and only when it is http(s). An expression that cannot
|
|
30
|
+
* be judged draws "—"; a `when` that cannot be judged hides what it guards.
|
|
31
|
+
*/
|
|
32
|
+
export { SPEC_VIEW_CSS } from "./spec-css.js";
|
|
33
|
+
const safely = (f) => {
|
|
34
|
+
try {
|
|
35
|
+
return f();
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const isTone = (value) => typeof value === "string" && VIEW_TONES.includes(value);
|
|
42
|
+
function toneOf(tone) {
|
|
43
|
+
if (tone === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
if (isTone(tone))
|
|
46
|
+
return tone;
|
|
47
|
+
if (tone && typeof tone === "object" && typeof tone.expr === "string")
|
|
48
|
+
return { expr: safely(() => parseExpr(tone.expr)) };
|
|
49
|
+
// A tone outside the kit is the check's to refuse; drawn, it is quiet.
|
|
50
|
+
return "neutral";
|
|
51
|
+
}
|
|
52
|
+
const MAX_DEPTH = 4;
|
|
53
|
+
/**
|
|
54
|
+
* Parse a spec's blocks. A spec `graview check` passed parses cleanly; a
|
|
55
|
+
* part that does not is drawn as "—", and a block outside the vocabulary is
|
|
56
|
+
* not drawn at all.
|
|
57
|
+
*/
|
|
58
|
+
export function compileBlocks(blocks, depth = 1) {
|
|
59
|
+
if (!Array.isArray(blocks) || depth > MAX_DEPTH)
|
|
60
|
+
return [];
|
|
61
|
+
return blocks.flatMap((raw) => {
|
|
62
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
63
|
+
return [];
|
|
64
|
+
const block = raw;
|
|
65
|
+
const template = (source) => (typeof source === "string" ? safely(() => parseTemplate(source)) : null);
|
|
66
|
+
const expr = (source) => (typeof source === "string" ? safely(() => parseExpr(source)) : null);
|
|
67
|
+
const tone = toneOf(block["tone"]);
|
|
68
|
+
const label = typeof block["label"] === "string" ? block["label"] : undefined;
|
|
69
|
+
const has = (key) => Object.prototype.hasOwnProperty.call(block, key);
|
|
70
|
+
if (has("title"))
|
|
71
|
+
return [{ t: "title", parts: template(block["title"]) }];
|
|
72
|
+
if (has("text"))
|
|
73
|
+
return [{ t: "text", parts: template(block["text"]), ...(tone ? { tone } : {}) }];
|
|
74
|
+
if (has("badge"))
|
|
75
|
+
return [{ t: "badge", parts: template(block["badge"]), ...(tone ? { tone } : {}) }];
|
|
76
|
+
if (has("field")) {
|
|
77
|
+
const as = VIEW_FIELD_FORMATS.includes(block["as"]) ? block["as"] : undefined;
|
|
78
|
+
return [{ t: "field", field: String(block["field"]), ...(as ? { as } : {}), ...(label ? { label } : {}) }];
|
|
79
|
+
}
|
|
80
|
+
if (has("progress")) {
|
|
81
|
+
const p = (block["progress"] ?? {});
|
|
82
|
+
return [{ t: "progress", value: expr(p.value), max: expr(p.max), ...(label ? { label } : {}) }];
|
|
83
|
+
}
|
|
84
|
+
if (has("group"))
|
|
85
|
+
return [{ t: "group", blocks: compileBlocks(block["group"], depth + 1), direction: block["direction"] === "row" ? "row" : "column" }];
|
|
86
|
+
if (has("when"))
|
|
87
|
+
return [{ t: "when", when: expr(block["when"]), show: compileBlocks(block["show"], depth + 1) }];
|
|
88
|
+
if (has("divider"))
|
|
89
|
+
return [{ t: "divider" }];
|
|
90
|
+
if (has("figure"))
|
|
91
|
+
return [{ t: "figure" }];
|
|
92
|
+
return [];
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const NOTHING = "—";
|
|
96
|
+
const FAILED = Symbol("failed");
|
|
97
|
+
/** The allowance a label's template gets: a card is drawn many times a frame. */
|
|
98
|
+
const BUDGET = 500;
|
|
99
|
+
const EMPTY_GRAPH = {
|
|
100
|
+
getNode: () => undefined,
|
|
101
|
+
allNodes: () => [],
|
|
102
|
+
allEdges: () => [],
|
|
103
|
+
nodesOfKind: () => [],
|
|
104
|
+
edgesOfKind: () => [],
|
|
105
|
+
out: () => [],
|
|
106
|
+
in: () => [],
|
|
107
|
+
neighbors: () => [],
|
|
108
|
+
has: () => false,
|
|
109
|
+
};
|
|
110
|
+
function judge(expr, ctx) {
|
|
111
|
+
if (!expr)
|
|
112
|
+
return FAILED;
|
|
113
|
+
try {
|
|
114
|
+
return evaluateExpr(expr, { graph: ctx.graph ?? EMPTY_GRAPH, subject: ctx.node, kinds: ctx.kinds, today: ctx.today, budget: BUDGET });
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return FAILED;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function words(parts, ctx) {
|
|
121
|
+
if (!parts)
|
|
122
|
+
return NOTHING;
|
|
123
|
+
try {
|
|
124
|
+
return renderTemplate(parts, { node: ctx.node, kinds: ctx.kinds, today: ctx.today, ...(ctx.graph ? { graph: ctx.graph } : {}) });
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return NOTHING;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function toneWord(tone, ctx) {
|
|
131
|
+
if (tone === undefined)
|
|
132
|
+
return undefined;
|
|
133
|
+
if (typeof tone === "string")
|
|
134
|
+
return tone;
|
|
135
|
+
const value = judge(tone.expr, ctx);
|
|
136
|
+
return isTone(value) ? value : "neutral";
|
|
137
|
+
}
|
|
138
|
+
/** Only http(s) is ever a link; anything else — `javascript:`, `data:`, a typo — is shown as words. */
|
|
139
|
+
export function safeHref(value) {
|
|
140
|
+
if (typeof value !== "string")
|
|
141
|
+
return undefined;
|
|
142
|
+
try {
|
|
143
|
+
const url = new URL(value);
|
|
144
|
+
return url.protocol === "http:" || url.protocol === "https:" ? url.href : undefined;
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function fieldText(key, value, ctx, as) {
|
|
151
|
+
if (value === null || value === undefined || value === "")
|
|
152
|
+
return NOTHING;
|
|
153
|
+
if (typeof value === "boolean")
|
|
154
|
+
return value ? "yes" : "no";
|
|
155
|
+
if (as)
|
|
156
|
+
return formatValue(value, as, ctx.today);
|
|
157
|
+
const spec = ctx.fields[key];
|
|
158
|
+
if (ctx.definition?.display?.format?.[key])
|
|
159
|
+
return valueWords(ctx.definition, key, value);
|
|
160
|
+
if (spec?.type === "date")
|
|
161
|
+
return formatValue(value, "date", ctx.today);
|
|
162
|
+
if (spec?.type === "enum" && typeof value === "string")
|
|
163
|
+
return valueWords(ctx.definition, key, value);
|
|
164
|
+
if (typeof value === "number")
|
|
165
|
+
return value.toLocaleString("en-US");
|
|
166
|
+
if (Array.isArray(value))
|
|
167
|
+
return value.map((one) => String(one)).join(", ");
|
|
168
|
+
if (typeof value === "object")
|
|
169
|
+
return NOTHING;
|
|
170
|
+
return String(value);
|
|
171
|
+
}
|
|
172
|
+
function Block({ block, ctx }) {
|
|
173
|
+
switch (block.t) {
|
|
174
|
+
case "title":
|
|
175
|
+
return _jsx("strong", { className: "graview-spec-title", children: words(block.parts, ctx) });
|
|
176
|
+
case "text": {
|
|
177
|
+
const tone = toneWord(block.tone, ctx);
|
|
178
|
+
return (_jsx("p", { className: "graview-spec-text", ...(tone ? { "data-graview-tone": tone } : {}), children: words(block.parts, ctx) }));
|
|
179
|
+
}
|
|
180
|
+
case "badge":
|
|
181
|
+
return (_jsx("span", { className: "graview-spec-badge", "data-graview-tone": toneWord(block.tone, ctx) ?? "neutral", children: words(block.parts, ctx) }));
|
|
182
|
+
case "field": {
|
|
183
|
+
// An OWN field only: a name on the prototype is not a field of the record.
|
|
184
|
+
const raw = Object.prototype.hasOwnProperty.call(ctx.node, block.field) ? ctx.node[block.field] : undefined;
|
|
185
|
+
const label = block.label ?? fieldWords(ctx.definition, block.field);
|
|
186
|
+
const href = ctx.fields[block.field]?.type === "url" && block.as === undefined ? safeHref(raw) : undefined;
|
|
187
|
+
const shown = safely(() => fieldText(block.field, raw, ctx, block.as)) ?? NOTHING;
|
|
188
|
+
return (_jsxs("span", { className: "graview-spec-field", "data-graview-field": block.field, children: [_jsx("span", { className: "graview-spec-label", children: label }), _jsx("span", { className: "graview-spec-value", children: href ? (_jsx("a", { className: "graview-spec-link", href: href, rel: "noopener noreferrer", target: "_blank", children: shown })) : (shown) })] }));
|
|
189
|
+
}
|
|
190
|
+
case "progress": {
|
|
191
|
+
const value = judge(block.value, ctx);
|
|
192
|
+
const max = judge(block.max, ctx);
|
|
193
|
+
const label = block.label ?? "Progress";
|
|
194
|
+
if (!(typeof value === "number" && typeof max === "number" && Number.isFinite(value) && Number.isFinite(max) && max > 0)) {
|
|
195
|
+
return (_jsxs("span", { className: "graview-spec-progress", children: [_jsx("span", { className: "graview-spec-label", children: label }), _jsx("span", { className: "graview-spec-value", children: NOTHING })] }));
|
|
196
|
+
}
|
|
197
|
+
const now = Math.max(0, Math.min(value, max));
|
|
198
|
+
const said = `${formatValue(value, undefined, ctx.today)} of ${formatValue(max, undefined, ctx.today)}`;
|
|
199
|
+
return (_jsxs("span", { className: "graview-spec-progress", children: [_jsx("span", { className: "graview-spec-label", children: label }), _jsx("span", { className: "graview-spec-track", role: "progressbar", "aria-label": label, "aria-valuemin": 0, "aria-valuemax": max, "aria-valuenow": now, "aria-valuetext": said, children: _jsx("span", { className: "graview-spec-fill", style: { width: `${Math.round((now / max) * 100)}%` } }) }), _jsx("span", { className: "graview-spec-value", children: said })] }));
|
|
200
|
+
}
|
|
201
|
+
case "group":
|
|
202
|
+
return (_jsx("span", { className: "graview-spec-group", "data-direction": block.direction, children: _jsx(SpecBlocks, { blocks: block.blocks, ctx: ctx }) }));
|
|
203
|
+
case "when":
|
|
204
|
+
// A condition that cannot be judged hides what it guards, like a rule's `when`.
|
|
205
|
+
return judge(block.when, ctx) === true ? _jsx(SpecBlocks, { blocks: block.show, ctx: ctx }) : null;
|
|
206
|
+
case "divider":
|
|
207
|
+
return _jsx("hr", { className: "graview-spec-divider" });
|
|
208
|
+
case "figure":
|
|
209
|
+
return ctx.figure ? (_jsx("span", { className: "graview-spec-figure", "aria-hidden": "true", children: ctx.figure() })) : null;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/** Blocks, drawn for one record. Pure: everything they read is in `ctx`. */
|
|
213
|
+
export function SpecBlocks({ blocks, ctx }) {
|
|
214
|
+
return blocks.map((block, i) => _jsx(Block, { block: block, ctx: ctx }, i));
|
|
215
|
+
}
|
|
216
|
+
const today = () => new Date().toISOString().slice(0, 10);
|
|
217
|
+
const SHAPES = new WeakMap();
|
|
218
|
+
const FIELDS = new WeakMap();
|
|
219
|
+
/** What each kind holds, for names and hops: read once per schema. */
|
|
220
|
+
function shapesFor(schema) {
|
|
221
|
+
let shapes = SHAPES.get(schema);
|
|
222
|
+
if (!shapes)
|
|
223
|
+
SHAPES.set(schema, (shapes = shapesOfSchema(schema)));
|
|
224
|
+
return shapes;
|
|
225
|
+
}
|
|
226
|
+
/** A kind's fields in the document's words, read once per schema. */
|
|
227
|
+
function fieldsFor(schema, kind) {
|
|
228
|
+
let byKind = FIELDS.get(schema);
|
|
229
|
+
if (!byKind)
|
|
230
|
+
FIELDS.set(schema, (byKind = new Map()));
|
|
231
|
+
let fields = byKind.get(kind);
|
|
232
|
+
if (!fields) {
|
|
233
|
+
const shape = schema.tryDefinition(kind)?.fields?.shape ?? {};
|
|
234
|
+
const read = {};
|
|
235
|
+
for (const [key, field] of Object.entries(shape)) {
|
|
236
|
+
const spec = fieldSpecOf(field);
|
|
237
|
+
if (spec)
|
|
238
|
+
read[key] = spec;
|
|
239
|
+
}
|
|
240
|
+
byKind.set(kind, (fields = read));
|
|
241
|
+
}
|
|
242
|
+
return fields;
|
|
243
|
+
}
|
|
244
|
+
/** The drawing context for a record, from the provider every view is drawn under. */
|
|
245
|
+
export function useSpecContext(node) {
|
|
246
|
+
const { store, brand } = useGraview();
|
|
247
|
+
const schema = store.schema;
|
|
248
|
+
const definition = schema.tryDefinition(node.kind);
|
|
249
|
+
return {
|
|
250
|
+
node,
|
|
251
|
+
graph: store.graph,
|
|
252
|
+
kinds: shapesFor(schema),
|
|
253
|
+
fields: fieldsFor(schema, node.kind),
|
|
254
|
+
...(definition ? { definition } : {}),
|
|
255
|
+
today: today(),
|
|
256
|
+
figure: () => _jsx(KindFigure, { kind: node.kind, schema: schema, ...(brand ? { brand } : {}), size: 22 }),
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
/** One slot of a spec, drawn for one record. */
|
|
260
|
+
export function SpecView({ slot, blocks, node, selected }) {
|
|
261
|
+
const ctx = useSpecContext(node);
|
|
262
|
+
return (_jsx("div", { className: `graview-spec graview-spec-${slot}`, "data-graview-spec": slot, "data-graview-kind": node.kind, ...(selected ? { "data-selected": "" } : {}), children: _jsx(SpecBlocks, { blocks: blocks, ctx: ctx }) }));
|
|
263
|
+
}
|
|
264
|
+
/** A card: the framework's own Panel, so selection, a broken rule and the theme read as they do on a default card. */
|
|
265
|
+
function SpecCard({ blocks, node, selected, flagged }) {
|
|
266
|
+
const ctx = useSpecContext(node);
|
|
267
|
+
const [first, ...rest] = blocks;
|
|
268
|
+
const titled = first?.t === "title";
|
|
269
|
+
return (_jsx(Panel, { ...(titled ? { title: words(first.parts, ctx) } : {}), selected: selected, tone: flagged ? "warning" : "muted", fit: true, children: _jsx("div", { className: "graview-spec graview-spec-card", "data-graview-spec": "card", "data-graview-kind": node.kind, children: _jsx(SpecBlocks, { blocks: titled ? rest : blocks, ctx: ctx }) }) }));
|
|
270
|
+
}
|
|
271
|
+
/** A row: one line, named for assistive technology by the record's own label. */
|
|
272
|
+
function SpecRow({ blocks, node, selected }) {
|
|
273
|
+
const { store } = useGraview();
|
|
274
|
+
return (_jsx("div", { title: labelOf(store.schema.tryDefinition(node.kind), node), style: { minWidth: 0, maxWidth: "100%" }, children: _jsx(SpecView, { slot: "row", blocks: blocks, node: node, selected: selected }) }));
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* A kind's specs, registered into the view matrix over whatever is there:
|
|
278
|
+
* `card` at one × summary, `row` at one × glyph, and `page` at one × full,
|
|
279
|
+
* drawn above the framework's own view for that cell. A kind the schema
|
|
280
|
+
* does not declare is skipped — `graview check` says so. Returns the
|
|
281
|
+
* registry, as `register` does.
|
|
282
|
+
*/
|
|
283
|
+
export function registerViewSpecs(registry, schema, specs) {
|
|
284
|
+
if (!specs)
|
|
285
|
+
return registry;
|
|
286
|
+
const declared = new Set(schema.kinds);
|
|
287
|
+
for (const [kind, slots] of Object.entries(specs)) {
|
|
288
|
+
if (!declared.has(kind) || !slots)
|
|
289
|
+
continue;
|
|
290
|
+
const at = kind;
|
|
291
|
+
if (slots.card) {
|
|
292
|
+
const blocks = compileBlocks(slots.card);
|
|
293
|
+
const Card = (props) => props.node ? _jsx(SpecCard, { blocks: blocks, node: props.node, selected: props.selected, flagged: props.flagged?.includes(props.node.id) ?? false }) : null;
|
|
294
|
+
registry.register(at, { cardinality: "one", fidelity: "summary" }, Card);
|
|
295
|
+
}
|
|
296
|
+
if (slots.row) {
|
|
297
|
+
const blocks = compileBlocks(slots.row);
|
|
298
|
+
const Row = (props) => (props.node ? _jsx(SpecRow, { blocks: blocks, node: props.node, selected: props.selected }) : null);
|
|
299
|
+
registry.register(at, { cardinality: "one", fidelity: "glyph" }, Row);
|
|
300
|
+
}
|
|
301
|
+
if (slots.page) {
|
|
302
|
+
const blocks = compileBlocks(slots.page);
|
|
303
|
+
const Page = (props) => props.node ? (_jsxs("div", { className: "graview-spec-host", children: [_jsx(SpecView, { slot: "page", blocks: blocks, node: props.node }), _jsx(DefaultView, { ...props })] })) : null;
|
|
304
|
+
registry.register(at, { cardinality: "one", fidelity: "full" }, Page);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return registry;
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=spec-views.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-views.js","sourceRoot":"","sources":["../src/spec-views.tsx"],"names":[],"mappings":"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"}
|
package/dist/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUhE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUhE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKrD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AA8BF,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAI1D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA0BD,wBAAgB,QAAQ,CACtB,MAAM,GAAE,MAAe,EACvB,KAAK,GAAE,KAAqB,EAC5B,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAikDR"}
|
package/dist/theme.js
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
export { DARK, LIGHT, SCHEMES } from "@graview/core";
|
|
29
29
|
import { SCHEMES, kitVariables, resolveKit } from "@graview/core";
|
|
30
|
+
import { SPEC_VIEW_CSS } from "./spec-css.js";
|
|
30
31
|
/**
|
|
31
32
|
* The framework's own brand, expressed as an ordinary declared one.
|
|
32
33
|
*
|
|
@@ -59,6 +60,8 @@ const VARIABLE = {
|
|
|
59
60
|
accentDim: "--graview-accent-dim",
|
|
60
61
|
accentInk: "--graview-accent-ink",
|
|
61
62
|
warn: "--graview-warn",
|
|
63
|
+
good: "--graview-good",
|
|
64
|
+
bad: "--graview-bad",
|
|
62
65
|
glow: "--graview-glow",
|
|
63
66
|
bar: "--graview-bar",
|
|
64
67
|
float: "--graview-float",
|
|
@@ -1687,6 +1690,8 @@ code { color: var(--graview-ink-muted); font-size: 0.8125rem; letter-spacing: 0.
|
|
|
1687
1690
|
${stillness(`${motionRoot}:not([data-graview-motion='full'])`, text)}
|
|
1688
1691
|
}
|
|
1689
1692
|
${stillness(`${motionRoot}[data-graview-motion='reduce']`, text)}
|
|
1690
|
-
|
|
1693
|
+
|
|
1694
|
+
/* VIEWS AS DATA (FR-03): the blocks a view spec is drawn with, over the tokens above. */
|
|
1695
|
+
${SPEC_VIEW_CSS}`;
|
|
1691
1696
|
}
|
|
1692
1697
|
//# sourceMappingURL=theme.js.map
|
package/dist/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAeH;;;;;;;GAOG;AACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Author } from "@graview/core";
|
|
1
2
|
import type { ToolCall } from "@graview/tools";
|
|
2
3
|
import { type ReactNode } from "react";
|
|
3
4
|
export interface Change {
|
|
@@ -5,8 +6,17 @@ export interface Change {
|
|
|
5
6
|
readonly author: string;
|
|
6
7
|
/** The author's own id, for seats that are not the person at the keyboard. */
|
|
7
8
|
readonly authorId?: string;
|
|
9
|
+
/** The whole author — their own name, and who they acted for (FR-06, FR-17). */
|
|
10
|
+
readonly by?: Author;
|
|
11
|
+
/** What the change came through, when it said ("via Claude"). */
|
|
12
|
+
readonly via?: string;
|
|
8
13
|
readonly touched: readonly string[];
|
|
9
14
|
readonly batch: string;
|
|
15
|
+
/**
|
|
16
|
+
* A CHANGE YOU CANNOT SEE (FR-16): every op of it was withheld from this
|
|
17
|
+
* seat. Shown as having happened, with nothing it touched and no undo.
|
|
18
|
+
*/
|
|
19
|
+
readonly withheld?: true;
|
|
10
20
|
}
|
|
11
21
|
/**
|
|
12
22
|
* The last few changes, with who made them — READ FROM THE LOG, not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/workbench/activity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAM7E,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,SAAI,GAAG,SAAS,MAAM,EAAE,CAqB7D;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,sCAgF7D;AAED;;;;;;;GAOG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,gCAmCzB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,IAAI,EACJ,SAAiB,GAClB,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC3B,sCAkRA"}
|