@dxos/plugin-navtree 0.8.4-main.72ec0f3 → 0.8.4-main.8360d9e660

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 (232) hide show
  1. package/dist/lib/browser/CommandsDialogContent-2DKIOLJL.mjs +113 -0
  2. package/dist/lib/browser/CommandsDialogContent-2DKIOLJL.mjs.map +7 -0
  3. package/dist/lib/browser/CommandsTrigger-ABODVVMP.mjs +33 -0
  4. package/dist/lib/browser/CommandsTrigger-ABODVVMP.mjs.map +7 -0
  5. package/dist/lib/browser/NavTreeContainer-IQZCK4Y4.mjs +12 -0
  6. package/dist/lib/browser/NavTreeContainer-IQZCK4Y4.mjs.map +7 -0
  7. package/dist/lib/browser/NavTreeDocumentTitle-L6NLLWLD.mjs +26 -0
  8. package/dist/lib/browser/NavTreeDocumentTitle-L6NLLWLD.mjs.map +7 -0
  9. package/dist/lib/browser/app-graph-builder-Z43OTNI2.mjs +44 -0
  10. package/dist/lib/browser/app-graph-builder-Z43OTNI2.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-E6MZBCU5.mjs → chunk-A4VDCIJC.mjs} +3 -3
  12. package/dist/lib/browser/chunk-A4VDCIJC.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-DINDC6HE.mjs +14 -0
  14. package/dist/lib/browser/chunk-DINDC6HE.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-KF26WA4O.mjs +23 -0
  16. package/dist/lib/browser/chunk-KF26WA4O.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-OGUYILOW.mjs +1462 -0
  18. package/dist/lib/browser/chunk-OGUYILOW.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +86 -91
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/{keyboard-YYTYJW4M.mjs → keyboard-HYGFQO7T.mjs} +25 -19
  22. package/dist/lib/browser/keyboard-HYGFQO7T.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/operation-resolver-VDWVUII5.mjs +49 -0
  25. package/dist/lib/browser/operation-resolver-VDWVUII5.mjs.map +7 -0
  26. package/dist/lib/browser/react-surface-LFMKIKNY.mjs +59 -0
  27. package/dist/lib/browser/react-surface-LFMKIKNY.mjs.map +7 -0
  28. package/dist/lib/browser/state-CWMNNF7K.mjs +131 -0
  29. package/dist/lib/browser/state-CWMNNF7K.mjs.map +7 -0
  30. package/dist/types/src/NavTreePlugin.d.ts +2 -1
  31. package/dist/types/src/NavTreePlugin.d.ts.map +1 -1
  32. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  33. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  34. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  35. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  36. package/dist/types/src/capabilities/index.d.ts +5 -108
  37. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  38. package/dist/types/src/capabilities/keyboard/index.d.ts +3 -0
  39. package/dist/types/src/capabilities/keyboard/index.d.ts.map +1 -0
  40. package/dist/types/src/capabilities/keyboard/keyboard.d.ts +5 -0
  41. package/dist/types/src/capabilities/keyboard/keyboard.d.ts.map +1 -0
  42. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  43. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  44. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  45. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  46. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  47. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  48. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  49. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  50. package/dist/types/src/capabilities/state/index.d.ts +3 -0
  51. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  52. package/dist/types/src/capabilities/state/state.d.ts +6 -0
  53. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  54. package/dist/types/src/components/NavTree/NavTree.d.ts +11 -4
  55. package/dist/types/src/components/NavTree/NavTree.d.ts.map +1 -1
  56. package/dist/types/src/components/NavTree/NavTree.stories.d.ts +2 -2
  57. package/dist/types/src/components/NavTree/NavTree.stories.d.ts.map +1 -1
  58. package/dist/types/src/components/{NavTreeContext.d.ts → NavTreeContext/NavTreeContext.d.ts} +1 -1
  59. package/dist/types/src/components/NavTreeContext/NavTreeContext.d.ts.map +1 -0
  60. package/dist/types/src/components/NavTreeContext/index.d.ts +2 -0
  61. package/dist/types/src/components/NavTreeContext/index.d.ts.map +1 -0
  62. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts +10 -8
  63. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.d.ts.map +1 -1
  64. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts +3 -2
  65. package/dist/types/src/components/NavTreeItem/NavTreeItemAction.stories.d.ts.map +1 -1
  66. package/dist/types/src/components/NavTreeItem/NavTreeItemColumns.d.ts.map +1 -1
  67. package/dist/types/src/components/Sidebar/L0Menu.d.ts +8 -5
  68. package/dist/types/src/components/Sidebar/L0Menu.d.ts.map +1 -1
  69. package/dist/types/src/components/Sidebar/L1Panel.d.ts +4 -7
  70. package/dist/types/src/components/Sidebar/L1Panel.d.ts.map +1 -1
  71. package/dist/types/src/components/Sidebar/L1Tabs.d.ts +5 -4
  72. package/dist/types/src/components/Sidebar/L1Tabs.d.ts.map +1 -1
  73. package/dist/types/src/components/UserAccountAvatar/UserAccountAvatar.stories.d.ts.map +1 -1
  74. package/dist/types/src/components/index.d.ts +0 -3
  75. package/dist/types/src/components/index.d.ts.map +1 -1
  76. package/dist/types/src/components/types.d.ts +8 -16
  77. package/dist/types/src/components/types.d.ts.map +1 -1
  78. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.d.ts +6 -0
  79. package/dist/types/src/containers/CommandsDialogContent/CommandsDialogContent.d.ts.map +1 -0
  80. package/dist/types/src/containers/CommandsDialogContent/index.d.ts +3 -0
  81. package/dist/types/src/containers/CommandsDialogContent/index.d.ts.map +1 -0
  82. package/dist/types/src/containers/CommandsTrigger/CommandsTrigger.d.ts.map +1 -0
  83. package/dist/types/src/containers/CommandsTrigger/index.d.ts +3 -0
  84. package/dist/types/src/containers/CommandsTrigger/index.d.ts.map +1 -0
  85. package/dist/types/src/containers/NavTreeContainer/NavTreeContainer.d.ts +9 -0
  86. package/dist/types/src/containers/NavTreeContainer/NavTreeContainer.d.ts.map +1 -0
  87. package/dist/types/src/containers/NavTreeContainer/index.d.ts +3 -0
  88. package/dist/types/src/containers/NavTreeContainer/index.d.ts.map +1 -0
  89. package/dist/types/src/{components → containers/NavTreeDocumentTitle}/NavTreeDocumentTitle.d.ts +1 -1
  90. package/dist/types/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.d.ts.map +1 -0
  91. package/dist/types/src/containers/NavTreeDocumentTitle/index.d.ts +3 -0
  92. package/dist/types/src/containers/NavTreeDocumentTitle/index.d.ts.map +1 -0
  93. package/dist/types/src/containers/index.d.ts +7 -0
  94. package/dist/types/src/containers/index.d.ts.map +1 -0
  95. package/dist/types/src/experimental/Tree.stories.d.ts +18 -4
  96. package/dist/types/src/experimental/Tree.stories.d.ts.map +1 -1
  97. package/dist/types/src/hooks/index.d.ts +5 -0
  98. package/dist/types/src/hooks/index.d.ts.map +1 -0
  99. package/dist/types/src/hooks/useActions.d.ts +5 -0
  100. package/dist/types/src/hooks/useActions.d.ts.map +1 -0
  101. package/dist/types/src/hooks/useLoadDescendents.d.ts +6 -0
  102. package/dist/types/src/hooks/useLoadDescendents.d.ts.map +1 -0
  103. package/dist/types/src/hooks/useNavTreeModel.d.ts +7 -0
  104. package/dist/types/src/hooks/useNavTreeModel.d.ts.map +1 -0
  105. package/dist/types/src/hooks/useNavTreeState.d.ts +22 -0
  106. package/dist/types/src/hooks/useNavTreeState.d.ts.map +1 -0
  107. package/dist/types/src/index.d.ts +1 -2
  108. package/dist/types/src/index.d.ts.map +1 -1
  109. package/dist/types/src/meta.d.ts +2 -2
  110. package/dist/types/src/meta.d.ts.map +1 -1
  111. package/dist/types/src/testing/app-graph-builder.d.ts +2 -3
  112. package/dist/types/src/testing/app-graph-builder.d.ts.map +1 -1
  113. package/dist/types/src/testing/generator.d.ts +5 -6
  114. package/dist/types/src/testing/generator.d.ts.map +1 -1
  115. package/dist/types/src/testing/update-state.d.ts +2 -2
  116. package/dist/types/src/testing/update-state.d.ts.map +1 -1
  117. package/dist/types/src/types/capabilities.d.ts +16 -0
  118. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  119. package/dist/types/src/types/events.d.ts +5 -0
  120. package/dist/types/src/types/events.d.ts.map +1 -0
  121. package/dist/types/src/types/index.d.ts +4 -0
  122. package/dist/types/src/types/index.d.ts.map +1 -0
  123. package/dist/types/src/{types.d.ts → types/schema.d.ts} +6 -6
  124. package/dist/types/src/types/schema.d.ts.map +1 -0
  125. package/dist/types/src/util.d.ts +11 -7
  126. package/dist/types/src/util.d.ts.map +1 -1
  127. package/dist/types/tsconfig.tsbuildinfo +1 -1
  128. package/package.json +55 -53
  129. package/src/NavTreePlugin.tsx +54 -73
  130. package/src/capabilities/app-graph-builder/app-graph-builder.ts +42 -0
  131. package/src/capabilities/app-graph-builder/index.ts +7 -0
  132. package/src/capabilities/index.ts +5 -9
  133. package/src/capabilities/keyboard/index.ts +7 -0
  134. package/src/capabilities/keyboard/keyboard.ts +66 -0
  135. package/src/capabilities/operation-resolver/index.ts +7 -0
  136. package/src/capabilities/operation-resolver/operation-resolver.ts +45 -0
  137. package/src/capabilities/react-surface/index.ts +7 -0
  138. package/src/capabilities/react-surface/react-surface.tsx +53 -0
  139. package/src/capabilities/state/index.ts +7 -0
  140. package/src/capabilities/state/state.ts +149 -0
  141. package/src/components/NavTree/NavTree.stories.tsx +44 -51
  142. package/src/components/NavTree/NavTree.tsx +63 -32
  143. package/src/components/{NavTreeContext.tsx → NavTreeContext/NavTreeContext.tsx} +1 -1
  144. package/src/components/NavTreeContext/index.ts +5 -0
  145. package/src/components/NavTreeItem/NavTreeItemAction.stories.tsx +18 -8
  146. package/src/components/NavTreeItem/NavTreeItemAction.tsx +55 -32
  147. package/src/components/NavTreeItem/NavTreeItemColumns.tsx +42 -16
  148. package/src/components/Sidebar/L0Menu.tsx +133 -162
  149. package/src/components/Sidebar/L1Panel.tsx +247 -91
  150. package/src/components/Sidebar/L1Tabs.tsx +18 -33
  151. package/src/components/UserAccountAvatar/UserAccountAvatar.stories.tsx +2 -3
  152. package/src/components/UserAccountAvatar/UserAccountAvatar.tsx +1 -1
  153. package/src/components/index.ts +1 -3
  154. package/src/components/types.ts +14 -19
  155. package/src/containers/CommandsDialogContent/CommandsDialogContent.tsx +135 -0
  156. package/src/containers/CommandsDialogContent/index.ts +7 -0
  157. package/src/{components/CommandsDialog → containers/CommandsTrigger}/CommandsTrigger.tsx +5 -15
  158. package/src/containers/CommandsTrigger/index.ts +7 -0
  159. package/src/containers/NavTreeContainer/NavTreeContainer.tsx +271 -0
  160. package/src/containers/NavTreeContainer/index.ts +6 -0
  161. package/src/{components → containers/NavTreeDocumentTitle}/NavTreeDocumentTitle.tsx +4 -3
  162. package/src/containers/NavTreeDocumentTitle/index.ts +7 -0
  163. package/src/containers/index.ts +12 -0
  164. package/src/experimental/Tree.stories.tsx +55 -58
  165. package/src/experimental/Tree.tsx +4 -4
  166. package/src/hooks/index.ts +8 -0
  167. package/src/hooks/useActions.ts +34 -0
  168. package/src/hooks/useLoadDescendents.ts +23 -0
  169. package/src/hooks/useNavTreeModel.ts +118 -0
  170. package/src/hooks/useNavTreeState.ts +42 -0
  171. package/src/index.ts +1 -2
  172. package/src/meta.ts +4 -4
  173. package/src/testing/app-graph-builder.ts +158 -234
  174. package/src/testing/generator.ts +19 -17
  175. package/src/testing/update-state.ts +6 -6
  176. package/src/types/capabilities.ts +21 -0
  177. package/src/types/events.ts +12 -0
  178. package/src/types/index.ts +7 -0
  179. package/src/{types.ts → types/schema.ts} +5 -5
  180. package/src/util.ts +27 -16
  181. package/dist/lib/browser/app-graph-builder-OHSCN3GX.mjs +0 -46
  182. package/dist/lib/browser/app-graph-builder-OHSCN3GX.mjs.map +0 -7
  183. package/dist/lib/browser/chunk-5VLWX4PK.mjs +0 -15
  184. package/dist/lib/browser/chunk-5VLWX4PK.mjs.map +0 -7
  185. package/dist/lib/browser/chunk-7D2MPHXV.mjs +0 -1483
  186. package/dist/lib/browser/chunk-7D2MPHXV.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-E6MZBCU5.mjs.map +0 -7
  188. package/dist/lib/browser/intent-resolver-YUVXVPHG.mjs +0 -47
  189. package/dist/lib/browser/intent-resolver-YUVXVPHG.mjs.map +0 -7
  190. package/dist/lib/browser/keyboard-YYTYJW4M.mjs.map +0 -7
  191. package/dist/lib/browser/react-surface-J7MWWAGD.mjs +0 -51
  192. package/dist/lib/browser/react-surface-J7MWWAGD.mjs.map +0 -7
  193. package/dist/lib/browser/state-EUSVT6BI.mjs +0 -117
  194. package/dist/lib/browser/state-EUSVT6BI.mjs.map +0 -7
  195. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  196. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  197. package/dist/types/src/capabilities/capabilities.d.ts +0 -21
  198. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  199. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  200. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  201. package/dist/types/src/capabilities/keyboard.d.ts +0 -4
  202. package/dist/types/src/capabilities/keyboard.d.ts.map +0 -1
  203. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  204. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  205. package/dist/types/src/capabilities/state.d.ts +0 -20
  206. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  207. package/dist/types/src/components/CommandsDialog/CommandsDialog.d.ts +0 -5
  208. package/dist/types/src/components/CommandsDialog/CommandsDialog.d.ts.map +0 -1
  209. package/dist/types/src/components/CommandsDialog/CommandsTrigger.d.ts.map +0 -1
  210. package/dist/types/src/components/CommandsDialog/index.d.ts +0 -3
  211. package/dist/types/src/components/CommandsDialog/index.d.ts.map +0 -1
  212. package/dist/types/src/components/NavTreeContainer.d.ts +0 -9
  213. package/dist/types/src/components/NavTreeContainer.d.ts.map +0 -1
  214. package/dist/types/src/components/NavTreeContext.d.ts.map +0 -1
  215. package/dist/types/src/components/NavTreeDocumentTitle.d.ts.map +0 -1
  216. package/dist/types/src/events.d.ts +0 -4
  217. package/dist/types/src/events.d.ts.map +0 -1
  218. package/dist/types/src/hooks.d.ts +0 -3
  219. package/dist/types/src/hooks.d.ts.map +0 -1
  220. package/dist/types/src/types.d.ts.map +0 -1
  221. package/src/capabilities/app-graph-builder.ts +0 -53
  222. package/src/capabilities/capabilities.ts +0 -20
  223. package/src/capabilities/intent-resolver.ts +0 -37
  224. package/src/capabilities/keyboard.ts +0 -59
  225. package/src/capabilities/react-surface.tsx +0 -45
  226. package/src/capabilities/state.ts +0 -105
  227. package/src/components/CommandsDialog/CommandsDialog.tsx +0 -126
  228. package/src/components/CommandsDialog/index.ts +0 -6
  229. package/src/components/NavTreeContainer.tsx +0 -369
  230. package/src/events.ts +0 -11
  231. package/src/hooks.ts +0 -21
  232. /package/dist/types/src/{components/CommandsDialog → containers/CommandsTrigger}/CommandsTrigger.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/keyboard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmC,KAAK,aAAa,EAAe,MAAM,qBAAqB,CAAC;yBAQvF,SAAS,aAAa;AAAtC,wBA8CE"}
