@dxos/plugin-navtree 0.8.4-main.422d1c7879 → 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 (158) hide show
  1. package/dist/lib/neutral/CommandsDialogContent-UBGIQ5FI.mjs +112 -0
  2. package/dist/lib/neutral/CommandsDialogContent-UBGIQ5FI.mjs.map +7 -0
  3. package/dist/lib/neutral/CommandsTrigger-BH5WLMHK.mjs +27 -0
  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/neutral/NavTreeDocumentTitle-H3E6ZLYE.mjs +22 -0
  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/neutral/app-graph-builder-Z347LKSF.mjs +42 -0
  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/neutral/chunk-YDE5I3P5.mjs +22 -0
  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/neutral/keyboard-EJ65BVTC.mjs +56 -0
  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/neutral/react-surface-3AJ6BHL4.mjs +50 -0
  51. package/dist/lib/neutral/react-surface-3AJ6BHL4.mjs.map +7 -0
  52. package/dist/lib/neutral/state-VVITVXWM.mjs +127 -0
  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 -1
  67. package/dist/types/src/capabilities/index.d.ts +2 -2
  68. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/keyboard.d.ts.map +1 -1
  70. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  71. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/state.d.ts +2 -2
  74. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  75. package/dist/types/src/components/NavTree/NavTree.stories.d.ts +8 -9
  76. package/dist/types/src/components/NavTree/NavTree.stories.d.ts.map +1 -1
  77. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts +2 -2
  78. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts.map +1 -1
  79. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts +1 -1
  80. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts.map +1 -1
  81. package/dist/types/src/components/Sidebar/L0Menu.d.ts.map +1 -1
  82. package/dist/types/src/components/Sidebar/L1Panel.d.ts.map +1 -1
  83. package/dist/types/src/components/Sidebar/L1Tabs.d.ts.map +1 -1
  84. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.d.ts.map +1 -1
  85. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.stories.d.ts.map +1 -1
  86. package/dist/types/src/components/types.d.ts +0 -1
  87. package/dist/types/src/components/types.d.ts.map +1 -1
  88. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.stories.d.ts +8 -9
  89. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.stories.d.ts.map +1 -1
  90. package/dist/types/src/containers/NavTreeContainer/NavTreeContainer.d.ts.map +1 -1
  91. package/dist/types/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.d.ts.map +1 -1
  92. package/dist/types/src/experimental/Tree.d.ts +2 -2
  93. package/dist/types/src/experimental/Tree.d.ts.map +1 -1
  94. package/dist/types/src/experimental/Tree.stories.d.ts.map +1 -1
  95. package/dist/types/src/hooks/useActions.d.ts.map +1 -1
  96. package/dist/types/src/hooks/useLoadDescendents.d.ts.map +1 -1
  97. package/dist/types/src/hooks/useNavTreeModel.d.ts.map +1 -1
  98. package/dist/types/src/hooks/useNavTreeState.d.ts +1 -5
  99. package/dist/types/src/hooks/useNavTreeState.d.ts.map +1 -1
  100. package/dist/types/src/index.d.ts +1 -2
  101. package/dist/types/src/index.d.ts.map +1 -1
  102. package/dist/types/src/meta.d.ts.map +1 -1
  103. package/dist/types/src/operations/expose.d.ts +1 -1
  104. package/dist/types/src/operations/expose.d.ts.map +1 -1
  105. package/dist/types/src/operations/index.d.ts +1 -1
  106. package/dist/types/src/operations/index.d.ts.map +1 -1
  107. package/dist/types/src/plugin.d.ts +4 -0
  108. package/dist/types/src/plugin.d.ts.map +1 -0
  109. package/dist/types/src/testing/generator.d.ts.map +1 -1
  110. package/dist/types/src/testing/update-state.d.ts.map +1 -1
  111. package/dist/types/src/translations.d.ts +8 -10
  112. package/dist/types/src/translations.d.ts.map +1 -1
  113. package/dist/types/src/types/NavTreeCapabilities.d.ts +13 -0
  114. package/dist/types/src/types/NavTreeCapabilities.d.ts.map +1 -0
  115. package/dist/types/src/types/NavTreeEvents.d.ts +3 -0
  116. package/dist/types/src/types/NavTreeEvents.d.ts.map +1 -0
  117. package/dist/types/src/types/index.d.ts +2 -2
  118. package/dist/types/src/types/index.d.ts.map +1 -1
  119. package/dist/types/src/util.d.ts +1 -1
  120. package/dist/types/src/util.d.ts.map +1 -1
  121. package/dist/types/tsconfig.tsbuildinfo +1 -1
  122. package/package.json +102 -49
  123. package/src/NavTreePlugin.node.ts +17 -0
  124. package/src/NavTreePlugin.test.ts +27 -0
  125. package/src/NavTreePlugin.tsx +3 -21
  126. package/src/capabilities/app-graph-builder.ts +1 -1
  127. package/src/capabilities/index.ts +1 -1
  128. package/src/capabilities/operation-handler.ts +1 -1
  129. package/src/capabilities/state.ts +12 -8
  130. package/src/components/NavTree/NavTree.stories.tsx +3 -3
  131. package/src/components/NavTreeItem/NavTreeItemAction.tsx +3 -4
  132. package/src/components/NavTreeItem/NavTreeItemColumns.tsx +1 -1
  133. package/src/components/Sidebar/L0Menu.tsx +6 -8
  134. package/src/components/Sidebar/L1Panel.tsx +83 -142
  135. package/src/components/types.ts +0 -1
  136. package/src/containers/CommandsDialogContent/CommandsDialogContent.stories.tsx +2 -1
  137. package/src/containers/NavTreeContainer/NavTreeContainer.tsx +0 -9
  138. package/src/experimental/Tree.tsx +2 -2
  139. package/src/hooks/useNavTreeModel.ts +1 -1
  140. package/src/hooks/useNavTreeState.ts +1 -8
  141. package/src/index.ts +1 -2
  142. package/src/meta.ts +1 -0
  143. package/src/operations/expose.ts +1 -1
  144. package/src/operations/index.ts +1 -1
  145. package/src/plugin.ts +11 -0
  146. package/src/translations.ts +0 -1
  147. package/src/types/NavTreeCapabilities.ts +21 -0
  148. package/src/types/{events.ts → NavTreeEvents.ts} +3 -3
  149. package/src/types/index.ts +3 -2
  150. package/src/util.ts +1 -1
  151. package/dist/lib/browser/index.mjs +0 -202
  152. package/dist/lib/browser/index.mjs.map +0 -7
  153. package/dist/lib/browser/meta.json +0 -1
  154. package/dist/types/src/types/capabilities.d.ts +0 -16
  155. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  156. package/dist/types/src/types/events.d.ts +0 -5
  157. package/dist/types/src/types/events.d.ts.map +0 -1
  158. package/src/types/capabilities.ts +0 -21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-navtree",
