@anvia/react-ui 1.2.2 → 1.3.1

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 (131) hide show
  1. package/dist/attachment/index.d.ts +3 -21
  2. package/dist/attachment/index.js +3 -12
  3. package/dist/attachment-DsKTPumt.js +89 -0
  4. package/dist/attachment-DsKTPumt.js.map +1 -0
  5. package/dist/chat/index.d.ts +3 -144
  6. package/dist/chat/index.js +3 -25
  7. package/dist/chat-CAnvUEAv.js +1210 -0
  8. package/dist/chat-CAnvUEAv.js.map +1 -0
  9. package/dist/completion/index.d.ts +3 -29
  10. package/dist/completion/index.js +3 -16
  11. package/dist/completion-DDTKoZRJ.js +124 -0
  12. package/dist/completion-DDTKoZRJ.js.map +1 -0
  13. package/dist/connection-DeNq8wHS.js +203 -0
  14. package/dist/connection-DeNq8wHS.js.map +1 -0
  15. package/dist/contexts-B4ijG24z.js +212 -0
  16. package/dist/contexts-B4ijG24z.js.map +1 -0
  17. package/dist/elements-D4vmkkF8.js +19 -0
  18. package/dist/elements-D4vmkkF8.js.map +1 -0
  19. package/dist/graph-explorer/index.d.ts +54 -73
  20. package/dist/graph-explorer/index.d.ts.map +1 -0
  21. package/dist/graph-explorer/index.js +181 -248
  22. package/dist/graph-explorer/index.js.map +1 -1
  23. package/dist/human-input/index.d.ts +3 -78
  24. package/dist/human-input/index.js +3 -21
  25. package/dist/human-input-CsCbZomZ.js +314 -0
  26. package/dist/human-input-CsCbZomZ.js.map +1 -0
  27. package/dist/image/index.d.ts +3 -40
  28. package/dist/image/index.js +3 -12
  29. package/dist/image-D_7vaQCR.js +302 -0
  30. package/dist/image-D_7vaQCR.js.map +1 -0
  31. package/dist/index-B1Qs2Cjv.d.ts +145 -0
  32. package/dist/index-B1Qs2Cjv.d.ts.map +1 -0
  33. package/dist/index-BCBVcl0D.d.ts +277 -0
  34. package/dist/index-BCBVcl0D.d.ts.map +1 -0
  35. package/dist/index-CE22tsua.d.ts +20 -0
  36. package/dist/index-CE22tsua.d.ts.map +1 -0
  37. package/dist/index-CGqtpc6b.d.ts +25 -0
  38. package/dist/index-CGqtpc6b.d.ts.map +1 -0
  39. package/dist/index-DqdyM0Jm.d.ts +7 -0
  40. package/dist/index-DqdyM0Jm.d.ts.map +1 -0
  41. package/dist/index-Mw3ltwSG.d.ts +318 -0
  42. package/dist/index-Mw3ltwSG.d.ts.map +1 -0
  43. package/dist/index.d.ts +7 -40
  44. package/dist/index.js +34 -118
  45. package/dist/index.js.map +1 -1
  46. package/dist/message/index.d.ts +3 -105
  47. package/dist/message/index.js +3 -20
  48. package/dist/message-Dn3wW6yy.js +783 -0
  49. package/dist/message-Dn3wW6yy.js.map +1 -0
  50. package/dist/primitives-xfE7zfwJ.js +15 -0
  51. package/dist/primitives-xfE7zfwJ.js.map +1 -0
  52. package/dist/refs-Djj9rSvB.js +10 -0
  53. package/dist/refs-Djj9rSvB.js.map +1 -0
  54. package/dist/sandbox-desktop/index.d.ts +100 -104
  55. package/dist/sandbox-desktop/index.d.ts.map +1 -0
  56. package/dist/sandbox-desktop/index.js +344 -342
  57. package/dist/sandbox-desktop/index.js.map +1 -1
  58. package/dist/sandbox-terminal/index.d.ts +52 -56
  59. package/dist/sandbox-terminal/index.d.ts.map +1 -0
  60. package/dist/sandbox-terminal/index.js +217 -208
  61. package/dist/sandbox-terminal/index.js.map +1 -1
  62. package/dist/selection-toolbar/index.d.ts +3 -21
  63. package/dist/selection-toolbar/index.js +3 -13
  64. package/dist/selection-toolbar-CIkOoM-7.js +171 -0
  65. package/dist/selection-toolbar-CIkOoM-7.js.map +1 -0
  66. package/dist/shared-BSYElFU2.d.ts +2 -0
  67. package/dist/shared.d.ts +4 -14
  68. package/dist/shared.js +1 -43
  69. package/dist/stream/index.d.ts +2 -22
  70. package/dist/stream/index.js +1 -8
  71. package/dist/stream-CAO0x8_1.js +298 -0
  72. package/dist/stream-CAO0x8_1.js.map +1 -0
  73. package/dist/thread-list/index.d.ts +3 -47
  74. package/dist/thread-list/index.js +3 -18
  75. package/dist/thread-list-xJbGXFrE.js +228 -0
  76. package/dist/thread-list-xJbGXFrE.js.map +1 -0
  77. package/dist/ticket-CoJHBpdF.d.ts +32 -0
  78. package/dist/ticket-CoJHBpdF.d.ts.map +1 -0
  79. package/dist/value-BGGrx72L.js +13 -0
  80. package/dist/value-BGGrx72L.js.map +1 -0
  81. package/package.json +22 -22
  82. package/dist/attachment/index.js.map +0 -1
  83. package/dist/attachment-mbjsroli.d.ts +0 -9
  84. package/dist/chat/index.js.map +0 -1
  85. package/dist/chat-PSj1Fo4W.d.ts +0 -88
  86. package/dist/chunk-22EZJUPM.js +0 -120
  87. package/dist/chunk-22EZJUPM.js.map +0 -1
  88. package/dist/chunk-5FZKTDZR.js +0 -201
  89. package/dist/chunk-5FZKTDZR.js.map +0 -1
  90. package/dist/chunk-6XOJFLX4.js +0 -22
  91. package/dist/chunk-6XOJFLX4.js.map +0 -1
  92. package/dist/chunk-CKA4CE26.js +0 -25
  93. package/dist/chunk-CKA4CE26.js.map +0 -1
  94. package/dist/chunk-DLBNFBXQ.js +0 -425
  95. package/dist/chunk-DLBNFBXQ.js.map +0 -1
  96. package/dist/chunk-E73S3SOF.js +0 -404
  97. package/dist/chunk-E73S3SOF.js.map +0 -1
  98. package/dist/chunk-F6AKBUO3.js +0 -380
  99. package/dist/chunk-F6AKBUO3.js.map +0 -1
  100. package/dist/chunk-HGOPGZNQ.js +0 -195
  101. package/dist/chunk-HGOPGZNQ.js.map +0 -1
  102. package/dist/chunk-KHB5CHAU.js +0 -220
  103. package/dist/chunk-KHB5CHAU.js.map +0 -1
  104. package/dist/chunk-LHABOAOP.js +0 -316
  105. package/dist/chunk-LHABOAOP.js.map +0 -1
  106. package/dist/chunk-N5XQU36W.js +0 -410
  107. package/dist/chunk-N5XQU36W.js.map +0 -1
  108. package/dist/chunk-T3ZFZ3NP.js +0 -30
  109. package/dist/chunk-T3ZFZ3NP.js.map +0 -1
  110. package/dist/chunk-W2AHKMRS.js +0 -1092
  111. package/dist/chunk-W2AHKMRS.js.map +0 -1
  112. package/dist/chunk-Y2KAMPVJ.js +0 -1582
  113. package/dist/chunk-Y2KAMPVJ.js.map +0 -1
  114. package/dist/completion/index.js.map +0 -1
  115. package/dist/completion-input-DHlwrhxB.d.ts +0 -24
  116. package/dist/composer-6iCSIq6L.d.ts +0 -111
  117. package/dist/human-input/index.js.map +0 -1
  118. package/dist/human-input-CkLrZ8IC.d.ts +0 -27
  119. package/dist/image/index.js.map +0 -1
  120. package/dist/image-VZv6Ddsn.d.ts +0 -14
  121. package/dist/message/index.js.map +0 -1
  122. package/dist/message-CNRnZQwU.d.ts +0 -14
  123. package/dist/render-CRKWam2v.d.ts +0 -8
  124. package/dist/selection-toolbar/index.js.map +0 -1
  125. package/dist/selection-toolbar-Cwjbuv5S.d.ts +0 -14
  126. package/dist/shared.js.map +0 -1
  127. package/dist/stream/index.js.map +0 -1
  128. package/dist/thread-Bz6-1zaJ.d.ts +0 -12
  129. package/dist/thread-list/index.js.map +0 -1
  130. package/dist/thread-list-On8db4XL.d.ts +0 -34
  131. package/dist/ticket-pexI1zIa.d.ts +0 -33
