@smwb/ui-react 2.8.0 → 2.10.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 (243) hide show
  1. package/AI_LESS_OVERRIDES.md +84 -21
  2. package/AI_THEMING.md +72 -28
  3. package/README.md +654 -0
  4. package/dist/assets/styles/less/components/appBar/appBar.entry.css +1 -1
  5. package/dist/assets/styles/less/components/badge/badge.entry.css +1 -1
  6. package/dist/assets/styles/less/components/button/button.entry.css +1 -1
  7. package/dist/assets/styles/less/components/checkbox/checkbox.entry.css +1 -1
  8. package/dist/assets/styles/less/components/chip/chip.entry.css +1 -1
  9. package/dist/assets/styles/less/components/commandPalette/commandPalette.entry.css +1 -0
  10. package/dist/assets/styles/less/components/composer/composer.entry.css +1 -0
  11. package/dist/assets/styles/less/components/dagView/dagView.entry.css +1 -0
  12. package/dist/assets/styles/less/components/diffStat/diffStat.entry.css +1 -0
  13. package/dist/assets/styles/less/components/kbd/kbd.entry.css +1 -0
  14. package/dist/assets/styles/less/components/list/list.entry.css +1 -1
  15. package/dist/assets/styles/less/components/qrCode/qrCode.entry.css +1 -0
  16. package/dist/assets/styles/less/components/radioButton/radioButton.entry.css +1 -1
  17. package/dist/assets/styles/less/components/selectField/selectField.entry.css +1 -1
  18. package/dist/assets/styles/less/components/sidebar/sidebar.entry.css +1 -1
  19. package/dist/assets/styles/less/components/statusDot/statusDot.entry.css +1 -0
  20. package/dist/assets/styles/less/components/swimlanes/swimlanes.entry.css +1 -0
  21. package/dist/assets/styles/less/components/tabGroups/tabGroups.entry.css +1 -0
  22. package/dist/assets/styles/less/components/tabs/tab/tab.entry.css +1 -1
  23. package/dist/assets/styles/less/components/tabs/tabPanel/tabPanel.entry.css +1 -0
  24. package/dist/assets/styles/less/components/tabs/tabs.entry.css +1 -1
  25. package/dist/assets/styles/less/components/textField/textField.entry.css +1 -1
  26. package/dist/assets/styles/less/components/toggle/toggle.entry.css +1 -1
  27. package/dist/assets/styles/less/components/treeView/treeView.entry.css +1 -1
  28. package/dist/assets/styles/less/tokens.entry.css +1 -1
  29. package/dist/components/dataDisplay/badge/badge.d.ts +2 -1
  30. package/dist/components/dataDisplay/badge/badge.js.map +1 -1
  31. package/dist/components/dataDisplay/chat/chat.d.ts +43 -1
  32. package/dist/components/dataDisplay/chat/chat.js +179 -150
  33. package/dist/components/dataDisplay/chat/chat.js.map +1 -1
  34. package/dist/components/dataDisplay/chat/chatComposer.d.ts +17 -0
  35. package/dist/components/dataDisplay/chat/chatComposer.js +31 -29
  36. package/dist/components/dataDisplay/chat/chatComposer.js.map +1 -1
  37. package/dist/components/dataDisplay/chat/index.d.ts +1 -1
  38. package/dist/components/dataDisplay/chat/utils.d.ts +14 -0
  39. package/dist/components/dataDisplay/chat/utils.js.map +1 -1
  40. package/dist/components/dataDisplay/dagView/dagLayout.d.ts +74 -0
  41. package/dist/components/dataDisplay/dagView/dagLayout.js +289 -0
  42. package/dist/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  43. package/dist/components/dataDisplay/dagView/dagView.d.ts +157 -0
  44. package/dist/components/dataDisplay/dagView/dagView.js +543 -0
  45. package/dist/components/dataDisplay/dagView/dagView.js.map +1 -0
  46. package/dist/components/dataDisplay/dagView/index.d.ts +4 -0
  47. package/dist/components/dataDisplay/dagView/panZoom.d.ts +75 -0
  48. package/dist/components/dataDisplay/dagView/panZoom.js +171 -0
  49. package/dist/components/dataDisplay/dagView/panZoom.js.map +1 -0
  50. package/dist/components/dataDisplay/diffStat/diffStat.d.ts +54 -0
  51. package/dist/components/dataDisplay/diffStat/diffStat.js +63 -0
  52. package/dist/components/dataDisplay/diffStat/diffStat.js.map +1 -0
  53. package/dist/components/dataDisplay/diffStat/index.d.ts +2 -0
  54. package/dist/components/dataDisplay/kbd/index.d.ts +4 -0
  55. package/dist/components/dataDisplay/kbd/kbd.d.ts +40 -0
  56. package/dist/components/dataDisplay/kbd/kbd.js +27 -0
  57. package/dist/components/dataDisplay/kbd/kbd.js.map +1 -0
  58. package/dist/components/dataDisplay/kbd/kbdKeys.d.ts +18 -0
  59. package/dist/components/dataDisplay/kbd/kbdKeys.js +72 -0
  60. package/dist/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
  61. package/dist/components/dataDisplay/list/listItem.d.ts +34 -0
  62. package/dist/components/dataDisplay/list/listItem.js +47 -24
  63. package/dist/components/dataDisplay/list/listItem.js.map +1 -1
  64. package/dist/components/dataDisplay/qrCode/index.d.ts +2 -0
  65. package/dist/components/dataDisplay/qrCode/qrCode.d.ts +28 -0
  66. package/dist/components/dataDisplay/qrCode/qrCode.js +78 -0
  67. package/dist/components/dataDisplay/qrCode/qrCode.js.map +1 -0
  68. package/dist/components/dataDisplay/qrCode/qrCodePath.d.ts +7 -0
  69. package/dist/components/dataDisplay/qrCode/qrCodePath.js +20 -0
  70. package/dist/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
  71. package/dist/components/dataDisplay/statusDot/index.d.ts +2 -0
  72. package/dist/components/dataDisplay/statusDot/statusDot.d.ts +35 -0
  73. package/dist/components/dataDisplay/statusDot/statusDot.js +30 -0
  74. package/dist/components/dataDisplay/statusDot/statusDot.js.map +1 -0
  75. package/dist/components/dataDisplay/swimlanes/index.d.ts +2 -0
  76. package/dist/components/dataDisplay/swimlanes/swimlanes.d.ts +53 -0
  77. package/dist/components/dataDisplay/swimlanes/swimlanes.js +357 -0
  78. package/dist/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
  79. package/dist/components/dataDisplay/treeView/treeView.d.ts +17 -1
  80. package/dist/components/dataDisplay/treeView/treeView.js +113 -92
  81. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  82. package/dist/components/feedBack/modal/modal.js +84 -63
  83. package/dist/components/feedBack/modal/modal.js.map +1 -1
  84. package/dist/components/inputs/button/button.d.ts +13 -1
  85. package/dist/components/inputs/button/button.js +57 -51
  86. package/dist/components/inputs/button/button.js.map +1 -1
  87. package/dist/components/inputs/composer/composer.d.ts +149 -0
  88. package/dist/components/inputs/composer/composer.js +219 -0
  89. package/dist/components/inputs/composer/composer.js.map +1 -0
  90. package/dist/components/inputs/composer/composerFiles.d.ts +26 -0
  91. package/dist/components/inputs/composer/composerFiles.js +19 -0
  92. package/dist/components/inputs/composer/composerFiles.js.map +1 -0
  93. package/dist/components/inputs/composer/composerKeys.d.ts +29 -0
  94. package/dist/components/inputs/composer/composerKeys.js +7 -0
  95. package/dist/components/inputs/composer/composerKeys.js.map +1 -0
  96. package/dist/components/inputs/composer/index.d.ts +3 -0
  97. package/dist/components/layout/sheet/sheet.d.ts +12 -0
  98. package/dist/components/layout/sheet/sheet.js +152 -137
  99. package/dist/components/layout/sheet/sheet.js.map +1 -1
  100. package/dist/components/layout/tabGroups/index.d.ts +4 -0
  101. package/dist/components/layout/tabGroups/tabGroups.d.ts +94 -0
  102. package/dist/components/layout/tabGroups/tabGroups.js +783 -0
  103. package/dist/components/layout/tabGroups/tabGroups.js.map +1 -0
  104. package/dist/components/layout/tabGroups/tabGroupsFocus.d.ts +55 -0
  105. package/dist/components/layout/tabGroups/tabGroupsFocus.js +199 -0
  106. package/dist/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
  107. package/dist/components/layout/tabGroups/tabGroupsLayout.d.ts +250 -0
  108. package/dist/components/layout/tabGroups/tabGroupsLayout.js +497 -0
  109. package/dist/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
  110. package/dist/components/navigation/appBar/appBar.d.ts +22 -0
  111. package/dist/components/navigation/appBar/appBar.js +31 -26
  112. package/dist/components/navigation/appBar/appBar.js.map +1 -1
  113. package/dist/components/navigation/commandPalette/commandPalette.d.ts +111 -0
  114. package/dist/components/navigation/commandPalette/commandPalette.js +337 -0
  115. package/dist/components/navigation/commandPalette/commandPalette.js.map +1 -0
  116. package/dist/components/navigation/commandPalette/commandPaletteFilter.d.ts +11 -0
  117. package/dist/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
  118. package/dist/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
  119. package/dist/components/navigation/commandPalette/commandPaletteNavigation.d.ts +13 -0
  120. package/dist/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
  121. package/dist/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
  122. package/dist/components/navigation/commandPalette/commandPaletteTypes.d.ts +39 -0
  123. package/dist/components/navigation/commandPalette/index.d.ts +4 -0
  124. package/dist/components/navigation/sidebar/sidebar.d.ts +10 -0
  125. package/dist/components/navigation/sidebar/sidebar.js +61 -59
  126. package/dist/components/navigation/sidebar/sidebar.js.map +1 -1
  127. package/dist/components/navigation/tabs/index.d.ts +3 -1
  128. package/dist/components/navigation/tabs/tab/tab.d.ts +88 -1
  129. package/dist/components/navigation/tabs/tab/tab.js +121 -42
  130. package/dist/components/navigation/tabs/tab/tab.js.map +1 -1
  131. package/dist/components/navigation/tabs/tabPanel/tabPanel.d.ts +19 -0
  132. package/dist/components/navigation/tabs/tabPanel/tabPanel.js +27 -0
  133. package/dist/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
  134. package/dist/components/navigation/tabs/tabs.d.ts +79 -6
  135. package/dist/components/navigation/tabs/tabs.js +369 -145
  136. package/dist/components/navigation/tabs/tabs.js.map +1 -1
  137. package/dist/components/navigation/tabs/tabs.utils.d.ts +20 -0
  138. package/dist/components/navigation/tabs/tabs.utils.js +11 -0
  139. package/dist/components/navigation/tabs/tabs.utils.js.map +1 -0
  140. package/dist/components/navigation/tabs/tabsContext.d.ts +11 -0
  141. package/dist/components/navigation/tabs/tabsContext.js +6 -0
  142. package/dist/components/navigation/tabs/tabsContext.js.map +1 -0
  143. package/dist/headless/components/dataDisplay/badge/badge.js.map +1 -1
  144. package/dist/headless/components/dataDisplay/chat/chat.js +179 -150
  145. package/dist/headless/components/dataDisplay/chat/chat.js.map +1 -1
  146. package/dist/headless/components/dataDisplay/chat/chatComposer.js +31 -29
  147. package/dist/headless/components/dataDisplay/chat/chatComposer.js.map +1 -1
  148. package/dist/headless/components/dataDisplay/chat/utils.js.map +1 -1
  149. package/dist/headless/components/dataDisplay/dagView/dagLayout.js +289 -0
  150. package/dist/headless/components/dataDisplay/dagView/dagLayout.js.map +1 -0
  151. package/dist/headless/components/dataDisplay/dagView/dagView.js +541 -0
  152. package/dist/headless/components/dataDisplay/dagView/dagView.js.map +1 -0
  153. package/dist/headless/components/dataDisplay/dagView/panZoom.js +171 -0
  154. package/dist/headless/components/dataDisplay/dagView/panZoom.js.map +1 -0
  155. package/dist/headless/components/dataDisplay/diffStat/diffStat.js +61 -0
  156. package/dist/headless/components/dataDisplay/diffStat/diffStat.js.map +1 -0
  157. package/dist/headless/components/dataDisplay/kbd/kbd.js +25 -0
  158. package/dist/headless/components/dataDisplay/kbd/kbd.js.map +1 -0
  159. package/dist/headless/components/dataDisplay/kbd/kbdKeys.js +72 -0
  160. package/dist/headless/components/dataDisplay/kbd/kbdKeys.js.map +1 -0
  161. package/dist/headless/components/dataDisplay/list/listItem.js +47 -24
  162. package/dist/headless/components/dataDisplay/list/listItem.js.map +1 -1
  163. package/dist/headless/components/dataDisplay/qrCode/qrCode.js +76 -0
  164. package/dist/headless/components/dataDisplay/qrCode/qrCode.js.map +1 -0
  165. package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js +20 -0
  166. package/dist/headless/components/dataDisplay/qrCode/qrCodePath.js.map +1 -0
  167. package/dist/headless/components/dataDisplay/statusDot/statusDot.js +28 -0
  168. package/dist/headless/components/dataDisplay/statusDot/statusDot.js.map +1 -0
  169. package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js +355 -0
  170. package/dist/headless/components/dataDisplay/swimlanes/swimlanes.js.map +1 -0
  171. package/dist/headless/components/dataDisplay/treeView/treeView.js +113 -92
  172. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  173. package/dist/headless/components/feedBack/modal/modal.js +85 -64
  174. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  175. package/dist/headless/components/inputs/button/button.js +56 -50
  176. package/dist/headless/components/inputs/button/button.js.map +1 -1
  177. package/dist/headless/components/inputs/composer/composer.js +217 -0
  178. package/dist/headless/components/inputs/composer/composer.js.map +1 -0
  179. package/dist/headless/components/inputs/composer/composerFiles.js +19 -0
  180. package/dist/headless/components/inputs/composer/composerFiles.js.map +1 -0
  181. package/dist/headless/components/inputs/composer/composerKeys.js +7 -0
  182. package/dist/headless/components/inputs/composer/composerKeys.js.map +1 -0
  183. package/dist/headless/components/layout/sheet/sheet.js +160 -145
  184. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  185. package/dist/headless/components/layout/tabGroups/tabGroups.js +781 -0
  186. package/dist/headless/components/layout/tabGroups/tabGroups.js.map +1 -0
  187. package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js +199 -0
  188. package/dist/headless/components/layout/tabGroups/tabGroupsFocus.js.map +1 -0
  189. package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js +497 -0
  190. package/dist/headless/components/layout/tabGroups/tabGroupsLayout.js.map +1 -0
  191. package/dist/headless/components/navigation/appBar/appBar.js +35 -30
  192. package/dist/headless/components/navigation/appBar/appBar.js.map +1 -1
  193. package/dist/headless/components/navigation/commandPalette/commandPalette.js +335 -0
  194. package/dist/headless/components/navigation/commandPalette/commandPalette.js.map +1 -0
  195. package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js +16 -0
  196. package/dist/headless/components/navigation/commandPalette/commandPaletteFilter.js.map +1 -0
  197. package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js +38 -0
  198. package/dist/headless/components/navigation/commandPalette/commandPaletteNavigation.js.map +1 -0
  199. package/dist/headless/components/navigation/sidebar/sidebar.js +56 -54
  200. package/dist/headless/components/navigation/sidebar/sidebar.js.map +1 -1
  201. package/dist/headless/components/navigation/tabs/tab/tab.js +121 -42
  202. package/dist/headless/components/navigation/tabs/tab/tab.js.map +1 -1
  203. package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js +25 -0
  204. package/dist/headless/components/navigation/tabs/tabPanel/tabPanel.js.map +1 -0
  205. package/dist/headless/components/navigation/tabs/tabs.js +369 -145
  206. package/dist/headless/components/navigation/tabs/tabs.js.map +1 -1
  207. package/dist/headless/components/navigation/tabs/tabs.utils.js +11 -0
  208. package/dist/headless/components/navigation/tabs/tabs.utils.js.map +1 -0
  209. package/dist/headless/components/navigation/tabs/tabsContext.js +6 -0
  210. package/dist/headless/components/navigation/tabs/tabsContext.js.map +1 -0
  211. package/dist/headless/hooks/useFocusTrap.js +24 -21
  212. package/dist/headless/hooks/useFocusTrap.js.map +1 -1
  213. package/dist/headless/hooks/useKeyboardShortcut.js +19 -0
  214. package/dist/headless/hooks/useKeyboardShortcut.js.map +1 -0
  215. package/dist/headless/index.js +360 -316
  216. package/dist/headless/index.js.map +1 -1
  217. package/dist/headless/utils/keyboardShortcut.js +49 -0
  218. package/dist/headless/utils/keyboardShortcut.js.map +1 -0
  219. package/dist/headless/utils/linkAttrs.js +13 -0
  220. package/dist/headless/utils/linkAttrs.js.map +1 -0
  221. package/dist/headless/utils/restoreFocus.js +10 -0
  222. package/dist/headless/utils/restoreFocus.js.map +1 -0
  223. package/dist/hooks/useFocusTrap.d.ts +6 -1
  224. package/dist/hooks/useFocusTrap.js +24 -21
  225. package/dist/hooks/useFocusTrap.js.map +1 -1
  226. package/dist/hooks/useKeyboardShortcut.d.ts +30 -0
  227. package/dist/hooks/useKeyboardShortcut.js +19 -0
  228. package/dist/hooks/useKeyboardShortcut.js.map +1 -0
  229. package/dist/index.cjs +3 -2
  230. package/dist/index.cjs.map +1 -1
  231. package/dist/index.d.ts +24 -3
  232. package/dist/index.js +360 -316
  233. package/dist/index.js.map +1 -1
  234. package/dist/utils/keyboardShortcut.d.ts +12 -0
  235. package/dist/utils/keyboardShortcut.js +49 -0
  236. package/dist/utils/keyboardShortcut.js.map +1 -0
  237. package/dist/utils/linkAttrs.d.ts +13 -0
  238. package/dist/utils/linkAttrs.js +13 -0
  239. package/dist/utils/linkAttrs.js.map +1 -0
  240. package/dist/utils/restoreFocus.d.ts +8 -0
  241. package/dist/utils/restoreFocus.js +10 -0
  242. package/dist/utils/restoreFocus.js.map +1 -0
  243. package/package.json +5 -3