3
- "version": "0.8.4-main.422d1c7879",
3
+ "version": "0.8.4-main.4f23b4e393",
4
4
  "description": "DXOS Surface plugin for a tree view visualization of the graph.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -13,20 +13,76 @@
13
13
  "sideEffects": true,
14
14
  "type": "module",
15
15
  "imports": {
16
- "#capabilities": "./src/capabilities/index.ts",
17
- "#components": "./src/components/index.ts",
18
- "#containers": "./src/containers/index.ts",
19
- "#hooks": "./src/hooks/index.ts",
20
- "#meta": "./src/meta.ts",
21
- "#operations": "./src/operations/index.ts",
22
- "#testing": "./src/testing/index.ts",
23
- "#types": "./src/types/index.ts"
16
+ "#capabilities": {
17
+ "source": "./src/capabilities/index.ts",
18
+ "types": "./dist/types/src/capabilities/index.d.ts",
19
+ "default": "./dist/lib/neutral/capabilities/index.mjs"
20
+ },
21
+ "#components": {
22
+ "source": "./src/components/index.ts",
23
+ "types": "./dist/types/src/components/index.d.ts",
24
+ "default": "./dist/lib/neutral/components/index.mjs"
25
+ },
26
+ "#containers": {
27
+ "source": "./src/containers/index.ts",
28
+ "types": "./dist/types/src/containers/index.d.ts",
29
+ "default": "./dist/lib/neutral/containers/index.mjs"
30
+ },
31
+ "#hooks": {
32
+ "source": "./src/hooks/index.ts",
33
+ "types": "./dist/types/src/hooks/index.d.ts",
34
+ "default": "./dist/lib/neutral/hooks/index.mjs"
35
+ },
36
+ "#meta": {
37
+ "source": "./src/meta.ts",
38
+ "types": "./dist/types/src/meta.d.ts",
39
+ "default": "./dist/lib/neutral/meta.mjs"
40
+ },
41
+ "#operations": {
42
+ "source": "./src/operations/index.ts",
43
+ "types": "./dist/types/src/operations/index.d.ts",
44
+ "default": "./dist/lib/neutral/operations/index.mjs"
45
+ },
46
+ "#plugin": {
47
+ "source": {
48
+ "node": "./src/NavTreePlugin.node.ts",
49
+ "default": "./src/NavTreePlugin.tsx"
50
+ },
51
+ "types": "./dist/types/src/NavTreePlugin.d.ts",
52
+ "node": "./dist/lib/neutral/NavTreePlugin.node.mjs",
53
+ "default": "./dist/lib/neutral/NavTreePlugin.mjs"
54
+ },
55
+ "#testing": {
56
+ "source": "./src/testing/index.ts",
57
+ "types": "./dist/types/src/testing/index.d.ts",
58
+ "default": "./dist/lib/neutral/testing/index.mjs"
59
+ },
60
+ "#translations": {
61
+ "source": "./src/translations.ts",
62
+ "types": "./dist/types/src/translations.d.ts",
63
+ "default": "./dist/lib/neutral/translations.mjs"
64
+ },
65
+ "#types": {
66
+ "source": "./src/types/index.ts",
67
+ "types": "./dist/types/src/types/index.d.ts",
68
+ "default": "./dist/lib/neutral/types/index.mjs"
69
+ }
24
70
  },
