@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
@@ -0,0 +1,112 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/CommandsDialogContent/CommandsDialogContent.tsx
4
+ import React, { forwardRef, useMemo, useState } from "react";
5
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
6
+ import { LayoutOperation } from "@dxos/app-toolkit";
7
+ import { useAppGraph } from "@dxos/app-toolkit/ui";
8
+ import { Keyboard, keySymbols } from "@dxos/keyboard";
9
+ import { Graph, Node, useActionRunner } from "@dxos/plugin-graph";
10
+ import { useActions } from "@dxos/plugin-graph";
11
+ import { Button, Dialog, toLocalizedString, useTranslation } from "@dxos/react-ui";
12
+ import { SearchList, useSearchListResults } from "@dxos/react-ui-search";
13
+ import { osTranslations } from "@dxos/ui-theme";
14
+ import { getHostPlatform } from "@dxos/util";
15
+ import { KEY_BINDING, meta } from "#meta";
16
+ var CommandsDialogContent = /* @__PURE__ */ forwardRef(({ selected: initial }, forwardedRef) => {
17
+ const { t } = useTranslation(meta.id);
18
+ const { invokePromise } = useOperationInvoker();
19
+ const runAction = useActionRunner();
20
+ const { graph } = useAppGraph();
21
+ const [selected, setSelected] = useState(initial);
22
+ const allActions = useMemo(() => {
23
+ const current = Keyboard.singleton.getCurrentContext();
24
+ const actionMap = /* @__PURE__ */ new Set();
25
+ const actions2 = [];
26
+ Graph.traverse(graph, {
27
+ relation: [
28
+ "child",
29
+ "action"
30
+ ],
31
+ visitor: (node, path) => {
32
+ const isActionLike = Node.isAction(node) || Node.isActionGroup(node);
33
+ const parentId = path.at(-2) ?? "";
34
+ const matches = current === parentId || current.startsWith(parentId + "/");
35
+ if (isActionLike && !actionMap.has(node.id) && matches) {
36
+ actionMap.add(node.id);
37
+ actions2.push(node);
38
+ }
39
+ }
40
+ });
41
+ actions2.sort((a, b) => {
42
+ return toLocalizedString(a.properties.label, t)?.toLowerCase().localeCompare(toLocalizedString(b.properties.label, t)?.toLowerCase());
43
+ });
44
+ return actions2;
45
+ }, [
46
+ graph
47
+ ]);
48
+ const group = allActions.find(({ id }) => id === selected);
49
+ const groupActions = useActions(graph, group?.id);
50
+ const actions = Node.isActionGroup(group) ? groupActions : allActions;
51
+ const { results, handleSearch } = useSearchListResults({
52
+ items: actions,
53
+ extract: (action) => toLocalizedString(action.properties.label, t)
54
+ });
55
+ return /* @__PURE__ */ React.createElement(Dialog.Content, {
56
+ ref: forwardedRef
57
+ }, /* @__PURE__ */ React.createElement(Dialog.Title, {
58
+ srOnly: true
59
+ }, t("commands-dialog.title", {
60
+ ns: meta.id
61
+ })), /* @__PURE__ */ React.createElement(SearchList.Root, {
62
+ onSearch: handleSearch
63
+ }, /* @__PURE__ */ React.createElement(SearchList.Input, {
64
+ placeholder: t("command-list-input.placeholder")
65
+ }), /* @__PURE__ */ React.createElement(SearchList.Viewport, null, results.map((action) => {
66
+ const shortcut = typeof action.properties.keyBinding === "string" ? action.properties.keyBinding : action.properties.keyBinding?.[getHostPlatform()];
67
+ return /* @__PURE__ */ React.createElement(SearchList.Item, {
68
+ value: action.id,
69
+ key: action.id,
70
+ label: toLocalizedString(action.properties.label, t),
71
+ icon: action.properties.icon,
72
+ suffix: shortcut ? keySymbols(shortcut).join("") : void 0,
73
+ onSelect: () => {
74
+ if (action.properties.disabled) {
75
+ return;
76
+ }
77
+ if (Node.isActionGroup(action)) {
78
+ setSelected(action.id);
79
+ return;
80
+ }
81
+ void invokePromise(LayoutOperation.UpdateDialog, {
82
+ state: false
83
+ });
84
+ setTimeout(() => {
85
+ const lookupId = group?.id ?? action.id;
86
+ const node = Graph.getConnections(graph, lookupId, Node.actionRelation("inbound"))[0];
87
+ if (node && Node.isAction(action)) {
88
+ void runAction(action, {
89
+ parent: node,
90
+ caller: KEY_BINDING
91
+ });
92
+ }
93
+ });
94
+ },
95
+ classNames: "flex items-center gap-2",
96
+ disabled: action.properties.disabled,
97
+ ...action.properties?.testId && {
98
+ "data-testid": action.properties.testId
99
+ }
100
+ });
101
+ }))), /* @__PURE__ */ React.createElement(Dialog.ActionBar, null, /* @__PURE__ */ React.createElement(Dialog.Close, {
102
+ asChild: true
103
+ }, /* @__PURE__ */ React.createElement(Button, {
104
+ classNames: "w-full"
105
+ }, t("close.label", {
106
+ ns: osTranslations
107
+ })))));
108
+ });
109
+ export {
110
+ CommandsDialogContent as default
111
+ };
112
+ //# sourceMappingURL=CommandsDialogContent-UBGIQ5FI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/CommandsDialogContent/CommandsDialogContent.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { forwardRef, useMemo, useState } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { Keyboard, keySymbols } from '@dxos/keyboard';\nimport { Graph, Node, useActionRunner } from '@dxos/plugin-graph';\nimport { useActions } from '@dxos/plugin-graph';\nimport { Button, Dialog, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-search';\nimport { osTranslations } from '@dxos/ui-theme';\nimport { getHostPlatform } from '@dxos/util';\n\nimport { KEY_BINDING, meta } from '#meta';\n\nexport type CommandsDialogContentProps = {\n selected?: string;\n};\n\n// TODO(wittjosiah): This probably deserves its own plugin but for now it lives here w/ other navigation UI.\nexport const CommandsDialogContent = forwardRef<HTMLDivElement, CommandsDialogContentProps>(\n ({ selected: initial }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const runAction = useActionRunner();\n const { graph } = useAppGraph();\n const [selected, setSelected] = useState<string | undefined>(initial);\n\n // Traverse graph.\n // TODO(burdon): Factor out commonality with shortcut dialog.\n const allActions = useMemo(() => {\n // TODO(burdon): Get from navtree (not keyboard).\n const current = Keyboard.singleton.getCurrentContext();\n const actionMap = new Set<string>();\n const actions: Node.ActionLike[] = [];\n Graph.traverse(graph, {\n relation: ['child', 'action'],\n visitor: (node, path) => {\n const isActionLike = Node.isAction(node) || Node.isActionGroup(node);\n const parentId = path.at(-2) ?? '';\n const matches = current === parentId || current.startsWith(parentId + '/');\n if (isActionLike && !actionMap.has(node.id) && matches) {\n actionMap.add(node.id);\n actions.push(node);\n }\n },\n });\n\n actions.sort((a, b) => {\n return toLocalizedString(a.properties.label, t)\n ?.toLowerCase()\n .localeCompare(toLocalizedString(b.properties.label, t)?.toLowerCase());\n });\n\n return actions;\n }, [graph]);\n\n const group = allActions.find(({ id }) => id === selected);\n const groupActions = useActions(graph, group?.id);\n const actions = Node.isActionGroup(group) ? groupActions : allActions;\n\n const { results, handleSearch } = useSearchListResults({\n items: actions,\n extract: (action) => toLocalizedString(action.properties.label, t),\n });\n\n return (\n <Dialog.Content ref={forwardedRef}>\n <Dialog.Title srOnly>{t('commands-dialog.title', { ns: meta.id })}</Dialog.Title>\n <SearchList.Root onSearch={handleSearch}>\n <SearchList.Input placeholder={t('command-list-input.placeholder')} />\n <SearchList.Viewport>\n {results.map((action) => {\n const shortcut =\n typeof action.properties.keyBinding === 'string'\n ? action.properties.keyBinding\n : action.properties.keyBinding?.[getHostPlatform()];\n\n return (\n <SearchList.Item\n value={action.id}\n key={action.id}\n label={toLocalizedString(action.properties.label, t)}\n icon={action.properties.icon}\n suffix={shortcut ? keySymbols(shortcut).join('') : undefined}\n onSelect={() => {\n if (action.properties.disabled) {\n return;\n }\n\n if (Node.isActionGroup(action)) {\n setSelected(action.id);\n return;\n }\n\n void invokePromise(LayoutOperation.UpdateDialog, { state: false });\n setTimeout(() => {\n const lookupId = group?.id ?? action.id;\n const node = Graph.getConnections(graph, lookupId, Node.actionRelation('inbound'))[0];\n if (node && Node.isAction(action)) {\n void runAction(action, { parent: node, caller: KEY_BINDING });\n }\n });\n }}\n classNames='flex items-center gap-2'\n disabled={action.properties.disabled}\n {...(action.properties?.testId && {\n 'data-testid': action.properties.testId,\n })}\n />\n );\n })}\n </SearchList.Viewport>\n </SearchList.Root>\n <Dialog.ActionBar>\n <Dialog.Close asChild>\n <Button classNames='w-full'>{t('close.label', { ns: osTranslations })}</Button>\n </Dialog.Close>\n </Dialog.ActionBar>\n </Dialog.Content>\n );\n },\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "forwardRef", "useMemo", "useState", "useOperationInvoker", "LayoutOperation", "useAppGraph", "Keyboard", "keySymbols", "Graph", "Node", "useActionRunner", "useActions", "Button", "Dialog", "toLocalizedString", "useTranslation", "SearchList", "useSearchListResults", "osTranslations", "getHostPlatform", "KEY_BINDING", "meta", "CommandsDialogContent", "selected", "initial", "forwardedRef", "t", "id", "invokePromise", "runAction", "graph", "setSelected", "allActions", "current", "singleton", "getCurrentContext", "actionMap", "Set", "actions", "traverse", "relation", "visitor", "node", "path", "isActionLike", "isAction", "isActionGroup", "parentId", "at", "matches", "startsWith", "has", "add", "push", "sort", "a", "b", "properties", "label", "toLowerCase", "localeCompare", "group", "find", "groupActions", "results", "handleSearch", "items", "extract", "action", "Content", "ref", "Title", "srOnly", "ns", "Root", "onSearch", "Input", "placeholder", "Viewport", "map", "shortcut", "keyBinding", "Item", "value", "key", "icon", "suffix", "join", "undefined", "onSelect", "disabled", "UpdateDialog", "state", "setTimeout", "lookupId", "getConnections", "actionRelation", "parent", "caller", "classNames", "testId", "ActionBar", "Close", "asChild"]
7
+ }
@@ -0,0 +1,27 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/CommandsTrigger/CommandsTrigger.tsx
4
+ import React from "react";
5
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
6
+ import { LayoutOperation } from "@dxos/app-toolkit";
7
+ import { Button, Icon, useTranslation } from "@dxos/react-ui";
8
+ import { COMMANDS_DIALOG, meta } from "#meta";
9
+ var CommandsTrigger = () => {
10
+ const { invokePromise } = useOperationInvoker();
11
+ const { t } = useTranslation(meta.id);
12
+ return /* @__PURE__ */ React.createElement(Button, {
13
+ classNames: "m-1 px-1 lg:px-2",
14
+ onClick: () => void invokePromise(LayoutOperation.UpdateDialog, {
15
+ subject: COMMANDS_DIALOG,
16
+ blockAlign: "start"
17
+ })
18
+ }, /* @__PURE__ */ React.createElement("span", {
19
+ className: "text-description font-normal grow text-start"
20
+ }, t("command-list-input.placeholder")), /* @__PURE__ */ React.createElement(Icon, {
21
+ icon: "ph--magnifying-glass--regular"
22
+ }));
23
+ };
24
+ export {
25
+ CommandsTrigger as default
26
+ };
27
+ //# sourceMappingURL=CommandsTrigger-BH5WLMHK.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/CommandsTrigger/CommandsTrigger.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Button, Icon, useTranslation } from '@dxos/react-ui';\n\nimport { COMMANDS_DIALOG, meta } from '#meta';\n\n// TODO(thure): Refactor to be handled by a more appropriate plugin.\nexport const CommandsTrigger = () => {\n const { invokePromise } = useOperationInvoker();\n const { t } = useTranslation(meta.id);\n return (\n <Button\n classNames='m-1 px-1 lg:px-2'\n onClick={() =>\n void invokePromise(LayoutOperation.UpdateDialog, { subject: COMMANDS_DIALOG, blockAlign: 'start' })\n }\n >\n <span className='text-description font-normal grow text-start'>{t('command-list-input.placeholder')}</span>\n <Icon icon='ph--magnifying-glass--regular' />\n </Button>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAElB,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,QAAQC,MAAMC,sBAAsB;AAE7C,SAASC,iBAAiBC,YAAY;AAG/B,IAAMC,kBAAkB,MAAA;AAC7B,QAAM,EAAEC,cAAa,IAAKR,oBAAAA;AAC1B,QAAM,EAAES,EAAC,IAAKL,eAAeE,KAAKI,EAAE;AACpC,SACE,sBAAA,cAACR,QAAAA;IACCS,YAAW;IACXC,SAAS,MACP,KAAKJ,cAAcP,gBAAgBY,cAAc;MAAEC,SAAST;MAAiBU,YAAY;IAAQ,CAAA;KAGnG,sBAAA,cAACC,QAAAA;IAAKC,WAAU;KAAgDR,EAAE,gCAAA,CAAA,GAClE,sBAAA,cAACN,MAAAA;IAAKe,MAAK;;AAGjB;",
6
+ "names": ["React", "useOperationInvoker", "LayoutOperation", "Button", "Icon", "useTranslation", "COMMANDS_DIALOG", "meta", "CommandsTrigger", "invokePromise", "t", "id", "classNames", "onClick", "UpdateDialog", "subject", "blockAlign", "span", "className", "icon"]
7
+ }
@@ -0,0 +1,12 @@
1
+ import {
2
+ NODE_TYPE,
3
+ NavTreeContainer
4
+ } from "./chunk-5OPDKH6B.mjs";
5
+ import "./chunk-JOSNCOV4.mjs";
6
+ import "./chunk-J5LGTIGS.mjs";
7
+ export {
8
+ NODE_TYPE,
9
+ NavTreeContainer,
10
+ NavTreeContainer as default
11
+ };
12
+ //# sourceMappingURL=NavTreeContainer-6AR4BFDD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,22 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.tsx
4
+ import { useEffect } from "react";
5
+ import { toLocalizedString, useTranslation } from "@dxos/react-ui";
6
+ import { osTranslations } from "@dxos/ui-theme";
7
+ import { meta } from "#meta";
8
+ var NavTreeDocumentTitle = ({ node }) => {
9
+ const { t } = useTranslation(meta.id);
10
+ useEffect(() => {
11
+ document.title = node ? toLocalizedString(node.properties.label, t) : t("current-app.name", {
12
+ ns: osTranslations
13
+ });
14
+ }, [
15
+ node?.properties?.label
16
+ ]);
17
+ return null;
18
+ };
19
+ export {
20
+ NavTreeDocumentTitle as default
21
+ };
22
+ //# sourceMappingURL=NavTreeDocumentTitle-H3E6ZLYE.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\nimport { useEffect } from 'react';\n\nimport { type Node } from '@dxos/app-graph';\nimport { toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { meta } from '#meta';\n\nexport const NavTreeDocumentTitle = ({ node }: { node?: Node.Node }) => {\n const { t } = useTranslation(meta.id);\n useEffect(() => {\n document.title = node ? toLocalizedString(node.properties.label, t) : t('current-app.name', { ns: osTranslations });\n }, [node?.properties?.label]);\n return null;\n};\n"],
5
+ "mappings": ";;;AAGA,SAASA,iBAAiB;AAG1B,SAASC,mBAAmBC,sBAAsB;AAClD,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AAEd,IAAMC,uBAAuB,CAAC,EAAEC,KAAI,MAAwB;AACjE,QAAM,EAAEC,EAAC,IAAKL,eAAeE,KAAKI,EAAE;AACpCR,YAAU,MAAA;AACRS,aAASC,QAAQJ,OAAOL,kBAAkBK,KAAKK,WAAWC,OAAOL,CAAAA,IAAKA,EAAE,oBAAoB;MAAEM,IAAIV;IAAe,CAAA;EACnH,GAAG;IAACG,MAAMK,YAAYC;GAAM;AAC5B,SAAO;AACT;",
6
+ "names": ["useEffect", "toLocalizedString", "useTranslation", "osTranslations", "meta", "NavTreeDocumentTitle", "node", "t", "id", "document", "title", "properties", "label", "ns"]
7
+ }
@@ -0,0 +1,56 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/NavTreePlugin.tsx
4
+ import * as Effect from "effect/Effect";
5
+ import { ActivationEvent, ActivationEvents, Capabilities, Capability, Plugin } from "@dxos/app-framework";
6
+ import { AppActivationEvents, AppCapabilities, AppPlugin, LayoutOperation } from "@dxos/app-toolkit";
7
+ import { Graph } from "@dxos/plugin-graph";
8
+ import { AppGraphBuilder, Keyboard, OperationHandler, ReactSurface, State } from "#capabilities";
9
+ import { meta } from "#meta";
10
+ import { translations } from "#translations";
11
+ import { NavTreeEvents } from "#types";
12
+ var NavTreePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
13
+ activate: AppGraphBuilder
14
+ }), AppPlugin.addOperationHandlerModule({
15
+ activate: OperationHandler
16
+ }), AppPlugin.addSurfaceModule({
17
+ activate: ReactSurface
18
+ }), AppPlugin.addTranslationsModule({
19
+ translations
20
+ }), Plugin.addModule({
21
+ id: "state",
22
+ activatesOn: AppActivationEvents.LayoutReady,
23
+ firesAfterActivation: [
24
+ NavTreeEvents.StateReady
25
+ ],
26
+ activate: State
27
+ }), Plugin.addModule({
28
+ id: "expose",
29
+ activatesOn: ActivationEvent.allOf(ActivationEvents.OperationInvokerReady, AppActivationEvents.AppGraphReady, AppActivationEvents.LayoutReady, NavTreeEvents.StateReady),
30
+ activate: Effect.fnUntraced(function* () {
31
+ const layout = yield* Capabilities.getAtomValue(AppCapabilities.Layout);
32
+ const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);
33
+ const { graph } = yield* Capability.get(AppCapabilities.AppGraph);
34
+ if (invokePromise && layout.active.length === 1) {
35
+ void Graph.waitForPath(graph, {
36
+ target: layout.active[0]
37
+ }, {
38
+ timeout: 3e4
39
+ }).then(() => invokePromise(LayoutOperation.Expose, {
40
+ subject: layout.active[0]
41
+ })).catch(() => {
42
+ });
43
+ }
44
+ return [];
45
+ })
46
+ }), Plugin.addModule({
47
+ id: "keyboard",
48
+ activatesOn: ActivationEvent.allOf(AppActivationEvents.AppGraphReady, ActivationEvents.OperationInvokerReady),
49
+ activate: Keyboard
50
+ }), Plugin.make);
51
+ var NavTreePlugin_default = NavTreePlugin;
52
+ export {
53
+ NavTreePlugin,
54
+ NavTreePlugin_default as default
55
+ };
56
+ //# sourceMappingURL=NavTreePlugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/NavTreePlugin.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ActivationEvent, ActivationEvents, Capabilities, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppCapabilities, AppPlugin, LayoutOperation } from '@dxos/app-toolkit';\nimport { Graph } from '@dxos/plugin-graph';\n\nimport { AppGraphBuilder, Keyboard, OperationHandler, ReactSurface, State } from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { NavTreeEvents } from '#types';\n\nexport const NavTreePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n id: 'state',\n activatesOn: AppActivationEvents.LayoutReady,\n firesAfterActivation: [NavTreeEvents.StateReady],\n activate: State,\n }),\n Plugin.addModule({\n id: 'expose',\n activatesOn: ActivationEvent.allOf(\n ActivationEvents.OperationInvokerReady,\n AppActivationEvents.AppGraphReady,\n AppActivationEvents.LayoutReady,\n NavTreeEvents.StateReady,\n ),\n activate: Effect.fnUntraced(function* () {\n const layout = yield* Capabilities.getAtomValue(AppCapabilities.Layout);\n const { invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n if (invokePromise && layout.active.length === 1) {\n // TODO(wittjosiah): This should really be fired once the navtree renders for the first time.\n // That is the point at which the graph is expanded and the path should be available.\n void Graph.waitForPath(graph, { target: layout.active[0] }, { timeout: 30_000 })\n .then(() => invokePromise(LayoutOperation.Expose, { subject: layout.active[0] }))\n .catch(() => {});\n }\n\n return [];\n }),\n }),\n Plugin.addModule({\n id: 'keyboard',\n activatesOn: ActivationEvent.allOf(AppActivationEvents.AppGraphReady, ActivationEvents.OperationInvokerReady),\n activate: Keyboard,\n }),\n Plugin.make,\n);\n\nexport default NavTreePlugin;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,kBAAkBC,cAAcC,YAAYC,cAAc;AACpF,SAASC,qBAAqBC,iBAAiBC,WAAWC,uBAAuB;AACjF,SAASC,aAAa;AAEtB,SAASC,iBAAiBC,UAAUC,kBAAkBC,cAAcC,aAAa;AACjF,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAC7B,SAASC,qBAAqB;AAEvB,IAAMC,gBAAgBd,OAAOe,OAAOJ,IAAAA,EAAMK,KAC/Cb,UAAUc,kBAAkB;EAAEC,UAAUZ;AAAgB,CAAA,GACxDH,UAAUgB,0BAA0B;EAAED,UAAUV;AAAiB,CAAA,GACjEL,UAAUiB,iBAAiB;EAAEF,UAAUT;AAAa,CAAA,GACpDN,UAAUkB,sBAAsB;EAAET;AAAa,CAAA,GAC/CZ,OAAOsB,UAAU;EACfC,IAAI;EACJC,aAAavB,oBAAoBwB;EACjCC,sBAAsB;IAACb,cAAcc;;EACrCT,UAAUR;AACZ,CAAA,GACAV,OAAOsB,UAAU;EACfC,IAAI;EACJC,aAAa5B,gBAAgBgC,MAC3B/B,iBAAiBgC,uBACjB5B,oBAAoB6B,eACpB7B,oBAAoBwB,aACpBZ,cAAcc,UAAU;EAE1BT,UAAiBa,kBAAW,aAAA;AAC1B,UAAMC,SAAS,OAAOlC,aAAamC,aAAa/B,gBAAgBgC,MAAM;AACtE,UAAM,EAAEC,cAAa,IAAK,OAAOpC,WAAWqC,IAAItC,aAAauC,gBAAgB;AAC7E,UAAM,EAAEC,MAAK,IAAK,OAAOvC,WAAWqC,IAAIlC,gBAAgBqC,QAAQ;AAChE,QAAIJ,iBAAiBH,OAAOQ,OAAOC,WAAW,GAAG;AAG/C,WAAKpC,MAAMqC,YAAYJ,OAAO;QAAEK,QAAQX,OAAOQ,OAAO,CAAA;MAAG,GAAG;QAAEI,SAAS;MAAO,CAAA,EAC3EC,KAAK,MAAMV,cAAc/B,gBAAgB0C,QAAQ;QAAEC,SAASf,OAAOQ,OAAO,CAAA;MAAG,CAAA,CAAA,EAC7EQ,MAAM,MAAA;MAAO,CAAA;IAClB;AAEA,WAAO,CAAA;EACT,CAAA;AACF,CAAA,GACAhD,OAAOsB,UAAU;EACfC,IAAI;EACJC,aAAa5B,gBAAgBgC,MAAM3B,oBAAoB6B,eAAejC,iBAAiBgC,qBAAqB;EAC5GX,UAAUX;AACZ,CAAA,GACAP,OAAOiD,IAAI;AAGb,IAAA,wBAAenC;",
6
+ "names": ["Effect", "ActivationEvent", "ActivationEvents", "Capabilities", "Capability", "Plugin", "AppActivationEvents", "AppCapabilities", "AppPlugin", "LayoutOperation", "Graph", "AppGraphBuilder", "Keyboard", "OperationHandler", "ReactSurface", "State", "meta", "translations", "NavTreeEvents", "NavTreePlugin", "define", "pipe", "addAppGraphModule", "activate", "addOperationHandlerModule", "addSurfaceModule", "addTranslationsModule", "addModule", "id", "activatesOn", "LayoutReady", "firesAfterActivation", "StateReady", "allOf", "OperationInvokerReady", "AppGraphReady", "fnUntraced", "layout", "getAtomValue", "Layout", "invokePromise", "get", "OperationInvoker", "graph", "AppGraph", "active", "length", "waitForPath", "target", "timeout", "then", "Expose", "subject", "catch", "make"]
7
+ }
@@ -0,0 +1,18 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/NavTreePlugin.node.ts
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppPlugin } from "@dxos/app-toolkit";
6
+ import { AppGraphBuilder, OperationHandler } from "#capabilities";
7
+ import { meta } from "#meta";
8
+ var NavTreePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
9
+ activate: AppGraphBuilder
10
+ }), AppPlugin.addOperationHandlerModule({
11
+ activate: OperationHandler
12
+ }), Plugin.make);
13
+ var NavTreePlugin_node_default = NavTreePlugin;
14
+ export {
15
+ NavTreePlugin,
16
+ NavTreePlugin_node_default as default
17
+ };
18
+ //# sourceMappingURL=NavTreePlugin.node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/NavTreePlugin.node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\n\nimport { AppGraphBuilder, OperationHandler } from '#capabilities';\nimport { meta } from '#meta';\n\nexport const NavTreePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n Plugin.make,\n);\n\nexport default NavTreePlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAE1B,SAASC,iBAAiBC,wBAAwB;AAClD,SAASC,YAAY;AAEd,IAAMC,gBAAgBL,OAAOM,OAAOF,IAAAA,EAAMG,KAC/CN,UAAUO,kBAAkB;EAAEC,UAAUP;AAAgB,CAAA,GACxDD,UAAUS,0BAA0B;EAAED,UAAUN;AAAiB,CAAA,GACjEH,OAAOW,IAAI;AAGb,IAAA,6BAAeN;",
6
+ "names": ["Plugin", "AppPlugin", "AppGraphBuilder", "OperationHandler", "meta", "NavTreePlugin", "define", "pipe", "addAppGraphModule", "activate", "addOperationHandlerModule", "make"]
7
+ }
@@ -0,0 +1,42 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/app-graph-builder.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
7
+ import { Operation } from "@dxos/compute";
8
+ import { GraphBuilder, Node, NodeMatcher } from "@dxos/plugin-graph";
9
+ import { COMMANDS_DIALOG, meta } from "#meta";
10
+ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
11
+ const extensions = yield* GraphBuilder.createExtension({
12
+ id: "root",
13
+ match: NodeMatcher.whenRoot,
14
+ actions: () => Effect.succeed([
15
+ Node.makeAction({
16
+ id: COMMANDS_DIALOG,
17
+ data: () => Operation.invoke(LayoutOperation.UpdateDialog, {
18
+ subject: COMMANDS_DIALOG,
19
+ blockAlign: "start"
20
+ }),
21
+ properties: {
22
+ label: [
23
+ "open-commands.label",
24
+ {
25
+ ns: meta.id
26
+ }
27
+ ],
28
+ icon: "ph--magnifying-glass--regular",
29
+ keyBinding: {
30
+ macos: "meta+k",
31
+ windows: "ctrl+k"
32
+ }
33
+ }
34
+ })
35
+ ])
36
+ });
37
+ return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
38
+ }));
39
+ export {
40
+ app_graph_builder_default as default
41
+ };
42
+ //# sourceMappingURL=app-graph-builder-Z347LKSF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { GraphBuilder, Node, NodeMatcher } from '@dxos/plugin-graph';\n\nimport { COMMANDS_DIALOG, meta } from '#meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* GraphBuilder.createExtension({\n id: 'root',\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed([\n Node.makeAction({\n id: COMMANDS_DIALOG,\n data: () =>\n Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: COMMANDS_DIALOG,\n blockAlign: 'start',\n }),\n properties: {\n label: ['open-commands.label', { ns: meta.id }],\n icon: 'ph--magnifying-glass--regular',\n keyBinding: {\n macos: 'meta+k',\n windows: 'ctrl+k',\n },\n },\n }),\n ]),\n });\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,uBAAuB;AACjD,SAASC,iBAAiB;AAC1B,SAASC,cAAcC,MAAMC,mBAAmB;AAEhD,SAASC,iBAAiBC,YAAY;AAEtC,IAAA,4BAAeR,WAAWS,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAOP,aAAaQ,gBAAgB;IACrDC,IAAI;IACJC,OAAOR,YAAYS;IACnBC,SAAS,MACAC,eAAQ;MACbZ,KAAKa,WAAW;QACdL,IAAIN;QACJY,MAAM,MACJhB,UAAUiB,OAAOlB,gBAAgBmB,cAAc;UAC7CC,SAASf;UACTgB,YAAY;QACd,CAAA;QACFC,YAAY;UACVC,OAAO;YAAC;YAAuB;cAAEC,IAAIlB,KAAKK;YAAG;;UAC7Cc,MAAM;UACNC,YAAY;YACVC,OAAO;YACPC,SAAS;UACX;QACF;MACF,CAAA;KACD;EACL,CAAA;AAEA,SAAO9B,WAAW+B,YAAY9B,gBAAgB+B,iBAAiBrB,UAAAA;AACjE,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "LayoutOperation", "Operation", "GraphBuilder", "Node", "NodeMatcher", "COMMANDS_DIALOG", "meta", "makeModule", "fnUntraced", "extensions", "createExtension", "id", "match", "whenRoot", "actions", "succeed", "makeAction", "data", "invoke", "UpdateDialog", "subject", "blockAlign", "properties", "label", "ns", "icon", "keyBinding", "macos", "windows", "contributes", "AppGraphBuilder"]
7
+ }
@@ -0,0 +1,17 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/index.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("../app-graph-builder-Z347LKSF.mjs"));
6
+ var Keyboard = Capability.lazy("Keyboard", () => import("../keyboard-EJ65BVTC.mjs"));
7
+ var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-ORDOJUL2.mjs"));
8
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-3AJ6BHL4.mjs"));
9
+ var State = Capability.lazy("State", () => import("../state-VVITVXWM.mjs"));
10
+ export {
11
+ AppGraphBuilder,
12
+ Keyboard,
13
+ OperationHandler,
14
+ ReactSurface,
15
+ State
16
+ };
17
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const Keyboard = Capability.lazy('Keyboard', () => import('./keyboard'));\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const State = Capability.lazy('State', () => import('./state'));\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAGpB,IAAMC,kBAAkBD,WAAWE,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAMC,WAAWH,WAAWE,KAAK,YAAY,MAAM,OAAO,0BAAA,CAAA;AAC1D,IAAME,mBAAmBJ,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMG,eAAeL,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMI,QAAQN,WAAWE,KAAK,SAAS,MAAM,OAAO,uBAAA,CAAA;",
6
+ "names": ["Capability", "AppGraphBuilder", "lazy", "Keyboard", "OperationHandler", "ReactSurface", "State"]
7
+ }