extrojs 0.2.0 → 0.3.0
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/client.d.ts +7 -15
- package/dist/commands/build.js +1 -1
- package/dist/commands/dev.js +12 -29
- package/dist/config.d.ts +2 -2
- package/dist/core/asset.d.ts +10 -0
- package/dist/core/asset.js +10 -0
- package/dist/dev-assets.d.ts +3 -3
- package/dist/dev-assets.js +18 -16
- package/dist/exports/asset.d.ts +1 -0
- package/dist/exports/asset.js +1 -0
- package/dist/exports/link.d.ts +1 -0
- package/dist/exports/link.js +1 -0
- package/dist/exports/navigation.d.ts +2 -0
- package/dist/exports/navigation.js +1 -0
- package/dist/exports/runtime.d.ts +2 -0
- package/dist/exports/runtime.js +3 -0
- package/dist/load-config.d.ts +1 -1
- package/dist/paths.d.ts +1 -1
- package/dist/plugin/app-tree.d.ts +59 -0
- package/dist/plugin/app-tree.js +214 -0
- package/dist/plugin/asset-inventory.d.ts +24 -0
- package/dist/plugin/asset-inventory.js +9 -0
- package/dist/plugin/dev-reactions.d.ts +59 -0
- package/dist/plugin/dev-reactions.js +62 -0
- package/dist/plugin/emit-assets.d.ts +50 -0
- package/dist/plugin/emit-assets.js +40 -0
- package/dist/plugin/generators/html.d.ts +39 -0
- package/dist/plugin/generators/html.js +127 -0
- package/dist/plugin/generators/icons.d.ts +15 -0
- package/dist/plugin/generators/icons.js +16 -0
- package/dist/plugin/generators/public.d.ts +17 -0
- package/dist/plugin/generators/public.js +20 -0
- package/dist/plugin/icons.d.ts +5 -0
- package/dist/plugin/icons.js +20 -0
- package/dist/plugin/index.d.ts +31 -0
- package/dist/plugin/index.js +246 -0
- package/dist/plugin/internal.d.ts +14 -0
- package/dist/plugin/internal.js +6 -0
- package/dist/plugin/manifest.d.ts +29 -0
- package/dist/plugin/manifest.js +68 -0
- package/dist/plugin/public.d.ts +21 -0
- package/dist/plugin/public.js +63 -0
- package/dist/plugin/runtimes/clients/csui-mount.js +90 -0
- package/dist/plugin/runtimes/clients/dev-bridge.js +194 -0
- package/dist/plugin/runtimes/csui-mount.d.ts +18 -0
- package/dist/plugin/runtimes/csui-mount.js +21 -0
- package/dist/plugin/runtimes/dev-bridge.d.ts +22 -0
- package/dist/plugin/runtimes/dev-bridge.js +19 -0
- package/dist/plugin/runtimes/routes-module.d.ts +20 -0
- package/dist/plugin/runtimes/routes-module.js +51 -0
- package/dist/plugin/runtimes/runtime-module.d.ts +16 -0
- package/dist/plugin/runtimes/runtime-module.js +40 -0
- package/dist/plugin/surfaces.d.ts +37 -0
- package/dist/plugin/surfaces.js +67 -0
- package/dist/plugin/types/index.d.ts +9 -0
- package/dist/plugin/types/index.js +1 -0
- package/dist/plugin/utils/read-json.d.ts +1 -0
- package/dist/plugin/utils/read-json.js +8 -0
- package/dist/react/env.d.ts +13 -0
- package/dist/react/env.js +1 -0
- package/dist/router/build-tree.d.ts +46 -0
- package/dist/router/build-tree.js +56 -0
- package/dist/router/context.d.ts +13 -0
- package/dist/router/context.js +2 -0
- package/dist/router/create-router.d.ts +10 -0
- package/dist/router/create-router.js +126 -0
- package/dist/router/defaults.d.ts +24 -0
- package/dist/router/defaults.js +25 -0
- package/dist/router/error-boundary.d.ts +23 -0
- package/dist/router/error-boundary.js +21 -0
- package/dist/router/hooks.d.ts +18 -0
- package/dist/router/hooks.js +34 -0
- package/dist/router/index.d.ts +8 -0
- package/dist/router/index.js +7 -0
- package/dist/router/link.d.ts +305 -0
- package/dist/router/link.js +30 -0
- package/dist/router/match.d.ts +14 -0
- package/dist/router/match.js +27 -0
- package/dist/router/types.d.ts +55 -0
- package/dist/router/types.js +1 -0
- package/dist/types/index.d.ts +152 -0
- package/dist/types/index.js +1 -0
- package/package.json +39 -7
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface Router {
|
|
2
|
+
push: (to: string) => void;
|
|
3
|
+
replace: (to: string) => void;
|
|
4
|
+
back: () => void;
|
|
5
|
+
forward: () => void;
|
|
6
|
+
}
|
|
7
|
+
export interface RouterContextValue {
|
|
8
|
+
pathname: string;
|
|
9
|
+
search: string;
|
|
10
|
+
params: Record<string, string>;
|
|
11
|
+
router: Router;
|
|
12
|
+
}
|
|
13
|
+
export declare const RouterContext: import("react").Context<RouterContextValue | null>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CreateRouterOptions, Route, RouterSurfaceOptions } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* @describe Mounts a surface (popup | options | sidepanel) and wires hash-based
|
|
4
|
+
* client-side routing into the given routes array. Called once per surface by
|
|
5
|
+
* the virtual runtime module emitted by @extrojs/vite-plugin.
|
|
6
|
+
*/
|
|
7
|
+
export interface ExtroRouterHandle {
|
|
8
|
+
update: (newRoutes: Route[], opts?: RouterSurfaceOptions) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const createExtroRouter: (routes: Route[], options?: CreateRouterOptions) => ExtroRouterHandle;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { createRoot } from "react-dom/client";
|
|
2
|
+
import { matchRoutes } from "./match.js";
|
|
3
|
+
import { DefaultNotFound } from "./defaults.js";
|
|
4
|
+
import { buildTree } from "./build-tree.js";
|
|
5
|
+
const toError = (err) => err instanceof Error ? err : new Error(String(err));
|
|
6
|
+
export const createExtroRouter = (routes, options = {}) => {
|
|
7
|
+
const { rootId = "root" } = options;
|
|
8
|
+
const el = document.getElementById(rootId);
|
|
9
|
+
if (!el) {
|
|
10
|
+
throw new Error(`Extro: #${rootId} element not found`);
|
|
11
|
+
}
|
|
12
|
+
const root = createRoot(el);
|
|
13
|
+
const router = createRouter();
|
|
14
|
+
let currentRoutes = routes;
|
|
15
|
+
let notFound = options.notFound ?? null;
|
|
16
|
+
let rootLayout = options.rootLayout ?? null;
|
|
17
|
+
let navToken = 0;
|
|
18
|
+
// Built-in fallback when the surface has no not-found.tsx (ADR 0003 §5).
|
|
19
|
+
const loadNotFound = () => notFound ? notFound() : Promise.resolve({ default: DefaultNotFound });
|
|
20
|
+
// Pure orchestration: resolve the navigation outcome (with the navToken
|
|
21
|
+
// guard + load failure handling) and hand it to `buildTree`. No structure
|
|
22
|
+
// lives here — every renderable shape is in build-tree.ts (ADR 0006).
|
|
23
|
+
const render = async () => {
|
|
24
|
+
const token = ++navToken;
|
|
25
|
+
const { pathname, search } = parseLocation();
|
|
26
|
+
const ctx = { pathname, search, router };
|
|
27
|
+
const matches = matchRoutes(pathname, currentRoutes);
|
|
28
|
+
if (!matches) {
|
|
29
|
+
// No Route matched: not-found inside the surface-root layout only
|
|
30
|
+
// (ADR 0003 §4). Nothing matched, so no deeper layout is in scope.
|
|
31
|
+
let nf;
|
|
32
|
+
let rl;
|
|
33
|
+
try {
|
|
34
|
+
;
|
|
35
|
+
[nf, rl] = await Promise.all([
|
|
36
|
+
loadNotFound(),
|
|
37
|
+
rootLayout ? rootLayout() : Promise.resolve(null),
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
if (token !== navToken)
|
|
42
|
+
return;
|
|
43
|
+
root.render(buildTree({ type: "load-error", error: toError(err), reset: () => void render() }, ctx));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (token !== navToken)
|
|
47
|
+
return;
|
|
48
|
+
root.render(buildTree({
|
|
49
|
+
type: "not-found",
|
|
50
|
+
notFound: nf.default,
|
|
51
|
+
rootLayout: rl ? rl.default : null,
|
|
52
|
+
}, ctx));
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const leaf = matches[matches.length - 1];
|
|
56
|
+
// Page + ancestor boundaries load in parallel, in route order
|
|
57
|
+
// (outermost first). A missing/broken module rejects here — outside
|
|
58
|
+
// React render, so no boundary can catch it; surface the built-in
|
|
59
|
+
// error instead of blanking the surface (ADR 0003 §5).
|
|
60
|
+
let mod;
|
|
61
|
+
let boundaryMods;
|
|
62
|
+
try {
|
|
63
|
+
;
|
|
64
|
+
[mod, ...boundaryMods] = await Promise.all([
|
|
65
|
+
leaf.route.load(),
|
|
66
|
+
...leaf.route.boundaries.map((b) => b.load()),
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
if (token !== navToken)
|
|
71
|
+
return;
|
|
72
|
+
root.render(buildTree({ type: "load-error", error: toError(err), reset: () => void render() }, ctx));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (token !== navToken)
|
|
76
|
+
return;
|
|
77
|
+
// Zip each boundary's kind with its loaded component; structure (the
|
|
78
|
+
// §3 nesting) is buildTree's job, not this orchestrator's.
|
|
79
|
+
const boundaries = leaf.route.boundaries.map((b, i) => ({
|
|
80
|
+
kind: b.kind,
|
|
81
|
+
component: boundaryMods[i].default,
|
|
82
|
+
}));
|
|
83
|
+
root.render(buildTree({
|
|
84
|
+
type: "match",
|
|
85
|
+
page: mod.default,
|
|
86
|
+
params: leaf.params,
|
|
87
|
+
boundaries,
|
|
88
|
+
}, ctx));
|
|
89
|
+
};
|
|
90
|
+
window.addEventListener("hashchange", render);
|
|
91
|
+
render();
|
|
92
|
+
return {
|
|
93
|
+
update: (newRoutes, opts) => {
|
|
94
|
+
currentRoutes = newRoutes;
|
|
95
|
+
if (opts) {
|
|
96
|
+
notFound = opts.notFound ?? null;
|
|
97
|
+
rootLayout = opts.rootLayout ?? null;
|
|
98
|
+
}
|
|
99
|
+
render();
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* @describe Normalizes `window.location.hash` into a pathname + search string.
|
|
105
|
+
*/
|
|
106
|
+
const parseLocation = () => {
|
|
107
|
+
const [rawPath = "", search = ""] = window.location.hash.replace(/^#/, "").split("?");
|
|
108
|
+
return { pathname: rawPath || "/", search };
|
|
109
|
+
};
|
|
110
|
+
const stripHash = (to) => (to.startsWith("#") ? to.slice(1) : to);
|
|
111
|
+
/**
|
|
112
|
+
* @describe Builds the stable router object passed through context. `replace`
|
|
113
|
+
* uses history.replaceState + a manual hashchange dispatch because
|
|
114
|
+
* replaceState alone doesn't fire the event.
|
|
115
|
+
*/
|
|
116
|
+
const createRouter = () => ({
|
|
117
|
+
push: (to) => {
|
|
118
|
+
window.location.hash = stripHash(to);
|
|
119
|
+
},
|
|
120
|
+
replace: (to) => {
|
|
121
|
+
window.history.replaceState(null, "", `#${stripHash(to)}`);
|
|
122
|
+
window.dispatchEvent(new HashChangeEvent("hashchange"));
|
|
123
|
+
},
|
|
124
|
+
back: () => window.history.back(),
|
|
125
|
+
forward: () => window.history.forward(),
|
|
126
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ErrorProps } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* @describe Built-in error fallback (ADR 0003 §5). Always the outermost
|
|
4
|
+
* boundary so a thrown render never blanks the surface. Deliberately
|
|
5
|
+
* unstyled and minimal; shows `error.message` always (the extension error
|
|
6
|
+
* surface is seen by the developer far more than end users in v0.x).
|
|
7
|
+
*/
|
|
8
|
+
export declare const DefaultError: ({ error, reset }: ErrorProps) => import("react").DetailedReactHTMLElement<{
|
|
9
|
+
style: {
|
|
10
|
+
padding: number;
|
|
11
|
+
fontFamily: "system-ui, sans-serif";
|
|
12
|
+
};
|
|
13
|
+
}, HTMLElement>;
|
|
14
|
+
/**
|
|
15
|
+
* @describe Built-in not-found fallback (ADR 0003 §4/§5). Rendered when a
|
|
16
|
+
* hash matches no Route. Takes no props per the user contract; reads the
|
|
17
|
+
* unmatched path from the router context it is mounted within.
|
|
18
|
+
*/
|
|
19
|
+
export declare const DefaultNotFound: () => import("react").DetailedReactHTMLElement<{
|
|
20
|
+
style: {
|
|
21
|
+
padding: number;
|
|
22
|
+
fontFamily: "system-ui, sans-serif";
|
|
23
|
+
};
|
|
24
|
+
}, HTMLElement>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
import { useLocation } from "./hooks.js";
|
|
3
|
+
/**
|
|
4
|
+
* @describe Built-in error fallback (ADR 0003 §5). Always the outermost
|
|
5
|
+
* boundary so a thrown render never blanks the surface. Deliberately
|
|
6
|
+
* unstyled and minimal; shows `error.message` always (the extension error
|
|
7
|
+
* surface is seen by the developer far more than end users in v0.x).
|
|
8
|
+
*/
|
|
9
|
+
export const DefaultError = ({ error, reset }) => createElement("div", { style: { padding: 16, fontFamily: "system-ui, sans-serif" } }, createElement("p", { style: { margin: "0 0 8px", fontWeight: 600 } }, "Something went wrong"), createElement("pre", {
|
|
10
|
+
style: {
|
|
11
|
+
margin: "0 0 12px",
|
|
12
|
+
whiteSpace: "pre-wrap",
|
|
13
|
+
fontSize: 12,
|
|
14
|
+
color: "#b00",
|
|
15
|
+
},
|
|
16
|
+
}, error.message), createElement("button", { onClick: reset }, "Try again"));
|
|
17
|
+
/**
|
|
18
|
+
* @describe Built-in not-found fallback (ADR 0003 §4/§5). Rendered when a
|
|
19
|
+
* hash matches no Route. Takes no props per the user contract; reads the
|
|
20
|
+
* unmatched path from the router context it is mounted within.
|
|
21
|
+
*/
|
|
22
|
+
export const DefaultNotFound = () => {
|
|
23
|
+
const { pathname } = useLocation();
|
|
24
|
+
return createElement("div", { style: { padding: 16, fontFamily: "system-ui, sans-serif" } }, createElement("p", { style: { margin: "0 0 4px", fontWeight: 600 } }, "404"), createElement("p", { style: { margin: 0, fontSize: 13, color: "#666" } }, `No route for ${pathname}`));
|
|
25
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ComponentType, ReactNode } from "react";
|
|
2
|
+
import type { ErrorProps } from "./types.js";
|
|
3
|
+
import { Component } from "react";
|
|
4
|
+
interface ErrorBoundaryProps {
|
|
5
|
+
fallback: ComponentType<ErrorProps>;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
interface ErrorBoundaryState {
|
|
9
|
+
error: Error | null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @describe Catches render errors in its subtree and shows `fallback` with
|
|
13
|
+
* `{ error, reset }`. Composed inside its sibling layout (ADR 0003 §3), so a
|
|
14
|
+
* caught error never tears the layout down, and `reset()` only re-renders the
|
|
15
|
+
* boundary's own contents.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
18
|
+
state: ErrorBoundaryState;
|
|
19
|
+
static getDerivedStateFromError(error: Error): ErrorBoundaryState;
|
|
20
|
+
reset: () => void;
|
|
21
|
+
render(): ReactNode;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component, createElement } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* @describe Catches render errors in its subtree and shows `fallback` with
|
|
4
|
+
* `{ error, reset }`. Composed inside its sibling layout (ADR 0003 §3), so a
|
|
5
|
+
* caught error never tears the layout down, and `reset()` only re-renders the
|
|
6
|
+
* boundary's own contents.
|
|
7
|
+
*/
|
|
8
|
+
export class ErrorBoundary extends Component {
|
|
9
|
+
state = { error: null };
|
|
10
|
+
static getDerivedStateFromError(error) {
|
|
11
|
+
return { error };
|
|
12
|
+
}
|
|
13
|
+
reset = () => this.setState({ error: null });
|
|
14
|
+
render() {
|
|
15
|
+
const { error } = this.state;
|
|
16
|
+
if (error) {
|
|
17
|
+
return createElement(this.props.fallback, { error, reset: this.reset });
|
|
18
|
+
}
|
|
19
|
+
return this.props.children;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Router } from "./context.js";
|
|
2
|
+
export declare const useLocation: () => {
|
|
3
|
+
pathname: string;
|
|
4
|
+
search: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const useParams: <T extends Record<string, string> = Record<string, string>>() => T;
|
|
7
|
+
export declare const useRouter: () => Router;
|
|
8
|
+
type SearchInit = URLSearchParams | string | Record<string, string>;
|
|
9
|
+
interface UseSearchParamsResult {
|
|
10
|
+
params: URLSearchParams;
|
|
11
|
+
setParams: (next: SearchInit) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @describe Reads + writes the URL search string. Updates use `router.replace`
|
|
15
|
+
* so query edits don't pile up history entries.
|
|
16
|
+
*/
|
|
17
|
+
export declare const useSearchParams: () => UseSearchParamsResult;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useContext, useMemo } from "react";
|
|
2
|
+
import { RouterContext } from "./context.js";
|
|
3
|
+
const useRouterContext = () => {
|
|
4
|
+
const ctx = useContext(RouterContext);
|
|
5
|
+
if (!ctx) {
|
|
6
|
+
throw new Error("Extro: router hooks must be used inside a page rendered by createExtroRouter.");
|
|
7
|
+
}
|
|
8
|
+
return ctx;
|
|
9
|
+
};
|
|
10
|
+
export const useLocation = () => {
|
|
11
|
+
const { pathname, search } = useRouterContext();
|
|
12
|
+
return { pathname, search };
|
|
13
|
+
};
|
|
14
|
+
export const useParams = () => {
|
|
15
|
+
return useRouterContext().params;
|
|
16
|
+
};
|
|
17
|
+
export const useRouter = () => useRouterContext().router;
|
|
18
|
+
/**
|
|
19
|
+
* @describe Reads + writes the URL search string. Updates use `router.replace`
|
|
20
|
+
* so query edits don't pile up history entries.
|
|
21
|
+
*/
|
|
22
|
+
export const useSearchParams = () => {
|
|
23
|
+
const { search, pathname, router } = useRouterContext();
|
|
24
|
+
const params = useMemo(() => new URLSearchParams(search), [search]);
|
|
25
|
+
const setParams = (next) => {
|
|
26
|
+
const nextSearch = next instanceof URLSearchParams
|
|
27
|
+
? next.toString()
|
|
28
|
+
: typeof next === "string"
|
|
29
|
+
? next
|
|
30
|
+
: new URLSearchParams(next).toString();
|
|
31
|
+
router.replace(nextSearch ? `${pathname}?${nextSearch}` : pathname);
|
|
32
|
+
};
|
|
33
|
+
return { params, setParams };
|
|
34
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "../react/env.js";
|
|
2
|
+
export { createExtroRouter } from "./create-router.js";
|
|
3
|
+
export type { ExtroRouterHandle } from "./create-router.js";
|
|
4
|
+
export { matchRoutes } from "./match.js";
|
|
5
|
+
export { Link } from "./link.js";
|
|
6
|
+
export { useLocation, useParams, useRouter, useSearchParams, } from "./hooks.js";
|
|
7
|
+
export type { Router, RouterContextValue } from "./context.js";
|
|
8
|
+
export type { CreateRouterOptions, DynamicRoute, ErrorProps, LayoutProps, PageProps, Route, RouteMatch, StaticRoute, } from "./types.js";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Pulls in the ambient env typing so importing a routing subpath is enough to
|
|
2
|
+
// type `import.meta.env` with no extra setup.
|
|
3
|
+
import "../react/env.js";
|
|
4
|
+
export { createExtroRouter } from "./create-router.js";
|
|
5
|
+
export { matchRoutes } from "./match.js";
|
|
6
|
+
export { Link } from "./link.js";
|
|
7
|
+
export { useLocation, useParams, useRouter, useSearchParams, } from "./hooks.js";
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import type { AnchorHTMLAttributes, MouseEvent } from "react";
|
|
2
|
+
interface LinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href"> {
|
|
3
|
+
/** Route to navigate to, e.g. "/settings". The leading "#" is added for you. */
|
|
4
|
+
href: string;
|
|
5
|
+
/** Replace the current history entry instead of pushing a new one. */
|
|
6
|
+
replace?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @describe Hash-router-aware anchor. Renders a real `<a>` pointing at the hash
|
|
10
|
+
* route, so middle-click and open-in-new-tab keep working, and prepends the "#"
|
|
11
|
+
* for you. With `replace`, it intercepts a plain left-click and swaps the
|
|
12
|
+
* current entry via `router.replace` instead of pushing a new one.
|
|
13
|
+
* @example <Link href="/settings">Settings</Link>
|
|
14
|
+
*/
|
|
15
|
+
export declare const Link: ({ href, replace, onClick, ...rest }: LinkProps) => import("react").DetailedReactHTMLElement<{
|
|
16
|
+
content?: string | undefined | undefined;
|
|
17
|
+
title?: string | undefined | undefined;
|
|
18
|
+
type?: string | undefined | undefined;
|
|
19
|
+
slot?: string | undefined | undefined;
|
|
20
|
+
style?: import("react").CSSProperties | undefined;
|
|
21
|
+
color?: string | undefined | undefined;
|
|
22
|
+
children?: import("react").ReactNode;
|
|
23
|
+
download?: any;
|
|
24
|
+
hrefLang?: string | undefined | undefined;
|
|
25
|
+
media?: string | undefined | undefined;
|
|
26
|
+
ping?: string | undefined | undefined;
|
|
27
|
+
target?: import("react").HTMLAttributeAnchorTarget | undefined;
|
|
28
|
+
referrerPolicy?: import("react").HTMLAttributeReferrerPolicy | undefined;
|
|
29
|
+
defaultChecked?: boolean | undefined | undefined;
|
|
30
|
+
defaultValue?: string | number | readonly string[] | undefined;
|
|
31
|
+
suppressContentEditableWarning?: boolean | undefined | undefined;
|
|
32
|
+
suppressHydrationWarning?: boolean | undefined | undefined;
|
|
33
|
+
accessKey?: string | undefined | undefined;
|
|
34
|
+
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
|
|
35
|
+
autoFocus?: boolean | undefined | undefined;
|
|
36
|
+
className?: string | undefined | undefined;
|
|
37
|
+
contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
|
|
38
|
+
contextMenu?: string | undefined | undefined;
|
|
39
|
+
dir?: string | undefined | undefined;
|
|
40
|
+
draggable?: (boolean | "true" | "false") | undefined;
|
|
41
|
+
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
42
|
+
hidden?: boolean | undefined | undefined;
|
|
43
|
+
id?: string | undefined | undefined;
|
|
44
|
+
lang?: string | undefined | undefined;
|
|
45
|
+
nonce?: string | undefined | undefined;
|
|
46
|
+
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
47
|
+
tabIndex?: number | undefined | undefined;
|
|
48
|
+
translate?: "yes" | "no" | undefined | undefined;
|
|
49
|
+
radioGroup?: string | undefined | undefined;
|
|
50
|
+
role?: import("react").AriaRole | undefined;
|
|
51
|
+
about?: string | undefined | undefined;
|
|
52
|
+
datatype?: string | undefined | undefined;
|
|
53
|
+
inlist?: any;
|
|
54
|
+
prefix?: string | undefined | undefined;
|
|
55
|
+
property?: string | undefined | undefined;
|
|
56
|
+
rel?: string | undefined | undefined;
|
|
57
|
+
resource?: string | undefined | undefined;
|
|
58
|
+
rev?: string | undefined | undefined;
|
|
59
|
+
typeof?: string | undefined | undefined;
|
|
60
|
+
vocab?: string | undefined | undefined;
|
|
61
|
+
autoCorrect?: string | undefined | undefined;
|
|
62
|
+
autoSave?: string | undefined | undefined;
|
|
63
|
+
itemProp?: string | undefined | undefined;
|
|
64
|
+
itemScope?: boolean | undefined | undefined;
|
|
65
|
+
itemType?: string | undefined | undefined;
|
|
66
|
+
itemID?: string | undefined | undefined;
|
|
67
|
+
itemRef?: string | undefined | undefined;
|
|
68
|
+
results?: number | undefined | undefined;
|
|
69
|
+
security?: string | undefined | undefined;
|
|
70
|
+
unselectable?: "on" | "off" | undefined | undefined;
|
|
71
|
+
popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
|
|
72
|
+
popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
|
|
73
|
+
popoverTarget?: string | undefined | undefined;
|
|
74
|
+
inert?: boolean | undefined | undefined;
|
|
75
|
+
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
76
|
+
is?: string | undefined | undefined;
|
|
77
|
+
exportparts?: string | undefined | undefined;
|
|
78
|
+
part?: string | undefined | undefined;
|
|
79
|
+
"aria-activedescendant"?: string | undefined | undefined;
|
|
80
|
+
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
81
|
+
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
|
|
82
|
+
"aria-braillelabel"?: string | undefined | undefined;
|
|
83
|
+
"aria-brailleroledescription"?: string | undefined | undefined;
|
|
84
|
+
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
85
|
+
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
86
|
+
"aria-colcount"?: number | undefined | undefined;
|
|
87
|
+
"aria-colindex"?: number | undefined | undefined;
|
|
88
|
+
"aria-colindextext"?: string | undefined | undefined;
|
|
89
|
+
"aria-colspan"?: number | undefined | undefined;
|
|
90
|
+
"aria-controls"?: string | undefined | undefined;
|
|
91
|
+
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
|
|
92
|
+
"aria-describedby"?: string | undefined | undefined;
|
|
93
|
+
"aria-description"?: string | undefined | undefined;
|
|
94
|
+
"aria-details"?: string | undefined | undefined;
|
|
95
|
+
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
96
|
+
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
|
|
97
|
+
"aria-errormessage"?: string | undefined | undefined;
|
|
98
|
+
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
99
|
+
"aria-flowto"?: string | undefined | undefined;
|
|
100
|
+
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
101
|
+
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
|
|
102
|
+
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
103
|
+
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
|
|
104
|
+
"aria-keyshortcuts"?: string | undefined | undefined;
|
|
105
|
+
"aria-label"?: string | undefined | undefined;
|
|
106
|
+
"aria-labelledby"?: string | undefined | undefined;
|
|
107
|
+
"aria-level"?: number | undefined | undefined;
|
|
108
|
+
"aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
|
|
109
|
+
"aria-modal"?: (boolean | "true" | "false") | undefined;
|
|
110
|
+
"aria-multiline"?: (boolean | "true" | "false") | undefined;
|
|
111
|
+
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
|
|
112
|
+
"aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
|
|
113
|
+
"aria-owns"?: string | undefined | undefined;
|
|
114
|
+
"aria-placeholder"?: string | undefined | undefined;
|
|
115
|
+
"aria-posinset"?: number | undefined | undefined;
|
|
116
|
+
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
117
|
+
"aria-readonly"?: (boolean | "true" | "false") | undefined;
|
|
118
|
+
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
|
|
119
|
+
"aria-required"?: (boolean | "true" | "false") | undefined;
|
|
120
|
+
"aria-roledescription"?: string | undefined | undefined;
|
|
121
|
+
"aria-rowcount"?: number | undefined | undefined;
|
|
122
|
+
"aria-rowindex"?: number | undefined | undefined;
|
|
123
|
+
"aria-rowindextext"?: string | undefined | undefined;
|
|
124
|
+
"aria-rowspan"?: number | undefined | undefined;
|
|
125
|
+
"aria-selected"?: (boolean | "true" | "false") | undefined;
|
|
126
|
+
"aria-setsize"?: number | undefined | undefined;
|
|
127
|
+
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
|
|
128
|
+
"aria-valuemax"?: number | undefined | undefined;
|
|
129
|
+
"aria-valuemin"?: number | undefined | undefined;
|
|
130
|
+
"aria-valuenow"?: number | undefined | undefined;
|
|
131
|
+
"aria-valuetext"?: string | undefined | undefined;
|
|
132
|
+
dangerouslySetInnerHTML?: {
|
|
133
|
+
__html: string | TrustedHTML;
|
|
134
|
+
} | undefined | undefined;
|
|
135
|
+
onCopy?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
136
|
+
onCopyCapture?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
137
|
+
onCut?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
138
|
+
onCutCapture?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
139
|
+
onPaste?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
140
|
+
onPasteCapture?: import("react").ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
141
|
+
onCompositionEnd?: import("react").CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
142
|
+
onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
143
|
+
onCompositionStart?: import("react").CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
144
|
+
onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
145
|
+
onCompositionUpdate?: import("react").CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
146
|
+
onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
147
|
+
onFocus?: import("react").FocusEventHandler<HTMLAnchorElement> | undefined;
|
|
148
|
+
onFocusCapture?: import("react").FocusEventHandler<HTMLAnchorElement> | undefined;
|
|
149
|
+
onBlur?: import("react").FocusEventHandler<HTMLAnchorElement> | undefined;
|
|
150
|
+
onBlurCapture?: import("react").FocusEventHandler<HTMLAnchorElement> | undefined;
|
|
151
|
+
onChange?: import("react").ChangeEventHandler<HTMLAnchorElement, Element> | undefined;
|
|
152
|
+
onChangeCapture?: import("react").ChangeEventHandler<HTMLAnchorElement, Element> | undefined;
|
|
153
|
+
onBeforeInput?: import("react").InputEventHandler<HTMLAnchorElement> | undefined;
|
|
154
|
+
onBeforeInputCapture?: import("react").InputEventHandler<HTMLAnchorElement> | undefined;
|
|
155
|
+
onInput?: import("react").InputEventHandler<HTMLAnchorElement> | undefined;
|
|
156
|
+
onInputCapture?: import("react").InputEventHandler<HTMLAnchorElement> | undefined;
|
|
157
|
+
onReset?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
158
|
+
onResetCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
159
|
+
onSubmit?: import("react").SubmitEventHandler<HTMLAnchorElement> | undefined;
|
|
160
|
+
onSubmitCapture?: import("react").SubmitEventHandler<HTMLAnchorElement> | undefined;
|
|
161
|
+
onInvalid?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
162
|
+
onInvalidCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
163
|
+
onLoad?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
164
|
+
onLoadCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
165
|
+
onError?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
166
|
+
onErrorCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
167
|
+
onKeyDown?: import("react").KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
168
|
+
onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
169
|
+
onKeyPress?: import("react").KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
170
|
+
onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
171
|
+
onKeyUp?: import("react").KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
172
|
+
onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
173
|
+
onAbort?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
174
|
+
onAbortCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
175
|
+
onCanPlay?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
176
|
+
onCanPlayCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
177
|
+
onCanPlayThrough?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
178
|
+
onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
179
|
+
onDurationChange?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
180
|
+
onDurationChangeCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
181
|
+
onEmptied?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
182
|
+
onEmptiedCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
183
|
+
onEncrypted?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
184
|
+
onEncryptedCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
185
|
+
onEnded?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
186
|
+
onEndedCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
187
|
+
onLoadedData?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
188
|
+
onLoadedDataCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
189
|
+
onLoadedMetadata?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
190
|
+
onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
191
|
+
onLoadStart?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
192
|
+
onLoadStartCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
193
|
+
onPause?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
194
|
+
onPauseCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
195
|
+
onPlay?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
196
|
+
onPlayCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
197
|
+
onPlaying?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
198
|
+
onPlayingCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
199
|
+
onProgress?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
200
|
+
onProgressCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
201
|
+
onRateChange?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
202
|
+
onRateChangeCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
203
|
+
onSeeked?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
204
|
+
onSeekedCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
205
|
+
onSeeking?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
206
|
+
onSeekingCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
207
|
+
onStalled?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
208
|
+
onStalledCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
209
|
+
onSuspend?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
210
|
+
onSuspendCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
211
|
+
onTimeUpdate?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
212
|
+
onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
213
|
+
onVolumeChange?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
214
|
+
onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
215
|
+
onWaiting?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
216
|
+
onWaitingCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
217
|
+
onAuxClick?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
218
|
+
onAuxClickCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
219
|
+
onClickCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
220
|
+
onContextMenu?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
221
|
+
onContextMenuCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
222
|
+
onDoubleClick?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
223
|
+
onDoubleClickCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
224
|
+
onDrag?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
225
|
+
onDragCapture?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
226
|
+
onDragEnd?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
227
|
+
onDragEndCapture?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
228
|
+
onDragEnter?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
229
|
+
onDragEnterCapture?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
230
|
+
onDragExit?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
231
|
+
onDragExitCapture?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
232
|
+
onDragLeave?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
233
|
+
onDragLeaveCapture?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
234
|
+
onDragOver?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
235
|
+
onDragOverCapture?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
236
|
+
onDragStart?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
237
|
+
onDragStartCapture?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
238
|
+
onDrop?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
239
|
+
onDropCapture?: import("react").DragEventHandler<HTMLAnchorElement> | undefined;
|
|
240
|
+
onMouseDown?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
241
|
+
onMouseDownCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
242
|
+
onMouseEnter?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
243
|
+
onMouseLeave?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
244
|
+
onMouseMove?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
245
|
+
onMouseMoveCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
246
|
+
onMouseOut?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
247
|
+
onMouseOutCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
248
|
+
onMouseOver?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
249
|
+
onMouseOverCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
250
|
+
onMouseUp?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
251
|
+
onMouseUpCapture?: import("react").MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
252
|
+
onSelect?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
253
|
+
onSelectCapture?: import("react").ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
254
|
+
onTouchCancel?: import("react").TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
255
|
+
onTouchCancelCapture?: import("react").TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
256
|
+
onTouchEnd?: import("react").TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
257
|
+
onTouchEndCapture?: import("react").TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
258
|
+
onTouchMove?: import("react").TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
259
|
+
onTouchMoveCapture?: import("react").TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
260
|
+
onTouchStart?: import("react").TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
261
|
+
onTouchStartCapture?: import("react").TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
262
|
+
onPointerDown?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
263
|
+
onPointerDownCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
264
|
+
onPointerMove?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
265
|
+
onPointerMoveCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
266
|
+
onPointerUp?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
267
|
+
onPointerUpCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
268
|
+
onPointerCancel?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
269
|
+
onPointerCancelCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
270
|
+
onPointerEnter?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
271
|
+
onPointerLeave?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
272
|
+
onPointerOver?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
273
|
+
onPointerOverCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
274
|
+
onPointerOut?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
275
|
+
onPointerOutCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
276
|
+
onGotPointerCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
277
|
+
onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
278
|
+
onLostPointerCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
279
|
+
onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
280
|
+
onScroll?: import("react").UIEventHandler<HTMLAnchorElement> | undefined;
|
|
281
|
+
onScrollCapture?: import("react").UIEventHandler<HTMLAnchorElement> | undefined;
|
|
282
|
+
onScrollEnd?: import("react").UIEventHandler<HTMLAnchorElement> | undefined;
|
|
283
|
+
onScrollEndCapture?: import("react").UIEventHandler<HTMLAnchorElement> | undefined;
|
|
284
|
+
onWheel?: import("react").WheelEventHandler<HTMLAnchorElement> | undefined;
|
|
285
|
+
onWheelCapture?: import("react").WheelEventHandler<HTMLAnchorElement> | undefined;
|
|
286
|
+
onAnimationStart?: import("react").AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
287
|
+
onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
288
|
+
onAnimationEnd?: import("react").AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
289
|
+
onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
290
|
+
onAnimationIteration?: import("react").AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
291
|
+
onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
292
|
+
onToggle?: import("react").ToggleEventHandler<HTMLAnchorElement> | undefined;
|
|
293
|
+
onBeforeToggle?: import("react").ToggleEventHandler<HTMLAnchorElement> | undefined;
|
|
294
|
+
onTransitionCancel?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
295
|
+
onTransitionCancelCapture?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
296
|
+
onTransitionEnd?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
297
|
+
onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
298
|
+
onTransitionRun?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
299
|
+
onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
300
|
+
onTransitionStart?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
301
|
+
onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
302
|
+
href: string;
|
|
303
|
+
onClick: (event: MouseEvent<HTMLAnchorElement>) => void;
|
|
304
|
+
}, HTMLElement>;
|
|
305
|
+
export {};
|