25
71
  "exports": {
26
72
  ".": {
27
73
  "source": "./src/index.ts",
28
74
  "types": "./dist/types/src/index.d.ts",
29
- "browser": "./dist/lib/browser/index.mjs"
75
+ "default": "./dist/lib/neutral/index.mjs"
76
+ },
77
+ "./plugin": {
78
+ "source": "./src/plugin.ts",
79
+ "types": "./dist/types/src/plugin.d.ts",
80
+ "default": "./dist/lib/neutral/plugin.mjs"
81
+ },
82
+ "./translations": {
83
+ "source": "./src/translations.ts",
84
+ "types": "./dist/types/src/translations.d.ts",
85
+ "default": "./dist/lib/neutral/translations.mjs"
30
86
  }
31
87
  },
32
88
  "types": "dist/types/src/index.d.ts",
@@ -40,30 +96,31 @@
40
96
  "@radix-ui/react-dismissable-layer": "1.1.5",
41
97
  "@radix-ui/react-use-controllable-state": "1.1.0",
42
98
  "date-fns": "^3.6.0",
43
- "@dxos/app-framework": "0.8.4-main.422d1c7879",
44
- "@dxos/app-graph": "0.8.4-main.422d1c7879",
45
- "@dxos/app-toolkit": "0.8.4-main.422d1c7879",
46
- "@dxos/async": "0.8.4-main.422d1c7879",
47
- "@dxos/echo": "0.8.4-main.422d1c7879",
48
- "@dxos/invariant": "0.8.4-main.422d1c7879",
49
- "@dxos/keyboard": "0.8.4-main.422d1c7879",
50
- "@dxos/debug": "0.8.4-main.422d1c7879",
51
- "@dxos/lit-ui": "0.8.4-main.422d1c7879",
52
- "@dxos/log": "0.8.4-main.422d1c7879",
53
- "@dxos/plugin-deck": "0.8.4-main.422d1c7879",
54
- "@dxos/operation": "0.8.4-main.422d1c7879",
55
- "@dxos/plugin-graph": "0.8.4-main.422d1c7879",
56
- "@dxos/plugin-observability": "0.8.4-main.422d1c7879",
57
- "@dxos/react-client": "0.8.4-main.422d1c7879",
58
- "@dxos/react-ui-attention": "0.8.4-main.422d1c7879",
59
- "@dxos/protocols": "0.8.4-main.422d1c7879",
60
- "@dxos/react-ui-menu": "0.8.4-main.422d1c7879",
61
- "@dxos/react-ui-list": "0.8.4-main.422d1c7879",
62
- "@dxos/react-ui-search": "0.8.4-main.422d1c7879",
63
- "@dxos/react-ui-tabs": "0.8.4-main.422d1c7879",
64
- "@dxos/react-ui-stack": "0.8.4-main.422d1c7879",
65
- "@dxos/util": "0.8.4-main.422d1c7879",
66
- "@dxos/react-ui-mosaic": "0.8.4-main.422d1c7879"
99
+ "@dxos/app-framework": "0.8.4-main.4f23b4e393",
100
+ "@dxos/app-toolkit": "0.8.4-main.4f23b4e393",
101
+ "@dxos/app-graph": "0.8.4-main.4f23b4e393",
102
+ "@dxos/async": "0.8.4-main.4f23b4e393",
103
+ "@dxos/compute": "0.8.4-main.4f23b4e393",
104
+ "@dxos/echo": "0.8.4-main.4f23b4e393",
105
+ "@dxos/debug": "0.8.4-main.4f23b4e393",
106
+ "@dxos/lit-ui": "0.8.4-main.4f23b4e393",
107
+ "@dxos/invariant": "0.8.4-main.4f23b4e393",
108
+ "@dxos/plugin-deck": "0.8.4-main.4f23b4e393",
109
+ "@dxos/plugin-observability": "0.8.4-main.4f23b4e393",
110
+ "@dxos/log": "0.8.4-main.4f23b4e393",
111
+ "@dxos/plugin-graph": "0.8.4-main.4f23b4e393",
112
+ "@dxos/protocols": "0.8.4-main.4f23b4e393",
113
+ "@dxos/random": "0.8.4-main.4f23b4e393",
114
+ "@dxos/react-client": "0.8.4-main.4f23b4e393",
115
+ "@dxos/react-ui-list": "0.8.4-main.4f23b4e393",
116
+ "@dxos/react-ui-attention": "0.8.4-main.4f23b4e393",
117
+ "@dxos/react-ui-menu": "0.8.4-main.4f23b4e393",
118
+ "@dxos/react-ui-search": "0.8.4-main.4f23b4e393",
119
+ "@dxos/react-ui-mosaic": "0.8.4-main.4f23b4e393",
120
+ "@dxos/react-ui-stack": "0.8.4-main.4f23b4e393",
121
+ "@dxos/react-ui-tabs": "0.8.4-main.4f23b4e393",
122
+ "@dxos/util": "0.8.4-main.4f23b4e393",
123
+ "@dxos/keyboard": "0.8.4-main.4f23b4e393"
67
124
  },
