@dxos/plugin-navtree 0.7.5-labs.a279d8c → 0.7.5-labs.c0e040f

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 (98) hide show
  1. package/dist/lib/browser/{app-graph-builder-OF4MMBLH.mjs → app-graph-builder-BL7LRXCM.mjs} +7 -5
  2. package/dist/lib/browser/{app-graph-builder-OF4MMBLH.mjs.map → app-graph-builder-BL7LRXCM.mjs.map} +3 -3
  3. package/dist/lib/browser/{chunk-OI7AAA6Q.mjs → chunk-AOAGODQB.mjs} +1 -1
  4. package/dist/lib/browser/chunk-AOAGODQB.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-SKZPY4LJ.mjs +1120 -0
  6. package/dist/lib/browser/chunk-SKZPY4LJ.mjs.map +7 -0
  7. package/dist/lib/browser/index.mjs +21 -26
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/intent-resolver-U25VBFH3.mjs +47 -0
  10. package/dist/lib/browser/intent-resolver-U25VBFH3.mjs.map +7 -0
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/react-surface-OZDS36WN.mjs +57 -0
  13. package/dist/lib/browser/react-surface-OZDS36WN.mjs.map +7 -0
  14. package/dist/lib/browser/{state-HT65TAYL.mjs → state-IEFQTUPG.mjs} +7 -10
  15. package/dist/lib/browser/state-IEFQTUPG.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 +3 -2
  20. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  21. package/dist/types/src/capabilities/index.d.ts +88 -32
  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/L0Menu.d.ts +9 -0
  30. package/dist/types/src/components/L0Menu.d.ts.map +1 -0
  31. package/dist/types/src/components/L1Panels.d.ts +8 -0
  32. package/dist/types/src/components/L1Panels.d.ts.map +1 -0
  33. package/dist/types/src/components/NavTree.d.ts +3 -20
  34. package/dist/types/src/components/NavTree.d.ts.map +1 -1
  35. package/dist/types/src/components/NavTree.stories.d.ts +2 -2
  36. package/dist/types/src/components/NavTree.stories.d.ts.map +1 -1
  37. package/dist/types/src/components/NavTreeContainer.d.ts +4 -3
  38. package/dist/types/src/components/NavTreeContainer.d.ts.map +1 -1
  39. package/dist/types/src/components/NavTreeContext.d.ts +4 -0
  40. package/dist/types/src/components/NavTreeContext.d.ts.map +1 -0
  41. package/dist/types/src/components/NavTreeItemAction.d.ts +1 -1
  42. package/dist/types/src/components/NavTreeItemAction.d.ts.map +1 -1
  43. package/dist/types/src/components/NavTreeItemColumns.d.ts +4 -0
  44. package/dist/types/src/components/NavTreeItemColumns.d.ts.map +1 -0
  45. package/dist/types/src/components/index.d.ts +2 -0
  46. package/dist/types/src/components/index.d.ts.map +1 -1
  47. package/dist/types/src/components/types.d.ts +25 -0
  48. package/dist/types/src/components/types.d.ts.map +1 -0
  49. package/dist/types/src/hooks.d.ts +3 -0
  50. package/dist/types/src/hooks.d.ts.map +1 -0
  51. package/dist/types/src/stories/Graph.stories.d.ts +2 -2
  52. package/dist/types/src/stories/Graph.stories.d.ts.map +1 -1
  53. package/dist/types/src/stories/StorybookNavTree.d.ts +4 -0
  54. package/dist/types/src/stories/StorybookNavTree.d.ts.map +1 -0
  55. package/dist/types/src/translations.d.ts +0 -6
  56. package/dist/types/src/translations.d.ts.map +1 -1
  57. package/dist/types/src/types.d.ts +2 -1
  58. package/dist/types/src/types.d.ts.map +1 -1
  59. package/dist/types/src/util.d.ts +9 -0
  60. package/dist/types/src/util.d.ts.map +1 -1
  61. package/dist/types/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +32 -31
  63. package/src/NavTreePlugin.tsx +8 -10
  64. package/src/capabilities/app-graph-builder.ts +6 -4
  65. package/src/capabilities/capabilities.ts +3 -2
  66. package/src/capabilities/intent-resolver.ts +22 -16
  67. package/src/capabilities/react-surface.tsx +15 -41
  68. package/src/capabilities/state.ts +6 -9
  69. package/src/components/CommandsDialog.tsx +3 -4
  70. package/src/components/CommandsTrigger.tsx +7 -5
  71. package/src/components/L0Menu.tsx +218 -0
  72. package/src/components/L1Panels.tsx +100 -0
  73. package/src/components/NavTree.stories.tsx +6 -6
  74. package/src/components/NavTree.tsx +26 -116
  75. package/src/components/NavTreeContainer.tsx +106 -32
  76. package/src/components/NavTreeContext.tsx +13 -0
  77. package/src/components/NavTreeItemAction.tsx +12 -4
  78. package/src/components/NavTreeItemColumns.tsx +71 -0
  79. package/src/components/NotchStart.tsx +2 -2
  80. package/src/components/index.ts +2 -0
  81. package/src/components/types.ts +33 -0
  82. package/src/hooks.ts +21 -0
  83. package/src/stories/Graph.stories.tsx +6 -5
  84. package/src/stories/StorybookNavTree.tsx +63 -0
  85. package/src/translations.ts +0 -6
  86. package/src/types.ts +2 -1
  87. package/src/util.ts +56 -2
  88. package/dist/lib/browser/chunk-IMGT2LAL.mjs +0 -658
  89. package/dist/lib/browser/chunk-IMGT2LAL.mjs.map +0 -7
  90. package/dist/lib/browser/chunk-OI7AAA6Q.mjs.map +0 -7
  91. package/dist/lib/browser/intent-resolver-74JPWYBP.mjs +0 -42
  92. package/dist/lib/browser/intent-resolver-74JPWYBP.mjs.map +0 -7
  93. package/dist/lib/browser/react-surface-6QWXI53A.mjs +0 -189
  94. package/dist/lib/browser/react-surface-6QWXI53A.mjs.map +0 -7
  95. package/dist/lib/browser/state-HT65TAYL.mjs.map +0 -7
  96. package/dist/types/src/components/NavTreeFooter.d.ts +0 -6
  97. package/dist/types/src/components/NavTreeFooter.d.ts.map +0 -1
  98. package/src/components/NavTreeFooter.tsx +0 -161