@@ -0,0 +1,157 @@
1
+ import React from "react";
2
+ import { type DagDirection, type DagLayoutInput, type DagLayoutResult } from "./dagLayout";
3
+ import { type Viewport } from "./panZoom";
4
+ /** A node's status: a built-in one, coloured by the theme, or any word of the app's, styled by `[data-status]`. */
5
+ export type DagViewStatus = "idle" | "pending" | "running" | "success" | "warning" | "error" | "skipped" | (string & {});
6
+ export interface DagViewNode<T = unknown> {
7
+ /** Unique among the nodes; edges name nodes by it. */
8
+ id: string;
9
+ /** What the default node shows, and its accessible name; the id unless given. */
10
+ label?: React.ReactNode;
11
+ /** Colours the node's accent from the theme. */
12
+ status?: DagViewStatus | undefined;
13
+ /** The node's accent colour, over its status colour: any CSS colour. */
14
+ accent?: string | undefined;
15
+ /** The node's width in pixels; `nodeWidth` unless given. */
16
+ width?: number | undefined;
17
+ /** The node's height in pixels; `nodeHeight` unless given. */
18
+ height?: number | undefined;
19
+ /** Anything of the app's, handed back to `renderNode` and `onNodeClick`. */
20
+ data?: T;
21
+ /** Shown, focusable, but not selectable. */
22
+ disabled?: boolean | undefined;
23
+ }
24
+ export interface DagViewEdge {
25
+ /** `source->target` unless given. */
26
+ id?: string | undefined;
27
+ /** The id of the node the edge starts from: the one depended on. */
28
+ source: string;
29
+ /** The id of the node the edge points to: the one that depends on `source`. */
30
+ target: string;
31
+ }
32
+ /** A node's state for `renderNode`: a snapshot of the render it is passed to. */
33
+ export interface DagViewNodeState {
34
+ readonly selected: boolean;
35
+ /** Next to the selected node: "upstream" feeds it, "downstream" depends on it. */
36
+ readonly related: "upstream" | "downstream" | null;
37
+ /** Set apart from the selected node and its neighbours, with `dimUnrelated`. */
38
+ readonly dimmed: boolean;
39
+ /** Has keyboard focus. */
40
+ readonly focused: boolean;
41
+ }
42
+ /** Where the graph is: moved by x, y (pixels) and scaled by zoom. */
43
+ export type DagViewViewport = Viewport;
44
+ /** Moves the view from outside; handed over by `apiRef` once the graph is in the page. */
45
+ export interface DagViewApi {
46
+ /** Fits the whole graph in view. */
47
+ fitView(): void;
48
+ /** Zooms to `zoom` around the middle of the view. */
49
+ zoomTo(zoom: number): void;
50
+ /** Zooms by `factor` around the middle of the view. */
51
+ zoomBy(factor: number): void;
52
+ /** Moves the node with this id to the middle of the view. */
53
+ centerNode(id: string): void;
54
+ }
55
+ /** Texts for assistive technology and the zoom buttons, English by default. */
56
+ export interface DagViewLabels {
57
+ /** What the graph is called as a widget: "dependency graph". */
58
+ roleDescription: string;
59
+ /** "Status", before a node's status word. */
60
+ status: string;
61
+ /** "Depends on", before the names of the nodes a node's edges come from. */
62
+ dependsOn: string;
63
+ /** "Required by", before the names of the nodes a node's edges go to. */
64
+ requiredBy: string;
65
+ /** Status words, shown on the default nodes and read out: { running: "Running", … }. */
66
+ statuses: Record<string, string>;
67
+ zoomIn: string;
68
+ zoomOut: string;
69
+ fitView: string;
70
+ /** The name of the group of zoom buttons. */
71
+ controls: string;
72
+ }
73
+ export interface DagViewProps<T = unknown> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onClick"> {
74
+ /** What the graph shows: its accessible name. */
75
+ label: string;
76
+ /** The graph in words, for screen readers; it is there on the server too. */
77
+ summary?: string | undefined;
78
+ /** The nodes. A change of status, label or data alone does not lay the graph out again. */
79
+ nodes: readonly DagViewNode<T>[];
80
+ /** The edges, from the node depended on to the node that depends on it. */
81
+ edges: readonly DagViewEdge[];
82
+ /**
83
+ * Draws a node's content inside its box; the default shows a status dot,
84
+ * the label and the status word. `node` and `state` are a snapshot of the
85
+ * render they are passed to. Keep the content non-interactive where you can:
86
+ * a node is an ARIA option, whose content assistive technology may read as
87
+ * plain text, and a click in it also selects the node. Links and buttons in
88
+ * it are left out of the Tab order except in the node that is the graph's
89
+ * Tab stop.
90
+ */
91
+ renderNode?: ((node: DagViewNode<T>, state: DagViewNodeState) => React.ReactNode) | undefined;
92
+ /** Which way the layers run: "LR" (left to right, default) or "TB" (top to bottom). */
93
+ direction?: DagDirection | undefined;
94
+ /** A node's width in pixels, unless the node sets its own; 180 by default. */
95
+ nodeWidth?: number | undefined;
96
+ /** A node's height in pixels, unless the node sets its own; 56 by default. */
97
+ nodeHeight?: number | undefined;
98
+ /** The space between layers in pixels; 64 by default. */
99
+ rankGap?: number | undefined;
100
+ /** The space between nodes in a layer in pixels; 24 by default. */
101
+ nodeGap?: number | undefined;
102
+ /**
103
+ * Lays the graph out in place of the built-in layout, e.g. with dagre or elk. It must be
104
+ * synchronous. The layout re-runs when the graph's shape changes; swapping this function
105
+ * alone does not.
106
+ */
107
+ layout?: ((input: DagLayoutInput) => DagLayoutResult) | undefined;
108
+ /** The selected node's id (controlled); null selects nothing. */
109
+ selectedId?: string | null | undefined;
110
+ /** The node selected at first (uncontrolled). */
111
+ defaultSelectedId?: string | null | undefined;
112
+ /** A node was selected (its id) or the selection was cleared (null). */
113
+ onSelectedChange?: ((id: string | null) => void) | undefined;
114
+ /** A node was clicked, or chosen with Enter or Space. Not called for a disabled node. */
115
+ onNodeClick?: ((node: DagViewNode<T>, event: React.MouseEvent | React.KeyboardEvent) => void) | undefined;
116
+ /** Fades the nodes and edges that are not next to the selected node. */
117
+ dimUnrelated?: boolean | undefined;
118
+ /** Where the graph is (controlled). */
119
+ viewport?: DagViewViewport | undefined;
120
+ /** Where the graph is at first (uncontrolled); with `fit={false}` the page does not move after it loads. */
121
+ defaultViewport?: DagViewViewport | undefined;
122
+ /** The view moved or zoomed: at most once per frame during a gesture. */
123
+ onViewportChange?: ((viewport: DagViewViewport) => void) | undefined;
124
+ /** Fits the graph in view once it is in the page, and again when its nodes or edges change; true by default. */
125
+ fit?: boolean | undefined;
126
+ /** The smallest zoom; 0.1 by default. */
127
+ minZoom?: number | undefined;
128
+ /** The largest zoom; 2 by default. */
129
+ maxZoom?: number | undefined;
130
+ /** What a plain mouse wheel does: "zoom" (default), "pan", or "none" (the page scrolls). Ctrl+wheel and a trackpad pinch always zoom. */
131
+ wheel?: "zoom" | "pan" | "none" | undefined;
132
+ /** Shows the zoom in, zoom out and fit buttons; true by default. */
133
+ controls?: boolean | undefined;
134
+ /** Texts for assistive technology and the buttons, over the English defaults. */
135
+ labels?: Partial<DagViewLabels> | undefined;
136
+ /**
137
+ * The graph's height: a number of pixels or any CSS length; 480 by default,
138
+ * from the stylesheet, so a height in `style` works too. It fills the width.
139
+ */
140
+ height?: number | string | undefined;
141
+ /** Gets the functions that move the view from outside. */
142
+ apiRef?: ((api: DagViewApi) => void) | undefined;
143
+ /** Test id of the root `<div>`; `dag-view` unless given. */
144
+ "data-testid"?: string | undefined;
145
+ }
146
+ /**
147
+ * A directed graph of dependencies: nodes in layers, left to right or top to
148
+ * bottom, joined by arrows. A node is selected by a click or the keyboard, and
149
+ * the edges into and out of it light up; the view pans and zooms with a mouse,
150
+ * a trackpad, touch or the keyboard.
151
+ *
152
+ * `forwardRef` pins the props' generic to its default, so the export is
153
+ * re-typed over it: `T` is inferred from `nodes`, and `renderNode` and
154
+ * `onNodeClick` see `node.data` as `T`.
155
+ */
156
+ export declare const DagView: <T = unknown>(props: DagViewProps<T> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
157
+ export default DagView;