@dxos/plugin-navtree 0.9.0 → 0.9.1-staging.ee54ba693a
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.
- package/dist/lib/neutral/{CommandsDialogContent-UBGIQ5FI.mjs → CommandsDialogContent-TEKBCQ3U.mjs} +3 -3
- package/dist/lib/neutral/CommandsDialogContent-TEKBCQ3U.mjs.map +7 -0
- package/dist/lib/neutral/{CommandsTrigger-BH5WLMHK.mjs → CommandsTrigger-HGCI22SP.mjs} +2 -2
- package/dist/lib/neutral/{CommandsTrigger-BH5WLMHK.mjs.map → CommandsTrigger-HGCI22SP.mjs.map} +3 -3
- package/dist/lib/neutral/{NavTreeContainer-6AR4BFDD.mjs → NavTreeContainer-ICDKC2GI.mjs} +2 -2
- package/dist/lib/neutral/{NavTreeDocumentTitle-H3E6ZLYE.mjs → NavTreeDocumentTitle-RMERXZGK.mjs} +2 -2
- package/dist/lib/neutral/{NavTreeDocumentTitle-H3E6ZLYE.mjs.map → NavTreeDocumentTitle-RMERXZGK.mjs.map} +3 -3
- package/dist/lib/neutral/NavTreePlugin.mjs +2 -2
- package/dist/lib/neutral/NavTreePlugin.mjs.map +4 -4
- package/dist/lib/neutral/{app-graph-builder-Z347LKSF.mjs → app-graph-builder-2DYAIROU.mjs} +2 -2
- package/dist/lib/neutral/{app-graph-builder-Z347LKSF.mjs.map → app-graph-builder-2DYAIROU.mjs.map} +3 -3
- package/dist/lib/neutral/capabilities/index.mjs +4 -4
- package/dist/lib/neutral/{chunk-5OPDKH6B.mjs → chunk-4RN6TH36.mjs} +23 -4
- package/dist/lib/neutral/chunk-4RN6TH36.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-ZSWYB7JW.mjs → chunk-BAVI2K7A.mjs} +3 -3
- package/dist/lib/neutral/{chunk-ZSWYB7JW.mjs.map → chunk-BAVI2K7A.mjs.map} +3 -3
- package/dist/lib/neutral/{chunk-T7QS2EFI.mjs → chunk-EAN4K6OL.mjs} +2 -2
- package/dist/lib/neutral/chunk-IRQMJLRY.mjs +45 -0
- package/dist/lib/neutral/chunk-IRQMJLRY.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +52 -43
- package/dist/lib/neutral/components/index.mjs.map +3 -3
- package/dist/lib/neutral/containers/index.mjs +5 -5
- package/dist/lib/neutral/{expose-26FV4W5D.mjs → expose-HIBA2NQG.mjs} +2 -2
- package/dist/lib/neutral/hooks/index.mjs +7 -4
- package/dist/lib/neutral/hooks/index.mjs.map +3 -3
- package/dist/lib/neutral/index.mjs +2 -2
- package/dist/lib/neutral/{keyboard-EJ65BVTC.mjs → keyboard-JM2HCF5N.mjs} +5 -3
- package/dist/lib/neutral/{keyboard-EJ65BVTC.mjs.map → keyboard-JM2HCF5N.mjs.map} +3 -3
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/operations/index.mjs +1 -1
- package/dist/lib/neutral/plugin.mjs +2 -2
- package/dist/lib/neutral/{react-surface-Q5XMAG7Z.mjs → react-surface-QPMUEDZX.mjs} +11 -13
- package/dist/lib/neutral/react-surface-QPMUEDZX.mjs.map +7 -0
- package/dist/lib/neutral/{state-VVJEWUHM.mjs → state-PDZU4PIP.mjs} +2 -2
- package/dist/lib/neutral/state-PDZU4PIP.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +2 -2
- package/dist/lib/neutral/testing/index.mjs.map +3 -3
- package/dist/lib/neutral/translations.mjs +1 -1
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +1 -1
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +4 -4
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/keyboard.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/NavTree/NavTree.d.ts.map +1 -1
- package/dist/types/src/components/NavTree/NavTree.stories.d.ts.map +1 -1
- package/dist/types/src/components/NavTreeItem/NavTreeItemColumns.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/L0Menu.d.ts.map +1 -1
- package/dist/types/src/containers/NavTreeContainer/NavTreeContainer.d.ts.map +1 -1
- package/dist/types/src/hooks/useNavTreeModel.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +32 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/generator.d.ts.map +1 -1
- package/dist/types/src/types/NavTreeCapabilities.d.ts.map +1 -1
- package/dist/types/src/types/NavTreeEvents.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +1 -1
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +31 -0
- package/package.json +41 -41
- package/src/NavTreePlugin.test.ts +1 -1
- package/src/NavTreePlugin.tsx +1 -1
- package/src/capabilities/app-graph-builder.ts +1 -1
- package/src/capabilities/keyboard.ts +5 -2
- package/src/capabilities/react-surface.tsx +8 -14
- package/src/capabilities/state.ts +1 -1
- package/src/components/NavTree/NavTree.stories.tsx +43 -36
- package/src/components/NavTree/NavTree.tsx +5 -4
- package/src/components/NavTreeItem/NavTreeItemAction.tsx +2 -2
- package/src/components/NavTreeItem/NavTreeItemColumns.tsx +7 -4
- package/src/components/Sidebar/L0Menu.tsx +14 -7
- package/src/components/Sidebar/L1Panel.tsx +5 -5
- package/src/containers/CommandsDialogContent/CommandsDialogContent.tsx +2 -2
- package/src/containers/CommandsTrigger/CommandsTrigger.tsx +1 -1
- package/src/containers/NavTreeContainer/NavTreeContainer.tsx +17 -3
- package/src/containers/NavTreeDocumentTitle/NavTreeDocumentTitle.tsx +1 -1
- package/src/hooks/useNavTreeModel.ts +8 -4
- package/src/meta.ts +3 -23
- package/src/testing/generator.ts +8 -6
- package/src/translations.ts +1 -1
- package/src/types/NavTreeCapabilities.ts +1 -1
- package/src/types/NavTreeEvents.ts +1 -1
- package/src/types/schema.ts +2 -2
- package/dist/lib/neutral/CommandsDialogContent-UBGIQ5FI.mjs.map +0 -7
- package/dist/lib/neutral/chunk-5OPDKH6B.mjs.map +0 -7
- package/dist/lib/neutral/chunk-MDGKDQMZ.mjs +0 -37
- package/dist/lib/neutral/chunk-MDGKDQMZ.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-Q5XMAG7Z.mjs.map +0 -7
- package/dist/lib/neutral/state-VVJEWUHM.mjs.map +0 -7
- /package/dist/lib/neutral/{NavTreeContainer-6AR4BFDD.mjs.map → NavTreeContainer-ICDKC2GI.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-T7QS2EFI.mjs.map → chunk-EAN4K6OL.mjs.map} +0 -0
- /package/dist/lib/neutral/{expose-26FV4W5D.mjs.map → expose-HIBA2NQG.mjs.map} +0 -0
|
@@ -7,6 +7,7 @@ import { Capabilities, Capability } from "@dxos/app-framework";
|
|
|
7
7
|
import { Surface } from "@dxos/app-framework/ui";
|
|
8
8
|
import { AppSurface } from "@dxos/app-toolkit/ui";
|
|
9
9
|
import { Node } from "@dxos/plugin-graph";
|
|
10
|
+
import { Position } from "@dxos/util";
|
|
10
11
|
import { CommandsDialogContent, CommandsTrigger, NavTreeContainer, NavTreeDocumentTitle } from "#containers";
|
|
11
12
|
import { COMMANDS_DIALOG } from "#meta";
|
|
12
13
|
var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
|
|
@@ -20,31 +21,28 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
|
|
|
20
21
|
}),
|
|
21
22
|
Surface.create({
|
|
22
23
|
id: "navigation",
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
ref
|
|
30
|
-
});
|
|
31
|
-
}
|
|
24
|
+
filter: Surface.makeFilter(AppSurface.Navigation),
|
|
25
|
+
component: ({ data, ref }) => /* @__PURE__ */ React.createElement(NavTreeContainer, {
|
|
26
|
+
tab: data.current,
|
|
27
|
+
popoverAnchorId: data.popoverAnchorId,
|
|
28
|
+
ref
|
|
29
|
+
})
|
|
32
30
|
}),
|
|
33
31
|
Surface.create({
|
|
34
32
|
id: "documentTitle",
|
|
35
|
-
|
|
33
|
+
filter: Surface.makeFilter(AppSurface.DocumentTitle),
|
|
36
34
|
component: ({ data }) => /* @__PURE__ */ React.createElement(NavTreeDocumentTitle, {
|
|
37
35
|
node: Node.isGraphNode(data.subject) ? data.subject : void 0
|
|
38
36
|
})
|
|
39
37
|
}),
|
|
40
38
|
Surface.create({
|
|
41
39
|
id: "searchInput",
|
|
42
|
-
|
|
43
|
-
position:
|
|
40
|
+
filter: Surface.makeFilter(AppSurface.SearchInput),
|
|
41
|
+
position: Position.last,
|
|
44
42
|
component: () => /* @__PURE__ */ React.createElement(CommandsTrigger, null)
|
|
45
43
|
})
|
|
46
44
|
])));
|
|
47
45
|
export {
|
|
48
46
|
react_surface_default as default
|
|
49
47
|
};
|
|
50
|
-
//# sourceMappingURL=react-surface-
|
|
48
|
+
//# sourceMappingURL=react-surface-QPMUEDZX.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { type ComponentProps } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { Node } from '@dxos/plugin-graph';\nimport { Position } from '@dxos/util';\n\nimport { CommandsDialogContent, CommandsTrigger, NavTreeContainer, NavTreeDocumentTitle } from '#containers';\nimport { COMMANDS_DIALOG } from '#meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: COMMANDS_DIALOG,\n filter: AppSurface.component<ComponentProps<typeof CommandsDialogContent>>(AppSurface.Dialog, COMMANDS_DIALOG),\n component: ({ data, ref }) => <CommandsDialogContent {...data.props} ref={ref} />,\n }),\n Surface.create({\n id: 'navigation',\n filter: Surface.makeFilter(AppSurface.Navigation),\n component: ({ data, ref }) => (\n <NavTreeContainer tab={data.current} popoverAnchorId={data.popoverAnchorId} ref={ref} />\n ),\n }),\n Surface.create({\n id: 'documentTitle',\n filter: Surface.makeFilter(AppSurface.DocumentTitle),\n component: ({ data }) => (\n <NavTreeDocumentTitle node={Node.isGraphNode(data.subject) ? data.subject : undefined} />\n ),\n }),\n Surface.create({\n id: 'searchInput',\n filter: Surface.makeFilter(AppSurface.SearchInput),\n position: Position.last,\n component: () => <CommandsTrigger />,\n }),\n ]),\n ),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAoC;AAE3C,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAEzB,SAASC,uBAAuBC,iBAAiBC,kBAAkBC,4BAA4B;AAC/F,SAASC,uBAAuB;AAEhC,IAAA,wBAAeT,WAAWU,WAAW,MAC5BC,eACLX,WAAWY,YAAYb,aAAac,cAAc;EAChDZ,QAAQa,OAAO;IACbC,IAAIN;IACJO,QAAQd,WAAWe,UAAwDf,WAAWgB,QAAQT,eAAAA;IAC9FQ,WAAW,CAAC,EAAEE,MAAMC,IAAG,MAAO,sBAAA,cAACf,uBAAAA;MAAuB,GAAGc,KAAKE;MAAOD;;EACvE,CAAA;EACAnB,QAAQa,OAAO;IACbC,IAAI;IACJC,QAAQf,QAAQqB,WAAWpB,WAAWqB,UAAU;IAChDN,WAAW,CAAC,EAAEE,MAAMC,IAAG,MACrB,sBAAA,cAACb,kBAAAA;MAAiBiB,KAAKL,KAAKM;MAASC,iBAAiBP,KAAKO;MAAiBN;;EAEhF,CAAA;EACAnB,QAAQa,OAAO;IACbC,IAAI;IACJC,QAAQf,QAAQqB,WAAWpB,WAAWyB,aAAa;IACnDV,WAAW,CAAC,EAAEE,KAAI,MAChB,sBAAA,cAACX,sBAAAA;MAAqBoB,MAAMzB,KAAK0B,YAAYV,KAAKW,OAAO,IAAIX,KAAKW,UAAUC;;EAEhF,CAAA;EACA9B,QAAQa,OAAO;IACbC,IAAI;IACJC,QAAQf,QAAQqB,WAAWpB,WAAW8B,WAAW;IACjDC,UAAU7B,SAAS8B;IACnBjB,WAAW,MAAM,sBAAA,cAACX,iBAAAA,IAAAA;EACpB,CAAA;CACD,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "React", "Capabilities", "Capability", "Surface", "AppSurface", "Node", "Position", "CommandsDialogContent", "CommandsTrigger", "NavTreeContainer", "NavTreeDocumentTitle", "COMMANDS_DIALOG", "makeModule", "succeed", "contributes", "ReactSurface", "create", "id", "filter", "component", "Dialog", "data", "ref", "props", "makeFilter", "Navigation", "tab", "current", "popoverAnchorId", "DocumentTitle", "node", "isGraphNode", "subject", "undefined", "SearchInput", "position", "last"]
|
|
7
|
+
}
|
|
@@ -9,7 +9,7 @@ import { Graph, Node } from "@dxos/plugin-graph";
|
|
|
9
9
|
import { Path } from "@dxos/react-ui-list";
|
|
10
10
|
import { meta } from "#meta";
|
|
11
11
|
import { NavTreeCapabilities } from "#types";
|
|
12
|
-
var KEY = `${meta.
|
|
12
|
+
var KEY = `${meta.profile.key}.state.v1`;
|
|
13
13
|
var defaultItemState = {
|
|
14
14
|
open: false,
|
|
15
15
|
current: false
|
|
@@ -123,4 +123,4 @@ var state_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
|
123
123
|
export {
|
|
124
124
|
state_default as default
|
|
125
125
|
};
|
|
126
|
-
//# sourceMappingURL=state-
|
|
126
|
+
//# sourceMappingURL=state-PDZU4PIP.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/state.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Graph, Node } from '@dxos/plugin-graph';\nimport { Path } from '@dxos/react-ui-list';\n\nimport { meta } from '#meta';\nimport { NavTreeCapabilities } from '#types';\n\nconst KEY = `${meta.profile.key}.state.v1`;\n\n/** Default item state for new entries. */\nconst defaultItemState: NavTreeCapabilities.NavTreeItemState = { open: false, current: false };\n\n/** L0 (top-level workspace) paths are direct children of root — not part of the expandable tree model. */\nconst isTopLevelPath = (path: string[]): boolean => path.length === 2 && path[0] === Node.RootId;\n\n/** Default state entries for initial tree structure. */\n// TODO(thure): Initialize these dynamically.\nconst defaultStateEntries: [string, NavTreeCapabilities.NavTreeItemState][] = [\n ['root', { open: true, current: false }],\n];\n\nconst getInitialState = (): Map<string, NavTreeCapabilities.NavTreeItemState> => {\n const stringified = localStorage.getItem(KEY);\n if (!stringified) {\n return new Map(defaultStateEntries);\n }\n\n try {\n const cached: [string, { open: boolean; current: boolean }][] = JSON.parse(stringified);\n return new Map(cached.map(([key, value]) => [key, { open: value.open, current: false }]));\n } catch {\n return new Map(defaultStateEntries);\n }\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const layoutAtom = yield* Capability.get(AppCapabilities.Layout);\n\n // Backing state for persistence (not reactive).\n const backingState = getInitialState();\n\n // Per-path atom family for fine-grained reactivity.\n // keepAlive prevents atoms from being garbage collected when components unmount,\n // ensuring state is preserved across deletion/restoration cycles.\n const itemAtomFamily = Atom.family((pathString: string) =>\n Atom.make<NavTreeCapabilities.NavTreeItemState>(backingState.get(pathString) ?? { ...defaultItemState }).pipe(\n Atom.keepAlive,\n ),\n );\n\n const getItemAtom = (path: string[]): Atom.Atom<NavTreeCapabilities.NavTreeItemState> => {\n const pathString = Path.create(...path);\n if (!backingState.has(pathString)) {\n backingState.set(pathString, { ...defaultItemState });\n }\n return itemAtomFamily(pathString);\n };\n\n const getItem = (path: string[]): NavTreeCapabilities.NavTreeItemState => {\n return registry.get(getItemAtom(path));\n };\n\n const setItem = (path: string[], key: 'open' | 'current', next: boolean) => {\n const pathString = Path.create(...path);\n const atom = itemAtomFamily(pathString);\n const currentValue = registry.get(atom);\n const newValue = { ...currentValue, [key]: next };\n\n registry.set(atom, newValue);\n\n if (!(key === 'open' && isTopLevelPath(path))) {\n backingState.set(pathString, newValue);\n localStorage.setItem(KEY, JSON.stringify(Array.from(backingState.entries())));\n }\n };\n\n // Subscribe to layout changes to update current state.\n let previous: string[] = [];\n const unsubscribe = registry.subscribe(layoutAtom, (layout) => {\n const removed = previous.filter((id) => !layout.active.includes(id));\n previous = layout.active;\n\n const handleUpdate = () => {\n // Mark removed items as not current.\n removed.forEach((id) => {\n const keys = Array.from(backingState.keys()).filter((key) => Path.last(key) === id);\n keys.forEach((key) => {\n setItem(Path.parts(key), 'current', false);\n });\n });\n\n // Mark active items as current.\n layout.active.forEach((id: string) => {\n const keys = Array.from(new Set([...backingState.keys(), id])).filter((key) => Path.last(key) === id);\n keys.forEach((key) => {\n setItem(Path.parts(key), 'current', true);\n });\n });\n };\n\n // TODO(wittjosiah): This is setTimeout because there's a race between the keys being initialized.\n // Keys are initialized on the first render of an item in the navtree.\n // This could be avoided if the location was a path as well and not just an id.\n // Defer so item path atoms exist and we do not setState during tree render.\n const timeout = setTimeout(handleUpdate, 500);\n return () => clearTimeout(timeout);\n });\n\n // Once graph is ready, expand every node marked open in state so the graph has children loaded for rendering.\n yield* Effect.gen(function* () {\n const { graph } = yield* Capability.waitFor(AppCapabilities.AppGraph);\n\n // Always expand the active workspace so its subtree is initialized.\n const layout = registry.get(layoutAtom);\n if (layout.workspace) {\n Graph.expand(graph, layout.workspace, 'child');\n }\n\n // Expand persisted open nodes, skipping inactive workspace tabs.\n const openPaths = Array.from(backingState.entries())\n .filter(([, state]) => state.open)\n .map(([pathString]) => Path.parts(pathString))\n .filter((path) => !isTopLevelPath(path));\n for (const path of openPaths) {\n const nodeId = path[path.length - 1];\n if (!nodeId) {\n continue;\n }\n Graph.expand(graph, nodeId, 'child');\n }\n }).pipe(Effect.forkDaemon);\n\n return Capability.contributes(\n NavTreeCapabilities.State,\n {\n getItem,\n getItemAtom,\n setItem,\n },\n () => Effect.sync(() => unsubscribe()),\n );\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,uBAAuB;AAChC,SAASC,OAAOC,YAAY;AAC5B,SAASC,YAAY;AAErB,SAASC,YAAY;AACrB,SAASC,2BAA2B;AAEpC,IAAMC,MAAM,GAAGF,KAAKG,QAAQC,GAAG;AAG/B,IAAMC,mBAAyD;EAAEC,MAAM;EAAOC,SAAS;AAAM;AAG7F,IAAMC,iBAAiB,CAACC,SAA4BA,KAAKC,WAAW,KAAKD,KAAK,CAAA,MAAOX,KAAKa;AAI1F,IAAMC,sBAAwE;EAC5E;IAAC;IAAQ;MAAEN,MAAM;MAAMC,SAAS;IAAM;;;AAGxC,IAAMM,kBAAkB,MAAA;AACtB,QAAMC,cAAcC,aAAaC,QAAQd,GAAAA;AACzC,MAAI,CAACY,aAAa;AAChB,WAAO,IAAIG,IAAIL,mBAAAA;EACjB;AAEA,MAAI;AACF,UAAMM,SAA0DC,KAAKC,MAAMN,WAAAA;AAC3E,WAAO,IAAIG,IAAIC,OAAOG,IAAI,CAAC,CAACjB,KAAKkB,KAAAA,MAAW;MAAClB;MAAK;QAAEE,MAAMgB,MAAMhB;QAAMC,SAAS;MAAM;KAAE,CAAA;EACzF,QAAQ;AACN,WAAO,IAAIU,IAAIL,mBAAAA;EACjB;AACF;AAEA,IAAA,gBAAejB,WAAW4B,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAO9B,WAAW+B,IAAIhC,aAAaiC,YAAY;AAChE,QAAMC,aAAa,OAAOjC,WAAW+B,IAAI9B,gBAAgBiC,MAAM;AAG/D,QAAMC,eAAejB,gBAAAA;AAKrB,QAAMkB,iBAAiBvC,KAAKwC,OAAO,CAACC,eAClCzC,KAAK0C,KAA2CJ,aAAaJ,IAAIO,UAAAA,KAAe;IAAE,GAAG5B;EAAiB,CAAA,EAAG8B,KACvG3C,KAAK4C,SAAS,CAAA;AAIlB,QAAMC,cAAc,CAAC5B,SAAAA;AACnB,UAAMwB,aAAalC,KAAKuC,OAAM,GAAI7B,IAAAA;AAClC,QAAI,CAACqB,aAAaS,IAAIN,UAAAA,GAAa;AACjCH,mBAAaU,IAAIP,YAAY;QAAE,GAAG5B;MAAiB,CAAA;IACrD;AACA,WAAO0B,eAAeE,UAAAA;EACxB;AAEA,QAAMjB,UAAU,CAACP,SAAAA;AACf,WAAOgB,SAASC,IAAIW,YAAY5B,IAAAA,CAAAA;EAClC;AAEA,QAAMgC,UAAU,CAAChC,MAAgBL,KAAyBsC,SAAAA;AACxD,UAAMT,aAAalC,KAAKuC,OAAM,GAAI7B,IAAAA;AAClC,UAAMkC,OAAOZ,eAAeE,UAAAA;AAC5B,UAAMW,eAAenB,SAASC,IAAIiB,IAAAA;AAClC,UAAME,WAAW;MAAE,GAAGD;MAAc,CAACxC,GAAAA,GAAMsC;IAAK;AAEhDjB,aAASe,IAAIG,MAAME,QAAAA;AAEnB,QAAI,EAAEzC,QAAQ,UAAUI,eAAeC,IAAAA,IAAQ;AAC7CqB,mBAAaU,IAAIP,YAAYY,QAAAA;AAC7B9B,mBAAa0B,QAAQvC,KAAKiB,KAAK2B,UAAUC,MAAMC,KAAKlB,aAAamB,QAAO,CAAA,CAAA,CAAA;IAC1E;EACF;AAGA,MAAIC,WAAqB,CAAA;AACzB,QAAMC,cAAc1B,SAAS2B,UAAUxB,YAAY,CAACyB,WAAAA;AAClD,UAAMC,UAAUJ,SAASK,OAAO,CAACC,OAAO,CAACH,OAAOI,OAAOC,SAASF,EAAAA,CAAAA;AAChEN,eAAWG,OAAOI;AAElB,UAAME,eAAe,MAAA;AAEnBL,cAAQM,QAAQ,CAACJ,OAAAA;AACf,cAAMK,OAAOd,MAAMC,KAAKlB,aAAa+B,KAAI,CAAA,EAAIN,OAAO,CAACnD,QAAQL,KAAK+D,KAAK1D,GAAAA,MAASoD,EAAAA;AAChFK,aAAKD,QAAQ,CAACxD,QAAAA;AACZqC,kBAAQ1C,KAAKgE,MAAM3D,GAAAA,GAAM,WAAW,KAAA;QACtC,CAAA;MACF,CAAA;AAGAiD,aAAOI,OAAOG,QAAQ,CAACJ,OAAAA;AACrB,cAAMK,OAAOd,MAAMC,KAAK,oBAAIgB,IAAI;aAAIlC,aAAa+B,KAAI;UAAIL;SAAG,CAAA,EAAGD,OAAO,CAACnD,QAAQL,KAAK+D,KAAK1D,GAAAA,MAASoD,EAAAA;AAClGK,aAAKD,QAAQ,CAACxD,QAAAA;AACZqC,kBAAQ1C,KAAKgE,MAAM3D,GAAAA,GAAM,WAAW,IAAA;QACtC,CAAA;MACF,CAAA;IACF;AAMA,UAAM6D,UAAUC,WAAWP,cAAc,GAAA;AACzC,WAAO,MAAMQ,aAAaF,OAAAA;EAC5B,CAAA;AAGA,SAAcG,WAAI,aAAA;AAChB,UAAM,EAAEC,MAAK,IAAK,OAAO1E,WAAW2E,QAAQ1E,gBAAgB2E,QAAQ;AAGpE,UAAMlB,SAAS5B,SAASC,IAAIE,UAAAA;AAC5B,QAAIyB,OAAOmB,WAAW;AACpB3E,YAAM4E,OAAOJ,OAAOhB,OAAOmB,WAAW,OAAA;IACxC;AAGA,UAAME,YAAY3B,MAAMC,KAAKlB,aAAamB,QAAO,CAAA,EAC9CM,OAAO,CAAC,CAAA,EAAGoB,KAAAA,MAAWA,MAAMrE,IAAI,EAChCe,IAAI,CAAC,CAACY,UAAAA,MAAgBlC,KAAKgE,MAAM9B,UAAAA,CAAAA,EACjCsB,OAAO,CAAC9C,SAAS,CAACD,eAAeC,IAAAA,CAAAA;AACpC,eAAWA,QAAQiE,WAAW;AAC5B,YAAME,SAASnE,KAAKA,KAAKC,SAAS,CAAA;AAClC,UAAI,CAACkE,QAAQ;AACX;MACF;AACA/E,YAAM4E,OAAOJ,OAAOO,QAAQ,OAAA;IAC9B;EACF,CAAA,EAAGzC,KAAY0C,iBAAU;AAEzB,SAAOlF,WAAWmF,YAChB7E,oBAAoB8E,OACpB;IACE/D;IACAqB;IACAI;EACF,GACA,MAAauC,YAAK,MAAM7B,YAAAA,CAAAA,CAAAA;AAE5B,CAAA,CAAA;",
|
|
6
|
+
"names": ["Atom", "Effect", "Capabilities", "Capability", "AppCapabilities", "Graph", "Node", "Path", "meta", "NavTreeCapabilities", "KEY", "profile", "key", "defaultItemState", "open", "current", "isTopLevelPath", "path", "length", "RootId", "defaultStateEntries", "getInitialState", "stringified", "localStorage", "getItem", "Map", "cached", "JSON", "parse", "map", "value", "makeModule", "fnUntraced", "registry", "get", "AtomRegistry", "layoutAtom", "Layout", "backingState", "itemAtomFamily", "family", "pathString", "make", "pipe", "keepAlive", "getItemAtom", "create", "has", "set", "setItem", "next", "atom", "currentValue", "newValue", "stringify", "Array", "from", "entries", "previous", "unsubscribe", "subscribe", "layout", "removed", "filter", "id", "active", "includes", "handleUpdate", "forEach", "keys", "last", "parts", "Set", "timeout", "setTimeout", "clearTimeout", "gen", "graph", "waitFor", "AppGraph", "workspace", "expand", "openPaths", "state", "nodeId", "forkDaemon", "contributes", "State", "sync"]
|
|
7
|
+
}
|
|
@@ -242,12 +242,12 @@ var defaultGenerators = {
|
|
|
242
242
|
})
|
|
243
243
|
},
|
|
244
244
|
project: {
|
|
245
|
-
createSchema: () => Schema.Struct({
|
|
245
|
+
createSchema: () => Type.makeObject(DXN.make("com.example.type.project", "0.1.0"))(Schema.Struct({
|
|
246
246
|
title: Schema.String,
|
|
247
247
|
repo: Schema.String,
|
|
248
248
|
status: Schema.String,
|
|
249
249
|
priority: Schema.Number
|
|
250
|
-
})
|
|
250
|
+
})),
|
|
251
251
|
createData: () => ({
|
|
252
252
|
title: random2.commerce.productName(),
|
|
253
253
|
repo: random2.datatype.boolean({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/testing/app-graph-builder.ts", "../../../../src/testing/generator.ts", "../../../../src/testing/update-state.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { type BuilderExtensions } from '@dxos/app-graph';\nimport { log } from '@dxos/log';\nimport { GraphBuilder, Node, NodeMatcher } from '@dxos/plugin-graph';\nimport { random } from '@dxos/random';\n\nexport const storybookGraphBuilders = (): BuilderExtensions => {\n const propertiesCache = new Map<string, Record<string, unknown>>();\n const getProperties = (id: string, defaults: Record<string, unknown>) => {\n const cached = propertiesCache.get(id);\n if (cached) {\n return cached;\n }\n\n propertiesCache.set(id, defaults);\n return defaults;\n };\n\n return Effect.runSync(\n Effect.all([\n // Create app menu actions.\n GraphBuilder.createExtension({\n id: 'appMenu',\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'app-menu', index: i });\n }),\n properties: {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n disposition: 'menu',\n },\n })),\n ),\n }),\n // Create user account node.\n GraphBuilder.createExtension({\n id: 'userAccount',\n match: NodeMatcher.whenRoot,\n connector: () =>\n Effect.succeed([\n Node.make({\n id: 'user-account',\n type: 'user-account',\n properties: {\n label: 'User profile',\n icon: 'ph--user--regular',\n disposition: 'user-account',\n userId: '1234567890ABCDEF',\n hue: random.properties.hue(),\n emoji: random.properties.emoji(),\n status: 'active',\n },\n nodes: [\n Node.make({\n id: 'profile',\n type: 'profile',\n properties: {\n label: 'Profile',\n icon: 'ph--user--regular',\n },\n }),\n Node.make({\n id: 'devices',\n type: 'devices',\n properties: {\n label: 'Devices',\n icon: 'ph--devices--regular',\n },\n }),\n Node.make({\n id: 'security',\n type: 'security',\n properties: {\n label: 'Security',\n icon: 'ph--key--regular',\n },\n }),\n ],\n }),\n ]),\n }),\n // Create space (workspace) nodes directly under root.\n GraphBuilder.createExtension({\n id: 'spaces',\n match: NodeMatcher.whenRoot,\n connector: (_, get) =>\n Effect.sync(() => {\n const count = Atom.make((get) => {\n let value = 3;\n const interval = setInterval(() => {\n if (value >= 10) {\n clearInterval(interval);\n return;\n }\n\n value++;\n get.setSelf(value);\n }, 5000);\n get.addFinalizer(() => clearInterval(interval));\n return value;\n });\n\n return Array.from({ length: get(count) }, (_, i) =>\n Node.make({\n id: `space-${i}`,\n type: 'space',\n properties: getProperties(`space-${i}`, {\n label: `Space ${i}`,\n icon: random.properties.icon(),\n hue: random.properties.hue(),\n disposition: 'workspace',\n }),\n }),\n );\n }),\n }),\n // Create space actions.\n GraphBuilder.createExtension({\n id: 'spaceActions',\n match: NodeMatcher.whenNodeType('space'),\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'space-actions', index: i });\n }),\n properties: getProperties(`action-${i}`, {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n }),\n })),\n ),\n }),\n // Create object nodes.\n GraphBuilder.createExtension({\n id: 'objects',\n match: NodeMatcher.whenNodeType('space'),\n connector: (_, get) =>\n Effect.sync(() => {\n const count = Atom.make((get) => {\n let value = 3;\n const interval = setInterval(() => {\n if (value >= 20) {\n clearInterval(interval);\n return;\n }\n\n value++;\n get.setSelf(value);\n }, 5000);\n get.addFinalizer(() => clearInterval(interval));\n return value;\n });\n\n return Array.from({ length: get(count) }, (_, i) =>\n Node.make({\n id: `object-${i}`,\n type: 'object',\n properties: getProperties(`object-${i}`, {\n label: `Object ${i}`,\n icon: random.properties.icon(),\n ...(i % 3 === 0 && { count: (i + 1) * 2 }),\n ...(i % 3 === 1 && { modifiedCount: i + 1 }),\n }),\n }),\n );\n }),\n }),\n // Create object actions.\n GraphBuilder.createExtension({\n id: 'objectActions',\n match: NodeMatcher.whenNodeType('object'),\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'objectActions', index: i });\n }),\n properties: getProperties(`action-${i}`, {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n }),\n })),\n ),\n }),\n ]),\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { type Node } from '@dxos/app-graph';\nimport { DXN, Obj, Type } from '@dxos/echo';\nimport { TestSchema } from '@dxos/echo/testing';\nimport { random } from '@dxos/random';\nimport { range } from '@dxos/util';\n\n// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/react-ui/testing.\n// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).\n\n// TODO(burdon): Commit to using ECHO to generate all test data? Or convert from raw data?\nexport type TestItem = { id: string; type: string } & Record<string, any>;\n\ntype ObjectDataGenerator = {\n createSchema?: () => Type.AnyObj;\n createData: () => any;\n};\n\ntype ObjectFactory<T> = {\n schema?: Type.AnyObj; // TODO(burdon): Support both typed and expando schema.\n createObject: () => T;\n};\n\ntype ObjectFactoryMap = { [type: string]: ObjectFactory<any> };\n\nconst createFactory = ({ createSchema, createData }: ObjectDataGenerator) => {\n const schema = createSchema?.();\n return {\n schema,\n createObject: () => (schema ? Obj.make(schema, createData()) : Obj.make(TestSchema.Expando, createData())),\n };\n};\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\n\nexport const defaultGenerators: { [type: string]: ObjectDataGenerator } = {\n document: {\n createData: () => ({\n title: random.lorem.sentence(3),\n body: random.lorem.sentences({ min: 1, max: random.number.int({ min: 1, max: 3 }) }),\n }),\n },\n\n image: {\n createData: () => ({\n title: random.lorem.sentence(3),\n image: random.helpers.arrayElement(data.images),\n body: random.datatype.boolean() ? random.lorem.sentences() : undefined,\n }),\n },\n\n project: {\n createSchema: () =>\n Schema.Struct({\n title: Schema.String,\n repo: Schema.String,\n status: Schema.String,\n priority: Schema.Number,\n }).pipe(Type.makeObject(DXN.make('com.example.type.project', '0.1.0'))),\n\n createData: () => ({\n title: random.commerce.productName(),\n repo: random.datatype.boolean({ probability: 0.3 }) ? random.internet.url() : undefined,\n status: random.helpers.arrayElement(Status),\n priority: random.helpers.arrayElement(Priority),\n }),\n },\n};\n\n/**\n * Typed object generator.\n */\nexport class TestObjectGenerator {\n public readonly factories: ObjectFactoryMap;\n\n constructor({ types, factories }: { types?: string[]; factories?: ObjectFactoryMap } = {}) {\n this.factories =\n factories ??\n (types ?? Object.keys(defaultGenerators)).reduce<ObjectFactoryMap>((acc, type) => {\n acc[type] = createFactory(defaultGenerators[type]);\n return acc;\n }, {});\n }\n\n get schema(): Type.AnyObj[] {\n return Object.values(this.factories).map((f) => f.schema!);\n }\n\n createObject({ types }: { types?: string[] } = {}) {\n const type = random.helpers.arrayElement(types ?? Object.keys(this.factories));\n const factory = this.factories[type];\n return factory?.createObject();\n }\n\n createObjects({ types, length }: { types?: string[]; length: number }) {\n return range(length, () => this.createObject({ types }));\n }\n}\n\n// https://unsplash.com\n// TODO(burdon): Use https://picsum.photos?\nconst data = {\n images: [\n '/images/image-1.png',\n '/images/image-2.png',\n '/images/image-3.png',\n '/images/image-4.png',\n '/images/image-5.png',\n '/images/image-6.png',\n ],\n};\n\nexport const createTree = () => {\n const generator = new TestObjectGenerator({ types: ['document'] });\n\n const initialContent = {\n id: 'root',\n data: null,\n type: 'root',\n properties: {\n label: 'Root',\n icon: 'ph--circle--regular',\n },\n nodes: [...Array(4)].map(() => {\n const l0 = generator.createObject();\n return {\n id: random.string.uuid(),\n data: null,\n type: 'category',\n properties: {\n label: l0.title,\n icon: 'ph--horse--regular',\n disposition: 'workspace',\n },\n nodes: [\n ...[...Array(4)].map(() => {\n const l1 = generator.createObject();\n return {\n id: random.string.uuid(),\n data: null,\n type: 'document',\n properties: {\n label: l1.title,\n icon: 'ph--butterfly--regular',\n },\n nodes: [\n {\n id: `${random.string.uuid()}__a1`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--boat--regular',\n },\n },\n {\n id: `${random.string.uuid()}__a2`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--train-simple--regular',\n },\n },\n ],\n } satisfies Node.NodeArg<any>;\n }),\n {\n id: `${random.string.uuid()}__a1`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--boat--regular',\n },\n },\n {\n id: `${random.string.uuid()}__a2`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--train-simple--regular',\n },\n },\n ],\n } satisfies Node.NodeArg<any>;\n }),\n } satisfies Node.NodeArg<any>;\n\n return initialContent;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\n\nimport { type Node } from '@dxos/app-graph';\nimport { log } from '@dxos/log';\nimport { type TreeData } from '@dxos/react-ui-list';\n\nconst removeItem = (tree: Node.NodeArg<any>, source: TreeData) => {\n const parent = getNode(tree, source.path.slice(1, -1));\n const index = parent.nodes!.findIndex((node: Node.NodeArg<any>) => node.id === source.id);\n const item = parent.nodes![index];\n parent.nodes!.splice(index, 1);\n return item;\n};\n\nconst getNode = (tree: Node.NodeArg<any>, path: string[]) => {\n let node = tree;\n for (const part of path) {\n node = node.nodes!.find((n: Node.NodeArg<any>) => n.id === part)!;\n }\n return node;\n};\n\n// TODO(wittjosiah): Reconcile with react-ui-list/Tree/testing.\nexport const updateState = ({\n state,\n instruction,\n source,\n target,\n}: {\n state: Node.NodeArg<any>;\n instruction: Instruction;\n source: TreeData;\n target: TreeData;\n}) => {\n switch (instruction.type) {\n case 'reorder-above': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1, -1));\n const index = parent.nodes!.findIndex(({ id }) => id === target.id);\n parent.nodes!.splice(index, 0, item);\n break;\n }\n\n case 'reorder-below': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1, -1));\n const index = parent.nodes!.findIndex(({ id }) => id === target.id);\n parent.nodes!.splice(index + 1, 0, item);\n break;\n }\n\n case 'make-child': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1));\n parent.nodes!.push(item);\n break;\n }\n\n case 'instruction-blocked':\n break;\n\n default:\n log.warn('Unsupported instruction', instruction);\n break;\n }\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["Atom", "Effect", "log", "GraphBuilder", "Node", "NodeMatcher", "random", "storybookGraphBuilders", "getProperties", "defaults", "propertiesCache", "cached", "createExtension", "whenRoot", "actions", "_", "data", "index", "i", "properties", "disposition", "connector", "type", "label", "userId", "hue", "emoji", "status", "nodes", "count", "interval", "setInterval", "value", "clearInterval", "get", "addFinalizer", "Array", "make", "whenNodeType", "Schema", "DXN", "Obj", "Type", "TestSchema", "random", "range", "createFactory", "createSchema", "createData", "schema", "createObject", "make", "Expando", "Status", "Priority", "defaultGenerators", "document", "title", "lorem", "sentence", "body", "sentences", "min", "max", "number", "int", "image", "helpers", "arrayElement", "data", "images", "datatype", "boolean", "undefined", "project", "Struct", "String", "repo", "status", "priority", "Number", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { type BuilderExtensions } from '@dxos/app-graph';\nimport { log } from '@dxos/log';\nimport { GraphBuilder, Node, NodeMatcher } from '@dxos/plugin-graph';\nimport { random } from '@dxos/random';\n\nexport const storybookGraphBuilders = (): BuilderExtensions => {\n const propertiesCache = new Map<string, Record<string, unknown>>();\n const getProperties = (id: string, defaults: Record<string, unknown>) => {\n const cached = propertiesCache.get(id);\n if (cached) {\n return cached;\n }\n\n propertiesCache.set(id, defaults);\n return defaults;\n };\n\n return Effect.runSync(\n Effect.all([\n // Create app menu actions.\n GraphBuilder.createExtension({\n id: 'appMenu',\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'app-menu', index: i });\n }),\n properties: {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n disposition: 'menu',\n },\n })),\n ),\n }),\n // Create user account node.\n GraphBuilder.createExtension({\n id: 'userAccount',\n match: NodeMatcher.whenRoot,\n connector: () =>\n Effect.succeed([\n Node.make({\n id: 'user-account',\n type: 'user-account',\n properties: {\n label: 'User profile',\n icon: 'ph--user--regular',\n disposition: 'user-account',\n userId: '1234567890ABCDEF',\n hue: random.properties.hue(),\n emoji: random.properties.emoji(),\n status: 'active',\n },\n nodes: [\n Node.make({\n id: 'profile',\n type: 'profile',\n properties: {\n label: 'Profile',\n icon: 'ph--user--regular',\n },\n }),\n Node.make({\n id: 'devices',\n type: 'devices',\n properties: {\n label: 'Devices',\n icon: 'ph--devices--regular',\n },\n }),\n Node.make({\n id: 'security',\n type: 'security',\n properties: {\n label: 'Security',\n icon: 'ph--key--regular',\n },\n }),\n ],\n }),\n ]),\n }),\n // Create space (workspace) nodes directly under root.\n GraphBuilder.createExtension({\n id: 'spaces',\n match: NodeMatcher.whenRoot,\n connector: (_, get) =>\n Effect.sync(() => {\n const count = Atom.make((get) => {\n let value = 3;\n const interval = setInterval(() => {\n if (value >= 10) {\n clearInterval(interval);\n return;\n }\n\n value++;\n get.setSelf(value);\n }, 5000);\n get.addFinalizer(() => clearInterval(interval));\n return value;\n });\n\n return Array.from({ length: get(count) }, (_, i) =>\n Node.make({\n id: `space-${i}`,\n type: 'space',\n properties: getProperties(`space-${i}`, {\n label: `Space ${i}`,\n icon: random.properties.icon(),\n hue: random.properties.hue(),\n disposition: 'workspace',\n }),\n }),\n );\n }),\n }),\n // Create space actions.\n GraphBuilder.createExtension({\n id: 'spaceActions',\n match: NodeMatcher.whenNodeType('space'),\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'space-actions', index: i });\n }),\n properties: getProperties(`action-${i}`, {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n }),\n })),\n ),\n }),\n // Create object nodes.\n GraphBuilder.createExtension({\n id: 'objects',\n match: NodeMatcher.whenNodeType('space'),\n connector: (_, get) =>\n Effect.sync(() => {\n const count = Atom.make((get) => {\n let value = 3;\n const interval = setInterval(() => {\n if (value >= 20) {\n clearInterval(interval);\n return;\n }\n\n value++;\n get.setSelf(value);\n }, 5000);\n get.addFinalizer(() => clearInterval(interval));\n return value;\n });\n\n return Array.from({ length: get(count) }, (_, i) =>\n Node.make({\n id: `object-${i}`,\n type: 'object',\n properties: getProperties(`object-${i}`, {\n label: `Object ${i}`,\n icon: random.properties.icon(),\n ...(i % 3 === 0 && { count: (i + 1) * 2 }),\n ...(i % 3 === 1 && { modifiedCount: i + 1 }),\n }),\n }),\n );\n }),\n }),\n // Create object actions.\n GraphBuilder.createExtension({\n id: 'objectActions',\n match: NodeMatcher.whenNodeType('object'),\n actions: () =>\n Effect.succeed(\n Array.from({ length: 5 }, (_, i) => ({\n id: `action-${i}`,\n data: Effect.fnUntraced(function* () {\n log.info('action', { id: 'objectActions', index: i });\n }),\n properties: getProperties(`action-${i}`, {\n label: `Action ${i}`,\n icon: random.properties.icon(),\n }),\n })),\n ),\n }),\n ]),\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { type Node } from '@dxos/app-graph';\nimport { DXN, Obj, Type } from '@dxos/echo';\nimport { TestSchema } from '@dxos/echo/testing';\nimport { random } from '@dxos/random';\nimport { range } from '@dxos/util';\n\n// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/react-ui/testing.\n// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).\n\n// TODO(burdon): Commit to using ECHO to generate all test data? Or convert from raw data?\nexport type TestItem = { id: string; type: string } & Record<string, any>;\n\ntype ObjectDataGenerator = {\n createSchema?: () => Type.AnyObj;\n createData: () => any;\n};\n\ntype ObjectFactory<T> = {\n schema?: Type.AnyObj; // TODO(burdon): Support both typed and expando schema.\n createObject: () => T;\n};\n\ntype ObjectFactoryMap = { [type: string]: ObjectFactory<any> };\n\nconst createFactory = ({ createSchema, createData }: ObjectDataGenerator) => {\n const schema = createSchema?.();\n return {\n schema,\n createObject: () => (schema ? Obj.make(schema, createData()) : Obj.make(TestSchema.Expando, createData())),\n };\n};\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\n\nexport const defaultGenerators: { [type: string]: ObjectDataGenerator } = {\n document: {\n createData: () => ({\n title: random.lorem.sentence(3),\n body: random.lorem.sentences({ min: 1, max: random.number.int({ min: 1, max: 3 }) }),\n }),\n },\n\n image: {\n createData: () => ({\n title: random.lorem.sentence(3),\n image: random.helpers.arrayElement(data.images),\n body: random.datatype.boolean() ? random.lorem.sentences() : undefined,\n }),\n },\n\n project: {\n createSchema: () =>\n Type.makeObject(DXN.make('com.example.type.project', '0.1.0'))(\n Schema.Struct({\n title: Schema.String,\n repo: Schema.String,\n status: Schema.String,\n priority: Schema.Number,\n }),\n ),\n\n createData: () => ({\n title: random.commerce.productName(),\n repo: random.datatype.boolean({ probability: 0.3 }) ? random.internet.url() : undefined,\n status: random.helpers.arrayElement(Status),\n priority: random.helpers.arrayElement(Priority),\n }),\n },\n};\n\n/**\n * Typed object generator.\n */\nexport class TestObjectGenerator {\n public readonly factories: ObjectFactoryMap;\n\n constructor({ types, factories }: { types?: string[]; factories?: ObjectFactoryMap } = {}) {\n this.factories =\n factories ??\n (types ?? Object.keys(defaultGenerators)).reduce<ObjectFactoryMap>((acc, type) => {\n acc[type] = createFactory(defaultGenerators[type]);\n return acc;\n }, {});\n }\n\n get schema(): Type.AnyObj[] {\n return Object.values(this.factories).map((f) => f.schema!);\n }\n\n createObject({ types }: { types?: string[] } = {}) {\n const type = random.helpers.arrayElement(types ?? Object.keys(this.factories));\n const factory = this.factories[type];\n return factory?.createObject();\n }\n\n createObjects({ types, length }: { types?: string[]; length: number }) {\n return range(length, () => this.createObject({ types }));\n }\n}\n\n// https://unsplash.com\n// TODO(burdon): Use https://picsum.photos?\nconst data = {\n images: [\n '/images/image-1.png',\n '/images/image-2.png',\n '/images/image-3.png',\n '/images/image-4.png',\n '/images/image-5.png',\n '/images/image-6.png',\n ],\n};\n\nexport const createTree = () => {\n const generator = new TestObjectGenerator({ types: ['document'] });\n\n const initialContent = {\n id: 'root',\n data: null,\n type: 'root',\n properties: {\n label: 'Root',\n icon: 'ph--circle--regular',\n },\n nodes: [...Array(4)].map(() => {\n const l0 = generator.createObject();\n return {\n id: random.string.uuid(),\n data: null,\n type: 'category',\n properties: {\n label: l0.title,\n icon: 'ph--horse--regular',\n disposition: 'workspace',\n },\n nodes: [\n ...[...Array(4)].map(() => {\n const l1 = generator.createObject();\n return {\n id: random.string.uuid(),\n data: null,\n type: 'document',\n properties: {\n label: l1.title,\n icon: 'ph--butterfly--regular',\n },\n nodes: [\n {\n id: `${random.string.uuid()}__a1`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--boat--regular',\n },\n },\n {\n id: `${random.string.uuid()}__a2`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--train-simple--regular',\n },\n },\n ],\n } satisfies Node.NodeArg<any>;\n }),\n {\n id: `${random.string.uuid()}__a1`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--boat--regular',\n },\n },\n {\n id: `${random.string.uuid()}__a2`,\n data: () => {},\n type: 'action',\n properties: {\n label: random.lorem.words(2),\n icon: 'ph--train-simple--regular',\n },\n },\n ],\n } satisfies Node.NodeArg<any>;\n }),\n } satisfies Node.NodeArg<any>;\n\n return initialContent;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\n\nimport { type Node } from '@dxos/app-graph';\nimport { log } from '@dxos/log';\nimport { type TreeData } from '@dxos/react-ui-list';\n\nconst removeItem = (tree: Node.NodeArg<any>, source: TreeData) => {\n const parent = getNode(tree, source.path.slice(1, -1));\n const index = parent.nodes!.findIndex((node: Node.NodeArg<any>) => node.id === source.id);\n const item = parent.nodes![index];\n parent.nodes!.splice(index, 1);\n return item;\n};\n\nconst getNode = (tree: Node.NodeArg<any>, path: string[]) => {\n let node = tree;\n for (const part of path) {\n node = node.nodes!.find((n: Node.NodeArg<any>) => n.id === part)!;\n }\n return node;\n};\n\n// TODO(wittjosiah): Reconcile with react-ui-list/Tree/testing.\nexport const updateState = ({\n state,\n instruction,\n source,\n target,\n}: {\n state: Node.NodeArg<any>;\n instruction: Instruction;\n source: TreeData;\n target: TreeData;\n}) => {\n switch (instruction.type) {\n case 'reorder-above': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1, -1));\n const index = parent.nodes!.findIndex(({ id }) => id === target.id);\n parent.nodes!.splice(index, 0, item);\n break;\n }\n\n case 'reorder-below': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1, -1));\n const index = parent.nodes!.findIndex(({ id }) => id === target.id);\n parent.nodes!.splice(index + 1, 0, item);\n break;\n }\n\n case 'make-child': {\n const item = removeItem(state, source);\n const parent = getNode(state, target.path.slice(1));\n parent.nodes!.push(item);\n break;\n }\n\n case 'instruction-blocked':\n break;\n\n default:\n log.warn('Unsupported instruction', instruction);\n break;\n }\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Atom", "Effect", "log", "GraphBuilder", "Node", "NodeMatcher", "random", "storybookGraphBuilders", "getProperties", "defaults", "propertiesCache", "cached", "createExtension", "whenRoot", "actions", "_", "data", "index", "i", "properties", "disposition", "connector", "type", "label", "userId", "hue", "emoji", "status", "nodes", "count", "interval", "setInterval", "value", "clearInterval", "get", "addFinalizer", "Array", "make", "whenNodeType", "Schema", "DXN", "Obj", "Type", "TestSchema", "random", "range", "createFactory", "createSchema", "createData", "schema", "createObject", "make", "Expando", "Status", "Priority", "defaultGenerators", "document", "title", "lorem", "sentence", "body", "sentences", "min", "max", "number", "int", "image", "helpers", "arrayElement", "data", "images", "datatype", "boolean", "undefined", "project", "makeObject", "Struct", "String", "repo", "status", "priority", "Number", "commerce", "productName", "probability", "internet", "url", "TestObjectGenerator", "factories", "types", "Object", "keys", "reduce", "acc", "type", "values", "map", "f", "factory", "createObjects", "length", "createTree", "generator", "initialContent", "id", "properties", "label", "icon", "nodes", "Array", "l0", "string", "uuid", "disposition", "l1", "words", "log", "__dxlog_file", "removeItem", "parent", "nodes", "findIndex", "item", "index", "splice", "getNode", "part", "path", "node", "push"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.
|
|
5
|
-
"mappings": ";;;AAMA,SAASA,YAAY;AAEd,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACD,KAAKE,
|
|
6
|
-
"names": ["meta", "translations", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.profile.key]: {\n 'app-menu.label': 'App menu',\n 'open-commands.label': 'Search commands',\n 'commands-dialog.title': 'Commands',\n 'command-list-input.placeholder': 'Search for commands…',\n 'node-actions-menu-invoker.label': 'More options',\n 'tree-item-actions.label': 'More actions',\n 'button-back.button': 'Back to Space',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;AAMA,SAASA,YAAY;AAEd,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACD,KAAKE,QAAQC,GAAG,GAAG;QAClB,kBAAkB;QAClB,uBAAuB;QACvB,yBAAyB;QACzB,kCAAkC;QAClC,mCAAmC;QACnC,2BAA2B;QAC3B,sBAAsB;MACxB;IACF;EACF;;",
|
|
6
|
+
"names": ["meta", "translations", "profile", "key"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
readonly plugin: {
|
|
3
|
+
readonly key: string;
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly description?: string | undefined;
|
|
6
|
+
readonly author?: string | undefined;
|
|
7
|
+
readonly homePage?: string | undefined;
|
|
8
|
+
readonly source?: string | undefined;
|
|
9
|
+
readonly screenshots?: readonly {
|
|
10
|
+
readonly light?: string | undefined;
|
|
11
|
+
readonly dark?: string | undefined;
|
|
12
|
+
}[] | undefined;
|
|
13
|
+
readonly tags?: readonly string[] | undefined;
|
|
14
|
+
readonly icon?: {
|
|
15
|
+
readonly key: string;
|
|
16
|
+
readonly hue?: string | undefined;
|
|
17
|
+
} | undefined;
|
|
18
|
+
readonly spec?: string | undefined;
|
|
19
|
+
readonly dependsOn?: readonly string[] | undefined;
|
|
20
|
+
};
|
|
21
|
+
readonly publish?: {
|
|
22
|
+
readonly buildCommand?: string | undefined;
|
|
23
|
+
readonly outputDirectory?: string | undefined;
|
|
24
|
+
readonly assetBaseUrl?: string | undefined;
|
|
25
|
+
} | undefined;
|
|
26
|
+
};
|
|
27
|
+
export default _default;
|
|
28
|
+
//# sourceMappingURL=dx.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dx.config.d.ts","sourceRoot":"","sources":["../../dx.config.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as Effect from 'effect/Effect';
|
|
2
2
|
import { Capability } from '@dxos/app-framework';
|
|
3
|
-
|
|
4
|
-
declare const _default: (props: void) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<GraphBuilder.BuilderExtensions>>, never, never>;
|
|
3
|
+
declare const _default: (props: void) => Effect.Effect<Capability.Any, never, never>;
|
|
5
4
|
export default _default;
|
|
6
5
|
//# sourceMappingURL=app-graph-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Capability } from '@dxos/app-framework';
|
|
2
2
|
import { OperationHandlerSet } from '@dxos/compute';
|
|
3
|
-
export declare const AppGraphBuilder: Capability.LazyCapability<void, Capability.
|
|
4
|
-
export declare const Keyboard: Capability.LazyCapability<void, Capability.
|
|
3
|
+
export declare const AppGraphBuilder: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
|
|
4
|
+
export declare const Keyboard: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
|
|
5
5
|
export declare const OperationHandler: Capability.LazyCapability<OperationHandlerSet.OperationHandlerSet, Capability.ModuleReturn, Error>;
|
|
6
|
-
export declare const ReactSurface: Capability.LazyCapability<void, Capability.
|
|
7
|
-
export declare const State: Capability.LazyCapability<void, Capability.
|
|
6
|
+
export declare const ReactSurface: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
|
|
7
|
+
export declare const State: Capability.LazyCapability<void, Capability.ModuleReturn, Error>;
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,eAAe,iEAA0E,CAAC;AACvG,eAAO,MAAM,QAAQ,iEAA0D,CAAC;AAChF,eAAO,MAAM,gBAAgB,oGAG5B,CAAC;AACF,eAAO,MAAM,YAAY,iEAAmE,CAAC;AAC7F,eAAO,MAAM,KAAK,iEAAoD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Effect from 'effect/Effect';
|
|
2
2
|
import { Capability } from '@dxos/app-framework';
|
|
3
|
-
declare const _default: (props: void) => Effect.Effect<Capability.
|
|
3
|
+
declare const _default: (props: void) => Effect.Effect<Capability.Any, Error, Capability.Service>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=keyboard.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Effect from 'effect/Effect';
|
|
2
|
-
import {
|
|
3
|
-
declare const _default: (props: void) => Effect.Effect<Capability.
|
|
2
|
+
import { Capability } from '@dxos/app-framework';
|
|
3
|
+
declare const _default: (props: void) => Effect.Effect<Capability.Any, never, never>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=react-surface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,
|
|
1
|
+
{"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as Effect from 'effect/Effect';
|
|
2
2
|
import { Capability } from '@dxos/app-framework';
|
|
3
|
-
|
|
4
|
-
declare const _default: (props: void) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<NavTreeCapabilities.NavTreeStateStore>>, Error, Capability.Service>;
|
|
3
|
+
declare const _default: (props: void) => Effect.Effect<Capability.Any, Error, Capability.Service>;
|
|
5
4
|
export default _default;
|
|
6
5
|
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTree.d.ts","sourceRoot":"","sources":["../../../../../src/components/NavTree/NavTree.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,IAAI,EAAiD,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"NavTree.d.ts","sourceRoot":"","sources":["../../../../../src/components/NavTree/NavTree.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,IAAI,EAAiD,MAAM,oBAAoB,CAAC;AAQzF,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAGrG,eAAO,MAAM,OAAO;QAHa,MAAM;WAAS,IAAI,CAAC,IAAI;SAAO,MAAM;oEA4BpE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTree.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/NavTree/NavTree.stories.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,
|
|
1
|
+
{"version":3,"file":"NavTree.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/NavTree/NavTree.stories.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAA4B,MAAM,OAAO,CAAC;AAejD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAmG/C,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;CAuC+B,CAAC;eAE3B,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/C,eAAO,MAAM,OAAO,EAAE,KA8CrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTreeItemColumns.d.ts","sourceRoot":"","sources":["../../../../../src/components/NavTreeItem/NavTreeItemColumns.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAkC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NavTreeItemColumns.d.ts","sourceRoot":"","sources":["../../../../../src/components/NavTreeItem/NavTreeItemColumns.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAUvD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAGxD,eAAO,MAAM,kBAAkB,mDAA+B,uBAAuB,uBA+CnF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"L0Menu.d.ts","sourceRoot":"","sources":["../../../../../src/components/Sidebar/L0Menu.tsx"],"names":[],"mappings":"AAcA,OAAO,KAUN,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,
|
|
1
|
+
{"version":3,"file":"L0Menu.d.ts","sourceRoot":"","sources":["../../../../../src/components/Sidebar/L0Menu.tsx"],"names":[],"mappings":"AAcA,OAAO,KAUN,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAIL,KAAK,eAAe,EAKrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA6G1D,eAAO,MAAM,wBAAwB,mBAAoB,eAAe,CAAC,EAAE,CAAC,sBAO3E,CAAC;AAkHF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,MAAM,6FAQhB,WAAW,sBAoGb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTreeContainer.d.ts","sourceRoot":"","sources":["../../../../../src/containers/NavTreeContainer/NavTreeContainer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NavTreeContainer.d.ts","sourceRoot":"","sources":["../../../../../src/containers/NavTreeContainer/NavTreeContainer.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAoE,MAAM,OAAO,CAAC;AAkBzF,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAY/C,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,iBAAiB,8FAgP7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,yFAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavTreeModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNavTreeModel.ts"],"names":[],"mappings":"AAWA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"useNavTreeModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNavTreeModel.ts"],"names":[],"mappings":"AAWA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAsFnD;;GAEG;AACH,eAAO,MAAM,eAAe,WAAY,MAAM,KAAG,SAAS,CAAC,oBAAoB,CAoB9E,CAAC"}
|
package/dist/types/src/meta.d.ts
CHANGED
|
@@ -1,6 +1,36 @@
|
|
|
1
|
-
import { Plugin } from '@dxos/app-framework';
|
|
2
1
|
import { DXN } from '@dxos/keys';
|
|
3
|
-
export declare const meta:
|
|
2
|
+
export declare const meta: {
|
|
3
|
+
readonly profile: {
|
|
4
|
+
readonly key: string;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly description?: string | undefined;
|
|
7
|
+
readonly homePage?: string | undefined;
|
|
8
|
+
readonly source?: string | undefined;
|
|
9
|
+
readonly tags?: readonly string[] | undefined;
|
|
10
|
+
readonly screenshots?: readonly {
|
|
11
|
+
readonly light?: string | undefined;
|
|
12
|
+
readonly dark?: string | undefined;
|
|
13
|
+
}[] | undefined;
|
|
14
|
+
readonly icon?: {
|
|
15
|
+
readonly key: string;
|
|
16
|
+
readonly hue?: string | undefined;
|
|
17
|
+
} | undefined;
|
|
18
|
+
readonly dependsOn?: readonly string[] | undefined;
|
|
19
|
+
readonly spec?: string | undefined;
|
|
20
|
+
readonly createdAt?: string | undefined;
|
|
21
|
+
readonly author?: string | undefined;
|
|
22
|
+
};
|
|
23
|
+
readonly release?: {
|
|
24
|
+
readonly version: string;
|
|
25
|
+
readonly moduleUrl: string;
|
|
26
|
+
readonly dependencies?: {
|
|
27
|
+
readonly [x: string]: string;
|
|
28
|
+
} | undefined;
|
|
29
|
+
readonly pluginKey?: string | undefined;
|
|
30
|
+
readonly manifestHash?: string | undefined;
|
|
31
|
+
readonly createdAt?: string | undefined;
|
|
32
|
+
} | undefined;
|
|
33
|
+
};
|
|
4
34
|
export declare const KEY_BINDING = "KeyBinding";
|
|
5
35
|
export declare const COMMANDS_DIALOG: DXN.DXN;
|
|
6
36
|
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAIjC,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmC,CAAC;AAGrD,eAAO,MAAM,WAAW,eAAe,CAAC;AAExC,eAAO,MAAM,eAAe,SAAiD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/testing/generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,IAAI,EAAE,MAAM,YAAY,CAAC;AAS5C,MAAM,MAAM,QAAQ,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE1E,KAAK,mBAAmB,GAAG;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,CAAC;CACvB,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,IAAI;IACtB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC;AAW/D,eAAO,MAAM,MAAM,UAAgC,CAAC;AACpD,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/testing/generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,IAAI,EAAE,MAAM,YAAY,CAAC;AAS5C,MAAM,MAAM,QAAQ,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE1E,KAAK,mBAAmB,GAAG;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,CAAC;CACvB,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,IAAI;IACtB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC;AAW/D,eAAO,MAAM,MAAM,UAAgC,CAAC;AACpD,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAkCpE,CAAC;AAEF;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,SAAgB,SAAS,EAAE,gBAAgB,CAAC;IAE5C,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAAO,EAOxF;IAED,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAE1B;IAED,YAAY,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAO,OAIhD;IAED,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,SAEpE;CACF;AAeD,eAAO,MAAM,UAAU;;;;;QAQjB,KAAK;QACL,IAAI;;;;;;;YASA,KAAK;YACL,IAAI;YACJ,WAAW;;;;;;;gBAUL,KAAK;gBACL,IAAI;;;;;;;oBAQA,KAAK;oBACL,IAAI;;;;;;;;gBAoBV,KAAK;gBACL,IAAI;;;;CAkBjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTreeCapabilities.d.ts","sourceRoot":"","sources":["../../../../src/types/NavTreeCapabilities.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIjD,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,gBAAgB,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3E,CAAC;AAEF,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"NavTreeCapabilities.d.ts","sourceRoot":"","sources":["../../../../src/types/NavTreeCapabilities.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIjD,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,gBAAgB,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3E,CAAC;AAEF,eAAO,MAAM,KAAK,4CAA6E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavTreeEvents.d.ts","sourceRoot":"","sources":["../../../../src/types/NavTreeEvents.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK3D,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"NavTreeEvents.d.ts","sourceRoot":"","sources":["../../../../src/types/NavTreeEvents.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK3D,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,eAAwE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,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,CAAC,IAAI,CAC1C,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,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1D,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,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/C,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,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,CAAC,IAAI,CAC1C,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,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1D,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,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/C,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC7B,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;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iHAAiH;IACjH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,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"}
|