@graview/embed 0.1.14 → 0.1.16

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Mount a declared Graview app into any element — a paragraph of a docs page, a
4
4
  card on a dashboard, a preview in a builder — without the Shell, sized to the
5
- element, themed within it, and switchable between its faces.
5
+ element, themed within it, under one app bar.
6
6
 
7
7
  ```ts
8
8
  import { mount } from "@graview/embed";
@@ -13,19 +13,44 @@ const handle = mount(document.querySelector("#garden")!, {
13
13
  face: "graview", // "scene" | "graview" | "pages" | "picture" — one named lens, no chrome: stop "#view=<place>"
14
14
  stop: "#focus=plot-1", // the scene's view state, as its URL fragment
15
15
  principal: { kind: "human", id: "june", roles: ["coordinator"] },
16
- toggle: true, // the face switcher and Standing, above the picture
16
+ bar: true, // the app bar over every face (the default)
17
17
  });
18
18
 
19
- handle.setFace("pages"); // the routed face, at the element's width
19
+ handle.setPath("/plots"); // a place: the plots' list, at the element's width
20
+ handle.setPath("/places/overview"); // the overview: the scene
20
21
  handle.setStop("#overview=1&expand=kind:plot");
21
22
  handle.unmount();
22
23
  ```
23
24
 
24
25
  `<Embed {...options} />` is the same thing as a React component.
25
26
 
27
+ ## The app bar
28
+
29
+ One bar stands over every face (FR-131). At the left, the app: its mark —
30
+ the brand's logo, when the document has one — and its name, said once, as
31
+ the page's heading (`heading`: `1` when the host's page is the app, `2`, the
32
+ default, inside an article, `false` when the host's own heading says it),
33
+ and the way home. Then the app's places as plain tabs, the one you are on
34
+ marked (`aria-current`), and what the row cannot hold under "More": the
35
+ overview, each named picture, each kind's list, and how the kinds connect.
36
+ At the right, three tools of one size: Find (inline; ⌘K or Ctrl+K on a
37
+ desk, a magnifier that opens the box on a phone), the standing (a dot in the
38
+ tone of the rules, a number only when one is broken, opening what is broken;
39
+ its name says "Everything is in order" otherwise), and the person (an avatar
40
+ whose menu holds who is signed in, the seats, the host's own actions and,
41
+ for whoever keeps the app, the installation and the studio). On a desk it
42
+ is one row; on a phone the places take a second.
43
+
44
+ THE SCENE IS A PLACE (FR-132): the overview, a tab beside the others —
45
+ "Overview" unless the declaration calls it something else (`pages: {
46
+ overview: "The farm" }`), at `/places/overview` whatever it is called.
47
+ Choosing it draws the scene under the same bar; any other tab draws that
48
+ page. Nothing says "Scene" or "Pages". `bar: false` draws none of it, for a
49
+ host whose own page already says all of that.
50
+
26
51
  ## What a page loads first
27
52
 
28
- The frame — the element's region, its theme, the strip, the provider — is
53
+ The frame — the element's region, its theme, the app bar, the provider — is
29
54
  on the page when `mount` returns. Each face is a chunk of its own, fetched
30
55
  the first time it is drawn: a page that opens on the pages never loads the
31
56
  scene, one that opens on the scene never loads the router, and the
