@graview/primitives 0.1.16 → 0.1.18
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/README.md +47 -2
- package/dist/app-bar.d.ts +87 -19
- package/dist/app-bar.d.ts.map +1 -1
- package/dist/app-bar.js +379 -141
- package/dist/app-bar.js.map +1 -1
- package/dist/bar-panes-door.d.ts +8 -0
- package/dist/bar-panes-door.d.ts.map +1 -0
- package/dist/bar-panes-door.js +10 -0
- package/dist/bar-panes-door.js.map +1 -0
- package/dist/bar-panes.d.ts.map +1 -1
- package/dist/bar-panes.js +3 -27
- package/dist/bar-panes.js.map +1 -1
- package/dist/chat.js +1 -1
- package/dist/chat.js.map +1 -1
- package/dist/choice.d.ts +9 -0
- package/dist/choice.d.ts.map +1 -0
- package/dist/choice.js +21 -0
- package/dist/choice.js.map +1 -0
- package/dist/companion.d.ts +0 -15
- package/dist/companion.d.ts.map +1 -1
- package/dist/companion.js +19 -150
- package/dist/companion.js.map +1 -1
- package/dist/connections.d.ts +7 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +13 -13
- package/dist/connections.js.map +1 -1
- package/dist/declared-lens-doors.d.ts +3 -3
- package/dist/declared-lens-doors.d.ts.map +1 -1
- package/dist/declared-lens-doors.js +45 -25
- package/dist/declared-lens-doors.js.map +1 -1
- package/dist/default-view.d.ts +2 -0
- package/dist/default-view.d.ts.map +1 -1
- package/dist/default-view.js +10 -4
- package/dist/default-view.js.map +1 -1
- package/dist/default-views.d.ts.map +1 -1
- package/dist/default-views.js +195 -42
- package/dist/default-views.js.map +1 -1
- package/dist/editable.d.ts +31 -0
- package/dist/editable.d.ts.map +1 -1
- package/dist/editable.js +86 -17
- package/dist/editable.js.map +1 -1
- package/dist/figure.js +1 -1
- package/dist/figure.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +23 -6
- package/dist/find.js.map +1 -1
- package/dist/frame.d.ts +3 -2
- package/dist/frame.d.ts.map +1 -1
- package/dist/frame.js +2 -1
- package/dist/frame.js.map +1 -1
- package/dist/graview-mark.d.ts +21 -0
- package/dist/graview-mark.d.ts.map +1 -0
- package/dist/graview-mark.js +24 -0
- package/dist/graview-mark.js.map +1 -0
- package/dist/index.d.ts +14 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/ladder.d.ts.map +1 -1
- package/dist/ladder.js +4 -10
- package/dist/ladder.js.map +1 -1
- package/dist/lens/calendar-dates.d.ts +2 -0
- package/dist/lens/calendar-dates.d.ts.map +1 -1
- package/dist/lens/calendar-dates.js +2 -0
- package/dist/lens/calendar-dates.js.map +1 -1
- package/dist/lens/calendar-drawing.d.ts +2 -2
- package/dist/lens/calendar-drawing.d.ts.map +1 -1
- package/dist/lens/calendar-drawing.js +1 -2
- package/dist/lens/calendar-drawing.js.map +1 -1
- package/dist/lens/calendar-spans.d.ts.map +1 -1
- package/dist/lens/calendar-spans.js +1 -2
- package/dist/lens/calendar-spans.js.map +1 -1
- package/dist/lens/calendar-view.d.ts +2 -1
- package/dist/lens/calendar-view.d.ts.map +1 -1
- package/dist/lens/calendar-view.js +2 -1
- package/dist/lens/calendar-view.js.map +1 -1
- package/dist/notice-place.d.ts.map +1 -1
- package/dist/notice-place.js +2 -0
- package/dist/notice-place.js.map +1 -1
- package/dist/pages.d.ts +5 -3
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +5 -2
- package/dist/pages.js.map +1 -1
- package/dist/places.js +2 -2
- package/dist/places.js.map +1 -1
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +34 -9
- package/dist/profile.js.map +1 -1
- package/dist/prose-editor.d.ts +9 -0
- package/dist/prose-editor.d.ts.map +1 -0
- package/dist/prose-editor.js +64 -0
- package/dist/prose-editor.js.map +1 -0
- package/dist/record-head.d.ts +28 -0
- package/dist/record-head.d.ts.map +1 -0
- package/dist/record-head.js +3 -0
- package/dist/record-head.js.map +1 -0
- package/dist/relation-key.d.ts.map +1 -1
- package/dist/relation-key.js +2 -2
- package/dist/relation-key.js.map +1 -1
- package/dist/scene-css.d.ts.map +1 -1
- package/dist/scene-css.js +15 -2
- package/dist/scene-css.js.map +1 -1
- package/dist/scene-places.d.ts +37 -0
- package/dist/scene-places.d.ts.map +1 -0
- package/dist/scene-places.js +77 -0
- package/dist/scene-places.js.map +1 -0
- package/dist/scene.d.ts +0 -1
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +0 -1
- package/dist/scene.js.map +1 -1
- package/dist/seats.d.ts.map +1 -1
- package/dist/seats.js +2 -11
- package/dist/seats.js.map +1 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +1 -2
- package/dist/shell.js.map +1 -1
- package/dist/spec-views.d.ts +17 -2
- package/dist/spec-views.d.ts.map +1 -1
- package/dist/spec-views.js +69 -7
- package/dist/spec-views.js.map +1 -1
- package/dist/subject.d.ts +17 -0
- package/dist/subject.d.ts.map +1 -0
- package/dist/subject.js +155 -0
- package/dist/subject.js.map +1 -0
- package/dist/text-body.d.ts +28 -0
- package/dist/text-body.d.ts.map +1 -0
- package/dist/text-body.js +64 -0
- package/dist/text-body.js.map +1 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +13 -7
- package/dist/theme.js.map +1 -1
- package/dist/view-doors.d.ts +5 -1
- package/dist/view-doors.d.ts.map +1 -1
- package/dist/view-doors.js +28 -14
- package/dist/view-doors.js.map +1 -1
- package/dist/workbench/answer-args.d.ts.map +1 -1
- package/dist/workbench/answer-args.js +26 -2
- package/dist/workbench/answer-args.js.map +1 -1
- package/dist/workbench/inspector.js +1 -1
- package/dist/workbench/inspector.js.map +1 -1
- package/dist/workbench/standing.d.ts.map +1 -1
- package/dist/workbench/standing.js +4 -3
- package/dist/workbench/standing.js.map +1 -1
- package/fonts/OFL-Montserrat.txt +93 -0
- package/fonts/montserrat-latin.woff2 +0 -0
- package/fonts/montserrat.css +23 -0
- package/package.json +13 -8
- package/dist/home-landing.d.ts +0 -18
- package/dist/home-landing.d.ts.map +0 -1
- package/dist/home-landing.js +0 -59
- package/dist/home-landing.js.map +0 -1
package/README.md
CHANGED
|
@@ -40,8 +40,13 @@ the schema, the invariants and the op log.
|
|
|
40
40
|
|
|
41
41
|
**The app, said once** — `AppBar`: one bar over every face (FR-131) — the
|
|
42
42
|
brand's mark (`AppMark`, drawn as given, never an SVG that could act) and
|
|
43
|
-
the app's name as the page's heading, the
|
|
44
|
-
|
|
43
|
+
the app's name as the page's heading, the switch between the scene and the
|
|
44
|
+
pages (`faces`, FR-137), the place you are on as one control that
|
|
45
|
+
opens every place (`barPlaces`: the home, the Lists, the Pictures, FR-138;
|
|
46
|
+
on the scene `useScenePlaces`: the whole thing and each picture, FR-144),
|
|
47
|
+
the places standing on the row where they fit, the rest under "More"
|
|
48
|
+
(`placesThatStand`, FR-145),
|
|
49
|
+
and three tools of one size: the Find a
|
|
45
50
|
face puts in it (`useBarFind`), `Standing` and `Profile`. `AppTitle` draws
|
|
46
51
|
the mark, the name and the line under it elsewhere; `useFavicon` is for a
|
|
47
52
|
face that owns the page.
|
|
@@ -54,3 +59,43 @@ a view spec is drawn with, which each face that draws a view draws beside it;
|
|
|
54
59
|
and `sceneCss`, the rules only the scene draws (the districts from altitude,
|
|
55
60
|
the plots, the village, the billboards), which an embed's scene face draws
|
|
56
61
|
beside it so a page on the pages face carries none of them.
|
|
62
|
+
|
|
63
|
+
## Design language
|
|
64
|
+
|
|
65
|
+
Three layers, and a component reads only the middle one:
|
|
66
|
+
|
|
67
|
+
| Layer | Where | What it holds |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| The identity | @graview/core (the design kit, revision 03) | En Dash navy #001769 and turquoise #00E5B9, paper #F7F7F2, ink #18213A, muted #586174; Montserrat at 550, 450 and 600; the shared-plane symbol |
|
|
70
|
+
| The semantic tokens | `themeCss` writes them as custom properties | surfaces (`--graview-ground`, `-panel`, `-panel-muted`, `-panel-warning`, `-bar`, `-float`), text (`--graview-ink`, `-ink-muted`, `-ink-faint`), interaction (`--graview-accent`, `-accent-dim`, `-accent-ink`, `-edge`, `-edge-bright`), state (`--graview-warn`, `-good`, `-bad`), type (`--graview-font-body`, `-display`, `-mono`, `--graview-weight-display`, `-body`, `-label`), shape (`--graview-radius`, `-radius-sm`, `-pad`, `-pad-sm`, `-gap`), depth (`--graview-lift-low`, `-lift-high`, `--graview-layer-*`) and the kit (`--graview-kit-*`) |
|
|
71
|
+
| The app's overrides | the app's brand | name, logo, page icon, both schemes' tokens, faces and weights, radius and density, a hue per kind, the kit |
|
|
72
|
+
|
|
73
|
+
The shipped schemes are built on the identity: paper, reading ink and navy in
|
|
74
|
+
the light, a deep navy ground with the navy's hue made light in the dark.
|
|
75
|
+
Neither paints a wash or a glow; hover firms an edge rather than glowing.
|
|
76
|
+
Turquoise is not a token at all: it is the symbol's point, a fill that is
|
|
77
|
+
never text (1.5:1 on paper; navy reads on it at 9.7:1), so nothing the
|
|
78
|
+
framework draws depends on it. An app that declares its own brand keeps its
|
|
79
|
+
own colors, faces and logo, and the framework never puts Graview's mark in it.
|
|
80
|
+
|
|
81
|
+
How the scene reads against any district's color: a kind's hue is the
|
|
82
|
+
brand's (`accents`) or a stable hash, and only the hue: the lighting of a
|
|
83
|
+
block's three faces and the plot under it is the scene's, so a block reads
|
|
84
|
+
as a block on both grounds. Selection and the keyboard's place are drawn in
|
|
85
|
+
the accent, as an outline set off from the block, never as a change of the
|
|
86
|
+
block's own hue, so a selected block in a navy-ish district still reads as
|
|
87
|
+
selected. A relation is told from another by its pattern, its end cap and its
|
|
88
|
+
width as well as its color, and every district, block and relation carries
|
|
89
|
+
its name in words, so nothing is said by color alone. Disabled is a dimmed
|
|
90
|
+
control that cannot be pressed; empty, loading and refused are said in
|
|
91
|
+
sentences.
|
|
92
|
+
|
|
93
|
+
The words are set in Montserrat when the host has it, and in the reader's
|
|
94
|
+
system sans otherwise: the framework names the face and never fetches it.
|
|
95
|
+
A host that wants it imports the optional copy once —
|
|
96
|
+
`import "@graview/primitives/montserrat.css"`, 32 KB of woff2, weights
|
|
97
|
+
400–700, Latin, under the SIL Open Font License (beside it in the package).
|
|
98
|
+
`GraviewMark` is the symbol for a host drawing Graview's own identity — a
|
|
99
|
+
signature, a hosting service's chrome — inline in the ink it stands in, the
|
|
100
|
+
point in `--graview-mark-point` when set, decorative unless given a `title`,
|
|
101
|
+
and the optical micro cut under 28 px.
|
package/dist/app-bar.d.ts
CHANGED
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
import { type AnySchema, type Brand, type PagesArrangement, type Place, type Principal, type Store } from "@graview/core";
|
|
2
2
|
import { type CSSProperties, type ReactNode } from "react";
|
|
3
|
-
/**
|
|
3
|
+
/** Which of the places a place is: the home, a kind's list, or a picture. */
|
|
4
|
+
export type BarPlaceGroup = "home" | "lists" | "pictures";
|
|
5
|
+
/** One of the app's places, as the bar's place control lists it: what it is called, and where it is on the routed face. */
|
|
4
6
|
export interface BarPlace {
|
|
5
7
|
readonly key: string;
|
|
6
8
|
readonly label: string;
|
|
7
|
-
/** Its path on the routed face
|
|
9
|
+
/** Its path on the routed face. */
|
|
8
10
|
readonly path: string;
|
|
11
|
+
readonly group: BarPlaceGroup;
|
|
12
|
+
/** The kind it is a list or a picture of, for its mark. */
|
|
13
|
+
readonly kind?: string;
|
|
9
14
|
}
|
|
10
|
-
/** The key the
|
|
11
|
-
export declare const
|
|
15
|
+
/** The key the home's place has (FR-136): the app's front page, first in the list, at the app's own address. */
|
|
16
|
+
export declare const HOME_KEY = "home";
|
|
17
|
+
/** The home's address on the routed face: the app's own. */
|
|
18
|
+
export declare const HOME_PATH = "/";
|
|
19
|
+
/** The key of the scene's first place (FR-144): the whole thing, no picture in view. */
|
|
20
|
+
export declare const WHOLE_KEY = "scene:whole";
|
|
12
21
|
/**
|
|
13
|
-
* THE APP'S PLACES, IN THE
|
|
14
|
-
* the
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
22
|
+
* THE APP'S PLACES, IN THE LIST'S ORDER (FR-138): the home; each kind's list
|
|
23
|
+
* in the declaration's order; each named picture, then how the kinds
|
|
24
|
+
* connect, when they do. What a seat may not see is not offered: a kind
|
|
25
|
+
* kept from it, a disabled module's kind, a picture over either. The scene
|
|
26
|
+
* is not a place here: it is the switch's (FR-137).
|
|
18
27
|
*/
|
|
19
28
|
export declare function barPlaces(input: {
|
|
20
29
|
readonly store: Store<AnySchema>;
|
|
@@ -23,10 +32,8 @@ export declare function barPlaces(input: {
|
|
|
23
32
|
places(): readonly Place[];
|
|
24
33
|
arrangement?(): PagesArrangement | undefined;
|
|
25
34
|
} | undefined;
|
|
26
|
-
/** Whether the scene is one of the places here. */
|
|
27
|
-
readonly overview: boolean;
|
|
28
35
|
}): readonly BarPlace[];
|
|
29
|
-
/** Which of the places a path on the routed face is: its own, a record's kind's, or none (
|
|
36
|
+
/** Which of the places a path on the routed face is: its own, a record's kind's, or none (Find, the problems). */
|
|
30
37
|
export declare function barPlaceAt(places: readonly BarPlace[], path: string): string | null;
|
|
31
38
|
/**
|
|
32
39
|
* WHERE A FACE PUTS ITS FIND BOX (FR-131). The bar draws the place; the
|
|
@@ -35,7 +42,7 @@ export declare function barPlaceAt(places: readonly BarPlace[], path: string): s
|
|
|
35
42
|
*/
|
|
36
43
|
export interface BarFind {
|
|
37
44
|
readonly slot: HTMLElement;
|
|
38
|
-
/** A phone's bar: the box opens over the bar's
|
|
45
|
+
/** A phone's bar: the box opens over the bar's row when it is asked for. */
|
|
39
46
|
readonly compact: boolean;
|
|
40
47
|
}
|
|
41
48
|
export declare const BarFindContext: import("react").Context<BarFind | null>;
|
|
@@ -43,22 +50,64 @@ export declare const BarFindContext: import("react").Context<BarFind | null>;
|
|
|
43
50
|
export declare const useBarFind: () => BarFind | null;
|
|
44
51
|
/** How a place is reached: a link when it has an address, a press when the bar decides. */
|
|
45
52
|
export interface BarGo {
|
|
46
|
-
/** The address a place's link carries; none, and the
|
|
53
|
+
/** The address a place's link carries; none, and the entry is a button. */
|
|
47
54
|
readonly href?: (path: string) => string | undefined;
|
|
48
55
|
/** Goes to a place; a link's ordinary press is handed here rather than followed. */
|
|
49
56
|
readonly go?: (place: BarPlace) => void;
|
|
50
57
|
}
|
|
58
|
+
/** One of the switch's two faces: what it is called, whether it is drawn, and the way to it. */
|
|
59
|
+
export interface BarFace {
|
|
60
|
+
readonly label: string;
|
|
61
|
+
readonly current: boolean;
|
|
62
|
+
readonly go: () => void;
|
|
63
|
+
}
|
|
64
|
+
/** THE SWITCH (FR-137): the scene and the pages, the app's two faces. */
|
|
65
|
+
export interface BarFaces {
|
|
66
|
+
readonly scene: BarFace;
|
|
67
|
+
readonly pages: BarFace;
|
|
68
|
+
}
|
|
69
|
+
/** How the switch is drawn: its words beside its marks where there is room, or its marks alone (the words its names). */
|
|
70
|
+
export type BarSwitch = "words" | "icons";
|
|
51
71
|
/** One size for every tool on the bar (FR-131). */
|
|
52
72
|
export declare const TOOL = 30;
|
|
73
|
+
/** The bar's one row, its rule under it included, on a desk and a phone alike (FR-138). */
|
|
74
|
+
export declare const BAR_HEIGHT = 48;
|
|
75
|
+
/** Below this width of its own the bar is a phone's: the place is the page's first line, and Find a magnifier that opens the box over the row. */
|
|
76
|
+
export declare const BAR_PHONE = 640;
|
|
77
|
+
/** The room between two places standing on the row (FR-145). */
|
|
78
|
+
export declare const PLACE_GAP = 4;
|
|
79
|
+
/** The fewest places that stand on the row: fewer, and the one control says the same in less room. */
|
|
80
|
+
export declare const FEWEST_STANDING = 2;
|
|
81
|
+
/**
|
|
82
|
+
* WHICH PLACES STAND ON THE ROW (FR-145), from their widths and the room:
|
|
83
|
+
* every one when all fit; else the first ones in their order, the current
|
|
84
|
+
* one always among them (in its own place in the order, the last of the
|
|
85
|
+
* first ones giving way to it), with "More" after them; else none — null,
|
|
86
|
+
* the one control. Fewer than `FEWEST_STANDING` is none. A width that is
|
|
87
|
+
* not measured (nothing laid out) is none too.
|
|
88
|
+
*/
|
|
89
|
+
export declare function placesThatStand(input: {
|
|
90
|
+
/** Each place's width as it would stand, in the order of the list. */
|
|
91
|
+
readonly widths: readonly number[];
|
|
92
|
+
/** Where the current place is in the list; -1 for none. */
|
|
93
|
+
readonly current: number;
|
|
94
|
+
/** The room the row has for them. */
|
|
95
|
+
readonly room: number;
|
|
96
|
+
/** "More"'s width. */
|
|
97
|
+
readonly more: number;
|
|
98
|
+
readonly gap?: number;
|
|
99
|
+
}): readonly number[] | null;
|
|
53
100
|
/** A tool's own box: one size, square, its name in words for whoever cannot see the mark. */
|
|
54
101
|
export declare const toolStyle: CSSProperties;
|
|
55
102
|
/**
|
|
56
103
|
* THE BAR. The app at the left — its mark, its name as the page's heading,
|
|
57
|
-
* the way home —
|
|
58
|
-
*
|
|
59
|
-
*
|
|
104
|
+
* the way home — then the switch between the scene and the pages (FR-137),
|
|
105
|
+
* then, on Pages, the place you are on (FR-138), and the tools at the
|
|
106
|
+
* right: the Find a face puts in it, then `tools` (the standing and the
|
|
107
|
+
* person). One row of one height on a desk and a phone; on a phone the
|
|
108
|
+
* place is the page's first line, under the bar.
|
|
60
109
|
*/
|
|
61
|
-
export declare function AppBar({ brand, name, heading, home, places, current, reach, tools, find, description, findBox, onFind, }: {
|
|
110
|
+
export declare function AppBar({ brand, name, heading, home, faces, places, current, reach, tools, find, description, findBox, onFind, switch: switchForm, scenePlaces, }: {
|
|
62
111
|
readonly brand: Brand | undefined;
|
|
63
112
|
readonly name: string;
|
|
64
113
|
/** The level the app's name is said at: 1 when the page is the app's, `false` when the host's own heading already says it. */
|
|
@@ -69,8 +118,10 @@ export declare function AppBar({ brand, name, heading, home, places, current, re
|
|
|
69
118
|
readonly go?: (() => void) | undefined;
|
|
70
119
|
readonly current: boolean;
|
|
71
120
|
};
|
|
121
|
+
/** The switch between the scene and the pages; none where the face cannot draw the scene. */
|
|
122
|
+
readonly faces?: BarFaces | undefined;
|
|
72
123
|
readonly places: readonly BarPlace[];
|
|
73
|
-
/** The key of the place the reader is on; null at
|
|
124
|
+
/** The key of the place the reader is on; null at Find, at the problems. */
|
|
74
125
|
readonly current: string | null;
|
|
75
126
|
readonly reach: BarGo;
|
|
76
127
|
/** The standing and the person, after Find. */
|
|
@@ -83,5 +134,22 @@ export declare function AppBar({ brand, name, heading, home, places, current, re
|
|
|
83
134
|
readonly findBox?: ReactNode;
|
|
84
135
|
/** Told where the bar keeps the Find box, for the face under it (`BarFindContext`). */
|
|
85
136
|
readonly onFind?: (find: BarFind | null) => void;
|
|
137
|
+
/**
|
|
138
|
+
* How the switch is drawn: `"words"` (the default) says "Scene" and
|
|
139
|
+
* "Pages" beside their marks where the bar has room and draws the marks
|
|
140
|
+
* alone where it is narrow; `"icons"` draws the marks alone at every
|
|
141
|
+
* width. Either way the words are the buttons' names and their titles.
|
|
142
|
+
*/
|
|
143
|
+
readonly switch?: BarSwitch;
|
|
144
|
+
/**
|
|
145
|
+
* On the scene, what it can show (FR-144): the whole thing and each
|
|
146
|
+
* picture, the one in view, and the way to each (`useScenePlaces`). None,
|
|
147
|
+
* and the scene's bar names no place.
|
|
148
|
+
*/
|
|
149
|
+
readonly scenePlaces?: {
|
|
150
|
+
readonly places: readonly BarPlace[];
|
|
151
|
+
readonly current: string | null;
|
|
152
|
+
readonly reach: BarGo;
|
|
153
|
+
} | undefined;
|
|
86
154
|
}): import("react").JSX.Element;
|
|
87
155
|
//# sourceMappingURL=app-bar.d.ts.map
|
package/dist/app-bar.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-bar.d.ts","sourceRoot":"","sources":["../src/app-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"app-bar.d.ts","sourceRoot":"","sources":["../src/app-bar.tsx"],"names":[],"mappings":"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"}
|