@dxos/plugin-navtree 0.8.4-main.84f28bd → 0.8.4-main.9735255

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 (204) hide show
  1. package/dist/lib/browser/app-graph-builder-RSMA6I22.mjs +43 -0
  2. package/dist/lib/browser/app-graph-builder-RSMA6I22.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-6YPQ625I.mjs +1293 -0
  4. package/dist/lib/browser/chunk-6YPQ625I.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-AGQDZBPL.mjs +23 -0
  6. package/dist/lib/browser/chunk-AGQDZBPL.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-YKTYPINZ.mjs +19 -0
  8. package/dist/lib/browser/chunk-YKTYPINZ.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +84 -96
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/{node-esm/keyboard-MOZWHFUM.mjs → browser/keyboard-32EH3N4K.mjs} +20 -20
  12. package/dist/lib/browser/keyboard-32EH3N4K.mjs.map +7 -0
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/operation-resolver-IB75DC5O.mjs +52 -0
  15. package/dist/lib/browser/operation-resolver-IB75DC5O.mjs.map +7 -0
  16. package/dist/lib/browser/react-surface-F6CVMS3Y.mjs +58 -0
  17. package/dist/lib/browser/react-surface-F6CVMS3Y.mjs.map +7 -0
  18. package/dist/lib/browser/state-EVYQOUI3.mjs +120 -0
  19. package/dist/lib/browser/state-EVYQOUI3.mjs.map +7 -0
  20. package/dist/types/src/NavTreePlugin.d.ts +2 -1
  21. package/dist/types/src/NavTreePlugin.d.ts.map +1 -1
  22. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  23. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  24. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  25. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  26. package/dist/types/src/capabilities/index.d.ts +5 -105
  27. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  28. package/dist/types/src/capabilities/keyboard/index.d.ts +3 -0
  29. package/dist/types/src/capabilities/keyboard/index.d.ts.map +1 -0
  30. package/dist/types/src/capabilities/keyboard/keyboard.d.ts +5 -0
  31. package/dist/types/src/capabilities/keyboard/keyboard.d.ts.map +1 -0
  32. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  33. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  34. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  35. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  36. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  37. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  38. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  39. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  40. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  41. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  42. package/dist/types/src/capabilities/state/state.d.ts +6 -0
  43. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  44. package/dist/types/src/components/CommandsDialog/CommandsDialog.d.ts +3 -2
  45. package/dist/types/src/components/CommandsDialog/CommandsDialog.d.ts.map +1 -1
  46. package/dist/types/src/components/CommandsDialog/CommandsTrigger.d.ts.map +1 -1
  47. package/dist/types/src/components/NavTree/NavTree.d.ts +32 -3
  48. package/dist/types/src/components/NavTree/NavTree.d.ts.map +1 -1
  49. package/dist/types/src/components/NavTree/NavTree.stories.d.ts +29 -4
  50. package/dist/types/src/components/NavTree/NavTree.stories.d.ts.map +1 -1
  51. package/dist/types/src/components/NavTreeContainer.d.ts +8 -1
  52. package/dist/types/src/components/NavTreeContainer.d.ts.map +1 -1
  53. package/dist/types/src/components/NavTreeDocumentTitle.d.ts +1 -1
  54. package/dist/types/src/components/NavTreeDocumentTitle.d.ts.map +1 -1
  55. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts +6 -6
  56. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts.map +1 -1
  57. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts +33 -4
  58. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts.map +1 -1
  59. package/dist/types/src/components/NavTreeItem/NavTreeItemColumns.d.ts +2 -2
  60. package/dist/types/src/components/NavTreeItem/NavTreeItemColumns.d.ts.map +1 -1
  61. package/dist/types/src/components/Sidebar/L0Menu.d.ts +6 -4
  62. package/dist/types/src/components/Sidebar/L0Menu.d.ts.map +1 -1
  63. package/dist/types/src/components/Sidebar/L1Panel.d.ts +5 -6
  64. package/dist/types/src/components/Sidebar/L1Panel.d.ts.map +1 -1
  65. package/dist/types/src/components/Sidebar/L1Tabs.d.ts +12 -0
  66. package/dist/types/src/components/Sidebar/L1Tabs.d.ts.map +1 -0
  67. package/dist/types/src/components/Sidebar/index.d.ts +1 -0
  68. package/dist/types/src/components/Sidebar/index.d.ts.map +1 -1
  69. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.d.ts.map +1 -1
  70. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.stories.d.ts +8 -5
  71. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/index.d.ts +1 -1
  73. package/dist/types/src/components/index.d.ts.map +1 -1
  74. package/dist/types/src/components/types.d.ts +8 -8
  75. package/dist/types/src/components/types.d.ts.map +1 -1
  76. package/dist/types/src/experimental/Tree.d.ts +4 -5
  77. package/dist/types/src/experimental/Tree.d.ts.map +1 -1
  78. package/dist/types/src/experimental/Tree.stories.d.ts +7 -4
  79. package/dist/types/src/experimental/Tree.stories.d.ts.map +1 -1
  80. package/dist/types/src/hooks.d.ts +32 -1
  81. package/dist/types/src/hooks.d.ts.map +1 -1
  82. package/dist/types/src/index.d.ts +1 -2
  83. package/dist/types/src/index.d.ts.map +1 -1
  84. package/dist/types/src/meta.d.ts +3 -4
  85. package/dist/types/src/meta.d.ts.map +1 -1
  86. package/dist/types/src/testing/app-graph-builder.d.ts +2 -3
  87. package/dist/types/src/testing/app-graph-builder.d.ts.map +1 -1
  88. package/dist/types/src/testing/generator.d.ts +5 -6
  89. package/dist/types/src/testing/generator.d.ts.map +1 -1
  90. package/dist/types/src/testing/update-state.d.ts +2 -2
  91. package/dist/types/src/testing/update-state.d.ts.map +1 -1
  92. package/dist/types/src/translations.d.ts +1 -0
  93. package/dist/types/src/translations.d.ts.map +1 -1
  94. package/dist/types/src/types/capabilities.d.ts +16 -0
  95. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  96. package/dist/types/src/types/events.d.ts +5 -0
  97. package/dist/types/src/types/events.d.ts.map +1 -0
  98. package/dist/types/src/types/index.d.ts +4 -0
  99. package/dist/types/src/types/index.d.ts.map +1 -0
  100. package/dist/types/src/{types.d.ts → types/schema.d.ts} +10 -9
  101. package/dist/types/src/types/schema.d.ts.map +1 -0
  102. package/dist/types/src/util.d.ts +8 -9
  103. package/dist/types/src/util.d.ts.map +1 -1
  104. package/dist/types/tsconfig.tsbuildinfo +1 -1
  105. package/package.json +55 -55
  106. package/src/NavTreePlugin.tsx +65 -83
  107. package/src/capabilities/app-graph-builder/app-graph-builder.ts +41 -0
  108. package/src/capabilities/app-graph-builder/index.ts +7 -0
  109. package/src/capabilities/index.ts +5 -9
  110. package/src/capabilities/keyboard/index.ts +7 -0
  111. package/src/capabilities/keyboard/keyboard.ts +65 -0
  112. package/src/capabilities/operation-resolver/index.ts +7 -0
  113. package/src/capabilities/operation-resolver/operation-resolver.ts +41 -0
  114. package/src/capabilities/react-surface/index.ts +7 -0
  115. package/src/capabilities/react-surface/react-surface.tsx +54 -0
  116. package/src/capabilities/state/index.ts +7 -0
  117. package/src/capabilities/state/state.ts +121 -0
  118. package/src/components/CommandsDialog/CommandsDialog.tsx +109 -98
  119. package/src/components/CommandsDialog/CommandsTrigger.tsx +8 -19
  120. package/src/components/NavTree/NavTree.stories.tsx +98 -93
  121. package/src/components/NavTree/NavTree.tsx +12 -18
  122. package/src/components/NavTreeContainer.tsx +281 -258
  123. package/src/components/NavTreeDocumentTitle.tsx +5 -4
  124. package/src/components/NavTreeItem/NavTreeItemAction.stories.tsx +20 -12
  125. package/src/components/NavTreeItem/NavTreeItemAction.tsx +28 -21
  126. package/src/components/NavTreeItem/NavTreeItemColumns.tsx +38 -32
  127. package/src/components/Sidebar/L0Menu.tsx +114 -139
  128. package/src/components/Sidebar/L1Panel.tsx +76 -99
  129. package/src/components/Sidebar/L1Tabs.tsx +33 -0
  130. package/src/components/Sidebar/index.ts +1 -0
  131. package/src/components/UserAccountAvatar/UserAccountAvatar.stories.tsx +9 -8
  132. package/src/components/UserAccountAvatar/UserAccountAvatar.tsx +20 -12
  133. package/src/components/index.ts +2 -1
  134. package/src/components/types.ts +9 -8
  135. package/src/experimental/Tree.stories.tsx +36 -38
  136. package/src/experimental/Tree.tsx +17 -35
  137. package/src/hooks.ts +54 -2
  138. package/src/index.ts +1 -2
  139. package/src/meta.ts +11 -8
  140. package/src/testing/app-graph-builder.ts +159 -234
  141. package/src/testing/generator.ts +20 -18
  142. package/src/testing/update-state.ts +6 -6
  143. package/src/translations.ts +1 -0
  144. package/src/types/capabilities.ts +21 -0
  145. package/src/types/events.ts +11 -0
  146. package/src/types/index.ts +7 -0
  147. package/src/{types.ts → types/schema.ts} +9 -8
  148. package/src/util.ts +14 -35
  149. package/dist/lib/browser/app-graph-builder-5J4LRWDX.mjs +0 -45
  150. package/dist/lib/browser/app-graph-builder-5J4LRWDX.mjs.map +0 -7
  151. package/dist/lib/browser/chunk-ERDGQTH5.mjs +0 -16
  152. package/dist/lib/browser/chunk-ERDGQTH5.mjs.map +0 -7
  153. package/dist/lib/browser/chunk-TZA65AKW.mjs +0 -1428
  154. package/dist/lib/browser/chunk-TZA65AKW.mjs.map +0 -7
  155. package/dist/lib/browser/chunk-WCARAZ7J.mjs +0 -15
  156. package/dist/lib/browser/chunk-WCARAZ7J.mjs.map +0 -7
  157. package/dist/lib/browser/intent-resolver-3XYN2CBU.mjs +0 -47
  158. package/dist/lib/browser/intent-resolver-3XYN2CBU.mjs.map +0 -7
  159. package/dist/lib/browser/keyboard-QRS6WOQH.mjs +0 -51
  160. package/dist/lib/browser/keyboard-QRS6WOQH.mjs.map +0 -7
  161. package/dist/lib/browser/react-surface-N2HPMYCU.mjs +0 -51
  162. package/dist/lib/browser/react-surface-N2HPMYCU.mjs.map +0 -7
  163. package/dist/lib/browser/state-54DY3DOY.mjs +0 -117
  164. package/dist/lib/browser/state-54DY3DOY.mjs.map +0 -7
  165. package/dist/lib/node-esm/app-graph-builder-GY7GCTGU.mjs +0 -46
  166. package/dist/lib/node-esm/app-graph-builder-GY7GCTGU.mjs.map +0 -7
  167. package/dist/lib/node-esm/chunk-CY7QWR4R.mjs +0 -1429
  168. package/dist/lib/node-esm/chunk-CY7QWR4R.mjs.map +0 -7
  169. package/dist/lib/node-esm/chunk-P2JGW3WR.mjs +0 -18
  170. package/dist/lib/node-esm/chunk-P2JGW3WR.mjs.map +0 -7
  171. package/dist/lib/node-esm/chunk-V3QXFDDP.mjs +0 -16
  172. package/dist/lib/node-esm/chunk-V3QXFDDP.mjs.map +0 -7
  173. package/dist/lib/node-esm/index.mjs +0 -150
  174. package/dist/lib/node-esm/index.mjs.map +0 -7
  175. package/dist/lib/node-esm/intent-resolver-R7UNPSZY.mjs +0 -48
  176. package/dist/lib/node-esm/intent-resolver-R7UNPSZY.mjs.map +0 -7
  177. package/dist/lib/node-esm/keyboard-MOZWHFUM.mjs.map +0 -7
  178. package/dist/lib/node-esm/meta.json +0 -1
  179. package/dist/lib/node-esm/react-surface-EW5FDMW4.mjs +0 -52
  180. package/dist/lib/node-esm/react-surface-EW5FDMW4.mjs.map +0 -7
  181. package/dist/lib/node-esm/state-Z3OTRC2I.mjs +0 -118
  182. package/dist/lib/node-esm/state-Z3OTRC2I.mjs.map +0 -7
  183. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  184. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  185. package/dist/types/src/capabilities/capabilities.d.ts +0 -21
  186. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  187. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  188. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  189. package/dist/types/src/capabilities/keyboard.d.ts +0 -4
  190. package/dist/types/src/capabilities/keyboard.d.ts.map +0 -1
  191. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  192. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  193. package/dist/types/src/capabilities/state.d.ts +0 -20
  194. package/dist/types/src/capabilities/state.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/types.d.ts.map +0 -1
  198. package/src/capabilities/app-graph-builder.ts +0 -52
  199. package/src/capabilities/capabilities.ts +0 -20
  200. package/src/capabilities/intent-resolver.ts +0 -37
  201. package/src/capabilities/keyboard.ts +0 -59
  202. package/src/capabilities/react-surface.tsx +0 -45
  203. package/src/capabilities/state.ts +0 -104
  204. package/src/events.ts +0 -11
