@dxos/plugin-navtree 0.8.4-main.a4bbb77 → 0.8.4-main.abd8ff62ef

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 (208) hide show
  1. package/dist/lib/browser/NavTreePlugin-53I3ONRE.mjs +74 -0
  2. package/dist/lib/browser/NavTreePlugin-53I3ONRE.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +95 -122
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/translations.mjs +21 -0
  7. package/dist/lib/browser/translations.mjs.map +7 -0
  8. package/dist/types/src/NavTreePlugin.d.ts +3 -1
  9. package/dist/types/src/NavTreePlugin.d.ts.map +1 -1
  10. package/dist/types/src/NavTreePlugin.node.d.ts +4 -0
  11. package/dist/types/src/NavTreePlugin.node.d.ts.map +1 -0
  12. package/dist/types/src/NavTreePlugin.test.d.ts +2 -0
  13. package/dist/types/src/NavTreePlugin.test.d.ts.map +1 -0
  14. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  15. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  16. package/dist/types/src/capabilities/index.d.ts +7 -105
  17. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  18. package/dist/types/src/capabilities/keyboard.d.ts +3 -2
  19. package/dist/types/src/capabilities/keyboard.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  21. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  22. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  23. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  24. package/dist/types/src/capabilities/state.d.ts +4 -18
  25. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  26. package/dist/types/src/components/NavTree/NavTree.d.ts +11 -4
  27. package/dist/types/src/components/NavTree/NavTree.d.ts.map +1 -1
  28. package/dist/types/src/components/NavTree/NavTree.stories.d.ts +10 -13
  29. package/dist/types/src/components/NavTree/NavTree.stories.d.ts.map +1 -1
  30. package/dist/types/src/components/{NavTreeContext.d.ts → NavTreeContext/NavTreeContext.d.ts} +1 -1
  31. package/dist/types/src/components/NavTreeContext/NavTreeContext.d.ts.map +1 -0
  32. package/dist/types/src/components/NavTreeContext/index.d.ts +2 -0
  33. package/dist/types/src/components/NavTreeContext/index.d.ts.map +1 -0
  34. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts +13 -9
  35. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts.map +1 -1
  36. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts +3 -2
  37. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts.map +1 -1
  38. package/dist/types/src/components/NavTreeItem/NavTreeItemColumns.d.ts +1 -1
  39. package/dist/types/src/components/NavTreeItem/NavTreeItemColumns.d.ts.map +1 -1
  40. package/dist/types/src/components/Sidebar/L0Menu.d.ts +8 -5
  41. package/dist/types/src/components/Sidebar/L0Menu.d.ts.map +1 -1
  42. package/dist/types/src/components/Sidebar/L1Panel.d.ts +4 -7
  43. package/dist/types/src/components/Sidebar/L1Panel.d.ts.map +1 -1
  44. package/dist/types/src/components/Sidebar/L1Tabs.d.ts +5 -4
  45. package/dist/types/src/components/Sidebar/L1Tabs.d.ts.map +1 -1
  46. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.d.ts.map +1 -1
  47. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.stories.d.ts.map +1 -1
  48. package/dist/types/src/components/index.d.ts +0 -3
  49. package/dist/types/src/components/index.d.ts.map +1 -1
  50. package/dist/types/src/components/types.d.ts +8 -17
  51. package/dist/types/src/components/types.d.ts.map +1 -1
  52. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.d.ts +6 -0
  53. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.d.ts.map +1 -0
  54. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.stories.d.ts +28 -0
  55. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.stories.d.ts.map +1 -0
  56. package/dist/types/src/containers/CommandsDialogContent/index.d.ts +2 -0
  57. package/dist/types/src/containers/CommandsDialogContent/index.d.ts.map +1 -0
  58. package/dist/types/src/containers/CommandsTrigger/CommandsTrigger.d.ts.map +1 -0
  59. package/dist/types/src/containers/CommandsTrigger/index.d.ts +2 -0
  60. package/dist/types/src/containers/CommandsTrigger/index.d.ts.map +1 -0
  61. package/dist/types/src/containers/NavTreeContainer/NavTreeContainer.d.ts +9 -0
  62. package/dist/types/src/containers/NavTreeContainer/NavTreeContainer.d.ts.map +1 -0
  63. package/dist/types/src/containers/NavTreeContainer/index.d.ts +3 -0
  64. package/dist/types/src/containers/NavTreeContainer/index.d.ts.map +1 -0
  65. package/dist/types/src/{components → containers/NavTreeDocumentTitle}/NavTreeDocumentTitle.d.ts +1 -1
  66. package/dist/types/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.d.ts.map +1 -0
  67. package/dist/types/src/containers/NavTreeDocumentTitle/index.d.ts +2 -0
  68. package/dist/types/src/containers/NavTreeDocumentTitle/index.d.ts.map +1 -0
  69. package/dist/types/src/containers/index.d.ts +7 -0
  70. package/dist/types/src/containers/index.d.ts.map +1 -0
  71. package/dist/types/src/experimental/Tree.d.ts +2 -2
  72. package/dist/types/src/experimental/Tree.d.ts.map +1 -1
  73. package/dist/types/src/experimental/Tree.stories.d.ts +15 -4
  74. package/dist/types/src/experimental/Tree.stories.d.ts.map +1 -1
  75. package/dist/types/src/hooks/index.d.ts +5 -0
  76. package/dist/types/src/hooks/index.d.ts.map +1 -0
  77. package/dist/types/src/hooks/useActions.d.ts +5 -0
  78. package/dist/types/src/hooks/useActions.d.ts.map +1 -0
  79. package/dist/types/src/hooks/useLoadDescendents.d.ts +6 -0
  80. package/dist/types/src/hooks/useLoadDescendents.d.ts.map +1 -0
  81. package/dist/types/src/hooks/useNavTreeModel.d.ts +7 -0
  82. package/dist/types/src/hooks/useNavTreeModel.d.ts.map +1 -0
  83. package/dist/types/src/hooks/useNavTreeState.d.ts +18 -0
  84. package/dist/types/src/hooks/useNavTreeState.d.ts.map +1 -0
  85. package/dist/types/src/index.d.ts +3 -3
  86. package/dist/types/src/index.d.ts.map +1 -1
  87. package/dist/types/src/meta.d.ts +2 -2
  88. package/dist/types/src/meta.d.ts.map +1 -1
  89. package/dist/types/src/operations/expose.d.ts +5 -0
  90. package/dist/types/src/operations/expose.d.ts.map +1 -0
  91. package/dist/types/src/operations/index.d.ts +3 -0
  92. package/dist/types/src/operations/index.d.ts.map +1 -0
  93. package/dist/types/src/testing/app-graph-builder.d.ts +2 -3
  94. package/dist/types/src/testing/app-graph-builder.d.ts.map +1 -1
  95. package/dist/types/src/testing/generator.d.ts +5 -6
  96. package/dist/types/src/testing/generator.d.ts.map +1 -1
  97. package/dist/types/src/testing/update-state.d.ts +2 -2
  98. package/dist/types/src/testing/update-state.d.ts.map +1 -1
  99. package/dist/types/src/translations.d.ts +8 -11
  100. package/dist/types/src/translations.d.ts.map +1 -1
  101. package/dist/types/src/types/capabilities.d.ts +15 -0
  102. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  103. package/dist/types/src/types/events.d.ts +5 -0
  104. package/dist/types/src/types/events.d.ts.map +1 -0
  105. package/dist/types/src/types/index.d.ts +4 -0
  106. package/dist/types/src/types/index.d.ts.map +1 -0
  107. package/dist/types/src/{types.d.ts → types/schema.d.ts} +10 -9
  108. package/dist/types/src/types/schema.d.ts.map +1 -0
  109. package/dist/types/src/util.d.ts +12 -8
  110. package/dist/types/src/util.d.ts.map +1 -1
  111. package/dist/types/tsconfig.tsbuildinfo +1 -1
  112. package/package.json +78 -58
  113. package/src/NavTreePlugin.node.ts +37 -0
  114. package/src/NavTreePlugin.test.ts +29 -0
  115. package/src/NavTreePlugin.tsx +59 -76
  116. package/src/capabilities/app-graph-builder.ts +34 -44
  117. package/src/capabilities/index.ts +10 -8
  118. package/src/capabilities/keyboard.ts +58 -51
  119. package/src/capabilities/operation-handler.ts +16 -0
  120. package/src/capabilities/react-surface.tsx +46 -38
  121. package/src/capabilities/state.ts +128 -84
  122. package/src/components/NavTree/NavTree.stories.tsx +105 -100
  123. package/src/components/NavTree/NavTree.tsx +65 -33
  124. package/src/components/{NavTreeContext.tsx → NavTreeContext/NavTreeContext.tsx} +1 -1
  125. package/src/components/NavTreeContext/index.ts +5 -0
  126. package/src/components/NavTreeItem/NavTreeItemAction.stories.tsx +23 -15
  127. package/src/components/NavTreeItem/NavTreeItemAction.tsx +69 -46
  128. package/src/components/NavTreeItem/NavTreeItemColumns.tsx +67 -35
  129. package/src/components/Sidebar/L0Menu.tsx +148 -183
  130. package/src/components/Sidebar/L1Panel.tsx +202 -103
  131. package/src/components/Sidebar/L1Tabs.tsx +18 -34
  132. package/src/components/UserAccountAvatar/UserAccountAvatar.stories.tsx +2 -3
  133. package/src/components/UserAccountAvatar/UserAccountAvatar.tsx +1 -1
  134. package/src/components/index.ts +1 -3
  135. package/src/components/types.ts +13 -19
  136. package/src/containers/CommandsDialogContent/CommandsDialogContent.stories.tsx +46 -0
  137. package/src/containers/CommandsDialogContent/CommandsDialogContent.tsx +127 -0
  138. package/src/containers/CommandsDialogContent/index.ts +5 -0
  139. package/src/containers/CommandsTrigger/CommandsTrigger.tsx +28 -0
  140. package/src/containers/CommandsTrigger/index.ts +5 -0
  141. package/src/containers/NavTreeContainer/NavTreeContainer.tsx +271 -0
  142. package/src/containers/NavTreeContainer/index.ts +6 -0
  143. package/src/{components → containers/NavTreeDocumentTitle}/NavTreeDocumentTitle.tsx +4 -3
  144. package/src/containers/NavTreeDocumentTitle/index.ts +5 -0
  145. package/src/containers/index.ts +12 -0
  146. package/src/experimental/Tree.stories.tsx +81 -87
  147. package/src/experimental/Tree.tsx +3 -3
  148. package/src/hooks/index.ts +8 -0
  149. package/src/hooks/useActions.ts +34 -0
  150. package/src/hooks/useLoadDescendents.ts +23 -0
  151. package/src/hooks/useNavTreeModel.ts +118 -0
  152. package/src/hooks/useNavTreeState.ts +35 -0
  153. package/src/index.ts +8 -3
  154. package/src/meta.ts +9 -4
  155. package/src/operations/expose.ts +42 -0
  156. package/src/operations/index.ts +7 -0
  157. package/src/testing/app-graph-builder.ts +167 -238
  158. package/src/testing/generator.ts +41 -39
  159. package/src/testing/update-state.ts +6 -6
  160. package/src/translations.ts +8 -10
  161. package/src/types/capabilities.ts +21 -0
  162. package/src/types/events.ts +12 -0
  163. package/src/types/index.ts +7 -0
  164. package/src/{types.ts → types/schema.ts} +9 -8
  165. package/src/util.ts +28 -17
  166. package/dist/lib/browser/app-graph-builder-BCXDEDN7.mjs +0 -45
  167. package/dist/lib/browser/app-graph-builder-BCXDEDN7.mjs.map +0 -7
  168. package/dist/lib/browser/chunk-6AZKY5WZ.mjs +0 -1470
  169. package/dist/lib/browser/chunk-6AZKY5WZ.mjs.map +0 -7
  170. package/dist/lib/browser/chunk-LPAREX6J.mjs +0 -15
  171. package/dist/lib/browser/chunk-LPAREX6J.mjs.map +0 -7
  172. package/dist/lib/browser/chunk-ZENLR72O.mjs +0 -14
  173. package/dist/lib/browser/chunk-ZENLR72O.mjs.map +0 -7
  174. package/dist/lib/browser/intent-resolver-G6COWRWW.mjs +0 -47
  175. package/dist/lib/browser/intent-resolver-G6COWRWW.mjs.map +0 -7
  176. package/dist/lib/browser/keyboard-AHSAWKXA.mjs +0 -51
  177. package/dist/lib/browser/keyboard-AHSAWKXA.mjs.map +0 -7
  178. package/dist/lib/browser/react-surface-FOCB4Y5R.mjs +0 -51
  179. package/dist/lib/browser/react-surface-FOCB4Y5R.mjs.map +0 -7
  180. package/dist/lib/browser/state-2Q623V7U.mjs +0 -117
  181. package/dist/lib/browser/state-2Q623V7U.mjs.map +0 -7
  182. package/dist/types/src/capabilities/capabilities.d.ts +0 -21
  183. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  184. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  185. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  186. package/dist/types/src/components/CommandsDialog/CommandsDialog.d.ts +0 -5
  187. package/dist/types/src/components/CommandsDialog/CommandsDialog.d.ts.map +0 -1
  188. package/dist/types/src/components/CommandsDialog/CommandsTrigger.d.ts.map +0 -1
  189. package/dist/types/src/components/CommandsDialog/index.d.ts +0 -3
  190. package/dist/types/src/components/CommandsDialog/index.d.ts.map +0 -1
  191. package/dist/types/src/components/NavTreeContainer.d.ts +0 -9
  192. package/dist/types/src/components/NavTreeContainer.d.ts.map +0 -1
  193. package/dist/types/src/components/NavTreeContext.d.ts.map +0 -1
  194. package/dist/types/src/components/NavTreeDocumentTitle.d.ts.map +0 -1
  195. package/dist/types/src/events.d.ts +0 -4
  196. package/dist/types/src/events.d.ts.map +0 -1
  197. package/dist/types/src/hooks.d.ts +0 -3
  198. package/dist/types/src/hooks.d.ts.map +0 -1
  199. package/dist/types/src/types.d.ts.map +0 -1
  200. package/src/capabilities/capabilities.ts +0 -20
  201. package/src/capabilities/intent-resolver.ts +0 -37
  202. package/src/components/CommandsDialog/CommandsDialog.tsx +0 -118
  203. package/src/components/CommandsDialog/CommandsTrigger.tsx +0 -35
  204. package/src/components/CommandsDialog/index.ts +0 -6
  205. package/src/components/NavTreeContainer.tsx +0 -339
  206. package/src/events.ts +0 -11
  207. package/src/hooks.ts +0 -21
  208. /package/dist/types/src/{components/CommandsDialog → containers/CommandsTrigger}/CommandsTrigger.d.ts +0 -0