@@ -1,261 +1,194 @@
1
- import {
2
- renderPrimitive
3
- } from "../chunk-T3ZFZ3NP.js";
4
- import {
5
- GraphExplorerProvider,
6
- InternalGraphExplorerNodeProvider,
7
- useGraphExplorerContext,
8
- useGraphExplorerNode,
9
- useOptionalGraphExplorerNode
10
- } from "../chunk-E73S3SOF.js";
11
-
12
- // src/graph-explorer/parts.tsx
1
+ import { A as useGraphExplorerContext, M as useOptionalGraphExplorerNode, O as GraphExplorerProvider, j as useGraphExplorerNode, k as InternalGraphExplorerNodeProvider } from "../contexts-B4ijG24z.js";
2
+ import { t as renderPrimitive } from "../primitives-xfE7zfwJ.js";
13
3
  import { forwardRef, useCallback } from "react";
14
-
4
+ import { jsx } from "react/jsx-runtime";
15
5
  // src/graph-explorer/helpers.ts
16
6
  function graphExplorerNodeLabel(node) {
17
- for (const key of ["name", "title", "label"]) {
18
- const value = node.properties[key];
19
- if (typeof value === "string" && value.trim().length > 0) return value;
20
- }
21
- if (node.key !== void 0) return node.key;
22
- return `${node.type} ${node.id}`;
7
+ for (const key of [
8
+ "name",
9
+ "title",
10
+ "label"
11
+ ]) {
12
+ const value = node.properties[key];
13
+ if (typeof value === "string" && value.trim().length > 0) return value;
14
+ }
15
+ if (node.key !== void 0) return node.key;
16
+ return `${node.type} ${node.id}`;
23
17
  }
24
-
25
18
  // src/graph-explorer/parts.tsx