68
125
  "devDependencies": {
69
126
  "@effect-atom/atom-react": "^0.5.0",
@@ -73,16 +130,15 @@
73
130
  "effect": "3.20.0",
74
131
  "react": "~19.2.3",
75
132
  "react-dom": "~19.2.3",
76
- "vite": "^7.1.11",
77
- "@dxos/plugin-attention": "0.8.4-main.422d1c7879",
78
- "@dxos/plugin-client": "0.8.4-main.422d1c7879",
79
- "@dxos/plugin-space": "0.8.4-main.422d1c7879",
80
- "@dxos/random": "0.8.4-main.422d1c7879",
81
- "@dxos/plugin-testing": "0.8.4-main.422d1c7879",
82
- "@dxos/react-ui": "0.8.4-main.422d1c7879",
83
- "@dxos/plugin-theme": "0.8.4-main.422d1c7879",
84
- "@dxos/storybook-utils": "0.8.4-main.422d1c7879",
85
- "@dxos/ui-theme": "0.8.4-main.422d1c7879"
133
+ "vite": "^8.0.10",
134
+ "@dxos/plugin-attention": "0.8.4-main.4f23b4e393",
135
+ "@dxos/plugin-testing": "0.8.4-main.4f23b4e393",
136
+ "@dxos/plugin-space": "0.8.4-main.4f23b4e393",
137
+ "@dxos/react-ui": "0.8.4-main.4f23b4e393",
138
+ "@dxos/plugin-theme": "0.8.4-main.4f23b4e393",
139
+ "@dxos/storybook-utils": "0.8.4-main.4f23b4e393",
140
+ "@dxos/plugin-client": "0.8.4-main.4f23b4e393",
141
+ "@dxos/ui-theme": "0.8.4-main.4f23b4e393"
86
142
  },
