@dxos/plugin-navtree 0.7.5-staging.2ff1350 → 0.7.5-staging.e6154f3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{chunk-7OKF4GP3.mjs → chunk-GXNOX2XZ.mjs} +126 -20
- package/dist/lib/browser/chunk-GXNOX2XZ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-SIEGT4YS.mjs → react-surface-SG4QBA2U.mjs} +2 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts +110 -110
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +124 -124
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/components/L0Menu.d.ts.map +1 -1
- package/dist/types/src/components/NavTreeItemAction.stories.d.ts +1 -1
- package/package.json +30 -30
- package/src/components/L0Menu.tsx +126 -32
- package/src/components/L1Panels.tsx +2 -2
- package/dist/lib/browser/chunk-7OKF4GP3.mjs.map +0 -7
- /package/dist/lib/browser/{react-surface-SIEGT4YS.mjs.map → react-surface-SG4QBA2U.mjs.map} +0 -0
|
@@ -320,7 +320,7 @@ import { isEchoObject, isSpace } from "@dxos/react-client/echo";
|
|
|
320
320
|
import { useMediaQuery as useMediaQuery2 } from "@dxos/react-ui";
|
|
321
321
|
import { isTreeData } from "@dxos/react-ui-list";
|
|
322
322
|
import { mx as mx6 } from "@dxos/react-ui-theme";
|
|
323
|
-
import { arrayMove } from "@dxos/util";
|
|
323
|
+
import { arrayMove as arrayMove2 } from "@dxos/util";
|
|
324
324
|
|
|
325
325
|
// packages/plugins/plugin-navtree/src/components/NavTree.tsx
|
|
326
326
|
import React9, { useMemo as useMemo4 } from "react";
|
|
@@ -328,11 +328,18 @@ import { Tabs as Tabs3 } from "@dxos/react-ui-tabs";
|
|
|
328
328
|
import { byPosition } from "@dxos/util";
|
|
329
329
|
|
|
330
330
|
// packages/plugins/plugin-navtree/src/components/L0Menu.tsx
|
|
331
|
-
import
|
|
331
|
+
import { combine } from "@atlaskit/pragmatic-drag-and-drop/combine";
|
|
332
|
+
import { draggable, dropTargetForElements } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
333
|
+
import { preserveOffsetOnSource } from "@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source";
|
|
334
|
+
import { scrollJustEnoughIntoView } from "@atlaskit/pragmatic-drag-and-drop/element/scroll-just-enough-into-view";
|
|
335
|
+
import { attachClosestEdge, extractClosestEdge } from "@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge";
|
|
336
|
+
import React5, { useCallback, useLayoutEffect, useMemo as useMemo2, useRef, useState as useState2 } from "react";
|
|
332
337
|
import { createIntent as createIntent4, LayoutAction as LayoutAction3, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework";
|
|
333
|
-
import {
|
|
338
|
+
import { invariant } from "@dxos/invariant";
|
|
339
|
+
import { Popover, ScrollArea, toLocalizedString as toLocalizedString3, Tooltip, useMediaQuery, useSidebars, useTranslation as useTranslation4, ListItem, Icon as Icon2 } from "@dxos/react-ui";
|
|
334
340
|
import { Tabs } from "@dxos/react-ui-tabs";
|
|
335
341
|
import { mx as mx3 } from "@dxos/react-ui-theme";
|
|
342
|
+
import { arrayMove } from "@dxos/util";
|
|
336
343
|
|
|
337
344
|
// packages/plugins/plugin-navtree/src/components/NavTreeContext.tsx
|
|
338
345
|
import { createContext, useContext } from "react";
|
|
@@ -374,6 +381,7 @@ var useLoadDescendents = (root) => {
|
|
|
374
381
|
};
|
|
375
382
|
|
|
376
383
|
// packages/plugins/plugin-navtree/src/components/L0Menu.tsx
|
|
384
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-navtree/src/components/L0Menu.tsx";
|
|
377
385
|
var useL0ItemClick = ({ item, parent, path }, type) => {
|
|
378
386
|
const { tab, onTabChange, onSelect, isCurrent } = useNavTreeContext();
|
|
379
387
|
const { dispatchPromise: dispatch } = useIntentDispatcher4();
|
|
@@ -423,8 +431,10 @@ var useL0ItemClick = ({ item, parent, path }, type) => {
|
|
|
423
431
|
var l0Breakpoints = {
|
|
424
432
|
lg: "hidden lg:grid"
|
|
425
433
|
};
|
|
426
|
-
var L0Item = ({ item, parent, path, pinned }) => {
|
|
434
|
+
var L0Item = ({ item, parent, path, pinned, onRearrange }) => {
|
|
427
435
|
const { t } = useTranslation4(NAVTREE_PLUGIN);
|
|
436
|
+
const itemElement = useRef(null);
|
|
437
|
+
const [closestEdge, setEdge] = useState2(null);
|
|
428
438
|
const type = l0ItemType(item);
|
|
429
439
|
const itemPath = useMemo2(() => [
|
|
430
440
|
...path,
|
|
@@ -466,22 +476,89 @@ var L0Item = ({ item, parent, path, pinned }) => {
|
|
|
466
476
|
color: `var(--dx-${hue}SurfaceText)`
|
|
467
477
|
}
|
|
468
478
|
};
|
|
479
|
+
useLayoutEffect(() => {
|
|
480
|
+
if (!itemElement.current || !onRearrange) {
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
return combine(draggable({
|
|
484
|
+
element: itemElement.current,
|
|
485
|
+
getInitialData: () => ({
|
|
486
|
+
id: item.id,
|
|
487
|
+
type: "l0Item"
|
|
488
|
+
}),
|
|
489
|
+
onGenerateDragPreview: ({ nativeSetDragImage, source, location }) => {
|
|
490
|
+
document.body.setAttribute("data-drag-preview", "true");
|
|
491
|
+
const element = source.element.querySelector("[data-frame]");
|
|
492
|
+
scrollJustEnoughIntoView({
|
|
493
|
+
element
|
|
494
|
+
});
|
|
495
|
+
const { x, y } = preserveOffsetOnSource({
|
|
496
|
+
element,
|
|
497
|
+
input: location.current.input
|
|
498
|
+
})({
|
|
499
|
+
container: element.offsetParent ?? document.body
|
|
500
|
+
});
|
|
501
|
+
nativeSetDragImage?.(element, x, y);
|
|
502
|
+
},
|
|
503
|
+
onDragStart: () => {
|
|
504
|
+
document.body.removeAttribute("data-drag-preview");
|
|
505
|
+
itemElement.current.closest("[data-drag-autoscroll]")?.setAttribute("data-drag-autoscroll", "active");
|
|
506
|
+
},
|
|
507
|
+
onDrop: () => {
|
|
508
|
+
itemElement.current.closest("[data-drag-autoscroll]")?.setAttribute("data-drag-autoscroll", "idle");
|
|
509
|
+
}
|
|
510
|
+
}), dropTargetForElements({
|
|
511
|
+
element: itemElement.current,
|
|
512
|
+
getData: ({ input, element }) => {
|
|
513
|
+
return attachClosestEdge({
|
|
514
|
+
id: item.id,
|
|
515
|
+
type: "l0Item"
|
|
516
|
+
}, {
|
|
517
|
+
input,
|
|
518
|
+
element,
|
|
519
|
+
allowedEdges: [
|
|
520
|
+
"top",
|
|
521
|
+
"bottom"
|
|
522
|
+
]
|
|
523
|
+
});
|
|
524
|
+
},
|
|
525
|
+
onDragEnter: ({ self, source }) => {
|
|
526
|
+
if (source.data.type === self.data.type) {
|
|
527
|
+
setEdge(extractClosestEdge(self.data));
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
onDrag: ({ self, source }) => {
|
|
531
|
+
if (source.data.type === self.data.type) {
|
|
532
|
+
setEdge(extractClosestEdge(self.data));
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
onDragLeave: () => setEdge(null),
|
|
536
|
+
onDrop: ({ self, source }) => {
|
|
537
|
+
setEdge(null);
|
|
538
|
+
if (source.data.type === self.data.type) {
|
|
539
|
+
onRearrange(source.data, self.data, extractClosestEdge(self.data));
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}));
|
|
543
|
+
}, [
|
|
544
|
+
item,
|
|
545
|
+
onRearrange
|
|
546
|
+
]);
|
|
469
547
|
const l0ItemTrigger = /* @__PURE__ */ React5.createElement(Root, {
|
|
470
548
|
...rootProps,
|
|
471
549
|
"data-type": type,
|
|
472
|
-
className: mx3('group/l0i dx-focus-ring-group grid
|
|
473
|
-
|
|
550
|
+
className: mx3('group/l0i dx-focus-ring-group grid relative data[type!="collection"]:cursor-pointer app-no-drag', l0Breakpoints[item.properties.l0Breakpoint]),
|
|
551
|
+
ref: itemElement
|
|
552
|
+
}, /* @__PURE__ */ React5.createElement("div", {
|
|
474
553
|
role: "none",
|
|
475
|
-
|
|
554
|
+
"data-frame": true,
|
|
555
|
+
className: mx3("absolute grid dx-focus-ring-group-indicator transition-colors", type === "tab" || pinned ? "rounded" : "rounded-full", pinned ? "bg-transparent group-hover/l0i:bg-groupSurface inset-inline-3 inset-block-0.5" : "bg-groupSurface inset-inline-3 inset-block-2"),
|
|
476
556
|
...hue && {
|
|
477
557
|
style: {
|
|
478
558
|
background: `var(--dx-${hue}Surface)`
|
|
479
559
|
}
|
|
480
560
|
}
|
|
481
|
-
}
|
|
482
|
-
role: "none",
|
|
483
|
-
className: "hidden group-aria-selected/l0i:block absolute inline-start-0 inset-block-4 is-1 bg-accentSurface rounded-ie"
|
|
484
|
-
}), item.properties.icon && /* @__PURE__ */ React5.createElement(Icon2, {
|
|
561
|
+
}, item.properties.icon && /* @__PURE__ */ React5.createElement(Icon2, {
|
|
485
562
|
icon: item.properties.icon,
|
|
486
563
|
size: pinned ? 5 : 7,
|
|
487
564
|
classNames: "place-self-center",
|
|
@@ -495,10 +572,15 @@ var L0Item = ({ item, parent, path, pinned }) => {
|
|
|
495
572
|
size: pinned ? 5 : 7,
|
|
496
573
|
classNames: "place-self-center",
|
|
497
574
|
...hueFgStyle
|
|
498
|
-
})), /* @__PURE__ */ React5.createElement("
|
|
575
|
+
}))), /* @__PURE__ */ React5.createElement("div", {
|
|
576
|
+
role: "none",
|
|
577
|
+
className: "hidden group-aria-selected/l0i:block absolute inline-start-0 inset-block-4 is-1 bg-accentSurface rounded-ie"
|
|
578
|
+
}), /* @__PURE__ */ React5.createElement("span", {
|
|
499
579
|
id: `${item.id}__label`,
|
|
500
580
|
className: "sr-only"
|
|
501
|
-
}, localizedString)
|
|
581
|
+
}, localizedString), onRearrange && closestEdge && /* @__PURE__ */ React5.createElement(ListItem.DropIndicator, {
|
|
582
|
+
edge: closestEdge
|
|
583
|
+
}));
|
|
502
584
|
return popoverAnchorId === id ? /* @__PURE__ */ React5.createElement(Popover.Anchor, {
|
|
503
585
|
asChild: true
|
|
504
586
|
}, l0ItemTrigger) : /* @__PURE__ */ React5.createElement(Tooltip.Root, {
|
|
@@ -521,6 +603,27 @@ var L0Collection = ({ item, path, parent }) => {
|
|
|
521
603
|
path
|
|
522
604
|
]);
|
|
523
605
|
const { id, testId } = navTreeContext.getProps?.(item, path) ?? {};
|
|
606
|
+
const handleRearrange = useCallback((source, target, closestEdge) => {
|
|
607
|
+
invariant(item.properties.onRearrangeChildren, void 0, {
|
|
608
|
+
F: __dxlog_file,
|
|
609
|
+
L: 246,
|
|
610
|
+
S: void 0,
|
|
611
|
+
A: [
|
|
612
|
+
"item.properties.onRearrangeChildren",
|
|
613
|
+
""
|
|
614
|
+
]
|
|
615
|
+
});
|
|
616
|
+
const sourceIndex = collectionItems.findIndex((i) => i.id === source.id);
|
|
617
|
+
const targetIndex = collectionItems.findIndex((i) => i.id === target.id);
|
|
618
|
+
const insertIndex = source.id === target.id ? sourceIndex : targetIndex + (sourceIndex < targetIndex ? closestEdge === "top" ? -1 : 0 : closestEdge === "bottom" ? 1 : 0);
|
|
619
|
+
const nextOrder = arrayMove([
|
|
620
|
+
...collectionItems
|
|
621
|
+
], sourceIndex, insertIndex);
|
|
622
|
+
return item.properties.onRearrangeChildren(nextOrder);
|
|
623
|
+
}, [
|
|
624
|
+
collectionItems,
|
|
625
|
+
item.properties.onRearrangeChildren
|
|
626
|
+
]);
|
|
524
627
|
return /* @__PURE__ */ React5.createElement("div", {
|
|
525
628
|
role: "group",
|
|
526
629
|
className: "contents group/l0c",
|
|
@@ -531,7 +634,10 @@ var L0Collection = ({ item, path, parent }) => {
|
|
|
531
634
|
key: collectionItem.id,
|
|
532
635
|
item: collectionItem,
|
|
533
636
|
parent: item,
|
|
534
|
-
path: groupPath
|
|
637
|
+
path: groupPath,
|
|
638
|
+
...item.properties.onRearrangeChildren && {
|
|
639
|
+
onRearrange: handleRearrange
|
|
640
|
+
}
|
|
535
641
|
})));
|
|
536
642
|
};
|
|
537
643
|
var L0Menu = ({ topLevelItems, pinnedItems, parent, path }) => {
|
|
@@ -593,7 +699,7 @@ import { isAction as isAction3 } from "@dxos/app-graph";
|
|
|
593
699
|
import { Popover as Popover2, toLocalizedString as toLocalizedString5, Treegrid, useTranslation as useTranslation6 } from "@dxos/react-ui";
|
|
594
700
|
|
|
595
701
|
// packages/plugins/plugin-navtree/src/components/NavTreeItemAction.tsx
|
|
596
|
-
import React6, { useRef } from "react";
|
|
702
|
+
import React6, { useRef as useRef2 } from "react";
|
|
597
703
|
import { useTranslation as useTranslation5, toLocalizedString as toLocalizedString4, IconButton } from "@dxos/react-ui";
|
|
598
704
|
import { DropdownMenu, MenuProvider } from "@dxos/react-ui-menu";
|
|
599
705
|
import { hoverableControlItem, hoverableOpenControlItem, mx as mx4 } from "@dxos/react-ui-theme";
|
|
@@ -604,7 +710,7 @@ var actionButtonProps = {
|
|
|
604
710
|
};
|
|
605
711
|
var NavTreeItemActionDropdownMenu = ({ label, icon, testId, menuActions, onAction }) => {
|
|
606
712
|
const { t } = useTranslation5(NAVTREE_PLUGIN);
|
|
607
|
-
const suppressNextTooltip =
|
|
713
|
+
const suppressNextTooltip = useRef2(false);
|
|
608
714
|
return /* @__PURE__ */ React6.createElement(MenuProvider, {
|
|
609
715
|
onAction
|
|
610
716
|
}, /* @__PURE__ */ React6.createElement(DropdownMenu.Root, {
|
|
@@ -737,7 +843,7 @@ var L1Panel = ({ item, path, currentItemId, onBack }) => {
|
|
|
737
843
|
size: 5,
|
|
738
844
|
density: "fine",
|
|
739
845
|
variant: "ghost",
|
|
740
|
-
classNames: mx5("shrink-0 mie-2", "
|
|
846
|
+
classNames: mx5("shrink-0 mie-2 !p-0", "pointer-fine:pli-1", hoverableControlItem2, hoverableOpenControlItem2),
|
|
741
847
|
onClick: onBack
|
|
742
848
|
}), /* @__PURE__ */ React8.createElement("span", {
|
|
743
849
|
className: "flex-1 truncate cursor-default"
|
|
@@ -861,7 +967,7 @@ import { lazy } from "@dxos/app-framework";
|
|
|
861
967
|
var AppGraphBuilder = lazy(() => import("./app-graph-builder-BL7LRXCM.mjs"));
|
|
862
968
|
var IntentResolver = lazy(() => import("./intent-resolver-U25VBFH3.mjs"));
|
|
863
969
|
var Keyboard2 = lazy(() => import("./keyboard-MUBRTPI5.mjs"));
|
|
864
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
970
|
+
var ReactSurface = lazy(() => import("./react-surface-SG4QBA2U.mjs"));
|
|
865
971
|
var State = lazy(() => import("./state-IEFQTUPG.mjs"));
|
|
866
972
|
|
|
867
973
|
// packages/plugins/plugin-navtree/src/components/NavTreeContainer.tsx
|
|
@@ -1063,7 +1169,7 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1063
1169
|
switch (operation) {
|
|
1064
1170
|
case "rearrange": {
|
|
1065
1171
|
const nextItems = sourceItems.map(({ data }) => data);
|
|
1066
|
-
|
|
1172
|
+
arrayMove2(nextItems, sourceIndex, targetIndex);
|
|
1067
1173
|
void sourceParent?.properties.onRearrangeChildren?.(nextItems);
|
|
1068
1174
|
break;
|
|
1069
1175
|
}
|
|
@@ -1153,4 +1259,4 @@ export {
|
|
|
1153
1259
|
ReactSurface,
|
|
1154
1260
|
State
|
|
1155
1261
|
};
|
|
1156
|
-
//# sourceMappingURL=chunk-
|
|
1262
|
+
//# sourceMappingURL=chunk-GXNOX2XZ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/CommandsDialog.tsx", "../../../src/components/CommandsTrigger.tsx", "../../../src/components/NotchStart.tsx", "../../../src/components/HaloButton.tsx", "../../../src/util.ts", "../../../src/components/NavTreeContainer.tsx", "../../../src/components/NavTree.tsx", "../../../src/components/L0Menu.tsx", "../../../src/components/NavTreeContext.tsx", "../../../src/hooks.ts", "../../../src/components/NavTreeDocumentTitle.tsx", "../../../src/components/L1Panels.tsx", "../../../src/components/NavTreeItemColumns.tsx", "../../../src/components/NavTreeItemAction.tsx", "../../../src/capabilities/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo, useState } from 'react';\n\nimport { createIntent, LayoutAction, useAppGraph, useIntentDispatcher } from '@dxos/app-framework';\nimport { type ActionLike, isActionGroup, isAction } from '@dxos/app-graph';\nimport { Keyboard, keySymbols } from '@dxos/keyboard';\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 } = useAppGraph();\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.UpdateDialog, { part: 'dialog', options: { 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.UpdateDialog, {\n part: 'dialog',\n subject: COMMANDS_DIALOG,\n options: {\n blockAlign: 'start',\n },\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 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useCapabilities, useIntentDispatcher } 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={12}\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", "//\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 isActionLike,\n} from '@dxos/app-graph';\nimport { isNonNullable } 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(isNonNullable) 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\nexport const l0ItemType = (item: Node<any>) => {\n if (item.properties.disposition === 'collection') {\n return 'collection';\n } else if (isActionLike(item)) {\n return 'action';\n } else if (item.properties.disposition === 'navigation') {\n return 'link';\n } else {\n return 'tab';\n }\n};\n\n// Regular expression to match renderable characters\n// Excludes control characters, combining marks, and other non-renderable characters\nconst renderableCharRegex =\n /^(?![\\p{Control}\\p{Mark}\\p{Separator}\\p{Surrogate}\\p{Unassigned}])[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Emoji}]$/u;\n\n/**\n * Returns the first two renderable characters from a string that are separated by non-word characters.\n * Handles Unicode characters correctly.\n *\n * @param {string} label - The input string to process\n * @returns {[string, string]} Array containing the two characters, or empty strings if not found\n */\nexport const getFirstTwoRenderableChars = (label: string) => {\n // Convert string to array of Unicode characters\n const characters = Array.from(label);\n\n // Keep track of found renderable characters\n const result = ['', ''];\n let foundFirst = false;\n\n for (let i = 0; i < characters.length; i++) {\n const char = characters[i];\n\n if (renderableCharRegex.test(char)) {\n if (!foundFirst) {\n result[0] = char;\n foundFirst = true;\n } else {\n // Check if there's at least one non-word character between the first and current char\n const textBetween = characters.slice(result[0].length, i).join('');\n if (/[^\\p{L}\\p{N}_]/u.test(textBetween)) {\n result[1] = char;\n break;\n }\n }\n }\n }\n\n return result;\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, useMemo } from 'react';\n\nimport {\n createIntent,\n LayoutAction,\n Surface,\n useAppGraph,\n useCapability,\n useIntentDispatcher,\n useLayout,\n} from '@dxos/app-framework';\nimport { isAction, isActionLike, type Node } from '@dxos/app-graph';\nimport { isEchoObject, isSpace } from '@dxos/react-client/echo';\nimport { useMediaQuery } 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 } from './NavTree';\nimport { NavTreeContext } from './NavTreeContext';\nimport { type NavTreeContextValue } from './types';\nimport { NavTreeCapabilities } from '../capabilities';\nimport { type NavTreeItemGraphNode } from '../types';\nimport {\n expandActions,\n expandChildren,\n getActions as naturalGetActions,\n getChildren,\n getParent,\n resolveMigrationOperation,\n expandChildrenAndActions,\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 topbar?: boolean;\n} & Pick<NavTreeContextValue, 'tab'>;\n\nexport const NavTreeContainer = memo(({ tab, popoverAnchorId, topbar }: NavTreeContainerProps) => {\n const [isLg] = useMediaQuery('lg', { ssr: false });\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { graph } = useAppGraph();\n const layout = useLayout();\n const { isOpen, isCurrent, setItem } = useCapability(NavTreeCapabilities.State);\n\n const getActions = useCallback((node: Node) => naturalGetActions(graph, node), [graph]);\n\n const getItems = useCallback(\n (node?: Node, disposition?: string) => {\n return graph.nodes(node ?? graph.root, {\n filter: (node): node is Node => {\n return untracked(() => {\n const action = isAction(node);\n if (!disposition) {\n return !action || node.properties.disposition === 'item';\n }\n\n return node.properties.disposition === disposition;\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 onOpenChange = 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 const onTabChange = useCallback(\n async (node: NavTreeItemGraphNode) => {\n await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: node.id }));\n // Open the first item if the workspace is empty.\n if (layout.active.length === 0) {\n const [item] = getItems(node).filter((node) => !isActionLike(node));\n if (item && item.data) {\n await dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [item.id] }));\n }\n }\n },\n [dispatch, layout],\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(\n createIntent(LayoutAction.Open, {\n part: 'main',\n subject: [node.id],\n options: { key: node.properties.key },\n }),\n );\n } else if (option) {\n void dispatch(\n createIntent(LayoutAction.Close, { part: 'main', subject: [node.id], options: { state: false } }),\n );\n } else {\n void dispatch(createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: 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 void dispatch(createIntent(LayoutAction.UpdateSidebar, { part: 'sidebar', options: { state: 'closed' } }));\n }\n },\n [graph, dispatch, isCurrent, isLg],\n );\n\n const onBack = useCallback(\n () => dispatch(createIntent(LayoutAction.RevertWorkspace, { part: 'workspace', options: { revert: true } })),\n [dispatch],\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 const navTreeContextValue = useMemo(\n () => ({\n tab,\n onTabChange,\n onBack,\n getActions,\n loadDescendents,\n renderItemEnd,\n popoverAnchorId,\n topbar,\n getItems,\n getProps,\n isCurrent,\n isOpen,\n onOpenChange,\n canDrop,\n onSelect: handleSelect,\n }),\n [\n tab,\n onTabChange,\n onBack,\n getActions,\n loadDescendents,\n renderItemEnd,\n popoverAnchorId,\n topbar,\n getItems,\n getProps,\n isCurrent,\n isOpen,\n onOpenChange,\n canDrop,\n handleSelect,\n ],\n );\n\n return (\n <NavTreeContext.Provider value={navTreeContextValue}>\n <NavTree root={graph.root} id={graph.root.id} />\n </NavTreeContext.Provider>\n );\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Tabs } from '@dxos/react-ui-tabs';\nimport { byPosition } from '@dxos/util';\n\nimport { L0Menu } from './L0Menu';\nimport { L1Panels } from './L1Panels';\nimport { useNavTreeContext } from './NavTreeContext';\nimport { type NavTreeProps } from './types';\nimport { useLoadDescendents } from '../hooks';\n\nexport const NAV_TREE_ITEM = 'NavTreeItem';\n\nexport const NavTree = ({ id, root }: NavTreeProps) => {\n const { tab, getItems, onBack } = useNavTreeContext();\n const topLevelActions = getItems(root, 'item').toSorted((a, b) => byPosition(a.properties, b.properties));\n const topLevelCollections = getItems(root, 'collection');\n const topLevelWorkspaces = getItems(root, 'workspace');\n const topLevelNavigation = getItems(root, 'navigation');\n const l0Items = useMemo(\n () => [...topLevelActions, ...topLevelCollections, ...topLevelWorkspaces, ...topLevelNavigation],\n [topLevelActions, topLevelCollections, topLevelWorkspaces, topLevelNavigation],\n );\n const pinnedItems = getItems(root, 'pin-end').toSorted((a, b) => byPosition(a.properties, b.properties));\n const topLevelItems = useMemo(() => [...l0Items, ...pinnedItems], [l0Items, pinnedItems]);\n\n useLoadDescendents(root);\n const path = useMemo(() => [id], [id]);\n\n return (\n // NOTE(thure): 74px (rather than rem) is intentional in order to match the size of macOS windowing controls\n <Tabs.Root value={tab} orientation='vertical' verticalVariant='stateless' classNames='relative'>\n <L0Menu topLevelItems={l0Items} pinnedItems={pinnedItems} path={path} parent={root} />\n <L1Panels topLevelItems={topLevelItems} path={path} currentItemId={tab} onBack={onBack} />\n </Tabs.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';\nimport { draggable, dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';\nimport { preserveOffsetOnSource } from '@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source';\nimport { scrollJustEnoughIntoView } from '@atlaskit/pragmatic-drag-and-drop/element/scroll-just-enough-into-view';\nimport {\n attachClosestEdge,\n type Edge,\n extractClosestEdge,\n} from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';\nimport React, { type MouseEvent, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { type Node } from '@dxos/app-graph';\nimport { invariant } from '@dxos/invariant';\nimport {\n Popover,\n ScrollArea,\n toLocalizedString,\n Tooltip,\n useMediaQuery,\n useSidebars,\n useTranslation,\n ListItem,\n Icon,\n} from '@dxos/react-ui';\nimport type { StackItemRearrangeHandler } from '@dxos/react-ui-stack';\nimport { Tabs } from '@dxos/react-ui-tabs';\nimport { mx } from '@dxos/react-ui-theme';\nimport { arrayMove } from '@dxos/util';\n\nimport { useNavTreeContext } from './NavTreeContext';\nimport { NotchStart } from './NotchStart';\nimport { useLoadDescendents } from '../hooks';\nimport { NAVTREE_PLUGIN } from '../meta';\nimport { getFirstTwoRenderableChars, l0ItemType } from '../util';\n\ntype L0ItemData = { id: L0ItemProps['item']['id']; type: 'l0Item' };\n\ntype L0ItemProps = {\n item: Node<any>;\n parent?: Node<any>;\n path: string[];\n pinned?: boolean;\n onRearrange?: StackItemRearrangeHandler<L0ItemData>;\n};\n\nconst useL0ItemClick = ({ item, parent, path }: L0ItemProps, type: string) => {\n const { tab, onTabChange, onSelect, isCurrent } = useNavTreeContext();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { navigationSidebarState } = useSidebars(NAVTREE_PLUGIN);\n const [isLg] = useMediaQuery('lg', { ssr: false });\n\n return useCallback(\n (event: MouseEvent) => {\n switch (type) {\n case 'tab':\n // TODO(thure): This dispatch should rightly be in `onTabChange`, but that callback wasn’t reacting to changes\n // to its dependencies.\n void dispatch(\n createIntent(LayoutAction.UpdateSidebar, {\n part: 'sidebar',\n options: {\n state:\n item.id === tab\n ? navigationSidebarState === 'expanded'\n ? isLg\n ? 'collapsed'\n : 'closed'\n : 'expanded'\n : 'expanded',\n },\n }),\n );\n return onTabChange?.(item);\n case 'link':\n return onSelect?.({ item, path, current: !isCurrent(path, item), option: event.altKey });\n case 'action': {\n const {\n data: invoke,\n properties: { caller },\n } = item;\n return invoke?.(caller ? { node: parent, caller } : { node: parent });\n }\n }\n },\n [item, type, onSelect, isCurrent, parent, tab, navigationSidebarState, isLg, dispatch],\n );\n};\n\nconst l0Breakpoints: Record<string, string> = {\n lg: 'hidden lg:grid',\n};\n\nconst L0Item = ({ item, parent, path, pinned, onRearrange }: L0ItemProps) => {\n const { t } = useTranslation(NAVTREE_PLUGIN);\n const itemElement = useRef<HTMLElement | null>(null);\n const [closestEdge, setEdge] = useState<Edge | null>(null);\n const type = l0ItemType(item);\n const itemPath = useMemo(() => [...path, item.id], [item.id, path]);\n const { getProps, popoverAnchorId } = useNavTreeContext();\n const { id, testId } = getProps?.(item, path) ?? {};\n const Root = type === 'collection' ? 'h2' : type === 'tab' ? Tabs.TabPrimitive : 'button';\n const handleClick = useL0ItemClick({ item, path: itemPath, parent }, type);\n const rootProps =\n type === 'tab'\n ? { value: item.id, tabIndex: 0, onClick: handleClick, 'data-testid': testId, 'data-itemid': id }\n : type !== 'collection'\n ? { onClick: handleClick, 'data-testid': testId, 'data-itemid': id }\n : { onClick: handleClick };\n const localizedString = toLocalizedString(item.properties.label, t);\n const hue = item.properties.hue ?? null;\n const avatarValue = useMemo(\n () => (type === 'tab' ? getFirstTwoRenderableChars(localizedString).join('').toUpperCase() : []),\n [type, item.properties.label, t],\n );\n const hueFgStyle = hue && { style: { color: `var(--dx-${hue}SurfaceText)` } };\n\n useLayoutEffect(() => {\n // NOTE(thure): This is copied from StackItem, perhaps this should be DRYed out.\n if (!itemElement.current || !onRearrange) {\n return;\n }\n return combine(\n draggable({\n element: itemElement.current,\n getInitialData: () => ({ id: item.id, type: 'l0Item' }) satisfies L0ItemData,\n onGenerateDragPreview: ({ nativeSetDragImage, source, location }) => {\n document.body.setAttribute('data-drag-preview', 'true');\n const element = source.element.querySelector('[data-frame]') as HTMLElement;\n scrollJustEnoughIntoView({ element });\n const { x, y } = preserveOffsetOnSource({ element, input: location.current.input })({\n container: (element.offsetParent ?? document.body) as HTMLElement,\n });\n nativeSetDragImage?.(element, x, y);\n },\n onDragStart: () => {\n document.body.removeAttribute('data-drag-preview');\n itemElement.current!.closest('[data-drag-autoscroll]')?.setAttribute('data-drag-autoscroll', 'active');\n },\n onDrop: () => {\n itemElement.current!.closest('[data-drag-autoscroll]')?.setAttribute('data-drag-autoscroll', 'idle');\n },\n }),\n dropTargetForElements({\n element: itemElement.current,\n getData: ({ input, element }) => {\n return attachClosestEdge(\n { id: item.id, type: 'l0Item' },\n { input, element, allowedEdges: ['top', 'bottom'] },\n );\n },\n onDragEnter: ({ self, source }) => {\n if (source.data.type === self.data.type) {\n setEdge(extractClosestEdge(self.data));\n }\n },\n onDrag: ({ self, source }) => {\n if (source.data.type === self.data.type) {\n setEdge(extractClosestEdge(self.data));\n }\n },\n onDragLeave: () => setEdge(null),\n onDrop: ({ self, source }) => {\n setEdge(null);\n if (source.data.type === self.data.type) {\n onRearrange(source.data as L0ItemData, self.data as L0ItemData, extractClosestEdge(self.data));\n }\n },\n }),\n );\n }, [item, onRearrange]);\n\n const l0ItemTrigger = (\n <Root\n {...(rootProps as any)}\n data-type={type}\n className={mx(\n 'group/l0i dx-focus-ring-group grid relative data[type!=\"collection\"]:cursor-pointer app-no-drag',\n l0Breakpoints[item.properties.l0Breakpoint],\n )}\n ref={itemElement}\n >\n <div\n role='none'\n data-frame={true}\n className={mx(\n 'absolute grid dx-focus-ring-group-indicator transition-colors',\n type === 'tab' || pinned ? 'rounded' : 'rounded-full',\n pinned\n ? 'bg-transparent group-hover/l0i:bg-groupSurface inset-inline-3 inset-block-0.5'\n : 'bg-groupSurface inset-inline-3 inset-block-2',\n )}\n {...(hue && { style: { background: `var(--dx-${hue}Surface)` } })}\n >\n {(item.properties.icon && (\n <Icon icon={item.properties.icon} size={pinned ? 5 : 7} classNames='place-self-center' {...hueFgStyle} />\n )) ||\n (type === 'tab' && item.properties.disposition !== 'pin-end' ? (\n <span role='img' className='place-self-center text-3xl font-light' {...hueFgStyle}>\n {avatarValue}\n </span>\n ) : (\n item.properties.icon && (\n <Icon icon='ph--planet--regular' size={pinned ? 5 : 7} classNames='place-self-center' {...hueFgStyle} />\n )\n ))}\n </div>\n <div\n role='none'\n className='hidden group-aria-selected/l0i:block absolute inline-start-0 inset-block-4 is-1 bg-accentSurface rounded-ie'\n />\n <span id={`${item.id}__label`} className='sr-only'>\n {localizedString}\n </span>\n {onRearrange && closestEdge && <ListItem.DropIndicator edge={closestEdge} />}\n </Root>\n );\n\n return popoverAnchorId === id ? (\n <Popover.Anchor asChild>{l0ItemTrigger}</Popover.Anchor>\n ) : (\n <Tooltip.Root delayDuration={0}>\n <Tooltip.Trigger asChild>{l0ItemTrigger}</Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content side='right'>\n {localizedString}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nconst L0Collection = ({ item, path, parent }: L0ItemProps) => {\n const navTreeContext = useNavTreeContext();\n useLoadDescendents(item);\n const collectionItems = navTreeContext.getItems(item);\n const groupPath = useMemo(() => [...path, item.id], [item.id, path]);\n const { id, testId } = navTreeContext.getProps?.(item, path) ?? {};\n const handleRearrange = useCallback<StackItemRearrangeHandler<L0ItemData>>(\n (source, target, closestEdge) => {\n invariant(item.properties.onRearrangeChildren);\n const sourceIndex = collectionItems.findIndex((i) => i.id === source.id);\n const targetIndex = collectionItems.findIndex((i) => i.id === target.id);\n const insertIndex =\n source.id === target.id\n ? sourceIndex\n : targetIndex +\n (sourceIndex < targetIndex ? (closestEdge === 'top' ? -1 : 0) : closestEdge === 'bottom' ? 1 : 0);\n const nextOrder = arrayMove([...collectionItems], sourceIndex, insertIndex);\n return item.properties.onRearrangeChildren(nextOrder);\n },\n [collectionItems, item.properties.onRearrangeChildren],\n );\n return (\n <div\n role='group'\n className='contents group/l0c'\n aria-labelledby={`${item.id}__label`}\n data-itemid={id}\n data-testid={testId}\n >\n {collectionItems.map((collectionItem) => (\n <L0Item\n key={collectionItem.id}\n item={collectionItem}\n parent={item}\n path={groupPath}\n {...(item.properties.onRearrangeChildren && { onRearrange: handleRearrange })}\n />\n ))}\n </div>\n );\n};\n\nexport const L0Menu = ({\n topLevelItems,\n pinnedItems,\n parent,\n path,\n}: {\n topLevelItems: Node<any>[];\n pinnedItems: Node<any>[];\n parent?: Node<any>;\n path: string[];\n}) => {\n return (\n <Tabs.Tablist classNames='group/l0 absolute z-[1] inset-block-0 inline-start-0 rounded-is-lg grid grid-cols-[var(--l0-size)] grid-rows-[1fr_min-content_var(--l0-size)] contain-layout !is-[--l0-size] bg-baseSurface border-ie border-separator app-drag pbe-[env(safe-area-inset-bottom)]'>\n <ScrollArea.Root>\n <ScrollArea.Viewport>\n <div\n role='none'\n className='grid auto-rows-[calc(var(--l0-size)-.5rem)] plb-1 [body[data-platform=\"darwin\"]_&]:pbs-[calc(30px+0.25rem)] [body[data-platform=\"ios\"]_&]:pbs-[max(env(safe-area-inset-top),0.25rem)]'\n >\n {topLevelItems.map((item) => {\n if (l0ItemType(item) === 'collection') {\n return <L0Collection key={item.id} item={item} parent={parent} path={path} />;\n } else {\n return <L0Item key={item.id} item={item} parent={parent} path={path} />;\n }\n })}\n </div>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n <div role='none' className='grid grid-cols-1 auto-rows-[--rail-action] pbs-2'>\n {pinnedItems\n .filter((item) => l0ItemType(item) !== 'collection')\n .map((item) => (\n <L0Item key={item.id} item={item} parent={parent} path={path} pinned />\n ))}\n </div>\n <div role='none' className='grid p-2 app-no-drag'>\n <NotchStart />\n </div>\n <div\n role='none'\n className='hidden [body[data-platform=\"darwin\"]_&]:block absolute block-start-0 is-[calc(var(--l0-size)-1px)] bs-[calc(40px+0.25rem)]'\n style={{\n background:\n 'linear-gradient(to bottom, var(--dx-baseSurface) 0%, var(--dx-baseSurface) 70%, transparent 100%)',\n }}\n />\n </Tabs.Tablist>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { type NavTreeContextValue } from './types';\n\nexport const NavTreeContext = createContext<NavTreeContextValue | null>(null);\n\nexport const useNavTreeContext = () => useContext(NavTreeContext) ?? raise(new Error('NavTreeContext not found'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { type Node } from '@dxos/app-graph';\n\nimport { useNavTreeContext } from './components';\n\nexport const useLoadDescendents = (root?: Node) => {\n const { loadDescendents } = useNavTreeContext();\n useEffect(() => {\n const frame = requestAnimationFrame(() => {\n if (root) {\n void loadDescendents?.(root);\n }\n });\n return () => cancelAnimationFrame(frame);\n }, [root]);\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 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { useLayout } from '@dxos/app-framework';\nimport { type Node } from '@dxos/app-graph';\nimport { IconButton, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Tree } from '@dxos/react-ui-list';\nimport { Tabs } from '@dxos/react-ui-tabs';\nimport { hoverableControlItem, hoverableOpenControlItem, mx } from '@dxos/react-ui-theme';\n\nimport { useNavTreeContext } from './NavTreeContext';\nimport { NavTreeItemColumns } from './NavTreeItemColumns';\nimport { useLoadDescendents } from '../hooks';\nimport { NAVTREE_PLUGIN } from '../meta';\nimport { l0ItemType } from '../util';\n\nexport type L1PanelProps = { item: Node<any>; path: string[]; currentItemId: string; onBack?: () => void };\n\nconst L1Panel = ({ item, path, currentItemId, onBack }: L1PanelProps) => {\n const layout = useLayout();\n const navTreeContext = useNavTreeContext();\n const { t } = useTranslation(NAVTREE_PLUGIN);\n return (\n <Tabs.Tabpanel\n key={item.id}\n value={item.id}\n classNames={[\n 'absolute inset-block-0 inline-end-0 is-[calc(100%-var(--l0-size))] lg:is-[--l1-size] grid-cols-1 grid-rows-[var(--rail-size)_1fr] pbs-[env(safe-area-inset-top)]',\n item.id === currentItemId && 'grid',\n ]}\n tabIndex={-1}\n {...(!layout.sidebarOpen && { inert: 'true' })}\n >\n {item.id === currentItemId && (\n <>\n <h2 className='flex items-center border-be border-separator pis-4 app-drag'>\n {item.properties.disposition === 'pin-end' && (\n <IconButton\n label={t('back label')}\n iconOnly\n icon='ph--caret-left--regular'\n size={5}\n density='fine'\n variant='ghost'\n classNames={mx(\n 'shrink-0 mie-2 !p-0',\n 'pointer-fine:pli-1',\n hoverableControlItem,\n hoverableOpenControlItem,\n )}\n onClick={onBack}\n />\n )}\n <span className='flex-1 truncate cursor-default'>{toLocalizedString(item.properties.label, t)}</span>\n <NavTreeItemColumns path={path} item={item} open />\n </h2>\n <div role='none' className='overflow-y-auto'>\n <Tree\n {...navTreeContext}\n id={item.id}\n root={item}\n path={path}\n levelOffset={5}\n draggable\n gridTemplateColumns='[tree-row-start] 1fr min-content min-content min-content [tree-row-end]'\n renderColumns={NavTreeItemColumns}\n />\n </div>\n </>\n )}\n </Tabs.Tabpanel>\n );\n};\n\nconst L1PanelCollection = ({ item, path, currentItemId }: L1PanelProps) => {\n const { getItems } = useNavTreeContext();\n useLoadDescendents(item);\n const collectionItems = getItems(item);\n const groupPath = useMemo(() => [...path, item.id], [item.id, path]);\n return (\n <>\n {collectionItems\n .filter((item) => l0ItemType(item) === 'tab')\n .map((item) => (\n <L1Panel key={item.id} item={item} path={groupPath} currentItemId={currentItemId} />\n ))}\n </>\n );\n};\n\nexport const L1Panels = ({\n topLevelItems,\n path,\n currentItemId,\n onBack,\n}: Pick<L1PanelProps, 'onBack'> & {\n topLevelItems: Node<any>[];\n path: string[];\n currentItemId: string;\n}) => {\n return (\n <>\n {topLevelItems.map((item) => {\n const type = l0ItemType(item);\n switch (type) {\n case 'collection':\n return <L1PanelCollection key={item.id} item={item} path={path} currentItemId={currentItemId} />;\n case 'tab':\n return <L1Panel key={item.id} item={item} path={path} currentItemId={currentItemId} onBack={onBack} />;\n default:\n return null;\n }\n })}\n </>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { Fragment, memo } from 'react';\n\nimport { isAction } from '@dxos/app-graph';\nimport { Popover, toLocalizedString, Treegrid, useTranslation } from '@dxos/react-ui';\n\nimport { NAV_TREE_ITEM } from './NavTree';\nimport { useNavTreeContext } from './NavTreeContext';\nimport { NavTreeItemAction } from './NavTreeItemAction';\nimport type { NavTreeItemColumnsProps } from './types';\nimport { useLoadDescendents } from '../hooks';\nimport { NAVTREE_PLUGIN } from '../meta';\n\nexport const NavTreeItemColumns = memo(({ path, item, open }: NavTreeItemColumnsProps) => {\n const { t } = useTranslation(NAVTREE_PLUGIN);\n const { getActions, renderItemEnd: ItemEnd, popoverAnchorId } = useNavTreeContext();\n\n const level = path.length - 2;\n\n const { actions: _actions, groupedActions } = getActions(item);\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}/${item.id}` ? Popover.Anchor : Fragment;\n\n useLoadDescendents(item);\n useLoadDescendents(primaryAction && !isAction(primaryAction) ? primaryAction : undefined);\n\n return (\n <div role='none' className='contents app-no-drag'>\n {primaryAction?.properties?.disposition === 'toolbar' && !primaryAction?.properties?.disabled ? (\n <NavTreeItemAction\n testId={primaryAction.properties?.testId}\n label={toLocalizedString(primaryAction.properties?.label, t)}\n icon={primaryAction.properties?.icon ?? 'ph--placeholder--regular'}\n parent={item}\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={item}\n menuActions={actions}\n menuType='dropdown'\n caller={NAV_TREE_ITEM}\n />\n ) : (\n <Treegrid.Cell />\n )}\n </ActionRoot>\n {ItemEnd && <ItemEnd node={item} open={open} />}\n </div>\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 size: 4 as const,\n density: 'fine' as const,\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 classNames={mx('shrink-0 pli-2 pointer-fine:pli-1', hoverableControlItem, hoverableOpenControlItem)}\n variant='ghost'\n icon={icon ?? fallbackIcon}\n iconOnly\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, variant = 'ghost', iconOnly = true } = { label: 'never' },\n data: invoke,\n baseLabel,\n}: Action & { parent: Node; onAction?: (action: Action) => void; baseLabel: string }) => {\n return (\n <IconButton\n {...actionButtonProps}\n variant={variant}\n classNames={mx(\n 'shrink-0',\n hoverableControlItem,\n hoverableOpenControlItem,\n iconOnly ? 'pli-2 pointer-fine:pli-1' : 'p-2 pointer-fine:p-2 mie-1',\n )}\n icon={icon ?? fallbackIcon}\n iconOnly={iconOnly}\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 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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useMemo", "useState", "createIntent", "LayoutAction", "useAppGraph", "useIntentDispatcher", "isActionGroup", "isAction", "Keyboard", "keySymbols", "Button", "Dialog", "Icon", "useTranslation", "toLocalizedString", "SearchList", "descriptionText", "mx", "getHostPlatform", "CommandsDialogContent", "selected", "initial", "t", "useTranslation", "NAVTREE_PLUGIN", "setSelected", "useState", "dispatchPromise", "dispatch", "useIntentDispatcher", "graph", "useAppGraph", "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", "UpdateDialog", "part", "options", "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", "UpdateDialog", "part", "subject", "COMMANDS_DIALOG", "options", "blockAlign", "span", "className", "MagnifyingGlass", "getSize", "React", "createIntent", "useCapabilities", "useIntentDispatcher", "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", "ACTION_TYPE", "ACTION_GROUP_TYPE", "isAction", "isActionLike", "isNonNullable", "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", "isNonNullable", "getActions", "reduce", "acc", "arg", "push", "isAction", "actionGroup", "groupedActions", "expandChildrenAndActions", "Promise", "all", "expandChildren", "expandActions", "expand", "ACTION_TYPE", "ACTION_GROUP_TYPE", "l0ItemType", "item", "isActionLike", "renderableCharRegex", "getFirstTwoRenderableChars", "label", "characters", "Array", "from", "result", "foundFirst", "i", "char", "test", "textBetween", "join", "monitorForElements", "extractInstruction", "untracked", "React", "memo", "useCallback", "useEffect", "useMemo", "createIntent", "LayoutAction", "Surface", "useAppGraph", "useCapability", "useIntentDispatcher", "useLayout", "isAction", "isActionLike", "isEchoObject", "isSpace", "useMediaQuery", "isTreeData", "mx", "arrayMove", "React", "useMemo", "Tabs", "byPosition", "combine", "draggable", "dropTargetForElements", "preserveOffsetOnSource", "scrollJustEnoughIntoView", "attachClosestEdge", "extractClosestEdge", "React", "useCallback", "useLayoutEffect", "useMemo", "useRef", "useState", "createIntent", "LayoutAction", "useIntentDispatcher", "invariant", "Popover", "ScrollArea", "toLocalizedString", "Tooltip", "useMediaQuery", "useSidebars", "useTranslation", "ListItem", "Icon", "Tabs", "mx", "arrayMove", "createContext", "useContext", "raise", "NavTreeContext", "createContext", "useNavTreeContext", "useContext", "raise", "Error", "useEffect", "useEffect", "toLocalizedString", "useTranslation", "NavTreeDocumentTitle", "node", "t", "useTranslation", "NAVTREE_PLUGIN", "useEffect", "document", "title", "toLocalizedString", "properties", "label", "ns", "useLoadDescendents", "root", "loadDescendents", "useNavTreeContext", "useEffect", "frame", "requestAnimationFrame", "cancelAnimationFrame", "useL0ItemClick", "item", "parent", "path", "type", "tab", "onTabChange", "onSelect", "isCurrent", "useNavTreeContext", "dispatchPromise", "dispatch", "useIntentDispatcher", "navigationSidebarState", "useSidebars", "NAVTREE_PLUGIN", "isLg", "useMediaQuery", "ssr", "useCallback", "event", "createIntent", "LayoutAction", "UpdateSidebar", "part", "options", "state", "id", "current", "option", "altKey", "data", "invoke", "properties", "caller", "node", "l0Breakpoints", "lg", "L0Item", "pinned", "onRearrange", "t", "useTranslation", "itemElement", "useRef", "closestEdge", "setEdge", "useState", "l0ItemType", "itemPath", "useMemo", "getProps", "popoverAnchorId", "testId", "Root", "Tabs", "TabPrimitive", "handleClick", "rootProps", "value", "tabIndex", "onClick", "localizedString", "toLocalizedString", "label", "hue", "avatarValue", "getFirstTwoRenderableChars", "join", "toUpperCase", "hueFgStyle", "style", "color", "useLayoutEffect", "combine", "draggable", "element", "getInitialData", "onGenerateDragPreview", "nativeSetDragImage", "source", "location", "document", "body", "setAttribute", "querySelector", "scrollJustEnoughIntoView", "x", "y", "preserveOffsetOnSource", "input", "container", "offsetParent", "onDragStart", "removeAttribute", "closest", "onDrop", "dropTargetForElements", "getData", "attachClosestEdge", "allowedEdges", "onDragEnter", "self", "extractClosestEdge", "onDrag", "onDragLeave", "l0ItemTrigger", "React", "data-type", "className", "mx", "l0Breakpoint", "ref", "div", "role", "data-frame", "background", "icon", "Icon", "size", "classNames", "disposition", "span", "ListItem", "DropIndicator", "edge", "Popover", "Anchor", "asChild", "Tooltip", "delayDuration", "Trigger", "Portal", "Content", "side", "Arrow", "L0Collection", "navTreeContext", "useLoadDescendents", "collectionItems", "getItems", "groupPath", "handleRearrange", "target", "invariant", "onRearrangeChildren", "sourceIndex", "findIndex", "i", "targetIndex", "insertIndex", "nextOrder", "arrayMove", "aria-labelledby", "data-itemid", "data-testid", "map", "collectionItem", "key", "L0Menu", "topLevelItems", "pinnedItems", "Tablist", "ScrollArea", "Viewport", "Scrollbar", "orientation", "Thumb", "filter", "NotchStart", "React", "useMemo", "useLayout", "IconButton", "toLocalizedString", "useTranslation", "Tree", "Tabs", "hoverableControlItem", "hoverableOpenControlItem", "mx", "React", "Fragment", "memo", "isAction", "Popover", "toLocalizedString", "Treegrid", "useTranslation", "React", "useRef", "useTranslation", "toLocalizedString", "IconButton", "DropdownMenu", "MenuProvider", "hoverableControlItem", "hoverableOpenControlItem", "mx", "fallbackIcon", "actionButtonProps", "size", "density", "NavTreeItemActionDropdownMenu", "label", "icon", "testId", "menuActions", "onAction", "t", "useTranslation", "NAVTREE_PLUGIN", "suppressNextTooltip", "useRef", "React", "MenuProvider", "DropdownMenu", "Root", "items", "Trigger", "asChild", "IconButton", "classNames", "mx", "hoverableControlItem", "hoverableOpenControlItem", "variant", "iconOnly", "toLocalizedString", "data-testid", "NavTreeItemMonolithicAction", "parent", "properties", "disabled", "caller", "data", "invoke", "baseLabel", "onClick", "event", "stopPropagation", "node", "NavTreeItemAction", "monolithic", "props", "monolithicAction", "length", "action", "NavTreeItemColumns", "memo", "path", "item", "open", "t", "useTranslation", "NAVTREE_PLUGIN", "getActions", "renderItemEnd", "ItemEnd", "popoverAnchorId", "useNavTreeContext", "level", "length", "actions", "_actions", "groupedActions", "primaryAction", "secondaryActions", "toSorted", "a", "b", "properties", "disposition", "flatMap", "action", "isAction", "filter", "hidden", "ActionRoot", "NAV_TREE_ITEM", "id", "Popover", "Anchor", "Fragment", "useLoadDescendents", "undefined", "React", "div", "role", "className", "disabled", "NavTreeItemAction", "testId", "label", "toLocalizedString", "icon", "parent", "monolithic", "menuActions", "menuType", "caller", "Treegrid", "Cell", "node", "L1Panel", "item", "path", "currentItemId", "onBack", "layout", "useLayout", "navTreeContext", "useNavTreeContext", "t", "useTranslation", "NAVTREE_PLUGIN", "React", "Tabs", "Tabpanel", "key", "id", "value", "classNames", "tabIndex", "sidebarOpen", "inert", "h2", "className", "properties", "disposition", "IconButton", "label", "iconOnly", "icon", "size", "density", "variant", "mx", "hoverableControlItem", "hoverableOpenControlItem", "onClick", "span", "toLocalizedString", "NavTreeItemColumns", "open", "div", "role", "Tree", "root", "levelOffset", "draggable", "gridTemplateColumns", "renderColumns", "L1PanelCollection", "getItems", "useLoadDescendents", "collectionItems", "groupPath", "useMemo", "filter", "l0ItemType", "map", "L1Panels", "topLevelItems", "type", "NAV_TREE_ITEM", "NavTree", "id", "root", "tab", "getItems", "onBack", "useNavTreeContext", "topLevelActions", "toSorted", "a", "b", "byPosition", "properties", "topLevelCollections", "topLevelWorkspaces", "topLevelNavigation", "l0Items", "useMemo", "pinnedItems", "topLevelItems", "useLoadDescendents", "path", "React", "Tabs", "Root", "value", "orientation", "verticalVariant", "classNames", "L0Menu", "parent", "L1Panels", "currentItemId", "lazy", "AppGraphBuilder", "lazy", "IntentResolver", "Keyboard", "ReactSurface", "State", "NODE_TYPE", "renderItemEnd", "node", "open", "React", "Surface", "role", "data", "id", "subject", "limit", "NavTreeContainer", "memo", "tab", "popoverAnchorId", "topbar", "isLg", "useMediaQuery", "ssr", "dispatchPromise", "dispatch", "useIntentDispatcher", "graph", "useAppGraph", "layout", "useLayout", "isOpen", "isCurrent", "setItem", "useCapability", "NavTreeCapabilities", "State", "getActions", "useCallback", "naturalGetActions", "getItems", "disposition", "nodes", "root", "filter", "untracked", "action", "isAction", "properties", "getProps", "path", "children", "getChildren", "undefined", "parentOf", "length", "map", "label", "icon", "disabled", "className", "mx", "modified", "headingClassName", "testId", "loadDescendents", "expandActions", "isActionLike", "expandChildren", "then", "Promise", "all", "flatMap", "child", "onOpenChange", "item", "findNode", "expandChildrenAndActions", "onTabChange", "createIntent", "LayoutAction", "SwitchWorkspace", "part", "active", "Open", "canDrop", "source", "target", "sourceNode", "targetNode", "isSpace", "isEchoObject", "handleSelect", "option", "parent", "relation", "caller", "NAV_TREE_ITEM", "current", "options", "key", "Close", "state", "ScrollIntoView", "defaultAction", "actions", "find", "UpdateSidebar", "onBack", "RevertWorkspace", "revert", "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", "navTreeContextValue", "useMemo", "onSelect", "NavTreeContext", "Provider", "value", "NavTree"]
|
|
7
|
+
}
|