@@ -1,45 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { Capabilities, contributes, createSurface } from '@dxos/app-framework';
8
- import { isGraphNode } from '@dxos/plugin-graph';
9
-
10
- import { CommandsDialogContent, CommandsTrigger, NavTreeDocumentTitle, NavTreeContainer } from '../components';
11
- import { COMMANDS_DIALOG, NAVTREE_PLUGIN } from '../meta';
12
-
13
- export default () =>
14
- contributes(Capabilities.ReactSurface, [
15
- createSurface({
16
- id: COMMANDS_DIALOG,
17
- role: 'dialog',
18
- filter: (data): data is { props: { selected?: string } } => data.component === COMMANDS_DIALOG,
19
- component: ({ data }) => <CommandsDialogContent {...data.props} />,
20
- }),
21
- createSurface({
22
- id: `${NAVTREE_PLUGIN}/navigation`,
23
- role: 'navigation',
24
- filter: (data): data is { popoverAnchorId?: string; topbar: boolean; current: string } =>
25
- typeof data.current === 'string',
26
- component: ({ data }) => (
27
- <NavTreeContainer
28
- tab={data.current}
29
- popoverAnchorId={data.popoverAnchorId as string | undefined}
30
- topbar={data.topbar as boolean}
31
- />
32
- ),
33
- }),
34
- createSurface({
35
- id: `${NAVTREE_PLUGIN}/document-title`,
36
- role: 'document-title',
37
- component: ({ data }) => <NavTreeDocumentTitle node={isGraphNode(data.subject) ? data.subject : undefined} />,
38
- }),
39
- createSurface({
40
- id: `${NAVTREE_PLUGIN}/search-input`,
41
- role: 'search-input',
42
- position: 'fallback',
43
- component: () => <CommandsTrigger />,
44
- }),
45
- ]);
@@ -1,104 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { effect, untracked } from '@preact/signals-core';
6
-
7
- import { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';
8
- import { type Live } from '@dxos/echo';
9
- import { live } from '@dxos/live-object';
10
- import { Path } from '@dxos/react-ui-list';
11
-
12
- import { NavTreeCapabilities } from './capabilities';
13
- import { NAVTREE_PLUGIN } from '../meta';
14
-
15
- const KEY = `${NAVTREE_PLUGIN}/state/v1`;
16
-
17
- const getInitialState = () => {
18
- const stringified = localStorage.getItem(KEY);
19
- if (!stringified) {
20
- return;
21
- }
22
-
23
- try {
24
- const cached: [string, { open: boolean; current: boolean }][] = JSON.parse(stringified);
25
- return cached.map(([key, value]): [string, Live<{ open: boolean; current: boolean }>] => [
26
- key,
27
- live({ open: value.open, current: false }),
28
- ]);
29
- } catch {}
30
- };
31
-
32
- export default (context: PluginContext) => {
33
- const layout = context.getCapability(Capabilities.Layout);
34
-
35
- // TODO(wittjosiah): This currently needs to be not a Live at the root.
36
- // If it is a Live then React errors when initializing new paths because of state change during render.
37
- // Ideally this could be a Live but be able to access and update the root level without breaking render.
38
- // Wrapping accesses and updates in `untracked` didn't seem to work in all cases.
39
- const state = new Map<string, Live<{ open: boolean; current: boolean; alternateTree?: boolean }>>(
40
- getInitialState() ?? [
41
- // TODO(thure): Initialize these dynamically.
42
- ['root', live({ open: true, current: false })],
43
- ['root~dxos.org/plugin/space-spaces', live({ open: true, current: false })],
44
- ['root~dxos.org/plugin/files', live({ open: true, current: false })],
45
- ],
46
- );
47
-
48
- const getItem = (_path: string[]) => {
49
- const path = Path.create(..._path);
50
- const value = state.get(path) ?? live({ open: false, current: false, alternateTree: false });
51
- if (!state.has(path)) {
52
- state.set(path, value);
53
- }
54
-
55
- return value;
56
- };
57
-
58
- const setItem = (path: string[], key: 'open' | 'current' | 'alternateTree', next: boolean) => {
59
- const value = getItem(path);
60
- value[key] = next;
61
-
62
- localStorage.setItem(KEY, JSON.stringify(Array.from(state.entries())));
63
- };
64
-
65
- const isOpen = (path: string[]) => getItem(path).open;
66
- const isCurrent = (path: string[]) => getItem(path).current;
67
- const isAlternateTree = (path: string[]) => {
68
- const item = getItem(path);
69
- return item.alternateTree ?? false;
70
- };
71
-
72
- let previous: string[] = [];
73
- const unsubscribe = effect(() => {
74
- const removed = previous.filter((id) => !layout.active.includes(id));
75
- previous = layout.active;
76
-
77
- const handleUpdate = () => {
78
- removed.forEach((id) => {
79
- const keys = Array.from(state.keys()).filter((key) => Path.last(key) === id);
80
- keys.forEach((key) => {
81
- setItem(Path.parts(key), 'current', false);
82
- });
83
- });
84
-
85
- layout.active.forEach((id) => {
86
- const keys = Array.from(new Set([...state.keys(), id])).filter((key) => Path.last(key) === id);
87
- keys.forEach((key) => {
88
- setItem(Path.parts(key), 'current', true);
89
- });
90
- });
91
- };
92
-
93
- // TODO(wittjosiah): This is setTimeout because there's a race between the keys be initialized.
94
- // Keys are initialized on the first render of an item in the navtree.
95
- // This could be avoided if the location was a path as well and not just an id.
96
- const timeout = setTimeout(handleUpdate, 500);
97
- untracked(() => handleUpdate());
98
- return () => clearTimeout(timeout);
99
- });
100
-
101
- return contributes(NavTreeCapabilities.State, { state, getItem, setItem, isOpen, isCurrent, isAlternateTree }, () =>
102
- unsubscribe(),
103
- );
104
- };
package/src/events.ts DELETED
@@ -1,11 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Events } from '@dxos/app-framework';
6
-
7
- import { NAVTREE_PLUGIN } from './meta';
8
-
9
- export namespace NavTreeEvents {
10
- export const StateReady = Events.createStateEvent(NAVTREE_PLUGIN);
11
- }