@dxos/plugin-navtree 0.8.4-main.4a85c3132b → 0.8.4-main.4f23b4e393

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 (244) hide show
  1. package/dist/lib/{browser/CommandsDialogContent-A27AKTHH.mjs → neutral/CommandsDialogContent-UBGIQ5FI.mjs} +24 -23
  2. package/dist/lib/neutral/CommandsDialogContent-UBGIQ5FI.mjs.map +7 -0
  3. package/dist/lib/{browser/CommandsTrigger-HBZYQCGV.mjs → neutral/CommandsTrigger-BH5WLMHK.mjs} +8 -14
  4. package/dist/lib/neutral/CommandsTrigger-BH5WLMHK.mjs.map +7 -0
  5. package/dist/lib/neutral/NavTreeContainer-6AR4BFDD.mjs +12 -0
  6. package/dist/lib/neutral/NavTreeContainer-6AR4BFDD.mjs.map +7 -0
  7. package/dist/lib/{browser/NavTreeDocumentTitle-GEE3URWH.mjs → neutral/NavTreeDocumentTitle-H3E6ZLYE.mjs} +5 -9
  8. package/dist/lib/neutral/NavTreeDocumentTitle-H3E6ZLYE.mjs.map +7 -0
  9. package/dist/lib/neutral/NavTreePlugin.mjs +56 -0
  10. package/dist/lib/neutral/NavTreePlugin.mjs.map +7 -0
  11. package/dist/lib/neutral/NavTreePlugin.node.mjs +18 -0
  12. package/dist/lib/neutral/NavTreePlugin.node.mjs.map +7 -0
  13. package/dist/lib/{browser/app-graph-builder-XGA4GPGL.mjs → neutral/app-graph-builder-Z347LKSF.mjs} +10 -12
  14. package/dist/lib/neutral/app-graph-builder-Z347LKSF.mjs.map +7 -0
  15. package/dist/lib/neutral/capabilities/index.mjs +17 -0
  16. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-5OPDKH6B.mjs +273 -0
  18. package/dist/lib/neutral/chunk-5OPDKH6B.mjs.map +7 -0
  19. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  20. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  21. package/dist/lib/neutral/chunk-JOSNCOV4.mjs +79 -0
  22. package/dist/lib/neutral/chunk-JOSNCOV4.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-T7QS2EFI.mjs +8 -0
  24. package/dist/lib/neutral/chunk-T7QS2EFI.mjs.map +7 -0
  25. package/dist/lib/{browser/chunk-YKTYPINZ.mjs → neutral/chunk-YDE5I3P5.mjs} +7 -4
  26. package/dist/lib/neutral/chunk-YDE5I3P5.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-ZSWYB7JW.mjs +27 -0
  28. package/dist/lib/neutral/chunk-ZSWYB7JW.mjs.map +7 -0
  29. package/dist/lib/neutral/components/index.mjs +878 -0
  30. package/dist/lib/neutral/components/index.mjs.map +7 -0
  31. package/dist/lib/neutral/containers/index.mjs +20 -0
  32. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  33. package/dist/lib/neutral/expose-26FV4W5D.mjs +38 -0
  34. package/dist/lib/neutral/expose-26FV4W5D.mjs.map +7 -0
  35. package/dist/lib/neutral/hooks/index.mjs +169 -0
  36. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  37. package/dist/lib/neutral/index.mjs +34 -0
  38. package/dist/lib/neutral/index.mjs.map +7 -0
  39. package/dist/lib/{browser/keyboard-OJZC54PK.mjs → neutral/keyboard-EJ65BVTC.mjs} +8 -6
  40. package/dist/lib/neutral/keyboard-EJ65BVTC.mjs.map +7 -0
  41. package/dist/lib/neutral/meta.json +1 -0
  42. package/dist/lib/neutral/meta.mjs +12 -0
  43. package/dist/lib/neutral/meta.mjs.map +7 -0
  44. package/dist/lib/neutral/operation-handler-ORDOJUL2.mjs +13 -0
  45. package/dist/lib/neutral/operation-handler-ORDOJUL2.mjs.map +7 -0
  46. package/dist/lib/neutral/operations/index.mjs +8 -0
  47. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  48. package/dist/lib/neutral/plugin.mjs +16 -0
  49. package/dist/lib/neutral/plugin.mjs.map +7 -0
  50. package/dist/lib/{browser/react-surface-AYHOAJ4I.mjs → neutral/react-surface-3AJ6BHL4.mjs} +10 -19
  51. package/dist/lib/neutral/react-surface-3AJ6BHL4.mjs.map +7 -0
  52. package/dist/lib/{browser/state-AC3EETN7.mjs → neutral/state-VVITVXWM.mjs} +7 -11
  53. package/dist/lib/neutral/state-VVITVXWM.mjs.map +7 -0
  54. package/dist/lib/neutral/testing/index.mjs +436 -0
  55. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  56. package/dist/lib/neutral/translations.mjs +23 -0
  57. package/dist/lib/neutral/translations.mjs.map +7 -0
  58. package/dist/lib/neutral/types/index.mjs +10 -0
  59. package/dist/lib/neutral/types/index.mjs.map +7 -0
  60. package/dist/types/src/NavTreePlugin.d.ts +1 -0
  61. package/dist/types/src/NavTreePlugin.d.ts.map +1 -1
  62. package/dist/types/src/NavTreePlugin.node.d.ts +4 -0
  63. package/dist/types/src/NavTreePlugin.node.d.ts.map +1 -0
  64. package/dist/types/src/NavTreePlugin.test.d.ts +2 -0
  65. package/dist/types/src/NavTreePlugin.test.d.ts.map +1 -0
  66. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/index.d.ts +7 -5
  68. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/keyboard.d.ts.map +1 -0
  70. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  71. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  72. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/state.d.ts +6 -0
  74. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  75. package/dist/types/src/components/NavTree/NavTree.d.ts.map +1 -1
  76. package/dist/types/src/components/NavTree/NavTree.stories.d.ts +9 -11
  77. package/dist/types/src/components/NavTree/NavTree.stories.d.ts.map +1 -1
  78. package/dist/types/src/components/{NavTreeContext.d.ts → NavTreeContext/NavTreeContext.d.ts} +1 -1
  79. package/dist/types/src/components/NavTreeContext/NavTreeContext.d.ts.map +1 -0
  80. package/dist/types/src/components/NavTreeContext/index.d.ts +2 -0
  81. package/dist/types/src/components/NavTreeContext/index.d.ts.map +1 -0
  82. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts +7 -3
  83. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts.map +1 -1
  84. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts +1 -1
  85. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts.map +1 -1
  86. package/dist/types/src/components/NavTreeItem/NavTreeItemColumns.d.ts.map +1 -1
  87. package/dist/types/src/components/Sidebar/L0Menu.d.ts.map +1 -1
  88. package/dist/types/src/components/Sidebar/L1Panel.d.ts.map +1 -1
  89. package/dist/types/src/components/Sidebar/L1Tabs.d.ts.map +1 -1
  90. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.d.ts.map +1 -1
  91. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.stories.d.ts.map +1 -1
  92. package/dist/types/src/components/types.d.ts +1 -2
  93. package/dist/types/src/components/types.d.ts.map +1 -1
  94. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.d.ts.map +1 -1
  95. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.stories.d.ts +28 -0
  96. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.stories.d.ts.map +1 -0
  97. package/dist/types/src/containers/CommandsDialogContent/index.d.ts +1 -2
  98. package/dist/types/src/containers/CommandsDialogContent/index.d.ts.map +1 -1
  99. package/dist/types/src/containers/CommandsTrigger/CommandsTrigger.d.ts.map +1 -1
  100. package/dist/types/src/containers/CommandsTrigger/index.d.ts +1 -2
  101. package/dist/types/src/containers/CommandsTrigger/index.d.ts.map +1 -1
  102. package/dist/types/src/containers/NavTreeContainer/NavTreeContainer.d.ts.map +1 -1
  103. package/dist/types/src/containers/NavTreeContainer/index.d.ts +2 -2
  104. package/dist/types/src/containers/NavTreeContainer/index.d.ts.map +1 -1
  105. package/dist/types/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.d.ts.map +1 -1
  106. package/dist/types/src/containers/NavTreeDocumentTitle/index.d.ts +1 -2
  107. package/dist/types/src/containers/NavTreeDocumentTitle/index.d.ts.map +1 -1
  108. package/dist/types/src/containers/index.d.ts +1 -1
  109. package/dist/types/src/containers/index.d.ts.map +1 -1
  110. package/dist/types/src/experimental/Tree.d.ts +2 -2
  111. package/dist/types/src/experimental/Tree.d.ts.map +1 -1
  112. package/dist/types/src/experimental/Tree.stories.d.ts.map +1 -1
  113. package/dist/types/src/hooks/useActions.d.ts +2 -4
  114. package/dist/types/src/hooks/useActions.d.ts.map +1 -1
  115. package/dist/types/src/hooks/useLoadDescendents.d.ts.map +1 -1
  116. package/dist/types/src/hooks/useNavTreeModel.d.ts +1 -1
  117. package/dist/types/src/hooks/useNavTreeModel.d.ts.map +1 -1
  118. package/dist/types/src/hooks/useNavTreeState.d.ts +2 -6
  119. package/dist/types/src/hooks/useNavTreeState.d.ts.map +1 -1
  120. package/dist/types/src/index.d.ts +1 -2
  121. package/dist/types/src/index.d.ts.map +1 -1
  122. package/dist/types/src/meta.d.ts.map +1 -1
  123. package/dist/types/src/operations/expose.d.ts +5 -0
  124. package/dist/types/src/operations/expose.d.ts.map +1 -0
  125. package/dist/types/src/operations/index.d.ts +3 -0
  126. package/dist/types/src/operations/index.d.ts.map +1 -0
  127. package/dist/types/src/plugin.d.ts +4 -0
  128. package/dist/types/src/plugin.d.ts.map +1 -0
  129. package/dist/types/src/testing/app-graph-builder.d.ts.map +1 -1
  130. package/dist/types/src/testing/generator.d.ts.map +1 -1
  131. package/dist/types/src/testing/update-state.d.ts.map +1 -1
  132. package/dist/types/src/translations.d.ts +8 -11
  133. package/dist/types/src/translations.d.ts.map +1 -1
  134. package/dist/types/src/types/NavTreeCapabilities.d.ts +13 -0
  135. package/dist/types/src/types/NavTreeCapabilities.d.ts.map +1 -0
  136. package/dist/types/src/types/NavTreeEvents.d.ts +3 -0
  137. package/dist/types/src/types/NavTreeEvents.d.ts.map +1 -0
  138. package/dist/types/src/types/index.d.ts +2 -2
  139. package/dist/types/src/types/index.d.ts.map +1 -1
  140. package/dist/types/src/util.d.ts +2 -2
  141. package/dist/types/src/util.d.ts.map +1 -1
  142. package/dist/types/tsconfig.tsbuildinfo +1 -1
  143. package/package.json +107 -47
  144. package/src/NavTreePlugin.node.ts +17 -0
  145. package/src/NavTreePlugin.test.ts +27 -0
  146. package/src/NavTreePlugin.tsx +8 -25
  147. package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +7 -7
  148. package/src/capabilities/index.ts +11 -5
  149. package/src/capabilities/{keyboard/keyboard.ts → keyboard.ts} +2 -2
  150. package/src/capabilities/operation-handler.ts +16 -0
  151. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +8 -8
  152. package/src/capabilities/{state/state.ts → state.ts} +14 -10
  153. package/src/components/NavTree/NavTree.stories.tsx +18 -17
  154. package/src/components/NavTree/NavTree.tsx +3 -2
  155. package/src/components/{NavTreeContext.tsx → NavTreeContext/NavTreeContext.tsx} +1 -1
  156. package/src/components/NavTreeContext/index.ts +5 -0
  157. package/src/components/NavTreeItem/NavTreeItemAction.stories.tsx +6 -8
  158. package/src/components/NavTreeItem/NavTreeItemAction.tsx +62 -45
  159. package/src/components/NavTreeItem/NavTreeItemColumns.tsx +8 -6
  160. package/src/components/Sidebar/L0Menu.tsx +54 -81
  161. package/src/components/Sidebar/L1Panel.tsx +98 -135
  162. package/src/components/Sidebar/L1Tabs.tsx +0 -1
  163. package/src/components/types.ts +1 -2
  164. package/src/containers/CommandsDialogContent/CommandsDialogContent.stories.tsx +46 -0
  165. package/src/containers/CommandsDialogContent/CommandsDialogContent.tsx +52 -58
  166. package/src/containers/CommandsDialogContent/index.ts +1 -3
  167. package/src/containers/CommandsTrigger/CommandsTrigger.tsx +7 -5
  168. package/src/containers/CommandsTrigger/index.ts +1 -3
  169. package/src/containers/NavTreeContainer/NavTreeContainer.tsx +28 -27
  170. package/src/containers/NavTreeContainer/index.ts +2 -3
  171. package/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.tsx +2 -2
  172. package/src/containers/NavTreeDocumentTitle/index.ts +1 -3
  173. package/src/containers/index.ts +1 -1
  174. package/src/experimental/Tree.stories.tsx +27 -27
  175. package/src/experimental/Tree.tsx +2 -2
  176. package/src/hooks/useActions.ts +18 -22
  177. package/src/hooks/useNavTreeModel.ts +11 -5
  178. package/src/hooks/useNavTreeState.ts +2 -9
  179. package/src/index.ts +1 -2
  180. package/src/meta.ts +3 -2
  181. package/src/operations/expose.ts +42 -0
  182. package/src/operations/index.ts +7 -0
  183. package/src/plugin.ts +11 -0
  184. package/src/testing/app-graph-builder.ts +40 -36
  185. package/src/testing/generator.ts +22 -22
  186. package/src/translations.ts +8 -10
  187. package/src/types/NavTreeCapabilities.ts +21 -0
  188. package/src/types/NavTreeEvents.ts +12 -0
  189. package/src/types/index.ts +3 -2
  190. package/src/util.ts +2 -2
  191. package/dist/lib/browser/CommandsDialogContent-A27AKTHH.mjs.map +0 -7
  192. package/dist/lib/browser/CommandsTrigger-HBZYQCGV.mjs.map +0 -7
  193. package/dist/lib/browser/NavTreeContainer-B5K4FUJS.mjs +0 -12
  194. package/dist/lib/browser/NavTreeContainer-B5K4FUJS.mjs.map +0 -7
  195. package/dist/lib/browser/NavTreeDocumentTitle-GEE3URWH.mjs.map +0 -7
  196. package/dist/lib/browser/app-graph-builder-XGA4GPGL.mjs.map +0 -7
  197. package/dist/lib/browser/chunk-DQCYMXEU.mjs +0 -1426
  198. package/dist/lib/browser/chunk-DQCYMXEU.mjs.map +0 -7
  199. package/dist/lib/browser/chunk-H3OJ4WLF.mjs +0 -14
  200. package/dist/lib/browser/chunk-H3OJ4WLF.mjs.map +0 -7
  201. package/dist/lib/browser/chunk-X2HDG62A.mjs +0 -23
  202. package/dist/lib/browser/chunk-X2HDG62A.mjs.map +0 -7
  203. package/dist/lib/browser/chunk-YKTYPINZ.mjs.map +0 -7
  204. package/dist/lib/browser/index.mjs +0 -141
  205. package/dist/lib/browser/index.mjs.map +0 -7
  206. package/dist/lib/browser/keyboard-OJZC54PK.mjs.map +0 -7
  207. package/dist/lib/browser/meta.json +0 -1
  208. package/dist/lib/browser/operation-resolver-BNAMYOHF.mjs +0 -53
  209. package/dist/lib/browser/operation-resolver-BNAMYOHF.mjs.map +0 -7
  210. package/dist/lib/browser/react-surface-AYHOAJ4I.mjs.map +0 -7
  211. package/dist/lib/browser/state-AC3EETN7.mjs.map +0 -7
  212. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  213. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  214. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  215. package/dist/types/src/capabilities/keyboard/index.d.ts +0 -3
  216. package/dist/types/src/capabilities/keyboard/index.d.ts.map +0 -1
  217. package/dist/types/src/capabilities/keyboard/keyboard.d.ts.map +0 -1
  218. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  219. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  220. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  221. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  222. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  223. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  224. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  225. package/dist/types/src/capabilities/state/index.d.ts +0 -3
  226. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  227. package/dist/types/src/capabilities/state/state.d.ts +0 -6
  228. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  229. package/dist/types/src/components/NavTreeContext.d.ts.map +0 -1
  230. package/dist/types/src/types/capabilities.d.ts +0 -16
  231. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  232. package/dist/types/src/types/events.d.ts +0 -5
  233. package/dist/types/src/types/events.d.ts.map +0 -1
  234. package/src/capabilities/app-graph-builder/index.ts +0 -7
  235. package/src/capabilities/keyboard/index.ts +0 -7
  236. package/src/capabilities/operation-resolver/index.ts +0 -7
  237. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -44
  238. package/src/capabilities/react-surface/index.ts +0 -7
  239. package/src/capabilities/state/index.ts +0 -7
  240. package/src/types/capabilities.ts +0 -21
  241. package/src/types/events.ts +0 -12
  242. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  243. /package/dist/types/src/capabilities/{keyboard/keyboard.d.ts → keyboard.d.ts} +0 -0
  244. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