@@ -1,4 +0,0 @@
1
- import { Capabilities } from '@dxos/app-framework';
2
- declare const _default: () => import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<Capabilities.ReactSurface>>;
3
- export default _default;
4
- //# sourceMappingURL=react-surface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAA8B,MAAM,qBAAqB,CAAC;;AAM/E,wBAgCK"}
@@ -1,20 +0,0 @@
1
- import { type PluginContext } from '@dxos/app-framework';
2
- import { type Live } from '@dxos/echo';
3
- declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<{
4
- state: Map<string, Live<{
5
- open: boolean;
6
- current: boolean;
7
- alternateTree?: boolean;
8
- }>>;
9
- getItem: (path: string[]) => Live<{
10
- open: boolean;
11
- current: boolean;
12
- alternateTree?: boolean;
13
- }>;
14
- setItem: (path: string[], key: "open" | "current" | "alternateTree", next: boolean) => void;
15
- isOpen: (path: string[], item: import("../types").NavTreeItemGraphNode) => boolean;
16
- isCurrent: (path: string[], item: import("../types").NavTreeItemGraphNode) => boolean;
17
- isAlternateTree: (path: string[], item: import("../types").NavTreeItemGraphNode) => boolean;
18
- }>>;
19
- export default _default;
20
- //# sourceMappingURL=state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/state.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,aAAa,EAAe,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;yBAyBvB,SAAS,aAAa;;;;qBAnBM,CAAC;;;;;qBAKtB,CAAC;;;;;;;AAcxB,wBAwEE"}
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- export declare const CommandsDialogContent: ({ selected: initial }: {
3
- selected?: string;
4
- }) => React.JSX.Element;
5
- //# sourceMappingURL=CommandsDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CommandsDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/CommandsDialog/CommandsDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAqBjD,eAAO,MAAM,qBAAqB,GAAI,uBAAuB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,sBAoGjF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CommandsTrigger.d.ts","sourceRoot":"","sources":["../../../../../src/components/CommandsDialog/CommandsTrigger.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,eAAO,MAAM,eAAe,yBAsB3B,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './CommandsDialog';
2
- export * from './CommandsTrigger';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CommandsDialog/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { type NavTreeContextValue } from './types';
3
- export declare const NODE_TYPE = "dxos/app-graph/node";
4
- export type NavTreeContainerProps = {
5
- popoverAnchorId?: string;
6
- topbar?: boolean;
7
- } & Pick<NavTreeContextValue, 'tab'>;
8
- export declare const NavTreeContainer: React.MemoExoticComponent<({ tab, popoverAnchorId, topbar }: NavTreeContainerProps) => React.JSX.Element>;
9
- //# sourceMappingURL=NavTreeContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavTreeContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/NavTreeContainer.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAmBrE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnD,eAAO,MAAM,SAAS,wBAAwB,CAAC;AA0D/C,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAErC,eAAO,MAAM,gBAAgB,+DAA2C,qBAAqB,uBAoR3F,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavTreeContext.d.ts","sourceRoot":"","sources":["../../../../src/components/NavTreeContext.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,cAAc,qDAAkD,CAAC;AAE9E,eAAO,MAAM,iBAAiB,2BAAiF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavTreeDocumentTitle.d.ts","sourceRoot":"","sources":["../../../../src/components/NavTreeDocumentTitle.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAK5C,eAAO,MAAM,oBAAoB,GAAI,UAAU;IAAE,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,SAM7D,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare namespace NavTreeEvents {
2
- const StateReady: import("@dxos/app-framework").ActivationEvent;
3
- }
4
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/events.ts"],"names":[],"mappings":"AAQA,yBAAiB,aAAa,CAAC;IACtB,MAAM,UAAU,+CAAmC,CAAC;CAC5D"}
@@ -1,3 +0,0 @@
1
- import { type Node } from '@dxos/app-graph';
2
- export declare const useLoadDescendents: (root?: Node) => void;
3
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAI5C,eAAO,MAAM,kBAAkB,GAAI,OAAO,IAAI,SAU7C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,GAAG,EACH,OAAO,CACL,cAAc,GAAG;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,mBAAmB,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACjF,eAAe,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1F,aAAa,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,oBAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAClH,CACF,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IAGvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -1,53 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Atom } from '@effect-atom/atom-react';
6
- import * as Function from 'effect/Function';
7
- import * as Option from 'effect/Option';
8
-
9
- import { Capabilities, LayoutAction, type PluginContext, contributes, createIntent } from '@dxos/app-framework';
10
- import { ROOT_ID, createExtension } from '@dxos/plugin-graph';
11
-
12
- import { COMMANDS_DIALOG, meta } from '../meta';
13
-
14
- export default (context: PluginContext) =>
15
- contributes(
16
- Capabilities.AppGraphBuilder,
17
- createExtension({
18
- id: meta.id,
19
- actions: (node) =>
20
- Atom.make((get) =>
21
- Function.pipe(
22
- get(node),
23
- Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
24
- Option.map(() => [
25
- {
26
- id: COMMANDS_DIALOG,
27
- data: async () => {
28
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
29
- await dispatch(
30
- createIntent(LayoutAction.UpdateDialog, {
31
- part: 'dialog',
32
- subject: COMMANDS_DIALOG,
33
- options: {
34
- blockAlign: 'start',
35
- },
36
- }),
37
- );
38
- },
39
- properties: {
40
- label: ['open commands label', { ns: meta.id }],
41
- icon: 'ph--magnifying-glass--regular',
42
- keyBinding: {
43
- macos: 'meta+k',
44
- windows: 'ctrl+k',
45
- },
46
- },
47
- },
48
- ]),
49
- Option.getOrElse(() => []),
50
- ),
51
- ),
52
- }),
53
- );
@@ -1,20 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { defineCapability } from '@dxos/app-framework';
6
- import { type Live } from '@dxos/live-object';
7
-
8
- import { meta } from '../meta';
9
- import { type NavTreeItemGraphNode } from '../types';
10
-
11
- export namespace NavTreeCapabilities {
12
- export const State = defineCapability<{
13
- state: Map<string, Live<{ open: boolean; current: boolean; alternateTree?: boolean }>>;
14
- getItem: (path: string[]) => Live<{ open: boolean; current: boolean; alternateTree?: boolean }>;
15
- setItem: (path: string[], key: 'open' | 'current' | 'alternateTree', next: boolean) => void;
16
- isOpen: (path: string[], item: NavTreeItemGraphNode) => boolean;
17
- isCurrent: (path: string[], item: NavTreeItemGraphNode) => boolean;
18
- isAlternateTree: (path: string[], item: NavTreeItemGraphNode) => boolean;
19
- }>(`${meta.id}/capability/state`);
20
- }
@@ -1,37 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Schema from 'effect/Schema';
6
-
7
- import { Capabilities, LayoutAction, type PluginContext, contributes, createResolver } from '@dxos/app-framework';
8
- import { log } from '@dxos/log';
9
-
10
- import { NavTreeCapabilities } from './capabilities';
11
-
12
- export default (context: PluginContext) =>
13
- contributes(
14
- Capabilities.IntentResolver,
15
- createResolver({
16
- intent: LayoutAction.UpdateLayout,
17
- filter: (data): data is Schema.Schema.Type<typeof LayoutAction.Expose.fields.input> =>
18
- Schema.is(LayoutAction.Expose.fields.input)(data),
19
- resolve: async ({ subject }) => {
20
- const { graph } = context.getCapability(Capabilities.AppGraph);
21
- const { getItem, setItem } = context.getCapability(NavTreeCapabilities.State);
22
-
23
- try {
24
- const path = await graph.waitForPath({ target: subject }, { timeout: 1_000 });
25
- [...Array(path.length)].forEach((_, index) => {
26
- const subpath = path.slice(0, index);
27
- const value = getItem(subpath);
28
- if (!value.open) {
29
- setItem(subpath, 'open', true);
30
- }
31
- });
32
- } catch {
33
- log('Path to node not found', { subject });
34
- }
35
- },
36
- }),
37
- );
@@ -1,59 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capabilities as AppCapabilities, type PluginContext, contributes } from '@dxos/app-framework';
6
- import { debounce } from '@dxos/async';
7
- import { Keyboard } from '@dxos/keyboard';
8
- import { type Node, isAction } from '@dxos/plugin-graph';
9
- import { getHostPlatform } from '@dxos/util';
10
-
11
- import { KEY_BINDING } from '../meta';
12
-
13
- export default (context: PluginContext) => {
14
- const { graph } = context.getCapability(AppCapabilities.AppGraph);
15
-
16
- // TODO(wittjosiah): Factor out.
17
- // TODO(wittjosiah): Handle removal of actions.
18
- const visitor = (node: Node, path: string[]) => {
19
- let shortcut: string | undefined;
20
- if (typeof node.properties.keyBinding === 'object') {
21
- const availablePlatforms = Object.keys(node.properties.keyBinding);
22
- const platform = getHostPlatform();
23
- shortcut = availablePlatforms.includes(platform)
24
- ? node.properties.keyBinding[platform]
25
- : platform === 'ios'
26
- ? node.properties.keyBinding.macos // Fallback to macos if ios-specific bindings not provided.
27
- : platform === 'linux' || platform === 'unknown'
28
- ? node.properties.keyBinding.windows // Fallback to windows if platform-specific bindings not provided.
29
- : undefined;
30
- } else {
31
- shortcut = node.properties.keyBinding;
32
- }
33
-
34
- if (shortcut && isAction(node)) {
35
- Keyboard.singleton.getContext(path.slice(0, -1).join('/')).bind({
36
- shortcut,
37
- handler: () => {
38
- void node.data({ parent: node, caller: KEY_BINDING });
39
- },
40
- data: node.properties.label,
41
- });
42
- }
43
- };
44
-
45
- const eventHandler = debounce(() => {
46
- graph.traverse({ visitor });
47
- }, 500);
48
-
49
- const unsubscribe = graph.onNodeChanged.on(eventHandler);
50
-
51
- // TODO(burdon): Create context and plugin.
52
- Keyboard.singleton.initialize();
53
- Keyboard.singleton.setCurrentContext(graph.root.id);
54
-
55
- return contributes(AppCapabilities.Null, null, () => {
56
- unsubscribe();
57
- Keyboard.singleton.destroy();
58
- });
59
- };
@@ -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, NavTreeContainer, NavTreeDocumentTitle } from '../components';
11
- import { COMMANDS_DIALOG, meta } 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: `${meta.id}/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: `${meta.id}/document-title`,
36
- role: 'document-title',
37
- component: ({ data }) => <NavTreeDocumentTitle node={isGraphNode(data.subject) ? data.subject : undefined} />,
38
- }),
39
- createSurface({
40
- id: `${meta.id}/search-input`,
41
- role: 'search-input',
42
- position: 'fallback',
43
- component: () => <CommandsTrigger />,
44
- }),
45
- ]);
@@ -1,105 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { effect, untracked } from '@preact/signals-core';
6
-
7
- import { Capabilities, type PluginContext, contributes } 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 { meta } from '../meta';
13
-
14
- import { NavTreeCapabilities } from './capabilities';
15
-
16
- const KEY = `${meta.id}/state/v1`;
17
-
18
- const getInitialState = () => {
19
- const stringified = localStorage.getItem(KEY);
20
- if (!stringified) {
21
- return;
22
- }
23
-
24
- try {
25
- const cached: [string, { open: boolean; current: boolean }][] = JSON.parse(stringified);
26
- return cached.map(([key, value]): [string, Live<{ open: boolean; current: boolean }>] => [
27
- key,
28
- live({ open: value.open, current: false }),
29
- ]);
30
- } catch {}
31
- };
32
-
33
- export default (context: PluginContext) => {
34
- const layout = context.getCapability(Capabilities.Layout);
35
-
36
- // TODO(wittjosiah): This currently needs to be not a Live at the root.
37
- // If it is a Live then React errors when initializing new paths because of state change during render.
38
- // Ideally this could be a Live but be able to access and update the root level without breaking render.
39
- // Wrapping accesses and updates in `untracked` didn't seem to work in all cases.
40
- const state = new Map<string, Live<{ open: boolean; current: boolean; alternateTree?: boolean }>>(
41
- getInitialState() ?? [
42
- // TODO(thure): Initialize these dynamically.
43
- ['root', live({ open: true, current: false })],
44
- ['root~dxos.org/plugin/space-spaces', live({ open: true, current: false })],
45
- ['root~dxos.org/plugin/files', live({ open: true, current: false })],
46
- ],
47
- );
48
-
49
- const getItem = (_path: string[]) => {
50
- const path = Path.create(..._path);
51
- const value = state.get(path) ?? live({ open: false, current: false, alternateTree: false });
52
- if (!state.has(path)) {
53
- state.set(path, value);
54
- }
55
-
56
- return value;
57
- };
58
-
59
- const setItem = (path: string[], key: 'open' | 'current' | 'alternateTree', next: boolean) => {
60
- const value = getItem(path);
61
- value[key] = next;
62
-
63
- localStorage.setItem(KEY, JSON.stringify(Array.from(state.entries())));
64
- };
65
-
66
- const isOpen = (path: string[]) => getItem(path).open;
67
- const isCurrent = (path: string[]) => getItem(path).current;
68
- const isAlternateTree = (path: string[]) => {
69
- const item = getItem(path);
70
- return item.alternateTree ?? false;
71
- };
72
-
73
- let previous: string[] = [];
74
- const unsubscribe = effect(() => {
75
- const removed = previous.filter((id) => !layout.active.includes(id));
76
- previous = layout.active;
77
-
78
- const handleUpdate = () => {
79
- removed.forEach((id) => {
80
- const keys = Array.from(state.keys()).filter((key) => Path.last(key) === id);
81
- keys.forEach((key) => {
82
- setItem(Path.parts(key), 'current', false);
83
- });
84
- });
85
-
86
- layout.active.forEach((id) => {
87
- const keys = Array.from(new Set([...state.keys(), id])).filter((key) => Path.last(key) === id);
88
- keys.forEach((key) => {
89
- setItem(Path.parts(key), 'current', true);
90
- });
91
- });
92
- };
93
-
94
- // TODO(wittjosiah): This is setTimeout because there's a race between the keys be initialized.
95
- // Keys are initialized on the first render of an item in the navtree.
96
- // This could be avoided if the location was a path as well and not just an id.
97
- const timeout = setTimeout(handleUpdate, 500);
98
- untracked(() => handleUpdate());
99
- return () => clearTimeout(timeout);
100
- });
101
-
102
- return contributes(NavTreeCapabilities.State, { state, getItem, setItem, isOpen, isCurrent, isAlternateTree }, () =>
103
- unsubscribe(),
104
- );
105
- };
@@ -1,126 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React, { useMemo, useState } from 'react';
6
-
7
- import { LayoutAction, createIntent } from '@dxos/app-framework';
8
- import { useAppGraph, useIntentDispatcher } from '@dxos/app-framework/react';
9
- import { type ActionLike, isAction, isActionGroup } from '@dxos/app-graph';
10
- import { Keyboard, keySymbols } from '@dxos/keyboard';
11
- import { useActions } from '@dxos/plugin-graph';
12
- import { Button, Dialog, Icon, toLocalizedString, useTranslation } from '@dxos/react-ui';
13
- import { SearchList } from '@dxos/react-ui-searchlist';
14
- import {
15
- cardDialogContent,
16
- cardDialogHeader,
17
- cardDialogPaddedOverflow,
18
- cardDialogSearchListRoot,
19
- } from '@dxos/react-ui-stack';
20
- import { descriptionText, mx } from '@dxos/react-ui-theme';
21
- import { getHostPlatform } from '@dxos/util';
22
-
23
- import { KEY_BINDING, meta } from '../../meta';
24
-
25
- // TODO(wittjosiah): This probably deserves its own plugin but for now it lives here w/ other navigation UI.
26
- export const CommandsDialogContent = ({ selected: initial }: { selected?: string }) => {
27
- const { t } = useTranslation(meta.id);
28
- const [selected, setSelected] = useState<string | undefined>(initial);
29
- const { dispatchPromise: dispatch } = useIntentDispatcher();
30
- const { graph } = useAppGraph();
31
-
32
- // Traverse graph.
33
- // TODO(burdon): Factor out commonality with shortcut dialog.
34
- const allActions = useMemo(() => {
35
- // TODO(burdon): Get from navtree (not keyboard).
36
- const current = Keyboard.singleton.getCurrentContext();
37
- const actionMap = new Set<string>();
38
- const actions: ActionLike[] = [];
39
- graph.traverse({
40
- visitor: (node, path) => {
41
- if (
42
- (isAction(node) || isActionGroup(node)) &&
43
- !actionMap.has(node.id) &&
44
- current.startsWith(path.slice(0, -1).join('/'))
45
- ) {
46
- actionMap.add(node.id);
47
- actions.push(node);
48
- }
49
- },
50
- });
51
-
52
- actions.sort((a, b) => {
53
- return toLocalizedString(a.properties.label, t)
54
- ?.toLowerCase()
55
- .localeCompare(toLocalizedString(b.properties.label, t)?.toLowerCase());
56
- });
57
-
58
- return actions;
59
- }, [graph]);
60
-
61
- const group = allActions.find(({ id }) => id === selected);
62
- const groupActions = useActions(graph, group?.id);
63
- const actions = isActionGroup(group) ? groupActions : allActions;
64
-
65
- return (
66
- <Dialog.Content classNames={cardDialogContent}>
67
- <Dialog.Title classNames={cardDialogHeader}>{t('commands dialog title', { ns: meta.id })}</Dialog.Title>
68
-
69
- {/* TODO(burdon): BUG: Overscrolls container. */}
70
- <SearchList.Root label={t('command list input placeholder')} classNames={cardDialogSearchListRoot}>
71
- <SearchList.Input placeholder={t('command list input placeholder')} />
72
- <SearchList.Content classNames={cardDialogPaddedOverflow}>
73
- {actions?.map((action) => {
74
- const label = toLocalizedString(action.properties.label, t);
75
- const shortcut =
76
- typeof action.properties.keyBinding === 'string'
77
- ? action.properties.keyBinding
78
- : action.properties.keyBinding?.[getHostPlatform()];
79
- return (
80
- <SearchList.Item
81
- value={label}
82
- key={action.id}
83
- onSelect={() => {
84
- if (action.properties.disabled) {
85
- return;
86
- }
87
-
88
- if (isActionGroup(action)) {
89
- setSelected(action.id);
90
- return;
91
- }
92
-
93
- void dispatch(
94
- createIntent(LayoutAction.UpdateDialog, {
95
- part: 'dialog',
96
- options: { state: false },
97
- }),
98
- );
99
- setTimeout(() => {
100
- const node = graph.getConnections(group?.id ?? action.id, 'inbound')[0];
101
- void (node && isAction(action) && action.data({ parent: node, caller: KEY_BINDING }));
102
- });
103
- }}
104
- classNames='flex items-center gap-2'
105
- disabled={action.properties.disabled}
106
- {...(action.properties?.testId && {
107
- 'data-testid': action.properties.testId,
108
- })}
109
- >
110
- <Icon icon={action.properties.icon} size={4} />
111
- <span className='grow truncate'>{label}</span>
112
- {shortcut && <span className={mx('shrink-0', descriptionText)}>{keySymbols(shortcut).join('')}</span>}
113
- </SearchList.Item>
114
- );
115
- })}
116
- </SearchList.Content>
117
- </SearchList.Root>
118
-
119
- <div role='none' className='pli-cardSpacingInline pbe-cardSpacingBlock'>
120
- <Dialog.Close asChild>
121
- <Button classNames='is-full'>{t('close label', { ns: 'os' })}</Button>
122
- </Dialog.Close>
123
- </div>
124
- </Dialog.Content>
125
- );
126
- };
@@ -1,6 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- export * from './CommandsDialog';
6
- export * from './CommandsTrigger';