@gunkin/uiify 0.0.15-alpha → 0.0.16-alpha
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 +34 -1
- package/agents/components.md +1 -0
- package/agents/index.md +7 -1
- package/agents/reference/components/table-of-contents.md +185 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/table-of-contents/TableOfContents.d.ts +22 -0
- package/dist/components/table-of-contents/TableOfContents.d.ts.map +1 -0
- package/dist/components/table-of-contents/TableOfContents.js +142 -0
- package/dist/components/table-of-contents/TableOfContents.js.map +1 -0
- package/dist/components/table-of-contents/client/TableOfContentsClient.d.ts +18 -0
- package/dist/components/table-of-contents/client/TableOfContentsClient.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/TableOfContentsClient.js +140 -0
- package/dist/components/table-of-contents/client/TableOfContentsClient.js.map +1 -0
- package/dist/components/table-of-contents/client/TableOfContentsClientParts.d.ts +7 -0
- package/dist/components/table-of-contents/client/TableOfContentsClientParts.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/TableOfContentsClientParts.js +48 -0
- package/dist/components/table-of-contents/client/TableOfContentsClientParts.js.map +1 -0
- package/dist/components/table-of-contents/client/index.d.ts +5 -0
- package/dist/components/table-of-contents/client/index.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/index.js +23 -0
- package/dist/components/table-of-contents/client/index.js.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-context.d.ts +3 -0
- package/dist/components/table-of-contents/client/table-of-contents-context.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-context.js +7 -0
- package/dist/components/table-of-contents/client/table-of-contents-context.js.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-interactions.d.ts +3 -0
- package/dist/components/table-of-contents/client/table-of-contents-interactions.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-interactions.js +144 -0
- package/dist/components/table-of-contents/client/table-of-contents-interactions.js.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-pointer.d.ts +3 -0
- package/dist/components/table-of-contents/client/table-of-contents-pointer.d.ts.map +1 -0
- package/dist/components/table-of-contents/client/table-of-contents-pointer.js +94 -0
- package/dist/components/table-of-contents/client/table-of-contents-pointer.js.map +1 -0
- package/dist/components/table-of-contents/client.d.ts +1 -0
- package/dist/components/table-of-contents/client.js +1 -0
- package/dist/components/table-of-contents/index.d.ts +3 -0
- package/dist/components/table-of-contents/index.d.ts.map +1 -0
- package/dist/components/table-of-contents/index.js +21 -0
- package/dist/components/table-of-contents/index.js.map +1 -0
- package/dist/components/table-of-contents/scrollspy-selection.d.ts +4 -0
- package/dist/components/table-of-contents/scrollspy-selection.d.ts.map +1 -0
- package/dist/components/table-of-contents/scrollspy-selection.js +31 -0
- package/dist/components/table-of-contents/scrollspy-selection.js.map +1 -0
- package/dist/components/table-of-contents/scrollspy.d.ts +4 -0
- package/dist/components/table-of-contents/scrollspy.d.ts.map +1 -0
- package/dist/components/table-of-contents/scrollspy.js +178 -0
- package/dist/components/table-of-contents/scrollspy.js.map +1 -0
- package/dist/components/table-of-contents/types.d.ts +123 -0
- package/dist/components/table-of-contents/types.d.ts.map +1 -0
- package/dist/components/table-of-contents/types.js +1 -0
- package/dist/components/table-of-contents/types.js.map +1 -0
- package/dist/components/table-of-contents.d.ts +1 -0
- package/dist/components/table-of-contents.js +1 -0
- package/dist/styles/index.css +1 -1
- package/package.json +3 -2
- package/skills/uiify/SKILL.md +167 -0
- package/skills/uiify/scripts/lint.mjs +56 -0
- package/skills/uiify/scripts/static.mjs +95 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { getTableOfContentsValue, resolveTableOfContentsId } from "./scrollspy-selection.js";
|
|
2
|
+
import { getTableOfContentsValue as getTableOfContentsValue2, resolveTableOfContentsId as resolveTableOfContentsId2 } from "./scrollspy-selection.js";
|
|
3
|
+
function observeTableOfContents({
|
|
4
|
+
root,
|
|
5
|
+
scrollTarget,
|
|
6
|
+
contentTarget,
|
|
7
|
+
offset,
|
|
8
|
+
onValueChange
|
|
9
|
+
}) {
|
|
10
|
+
const doc = root.ownerDocument;
|
|
11
|
+
const view = doc.defaultView;
|
|
12
|
+
let scrollNode = null;
|
|
13
|
+
let content = null;
|
|
14
|
+
let host = null;
|
|
15
|
+
let observer = null;
|
|
16
|
+
let nodes = [];
|
|
17
|
+
let positions = /* @__PURE__ */ new Map();
|
|
18
|
+
let contentEnd = null;
|
|
19
|
+
let viewportSize = 0;
|
|
20
|
+
let frame = 0;
|
|
21
|
+
let generation = 0;
|
|
22
|
+
let destroyed = false;
|
|
23
|
+
let last;
|
|
24
|
+
const resized = /* @__PURE__ */ new Set();
|
|
25
|
+
const emit = (value) => {
|
|
26
|
+
if (last !== value) {
|
|
27
|
+
last = value;
|
|
28
|
+
onValueChange(value);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const position = () => {
|
|
32
|
+
return scrollNode ? scrollNode.scrollTop : view.scrollY;
|
|
33
|
+
};
|
|
34
|
+
const update = () => {
|
|
35
|
+
if (positions.size !== nodes.length || !viewportSize) return;
|
|
36
|
+
const start = position();
|
|
37
|
+
emit(
|
|
38
|
+
getTableOfContentsValue({
|
|
39
|
+
targets: nodes.flatMap((node) => {
|
|
40
|
+
const target = positions.get(node);
|
|
41
|
+
return target ? [target] : [];
|
|
42
|
+
}),
|
|
43
|
+
viewportStart: start,
|
|
44
|
+
viewportEnd: start + viewportSize,
|
|
45
|
+
offset,
|
|
46
|
+
contentEnd
|
|
47
|
+
})
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
const scroll = () => {
|
|
51
|
+
if (!frame)
|
|
52
|
+
frame = view.requestAnimationFrame(() => {
|
|
53
|
+
frame = 0;
|
|
54
|
+
update();
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const schedule = () => {
|
|
58
|
+
if (frame) view.cancelAnimationFrame(frame);
|
|
59
|
+
frame = view.requestAnimationFrame(() => {
|
|
60
|
+
frame = 0;
|
|
61
|
+
refresh();
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const resize = new view.ResizeObserver(schedule);
|
|
65
|
+
const mutations = new view.MutationObserver((changes) => {
|
|
66
|
+
if (changes.some((change) => !root.contains(change.target))) schedule();
|
|
67
|
+
});
|
|
68
|
+
const links = new view.MutationObserver(schedule);
|
|
69
|
+
links.observe(root, {
|
|
70
|
+
subtree: true,
|
|
71
|
+
childList: true,
|
|
72
|
+
attributes: true,
|
|
73
|
+
attributeFilter: ["href"]
|
|
74
|
+
});
|
|
75
|
+
function refresh() {
|
|
76
|
+
if (destroyed) return;
|
|
77
|
+
generation++;
|
|
78
|
+
observer?.disconnect();
|
|
79
|
+
mutations.disconnect();
|
|
80
|
+
scrollNode = scrollTarget === void 0 ? null : doc.getElementById(scrollTarget);
|
|
81
|
+
content = contentTarget === void 0 ? doc.documentElement : doc.getElementById(contentTarget);
|
|
82
|
+
const nextHost = scrollTarget !== void 0 && !scrollNode ? null : scrollNode ?? view;
|
|
83
|
+
if (host !== nextHost) {
|
|
84
|
+
host?.removeEventListener("scroll", scroll);
|
|
85
|
+
host = nextHost;
|
|
86
|
+
host?.addEventListener("scroll", scroll, { passive: true });
|
|
87
|
+
}
|
|
88
|
+
if (!host || !content) {
|
|
89
|
+
emit(null);
|
|
90
|
+
mutations.observe(doc.documentElement, { subtree: true, childList: true });
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const values = /* @__PURE__ */ new Map();
|
|
94
|
+
for (const link of root.querySelectorAll('[data-part="link"][href]')) {
|
|
95
|
+
if (link.closest("[data-uiify-table-of-contents]") !== root) continue;
|
|
96
|
+
const value = resolveTableOfContentsId(link.getAttribute("href"), doc.URL);
|
|
97
|
+
const node = value === null ? null : doc.getElementById(value);
|
|
98
|
+
if (node && content.contains(node)) values.set(node, value);
|
|
99
|
+
}
|
|
100
|
+
nodes = [...values.keys()].sort((a, b) => a.compareDocumentPosition(b) & 2 ? 1 : -1);
|
|
101
|
+
positions = /* @__PURE__ */ new Map();
|
|
102
|
+
contentEnd = null;
|
|
103
|
+
viewportSize = 0;
|
|
104
|
+
if (!nodes.length) emit(null);
|
|
105
|
+
const current = generation;
|
|
106
|
+
observer = new view.IntersectionObserver(
|
|
107
|
+
(entries) => {
|
|
108
|
+
if (destroyed || generation !== current) return;
|
|
109
|
+
const start = position();
|
|
110
|
+
for (const entry of entries) {
|
|
111
|
+
const rect = entry.boundingClientRect;
|
|
112
|
+
const origin = entry.rootBounds?.top ?? 0;
|
|
113
|
+
viewportSize = entry.rootBounds?.height ?? viewportSize;
|
|
114
|
+
if (entry.target === content) contentEnd = rect.bottom + start - origin;
|
|
115
|
+
const value = values.get(entry.target);
|
|
116
|
+
if (value !== void 0)
|
|
117
|
+
positions.set(entry.target, {
|
|
118
|
+
value,
|
|
119
|
+
start: rect.top + start - origin,
|
|
120
|
+
visible: rect.width > 0 && rect.height > 0
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
update();
|
|
124
|
+
},
|
|
125
|
+
{ root: scrollNode, threshold: [0, 1] }
|
|
126
|
+
);
|
|
127
|
+
const observed = /* @__PURE__ */ new Set([content, ...nodes, ...scrollNode ? [scrollNode] : []]);
|
|
128
|
+
for (const node of resized)
|
|
129
|
+
if (!observed.has(node)) {
|
|
130
|
+
resize.unobserve(node);
|
|
131
|
+
resized.delete(node);
|
|
132
|
+
}
|
|
133
|
+
for (const node of observed) {
|
|
134
|
+
if (node !== scrollNode) observer.observe(node);
|
|
135
|
+
if (!resized.has(node)) {
|
|
136
|
+
resize.observe(node);
|
|
137
|
+
resized.add(node);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const boundaries = contentTarget !== void 0 ? [content] : new Set(
|
|
141
|
+
nodes.map((node) => {
|
|
142
|
+
const parent = node.closest("article, main") ?? node.parentElement;
|
|
143
|
+
return parent && parent !== doc.body && parent !== doc.documentElement ? parent : node;
|
|
144
|
+
})
|
|
145
|
+
);
|
|
146
|
+
for (const boundary of boundaries)
|
|
147
|
+
mutations.observe(boundary, {
|
|
148
|
+
subtree: true,
|
|
149
|
+
childList: true,
|
|
150
|
+
attributes: true,
|
|
151
|
+
attributeFilter: ["id", "hidden", "open", "class", "style"]
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
view.addEventListener("resize", schedule);
|
|
155
|
+
view.addEventListener("hashchange", scroll);
|
|
156
|
+
refresh();
|
|
157
|
+
return {
|
|
158
|
+
refresh,
|
|
159
|
+
destroy() {
|
|
160
|
+
destroyed = true;
|
|
161
|
+
generation++;
|
|
162
|
+
observer?.disconnect();
|
|
163
|
+
resize.disconnect();
|
|
164
|
+
mutations.disconnect();
|
|
165
|
+
links.disconnect();
|
|
166
|
+
host?.removeEventListener("scroll", scroll);
|
|
167
|
+
view.removeEventListener("resize", schedule);
|
|
168
|
+
view.removeEventListener("hashchange", scroll);
|
|
169
|
+
if (frame) view.cancelAnimationFrame(frame);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
export {
|
|
174
|
+
getTableOfContentsValue2 as getTableOfContentsValue,
|
|
175
|
+
observeTableOfContents,
|
|
176
|
+
resolveTableOfContentsId2 as resolveTableOfContentsId
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=scrollspy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/table-of-contents/scrollspy.ts"],"sourcesContent":["import { getTableOfContentsValue, resolveTableOfContentsId } from \"./scrollspy-selection.js\";\nimport type {\n TableOfContentsObserver,\n TableOfContentsObserverOptions,\n TableOfContentsTargetSnapshot,\n} from \"./types.js\";\nexport { getTableOfContentsValue, resolveTableOfContentsId } from \"./scrollspy-selection.js\";\n\nexport function observeTableOfContents({\n root,\n scrollTarget,\n contentTarget,\n offset,\n onValueChange,\n}: TableOfContentsObserverOptions): TableOfContentsObserver {\n const doc = root.ownerDocument;\n const view = doc.defaultView!;\n let scrollNode: HTMLElement | null = null;\n let content: HTMLElement | null = null;\n let host: EventTarget | null = null;\n let observer: IntersectionObserver | null = null;\n let nodes: HTMLElement[] = [];\n let positions = new Map<Element, TableOfContentsTargetSnapshot>();\n let contentEnd: number | null = null;\n let viewportSize = 0;\n let frame = 0;\n let generation = 0;\n let destroyed = false;\n let last: string | null | undefined;\n const resized = new Set<Element>();\n const emit = (value: string | null) => {\n if (last !== value) {\n last = value;\n onValueChange(value);\n }\n };\n const position = () => {\n // banned-read-ok: A scroll offset is the required input, not a layout measurement; geometry comes from observers.\n return scrollNode ? scrollNode.scrollTop : view.scrollY;\n };\n const update = () => {\n if (positions.size !== nodes.length || !viewportSize) return;\n const start = position();\n emit(\n getTableOfContentsValue({\n targets: nodes.flatMap((node) => {\n const target = positions.get(node);\n return target ? [target] : [];\n }),\n viewportStart: start,\n viewportEnd: start + viewportSize,\n offset,\n contentEnd,\n }),\n );\n };\n const scroll = () => {\n if (!frame)\n frame = view.requestAnimationFrame(() => {\n frame = 0;\n update();\n });\n };\n const schedule = () => {\n if (frame) view.cancelAnimationFrame(frame);\n frame = view.requestAnimationFrame(() => {\n frame = 0;\n refresh();\n });\n };\n const resize = new view.ResizeObserver(schedule);\n const mutations = new view.MutationObserver((changes) => {\n if (changes.some((change) => !root.contains(change.target))) schedule();\n });\n const links = new view.MutationObserver(schedule);\n links.observe(root, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"href\"],\n });\n function refresh() {\n if (destroyed) return;\n generation++;\n observer?.disconnect();\n mutations.disconnect();\n scrollNode = scrollTarget === undefined ? null : doc.getElementById(scrollTarget);\n content = contentTarget === undefined ? doc.documentElement : doc.getElementById(contentTarget);\n const nextHost = scrollTarget !== undefined && !scrollNode ? null : (scrollNode ?? view);\n if (host !== nextHost) {\n host?.removeEventListener(\"scroll\", scroll);\n host = nextHost;\n host?.addEventListener(\"scroll\", scroll, { passive: true });\n }\n if (!host || !content) {\n emit(null);\n mutations.observe(doc.documentElement, { subtree: true, childList: true });\n return;\n }\n const values = new Map<HTMLElement, string>();\n for (const link of root.querySelectorAll('[data-part=\"link\"][href]')) {\n if (link.closest(\"[data-uiify-table-of-contents]\") !== root) continue;\n const value = resolveTableOfContentsId(link.getAttribute(\"href\")!, doc.URL);\n const node = value === null ? null : doc.getElementById(value);\n if (node && content.contains(node)) values.set(node, value!);\n }\n nodes = [...values.keys()].sort((a, b) => (a.compareDocumentPosition(b) & 2 ? 1 : -1));\n positions = new Map();\n contentEnd = null;\n viewportSize = 0;\n if (!nodes.length) emit(null);\n const current = generation;\n observer = new view.IntersectionObserver(\n (entries) => {\n if (destroyed || generation !== current) return;\n const start = position();\n for (const entry of entries) {\n const rect = entry.boundingClientRect;\n const origin = entry.rootBounds?.top ?? 0;\n viewportSize = entry.rootBounds?.height ?? viewportSize;\n if (entry.target === content) contentEnd = rect.bottom + start - origin;\n const value = values.get(entry.target as HTMLElement);\n if (value !== undefined)\n positions.set(entry.target, {\n value,\n start: rect.top + start - origin,\n visible: rect.width > 0 && rect.height > 0,\n });\n }\n update();\n },\n { root: scrollNode, threshold: [0, 1] },\n );\n const observed = new Set<Element>([content, ...nodes, ...(scrollNode ? [scrollNode] : [])]);\n for (const node of resized)\n if (!observed.has(node)) {\n resize.unobserve(node);\n resized.delete(node);\n }\n for (const node of observed) {\n if (node !== scrollNode) observer.observe(node);\n if (!resized.has(node)) {\n resize.observe(node);\n resized.add(node);\n }\n }\n const boundaries =\n contentTarget !== undefined\n ? [content]\n : new Set(\n nodes.map((node) => {\n const parent = node.closest(\"article, main\") ?? node.parentElement;\n return parent && parent !== doc.body && parent !== doc.documentElement\n ? parent\n : node;\n }),\n );\n for (const boundary of boundaries)\n mutations.observe(boundary, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"id\", \"hidden\", \"open\", \"class\", \"style\"],\n });\n }\n view.addEventListener(\"resize\", schedule);\n view.addEventListener(\"hashchange\", scroll);\n refresh();\n return {\n refresh,\n destroy() {\n destroyed = true;\n generation++;\n observer?.disconnect();\n resize.disconnect();\n mutations.disconnect();\n links.disconnect();\n host?.removeEventListener(\"scroll\", scroll);\n view.removeEventListener(\"resize\", schedule);\n view.removeEventListener(\"hashchange\", scroll);\n if (frame) view.cancelAnimationFrame(frame);\n },\n };\n}\n"],"mappings":"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","names":["getTableOfContentsValue","resolveTableOfContentsId"]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { AriaAttributes, CSSProperties, Ref, MouseEventHandler, ElementType, ReactNode } from "react";
|
|
2
|
+
import type { NativeButtonProps, RenderableProps } from "../../core/render.js";
|
|
3
|
+
import type { AnchorAlign, AnchorSide } from "../../core/anchor-position/types.js";
|
|
4
|
+
export type TableOfContentsLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
5
|
+
export interface TableOfContentsRootOwnProps {
|
|
6
|
+
readonly children?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export type TableOfContentsRootProps<TAs extends ElementType = "nav"> = RenderableProps<TAs, TableOfContentsRootOwnProps, Record<string, never>, HTMLElement>;
|
|
9
|
+
export interface TableOfContentsTriggerOwnProps {
|
|
10
|
+
readonly children?: ReactNode;
|
|
11
|
+
readonly target: string;
|
|
12
|
+
}
|
|
13
|
+
export type TableOfContentsTriggerProps<TAs extends ElementType = "button"> = NativeButtonProps<TAs, TableOfContentsTriggerOwnProps>;
|
|
14
|
+
export interface TableOfContentsRailOwnProps {
|
|
15
|
+
readonly children?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export type TableOfContentsRailProps<TAs extends ElementType = "span"> = RenderableProps<TAs, TableOfContentsRailOwnProps, Record<string, never>, HTMLElement>;
|
|
18
|
+
export interface TableOfContentsIndicatorOwnProps {
|
|
19
|
+
readonly ref?: Ref<HTMLElement>;
|
|
20
|
+
readonly style?: CSSProperties;
|
|
21
|
+
readonly children?: ReactNode;
|
|
22
|
+
/** Stable target ID matching a Link fragment. */
|
|
23
|
+
readonly value: string;
|
|
24
|
+
readonly level?: TableOfContentsLevel;
|
|
25
|
+
readonly selected?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export type TableOfContentsIndicatorProps<TAs extends ElementType = "span"> = RenderableProps<TAs, TableOfContentsIndicatorOwnProps, {
|
|
28
|
+
selected: boolean;
|
|
29
|
+
}, HTMLElement>;
|
|
30
|
+
export interface TableOfContentsContentOwnProps {
|
|
31
|
+
readonly children?: ReactNode;
|
|
32
|
+
readonly id: string;
|
|
33
|
+
readonly side?: AnchorSide;
|
|
34
|
+
readonly align?: AnchorAlign;
|
|
35
|
+
}
|
|
36
|
+
export type TableOfContentsContentProps<TAs extends ElementType = "div"> = RenderableProps<TAs, TableOfContentsContentOwnProps, Record<string, never>, HTMLElement>;
|
|
37
|
+
export interface TableOfContentsListOwnProps {
|
|
38
|
+
readonly children?: ReactNode;
|
|
39
|
+
}
|
|
40
|
+
export type TableOfContentsListProps<TAs extends ElementType = "div"> = RenderableProps<TAs, TableOfContentsListOwnProps, Record<string, never>, HTMLElement>;
|
|
41
|
+
export interface TableOfContentsLinkOwnProps {
|
|
42
|
+
readonly style?: CSSProperties;
|
|
43
|
+
readonly "aria-current"?: AriaAttributes["aria-current"];
|
|
44
|
+
readonly children?: ReactNode;
|
|
45
|
+
/** Native same-page anchor; external URLs are not tracked by scrollspy. */
|
|
46
|
+
readonly href: string;
|
|
47
|
+
readonly level?: TableOfContentsLevel;
|
|
48
|
+
readonly selected?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export type TableOfContentsLinkProps<TAs extends ElementType = "a"> = RenderableProps<TAs, TableOfContentsLinkOwnProps, {
|
|
51
|
+
selected: boolean;
|
|
52
|
+
}, HTMLAnchorElement>;
|
|
53
|
+
export interface TableOfContentsTargetSnapshot {
|
|
54
|
+
readonly value: string;
|
|
55
|
+
readonly start: number;
|
|
56
|
+
readonly visible: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface TableOfContentsScrollSnapshot {
|
|
59
|
+
readonly targets: readonly TableOfContentsTargetSnapshot[];
|
|
60
|
+
readonly viewportStart: number;
|
|
61
|
+
readonly viewportEnd: number;
|
|
62
|
+
readonly offset: number;
|
|
63
|
+
readonly contentEnd: number | null;
|
|
64
|
+
}
|
|
65
|
+
export interface TableOfContentsObserverOptions {
|
|
66
|
+
readonly root: HTMLElement;
|
|
67
|
+
readonly scrollTarget?: string | undefined;
|
|
68
|
+
readonly contentTarget?: string | undefined;
|
|
69
|
+
readonly offset: number;
|
|
70
|
+
readonly onValueChange: (value: string | null) => void;
|
|
71
|
+
}
|
|
72
|
+
export interface TableOfContentsObserver {
|
|
73
|
+
readonly refresh: () => void;
|
|
74
|
+
readonly destroy: () => void;
|
|
75
|
+
}
|
|
76
|
+
export interface TableOfContentsClientRootOwnProps extends TableOfContentsRootOwnProps {
|
|
77
|
+
readonly ref?: Ref<HTMLElement>;
|
|
78
|
+
readonly className?: string;
|
|
79
|
+
readonly style?: CSSProperties;
|
|
80
|
+
readonly onClick?: MouseEventHandler<HTMLElement>;
|
|
81
|
+
readonly scrollSpy?: boolean;
|
|
82
|
+
/** Scroll-container element ID; omitted tracks the owning window. */
|
|
83
|
+
readonly scrollTarget?: string;
|
|
84
|
+
/** Content element ID used for target scope and end-of-content selection. */
|
|
85
|
+
readonly contentTarget?: string;
|
|
86
|
+
readonly offset?: number;
|
|
87
|
+
readonly value?: string | null;
|
|
88
|
+
readonly defaultValue?: string | null;
|
|
89
|
+
readonly onValueChange?: (value: string | null) => void;
|
|
90
|
+
readonly open?: boolean;
|
|
91
|
+
/** Applied after hydration; the native SSR surface starts closed. */
|
|
92
|
+
readonly defaultOpen?: boolean;
|
|
93
|
+
readonly onOpenChange?: (open: boolean) => void;
|
|
94
|
+
readonly openOnHover?: boolean;
|
|
95
|
+
readonly openDelay?: number;
|
|
96
|
+
readonly closeDelay?: number;
|
|
97
|
+
}
|
|
98
|
+
export type TableOfContentsClientRootProps<TAs extends ElementType = "nav"> = RenderableProps<TAs, TableOfContentsClientRootOwnProps, {
|
|
99
|
+
value: string | null;
|
|
100
|
+
open: boolean;
|
|
101
|
+
}, HTMLElement>;
|
|
102
|
+
export interface TableOfContentsClientContextValue {
|
|
103
|
+
readonly value: string | null;
|
|
104
|
+
readonly open: boolean;
|
|
105
|
+
readonly documentUrl: string | undefined;
|
|
106
|
+
}
|
|
107
|
+
export interface TableOfContentsInteractionOptions {
|
|
108
|
+
readonly root: HTMLElement;
|
|
109
|
+
readonly getOpen: () => boolean;
|
|
110
|
+
readonly requestOpen: (open: boolean) => void;
|
|
111
|
+
readonly controlled: boolean;
|
|
112
|
+
readonly openOnHover: boolean;
|
|
113
|
+
readonly openDelay: number;
|
|
114
|
+
readonly closeDelay: number;
|
|
115
|
+
}
|
|
116
|
+
export interface TableOfContentsInteractions {
|
|
117
|
+
readonly click: (event: MouseEvent) => void;
|
|
118
|
+
readonly destroy: () => void;
|
|
119
|
+
}
|
|
120
|
+
export interface TableOfContentsPointerOptions {
|
|
121
|
+
readonly root: HTMLElement;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/table-of-contents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./table-of-contents/index.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./table-of-contents/index.js";
|