@dxos/plugin-navtree 0.7.5-labs.e27f9b9 → 0.7.5-main.2567c87

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 (97) hide show
  1. package/dist/lib/browser/{app-graph-builder-BL7LRXCM.mjs → app-graph-builder-OF4MMBLH.mjs} +5 -7
  2. package/dist/lib/browser/{app-graph-builder-BL7LRXCM.mjs.map → app-graph-builder-OF4MMBLH.mjs.map} +3 -3
  3. package/dist/lib/browser/chunk-IMGT2LAL.mjs +658 -0
  4. package/dist/lib/browser/chunk-IMGT2LAL.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-AOAGODQB.mjs → chunk-OI7AAA6Q.mjs} +1 -1
  6. package/dist/lib/browser/chunk-OI7AAA6Q.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +26 -21
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/intent-resolver-74JPWYBP.mjs +42 -0
  10. package/dist/lib/browser/intent-resolver-74JPWYBP.mjs.map +7 -0
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/react-surface-6QWXI53A.mjs +189 -0
  13. package/dist/lib/browser/react-surface-6QWXI53A.mjs.map +7 -0
  14. package/dist/lib/browser/{state-65TQKYX7.mjs → state-HT65TAYL.mjs} +9 -6
  15. package/dist/lib/browser/state-HT65TAYL.mjs.map +7 -0
  16. package/dist/types/src/NavTreePlugin.d.ts.map +1 -1
  17. package/dist/types/src/capabilities/app-graph-builder.d.ts +22 -22
  18. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  19. package/dist/types/src/capabilities/capabilities.d.ts +2 -3
  20. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  21. package/dist/types/src/capabilities/index.d.ts +32 -88
  22. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  23. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  24. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  25. package/dist/types/src/capabilities/state.d.ts +3 -3
  26. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  27. package/dist/types/src/components/CommandsDialog.d.ts.map +1 -1
  28. package/dist/types/src/components/CommandsTrigger.d.ts.map +1 -1
  29. package/dist/types/src/components/NavTree.d.ts +20 -3
  30. package/dist/types/src/components/NavTree.d.ts.map +1 -1
  31. package/dist/types/src/components/NavTree.stories.d.ts +2 -2
  32. package/dist/types/src/components/NavTree.stories.d.ts.map +1 -1
  33. package/dist/types/src/components/NavTreeContainer.d.ts +3 -4
  34. package/dist/types/src/components/NavTreeContainer.d.ts.map +1 -1
  35. package/dist/types/src/components/NavTreeFooter.d.ts +6 -0
  36. package/dist/types/src/components/NavTreeFooter.d.ts.map +1 -0
  37. package/dist/types/src/components/NavTreeItemAction.d.ts +1 -1
  38. package/dist/types/src/components/NavTreeItemAction.d.ts.map +1 -1
  39. package/dist/types/src/components/index.d.ts +0 -2
  40. package/dist/types/src/components/index.d.ts.map +1 -1
  41. package/dist/types/src/stories/Graph.stories.d.ts +2 -2
  42. package/dist/types/src/stories/Graph.stories.d.ts.map +1 -1
  43. package/dist/types/src/translations.d.ts +6 -0
  44. package/dist/types/src/translations.d.ts.map +1 -1
  45. package/dist/types/src/types.d.ts +1 -2
  46. package/dist/types/src/types.d.ts.map +1 -1
  47. package/dist/types/src/util.d.ts +0 -9
  48. package/dist/types/src/util.d.ts.map +1 -1
  49. package/package.json +31 -33
  50. package/src/NavTreePlugin.tsx +10 -8
  51. package/src/capabilities/app-graph-builder.ts +4 -6
  52. package/src/capabilities/capabilities.ts +2 -3
  53. package/src/capabilities/intent-resolver.ts +16 -22
  54. package/src/capabilities/react-surface.tsx +41 -15
  55. package/src/capabilities/state.ts +8 -5
  56. package/src/components/CommandsDialog.tsx +4 -3
  57. package/src/components/CommandsTrigger.tsx +5 -7
  58. package/src/components/NavTree.stories.tsx +5 -5
  59. package/src/components/NavTree.tsx +116 -26
  60. package/src/components/NavTreeContainer.tsx +32 -106
  61. package/src/components/NavTreeFooter.tsx +161 -0
  62. package/src/components/NavTreeItemAction.tsx +4 -12
  63. package/src/components/NotchStart.tsx +2 -2
  64. package/src/components/index.ts +0 -2
  65. package/src/stories/Graph.stories.tsx +4 -5
  66. package/src/translations.ts +6 -0
  67. package/src/types.ts +1 -2
  68. package/src/util.ts +0 -54
  69. package/dist/lib/browser/chunk-54MPRXMH.mjs +0 -1109
  70. package/dist/lib/browser/chunk-54MPRXMH.mjs.map +0 -7
  71. package/dist/lib/browser/chunk-AOAGODQB.mjs.map +0 -7
  72. package/dist/lib/browser/intent-resolver-U25VBFH3.mjs +0 -47
  73. package/dist/lib/browser/intent-resolver-U25VBFH3.mjs.map +0 -7
  74. package/dist/lib/browser/react-surface-LNRTNSM6.mjs +0 -57
  75. package/dist/lib/browser/react-surface-LNRTNSM6.mjs.map +0 -7
  76. package/dist/lib/browser/state-65TQKYX7.mjs.map +0 -7
  77. package/dist/types/src/components/L0Menu.d.ts +0 -9
  78. package/dist/types/src/components/L0Menu.d.ts.map +0 -1
  79. package/dist/types/src/components/L1Panels.d.ts +0 -8
  80. package/dist/types/src/components/L1Panels.d.ts.map +0 -1
  81. package/dist/types/src/components/NavTreeContext.d.ts +0 -4
  82. package/dist/types/src/components/NavTreeContext.d.ts.map +0 -1
  83. package/dist/types/src/components/NavTreeItemColumns.d.ts +0 -4
  84. package/dist/types/src/components/NavTreeItemColumns.d.ts.map +0 -1
  85. package/dist/types/src/components/types.d.ts +0 -25
  86. package/dist/types/src/components/types.d.ts.map +0 -1
  87. package/dist/types/src/hooks.d.ts +0 -3
  88. package/dist/types/src/hooks.d.ts.map +0 -1
  89. package/dist/types/src/stories/StorybookNavTree.d.ts +0 -4
  90. package/dist/types/src/stories/StorybookNavTree.d.ts.map +0 -1
  91. package/src/components/L0Menu.tsx +0 -210
  92. package/src/components/L1Panels.tsx +0 -100
  93. package/src/components/NavTreeContext.tsx +0 -13
  94. package/src/components/NavTreeItemColumns.tsx +0 -71
  95. package/src/components/types.ts +0 -33
  96. package/src/hooks.ts +0 -21
  97. package/src/stories/StorybookNavTree.tsx +0 -63
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/CommandsDialog.tsx", "../../../src/components/CommandsTrigger.tsx", "../../../src/util.ts", "../../../src/components/NavTreeContainer.tsx", "../../../src/components/NavTree.tsx", "../../../src/components/NavTreeItemAction.tsx", "../../../src/components/NavTreeDocumentTitle.tsx", "../../../src/components/NotchStart.tsx", "../../../src/components/HaloButton.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo, useState } from 'react';\n\nimport { useIntentDispatcher, LayoutAction, createIntent } from '@dxos/app-framework';\nimport { type ActionLike, isActionGroup, isAction } from '@dxos/app-graph';\nimport { Keyboard, keySymbols } from '@dxos/keyboard';\nimport { useGraph } from '@dxos/plugin-graph';\nimport { Button, Dialog, Icon, useTranslation, toLocalizedString } from '@dxos/react-ui';\nimport { SearchList } from '@dxos/react-ui-searchlist';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\nimport { getHostPlatform } from '@dxos/util';\n\nimport { KEY_BINDING, NAVTREE_PLUGIN } from '../meta';\n\n// TODO(wittjosiah): This probably deserves its own plugin but for now it lives here w/ other navigation UI.\nexport const CommandsDialogContent = ({ selected: initial }: { selected?: string }) => {\n const { t } = useTranslation(NAVTREE_PLUGIN);\n const [selected, setSelected] = useState<string | undefined>(initial);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { graph } = useGraph();\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: ActionLike[] = [];\n graph?.traverse({\n visitor: (node, path) => {\n if (\n (isAction(node) || isActionGroup(node)) &&\n !actionMap.has(node.id) &&\n current.startsWith(path.slice(0, -1).join('/'))\n ) {\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 // console.log(JSON.stringify(actions, undefined, 2));\n return actions;\n }, [graph]);\n\n const group = allActions.find(({ id }) => id === selected);\n const actions = isActionGroup(group) ? graph.actions(group) : allActions;\n\n return (\n <Dialog.Content classNames={['md:max-is-[30rem] overflow-hidden mbs-12']}>\n <Dialog.Title>{t('commands dialog title', { ns: NAVTREE_PLUGIN })}</Dialog.Title>\n\n {/* TODO(burdon): BUG: Overscrolls container. */}\n <SearchList.Root label={t('command list input placeholder')} classNames='flex flex-col grow overflow-hidden my-2'>\n <SearchList.Input placeholder={t('command list input placeholder')} classNames='px-1 my-2' />\n <SearchList.Content classNames='max-bs-[24rem] overflow-auto'>\n {actions?.map((action) => {\n const label = toLocalizedString(action.properties.label, t);\n const shortcut =\n typeof action.properties.keyBinding === 'string'\n ? action.properties.keyBinding\n : action.properties.keyBinding?.[getHostPlatform()];\n return (\n <SearchList.Item\n value={label}\n key={action.id}\n onSelect={() => {\n if (action.properties.disabled) {\n return;\n }\n\n if (isActionGroup(action)) {\n setSelected(action.id);\n return;\n }\n\n void dispatch(createIntent(LayoutAction.SetLayout, { element: 'dialog', state: false }));\n setTimeout(() => {\n const node = graph.nodes(group ?? action, { relation: 'inbound' })[0];\n void (node && isAction(action) && action.data({ node, caller: KEY_BINDING }));\n });\n }}\n classNames='flex items-center gap-2'\n disabled={action.properties.disabled}\n {...(action.properties?.testId && { 'data-testid': action.properties.testId })}\n >\n <Icon icon={action.properties.icon} size={4} />\n <span className='grow truncate'>{label}</span>\n {shortcut && <span className={mx('shrink-0', descriptionText)}>{keySymbols(shortcut).join('')}</span>}\n </SearchList.Item>\n );\n })}\n </SearchList.Content>\n </SearchList.Root>\n\n <Dialog.Close asChild>\n <Button variant='primary' classNames='mbs-2'>\n {t('close label', { ns: 'os' })}\n </Button>\n </Dialog.Close>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { MagnifyingGlass } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { Button, useTranslation } from '@dxos/react-ui';\nimport { getSize } from '@dxos/react-ui-theme';\n\nimport { COMMANDS_DIALOG, NAVTREE_PLUGIN } from '../meta';\n\n// TODO(thure): Refactor to be handled by a more appropriate plugin.\nexport const CommandsTrigger = () => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { t } = useTranslation(NAVTREE_PLUGIN);\n return (\n <Button\n classNames='m-1 !pli-1 lg:!pli-2'\n onClick={() =>\n dispatch(\n createIntent(LayoutAction.SetLayout, {\n element: 'dialog',\n component: COMMANDS_DIALOG,\n dialogBlockAlign: 'start',\n }),\n )\n }\n >\n <span className='text-description font-normal grow text-start'>{t('command list input placeholder')}</span>\n <MagnifyingGlass className={getSize(5)} />\n </Button>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n type Action,\n type Node,\n type NodeFilter,\n type Graph,\n ACTION_TYPE,\n ACTION_GROUP_TYPE,\n isAction,\n} from '@dxos/app-graph';\nimport { nonNullable } from '@dxos/util';\n\nimport { type FlattenedActions, type NavTreeItemGraphNode } from './types';\n\nexport const getParent = (\n graph: Graph,\n node: NavTreeItemGraphNode,\n path: string[],\n): NavTreeItemGraphNode | undefined => {\n const parentId = path[path.length - 2];\n return graph.nodes(node, { relation: 'inbound' }).find((n) => n.id === parentId) as NavTreeItemGraphNode | undefined;\n};\n\nexport const getPersistenceParent = (\n graph: Graph,\n node: NavTreeItemGraphNode,\n path: string[],\n persistenceClass: string,\n): NavTreeItemGraphNode | null => {\n if (node.properties.acceptPersistenceClass?.has(persistenceClass)) {\n return node;\n } else {\n const parent = getParent(graph, node, path);\n return parent ? getPersistenceParent(graph, parent, path.slice(0, path.length - 1), persistenceClass) : null;\n }\n};\n\nexport const resolveMigrationOperation = (\n graph: Graph,\n activeNode: NavTreeItemGraphNode,\n destinationPath: string[],\n destinationRelatedNode?: NavTreeItemGraphNode,\n): 'transfer' | 'copy' | 'reject' => {\n const activeClass = activeNode.properties.persistenceClass;\n if (destinationRelatedNode && activeClass) {\n const persistenceParent = getPersistenceParent(graph, destinationRelatedNode, destinationPath, activeClass);\n if (persistenceParent) {\n const activeKey = activeNode.properties.persistenceKey;\n if (activeKey && persistenceParent?.properties.acceptPersistenceKey) {\n return persistenceParent.properties.acceptPersistenceKey.has(activeKey) &&\n persistenceParent.properties.onTransferStart\n ? 'transfer'\n : persistenceParent.properties.onCopy\n ? 'copy'\n : 'reject';\n } else {\n return 'reject';\n }\n } else {\n return 'reject';\n }\n } else {\n return 'reject';\n }\n};\n\n// TODO(wittjosiah): Move into node implementation?\nexport const sortActions = (actions: Action[]): Action[] =>\n actions.sort((a, b) => {\n if (a.properties.disposition === b.properties.disposition) {\n return 0;\n }\n\n if (a.properties.disposition === 'toolbar') {\n return -1;\n }\n\n return 1;\n });\n\nexport const getChildren = (\n graph: Graph,\n node: NavTreeItemGraphNode,\n filter?: NodeFilter,\n path: readonly string[] = [],\n): NavTreeItemGraphNode[] => {\n return graph\n .nodes(node, { relation: 'outbound', filter })\n .map((n) => {\n // Break cycles.\n const nextPath = [...path, node.id];\n return nextPath.includes(n.id) ? undefined : (n as NavTreeItemGraphNode);\n })\n .filter(nonNullable) as NavTreeItemGraphNode[];\n};\n\nexport const getActions = (graph: Graph, node: Node): FlattenedActions => {\n return graph.actions(node).reduce(\n (acc: FlattenedActions, arg) => {\n if (arg.properties.disposition === 'item') {\n return acc;\n }\n\n acc.actions.push(arg);\n if (!isAction(arg)) {\n const actionGroup = graph.actions(arg);\n acc.groupedActions[arg.id] = actionGroup;\n }\n return acc;\n },\n { actions: [], groupedActions: {} },\n );\n};\n\nexport const expandChildrenAndActions = (graph: Graph, node: Node) => {\n return Promise.all([expandChildren(graph, node), expandActions(graph, node)]);\n};\n\nexport const expandChildren = (graph: Graph, node: Node) => {\n return graph.expand(node, 'outbound');\n};\n\nexport const expandActions = (graph: Graph, node: Node) => {\n return Promise.all([graph.expand(node, 'outbound', ACTION_TYPE), graph.expand(node, 'outbound', ACTION_GROUP_TYPE)]);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { extractInstruction, type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';\nimport { untracked } from '@preact/signals-core';\nimport React, { memo, useCallback, useEffect } from 'react';\n\nimport { createIntent, LayoutAction, NavigationAction, useIntentDispatcher, Surface } from '@dxos/app-framework';\nimport { isAction, isActionLike, type Node } from '@dxos/app-graph';\nimport { useGraph } from '@dxos/plugin-graph';\nimport { isEchoObject, isSpace } from '@dxos/react-client/echo';\nimport { useMediaQuery, useSidebars } from '@dxos/react-ui';\nimport { isTreeData, type TreeData, type PropsFromTreeItem } from '@dxos/react-ui-list';\nimport { mx } from '@dxos/react-ui-theme';\nimport { arrayMove } from '@dxos/util';\n\nimport { NAV_TREE_ITEM, NavTree, type NavTreeProps } from './NavTree';\nimport { NAVTREE_PLUGIN } from '../meta';\nimport { type NavTreeItemGraphNode } from '../types';\nimport {\n expandActions,\n expandChildren,\n getActions as naturalGetActions,\n getChildren,\n getParent,\n resolveMigrationOperation,\n} from '../util';\n\n// TODO(thure): Is NavTree truly authoritative in this regard?\nexport const NODE_TYPE = 'dxos/app-graph/node';\n\nconst renderItemEnd = ({ node, open }: { node: Node; open: boolean }) => (\n <Surface role='navtree-item-end' data={{ id: node.id, subject: node.data, open }} limit={1} />\n);\n\nexport type NavTreeContainerProps = {\n popoverAnchorId?: string;\n} & Pick<NavTreeProps, 'isOpen' | 'isCurrent' | 'onOpenChange'>;\n\nexport const NavTreeContainer = memo(({ isCurrent, popoverAnchorId, ...props }: NavTreeContainerProps) => {\n const { closeNavigationSidebar } = useSidebars(NAVTREE_PLUGIN);\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { graph } = useGraph();\n\n const getActions = useCallback((node: Node) => naturalGetActions(graph, node), [graph]);\n\n const getItems = useCallback(\n (node?: Node) => {\n return graph.nodes(node ?? graph.root, {\n filter: (node): node is Node => {\n return untracked(() => {\n const action = isActionLike(node);\n const disposition = node.properties.disposition;\n return !action || (action && disposition === 'item');\n });\n },\n });\n },\n [graph],\n );\n\n const getProps = useCallback(\n (node: Node, path: string[]): PropsFromTreeItem => {\n const children = getChildren(graph, node, undefined, path);\n const parentOf =\n children.length > 0 ? children.map(({ id }) => id) : node.properties.role === 'branch' ? [] : undefined;\n return {\n id: node.id,\n label: node.properties.label ?? node.id,\n parentOf,\n icon: node.properties.icon,\n disabled: node.properties.disabled,\n className: mx(node.properties.modified && 'italic', node.properties.className),\n headingClassName: node.properties.headingClassName,\n testId: node.properties.testId,\n };\n },\n [graph],\n );\n\n const loadDescendents = useCallback(\n (node: Node) => {\n void expandActions(graph, node);\n if (!isActionLike(node)) {\n void expandChildren(graph, node).then(() =>\n // Load one level deeper, which resolves some juddering observed on open/close.\n Promise.all(\n getChildren(graph, node).flatMap((child) => [expandActions(graph, child), expandChildren(graph, child)]),\n ),\n );\n }\n },\n [graph],\n );\n\n const canDrop = useCallback((source: TreeData, target: TreeData) => {\n const sourceNode = source.item as Node;\n const targetNode = target.item as Node;\n if (isSpace(targetNode.data)) {\n // TODO(wittjosiah): Find a way to only allow space as source for rearranging.\n return isEchoObject(sourceNode.data) || isSpace(sourceNode.data);\n } else if (isEchoObject(targetNode.data)) {\n return isEchoObject(sourceNode.data);\n } else {\n return false;\n }\n }, []);\n\n const handleSelect = useCallback(\n ({ item: node, path, option }: { item: Node; path: string[]; option: boolean }) => {\n if (!node.data) {\n return;\n }\n\n if (isAction(node)) {\n const [parent] = graph.nodes(node, { relation: 'inbound' });\n void (parent && node.data({ node: parent, caller: NAV_TREE_ITEM }));\n return;\n }\n\n const current = isCurrent(path, node);\n if (!current) {\n void dispatch(createIntent(NavigationAction.Open, { activeParts: { main: [node.id] } }));\n } else if (option) {\n void dispatch(createIntent(NavigationAction.Close, { activeParts: { main: [node.id] } }));\n } else {\n void dispatch(createIntent(LayoutAction.ScrollIntoView, { id: node.id }));\n }\n\n const defaultAction = graph.actions(node).find((action) => action.properties?.disposition === 'default');\n if (isAction(defaultAction)) {\n void (defaultAction.data as () => void)();\n }\n\n if (!isLg) {\n closeNavigationSidebar();\n }\n },\n [graph, dispatch, isCurrent, isLg, closeNavigationSidebar],\n );\n\n // TODO(wittjosiah): Factor out hook.\n useEffect(() => {\n return monitorForElements({\n canMonitor: ({ source }) => isTreeData(source.data),\n onDrop: ({ location, source }) => {\n // Didn't drop on anything.\n if (!location.current.dropTargets.length) {\n return;\n }\n const target = location.current.dropTargets[0];\n const instruction: Instruction | null = extractInstruction(target.data);\n if (instruction !== null && instruction.type !== 'instruction-blocked') {\n const sourceNode = source.data.item as NavTreeItemGraphNode;\n const targetNode = target.data.item as NavTreeItemGraphNode;\n const sourcePath = source.data.path as string[];\n const targetPath = target.data.path as string[];\n const operation =\n sourcePath.slice(0, -1).join() === targetPath.slice(0, -1).join() && instruction.type !== 'make-child'\n ? 'rearrange'\n : resolveMigrationOperation(graph, sourceNode, targetPath, targetNode);\n const sourceParent = getParent(graph, sourceNode, sourcePath);\n const targetParent = getParent(graph, targetNode, targetPath);\n const sourceItems = getItems(sourceParent);\n const targetItems = getItems(targetParent);\n const sourceIndex = sourceItems.findIndex(({ id }) => id === sourceNode.id);\n const targetIndex = targetItems.findIndex(({ id }) => id === targetNode.id);\n const migrationIndex =\n instruction.type === 'make-child'\n ? undefined\n : instruction.type === 'reorder-below'\n ? targetIndex + 1\n : targetIndex;\n switch (operation) {\n case 'rearrange': {\n const nextItems = sourceItems.map(({ data }) => data);\n arrayMove(nextItems, sourceIndex, targetIndex);\n void sourceParent?.properties.onRearrangeChildren?.(nextItems);\n break;\n }\n case 'copy': {\n const target = instruction.type === 'make-child' ? targetNode : targetParent;\n void target?.properties.onCopy?.(sourceNode, migrationIndex);\n break;\n }\n case 'transfer': {\n const target = instruction.type === 'make-child' ? targetNode : targetParent;\n if (!target?.properties.onTransferStart || !sourceParent?.properties.onTransferEnd) {\n break;\n }\n void target?.properties.onTransferStart(sourceNode, migrationIndex);\n void sourceParent?.properties.onTransferEnd?.(sourceNode, target);\n break;\n }\n }\n }\n },\n });\n }, [graph]);\n\n // TODO(thure): What gives this an inline `overflow: initial`?\n return (\n <NavTree\n id={graph.root.id}\n getActions={getActions}\n getItems={getItems}\n getProps={getProps}\n isCurrent={isCurrent}\n loadDescendents={loadDescendents}\n renderItemEnd={renderItemEnd}\n popoverAnchorId={popoverAnchorId}\n canDrop={canDrop}\n onSelect={handleSelect}\n {...props}\n />\n );\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { Fragment, useCallback, useEffect, type FC } from 'react';\n\nimport { isAction, type Node } from '@dxos/app-graph';\nimport { Popover, toLocalizedString, Treegrid, useTranslation } from '@dxos/react-ui';\nimport { Tree, type TreeProps } from '@dxos/react-ui-list';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { NavTreeItemAction } from './NavTreeItemAction';\nimport { NAVTREE_PLUGIN } from '../meta';\nimport { type FlattenedActions, type NavTreeItemGraphNode } from '../types';\n\nexport const NAV_TREE_ITEM = 'NavTreeItem';\n\nexport type NavTreeProps = Omit<\n TreeProps<NavTreeItemGraphNode>,\n 'draggable' | 'gridTemplateColumns' | 'renderColumns'\n> &\n Pick<NavTreeColumnsProps, 'getActions' | 'loadDescendents' | 'renderItemEnd' | 'popoverAnchorId'>;\n\nexport const NavTree = ({ getActions, loadDescendents, renderItemEnd, popoverAnchorId, ...props }: NavTreeProps) => {\n const renderColumns = useCallback<NonNullable<TreeProps<NavTreeItemGraphNode>['renderColumns']>>(\n ({ item, path, open }) => {\n return (\n <NavTreeColumns\n path={path}\n node={item}\n getActions={getActions}\n open={open}\n loadDescendents={loadDescendents}\n renderItemEnd={renderItemEnd}\n popoverAnchorId={popoverAnchorId}\n />\n );\n },\n [renderItemEnd, popoverAnchorId, loadDescendents],\n );\n\n return (\n <Tree\n {...props}\n draggable\n gridTemplateColumns='[tree-row-start] 1fr min-content min-content min-content [tree-row-end]'\n renderColumns={renderColumns}\n />\n );\n};\n\ntype NavTreeColumnsProps = {\n path: string[];\n node: Node;\n getActions: (node: Node) => FlattenedActions;\n open: boolean;\n loadDescendents?: (node: Node) => MaybePromise<void>;\n renderItemEnd?: FC<{ node: Node; open: boolean }>;\n popoverAnchorId?: string;\n};\n\nconst NavTreeColumns = ({\n path,\n node,\n getActions,\n open,\n loadDescendents,\n renderItemEnd: ItemEnd,\n popoverAnchorId,\n}: NavTreeColumnsProps) => {\n const { t } = useTranslation(NAVTREE_PLUGIN);\n\n const level = path.length - 2;\n\n const { actions: _actions, groupedActions } = getActions(node);\n const [primaryAction, ...secondaryActions] = _actions.toSorted((a, b) =>\n a.properties?.disposition === 'toolbar' ? -1 : 1,\n );\n\n const actions = (primaryAction?.properties?.disposition === 'toolbar' ? secondaryActions : _actions)\n .flatMap((action) => (isAction(action) ? [action] : []))\n .filter((action) => !action.properties?.hidden);\n\n const ActionRoot = popoverAnchorId === `dxos.org/ui/${NAV_TREE_ITEM}/${node.id}` ? Popover.Anchor : Fragment;\n\n // TODO(thure): Ideally this should not be necessary.\n useEffect(() => {\n const frame = requestAnimationFrame(() => {\n void loadDescendents?.(node);\n if (primaryAction && !isAction(primaryAction)) {\n void loadDescendents?.(primaryAction);\n }\n });\n return () => cancelAnimationFrame(frame);\n }, [primaryAction]);\n\n return (\n <>\n {primaryAction?.properties?.disposition === 'toolbar' ? (\n <NavTreeItemAction\n testId={primaryAction.properties?.testId}\n label={toLocalizedString(primaryAction.properties?.label, t)}\n icon={primaryAction.properties?.icon ?? 'ph--placeholder--regular'}\n parent={node}\n monolithic={isAction(primaryAction)}\n menuActions={isAction(primaryAction) ? [primaryAction] : groupedActions[primaryAction.id]}\n menuType={primaryAction.properties?.menuType}\n caller={NAV_TREE_ITEM}\n />\n ) : (\n <Treegrid.Cell />\n )}\n <ActionRoot>\n {actions.length > 0 ? (\n <NavTreeItemAction\n testId={`navtree.treeItem.actionsLevel${level}`}\n label={t('tree item actions label')}\n icon='ph--dots-three-vertical--regular'\n parent={node}\n menuActions={actions}\n menuType='dropdown'\n caller={NAV_TREE_ITEM}\n />\n ) : (\n <Treegrid.Cell />\n )}\n </ActionRoot>\n {ItemEnd && <ItemEnd node={node} open={open} />}\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type MutableRefObject, useRef } from 'react';\n\nimport { type Action, type Node } from '@dxos/app-graph';\nimport { useTranslation, toLocalizedString, IconButton } from '@dxos/react-ui';\nimport { DropdownMenu, MenuProvider, type MenuItem } from '@dxos/react-ui-menu';\nimport { hoverableControlItem, hoverableOpenControlItem, mx } from '@dxos/react-ui-theme';\n\nimport { NAVTREE_PLUGIN } from '../meta';\nimport { type ActionProperties } from '../types';\n\nexport type NavTreeItemActionMenuProps = ActionProperties & {\n parent: Node;\n caller?: string;\n monolithic?: boolean;\n menuActions?: Action[];\n suppressNextTooltip?: MutableRefObject<boolean>;\n onAction?: (action: Action) => void;\n};\n\nconst fallbackIcon = 'ph--placeholder--regular';\n\nconst actionButtonProps = {\n iconOnly: true,\n size: 4 as const,\n variant: 'ghost' as const,\n density: 'fine' as const,\n classNames: mx('shrink-0 !pli-2 pointer-fine:!pli-1', hoverableControlItem, hoverableOpenControlItem),\n};\n\nexport const NavTreeItemActionDropdownMenu = ({\n label,\n icon,\n testId,\n menuActions,\n onAction,\n}: NavTreeItemActionMenuProps) => {\n const { t } = useTranslation(NAVTREE_PLUGIN);\n const suppressNextTooltip = useRef<boolean>(false);\n return (\n <MenuProvider onAction={onAction}>\n <DropdownMenu.Root items={menuActions as MenuItem[]} suppressNextTooltip={suppressNextTooltip}>\n <DropdownMenu.Trigger asChild>\n <IconButton\n {...actionButtonProps}\n icon={icon ?? fallbackIcon}\n label={toLocalizedString(label, t)}\n data-testid={testId}\n suppressNextTooltip={suppressNextTooltip}\n />\n </DropdownMenu.Trigger>\n </DropdownMenu.Root>\n </MenuProvider>\n );\n};\n\nexport const NavTreeItemMonolithicAction = ({\n parent,\n properties: { disabled, caller, testId, icon } = { label: 'never' },\n data: invoke,\n baseLabel,\n}: Action & { parent: Node; onAction?: (action: Action) => void; baseLabel: string }) => {\n return (\n <IconButton\n {...actionButtonProps}\n icon={icon ?? fallbackIcon}\n label={baseLabel}\n disabled={disabled}\n onClick={(event) => {\n if (disabled) {\n return;\n }\n event.stopPropagation();\n void invoke?.(caller ? { node: parent, caller } : { node: parent });\n }}\n data-testid={testId}\n />\n );\n};\n\nexport const NavTreeItemAction = ({ monolithic, menuActions, parent: node, ...props }: NavTreeItemActionMenuProps) => {\n const { t } = useTranslation(NAVTREE_PLUGIN);\n\n const monolithicAction = menuActions?.length === 1 && menuActions[0];\n const baseLabel = toLocalizedString(monolithicAction ? monolithicAction.properties!.label : props.label, t);\n\n return monolithic && menuActions?.length === 1 ? (\n <NavTreeItemMonolithicAction baseLabel={baseLabel} parent={node} {...menuActions[0]} />\n ) : (\n <NavTreeItemActionDropdownMenu\n {...props}\n label={baseLabel}\n parent={node}\n menuActions={menuActions}\n onAction={(action) => action.data?.(props.caller ? { node, caller: props.caller } : { node })}\n />\n );\n};\n", "//\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';\n\nimport { NAVTREE_PLUGIN } from '../meta';\n\nexport const NavTreeDocumentTitle = ({ node }: { node?: Node }) => {\n const { t } = useTranslation(NAVTREE_PLUGIN);\n useEffect(() => {\n document.title = node ? toLocalizedString(node.properties.label, t) : t('current app name', { ns: 'appkit' });\n }, [node?.properties?.label]);\n return null;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher, useCapabilities } from '@dxos/app-framework';\nimport { ClientAction } from '@dxos/plugin-client/types';\nimport { ObservabilityCapabilities } from '@dxos/plugin-observability';\nimport { useIdentity } from '@dxos/react-client/halo';\n\nimport { HaloButton } from './HaloButton';\n\n// TODO(thure): Refactor to be handled by a more appropriate plugin (ClientPlugin?).\nexport const NotchStart = () => {\n const identity = useIdentity();\n // TODO(wittjosiah): Can this be removed now?\n const [observability] = useCapabilities(ObservabilityCapabilities.Observability);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n return (\n <HaloButton\n size={8}\n identityKey={identity?.identityKey.toHex()}\n hue={identity?.profile?.data?.hue}\n emoji={identity?.profile?.data?.emoji}\n internal={observability?.group === 'dxos'}\n onClick={() => dispatch(createIntent(ClientAction.ShareIdentity))}\n />\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { ConnectionState, useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Avatar, type Size } from '@dxos/react-ui';\nimport { focusRing, mx } from '@dxos/react-ui-theme';\nimport { hexToFallback } from '@dxos/util';\n\nconst INTERNAL = 'https://avatars.githubusercontent.com/u/57182821';\n\nexport type HaloButtonProps = {\n size?: Size;\n identityKey?: string;\n hue?: string;\n emoji?: string;\n internal?: boolean;\n onClick?: () => void;\n};\n\nexport const HaloButton = (props: HaloButtonProps) => {\n const { onClick, identityKey, internal, size = 8 } = props;\n const fallbackValue = hexToFallback(identityKey ?? '0');\n const { swarm: connectionState } = useNetworkStatus();\n return (\n <button className={mx(focusRing, 'rounded grid place-items-center')} onClick={onClick}>\n <Avatar.Root\n size={size}\n variant='circle'\n status={connectionState === ConnectionState.OFFLINE ? 'error' : internal ? 'internal' : 'active'}\n hue={props.hue || fallbackValue.hue}\n >\n <Avatar.Frame data-testid='treeView.haloButton' data-joyride='welcome/halo'>\n {internal ? <Avatar.Image href={INTERNAL} /> : <Avatar.Fallback text={props.emoji || fallbackValue.emoji} />}\n </Avatar.Frame>\n </Avatar.Root>\n </button>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useMemo", "useState", "useIntentDispatcher", "LayoutAction", "createIntent", "isActionGroup", "isAction", "Keyboard", "keySymbols", "useGraph", "Button", "Dialog", "Icon", "useTranslation", "toLocalizedString", "SearchList", "descriptionText", "mx", "getHostPlatform", "CommandsDialogContent", "selected", "initial", "t", "useTranslation", "NAVTREE_PLUGIN", "setSelected", "useState", "dispatchPromise", "dispatch", "useIntentDispatcher", "graph", "useGraph", "allActions", "useMemo", "current", "Keyboard", "singleton", "getCurrentContext", "actionMap", "Set", "actions", "traverse", "visitor", "node", "path", "isAction", "isActionGroup", "has", "id", "startsWith", "slice", "join", "add", "push", "sort", "a", "b", "toLocalizedString", "properties", "label", "toLowerCase", "localeCompare", "group", "find", "Dialog", "Content", "classNames", "Title", "ns", "SearchList", "Root", "Input", "placeholder", "map", "action", "shortcut", "keyBinding", "getHostPlatform", "Item", "value", "key", "onSelect", "disabled", "createIntent", "LayoutAction", "SetLayout", "element", "state", "setTimeout", "nodes", "relation", "data", "caller", "KEY_BINDING", "testId", "Icon", "icon", "size", "span", "className", "mx", "descriptionText", "keySymbols", "Close", "asChild", "Button", "variant", "MagnifyingGlass", "React", "createIntent", "LayoutAction", "useIntentDispatcher", "Button", "useTranslation", "getSize", "CommandsTrigger", "dispatchPromise", "dispatch", "useIntentDispatcher", "t", "useTranslation", "NAVTREE_PLUGIN", "React", "Button", "classNames", "onClick", "createIntent", "LayoutAction", "SetLayout", "element", "component", "COMMANDS_DIALOG", "dialogBlockAlign", "span", "className", "MagnifyingGlass", "getSize", "ACTION_TYPE", "ACTION_GROUP_TYPE", "isAction", "nonNullable", "getParent", "graph", "node", "path", "parentId", "length", "nodes", "relation", "find", "n", "id", "getPersistenceParent", "persistenceClass", "properties", "acceptPersistenceClass", "has", "parent", "slice", "resolveMigrationOperation", "activeNode", "destinationPath", "destinationRelatedNode", "activeClass", "persistenceParent", "activeKey", "persistenceKey", "acceptPersistenceKey", "onTransferStart", "onCopy", "sortActions", "actions", "sort", "a", "b", "disposition", "getChildren", "filter", "map", "nextPath", "includes", "undefined", "nonNullable", "getActions", "reduce", "acc", "arg", "push", "isAction", "actionGroup", "groupedActions", "expandChildrenAndActions", "Promise", "all", "expandChildren", "expandActions", "expand", "ACTION_TYPE", "ACTION_GROUP_TYPE", "monitorForElements", "extractInstruction", "untracked", "React", "memo", "useCallback", "useEffect", "createIntent", "LayoutAction", "NavigationAction", "useIntentDispatcher", "Surface", "isAction", "isActionLike", "useGraph", "isEchoObject", "isSpace", "useMediaQuery", "useSidebars", "isTreeData", "mx", "arrayMove", "React", "Fragment", "useCallback", "useEffect", "isAction", "Popover", "toLocalizedString", "Treegrid", "useTranslation", "Tree", "React", "useRef", "useTranslation", "toLocalizedString", "IconButton", "DropdownMenu", "MenuProvider", "hoverableControlItem", "hoverableOpenControlItem", "mx", "fallbackIcon", "actionButtonProps", "iconOnly", "size", "variant", "density", "classNames", "mx", "hoverableControlItem", "hoverableOpenControlItem", "NavTreeItemActionDropdownMenu", "label", "icon", "testId", "menuActions", "onAction", "t", "useTranslation", "NAVTREE_PLUGIN", "suppressNextTooltip", "useRef", "React", "MenuProvider", "DropdownMenu", "Root", "items", "Trigger", "asChild", "IconButton", "toLocalizedString", "data-testid", "NavTreeItemMonolithicAction", "parent", "properties", "disabled", "caller", "data", "invoke", "baseLabel", "onClick", "event", "stopPropagation", "node", "NavTreeItemAction", "monolithic", "props", "monolithicAction", "length", "action", "NAV_TREE_ITEM", "NavTree", "getActions", "loadDescendents", "renderItemEnd", "popoverAnchorId", "props", "renderColumns", "useCallback", "item", "path", "open", "React", "NavTreeColumns", "node", "Tree", "draggable", "gridTemplateColumns", "ItemEnd", "t", "useTranslation", "NAVTREE_PLUGIN", "level", "length", "actions", "_actions", "groupedActions", "primaryAction", "secondaryActions", "toSorted", "a", "b", "properties", "disposition", "flatMap", "action", "isAction", "filter", "hidden", "ActionRoot", "id", "Popover", "Anchor", "Fragment", "useEffect", "frame", "requestAnimationFrame", "cancelAnimationFrame", "NavTreeItemAction", "testId", "label", "toLocalizedString", "icon", "parent", "monolithic", "menuActions", "menuType", "caller", "Treegrid", "Cell", "NODE_TYPE", "renderItemEnd", "node", "open", "React", "Surface", "role", "data", "id", "subject", "limit", "NavTreeContainer", "memo", "isCurrent", "popoverAnchorId", "props", "closeNavigationSidebar", "useSidebars", "NAVTREE_PLUGIN", "isLg", "useMediaQuery", "ssr", "dispatchPromise", "dispatch", "useIntentDispatcher", "graph", "useGraph", "getActions", "useCallback", "naturalGetActions", "getItems", "nodes", "root", "filter", "untracked", "action", "isActionLike", "disposition", "properties", "getProps", "path", "children", "getChildren", "undefined", "parentOf", "length", "map", "label", "icon", "disabled", "className", "mx", "modified", "headingClassName", "testId", "loadDescendents", "expandActions", "expandChildren", "then", "Promise", "all", "flatMap", "child", "canDrop", "source", "target", "sourceNode", "item", "targetNode", "isSpace", "isEchoObject", "handleSelect", "option", "isAction", "parent", "relation", "caller", "NAV_TREE_ITEM", "current", "createIntent", "NavigationAction", "Open", "activeParts", "main", "Close", "LayoutAction", "ScrollIntoView", "defaultAction", "actions", "find", "useEffect", "monitorForElements", "canMonitor", "isTreeData", "onDrop", "location", "dropTargets", "instruction", "extractInstruction", "type", "sourcePath", "targetPath", "operation", "slice", "join", "resolveMigrationOperation", "sourceParent", "getParent", "targetParent", "sourceItems", "targetItems", "sourceIndex", "findIndex", "targetIndex", "migrationIndex", "nextItems", "arrayMove", "onRearrangeChildren", "onCopy", "onTransferStart", "onTransferEnd", "NavTree", "onSelect", "useEffect", "toLocalizedString", "useTranslation", "NavTreeDocumentTitle", "node", "t", "useTranslation", "NAVTREE_PLUGIN", "useEffect", "document", "title", "toLocalizedString", "properties", "label", "ns", "React", "createIntent", "useIntentDispatcher", "useCapabilities", "ClientAction", "ObservabilityCapabilities", "useIdentity", "React", "ConnectionState", "useNetworkStatus", "Avatar", "focusRing", "mx", "hexToFallback", "INTERNAL", "HaloButton", "props", "onClick", "identityKey", "internal", "size", "fallbackValue", "hexToFallback", "swarm", "connectionState", "useNetworkStatus", "React", "button", "className", "mx", "focusRing", "Avatar", "Root", "variant", "status", "ConnectionState", "OFFLINE", "hue", "Frame", "data-testid", "data-joyride", "Image", "href", "Fallback", "text", "emoji", "NotchStart", "identity", "useIdentity", "observability", "useCapabilities", "ObservabilityCapabilities", "Observability", "dispatchPromise", "dispatch", "useIntentDispatcher", "React", "HaloButton", "size", "identityKey", "toHex", "hue", "profile", "data", "emoji", "internal", "group", "onClick", "createIntent", "ClientAction", "ShareIdentity"]
7
+ }
@@ -12,4 +12,4 @@ var NavTreeCapabilities;
12
12
  export {
13
13
  NavTreeCapabilities
14
14
  };