@@ -4,21 +4,19 @@
4
4
 
5
5
  import { type Resource } from '@dxos/react-ui';
6
6
 
7
- import { meta } from './meta';
7
+ import { meta } from '#meta';
8
8
 
9
9
  export const translations = [
10
10
  {
11
11
  'en-US': {
12
12
  [meta.id]: {
13
- 'app menu label': 'App menu',
14
- 'open settings label': 'Settings',
15
- 'open commands label': 'Search commands',
16
- 'commands dialog title': 'Commands',
17
- 'command list input placeholder': 'Search for commands…',
18
- 'node actions menu invoker label': 'More options',
19
- 'tree item actions label': 'More actions',
20
- 'empty branch message': ' ',
21
- 'button back': 'Back to Space',
13
+ 'app-menu.label': 'App menu',
14
+ 'open-commands.label': 'Search commands',
15
+ 'commands-dialog.title': 'Commands',
16
+ 'command-list-input.placeholder': 'Search for commands…',
17
+ 'node-actions-menu-invoker.label': 'More options',
18
+ 'tree-item-actions.label': 'More actions',
19
+ 'button-back.button': 'Back to Space',
22
20
  },
23
21
  },
24
22
  },
@@ -0,0 +1,21 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type Atom } from '@effect-atom/atom-react';
6
+
7
+ import { Capability } from '@dxos/app-framework';
8
+
9
+ import { meta } from '#meta';
10
+
11
+ export namespace NavTreeCapabilities {
12
+ export type NavTreeItemState = { open: boolean; current: boolean };
13
+
14
+ export type NavTreeStateStore = {
15
+ getItem: (path: string[]) => NavTreeItemState;
16
+ getItemAtom: (path: string[]) => Atom.Atom<NavTreeItemState>;
17
+ setItem: (path: string[], key: 'open' | 'current', next: boolean) => void;
18
+ };
19
+
20
+ export const State = Capability.make<NavTreeStateStore>(`${meta.id}.capability.state`);
21
+ }
@@ -0,0 +1,12 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type ActivationEvent } from '@dxos/app-framework';
6
+ import { AppActivationEvents } from '@dxos/app-toolkit';
7
+
8
+ import { meta } from '#meta';
9
+
10
+ export namespace NavTreeEvents {
11
+ export const StateReady: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(meta.id);
12
+ }
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './capabilities';
6
+ export * from './events';
7
+ export * from './schema';
@@ -2,11 +2,11 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type Action, type ActionLike, type Node } from '@dxos/app-graph';
5
+ import { type Node } from '@dxos/app-graph';
6
6
  import { type Label } from '@dxos/react-ui';
