@tensor_1/react 2.17.0 → 2.19.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/README.md +131 -1
- package/dist/components/Comments.d.ts +18 -2
- package/dist/components/Comments.js +37 -12
- package/dist/components/EditorIcons.d.ts +39 -0
- package/dist/components/EditorIcons.js +51 -0
- package/dist/components/EmojiGlyph.d.ts +10 -0
- package/dist/components/EmojiGlyph.js +18 -0
- package/dist/components/EmojiPicker.d.ts +60 -0
- package/dist/components/EmojiPicker.js +277 -0
- package/dist/components/Markdown.d.ts +36 -0
- package/dist/components/Markdown.js +104 -0
- package/dist/components/ReactionBar.d.ts +57 -0
- package/dist/components/ReactionBar.js +81 -0
- package/dist/components/RelationshipGraph.d.ts +81 -3
- package/dist/components/RelationshipGraph.js +102 -59
- package/dist/components/RelationshipGraphLayered.d.ts +8 -0
- package/dist/components/RelationshipGraphLayered.js +420 -0
- package/dist/components/RelationshipGraphList.d.ts +16 -0
- package/dist/components/RelationshipGraphList.js +33 -0
- package/dist/components/RichTextEditor.d.ts +128 -0
- package/dist/components/RichTextEditor.js +954 -0
- package/dist/components/SaveStatus.d.ts +32 -0
- package/dist/components/SaveStatus.js +21 -0
- package/dist/components/Tabs.d.ts +10 -3
- package/dist/components/Tabs.js +5 -3
- package/dist/emoji-image-WQLh8ZQP.d.cts +128 -0
- package/dist/emoji-image.d.ts +25 -0
- package/dist/emoji-image.js +80 -0
- package/dist/emoji-model.d.ts +66 -0
- package/dist/emoji-model.js +108 -0
- package/dist/emoji.cjs +871 -0
- package/dist/emoji.d.cts +57 -0
- package/dist/emoji.d.ts +6 -0
- package/dist/emoji.js +18 -0
- package/dist/index.cjs +1503 -540
- package/dist/index.d.cts +245 -65
- package/dist/index.d.ts +3 -2
- package/dist/index.js +11 -2
- package/dist/markdown-model.d.ts +75 -0
- package/dist/markdown-model.js +438 -0
- package/dist/markdown.cjs +585 -0
- package/dist/markdown.d.cts +115 -0
- package/dist/markdown.d.ts +4 -0
- package/dist/markdown.js +9 -0
- package/dist/overlay-position-CEGSz6Z2.d.cts +59 -0
- package/dist/relationship-graph-model.d.ts +112 -1
- package/dist/relationship-graph-model.js +420 -1
- package/dist/rich-text/emoji-items.d.ts +14 -0
- package/dist/rich-text/emoji-items.js +7 -0
- package/dist/rich-text/pipeline.d.ts +91 -0
- package/dist/rich-text/pipeline.js +379 -0
- package/dist/rich-text/round-trip.d.ts +24 -0
- package/dist/rich-text/round-trip.js +11 -0
- package/dist/rich-text.cjs +2578 -0
- package/dist/rich-text.d.cts +148 -0
- package/dist/rich-text.d.ts +8 -0
- package/dist/rich-text.js +10 -0
- package/dist/url-policy.d.ts +9 -0
- package/dist/url-policy.js +11 -0
- package/package.json +82 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { RefObject, ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, AriaAttributes, HTMLAttributes, TextareaHTMLAttributes, SelectHTMLAttributes, AnchorHTMLAttributes, DetailsHTMLAttributes, TdHTMLAttributes, TableHTMLAttributes, ThHTMLAttributes } from 'react';
|
|
3
|
+
import { P as Placement } from './overlay-position-CEGSz6Z2.cjs';
|
|
4
|
+
export { A as Align, a as PositionOptions, b as PositionResult, R as Rect, S as Side, c as Size, d as computePosition } from './overlay-position-CEGSz6Z2.cjs';
|
|
3
5
|
|
|
4
6
|
declare function cx(...args: (string | false | null | undefined | 0)[]): string;
|
|
5
7
|
|
|
@@ -169,64 +171,6 @@ interface UseVirtualRowsResult<T> {
|
|
|
169
171
|
*/
|
|
170
172
|
declare function useVirtualRows<T>(rows: readonly T[], { rowHeight, overscan, threshold }: UseVirtualRowsOptions): UseVirtualRowsResult<T>;
|
|
171
173
|
|
|
172
|
-
/**
|
|
173
|
-
* uix overlay positioning — framework-agnostic, dependency-free anchored placement.
|
|
174
|
-
*
|
|
175
|
-
* Pure geometry (no DOM): given the anchor's rect, the floating element's size, and
|
|
176
|
-
* the viewport, compute where to put the floating element with two behaviours:
|
|
177
|
-
* • flip — if the preferred side doesn't fit, use the opposite side (or whichever
|
|
178
|
-
* side has more room);
|
|
179
|
-
* • shift — slide along the cross axis so the element stays within the viewport.
|
|
180
|
-
*
|
|
181
|
-
* The React hook (useAnchoredPosition) and the vanilla styleguide both feed this
|
|
182
|
-
* getBoundingClientRect() values, so anchored overlays land in the same place in every
|
|
183
|
-
* browser — instead of relying on CSS anchor() positioning, which is Chromium-only and
|
|
184
|
-
* silently detaches the overlay from its trigger everywhere else (UIX-FIX-02).
|
|
185
|
-
*
|
|
186
|
-
* Everything here is deterministic and unit-tested (see overlay-position.test.mjs).
|
|
187
|
-
*/
|
|
188
|
-
type Side = 'top' | 'bottom' | 'left' | 'right';
|
|
189
|
-
type Align = 'start' | 'center' | 'end';
|
|
190
|
-
type Placement = Side | `${Side}-${Align}`;
|
|
191
|
-
/** A viewport-space rectangle, as returned by getBoundingClientRect(). */
|
|
192
|
-
interface Rect {
|
|
193
|
-
x: number;
|
|
194
|
-
y: number;
|
|
195
|
-
width: number;
|
|
196
|
-
height: number;
|
|
197
|
-
}
|
|
198
|
-
interface Size {
|
|
199
|
-
width: number;
|
|
200
|
-
height: number;
|
|
201
|
-
}
|
|
202
|
-
interface PositionOptions {
|
|
203
|
-
/** Preferred placement. Default `'bottom-start'`; a bare side (e.g. `'top'`) centers on the cross axis. */
|
|
204
|
-
placement?: Placement;
|
|
205
|
-
/** Gap between the anchor and the floating element, in px. Default 6. */
|
|
206
|
-
offset?: number;
|
|
207
|
-
/** Minimum gap kept from each viewport edge when shifting, in px. Default 8. */
|
|
208
|
-
padding?: number;
|
|
209
|
-
/** Flip to the opposite side when the preferred one doesn't fit. Default true. */
|
|
210
|
-
flip?: boolean;
|
|
211
|
-
/** Slide along the cross axis to stay on-screen. Default true. */
|
|
212
|
-
shift?: boolean;
|
|
213
|
-
}
|
|
214
|
-
interface PositionResult {
|
|
215
|
-
/** Viewport-space left, for `position: fixed`. */
|
|
216
|
-
x: number;
|
|
217
|
-
/** Viewport-space top, for `position: fixed`. */
|
|
218
|
-
y: number;
|
|
219
|
-
/** The placement actually used (after any flip). */
|
|
220
|
-
placement: Placement;
|
|
221
|
-
side: Side;
|
|
222
|
-
align: Align;
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Compute the floating element's viewport-space position anchored to `anchor`.
|
|
226
|
-
* Coordinates are for `position: fixed` (same space as getBoundingClientRect).
|
|
227
|
-
*/
|
|
228
|
-
declare function computePosition(anchor: Rect, floating: Size, viewport: Size, options?: PositionOptions): PositionResult;
|
|
229
|
-
|
|
230
174
|
interface UseAnchoredPositionOptions {
|
|
231
175
|
/** Reposition while true, and (re)attach scroll/resize listeners. */
|
|
232
176
|
open: boolean;
|
|
@@ -612,14 +556,21 @@ interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
612
556
|
/** The owning `<Tab>`'s value — the panel renders only while that tab is selected. */
|
|
613
557
|
value: string;
|
|
614
558
|
children?: ReactNode;
|
|
559
|
+
/**
|
|
560
|
+
* Keep the panel mounted while another tab is selected, `hidden` instead of removed.
|
|
561
|
+
* Opt in when leaving the tab would throw away work or a fetch the user already paid
|
|
562
|
+
* for — a loaded list, a half-filled form, a scroll position. Off by default: the
|
|
563
|
+
* panel's subtree then costs nothing until it is first shown.
|
|
564
|
+
*/
|
|
565
|
+
keepMounted?: boolean;
|
|
615
566
|
}
|
|
616
567
|
/**
|
|
617
568
|
* The tabpanel paired with a `<Tab>` by `value` (UIX-A11Y-2): labelled by its tab,
|
|
618
569
|
* `tabIndex 0` so Tab from the tablist lands in the content, rendered only while
|
|
619
|
-
* selected
|
|
620
|
-
* or anywhere the Tabs context reaches.
|
|
570
|
+
* selected — or kept `hidden` with `keepMounted`. Place it as a direct child of
|
|
571
|
+
* `<Tabs>` — it is hoisted out of the tablist — or anywhere the Tabs context reaches.
|
|
621
572
|
*/
|
|
622
|
-
declare function TabPanel({ value, children, ...props }: TabPanelProps): react.JSX.Element | null;
|
|
573
|
+
declare function TabPanel({ value, children, keepMounted, ...props }: TabPanelProps): react.JSX.Element | null;
|
|
623
574
|
|
|
624
575
|
type ShellNav = 'full' | 'rail' | 'hidden';
|
|
625
576
|
interface AppShellProps extends HTMLAttributes<HTMLDivElement> {
|
|
@@ -1100,9 +1051,53 @@ interface CommentProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
1100
1051
|
author?: ReactNode;
|
|
1101
1052
|
meta?: ReactNode;
|
|
1102
1053
|
children?: ReactNode;
|
|
1054
|
+
/**
|
|
1055
|
+
* `person` (default) is someone's message. `system` is an event the product recorded —
|
|
1056
|
+
* a status change, an assignment — drawn as chrome rather than as a speech bubble, and
|
|
1057
|
+
* bylined with `systemLabel` instead of a person's name.
|
|
1058
|
+
*/
|
|
1059
|
+
variant?: 'person' | 'system';
|
|
1060
|
+
/** Byline for `variant="system"` when no `author` is given. Default "System". */
|
|
1061
|
+
systemLabel?: string;
|
|
1062
|
+
/** The message this one answers, quoted above the body. Text or a link to it. */
|
|
1063
|
+
replyTo?: ReactNode;
|
|
1064
|
+
/** Label on the quote. Default "In reply to". */
|
|
1065
|
+
replyToLabel?: string;
|
|
1066
|
+
}
|
|
1067
|
+
/**
|
|
1068
|
+
* A single comment over `.uix-comment` (avatar column + body). `variant="system"` marks
|
|
1069
|
+
* product events apart from people; `replyTo` quotes the answered message. Mentions
|
|
1070
|
+
* inside the body use the `.uix-mention` token.
|
|
1071
|
+
*/
|
|
1072
|
+
declare function Comment({ avatar, author, meta, children, className, variant, systemLabel, replyTo, replyToLabel, ...props }: CommentProps): react.JSX.Element;
|
|
1073
|
+
|
|
1074
|
+
type SaveStatusState = 'idle' | 'saving' | 'saved' | 'failed';
|
|
1075
|
+
/** Every visible or announced string. Pass translations; English defaults fill the gaps. */
|
|
1076
|
+
interface SaveStatusLabels {
|
|
1077
|
+
saving: string;
|
|
1078
|
+
saved: string;
|
|
1079
|
+
failed: string;
|
|
1080
|
+
retry: string;
|
|
1081
|
+
}
|
|
1082
|
+
declare const DEFAULT_SAVE_STATUS_LABELS: SaveStatusLabels;
|
|
1083
|
+
interface SaveStatusProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
1084
|
+
/** Where the save is. `idle` shows nothing but keeps the live region in place. */
|
|
1085
|
+
state: SaveStatusState;
|
|
1086
|
+
labels?: Partial<SaveStatusLabels>;
|
|
1087
|
+
/** Offered as a button only while `state` is `failed`. */
|
|
1088
|
+
onRetry?: () => void;
|
|
1103
1089
|
}
|
|
1104
|
-
/**
|
|
1105
|
-
|
|
1090
|
+
/**
|
|
1091
|
+
* Inline save feedback over `.uix-save-status`: saving → saved → failed, with a retry.
|
|
1092
|
+
* For autosave and inline edits, where a toast would be too loud and silence leaves the
|
|
1093
|
+
* user guessing (LD-13).
|
|
1094
|
+
*
|
|
1095
|
+
* The status text sits in a polite live region that stays mounted in every state,
|
|
1096
|
+
* including `idle`. A region inserted together with its text announces nothing, so
|
|
1097
|
+
* rendering null while idle would silence the first "Saving…". The retry button sits
|
|
1098
|
+
* outside the region so its label is not read out on every change.
|
|
1099
|
+
*/
|
|
1100
|
+
declare function SaveStatus({ state, labels, onRetry, className, ...props }: SaveStatusProps): react.JSX.Element;
|
|
1106
1101
|
|
|
1107
1102
|
interface ComposerProps extends HTMLAttributes<HTMLDivElement> {
|
|
1108
1103
|
children?: ReactNode;
|
|
@@ -1905,13 +1900,21 @@ interface RelationshipGraphNode {
|
|
|
1905
1900
|
description?: string;
|
|
1906
1901
|
x?: number;
|
|
1907
1902
|
y?: number;
|
|
1903
|
+
/** Layered layout: the node's column. Omitted → BFS distance from the root along source→target. */
|
|
1904
|
+
depth?: number;
|
|
1908
1905
|
}
|
|
1906
|
+
/** Where an edge's arrowhead sits: at the target (default), at the source, or nowhere. */
|
|
1907
|
+
type RelationshipGraphArrow = 'forward' | 'backward' | 'none';
|
|
1909
1908
|
interface RelationshipGraphEdge {
|
|
1910
1909
|
id: string;
|
|
1911
1910
|
source: string;
|
|
1912
1911
|
target: string;
|
|
1913
1912
|
type?: string;
|
|
1914
1913
|
label?: string;
|
|
1914
|
+
/** Layered layout: arrowhead placement (default `forward`). */
|
|
1915
|
+
arrow?: RelationshipGraphArrow;
|
|
1916
|
+
/** Layered layout: always draw this edge's label, whatever the label policy. */
|
|
1917
|
+
emphasis?: boolean;
|
|
1915
1918
|
}
|
|
1916
1919
|
interface PositionedRelationshipNode extends RelationshipGraphNode {
|
|
1917
1920
|
x: number;
|
|
@@ -1927,11 +1930,157 @@ declare function boundRelationshipGraph(nodes: RelationshipGraphNode[], edges: R
|
|
|
1927
1930
|
declare function relationshipNeighbors(nodeId: string, edges: RelationshipGraphEdge[]): string[];
|
|
1928
1931
|
declare function layoutRelationshipGraph(nodes: RelationshipGraphNode[], edges: RelationshipGraphEdge[], rootId?: string): PositionedRelationshipNode[];
|
|
1929
1932
|
declare function traverseRelationshipNode(nodes: RelationshipGraphNode[], currentId: string | undefined, direction: -1 | 1): string | undefined;
|
|
1933
|
+
type LayeredEdgeKind = 'forward' | 'lateral' | 'cycle';
|
|
1934
|
+
interface LayeredLayoutOptions {
|
|
1935
|
+
rootId?: string;
|
|
1936
|
+
/** Minimum sibling group size that collapses into a cluster. Default 6; 0 disables. */
|
|
1937
|
+
clusterThreshold?: number;
|
|
1938
|
+
expandedClusterIds?: ReadonlySet<string>;
|
|
1939
|
+
density?: 'compact' | 'standard';
|
|
1940
|
+
}
|
|
1941
|
+
interface RelationshipGraphCluster {
|
|
1942
|
+
id: string;
|
|
1943
|
+
parentId: string;
|
|
1944
|
+
depth: number;
|
|
1945
|
+
type?: string;
|
|
1946
|
+
edgeType?: string;
|
|
1947
|
+
edgeLabel?: string;
|
|
1948
|
+
members: RelationshipGraphNode[];
|
|
1949
|
+
}
|
|
1950
|
+
interface LayeredItem {
|
|
1951
|
+
/** Node id, or cluster id for a collapsed cluster. */
|
|
1952
|
+
id: string;
|
|
1953
|
+
kind: 'node' | 'cluster';
|
|
1954
|
+
node?: RelationshipGraphNode;
|
|
1955
|
+
cluster?: RelationshipGraphCluster;
|
|
1956
|
+
depth: number;
|
|
1957
|
+
/** Position within its column (0-based, top to bottom). */
|
|
1958
|
+
index: number;
|
|
1959
|
+
x: number;
|
|
1960
|
+
y: number;
|
|
1961
|
+
width: number;
|
|
1962
|
+
height: number;
|
|
1963
|
+
/** Forward parents / children as item ids, in column order. */
|
|
1964
|
+
parents: string[];
|
|
1965
|
+
children: string[];
|
|
1966
|
+
/** Set on the first member of an expanded cluster: the group its collapse control belongs to. */
|
|
1967
|
+
expandedGroup?: RelationshipGraphCluster;
|
|
1968
|
+
/** True when a lateral or cycle edge touches this node. */
|
|
1969
|
+
inCycle: boolean;
|
|
1970
|
+
/** Edges (any kind) touching this item. */
|
|
1971
|
+
degree: number;
|
|
1972
|
+
}
|
|
1973
|
+
interface RoutedEdge {
|
|
1974
|
+
id: string;
|
|
1975
|
+
/** Item ids (a cluster id when the edge enters a collapsed cluster). */
|
|
1976
|
+
source: string;
|
|
1977
|
+
target: string;
|
|
1978
|
+
kind: LayeredEdgeKind;
|
|
1979
|
+
/** Original edge ids drawn by this path (several for a cluster). */
|
|
1980
|
+
edgeIds: string[];
|
|
1981
|
+
type?: string;
|
|
1982
|
+
label?: string;
|
|
1983
|
+
arrow: RelationshipGraphArrow;
|
|
1984
|
+
emphasis: boolean;
|
|
1985
|
+
path: string;
|
|
1986
|
+
labelX: number;
|
|
1987
|
+
labelY: number;
|
|
1988
|
+
/** Arrowhead tip and the direction it points in (radians, 0 = pointing right). */
|
|
1989
|
+
arrowX: number;
|
|
1990
|
+
arrowY: number;
|
|
1991
|
+
arrowAngle: number;
|
|
1992
|
+
/** Label policy `auto` shows this label without interaction. */
|
|
1993
|
+
autoLabel: boolean;
|
|
1994
|
+
/** The label wrapped to fit the column gap (at most two lines). */
|
|
1995
|
+
labelLines: string[];
|
|
1996
|
+
}
|
|
1997
|
+
interface LayeredColumn {
|
|
1998
|
+
depth: number;
|
|
1999
|
+
x: number;
|
|
2000
|
+
/** Underlying nodes in the column, cluster members included. */
|
|
2001
|
+
count: number;
|
|
2002
|
+
}
|
|
2003
|
+
interface LayeredLayout {
|
|
2004
|
+
rootId: string | undefined;
|
|
2005
|
+
items: LayeredItem[];
|
|
2006
|
+
edges: RoutedEdge[];
|
|
2007
|
+
clusters: RelationshipGraphCluster[];
|
|
2008
|
+
columns: LayeredColumn[];
|
|
2009
|
+
/** Node id → id of the item that currently draws it (itself, or its cluster). */
|
|
2010
|
+
itemOf: Record<string, string>;
|
|
2011
|
+
width: number;
|
|
2012
|
+
height: number;
|
|
2013
|
+
nodeWidth: number;
|
|
2014
|
+
nodeHeight: number;
|
|
2015
|
+
headerHeight: number;
|
|
2016
|
+
}
|
|
2017
|
+
/** Word-wrap a label into at most two lines that fit `width`; overlong words end in an ellipsis. */
|
|
2018
|
+
declare function wrapEdgeLabel(label: string, width: number): string[];
|
|
2019
|
+
interface LayeredEdgeClassification {
|
|
2020
|
+
depthById: Map<string, number>;
|
|
2021
|
+
kindById: Map<string, LayeredEdgeKind>;
|
|
2022
|
+
}
|
|
2023
|
+
/**
|
|
2024
|
+
* Column (depth) for every node and a kind for every drawable edge.
|
|
2025
|
+
* Supplied `node.depth` wins; otherwise BFS from the root along source→target.
|
|
2026
|
+
* Nodes the BFS cannot reach go to a trailing column. Self-loops and edges with
|
|
2027
|
+
* a missing endpoint get no kind and are not drawn.
|
|
2028
|
+
*/
|
|
2029
|
+
declare function classifyLayeredEdges(nodes: RelationshipGraphNode[], edges: RelationshipGraphEdge[], rootId?: string | undefined): LayeredEdgeClassification;
|
|
2030
|
+
declare function clusterIdFor(parentId: string, type: string | undefined, edgeType: string | undefined): string;
|
|
2031
|
+
/** Layered, clustered, crossing-reduced layout for `RelationshipGraph layout="layered"`. */
|
|
2032
|
+
declare function layoutLayeredGraph(nodes: RelationshipGraphNode[], edges: RelationshipGraphEdge[], options?: LayeredLayoutOptions): LayeredLayout;
|
|
2033
|
+
type LayeredNavigationKey = 'ArrowUp' | 'ArrowDown' | 'ArrowLeft' | 'ArrowRight' | 'Home' | 'End';
|
|
2034
|
+
/** Keyboard traversal over a layered layout: ←/→ along forward edges, ↑/↓ within a column. */
|
|
2035
|
+
declare function layeredNeighbor(layout: LayeredLayout, currentId: string | undefined, key: LayeredNavigationKey): string | undefined;
|
|
1930
2036
|
|
|
1931
2037
|
interface RelationshipGraphLegendItem {
|
|
1932
2038
|
id: string;
|
|
1933
2039
|
label: string;
|
|
1934
2040
|
}
|
|
2041
|
+
/** Every visible or announced string. Pass translations; English defaults fill the gaps. */
|
|
2042
|
+
interface RelationshipGraphLabels {
|
|
2043
|
+
graph: string;
|
|
2044
|
+
controls: string;
|
|
2045
|
+
list: string;
|
|
2046
|
+
listHeading: string;
|
|
2047
|
+
legend: string;
|
|
2048
|
+
panLeft: string;
|
|
2049
|
+
panRight: string;
|
|
2050
|
+
panUp: string;
|
|
2051
|
+
panDown: string;
|
|
2052
|
+
left: string;
|
|
2053
|
+
right: string;
|
|
2054
|
+
up: string;
|
|
2055
|
+
down: string;
|
|
2056
|
+
zoomIn: string;
|
|
2057
|
+
zoomOut: string;
|
|
2058
|
+
fit: string;
|
|
2059
|
+
reset: string;
|
|
2060
|
+
zoomLevel: (percent: number) => string;
|
|
2061
|
+
bounded: (shown: number, omitted: number) => string;
|
|
2062
|
+
graphSummary: (nodes: number, edges: number) => string;
|
|
2063
|
+
relationship: string;
|
|
2064
|
+
conflict: string;
|
|
2065
|
+
connectedTo: (names: string) => string;
|
|
2066
|
+
noConnections: string;
|
|
2067
|
+
expandNeighbors: string;
|
|
2068
|
+
openDetails: string;
|
|
2069
|
+
/** Layered column header, e.g. "2 hops · 14". */
|
|
2070
|
+
column: (depth: number, count: number) => string;
|
|
2071
|
+
cluster: (count: number, type: string | undefined, edgeLabel: string | undefined) => string;
|
|
2072
|
+
expandCluster: string;
|
|
2073
|
+
collapseCluster: (count: number, type: string | undefined) => string;
|
|
2074
|
+
cycle: string;
|
|
2075
|
+
relationships: (count: number) => string;
|
|
2076
|
+
roleDescription: string;
|
|
2077
|
+
keyboardHint: string;
|
|
2078
|
+
loading: string;
|
|
2079
|
+
retry: string;
|
|
2080
|
+
emptyTitle: string;
|
|
2081
|
+
emptyHint: string;
|
|
2082
|
+
}
|
|
2083
|
+
declare const DEFAULT_RELATIONSHIP_GRAPH_LABELS: RelationshipGraphLabels;
|
|
1935
2084
|
interface RelationshipGraphProps {
|
|
1936
2085
|
nodes: RelationshipGraphNode[];
|
|
1937
2086
|
edges: RelationshipGraphEdge[];
|
|
@@ -1939,6 +2088,7 @@ interface RelationshipGraphProps {
|
|
|
1939
2088
|
onSelect?: (node: RelationshipGraphNode) => void;
|
|
1940
2089
|
onExpandNeighbors?: (node: RelationshipGraphNode) => void;
|
|
1941
2090
|
onOpenDetails?: (node: RelationshipGraphNode) => void;
|
|
2091
|
+
/** Node budget. Default 40 (radial) or 400 (layered). */
|
|
1942
2092
|
maxNodes?: number;
|
|
1943
2093
|
density?: 'compact' | 'standard';
|
|
1944
2094
|
highlightedNodeIds?: ReadonlySet<string>;
|
|
@@ -1950,9 +2100,39 @@ interface RelationshipGraphProps {
|
|
|
1950
2100
|
error?: string;
|
|
1951
2101
|
onRetry?: () => void;
|
|
1952
2102
|
className?: string;
|
|
2103
|
+
/** `radial` (default) rings around the selection; `layered` reads left to right by distance from `rootId`. */
|
|
2104
|
+
layout?: 'radial' | 'layered';
|
|
2105
|
+
/** Layered: the column-0 node (default: the first node). */
|
|
2106
|
+
rootId?: string;
|
|
2107
|
+
labels?: Partial<RelationshipGraphLabels>;
|
|
2108
|
+
/** Layered: node body. Whatever it shows must also be in `nodeAriaLabel`. */
|
|
2109
|
+
renderNode?: (node: RelationshipGraphNode, state: {
|
|
2110
|
+
selected: boolean;
|
|
2111
|
+
dimmed: boolean;
|
|
2112
|
+
}) => ReactNode;
|
|
2113
|
+
/** Layered: full accessible name for a node. */
|
|
2114
|
+
nodeAriaLabel?: (node: RelationshipGraphNode) => string;
|
|
2115
|
+
/** Layered: cluster body. Whatever it shows must also be in the cluster's accessible name. */
|
|
2116
|
+
renderCluster?: (cluster: RelationshipGraphCluster) => ReactNode;
|
|
2117
|
+
/** Layered: minimum leaf-sibling group that collapses into a cluster. Default 6; 0 disables. */
|
|
2118
|
+
clusterThreshold?: number;
|
|
2119
|
+
/** Layered: controlled set of expanded cluster ids. */
|
|
2120
|
+
expandedClusterIds?: ReadonlySet<string>;
|
|
2121
|
+
onToggleCluster?: (clusterId: string, expanded: boolean) => void;
|
|
2122
|
+
/** Layered: nodes drawn muted (state must also be stated in text by the consumer). */
|
|
2123
|
+
dimmedNodeIds?: ReadonlySet<string>;
|
|
2124
|
+
/** Layered: when edge labels show. `auto` = emphasised edges, small fan-outs, and edges of the active node. */
|
|
2125
|
+
edgeLabels?: 'auto' | 'always' | 'never';
|
|
2126
|
+
/** Render the built-in equivalent list. Set false ONLY when an equivalent list is rendered in the same region. */
|
|
2127
|
+
showList?: boolean;
|
|
2128
|
+
/** Layered: CSS length for the viewport height. */
|
|
2129
|
+
height?: string;
|
|
2130
|
+
/** Layered: controlled roving focus. */
|
|
2131
|
+
focusId?: string;
|
|
2132
|
+
onFocusChange?: (id: string) => void;
|
|
1953
2133
|
}
|
|
1954
2134
|
/** Bounded, deterministic SVG relationship view with an equivalent accessible list. */
|
|
1955
|
-
declare function RelationshipGraph(
|
|
2135
|
+
declare function RelationshipGraph(props: RelationshipGraphProps): react.JSX.Element;
|
|
1956
2136
|
|
|
1957
2137
|
interface MatchReviewField {
|
|
1958
2138
|
id: string;
|
|
@@ -2137,4 +2317,4 @@ declare function hsvToHex(value: HsvColor): string;
|
|
|
2137
2317
|
declare function contrastRatio(background: string, foreground: string): number | undefined;
|
|
2138
2318
|
declare function meetsContrast(background: string, foreground: string, minimum?: number): boolean;
|
|
2139
2319
|
|
|
2140
|
-
export { type AccessStateProps, Alert, type AlertProps, type AlertTone,
|
|
2320
|
+
export { type AccessStateProps, Alert, type AlertProps, type AlertTone, AppShell, type AppShellProps, type AppliedBrandProfileSnapshot, type AsyncOperationState, AsyncOperationStatus, type AsyncOperationStatusProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type BoundedRelationshipGraph, type BrandProfile, BrandProfileEditor, type BrandProfileEditorProps, type BrandProfileLogo, type BrandProfileTypography, BrandProfiles, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, BuilderCanvas, type BuilderCanvasItem, type BuilderCanvasProps, type BuilderPaletteItem, BulkBar, type BulkBarProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type CalendarDay, Card, CardLink, type CardLinkProps, type CardProps, CellStrong, CellSub, Checkbox, type CheckboxProps, CollapsibleSection, type CollapsibleSectionProps, ColorPicker, type ColorPickerProps, type ColumnFilter, Combobox, type ComboboxOption, type ComboboxProps, CommandGroup, type CommandGroupProps, CommandItem, type CommandItemProps, CommandPalette, type CommandPaletteProps, Comment, type CommentProps, Comments, type CommentsProps, Composer, ComposerBar, type ComposerBarProps, type ComposerProps, ConfirmDialog, type ConfirmDialogProps, ContentList, ContentListItem, type ContentListItemProps, type ContentListProps, DEFAULT_RELATIONSHIP_GRAPH_LABELS, DEFAULT_SAVE_STATUS_LABELS, DateRangePicker, type DateRangePickerProps, type DateRangeValue, DescriptionItem, type DescriptionItemProps, DescriptionList, type DescriptionListItem, type DescriptionListProps, DetailLayout, type DetailLayoutProps, DetailPage, type DetailPageMetric, type DetailPageProps, type DetailPageTab, type DiffEntry, type DiffKind, type DiffResolution, type DiffSummary, DiffViewer, type DiffViewerProps, Drawer, type DrawerProps, EmptyState, type EmptyStateProps, ErrorState, type ErrorStateProps, EventRow, type EventRowProps, ExpandToggle, type ExpandToggleProps, FeaturedRundown, FeaturedRundownItem, type FeaturedRundownItemProps, type FeaturedRundownProps, FeaturedStage, type FeaturedStageProps, Field, type FieldProps, type FilterKind, type FilterOp, type FilterOption, FilterPopover, type FilterPopoverProps, FilteredEmptyState, type FlatNode, Flow, FlowNode, type FlowNodeProps, type FlowNodeState, type FlowProps, type FlowVariant, ForbiddenState, Highlighted, type HighlightedProps, type HsvColor, Inbox, InboxDetail, type InboxDetailProps, InboxItem, type InboxItemProps, InboxList, type InboxListProps, type InboxProps, Input, InputGroup, type InputGroupProps, type InputProps, type JsonPrimitive, type JsonValue, Kanban, KanbanCard, type KanbanCardProps, KanbanColumn, type KanbanColumnProps, type KanbanMoveDirection, type KanbanProps, Label, type LabelProps, type LayeredColumn, type LayeredEdgeClassification, type LayeredEdgeKind, type LayeredItem, type LayeredLayout, type LayeredLayoutOptions, type LayeredNavigationKey, LicensePositionBar, type LicensePositionBarProps, List, ListItem, type ListItemProps, type ListProps, LoadingState, type LoadingStateProps, Mark, type MarkProps, type MatchBulkResult, MatchReview, type MatchReviewAction, type MatchReviewCandidate, type MatchReviewField, type MatchReviewProps, Meter, type MeterProps, type MeterTone, MetricInput, type MetricInputProps, Modal, type ModalProps, type NavFavouriteItem, NavFavourites, type NavFavouritesLabels, type NavFavouritesProps, NavGroup, type NavGroupProps, NavItem, type NavItemProps, NewsLead, type NewsLeadProps, NotFoundState, Note, type NoteProps, type NoteTone, NoticeQueue, type NoticeQueueProps, PageHeader, type PageHeaderProps, PageIntro, type PageIntroProps, Pagination, type PaginationProps, Peek, type PeekProps, type PillTone, type PillTreatment, Pipeline, type PipelineProps, PipelineStage, type PipelineStageProps, type PipelineStageState, Placement, Popover, type PopoverProps, type PositionedRelationshipNode, type Primitive, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Prose, type ProseProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, type RelatedLinkItem, RelatedLinks, type RelatedLinksProps, RelationshipGraph, type RelationshipGraphArrow, type RelationshipGraphCluster, type RelationshipGraphEdge, type RelationshipGraphLabels, type RelationshipGraphLegendItem, type RelationshipGraphNode, type RelationshipGraphProps, RelativeTime, type RelativeTimeFormatContext, type RelativeTimeProps, type RelativeTimeUnit, type RelativeTimeValue, ResourceGrid, type ResourceGridProps, type RgbColor, type RoutedEdge, type Row, RowAction, type RowActionProps, RowActions, type RowActionsProps, type RuleAction, type RuleActionDefinition, RuleBuilder, type RuleBuilderProps, type RuleCondition, type RuleDefinition, type RuleFieldDefinition, type RuleGroup, type RuleOperatorDefinition, type RuleValidationIssue, type RuleValueEditorProps, SaveStatus, type SaveStatusLabels, type SaveStatusProps, type SaveStatusState, type SavedViewItem, SavedViewMenu, type SavedViewMenuProps, SchedulingCalendar, type SchedulingCalendarEntry, type SchedulingCalendarOverlay, type SchedulingCalendarProps, type SchedulingCalendarView, type SchedulingEntryState, type SchedulingOverlayKind, SectionHead, type SectionHeadProps, type Segment, Segmented, SegmentedOption, type SegmentedOptionProps, type SegmentedProps, Select, type SelectAllState, type SelectProps, type ShellNav, Sidebar, type SidebarProps, SidebarSection, type SidebarSectionProps, Skeleton, type SkeletonProps, type SortDir, type SortDirection, type SortKey, Spinner, type SpinnerProps, StarButton, type StarButtonProps, Stat, StatLine, type StatLineItem, type StatLineProps, type StatProps, type StatTrend, type StateVariant, StatusPill, type StatusPillProps, StatusRow, type StatusRowProps, SubNavItem, type SubNavItemProps, Switch, type SwitchProps, Tab, TabPanel, type TabPanelProps, type TabProps, Table, type TableDensity, type TableProps, TableWrap, type TableWrapProps, Tabs, type TabsProps, Td, type TdProps, Textarea, type TextareaProps, Th, type ThProps, Timeline, TimelineItem, type TimelineItemProps, type TimelineProps, Toast, type ToastProps, type ToastTone, Toaster, type ToasterProps, ToggleRow, type ToggleRowProps, Tooltip, type TooltipProps, Tr, type TrProps, Tree, type TreeLike, type TreeNavAction, type TreeNodeData, type TreeNodeProps, type TreeProps, type UseAnchoredPositionOptions, type UseTableOptions, type UseTableResult, type UseVirtualRowsOptions, type UseVirtualRowsResult, UserChip, type UserChipProps, ViewMenu, type ViewMenuColumn, type ViewMenuProps, type ViewState, type VirtualWindow, type ZonedDateSpan, addCalendarDays, addCalendarMonths, appendRuleNode, applyBrandProfile, applyFilters, boundRelationshipGraph, buildMonthGrid, buildThreeWayDiff, clampMetricValue, clampWidth, classifyLayeredEdges, clusterIdFor, contrastRatio, cx, enumerateDateSpan, filterComboboxOptions, findRuleNodeDepth, flattenTree, hexToRgb, highlightSegments, hsvToHex, hsvToRgb, isDateInRange, isDateUnavailable, isRuleGroup, layeredNeighbor, layoutLayeredGraph, layoutRelationshipGraph, mapRuleGroup, matchFilter, meetsContrast, mergePinned, moveRuleNode, multiSort, nextSortDir, normalizeHex, parseDateValue, parseMetricValue, parseView, relationshipNeighbors, relativeTimeValue, removeRuleNode, reorder, restoreBrandProfile, rgbToHex, rgbToHsv, ruleDepth, searchRows, selectAllState, selectRangeDate, serializeView, shouldVirtualize, startOfMonth, stepMetricValue, summarizeDiff, summarizeRule, toDateKey, toggleId, togglePage, toggleSort, traverseRelationshipNode, treeNav, useAnchoredPosition, useDialog, useTable, useVirtualRows, validateRuleDefinition, virtualWindow, wrapEdgeLabel, zonedDateKey, zonedDateSpan };
|
package/dist/index.d.ts
CHANGED
|
@@ -51,6 +51,7 @@ export { AsyncOperationState, AsyncOperationStatus, AsyncOperationStatusProps }
|
|
|
51
51
|
export { Label, LabelProps } from './components/Label.js';
|
|
52
52
|
export { Avatar, AvatarGroup, AvatarGroupProps, AvatarProps, UserChip, UserChipProps } from './components/Avatar.js';
|
|
53
53
|
export { Comment, CommentProps, Comments, CommentsProps } from './components/Comments.js';
|
|
54
|
+
export { DEFAULT_SAVE_STATUS_LABELS, SaveStatus, SaveStatusLabels, SaveStatusProps, SaveStatusState } from './components/SaveStatus.js';
|
|
54
55
|
export { Composer, ComposerBar, ComposerBarProps, ComposerProps } from './components/Composer.js';
|
|
55
56
|
export { Segmented, SegmentedOption, SegmentedOptionProps, SegmentedProps } from './components/Segmented.js';
|
|
56
57
|
export { FilterOption, FilterPopover, FilterPopoverProps, SavedViewItem, SavedViewMenu, SavedViewMenuProps, ViewMenu, ViewMenuColumn, ViewMenuProps } from './components/TableControls.js';
|
|
@@ -72,8 +73,8 @@ export { BuilderCanvas, BuilderCanvasItem, BuilderCanvasProps, BuilderPaletteIte
|
|
|
72
73
|
export { SchedulingCalendar, SchedulingCalendarEntry, SchedulingCalendarOverlay, SchedulingCalendarProps, SchedulingCalendarView, SchedulingEntryState, SchedulingOverlayKind } from './components/SchedulingCalendar.js';
|
|
73
74
|
export { DateRangePicker, DateRangePickerProps } from './components/DateRangePicker.js';
|
|
74
75
|
export { CalendarDay, DateRangeValue, ZonedDateSpan, addCalendarDays, addCalendarMonths, buildMonthGrid, enumerateDateSpan, isDateInRange, isDateUnavailable, selectRangeDate, startOfMonth, toDateKey, zonedDateKey, zonedDateSpan } from './calendar-model.js';
|
|
75
|
-
export { RelationshipGraph, RelationshipGraphLegendItem, RelationshipGraphProps } from './components/RelationshipGraph.js';
|
|
76
|
-
export { BoundedRelationshipGraph, PositionedRelationshipNode, RelationshipGraphEdge, RelationshipGraphNode, boundRelationshipGraph, layoutRelationshipGraph, relationshipNeighbors, traverseRelationshipNode } from './relationship-graph-model.js';
|
|
76
|
+
export { DEFAULT_RELATIONSHIP_GRAPH_LABELS, RelationshipGraph, RelationshipGraphLabels, RelationshipGraphLegendItem, RelationshipGraphProps } from './components/RelationshipGraph.js';
|
|
77
|
+
export { BoundedRelationshipGraph, LayeredColumn, LayeredEdgeClassification, LayeredEdgeKind, LayeredItem, LayeredLayout, LayeredLayoutOptions, LayeredNavigationKey, PositionedRelationshipNode, RelationshipGraphArrow, RelationshipGraphCluster, RelationshipGraphEdge, RelationshipGraphNode, RoutedEdge, boundRelationshipGraph, classifyLayeredEdges, clusterIdFor, layeredNeighbor, layoutLayeredGraph, layoutRelationshipGraph, relationshipNeighbors, traverseRelationshipNode, wrapEdgeLabel } from './relationship-graph-model.js';
|
|
77
78
|
export { MatchBulkResult, MatchReview, MatchReviewAction, MatchReviewCandidate, MatchReviewField, MatchReviewProps } from './components/MatchReview.js';
|
|
78
79
|
export { MetricInput, MetricInputProps } from './components/MetricInput.js';
|
|
79
80
|
export { clampMetricValue, parseMetricValue, stepMetricValue } from './metric-model.js';
|
package/dist/index.js
CHANGED
|
@@ -65,6 +65,7 @@ import { AsyncOperationStatus } from "./components/AsyncOperationStatus.js";
|
|
|
65
65
|
import { Label } from "./components/Label.js";
|
|
66
66
|
import { Avatar, AvatarGroup, UserChip } from "./components/Avatar.js";
|
|
67
67
|
import { Comments, Comment } from "./components/Comments.js";
|
|
68
|
+
import { SaveStatus, DEFAULT_SAVE_STATUS_LABELS } from "./components/SaveStatus.js";
|
|
68
69
|
import { Composer, ComposerBar } from "./components/Composer.js";
|
|
69
70
|
import { Segmented, SegmentedOption } from "./components/Segmented.js";
|
|
70
71
|
import { ViewMenu, FilterPopover, SavedViewMenu } from "./components/TableControls.js";
|
|
@@ -121,8 +122,8 @@ import {
|
|
|
121
122
|
zonedDateKey,
|
|
122
123
|
zonedDateSpan
|
|
123
124
|
} from "./calendar-model.js";
|
|
124
|
-
import { RelationshipGraph } from "./components/RelationshipGraph.js";
|
|
125
|
-
import { boundRelationshipGraph, layoutRelationshipGraph, relationshipNeighbors, traverseRelationshipNode } from "./relationship-graph-model.js";
|
|
125
|
+
import { RelationshipGraph, DEFAULT_RELATIONSHIP_GRAPH_LABELS } from "./components/RelationshipGraph.js";
|
|
126
|
+
import { boundRelationshipGraph, layoutRelationshipGraph, relationshipNeighbors, traverseRelationshipNode, classifyLayeredEdges, clusterIdFor, layeredNeighbor, layoutLayeredGraph, wrapEdgeLabel } from "./relationship-graph-model.js";
|
|
126
127
|
import { MatchReview } from "./components/MatchReview.js";
|
|
127
128
|
import { MetricInput } from "./components/MetricInput.js";
|
|
128
129
|
import { clampMetricValue, parseMetricValue, stepMetricValue } from "./metric-model.js";
|
|
@@ -163,6 +164,8 @@ export {
|
|
|
163
164
|
ConfirmDialog,
|
|
164
165
|
ContentList,
|
|
165
166
|
ContentListItem,
|
|
167
|
+
DEFAULT_RELATIONSHIP_GRAPH_LABELS,
|
|
168
|
+
DEFAULT_SAVE_STATUS_LABELS,
|
|
166
169
|
DateRangePicker,
|
|
167
170
|
DescriptionItem,
|
|
168
171
|
DescriptionList,
|
|
@@ -229,6 +232,7 @@ export {
|
|
|
229
232
|
RowAction,
|
|
230
233
|
RowActions,
|
|
231
234
|
RuleBuilder,
|
|
235
|
+
SaveStatus,
|
|
232
236
|
SavedViewMenu,
|
|
233
237
|
SchedulingCalendar,
|
|
234
238
|
SectionHead,
|
|
@@ -272,6 +276,8 @@ export {
|
|
|
272
276
|
buildMonthGrid,
|
|
273
277
|
buildThreeWayDiff,
|
|
274
278
|
clampMetricValue,
|
|
279
|
+
classifyLayeredEdges,
|
|
280
|
+
clusterIdFor,
|
|
275
281
|
computePosition,
|
|
276
282
|
contrastRatio,
|
|
277
283
|
cx,
|
|
@@ -285,6 +291,8 @@ export {
|
|
|
285
291
|
isDateInRange,
|
|
286
292
|
isDateUnavailable,
|
|
287
293
|
isRuleGroup,
|
|
294
|
+
layeredNeighbor,
|
|
295
|
+
layoutLayeredGraph,
|
|
288
296
|
layoutRelationshipGraph,
|
|
289
297
|
mapRuleGroup,
|
|
290
298
|
meetsContrast,
|
|
@@ -312,6 +320,7 @@ export {
|
|
|
312
320
|
useTable,
|
|
313
321
|
useVirtualRows,
|
|
314
322
|
validateRuleDefinition,
|
|
323
|
+
wrapEdgeLabel,
|
|
315
324
|
zonedDateKey,
|
|
316
325
|
zonedDateSpan
|
|
317
326
|
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
type MarkdownInline = {
|
|
2
|
+
type: 'text';
|
|
3
|
+
value: string;
|
|
4
|
+
} | {
|
|
5
|
+
type: 'code';
|
|
6
|
+
value: string;
|
|
7
|
+
} | {
|
|
8
|
+
type: 'strong';
|
|
9
|
+
children: MarkdownInline[];
|
|
10
|
+
} | {
|
|
11
|
+
type: 'em';
|
|
12
|
+
children: MarkdownInline[];
|
|
13
|
+
} | {
|
|
14
|
+
type: 'del';
|
|
15
|
+
children: MarkdownInline[];
|
|
16
|
+
} | {
|
|
17
|
+
type: 'link';
|
|
18
|
+
href: string;
|
|
19
|
+
title?: string;
|
|
20
|
+
children: MarkdownInline[];
|
|
21
|
+
bare?: boolean;
|
|
22
|
+
} | {
|
|
23
|
+
type: 'image';
|
|
24
|
+
src: string;
|
|
25
|
+
alt: string;
|
|
26
|
+
title?: string;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'br';
|
|
29
|
+
};
|
|
30
|
+
type TableAlign = 'left' | 'center' | 'right' | null;
|
|
31
|
+
interface MarkdownListItem {
|
|
32
|
+
/** `null` for a plain item, otherwise the task state. */
|
|
33
|
+
checked: boolean | null;
|
|
34
|
+
children: MarkdownInline[];
|
|
35
|
+
/** Nested lists. */
|
|
36
|
+
lists: MarkdownList[];
|
|
37
|
+
}
|
|
38
|
+
interface MarkdownList {
|
|
39
|
+
type: 'list';
|
|
40
|
+
ordered: boolean;
|
|
41
|
+
start: number;
|
|
42
|
+
items: MarkdownListItem[];
|
|
43
|
+
}
|
|
44
|
+
type MarkdownBlock = {
|
|
45
|
+
type: 'paragraph';
|
|
46
|
+
children: MarkdownInline[];
|
|
47
|
+
} | {
|
|
48
|
+
type: 'heading';
|
|
49
|
+
level: number;
|
|
50
|
+
children: MarkdownInline[];
|
|
51
|
+
} | {
|
|
52
|
+
type: 'code';
|
|
53
|
+
lang: string;
|
|
54
|
+
value: string;
|
|
55
|
+
} | {
|
|
56
|
+
type: 'quote';
|
|
57
|
+
children: MarkdownInline[];
|
|
58
|
+
} | {
|
|
59
|
+
type: 'rule';
|
|
60
|
+
} | MarkdownList | {
|
|
61
|
+
type: 'table';
|
|
62
|
+
align: TableAlign[];
|
|
63
|
+
head: MarkdownInline[][];
|
|
64
|
+
rows: MarkdownInline[][][];
|
|
65
|
+
};
|
|
66
|
+
/** Inline markdown to nodes. Newlines become line breaks. */
|
|
67
|
+
declare function parseInline(text: string, depth?: number): MarkdownInline[];
|
|
68
|
+
/** The text a reader sees, for accessible names and image alt text. */
|
|
69
|
+
declare function plainText(nodes: ReadonlyArray<MarkdownInline>): string;
|
|
70
|
+
/** Split a table row on unescaped pipes outside code spans. */
|
|
71
|
+
declare function splitTableRow(line: string): string[];
|
|
72
|
+
/** Markdown source to blocks. Empty or whitespace-only input yields no blocks. */
|
|
73
|
+
declare function parseMarkdown(source: string): MarkdownBlock[];
|
|
74
|
+
|
|
75
|
+
export { type MarkdownBlock, type MarkdownInline, type MarkdownList, type MarkdownListItem, type TableAlign, parseInline, parseMarkdown, plainText, splitTableRow };
|