@astryxdesign/core 0.6.2-canary.bfee8a4 → 0.6.2-canary.cb7a565
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/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +12 -2
- package/dist/Collapsible/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible/Collapsible.js +6 -1
- package/dist/Kbd/Kbd.d.ts +5 -3
- package/dist/Kbd/Kbd.d.ts.map +1 -1
- package/dist/Kbd/Kbd.js +36 -42
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +6 -2
- package/dist/Markdown/Markdown.d.ts +8 -2
- package/dist/Markdown/Markdown.d.ts.map +1 -1
- package/dist/Markdown/Markdown.fr23.bench.d.ts +2 -0
- package/dist/Markdown/Markdown.fr23.bench.d.ts.map +1 -0
- package/dist/Markdown/Markdown.fr23.bench.js +248 -0
- package/dist/Markdown/Markdown.js +262 -109
- package/dist/Markdown/ast.d.ts +162 -0
- package/dist/Markdown/ast.d.ts.map +1 -0
- package/dist/Markdown/ast.js +74 -0
- package/dist/Markdown/index.d.ts +3 -1
- package/dist/Markdown/index.d.ts.map +1 -1
- package/dist/Markdown/index.js +1 -0
- package/dist/Markdown/parser.d.ts +104 -58
- package/dist/Markdown/parser.d.ts.map +1 -1
- package/dist/Markdown/parser.js +693 -167
- package/dist/Markdown/plugins/index.d.ts +14 -0
- package/dist/Markdown/plugins/index.d.ts.map +1 -0
- package/dist/Markdown/plugins/index.js +12 -0
- package/dist/Markdown/plugins/protocol.d.ts +191 -0
- package/dist/Markdown/plugins/protocol.d.ts.map +1 -0
- package/dist/Markdown/plugins/protocol.js +957 -0
- package/dist/Markdown/plugins/semanticFence.d.ts +36 -0
- package/dist/Markdown/plugins/semanticFence.d.ts.map +1 -0
- package/dist/Markdown/plugins/semanticFence.js +213 -0
- package/dist/Markdown/plugins/sourceDecoration.d.ts +76 -0
- package/dist/Markdown/plugins/sourceDecoration.d.ts.map +1 -0
- package/dist/Markdown/plugins/sourceDecoration.js +393 -0
- package/dist/Markdown/plugins/textTransform.d.ts +30 -0
- package/dist/Markdown/plugins/textTransform.d.ts.map +1 -0
- package/dist/Markdown/plugins/textTransform.js +374 -0
- package/dist/Markdown/url.d.ts +4 -0
- package/dist/Markdown/url.d.ts.map +1 -0
- package/dist/Markdown/url.js +25 -0
- package/dist/Markdown/utils.d.ts +4 -2
- package/dist/Markdown/utils.d.ts.map +1 -1
- package/dist/Markdown/utils.js +2 -1
- package/dist/Outline/index.d.ts +1 -0
- package/dist/Outline/index.d.ts.map +1 -1
- package/dist/Outline/parseOutlineFromMarkdown.d.ts +7 -1
- package/dist/Outline/parseOutlineFromMarkdown.d.ts.map +1 -1
- package/dist/Outline/parseOutlineFromMarkdown.js +14 -8
- package/dist/Outline/useOutlineFromMarkdown.d.ts +3 -1
- package/dist/Outline/useOutlineFromMarkdown.d.ts.map +1 -1
- package/dist/Outline/useOutlineFromMarkdown.js +8 -3
- package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
- package/dist/PowerSearch/PowerSearchEditPopover.js +46 -30
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +13 -1
- package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/SegmentedControl/SegmentedControlItem.js +5 -5
- package/dist/SideNav/SideNav.d.ts +2 -1
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +9 -3
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +14 -8
- package/dist/Switch/Switch.d.ts.map +1 -1
- package/dist/Switch/Switch.js +11 -0
- package/dist/TabList/Tab.d.ts +1 -1
- package/dist/TabList/Tab.d.ts.map +1 -1
- package/dist/TabList/Tab.js +20 -7
- package/dist/ToggleButton/ToggleButton.d.ts +2 -1
- package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton/ToggleButton.js +7 -1
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +15 -6
- package/dist/astryx.css +8 -0
- package/dist/utils/interactionOverlay.stylex.d.ts +8 -0
- package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
- package/dist/utils/interactionOverlay.stylex.js +9 -0
- package/package.json +8 -3
- package/src/Button/__tests__/Button.a11y.chromium.spec.ts +17 -1
- package/src/Button/__tests__/Button.a11y.known-failures.ts +0 -29
- package/src/Button/__tests__/Button.a11y.renders.tsx +9 -2
- package/src/Button/__tests__/Button.a11y.states.ts +9 -0
- package/src/CheckboxInput/CheckboxInput.doc.mjs +11 -0
- package/src/CheckboxInput/CheckboxInput.test.tsx +34 -0
- package/src/CheckboxInput/CheckboxInput.tsx +21 -1
- package/src/ClickableCard/ClickableCard.test.tsx +102 -5
- package/src/Collapsible/Collapsible.doc.mjs +11 -0
- package/src/Collapsible/Collapsible.test.tsx +21 -0
- package/src/Collapsible/Collapsible.tsx +5 -0
- package/src/Kbd/Kbd.doc.mjs +3 -3
- package/src/Kbd/Kbd.test.tsx +57 -1
- package/src/Kbd/Kbd.tsx +57 -37
- package/src/Link/Link.doc.mjs +11 -0
- package/src/Link/Link.test.tsx +24 -0
- package/src/Link/Link.tsx +5 -0
- package/src/Markdown/Markdown.doc.mjs +175 -0
- package/src/Markdown/Markdown.fr23.bench.ts +288 -0
- package/src/Markdown/Markdown.fr23.perf.test.ts +211 -0
- package/src/Markdown/Markdown.helpers.perf.test.ts +489 -0
- package/src/Markdown/Markdown.public.test.ts +126 -3
- package/src/Markdown/Markdown.spec.md +159 -43
- package/src/Markdown/Markdown.test.tsx +11 -0
- package/src/Markdown/Markdown.tsx +414 -135
- package/src/Markdown/ast.test.ts +307 -0
- package/src/Markdown/ast.ts +337 -0
- package/src/Markdown/incremental.test.ts +12 -0
- package/src/Markdown/index.ts +34 -0
- package/src/Markdown/parser.ts +1117 -235
- package/src/Markdown/plugins/index.ts +47 -0
- package/src/Markdown/plugins/protocol.test.tsx +955 -0
- package/src/Markdown/plugins/protocol.ts +1619 -0
- package/src/Markdown/plugins/semanticFence.test.tsx +546 -0
- package/src/Markdown/plugins/semanticFence.ts +424 -0
- package/src/Markdown/plugins/sourceDecoration.test.tsx +799 -0
- package/src/Markdown/plugins/sourceDecoration.ts +539 -0
- package/src/Markdown/plugins/textTransform.test.ts +467 -0
- package/src/Markdown/plugins/textTransform.ts +554 -0
- package/src/Markdown/url.ts +30 -0
- package/src/Markdown/utils.ts +13 -1
- package/src/Outline/Outline.doc.mjs +7 -5
- package/src/Outline/Outline.spec.md +1 -1
- package/src/Outline/index.ts +1 -0
- package/src/Outline/modules/parseOutlineFromMarkdown.spec.md +142 -0
- package/src/Outline/parseOutlineFromMarkdown.ts +39 -13
- package/src/Outline/useOutlineFromMarkdown.ts +15 -3
- package/src/PowerSearch/PowerSearchEditPopover.test.tsx +150 -1
- package/src/PowerSearch/PowerSearchEditPopover.tsx +51 -28
- package/src/RadioList/RadioList.doc.mjs +11 -0
- package/src/RadioList/RadioList.test.tsx +32 -0
- package/src/RadioList/RadioListItem.tsx +25 -1
- package/src/SegmentedControl/SegmentedControl.doc.mjs +2 -2
- package/src/SegmentedControl/SegmentedControl.test.tsx +31 -0
- package/src/SegmentedControl/SegmentedControlItem.tsx +6 -9
- package/src/SideNav/SideNav.doc.mjs +1 -1
- package/src/SideNav/SideNav.test.tsx +10 -0
- package/src/SideNav/SideNav.tsx +14 -2
- package/src/Slider/Slider.doc.mjs +11 -0
- package/src/Slider/Slider.test.tsx +128 -0
- package/src/Slider/Slider.tsx +25 -7
- package/src/Switch/Switch.doc.mjs +11 -0
- package/src/Switch/Switch.test.tsx +16 -0
- package/src/Switch/Switch.tsx +28 -0
- package/src/TabList/Tab.tsx +35 -7
- package/src/TabList/TabList.doc.mjs +11 -0
- package/src/TabList/TabList.test.tsx +66 -0
- package/src/TabList/__tests__/Tabs.a11y.known-failures.ts +1 -34
- package/src/ToggleButton/ToggleButton.test.tsx +133 -0
- package/src/ToggleButton/ToggleButton.tsx +9 -2
- package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +209 -0
- package/src/Tokenizer/Tokenizer.spec.md +142 -75
- package/src/Typeahead/BaseTypeahead.spec.md +4 -3
- package/src/Typeahead/BaseTypeahead.tsx +15 -6
- package/src/Typeahead/Typeahead.test.tsx +53 -0
- package/src/__tests__/PressedState.a11y.chromium.spec.ts +813 -0
- package/src/__tests__/pressState.ts +93 -0
- package/src/utils/interactionOverlay.stylex.ts +20 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file index.ts
|
|
3
|
+
* @output Public Markdown plugin protocol, factory, and types
|
|
4
|
+
* @position Subpath entry point: `@astryxdesign/core/Markdown/plugins`
|
|
5
|
+
*/
|
|
6
|
+
export { createMarkdownPlugin, isMarkdownExtensionNode } from './protocol';
|
|
7
|
+
export { createMarkdownTextTransform } from './textTransform';
|
|
8
|
+
export type { MarkdownTextTransformContext, MarkdownTextTransformOptions, } from './textTransform';
|
|
9
|
+
export { createMarkdownFenceTransform } from './semanticFence';
|
|
10
|
+
export type { MarkdownFenceContext, MarkdownFenceNode, MarkdownFenceTransformOptions, } from './semanticFence';
|
|
11
|
+
export { createMarkdownSourceDecoration, getMarkdownSourceDecorations, } from './sourceDecoration';
|
|
12
|
+
export type { MarkdownSourceDecoration, MarkdownSourceDecorationOptions, MarkdownSourceDecorationRange, } from './sourceDecoration';
|
|
13
|
+
export type { MarkdownPluginData, MarkdownExtensionNode, MarkdownTokenizerInput, MarkdownTokenizeResult, MarkdownSyntaxContribution, MarkdownSyntaxCapability, MarkdownTransformContext, MarkdownTransform, MarkdownExtensionRenderer, MarkdownExtensionRenderers, MarkdownSyntaxPluginDefinition, MarkdownTransformPluginDefinition, MarkdownPluginDefinition, MarkdownPluginEntry, MarkdownNodeOf, MarkdownExtensionsOf, } from './protocol';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Markdown/plugins/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAC,oBAAoB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,4BAA4B,EAAC,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,wBAAwB,EACxB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,iCAAiC,EACjC,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file index.ts
|
|
5
|
+
* @output Public Markdown plugin protocol, factory, and types
|
|
6
|
+
* @position Subpath entry point: `@astryxdesign/core/Markdown/plugins`
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { createMarkdownPlugin, isMarkdownExtensionNode } from "./protocol.js";
|
|
10
|
+
export { createMarkdownTextTransform } from "./textTransform.js";
|
|
11
|
+
export { createMarkdownFenceTransform } from "./semanticFence.js";
|
|
12
|
+
export { createMarkdownSourceDecoration, getMarkdownSourceDecorations } from "./sourceDecoration.js";
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file protocol.ts
|
|
3
|
+
* @input Markdown plugin definitions, syntax tokenizers, immutable transforms, and renderers
|
|
4
|
+
* @output Public plugin protocol plus validated internal preparation and execution
|
|
5
|
+
* @position Shared Markdown extension boundary consumed by the parser and renderer
|
|
6
|
+
*/
|
|
7
|
+
import type React from 'react';
|
|
8
|
+
import type { MarkdownAstDataValue, MarkdownAstExtensionNode, MarkdownAstNodeBase, MarkdownAstRoot } from '../ast';
|
|
9
|
+
export type MarkdownPluginData = MarkdownAstDataValue;
|
|
10
|
+
export type MarkdownExtensionNode<PluginName extends string = string, NodeName extends string = string, Data extends MarkdownPluginData = MarkdownPluginData, Display extends 'inline' | 'block' = 'inline' | 'block'> = MarkdownAstExtensionNode<PluginName, NodeName, Data, Display>;
|
|
11
|
+
export declare function isMarkdownExtensionNode<Node extends MarkdownExtensionNode>(node: MarkdownAstNodeBase & {
|
|
12
|
+
readonly type: string;
|
|
13
|
+
}, plugin: Node['plugin'], name: Node['name']): node is Node;
|
|
14
|
+
export interface MarkdownTokenizerInput {
|
|
15
|
+
readonly source: string;
|
|
16
|
+
/** UTF-16 offset into `source`. */
|
|
17
|
+
readonly offset: number;
|
|
18
|
+
/** Exclusive UTF-16 bound visible to this tokenizer. */
|
|
19
|
+
readonly end: number;
|
|
20
|
+
readonly isFinal: boolean;
|
|
21
|
+
readonly context: 'inline' | 'block';
|
|
22
|
+
readonly lineStart: number;
|
|
23
|
+
readonly column: number;
|
|
24
|
+
}
|
|
25
|
+
type ExtensionNodeWithoutProvenance<Node extends MarkdownExtensionNode> = Omit<Node, 'source' | 'position'>;
|
|
26
|
+
export type MarkdownTokenizeResult<Node extends MarkdownExtensionNode> = {
|
|
27
|
+
readonly status: 'no-match';
|
|
28
|
+
} | {
|
|
29
|
+
readonly status: 'defer';
|
|
30
|
+
} | {
|
|
31
|
+
readonly status: 'match';
|
|
32
|
+
readonly end: number;
|
|
33
|
+
readonly node: ExtensionNodeWithoutProvenance<Node>;
|
|
34
|
+
};
|
|
35
|
+
export interface MarkdownSyntaxContribution<Node extends MarkdownExtensionNode = MarkdownExtensionNode> {
|
|
36
|
+
readonly startsWith: readonly [string, ...string[]];
|
|
37
|
+
/** Maximum UTF-16 span Core exposes from a candidate offset. */
|
|
38
|
+
readonly maxSpan: number;
|
|
39
|
+
tokenize(input: MarkdownTokenizerInput): MarkdownTokenizeResult<Node>;
|
|
40
|
+
}
|
|
41
|
+
type ExtensionForDisplay<Node extends MarkdownExtensionNode, Display extends 'inline' | 'block'> = Display extends Node['display'] ? Node & {
|
|
42
|
+
readonly display: Display;
|
|
43
|
+
} : never;
|
|
44
|
+
export interface MarkdownSyntaxCapability<Node extends MarkdownExtensionNode = MarkdownExtensionNode> {
|
|
45
|
+
readonly inline?: readonly [
|
|
46
|
+
MarkdownSyntaxContribution<ExtensionForDisplay<Node, 'inline'>>,
|
|
47
|
+
...MarkdownSyntaxContribution<ExtensionForDisplay<Node, 'inline'>>[]
|
|
48
|
+
];
|
|
49
|
+
readonly block?: readonly [
|
|
50
|
+
MarkdownSyntaxContribution<ExtensionForDisplay<Node, 'block'>>,
|
|
51
|
+
...MarkdownSyntaxContribution<ExtensionForDisplay<Node, 'block'>>[]
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
export interface MarkdownTransformContext {
|
|
55
|
+
readonly source: string;
|
|
56
|
+
readonly isFinal: boolean;
|
|
57
|
+
readonly display: 'inline' | 'block';
|
|
58
|
+
report(message: string): void;
|
|
59
|
+
}
|
|
60
|
+
/** @internal Reads the owning plugin name without expanding the public context. */
|
|
61
|
+
export declare function getMarkdownTransformPluginName(context: MarkdownTransformContext): string | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* @internal The ownership facts a Core helper needs to validate the nodes a
|
|
64
|
+
* caller's callback handed it, without seeing the rest of the pipeline.
|
|
65
|
+
*/
|
|
66
|
+
export interface MarkdownHelperOwnership {
|
|
67
|
+
readonly pluginName: string;
|
|
68
|
+
readonly hasRenderer: (nodeName: string) => boolean;
|
|
69
|
+
/** Whether source text still describes the current transform input. */
|
|
70
|
+
readonly sourceUnchanged: boolean;
|
|
71
|
+
}
|
|
72
|
+
/** @internal Reads this transform's ownership, when Core is running it. */
|
|
73
|
+
export declare function getMarkdownHelperOwnership(context: MarkdownTransformContext): MarkdownHelperOwnership | undefined;
|
|
74
|
+
declare const markdownTransformNode: unique symbol;
|
|
75
|
+
export interface MarkdownTransform<Node extends MarkdownExtensionNode = never> {
|
|
76
|
+
(document: MarkdownAstRoot<MarkdownExtensionNode>, context: MarkdownTransformContext): MarkdownAstRoot<MarkdownExtensionNode>;
|
|
77
|
+
readonly [markdownTransformNode]?: Node;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @internal Marks a Core-authored transform whose OUTPUT STRUCTURE is entirely
|
|
81
|
+
* Core-computed — it never inserts a caller-supplied node, never edits an
|
|
82
|
+
* existing node's meaning, provenance, or ownership, and never mutates its
|
|
83
|
+
* input. Core then skips the validation and immutability guards it applies to
|
|
84
|
+
* plugin-authored output, whose purpose is to contain untrusted structure.
|
|
85
|
+
*
|
|
86
|
+
* Only helpers in this package may be marked, and only when every node they
|
|
87
|
+
* emit is built here from validated inputs. A helper that inserts anything the
|
|
88
|
+
* caller supplied — the text helper's replacement nodes, for example — is NOT
|
|
89
|
+
* trusted: Core must still validate the tree it returns.
|
|
90
|
+
*/
|
|
91
|
+
export declare function markMarkdownTransformTrusted(transform: MarkdownTransform<never>): MarkdownTransform<never>;
|
|
92
|
+
/** @internal Registers a cheap source-level claim check for a helper transform. */
|
|
93
|
+
export declare function markMarkdownTransformClaim<Node extends MarkdownExtensionNode = never>(transform: MarkdownTransform<Node>, claims: (source: string) => boolean): MarkdownTransform<Node>;
|
|
94
|
+
export interface MarkdownExtensionRenderer<Node extends MarkdownExtensionNode> {
|
|
95
|
+
/** Pure render callback. Hooks belong in components returned by this callback. */
|
|
96
|
+
readonly render: (props: {
|
|
97
|
+
node: Node;
|
|
98
|
+
}) => React.ReactNode;
|
|
99
|
+
readonly toText: (node: Node) => string;
|
|
100
|
+
}
|
|
101
|
+
export type MarkdownExtensionRenderers<Node extends MarkdownExtensionNode> = Readonly<{
|
|
102
|
+
[NodeName in Node['name']]: MarkdownExtensionRenderer<Extract<Node, {
|
|
103
|
+
name: NodeName;
|
|
104
|
+
}>>;
|
|
105
|
+
}>;
|
|
106
|
+
interface MarkdownPluginDefinitionBase<Name extends string> {
|
|
107
|
+
readonly name: Name;
|
|
108
|
+
readonly apiVersion: 1;
|
|
109
|
+
}
|
|
110
|
+
export interface MarkdownSyntaxPluginDefinition<Name extends string, Node extends MarkdownExtensionNode<Name>> extends MarkdownPluginDefinitionBase<Name> {
|
|
111
|
+
readonly parseKey: string;
|
|
112
|
+
readonly syntax: MarkdownSyntaxCapability<Node>;
|
|
113
|
+
readonly transform?: MarkdownTransform<Node>;
|
|
114
|
+
readonly renderers: MarkdownExtensionRenderers<Node>;
|
|
115
|
+
}
|
|
116
|
+
export type MarkdownTransformPluginDefinition<Name extends string, Node extends MarkdownExtensionNode<Name> = never> = MarkdownPluginDefinitionBase<Name> & {
|
|
117
|
+
readonly transform: MarkdownTransform<Node>;
|
|
118
|
+
readonly parseKey?: never;
|
|
119
|
+
readonly syntax?: never;
|
|
120
|
+
} & ([Node] extends [never] ? {
|
|
121
|
+
readonly renderers?: never;
|
|
122
|
+
} : {
|
|
123
|
+
readonly renderers: MarkdownExtensionRenderers<Node>;
|
|
124
|
+
});
|
|
125
|
+
export type MarkdownPluginDefinition<Name extends string, Node extends MarkdownExtensionNode<Name> = never> = MarkdownSyntaxPluginDefinition<Name, Node> | MarkdownTransformPluginDefinition<Name, Node>;
|
|
126
|
+
declare const markdownPluginNode: unique symbol;
|
|
127
|
+
/** Opaque, covariant entry safe to store in heterogeneous plugin lists. */
|
|
128
|
+
export interface MarkdownPluginEntry<Node extends MarkdownExtensionNode = MarkdownExtensionNode> {
|
|
129
|
+
readonly name: string;
|
|
130
|
+
readonly apiVersion: 1;
|
|
131
|
+
readonly [markdownPluginNode]: Node;
|
|
132
|
+
}
|
|
133
|
+
export type MarkdownNodeOf<Entry> = Entry extends MarkdownPluginEntry<infer Node> ? Node : never;
|
|
134
|
+
export type MarkdownExtensionsOf<Plugins extends ReadonlyArray<MarkdownPluginEntry>> = MarkdownNodeOf<Plugins[number]>;
|
|
135
|
+
export declare function createMarkdownPlugin<const Name extends string, const Node extends MarkdownExtensionNode<Name>>(definition: MarkdownSyntaxPluginDefinition<Name, Node>): MarkdownPluginEntry<Node>;
|
|
136
|
+
export declare function createMarkdownPlugin<const Name extends string>(definition: MarkdownTransformPluginDefinition<Name, never>): MarkdownPluginEntry<never>;
|
|
137
|
+
export declare function createMarkdownPlugin<const Name extends string, const Node extends MarkdownExtensionNode<Name>>(definition: MarkdownTransformPluginDefinition<Name, Node>): MarkdownPluginEntry<Node>;
|
|
138
|
+
export interface PreparedSyntaxContribution {
|
|
139
|
+
readonly pluginName: string;
|
|
140
|
+
readonly display: 'inline' | 'block';
|
|
141
|
+
readonly contribution: MarkdownSyntaxContribution;
|
|
142
|
+
}
|
|
143
|
+
interface PreparedTransform {
|
|
144
|
+
readonly pluginName: string;
|
|
145
|
+
readonly transform: MarkdownTransform<MarkdownExtensionNode>;
|
|
146
|
+
readonly claims?: (source: string) => boolean;
|
|
147
|
+
/** Core-authored helper whose output needs no plugin-output validation. */
|
|
148
|
+
readonly trusted: boolean;
|
|
149
|
+
}
|
|
150
|
+
interface PreparedRenderer {
|
|
151
|
+
readonly pluginName: string;
|
|
152
|
+
readonly renderer: MarkdownExtensionRenderer<MarkdownExtensionNode>;
|
|
153
|
+
}
|
|
154
|
+
export interface PreparedMarkdownPlugins {
|
|
155
|
+
readonly entries: ReadonlyArray<MarkdownPluginEntry>;
|
|
156
|
+
readonly syntaxEntries: ReadonlyArray<MarkdownPluginEntry>;
|
|
157
|
+
readonly inlineByFirstCharacter: ReadonlyMap<string, ReadonlyArray<PreparedSyntaxContribution>>;
|
|
158
|
+
readonly blockByFirstCharacter: ReadonlyMap<string, ReadonlyArray<PreparedSyntaxContribution>>;
|
|
159
|
+
readonly transforms: ReadonlyArray<PreparedTransform>;
|
|
160
|
+
/** Whether any transform is plugin-authored and needs Core's guards. */
|
|
161
|
+
readonly hasUntrustedTransform: boolean;
|
|
162
|
+
readonly syntaxIdentity: string;
|
|
163
|
+
readonly renderers: ReadonlyMap<string, PreparedRenderer>;
|
|
164
|
+
}
|
|
165
|
+
export declare function prepareMarkdownPlugins(plugins: ReadonlyArray<MarkdownPluginEntry>): PreparedMarkdownPlugins | undefined;
|
|
166
|
+
export declare function isMarkdownPluginData(value: unknown, seen?: Set<object>): value is MarkdownPluginData;
|
|
167
|
+
export declare function freezeMarkdownPluginData<T extends MarkdownPluginData>(value: T): T;
|
|
168
|
+
/**
|
|
169
|
+
* @internal Validates and freezes phrasing nodes a Core helper's caller just
|
|
170
|
+
* authored, so the helper may put them straight into its output tree.
|
|
171
|
+
* applying exactly the rules `validateAst` applies to newly-introduced nodes:
|
|
172
|
+
* representable typed data only, no authored provenance, no foreign extension
|
|
173
|
+
* ownership, no unrenderable extension, revalidated destinations, no nested
|
|
174
|
+
* link, no block content, no cycles, and a bounded node count.
|
|
175
|
+
*
|
|
176
|
+
* A helper that validates and freezes its callback's output this way has
|
|
177
|
+
* nothing left for Core to check, because every other node it returns is one
|
|
178
|
+
* Core already validated. That is what lets such a helper run on the trusted
|
|
179
|
+
* path while keeping FR10 and FR11 intact.
|
|
180
|
+
*
|
|
181
|
+
* Returns the frozen nodes, or throws — the caller reports the failure
|
|
182
|
+
* through the ordinary transform failure path.
|
|
183
|
+
*/
|
|
184
|
+
export declare function adoptMarkdownHelperNode(node: unknown, ownership: MarkdownHelperOwnership, insideLink?: boolean): void;
|
|
185
|
+
export declare function adoptMarkdownHelperNodes(nodes: ReadonlyArray<unknown>, ownership: MarkdownHelperOwnership, insideLink?: boolean): void;
|
|
186
|
+
export declare function reportMarkdownPluginFailure(pluginName: string, phase: 'syntax' | 'transform' | 'render', error: unknown): void;
|
|
187
|
+
export declare function applyMarkdownTransforms<Node extends MarkdownExtensionNode>(root: MarkdownAstRoot<Node>, plugins: PreparedMarkdownPlugins | undefined, source: string, isFinal: boolean, display: 'inline' | 'block'): MarkdownAstRoot<Node>;
|
|
188
|
+
export declare function getMarkdownExtensionRenderer(plugins: PreparedMarkdownPlugins | undefined, node: MarkdownExtensionNode): MarkdownExtensionRenderer<MarkdownExtensionNode> | undefined;
|
|
189
|
+
export declare function markdownExtensionText(plugins: PreparedMarkdownPlugins | undefined, node: MarkdownExtensionNode): string;
|
|
190
|
+
export {};
|
|
191
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/Markdown/plugins/protocol.ts"],"names":[],"mappings":"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"}
|