26
- import { jsx } from "react/jsx-runtime";
27
- var GraphExplorerRoot = forwardRef(
28
- function GraphExplorerRoot2(props, ref) {
29
- const explorer = useGraphExplorerContext();
30
- const truncated = explorer.truncated.nodes || explorer.truncated.relationships;
31
- return renderPrimitive(
32
- "div",
33
- {
34
- ...props,
35
- "aria-busy": explorer.status === "loading",
36
- "data-role": "graph-explorer",
37
- "data-state": explorer.status,
38
- "data-truncated": truncated ? "true" : "false"
39
- },
40
- ref
41
- );
42
- }
43
- );
44
- var GraphExplorerSearch = forwardRef(
45
- function GraphExplorerSearch2({ onChange, ...props }, ref) {
46
- const explorer = useGraphExplorerContext();
47
- const handleChange = useCallback(
48
- (event) => {
49
- onChange?.(event);
50
- if (!event.defaultPrevented) explorer.setQuery(event.currentTarget.value);
51
- },
52
- [explorer, onChange]
53
- );
54
- return renderPrimitive(
55
- "input",
56
- {
57
- ...props,
58
- "aria-label": props["aria-label"] ?? "Search graph",
59
- "data-state": explorer.query.length === 0 ? "empty" : "populated",
60
- onChange: handleChange,
61
- type: props.type ?? "search",
62
- value: explorer.query
63
- },
64
- ref
65
- );
66
- }
67
- );
68
- var GraphExplorerViewport = forwardRef(
69
- function GraphExplorerViewport2(props, ref) {
70
- return renderPrimitive(
71
- "div",
72
- { ...props, "data-role": "graph-explorer-viewport" },
73
- ref
74
- );
75
- }
76
- );
77
- var GraphExplorerNodes = forwardRef(
78
- function GraphExplorerNodes2({ children, keepMounted = false, ...props }, ref) {
79
- const explorer = useGraphExplorerContext();
80
- const empty = explorer.nodes.length === 0;
81
- if (empty && !keepMounted) return null;
82
- return renderPrimitive(
83
- "div",
84
- {
85
- ...props,
86
- children: explorer.nodes.map((node) => {
87
- const state = {
88
- node,
89
- selected: node.id === explorer.selectedNodeId,
90
- matched: explorer.matchedNodeIds.has(node.id)
91
- };
92
- return /* @__PURE__ */ jsx(InternalGraphExplorerNodeProvider, { value: state, children: typeof children === "function" ? children(node, state) : children ?? /* @__PURE__ */ jsx(GraphExplorerNodeRoot, { children: /* @__PURE__ */ jsx(GraphExplorerNodeTrigger, {}) }) }, node.id);
93
- }),
94
- "data-state": empty ? "empty" : "populated",
95
- role: props.role ?? "list"
96
- },
97
- ref
98
- );
99
- }
100
- );
101
- var GraphExplorerEmpty = forwardRef(
102
- function GraphExplorerEmpty2(props, ref) {
103
- const explorer = useGraphExplorerContext();
104
- if (explorer.nodes.length > 0 || explorer.status === "loading") return null;
105
- return renderPrimitive(
106
- "div",
107
- { ...props, children: props.children ?? "No graph nodes." },
108
- ref
109
- );
110
- }
111
- );
112
- var GraphExplorerStatus = forwardRef(
113
- function GraphExplorerStatus2({ children, ...props }, ref) {
114
- const explorer = useGraphExplorerContext();
115
- const content = typeof children === "function" ? children(explorer) : children ?? statusText(explorer);
116
- return renderPrimitive(
117
- "div",
118
- {
119
- ...props,
120
- children: content,
121
- "data-state": explorer.status,
122
- role: props.role ?? "status"
123
- },
124
- ref
125
- );
126
- }
127
- );
128
- var GraphExplorerRefresh = forwardRef(
129
- function GraphExplorerRefresh2({ onClick, ...props }, ref) {
130
- const explorer = useGraphExplorerContext();
131
- const disabled = props.disabled ?? explorer.status === "loading";
132
- const handleClick = useAsyncAction(onClick, disabled, explorer.refresh);
133
- return renderPrimitive(
134
- "button",
135
- {
136
- ...props,
137
- children: props.children ?? "Refresh graph",
138
- disabled,
139
- onClick: handleClick,
140
- type: props.type ?? "button"
141
- },
142
- ref
143
- );
144
- }
145
- );
146
- var GraphExplorerNodeRoot = forwardRef(
147
- function GraphExplorerNodeRoot2({ nodeId, ...props }, ref) {
148
- const explorer = useGraphExplorerContext();
149
- const inherited = useOptionalGraphExplorerNode();
150
- const node = nodeId === void 0 ? inherited?.node : explorer.nodeById.get(nodeId);
151
- if (node === void 0) {
152
- throw new Error(
153
- nodeId === void 0 ? "GraphExplorerNodePrimitive.Root requires a nodeId outside GraphExplorerPrimitive.Nodes." : `Graph explorer node ${nodeId} is not loaded.`
154
- );
155
- }
156
- const state = {
157
- node,
158
- selected: node.id === explorer.selectedNodeId,
159
- matched: explorer.matchedNodeIds.has(node.id)
160
- };
161
- return /* @__PURE__ */ jsx(InternalGraphExplorerNodeProvider, { value: state, children: renderPrimitive(
162
- "div",
163
- {
164
- ...props,
165
- "data-match": state.matched ? "matched" : "unmatched",
166
- "data-node-id": state.node.id,
167
- "data-node-type": state.node.type,
168
- "data-state": state.selected ? "selected" : "unselected",
169
- role: props.role ?? (inherited === void 0 ? void 0 : "listitem")
170
- },
171
- ref
172
- ) });
173
- }
174
- );
175
- var GraphExplorerNodeTrigger = forwardRef(
176
- function GraphExplorerNodeTrigger2({ onClick, ...props }, ref) {
177
- const explorer = useGraphExplorerContext();
178
- const state = useGraphExplorerNode();
179
- const handleClick = useCallback(
180
- (event) => {
181
- onClick?.(event);
182
- if (!event.defaultPrevented && !props.disabled) explorer.selectNode(state.node.id);
183
- },
184
- [explorer, onClick, props.disabled, state.node.id]
185
- );
186
- return renderPrimitive(
187
- "button",
188
- {
189
- ...props,
190
- children: props.children ?? graphExplorerNodeLabel(state.node),
191
- onClick: handleClick,
192
- type: props.type ?? "button",
193
- "aria-pressed": state.selected
194
- },
195
- ref
196
- );
197
- }
198
- );
199
- var GraphExplorerNodeExpand = forwardRef(
200
- function GraphExplorerNodeExpand2({ onClick, options, ...props }, ref) {
201
- const explorer = useGraphExplorerContext();
202
- const state = useGraphExplorerNode();
203
- const disabled = props.disabled ?? explorer.status === "loading";
204
- const expand = useCallback(
205
- () => explorer.expandNode(state.node.id, options),
206
- [explorer, options, state.node.id]
207
- );
208
- const handleClick = useAsyncAction(onClick, disabled, expand);
209
- return renderPrimitive(
210
- "button",
211
- {
212
- ...props,
213
- children: props.children ?? "Expand",
214
- disabled,
215
- onClick: handleClick,
216
- type: props.type ?? "button"
217
- },
218
- ref
219
- );
220
- }
221
- );
19
+ const GraphExplorerRoot = forwardRef(function GraphExplorerRoot(props, ref) {
20
+ const explorer = useGraphExplorerContext();
21
+ const truncated = explorer.truncated.nodes || explorer.truncated.relationships;
22
+ return renderPrimitive("div", {
23
+ ...props,
24
+ "aria-busy": explorer.status === "loading",
25
+ "data-role": "graph-explorer",
26
+ "data-state": explorer.status,
27
+ "data-truncated": truncated ? "true" : "false"
28
+ }, ref);
29
+ });
30
+ const GraphExplorerSearch = forwardRef(function GraphExplorerSearch({ onChange, ...props }, ref) {
31
+ const explorer = useGraphExplorerContext();
32
+ const handleChange = useCallback((event) => {
33
+ onChange?.(event);
34
+ if (!event.defaultPrevented) explorer.setQuery(event.currentTarget.value);
35
+ }, [explorer, onChange]);
36
+ return renderPrimitive("input", {
37
+ ...props,
38
+ "aria-label": props["aria-label"] ?? "Search graph",
39
+ "data-state": explorer.query.length === 0 ? "empty" : "populated",
40
+ onChange: handleChange,
41
+ type: props.type ?? "search",
42
+ value: explorer.query
43
+ }, ref);
44
+ });
45
+ const GraphExplorerViewport = forwardRef(function GraphExplorerViewport(props, ref) {
46
+ return renderPrimitive("div", {
47
+ ...props,
48
+ "data-role": "graph-explorer-viewport"
49
+ }, ref);
50
+ });
51
+ const GraphExplorerNodes = forwardRef(function GraphExplorerNodes({ children, keepMounted = false, ...props }, ref) {
52
+ const explorer = useGraphExplorerContext();
53
+ const empty = explorer.nodes.length === 0;
54
+ if (empty && !keepMounted) return null;
55
+ return renderPrimitive("div", {
56
+ ...props,
57
+ children: explorer.nodes.map((node) => {
58
+ const state = {
59
+ node,
60
+ selected: node.id === explorer.selectedNodeId,
61
+ matched: explorer.matchedNodeIds.has(node.id)
62
+ };
63
+ return /* @__PURE__ */ jsx(InternalGraphExplorerNodeProvider, {
64
+ value: state,
65
+ children: typeof children === "function" ? children(node, state) : children ?? /* @__PURE__ */ jsx(GraphExplorerNodeRoot, { children: /* @__PURE__ */ jsx(GraphExplorerNodeTrigger, {}) })
66
+ }, node.id);
67
+ }),
68
+ "data-state": empty ? "empty" : "populated",
69
+ role: props.role ?? "list"
70
+ }, ref);
71
+ });
72
+ const GraphExplorerEmpty = forwardRef(function GraphExplorerEmpty(props, ref) {
73
+ const explorer = useGraphExplorerContext();
74
+ if (explorer.nodes.length > 0 || explorer.status === "loading") return null;
75
+ return renderPrimitive("div", {
76
+ ...props,
77
+ children: props.children ?? "No graph nodes."
78
+ }, ref);
79
+ });
80
+ const GraphExplorerStatus = forwardRef(function GraphExplorerStatus({ children, ...props }, ref) {
81
+ const explorer = useGraphExplorerContext();
82
+ const content = typeof children === "function" ? children(explorer) : children ?? statusText(explorer);
83
+ return renderPrimitive("div", {
84
+ ...props,
85
+ children: content,
86
+ "data-state": explorer.status,
87
+ role: props.role ?? "status"
88
+ }, ref);
89
+ });
90
+ const GraphExplorerRefresh = forwardRef(function GraphExplorerRefresh({ onClick, ...props }, ref) {
91
+ const explorer = useGraphExplorerContext();
92
+ const disabled = props.disabled ?? explorer.status === "loading";
93
+ const handleClick = useAsyncAction(onClick, disabled, explorer.refresh);
94
+ return renderPrimitive("button", {
95
+ ...props,
96
+ children: props.children ?? "Refresh graph",
97
+ disabled,
98
+ onClick: handleClick,
99
+ type: props.type ?? "button"
100
+ }, ref);
101
+ });
102
+ const GraphExplorerNodeRoot = forwardRef(function GraphExplorerNodeRoot({ nodeId, ...props }, ref) {
103
+ const explorer = useGraphExplorerContext();
104
+ const inherited = useOptionalGraphExplorerNode();
105
+ const node = nodeId === void 0 ? inherited?.node : explorer.nodeById.get(nodeId);
106
+ if (node === void 0) throw new Error(nodeId === void 0 ? "GraphExplorerNodePrimitive.Root requires a nodeId outside GraphExplorerPrimitive.Nodes." : `Graph explorer node ${nodeId} is not loaded.`);
107
+ const state = {
108
+ node,
109
+ selected: node.id === explorer.selectedNodeId,
110
+ matched: explorer.matchedNodeIds.has(node.id)
111
+ };
112
+ return /* @__PURE__ */ jsx(InternalGraphExplorerNodeProvider, {
113
+ value: state,
114
+ children: renderPrimitive("div", {
115
+ ...props,
116
+ "data-match": state.matched ? "matched" : "unmatched",
117
+ "data-node-id": state.node.id,
118
+ "data-node-type": state.node.type,
119
+ "data-state": state.selected ? "selected" : "unselected",
120
+ role: props.role ?? (inherited === void 0 ? void 0 : "listitem")
121
+ }, ref)
122
+ });
123
+ });
124
+ const GraphExplorerNodeTrigger = forwardRef(function GraphExplorerNodeTrigger({ onClick, ...props }, ref) {
125
+ const explorer = useGraphExplorerContext();
126
+ const state = useGraphExplorerNode();
127
+ const handleClick = useCallback((event) => {
128
+ onClick?.(event);
129
+ if (!event.defaultPrevented && !props.disabled) explorer.selectNode(state.node.id);
130
+ }, [
131
+ explorer,
132
+ onClick,
133
+ props.disabled,
134
+ state.node.id
135
+ ]);
136
+ return renderPrimitive("button", {
137
+ ...props,
138
+ children: props.children ?? graphExplorerNodeLabel(state.node),
139
+ onClick: handleClick,
140
+ type: props.type ?? "button",
141
+ "aria-pressed": state.selected
142
+ }, ref);
143
+ });
144
+ const GraphExplorerNodeExpand = forwardRef(function GraphExplorerNodeExpand({ onClick, options, ...props }, ref) {
145
+ const explorer = useGraphExplorerContext();
146
+ const state = useGraphExplorerNode();
147
+ const disabled = props.disabled ?? explorer.status === "loading";
148
+ const handleClick = useAsyncAction(onClick, disabled, useCallback(() => explorer.expandNode(state.node.id, options), [
149
+ explorer,
150
+ options,
151
+ state.node.id
152
+ ]));
153
+ return renderPrimitive("button", {
154
+ ...props,
155
+ children: props.children ?? "Expand",
156
+ disabled,
157
+ onClick: handleClick,
158
+ type: props.type ?? "button"
159
+ }, ref);
160
+ });
222
161
  function useAsyncAction(onClick, disabled, action) {
223
- return useCallback(
224
- (event) => {
225
- onClick?.(event);
226
- if (event.defaultPrevented || disabled) return;
227
- void action().catch(() => void 0);
228
- },
229
- [action, disabled, onClick]
230
- );
162
+ return useCallback((event) => {
163
+ onClick?.(event);
164
+ if (event.defaultPrevented || disabled) return;
165
+ action().catch(() => void 0);
166
+ }, [
167
+ action,
168
+ disabled,
169
+ onClick
170
+ ]);
231
171
  }