@@ -1,7 +1,4 @@
1
- import {
2
- KEY_BINDING,
3
- meta
4
- } from "./chunk-YKTYPINZ.mjs";
1
+ import "./chunk-J5LGTIGS.mjs";
5
2
 
6
3
  // src/containers/CommandsDialogContent/CommandsDialogContent.tsx
7
4
  import React, { forwardRef, useMemo, useState } from "react";
@@ -12,12 +9,13 @@ import { Keyboard, keySymbols } from "@dxos/keyboard";
12
9
  import { Graph, Node, useActionRunner } from "@dxos/plugin-graph";
13
10
  import { useActions } from "@dxos/plugin-graph";
14
11
  import { Button, Dialog, toLocalizedString, useTranslation } from "@dxos/react-ui";
15
- import { SearchList, useSearchListResults } from "@dxos/react-ui-searchlist";
12
+ import { SearchList, useSearchListResults } from "@dxos/react-ui-search";
16
13
  import { osTranslations } from "@dxos/ui-theme";
17
14
  import { getHostPlatform } from "@dxos/util";
15
+ import { KEY_BINDING, meta } from "#meta";
18
16
  var CommandsDialogContent = /* @__PURE__ */ forwardRef(({ selected: initial }, forwardedRef) => {
19
17
  const { t } = useTranslation(meta.id);
20
- const { invokeSync } = useOperationInvoker();
18
+ const { invokePromise } = useOperationInvoker();
21
19
  const runAction = useActionRunner();
22
20
  const { graph } = useAppGraph();
23
21
  const [selected, setSelected] = useState(initial);
@@ -26,9 +24,15 @@ var CommandsDialogContent = /* @__PURE__ */ forwardRef(({ selected: initial }, f
26
24
  const actionMap = /* @__PURE__ */ new Set();
27
25
  const actions2 = [];
28
26
  Graph.traverse(graph, {
29
- relation: "child",
27
+ relation: [
28
+ "child",
29
+ "action"
30
+ ],
30
31
  visitor: (node, path) => {
31
- if ((Node.isAction(node) || Node.isActionGroup(node)) && !actionMap.has(node.id) && current.startsWith(path.slice(0, -1).join("/"))) {
32
+ const isActionLike = Node.isAction(node) || Node.isActionGroup(node);
33
+ const parentId = path.at(-2) ?? "";
34
+ const matches = current === parentId || current.startsWith(parentId + "/");
35
+ if (isActionLike && !actionMap.has(node.id) && matches) {
32
36
  actionMap.add(node.id);
33
37
  actions2.push(node);
34
38
  }
@@ -50,12 +54,14 @@ var CommandsDialogContent = /* @__PURE__ */ forwardRef(({ selected: initial }, f
50
54
  });
51
55
  return /* @__PURE__ */ React.createElement(Dialog.Content, {
52
56
  ref: forwardedRef
53
- }, /* @__PURE__ */ React.createElement(Dialog.Title, null, t("commands dialog title", {
57
+ }, /* @__PURE__ */ React.createElement(Dialog.Title, {
58
+ srOnly: true
59
+ }, t("commands-dialog.title", {
54
60
  ns: meta.id
55
61
  })), /* @__PURE__ */ React.createElement(SearchList.Root, {
56
62
  onSearch: handleSearch
57
- }, /* @__PURE__ */ React.createElement(SearchList.Content, null, /* @__PURE__ */ React.createElement(SearchList.Input, {
58
- placeholder: t("command list input placeholder")
63
+ }, /* @__PURE__ */ React.createElement(SearchList.Input, {
64
+ placeholder: t("command-list-input.placeholder")
59
65
  }), /* @__PURE__ */ React.createElement(SearchList.Viewport, null, results.map((action) => {
60
66
  const shortcut = typeof action.properties.keyBinding === "string" ? action.properties.keyBinding : action.properties.keyBinding?.[getHostPlatform()];
61
67
  return /* @__PURE__ */ React.createElement(SearchList.Item, {
@@ -72,11 +78,12 @@ var CommandsDialogContent = /* @__PURE__ */ forwardRef(({ selected: initial }, f
72
78
  setSelected(action.id);
73
79
  return;
74
80
  }
75
- invokeSync(LayoutOperation.UpdateDialog, {
81
+ void invokePromise(LayoutOperation.UpdateDialog, {
76
82
  state: false
77
83
  });
78
84
  setTimeout(() => {
79
- const node = Graph.getConnections(graph, group?.id ?? action.id, Node.childRelation("inbound"))[0];
85
+ const lookupId = group?.id ?? action.id;
86
+ const node = Graph.getConnections(graph, lookupId, Node.actionRelation("inbound"))[0];
80
87
  if (node && Node.isAction(action)) {
81
88
  void runAction(action, {
82
89
  parent: node,
@@ -91,21 +98,15 @@ var CommandsDialogContent = /* @__PURE__ */ forwardRef(({ selected: initial }, f
91
98
  "data-testid": action.properties.testId
92
99
  }
93
100
  });
94
- })))), /* @__PURE__ */ React.createElement("div", {
95
- role: "none",
96
- className: "p-form-padding"
97
- }, /* @__PURE__ */ React.createElement(Dialog.Close, {
101
+ }))), /* @__PURE__ */ React.createElement(Dialog.ActionBar, null, /* @__PURE__ */ React.createElement(Dialog.Close, {
98
102
  asChild: true
99
103
  }, /* @__PURE__ */ React.createElement(Button, {
100
104
  classNames: "w-full"
101
- }, t("close label", {
105
+ }, t("close.label", {
102
106
  ns: osTranslations
103
107
  })))));
104
108
  });
105
-
106
- // src/containers/CommandsDialogContent/index.ts
107
- var CommandsDialogContent_default = CommandsDialogContent;
108
109
  export {
109
- CommandsDialogContent_default as default
110
+ CommandsDialogContent as default
110
111
  };
111
- //# sourceMappingURL=CommandsDialogContent-A27AKTHH.mjs.map
112
+ //# sourceMappingURL=CommandsDialogContent-UBGIQ5FI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/CommandsDialogContent/CommandsDialogContent.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { forwardRef, useMemo, useState } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { Keyboard, keySymbols } from '@dxos/keyboard';\nimport { Graph, Node, useActionRunner } from '@dxos/plugin-graph';\nimport { useActions } from '@dxos/plugin-graph';\nimport { Button, Dialog, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-search';\nimport { osTranslations } from '@dxos/ui-theme';\nimport { getHostPlatform } from '@dxos/util';\n\nimport { KEY_BINDING, meta } from '#meta';\n\nexport type CommandsDialogContentProps = {\n selected?: string;\n};\n\n// TODO(wittjosiah): This probably deserves its own plugin but for now it lives here w/ other navigation UI.\nexport const CommandsDialogContent = forwardRef<HTMLDivElement, CommandsDialogContentProps>(\n ({ selected: initial }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const runAction = useActionRunner();\n const { graph } = useAppGraph();\n const [selected, setSelected] = useState<string | undefined>(initial);\n\n // Traverse graph.\n // TODO(burdon): Factor out commonality with shortcut dialog.\n const allActions = useMemo(() => {\n // TODO(burdon): Get from navtree (not keyboard).\n const current = Keyboard.singleton.getCurrentContext();\n const actionMap = new Set<string>();\n const actions: Node.ActionLike[] = [];\n Graph.traverse(graph, {\n relation: ['child', 'action'],\n visitor: (node, path) => {\n const isActionLike = Node.isAction(node) || Node.isActionGroup(node);\n const parentId = path.at(-2) ?? '';\n const matches = current === parentId || current.startsWith(parentId + '/');\n if (isActionLike && !actionMap.has(node.id) && matches) {\n actionMap.add(node.id);\n actions.push(node);\n }\n },\n });\n\n actions.sort((a, b) => {\n return toLocalizedString(a.properties.label, t)\n ?.toLowerCase()\n .localeCompare(toLocalizedString(b.properties.label, t)?.toLowerCase());\n });\n\n return actions;\n }, [graph]);\n\n const group = allActions.find(({ id }) => id === selected);\n const groupActions = useActions(graph, group?.id);\n const actions = Node.isActionGroup(group) ? groupActions : allActions;\n\n const { results, handleSearch } = useSearchListResults({\n items: actions,\n extract: (action) => toLocalizedString(action.properties.label, t),\n });\n\n return (\n <Dialog.Content ref={forwardedRef}>\n <Dialog.Title srOnly>{t('commands-dialog.title', { ns: meta.id })}</Dialog.Title>\n <SearchList.Root onSearch={handleSearch}>\n <SearchList.Input placeholder={t('command-list-input.placeholder')} />\n <SearchList.Viewport>\n {results.map((action) => {\n const shortcut =\n typeof action.properties.keyBinding === 'string'\n ? action.properties.keyBinding\n : action.properties.keyBinding?.[getHostPlatform()];\n\n return (\n <SearchList.Item\n value={action.id}\n key={action.id}\n label={toLocalizedString(action.properties.label, t)}\n icon={action.properties.icon}\n suffix={shortcut ? keySymbols(shortcut).join('') : undefined}\n onSelect={() => {\n if (action.properties.disabled) {\n return;\n }\n\n if (Node.isActionGroup(action)) {\n setSelected(action.id);\n return;\n }\n\n void invokePromise(LayoutOperation.UpdateDialog, { state: false });\n setTimeout(() => {\n const lookupId = group?.id ?? action.id;\n const node = Graph.getConnections(graph, lookupId, Node.actionRelation('inbound'))[0];\n if (node && Node.isAction(action)) {\n void runAction(action, { parent: node, caller: KEY_BINDING });\n }\n });\n }}\n classNames='flex items-center gap-2'\n disabled={action.properties.disabled}\n {...(action.properties?.testId && {\n 'data-testid': action.properties.testId,\n })}\n />\n );\n })}\n </SearchList.Viewport>\n </SearchList.Root>\n <Dialog.ActionBar>\n <Dialog.Close asChild>\n <Button classNames='w-full'>{t('close.label', { ns: osTranslations })}</Button>\n </Dialog.Close>\n </Dialog.ActionBar>\n </Dialog.Content>\n );\n },\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "forwardRef", "useMemo", "useState", "useOperationInvoker", "LayoutOperation", "useAppGraph", "Keyboard", "keySymbols", "Graph", "Node", "useActionRunner", "useActions", "Button", "Dialog", "toLocalizedString", "useTranslation", "SearchList", "useSearchListResults", "osTranslations", "getHostPlatform", "KEY_BINDING", "meta", "CommandsDialogContent", "selected", "initial", "forwardedRef", "t", "id", "invokePromise", "runAction", "graph", "setSelected", "allActions", "current", "singleton", "getCurrentContext", "actionMap", "Set", "actions", "traverse", "relation", "visitor", "node", "path", "isActionLike", "isAction", "isActionGroup", "parentId", "at", "matches", "startsWith", "has", "add", "push", "sort", "a", "b", "properties", "label", "toLowerCase", "localeCompare", "group", "find", "groupActions", "results", "handleSearch", "items", "extract", "action", "Content", "ref", "Title", "srOnly", "ns", "Root", "onSearch", "Input", "placeholder", "Viewport", "map", "shortcut", "keyBinding", "Item", "value", "key", "icon", "suffix", "join", "undefined", "onSelect", "disabled", "UpdateDialog", "state", "setTimeout", "lookupId", "getConnections", "actionRelation", "parent", "caller", "classNames", "testId", "ActionBar", "Close", "asChild"]
7
+ }
@@ -1,33 +1,27 @@
1
- import {
2
- COMMANDS_DIALOG,
3
- meta
4
- } from "./chunk-YKTYPINZ.mjs";
1
+ import "./chunk-J5LGTIGS.mjs";
5
2
 
6
3
  // src/containers/CommandsTrigger/CommandsTrigger.tsx
7
4
  import React from "react";
8
5
  import { useOperationInvoker } from "@dxos/app-framework/ui";
9
6
  import { LayoutOperation } from "@dxos/app-toolkit";
10
7
  import { Button, Icon, useTranslation } from "@dxos/react-ui";
8
+ import { COMMANDS_DIALOG, meta } from "#meta";
11
9
  var CommandsTrigger = () => {
12
- const { invokeSync } = useOperationInvoker();
10
+ const { invokePromise } = useOperationInvoker();
13
11
  const { t } = useTranslation(meta.id);
14
12
  return /* @__PURE__ */ React.createElement(Button, {
15
13
  classNames: "m-1 px-1 lg:px-2",
16
- onClick: () => invokeSync(LayoutOperation.UpdateDialog, {
14
+ onClick: () => void invokePromise(LayoutOperation.UpdateDialog, {
17
15
  subject: COMMANDS_DIALOG,
18
16
  blockAlign: "start"
19
17
  })
20
18
  }, /* @__PURE__ */ React.createElement("span", {
21
19
  className: "text-description font-normal grow text-start"
22
- }, t("command list input placeholder")), /* @__PURE__ */ React.createElement(Icon, {
23
- icon: "ph--magnifying-glass--regular",
24
- size: 5
20
+ }, t("command-list-input.placeholder")), /* @__PURE__ */ React.createElement(Icon, {
21
+ icon: "ph--magnifying-glass--regular"
25
22
  }));
26
23
  };
27
-
28
- // src/containers/CommandsTrigger/index.ts
29
- var CommandsTrigger_default = CommandsTrigger;
30
24
  export {
31
- CommandsTrigger_default as default
25
+ CommandsTrigger as default
32
26
  };
33
- //# sourceMappingURL=CommandsTrigger-HBZYQCGV.mjs.map
27
+ //# sourceMappingURL=CommandsTrigger-BH5WLMHK.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/CommandsTrigger/CommandsTrigger.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Button, Icon, useTranslation } from '@dxos/react-ui';\n\nimport { COMMANDS_DIALOG, meta } from '#meta';\n\n// TODO(thure): Refactor to be handled by a more appropriate plugin.\nexport const CommandsTrigger = () => {\n const { invokePromise } = useOperationInvoker();\n const { t } = useTranslation(meta.id);\n return (\n <Button\n classNames='m-1 px-1 lg:px-2'\n onClick={() =>\n void invokePromise(LayoutOperation.UpdateDialog, { subject: COMMANDS_DIALOG, blockAlign: 'start' })\n }\n >\n <span className='text-description font-normal grow text-start'>{t('command-list-input.placeholder')}</span>\n <Icon icon='ph--magnifying-glass--regular' />\n </Button>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAElB,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,QAAQC,MAAMC,sBAAsB;AAE7C,SAASC,iBAAiBC,YAAY;AAG/B,IAAMC,kBAAkB,MAAA;AAC7B,QAAM,EAAEC,cAAa,IAAKR,oBAAAA;AAC1B,QAAM,EAAES,EAAC,IAAKL,eAAeE,KAAKI,EAAE;AACpC,SACE,sBAAA,cAACR,QAAAA;IACCS,YAAW;IACXC,SAAS,MACP,KAAKJ,cAAcP,gBAAgBY,cAAc;MAAEC,SAAST;MAAiBU,YAAY;IAAQ,CAAA;KAGnG,sBAAA,cAACC,QAAAA;IAAKC,WAAU;KAAgDR,EAAE,gCAAA,CAAA,GAClE,sBAAA,cAACN,MAAAA;IAAKe,MAAK;;AAGjB;",
6
+ "names": ["React", "useOperationInvoker", "LayoutOperation", "Button", "Icon", "useTranslation", "COMMANDS_DIALOG", "meta", "CommandsTrigger", "invokePromise", "t", "id", "classNames", "onClick", "UpdateDialog", "subject", "blockAlign", "span", "className", "icon"]
7
+ }
@@ -0,0 +1,12 @@
1
+ import {
2
+ NODE_TYPE,
3
+ NavTreeContainer
4
+ } from "./chunk-5OPDKH6B.mjs";
5
+ import "./chunk-JOSNCOV4.mjs";
6
+ import "./chunk-J5LGTIGS.mjs";
7
+ export {
8
+ NODE_TYPE,
9
+ NavTreeContainer,
10
+ NavTreeContainer as default
11
+ };
12
+ //# sourceMappingURL=NavTreeContainer-6AR4BFDD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,15 +1,14 @@
1
- import {
2
- meta
3
- } from "./chunk-YKTYPINZ.mjs";
1
+ import "./chunk-J5LGTIGS.mjs";
4
2
 
5
3
  // src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.tsx
6
4
  import { useEffect } from "react";
7
5
  import { toLocalizedString, useTranslation } from "@dxos/react-ui";
8
6
  import { osTranslations } from "@dxos/ui-theme";
7
+ import { meta } from "#meta";
9
8
  var NavTreeDocumentTitle = ({ node }) => {
10
9
  const { t } = useTranslation(meta.id);
11
10
  useEffect(() => {
12
- document.title = node ? toLocalizedString(node.properties.label, t) : t("current app name", {
11
+ document.title = node ? toLocalizedString(node.properties.label, t) : t("current-app.name", {
13
12
  ns: osTranslations
14
13
  });
15
14
  }, [
@@ -17,10 +16,7 @@ var NavTreeDocumentTitle = ({ node }) => {
17
16
  ]);
18
17
  return null;
19
18
  };
20
-
21
- // src/containers/NavTreeDocumentTitle/index.ts
22
- var NavTreeDocumentTitle_default = NavTreeDocumentTitle;
23
19
  export {
24
- NavTreeDocumentTitle_default as default
20
+ NavTreeDocumentTitle as default
25
21
  };
26
- //# sourceMappingURL=NavTreeDocumentTitle-GEE3URWH.mjs.map
22
+ //# sourceMappingURL=NavTreeDocumentTitle-H3E6ZLYE.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\nimport { useEffect } from 'react';\n\nimport { type Node } from '@dxos/app-graph';\nimport { toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { meta } from '#meta';\n\nexport const NavTreeDocumentTitle = ({ node }: { node?: Node.Node }) => {\n const { t } = useTranslation(meta.id);\n useEffect(() => {\n document.title = node ? toLocalizedString(node.properties.label, t) : t('current-app.name', { ns: osTranslations });\n }, [node?.properties?.label]);\n return null;\n};\n"],
5
+ "mappings": ";;;AAGA,SAASA,iBAAiB;AAG1B,SAASC,mBAAmBC,sBAAsB;AAClD,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AAEd,IAAMC,uBAAuB,CAAC,EAAEC,KAAI,MAAwB;AACjE,QAAM,EAAEC,EAAC,IAAKL,eAAeE,KAAKI,EAAE;AACpCR,YAAU,MAAA;AACRS,aAASC,QAAQJ,OAAOL,kBAAkBK,KAAKK,WAAWC,OAAOL,CAAAA,IAAKA,EAAE,oBAAoB;MAAEM,IAAIV;IAAe,CAAA;EACnH,GAAG;IAACG,MAAMK,YAAYC;GAAM;AAC5B,SAAO;AACT;",
6
+ "names": ["useEffect", "toLocalizedString", "useTranslation", "osTranslations", "meta", "NavTreeDocumentTitle", "node", "t", "id", "document", "title", "properties", "label", "ns"]
7
+ }
@@ -0,0 +1,56 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/NavTreePlugin.tsx
4
+ import * as Effect from "effect/Effect";
5
+ import { ActivationEvent, ActivationEvents, Capabilities, Capability, Plugin } from "@dxos/app-framework";
6
+ import { AppActivationEvents, AppCapabilities, AppPlugin, LayoutOperation } from "@dxos/app-toolkit";
7
+ import { Graph } from "@dxos/plugin-graph";
8
+ import { AppGraphBuilder, Keyboard, OperationHandler, ReactSurface, State } from "#capabilities";
9
+ import { meta } from "#meta";
10
+ import { translations } from "#translations";
11
+ import { NavTreeEvents } from "#types";
12
+ var NavTreePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
13
+ activate: AppGraphBuilder
14
+ }), AppPlugin.addOperationHandlerModule({
15
+ activate: OperationHandler
16
+ }), AppPlugin.addSurfaceModule({
17
+ activate: ReactSurface
18
+ }), AppPlugin.addTranslationsModule({
19
+ translations
20
+ }), Plugin.addModule({
21
+ id: "state",
22
+ activatesOn: AppActivationEvents.LayoutReady,
23
+ firesAfterActivation: [
24
+ NavTreeEvents.StateReady
25
+ ],
26
+ activate: State
27
+ }), Plugin.addModule({
28
+ id: "expose",
29
+ activatesOn: ActivationEvent.allOf(ActivationEvents.OperationInvokerReady, AppActivationEvents.AppGraphReady, AppActivationEvents.LayoutReady, NavTreeEvents.StateReady),
30
+ activate: Effect.fnUntraced(function* () {
31
+ const layout = yield* Capabilities.getAtomValue(AppCapabilities.Layout);
32
+ const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);
33
+ const { graph } = yield* Capability.get(AppCapabilities.AppGraph);
34
+ if (invokePromise && layout.active.length === 1) {
35
+ void Graph.waitForPath(graph, {
36
+ target: layout.active[0]
37
+ }, {
38
+ timeout: 3e4
39
+ }).then(() => invokePromise(LayoutOperation.Expose, {
40
+ subject: layout.active[0]
41
+ })).catch(() => {
42
+ });
43
+ }
44
+ return [];
45
+ })
46
+ }), Plugin.addModule({
47
+ id: "keyboard",
48
+ activatesOn: ActivationEvent.allOf(AppActivationEvents.AppGraphReady, ActivationEvents.OperationInvokerReady),
49
+ activate: Keyboard
50
+ }), Plugin.make);
51
+ var NavTreePlugin_default = NavTreePlugin;
52
+ export {
53
+ NavTreePlugin,
54
+ NavTreePlugin_default as default
55
+ };
56
+ //# sourceMappingURL=NavTreePlugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/NavTreePlugin.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ActivationEvent, ActivationEvents, Capabilities, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppCapabilities, AppPlugin, LayoutOperation } from '@dxos/app-toolkit';\nimport { Graph } from '@dxos/plugin-graph';\n\nimport { AppGraphBuilder, Keyboard, OperationHandler, ReactSurface, State } from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { NavTreeEvents } from '#types';\n\nexport const NavTreePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n id: 'state',\n activatesOn: AppActivationEvents.LayoutReady,\n firesAfterActivation: [NavTreeEvents.StateReady],\n activate: State,\n }),\n Plugin.addModule({\n id: 'expose',\n activatesOn: ActivationEvent.allOf(\n ActivationEvents.OperationInvokerReady,\n AppActivationEvents.AppGraphReady,\n AppActivationEvents.LayoutReady,\n NavTreeEvents.StateReady,\n ),\n activate: Effect.fnUntraced(function* () {\n const layout = yield* Capabilities.getAtomValue(AppCapabilities.Layout);\n const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n if (invokePromise && layout.active.length === 1) {\n // TODO(wittjosiah): This should really be fired once the navtree renders for the first time.\n // That is the point at which the graph is expanded and the path should be available.\n void Graph.waitForPath(graph, { target: layout.active[0] }, { timeout: 30_000 })\n .then(() => invokePromise(LayoutOperation.Expose, { subject: layout.active[0] }))\n .catch(() => {});\n }\n\n return [];\n }),\n }),\n Plugin.addModule({\n id: 'keyboard',\n activatesOn: ActivationEvent.allOf(AppActivationEvents.AppGraphReady, ActivationEvents.OperationInvokerReady),\n activate: Keyboard,\n }),\n Plugin.make,\n);\n\nexport default NavTreePlugin;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,kBAAkBC,cAAcC,YAAYC,cAAc;AACpF,SAASC,qBAAqBC,iBAAiBC,WAAWC,uBAAuB;AACjF,SAASC,aAAa;AAEtB,SAASC,iBAAiBC,UAAUC,kBAAkBC,cAAcC,aAAa;AACjF,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAC7B,SAASC,qBAAqB;AAEvB,IAAMC,gBAAgBd,OAAOe,OAAOJ,IAAAA,EAAMK,KAC/Cb,UAAUc,kBAAkB;EAAEC,UAAUZ;AAAgB,CAAA,GACxDH,UAAUgB,0BAA0B;EAAED,UAAUV;AAAiB,CAAA,GACjEL,UAAUiB,iBAAiB;EAAEF,UAAUT;AAAa,CAAA,GACpDN,UAAUkB,sBAAsB;EAAET;AAAa,CAAA,GAC/CZ,OAAOsB,UAAU;EACfC,IAAI;EACJC,aAAavB,oBAAoBwB;EACjCC,sBAAsB;IAACb,cAAcc;;EACrCT,UAAUR;AACZ,CAAA,GACAV,OAAOsB,UAAU;EACfC,IAAI;EACJC,aAAa5B,gBAAgBgC,MAC3B/B,iBAAiBgC,uBACjB5B,oBAAoB6B,eACpB7B,oBAAoBwB,aACpBZ,cAAcc,UAAU;EAE1BT,UAAiBa,kBAAW,aAAA;AAC1B,UAAMC,SAAS,OAAOlC,aAAamC,aAAa/B,gBAAgBgC,MAAM;AACtE,UAAM,EAAEC,cAAa,IAAK,OAAOpC,WAAWqC,IAAItC,aAAauC,gBAAgB;AAC7E,UAAM,EAAEC,MAAK,IAAK,OAAOvC,WAAWqC,IAAIlC,gBAAgBqC,QAAQ;AAChE,QAAIJ,iBAAiBH,OAAOQ,OAAOC,WAAW,GAAG;AAG/C,WAAKpC,MAAMqC,YAAYJ,OAAO;QAAEK,QAAQX,OAAOQ,OAAO,CAAA;MAAG,GAAG;QAAEI,SAAS;MAAO,CAAA,EAC3EC,KAAK,MAAMV,cAAc/B,gBAAgB0C,QAAQ;QAAEC,SAASf,OAAOQ,OAAO,CAAA;MAAG,CAAA,CAAA,EAC7EQ,MAAM,MAAA;MAAO,CAAA;IAClB;AAEA,WAAO,CAAA;EACT,CAAA;AACF,CAAA,GACAhD,OAAOsB,UAAU;EACfC,IAAI;EACJC,aAAa5B,gBAAgBgC,MAAM3B,oBAAoB6B,eAAejC,iBAAiBgC,qBAAqB;EAC5GX,UAAUX;AACZ,CAAA,GACAP,OAAOiD,IAAI;AAGb,IAAA,wBAAenC;",
6
+ "names": ["Effect", "ActivationEvent", "ActivationEvents", "Capabilities", "Capability", "Plugin", "AppActivationEvents", "AppCapabilities", "AppPlugin", "LayoutOperation", "Graph", "AppGraphBuilder", "Keyboard", "OperationHandler", "ReactSurface", "State", "meta", "translations", "NavTreeEvents", "NavTreePlugin", "define", "pipe", "addAppGraphModule", "activate", "addOperationHandlerModule", "addSurfaceModule", "addTranslationsModule", "addModule", "id", "activatesOn", "LayoutReady", "firesAfterActivation", "StateReady", "allOf", "OperationInvokerReady", "AppGraphReady", "fnUntraced", "layout", "getAtomValue", "Layout", "invokePromise", "get", "OperationInvoker", "graph", "AppGraph", "active", "length", "waitForPath", "target", "timeout", "then", "Expose", "subject", "catch", "make"]
7
+ }
@@ -0,0 +1,18 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/NavTreePlugin.node.ts
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppPlugin } from "@dxos/app-toolkit";
6
+ import { AppGraphBuilder, OperationHandler } from "#capabilities";
7
+ import { meta } from "#meta";
8
+ var NavTreePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
9
+ activate: AppGraphBuilder
10
+ }), AppPlugin.addOperationHandlerModule({
11
+ activate: OperationHandler
12
+ }), Plugin.make);
13
+ var NavTreePlugin_node_default = NavTreePlugin;
14
+ export {
15
+ NavTreePlugin,
16
+ NavTreePlugin_node_default as default
17
+ };
18
+ //# sourceMappingURL=NavTreePlugin.node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/NavTreePlugin.node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\n\nimport { AppGraphBuilder, OperationHandler } from '#capabilities';\nimport { meta } from '#meta';\n\nexport const NavTreePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n Plugin.make,\n);\n\nexport default NavTreePlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAE1B,SAASC,iBAAiBC,wBAAwB;AAClD,SAASC,YAAY;AAEd,IAAMC,gBAAgBL,OAAOM,OAAOF,IAAAA,EAAMG,KAC/CN,UAAUO,kBAAkB;EAAEC,UAAUP;AAAgB,CAAA,GACxDD,UAAUS,0BAA0B;EAAED,UAAUN;AAAiB,CAAA,GACjEH,OAAOW,IAAI;AAGb,IAAA,6BAAeN;",
6
+ "names": ["Plugin", "AppPlugin", "AppGraphBuilder", "OperationHandler", "meta", "NavTreePlugin", "define", "pipe", "addAppGraphModule", "activate", "addOperationHandlerModule", "make"]
7
+ }
@@ -1,20 +1,18 @@
1
- import {
2
- COMMANDS_DIALOG,
3
- meta
4
- } from "./chunk-YKTYPINZ.mjs";
1
+ import "./chunk-J5LGTIGS.mjs";
5
2
 
6
- // src/capabilities/app-graph-builder/app-graph-builder.ts
3
+ // src/capabilities/app-graph-builder.ts
7
4
  import * as Effect from "effect/Effect";
8
5
  import { Capability } from "@dxos/app-framework";
9
6
  import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
10
- import { Operation } from "@dxos/operation";
11
- import { GraphBuilder, NodeMatcher } from "@dxos/plugin-graph";
7
+ import { Operation } from "@dxos/compute";
8
+ import { GraphBuilder, Node, NodeMatcher } from "@dxos/plugin-graph";
9
+ import { COMMANDS_DIALOG, meta } from "#meta";
12
10
  var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
13
11
  const extensions = yield* GraphBuilder.createExtension({
14
- id: meta.id,
12
+ id: "root",
15
13
  match: NodeMatcher.whenRoot,
16
14
  actions: () => Effect.succeed([
17
- {
15
+ Node.makeAction({
18
16
  id: COMMANDS_DIALOG,
19
17
  data: () => Operation.invoke(LayoutOperation.UpdateDialog, {
20
18
  subject: COMMANDS_DIALOG,
@@ -22,7 +20,7 @@ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function
22
20
  }),
23
21
  properties: {
24
22
  label: [
25
- "open commands label",
23
+ "open-commands.label",
26
24
  {
27
25
  ns: meta.id
28
26
  }
@@ -33,7 +31,7 @@ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function
33
31
  windows: "ctrl+k"
34
32
  }
35
33
  }
36
- }
34
+ })
37
35
  ])
38
36
  });
39
37
  return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
@@ -41,4 +39,4 @@ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function
41
39
  export {
42
40
  app_graph_builder_default as default
43
41
  };
44
- //# sourceMappingURL=app-graph-builder-XGA4GPGL.mjs.map
42
+ //# sourceMappingURL=app-graph-builder-Z347LKSF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { GraphBuilder, Node, NodeMatcher } from '@dxos/plugin-graph';\n\nimport { COMMANDS_DIALOG, meta } from '#meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* GraphBuilder.createExtension({\n id: 'root',\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed([\n Node.makeAction({\n id: COMMANDS_DIALOG,\n data: () =>\n Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: COMMANDS_DIALOG,\n blockAlign: 'start',\n }),\n properties: {\n label: ['open-commands.label', { ns: meta.id }],\n icon: 'ph--magnifying-glass--regular',\n keyBinding: {\n macos: 'meta+k',\n windows: 'ctrl+k',\n },\n },\n }),\n ]),\n });\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,uBAAuB;AACjD,SAASC,iBAAiB;AAC1B,SAASC,cAAcC,MAAMC,mBAAmB;AAEhD,SAASC,iBAAiBC,YAAY;AAEtC,IAAA,4BAAeR,WAAWS,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAOP,aAAaQ,gBAAgB;IACrDC,IAAI;IACJC,OAAOR,YAAYS;IACnBC,SAAS,MACAC,eAAQ;MACbZ,KAAKa,WAAW;QACdL,IAAIN;QACJY,MAAM,MACJhB,UAAUiB,OAAOlB,gBAAgBmB,cAAc;UAC7CC,SAASf;UACTgB,YAAY;QACd,CAAA;QACFC,YAAY;UACVC,OAAO;YAAC;YAAuB;cAAEC,IAAIlB,KAAKK;YAAG;;UAC7Cc,MAAM;UACNC,YAAY;YACVC,OAAO;YACPC,SAAS;UACX;QACF;MACF,CAAA;KACD;EACL,CAAA;AAEA,SAAO9B,WAAW+B,YAAY9B,gBAAgB+B,iBAAiBrB,UAAAA;AACjE,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "LayoutOperation", "Operation", "GraphBuilder", "Node", "NodeMatcher", "COMMANDS_DIALOG", "meta", "makeModule", "fnUntraced", "extensions", "createExtension", "id", "match", "whenRoot", "actions", "succeed", "makeAction", "data", "invoke", "UpdateDialog", "subject", "blockAlign", "properties", "label", "ns", "icon", "keyBinding", "macos", "windows", "contributes", "AppGraphBuilder"]
7
+ }
@@ -0,0 +1,17 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/index.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("../app-graph-builder-Z347LKSF.mjs"));
6
+ var Keyboard = Capability.lazy("Keyboard", () => import("../keyboard-EJ65BVTC.mjs"));
7
+ var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-ORDOJUL2.mjs"));
8
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-3AJ6BHL4.mjs"));
9
+ var State = Capability.lazy("State", () => import("../state-VVITVXWM.mjs"));
10
+ export {
11
+ AppGraphBuilder,
12
+ Keyboard,
13
+ OperationHandler,
14
+ ReactSurface,
15
+ State
16
+ };
17
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const Keyboard = Capability.lazy('Keyboard', () => import('./keyboard'));\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const State = Capability.lazy('State', () => import('./state'));\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAGpB,IAAMC,kBAAkBD,WAAWE,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAMC,WAAWH,WAAWE,KAAK,YAAY,MAAM,OAAO,0BAAA,CAAA;AAC1D,IAAME,mBAAmBJ,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMG,eAAeL,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMI,QAAQN,WAAWE,KAAK,SAAS,MAAM,OAAO,uBAAA,CAAA;",
6
+ "names": ["Capability", "AppGraphBuilder", "lazy", "Keyboard", "OperationHandler", "ReactSurface", "State"]
7
+ }