7
7
  import { type MaybePromise, type Position } from '@dxos/util';
8
8
 
9
- export type NavTreeItemGraphNode = Node<
9
+ export type NavTreeItemGraphNode = Node.Node<
10
10
  any,
11
11
  Partial<
12
12
  NodeProperties & {
@@ -14,7 +14,7 @@ export type NavTreeItemGraphNode = Node<
14
14
  persistenceKey: string;
15
15
  acceptPersistenceClass: Set<string>;
16
16
  acceptPersistenceKey: Set<string>;
17
- onRearrangeChildren: (nextOrder: NavTreeItemGraphNode[]) => MaybePromise<void>;
17
+ onRearrange: (nextOrder: unknown[]) => MaybePromise<void>;
18
18
  onCopy: (activeNode: NavTreeItemGraphNode, index?: number) => MaybePromise<void>;
19
19
  onTransferStart: (activeNode: NavTreeItemGraphNode, index?: number) => MaybePromise<void>;
20
20
  onTransferEnd: (activeNode: NavTreeItemGraphNode, destinationParent: NavTreeItemGraphNode) => MaybePromise<void>;
@@ -23,18 +23,19 @@ export type NavTreeItemGraphNode = Node<
23
23
  >;
24
24
 
25
25
  export type FlattenedActions = {
26
- actions: ActionLike[];
27
- groupedActions: Record<string, Action[]>;
26
+ actions: Node.ActionLike[];
27
+ groupedActions: Record<string, Node.Action[]>;
28
28
  };
29
29
 
30
30
  type SharedProperties = {
31
- label: Label;
32
- icon?: string;
31
+ testId?: string;
33
32
  disabled?: boolean;
34
33
  position?: Position;
35
- testId?: string;
34
+ label: Label;
36
35
  className?: string;
37
36
  headingClassName?: string;
37
+ icon?: string;
38
+ iconHue?: string;
38
39
  };
39
40
 
40
41
  export type NodeProperties = SharedProperties & {
package/src/util.ts CHANGED
@@ -2,22 +2,24 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type Action, type Node, type ReadableGraph, isActionLike } from '@dxos/app-graph';
5
+ import { Graph, Node } from '@dxos/plugin-graph';
6
6
  import { isNonNullable } from '@dxos/util';
7
7
 
8
- import { type NavTreeItemGraphNode } from './types';
8
+ import { type NavTreeItemGraphNode } from '#types';
9
9
 
10
10
  export const getParent = (
11
- graph: ReadableGraph,
11
+ graph: Graph.ReadableGraph,
12
12
  node: NavTreeItemGraphNode,
13
13
  path: string[],
14
14
  ): NavTreeItemGraphNode | undefined => {
15
15
  const parentId = path[path.length - 2];
16
- return graph.getConnections(node.id, 'inbound').find((n) => n.id === parentId) as NavTreeItemGraphNode | undefined;
16
+ return Graph.getConnections(graph, node.id, Node.childRelation('inbound')).find(
17
+ (n: Node.Node) => n.id === parentId,
18
+ ) as NavTreeItemGraphNode | undefined;
17
19
  };
18
20
 
19
21
  export const getPersistenceParent = (
20
- graph: ReadableGraph,
22
+ graph: Graph.ReadableGraph,
21
23
  node: NavTreeItemGraphNode,
22
24
  path: string[],
23
25
  persistenceClass: string,
@@ -31,7 +33,7 @@ export const getPersistenceParent = (
31
33
  };
32
34
 
33
35
  export const resolveMigrationOperation = (
34
- graph: ReadableGraph,
36
+ graph: Graph.ReadableGraph,
35
37
  activeNode: NavTreeItemGraphNode,
36
38
  destinationPath: string[],
37
39
  destinationRelatedNode?: NavTreeItemGraphNode,
@@ -60,7 +62,7 @@ export const resolveMigrationOperation = (
60
62
  };
61
63
 
62
64
  // TODO(wittjosiah): Move into node implementation?
63
- export const sortActions = (actions: Action[]): Action[] =>
65
+ export const sortActions = (actions: Node.Action[]): Node.Action[] =>
64
66
  actions.sort((a, b) => {
65
67
  if (a.properties.disposition === b.properties.disposition) {
66
68
  return 0;
@@ -74,13 +76,12 @@ export const sortActions = (actions: Action[]): Action[] =>
74
76
  });
75
77
 
76
78
  export const getChildren = (
77
- graph: ReadableGraph,
79
+ graph: Graph.ReadableGraph,
78
80
  node: NavTreeItemGraphNode,
79
81
  path: readonly string[] = [],
80
82
  ): NavTreeItemGraphNode[] => {
81
- return graph
82
- .getConnections(node.id, 'outbound')
83
- .map((n) => {
83
+ return Graph.getConnections(graph, node.id, 'child')
84
+ .map((n: Node.Node) => {
84
85
  // Break cycles.
85
86
  const nextPath = [...path, node.id];
86
87
  return nextPath.includes(n.id) ? undefined : (n as NavTreeItemGraphNode);
@@ -88,13 +89,23 @@ export const getChildren = (
88
89
  .filter(isNonNullable) as NavTreeItemGraphNode[];
89
90
  };
90
91
 
91
- export const l0ItemType = (item: Node<any>) => {
92
- if (item.properties.disposition === 'collection') {
93
- return 'collection';
94
- } else if (isActionLike(item)) {
92
+ /**
93
+ * Determines whether a node should be visible based on its disposition.
94
+ */
95
+ export const filterItems = (node: Node.Node, disposition?: string) => {
96
+ if (!disposition && node.properties.disposition === 'hidden') {
97
+ return false;
98
+ } else if (!disposition) {
99
+ const action = Node.isAction(node);
100
+ return !action || node.properties.disposition === 'item';
101
+ } else {
102
+ return node.properties.disposition === disposition;
103
+ }
104
+ };
105
+
106
+ export const l0ItemType = (item: Node.Node) => {
107
+ if (Node.isActionLike(item)) {
95
108
  return 'action';
96
- } else if (item.properties.disposition === 'navigation') {
97
- return 'link';
98
109
  } else {
99
110
  return 'tab';
100
111
  }
@@ -1,45 +0,0 @@
1
- import {
2
- COMMANDS_DIALOG,
3
- meta
4
- } from "./chunk-ZENLR72O.mjs";
5
-
6
- // src/capabilities/app-graph-builder.ts
7
- import { Rx } from "@effect-rx/rx-react";
8
- import { Option, pipe } from "effect";
9
- import { Capabilities, LayoutAction, contributes, createIntent } from "@dxos/app-framework";
10
- import { ROOT_ID, createExtension } from "@dxos/plugin-graph";
11
- var app_graph_builder_default = ((context) => contributes(Capabilities.AppGraphBuilder, createExtension({
12
- id: meta.id,
13
- actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
14
- {
15
- id: COMMANDS_DIALOG,
16
- data: async () => {
17
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
18
- await dispatch(createIntent(LayoutAction.UpdateDialog, {
19
- part: "dialog",
20
- subject: COMMANDS_DIALOG,
21
- options: {
22
- blockAlign: "start"
23
- }
24
- }));
25
- },
26
- properties: {
27
- label: [
28
- "open commands label",
29
- {
30
- ns: meta.id
31
- }
32
- ],
33
- icon: "ph--magnifying-glass--regular",
34
- keyBinding: {
35
- macos: "meta+k",
36
- windows: "ctrl+k"
37
- }
38
- }
39
- }
40
- ]), Option.getOrElse(() => [])))
41
- })));
42
- export {
43
- app_graph_builder_default as default
44
- };
45
- //# sourceMappingURL=app-graph-builder-BCXDEDN7.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, LayoutAction, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { ROOT_ID, createExtension } from '@dxos/plugin-graph';\n\nimport { COMMANDS_DIALOG, meta } from '../meta';\n\nexport default (context: PluginContext) =>\n contributes(\n Capabilities.AppGraphBuilder,\n createExtension({\n id: meta.id,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: COMMANDS_DIALOG,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: COMMANDS_DIALOG,\n options: {\n blockAlign: 'start',\n },\n }),\n );\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 Option.getOrElse(() => []),\n ),\n ),\n }),\n );\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,UAAU;AACnB,SAASC,QAAQC,YAAY;AAE7B,SAASC,cAAcC,cAAkCC,aAAaC,oBAAoB;AAC1F,SAASC,SAASC,uBAAuB;AAIzC,IAAA,6BAAe,CAACC,YACdC,YACEC,aAAaC,iBACbC,gBAAgB;EACdC,IAAIC,KAAKD;EACTE,SAAS,CAACC,SACRC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,UAAUF,OAAOG,KAAKR,KAAAA,IAAQK,OAAOI,KAAI,CAAA,GAC/EJ,OAAOK,IAAI,MAAM;IACf;MACEb,IAAIc;MACJC,MAAM,YAAA;AACJ,cAAM,EAAEC,iBAAiBC,SAAQ,IAAKtB,QAAQuB,cAAcrB,aAAasB,gBAAgB;AACzF,cAAMF,SACJG,aAAaC,aAAaC,cAAc;UACtCC,MAAM;UACNC,SAASV;UACTW,SAAS;YACPC,YAAY;UACd;QACF,CAAA,CAAA;MAEJ;MACAC,YAAY;QACVC,OAAO;UAAC;UAAuB;YAAEC,IAAI5B,KAAKD;UAAG;;QAC7C8B,MAAM;QACNC,YAAY;UACVC,OAAO;UACPC,SAAS;QACX;MACF;IACF;GACD,GACDzB,OAAO0B,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;AAGjC,CAAA,CAAA;",
6
- "names": ["Rx", "Option", "pipe", "Capabilities", "LayoutAction", "contributes", "createIntent", "ROOT_ID", "createExtension", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "COMMANDS_DIALOG", "data", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "createIntent", "LayoutAction", "UpdateDialog", "part", "subject", "options", "blockAlign", "properties", "label", "ns", "icon", "keyBinding", "macos", "windows", "getOrElse"]
7
- }