232
172
  function statusText(explorer) {
233
- if (explorer.status === "loading") return "Loading graph.";
234
- if (explorer.status === "error") return "Graph exploration failed.";
235
- return `${explorer.nodes.length} nodes, ${explorer.relationships.length} relationships.`;
173
+ if (explorer.status === "loading") return "Loading graph.";
174
+ if (explorer.status === "error") return "Graph exploration failed.";
175
+ return `${explorer.nodes.length} nodes, ${explorer.relationships.length} relationships.`;
236
176
  }
237
-
238
177
  // src/graph-explorer/index.ts
239
- var GraphExplorerPrimitive = {
240
- Root: GraphExplorerRoot,
241
- Viewport: GraphExplorerViewport,
242
- Search: GraphExplorerSearch,
243
- Nodes: GraphExplorerNodes,
244
- Empty: GraphExplorerEmpty,
245
- Status: GraphExplorerStatus,
246
- Refresh: GraphExplorerRefresh
178
+ const GraphExplorerPrimitive = {
179
+ Root: GraphExplorerRoot,
180
+ Viewport: GraphExplorerViewport,
181
+ Search: GraphExplorerSearch,
182
+ Nodes: GraphExplorerNodes,
183
+ Empty: GraphExplorerEmpty,
184
+ Status: GraphExplorerStatus,
185
+ Refresh: GraphExplorerRefresh
247
186
  };
248
- var GraphExplorerNodePrimitive = {
249
- Root: GraphExplorerNodeRoot,
250
- Trigger: GraphExplorerNodeTrigger,
251
- Expand: GraphExplorerNodeExpand
252
- };
253
- export {
254
- GraphExplorerNodePrimitive,
255
- GraphExplorerPrimitive,
256
- GraphExplorerProvider,
257
- graphExplorerNodeLabel,
258
- useGraphExplorerContext,
259
- useGraphExplorerNode
187
+ const GraphExplorerNodePrimitive = {
188
+ Root: GraphExplorerNodeRoot,
189
+ Trigger: GraphExplorerNodeTrigger,
190
+ Expand: GraphExplorerNodeExpand
260
191
  };
192
+ export { GraphExplorerNodePrimitive, GraphExplorerPrimitive, GraphExplorerProvider, graphExplorerNodeLabel, useGraphExplorerContext, useGraphExplorerNode };
193
+
261
194
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/graph-explorer/parts.tsx","../../src/graph-explorer/helpers.ts","../../src/graph-explorer/index.ts"],"sourcesContent":["import type { GraphExploreNode } from \"@anvia/graph\";\nimport { forwardRef, type ChangeEvent, type MouseEvent, type ReactNode, useCallback } from \"react\";\n\nimport {\n InternalGraphExplorerNodeProvider,\n type GraphExplorerController,\n type GraphExplorerExpandNodeOptions,\n type GraphExplorerNodeContextValue,\n useGraphExplorerContext,\n useGraphExplorerNode,\n useOptionalGraphExplorerNode,\n} from \"../contexts\";\nimport { type PrimitiveProps, renderPrimitive } from \"../primitives\";\nimport { graphExplorerNodeLabel } from \"./helpers\";\n\nexport const GraphExplorerRoot = forwardRef<HTMLDivElement, PrimitiveProps<\"div\">>(\n function GraphExplorerRoot(props, ref) {\n const explorer = useGraphExplorerContext();\n const truncated = explorer.truncated.nodes || explorer.truncated.relationships;\n return renderPrimitive(\n \"div\",\n {\n ...props,\n \"aria-busy\": explorer.status === \"loading\",\n \"data-role\": \"graph-explorer\",\n \"data-state\": explorer.status,\n \"data-truncated\": truncated ? \"true\" : \"false\",\n } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\nexport const GraphExplorerSearch = forwardRef<HTMLInputElement, PrimitiveProps<\"input\">>(\n function GraphExplorerSearch({ onChange, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n if (!event.defaultPrevented) explorer.setQuery(event.currentTarget.value);\n },\n [explorer, onChange],\n );\n return renderPrimitive(\n \"input\",\n {\n ...props,\n \"aria-label\": props[\"aria-label\"] ?? \"Search graph\",\n \"data-state\": explorer.query.length === 0 ? \"empty\" : \"populated\",\n onChange: handleChange,\n type: props.type ?? \"search\",\n value: explorer.query,\n } as PrimitiveProps<\"input\">,\n ref,\n );\n },\n);\n\nexport const GraphExplorerViewport = forwardRef<HTMLDivElement, PrimitiveProps<\"div\">>(\n function GraphExplorerViewport(props, ref) {\n return renderPrimitive(\n \"div\",\n { ...props, \"data-role\": \"graph-explorer-viewport\" } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\ntype GraphExplorerNodesChildren =\n | ReactNode\n | ((node: GraphExploreNode, state: GraphExplorerNodeContextValue) => ReactNode);\n\ntype GraphExplorerNodesProps = Omit<PrimitiveProps<\"div\">, \"children\"> & {\n children?: GraphExplorerNodesChildren;\n keepMounted?: boolean;\n};\n\nexport const GraphExplorerNodes = forwardRef<HTMLDivElement, GraphExplorerNodesProps>(\n function GraphExplorerNodes({ children, keepMounted = false, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const empty = explorer.nodes.length === 0;\n if (empty && !keepMounted) return null;\n return renderPrimitive(\n \"div\",\n {\n ...props,\n children: explorer.nodes.map((node) => {\n const state: GraphExplorerNodeContextValue = {\n node,\n selected: node.id === explorer.selectedNodeId,\n matched: explorer.matchedNodeIds.has(node.id),\n };\n return (\n <InternalGraphExplorerNodeProvider key={node.id} value={state}>\n {typeof children === \"function\"\n ? children(node, state)\n : (children ?? (\n <GraphExplorerNodeRoot>\n <GraphExplorerNodeTrigger />\n </GraphExplorerNodeRoot>\n ))}\n </InternalGraphExplorerNodeProvider>\n );\n }),\n \"data-state\": empty ? \"empty\" : \"populated\",\n role: props.role ?? \"list\",\n } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\nexport const GraphExplorerEmpty = forwardRef<HTMLDivElement, PrimitiveProps<\"div\">>(\n function GraphExplorerEmpty(props, ref) {\n const explorer = useGraphExplorerContext();\n if (explorer.nodes.length > 0 || explorer.status === \"loading\") return null;\n return renderPrimitive(\n \"div\",\n { ...props, children: props.children ?? \"No graph nodes.\" } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\ntype GraphExplorerStatusChildren = ReactNode | ((explorer: GraphExplorerController) => ReactNode);\ntype GraphExplorerStatusProps = Omit<PrimitiveProps<\"div\">, \"children\"> & {\n children?: GraphExplorerStatusChildren;\n};\n\nexport const GraphExplorerStatus = forwardRef<HTMLDivElement, GraphExplorerStatusProps>(\n function GraphExplorerStatus({ children, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const content =\n typeof children === \"function\" ? children(explorer) : (children ?? statusText(explorer));\n return renderPrimitive(\n \"div\",\n {\n ...props,\n children: content,\n \"data-state\": explorer.status,\n role: props.role ?? \"status\",\n } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\nexport const GraphExplorerRefresh = forwardRef<HTMLButtonElement, PrimitiveProps<\"button\">>(\n function GraphExplorerRefresh({ onClick, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const disabled = props.disabled ?? explorer.status === \"loading\";\n const handleClick = useAsyncAction(onClick, disabled, explorer.refresh);\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? \"Refresh graph\",\n disabled,\n onClick: handleClick,\n type: props.type ?? \"button\",\n } as PrimitiveProps<\"button\">,\n ref,\n );\n },\n);\n\nexport type GraphExplorerNodeRootProps = PrimitiveProps<\"div\"> & { nodeId?: string };\n\nexport const GraphExplorerNodeRoot = forwardRef<HTMLDivElement, GraphExplorerNodeRootProps>(\n function GraphExplorerNodeRoot({ nodeId, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const inherited = useOptionalGraphExplorerNode();\n const node = nodeId === undefined ? inherited?.node : explorer.nodeById.get(nodeId);\n if (node === undefined) {\n throw new Error(\n nodeId === undefined\n ? \"GraphExplorerNodePrimitive.Root requires a nodeId outside GraphExplorerPrimitive.Nodes.\"\n : `Graph explorer node ${nodeId} is not loaded.`,\n );\n }\n const state: GraphExplorerNodeContextValue = {\n node,\n selected: node.id === explorer.selectedNodeId,\n matched: explorer.matchedNodeIds.has(node.id),\n };\n return (\n <InternalGraphExplorerNodeProvider value={state}>\n {renderPrimitive(\n \"div\",\n {\n ...props,\n \"data-match\": state.matched ? \"matched\" : \"unmatched\",\n \"data-node-id\": state.node.id,\n \"data-node-type\": state.node.type,\n \"data-state\": state.selected ? \"selected\" : \"unselected\",\n role: props.role ?? (inherited === undefined ? undefined : \"listitem\"),\n } as PrimitiveProps<\"div\">,\n ref,\n )}\n </InternalGraphExplorerNodeProvider>\n );\n },\n);\n\nexport const GraphExplorerNodeTrigger = forwardRef<HTMLButtonElement, PrimitiveProps<\"button\">>(\n function GraphExplorerNodeTrigger({ onClick, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const state = useGraphExplorerNode();\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (!event.defaultPrevented && !props.disabled) explorer.selectNode(state.node.id);\n },\n [explorer, onClick, props.disabled, state.node.id],\n );\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? graphExplorerNodeLabel(state.node),\n onClick: handleClick,\n type: props.type ?? \"button\",\n \"aria-pressed\": state.selected,\n } as PrimitiveProps<\"button\">,\n ref,\n );\n },\n);\n\ntype GraphExplorerNodeExpandOptions = Omit<GraphExplorerExpandNodeOptions, \"abortSignal\">;\ntype GraphExplorerNodeExpandProps = PrimitiveProps<\"button\"> & {\n options?: GraphExplorerNodeExpandOptions;\n};\n\nexport const GraphExplorerNodeExpand = forwardRef<HTMLButtonElement, GraphExplorerNodeExpandProps>(\n function GraphExplorerNodeExpand({ onClick, options, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const state = useGraphExplorerNode();\n const disabled = props.disabled ?? explorer.status === \"loading\";\n const expand = useCallback(\n () => explorer.expandNode(state.node.id, options),\n [explorer, options, state.node.id],\n );\n const handleClick = useAsyncAction(onClick, disabled, expand);\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? \"Expand\",\n disabled,\n onClick: handleClick,\n type: props.type ?? \"button\",\n } as PrimitiveProps<\"button\">,\n ref,\n );\n },\n);\n\nfunction useAsyncAction(\n onClick: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined,\n disabled: boolean,\n action: () => Promise<unknown>,\n) {\n return useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (event.defaultPrevented || disabled) return;\n void action().catch(() => undefined);\n },\n [action, disabled, onClick],\n );\n}\n\nfunction statusText(explorer: GraphExplorerController): ReactNode {\n if (explorer.status === \"loading\") return \"Loading graph.\";\n if (explorer.status === \"error\") return \"Graph exploration failed.\";\n return `${explorer.nodes.length} nodes, ${explorer.relationships.length} relationships.`;\n}\n","import type { GraphExploreNode } from \"@anvia/graph\";\n\nexport function graphExplorerNodeLabel(node: GraphExploreNode): string {\n for (const key of [\"name\", \"title\", \"label\"] as const) {\n const value = node.properties[key];\n if (typeof value === \"string\" && value.trim().length > 0) return value;\n }\n if (node.key !== undefined) return node.key;\n return `${node.type} ${node.id}`;\n}\n","import {\n GraphExplorerEmpty,\n GraphExplorerNodes,\n GraphExplorerRefresh,\n GraphExplorerRoot,\n GraphExplorerSearch,\n GraphExplorerStatus,\n GraphExplorerViewport,\n GraphExplorerNodeExpand,\n GraphExplorerNodeRoot,\n GraphExplorerNodeTrigger,\n} from \"./parts\";\n\nexport const GraphExplorerPrimitive = {\n Root: GraphExplorerRoot,\n Viewport: GraphExplorerViewport,\n Search: GraphExplorerSearch,\n Nodes: GraphExplorerNodes,\n Empty: GraphExplorerEmpty,\n Status: GraphExplorerStatus,\n Refresh: GraphExplorerRefresh,\n} as const;\n\nexport const GraphExplorerNodePrimitive = {\n Root: GraphExplorerNodeRoot,\n Trigger: GraphExplorerNodeTrigger,\n Expand: GraphExplorerNodeExpand,\n} as const;\n\nexport type {\n GraphExplorerController,\n GraphExplorerExpandNodeOptions,\n GraphExplorerNodeContextValue,\n GraphExplorerProviderProps,\n GraphExplorerStatus,\n} from \"../contexts/graph-explorer\";\nexport {\n GraphExplorerProvider,\n useGraphExplorerContext,\n useGraphExplorerNode,\n} from \"../contexts/graph-explorer\";\nexport { graphExplorerNodeLabel } from \"./helpers\";\nexport type { GraphExplorerNodeRootProps } from \"./parts\";\n"],"mappings":";;;;;;;;;;;;AACA,SAAS,YAA+D,mBAAmB;;;ACCpF,SAAS,uBAAuB,MAAgC;AACrE,aAAW,OAAO,CAAC,QAAQ,SAAS,OAAO,GAAY;AACrD,UAAM,QAAQ,KAAK,WAAW,GAAG;AACjC,QAAI,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,SAAS,EAAG,QAAO;AAAA,EACnE;AACA,MAAI,KAAK,QAAQ,OAAW,QAAO,KAAK;AACxC,SAAO,GAAG,KAAK,IAAI,IAAI,KAAK,EAAE;AAChC;;;ADyFsB;AAnFf,IAAM,oBAAoB;AAAA,EAC/B,SAASA,mBAAkB,OAAO,KAAK;AACrC,UAAM,WAAW,wBAAwB;AACzC,UAAM,YAAY,SAAS,UAAU,SAAS,SAAS,UAAU;AACjE,WAAO;AAAA,MACL;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,aAAa,SAAS,WAAW;AAAA,QACjC,aAAa;AAAA,QACb,cAAc,SAAS;AAAA,QACvB,kBAAkB,YAAY,SAAS;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,sBAAsB;AAAA,EACjC,SAASC,qBAAoB,EAAE,UAAU,GAAG,MAAM,GAAG,KAAK;AACxD,UAAM,WAAW,wBAAwB;AACzC,UAAM,eAAe;AAAA,MACnB,CAAC,UAAyC;AACxC,mBAAW,KAAK;AAChB,YAAI,CAAC,MAAM,iBAAkB,UAAS,SAAS,MAAM,cAAc,KAAK;AAAA,MAC1E;AAAA,MACA,CAAC,UAAU,QAAQ;AAAA,IACrB;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,cAAc,MAAM,YAAY,KAAK;AAAA,QACrC,cAAc,SAAS,MAAM,WAAW,IAAI,UAAU;AAAA,QACtD,UAAU;AAAA,QACV,MAAM,MAAM,QAAQ;AAAA,QACpB,OAAO,SAAS;AAAA,MAClB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,wBAAwB;AAAA,EACnC,SAASC,uBAAsB,OAAO,KAAK;AACzC,WAAO;AAAA,MACL;AAAA,MACA,EAAE,GAAG,OAAO,aAAa,0BAA0B;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AACF;AAWO,IAAM,qBAAqB;AAAA,EAChC,SAASC,oBAAmB,EAAE,UAAU,cAAc,OAAO,GAAG,MAAM,GAAG,KAAK;AAC5E,UAAM,WAAW,wBAAwB;AACzC,UAAM,QAAQ,SAAS,MAAM,WAAW;AACxC,QAAI,SAAS,CAAC,YAAa,QAAO;AAClC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,UAAU,SAAS,MAAM,IAAI,CAAC,SAAS;AACrC,gBAAM,QAAuC;AAAA,YAC3C;AAAA,YACA,UAAU,KAAK,OAAO,SAAS;AAAA,YAC/B,SAAS,SAAS,eAAe,IAAI,KAAK,EAAE;AAAA,UAC9C;AACA,iBACE,oBAAC,qCAAgD,OAAO,OACrD,iBAAO,aAAa,aACjB,SAAS,MAAM,KAAK,IACnB,YACC,oBAAC,yBACC,8BAAC,4BAAyB,GAC5B,KANgC,KAAK,EAQ7C;AAAA,QAEJ,CAAC;AAAA,QACD,cAAc,QAAQ,UAAU;AAAA,QAChC,MAAM,MAAM,QAAQ;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,qBAAqB;AAAA,EAChC,SAASC,oBAAmB,OAAO,KAAK;AACtC,UAAM,WAAW,wBAAwB;AACzC,QAAI,SAAS,MAAM,SAAS,KAAK,SAAS,WAAW,UAAW,QAAO;AACvE,WAAO;AAAA,MACL;AAAA,MACA,EAAE,GAAG,OAAO,UAAU,MAAM,YAAY,kBAAkB;AAAA,MAC1D;AAAA,IACF;AAAA,EACF;AACF;AAOO,IAAM,sBAAsB;AAAA,EACjC,SAASC,qBAAoB,EAAE,UAAU,GAAG,MAAM,GAAG,KAAK;AACxD,UAAM,WAAW,wBAAwB;AACzC,UAAM,UACJ,OAAO,aAAa,aAAa,SAAS,QAAQ,IAAK,YAAY,WAAW,QAAQ;AACxF,WAAO;AAAA,MACL;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,UAAU;AAAA,QACV,cAAc,SAAS;AAAA,QACvB,MAAM,MAAM,QAAQ;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,uBAAuB;AAAA,EAClC,SAASC,sBAAqB,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK;AACxD,UAAM,WAAW,wBAAwB;AACzC,UAAM,WAAW,MAAM,YAAY,SAAS,WAAW;AACvD,UAAM,cAAc,eAAe,SAAS,UAAU,SAAS,OAAO;AACtE,WAAO;AAAA,MACL;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,UAAU,MAAM,YAAY;AAAA,QAC5B;AAAA,QACA,SAAS;AAAA,QACT,MAAM,MAAM,QAAQ;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAIO,IAAM,wBAAwB;AAAA,EACnC,SAASC,uBAAsB,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK;AACxD,UAAM,WAAW,wBAAwB;AACzC,UAAM,YAAY,6BAA6B;AAC/C,UAAM,OAAO,WAAW,SAAY,WAAW,OAAO,SAAS,SAAS,IAAI,MAAM;AAClF,QAAI,SAAS,QAAW;AACtB,YAAM,IAAI;AAAA,QACR,WAAW,SACP,4FACA,uBAAuB,MAAM;AAAA,MACnC;AAAA,IACF;AACA,UAAM,QAAuC;AAAA,MAC3C;AAAA,MACA,UAAU,KAAK,OAAO,SAAS;AAAA,MAC/B,SAAS,SAAS,eAAe,IAAI,KAAK,EAAE;AAAA,IAC9C;AACA,WACE,oBAAC,qCAAkC,OAAO,OACvC;AAAA,MACC;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,cAAc,MAAM,UAAU,YAAY;AAAA,QAC1C,gBAAgB,MAAM,KAAK;AAAA,QAC3B,kBAAkB,MAAM,KAAK;AAAA,QAC7B,cAAc,MAAM,WAAW,aAAa;AAAA,QAC5C,MAAM,MAAM,SAAS,cAAc,SAAY,SAAY;AAAA,MAC7D;AAAA,MACA;AAAA,IACF,GACF;AAAA,EAEJ;AACF;AAEO,IAAM,2BAA2B;AAAA,EACtC,SAASC,0BAAyB,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK;AAC5D,UAAM,WAAW,wBAAwB;AACzC,UAAM,QAAQ,qBAAqB;AACnC,UAAM,cAAc;AAAA,MAClB,CAAC,UAAyC;AACxC,kBAAU,KAAK;AACf,YAAI,CAAC,MAAM,oBAAoB,CAAC,MAAM,SAAU,UAAS,WAAW,MAAM,KAAK,EAAE;AAAA,MACnF;AAAA,MACA,CAAC,UAAU,SAAS,MAAM,UAAU,MAAM,KAAK,EAAE;AAAA,IACnD;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,UAAU,MAAM,YAAY,uBAAuB,MAAM,IAAI;AAAA,QAC7D,SAAS;AAAA,QACT,MAAM,MAAM,QAAQ;AAAA,QACpB,gBAAgB,MAAM;AAAA,MACxB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAOO,IAAM,0BAA0B;AAAA,EACrC,SAASC,yBAAwB,EAAE,SAAS,SAAS,GAAG,MAAM,GAAG,KAAK;AACpE,UAAM,WAAW,wBAAwB;AACzC,UAAM,QAAQ,qBAAqB;AACnC,UAAM,WAAW,MAAM,YAAY,SAAS,WAAW;AACvD,UAAM,SAAS;AAAA,MACb,MAAM,SAAS,WAAW,MAAM,KAAK,IAAI,OAAO;AAAA,MAChD,CAAC,UAAU,SAAS,MAAM,KAAK,EAAE;AAAA,IACnC;AACA,UAAM,cAAc,eAAe,SAAS,UAAU,MAAM;AAC5D,WAAO;AAAA,MACL;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,UAAU,MAAM,YAAY;AAAA,QAC5B;AAAA,QACA,SAAS;AAAA,QACT,MAAM,MAAM,QAAQ;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,eACP,SACA,UACA,QACA;AACA,SAAO;AAAA,IACL,CAAC,UAAyC;AACxC,gBAAU,KAAK;AACf,UAAI,MAAM,oBAAoB,SAAU;AACxC,WAAK,OAAO,EAAE,MAAM,MAAM,MAAS;AAAA,IACrC;AAAA,IACA,CAAC,QAAQ,UAAU,OAAO;AAAA,EAC5B;AACF;AAEA,SAAS,WAAW,UAA8C;AAChE,MAAI,SAAS,WAAW,UAAW,QAAO;AAC1C,MAAI,SAAS,WAAW,QAAS,QAAO;AACxC,SAAO,GAAG,SAAS,MAAM,MAAM,WAAW,SAAS,cAAc,MAAM;AACzE;;;AExQO,IAAM,yBAAyB;AAAA,EACpC,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,IAAM,6BAA6B;AAAA,EACxC,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AACV;","names":["GraphExplorerRoot","GraphExplorerSearch","GraphExplorerViewport","GraphExplorerNodes","GraphExplorerEmpty","GraphExplorerStatus","GraphExplorerRefresh","GraphExplorerNodeRoot","GraphExplorerNodeTrigger","GraphExplorerNodeExpand"]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/graph-explorer/helpers.ts","../../src/graph-explorer/parts.tsx","../../src/graph-explorer/index.ts"],"sourcesContent":["import type { GraphExploreNode } from \"@anvia/graph\";\n\nexport function graphExplorerNodeLabel(node: GraphExploreNode): string {\n for (const key of [\"name\", \"title\", \"label\"] as const) {\n const value = node.properties[key];\n if (typeof value === \"string\" && value.trim().length > 0) return value;\n }\n if (node.key !== undefined) return node.key;\n return `${node.type} ${node.id}`;\n}\n","import type { GraphExploreNode } from \"@anvia/graph\";\nimport { forwardRef, type ChangeEvent, type MouseEvent, type ReactNode, useCallback } from \"react\";\n\nimport {\n InternalGraphExplorerNodeProvider,\n type GraphExplorerController,\n type GraphExplorerExpandNodeOptions,\n type GraphExplorerNodeContextValue,\n useGraphExplorerContext,\n useGraphExplorerNode,\n useOptionalGraphExplorerNode,\n} from \"../contexts\";\nimport { type PrimitiveProps, renderPrimitive } from \"../primitives\";\nimport { graphExplorerNodeLabel } from \"./helpers\";\n\nexport const GraphExplorerRoot = forwardRef<HTMLDivElement, PrimitiveProps<\"div\">>(\n function GraphExplorerRoot(props, ref) {\n const explorer = useGraphExplorerContext();\n const truncated = explorer.truncated.nodes || explorer.truncated.relationships;\n return renderPrimitive(\n \"div\",\n {\n ...props,\n \"aria-busy\": explorer.status === \"loading\",\n \"data-role\": \"graph-explorer\",\n \"data-state\": explorer.status,\n \"data-truncated\": truncated ? \"true\" : \"false\",\n } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\nexport const GraphExplorerSearch = forwardRef<HTMLInputElement, PrimitiveProps<\"input\">>(\n function GraphExplorerSearch({ onChange, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n if (!event.defaultPrevented) explorer.setQuery(event.currentTarget.value);\n },\n [explorer, onChange],\n );\n return renderPrimitive(\n \"input\",\n {\n ...props,\n \"aria-label\": props[\"aria-label\"] ?? \"Search graph\",\n \"data-state\": explorer.query.length === 0 ? \"empty\" : \"populated\",\n onChange: handleChange,\n type: props.type ?? \"search\",\n value: explorer.query,\n } as PrimitiveProps<\"input\">,\n ref,\n );\n },\n);\n\nexport const GraphExplorerViewport = forwardRef<HTMLDivElement, PrimitiveProps<\"div\">>(\n function GraphExplorerViewport(props, ref) {\n return renderPrimitive(\n \"div\",\n { ...props, \"data-role\": \"graph-explorer-viewport\" } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\ntype GraphExplorerNodesChildren =\n | ReactNode\n | ((node: GraphExploreNode, state: GraphExplorerNodeContextValue) => ReactNode);\n\ntype GraphExplorerNodesProps = Omit<PrimitiveProps<\"div\">, \"children\"> & {\n children?: GraphExplorerNodesChildren;\n keepMounted?: boolean;\n};\n\nexport const GraphExplorerNodes = forwardRef<HTMLDivElement, GraphExplorerNodesProps>(\n function GraphExplorerNodes({ children, keepMounted = false, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const empty = explorer.nodes.length === 0;\n if (empty && !keepMounted) return null;\n return renderPrimitive(\n \"div\",\n {\n ...props,\n children: explorer.nodes.map((node) => {\n const state: GraphExplorerNodeContextValue = {\n node,\n selected: node.id === explorer.selectedNodeId,\n matched: explorer.matchedNodeIds.has(node.id),\n };\n return (\n <InternalGraphExplorerNodeProvider key={node.id} value={state}>\n {typeof children === \"function\"\n ? children(node, state)\n : (children ?? (\n <GraphExplorerNodeRoot>\n <GraphExplorerNodeTrigger />\n </GraphExplorerNodeRoot>\n ))}\n </InternalGraphExplorerNodeProvider>\n );\n }),\n \"data-state\": empty ? \"empty\" : \"populated\",\n role: props.role ?? \"list\",\n } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\nexport const GraphExplorerEmpty = forwardRef<HTMLDivElement, PrimitiveProps<\"div\">>(\n function GraphExplorerEmpty(props, ref) {\n const explorer = useGraphExplorerContext();\n if (explorer.nodes.length > 0 || explorer.status === \"loading\") return null;\n return renderPrimitive(\n \"div\",\n { ...props, children: props.children ?? \"No graph nodes.\" } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\ntype GraphExplorerStatusChildren = ReactNode | ((explorer: GraphExplorerController) => ReactNode);\ntype GraphExplorerStatusProps = Omit<PrimitiveProps<\"div\">, \"children\"> & {\n children?: GraphExplorerStatusChildren;\n};\n\nexport const GraphExplorerStatus = forwardRef<HTMLDivElement, GraphExplorerStatusProps>(\n function GraphExplorerStatus({ children, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const content =\n typeof children === \"function\" ? children(explorer) : (children ?? statusText(explorer));\n return renderPrimitive(\n \"div\",\n {\n ...props,\n children: content,\n \"data-state\": explorer.status,\n role: props.role ?? \"status\",\n } as PrimitiveProps<\"div\">,\n ref,\n );\n },\n);\n\nexport const GraphExplorerRefresh = forwardRef<HTMLButtonElement, PrimitiveProps<\"button\">>(\n function GraphExplorerRefresh({ onClick, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const disabled = props.disabled ?? explorer.status === \"loading\";\n const handleClick = useAsyncAction(onClick, disabled, explorer.refresh);\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? \"Refresh graph\",\n disabled,\n onClick: handleClick,\n type: props.type ?? \"button\",\n } as PrimitiveProps<\"button\">,\n ref,\n );\n },\n);\n\nexport type GraphExplorerNodeRootProps = PrimitiveProps<\"div\"> & { nodeId?: string };\n\nexport const GraphExplorerNodeRoot = forwardRef<HTMLDivElement, GraphExplorerNodeRootProps>(\n function GraphExplorerNodeRoot({ nodeId, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const inherited = useOptionalGraphExplorerNode();\n const node = nodeId === undefined ? inherited?.node : explorer.nodeById.get(nodeId);\n if (node === undefined) {\n throw new Error(\n nodeId === undefined\n ? \"GraphExplorerNodePrimitive.Root requires a nodeId outside GraphExplorerPrimitive.Nodes.\"\n : `Graph explorer node ${nodeId} is not loaded.`,\n );\n }\n const state: GraphExplorerNodeContextValue = {\n node,\n selected: node.id === explorer.selectedNodeId,\n matched: explorer.matchedNodeIds.has(node.id),\n };\n return (\n <InternalGraphExplorerNodeProvider value={state}>\n {renderPrimitive(\n \"div\",\n {\n ...props,\n \"data-match\": state.matched ? \"matched\" : \"unmatched\",\n \"data-node-id\": state.node.id,\n \"data-node-type\": state.node.type,\n \"data-state\": state.selected ? \"selected\" : \"unselected\",\n role: props.role ?? (inherited === undefined ? undefined : \"listitem\"),\n } as PrimitiveProps<\"div\">,\n ref,\n )}\n </InternalGraphExplorerNodeProvider>\n );\n },\n);\n\nexport const GraphExplorerNodeTrigger = forwardRef<HTMLButtonElement, PrimitiveProps<\"button\">>(\n function GraphExplorerNodeTrigger({ onClick, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const state = useGraphExplorerNode();\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (!event.defaultPrevented && !props.disabled) explorer.selectNode(state.node.id);\n },\n [explorer, onClick, props.disabled, state.node.id],\n );\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? graphExplorerNodeLabel(state.node),\n onClick: handleClick,\n type: props.type ?? \"button\",\n \"aria-pressed\": state.selected,\n } as PrimitiveProps<\"button\">,\n ref,\n );\n },\n);\n\ntype GraphExplorerNodeExpandOptions = Omit<GraphExplorerExpandNodeOptions, \"abortSignal\">;\ntype GraphExplorerNodeExpandProps = PrimitiveProps<\"button\"> & {\n options?: GraphExplorerNodeExpandOptions;\n};\n\nexport const GraphExplorerNodeExpand = forwardRef<HTMLButtonElement, GraphExplorerNodeExpandProps>(\n function GraphExplorerNodeExpand({ onClick, options, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const state = useGraphExplorerNode();\n const disabled = props.disabled ?? explorer.status === \"loading\";\n const expand = useCallback(\n () => explorer.expandNode(state.node.id, options),\n [explorer, options, state.node.id],\n );\n const handleClick = useAsyncAction(onClick, disabled, expand);\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? \"Expand\",\n disabled,\n onClick: handleClick,\n type: props.type ?? \"button\",\n } as PrimitiveProps<\"button\">,\n ref,\n );\n },\n);\n\nfunction useAsyncAction(\n onClick: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined,\n disabled: boolean,\n action: () => Promise<unknown>,\n) {\n return useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (event.defaultPrevented || disabled) return;\n void action().catch(() => undefined);\n },\n [action, disabled, onClick],\n );\n}\n\nfunction statusText(explorer: GraphExplorerController): ReactNode {\n if (explorer.status === \"loading\") return \"Loading graph.\";\n if (explorer.status === \"error\") return \"Graph exploration failed.\";\n return `${explorer.nodes.length} nodes, ${explorer.relationships.length} relationships.`;\n}\n","import {\n GraphExplorerEmpty,\n GraphExplorerNodes,\n GraphExplorerRefresh,\n GraphExplorerRoot,\n GraphExplorerSearch,\n GraphExplorerStatus,\n GraphExplorerViewport,\n GraphExplorerNodeExpand,\n GraphExplorerNodeRoot,\n GraphExplorerNodeTrigger,\n} from \"./parts\";\n\nexport const GraphExplorerPrimitive = {\n Root: GraphExplorerRoot,\n Viewport: GraphExplorerViewport,\n Search: GraphExplorerSearch,\n Nodes: GraphExplorerNodes,\n Empty: GraphExplorerEmpty,\n Status: GraphExplorerStatus,\n Refresh: GraphExplorerRefresh,\n} as const;\n\nexport const GraphExplorerNodePrimitive = {\n Root: GraphExplorerNodeRoot,\n Trigger: GraphExplorerNodeTrigger,\n Expand: GraphExplorerNodeExpand,\n} as const;\n\nexport type {\n GraphExplorerController,\n GraphExplorerExpandNodeOptions,\n GraphExplorerNodeContextValue,\n GraphExplorerProviderProps,\n GraphExplorerStatus,\n} from \"../contexts/graph-explorer\";\nexport {\n GraphExplorerProvider,\n useGraphExplorerContext,\n useGraphExplorerNode,\n} from \"../contexts/graph-explorer\";\nexport { graphExplorerNodeLabel } from \"./helpers\";\nexport type { GraphExplorerNodeRootProps } from \"./parts\";\n"],"mappings":"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"}
@@ -1,78 +1,3 @@
1
- import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import { d as ApprovalInteraction, e as QuestionInteraction } from '../human-input-CkLrZ8IC.js';
4
- export { A as ApprovalContextValue, Q as QuestionContextValue, a as QuestionPromptContextValue, u as useApproval, b as useQuestion, c as useQuestionPrompt } from '../human-input-CkLrZ8IC.js';
5
- import { c as useHumanInput } from '../chat-PSj1Fo4W.js';
6
- export { u as useChatContext } from '../chat-PSj1Fo4W.js';
7
- import { P as PrimitiveProps } from '../render-CRKWam2v.js';
8
- import '@anvia/client';
9
- import '@anvia/react';
10
-
11
- type ApprovalChildren = ReactNode | ((approval: ApprovalInteraction) => ReactNode);
12
- type HumanInputFilter = "pending" | "all";
13
-
14
- type QuestionChildren = ReactNode | ((question: QuestionInteraction) => ReactNode);
15
-
16
- declare const HumanInputPrimitive: {
17
- readonly Panel: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "asChild"> & {
18
- asChild?: boolean;
19
- } & {
20
- filter?: HumanInputFilter;
21
- } & react.RefAttributes<HTMLDivElement>>;
22
- readonly Status: react.ForwardRefExoticComponent<Omit<PrimitiveProps<"div">, "children"> & {
23
- children?: react.ReactNode | ((state: ReturnType<typeof useHumanInput>) => react.ReactNode);
24
- } & react.RefAttributes<HTMLDivElement>>;
25
- readonly Approvals: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "asChild"> & {
26
- asChild?: boolean;
27
- } & {
28
- filter?: HumanInputFilter;
29
- keepMounted?: boolean;
30
- children?: ApprovalChildren;
31
- } & react.RefAttributes<HTMLDivElement>>;
32
- readonly Approval: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "asChild"> & {
33
- asChild?: boolean;
34
- } & {
35
- children?: ApprovalChildren;
36
- } & react.RefAttributes<HTMLDivElement>>;
37
- readonly ApprovalReason: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref">, "asChild"> & {
38
- asChild?: boolean;
39
- } & react.RefAttributes<HTMLTextAreaElement>>;
40
- readonly Approve: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "asChild"> & {
41
- asChild?: boolean;
42
- } & react.RefAttributes<HTMLButtonElement>>;
43
- readonly Reject: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "asChild"> & {
44
- asChild?: boolean;
45
- } & react.RefAttributes<HTMLButtonElement>>;
46
- readonly Questions: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "asChild"> & {
47
- asChild?: boolean;
48
- } & {
49
- filter?: HumanInputFilter;
50
- keepMounted?: boolean;
51
- children?: QuestionChildren;
52
- } & react.RefAttributes<HTMLDivElement>>;
53
- readonly Question: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "asChild"> & {
54
- asChild?: boolean;
55
- } & {
56
- children?: QuestionChildren;
57
- } & react.RefAttributes<HTMLDivElement>>;
58
- readonly QuestionPrompt: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "asChild"> & {
59
- asChild?: boolean;
60
- } & {
61
- promptId?: string;
62
- } & react.RefAttributes<HTMLDivElement>>;
63
- readonly QuestionChoice: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "asChild"> & {
64
- asChild?: boolean;
65
- } & {
66
- value?: string;
67
- answer?: string;
68
- custom?: boolean;
69
- } & react.RefAttributes<HTMLButtonElement>>;
70
- readonly QuestionTextAnswer: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref">, "asChild"> & {
71
- asChild?: boolean;
72
- } & react.RefAttributes<HTMLTextAreaElement>>;
73
- readonly QuestionSubmit: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "asChild"> & {
74
- asChild?: boolean;
75
- } & react.RefAttributes<HTMLButtonElement>>;
76
- };
77
-
78
- export { HumanInputPrimitive, useHumanInput };
1
+ import { C as QuestionPromptContextValue, E as useQuestionPrompt, T as useQuestion, at as useChatContext, ot as useHumanInput, w as useApproval, x as QuestionContextValue, y as ApprovalContextValue } from "../index-Mw3ltwSG.js";
2
+ import { p as HumanInputPrimitive } from "../index-BCBVcl0D.js";
3
+ export { type ApprovalContextValue, HumanInputPrimitive, type QuestionContextValue, type QuestionPromptContextValue, useApproval, useChatContext, useHumanInput, useQuestion, useQuestionPrompt };
@@ -1,21 +1,3 @@
1
- import {
2
- HumanInputPrimitive
3
- } from "../chunk-N5XQU36W.js";
4
- import "../chunk-CKA4CE26.js";
5
- import "../chunk-T3ZFZ3NP.js";
6
- import {
7
- useApproval,
8
- useChatContext,
9
- useHumanInput,
10
- useQuestion,
11
- useQuestionPrompt
12
- } from "../chunk-E73S3SOF.js";
13
- export {
14
- HumanInputPrimitive,
15
- useApproval,
16
- useChatContext,
17
- useHumanInput,
18
- useQuestion,
19
- useQuestionPrompt
20
- };
21
- //# sourceMappingURL=index.js.map
1
+ import { C as useQuestionPrompt, I as useChatContext, L as useHumanInput, S as useQuestion, x as useApproval } from "../contexts-B4ijG24z.js";
2
+ import { t as HumanInputPrimitive } from "../human-input-CsCbZomZ.js";
3
+ export { HumanInputPrimitive, useApproval, useChatContext, useHumanInput, useQuestion, useQuestionPrompt };