@graview/react 0.1.63 → 0.1.65
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/connectors.d.ts.map +1 -1
- package/dist/connectors.js +3 -0
- package/dist/connectors.js.map +1 -1
- package/dist/context.d.ts +29 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +9 -4
- package/dist/context.js.map +1 -1
- package/dist/drawing.d.ts +2 -0
- package/dist/drawing.d.ts.map +1 -1
- package/dist/drawing.js +2 -0
- package/dist/drawing.js.map +1 -1
- package/dist/edge-signs.d.ts +25 -0
- package/dist/edge-signs.d.ts.map +1 -1
- package/dist/edge-signs.js +34 -0
- package/dist/edge-signs.js.map +1 -1
- package/dist/files.d.ts +11 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +11 -0
- package/dist/files.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/menu-types.d.ts +3 -0
- package/dist/menu-types.d.ts.map +1 -1
- package/dist/occupants.d.ts.map +1 -1
- package/dist/occupants.js +58 -2
- package/dist/occupants.js.map +1 -1
- package/dist/popover.d.ts.map +1 -1
- package/dist/popover.js +19 -2
- package/dist/popover.js.map +1 -1
- package/dist/presence.d.ts +12 -1
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +29 -2
- package/dist/presence.js.map +1 -1
- package/dist/provider.d.ts +3 -2
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +1 -1
- package/dist/provider.js.map +1 -1
- package/dist/resolved-view.d.ts.map +1 -1
- package/dist/resolved-view.js +2 -2
- package/dist/resolved-view.js.map +1 -1
- package/dist/scene-aim.d.ts +7 -0
- package/dist/scene-aim.d.ts.map +1 -0
- package/dist/scene-aim.js +166 -0
- package/dist/scene-aim.js.map +1 -0
- package/dist/scene-covered.d.ts.map +1 -1
- package/dist/scene-covered.js +41 -5
- package/dist/scene-covered.js.map +1 -1
- package/dist/scene-ground-menu.js +2 -2
- package/dist/scene-ground-menu.js.map +1 -1
- package/dist/scene-hand.d.ts +28 -2
- package/dist/scene-hand.d.ts.map +1 -1
- package/dist/scene-hand.js +262 -32
- package/dist/scene-hand.js.map +1 -1
- package/dist/scene-lines.d.ts.map +1 -1
- package/dist/scene-lines.js +3 -0
- package/dist/scene-lines.js.map +1 -1
- package/dist/scene-options.d.ts.map +1 -1
- package/dist/scene-options.js +16 -4
- package/dist/scene-options.js.map +1 -1
- package/dist/scene-root.d.ts.map +1 -1
- package/dist/scene-root.js +79 -9
- package/dist/scene-root.js.map +1 -1
- package/dist/seat-talk.d.ts +2 -2
- package/dist/seat-talk.d.ts.map +1 -1
- package/dist/view-host.d.ts +6 -1
- package/dist/view-host.d.ts.map +1 -1
- package/dist/view-host.js +18 -3
- package/dist/view-host.js.map +1 -1
- package/dist/view-places.d.ts +62 -0
- package/dist/view-places.d.ts.map +1 -0
- package/dist/view-places.js +54 -0
- package/dist/view-places.js.map +1 -0
- package/dist/view-sections.d.ts +8 -0
- package/dist/view-sections.d.ts.map +1 -0
- package/dist/view-sections.js +85 -0
- package/dist/view-sections.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
const LANDMARK = /* @__PURE__ */ new Set(["section", "article", "nav", "aside", "header", "footer", "main", "form", "region", "search"]);
|
|
2
|
+
const HEADING = /^h([1-6])$/;
|
|
3
|
+
const words = (text) => (text ?? "").replace(/\s+/g, " ").trim();
|
|
4
|
+
const tagOf = (element) => (element.getAttribute("data-graview-as") ?? element.localName).toLowerCase();
|
|
5
|
+
const levelOf = (element) => {
|
|
6
|
+
const tag = HEADING.exec(tagOf(element));
|
|
7
|
+
if (tag)
|
|
8
|
+
return Number(tag[1]);
|
|
9
|
+
return element.getAttribute("role") === "heading" ? Number(element.getAttribute("aria-level") ?? 2) : undefined;
|
|
10
|
+
};
|
|
11
|
+
/** A landmark's name: its `data-section`, its `aria-label`, what labels it, else its first heading's words. */
|
|
12
|
+
function nameOf(element) {
|
|
13
|
+
const marked = words(element.getAttribute("data-section"));
|
|
14
|
+
if (marked)
|
|
15
|
+
return marked;
|
|
16
|
+
const label = words(element.getAttribute("aria-label"));
|
|
17
|
+
if (label)
|
|
18
|
+
return label;
|
|
19
|
+
const root = element.getRootNode();
|
|
20
|
+
const by = (element.getAttribute("aria-labelledby") ?? "")
|
|
21
|
+
.split(/\s+/)
|
|
22
|
+
.filter(Boolean)
|
|
23
|
+
.map((id) => words(root.getElementById?.(id)?.textContent ?? root.querySelector?.(`#${CSS.escape(id)}`)?.textContent))
|
|
24
|
+
.filter(Boolean)
|
|
25
|
+
.join(" ");
|
|
26
|
+
if (by)
|
|
27
|
+
return by;
|
|
28
|
+
for (const inner of element.querySelectorAll("*"))
|
|
29
|
+
if (levelOf(inner) !== undefined)
|
|
30
|
+
return words(inner.textContent);
|
|
31
|
+
return "";
|
|
32
|
+
}
|
|
33
|
+
/** Whether an element is a section of its own: marked, a landmark, a region. */
|
|
34
|
+
const isSection = (element) => element.hasAttribute("data-section") || LANDMARK.has(tagOf(element)) || element.getAttribute("role") === "region";
|
|
35
|
+
/** A heading and the siblings after it, up to the next heading as high or higher. */
|
|
36
|
+
function headedBlock(heading) {
|
|
37
|
+
const level = levelOf(heading) ?? 6;
|
|
38
|
+
const block = [heading];
|
|
39
|
+
for (let at = heading.nextElementSibling; at; at = at.nextElementSibling) {
|
|
40
|
+
const next = levelOf(at);
|
|
41
|
+
if (next !== undefined && next <= level)
|
|
42
|
+
break;
|
|
43
|
+
block.push(at);
|
|
44
|
+
}
|
|
45
|
+
return block;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* THE SECTION OF A VIEW UNDER AN ELEMENT: the element itself under a
|
|
49
|
+
* press, inside a worker view's shadow root. Nothing outside a view, and
|
|
50
|
+
* nothing for a part with no name a person could say.
|
|
51
|
+
*/
|
|
52
|
+
export function sectionUnder(element) {
|
|
53
|
+
if (!element)
|
|
54
|
+
return undefined;
|
|
55
|
+
const root = element.getRootNode();
|
|
56
|
+
if (typeof ShadowRoot === "undefined" || !(root instanceof ShadowRoot))
|
|
57
|
+
return undefined;
|
|
58
|
+
const view = root.host.getAttribute("data-worker-view");
|
|
59
|
+
if (!view)
|
|
60
|
+
return undefined;
|
|
61
|
+
/* A section of its own around it — marked, a landmark, a region — before any heading's block inside one. */
|
|
62
|
+
for (let at = element; at; at = at.parentElement) {
|
|
63
|
+
if (!isSection(at))
|
|
64
|
+
continue;
|
|
65
|
+
const name = nameOf(at);
|
|
66
|
+
if (name)
|
|
67
|
+
return { name, view, elements: [at] };
|
|
68
|
+
}
|
|
69
|
+
/* Else a heading's block: the heading itself, or the nearest one before it among its siblings, up the tree. */
|
|
70
|
+
for (let at = element; at; at = at.parentElement) {
|
|
71
|
+
for (let before = at; before; before = before.previousElementSibling) {
|
|
72
|
+
if (levelOf(before) === undefined)
|
|
73
|
+
continue;
|
|
74
|
+
const block = headedBlock(before);
|
|
75
|
+
if (!block.includes(at))
|
|
76
|
+
break;
|
|
77
|
+
const name = words(before.textContent);
|
|
78
|
+
if (name)
|
|
79
|
+
return { name, view, elements: block };
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=view-sections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-sections.js","sourceRoot":"","sources":["../src/view-sections.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graview/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.65",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@graview/layout": "0.1.
|
|
23
|
-
"@graview/
|
|
24
|
-
"@graview/core": "0.1.
|
|
25
|
-
"@graview/
|
|
22
|
+
"@graview/layout": "0.1.65",
|
|
23
|
+
"@graview/render": "0.1.65",
|
|
24
|
+
"@graview/core": "0.1.65",
|
|
25
|
+
"@graview/tools": "0.1.65"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=18",
|