87
143
  "peerDependencies": {
88
144
  "@effect-atom/atom-react": "^0.5.0",
@@ -90,10 +146,7 @@
90
146
  "effect": "3.20.0",
91
147
  "react": "~19.2.3",
92
148
  "react-dom": "~19.2.3",
93
- "@dxos/react-ui": "0.8.4-main.422d1c7879",
94
- "@dxos/ui-theme": "0.8.4-main.422d1c7879"
95
- },
96
- "publishConfig": {
97
- "access": "public"
149
+ "@dxos/ui-theme": "0.8.4-main.4f23b4e393",
150
+ "@dxos/react-ui": "0.8.4-main.4f23b4e393"
98
151
  }
99
152
  }
@@ -0,0 +1,17 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Plugin } from '@dxos/app-framework';
6
+ import { AppPlugin } from '@dxos/app-toolkit';
7
+
8
+ import { AppGraphBuilder, OperationHandler } from '#capabilities';
9
+ import { meta } from '#meta';
10
+
11
+ export const NavTreePlugin = Plugin.define(meta).pipe(
12
+ AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),
13
+ AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),
14
+ Plugin.make,
15
+ );
16
+
17
+ export default NavTreePlugin;
@@ -0,0 +1,27 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { describe, test } from 'vitest';
6
+
7
+ import { ActivationEvents } from '@dxos/app-framework';
8
+ import { createComposerTestApp } from '@dxos/plugin-testing/harness';
9
+
10
+ import { NavTreePlugin } from '#plugin';
11
+
12
+ import { meta } from './meta';
13
+
14
+ const moduleId = (name: string) => `${meta.id}.module.${name}`;
15
+
16
+ describe('NavTreePlugin', () => {
17
+ test('modules activate on the expected events', async ({ expect }) => {
18
+ await using harness = await createComposerTestApp({
19
+ plugins: [NavTreePlugin()],
20
+ });
21
+
22
+ expect(harness.manager.getActive()).toEqual(expect.arrayContaining([moduleId('AppGraphBuilder')]));
23
+
24
+ await harness.fire(ActivationEvents.SetupOperationHandler);
25
+ expect(harness.manager.getActive()).toContain(moduleId('OperationHandler'));
26
+ });
27
+ });
@@ -7,34 +7,14 @@ import * as Effect from 'effect/Effect';
7
7
  import { ActivationEvent, ActivationEvents, Capabilities, Capability, Plugin } from '@dxos/app-framework';
8
8
  import { AppActivationEvents, AppCapabilities, AppPlugin, LayoutOperation } from '@dxos/app-toolkit';
9
9
  import { Graph } from '@dxos/plugin-graph';
10
- import { type TreeData } from '@dxos/react-ui-list';
11
10
 
12
11
  import { AppGraphBuilder, Keyboard, OperationHandler, ReactSurface, State } from '#capabilities';
13
- import { NODE_TYPE } from '#containers';
14
12
  import { meta } from '#meta';
13
+ import { translations } from '#translations';
15
14
  import { NavTreeEvents } from '#types';
16
15
 
17
- import { translations } from './translations';
18
-
19
16
  export const NavTreePlugin = Plugin.define(meta).pipe(
20
17
  AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),
21
- AppPlugin.addMetadataModule({
22
- metadata: {
23
- id: NODE_TYPE,
24
- metadata: {
25
- parse: ({ item }: TreeData, type: string) => {
26
- switch (type) {
27
- case 'node':
28
- return item;
29
- case 'object':
30
- return item.data;
31
- case 'view-object':
32
- return { id: `${item.id}-view`, object: item.data };
33
- }
34
- },
35
- },
36
- },
37
- }),
38
18
  AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),