@@ -49,12 +74,16 @@ const handle = mount(root, { app, face }); // drawn in this commit
49
74
  ```
50
75
 
51
76
  What this asks of the framework, and what it adds: the theme scopes to the
52
- element (`themeBaseCss(scheme, brand, { scope })`, and the scene's own rules,
53
- `sceneCss`, drawn by the scene face beside it) rather than the document, every
77
+ element (`themeBaseCss(scheme, brand, { scope })`, and the blocks a view is
78
+ drawn with, `viewsCss`, and the scene's own rules, `sceneCss`, drawn by the
79
+ face that needs them beside it) rather than the document, every
54
80
  rule of it held inside that element, so nothing of the host's is restyled; the
55
81
  panes size against the picture's own box (`cqh`) rather than the viewport;
56
82
  the routed face runs on a memory router, so the host page's address is never
57
- touched (unless the host's page is the app: see below); the brand's fonts are fetched by the embed rather than assumed. The
83
+ touched (unless the host's page is the app: see below); the brand's fonts are fetched by the embed rather than assumed. The page's icon is
84
+ the host's: only a host whose page is the app passes `favicon: true` to wear
85
+ the brand's (FR-124), and an app that prefers dark is drawn dark until the host
86
+ stamps a scheme of its own. The
58
87
  store is in memory and starts from the seed on every mount, unless the host
59
88
  hands it one.
60
89
 
@@ -80,14 +109,15 @@ Shell spells it:
80
109
  | Address | Drawn |
81
110
  |---|---|
82
111
  | `/apps/a1/places/the-board`, `/apps/a1/tasks/t1` | the routed face, at that page |
83
- | `/apps/a1#overview=1`, `/apps/a1#focus=t1` | the scene, at that stop (the Graview at altitude) |
84
- | `/apps/a1` | the routed face's home, or on arrival the host's `face` |
112
+ | `/apps/a1/places/overview#focus=t1`, `/apps/a1/places/overview#overview=1` | the overview: the scene, at that stop (the Graview at altitude) |
113
+ | `/apps/a1#focus=t1` | the scene too — a link written before the scene was a place — tidied on arrival to the overview's address |
114
+ | `/apps/a1` | the routed face's home, or on arrival the host's `face` (the Graview or the scene land on the overview's address) |
85
115
 
86
116
  Each page the routed face opens is pushed, and Back returns. The scene
87
117
  keeps its stop in the fragment the way the Shell does: a step is pushed,
88
- moving the furniture replaces. The face toggle pushes the address of the
89
- face it goes to, so Back undoes it, and the page you left is where the
90
- toggle returns you. A reload stays where it was. `faceAtAddress(options)`
118
+ moving the furniture replaces. A tab pushes the address of the place it goes
119
+ to, the overview's included, so Back undoes it. A reload stays where it
120
+ was. `faceAtAddress(options)`
91
121
  is the face an address opens on, for a host that renders `<Embed>` itself.
92
122
  `placesOf(app)` gives each place's `address` within the app, and
93
123
  `addressOf(place, { basePath })` from `@graview/core` gives it under the
@@ -96,9 +126,11 @@ base, spelled as the face's own links are (`pathWithin` reads one back).
96
126
  `routing: "memory"`, the default, is for somebody else's page: it never
97
127
  writes `history` and leaves `location` as it was. A host that keeps its
98
128
  own history stays on memory routing: `onNavigate(path, how)` is told each
99
- page the routed face opens (the path within the app, and `"push"`,
100
- `"replace"` or `"pop"`), and `handle.setPath(path)` sends it back to one
101
- when the host's own Back arrives.
129
+ place the reader goes to (the path within the app — `/places/overview` for
130
+ the scene — and `"push"`, `"replace"` or `"pop"`), and `handle.setPath(path)`
131
+ sends the reader back to one when the host's own Back arrives: the
132
+ overview's path draws the scene, any other the page. `where().path` is the
133
+ place's path the same way.
102
134
 
103
135
  ## When the declaration changes
104
136
 
@@ -122,6 +154,14 @@ the scheme, the brand and the notices stay; the faces are drawn again, so
122
154
  an open menu, a scroll position and a half-typed field do not. `drawn()`
123
155
  resolves once the new app is on the page.
124
156
 
157
+ A renamed app says its new name at once (FR-128). A `label` that was the
158
+ app's own name — as a host that mounts with `label: app.name` gives it —
159
+ follows the new app: the embed's accessible name and each landmark inside
160
+ say the new name, and the bar's name — its heading — is the new app's. A label the host chose ("Chapter 13") stays;
161
+ `setApp(app, store, { label })` gives another, and `handle.setLabel(label)`
162
+ renames the embed in place. `handle.setHostActions(actions)` changes the
163
+ host's own actions in the profile menu the same way.
164
+
125
165
  A host that must remount reads the place first and hands it back:
126
166
 
127
167
  ```ts
@@ -148,7 +188,7 @@ the embed reads the rung it means rather than guessing a number.
148
188
  ## The host's own actions
149
189
 
150
190
  A host's links about the app and the person — "Change the app", "Your
151
- apps", "Report this app" — go in the strip's profile menu, under who is
191
+ apps", "Report this app" — go in the person's menu on the app bar, under who is
152
192
  signed in, rather than in a menu of the host's own laid over the scene:
153
193
 
154
194
  ```ts
@@ -231,7 +271,7 @@ mount(root, {
231
271
  });
232
272
  ```
233
273
 
234
- A view, a page, the strip or the studio that throws is contained where it
274
+ A view, a page, the bar or the studio that throws is contained where it
235
275
  threw: it says it could not draw and offers to try again, and the rest of
236
276
  the embed keeps working. The host is told the error's class (a TypeError,
237
277
  a `GraphError`) and the framework module that caught it, never the message,
@@ -240,7 +280,7 @@ how many milliseconds it took.
240
280
 
241
281
  ## What the host can keep
242
282
 
243
- The Studio is on the strip for the seat that keeps the app, and writes
283
+ The Studio is in the person's menu on the overview for the seat that keeps the app, and writes
244
284
  through a dev server's door or hands over files. A host whose readers
245
285
  cannot save a declaration leaves it off, or keeps what it applies:
246
286
 
package/dist/address.d.ts CHANGED
@@ -4,30 +4,31 @@ import type { EmbedFace, FrameOptions } from "./frame.js";
4
4
  /**
5
5
  * THE FACE AN EMBED OPENS ON (FR-106): under memory routing, the host's
6
6
  * (`face`, else the one its `stop` implies); under address routing, the one
7
- * the address names — a page past the home is the routed face, a fragment
8
- * at the home is the scene's stop — and the host's when it names none.
7
+ * the address names — the overview's place is the scene (FR-132), any other
8
+ * page the routed face, a fragment at the home the scene's stop — and the
9
+ * host's when it names none.
9
10
  * `mount` asks this itself; a host that renders `<Embed>` passes it as `face`.
10
11
  */
11
12
  export declare function faceAtAddress(options: Pick<FrameOptions, "routing" | "basePath"> & {
12
13
  readonly face?: EmbedFace;
13
14
  readonly stop?: string;
14
15
  }): EmbedFace;
15
- /** The stop the address holds for the scene on arrival, if it holds one. */
16
+ /** The stop the address holds for the scene on arrival, if it holds one: on the overview's address, or the home's. */
16
17
  export declare function stopAtAddress(basePath: string | undefined): string | undefined;
17
18
  /**
18
19
  * Keeps the face in step with the address: Back and Forward move between
19
- * the routed face and the scene, and the face toggle pushes the address of
20
- * the face it goes to. Inside the provider; the scene's own fragment sync
20
+ * the routed face and the overview, and the bar pushes the address of the
21
+ * place it goes to. Inside the provider; the scene's own fragment sync
21
22
  * (`UrlSync`) is drawn by the scene face, so it is fetched with the scene.
22
23
  */
23
24
  export declare function AddressBar({ basePath, pagesWere, shown, onFace, toggle, kinds, places, }: {
24
25
  readonly basePath: string | undefined;
25
- /** The page the routed face had before a new declaration (FR-116), for the toggle to go back to. */
26
+ /** The page the routed face had before a new declaration (FR-116), to go back to. */
26
27
  readonly pagesWere?: string | undefined;
27
28
  readonly shown: EmbedFace;
28
29
  readonly onFace: ((face: EmbedFace) => void) | undefined;
29
- /** Where the strip's toggle is handed this bar's way of changing face. */
30
- readonly toggle: MutableRefObject<((face: EmbedFace) => void) | undefined>;
30
+ /** Where the app bar is handed this one's way of changing face: to a page's path, or to the overview at a stop. */
31
+ readonly toggle: MutableRefObject<((face: EmbedFace, path?: string, stop?: string) => void) | undefined>;
31
32
  readonly kinds: readonly string[];
32
33
  readonly places: readonly Place[];
33
34
  }): null;
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAIlE,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA+B1D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIpJ;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG9E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,GACP,EAAE;IACD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,oGAAoG;IACpG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;CACnC,QA8CA"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAIjF,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmC1D;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIpJ;AAED,sHAAsH;AACtH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI9E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,GACP,EAAE;IACD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,qFAAqF;IACrF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,mHAAmH;IACnH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzG,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;CACnC,QA4CA"}
package/dist/address.js CHANGED
@@ -1,4 +1,4 @@
1
- import { addressOf, pathWithin } from "@graview/core";
1
+ import { addressOf, OVERVIEW_PATH, pathWithin } from "@graview/core";
2
2
  import { aggregateId, fromUrl, toUrl, withFocus, withOverview } from "@graview/layout/view";
3
3
  import { descentTarget } from "@graview/primitives/frame";
4
4
  import { useNavigation } from "@graview/react/provider";
@@ -10,14 +10,17 @@ import { useEffect, useRef } from "react";
10
10
  * where on it, the way the whole-page Shell spells it:
11
11
  *
12
12
  * <base>/places/the-board, <base>/tasks/t1 a page: the routed face, on its router
13
- * <base>#overview=1, <base>#focus=t1 a stop: the scene (the Graview at altitude),
14
- * its view state in the fragment
13
+ * <base>/places/overview#focus=t1 the overview (FR-132): the scene, its
14
+ * view state in the fragment — at altitude
15
+ * (`#overview=1`), the Graview
16
+ * <base>#focus=t1 a stop written before the scene was a
17
+ * place: the scene still, tidied to the
18
+ * overview's address on arrival
15
19
  * <base> the routed face's home — or, on arrival
16
20
  * with no entry the router wrote, the host's face
17
21
  *
18
- * The scene always writes a fragment, even an empty `#`, so an address
19
- * without one past arrival is a page. The face toggle is a step like any
20
- * other: it pushes the address of the face it goes to, and Back undoes it.
22
+ * Moving between the overview and a page is a step like any other: the bar
23
+ * pushes the address of the place it goes to, and Back undoes it.
21
24
  */
22
25
  /** The router's own mark on an entry it wrote: `{ idx }` (react-router), kept across a reload. */
23
26
  const routerWrote = (state) => typeof state === "object" && state !== null && "idx" in state;
@@ -26,6 +29,8 @@ function faceNamed(basePath) {
26
29
  const path = pathWithin(window.location.pathname, basePath);
27
30
  if (path === null)
28
31
  return null;
32
+ if (path === OVERVIEW_PATH)
33
+ return fromUrl(window.location.hash).overview ? "graview" : "scene";
29
34
  if (path !== "/")
30
35
  return "pages";
31
36
  if (window.location.href.includes("#"))
@@ -35,8 +40,9 @@ function faceNamed(basePath) {
35
40
  /**
36
41
  * THE FACE AN EMBED OPENS ON (FR-106): under memory routing, the host's
37
42
  * (`face`, else the one its `stop` implies); under address routing, the one
38
- * the address names — a page past the home is the routed face, a fragment
39
- * at the home is the scene's stop — and the host's when it names none.
43
+ * the address names — the overview's place is the scene (FR-132), any other
44
+ * page the routed face, a fragment at the home the scene's stop — and the
45
+ * host's when it names none.
40
46
  * `mount` asks this itself; a host that renders `<Embed>` passes it as `face`.
41
47
  */
42
48
  export function faceAtAddress(options) {
@@ -45,38 +51,40 @@ export function faceAtAddress(options) {
45
51
  return asked;
46
52
  return faceNamed(options.basePath) ?? asked;
47
53
  }
48
- /** The stop the address holds for the scene on arrival, if it holds one. */
54
+ /** The stop the address holds for the scene on arrival, if it holds one: on the overview's address, or the home's. */
49
55
  export function stopAtAddress(basePath) {
50
56
  if (typeof window === "undefined")
51
57
  return undefined;
52
- return pathWithin(window.location.pathname, basePath) === "/" && window.location.href.includes("#") ? window.location.hash || "#" : undefined;
58
+ const path = pathWithin(window.location.pathname, basePath);
59
+ return (path === "/" || path === OVERVIEW_PATH) && window.location.href.includes("#") ? window.location.hash || "#" : undefined;
53
60
  }
54
61
  /**
55
62
  * Keeps the face in step with the address: Back and Forward move between
56
- * the routed face and the scene, and the face toggle pushes the address of
57
- * the face it goes to. Inside the provider; the scene's own fragment sync
63
+ * the routed face and the overview, and the bar pushes the address of the
64
+ * place it goes to. Inside the provider; the scene's own fragment sync
58
65
  * (`UrlSync`) is drawn by the scene face, so it is fetched with the scene.
59
66
  */
60
67
  export function AddressBar({ basePath, pagesWere, shown, onFace, toggle, kinds, places, }) {
61
68
  const { view, go } = useNavigation();
62
69
  const latest = useRef({ shown, view, onFace });
63
70
  latest.current = { shown, view, onFace };
64
- // The page the routed face was on when the scene was asked for, to go back to by the toggle.
71
+ // The page the routed face was on when the overview was asked for, to go back to.
65
72
  const pagesAt = useRef(pagesWere ?? "/");
66
73
  const leaving = () => {
67
74
  pagesAt.current = `${pathWithin(window.location.pathname, basePath) ?? "/"}${window.location.search}`;
68
75
  };
69
- toggle.current = (next) => {
76
+ toggle.current = (next, path, asked) => {
70
77
  const { shown: from, view: here, onFace: tell } = latest.current;
71
78
  if (next === "pages" && from !== "pages") {
72
- window.history.pushState(null, "", addressOf(pagesAt.current, { basePath }));
79
+ window.history.pushState(null, "", addressOf(path ?? pagesAt.current, { basePath }));
73
80
  }
74
81
  else if (next !== "pages" && from === "pages") {
75
82
  leaving();
76
83
  // The view the scene will draw, decided here so the fragment pushed is the one it lands on.
77
- const stop = next === "graview" ? withOverview(here, true) : here.overview ? withFocus(withOverview(here, false), descentTarget(here, kinds)) : here;
84
+ const given = asked === undefined ? here : placed(fromUrl(asked), places);
85
+ const stop = next === "graview" ? withOverview(given, true) : given.overview ? withFocus(withOverview(given, false), descentTarget(given, kinds)) : given;
78
86
  go(stop);
79
- window.history.pushState(null, "", `${addressOf("/", { basePath })}${toUrl(stop)}`);
87
+ window.history.pushState(null, "", `${addressOf(OVERVIEW_PATH, { basePath })}${toUrl(stop)}`);
80
88
  }
81
89
  tell?.(next);
82
90
  };
@@ -95,10 +103,7 @@ export function AddressBar({ basePath, pagesWere, shown, onFace, toggle, kinds,
95
103
  // Between the scene and the Graview the fragment sync follows by itself; from the pages, the scene comes back where the fragment says.
96
104
  if (from !== "pages")
97
105
  return;
98
- const parsed = fromUrl(window.location.hash);
99
- const name = parsed.within?.["view"];
100
- const place = name !== undefined && !parsed.focusId ? places.find((candidate) => candidate.as === name) : undefined;
101
- go(place ? { ...parsed, focusId: aggregateId(place.kind) } : parsed);
106
+ go(placed(fromUrl(window.location.hash), places));
102
107
  tell?.(named);
103
108
  };
104
109
  window.addEventListener("popstate", onPop);
@@ -106,4 +111,10 @@ export function AddressBar({ basePath, pagesWere, shown, onFace, toggle, kinds,
106
111
  }, [basePath, go, places]);
107
112
  return null;
108
113
  }
114
+ /** A stop that names a place by its name alone (`#view=the-board`) goes to the group it is a picture of. */
115
+ function placed(parsed, places) {
116
+ const name = parsed.within?.["view"];
117
+ const place = name !== undefined && !parsed.focusId ? places.find((candidate) => candidate.as === name) : undefined;
118
+ return place ? { ...parsed, focusId: aggregateId(place.kind) } : parsed;
119
+ }
109
120
  //# sourceMappingURL=address.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.tsx"],"names":[],"mappings":"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"}
package/dist/embed.d.ts CHANGED
@@ -27,26 +27,32 @@ export declare function preload(...faces: readonly EmbedFace[]): Promise<void>;
27
27
  */
28
28
  export { AUTO_SCENE_HEIGHT };
29
29
  export interface EmbedOptions<S extends AnySchema = AnySchema> extends FrameOptions<S> {
30
- /** Which face to open on. Omitted, the stop decides: altitude opens the Graview, anything else the scene. */
30
+ /**
31
+ * Which face to open on. Omitted, the stop decides: at altitude the
32
+ * Graview, anything else the scene — the app's overview, one of its
33
+ * places (FR-132).
34
+ */
31
35
  readonly face?: EmbedFace;
32
36
  /** The scene's view state, as the fragment the app itself would put in its address bar. */
33
37
  readonly stop?: string;
34
38
  /**
35
- * THE WORKBENCH'S HEADING (FR-25): the level the embed's name is said at,
36
- * for a reader moving by headings — `1` when the host's page is the app,
37
- * `2` (the default) inside somebody else's article, `false` when the
38
- * host's own heading already names it. The pages face brings its own.
39
+ * THE APP'S NAME AS A HEADING (FR-25, FR-131): the level the app bar says
40
+ * the name at, for a reader moving by headings — `1` when the host's page
41
+ * is the app, `2` (the default) inside somebody else's article, `false`
42
+ * when the host's own heading already names it. Each page's own title is
43
+ * said under it, at the level below the app's.
39
44
  */
40
45
  readonly heading?: 1 | 2 | 3 | 4 | 5 | 6 | false;
41
46
  /**
42
- * Below this width the scene and the Graview give way to the pages face,
43
- * and come back above it. A phone's chat is no place for a map. Off by default.
47
+ * Below this width the scene and the Graview give way to the routed face,
48
+ * and come back above it — unless the reader asks for the overview on the
49
+ * bar, which is then drawn whatever the width. Off by default.
44
50
  */
45
51
  readonly pagesBelow?: number;
46
52
  /**
47
- * WHAT BECOMES OF THE STUDIO (FR-19). Offered by default, for the seat
48
- * that keeps the app, writing through a dev server's door or handing
49
- * over files. `false` leaves it off the strip: a hosted reader cannot
53
+ * WHAT BECOMES OF THE STUDIO (FR-19). Offered by default, in the
54
+ * person's menu for the seat that keeps the app, writing through a dev
55
+ * server's door or handing over files. `false` leaves it out: a hosted reader cannot
50
56
  * save a declaration, so is not offered one to change. `{ onApply }`
51
57
  * keeps it and hands the host what the checker passed, writing nothing
52
58
  * itself: the host makes it a proposal, a version, a review.
@@ -85,7 +91,7 @@ export interface EmbedStudio {
85
91
  readonly onApply: StudioOnApply;
86
92
  /**
87
93
  * What the studio's picture is to the host's page (FR-58). Inside an
88
- * embed it is a labelled region by default, never a second `<main>`;
94
+ * embed it is a labeled region by default, never a second `<main>`;
89
95
  * "main" is for a host whose page has none of its own and whose whole
90
96
  * body is the studio.
91
97
  */
@@ -110,19 +116,20 @@ export interface EmbedStudio {
110
116
  readonly place?: typeof StudioPlaceType;
111
117
  }
112
118
  export interface EmbedProps<S extends AnySchema = AnySchema> extends EmbedOptions<S> {
113
- /** Called when the strip's switcher is pressed; the host decides the face. */
119
+ /** Called when the bar moves between the overview and a page (FR-132); the host decides the face. */
114
120
  readonly onFace?: (face: EmbedFace) => void;
115
- /** Called when a seat on the strip is pressed; the host decides who sits. */
121
+ /** Called when a seat is taken in the person's menu; the host decides who sits. */
116
122
  readonly onSeat?: (principal: Principal) => void;
117
123
  }
118
- /** The face a stop implies: a stop at altitude opens the Graview. */
124
+ /** The face a stop implies: a stop at altitude opens the Graview, anything else the scene — the overview (FR-132). */
119
125
  export declare function faceOf(stop: string | undefined): EmbedFace;
120
126
  export declare function Embed<S extends AnySchema>(props: EmbedProps<S>): import("react").JSX.Element;
121
127
  export interface EmbedHandle {
122
128
  /**
123
- * WHERE THE READER IS (FR-116): the face, the page on Pages (or the one it
124
- * last had) and the scene's stop — for a host that must remount to hand
125
- * back as `mount(…, { at })`.
129
+ * WHERE THE READER IS (FR-116): the face, the path of the place they are
130
+ * on — the overview's (`/places/overview`) on the scene (FR-132) — and the
131
+ * scene's stop, for a host that must remount to hand back as
132
+ * `mount(…, { at })`.
126
133
  */
127
134
  where(): EmbedWhere;
128
135
  /**
@@ -132,13 +139,25 @@ export interface EmbedHandle {
132
139
  * falls back to its nearest parent. The seat, the seats, the people, the
133
140
  * scheme, the brand asked for and the notices stay; what is drawn is drawn
134
141
  * again, so an open menu, a scroll and a half-typed field do not.
142
+ *
143
+ * THE NEW APP'S NAME (FR-128): a `label` that was the app's own name
144
+ * follows the app, so a renamed app says its new name — the embed's
145
+ * accessible name, its heading, each landmark inside — without a reload;
146
+ * a label the host chose stays. `{ label }` says which.
135
147
  */
136
- setApp(app: GraviewApp<AnySchema>, store: Store<AnySchema> | EmbedRemote<AnySchema>): void;
148
+ setApp(app: GraviewApp<AnySchema>, store: Store<AnySchema> | EmbedRemote<AnySchema>, options?: {
149
+ readonly label?: string;
150
+ }): void;
151
+ /** What the embed is called (FR-128): its accessible name, its heading, and the name each landmark inside is said after. */
152
+ setLabel(label: string): void;
153
+ /** The host's own actions in the profile menu (FR-72), now. */
154
+ setHostActions(actions: EmbedOptions["hostActions"]): void;
137
155
  setFace(face: EmbedFace): void;
138
156
  setStop(stop: string): void;
139
157
  /**
140
- * Sends the routed face to a path within the app's own routes (FR-106): a
141
- * host that keeps its own history hands back the path its Back arrived at.
158
+ * Goes to a path within the app's own routes (FR-106): a host that keeps
159
+ * its own history hands back the path its Back arrived at. The overview's
160
+ * path (`/places/overview`) is the scene (FR-132); any other is a page.
142
161
  */
143
162
  setPath(path: string): void;
144
163
  setScheme(scheme: Scheme): void;
@@ -1 +1 @@
1
- {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.tsx"],"names":[],"mappings":"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"}