@dxos/plugin-navtree 0.8.1-main.ae460ac → 0.8.1-staging.31c3ee1
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/{app-graph-builder-BL7LRXCM.mjs → app-graph-builder-26D3MUCA.mjs} +2 -2
- package/dist/lib/browser/{chunk-AOAGODQB.mjs → chunk-4RQJXI4D.mjs} +2 -2
- package/dist/lib/browser/{chunk-GXNOX2XZ.mjs → chunk-DN43QXSX.mjs} +147 -187
- package/dist/lib/browser/chunk-DN43QXSX.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KOXMEAOS.mjs → chunk-IEW3JD5C.mjs} +3 -2
- package/dist/lib/browser/{chunk-KOXMEAOS.mjs.map → chunk-IEW3JD5C.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +3 -5
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/{intent-resolver-U25VBFH3.mjs → intent-resolver-BZMUS24C.mjs} +3 -3
- package/dist/lib/browser/{keyboard-MUBRTPI5.mjs → keyboard-IQXHKUWM.mjs} +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-SG4QBA2U.mjs → react-surface-3HCM3SHJ.mjs} +5 -11
- package/dist/lib/browser/react-surface-3HCM3SHJ.mjs.map +7 -0
- package/dist/lib/browser/{state-IEFQTUPG.mjs → state-M5UJ3MHL.mjs} +3 -3
- package/dist/types/src/NavTreePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/CommandsDialog.d.ts +2 -1
- package/dist/types/src/components/CommandsDialog.d.ts.map +1 -1
- package/dist/types/src/components/CommandsTrigger.d.ts +2 -1
- package/dist/types/src/components/CommandsTrigger.d.ts.map +1 -1
- package/dist/types/src/components/L0Menu.d.ts +4 -2
- package/dist/types/src/components/L0Menu.d.ts.map +1 -1
- package/dist/types/src/components/L1Panels.d.ts +2 -1
- package/dist/types/src/components/L1Panels.d.ts.map +1 -1
- package/dist/types/src/components/NavTree.d.ts +2 -1
- package/dist/types/src/components/NavTree.d.ts.map +1 -1
- package/dist/types/src/components/NavTreeContainer.d.ts +1 -1
- package/dist/types/src/components/NavTreeContainer.d.ts.map +1 -1
- package/dist/types/src/components/NavTreeItemAction.d.ts +4 -4
- package/dist/types/src/components/NavTreeItemAction.d.ts.map +1 -1
- package/dist/types/src/components/NavTreeItemAction.stories.d.ts +1 -1
- package/dist/types/src/components/NavTreeItemColumns.d.ts +1 -1
- package/dist/types/src/components/NavTreeItemColumns.d.ts.map +1 -1
- package/dist/types/src/components/UserAccountAvatar.d.ts +11 -0
- package/dist/types/src/components/UserAccountAvatar.d.ts.map +1 -0
- package/dist/types/src/components/UserAccountAvatar.stories.d.ts +8 -0
- package/dist/types/src/components/UserAccountAvatar.stories.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +0 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/experimental/Tree.d.ts +8 -8
- package/dist/types/src/experimental/Tree.d.ts.map +1 -1
- package/dist/types/src/experimental/Tree.stories.d.ts +3 -2
- package/dist/types/src/experimental/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/stories/StorybookNavTree.d.ts +2 -1
- package/dist/types/src/stories/StorybookNavTree.d.ts.map +1 -1
- package/dist/types/src/testing/generator.d.ts +3 -3
- package/dist/types/src/testing/generator.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +0 -8
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +31 -30
- package/src/NavTreePlugin.tsx +0 -1
- package/src/capabilities/react-surface.tsx +1 -12
- package/src/components/L0Menu.tsx +46 -32
- package/src/components/L1Panels.tsx +15 -19
- package/src/components/NavTree.tsx +12 -2
- package/src/components/NavTreeContainer.tsx +11 -5
- package/src/components/NavTreeItemColumns.tsx +3 -3
- package/src/components/UserAccountAvatar.stories.tsx +21 -0
- package/src/components/UserAccountAvatar.tsx +35 -0
- package/src/components/index.ts +0 -1
- package/src/meta.ts +3 -2
- package/src/testing/generator.ts +3 -3
- package/src/util.ts +1 -42
- package/dist/lib/browser/chunk-GXNOX2XZ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-SG4QBA2U.mjs.map +0 -7
- package/dist/types/src/components/HaloButton.d.ts +0 -11
- package/dist/types/src/components/HaloButton.d.ts.map +0 -1
- package/dist/types/src/components/HaloButton.stories.d.ts +0 -7
- package/dist/types/src/components/HaloButton.stories.d.ts.map +0 -1
- package/dist/types/src/components/NotchStart.d.ts +0 -2
- package/dist/types/src/components/NotchStart.d.ts.map +0 -1
- package/src/components/HaloButton.stories.tsx +0 -21
- package/src/components/HaloButton.tsx +0 -41
- package/src/components/NotchStart.tsx +0 -30
- /package/dist/lib/browser/{app-graph-builder-BL7LRXCM.mjs.map → app-graph-builder-26D3MUCA.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-AOAGODQB.mjs.map → chunk-4RQJXI4D.mjs.map} +0 -0
- /package/dist/lib/browser/{intent-resolver-U25VBFH3.mjs.map → intent-resolver-BZMUS24C.mjs.map} +0 -0
- /package/dist/lib/browser/{keyboard-MUBRTPI5.mjs.map → keyboard-IQXHKUWM.mjs.map} +0 -0
- /package/dist/lib/browser/{state-IEFQTUPG.mjs.map → state-M5UJ3MHL.mjs.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NavTreeCapabilities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4RQJXI4D.mjs";
|
|
4
4
|
import {
|
|
5
5
|
COMMANDS_DIALOG,
|
|
6
6
|
KEY_BINDING,
|
|
7
7
|
NAVTREE_PLUGIN
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-IEW3JD5C.mjs";
|
|
9
9
|
|
|
10
10
|
// packages/plugins/plugin-navtree/src/components/CommandsDialog.tsx
|
|
11
11
|
import React, { useMemo, useState } from "react";
|
|
@@ -134,57 +134,6 @@ var CommandsTrigger = () => {
|
|
|
134
134
|
}));
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
-
// packages/plugins/plugin-navtree/src/components/NotchStart.tsx
|
|
138
|
-
import React4 from "react";
|
|
139
|
-
import { createIntent as createIntent3, useCapabilities, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
|
|
140
|
-
import { ClientAction } from "@dxos/plugin-client/types";
|
|
141
|
-
import { ObservabilityCapabilities } from "@dxos/plugin-observability";
|
|
142
|
-
import { useIdentity } from "@dxos/react-client/halo";
|
|
143
|
-
|
|
144
|
-
// packages/plugins/plugin-navtree/src/components/HaloButton.tsx
|
|
145
|
-
import React3 from "react";
|
|
146
|
-
import { ConnectionState, useNetworkStatus } from "@dxos/react-client/mesh";
|
|
147
|
-
import { Avatar } from "@dxos/react-ui";
|
|
148
|
-
import { focusRing, mx as mx2 } from "@dxos/react-ui-theme";
|
|
149
|
-
import { hexToFallback } from "@dxos/util";
|
|
150
|
-
var INTERNAL = "https://avatars.githubusercontent.com/u/57182821";
|
|
151
|
-
var HaloButton = (props) => {
|
|
152
|
-
const { onClick, identityKey, internal, size = 8 } = props;
|
|
153
|
-
const fallbackValue = hexToFallback(identityKey ?? "0");
|
|
154
|
-
const { swarm: connectionState } = useNetworkStatus();
|
|
155
|
-
return /* @__PURE__ */ React3.createElement("button", {
|
|
156
|
-
className: mx2(focusRing, "rounded grid place-items-center"),
|
|
157
|
-
onClick
|
|
158
|
-
}, /* @__PURE__ */ React3.createElement(Avatar.Root, {
|
|
159
|
-
size,
|
|
160
|
-
variant: "circle",
|
|
161
|
-
status: connectionState === ConnectionState.OFFLINE ? "error" : internal ? "internal" : "active",
|
|
162
|
-
hue: props.hue || fallbackValue.hue
|
|
163
|
-
}, /* @__PURE__ */ React3.createElement(Avatar.Frame, {
|
|
164
|
-
"data-testid": "treeView.haloButton",
|
|
165
|
-
"data-joyride": "welcome/halo"
|
|
166
|
-
}, internal ? /* @__PURE__ */ React3.createElement(Avatar.Image, {
|
|
167
|
-
href: INTERNAL
|
|
168
|
-
}) : /* @__PURE__ */ React3.createElement(Avatar.Fallback, {
|
|
169
|
-
text: props.emoji || fallbackValue.emoji
|
|
170
|
-
}))));
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
// packages/plugins/plugin-navtree/src/components/NotchStart.tsx
|
|
174
|
-
var NotchStart = () => {
|
|
175
|
-
const identity = useIdentity();
|
|
176
|
-
const [observability] = useCapabilities(ObservabilityCapabilities.Observability);
|
|
177
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher3();
|
|
178
|
-
return /* @__PURE__ */ React4.createElement(HaloButton, {
|
|
179
|
-
size: 12,
|
|
180
|
-
identityKey: identity?.identityKey.toHex(),
|
|
181
|
-
hue: identity?.profile?.data?.hue,
|
|
182
|
-
emoji: identity?.profile?.data?.emoji,
|
|
183
|
-
internal: observability?.group === "dxos",
|
|
184
|
-
onClick: () => dispatch(createIntent3(ClientAction.ShareIdentity))
|
|
185
|
-
});
|
|
186
|
-
};
|
|
187
|
-
|
|
188
137
|
// packages/plugins/plugin-navtree/src/util.ts
|
|
189
138
|
import { ACTION_TYPE, ACTION_GROUP_TYPE, isAction as isAction2, isActionLike } from "@dxos/app-graph";
|
|
190
139
|
import { isNonNullable } from "@dxos/util";
|
|
@@ -224,7 +173,7 @@ var sortActions = (actions) => actions.sort((a, b) => {
|
|
|
224
173
|
if (a.properties.disposition === b.properties.disposition) {
|
|
225
174
|
return 0;
|
|
226
175
|
}
|
|
227
|
-
if (a.properties.disposition === "
|
|
176
|
+
if (a.properties.disposition === "list-item-primary") {
|
|
228
177
|
return -1;
|
|
229
178
|
}
|
|
230
179
|
return 1;
|
|
@@ -283,47 +232,23 @@ var l0ItemType = (item) => {
|
|
|
283
232
|
return "tab";
|
|
284
233
|
}
|
|
285
234
|
};
|
|
286
|
-
var renderableCharRegex = /^(?![\p{Control}\p{Mark}\p{Separator}\p{Surrogate}\p{Unassigned}])[\p{L}\p{N}\p{P}\p{S}\p{Emoji}]$/u;
|
|
287
|
-
var getFirstTwoRenderableChars = (label) => {
|
|
288
|
-
const characters = Array.from(label);
|
|
289
|
-
const result = [
|
|
290
|
-
"",
|
|
291
|
-
""
|
|
292
|
-
];
|
|
293
|
-
let foundFirst = false;
|
|
294
|
-
for (let i = 0; i < characters.length; i++) {
|
|
295
|
-
const char = characters[i];
|
|
296
|
-
if (renderableCharRegex.test(char)) {
|
|
297
|
-
if (!foundFirst) {
|
|
298
|
-
result[0] = char;
|
|
299
|
-
foundFirst = true;
|
|
300
|
-
} else {
|
|
301
|
-
const textBetween = characters.slice(result[0].length, i).join("");
|
|
302
|
-
if (/[^\p{L}\p{N}_]/u.test(textBetween)) {
|
|
303
|
-
result[1] = char;
|
|
304
|
-
break;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
return result;
|
|
310
|
-
};
|
|
311
235
|
|
|
312
236
|
// packages/plugins/plugin-navtree/src/components/NavTreeContainer.tsx
|
|
313
237
|
import { monitorForElements } from "@atlaskit/pragmatic-drag-and-drop/element/adapter";
|
|
314
238
|
import { extractInstruction } from "@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item";
|
|
315
239
|
import { untracked } from "@preact/signals-core";
|
|
316
|
-
import
|
|
317
|
-
import { createIntent as
|
|
240
|
+
import React9, { memo as memo2, useCallback as useCallback2, useEffect as useEffect3, useMemo as useMemo5 } from "react";
|
|
241
|
+
import { createIntent as createIntent4, LayoutAction as LayoutAction4, Surface, useAppGraph as useAppGraph2, useCapability, useIntentDispatcher as useIntentDispatcher4, useLayout as useLayout2 } from "@dxos/app-framework";
|
|
318
242
|
import { isAction as isAction4, isActionLike as isActionLike2 } from "@dxos/app-graph";
|
|
243
|
+
import { PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
|
|
319
244
|
import { isEchoObject, isSpace } from "@dxos/react-client/echo";
|
|
320
245
|
import { useMediaQuery as useMediaQuery2 } from "@dxos/react-ui";
|
|
321
246
|
import { isTreeData } from "@dxos/react-ui-list";
|
|
322
|
-
import { mx as
|
|
247
|
+
import { mx as mx5 } from "@dxos/react-ui-theme";
|
|
323
248
|
import { arrayMove as arrayMove2 } from "@dxos/util";
|
|
324
249
|
|
|
325
250
|
// packages/plugins/plugin-navtree/src/components/NavTree.tsx
|
|
326
|
-
import
|
|
251
|
+
import React8, { useMemo as useMemo4 } from "react";
|
|
327
252
|
import { Tabs as Tabs3 } from "@dxos/react-ui-tabs";
|
|
328
253
|
import { byPosition } from "@dxos/util";
|
|
329
254
|
|
|
@@ -333,13 +258,13 @@ import { draggable, dropTargetForElements } from "@atlaskit/pragmatic-drag-and-d
|
|
|
333
258
|
import { preserveOffsetOnSource } from "@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source";
|
|
334
259
|
import { scrollJustEnoughIntoView } from "@atlaskit/pragmatic-drag-and-drop/element/scroll-just-enough-into-view";
|
|
335
260
|
import { attachClosestEdge, extractClosestEdge } from "@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge";
|
|
336
|
-
import
|
|
337
|
-
import { createIntent as
|
|
261
|
+
import React4, { useCallback, useLayoutEffect, useMemo as useMemo2, useRef, useState as useState2 } from "react";
|
|
262
|
+
import { createIntent as createIntent3, LayoutAction as LayoutAction3, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
|
|
338
263
|
import { invariant } from "@dxos/invariant";
|
|
339
264
|
import { Popover, ScrollArea, toLocalizedString as toLocalizedString3, Tooltip, useMediaQuery, useSidebars, useTranslation as useTranslation4, ListItem, Icon as Icon2 } from "@dxos/react-ui";
|
|
340
265
|
import { Tabs } from "@dxos/react-ui-tabs";
|
|
341
|
-
import { mx as
|
|
342
|
-
import { arrayMove } from "@dxos/util";
|
|
266
|
+
import { mx as mx2 } from "@dxos/react-ui-theme";
|
|
267
|
+
import { arrayMove, getFirstTwoRenderableChars } from "@dxos/util";
|
|
343
268
|
|
|
344
269
|
// packages/plugins/plugin-navtree/src/components/NavTreeContext.tsx
|
|
345
270
|
import { createContext, useContext } from "react";
|
|
@@ -347,6 +272,25 @@ import { raise } from "@dxos/debug";
|
|
|
347
272
|
var NavTreeContext = /* @__PURE__ */ createContext(null);
|
|
348
273
|
var useNavTreeContext = () => useContext(NavTreeContext) ?? raise(new Error("NavTreeContext not found"));
|
|
349
274
|
|
|
275
|
+
// packages/plugins/plugin-navtree/src/components/UserAccountAvatar.tsx
|
|
276
|
+
import React3 from "react";
|
|
277
|
+
import { Avatar } from "@dxos/react-ui";
|
|
278
|
+
import { hexToFallback } from "@dxos/util";
|
|
279
|
+
var UserAccountAvatar = (props) => {
|
|
280
|
+
const fallbackValue = hexToFallback(props.userId ?? "0");
|
|
281
|
+
return /* @__PURE__ */ React3.createElement("div", {
|
|
282
|
+
className: "grid place-items-center",
|
|
283
|
+
"data-joyride": "welcome/account"
|
|
284
|
+
}, /* @__PURE__ */ React3.createElement(Avatar.Root, null, /* @__PURE__ */ React3.createElement(Avatar.Content, {
|
|
285
|
+
variant: "circle",
|
|
286
|
+
size: props.size ?? 12,
|
|
287
|
+
status: props.status ?? "active",
|
|
288
|
+
hue: props.hue || fallbackValue.hue,
|
|
289
|
+
fallback: props.emoji || fallbackValue.emoji,
|
|
290
|
+
"data-testid": "treeview.userAccount"
|
|
291
|
+
})));
|
|
292
|
+
};
|
|
293
|
+
|
|
350
294
|
// packages/plugins/plugin-navtree/src/hooks.ts
|
|
351
295
|
import { useEffect as useEffect2 } from "react";
|
|
352
296
|
|
|
@@ -384,7 +328,7 @@ var useLoadDescendents = (root) => {
|
|
|
384
328
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-navtree/src/components/L0Menu.tsx";
|
|
385
329
|
var useL0ItemClick = ({ item, parent, path }, type) => {
|
|
386
330
|
const { tab, onTabChange, onSelect, isCurrent } = useNavTreeContext();
|
|
387
|
-
const { dispatchPromise: dispatch } =
|
|
331
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher3();
|
|
388
332
|
const { navigationSidebarState } = useSidebars(NAVTREE_PLUGIN);
|
|
389
333
|
const [isLg] = useMediaQuery("lg", {
|
|
390
334
|
ssr: false
|
|
@@ -392,7 +336,7 @@ var useL0ItemClick = ({ item, parent, path }, type) => {
|
|
|
392
336
|
return useCallback((event) => {
|
|
393
337
|
switch (type) {
|
|
394
338
|
case "tab":
|
|
395
|
-
void dispatch(
|
|
339
|
+
void dispatch(createIntent3(LayoutAction3.UpdateSidebar, {
|
|
396
340
|
part: "sidebar",
|
|
397
341
|
options: {
|
|
398
342
|
state: item.id === tab ? navigationSidebarState === "expanded" ? isLg ? "collapsed" : "closed" : "expanded" : "expanded"
|
|
@@ -431,7 +375,7 @@ var useL0ItemClick = ({ item, parent, path }, type) => {
|
|
|
431
375
|
var l0Breakpoints = {
|
|
432
376
|
lg: "hidden lg:grid"
|
|
433
377
|
};
|
|
434
|
-
var L0Item = ({ item, parent, path, pinned, onRearrange }) => {
|
|
378
|
+
var L0Item = ({ item, parent, path, pinned, userAccount, onRearrange }) => {
|
|
435
379
|
const { t } = useTranslation4(NAVTREE_PLUGIN);
|
|
436
380
|
const itemElement = useRef(null);
|
|
437
381
|
const [closestEdge, setEdge] = useState2(null);
|
|
@@ -544,52 +488,57 @@ var L0Item = ({ item, parent, path, pinned, onRearrange }) => {
|
|
|
544
488
|
item,
|
|
545
489
|
onRearrange
|
|
546
490
|
]);
|
|
547
|
-
const l0ItemTrigger = /* @__PURE__ */
|
|
491
|
+
const l0ItemTrigger = /* @__PURE__ */ React4.createElement(Root, {
|
|
548
492
|
...rootProps,
|
|
549
493
|
"data-type": type,
|
|
550
|
-
className:
|
|
494
|
+
className: mx2('group/l0i dx-focus-ring-group grid relative data[type!="collection"]:cursor-pointer app-no-drag', l0Breakpoints[item.properties.l0Breakpoint]),
|
|
551
495
|
ref: itemElement
|
|
552
|
-
}, /* @__PURE__ */
|
|
496
|
+
}, userAccount ? /* @__PURE__ */ React4.createElement(UserAccountAvatar, {
|
|
497
|
+
userId: item.properties.userId,
|
|
498
|
+
hue: item.properties.hue,
|
|
499
|
+
emoji: item.properties.emoji,
|
|
500
|
+
status: item.properties.status
|
|
501
|
+
}) : /* @__PURE__ */ React4.createElement("div", {
|
|
553
502
|
role: "none",
|
|
554
503
|
"data-frame": true,
|
|
555
|
-
className:
|
|
504
|
+
className: mx2("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"),
|
|
556
505
|
...hue && {
|
|
557
506
|
style: {
|
|
558
507
|
background: `var(--dx-${hue}Surface)`
|
|
559
508
|
}
|
|
560
509
|
}
|
|
561
|
-
}, item.properties.icon && /* @__PURE__ */
|
|
510
|
+
}, item.properties.icon && /* @__PURE__ */ React4.createElement(Icon2, {
|
|
562
511
|
icon: item.properties.icon,
|
|
563
512
|
size: pinned ? 5 : 7,
|
|
564
513
|
classNames: "place-self-center",
|
|
565
514
|
...hueFgStyle
|
|
566
|
-
}) || (type === "tab" && item.properties.disposition !== "pin-end" ? /* @__PURE__ */
|
|
515
|
+
}) || (type === "tab" && item.properties.disposition !== "pin-end" ? /* @__PURE__ */ React4.createElement("span", {
|
|
567
516
|
role: "img",
|
|
568
517
|
className: "place-self-center text-3xl font-light",
|
|
569
518
|
...hueFgStyle
|
|
570
|
-
}, avatarValue) : item.properties.icon && /* @__PURE__ */
|
|
519
|
+
}, avatarValue) : item.properties.icon && /* @__PURE__ */ React4.createElement(Icon2, {
|
|
571
520
|
icon: "ph--planet--regular",
|
|
572
521
|
size: pinned ? 5 : 7,
|
|
573
522
|
classNames: "place-self-center",
|
|
574
523
|
...hueFgStyle
|
|
575
|
-
}))), /* @__PURE__ */
|
|
524
|
+
}))), /* @__PURE__ */ React4.createElement("div", {
|
|
576
525
|
role: "none",
|
|
577
526
|
className: "hidden group-aria-selected/l0i:block absolute inline-start-0 inset-block-4 is-1 bg-accentSurface rounded-ie"
|
|
578
|
-
}), /* @__PURE__ */
|
|
527
|
+
}), /* @__PURE__ */ React4.createElement("span", {
|
|
579
528
|
id: `${item.id}__label`,
|
|
580
529
|
className: "sr-only"
|
|
581
|
-
}, localizedString), onRearrange && closestEdge && /* @__PURE__ */
|
|
530
|
+
}, localizedString), onRearrange && closestEdge && /* @__PURE__ */ React4.createElement(ListItem.DropIndicator, {
|
|
582
531
|
edge: closestEdge
|
|
583
532
|
}));
|
|
584
|
-
return popoverAnchorId === id ? /* @__PURE__ */
|
|
533
|
+
return popoverAnchorId === id ? /* @__PURE__ */ React4.createElement(Popover.Anchor, {
|
|
585
534
|
asChild: true
|
|
586
|
-
}, l0ItemTrigger) : /* @__PURE__ */
|
|
535
|
+
}, l0ItemTrigger) : /* @__PURE__ */ React4.createElement(Tooltip.Root, {
|
|
587
536
|
delayDuration: 0
|
|
588
|
-
}, /* @__PURE__ */
|
|
537
|
+
}, /* @__PURE__ */ React4.createElement(Tooltip.Trigger, {
|
|
589
538
|
asChild: true
|
|
590
|
-
}, l0ItemTrigger), /* @__PURE__ */
|
|
539
|
+
}, l0ItemTrigger), /* @__PURE__ */ React4.createElement(Tooltip.Portal, null, /* @__PURE__ */ React4.createElement(Tooltip.Content, {
|
|
591
540
|
side: "right"
|
|
592
|
-
}, localizedString, /* @__PURE__ */
|
|
541
|
+
}, localizedString, /* @__PURE__ */ React4.createElement(Tooltip.Arrow, null))));
|
|
593
542
|
};
|
|
594
543
|
var L0Collection = ({ item, path, parent }) => {
|
|
595
544
|
const navTreeContext = useNavTreeContext();
|
|
@@ -606,7 +555,7 @@ var L0Collection = ({ item, path, parent }) => {
|
|
|
606
555
|
const handleRearrange = useCallback((source, target, closestEdge) => {
|
|
607
556
|
invariant(item.properties.onRearrangeChildren, void 0, {
|
|
608
557
|
F: __dxlog_file,
|
|
609
|
-
L:
|
|
558
|
+
L: 256,
|
|
610
559
|
S: void 0,
|
|
611
560
|
A: [
|
|
612
561
|
"item.properties.onRearrangeChildren",
|
|
@@ -624,13 +573,13 @@ var L0Collection = ({ item, path, parent }) => {
|
|
|
624
573
|
collectionItems,
|
|
625
574
|
item.properties.onRearrangeChildren
|
|
626
575
|
]);
|
|
627
|
-
return /* @__PURE__ */
|
|
576
|
+
return /* @__PURE__ */ React4.createElement("div", {
|
|
628
577
|
role: "group",
|
|
629
578
|
className: "contents group/l0c",
|
|
630
579
|
"aria-labelledby": `${item.id}__label`,
|
|
631
580
|
"data-itemid": id,
|
|
632
581
|
"data-testid": testId
|
|
633
|
-
}, collectionItems.map((collectionItem) => /* @__PURE__ */
|
|
582
|
+
}, collectionItems.map((collectionItem) => /* @__PURE__ */ React4.createElement(L0Item, {
|
|
634
583
|
key: collectionItem.id,
|
|
635
584
|
item: collectionItem,
|
|
636
585
|
parent: item,
|
|
@@ -640,43 +589,49 @@ var L0Collection = ({ item, path, parent }) => {
|
|
|
640
589
|
}
|
|
641
590
|
})));
|
|
642
591
|
};
|
|
643
|
-
var L0Menu = ({ topLevelItems, pinnedItems, parent, path }) => {
|
|
644
|
-
return /* @__PURE__ */
|
|
592
|
+
var L0Menu = ({ topLevelItems, pinnedItems, userAccountItem, parent, path }) => {
|
|
593
|
+
return /* @__PURE__ */ React4.createElement(Tabs.Tablist, {
|
|
645
594
|
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)]"
|
|
646
|
-
}, /* @__PURE__ */
|
|
595
|
+
}, /* @__PURE__ */ React4.createElement(ScrollArea.Root, null, /* @__PURE__ */ React4.createElement(ScrollArea.Viewport, null, /* @__PURE__ */ React4.createElement("div", {
|
|
647
596
|
role: "none",
|
|
648
597
|
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)]'
|
|
649
598
|
}, topLevelItems.map((item) => {
|
|
650
599
|
if (l0ItemType(item) === "collection") {
|
|
651
|
-
return /* @__PURE__ */
|
|
600
|
+
return /* @__PURE__ */ React4.createElement(L0Collection, {
|
|
652
601
|
key: item.id,
|
|
653
602
|
item,
|
|
654
603
|
parent,
|
|
655
604
|
path
|
|
656
605
|
});
|
|
657
606
|
} else {
|
|
658
|
-
return /* @__PURE__ */
|
|
607
|
+
return /* @__PURE__ */ React4.createElement(L0Item, {
|
|
659
608
|
key: item.id,
|
|
660
609
|
item,
|
|
661
610
|
parent,
|
|
662
611
|
path
|
|
663
612
|
});
|
|
664
613
|
}
|
|
665
|
-
})), /* @__PURE__ */
|
|
614
|
+
})), /* @__PURE__ */ React4.createElement(ScrollArea.Scrollbar, {
|
|
666
615
|
orientation: "vertical"
|
|
667
|
-
}, /* @__PURE__ */
|
|
616
|
+
}, /* @__PURE__ */ React4.createElement(ScrollArea.Thumb, null)))), /* @__PURE__ */ React4.createElement("div", {
|
|
668
617
|
role: "none",
|
|
669
618
|
className: "grid grid-cols-1 auto-rows-[--rail-action] pbs-2"
|
|
670
|
-
}, pinnedItems.filter((item) => l0ItemType(item) !== "collection").map((item) => /* @__PURE__ */
|
|
619
|
+
}, pinnedItems.filter((item) => l0ItemType(item) !== "collection").map((item) => /* @__PURE__ */ React4.createElement(L0Item, {
|
|
671
620
|
key: item.id,
|
|
672
621
|
item,
|
|
673
622
|
parent,
|
|
674
623
|
path,
|
|
675
624
|
pinned: true
|
|
676
|
-
}))), /* @__PURE__ */
|
|
625
|
+
}))), userAccountItem && /* @__PURE__ */ React4.createElement("div", {
|
|
677
626
|
role: "none",
|
|
678
|
-
className: "grid
|
|
679
|
-
}, /* @__PURE__ */
|
|
627
|
+
className: "grid py-2 app-no-drag"
|
|
628
|
+
}, /* @__PURE__ */ React4.createElement(L0Item, {
|
|
629
|
+
key: userAccountItem.id,
|
|
630
|
+
item: userAccountItem,
|
|
631
|
+
parent,
|
|
632
|
+
path,
|
|
633
|
+
userAccount: true
|
|
634
|
+
})), /* @__PURE__ */ React4.createElement("div", {
|
|
680
635
|
role: "none",
|
|
681
636
|
className: 'hidden [body[data-platform="darwin"]_&]:block absolute block-start-0 is-[calc(var(--l0-size)-1px)] bs-[calc(40px+0.25rem)]',
|
|
682
637
|
style: {
|
|
@@ -686,23 +641,23 @@ var L0Menu = ({ topLevelItems, pinnedItems, parent, path }) => {
|
|
|
686
641
|
};
|
|
687
642
|
|
|
688
643
|
// packages/plugins/plugin-navtree/src/components/L1Panels.tsx
|
|
689
|
-
import
|
|
644
|
+
import React7, { useMemo as useMemo3 } from "react";
|
|
690
645
|
import { useLayout } from "@dxos/app-framework";
|
|
691
|
-
import {
|
|
646
|
+
import { Button as Button3, Icon as Icon3, toLocalizedString as toLocalizedString6, useTranslation as useTranslation7 } from "@dxos/react-ui";
|
|
692
647
|
import { Tree } from "@dxos/react-ui-list";
|
|
693
648
|
import { Tabs as Tabs2 } from "@dxos/react-ui-tabs";
|
|
694
|
-
import { hoverableControlItem as hoverableControlItem2, hoverableOpenControlItem as hoverableOpenControlItem2, mx as
|
|
649
|
+
import { hoverableControlItem as hoverableControlItem2, hoverableOpenControlItem as hoverableOpenControlItem2, mx as mx4 } from "@dxos/react-ui-theme";
|
|
695
650
|
|
|
696
651
|
// packages/plugins/plugin-navtree/src/components/NavTreeItemColumns.tsx
|
|
697
|
-
import
|
|
652
|
+
import React6, { Fragment, memo } from "react";
|
|
698
653
|
import { isAction as isAction3 } from "@dxos/app-graph";
|
|
699
654
|
import { Popover as Popover2, toLocalizedString as toLocalizedString5, Treegrid, useTranslation as useTranslation6 } from "@dxos/react-ui";
|
|
700
655
|
|
|
701
656
|
// packages/plugins/plugin-navtree/src/components/NavTreeItemAction.tsx
|
|
702
|
-
import
|
|
657
|
+
import React5, { useRef as useRef2 } from "react";
|
|
703
658
|
import { useTranslation as useTranslation5, toLocalizedString as toLocalizedString4, IconButton } from "@dxos/react-ui";
|
|
704
659
|
import { DropdownMenu, MenuProvider } from "@dxos/react-ui-menu";
|
|
705
|
-
import { hoverableControlItem, hoverableOpenControlItem, mx as
|
|
660
|
+
import { hoverableControlItem, hoverableOpenControlItem, mx as mx3 } from "@dxos/react-ui-theme";
|
|
706
661
|
var fallbackIcon = "ph--placeholder--regular";
|
|
707
662
|
var actionButtonProps = {
|
|
708
663
|
size: 4,
|
|
@@ -711,16 +666,16 @@ var actionButtonProps = {
|
|
|
711
666
|
var NavTreeItemActionDropdownMenu = ({ label, icon, testId, menuActions, onAction }) => {
|
|
712
667
|
const { t } = useTranslation5(NAVTREE_PLUGIN);
|
|
713
668
|
const suppressNextTooltip = useRef2(false);
|
|
714
|
-
return /* @__PURE__ */
|
|
669
|
+
return /* @__PURE__ */ React5.createElement(MenuProvider, {
|
|
715
670
|
onAction
|
|
716
|
-
}, /* @__PURE__ */
|
|
671
|
+
}, /* @__PURE__ */ React5.createElement(DropdownMenu.Root, {
|
|
717
672
|
items: menuActions,
|
|
718
673
|
suppressNextTooltip
|
|
719
|
-
}, /* @__PURE__ */
|
|
674
|
+
}, /* @__PURE__ */ React5.createElement(DropdownMenu.Trigger, {
|
|
720
675
|
asChild: true
|
|
721
|
-
}, /* @__PURE__ */
|
|
676
|
+
}, /* @__PURE__ */ React5.createElement(IconButton, {
|
|
722
677
|
...actionButtonProps,
|
|
723
|
-
classNames:
|
|
678
|
+
classNames: mx3("shrink-0 pli-2 pointer-fine:pli-1", hoverableControlItem, hoverableOpenControlItem),
|
|
724
679
|
variant: "ghost",
|
|
725
680
|
icon: icon ?? fallbackIcon,
|
|
726
681
|
iconOnly: true,
|
|
@@ -732,10 +687,10 @@ var NavTreeItemActionDropdownMenu = ({ label, icon, testId, menuActions, onActio
|
|
|
732
687
|
var NavTreeItemMonolithicAction = ({ parent, properties: { disabled, caller, testId, icon, variant = "ghost", iconOnly = true } = {
|
|
733
688
|
label: "never"
|
|
734
689
|
}, data: invoke, baseLabel }) => {
|
|
735
|
-
return /* @__PURE__ */
|
|
690
|
+
return /* @__PURE__ */ React5.createElement(IconButton, {
|
|
736
691
|
...actionButtonProps,
|
|
737
692
|
variant,
|
|
738
|
-
classNames:
|
|
693
|
+
classNames: mx3("shrink-0", hoverableControlItem, hoverableOpenControlItem, iconOnly ? "pli-2 pointer-fine:pli-1" : "p-2 pointer-fine:p-2 mie-1"),
|
|
739
694
|
icon: icon ?? fallbackIcon,
|
|
740
695
|
iconOnly,
|
|
741
696
|
label: baseLabel,
|
|
@@ -759,11 +714,11 @@ var NavTreeItemAction = ({ monolithic, menuActions, parent: node, ...props }) =>
|
|
|
759
714
|
const { t } = useTranslation5(NAVTREE_PLUGIN);
|
|
760
715
|
const monolithicAction = menuActions?.length === 1 && menuActions[0];
|
|
761
716
|
const baseLabel = toLocalizedString4(monolithicAction ? monolithicAction.properties.label : props.label, t);
|
|
762
|
-
return monolithic && menuActions?.length === 1 ? /* @__PURE__ */
|
|
717
|
+
return monolithic && menuActions?.length === 1 ? /* @__PURE__ */ React5.createElement(NavTreeItemMonolithicAction, {
|
|
763
718
|
baseLabel,
|
|
764
719
|
parent: node,
|
|
765
720
|
...menuActions[0]
|
|
766
|
-
}) : /* @__PURE__ */
|
|
721
|
+
}) : /* @__PURE__ */ React5.createElement(NavTreeItemActionDropdownMenu, {
|
|
767
722
|
...props,
|
|
768
723
|
label: baseLabel,
|
|
769
724
|
parent: node,
|
|
@@ -783,17 +738,17 @@ var NavTreeItemColumns = /* @__PURE__ */ memo(({ path, item, open }) => {
|
|
|
783
738
|
const { getActions: getActions2, renderItemEnd: ItemEnd, popoverAnchorId } = useNavTreeContext();
|
|
784
739
|
const level = path.length - 2;
|
|
785
740
|
const { actions: _actions, groupedActions } = getActions2(item);
|
|
786
|
-
const [primaryAction, ...secondaryActions] = _actions.toSorted((a, b) => a.properties?.disposition === "
|
|
787
|
-
const actions = (primaryAction?.properties?.disposition === "
|
|
741
|
+
const [primaryAction, ...secondaryActions] = _actions.toSorted((a, b) => a.properties?.disposition === "list-item-primary" ? -1 : 1);
|
|
742
|
+
const actions = (primaryAction?.properties?.disposition === "list-item-primary" ? secondaryActions : _actions).flatMap((action) => isAction3(action) ? [
|
|
788
743
|
action
|
|
789
744
|
] : []).filter((action) => !action.properties?.hidden);
|
|
790
745
|
const ActionRoot = popoverAnchorId === `dxos.org/ui/${NAV_TREE_ITEM}/${item.id}` ? Popover2.Anchor : Fragment;
|
|
791
746
|
useLoadDescendents(item);
|
|
792
747
|
useLoadDescendents(primaryAction && !isAction3(primaryAction) ? primaryAction : void 0);
|
|
793
|
-
return /* @__PURE__ */
|
|
748
|
+
return /* @__PURE__ */ React6.createElement("div", {
|
|
794
749
|
role: "none",
|
|
795
750
|
className: "contents app-no-drag"
|
|
796
|
-
}, primaryAction?.properties?.disposition === "
|
|
751
|
+
}, primaryAction?.properties?.disposition === "list-item-primary" && !primaryAction?.properties?.disabled ? /* @__PURE__ */ React6.createElement(NavTreeItemAction, {
|
|
797
752
|
testId: primaryAction.properties?.testId,
|
|
798
753
|
label: toLocalizedString5(primaryAction.properties?.label, t),
|
|
799
754
|
icon: primaryAction.properties?.icon ?? "ph--placeholder--regular",
|
|
@@ -804,7 +759,7 @@ var NavTreeItemColumns = /* @__PURE__ */ memo(({ path, item, open }) => {
|
|
|
804
759
|
] : groupedActions[primaryAction.id],
|
|
805
760
|
menuType: primaryAction.properties?.menuType,
|
|
806
761
|
caller: NAV_TREE_ITEM
|
|
807
|
-
}) : /* @__PURE__ */
|
|
762
|
+
}) : /* @__PURE__ */ React6.createElement(Treegrid.Cell, null), /* @__PURE__ */ React6.createElement(ActionRoot, null, actions.length > 0 ? /* @__PURE__ */ React6.createElement(NavTreeItemAction, {
|
|
808
763
|
testId: `navtree.treeItem.actionsLevel${level}`,
|
|
809
764
|
label: t("tree item actions label"),
|
|
810
765
|
icon: "ph--dots-three-vertical--regular",
|
|
@@ -812,7 +767,7 @@ var NavTreeItemColumns = /* @__PURE__ */ memo(({ path, item, open }) => {
|
|
|
812
767
|
menuActions: actions,
|
|
813
768
|
menuType: "dropdown",
|
|
814
769
|
caller: NAV_TREE_ITEM
|
|
815
|
-
}) : /* @__PURE__ */
|
|
770
|
+
}) : /* @__PURE__ */ React6.createElement(Treegrid.Cell, null)), ItemEnd && /* @__PURE__ */ React6.createElement(ItemEnd, {
|
|
816
771
|
node: item,
|
|
817
772
|
open
|
|
818
773
|
}));
|
|
@@ -823,7 +778,7 @@ var L1Panel = ({ item, path, currentItemId, onBack }) => {
|
|
|
823
778
|
const layout = useLayout();
|
|
824
779
|
const navTreeContext = useNavTreeContext();
|
|
825
780
|
const { t } = useTranslation7(NAVTREE_PLUGIN);
|
|
826
|
-
return /* @__PURE__ */
|
|
781
|
+
return /* @__PURE__ */ React7.createElement(Tabs2.Tabpanel, {
|
|
827
782
|
key: item.id,
|
|
828
783
|
value: item.id,
|
|
829
784
|
classNames: [
|
|
@@ -834,27 +789,26 @@ var L1Panel = ({ item, path, currentItemId, onBack }) => {
|
|
|
834
789
|
...!layout.sidebarOpen && {
|
|
835
790
|
inert: "true"
|
|
836
791
|
}
|
|
837
|
-
}, item.id === currentItemId && /* @__PURE__ */
|
|
838
|
-
className: "flex items-center border-be border-separator
|
|
839
|
-
},
|
|
840
|
-
label: t("back label"),
|
|
841
|
-
iconOnly: true,
|
|
842
|
-
icon: "ph--caret-left--regular",
|
|
843
|
-
size: 5,
|
|
844
|
-
density: "fine",
|
|
792
|
+
}, item.id === currentItemId && /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement("h2", {
|
|
793
|
+
className: "flex items-center border-be border-separator app-drag"
|
|
794
|
+
}, /* @__PURE__ */ React7.createElement(Button3, {
|
|
845
795
|
variant: "ghost",
|
|
846
|
-
|
|
796
|
+
density: "fine",
|
|
797
|
+
classNames: mx4("is-6 pli-0 dx-focus-ring-inset", !item.id.startsWith("!") && "invisible", hoverableControlItem2, hoverableOpenControlItem2),
|
|
847
798
|
onClick: onBack
|
|
848
|
-
}
|
|
799
|
+
}, /* @__PURE__ */ React7.createElement(Icon3, {
|
|
800
|
+
icon: "ph--caret-left--regular",
|
|
801
|
+
size: 3
|
|
802
|
+
})), /* @__PURE__ */ React7.createElement("span", {
|
|
849
803
|
className: "flex-1 truncate cursor-default"
|
|
850
|
-
}, toLocalizedString6(item.properties.label, t)), /* @__PURE__ */
|
|
804
|
+
}, toLocalizedString6(item.properties.label, t)), /* @__PURE__ */ React7.createElement(NavTreeItemColumns, {
|
|
851
805
|
path,
|
|
852
806
|
item,
|
|
853
807
|
open: true
|
|
854
|
-
})), /* @__PURE__ */
|
|
808
|
+
})), /* @__PURE__ */ React7.createElement("div", {
|
|
855
809
|
role: "none",
|
|
856
810
|
className: "overflow-y-auto"
|
|
857
|
-
}, /* @__PURE__ */
|
|
811
|
+
}, /* @__PURE__ */ React7.createElement(Tree, {
|
|
858
812
|
...navTreeContext,
|
|
859
813
|
id: item.id,
|
|
860
814
|
root: item,
|
|
@@ -876,7 +830,7 @@ var L1PanelCollection = ({ item, path, currentItemId }) => {
|
|
|
876
830
|
item.id,
|
|
877
831
|
path
|
|
878
832
|
]);
|
|
879
|
-
return /* @__PURE__ */
|
|
833
|
+
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, collectionItems.filter((item2) => l0ItemType(item2) === "tab").map((item2) => /* @__PURE__ */ React7.createElement(L1Panel, {
|
|
880
834
|
key: item2.id,
|
|
881
835
|
item: item2,
|
|
882
836
|
path: groupPath,
|
|
@@ -884,18 +838,18 @@ var L1PanelCollection = ({ item, path, currentItemId }) => {
|
|
|
884
838
|
})));
|
|
885
839
|
};
|
|
886
840
|
var L1Panels = ({ topLevelItems, path, currentItemId, onBack }) => {
|
|
887
|
-
return /* @__PURE__ */
|
|
841
|
+
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, topLevelItems.map((item) => {
|
|
888
842
|
const type = l0ItemType(item);
|
|
889
843
|
switch (type) {
|
|
890
844
|
case "collection":
|
|
891
|
-
return /* @__PURE__ */
|
|
845
|
+
return /* @__PURE__ */ React7.createElement(L1PanelCollection, {
|
|
892
846
|
key: item.id,
|
|
893
847
|
item,
|
|
894
848
|
path,
|
|
895
849
|
currentItemId
|
|
896
850
|
});
|
|
897
851
|
case "tab":
|
|
898
|
-
return /* @__PURE__ */
|
|
852
|
+
return /* @__PURE__ */ React7.createElement(L1Panel, {
|
|
899
853
|
key: item.id,
|
|
900
854
|
item,
|
|
901
855
|
path,
|
|
@@ -928,12 +882,15 @@ var NavTree = ({ id, root }) => {
|
|
|
928
882
|
topLevelNavigation
|
|
929
883
|
]);
|
|
930
884
|
const pinnedItems = getItems(root, "pin-end").toSorted((a, b) => byPosition(a.properties, b.properties));
|
|
885
|
+
const userAccountItem = getItems(root, "user-account")[0];
|
|
931
886
|
const topLevelItems = useMemo4(() => [
|
|
932
887
|
...l0Items,
|
|
933
|
-
...pinnedItems
|
|
888
|
+
...pinnedItems,
|
|
889
|
+
userAccountItem
|
|
934
890
|
], [
|
|
935
891
|
l0Items,
|
|
936
|
-
pinnedItems
|
|
892
|
+
pinnedItems,
|
|
893
|
+
userAccountItem
|
|
937
894
|
]);
|
|
938
895
|
useLoadDescendents(root);
|
|
939
896
|
const path = useMemo4(() => [
|
|
@@ -943,17 +900,18 @@ var NavTree = ({ id, root }) => {
|
|
|
943
900
|
]);
|
|
944
901
|
return (
|
|
945
902
|
// NOTE(thure): 74px (rather than rem) is intentional in order to match the size of macOS windowing controls
|
|
946
|
-
/* @__PURE__ */
|
|
903
|
+
/* @__PURE__ */ React8.createElement(Tabs3.Root, {
|
|
947
904
|
value: tab,
|
|
948
905
|
orientation: "vertical",
|
|
949
906
|
verticalVariant: "stateless",
|
|
950
907
|
classNames: "relative"
|
|
951
|
-
}, /* @__PURE__ */
|
|
908
|
+
}, /* @__PURE__ */ React8.createElement(L0Menu, {
|
|
952
909
|
topLevelItems: l0Items,
|
|
953
910
|
pinnedItems,
|
|
911
|
+
userAccountItem,
|
|
954
912
|
path,
|
|
955
913
|
parent: root
|
|
956
|
-
}), /* @__PURE__ */
|
|
914
|
+
}), /* @__PURE__ */ React8.createElement(L1Panels, {
|
|
957
915
|
topLevelItems,
|
|
958
916
|
path,
|
|
959
917
|
currentItemId: tab,
|
|
@@ -964,15 +922,15 @@ var NavTree = ({ id, root }) => {
|
|
|
964
922
|
|
|
965
923
|
// packages/plugins/plugin-navtree/src/capabilities/index.ts
|
|
966
924
|
import { lazy } from "@dxos/app-framework";
|
|
967
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-
|
|
968
|
-
var IntentResolver = lazy(() => import("./intent-resolver-
|
|
969
|
-
var Keyboard2 = lazy(() => import("./keyboard-
|
|
970
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
971
|
-
var State = lazy(() => import("./state-
|
|
925
|
+
var AppGraphBuilder = lazy(() => import("./app-graph-builder-26D3MUCA.mjs"));
|
|
926
|
+
var IntentResolver = lazy(() => import("./intent-resolver-BZMUS24C.mjs"));
|
|
927
|
+
var Keyboard2 = lazy(() => import("./keyboard-IQXHKUWM.mjs"));
|
|
928
|
+
var ReactSurface = lazy(() => import("./react-surface-3HCM3SHJ.mjs"));
|
|
929
|
+
var State = lazy(() => import("./state-M5UJ3MHL.mjs"));
|
|
972
930
|
|
|
973
931
|
// packages/plugins/plugin-navtree/src/components/NavTreeContainer.tsx
|
|
974
932
|
var NODE_TYPE = "dxos/app-graph/node";
|
|
975
|
-
var renderItemEnd = ({ node, open }) => /* @__PURE__ */
|
|
933
|
+
var renderItemEnd = ({ node, open }) => /* @__PURE__ */ React9.createElement(Surface, {
|
|
976
934
|
role: "navtree-item-end",
|
|
977
935
|
data: {
|
|
978
936
|
id: node.id,
|
|
@@ -981,11 +939,12 @@ var renderItemEnd = ({ node, open }) => /* @__PURE__ */ React10.createElement(Su
|
|
|
981
939
|
},
|
|
982
940
|
limit: 1
|
|
983
941
|
});
|
|
942
|
+
var getChildrenFilter = (node) => untracked(() => !isActionLike2(node) && node.type !== PLANK_COMPANION_TYPE);
|
|
984
943
|
var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar }) => {
|
|
985
944
|
const [isLg] = useMediaQuery2("lg", {
|
|
986
945
|
ssr: false
|
|
987
946
|
});
|
|
988
|
-
const { dispatchPromise: dispatch } =
|
|
947
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher4();
|
|
989
948
|
const { graph } = useAppGraph2();
|
|
990
949
|
const layout = useLayout2();
|
|
991
950
|
const { isOpen, isCurrent, setItem } = useCapability(NavTreeCapabilities.State);
|
|
@@ -996,11 +955,14 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
996
955
|
return graph.nodes(node ?? graph.root, {
|
|
997
956
|
filter: (node2) => {
|
|
998
957
|
return untracked(() => {
|
|
999
|
-
|
|
1000
|
-
|
|
958
|
+
if (node2.properties.disposition === "hidden") {
|
|
959
|
+
return false;
|
|
960
|
+
} else if (!disposition) {
|
|
961
|
+
const action = isAction4(node2);
|
|
1001
962
|
return !action || node2.properties.disposition === "item";
|
|
963
|
+
} else {
|
|
964
|
+
return node2.properties.disposition === disposition;
|
|
1002
965
|
}
|
|
1003
|
-
return node2.properties.disposition === disposition;
|
|
1004
966
|
});
|
|
1005
967
|
}
|
|
1006
968
|
});
|
|
@@ -1008,7 +970,7 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1008
970
|
graph
|
|
1009
971
|
]);
|
|
1010
972
|
const getProps = useCallback2((node, path) => {
|
|
1011
|
-
const children = getChildren(graph, node,
|
|
973
|
+
const children = getChildren(graph, node, getChildrenFilter, path);
|
|
1012
974
|
const parentOf = children.length > 0 ? children.map(({ id }) => id) : node.properties.role === "branch" ? [] : void 0;
|
|
1013
975
|
return {
|
|
1014
976
|
id: node.id,
|
|
@@ -1016,7 +978,7 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1016
978
|
parentOf,
|
|
1017
979
|
icon: node.properties.icon,
|
|
1018
980
|
disabled: node.properties.disabled,
|
|
1019
|
-
className:
|
|
981
|
+
className: mx5(node.properties.modified && "italic", node.properties.className),
|
|
1020
982
|
headingClassName: node.properties.headingClassName,
|
|
1021
983
|
testId: node.properties.testId
|
|
1022
984
|
};
|
|
@@ -1047,14 +1009,14 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1047
1009
|
graph
|
|
1048
1010
|
]);
|
|
1049
1011
|
const onTabChange = useCallback2(async (node) => {
|
|
1050
|
-
await dispatch(
|
|
1012
|
+
await dispatch(createIntent4(LayoutAction4.SwitchWorkspace, {
|
|
1051
1013
|
part: "workspace",
|
|
1052
1014
|
subject: node.id
|
|
1053
1015
|
}));
|
|
1054
1016
|
if (layout.active.length === 0) {
|
|
1055
1017
|
const [item] = getItems(node).filter((node2) => !isActionLike2(node2));
|
|
1056
1018
|
if (item && item.data) {
|
|
1057
|
-
await dispatch(
|
|
1019
|
+
await dispatch(createIntent4(LayoutAction4.Open, {
|
|
1058
1020
|
part: "main",
|
|
1059
1021
|
subject: [
|
|
1060
1022
|
item.id
|
|
@@ -1093,7 +1055,7 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1093
1055
|
}
|
|
1094
1056
|
const current = isCurrent(path, node);
|
|
1095
1057
|
if (!current) {
|
|
1096
|
-
void dispatch(
|
|
1058
|
+
void dispatch(createIntent4(LayoutAction4.Open, {
|
|
1097
1059
|
part: "main",
|
|
1098
1060
|
subject: [
|
|
1099
1061
|
node.id
|
|
@@ -1103,7 +1065,7 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1103
1065
|
}
|
|
1104
1066
|
}));
|
|
1105
1067
|
} else if (option) {
|
|
1106
|
-
void dispatch(
|
|
1068
|
+
void dispatch(createIntent4(LayoutAction4.Close, {
|
|
1107
1069
|
part: "main",
|
|
1108
1070
|
subject: [
|
|
1109
1071
|
node.id
|
|
@@ -1113,7 +1075,7 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1113
1075
|
}
|
|
1114
1076
|
}));
|
|
1115
1077
|
} else {
|
|
1116
|
-
void dispatch(
|
|
1078
|
+
void dispatch(createIntent4(LayoutAction4.ScrollIntoView, {
|
|
1117
1079
|
part: "current",
|
|
1118
1080
|
subject: node.id
|
|
1119
1081
|
}));
|
|
@@ -1123,7 +1085,7 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1123
1085
|
void defaultAction.data();
|
|
1124
1086
|
}
|
|
1125
1087
|
if (!isLg) {
|
|
1126
|
-
void dispatch(
|
|
1088
|
+
void dispatch(createIntent4(LayoutAction4.UpdateSidebar, {
|
|
1127
1089
|
part: "sidebar",
|
|
1128
1090
|
options: {
|
|
1129
1091
|
state: "closed"
|
|
@@ -1136,7 +1098,7 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1136
1098
|
isCurrent,
|
|
1137
1099
|
isLg
|
|
1138
1100
|
]);
|
|
1139
|
-
const onBack = useCallback2(() => dispatch(
|
|
1101
|
+
const onBack = useCallback2(() => dispatch(createIntent4(LayoutAction4.RevertWorkspace, {
|
|
1140
1102
|
part: "workspace",
|
|
1141
1103
|
options: {
|
|
1142
1104
|
revert: true
|
|
@@ -1227,9 +1189,9 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1227
1189
|
canDrop,
|
|
1228
1190
|
handleSelect
|
|
1229
1191
|
]);
|
|
1230
|
-
return /* @__PURE__ */
|
|
1192
|
+
return /* @__PURE__ */ React9.createElement(NavTreeContext.Provider, {
|
|
1231
1193
|
value: navTreeContextValue
|
|
1232
|
-
}, /* @__PURE__ */
|
|
1194
|
+
}, /* @__PURE__ */ React9.createElement(NavTree, {
|
|
1233
1195
|
root: graph.root,
|
|
1234
1196
|
id: graph.root.id
|
|
1235
1197
|
}));
|
|
@@ -1238,7 +1200,6 @@ var NavTreeContainer = /* @__PURE__ */ memo2(({ tab, popoverAnchorId, topbar })
|
|
|
1238
1200
|
export {
|
|
1239
1201
|
CommandsDialogContent,
|
|
1240
1202
|
CommandsTrigger,
|
|
1241
|
-
NotchStart,
|
|
1242
1203
|
getParent,
|
|
1243
1204
|
getPersistenceParent,
|
|
1244
1205
|
resolveMigrationOperation,
|
|
@@ -1249,7 +1210,6 @@ export {
|
|
|
1249
1210
|
expandChildren,
|
|
1250
1211
|
expandActions,
|
|
1251
1212
|
l0ItemType,
|
|
1252
|
-
getFirstTwoRenderableChars,
|
|
1253
1213
|
NODE_TYPE,
|
|
1254
1214
|
NavTreeContainer,
|
|
1255
1215
|
NavTreeDocumentTitle,
|
|
@@ -1259,4 +1219,4 @@ export {
|
|
|
1259
1219
|
ReactSurface,
|
|
1260
1220
|
State
|
|
1261
1221
|
};
|
|
1262
|
-
//# sourceMappingURL=chunk-
|
|
1222
|
+
//# sourceMappingURL=chunk-DN43QXSX.mjs.map
|