39
19
  AppPlugin.addSurfaceModule({ activate: ReactSurface }),
40
20
  AppPlugin.addTranslationsModule({ translations }),
@@ -74,3 +54,5 @@ export const NavTreePlugin = Plugin.define(meta).pipe(
74
54
  }),
75
55
  Plugin.make,
76
56
  );
57
+
58
+ export default NavTreePlugin;
@@ -6,7 +6,7 @@ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capability } from '@dxos/app-framework';
8
8
  import { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';
9
- import { Operation } from '@dxos/operation';
9
+ import { Operation } from '@dxos/compute';
10
10
  import { GraphBuilder, Node, NodeMatcher } from '@dxos/plugin-graph';
11
11
 
12
12
  import { COMMANDS_DIALOG, meta } from '#meta';
@@ -3,7 +3,7 @@
3
3
  //
4
4
 
5
5
  import { Capability } from '@dxos/app-framework';
6
- import { OperationHandlerSet } from '@dxos/operation';
6
+ import { OperationHandlerSet } from '@dxos/compute';
7
7
 
8
8
  export const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));
9
9
  export const Keyboard = Capability.lazy('Keyboard', () => import('./keyboard'));
@@ -5,7 +5,7 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capabilities, Capability } from '@dxos/app-framework';
8
- import type { OperationHandlerSet } from '@dxos/operation';
8
+ import type { OperationHandlerSet } from '@dxos/compute';
9
9
 
10
10
  import { NavTreeOperationHandlerSet } from '#operations';
11
11
 
@@ -11,21 +11,23 @@ import { Graph, Node } from '@dxos/plugin-graph';
11
11
  import { Path } from '@dxos/react-ui-list';
12
12
 
13
13
  import { meta } from '#meta';
14
- import { type NavTreeCapabilities as NC, NavTreeCapabilities } from '#types';
14
+ import { NavTreeCapabilities } from '#types';
15
15
 
16
16
  const KEY = `${meta.id}.state.v1`;
17
17
 
18
18
  /** Default item state for new entries. */
19
- const defaultItemState: NC.NavTreeItemState = { open: false, current: false, alternateTree: false };
19
+ const defaultItemState: NavTreeCapabilities.NavTreeItemState = { open: false, current: false };
20
20
 
21
21
  /** L0 (top-level workspace) paths are direct children of root — not part of the expandable tree model. */
22
22
  const isTopLevelPath = (path: string[]): boolean => path.length === 2 && path[0] === Node.RootId;
23
23
 
24
24
  /** Default state entries for initial tree structure. */
25
25
  // TODO(thure): Initialize these dynamically.
26
- const defaultStateEntries: [string, NC.NavTreeItemState][] = [['root', { open: true, current: false }]];
26
+ const defaultStateEntries: [string, NavTreeCapabilities.NavTreeItemState][] = [
27
+ ['root', { open: true, current: false }],
28
+ ];
27
29
 