15
- //# sourceMappingURL=chunk-AOAGODQB.mjs.map
15
+ //# sourceMappingURL=chunk-OI7AAA6Q.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/capabilities.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type ReactiveObject } from '@dxos/live-object';\n\nimport { NAVTREE_PLUGIN } from '../meta';\n\nexport namespace NavTreeCapabilities {\n export const State = defineCapability<{\n state: Map<string, ReactiveObject<{ open: boolean; current: boolean }>>;\n getItem: (path: string[]) => ReactiveObject<{ open: boolean; current: boolean }>;\n setItem: (path: string[], key: 'open' | 'current', next: boolean) => void;\n isOpen: (path: string[]) => boolean;\n isCurrent: (path: string[]) => boolean;\n }>(`${NAVTREE_PLUGIN}/capability/state`);\n}\n"],
5
+ "mappings": ";;;;;AAIA,SAASA,wBAAwB;;UAKhBC,sBAAAA;uBACFC,QAAQC,iBAMlB,GAAGC,cAAAA,mBAAiC;AACzC,GARiBH,wBAAAA,sBAAAA,CAAAA,EAAAA;",
6
+ "names": ["defineCapability", "NavTreeCapabilities", "State", "defineCapability", "NAVTREE_PLUGIN"]
7
+ }
@@ -1,25 +1,18 @@
1
1
  import {
2
- AppGraphBuilder,
3
- IntentResolver,
4
- Keyboard,
5
2
  NODE_TYPE,
6
- ReactSurface,
7
- State,
8
3
  expandActions,
9
4
  expandChildren,
10
5
  expandChildrenAndActions,
11
6
  getActions,
12
7
  getChildren,
13
- getFirstTwoRenderableChars,
14
8
  getParent,
15
9
  getPersistenceParent,
16
- l0ItemType,
17
10
  resolveMigrationOperation,
18
11
  sortActions
19
- } from "./chunk-54MPRXMH.mjs";
12
+ } from "./chunk-IMGT2LAL.mjs";
20
13
  import {
21
14
  NavTreeCapabilities
22
- } from "./chunk-AOAGODQB.mjs";
15
+ } from "./chunk-OI7AAA6Q.mjs";
23
16
  import {
24
17
  COMMANDS_DIALOG,
25
18
  KEY_BINDING,
@@ -27,6 +20,14 @@ import {
27
20
  meta
28
21
  } from "./chunk-KOXMEAOS.mjs";
29
22
 
23
+ // packages/plugins/plugin-navtree/src/capabilities/index.ts
24
+ import { lazy } from "@dxos/app-framework";
25
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-OF4MMBLH.mjs"));
26
+ var IntentResolver = lazy(() => import("./intent-resolver-74JPWYBP.mjs"));
27
+ var Keyboard = lazy(() => import("./keyboard-MUBRTPI5.mjs"));
28
+ var ReactSurface = lazy(() => import("./react-surface-6QWXI53A.mjs"));
29
+ var State = lazy(() => import("./state-HT65TAYL.mjs"));
30
+
30
31
  // packages/plugins/plugin-navtree/src/events.ts
31
32
  import { Events } from "@dxos/app-framework";
32
33
  var NavTreeEvents;
@@ -35,7 +36,7 @@ var NavTreeEvents;
35
36
  })(NavTreeEvents || (NavTreeEvents = {}));