@@ -1,7 +0,0 @@
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": ";;;;;;;AAIA,OAAOA,SAASC,SAASC,gBAAgB;AAEzC,SAASC,qBAAqBC,cAAcC,oBAAoB;AAChE,SAA0BC,eAAeC,gBAAgB;AACzD,SAASC,UAAUC,kBAAkB;AACrC,SAASC,gBAAgB;AACzB,SAASC,QAAQC,QAAQC,MAAMC,gBAAgBC,yBAAyB;AACxE,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,UAAU;AACpC,SAASC,uBAAuB;AAKzB,IAAMC,wBAAwB,CAAC,EAAEC,UAAUC,QAAO,MAAyB;AAChF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,cAAAA;AAC7B,QAAM,CAACJ,UAAUK,WAAAA,IAAeC,SAA6BL,OAAAA;AAC7D,QAAM,EAAEM,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,QAAM,EAAEC,MAAK,IAAKC,SAAAA;AAIlB,QAAMC,aAAaC,QAAQ,MAAA;AAEzB,UAAMC,UAAUC,SAASC,UAAUC,kBAAiB;AACpD,UAAMC,YAAY,oBAAIC,IAAAA;AACtB,UAAMC,WAAwB,CAAA;AAC9BV,WAAOW,SAAS;MACdC,SAAS,CAACC,MAAMC,SAAAA;AACd,aACGC,SAASF,IAAAA,KAASG,cAAcH,IAAAA,MACjC,CAACL,UAAUS,IAAIJ,KAAKK,EAAE,KACtBd,QAAQe,WAAWL,KAAKM,MAAM,GAAG,EAAC,EAAGC,KAAK,GAAA,CAAA,GAC1C;AACAb,oBAAUc,IAAIT,KAAKK,EAAE;AACrBR,UAAAA,SAAQa,KAAKV,IAAAA;QACf;MACF;IACF,CAAA;AAEAH,IAAAA,SAAQc,KAAK,CAACC,GAAGC,MAAAA;AACf,aAAOC,kBAAkBF,EAAEG,WAAWC,OAAOrC,CAAAA,GACzCsC,YAAAA,EACDC,cAAcJ,kBAAkBD,EAAEE,WAAWC,OAAOrC,CAAAA,GAAIsC,YAAAA,CAAAA;IAC7D,CAAA;AAGA,WAAOpB;EACT,GAAG;IAACV;GAAM;AAEV,QAAMgC,QAAQ9B,WAAW+B,KAAK,CAAC,EAAEf,GAAE,MAAOA,OAAO5B,QAAAA;AACjD,QAAMoB,UAAUM,cAAcgB,KAAAA,IAAShC,MAAMU,QAAQsB,KAAAA,IAAS9B;AAE9D,SACE,sBAAA,cAACgC,OAAOC,SAAO;IAACC,YAAY;MAAC;;KAC3B,sBAAA,cAACF,OAAOG,OAAK,MAAE7C,EAAE,yBAAyB;IAAE8C,IAAI5C;EAAe,CAAA,CAAA,GAG/D,sBAAA,cAAC6C,WAAWC,MAAI;IAACX,OAAOrC,EAAE,gCAAA;IAAmC4C,YAAW;KACtE,sBAAA,cAACG,WAAWE,OAAK;IAACC,aAAalD,EAAE,gCAAA;IAAmC4C,YAAW;MAC/E,sBAAA,cAACG,WAAWJ,SAAO;IAACC,YAAW;KAC5B1B,SAASiC,IAAI,CAACC,WAAAA;AACb,UAAMf,QAAQF,kBAAkBiB,OAAOhB,WAAWC,OAAOrC,CAAAA;AACzD,UAAMqD,WACJ,OAAOD,OAAOhB,WAAWkB,eAAe,WACpCF,OAAOhB,WAAWkB,aAClBF,OAAOhB,WAAWkB,aAAaC,gBAAAA,CAAAA;AACrC,WACE,sBAAA,cAACR,WAAWS,MAAI;MACdC,OAAOpB;MACPqB,KAAKN,OAAO1B;MACZiC,UAAU,MAAA;AACR,YAAIP,OAAOhB,WAAWwB,UAAU;AAC9B;QACF;AAEA,YAAIpC,cAAc4B,MAAAA,GAAS;AACzBjD,sBAAYiD,OAAO1B,EAAE;AACrB;QACF;AAEA,aAAKpB,SAASuD,aAAaC,aAAaC,WAAW;UAAEC,SAAS;UAAUC,OAAO;QAAM,CAAA,CAAA;AACrFC,mBAAW,MAAA;AACT,gBAAM7C,OAAOb,MAAM2D,MAAM3B,SAASY,QAAQ;YAAEgB,UAAU;UAAU,CAAA,EAAG,CAAA;AACnE,gBAAM/C,QAAQE,SAAS6B,MAAAA,KAAWA,OAAOiB,KAAK;YAAEhD;YAAMiD,QAAQC;UAAY,CAAA;QAC5E,CAAA;MACF;MACA3B,YAAW;MACXgB,UAAUR,OAAOhB,WAAWwB;MAC3B,GAAIR,OAAOhB,YAAYoC,UAAU;QAAE,eAAepB,OAAOhB,WAAWoC;MAAO;OAE5E,sBAAA,cAACC,MAAAA;MAAKC,MAAMtB,OAAOhB,WAAWsC;MAAMC,MAAM;QAC1C,sBAAA,cAACC,QAAAA;MAAKC,WAAU;OAAiBxC,KAAAA,GAChCgB,YAAY,sBAAA,cAACuB,QAAAA;MAAKC,WAAWC,GAAG,YAAYC,eAAAA;OAAmBC,WAAW3B,QAAAA,EAAUxB,KAAK,EAAA,CAAA,CAAA;EAGhG,CAAA,CAAA,CAAA,GAIJ,sBAAA,cAACa,OAAOuC,OAAK;IAACC,SAAAA;KACZ,sBAAA,cAACC,QAAAA;IAAOC,SAAQ;IAAUxC,YAAW;KAClC5C,EAAE,eAAe;IAAE8C,IAAI;EAAK,CAAA,CAAA,CAAA,CAAA;AAKvC;;;AC3GA,SAASuC,uBAAuB;AAChC,OAAOC,YAAW;AAElB,SAASC,gBAAAA,eAAcC,gBAAAA,eAAcC,uBAAAA,4BAA2B;AAChE,SAASC,UAAAA,SAAQC,kBAAAA,uBAAsB;AACvC,SAASC,eAAe;AAKjB,IAAMC,kBAAkB,MAAA;AAC7B,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AACtC,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,cAAAA;AAC7B,SACE,gBAAAC,OAAA,cAACC,SAAAA;IACCC,YAAW;IACXC,SAAS,MACPR,SACES,cAAaC,cAAaC,WAAW;MACnCC,SAAS;MACTC,WAAWC;MACXC,kBAAkB;IACpB,CAAA,CAAA;KAIJ,gBAAAV,OAAA,cAACW,QAAAA;IAAKC,WAAU;KAAgDf,EAAE,gCAAA,CAAA,GAClE,gBAAAG,OAAA,cAACa,iBAAAA;IAAgBD,WAAWE,QAAQ,CAAA;;AAG1C;;;AC9BA,SAKEC,aACAC,mBACAC,YAAAA,iBACK;AACP,SAASC,mBAAmB;AAIrB,IAAMC,YAAY,CACvBC,OACAC,MACAC,SAAAA;AAEA,QAAMC,WAAWD,KAAKA,KAAKE,SAAS,CAAA;AACpC,SAAOJ,MAAMK,MAAMJ,MAAM;IAAEK,UAAU;EAAU,CAAA,EAAGC,KAAK,CAACC,MAAMA,EAAEC,OAAON,QAAAA;AACzE;AAEO,IAAMO,uBAAuB,CAClCV,OACAC,MACAC,MACAS,qBAAAA;AAEA,MAAIV,KAAKW,WAAWC,wBAAwBC,IAAIH,gBAAAA,GAAmB;AACjE,WAAOV;EACT,OAAO;AACL,UAAMc,SAAShB,UAAUC,OAAOC,MAAMC,IAAAA;AACtC,WAAOa,SAASL,qBAAqBV,OAAOe,QAAQb,KAAKc,MAAM,GAAGd,KAAKE,SAAS,CAAA,GAAIO,gBAAAA,IAAoB;EAC1G;AACF;AAEO,IAAMM,4BAA4B,CACvCjB,OACAkB,YACAC,iBACAC,2BAAAA;AAEA,QAAMC,cAAcH,WAAWN,WAAWD;AAC1C,MAAIS,0BAA0BC,aAAa;AACzC,UAAMC,oBAAoBZ,qBAAqBV,OAAOoB,wBAAwBD,iBAAiBE,WAAAA;AAC/F,QAAIC,mBAAmB;AACrB,YAAMC,YAAYL,WAAWN,WAAWY;AACxC,UAAID,aAAaD,mBAAmBV,WAAWa,sBAAsB;AACnE,eAAOH,kBAAkBV,WAAWa,qBAAqBX,IAAIS,SAAAA,KAC3DD,kBAAkBV,WAAWc,kBAC3B,aACAJ,kBAAkBV,WAAWe,SAC3B,SACA;MACR,OAAO;AACL,eAAO;MACT;IACF,OAAO;AACL,aAAO;IACT;EACF,OAAO;AACL,WAAO;EACT;AACF;AAGO,IAAMC,cAAc,CAACC,YAC1BA,QAAQC,KAAK,CAACC,GAAGC,MAAAA;AACf,MAAID,EAAEnB,WAAWqB,gBAAgBD,EAAEpB,WAAWqB,aAAa;AACzD,WAAO;EACT;AAEA,MAAIF,EAAEnB,WAAWqB,gBAAgB,WAAW;AAC1C,WAAO;EACT;AAEA,SAAO;AACT,CAAA;AAEK,IAAMC,cAAc,CACzBlC,OACAC,MACAkC,QACAjC,OAA0B,CAAA,MAAE;AAE5B,SAAOF,MACJK,MAAMJ,MAAM;IAAEK,UAAU;IAAY6B;EAAO,CAAA,EAC3CC,IAAI,CAAC5B,MAAAA;AAEJ,UAAM6B,WAAW;SAAInC;MAAMD,KAAKQ;;AAChC,WAAO4B,SAASC,SAAS9B,EAAEC,EAAE,IAAI8B,SAAa/B;EAChD,CAAA,EACC2B,OAAOK,WAAAA;AACZ;AAEO,IAAMC,aAAa,CAACzC,OAAcC,SAAAA;AACvC,SAAOD,MAAM6B,QAAQ5B,IAAAA,EAAMyC,OACzB,CAACC,KAAuBC,QAAAA;AACtB,QAAIA,IAAIhC,WAAWqB,gBAAgB,QAAQ;AACzC,aAAOU;IACT;AAEAA,QAAId,QAAQgB,KAAKD,GAAAA;AACjB,QAAI,CAACE,UAASF,GAAAA,GAAM;AAClB,YAAMG,cAAc/C,MAAM6B,QAAQe,GAAAA;AAClCD,UAAIK,eAAeJ,IAAInC,EAAE,IAAIsC;IAC/B;AACA,WAAOJ;EACT,GACA;IAAEd,SAAS,CAAA;IAAImB,gBAAgB,CAAC;EAAE,CAAA;AAEtC;AAEO,IAAMC,2BAA2B,CAACjD,OAAcC,SAAAA;AACrD,SAAOiD,QAAQC,IAAI;IAACC,eAAepD,OAAOC,IAAAA;IAAOoD,cAAcrD,OAAOC,IAAAA;GAAM;AAC9E;AAEO,IAAMmD,iBAAiB,CAACpD,OAAcC,SAAAA;AAC3C,SAAOD,MAAMsD,OAAOrD,MAAM,UAAA;AAC5B;AAEO,IAAMoD,gBAAgB,CAACrD,OAAcC,SAAAA;AAC1C,SAAOiD,QAAQC,IAAI;IAACnD,MAAMsD,OAAOrD,MAAM,YAAYsD,WAAAA;IAAcvD,MAAMsD,OAAOrD,MAAM,YAAYuD,iBAAAA;GAAmB;AACrH;;;AC3HA,SAASC,0BAA0B;AACnC,SAASC,0BAA4C;AACrD,SAASC,iBAAiB;AAC1B,OAAOC,UAASC,MAAMC,eAAAA,cAAaC,aAAAA,kBAAiB;AAEpD,SAASC,gBAAAA,eAAcC,gBAAAA,eAAcC,kBAAkBC,uBAAAA,sBAAqBC,eAAe;AAC3F,SAASC,YAAAA,WAAUC,oBAA+B;AAClD,SAASC,YAAAA,iBAAgB;AACzB,SAASC,cAAcC,eAAe;AACtC,SAASC,eAAeC,mBAAmB;AAC3C,SAASC,kBAAyD;AAClE,SAASC,MAAAA,WAAU;AACnB,SAASC,iBAAiB;;;ACZ1B,OAAOC,UAASC,UAAUC,aAAaC,iBAA0B;AAEjE,SAASC,YAAAA,iBAA2B;AACpC,SAASC,SAASC,qBAAAA,oBAAmBC,UAAUC,kBAAAA,uBAAsB;AACrE,SAASC,YAA4B;;;ACJrC,OAAOC,UAAgCC,cAAc;AAGrD,SAASC,kBAAAA,iBAAgBC,qBAAAA,oBAAmBC,kBAAkB;AAC9D,SAASC,cAAcC,oBAAmC;AAC1D,SAASC,sBAAsBC,0BAA0BC,MAAAA,WAAU;AAcnE,IAAMC,eAAe;AAErB,IAAMC,oBAAoB;EACxBC,UAAU;EACVC,MAAM;EACNC,SAAS;EACTC,SAAS;EACTC,YAAYC,IAAG,uCAAuCC,sBAAsBC,wBAAAA;AAC9E;AAEO,IAAMC,gCAAgC,CAAC,EAC5CC,OACAC,MACAC,QACAC,aACAC,SAAQ,MACmB;AAC3B,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,cAAAA;AAC7B,QAAMC,sBAAsBC,OAAgB,KAAA;AAC5C,SACE,gBAAAC,OAAA,cAACC,cAAAA;IAAaP;KACZ,gBAAAM,OAAA,cAACE,aAAaC,MAAI;IAACC,OAAOX;IAA2BK;KACnD,gBAAAE,OAAA,cAACE,aAAaG,SAAO;IAACC,SAAAA;KACpB,gBAAAN,OAAA,cAACO,YAAAA;IACE,GAAG3B;IACJW,MAAMA,QAAQZ;IACdW,OAAOkB,mBAAkBlB,OAAOK,CAAAA;IAChCc,eAAajB;IACbM;;AAMZ;AAEO,IAAMY,8BAA8B,CAAC,EAC1CC,QACAC,YAAY,EAAEC,UAAUC,QAAQtB,QAAQD,KAAI,IAAK;EAAED,OAAO;AAAQ,GAClEyB,MAAMC,QACNC,UAAS,MACyE;AAClF,SACE,gBAAAjB,OAAA,cAACO,YAAAA;IACE,GAAG3B;IACJW,MAAMA,QAAQZ;IACdW,OAAO2B;IACPJ;IACAK,SAAS,CAACC,UAAAA;AACR,UAAIN,UAAU;AACZ;MACF;AACAM,YAAMC,gBAAe;AACrB,WAAKJ,SAASF,SAAS;QAAEO,MAAMV;QAAQG;MAAO,IAAI;QAAEO,MAAMV;MAAO,CAAA;IACnE;IACAF,eAAajB;;AAGnB;AAEO,IAAM8B,oBAAoB,CAAC,EAAEC,YAAY9B,aAAakB,QAAQU,MAAM,GAAGG,MAAAA,MAAmC;AAC/G,QAAM,EAAE7B,EAAC,IAAKC,gBAAeC,cAAAA;AAE7B,QAAM4B,mBAAmBhC,aAAaiC,WAAW,KAAKjC,YAAY,CAAA;AAClE,QAAMwB,YAAYT,mBAAkBiB,mBAAmBA,iBAAiBb,WAAYtB,QAAQkC,MAAMlC,OAAOK,CAAAA;AAEzG,SAAO4B,cAAc9B,aAAaiC,WAAW,IAC3C,gBAAA1B,OAAA,cAACU,6BAAAA;IAA4BO;IAAsBN,QAAQU;IAAO,GAAG5B,YAAY,CAAA;OAEjF,gBAAAO,OAAA,cAACX,+BAAAA;IACE,GAAGmC;IACJlC,OAAO2B;IACPN,QAAQU;IACR5B;IACAC,UAAU,CAACiC,WAAWA,OAAOZ,OAAOS,MAAMV,SAAS;MAAEO;MAAMP,QAAQU,MAAMV;IAAO,IAAI;MAAEO;IAAK,CAAA;;AAGjG;;;ADrFO,IAAMO,gBAAgB;AAQtB,IAAMC,UAAU,CAAC,EAAEC,YAAAA,aAAYC,iBAAiBC,eAAAA,gBAAeC,iBAAiB,GAAGC,MAAAA,MAAqB;AAC7G,QAAMC,gBAAgBC,YACpB,CAAC,EAAEC,MAAMC,MAAMC,KAAI,MAAE;AACnB,WACE,gBAAAC,OAAA,cAACC,gBAAAA;MACCH;MACAI,MAAML;MACNP,YAAYA;MACZS;MACAR;MACAC,eAAeA;MACfC;;EAGN,GACA;IAACD;IAAeC;IAAiBF;GAAgB;AAGnD,SACE,gBAAAS,OAAA,cAACG,MAAAA;IACE,GAAGT;IACJU,WAAAA;IACAC,qBAAoB;IACpBV;;AAGN;AAYA,IAAMM,iBAAiB,CAAC,EACtBH,MACAI,MACAZ,YAAAA,aACAS,MACAR,iBACAC,eAAec,SACfb,gBAAe,MACK;AACpB,QAAM,EAAEc,EAAC,IAAKC,gBAAeC,cAAAA;AAE7B,QAAMC,QAAQZ,KAAKa,SAAS;AAE5B,QAAM,EAAEC,SAASC,UAAUC,eAAc,IAAKxB,YAAWY,IAAAA;AACzD,QAAM,CAACa,eAAe,GAAGC,gBAAAA,IAAoBH,SAASI,SAAS,CAACC,GAAGC,MACjED,EAAEE,YAAYC,gBAAgB,YAAY,KAAK,CAAA;AAGjD,QAAMT,WAAWG,eAAeK,YAAYC,gBAAgB,YAAYL,mBAAmBH,UACxFS,QAAQ,CAACC,WAAYC,UAASD,MAAAA,IAAU;IAACA;MAAU,CAAA,CAAE,EACrDE,OAAO,CAACF,WAAW,CAACA,OAAOH,YAAYM,MAAAA;AAE1C,QAAMC,aAAalC,oBAAoB,eAAeL,aAAAA,IAAiBc,KAAK0B,EAAE,KAAKC,QAAQC,SAASC;AAGpGC,YAAU,MAAA;AACR,UAAMC,QAAQC,sBAAsB,MAAA;AAClC,WAAK3C,kBAAkBW,IAAAA;AACvB,UAAIa,iBAAiB,CAACS,UAAST,aAAAA,GAAgB;AAC7C,aAAKxB,kBAAkBwB,aAAAA;MACzB;IACF,CAAA;AACA,WAAO,MAAMoB,qBAAqBF,KAAAA;EACpC,GAAG;IAAClB;GAAc;AAElB,SACE,gBAAAf,OAAA,cAAAA,OAAA,UAAA,MACGe,eAAeK,YAAYC,gBAAgB,YAC1C,gBAAArB,OAAA,cAACoC,mBAAAA;IACCC,QAAQtB,cAAcK,YAAYiB;IAClCC,OAAOC,mBAAkBxB,cAAcK,YAAYkB,OAAO/B,CAAAA;IAC1DiC,MAAMzB,cAAcK,YAAYoB,QAAQ;IACxCC,QAAQvC;IACRwC,YAAYlB,UAAST,aAAAA;IACrB4B,aAAanB,UAAST,aAAAA,IAAiB;MAACA;QAAiBD,eAAeC,cAAca,EAAE;IACxFgB,UAAU7B,cAAcK,YAAYwB;IACpCC,QAAQzD;OAGV,gBAAAY,OAAA,cAAC8C,SAASC,MAAI,IAAA,GAEhB,gBAAA/C,OAAA,cAAC2B,YAAAA,MACEf,QAAQD,SAAS,IAChB,gBAAAX,OAAA,cAACoC,mBAAAA;IACCC,QAAQ,gCAAgC3B,KAAAA;IACxC4B,OAAO/B,EAAE,yBAAA;IACTiC,MAAK;IACLC,QAAQvC;IACRyC,aAAa/B;IACbgC,UAAS;IACTC,QAAQzD;OAGV,gBAAAY,OAAA,cAAC8C,SAASC,MAAI,IAAA,CAAA,GAGjBzC,WAAW,gBAAAN,OAAA,cAACM,SAAAA;IAAQJ;IAAYH;;AAGvC;;;ADnGO,IAAMiD,YAAY;AAEzB,IAAMC,gBAAgB,CAAC,EAAEC,MAAMC,KAAI,MACjC,gBAAAC,OAAA,cAACC,SAAAA;EAAQC,MAAK;EAAmBC,MAAM;IAAEC,IAAIN,KAAKM;IAAIC,SAASP,KAAKK;IAAMJ;EAAK;EAAGO,OAAO;;AAOpF,IAAMC,mBAAmBC,qBAAK,CAAC,EAAEC,WAAWC,iBAAiB,GAAGC,MAAAA,MAA8B;AACnG,QAAM,EAAEC,uBAAsB,IAAKC,YAAYC,cAAAA;AAC/C,QAAM,CAACC,IAAAA,IAAQC,cAAc,MAAM;IAAEC,KAAK;EAAM,CAAA;AAChD,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AACtC,QAAM,EAAEC,MAAK,IAAKC,UAAAA;AAElB,QAAMC,cAAaC,aAAY,CAAC1B,SAAe2B,WAAkBJ,OAAOvB,IAAAA,GAAO;IAACuB;GAAM;AAEtF,QAAMK,WAAWF,aACf,CAAC1B,SAAAA;AACC,WAAOuB,MAAMM,MAAM7B,QAAQuB,MAAMO,MAAM;MACrCC,QAAQ,CAAC/B,UAAAA;AACP,eAAOgC,UAAU,MAAA;AACf,gBAAMC,SAASC,aAAalC,KAAAA;AAC5B,gBAAMmC,cAAcnC,MAAKoC,WAAWD;AACpC,iBAAO,CAACF,UAAWA,UAAUE,gBAAgB;QAC/C,CAAA;MACF;IACF,CAAA;EACF,GACA;IAACZ;GAAM;AAGT,QAAMc,WAAWX,aACf,CAAC1B,MAAYsC,SAAAA;AACX,UAAMC,WAAWC,YAAYjB,OAAOvB,MAAMyC,QAAWH,IAAAA;AACrD,UAAMI,WACJH,SAASI,SAAS,IAAIJ,SAASK,IAAI,CAAC,EAAEtC,GAAE,MAAOA,EAAAA,IAAMN,KAAKoC,WAAWhC,SAAS,WAAW,CAAA,IAAKqC;AAChG,WAAO;MACLnC,IAAIN,KAAKM;MACTuC,OAAO7C,KAAKoC,WAAWS,SAAS7C,KAAKM;MACrCoC;MACAI,MAAM9C,KAAKoC,WAAWU;MACtBC,UAAU/C,KAAKoC,WAAWW;MAC1BC,WAAWC,IAAGjD,KAAKoC,WAAWc,YAAY,UAAUlD,KAAKoC,WAAWY,SAAS;MAC7EG,kBAAkBnD,KAAKoC,WAAWe;MAClCC,QAAQpD,KAAKoC,WAAWgB;IAC1B;EACF,GACA;IAAC7B;GAAM;AAGT,QAAM8B,kBAAkB3B,aACtB,CAAC1B,SAAAA;AACC,SAAKsD,cAAc/B,OAAOvB,IAAAA;AAC1B,QAAI,CAACkC,aAAalC,IAAAA,GAAO;AACvB,WAAKuD,eAAehC,OAAOvB,IAAAA,EAAMwD,KAAK;;QAEpCC,QAAQC,IACNlB,YAAYjB,OAAOvB,IAAAA,EAAM2D,QAAQ,CAACC,UAAU;UAACN,cAAc/B,OAAOqC,KAAAA;UAAQL,eAAehC,OAAOqC,KAAAA;SAAO,CAAA;OAAA;IAG7G;EACF,GACA;IAACrC;GAAM;AAGT,QAAMsC,UAAUnC,aAAY,CAACoC,QAAkBC,WAAAA;AAC7C,UAAMC,aAAaF,OAAOG;AAC1B,UAAMC,aAAaH,OAAOE;AAC1B,QAAIE,QAAQD,WAAW7D,IAAI,GAAG;AAE5B,aAAO+D,aAAaJ,WAAW3D,IAAI,KAAK8D,QAAQH,WAAW3D,IAAI;IACjE,WAAW+D,aAAaF,WAAW7D,IAAI,GAAG;AACxC,aAAO+D,aAAaJ,WAAW3D,IAAI;IACrC,OAAO;AACL,aAAO;IACT;EACF,GAAG,CAAA,CAAE;AAEL,QAAMgE,eAAe3C,aACnB,CAAC,EAAEuC,MAAMjE,MAAMsC,MAAMgC,OAAM,MAAmD;AAC5E,QAAI,CAACtE,KAAKK,MAAM;AACd;IACF;AAEA,QAAIkE,UAASvE,IAAAA,GAAO;AAClB,YAAM,CAACwE,MAAAA,IAAUjD,MAAMM,MAAM7B,MAAM;QAAEyE,UAAU;MAAU,CAAA;AACzD,YAAMD,UAAUxE,KAAKK,KAAK;QAAEL,MAAMwE;QAAQE,QAAQC;MAAc,CAAA;AAChE;IACF;AAEA,UAAMC,UAAUjE,UAAU2B,MAAMtC,IAAAA;AAChC,QAAI,CAAC4E,SAAS;AACZ,WAAKvD,SAASwD,cAAaC,iBAAiBC,MAAM;QAAEC,aAAa;UAAEC,MAAM;YAACjF,KAAKM;;QAAI;MAAE,CAAA,CAAA;IACvF,WAAWgE,QAAQ;AACjB,WAAKjD,SAASwD,cAAaC,iBAAiBI,OAAO;QAAEF,aAAa;UAAEC,MAAM;YAACjF,KAAKM;;QAAI;MAAE,CAAA,CAAA;IACxF,OAAO;AACL,WAAKe,SAASwD,cAAaM,cAAaC,gBAAgB;QAAE9E,IAAIN,KAAKM;MAAG,CAAA,CAAA;IACxE;AAEA,UAAM+E,gBAAgB9D,MAAM+D,QAAQtF,IAAAA,EAAMuF,KAAK,CAACtD,WAAWA,OAAOG,YAAYD,gBAAgB,SAAA;AAC9F,QAAIoC,UAASc,aAAAA,GAAgB;AAC3B,WAAMA,cAAchF,KAAI;IAC1B;AAEA,QAAI,CAACY,MAAM;AACTH,6BAAAA;IACF;EACF,GACA;IAACS;IAAOF;IAAUV;IAAWM;IAAMH;GAAuB;AAI5D0E,EAAAA,WAAU,MAAA;AACR,WAAOC,mBAAmB;MACxBC,YAAY,CAAC,EAAE5B,OAAM,MAAO6B,WAAW7B,OAAOzD,IAAI;MAClDuF,QAAQ,CAAC,EAAEC,UAAU/B,OAAM,MAAE;AAE3B,YAAI,CAAC+B,SAASjB,QAAQkB,YAAYnD,QAAQ;AACxC;QACF;AACA,cAAMoB,SAAS8B,SAASjB,QAAQkB,YAAY,CAAA;AAC5C,cAAMC,cAAkCC,mBAAmBjC,OAAO1D,IAAI;AACtE,YAAI0F,gBAAgB,QAAQA,YAAYE,SAAS,uBAAuB;AACtE,gBAAMjC,aAAaF,OAAOzD,KAAK4D;AAC/B,gBAAMC,aAAaH,OAAO1D,KAAK4D;AAC/B,gBAAMiC,aAAapC,OAAOzD,KAAKiC;AAC/B,gBAAM6D,aAAapC,OAAO1D,KAAKiC;AAC/B,gBAAM8D,YACJF,WAAWG,MAAM,GAAG,EAAC,EAAGC,KAAI,MAAOH,WAAWE,MAAM,GAAG,EAAC,EAAGC,KAAI,KAAMP,YAAYE,SAAS,eACtF,cACAM,0BAA0BhF,OAAOyC,YAAYmC,YAAYjC,UAAAA;AAC/D,gBAAMsC,eAAeC,UAAUlF,OAAOyC,YAAYkC,UAAAA;AAClD,gBAAMQ,eAAeD,UAAUlF,OAAO2C,YAAYiC,UAAAA;AAClD,gBAAMQ,cAAc/E,SAAS4E,YAAAA;AAC7B,gBAAMI,cAAchF,SAAS8E,YAAAA;AAC7B,gBAAMG,cAAcF,YAAYG,UAAU,CAAC,EAAExG,GAAE,MAAOA,OAAO0D,WAAW1D,EAAE;AAC1E,gBAAMyG,cAAcH,YAAYE,UAAU,CAAC,EAAExG,GAAE,MAAOA,OAAO4D,WAAW5D,EAAE;AAC1E,gBAAM0G,iBACJjB,YAAYE,SAAS,eACjBxD,SACAsD,YAAYE,SAAS,kBACnBc,cAAc,IACdA;AACR,kBAAQX,WAAAA;YACN,KAAK,aAAa;AAChB,oBAAMa,YAAYN,YAAY/D,IAAI,CAAC,EAAEvC,KAAI,MAAOA,IAAAA;AAChD6G,wBAAUD,WAAWJ,aAAaE,WAAAA;AAClC,mBAAKP,cAAcpE,WAAW+E,sBAAsBF,SAAAA;AACpD;YACF;YACA,KAAK,QAAQ;AACX,oBAAMlD,UAASgC,YAAYE,SAAS,eAAe/B,aAAawC;AAChE,mBAAK3C,SAAQ3B,WAAWgF,SAASpD,YAAYgD,cAAAA;AAC7C;YACF;YACA,KAAK,YAAY;AACf,oBAAMjD,UAASgC,YAAYE,SAAS,eAAe/B,aAAawC;AAChE,kBAAI,CAAC3C,SAAQ3B,WAAWiF,mBAAmB,CAACb,cAAcpE,WAAWkF,eAAe;AAClF;cACF;AACA,mBAAKvD,SAAQ3B,WAAWiF,gBAAgBrD,YAAYgD,cAAAA;AACpD,mBAAKR,cAAcpE,WAAWkF,gBAAgBtD,YAAYD,OAAAA;AAC1D;YACF;UACF;QACF;MACF;IACF,CAAA;EACF,GAAG;IAACxC;GAAM;AAGV,SACE,gBAAArB,OAAA,cAACqH,SAAAA;IACCjH,IAAIiB,MAAMO,KAAKxB;IACfmB,YAAYA;IACZG;IACAS;IACA1B;IACA0C;IACAtD;IACAa;IACAiD;IACA2D,UAAUnD;IACT,GAAGxD;;AAGV,CAAA;;;AGxNA,SAAS4G,aAAAA,kBAAiB;AAG1B,SAASC,qBAAAA,oBAAmBC,kBAAAA,uBAAsB;AAI3C,IAAMC,uBAAuB,CAAC,EAAEC,KAAI,MAAmB;AAC5D,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,cAAAA;AAC7BC,EAAAA,WAAU,MAAA;AACRC,aAASC,QAAQN,OAAOO,mBAAkBP,KAAKQ,WAAWC,OAAOR,CAAAA,IAAKA,EAAE,oBAAoB;MAAES,IAAI;IAAS,CAAA;EAC7G,GAAG;IAACV,MAAMQ,YAAYC;GAAM;AAC5B,SAAO;AACT;;;ACZA,OAAOE,YAAW;AAElB,SAASC,gBAAAA,eAAcC,uBAAAA,sBAAqBC,uBAAuB;AACnE,SAASC,oBAAoB;AAC7B,SAASC,iCAAiC;AAC1C,SAASC,mBAAmB;;;ACL5B,OAAOC,YAAW;AAElB,SAASC,iBAAiBC,wBAAwB;AAClD,SAASC,cAAyB;AAClC,SAASC,WAAWC,MAAAA,WAAU;AAC9B,SAASC,qBAAqB;AAE9B,IAAMC,WAAW;AAWV,IAAMC,aAAa,CAACC,UAAAA;AACzB,QAAM,EAAEC,SAASC,aAAaC,UAAUC,OAAO,EAAC,IAAKJ;AACrD,QAAMK,gBAAgBC,cAAcJ,eAAe,GAAA;AACnD,QAAM,EAAEK,OAAOC,gBAAe,IAAKC,iBAAAA;AACnC,SACE,gBAAAC,OAAA,cAACC,UAAAA;IAAOC,WAAWC,IAAGC,WAAW,iCAAA;IAAoCb;KACnE,gBAAAS,OAAA,cAACK,OAAOC,MAAI;IACVZ;IACAa,SAAQ;IACRC,QAAQV,oBAAoBW,gBAAgBC,UAAU,UAAUjB,WAAW,aAAa;IACxFkB,KAAKrB,MAAMqB,OAAOhB,cAAcgB;KAEhC,gBAAAX,OAAA,cAACK,OAAOO,OAAK;IAACC,eAAY;IAAsBC,gBAAa;KAC1DrB,WAAW,gBAAAO,OAAA,cAACK,OAAOU,OAAK;IAACC,MAAM5B;OAAe,gBAAAY,OAAA,cAACK,OAAOY,UAAQ;IAACC,MAAM5B,MAAM6B,SAASxB,cAAcwB;;AAK7G;;;AD1BO,IAAMC,aAAa,MAAA;AACxB,QAAMC,WAAWC,YAAAA;AAEjB,QAAM,CAACC,aAAAA,IAAiBC,gBAAgBC,0BAA0BC,aAAa;AAC/E,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AACtC,SACE,gBAAAC,OAAA,cAACC,YAAAA;IACCC,MAAM;IACNC,aAAaZ,UAAUY,YAAYC,MAAAA;IACnCC,KAAKd,UAAUe,SAASC,MAAMF;IAC9BG,OAAOjB,UAAUe,SAASC,MAAMC;IAChCC,UAAUhB,eAAeiB,UAAU;IACnCC,SAAS,MAAMb,SAASc,cAAaC,aAAaC,aAAa,CAAA;;AAGrE;",
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
- }
@@ -1,7 +0,0 @@
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,42 +0,0 @@
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
@@ -1,7 +0,0 @@
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
- }
@@ -1,189 +0,0 @@
1
- import {
2
- CommandsDialogContent,
3
- CommandsTrigger,
4
- NavTreeContainer,
5
- NavTreeDocumentTitle,
6
- NotchStart,
7
- expandChildrenAndActions
8
- } from "./chunk-IMGT2LAL.mjs";
9
- import {
10
- NavTreeCapabilities
11
- } from "./chunk-OI7AAA6Q.mjs";
12
- import {
13
- COMMANDS_DIALOG,
14
- NAVTREE_PLUGIN
15
- } from "./chunk-KOXMEAOS.mjs";
16
-
17
- // packages/plugins/plugin-navtree/src/capabilities/react-surface.tsx
18
- import React2, { useCallback } from "react";
19
- import { createSurface, Capabilities, contributes, useCapability } from "@dxos/app-framework";
20
- import { isGraphNode } from "@dxos/plugin-graph";
21
-
22
- // packages/plugins/plugin-navtree/src/components/NavTreeFooter.tsx
23
- import { formatDistance } from "date-fns/formatDistance";
24
- import React from "react";
25
- import { SettingsAction, useIntentDispatcher, createIntent, usePluginManager } from "@dxos/app-framework";
26
- import { useConfig } from "@dxos/react-client";
27
- import { Button, Link, Message, Popover, Tooltip, Trans, useDefaultValue, useSidebars, useTranslation, Icon, IconButton } from "@dxos/react-ui";
28
- import { LayoutControls } from "@dxos/react-ui-stack";
29
- import { mx } from "@dxos/react-ui-theme";
30
- var buttonStyles = "!pli-1.5 text-xs font-normal";
31
- var repo = "https://github.com/dxos/dxos";
32
- var VERSION_REGEX = /([\d.]+)/;
33
- var NavTreeFooter = (props) => {
34
- const layoutPart = useDefaultValue(props.layoutPart, () => "sidebar");
35
- const config = useConfig();
36
- const { t } = useTranslation(NAVTREE_PLUGIN);
37
- const { navigationSidebarOpen } = useSidebars(NAVTREE_PLUGIN);
38
- const { dispatchPromise: dispatch } = useIntentDispatcher();
39
- const { version, timestamp, commitHash } = config.values.runtime?.app?.build ?? {};
40
- const manager = usePluginManager();
41
- const [_, v] = version?.match(VERSION_REGEX) ?? [];
42
- const releaseUrl = config.values.runtime?.app?.env?.DX_ENVIRONMENT === "production" ? `${repo}/releases/tag/v${version}` : `${repo}/commit/${commitHash}`;
43
- const previewUrl = "https://docs.dxos.org/composer#technology-preview";
44
- return /* @__PURE__ */ React.createElement("div", {
45
- role: "none",
46
- className: mx("flex pbe-[env(safe-area-inset-bottom)] box-content justify-end", layoutPart === "complementary" && "md:justify-end flex-row-reverse")
47
- }, /* @__PURE__ */ React.createElement(Popover.Root, null, /* @__PURE__ */ React.createElement(Popover.Trigger, {
48
- asChild: true
49
- }, /* @__PURE__ */ React.createElement(Button, {
50
- variant: "ghost",
51
- classNames: buttonStyles,
52
- ...!navigationSidebarOpen && {
53
- tabIndex: -1
54
- }
55
- }, "v", v)), /* @__PURE__ */ React.createElement(Popover.Portal, null, /* @__PURE__ */ React.createElement(Popover.Content, {
56
- side: "top",
57
- role: "message",
58
- classNames: "z-[12] bg-warning-500 max-is-[min(calc(100vw-16px),40ch)]"
59
- }, /* @__PURE__ */ React.createElement(Message.Root, {
60
- valence: "warning",
61
- className: "rounded-be-none p-5"
62
- }, /* @__PURE__ */ React.createElement(Message.Title, null, /* @__PURE__ */ React.createElement(Icon, {
63
- icon: "ph--warning--duotone",
64
- size: 6,
65
- classNames: "inline mie-2"
66
- }), /* @__PURE__ */ React.createElement("span", null, t("warning title"))), /* @__PURE__ */ React.createElement(Message.Body, null, t("technology preview message"), /* @__PURE__ */ React.createElement("br", null), /* @__PURE__ */ React.createElement(Link, {
67
- href: previewUrl,
68
- target: "_blank",
69
- rel: "noreferrer",
70
- variant: "neutral"
71
- }, t("learn more label"), /* @__PURE__ */ React.createElement(Icon, {
72
- icon: "ph--arrow-square-out--bold",
73
- classNames: "inline mis-1"
74
- })))), /* @__PURE__ */ React.createElement("div", {
75
- role: "none",
76
- className: "plb-4 pli-5 space-b-2 text-baseText"
77
- }, timestamp && /* @__PURE__ */ React.createElement("p", null, t("released message", {
78
- released: formatDistance(new Date(timestamp), /* @__PURE__ */ new Date(), {
79
- addSuffix: true
80
- })
81
- }), /* @__PURE__ */ React.createElement("br", null), /* @__PURE__ */ React.createElement(Link, {
82
- href: releaseUrl,
83
- target: "_blank",
84
- rel: "noreferrer",
85
- variant: "neutral"
86
- }, t("see release label"), /* @__PURE__ */ React.createElement(Icon, {
87
- icon: "ph--arrow-square-out--bold",
88
- classNames: "inline mis-1"
89
- }))), /* @__PURE__ */ React.createElement("p", null, /* @__PURE__ */ React.createElement(Trans, {
90
- t,
91
- i18nKey: "powered by dxos message",
92
- components: {
93
- dxos: /* @__PURE__ */ React.createElement(Link, {
94
- href: "https://dxos.org",
95
- target: "_blank",
96
- rel: "noreferrer",
97
- variant: "neutral"
98
- })
99
- }
100
- }))), /* @__PURE__ */ React.createElement(Popover.Arrow, null)))), /* @__PURE__ */ React.createElement(Tooltip.Root, null, /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
101
- asChild: true
102
- }, /* @__PURE__ */ React.createElement(IconButton, {
103
- icon: "ph--gear-six--regular",
104
- iconOnly: true,
105
- label: t("open settings label"),
106
- size: 4,
107
- variant: "ghost",
108
- classNames: buttonStyles,
109
- "data-testid": "treeView.openSettings",
110
- "data-joyride": "welcome/settings",
111
- ...!navigationSidebarOpen && {
112
- tabIndex: -1
113
- },
114
- iconClassNames: "rotate-90",
115
- onClick: () => dispatch(createIntent(SettingsAction.Open))
116
- })), /* @__PURE__ */ React.createElement(Tooltip.Portal, null, /* @__PURE__ */ React.createElement(Tooltip.Content, {
117
- classNames: "z-[12]"
118
- }, t("open settings label"), /* @__PURE__ */ React.createElement(Tooltip.Arrow, null)))), manager.enabled.includes("dxos.org/plugin/deck") && /* @__PURE__ */ React.createElement(LayoutControls, {
119
- variant: "hide-disabled",
120
- capabilities: {
121
- incrementStart: false,
122
- incrementEnd: false
123
- },
124
- onClick: (_type) => {
125
- }
126
- }));
127
- };
128
-
129
- // packages/plugins/plugin-navtree/src/capabilities/react-surface.tsx
130
- var react_surface_default = () => contributes(Capabilities.ReactSurface, [
131
- createSurface({
132
- id: COMMANDS_DIALOG,
133
- role: "dialog",
134
- filter: (data) => data.component === COMMANDS_DIALOG,
135
- component: ({ data }) => /* @__PURE__ */ React2.createElement(CommandsDialogContent, {
136
- selected: data.subject
137
- })
138
- }),
139
- createSurface({
140
- id: `${NAVTREE_PLUGIN}/navigation`,
141
- role: "navigation",
142
- component: ({ data }) => {
143
- const { graph } = useCapability(Capabilities.AppGraph);
144
- const { isOpen, isCurrent, setItem } = useCapability(NavTreeCapabilities.State);
145
- const handleOpenChange = useCallback(({ item: { id }, path, open }) => {
146
- setItem(path, "open", open);
147
- if (graph) {
148
- const node = graph.findNode(id);
149
- return node && expandChildrenAndActions(graph, node);
150
- }
151
- }, [
152
- graph
153
- ]);
154
- return /* @__PURE__ */ React2.createElement(NavTreeContainer, {
155
- isOpen,
156
- isCurrent,
157
- onOpenChange: handleOpenChange,
158
- popoverAnchorId: data.popoverAnchorId
159
- });
160
- }
161
- }),
162
- createSurface({
163
- id: `${NAVTREE_PLUGIN}/document-title`,
164
- role: "document-title",
165
- component: ({ data }) => /* @__PURE__ */ React2.createElement(NavTreeDocumentTitle, {
166
- node: isGraphNode(data.subject) ? data.subject : void 0
167
- })
168
- }),
169
- createSurface({
170
- id: `${NAVTREE_PLUGIN}/notch-start`,
171
- role: "notch-start",
172
- component: () => /* @__PURE__ */ React2.createElement(NotchStart, null)
173
- }),
174
- createSurface({
175
- id: `${NAVTREE_PLUGIN}/header-end`,
176
- role: "header-end",
177
- component: () => /* @__PURE__ */ React2.createElement(NavTreeFooter, null)
178
- }),
179
- createSurface({
180
- id: `${NAVTREE_PLUGIN}/search-input`,
181
- role: "search-input",
182
- disposition: "fallback",
183
- component: () => /* @__PURE__ */ React2.createElement(CommandsTrigger, null)
184
- })
185
- ]);
186
- export {
187
- react_surface_default as default
188
- };
189
- //# sourceMappingURL=react-surface-6QWXI53A.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/NavTreeFooter.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { createSurface, Capabilities, contributes, useCapability } from '@dxos/app-framework';\nimport { isGraphNode, type Node } from '@dxos/plugin-graph';\n\nimport { NavTreeCapabilities } from './capabilities';\nimport {\n CommandsDialogContent,\n CommandsTrigger,\n NavTreeDocumentTitle,\n NotchStart,\n NavTreeContainer,\n} from '../components';\nimport { NavTreeFooter } from '../components/NavTreeFooter';\nimport { COMMANDS_DIALOG, NAVTREE_PLUGIN } from '../meta';\nimport { type NavTreeItemGraphNode } from '../types';\nimport { expandChildrenAndActions } from '../util';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: COMMANDS_DIALOG,\n role: 'dialog',\n filter: (data): data is { subject?: string } => data.component === COMMANDS_DIALOG,\n component: ({ data }) => <CommandsDialogContent selected={data.subject} />,\n }),\n createSurface({\n id: `${NAVTREE_PLUGIN}/navigation`,\n role: 'navigation',\n component: ({ data }) => {\n const { graph } = useCapability(Capabilities.AppGraph);\n const { isOpen, isCurrent, setItem } = useCapability(NavTreeCapabilities.State);\n\n const handleOpenChange = useCallback(\n ({ item: { id }, path, open }: { item: Node; path: string[]; open: boolean }) => {\n // TODO(thure): This might become a localstorage leak; openItemIds that no longer exist should be removed from this map.\n setItem(path, 'open', open);\n\n if (graph) {\n const node = graph.findNode(id);\n return node && expandChildrenAndActions(graph, node as NavTreeItemGraphNode);\n }\n },\n [graph],\n );\n\n return (\n <NavTreeContainer\n isOpen={isOpen}\n isCurrent={isCurrent}\n onOpenChange={handleOpenChange}\n popoverAnchorId={data.popoverAnchorId as string | undefined}\n />\n );\n },\n }),\n createSurface({\n id: `${NAVTREE_PLUGIN}/document-title`,\n role: 'document-title',\n component: ({ data }) => <NavTreeDocumentTitle node={isGraphNode(data.subject) ? data.subject : undefined} />,\n }),\n createSurface({\n id: `${NAVTREE_PLUGIN}/notch-start`,\n role: 'notch-start',\n component: () => <NotchStart />,\n }),\n createSurface({\n id: `${NAVTREE_PLUGIN}/header-end`,\n role: 'header-end',\n component: () => <NavTreeFooter />,\n }),\n createSurface({\n id: `${NAVTREE_PLUGIN}/search-input`,\n role: 'search-input',\n disposition: 'fallback',\n component: () => <CommandsTrigger />,\n }),\n ]);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { formatDistance } from 'date-fns/formatDistance';\nimport React from 'react';\n\nimport {\n type LayoutPart,\n SettingsAction,\n useIntentDispatcher,\n createIntent,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { useConfig } from '@dxos/react-client';\nimport {\n Button,\n Link,\n Message,\n Popover,\n Tooltip,\n Trans,\n useDefaultValue,\n useSidebars,\n useTranslation,\n Icon,\n IconButton,\n} from '@dxos/react-ui';\nimport { LayoutControls } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { NAVTREE_PLUGIN } from '../meta';\n\nconst buttonStyles = '!pli-1.5 text-xs font-normal';\n\nconst repo = 'https://github.com/dxos/dxos';\n\nconst VERSION_REGEX = /([\\d.]+)/;\n\nexport const NavTreeFooter = (props: { layoutPart?: LayoutPart }) => {\n const layoutPart = useDefaultValue(props.layoutPart, () => 'sidebar');\n const config = useConfig();\n const { t } = useTranslation(NAVTREE_PLUGIN);\n const { navigationSidebarOpen } = useSidebars(NAVTREE_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { version, timestamp, commitHash } = config.values.runtime?.app?.build ?? {};\n const manager = usePluginManager();\n const [_, v] = version?.match(VERSION_REGEX) ?? [];\n\n const releaseUrl =\n config.values.runtime?.app?.env?.DX_ENVIRONMENT === 'production'\n ? `${repo}/releases/tag/v${version}`\n : `${repo}/commit/${commitHash}`;\n\n const previewUrl = 'https://docs.dxos.org/composer#technology-preview';\n\n return (\n <div\n role='none'\n className={mx(\n 'flex pbe-[env(safe-area-inset-bottom)] box-content justify-end',\n layoutPart === 'complementary' && 'md:justify-end flex-row-reverse',\n )}\n >\n <Popover.Root>\n <Popover.Trigger asChild>\n <Button variant='ghost' classNames={buttonStyles} {...(!navigationSidebarOpen && { tabIndex: -1 })}>\n v{v}\n </Button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n side='top'\n role='message'\n classNames='z-[12] bg-warning-500 max-is-[min(calc(100vw-16px),40ch)]'\n >\n <Message.Root valence='warning' className='rounded-be-none p-5'>\n <Message.Title>\n <Icon icon='ph--warning--duotone' size={6} classNames='inline mie-2' />\n <span>{t('warning title')}</span>\n </Message.Title>\n <Message.Body>\n {t('technology preview message')}\n <br />\n <Link href={previewUrl} target='_blank' rel='noreferrer' variant='neutral'>\n {t('learn more label')}\n <Icon icon='ph--arrow-square-out--bold' classNames='inline mis-1' />\n </Link>\n </Message.Body>\n </Message.Root>\n <div role='none' className='plb-4 pli-5 space-b-2 text-baseText'>\n {timestamp && (\n <p>\n {t('released message', {\n released: formatDistance(new Date(timestamp), new Date(), { addSuffix: true }),\n })}\n <br />\n <Link href={releaseUrl} target='_blank' rel='noreferrer' variant='neutral'>\n {t('see release label')}\n <Icon icon='ph--arrow-square-out--bold' classNames='inline mis-1' />\n </Link>\n </p>\n )}\n <p>\n <Trans\n {...{\n t,\n i18nKey: 'powered by dxos message',\n components: {\n dxos: <Link href='https://dxos.org' target='_blank' rel='noreferrer' variant='neutral' />,\n },\n }}\n />\n </p>\n </div>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n {/* TODO(burdon): Reconcile with action created by LayoutPlugin. */}\n <IconButton\n icon='ph--gear-six--regular'\n iconOnly\n label={t('open settings label')}\n size={4}\n variant='ghost'\n classNames={buttonStyles}\n data-testid='treeView.openSettings'\n data-joyride='welcome/settings'\n {...(!navigationSidebarOpen && { tabIndex: -1 })}\n iconClassNames='rotate-90'\n onClick={() => dispatch(createIntent(SettingsAction.Open))}\n />\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-[12]'>\n {t('open settings label')}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n\n {/* NOTE(thure): Unpinning from the NavTree’s default position in Deck is temporarily disabled. */}\n {manager.enabled.includes('dxos.org/plugin/deck') && (\n <LayoutControls\n variant='hide-disabled'\n capabilities={{\n incrementStart: false,\n incrementEnd: false,\n }}\n onClick={(_type) => {\n // TODO(Zan): If we inmplement pinning again, we should dispatch here.\n }}\n />\n )}\n </div>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "createSurface", "Capabilities", "contributes", "useCapability", "isGraphNode", "formatDistance", "React", "SettingsAction", "useIntentDispatcher", "createIntent", "usePluginManager", "useConfig", "Button", "Link", "Message", "Popover", "Tooltip", "Trans", "useDefaultValue", "useSidebars", "useTranslation", "Icon", "IconButton", "LayoutControls", "mx", "buttonStyles", "repo", "VERSION_REGEX", "NavTreeFooter", "props", "layoutPart", "useDefaultValue", "config", "useConfig", "t", "useTranslation", "NAVTREE_PLUGIN", "navigationSidebarOpen", "useSidebars", "dispatchPromise", "dispatch", "useIntentDispatcher", "version", "timestamp", "commitHash", "values", "runtime", "app", "build", "manager", "usePluginManager", "_", "v", "match", "releaseUrl", "env", "DX_ENVIRONMENT", "previewUrl", "div", "role", "className", "mx", "Popover", "Root", "Trigger", "asChild", "Button", "variant", "classNames", "tabIndex", "Portal", "Content", "side", "Message", "valence", "Title", "Icon", "icon", "size", "span", "Body", "br", "Link", "href", "target", "rel", "p", "released", "formatDistance", "Date", "addSuffix", "Trans", "i18nKey", "components", "dxos", "Arrow", "Tooltip", "IconButton", "iconOnly", "label", "data-testid", "data-joyride", "iconClassNames", "onClick", "createIntent", "SettingsAction", "Open", "enabled", "includes", "LayoutControls", "capabilities", "incrementStart", "incrementEnd", "_type", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "COMMANDS_DIALOG", "role", "filter", "data", "component", "React", "CommandsDialogContent", "selected", "subject", "NAVTREE_PLUGIN", "graph", "useCapability", "AppGraph", "isOpen", "isCurrent", "setItem", "NavTreeCapabilities", "State", "handleOpenChange", "useCallback", "item", "path", "open", "node", "findNode", "expandChildrenAndActions", "NavTreeContainer", "onOpenChange", "popoverAnchorId", "NavTreeDocumentTitle", "isGraphNode", "undefined", "NotchStart", "NavTreeFooter", "disposition", "CommandsTrigger"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type ReactiveObject, create } from '@dxos/live-object';\nimport { Path } from '@dxos/react-ui-mosaic';\n\nimport { NavTreeCapabilities } from './capabilities';\nimport { NAVTREE_PLUGIN } from '../meta';\n\nconst KEY = `${NAVTREE_PLUGIN}/state`;\n\nconst getInitialState = () => {\n const stringified = localStorage.getItem(KEY);\n if (!stringified) {\n return;\n }\n\n try {\n const cached: [string, { open: boolean; current: boolean }][] = JSON.parse(stringified);\n return cached.map(\n ([key, value]): [\n string,\n ReactiveObject<{\n open: boolean;\n current: boolean;\n }>,\n ] => [key, create({ open: value.open, current: false })],\n );\n } catch {}\n};\n\nexport default (context: PluginsContext) => {\n // TODO(wittjosiah): This currently needs to be not a ReactiveObject at the root.\n // If it is a ReactiveObject then React errors when initializing new paths because of state change during render.\n // Ideally this could be a ReactiveObject but be able to access and update the root level without breaking render.\n // Wrapping accesses and updates in `untracked` didn't seem to work in all cases.\n const state = new Map<string, ReactiveObject<{ open: boolean; current: boolean }>>(\n getInitialState() ?? [\n // TODO(thure): Initialize these dynamically.\n ['root', create({ open: true, current: false })],\n ['root~dxos.org/plugin/space-spaces', create({ open: true, current: false })],\n ['root~dxos.org/plugin/files', create({ open: true, current: false })],\n ],\n );\n\n const getItem = (_path: string[]) => {\n const path = Path.create(..._path);\n const value = state.get(path) ?? create({ open: false, current: false });\n if (!state.has(path)) {\n state.set(path, value);\n }\n\n return value;\n };\n\n const setItem = (path: string[], key: 'open' | 'current', next: boolean) => {\n const value = getItem(path);\n value[key] = next;\n\n localStorage.setItem(KEY, JSON.stringify(Array.from(state.entries())));\n };\n\n const isOpen = (path: string[]) => getItem(path).open;\n const isCurrent = (path: string[]) => getItem(path).current;\n\n const location = context.requestCapability(Capabilities.Location);\n const layout = context.requestCapability(Capabilities.Layout);\n\n let previous: string[] = [];\n const unsubscribe = effect(() => {\n const part = layout.layoutMode === 'solo' ? 'solo' : 'main';\n const current = location.active[part]?.map(({ id }) => id) ?? [];\n const removed = previous.filter((id) => !current.includes(id));\n previous = current;\n\n // TODO(wittjosiah): This is setTimeout because there's a race between the keys be initialized.\n // This could be avoided if the location was a path as well and not just an id.\n setTimeout(() => {\n removed.forEach((id) => {\n const keys = Array.from(state.keys()).filter((key) => Path.last(key) === id);\n keys.forEach((key) => {\n setItem(Path.parts(key), 'current', false);\n });\n });\n\n current.forEach((id) => {\n const keys = Array.from(new Set([...state.keys(), id])).filter((key) => Path.last(key) === id);\n keys.forEach((key) => {\n setItem(Path.parts(key), 'current', true);\n });\n });\n });\n });\n\n return contributes(NavTreeCapabilities.State, { state, getItem, setItem, isOpen, isCurrent }, () => unsubscribe());\n};\n"],
5
- "mappings": "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",
6
- "names": ["effect", "Capabilities", "contributes", "create", "Path", "KEY", "NAVTREE_PLUGIN", "getInitialState", "stringified", "localStorage", "getItem", "cached", "JSON", "parse", "map", "key", "value", "create", "open", "current", "context", "state", "Map", "_path", "path", "Path", "get", "has", "set", "setItem", "next", "stringify", "Array", "from", "entries", "isOpen", "isCurrent", "location", "requestCapability", "Capabilities", "Location", "layout", "Layout", "previous", "unsubscribe", "effect", "part", "layoutMode", "active", "id", "removed", "filter", "includes", "setTimeout", "forEach", "keys", "last", "parts", "Set", "contributes", "NavTreeCapabilities", "State"]
7
- }
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import { type LayoutPart } from '@dxos/app-framework';
3
- export declare const NavTreeFooter: (props: {
4
- layoutPart?: LayoutPart;
5
- }) => React.JSX.Element;
6
- //# sourceMappingURL=NavTreeFooter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavTreeFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/NavTreeFooter.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,KAAK,UAAU,EAKhB,MAAM,qBAAqB,CAAC;AA0B7B,eAAO,MAAM,aAAa,UAAW;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,sBAyH/D,CAAC"}