28
- const getInitialState = (): Map<string, NC.NavTreeItemState> => {
30
+ const getInitialState = (): Map<string, NavTreeCapabilities.NavTreeItemState> => {
29
31
  const stringified = localStorage.getItem(KEY);
30
32
  if (!stringified) {
31
33
  return new Map(defaultStateEntries);
@@ -51,10 +53,12 @@ export default Capability.makeModule(
51
53
  // keepAlive prevents atoms from being garbage collected when components unmount,
52
54
  // ensuring state is preserved across deletion/restoration cycles.
53
55
  const itemAtomFamily = Atom.family((pathString: string) =>
54
- Atom.make<NC.NavTreeItemState>(backingState.get(pathString) ?? { ...defaultItemState }).pipe(Atom.keepAlive),
56
+ Atom.make<NavTreeCapabilities.NavTreeItemState>(backingState.get(pathString) ?? { ...defaultItemState }).pipe(
57
+ Atom.keepAlive,
58
+ ),
55
59
  );
56
60
 
57
- const getItemAtom = (path: string[]): Atom.Atom<NC.NavTreeItemState> => {
61
+ const getItemAtom = (path: string[]): Atom.Atom<NavTreeCapabilities.NavTreeItemState> => {
58
62
  const pathString = Path.create(...path);
59
63
  if (!backingState.has(pathString)) {
60
64
  backingState.set(pathString, { ...defaultItemState });
@@ -62,11 +66,11 @@ export default Capability.makeModule(
62
66
  return itemAtomFamily(pathString);
63
67
  };
64
68
 
65
- const getItem = (path: string[]): NC.NavTreeItemState => {
69
+ const getItem = (path: string[]): NavTreeCapabilities.NavTreeItemState => {
66
70
  return registry.get(getItemAtom(path));
67
71
  };
68
72
 
69
- const setItem = (path: string[], key: 'open' | 'current' | 'alternateTree', next: boolean) => {
73
+ const setItem = (path: string[], key: 'open' | 'current', next: boolean) => {
70
74
  const pathString = Path.create(...path);
71
75
  const atom = itemAtomFamily(pathString);
72
76
  const currentValue = registry.get(atom);
@@ -12,7 +12,7 @@ import { Capabilities, Capability } from '@dxos/app-framework';
12
12
  import { withPluginManager } from '@dxos/app-framework/testing';
13
13
  import { useAtomCapability } from '@dxos/app-framework/ui';
14
14
  import { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';
15
- import { Operation, OperationHandlerSet } from '@dxos/operation';
15
+ import { Operation, OperationHandlerSet } from '@dxos/compute';
16
16
  import { StorybookPlugin, corePlugins } from '@dxos/plugin-testing';
17
17
  import { random } from '@dxos/random';
18
18
  import { IconButton, Input, Main, Toolbar } from '@dxos/react-ui';
@@ -23,9 +23,9 @@ import { mx } from '@dxos/ui-theme';
23
23
 
24
24
  import { NavTreeContainer } from '#containers';
25
25
  import { storybookGraphBuilders } from '#testing';
26
+ import { translations } from '#translations';
26
27
 
27
28
  import { NavTreePlugin } from '../../NavTreePlugin';
28
- import { translations } from '../../translations';
29
29
 
30
30
  random.seed(1234);
31
31
 
@@ -82,7 +82,7 @@ const StoryPlank = ({ attendableId }: { attendableId: string }) => {
82
82
  <Toolbar.Button>Test</Toolbar.Button>
83
83
  </Toolbar.Root>
84
84
 
85
- <div className={mx(container, 'm-2 bg-active-surface')}>
85
+ <div className={mx(container, 'm-2 bg-current-surface')}>
86
86
  <Input.Root>
87
87
  <Input.Label>Level 1 (group)</Input.Label>
88
88
  </Input.Root>
@@ -113,7 +113,7 @@ export const NavTreeItemAction = ({
113
113
  monolithic,
114
114
  menuActions,
115
115
  menuType,
116
- parent: node,
116
+ parent,
117
117
  path,
118
118
  ...props
119
119
  }: NavTreeItemActionMenuProps) => {
@@ -121,10 +121,9 @@ export const NavTreeItemAction = ({
121
121
 
122
122
  const monolithicAction = menuActions?.length === 1 && menuActions[0];
123
123
  const baseLabel = toLocalizedString(monolithicAction ? monolithicAction.properties!.label : props.label, t);
124
-
125
124
  return monolithic && menuActions?.length === 1 ? (
126
- <NavTreeItemMonolithicAction baseLabel={baseLabel} parent={node} path={path} {...menuActions[0]} />
125
+ <NavTreeItemMonolithicAction baseLabel={baseLabel} parent={parent} path={path} {...menuActions[0]} />
127
126
  ) : (
128
- <NavTreeItemActionDropdownMenu {...props} label={baseLabel} parent={node} path={path} menuActions={menuActions} />
127
+ <NavTreeItemActionDropdownMenu {...props} label={baseLabel} parent={parent} path={path} menuActions={menuActions} />
129
128
  );
130
129
  };
@@ -59,7 +59,7 @@ export const NavTreeItemColumns = memo(({ path, item, open }: NavTreeItemColumns
59
59
  const ActionRoot = popoverAnchorId === `${NAV_TREE_ITEM}:${item.id}` ? Popover.Anchor : Fragment;
60
60
 
61
61
  return (
62
- <div role='none' className='contents dx-app-no-drag'>
62
+ <div className='contents dx-app-no-drag'>
63
63
  {primaryAction?.properties?.disposition === 'list-item-primary' && !primaryAction?.properties?.disabled ? (
64
64
  <Treegrid.Cell classNames='contents'>
65
65
  <NavTreeItemAction
@@ -142,7 +142,6 @@ const L0ItemRoot = memo(
142
142
 
143
143
  export const L0ItemActiveTabIndicator = ({ classNames }: ThemedClassName<{}>) => (
144
144
  <div
145
- role='none'
146
145
  className={mx(
147
146
  'hidden group-aria-selected/l0item:block absolute start-0 h-6 w-1.5 bg-accent-surface rounded-sm',
148
147
  classNames,
@@ -218,14 +217,13 @@ const L0Item = memo(({ item, parent, path, pinned, onRearrange, onItemHover }: L
218
217
  return (
219
218
  <L0ItemRoot ref={itemElement} item={item} parent={parent} path={path} onMouseEnter={handleMouseEnter}>
220
219
  <div
221
- role='none'
222
220
  data-frame={true}
223
221
  {...(hue && { style: { background: `var(--color-${hue}-surface)` } })}
224
222
  className={mx(
225
223
  'flex justify-center items-center dx-focus-ring-group-indicator transition-colors rounded-sm',
226
224
  pinned
227
- ? 'p-2 group-hover/l0item:bg-active-surface'
228
- : 'w-(--dx-l0-avatar-size) h-(--dx-l0-avatar-size) bg-active-surface',
225
+ ? 'p-2 group-hover/l0item:bg-current-surface'
226
+ : 'w-(--dx-l0-avatar-size) h-(--dx-l0-avatar-size) bg-current-surface',
229
227
  )}
230
228
  >
231
229
  <ItemAvatar item={item} />
@@ -245,7 +243,7 @@ const ItemAvatar = ({ item }: Pick<L0ItemProps, 'item'>) => {
245
243
  // Actions.
246
244
  if (item.properties.icon) {
247
245
  const hue = item.properties.hue ?? null;
248
- const hueFgStyle = hue && { style: { color: `var(--color-${hue}-surface-text)` } };
246
+ const hueFgStyle = hue && { style: { color: `var(--color-${hue}-foreground)` } };
249
247
  return <Icon icon={item.properties.icon} size={6} {...hueFgStyle} />;
250
248
  }
251
249
 
@@ -328,7 +326,7 @@ export const L0Menu = ({
328
326
  {/* TODO(wittjosiah): Use L0Item trigger. */}
329
327
  <Menu.Root onAction={handleAction}>
330
328
  <Menu.Trigger asChild data-testid='spacePlugin.addSpace'>
331
- <div role='none' className='grid place-items-center'>
329
+ <div className='grid place-items-center'>
332
330
  <IconButton variant='ghost' icon='ph--list--regular' iconOnly label={t('app-menu.label')} />
333
331
  </div>
334
332
  </Menu.Trigger>
@@ -352,14 +350,14 @@ export const L0Menu = ({
352
350
  </ScrollArea.Root>
353
351
 
354
352
  {/* Actions. */}
355
- <div role='none' className='grid grid-cols-1 auto-rows-(--dx-rail-action) pt-2'>
353
+ <div className='grid grid-cols-1 auto-rows-(--dx-rail-action) pt-2'>
356
354
  {pinnedItems.map((item) => (
357
355
  <L0Item key={item.id} item={item} parent={parent} path={path} pinned />
358
356
  ))}
359
357
  </div>
360
358
 
361
359
  {userAccountItem && (
362
- <div role='none' className='grid dx-app-no-drag'>
360
+ <div className='grid dx-app-no-drag'>
363
361
  <L0ItemRoot key={userAccountItem.id} item={userAccountItem} parent={parent} path={path}>
364
362
  <UserAccountAvatar
365
363
  userId={userAccountItem.properties.userId}