36
37
 
37
38
  // packages/plugins/plugin-navtree/src/NavTreePlugin.tsx
38
- import { definePlugin, defineModule, Events as Events2, contributes, Capabilities, allOf, createIntent, LayoutAction } from "@dxos/app-framework";
39
+ import { definePlugin, defineModule, Events as Events2, contributes, Capabilities, allOf, oneOf, NavigationAction, createIntent } from "@dxos/app-framework";
39
40
 
40
41
  // packages/plugins/plugin-navtree/src/translations.ts
41
42
  var translations_default = [
@@ -47,6 +48,12 @@ var translations_default = [
47
48
  "commands dialog title": "Commands",
48
49
  "command list input placeholder": "Search for commands\u2026",
49
50
  "node actions menu invoker label": "More options",
51
+ "warning title": "WARNING",
52
+ "technology preview message": "Composer is still in technology preview.",
53
+ "learn more label": "Learn more",
54
+ "released message": "This version released {{released}}.",
55
+ "see release label": "See release on GitHub",
56
+ "powered by dxos message": "Powered by <dxos>DXOS</dxos>",
50
57
  "tree item actions label": "More actions",
51
58
  "empty branch message": "\xA0"
52
59
  }
@@ -58,7 +65,7 @@ var translations_default = [
58
65
  var NavTreePlugin = () => definePlugin(meta, [
59
66
  defineModule({
60
67
  id: `${meta.id}/module/state`,
61
- activatesOn: Events2.LayoutReady,
68
+ activatesOn: allOf(Events2.LayoutReady, Events2.LocationReady),
62
69
  activatesAfter: [
63
70
  NavTreeEvents.StateReady
64
71
  ],
@@ -71,7 +78,7 @@ var NavTreePlugin = () => definePlugin(meta, [
71
78
  }),
72
79
  defineModule({
73
80
  id: `${meta.id}/module/metadata`,
74
- activatesOn: Events2.SetupMetadata,
81
+ activatesOn: oneOf(Events2.Startup, Events2.SetupAppGraph),
75
82
  activate: () => contributes(Capabilities.Metadata, {
76
83
  id: NODE_TYPE,
77
84
  metadata: {
@@ -93,14 +100,14 @@ var NavTreePlugin = () => definePlugin(meta, [
93
100
  }),
94
101
  defineModule({
95
102
  id: `${meta.id}/module/expose`,
96
- activatesOn: allOf(Events2.DispatcherReady, Events2.LayoutReady, NavTreeEvents.StateReady),
103
+ activatesOn: allOf(Events2.DispatcherReady, Events2.LayoutReady, Events2.LocationReady, NavTreeEvents.StateReady),
97
104
  activate: async (context) => {
98
- const layout = context.requestCapability(Capabilities.Layout);
105
+ const location = context.requestCapability(Capabilities.Location);
99
106
  const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
100
- if (dispatch && layout.active.length === 1) {
101
- await dispatch(createIntent(LayoutAction.Expose, {
102
- part: "navigation",
103
- subject: layout.active[0]
107
+ const soloPart = location.active.solo?.[0];
108
+ if (dispatch && soloPart) {
109
+ await dispatch(createIntent(NavigationAction.Expose, {
110
+ id: soloPart.id
104
111
  }));
105
112
  }
106
113
  return [];
@@ -113,7 +120,7 @@ var NavTreePlugin = () => definePlugin(meta, [
113
120
  }),
114
121
  defineModule({
115
122
  id: `${meta.id}/module/react-surface`,
116
- activatesOn: Events2.SetupSurfaces,
123
+ activatesOn: Events2.Startup,
117
124
  activate: ReactSurface
118
125
  }),
119
126
  defineModule({
@@ -139,10 +146,8 @@ export {
139
146
  expandChildrenAndActions,
140
147
  getActions,
141
148
  getChildren,
142
- getFirstTwoRenderableChars,
143
149
  getParent,
144
150
  getPersistenceParent,
145
- l0ItemType,
146
151
  meta,
147
152
  resolveMigrationOperation,
148
153
  sortActions
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/events.ts", "../../../src/NavTreePlugin.tsx", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { NAVTREE_PLUGIN } from './meta';\n\nexport namespace NavTreeEvents {\n export const StateReady = Events.createStateEvent(NAVTREE_PLUGIN);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n definePlugin,\n defineModule,\n Events,\n contributes,\n Capabilities,\n allOf,\n createIntent,\n LayoutAction,\n} from '@dxos/app-framework';\nimport { type TreeData } from '@dxos/react-ui-list';\n\nimport { AppGraphBuilder, IntentResolver, Keyboard, ReactSurface, State } from './capabilities';\nimport { NODE_TYPE } from './components';\nimport { NavTreeEvents } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const NavTreePlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/state`,\n activatesOn: Events.LayoutReady,\n activatesAfter: [NavTreeEvents.StateReady],\n activate: State,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: NODE_TYPE,\n metadata: {\n parse: ({ item }: TreeData, type: string) => {\n switch (type) {\n case 'node':\n return item;\n case 'object':\n return item.data;\n case 'view-object':\n return { id: `${item.id}-view`, object: item.data };\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/expose`,\n activatesOn: allOf(Events.DispatcherReady, Events.LayoutReady, NavTreeEvents.StateReady),\n activate: async (context) => {\n const layout = context.requestCapability(Capabilities.Layout);\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n\n if (dispatch && layout.active.length === 1) {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: layout.active[0] }));\n }\n\n return [];\n },\n }),\n defineModule({\n id: `${meta.id}/module/keyboard`,\n activatesOn: Events.AppGraphReady,\n activate: Keyboard,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupSurfaces,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntents,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { NAVTREE_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [NAVTREE_PLUGIN]: {\n 'open settings label': 'Settings',\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 'empty branch message': ' ',\n },\n },\n },\n];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAc;;UAINC,gBAAAA;iBACFC,aAAaC,OAAOC,iBAAiBC,cAAAA;AACpD,GAFiBJ,kBAAAA,gBAAAA,CAAAA,EAAAA;;;ACJjB,SACEK,cACAC,cACAC,UAAAA,SACAC,aACAC,cACAC,OACAC,cACAC,oBACK;;;ACPP,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,cAAAA,GAAiB;QAChB,uBAAuB;QACvB,uBAAuB;QACvB,yBAAyB;QACzB,kCAAkC;QAClC,mCAAmC;QACnC,2BAA2B;QAC3B,wBAAwB;MAC1B;IACF;EACF;;;;ADGK,IAAMC,gBAAgB,MAC3BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,gBAAgB;MAACC,cAAcC;;IAC/BC,UAAUC;EACZ,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOO;IACpBF,UAAU,MAAMG,YAAYC,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACAd,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOY;IACpBP,UAAU,MACRG,YAAYC,aAAaI,UAAU;MACjCf,IAAIgB;MACJC,UAAU;QACRC,OAAO,CAAC,EAAEC,KAAI,GAAcC,SAAAA;AAC1B,kBAAQA,MAAAA;YACN,KAAK;AACH,qBAAOD;YACT,KAAK;AACH,qBAAOA,KAAKE;YACd,KAAK;AACH,qBAAO;gBAAErB,IAAI,GAAGmB,KAAKnB,EAAE;gBAASsB,QAAQH,KAAKE;cAAK;UACtD;QACF;MACF;IACF,CAAA;EACJ,CAAA;EACAtB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAasB,MAAMrB,QAAOsB,iBAAiBtB,QAAOC,aAAaE,cAAcC,UAAU;IACvFC,UAAU,OAAOkB,YAAAA;AACf,YAAMC,SAASD,QAAQE,kBAAkBhB,aAAaiB,MAAM;AAC5D,YAAM,EAAEC,iBAAiBC,SAAQ,IAAKL,QAAQE,kBAAkBhB,aAAaoB,gBAAgB;AAE7F,UAAID,YAAYJ,OAAOM,OAAOC,WAAW,GAAG;AAC1C,cAAMH,SAASI,aAAaC,aAAaC,QAAQ;UAAEC,MAAM;UAAcC,SAASZ,OAAOM,OAAO,CAAA;QAAG,CAAA,CAAA;MACnG;AAEA,aAAO,CAAA;IACT;EACF,CAAA;EACAjC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOqC;IACpBhC,UAAUiC;EACZ,CAAA;EACAzC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOuC;IACpBlC,UAAUmC;EACZ,CAAA;EACA3C,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOyC;IACpBpC,UAAUqC;EACZ,CAAA;EACA7C,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO2C;IACpBtC,UAAUuC;EACZ,CAAA;CACD;",
6
- "names": ["Events", "NavTreeEvents", "StateReady", "Events", "createStateEvent", "NAVTREE_PLUGIN", "definePlugin", "defineModule", "Events", "contributes", "Capabilities", "allOf", "createIntent", "LayoutAction", "NAVTREE_PLUGIN", "NavTreePlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "LayoutReady", "activatesAfter", "NavTreeEvents", "StateReady", "activate", "State", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "SetupMetadata", "Metadata", "NODE_TYPE", "metadata", "parse", "item", "type", "data", "object", "allOf", "DispatcherReady", "context", "layout", "requestCapability", "Layout", "dispatchPromise", "dispatch", "IntentDispatcher", "active", "length", "createIntent", "LayoutAction", "Expose", "part", "subject", "AppGraphReady", "Keyboard", "SetupSurfaces", "ReactSurface", "SetupIntents", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
3
+ "sources": ["../../../src/capabilities/index.ts", "../../../src/events.ts", "../../../src/NavTreePlugin.tsx", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const Keyboard = lazy(() => import('./keyboard'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const State = lazy(() => import('./state'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { NAVTREE_PLUGIN } from './meta';\n\nexport namespace NavTreeEvents {\n export const StateReady = Events.createStateEvent(NAVTREE_PLUGIN);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n definePlugin,\n defineModule,\n Events,\n contributes,\n Capabilities,\n allOf,\n oneOf,\n NavigationAction,\n createIntent,\n} from '@dxos/app-framework';\nimport { type TreeData } from '@dxos/react-ui-list';\n\nimport { AppGraphBuilder, IntentResolver, Keyboard, ReactSurface, State } from './capabilities';\nimport { NODE_TYPE } from './components';\nimport { NavTreeEvents } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const NavTreePlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/state`,\n activatesOn: allOf(Events.LayoutReady, Events.LocationReady),\n activatesAfter: [NavTreeEvents.StateReady],\n activate: State,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: NODE_TYPE,\n metadata: {\n parse: ({ item }: TreeData, type: string) => {\n switch (type) {\n case 'node':\n return item;\n case 'object':\n return item.data;\n case 'view-object':\n return { id: `${item.id}-view`, object: item.data };\n }\n },\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/expose`,\n activatesOn: allOf(Events.DispatcherReady, Events.LayoutReady, Events.LocationReady, NavTreeEvents.StateReady),\n activate: async (context) => {\n const location = context.requestCapability(Capabilities.Location);\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n\n const soloPart = location.active.solo?.[0];\n if (dispatch && soloPart) {\n await dispatch(createIntent(NavigationAction.Expose, { id: soloPart.id }));\n }\n\n return [];\n },\n }),\n defineModule({\n id: `${meta.id}/module/keyboard`,\n activatesOn: Events.AppGraphReady,\n activate: Keyboard,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.Startup,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntents,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { NAVTREE_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [NAVTREE_PLUGIN]: {\n 'open settings label': 'Settings',\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 'warning title': 'WARNING',\n 'technology preview message': 'Composer is still in technology preview.',\n 'learn more label': 'Learn more',\n 'released message': 'This version released {{released}}.',\n 'see release label': 'See release on GitHub',\n 'powered by dxos message': 'Powered by <dxos>DXOS</dxos>',\n 'tree item actions label': 'More actions',\n 'empty branch message': ' ',\n },\n },\n },\n];\n"],
5
+ "mappings": "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",
6
+ "names": ["lazy", "AppGraphBuilder", "lazy", "IntentResolver", "Keyboard", "ReactSurface", "State", "Events", "NavTreeEvents", "StateReady", "Events", "createStateEvent", "NAVTREE_PLUGIN", "definePlugin", "defineModule", "Events", "contributes", "Capabilities", "allOf", "oneOf", "NavigationAction", "createIntent", "NAVTREE_PLUGIN", "NavTreePlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "allOf", "Events", "LayoutReady", "LocationReady", "activatesAfter", "NavTreeEvents", "StateReady", "activate", "State", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "oneOf", "Startup", "SetupAppGraph", "Metadata", "NODE_TYPE", "metadata", "parse", "item", "type", "data", "object", "DispatcherReady", "context", "location", "requestCapability", "Location", "dispatchPromise", "dispatch", "IntentDispatcher", "soloPart", "active", "solo", "createIntent", "NavigationAction", "Expose", "AppGraphReady", "Keyboard", "ReactSurface", "SetupIntents", "IntentResolver", "AppGraphBuilder"]
7
7
  }
@@ -0,0 +1,42 @@
1
+ import {
2
+ NavTreeCapabilities
3
+ } from "./chunk-OI7AAA6Q.mjs";
4
+ import "./chunk-KOXMEAOS.mjs";
5
+
6
+ // packages/plugins/plugin-navtree/src/capabilities/intent-resolver.ts
7
+ import { contributes, Capabilities, NavigationAction, createResolver } from "@dxos/app-framework";
8
+ import { log } from "@dxos/log";
9
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-navtree/src/capabilities/intent-resolver.ts";
10
+ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, createResolver(NavigationAction.Expose, async ({ id }) => {
11
+ const { graph } = context.requestCapability(Capabilities.AppGraph);
12
+ const { getItem, setItem } = context.requestCapability(NavTreeCapabilities.State);
13
+ try {
14
+ const path = await graph.waitForPath({
15
+ target: id
16
+ }, {
17
+ timeout: 1e3
18
+ });
19
+ [
20
+ ...Array(path.length)
21
+ ].forEach((_, index) => {
22
+ const subpath = path.slice(0, index);
23
+ const value = getItem(subpath);
24
+ if (!value.open) {
25
+ setItem(subpath, "open", true);
26
+ }
27
+ });
28
+ } catch {
29
+ log.warn("Path to node not found", {
30
+ id
31
+ }, {
32
+ F: __dxlog_file,
33
+ L: 27,
34
+ S: void 0,
35
+ C: (f, a) => f(...a)
36
+ });
37
+ }
38
+ }));
39
+ export {
40
+ intent_resolver_default as default
41
+ };
42
+ //# sourceMappingURL=intent-resolver-74JPWYBP.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginsContext, Capabilities, NavigationAction, createResolver } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\n\nimport { NavTreeCapabilities } from './capabilities';\n\nexport default (context: PluginsContext) =>\n contributes(\n Capabilities.IntentResolver,\n createResolver(NavigationAction.Expose, async ({ id }) => {\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const { getItem, setItem } = context.requestCapability(NavTreeCapabilities.State);\n\n try {\n const path = await graph.waitForPath({ target: id }, { timeout: 1_000 });\n [...Array(path.length)].forEach((_, index) => {\n const subpath = path.slice(0, index);\n const value = getItem(subpath);\n if (!value.open) {\n setItem(subpath, 'open', true);\n }\n });\n } catch {\n log.warn('Path to node not found', { id });\n }\n }),\n );\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,aAAkCC,cAAcC,kBAAkBC,sBAAsB;AACjG,SAASC,WAAW;;AAIpB,IAAA,0BAAe,CAACC,YACdC,YACEC,aAAaC,gBACbC,eAAeC,iBAAiBC,QAAQ,OAAO,EAAEC,GAAE,MAAE;AACnD,QAAM,EAAEC,MAAK,IAAKR,QAAQS,kBAAkBP,aAAaQ,QAAQ;AACjE,QAAM,EAAEC,SAASC,QAAO,IAAKZ,QAAQS,kBAAkBI,oBAAoBC,KAAK;AAEhF,MAAI;AACF,UAAMC,OAAO,MAAMP,MAAMQ,YAAY;MAAEC,QAAQV;IAAG,GAAG;MAAEW,SAAS;IAAM,CAAA;AACtE;SAAIC,MAAMJ,KAAKK,MAAM;MAAGC,QAAQ,CAACC,GAAGC,UAAAA;AAClC,YAAMC,UAAUT,KAAKU,MAAM,GAAGF,KAAAA;AAC9B,YAAMG,QAAQf,QAAQa,OAAAA;AACtB,UAAI,CAACE,MAAMC,MAAM;AACff,gBAAQY,SAAS,QAAQ,IAAA;MAC3B;IACF,CAAA;EACF,QAAQ;AACNI,QAAIC,KAAK,0BAA0B;MAAEtB;IAAG,GAAA;;;;;;EAC1C;AACF,CAAA,CAAA;",
6
+ "names": ["contributes", "Capabilities", "NavigationAction", "createResolver", "log", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "NavigationAction", "Expose", "id", "graph", "requestCapability", "AppGraph", "getItem", "setItem", "NavTreeCapabilities", "State", "path", "waitForPath", "target", "timeout", "Array", "length", "forEach", "_", "index", "subpath", "slice", "value", "open", "log", "warn"]
7
+ }