@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.
Files changed (60) hide show
  1. package/README.md +131 -1
  2. package/dist/components/Comments.d.ts +18 -2
  3. package/dist/components/Comments.js +37 -12
  4. package/dist/components/EditorIcons.d.ts +39 -0
  5. package/dist/components/EditorIcons.js +51 -0
  6. package/dist/components/EmojiGlyph.d.ts +10 -0
  7. package/dist/components/EmojiGlyph.js +18 -0
  8. package/dist/components/EmojiPicker.d.ts +60 -0
  9. package/dist/components/EmojiPicker.js +277 -0
  10. package/dist/components/Markdown.d.ts +36 -0
  11. package/dist/components/Markdown.js +104 -0
  12. package/dist/components/ReactionBar.d.ts +57 -0
  13. package/dist/components/ReactionBar.js +81 -0
  14. package/dist/components/RelationshipGraph.d.ts +81 -3
  15. package/dist/components/RelationshipGraph.js +102 -59
  16. package/dist/components/RelationshipGraphLayered.d.ts +8 -0
  17. package/dist/components/RelationshipGraphLayered.js +420 -0
  18. package/dist/components/RelationshipGraphList.d.ts +16 -0
  19. package/dist/components/RelationshipGraphList.js +33 -0
  20. package/dist/components/RichTextEditor.d.ts +128 -0
  21. package/dist/components/RichTextEditor.js +954 -0
  22. package/dist/components/SaveStatus.d.ts +32 -0
  23. package/dist/components/SaveStatus.js +21 -0
  24. package/dist/components/Tabs.d.ts +10 -3
  25. package/dist/components/Tabs.js +5 -3
  26. package/dist/emoji-image-WQLh8ZQP.d.cts +128 -0
  27. package/dist/emoji-image.d.ts +25 -0
  28. package/dist/emoji-image.js +80 -0
  29. package/dist/emoji-model.d.ts +66 -0
  30. package/dist/emoji-model.js +108 -0
  31. package/dist/emoji.cjs +871 -0
  32. package/dist/emoji.d.cts +57 -0
  33. package/dist/emoji.d.ts +6 -0
  34. package/dist/emoji.js +18 -0
  35. package/dist/index.cjs +1503 -540
  36. package/dist/index.d.cts +245 -65
  37. package/dist/index.d.ts +3 -2
  38. package/dist/index.js +11 -2
  39. package/dist/markdown-model.d.ts +75 -0
  40. package/dist/markdown-model.js +438 -0
  41. package/dist/markdown.cjs +585 -0
  42. package/dist/markdown.d.cts +115 -0
  43. package/dist/markdown.d.ts +4 -0
  44. package/dist/markdown.js +9 -0
  45. package/dist/overlay-position-CEGSz6Z2.d.cts +59 -0
  46. package/dist/relationship-graph-model.d.ts +112 -1
  47. package/dist/relationship-graph-model.js +420 -1
  48. package/dist/rich-text/emoji-items.d.ts +14 -0
  49. package/dist/rich-text/emoji-items.js +7 -0
  50. package/dist/rich-text/pipeline.d.ts +91 -0
  51. package/dist/rich-text/pipeline.js +379 -0
  52. package/dist/rich-text/round-trip.d.ts +24 -0
  53. package/dist/rich-text/round-trip.js +11 -0
  54. package/dist/rich-text.cjs +2578 -0
  55. package/dist/rich-text.d.cts +148 -0
  56. package/dist/rich-text.d.ts +8 -0
  57. package/dist/rich-text.js +10 -0
  58. package/dist/url-policy.d.ts +9 -0
  59. package/dist/url-policy.js +11 -0
  60. 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. Place it as a direct child of `<Tabs>` — it is hoisted out of the tablist —
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
- /** A single comment over `.uix-comment` (avatar column + body). */
1105
- declare function Comment({ avatar, author, meta, children, className, ...props }: CommentProps): react.JSX.Element;
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({ nodes, edges, selectedId, onSelect, onExpandNeighbors, onOpenDetails, maxNodes, density, highlightedNodeIds, conflictedNodeIds, highlightedEdgeIds, conflictedEdgeIds, legend, loading, error, onRetry, className, }: RelationshipGraphProps): react.JSX.Element;
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, type Align, 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, 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, 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, type Placement, Popover, type PopoverProps, type PositionOptions, type PositionResult, type PositionedRelationshipNode, type Primitive, Progress, type ProgressProps, PromptDialog, type PromptDialogProps, Prose, type ProseProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, type Rect, type RelatedLinkItem, RelatedLinks, type RelatedLinksProps, RelationshipGraph, type RelationshipGraphEdge, type RelationshipGraphLegendItem, type RelationshipGraphNode, type RelationshipGraphProps, RelativeTime, type RelativeTimeFormatContext, type RelativeTimeProps, type RelativeTimeUnit, type RelativeTimeValue, ResourceGrid, type ResourceGridProps, type RgbColor, 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, 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, type Side, Sidebar, type SidebarProps, SidebarSection, type SidebarSectionProps, type Size, 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, computePosition, contrastRatio, cx, enumerateDateSpan, filterComboboxOptions, findRuleNodeDepth, flattenTree, hexToRgb, highlightSegments, hsvToHex, hsvToRgb, isDateInRange, isDateUnavailable, isRuleGroup, 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, zonedDateKey, zonedDateSpan };
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 };