@dxos/plugin-deck 0.8.1-main.ba2dec9 → 0.8.1-staging.391c573
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-ATPSUXXK.mjs → chunk-IZ5RPJ6T.mjs} +3 -3
- package/dist/lib/browser/{chunk-63K74E3J.mjs → chunk-Z23S33X6.mjs} +12 -8
- package/dist/lib/browser/chunk-Z23S33X6.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-root-ZQCTDM4Y.mjs → react-root-EP4UF3KA.mjs} +3 -3
- package/dist/lib/browser/{react-surface-RG3PVPY3.mjs → react-surface-5B3RLJCD.mjs} +3 -3
- package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +1 -1
- package/package.json +30 -30
- package/src/components/DeckLayout/DeckLayout.tsx +3 -2
- package/dist/lib/browser/chunk-63K74E3J.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-ATPSUXXK.mjs.map → chunk-IZ5RPJ6T.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-ZQCTDM4Y.mjs.map → react-root-EP4UF3KA.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-RG3PVPY3.mjs.map → react-surface-5B3RLJCD.mjs.map} +0 -0
|
@@ -3,8 +3,8 @@ import { lazy } from "@dxos/app-framework";
|
|
|
3
3
|
var AppGraphBuilder = lazy(() => import("./app-graph-builder-IYHAGFA3.mjs"));
|
|
4
4
|
var CheckAppScheme = lazy(() => import("./check-app-scheme-S3EYUPMF.mjs"));
|
|
5
5
|
var LayoutIntentResolver = lazy(() => import("./intent-resolver-P5BVUQKU.mjs"));
|
|
6
|
-
var ReactRoot = lazy(() => import("./react-root-
|
|
7
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
6
|
+
var ReactRoot = lazy(() => import("./react-root-EP4UF3KA.mjs"));
|
|
7
|
+
var ReactSurface = lazy(() => import("./react-surface-5B3RLJCD.mjs"));
|
|
8
8
|
var DeckSettings = lazy(() => import("./settings-X3P2HKQJ.mjs"));
|
|
9
9
|
var DeckState = lazy(() => import("./state-2MOTLKVR.mjs"));
|
|
10
10
|
var Tools = lazy(() => import("./tools-64LXGLYR.mjs"));
|
|
@@ -21,4 +21,4 @@ export {
|
|
|
21
21
|
Tools,
|
|
22
22
|
UrlHandler
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
24
|
+
//# sourceMappingURL=chunk-IZ5RPJ6T.mjs.map
|
|
@@ -103,7 +103,7 @@ import { untracked } from "@preact/signals-core";
|
|
|
103
103
|
import React17, { useCallback as useCallback4, useEffect as useEffect6, useMemo as useMemo5, useRef as useRef2, Fragment as Fragment3, useState as useState4 } from "react";
|
|
104
104
|
import { LayoutAction as LayoutAction4, createIntent as createIntent4, Surface as Surface10, useCapability as useCapability5, useIntentDispatcher as useIntentDispatcher4, usePluginManager } from "@dxos/app-framework";
|
|
105
105
|
import { AttentionCapabilities } from "@dxos/plugin-attention";
|
|
106
|
-
import { AlertDialog, Dialog as NaturalDialog, Main as Main3, Popover as Popover2,
|
|
106
|
+
import { AlertDialog, Dialog as NaturalDialog, Main as Main3, Popover as Popover2, useMediaQuery, useOnTransition } from "@dxos/react-ui";
|
|
107
107
|
import { Stack, StackContext, DEFAULT_HORIZONTAL_SIZE } from "@dxos/react-ui-stack";
|
|
108
108
|
import { mainPaddingTransitions } from "@dxos/react-ui-theme";
|
|
109
109
|
|
|
@@ -1053,12 +1053,16 @@ var DeckLayout = ({ overscroll, showHints, onDismissToast }) => {
|
|
|
1053
1053
|
modal: dialogBlockAlign !== "end",
|
|
1054
1054
|
open: dialogOpen,
|
|
1055
1055
|
onOpenChange: (nextOpen) => context.dialogOpen = nextOpen
|
|
1056
|
-
}, dialogBlockAlign === "end" ?
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1056
|
+
}, dialogBlockAlign === "end" ? (
|
|
1057
|
+
// TODO(burdon): Placeholder creates a suspense boundary; replace with defaults.
|
|
1058
|
+
/* @__PURE__ */ React17.createElement(Surface10, {
|
|
1059
|
+
role: "dialog",
|
|
1060
|
+
data: dialogContent,
|
|
1061
|
+
limit: 1,
|
|
1062
|
+
fallback: PlankContentError,
|
|
1063
|
+
placeholder: /* @__PURE__ */ React17.createElement("div", null)
|
|
1064
|
+
})
|
|
1065
|
+
) : /* @__PURE__ */ React17.createElement(Dialog.Overlay, {
|
|
1062
1066
|
blockAlign: dialogBlockAlign
|
|
1063
1067
|
}, /* @__PURE__ */ React17.createElement(Surface10, {
|
|
1064
1068
|
role: "dialog",
|
|
@@ -1127,4 +1131,4 @@ export {
|
|
|
1127
1131
|
DeckLayout,
|
|
1128
1132
|
LayoutSettings
|
|
1129
1133
|
};
|
|
1130
|
-
//# sourceMappingURL=chunk-
|
|
1134
|
+
//# sourceMappingURL=chunk-Z23S33X6.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/DeckLayout/Banner.tsx", "../../../src/components/DeckLayout/SidebarButton.tsx", "../../../src/components/DeckLayout/DeckLayout.tsx", "../../../src/components/DeckLayout/ActiveNode.tsx", "../../../src/hooks/useNode.ts", "../../../src/hooks/useNodeActionExpander.ts", "../../../src/hooks/useMainSize.ts", "../../../src/components/DeckLayout/ComplementarySidebar.tsx", "../../../src/components/DeckLayout/PlankError.tsx", "../../../src/components/DeckLayout/NodePlankHeading.tsx", "../../../src/components/DeckLayout/PlankControls.tsx", "../../../src/components/fragments.ts", "../../../src/components/DeckLayout/PlankLoading.tsx", "../../../src/components/DeckLayout/ContentEmpty.tsx", "../../../src/components/DeckLayout/Fullscreen.tsx", "../../../src/components/DeckLayout/Fallback.tsx", "../../../src/components/DeckLayout/constants.ts", "../../../src/components/DeckLayout/Plank.tsx", "../../../src/components/DeckLayout/Sidebar.tsx", "../../../src/components/DeckLayout/StatusBar.tsx", "../../../src/components/DeckLayout/Toast.tsx", "../../../src/components/DeckLayout/Topbar.tsx", "../../../src/components/LayoutSettings.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { CloseSidebarButton, ToggleSidebarButton } from './SidebarButton';\n\nexport const Banner = ({ variant, classNames }: ThemedClassName<{ variant?: 'topbar' | 'sidebar' }>) => {\n return (\n <header\n className={mx(\n 'flex items-stretch relative plb-1 pis-1 pie-2',\n variant === 'topbar' &&\n 'fixed inset-inline-0 block-start-[env(safe-area-inset-top)] bs-[--rail-size] border-be border-separator',\n classNames,\n )}\n >\n {variant === 'sidebar' ? <CloseSidebarButton /> : <ToggleSidebarButton />}\n <span className='self-center grow mis-1'>Composer</span>\n {variant === 'topbar' && (\n <div role='none' className='absolute inset-0 pointer-events-none'>\n <div role='none' className='grid bs-full pointer-fine:p-1 max-is-md mli-auto pointer-events-auto'>\n <Surface role='search-input' limit={1} />\n </div>\n </div>\n )}\n <span role='none' className='grow' />\n <Surface role='header-end' limit={1} />\n <Surface role='notch-start' limit={1} />\n </header>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useCapability } from '@dxos/app-framework';\nimport { IconButton, type IconButtonProps, type ThemedClassName, useTranslation } from '@dxos/react-ui';\n\nimport { DeckCapabilities } from '../../capabilities';\nimport { DECK_PLUGIN } from '../../meta';\n\nexport const ToggleSidebarButton = ({\n classNames,\n variant = 'ghost',\n}: ThemedClassName<Pick<IconButtonProps, 'variant'>>) => {\n const layoutContext = useCapability(DeckCapabilities.MutableDeckState);\n const { t } = useTranslation(DECK_PLUGIN);\n return (\n <IconButton\n variant={variant}\n iconOnly\n icon='ph--sidebar--regular'\n size={4}\n label={t('open navigation sidebar label')}\n onClick={() =>\n (layoutContext.sidebarState = layoutContext.sidebarState === 'expanded' ? 'collapsed' : 'expanded')\n }\n classNames={classNames}\n />\n );\n};\n\nexport const CloseSidebarButton = () => {\n const layoutContext = useCapability(DeckCapabilities.MutableDeckState);\n const { t } = useTranslation(DECK_PLUGIN);\n return (\n <IconButton\n variant='ghost'\n iconOnly\n icon='ph--caret-line-left--regular'\n size={4}\n label={t('close navigation sidebar label')}\n onClick={() => (layoutContext.sidebarState = 'collapsed')}\n classNames='rounded-none pli-1 dx-focus-ring-inset pie-[max(.5rem,env(safe-area-inset-left))]'\n />\n );\n};\n\nexport const ToggleComplementarySidebarButton = ({ inR0, classNames }: ThemedClassName<{ inR0?: boolean }>) => {\n const layoutContext = useCapability(DeckCapabilities.MutableDeckState);\n const { t } = useTranslation(DECK_PLUGIN);\n return (\n <IconButton\n iconOnly\n onClick={() =>\n (layoutContext.complementarySidebarState =\n layoutContext.complementarySidebarState === 'expanded' ? 'collapsed' : 'expanded')\n }\n variant='ghost'\n label={t('open complementary sidebar label')}\n classNames={['[&>svg]:-scale-x-100', classNames]}\n icon='ph--sidebar-simple--regular'\n size={inR0 ? 5 : 4}\n tooltipSide={inR0 ? 'left' : undefined}\n />\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { untracked } from '@preact/signals-core';\nimport React, { useCallback, useEffect, useMemo, useRef, type UIEvent, Fragment, useState } from 'react';\n\nimport {\n LayoutAction,\n createIntent,\n Surface,\n useCapability,\n useIntentDispatcher,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport {\n AlertDialog,\n Dialog as NaturalDialog,\n Main,\n Popover,\n type MainProps,\n useMediaQuery,\n useOnTransition,\n} from '@dxos/react-ui';\nimport { Stack, StackContext, DEFAULT_HORIZONTAL_SIZE } from '@dxos/react-ui-stack';\nimport { mainPaddingTransitions } from '@dxos/react-ui-theme';\n\nimport { ActiveNode } from './ActiveNode';\nimport { ComplementarySidebar } from './ComplementarySidebar';\nimport { ContentEmpty } from './ContentEmpty';\nimport { Fullscreen } from './Fullscreen';\nimport { Plank } from './Plank';\nimport { PlankContentError } from './PlankError';\nimport { Sidebar } from './Sidebar';\nimport { ToggleComplementarySidebarButton, ToggleSidebarButton } from './SidebarButton';\nimport { StatusBar } from './StatusBar';\nimport { Toast } from './Toast';\nimport { Topbar } from './Topbar';\nimport { DeckCapabilities } from '../../capabilities';\nimport { getMode, type Overscroll } from '../../types';\nimport { calculateOverscroll, layoutAppliesTopbar, useBreakpoints, useHoistStatusbar } from '../../util';\nimport { fixedComplementarySidebarToggleStyles, fixedSidebarToggleStyles } from '../fragments';\n\nexport type DeckLayoutProps = {\n overscroll: Overscroll;\n showHints: boolean;\n onDismissToast: (id: string) => void;\n};\n\nconst PlankSeparator = ({ index }: { index: number }) =>\n index > 0 ? <span role='separator' className='row-span-2 bg-deck is-4' style={{ gridColumn: index * 2 }} /> : null;\n\nexport const DeckLayout = ({ overscroll, showHints, onDismissToast }: DeckLayoutProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const context = useCapability(DeckCapabilities.MutableDeckState);\n const {\n sidebarState,\n complementarySidebarState,\n complementarySidebarPanel,\n dialogOpen,\n dialogContent,\n dialogBlockAlign,\n dialogType,\n popoverOpen,\n popoverContent,\n popoverAnchorId,\n deck,\n toasts,\n } = context;\n const { active, fullscreen, solo, plankSizing } = deck;\n const breakpoint = useBreakpoints();\n const topbar = layoutAppliesTopbar(breakpoint);\n const hoistStatusbar = useHoistStatusbar(breakpoint);\n const pluginManager = usePluginManager();\n\n const scrollLeftRef = useRef<number | null>();\n const deckRef = useRef<HTMLDivElement>(null);\n\n // TODO(thure): This is a workaround for the difference in `React`ion time between displaying a Popover and rendering\n // the anchor further down the tree. Refactor to use VirtualTrigger or some other approach which does not cause a lag.\n const [delayedPopoverVisibility, setDelayedPopoverVisibility] = useState(false);\n useEffect(() => {\n popoverOpen ? setTimeout(() => setDelayedPopoverVisibility(true), 40) : setDelayedPopoverVisibility(false);\n }, [popoverOpen]);\n\n // Ensure the first plank is attended when the deck is first rendered.\n useEffect(() => {\n // NOTE: Not `useAttended` so that the layout component is not re-rendered when the attended list changes.\n const attended = untracked(() => {\n const attention = pluginManager.context.requestCapability(AttentionCapabilities.Attention);\n return attention.current;\n });\n const firstId = solo ?? active[0];\n if (attended.length === 0 && firstId) {\n // TODO(wittjosiah): Focusing the type button is a workaround.\n // If the plank is directly focused on first load the focus ring appears.\n document.querySelector<HTMLElement>(`article[data-attendable-id=\"${firstId}\"] button`)?.focus();\n }\n }, []);\n\n // Not using `breakpoint` to avoid firing when breakpoint changes between tablet and desktop.\n // `ssr: false` to avoid using fallback values and flashing into solo mode on startup.\n const [isNotMobile] = useMediaQuery('md', { ssr: false });\n const shouldRevert = useRef(false);\n useEffect(() => {\n if (!isNotMobile && getMode(deck) === 'deck') {\n // NOTE: Not `useAttended` so that the layout component is not re-rendered when the attended list changes.\n const attended = untracked(() => {\n const attention = pluginManager.context.requestCapability(AttentionCapabilities.Attention);\n return attention.current;\n });\n\n shouldRevert.current = true;\n void dispatch(\n createIntent(LayoutAction.SetLayoutMode, { part: 'mode', subject: attended[0], options: { mode: 'solo' } }),\n );\n } else if (isNotMobile && getMode(deck) === 'solo' && shouldRevert.current) {\n void dispatch(createIntent(LayoutAction.SetLayoutMode, { part: 'mode', options: { revert: true } }));\n }\n }, [isNotMobile, deck, dispatch]);\n\n /**\n * Clear scroll restoration state if the window is resized\n */\n const handleResize = useCallback(() => {\n scrollLeftRef.current = null;\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n\n const restoreScroll = useCallback(() => {\n if (deckRef.current && scrollLeftRef.current != null) {\n deckRef.current.scrollLeft = scrollLeftRef.current;\n }\n }, []);\n\n const layoutMode = getMode(deck);\n useOnTransition(layoutMode, (mode) => mode !== 'deck', 'deck', restoreScroll);\n\n /**\n * Save scroll position as the user scrolls\n */\n const handleScroll = useCallback(\n (event: UIEvent) => {\n if (!solo && event.currentTarget === event.target) {\n scrollLeftRef.current = (event.target as HTMLDivElement).scrollLeft;\n }\n },\n [solo],\n );\n\n const isEmpty = !solo && active.length === 0;\n\n const padding = useMemo(() => {\n if (!solo && overscroll === 'centering') {\n return calculateOverscroll(active.length);\n }\n return {};\n }, [solo, overscroll, deck]);\n\n const mainPosition = useMemo(\n () => [\n 'grid !block-start-[env(safe-area-inset-top)]',\n topbar && '!block-start-[calc(env(safe-area-inset-top)+var(--rail-size))]',\n hoistStatusbar && 'lg:block-end-[--statusbar-size]',\n ],\n [topbar, hoistStatusbar],\n );\n\n const Dialog = dialogType === 'alert' ? AlertDialog : NaturalDialog;\n\n const handlePopoverOpenChange = useCallback(\n (nextOpen: boolean) => {\n if (nextOpen && popoverAnchorId) {\n context.popoverOpen = true;\n } else {\n context.popoverOpen = false;\n context.popoverAnchorId = undefined;\n context.popoverSide = undefined;\n }\n },\n [context],\n );\n const handlePopoverClose = useCallback(() => handlePopoverOpenChange(false), [handlePopoverOpenChange]);\n\n return (\n <Popover.Root modal open={!!(popoverAnchorId && delayedPopoverVisibility)} onOpenChange={handlePopoverOpenChange}>\n <ActiveNode />\n\n {fullscreen && <Fullscreen id={solo} />}\n\n {!fullscreen && (\n <Main.Root\n navigationSidebarState={context.sidebarState}\n onNavigationSidebarStateChange={(next) => (context.sidebarState = next)}\n complementarySidebarState={context.complementarySidebarState}\n onComplementarySidebarStateChange={(next) => (context.complementarySidebarState = next)}\n >\n {/* Left sidebar. */}\n <Sidebar />\n\n {/* Right sidebar. */}\n <ComplementarySidebar current={complementarySidebarPanel} />\n\n {/* Dialog overlay to dismiss dialogs. */}\n <Main.Overlay />\n\n {/* No content. */}\n {isEmpty && (\n <Main.Content bounce handlesFocus classNames={mainPosition}>\n <ContentEmpty />\n </Main.Content>\n )}\n\n {/* Solo/deck mode. */}\n {!isEmpty && (\n <Main.Content\n bounce\n classNames={mainPosition}\n handlesFocus\n style={\n {\n '--dx-main-sidebarWidth':\n sidebarState === 'expanded'\n ? 'var(--nav-sidebar-size)'\n : sidebarState === 'collapsed'\n ? 'var(--l0-size)'\n : '0',\n '--dx-main-complementaryWidth':\n complementarySidebarState === 'expanded'\n ? 'var(--complementary-sidebar-size)'\n : complementarySidebarState === 'collapsed'\n ? 'var(--rail-size)'\n : '0',\n '--dx-main-contentFirstWidth': `${plankSizing[active[0] ?? 'never'] ?? DEFAULT_HORIZONTAL_SIZE}rem`,\n '--dx-main-contentLastWidth': `${plankSizing[active[(active.length ?? 1) - 1] ?? 'never'] ?? DEFAULT_HORIZONTAL_SIZE}rem`,\n } as MainProps['style']\n }\n >\n <div\n role='none'\n className={!solo ? 'relative bg-deck overflow-hidden' : 'sr-only'}\n {...(solo && { inert: '' })}\n >\n {!topbar && <ToggleSidebarButton classNames={fixedSidebarToggleStyles} />}\n {!topbar && <ToggleComplementarySidebarButton classNames={fixedComplementarySidebarToggleStyles} />}\n <Stack\n orientation='horizontal'\n size='contain'\n classNames={['absolute inset-block-0 -inset-inline-px', mainPaddingTransitions]}\n onScroll={handleScroll}\n itemsCount={2 * (active.length ?? 0) - 1}\n style={padding}\n ref={deckRef}\n >\n {active.map((entryId, index) => (\n <Fragment key={entryId}>\n <PlankSeparator index={index} />\n <Plank id={entryId} part='deck' order={index * 2 + 1} active={active} layoutMode={layoutMode} />\n </Fragment>\n ))}\n </Stack>\n </div>\n <div\n role='none'\n className={solo ? 'relative bg-deck overflow-hidden' : 'sr-only'}\n {...(!solo && { inert: '' })}\n >\n {!topbar && <ToggleSidebarButton classNames={fixedSidebarToggleStyles} />}\n {!topbar && <ToggleComplementarySidebarButton classNames={fixedComplementarySidebarToggleStyles} />}\n <StackContext.Provider value={{ size: 'contain', orientation: 'horizontal', rail: true }}>\n <Plank id={solo} part='solo' layoutMode={layoutMode} />\n </StackContext.Provider>\n </div>\n </Main.Content>\n )}\n\n {/* Status bar. */}\n {topbar && <Topbar />}\n {hoistStatusbar && <StatusBar showHints={showHints} />}\n </Main.Root>\n )}\n\n {/* Global popovers. */}\n <Popover.Portal>\n <Popover.Content side={context.popoverSide} onEscapeKeyDown={handlePopoverClose}>\n <Popover.Viewport>\n <Surface role='popover' data={popoverContent} limit={1} />\n </Popover.Viewport>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n\n {/* Global dialog. */}\n {/* TODO(thure): End block alignment affecting `modal` and whether the surface renders in an overlay is tailored\n to the needs of the ambient chat dialog. As the feature matures, consider separating concerns. */}\n <Dialog.Root\n modal={dialogBlockAlign !== 'end'}\n open={dialogOpen}\n onOpenChange={(nextOpen) => (context.dialogOpen = nextOpen)}\n >\n {dialogBlockAlign === 'end' ? (\n // TODO(burdon): Placeholder creates a suspense boundary; replace with defaults.\n <Surface role='dialog' data={dialogContent} limit={1} fallback={PlankContentError} placeholder={<div />} />\n ) : (\n <Dialog.Overlay blockAlign={dialogBlockAlign}>\n <Surface role='dialog' data={dialogContent} limit={1} fallback={PlankContentError} />\n </Dialog.Overlay>\n )}\n </Dialog.Root>\n\n {/* Global toasts. */}\n {toasts?.map((toast) => (\n <Toast\n {...toast}\n key={toast.id}\n onOpenChange={(open) => {\n if (!open) {\n onDismissToast(toast.id);\n }\n\n return open;\n }}\n />\n ))}\n </Popover.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface, useAppGraph } from '@dxos/app-framework';\nimport { useAttended } from '@dxos/react-ui-attention';\n\nimport { useNode, useNodeActionExpander } from '../../hooks';\n\n// TODO(burdon): Factor out to effect in plugin set document title.\nexport const ActiveNode = () => {\n const [id] = useAttended();\n const { graph } = useAppGraph();\n const activeNode = useNode(graph, id);\n useNodeActionExpander(activeNode);\n\n return (\n <div role='none' className='sr-only'>\n {/* TODO(wittjosiah): Weird that this is a surface, feel like it's not really render logic.\n Probably this lives in React-land currently in order to access translations? */}\n <Surface role='document-title' data={{ subject: activeNode }} limit={1} />\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Graph, type Node } from '@dxos/plugin-graph';\n\n/**\n * React hook to get a node from the graph.\n *\n * @param graph Graph to find the node in.\n * @param id Id of the node to find.\n * @param timeout Optional timeout in milliseconds to wait for the node to be found.\n * @returns Node if found, undefined otherwise.\n */\n// TODO(wittjosiah): Factor out.\nexport const useNode = <T = any>(graph: Graph, id?: string, timeout?: number): Node<T> | undefined => {\n const [nodeState, setNodeState] = useState<Node<T> | undefined>(id ? graph.findNode(id, false) : undefined);\n\n useEffect(() => {\n if (!id && nodeState) {\n setNodeState(undefined);\n }\n\n if (nodeState?.id === id || !id) {\n return;\n }\n\n // Set timeout did not seem to effectively not block the UI thread.\n const frame = requestAnimationFrame(async () => {\n try {\n const node = await graph.waitForNode(id, timeout);\n if (node) {\n setNodeState(node);\n }\n } catch {\n // TODO(ZaymonFC): This leaves the resolved node in an invalid state in the case of a timeout.\n }\n });\n\n return () => cancelAnimationFrame(frame);\n }, [graph, id, timeout, nodeState?.id]);\n\n return nodeState;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { ACTION_GROUP_TYPE, ACTION_TYPE, getGraph, type Node } from '@dxos/plugin-graph';\n\nconst expandNodeActions = async (node: Node) => {\n const graph = getGraph(node);\n await graph.expand(node, 'outbound', ACTION_GROUP_TYPE);\n await graph.expand(node, 'outbound', ACTION_TYPE);\n};\n\nexport const useNodeActionExpander = (node?: Node) => {\n useEffect(() => {\n if (node) {\n const frame = requestAnimationFrame(() => {\n void expandNodeActions(node);\n });\n return () => cancelAnimationFrame(frame);\n }\n }, [node]);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useMainContext } from '@dxos/react-ui';\n\nexport const useMainSize = () => {\n const { navigationSidebarState, complementarySidebarState } = useMainContext('DeckPluginPlank');\n return {\n 'data-sidebar-inline-start-state': navigationSidebarState,\n 'data-sidebar-inline-end-state': complementarySidebarState,\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, {\n type PropsWithChildren,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type MouseEvent,\n Fragment,\n} from 'react';\n\nimport {\n createIntent,\n LayoutAction,\n Surface,\n useAppGraph,\n useCapabilities,\n useCapability,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport {\n Main,\n useTranslation,\n toLocalizedString,\n IconButton,\n ScrollArea as NaturalScrollArea,\n type Label,\n} from '@dxos/react-ui';\nimport { useAttended } from '@dxos/react-ui-attention';\nimport { Tabs } from '@dxos/react-ui-tabs';\nimport { byPosition } from '@dxos/util';\n\nimport { PlankContentError } from './PlankError';\nimport { PlankLoading } from './PlankLoading';\nimport { ToggleComplementarySidebarButton } from './SidebarButton';\nimport { DeckCapabilities } from '../../capabilities';\nimport { useNode } from '../../hooks';\nimport { DECK_PLUGIN } from '../../meta';\nimport { type Panel } from '../../types';\nimport { layoutAppliesTopbar, useBreakpoints, useHoistStatusbar } from '../../util';\n\nexport type ComplementarySidebarProps = {\n current?: string;\n};\n\nconst label = ['complementary sidebar title', { ns: DECK_PLUGIN }] satisfies Label;\n\nexport const ComplementarySidebar = ({ current }: ComplementarySidebarProps) => {\n const { t } = useTranslation(DECK_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const layout = useCapability(DeckCapabilities.MutableDeckState);\n const attended = useAttended();\n const { graph } = useAppGraph();\n const node = useNode(graph, attended[0]);\n const breakpoint = useBreakpoints();\n const topbar = layoutAppliesTopbar(breakpoint);\n const hoistStatusbar = useHoistStatusbar(breakpoint);\n\n const panels = useCapabilities(DeckCapabilities.ComplementaryPanel);\n const availablePanels = panels\n .filter((panel) => {\n if (!node || !panel.filter) {\n return true;\n }\n\n return panel.filter(node);\n })\n .toSorted(byPosition);\n const activePanelId = availablePanels.find((panel) => panel.id === current)?.id ?? availablePanels[0]?.id;\n const [internalValue, setInternalValue] = useState(activePanelId);\n\n useEffect(() => {\n setInternalValue(activePanelId);\n }, [activePanelId]);\n\n const handleTabClick = useCallback(\n (event: MouseEvent) => {\n const nextValue = event.currentTarget.getAttribute('data-value') as string;\n if (nextValue === activePanelId) {\n layout.complementarySidebarState = layout.complementarySidebarState === 'expanded' ? 'collapsed' : 'expanded';\n } else {\n setInternalValue(nextValue);\n layout.complementarySidebarState = 'expanded';\n void dispatch(createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: nextValue }));\n }\n },\n [layout, activePanelId, dispatch],\n );\n\n const data = useMemo(\n () =>\n node && {\n id: node.id,\n subject: node.data,\n workspace: layout.activeDeck,\n popoverAnchorId: layout.popoverAnchorId,\n },\n [node, layout.popoverAnchorId],\n );\n\n // TODO(burdon): Scroll area should be controlled by surface.\n return (\n <Main.ComplementarySidebar\n label={label}\n classNames={[\n topbar && 'block-start-[calc(env(safe-area-inset-top)+var(--rail-size))]',\n hoistStatusbar && 'block-end-[--statusbar-size]',\n ]}\n >\n <Tabs.Root\n orientation='vertical'\n verticalVariant='stateless'\n value={internalValue}\n attendableId={attended[0]}\n classNames='contents'\n >\n <div\n role='none'\n className='absolute z-[1] inset-block-0 inline-end-0 !is-[--r0-size] pbs-[env(safe-area-inset-top)] pbe-[env(safe-area-inset-bottom)] border-is border-separator grid grid-cols-1 grid-rows-[1fr_min-content] bg-baseSurface contain-layout app-drag'\n >\n <Tabs.Tablist classNames='grid grid-cols-1 auto-rows-[--rail-action] p-1 gap-1 !overflow-y-auto'>\n {availablePanels.map((panel) => (\n <Tabs.Tab key={panel.id} value={panel.id} asChild>\n <IconButton\n label={toLocalizedString(panel.label, t)}\n icon={panel.icon}\n size={5}\n iconOnly\n tooltipSide='left'\n data-value={panel.id}\n variant={\n activePanelId === panel.id\n ? layout.complementarySidebarState === 'expanded'\n ? 'primary'\n : 'default'\n : 'ghost'\n }\n onClick={handleTabClick}\n />\n </Tabs.Tab>\n ))}\n </Tabs.Tablist>\n {!hoistStatusbar && (\n <div role='none' className='grid grid-cols-1 auto-rows-[--rail-item] p-1 overflow-y-auto'>\n <Surface role='status-bar--r0-footer' limit={1} />\n </div>\n )}\n <div role='none' className='hidden lg:grid grid-cols-1 auto-rows-[--rail-action] p-1'>\n <ToggleComplementarySidebarButton />\n </div>\n </div>\n {availablePanels.map((panel) => (\n <Tabs.Tabpanel\n key={panel.id}\n value={panel.id}\n classNames='absolute data-[state=\"inactive\"]:-z-[1] inset-block-0 inline-start-0 is-[calc(100%-var(--r0-size))] lg:is-[--r1-size] grid grid-cols-1 grid-rows-[var(--rail-size)_1fr_min-content] pbs-[env(safe-area-inset-top)]'\n {...(layout.complementarySidebarState !== 'expanded' && { inert: 'true' })}\n >\n <ComplementarySidebarPanel\n panel={panel}\n activePanelId={activePanelId}\n data={data}\n hoistStatusbar={hoistStatusbar}\n />\n </Tabs.Tabpanel>\n ))}\n </Tabs.Root>\n </Main.ComplementarySidebar>\n );\n};\n\ntype ComplementarySidebarPanelProps = {\n panel: Panel;\n activePanelId: string;\n data?: {\n id: string;\n subject: any;\n workspace: string;\n popoverAnchorId?: string;\n };\n hoistStatusbar: boolean;\n};\n\nconst ScrollArea = ({ children }: PropsWithChildren) => {\n return (\n <NaturalScrollArea.Root>\n <NaturalScrollArea.Viewport>{children}</NaturalScrollArea.Viewport>\n <NaturalScrollArea.Scrollbar orientation='vertical'>\n <NaturalScrollArea.Thumb />\n </NaturalScrollArea.Scrollbar>\n </NaturalScrollArea.Root>\n );\n};\n\nconst ComplementarySidebarPanel = ({ panel, activePanelId, data, hoistStatusbar }: ComplementarySidebarPanelProps) => {\n const { t } = useTranslation(DECK_PLUGIN);\n\n if (panel.id !== activePanelId || !data) {\n return null;\n }\n\n const Wrapper = panel.fixed ? Fragment : ScrollArea;\n\n return (\n <>\n <h2 className='flex items-center pli-2 border-separator border-be font-medium'>\n {toLocalizedString(panel.label, t)}\n </h2>\n <Wrapper>\n <Surface\n role={`complementary--${activePanelId}`}\n data={data}\n fallback={PlankContentError}\n placeholder={<PlankLoading />}\n />\n </Wrapper>\n {!hoistStatusbar && (\n <div\n role='contentinfo'\n className='flex flex-wrap justify-center items-center border-bs border-separator pbs-1 pbe-[max(env(safe-area-inset-bottom),0.25rem)]'\n >\n <Surface role='status-bar--r1-footer' limit={1} />\n </div>\n )}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { type Node } from '@dxos/plugin-graph';\nimport { useTranslation } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { NodePlankHeading, type NodePlankHeadingProps } from './NodePlankHeading';\nimport { PlankLoading } from './PlankLoading';\nimport { DECK_PLUGIN } from '../../meta';\n\nexport const PlankContentError = ({ error }: { error?: Error }) => {\n const { t } = useTranslation(DECK_PLUGIN);\n const errorString = error?.toString() ?? '';\n return (\n <div role='none' className='overflow-auto p-8 attention-surface grid place-items-center'>\n <p\n role='alert'\n className={mx(\n descriptionText,\n 'break-words border border-dashed border-separator rounded-lg p-8',\n errorString.length < 256 && 'text-lg',\n )}\n >\n {error ? errorString : t('error fallback message')}\n </p>\n </div>\n );\n};\n\nexport const PlankError = ({\n id,\n part,\n node,\n error,\n}: {\n id: string;\n part: NodePlankHeadingProps['part'];\n node?: Node;\n error?: Error;\n}) => {\n const [timedOut, setTimedOut] = useState(false);\n useEffect(() => {\n setTimeout(() => setTimedOut(true), 5e3);\n }, []);\n return (\n <>\n <NodePlankHeading id={id} part={part} node={node} pending={!timedOut} />\n {timedOut ? <PlankContentError error={error} /> : <PlankLoading />}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { Fragment, memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { createIntent, LayoutAction, Surface, useAppGraph, useIntentDispatcher } from '@dxos/app-framework';\nimport { type Node } from '@dxos/plugin-graph';\nimport { Icon, Popover, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { StackItem, type StackItemSigilAction } from '@dxos/react-ui-stack';\nimport { TextTooltip } from '@dxos/react-ui-text-tooltip';\n\nimport { PlankControls } from './PlankControls';\nimport { DECK_PLUGIN } from '../../meta';\nimport { DeckAction, SLUG_PATH_SEPARATOR } from '../../types';\nimport { useBreakpoints } from '../../util';\nimport { soloInlinePadding } from '../fragments';\n\nexport type NodePlankHeadingProps = {\n id: string;\n part: 'solo' | 'deck' | 'complementary';\n node?: Node;\n canIncrementStart?: boolean;\n canIncrementEnd?: boolean;\n popoverAnchorId?: string;\n pending?: boolean;\n actions?: StackItemSigilAction[];\n};\n\nexport const NodePlankHeading = memo(\n ({\n id,\n part,\n node,\n canIncrementStart,\n canIncrementEnd,\n popoverAnchorId,\n pending,\n actions = [],\n }: NodePlankHeadingProps) => {\n const { t } = useTranslation(DECK_PLUGIN);\n const { graph } = useAppGraph();\n const breakpoint = useBreakpoints();\n const icon = node?.properties?.icon ?? 'ph--placeholder--regular';\n const label = pending\n ? t('pending heading')\n : toLocalizedString(node?.properties?.label ?? ['plank heading fallback label', { ns: DECK_PLUGIN }], t);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const ActionRoot = node && popoverAnchorId === `dxos.org/ui/${DECK_PLUGIN}/${node.id}` ? Popover.Anchor : Fragment;\n\n useEffect(() => {\n const frame = requestAnimationFrame(() => {\n // Load actions for the node.\n node && graph.actions(node);\n });\n\n return () => cancelAnimationFrame(frame);\n }, [node]);\n\n // NOTE(Zan): Node ids may now contain a path like `${space}:${id}~comments`\n const attendableId = id.split(SLUG_PATH_SEPARATOR).at(0);\n const capabilities = useMemo(\n () => ({\n solo: breakpoint !== 'mobile' && (part === 'solo' || part === 'deck'),\n incrementStart: canIncrementStart,\n incrementEnd: canIncrementEnd,\n }),\n [breakpoint, part, canIncrementStart, canIncrementEnd],\n );\n\n const sigilActions = useMemo(\n () => node && [actions, graph.actions(node)].filter((a) => a.length > 0),\n [actions, node, graph],\n );\n const handleAction = useCallback((action: StackItemSigilAction) => {\n typeof action.data === 'function' && action.data?.({ node: action as Node, caller: DECK_PLUGIN });\n }, []);\n\n const handlePlankAction = useCallback(\n (eventType: DeckAction.PartAdjustment) => {\n if (eventType === 'solo') {\n return dispatch(createIntent(DeckAction.Adjust, { type: eventType, id }));\n } else if (eventType === 'close') {\n if (part === 'complementary') {\n return dispatch(\n createIntent(LayoutAction.UpdateComplementary, {\n part: 'complementary',\n options: { state: 'collapsed' },\n }),\n );\n } else {\n return dispatch(\n createIntent(LayoutAction.Close, { part: 'main', subject: [id], options: { state: false } }),\n );\n }\n } else {\n return dispatch(createIntent(DeckAction.Adjust, { type: eventType, id }));\n }\n },\n [dispatch, id, part],\n );\n\n return (\n <StackItem.Heading\n classNames={[\n 'plb-1 border-be border-separator items-stretch gap-1 sticky inline-start-12 app-drag',\n part === 'solo' ? soloInlinePadding : 'pli-1',\n ]}\n >\n <ActionRoot>\n {node && sigilActions ? (\n <StackItem.Sigil\n icon={icon}\n related={part === 'complementary'}\n attendableId={attendableId}\n triggerLabel={t('actions menu label')}\n actions={sigilActions}\n onAction={handleAction}\n >\n <Surface role='menu-footer' data={{ subject: node.data }} />\n </StackItem.Sigil>\n ) : (\n <StackItem.SigilButton>\n <span className='sr-only'>{label}</span>\n <Icon icon={icon} size={5} />\n </StackItem.SigilButton>\n )}\n </ActionRoot>\n <TextTooltip text={label} onlyWhenTruncating>\n <StackItem.HeadingLabel\n attendableId={attendableId}\n related={part === 'complementary'}\n {...(pending && { classNames: 'text-description' })}\n >\n {label}\n </StackItem.HeadingLabel>\n </TextTooltip>\n {node && part !== 'complementary' && <Surface role='navbar-end' data={{ subject: node.data }} />}\n <PlankControls\n capabilities={capabilities}\n isSolo={part === 'solo'}\n onClick={handlePlankAction}\n close={part === 'complementary' ? 'minify-end' : true}\n />\n </StackItem.Heading>\n );\n },\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef } from 'react';\n\nimport {\n Button,\n ButtonGroup,\n type ButtonGroupProps,\n type ButtonProps,\n Icon,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\n\nimport { DECK_PLUGIN } from '../../meta';\nimport { type DeckAction } from '../../types';\n\nexport type PlankControlHandler = (event: DeckAction.PartAdjustment) => void;\n\nexport type PlankCapabilities = {\n incrementStart?: boolean;\n incrementEnd?: boolean;\n solo?: boolean;\n};\n\nexport type PlankControlsProps = Omit<ButtonGroupProps, 'onClick'> & {\n onClick?: PlankControlHandler;\n variant?: 'hide-disabled' | 'default';\n close?: boolean | 'minify-start' | 'minify-end';\n capabilities: PlankCapabilities;\n isSolo?: boolean;\n pin?: 'start' | 'end' | 'both';\n};\n\nconst PlankControl = ({ icon, label, ...props }: Omit<ButtonProps, 'children'> & { label: string; icon: string }) => {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button variant='ghost' {...props}>\n <span className='sr-only'>{label}</span>\n <Icon icon={icon} size={5} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content side='bottom'>{label}</Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\n// TODO(wittjosiah): Duplicate of stack LayoutControls?\n// Translations were to be duplicated between packages.\n// NOTE(thure): Pinning & unpinning are disabled indefinitely.\nexport const PlankControls = forwardRef<HTMLDivElement, PlankControlsProps>(\n (\n { onClick, variant = 'default', capabilities: can, isSolo, pin, close = false, children, classNames, ...props },\n forwardedRef,\n ) => {\n const { t } = useTranslation(DECK_PLUGIN);\n const buttonClassNames = variant === 'hide-disabled' ? 'disabled:hidden pli-2 plb-3' : 'pli-2 plb-3';\n\n return (\n <ButtonGroup {...props} classNames={['app-no-drag', classNames]} ref={forwardedRef}>\n {/* {pin && !isSolo && ['both', 'start'].includes(pin) && (\n <PlankControl\n label={t('pin start label')}\n variant='ghost'\n classNames={buttonClassNames}\n onClick={() => onClick?.('pin-start')}\n icon='ph--caret-line-left--regular'\n />\n )} */}\n\n {can.solo && (\n <PlankControl\n label={isSolo ? t('show deck plank label') : t('show solo plank label')}\n classNames={buttonClassNames}\n onClick={() => onClick?.('solo')}\n icon={isSolo ? 'ph--corners-in--regular' : 'ph--corners-out--regular'}\n />\n )}\n\n {!isSolo && can.solo && (\n <>\n <PlankControl\n label={t('increment start label')}\n disabled={!can.incrementStart}\n classNames={buttonClassNames}\n onClick={() => onClick?.('increment-start')}\n icon='ph--caret-left--regular'\n />\n <PlankControl\n label={t('increment end label')}\n disabled={!can.incrementEnd}\n classNames={buttonClassNames}\n onClick={() => onClick?.('increment-end')}\n icon='ph--caret-right--regular'\n />\n </>\n )}\n\n {/* {pin && !isSolo && ['both', 'end'].includes(pin) && (\n <PlankControl\n label={t('pin end label')}\n classNames={buttonClassNames}\n onClick={() => onClick?.('pin-end')}\n icon='ph--caret-line-right--regular'\n />\n )} */}\n\n {close && !isSolo && (\n <PlankControl\n label={t(`${typeof close === 'string' ? 'minify' : 'close'} label`)}\n classNames={buttonClassNames}\n onClick={() => onClick?.('close')}\n data-testid='plankHeading.close'\n icon={\n close === 'minify-start'\n ? 'ph--caret-line-left--regular'\n : close === 'minify-end'\n ? 'ph--caret-line-right--regular'\n : 'ph--x--regular'\n }\n />\n )}\n {children}\n </ButtonGroup>\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { mx } from '@dxos/react-ui-theme';\n\nexport const soloInlinePadding =\n 'pis-[calc(env(safe-area-inset-left)+.25rem)] pie-[calc(env(safe-area-inset-left)+.25rem)]';\n\nconst sidebarToggleStyles = 'bs-[--rail-item] is-[--rail-item] absolute block-end-2 z-[1] !bg-deck lg:hidden';\n\nexport const fixedSidebarToggleStyles = mx(sidebarToggleStyles, 'inline-start-2');\n\nexport const fixedComplementarySidebarToggleStyles = mx(sidebarToggleStyles, 'inline-end-2');\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\n// TODO(burdon): Show skeleton: https://github.com/dxos/dxos/issues/8259\nexport const PlankLoading = () => {\n return <div role='none' className='grid place-items-center attention-surface' />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework';\n\nimport { ToggleSidebarButton } from './SidebarButton';\nimport { layoutAppliesTopbar, useBreakpoints } from '../../util';\nimport { fixedSidebarToggleStyles } from '../fragments';\n\nexport const ContentEmpty = () => {\n const breakpoint = useBreakpoints();\n const topbar = layoutAppliesTopbar(breakpoint);\n return (\n <div\n role='none'\n className='grid place-items-center p-8 relative bg-deck'\n data-testid='layoutPlugin.firstRunMessage'\n >\n <Surface role='keyshortcuts' />\n {!topbar && <ToggleSidebarButton variant='default' classNames={fixedSidebarToggleStyles} />}\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface, useAppGraph } from '@dxos/app-framework';\nimport { fixedInsetFlexLayout } from '@dxos/react-ui-theme';\n\nimport { Fallback } from './Fallback';\nimport { SURFACE_PREFIX } from './constants';\nimport { useNode } from '../../hooks';\n\nexport const Fullscreen = ({ id }: { id?: string }) => {\n const { graph } = useAppGraph();\n const fullScreenNode = useNode(graph, id);\n\n return (\n <div role='none' className={fixedInsetFlexLayout}>\n <Surface\n role='main'\n limit={1}\n fallback={Fallback}\n data={{\n subject: fullScreenNode?.data,\n component: id?.startsWith(SURFACE_PREFIX) ? id.slice(SURFACE_PREFIX.length) : undefined,\n }}\n />\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { errorText, mx } from '@dxos/react-ui-theme';\n\nimport { DECK_PLUGIN } from '../../meta';\n\nexport const Fallback = () => {\n const { t } = useTranslation(DECK_PLUGIN);\n\n return (\n <div role='none' className='min-bs-screen is-full flex items-center justify-center p-8'>\n <p\n role='alert'\n className={mx(\n errorText,\n 'border border-error-400/50 rounded-lg flex items-center justify-center p-8 font-normal text-lg',\n )}\n >\n {t('plugin error message')}\n </p>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const NAV_ID = 'NavTree';\nexport const SURFACE_PREFIX = 'surface:';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type KeyboardEvent, memo, useCallback, useLayoutEffect, useMemo, useRef } from 'react';\n\nimport {\n createIntent,\n LayoutAction,\n Surface,\n useCapability,\n useAppGraph,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { debounce } from '@dxos/async';\nimport { useAttendableAttributes } from '@dxos/react-ui-attention';\nimport { StackItem, railGridHorizontal } from '@dxos/react-ui-stack';\nimport { mainIntrinsicSize, mx } from '@dxos/react-ui-theme';\n\nimport { NodePlankHeading, type NodePlankHeadingProps } from './NodePlankHeading';\nimport { PlankContentError, PlankError } from './PlankError';\nimport { PlankLoading } from './PlankLoading';\nimport { DeckCapabilities } from '../../capabilities';\nimport { useNode, useMainSize } from '../../hooks';\nimport { DeckAction, type LayoutMode } from '../../types';\n\nconst UNKNOWN_ID = 'unknown_id';\n\nexport type PlankProps = {\n id?: string;\n part: NodePlankHeadingProps['part'];\n path?: string[];\n order?: number;\n active?: string[];\n layoutMode: LayoutMode;\n};\n\nexport const Plank = memo(({ id = UNKNOWN_ID, part, path, order, active, layoutMode }: PlankProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { deck, popoverAnchorId, scrollIntoView } = useCapability(DeckCapabilities.DeckState);\n const { graph } = useAppGraph();\n const node = useNode(graph, id);\n const rootElement = useRef<HTMLDivElement | null>(null);\n const canResize = layoutMode === 'deck';\n const Root = part === 'solo' ? 'article' : StackItem.Root;\n\n const attendableAttrs = useAttendableAttributes(id);\n const index = active ? active.findIndex((entryId) => entryId === id) : 0;\n const length = active?.length ?? 1;\n const canIncrementStart = active && index !== undefined && index > 0 && length !== undefined && length > 1;\n const canIncrementEnd = active && index !== undefined && index < length - 1 && length !== undefined;\n\n const key = id.split('+')[0];\n const size = deck.plankSizing[key] as number | undefined;\n const setSize = useCallback(\n debounce((nextSize: number) => {\n return dispatch(createIntent(DeckAction.UpdatePlankSize, { id: key, size: nextSize }));\n }, 200),\n [dispatch, key],\n );\n\n // TODO(thure): Tabster’s focus group should handle moving focus to Main, but something is blocking it.\n const handleKeyDown = useCallback((event: KeyboardEvent) => {\n if (event.target === event.currentTarget && event.key === 'Escape') {\n rootElement.current?.closest('main')?.focus();\n }\n }, []);\n\n useLayoutEffect(() => {\n if (scrollIntoView === id) {\n // TODO(wittjosiah): When focused on page load, the focus is always visible.\n // Forcing focus to something smaller than the plank prevents large focus ring in the interim.\n const focusable = rootElement.current?.querySelector('button') || rootElement.current;\n focusable?.focus({ preventScroll: true });\n layoutMode === 'deck' && focusable?.scrollIntoView({ behavior: 'smooth', inline: 'center' });\n // Clear the scroll into view state once it has been actioned.\n void dispatch(createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: undefined }));\n }\n }, [id, scrollIntoView, layoutMode]);\n\n const isSolo = layoutMode === 'solo' && part === 'solo';\n const isAttendable = isSolo || (layoutMode === 'deck' && part === 'deck');\n\n const sizeAttrs = useMainSize();\n\n const data = useMemo(\n () =>\n node && {\n subject: node.data,\n path,\n popoverAnchorId,\n },\n [node, node?.data, path, popoverAnchorId],\n );\n\n // TODO(wittjosiah): Change prop to accept a component.\n const placeholder = useMemo(() => <PlankLoading />, []);\n\n const className = mx(\n 'attention-surface relative',\n isSolo && mainIntrinsicSize,\n isSolo && railGridHorizontal,\n isSolo ? 'grid absolute inset-0' : '!border-separator border-li',\n );\n\n return (\n <Root\n ref={rootElement}\n data-testid='deck.plank'\n tabIndex={0}\n {...(part === 'solo'\n ? ({ ...sizeAttrs, className } as any)\n : {\n item: { id },\n size,\n onSizeChange: setSize,\n classNames: className,\n order,\n role: 'article',\n })}\n {...(isAttendable ? attendableAttrs : {})}\n onKeyDown={handleKeyDown}\n >\n {node ? (\n <>\n <NodePlankHeading\n id={id}\n part={part}\n node={node}\n canIncrementStart={canIncrementStart}\n canIncrementEnd={canIncrementEnd}\n popoverAnchorId={popoverAnchorId}\n />\n <Surface\n key={node.id}\n role='article'\n data={data}\n limit={1}\n fallback={PlankContentError}\n placeholder={placeholder}\n />\n </>\n ) : (\n <PlankError id={id} part={part} />\n )}\n {canResize && <StackItem.ResizeHandle />}\n </Root>\n );\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Surface, useCapability } from '@dxos/app-framework';\nimport { type Label, Main } from '@dxos/react-ui';\n\nimport { DeckCapabilities } from '../../capabilities';\nimport { DECK_PLUGIN } from '../../meta';\nimport { layoutAppliesTopbar, useBreakpoints, useHoistStatusbar } from '../../util';\n\nconst label = ['sidebar title', { ns: DECK_PLUGIN }] satisfies Label;\n\nexport const Sidebar = () => {\n const { popoverAnchorId, activeDeck: current } = useCapability(DeckCapabilities.DeckState);\n const breakpoint = useBreakpoints();\n const topbar = layoutAppliesTopbar(breakpoint);\n const hoistStatusbar = useHoistStatusbar(breakpoint);\n\n const navigationData = useMemo(\n () => ({ popoverAnchorId, topbar, hoistStatusbar, current }),\n [popoverAnchorId, topbar, hoistStatusbar, current],\n );\n\n return (\n <Main.NavigationSidebar\n label={label}\n classNames={[\n 'grid',\n topbar && 'block-start-[calc(env(safe-area-inset-top)+var(--rail-size))]',\n hoistStatusbar && 'block-end-[--statusbar-size]',\n ]}\n >\n <Surface role='navigation' data={navigationData} limit={1} />\n </Main.NavigationSidebar>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { useLandmarkMover } from '@dxos/react-ui';\n\nexport const StatusBar = ({ showHints }: { showHints?: boolean }) => {\n const mover = useLandmarkMover(undefined, '3');\n return (\n <div\n role='contentinfo'\n className='fixed block-end-0 inset-inline-0 bs-[--statusbar-size] border-bs border-separator z-[2] flex text-description'\n {...mover}\n >\n {showHints && <Surface role='hints' limit={1} />}\n <Surface role='status-bar' limit={1} />\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type LayoutAction } from '@dxos/app-framework';\nimport {\n Button,\n Icon,\n Toast as NaturalToast,\n toLocalizedString,\n useTranslation,\n type ToastRootProps,\n} from '@dxos/react-ui';\n\nimport { DECK_PLUGIN } from '../../meta';\n\n// TODO(wittjosiah): Render remaining duration as a progress bar within the toast.\nexport const Toast = ({\n id,\n title,\n description,\n icon,\n duration,\n actionLabel,\n actionAlt,\n closeLabel,\n onAction,\n onOpenChange,\n}: LayoutAction.Toast & Pick<ToastRootProps, 'onOpenChange'>) => {\n const { t } = useTranslation(DECK_PLUGIN);\n\n return (\n <NaturalToast.Root data-testid={id} defaultOpen duration={duration} onOpenChange={onOpenChange}>\n <NaturalToast.Body>\n <NaturalToast.Title classNames='items-center'>\n {icon && <Icon icon={icon} size={5} classNames='inline mr-1' />}\n {title && <span>{toLocalizedString(title, t)}</span>}\n </NaturalToast.Title>\n {description && (\n <NaturalToast.Description>{description && toLocalizedString(description, t)}</NaturalToast.Description>\n )}\n </NaturalToast.Body>\n <NaturalToast.Actions>\n {onAction && actionAlt && actionLabel && (\n <NaturalToast.Action altText={toLocalizedString(actionAlt, t)} asChild>\n <Button data-testid='toast.action' variant='primary' onClick={() => onAction?.()}>\n {toLocalizedString(actionLabel, t)}\n </Button>\n </NaturalToast.Action>\n )}\n {closeLabel && (\n <NaturalToast.Close asChild>\n <Button data-testid='toast.close'>{toLocalizedString(closeLabel, t)}</Button>\n </NaturalToast.Close>\n )}\n </NaturalToast.Actions>\n </NaturalToast.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Banner } from './Banner';\n\nexport const Topbar = () => {\n return <Banner variant='topbar' />;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { DECK_PLUGIN } from '../meta';\nimport {\n type NewPlankPositioning,\n NewPlankPositions,\n type DeckSettingsProps,\n type Overscroll,\n OverscrollOptions,\n} from '../types';\n\nconst isSocket = !!(globalThis as any).__args;\n\nexport const LayoutSettings = ({ settings }: { settings: DeckSettingsProps }) => {\n const { t } = useTranslation(DECK_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('select new plank positioning label')}>\n <Select.Root\n value={settings.newPlankPositioning ?? 'start'}\n onValueChange={(value) => (settings.newPlankPositioning = value as NewPlankPositioning)}\n >\n <Select.TriggerButton placeholder={t('select new plank positioning placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {NewPlankPositions.map((position) => (\n <Select.Option key={position} value={position}>\n {t(`settings new plank position ${position} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings overscroll label')}>\n <Select.Root\n value={settings.overscroll ?? 'none'}\n onValueChange={(value) => (settings.overscroll = value as Overscroll)}\n >\n <Select.TriggerButton placeholder={t('select overscroll placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {OverscrollOptions.map((option) => (\n <Select.Option key={option} value={option}>\n {t(`settings overscroll ${option} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings show hints label')}>\n <Input.Switch checked={settings.showHints} onCheckedChange={(checked) => (settings.showHints = checked)} />\n </DeprecatedFormInput>\n {!isSocket && (\n <DeprecatedFormInput label={t('settings native redirect label')}>\n <Input.Switch\n checked={settings.enableNativeRedirect}\n onCheckedChange={(checked) => (settings.enableNativeRedirect = checked)}\n />\n </DeprecatedFormInput>\n )}\n <DeprecatedFormInput label={t('settings enable statusbar label')}>\n <Input.Switch\n checked={settings.enableStatusbar}\n onCheckedChange={(checked) => (settings.enableStatusbar = checked)}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,YAAW;AAElB,SAASC,eAAe;AAExB,SAASC,UAAU;;;ACJnB,OAAOC,WAAW;AAElB,SAASC,qBAAqB;AAC9B,SAASC,YAAwDC,sBAAsB;AAKhF,IAAMC,sBAAsB,CAAC,EAClCC,YACAC,UAAU,QAAO,MACiC;AAClD,QAAMC,gBAAgBC,cAAcC,iBAAiBC,gBAAgB;AACrE,QAAM,EAAEC,EAAC,IAAKC,eAAeC,WAAAA;AAC7B,SACE,sBAAA,cAACC,YAAAA;IACCR;IACAS,UAAAA;IACAC,MAAK;IACLC,MAAM;IACNC,OAAOP,EAAE,+BAAA;IACTQ,SAAS,MACNZ,cAAca,eAAeb,cAAca,iBAAiB,aAAa,cAAc;IAE1Ff;;AAGN;AAEO,IAAMgB,qBAAqB,MAAA;AAChC,QAAMd,gBAAgBC,cAAcC,iBAAiBC,gBAAgB;AACrE,QAAM,EAAEC,EAAC,IAAKC,eAAeC,WAAAA;AAC7B,SACE,sBAAA,cAACC,YAAAA;IACCR,SAAQ;IACRS,UAAAA;IACAC,MAAK;IACLC,MAAM;IACNC,OAAOP,EAAE,gCAAA;IACTQ,SAAS,MAAOZ,cAAca,eAAe;IAC7Cf,YAAW;;AAGjB;AAEO,IAAMiB,mCAAmC,CAAC,EAAEC,MAAMlB,WAAU,MAAuC;AACxG,QAAME,gBAAgBC,cAAcC,iBAAiBC,gBAAgB;AACrE,QAAM,EAAEC,EAAC,IAAKC,eAAeC,WAAAA;AAC7B,SACE,sBAAA,cAACC,YAAAA;IACCC,UAAAA;IACAI,SAAS,MACNZ,cAAciB,4BACbjB,cAAciB,8BAA8B,aAAa,cAAc;IAE3ElB,SAAQ;IACRY,OAAOP,EAAE,kCAAA;IACTN,YAAY;MAAC;MAAwBA;;IACrCW,MAAK;IACLC,MAAMM,OAAO,IAAI;IACjBE,aAAaF,OAAO,SAASG;;AAGnC;;;ADvDO,IAAMC,SAAS,CAAC,EAAEC,SAASC,WAAU,MAAuD;AACjG,SACE,gBAAAC,OAAA,cAACC,UAAAA;IACCC,WAAWC,GACT,iDACAL,YAAY,YACV,2GACFC,UAAAA;KAGDD,YAAY,YAAY,gBAAAE,OAAA,cAACI,oBAAAA,IAAAA,IAAwB,gBAAAJ,OAAA,cAACK,qBAAAA,IAAAA,GACnD,gBAAAL,OAAA,cAACM,QAAAA;IAAKJ,WAAU;KAAyB,UAAA,GACxCJ,YAAY,YACX,gBAAAE,OAAA,cAACO,OAAAA;IAAIC,MAAK;IAAON,WAAU;KACzB,gBAAAF,OAAA,cAACO,OAAAA;IAAIC,MAAK;IAAON,WAAU;KACzB,gBAAAF,OAAA,cAACS,SAAAA;IAAQD,MAAK;IAAeE,OAAO;QAI1C,gBAAAV,OAAA,cAACM,QAAAA;IAAKE,MAAK;IAAON,WAAU;MAC5B,gBAAAF,OAAA,cAACS,SAAAA;IAAQD,MAAK;IAAaE,OAAO;MAClC,gBAAAV,OAAA,cAACS,SAAAA;IAAQD,MAAK;IAAcE,OAAO;;AAGzC;;;AEhCA,SAASC,iBAAiB;AAC1B,OAAOC,WAASC,eAAAA,cAAaC,aAAAA,YAAWC,WAAAA,UAASC,UAAAA,SAAsBC,YAAAA,WAAUC,YAAAA,iBAAgB;AAEjG,SACEC,gBAAAA,eACAC,gBAAAA,eACAC,WAAAA,WACAC,iBAAAA,gBACAC,uBAAAA,sBACAC,wBACK;AACP,SAASC,6BAA6B;AACtC,SACEC,aACAC,UAAUC,eACVC,QAAAA,OACAC,WAAAA,UAEAC,eACAC,uBACK;AACP,SAASC,OAAOC,cAAcC,+BAA+B;AAC7D,SAASC,8BAA8B;;;ACtBvC,OAAOC,YAAW;AAElB,SAASC,WAAAA,UAASC,mBAAmB;AACrC,SAASC,mBAAmB;;;ACH5B,SAASC,WAAWC,gBAAgB;AAa7B,IAAMC,UAAU,CAAUC,OAAcC,IAAaC,YAAAA;AAC1D,QAAM,CAACC,WAAWC,YAAAA,IAAgBC,SAA8BJ,KAAKD,MAAMM,SAASL,IAAI,KAAA,IAASM,MAAAA;AAEjGC,YAAU,MAAA;AACR,QAAI,CAACP,MAAME,WAAW;AACpBC,mBAAaG,MAAAA;IACf;AAEA,QAAIJ,WAAWF,OAAOA,MAAM,CAACA,IAAI;AAC/B;IACF;AAGA,UAAMQ,QAAQC,sBAAsB,YAAA;AAClC,UAAI;AACF,cAAMC,OAAO,MAAMX,MAAMY,YAAYX,IAAIC,OAAAA;AACzC,YAAIS,MAAM;AACRP,uBAAaO,IAAAA;QACf;MACF,QAAQ;MAER;IACF,CAAA;AAEA,WAAO,MAAME,qBAAqBJ,KAAAA;EACpC,GAAG;IAACT;IAAOC;IAAIC;IAASC,WAAWF;GAAG;AAEtC,SAAOE;AACT;;;ACzCA,SAASW,aAAAA,kBAAiB;AAE1B,SAASC,mBAAmBC,aAAaC,gBAA2B;AAEpE,IAAMC,oBAAoB,OAAOC,SAAAA;AAC/B,QAAMC,QAAQC,SAASF,IAAAA;AACvB,QAAMC,MAAME,OAAOH,MAAM,YAAYI,iBAAAA;AACrC,QAAMH,MAAME,OAAOH,MAAM,YAAYK,WAAAA;AACvC;AAEO,IAAMC,wBAAwB,CAACN,SAAAA;AACpCO,EAAAA,WAAU,MAAA;AACR,QAAIP,MAAM;AACR,YAAMQ,QAAQC,sBAAsB,MAAA;AAClC,aAAKV,kBAAkBC,IAAAA;MACzB,CAAA;AACA,aAAO,MAAMU,qBAAqBF,KAAAA;IACpC;EACF,GAAG;IAACR;GAAK;AACX;;;ACnBA,SAASW,sBAAsB;AAExB,IAAMC,cAAc,MAAA;AACzB,QAAM,EAAEC,wBAAwBC,0BAAyB,IAAKC,eAAe,iBAAA;AAC7E,SAAO;IACL,mCAAmCF;IACnC,iCAAiCC;EACnC;AACF;;;AHAO,IAAME,aAAa,MAAA;AACxB,QAAM,CAACC,EAAAA,IAAMC,YAAAA;AACb,QAAM,EAAEC,MAAK,IAAKC,YAAAA;AAClB,QAAMC,aAAaC,QAAQH,OAAOF,EAAAA;AAClCM,wBAAsBF,UAAAA;AAEtB,SACE,gBAAAG,OAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KAGzB,gBAAAH,OAAA,cAACI,UAAAA;IAAQF,MAAK;IAAiBG,MAAM;MAAEC,SAAST;IAAW;IAAGU,OAAO;;AAG3E;;;AIrBA,OAAOC,UAELC,eAAAA,cACAC,aAAAA,YACAC,WAAAA,UACAC,YAAAA,WAEAC,YAAAA,iBACK;AAEP,SACEC,gBAAAA,eACAC,gBAAAA,eACAC,WAAAA,UACAC,eAAAA,cACAC,iBACAC,iBAAAA,gBACAC,uBAAAA,4BACK;AACP,SACEC,MACAC,kBAAAA,iBACAC,qBAAAA,oBACAC,cAAAA,aACAC,cAAcC,yBAET;AACP,SAASC,eAAAA,oBAAmB;AAC5B,SAASC,YAAY;AACrB,SAASC,kBAAkB;;;AC7B3B,OAAOC,UAASC,aAAAA,YAAWC,YAAAA,iBAAgB;AAG3C,SAASC,kBAAAA,uBAAsB;AAC/B,SAASC,iBAAiBC,MAAAA,WAAU;;;ACJpC,OAAOC,UAASC,UAAUC,MAAMC,aAAaC,aAAAA,YAAWC,eAAe;AAEvE,SAASC,cAAcC,cAAcC,WAAAA,UAASC,eAAAA,cAAaC,2BAA2B;AAEtF,SAASC,QAAAA,OAAMC,SAASC,mBAAmBC,kBAAAA,uBAAsB;AACjE,SAASC,iBAA4C;AACrD,SAASC,mBAAmB;;;ACN5B,OAAOC,UAASC,kBAAkB;AAElC,SACEC,QACAC,aAGAC,MACAC,SACAC,kBAAAA,uBACK;AAsBP,IAAMC,eAAe,CAAC,EAAEC,MAAMC,OAAAA,QAAO,GAAGC,MAAAA,MAAwE;AAC9G,SACE,gBAAAC,OAAA,cAACC,QAAQC,MAAI,MACX,gBAAAF,OAAA,cAACC,QAAQE,SAAO;IAACC,SAAAA;KACf,gBAAAJ,OAAA,cAACK,QAAAA;IAAOC,SAAQ;IAAS,GAAGP;KAC1B,gBAAAC,OAAA,cAACO,QAAAA;IAAKC,WAAU;KAAWV,MAAAA,GAC3B,gBAAAE,OAAA,cAACS,MAAAA;IAAKZ;IAAYa,MAAM;QAG5B,gBAAAV,OAAA,cAACC,QAAQU,QAAM,MACb,gBAAAX,OAAA,cAACC,QAAQW,SAAO;IAACC,MAAK;KAAUf,MAAAA,CAAAA,CAAAA;AAIxC;AAKO,IAAMgB,gBAAgBC,2BAC3B,CACE,EAAEC,SAASV,UAAU,WAAWW,cAAcC,KAAKC,QAAQC,KAAKC,QAAQ,OAAOC,UAAUC,YAAY,GAAGxB,MAAAA,GACxGyB,iBAAAA;AAEA,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,WAAAA;AAC7B,QAAMC,mBAAmBtB,YAAY,kBAAkB,gCAAgC;AAEvF,SACE,gBAAAN,OAAA,cAAC6B,aAAAA;IAAa,GAAG9B;IAAOwB,YAAY;MAAC;MAAeA;;IAAaO,KAAKN;KAWnEN,IAAIa,QACH,gBAAA/B,OAAA,cAACJ,cAAAA;IACCE,OAAOqB,SAASM,EAAE,uBAAA,IAA2BA,EAAE,uBAAA;IAC/CF,YAAYK;IACZZ,SAAS,MAAMA,UAAU,MAAA;IACzBnB,MAAMsB,SAAS,4BAA4B;MAI9C,CAACA,UAAUD,IAAIa,QACd,gBAAA/B,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACJ,cAAAA;IACCE,OAAO2B,EAAE,uBAAA;IACTO,UAAU,CAACd,IAAIe;IACfV,YAAYK;IACZZ,SAAS,MAAMA,UAAU,iBAAA;IACzBnB,MAAK;MAEP,gBAAAG,OAAA,cAACJ,cAAAA;IACCE,OAAO2B,EAAE,qBAAA;IACTO,UAAU,CAACd,IAAIgB;IACfX,YAAYK;IACZZ,SAAS,MAAMA,UAAU,eAAA;IACzBnB,MAAK;OAcVwB,SAAS,CAACF,UACT,gBAAAnB,OAAA,cAACJ,cAAAA;IACCE,OAAO2B,EAAE,GAAG,OAAOJ,UAAU,WAAW,WAAW,OAAA,QAAe;IAClEE,YAAYK;IACZZ,SAAS,MAAMA,UAAU,OAAA;IACzBmB,eAAY;IACZtC,MACEwB,UAAU,iBACN,iCACAA,UAAU,eACR,kCACA;MAIXC,QAAAA;AAGP,CAAA;;;AC9HF,SAASc,MAAAA,WAAU;AAEZ,IAAMC,oBACX;AAEF,IAAMC,sBAAsB;AAErB,IAAMC,2BAA2BC,IAAGF,qBAAqB,gBAAA;AAEzD,IAAMG,wCAAwCD,IAAGF,qBAAqB,cAAA;;;AFgBtE,IAAMI,mBAAmBC,qBAC9B,CAAC,EACCC,IACAC,MACAC,MACAC,mBACAC,iBACAC,iBACAC,SACAC,UAAU,CAAA,EAAE,MACU;AACtB,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,WAAAA;AAC7B,QAAM,EAAEC,MAAK,IAAKC,aAAAA;AAClB,QAAMC,aAAaC,eAAAA;AACnB,QAAMC,OAAOb,MAAMc,YAAYD,QAAQ;AACvC,QAAME,SAAQX,UACVE,EAAE,iBAAA,IACFU,kBAAkBhB,MAAMc,YAAYC,SAAS;IAAC;IAAgC;MAAEE,IAAIT;IAAY;KAAIF,CAAAA;AACxG,QAAM,EAAEY,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,QAAMC,aAAarB,QAAQG,oBAAoB,eAAeK,WAAAA,IAAeR,KAAKF,EAAE,KAAKwB,QAAQC,SAASC;AAE1GC,EAAAA,WAAU,MAAA;AACR,UAAMC,QAAQC,sBAAsB,MAAA;AAElC3B,cAAQS,MAAMJ,QAAQL,IAAAA;IACxB,CAAA;AAEA,WAAO,MAAM4B,qBAAqBF,KAAAA;EACpC,GAAG;IAAC1B;GAAK;AAGT,QAAM6B,eAAe/B,GAAGgC,MAAMC,mBAAAA,EAAqBC,GAAG,CAAA;AACtD,QAAMC,eAAeC,QACnB,OAAO;IACLC,MAAMxB,eAAe,aAAaZ,SAAS,UAAUA,SAAS;IAC9DqC,gBAAgBnC;IAChBoC,cAAcnC;EAChB,IACA;IAACS;IAAYZ;IAAME;IAAmBC;GAAgB;AAGxD,QAAMoC,eAAeJ,QACnB,MAAMlC,QAAQ;IAACK;IAASI,MAAMJ,QAAQL,IAAAA;IAAOuC,OAAO,CAACC,MAAMA,EAAEC,SAAS,CAAA,GACtE;IAACpC;IAASL;IAAMS;GAAM;AAExB,QAAMiC,eAAeC,YAAY,CAACC,WAAAA;AAChC,WAAOA,OAAOC,SAAS,cAAcD,OAAOC,OAAO;MAAE7C,MAAM4C;MAAgBE,QAAQtC;IAAY,CAAA;EACjG,GAAG,CAAA,CAAE;AAEL,QAAMuC,oBAAoBJ,YACxB,CAACK,cAAAA;AACC,QAAIA,cAAc,QAAQ;AACxB,aAAO7B,SAAS8B,aAAaC,WAAWC,QAAQ;QAAEC,MAAMJ;QAAWlD;MAAG,CAAA,CAAA;IACxE,WAAWkD,cAAc,SAAS;AAChC,UAAIjD,SAAS,iBAAiB;AAC5B,eAAOoB,SACL8B,aAAaI,aAAaC,qBAAqB;UAC7CvD,MAAM;UACNwD,SAAS;YAAEC,OAAO;UAAY;QAChC,CAAA,CAAA;MAEJ,OAAO;AACL,eAAOrC,SACL8B,aAAaI,aAAaI,OAAO;UAAE1D,MAAM;UAAQ2D,SAAS;YAAC5D;;UAAKyD,SAAS;YAAEC,OAAO;UAAM;QAAE,CAAA,CAAA;MAE9F;IACF,OAAO;AACL,aAAOrC,SAAS8B,aAAaC,WAAWC,QAAQ;QAAEC,MAAMJ;QAAWlD;MAAG,CAAA,CAAA;IACxE;EACF,GACA;IAACqB;IAAUrB;IAAIC;GAAK;AAGtB,SACE,gBAAA4D,OAAA,cAACC,UAAUC,SAAO;IAChBC,YAAY;MACV;MACA/D,SAAS,SAASgE,oBAAoB;;KAGxC,gBAAAJ,OAAA,cAACtC,YAAAA,MACErB,QAAQsC,eACP,gBAAAqB,OAAA,cAACC,UAAUI,OAAK;IACdnD;IACAoD,SAASlE,SAAS;IAClB8B;IACAqC,cAAc5D,EAAE,oBAAA;IAChBD,SAASiC;IACT6B,UAAUzB;KAEV,gBAAAiB,OAAA,cAACS,UAAAA;IAAQC,MAAK;IAAcxB,MAAM;MAAEa,SAAS1D,KAAK6C;IAAK;QAGzD,gBAAAc,OAAA,cAACC,UAAUU,aAAW,MACpB,gBAAAX,OAAA,cAACY,QAAAA;IAAKC,WAAU;KAAWzD,MAAAA,GAC3B,gBAAA4C,OAAA,cAACc,OAAAA;IAAK5D;IAAY6D,MAAM;QAI9B,gBAAAf,OAAA,cAACgB,aAAAA;IAAYC,MAAM7D;IAAO8D,oBAAAA;KACxB,gBAAAlB,OAAA,cAACC,UAAUkB,cAAY;IACrBjD;IACAoC,SAASlE,SAAS;IACjB,GAAIK,WAAW;MAAE0D,YAAY;IAAmB;KAEhD/C,MAAAA,CAAAA,GAGJf,QAAQD,SAAS,mBAAmB,gBAAA4D,OAAA,cAACS,UAAAA;IAAQC,MAAK;IAAaxB,MAAM;MAAEa,SAAS1D,KAAK6C;IAAK;MAC3F,gBAAAc,OAAA,cAACoB,eAAAA;IACC9C;IACA+C,QAAQjF,SAAS;IACjBkF,SAASlC;IACTmC,OAAOnF,SAAS,kBAAkB,eAAe;;AAIzD,CAAA;;;AG9IF,OAAOoF,YAAW;AAGX,IAAMC,eAAe,MAAA;AAC1B,SAAO,gBAAAC,OAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;;AACpC;;;AJKO,IAAMC,oBAAoB,CAAC,EAAEC,MAAK,MAAqB;AAC5D,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,WAAAA;AAC7B,QAAMC,cAAcJ,OAAOK,SAAAA,KAAc;AACzC,SACE,gBAAAC,OAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,gBAAAH,OAAA,cAACI,KAAAA;IACCF,MAAK;IACLC,WAAWE,IACTC,iBACA,oEACAR,YAAYS,SAAS,OAAO,SAAA;KAG7Bb,QAAQI,cAAcH,EAAE,wBAAA,CAAA,CAAA;AAIjC;AAEO,IAAMa,aAAa,CAAC,EACzBC,IACAC,MACAC,MACAjB,MAAK,MAMN;AACC,QAAM,CAACkB,UAAUC,WAAAA,IAAeC,UAAS,KAAA;AACzCC,EAAAA,WAAU,MAAA;AACRC,eAAW,MAAMH,YAAY,IAAA,GAAO,GAAA;EACtC,GAAG,CAAA,CAAE;AACL,SACE,gBAAAb,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACiB,kBAAAA;IAAiBR;IAAQC;IAAYC;IAAYO,SAAS,CAACN;MAC3DA,WAAW,gBAAAZ,OAAA,cAACP,mBAAAA;IAAkBC;OAAmB,gBAAAM,OAAA,cAACmB,cAAAA,IAAAA,CAAAA;AAGzD;;;ADNA,IAAMC,QAAQ;EAAC;EAA+B;IAAEC,IAAIC;EAAY;;AAEzD,IAAMC,uBAAuB,CAAC,EAAEC,QAAO,MAA6B;AACzE,QAAM,EAAEC,EAAC,IAAKC,gBAAeJ,WAAAA;AAC7B,QAAM,EAAEK,iBAAiBC,SAAQ,IAAKC,qBAAAA;AACtC,QAAMC,SAASC,eAAcC,iBAAiBC,gBAAgB;AAC9D,QAAMC,WAAWC,aAAAA;AACjB,QAAM,EAAEC,MAAK,IAAKC,aAAAA;AAClB,QAAMC,OAAOC,QAAQH,OAAOF,SAAS,CAAA,CAAE;AACvC,QAAMM,aAAaC,eAAAA;AACnB,QAAMC,SAASC,oBAAoBH,UAAAA;AACnC,QAAMI,iBAAiBC,kBAAkBL,UAAAA;AAEzC,QAAMM,SAASC,gBAAgBf,iBAAiBgB,kBAAkB;AAClE,QAAMC,kBAAkBH,OACrBI,OAAO,CAACC,UAAAA;AACP,QAAI,CAACb,QAAQ,CAACa,MAAMD,QAAQ;AAC1B,aAAO;IACT;AAEA,WAAOC,MAAMD,OAAOZ,IAAAA;EACtB,CAAA,EACCc,SAASC,UAAAA;AACZ,QAAMC,gBAAgBL,gBAAgBM,KAAK,CAACJ,UAAUA,MAAMK,OAAOhC,OAAAA,GAAUgC,MAAMP,gBAAgB,CAAA,GAAIO;AACvG,QAAM,CAACC,eAAeC,gBAAAA,IAAoBC,UAASL,aAAAA;AAEnDM,EAAAA,WAAU,MAAA;AACRF,qBAAiBJ,aAAAA;EACnB,GAAG;IAACA;GAAc;AAElB,QAAMO,iBAAiBC,aACrB,CAACC,UAAAA;AACC,UAAMC,YAAYD,MAAME,cAAcC,aAAa,YAAA;AACnD,QAAIF,cAAcV,eAAe;AAC/BxB,aAAOqC,4BAA4BrC,OAAOqC,8BAA8B,aAAa,cAAc;IACrG,OAAO;AACLT,uBAAiBM,SAAAA;AACjBlC,aAAOqC,4BAA4B;AACnC,WAAKvC,SAASwC,cAAaC,cAAaC,qBAAqB;QAAEC,MAAM;QAAiBC,SAASR;MAAU,CAAA,CAAA;IAC3G;EACF,GACA;IAAClC;IAAQwB;IAAe1B;GAAS;AAGnC,QAAM6C,OAAOC,SACX,MACEpC,QAAQ;IACNkB,IAAIlB,KAAKkB;IACTgB,SAASlC,KAAKmC;IACdE,WAAW7C,OAAO8C;IAClBC,iBAAiB/C,OAAO+C;EAC1B,GACF;IAACvC;IAAMR,OAAO+C;GAAgB;AAIhC,SACE,gBAAAC,OAAA,cAACC,KAAKxD,sBAAoB;IACxBH;IACA4D,YAAY;MACVtC,UAAU;MACVE,kBAAkB;;KAGpB,gBAAAkC,OAAA,cAACG,KAAKC,MAAI;IACRC,aAAY;IACZC,iBAAgB;IAChBC,OAAO5B;IACP6B,cAAcpD,SAAS,CAAA;IACvB8C,YAAW;KAEX,gBAAAF,OAAA,cAACS,OAAAA;IACCC,MAAK;IACLC,WAAU;KAEV,gBAAAX,OAAA,cAACG,KAAKS,SAAO;IAACV,YAAW;KACtB/B,gBAAgB0C,IAAI,CAACxC,UACpB,gBAAA2B,OAAA,cAACG,KAAKW,KAAG;IAACC,KAAK1C,MAAMK;IAAI6B,OAAOlC,MAAMK;IAAIsC,SAAAA;KACxC,gBAAAhB,OAAA,cAACiB,aAAAA;IACC3E,OAAO4E,mBAAkB7C,MAAM/B,OAAOK,CAAAA;IACtCwE,MAAM9C,MAAM8C;IACZC,MAAM;IACNC,UAAAA;IACAC,aAAY;IACZC,cAAYlD,MAAMK;IAClB8C,SACEhD,kBAAkBH,MAAMK,KACpB1B,OAAOqC,8BAA8B,aACnC,YACA,YACF;IAENoC,SAAS1C;SAKhB,CAACjB,kBACA,gBAAAkC,OAAA,cAACS,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,gBAAAX,OAAA,cAAC0B,UAAAA;IAAQhB,MAAK;IAAwBiB,OAAO;OAGjD,gBAAA3B,OAAA,cAACS,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,gBAAAX,OAAA,cAAC4B,kCAAAA,IAAAA,CAAAA,CAAAA,GAGJzD,gBAAgB0C,IAAI,CAACxC,UACpB,gBAAA2B,OAAA,cAACG,KAAK0B,UAAQ;IACZd,KAAK1C,MAAMK;IACX6B,OAAOlC,MAAMK;IACbwB,YAAW;IACV,GAAIlD,OAAOqC,8BAA8B,cAAc;MAAEyC,OAAO;IAAO;KAExE,gBAAA9B,OAAA,cAAC+B,2BAAAA;IACC1D;IACAG;IACAmB;IACA7B;;AAOd;AAcA,IAAMkE,aAAa,CAAC,EAAEC,SAAQ,MAAqB;AACjD,SACE,gBAAAjC,OAAA,cAACkC,kBAAkB9B,MAAI,MACrB,gBAAAJ,OAAA,cAACkC,kBAAkBC,UAAQ,MAAEF,QAAAA,GAC7B,gBAAAjC,OAAA,cAACkC,kBAAkBE,WAAS;IAAC/B,aAAY;KACvC,gBAAAL,OAAA,cAACkC,kBAAkBG,OAAK,IAAA,CAAA,CAAA;AAIhC;AAEA,IAAMN,4BAA4B,CAAC,EAAE1D,OAAOG,eAAemB,MAAM7B,eAAc,MAAkC;AAC/G,QAAM,EAAEnB,EAAC,IAAKC,gBAAeJ,WAAAA;AAE7B,MAAI6B,MAAMK,OAAOF,iBAAiB,CAACmB,MAAM;AACvC,WAAO;EACT;AAEA,QAAM2C,UAAUjE,MAAMkE,QAAQC,YAAWR;AAEzC,SACE,gBAAAhC,OAAA,cAAAA,OAAA,UAAA,MACE,gBAAAA,OAAA,cAACyC,MAAAA;IAAG9B,WAAU;KACXO,mBAAkB7C,MAAM/B,OAAOK,CAAAA,CAAAA,GAElC,gBAAAqD,OAAA,cAACsC,SAAAA,MACC,gBAAAtC,OAAA,cAAC0B,UAAAA;IACChB,MAAM,kBAAkBlC,aAAAA;IACxBmB;IACA+C,UAAUC;IACVC,aAAa,gBAAA5C,OAAA,cAAC6C,cAAAA,IAAAA;OAGjB,CAAC/E,kBACA,gBAAAkC,OAAA,cAACS,OAAAA;IACCC,MAAK;IACLC,WAAU;KAEV,gBAAAX,OAAA,cAAC0B,UAAAA;IAAQhB,MAAK;IAAwBiB,OAAO;;AAKvD;;;AMjOA,OAAOmB,YAAW;AAElB,SAASC,WAAAA,gBAAe;AAMjB,IAAMC,eAAe,MAAA;AAC1B,QAAMC,aAAaC,eAAAA;AACnB,QAAMC,SAASC,oBAAoBH,UAAAA;AACnC,SACE,gBAAAI,OAAA,cAACC,OAAAA;IACCC,MAAK;IACLC,WAAU;IACVC,eAAY;KAEZ,gBAAAJ,OAAA,cAACK,UAAAA;IAAQH,MAAK;MACb,CAACJ,UAAU,gBAAAE,OAAA,cAACM,qBAAAA;IAAoBC,SAAQ;IAAUC,YAAYC;;AAGrE;;;ACrBA,OAAOC,aAAW;AAElB,SAASC,WAAAA,UAASC,eAAAA,oBAAmB;AACrC,SAASC,4BAA4B;;;ACHrC,OAAOC,aAAW;AAElB,SAASC,kBAAAA,uBAAsB;AAC/B,SAASC,WAAWC,MAAAA,WAAU;AAIvB,IAAMC,WAAW,MAAA;AACtB,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,WAAAA;AAE7B,SACE,gBAAAC,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,gBAAAH,QAAA,cAACI,KAAAA;IACCF,MAAK;IACLC,WAAWE,IACTC,WACA,gGAAA;KAGDT,EAAE,sBAAA,CAAA,CAAA;AAIX;;;ACtBO,IAAMU,iBAAiB;;;AFQvB,IAAMC,aAAa,CAAC,EAAEC,GAAE,MAAmB;AAChD,QAAM,EAAEC,MAAK,IAAKC,aAAAA;AAClB,QAAMC,iBAAiBC,QAAQH,OAAOD,EAAAA;AAEtC,SACE,gBAAAK,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAWC;KAC1B,gBAAAJ,QAAA,cAACK,UAAAA;IACCH,MAAK;IACLI,OAAO;IACPC,UAAUC;IACVC,MAAM;MACJC,SAASZ,gBAAgBW;MACzBE,WAAWhB,IAAIiB,WAAWC,cAAAA,IAAkBlB,GAAGmB,MAAMD,eAAeE,MAAM,IAAIC;IAChF;;AAIR;;;AG1BA,OAAOC,WAA6BC,QAAAA,OAAMC,eAAAA,cAAaC,iBAAiBC,WAAAA,UAASC,cAAc;AAE/F,SACEC,gBAAAA,eACAC,gBAAAA,eACAC,WAAAA,UACAC,iBAAAA,gBACAC,eAAAA,cACAC,uBAAAA,4BACK;AACP,SAASC,gBAAgB;AACzB,SAASC,+BAA+B;AACxC,SAASC,aAAAA,YAAWC,0BAA0B;AAC9C,SAASC,mBAAmBC,MAAAA,WAAU;AAStC,IAAMC,aAAa;AAWZ,IAAMC,QAAQC,gBAAAA,MAAK,CAAC,EAAEC,KAAKH,YAAYI,MAAMC,MAAMC,OAAOC,QAAQC,WAAU,MAAc;AAC/F,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AACtC,QAAM,EAAEC,MAAMC,iBAAiBC,eAAc,IAAKC,eAAcC,iBAAiBC,SAAS;AAC1F,QAAM,EAAEC,MAAK,IAAKC,aAAAA;AAClB,QAAMC,OAAOC,QAAQH,OAAOf,EAAAA;AAC5B,QAAMmB,cAAcC,OAA8B,IAAA;AAClD,QAAMC,YAAYhB,eAAe;AACjC,QAAMiB,OAAOrB,SAAS,SAAS,YAAYsB,WAAUD;AAErD,QAAME,kBAAkBC,wBAAwBzB,EAAAA;AAChD,QAAM0B,QAAQtB,SAASA,OAAOuB,UAAU,CAACC,YAAYA,YAAY5B,EAAAA,IAAM;AACvE,QAAM6B,SAASzB,QAAQyB,UAAU;AACjC,QAAMC,oBAAoB1B,UAAUsB,UAAUK,UAAaL,QAAQ,KAAKG,WAAWE,UAAaF,SAAS;AACzG,QAAMG,kBAAkB5B,UAAUsB,UAAUK,UAAaL,QAAQG,SAAS,KAAKA,WAAWE;AAE1F,QAAME,MAAMjC,GAAGkC,MAAM,GAAA,EAAK,CAAA;AAC1B,QAAMC,OAAO1B,KAAK2B,YAAYH,GAAAA;AAC9B,QAAMI,UAAUC,aACdC,SAAS,CAACC,aAAAA;AACR,WAAOjC,SAASkC,cAAaC,WAAWC,iBAAiB;MAAE3C,IAAIiC;MAAKE,MAAMK;IAAS,CAAA,CAAA;EACrF,GAAG,GAAA,GACH;IAACjC;IAAU0B;GAAI;AAIjB,QAAMW,gBAAgBN,aAAY,CAACO,UAAAA;AACjC,QAAIA,MAAMC,WAAWD,MAAME,iBAAiBF,MAAMZ,QAAQ,UAAU;AAClEd,kBAAY6B,SAASC,QAAQ,MAAA,GAASC,MAAAA;IACxC;EACF,GAAG,CAAA,CAAE;AAELC,kBAAgB,MAAA;AACd,QAAIxC,mBAAmBX,IAAI;AAGzB,YAAMoD,YAAYjC,YAAY6B,SAASK,cAAc,QAAA,KAAalC,YAAY6B;AAC9EI,iBAAWF,MAAM;QAAEI,eAAe;MAAK,CAAA;AACvCjD,qBAAe,UAAU+C,WAAWzC,eAAe;QAAE4C,UAAU;QAAUC,QAAQ;MAAS,CAAA;AAE1F,WAAKjD,SAASkC,cAAagB,cAAaC,gBAAgB;QAAEzD,MAAM;QAAW0D,SAAS5B;MAAU,CAAA,CAAA;IAChG;EACF,GAAG;IAAC/B;IAAIW;IAAgBN;GAAW;AAEnC,QAAMuD,SAASvD,eAAe,UAAUJ,SAAS;AACjD,QAAM4D,eAAeD,UAAWvD,eAAe,UAAUJ,SAAS;AAElE,QAAM6D,YAAYC,YAAAA;AAElB,QAAMC,OAAOC,SACX,MACEhD,QAAQ;IACN0C,SAAS1C,KAAK+C;IACd9D;IACAQ;EACF,GACF;IAACO;IAAMA,MAAM+C;IAAM9D;IAAMQ;GAAgB;AAI3C,QAAMwD,cAAcD,SAAQ,MAAM,gBAAAE,QAAA,cAACC,cAAAA,IAAAA,GAAiB,CAAA,CAAE;AAEtD,QAAMC,YAAYC,IAChB,8BACAV,UAAUW,mBACVX,UAAUY,oBACVZ,SAAS,0BAA0B,6BAAA;AAGrC,SACE,gBAAAO,QAAA,cAAC7C,MAAAA;IACCmD,KAAKtD;IACLuD,eAAY;IACZC,UAAU;IACT,GAAI1E,SAAS,SACT;MAAE,GAAG6D;MAAWO;IAAU,IAC3B;MACEO,MAAM;QAAE5E;MAAG;MACXmC;MACA0C,cAAcxC;MACdyC,YAAYT;MACZlE;MACA4E,MAAM;IACR;IACH,GAAIlB,eAAerC,kBAAkB,CAAC;IACvCwD,WAAWpC;KAEV3B,OACC,gBAAAkD,QAAA,cAAAA,QAAA,UAAA,MACE,gBAAAA,QAAA,cAACc,kBAAAA;IACCjF;IACAC;IACAgB;IACAa;IACAE;IACAtB;MAEF,gBAAAyD,QAAA,cAACe,UAAAA;IACCjD,KAAKhB,KAAKjB;IACV+E,MAAK;IACLf;IACAmB,OAAO;IACPC,UAAUC;IACVnB;QAIJ,gBAAAC,QAAA,cAACmB,YAAAA;IAAWtF;IAAQC;MAErBoB,aAAa,gBAAA8C,QAAA,cAAC5C,WAAUgE,cAAY,IAAA,CAAA;AAG3C,CAAA;;;AChJA,OAAOC,WAASC,WAAAA,gBAAe;AAE/B,SAASC,WAAAA,UAASC,iBAAAA,sBAAqB;AACvC,SAAqBC,QAAAA,aAAY;AAMjC,IAAMC,SAAQ;EAAC;EAAiB;IAAEC,IAAIC;EAAY;;AAE3C,IAAMC,UAAU,MAAA;AACrB,QAAM,EAAEC,iBAAiBC,YAAYC,QAAO,IAAKC,eAAcC,iBAAiBC,SAAS;AACzF,QAAMC,aAAaC,eAAAA;AACnB,QAAMC,SAASC,oBAAoBH,UAAAA;AACnC,QAAMI,iBAAiBC,kBAAkBL,UAAAA;AAEzC,QAAMM,iBAAiBC,SACrB,OAAO;IAAEb;IAAiBQ;IAAQE;IAAgBR;EAAQ,IAC1D;IAACF;IAAiBQ;IAAQE;IAAgBR;GAAQ;AAGpD,SACE,gBAAAY,QAAA,cAACC,MAAKC,mBAAiB;IACrBpB,OAAOA;IACPqB,YAAY;MACV;MACAT,UAAU;MACVE,kBAAkB;;KAGpB,gBAAAI,QAAA,cAACI,UAAAA;IAAQC,MAAK;IAAaC,MAAMR;IAAgBS,OAAO;;AAG9D;;;AClCA,OAAOC,aAAW;AAElB,SAASC,WAAAA,gBAAe;AACxB,SAASC,wBAAwB;AAE1B,IAAMC,YAAY,CAAC,EAAEC,UAAS,MAA2B;AAC9D,QAAMC,QAAQC,iBAAiBC,QAAW,GAAA;AAC1C,SACE,gBAAAC,QAAA,cAACC,OAAAA;IACCC,MAAK;IACLC,WAAU;IACT,GAAGN;KAEHD,aAAa,gBAAAI,QAAA,cAACI,UAAAA;IAAQF,MAAK;IAAQG,OAAO;MAC3C,gBAAAL,QAAA,cAACI,UAAAA;IAAQF,MAAK;IAAaG,OAAO;;AAGxC;;;ACjBA,OAAOC,aAAW;AAGlB,SACEC,UAAAA,SACAC,QAAAA,OACAC,SAASC,cACTC,qBAAAA,oBACAC,kBAAAA,uBAEK;AAKA,IAAMC,QAAQ,CAAC,EACpBC,IACAC,OACAC,aACAC,MACAC,UACAC,aACAC,WACAC,YACAC,UACAC,aAAY,MAC8C;AAC1D,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,WAAAA;AAE7B,SACE,gBAAAC,QAAA,cAACC,aAAaC,MAAI;IAACC,eAAahB;IAAIiB,aAAAA;IAAYb;IAAoBK;KAClE,gBAAAI,QAAA,cAACC,aAAaI,MAAI,MAChB,gBAAAL,QAAA,cAACC,aAAaK,OAAK;IAACC,YAAW;KAC5BjB,QAAQ,gBAAAU,QAAA,cAACQ,OAAAA;IAAKlB;IAAYmB,MAAM;IAAGF,YAAW;MAC9CnB,SAAS,gBAAAY,QAAA,cAACU,QAAAA,MAAMC,mBAAkBvB,OAAOS,CAAAA,CAAAA,CAAAA,GAE3CR,eACC,gBAAAW,QAAA,cAACC,aAAaW,aAAW,MAAEvB,eAAesB,mBAAkBtB,aAAaQ,CAAAA,CAAAA,CAAAA,GAG7E,gBAAAG,QAAA,cAACC,aAAaY,SAAO,MAClBlB,YAAYF,aAAaD,eACxB,gBAAAQ,QAAA,cAACC,aAAaa,QAAM;IAACC,SAASJ,mBAAkBlB,WAAWI,CAAAA;IAAImB,SAAAA;KAC7D,gBAAAhB,QAAA,cAACiB,SAAAA;IAAOd,eAAY;IAAee,SAAQ;IAAUC,SAAS,MAAMxB,WAAAA;KACjEgB,mBAAkBnB,aAAaK,CAAAA,CAAAA,CAAAA,GAIrCH,cACC,gBAAAM,QAAA,cAACC,aAAamB,OAAK;IAACJ,SAAAA;KAClB,gBAAAhB,QAAA,cAACiB,SAAAA;IAAOd,eAAY;KAAeQ,mBAAkBjB,YAAYG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAM7E;;;ACxDA,OAAOwB,aAAW;AAIX,IAAMC,SAAS,MAAA;AACpB,SAAO,gBAAAC,QAAA,cAACC,QAAAA;IAAOC,SAAQ;;AACzB;;;AnBwCA,IAAMC,iBAAiB,CAAC,EAAEC,MAAK,MAC7BA,QAAQ,IAAI,gBAAAC,QAAA,cAACC,QAAAA;EAAKC,MAAK;EAAYC,WAAU;EAA0BC,OAAO;IAAEC,YAAYN,QAAQ;EAAE;KAAQ;AAEzG,IAAMO,aAAa,CAAC,EAAEC,YAAYC,WAAWC,eAAc,MAAmB;AACnF,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,qBAAAA;AACtC,QAAMC,UAAUC,eAAcC,iBAAiBC,gBAAgB;AAC/D,QAAM,EACJC,cACAC,2BACAC,2BACAC,YACAC,eACAC,kBACAC,YACAC,aACAC,gBACAC,iBACAC,MACAC,OAAM,IACJf;AACJ,QAAM,EAAEgB,QAAQC,YAAYC,MAAMC,YAAW,IAAKL;AAClD,QAAMM,aAAaC,eAAAA;AACnB,QAAMC,SAASC,oBAAoBH,UAAAA;AACnC,QAAMI,iBAAiBC,kBAAkBL,UAAAA;AACzC,QAAMM,gBAAgBC,iBAAAA;AAEtB,QAAMC,gBAAgBC,QAAAA;AACtB,QAAMC,UAAUD,QAAuB,IAAA;AAIvC,QAAM,CAACE,0BAA0BC,2BAAAA,IAA+BC,UAAS,KAAA;AACzEC,EAAAA,WAAU,MAAA;AACRvB,kBAAcwB,WAAW,MAAMH,4BAA4B,IAAA,GAAO,EAAA,IAAMA,4BAA4B,KAAA;EACtG,GAAG;IAACrB;GAAY;AAGhBuB,EAAAA,WAAU,MAAA;AAER,UAAME,WAAWC,UAAU,MAAA;AACzB,YAAMC,YAAYZ,cAAc1B,QAAQuC,kBAAkBC,sBAAsBC,SAAS;AACzF,aAAOH,UAAUI;IACnB,CAAA;AACA,UAAMC,UAAUzB,QAAQF,OAAO,CAAA;AAC/B,QAAIoB,SAASQ,WAAW,KAAKD,SAAS;AAGpCE,eAASC,cAA2B,+BAA+BH,OAAAA,WAAkB,GAAGI,MAAAA;IAC1F;EACF,GAAG,CAAA,CAAE;AAIL,QAAM,CAACC,WAAAA,IAAeC,cAAc,MAAM;IAAEC,KAAK;EAAM,CAAA;AACvD,QAAMC,eAAetB,QAAO,KAAA;AAC5BK,EAAAA,WAAU,MAAA;AACR,QAAI,CAACc,eAAeI,QAAQtC,IAAAA,MAAU,QAAQ;AAE5C,YAAMsB,WAAWC,UAAU,MAAA;AACzB,cAAMC,YAAYZ,cAAc1B,QAAQuC,kBAAkBC,sBAAsBC,SAAS;AACzF,eAAOH,UAAUI;MACnB,CAAA;AAEAS,mBAAaT,UAAU;AACvB,WAAK5C,SACHuD,cAAaC,cAAaC,eAAe;QAAEC,MAAM;QAAQC,SAASrB,SAAS,CAAA;QAAIsB,SAAS;UAAEC,MAAM;QAAO;MAAE,CAAA,CAAA;IAE7G,WAAWX,eAAeI,QAAQtC,IAAAA,MAAU,UAAUqC,aAAaT,SAAS;AAC1E,WAAK5C,SAASuD,cAAaC,cAAaC,eAAe;QAAEC,MAAM;QAAQE,SAAS;UAAEE,QAAQ;QAAK;MAAE,CAAA,CAAA;IACnG;EACF,GAAG;IAACZ;IAAalC;IAAMhB;GAAS;AAKhC,QAAM+D,eAAeC,aAAY,MAAA;AAC/BlC,kBAAcc,UAAU;EAC1B,GAAG,CAAA,CAAE;AAELR,EAAAA,WAAU,MAAA;AACR6B,WAAOC,iBAAiB,UAAUH,YAAAA;AAClC,WAAO,MAAME,OAAOE,oBAAoB,UAAUJ,YAAAA;EACpD,GAAG;IAACA;GAAa;AAEjB,QAAMK,gBAAgBJ,aAAY,MAAA;AAChC,QAAIhC,QAAQY,WAAWd,cAAcc,WAAW,MAAM;AACpDZ,cAAQY,QAAQyB,aAAavC,cAAcc;IAC7C;EACF,GAAG,CAAA,CAAE;AAEL,QAAM0B,aAAahB,QAAQtC,IAAAA;AAC3BuD,kBAAgBD,YAAY,CAACT,SAASA,SAAS,QAAQ,QAAQO,aAAAA;AAK/D,QAAMI,eAAeR,aACnB,CAACS,UAAAA;AACC,QAAI,CAACrD,QAAQqD,MAAMC,kBAAkBD,MAAME,QAAQ;AACjD7C,oBAAcc,UAAW6B,MAAME,OAA0BN;IAC3D;EACF,GACA;IAACjD;GAAK;AAGR,QAAMwD,UAAU,CAACxD,QAAQF,OAAO4B,WAAW;AAE3C,QAAM+B,UAAUC,SAAQ,MAAA;AACtB,QAAI,CAAC1D,QAAQxB,eAAe,aAAa;AACvC,aAAOmF,oBAAoB7D,OAAO4B,MAAM;IAC1C;AACA,WAAO,CAAC;EACV,GAAG;IAAC1B;IAAMxB;IAAYoB;GAAK;AAE3B,QAAMgE,eAAeF,SACnB,MAAM;IACJ;IACAtD,UAAU;IACVE,kBAAkB;KAEpB;IAACF;IAAQE;GAAe;AAG1B,QAAMuD,SAASrE,eAAe,UAAUsE,cAAcC;AAEtD,QAAMC,0BAA0BpB,aAC9B,CAACqB,aAAAA;AACC,QAAIA,YAAYtE,iBAAiB;AAC/Bb,cAAQW,cAAc;IACxB,OAAO;AACLX,cAAQW,cAAc;AACtBX,cAAQa,kBAAkBuE;AAC1BpF,cAAQqF,cAAcD;IACxB;EACF,GACA;IAACpF;GAAQ;AAEX,QAAMsF,qBAAqBxB,aAAY,MAAMoB,wBAAwB,KAAA,GAAQ;IAACA;GAAwB;AAEtG,SACE,gBAAA/F,QAAA,cAACoG,SAAQC,MAAI;IAACC,OAAAA;IAAMC,MAAM,CAAC,EAAE7E,mBAAmBkB;IAA2B4D,cAAcT;KACvF,gBAAA/F,QAAA,cAACyG,YAAAA,IAAAA,GAEA3E,cAAc,gBAAA9B,QAAA,cAAC0G,YAAAA;IAAWC,IAAI5E;MAE9B,CAACD,cACA,gBAAA9B,QAAA,cAAC4G,MAAKP,MAAI;IACRQ,wBAAwBhG,QAAQI;IAChC6F,gCAAgC,CAACC,SAAUlG,QAAQI,eAAe8F;IAClE7F,2BAA2BL,QAAQK;IACnC8F,mCAAmC,CAACD,SAAUlG,QAAQK,4BAA4B6F;KAGlF,gBAAA/G,QAAA,cAACiH,SAAAA,IAAAA,GAGD,gBAAAjH,QAAA,cAACkH,sBAAAA;IAAqB3D,SAASpC;MAG/B,gBAAAnB,QAAA,cAAC4G,MAAKO,SAAO,IAAA,GAGZ5B,WACC,gBAAAvF,QAAA,cAAC4G,MAAKQ,SAAO;IAACC,QAAAA;IAAOC,cAAAA;IAAaC,YAAY5B;KAC5C,gBAAA3F,QAAA,cAACwH,cAAAA,IAAAA,CAAAA,GAKJ,CAACjC,WACA,gBAAAvF,QAAA,cAAC4G,MAAKQ,SAAO;IACXC,QAAAA;IACAE,YAAY5B;IACZ2B,cAAAA;IACAlH,OACE;MACE,0BACEa,iBAAiB,aACb,4BACAA,iBAAiB,cACf,mBACA;MACR,gCACEC,8BAA8B,aAC1B,sCACAA,8BAA8B,cAC5B,qBACA;MACR,+BAA+B,GAAGc,YAAYH,OAAO,CAAA,KAAM,OAAA,KAAY4F,uBAAAA;MACvE,8BAA8B,GAAGzF,YAAYH,QAAQA,OAAO4B,UAAU,KAAK,CAAA,KAAM,OAAA,KAAYgE,uBAAAA;IAC/F;KAGF,gBAAAzH,QAAA,cAAC0H,OAAAA;IACCxH,MAAK;IACLC,WAAW,CAAC4B,OAAO,qCAAqC;IACvD,GAAIA,QAAQ;MAAE4F,OAAO;IAAG;KAExB,CAACxF,UAAU,gBAAAnC,QAAA,cAAC4H,qBAAAA;IAAoBL,YAAYM;MAC5C,CAAC1F,UAAU,gBAAAnC,QAAA,cAAC8H,kCAAAA;IAAiCP,YAAYQ;MAC1D,gBAAA/H,QAAA,cAACgI,OAAAA;IACCC,aAAY;IACZC,MAAK;IACLX,YAAY;MAAC;MAA2CY;;IACxDC,UAAUjD;IACVkD,YAAY,KAAKxG,OAAO4B,UAAU,KAAK;IACvCrD,OAAOoF;IACP8C,KAAK3F;KAEJd,OAAO0G,IAAI,CAACC,SAASzI,UACpB,gBAAAC,QAAA,cAACyI,WAAAA;IAASC,KAAKF;KACb,gBAAAxI,QAAA,cAACF,gBAAAA;IAAeC;MAChB,gBAAAC,QAAA,cAAC2I,OAAAA;IAAMhC,IAAI6B;IAASnE,MAAK;IAAOuE,OAAO7I,QAAQ,IAAI;IAAG8B;IAAgBoD;UAK9E,gBAAAjF,QAAA,cAAC0H,OAAAA;IACCxH,MAAK;IACLC,WAAW4B,OAAO,qCAAqC;IACtD,GAAI,CAACA,QAAQ;MAAE4F,OAAO;IAAG;KAEzB,CAACxF,UAAU,gBAAAnC,QAAA,cAAC4H,qBAAAA;IAAoBL,YAAYM;MAC5C,CAAC1F,UAAU,gBAAAnC,QAAA,cAAC8H,kCAAAA;IAAiCP,YAAYQ;MAC1D,gBAAA/H,QAAA,cAAC6I,aAAaC,UAAQ;IAACC,OAAO;MAAEb,MAAM;MAAWD,aAAa;MAAce,MAAM;IAAK;KACrF,gBAAAhJ,QAAA,cAAC2I,OAAAA;IAAMhC,IAAI5E;IAAMsC,MAAK;IAAOY;SAOpC9C,UAAU,gBAAAnC,QAAA,cAACiJ,QAAAA,IAAAA,GACX5G,kBAAkB,gBAAArC,QAAA,cAACkJ,WAAAA;IAAU1I;OAKlC,gBAAAR,QAAA,cAACoG,SAAQ+C,QAAM,MACb,gBAAAnJ,QAAA,cAACoG,SAAQgB,SAAO;IAACgC,MAAMvI,QAAQqF;IAAamD,iBAAiBlD;KAC3D,gBAAAnG,QAAA,cAACoG,SAAQkD,UAAQ,MACf,gBAAAtJ,QAAA,cAACuJ,WAAAA;IAAQrJ,MAAK;IAAUsJ,MAAM/H;IAAgBgI,OAAO;OAEvD,gBAAAzJ,QAAA,cAACoG,SAAQsD,OAAK,IAAA,CAAA,CAAA,GAOlB,gBAAA1J,QAAA,cAAC4F,OAAOS,MAAI;IACVC,OAAOhF,qBAAqB;IAC5BiF,MAAMnF;IACNoF,cAAc,CAACR,aAAcnF,QAAQO,aAAa4E;KAEjD1E,qBAAqB;;IAEpB,gBAAAtB,QAAA,cAACuJ,WAAAA;MAAQrJ,MAAK;MAASsJ,MAAMnI;MAAeoI,OAAO;MAAGE,UAAUC;MAAmBC,aAAa,gBAAA7J,QAAA,cAAC0H,OAAAA,IAAAA;;MAEjG,gBAAA1H,QAAA,cAAC4F,OAAOuB,SAAO;IAAC2C,YAAYxI;KAC1B,gBAAAtB,QAAA,cAACuJ,WAAAA;IAAQrJ,MAAK;IAASsJ,MAAMnI;IAAeoI,OAAO;IAAGE,UAAUC;QAMrEhI,QAAQ2G,IAAI,CAACwB,UACZ,gBAAA/J,QAAA,cAACgK,OAAAA;IACE,GAAGD;IACJrB,KAAKqB,MAAMpD;IACXH,cAAc,CAACD,SAAAA;AACb,UAAI,CAACA,MAAM;AACT9F,uBAAesJ,MAAMpD,EAAE;MACzB;AAEA,aAAOJ;IACT;;AAKV;;;AoBvUA,OAAO0D,aAAW;AAElB,SAASC,OAAOC,QAAQC,kBAAAA,uBAAsB;AAC9C,SAASC,yBAAyBC,2BAA2B;AAW7D,IAAMC,WAAW,CAAC,CAAEC,WAAmBC;AAEhC,IAAMC,iBAAiB,CAAC,EAAEC,SAAQ,MAAmC;AAC1E,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,WAAAA;AAE7B,SACE,gBAAAC,QAAA,cAACC,yBAAAA,MACC,gBAAAD,QAAA,cAACE,qBAAAA;IAAoBC,OAAON,EAAE,oCAAA;KAC5B,gBAAAG,QAAA,cAACI,OAAOC,MAAI;IACVC,OAAOV,SAASW,uBAAuB;IACvCC,eAAe,CAACF,UAAWV,SAASW,sBAAsBD;KAE1D,gBAAAN,QAAA,cAACI,OAAOK,eAAa;IAACC,aAAab,EAAE,0CAAA;MACrC,gBAAAG,QAAA,cAACI,OAAOO,QAAM,MACZ,gBAAAX,QAAA,cAACI,OAAOQ,SAAO,MACb,gBAAAZ,QAAA,cAACI,OAAOS,UAAQ,MACbC,kBAAkBC,IAAI,CAACC,aACtB,gBAAAhB,QAAA,cAACI,OAAOa,QAAM;IAACC,KAAKF;IAAUV,OAAOU;KAClCnB,EAAE,+BAA+BmB,QAAAA,QAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAQhE,gBAAAhB,QAAA,cAACE,qBAAAA;IAAoBC,OAAON,EAAE,2BAAA;KAC5B,gBAAAG,QAAA,cAACI,OAAOC,MAAI;IACVC,OAAOV,SAASuB,cAAc;IAC9BX,eAAe,CAACF,UAAWV,SAASuB,aAAab;KAEjD,gBAAAN,QAAA,cAACI,OAAOK,eAAa;IAACC,aAAab,EAAE,+BAAA;MACrC,gBAAAG,QAAA,cAACI,OAAOO,QAAM,MACZ,gBAAAX,QAAA,cAACI,OAAOQ,SAAO,MACb,gBAAAZ,QAAA,cAACI,OAAOS,UAAQ,MACbO,kBAAkBL,IAAI,CAACM,WACtB,gBAAArB,QAAA,cAACI,OAAOa,QAAM;IAACC,KAAKG;IAAQf,OAAOe;KAChCxB,EAAE,uBAAuBwB,MAAAA,QAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAQtD,gBAAArB,QAAA,cAACE,qBAAAA;IAAoBC,OAAON,EAAE,2BAAA;KAC5B,gBAAAG,QAAA,cAACsB,MAAMC,QAAM;IAACC,SAAS5B,SAAS6B;IAAWC,iBAAiB,CAACF,YAAa5B,SAAS6B,YAAYD;OAEhG,CAAChC,YACA,gBAAAQ,QAAA,cAACE,qBAAAA;IAAoBC,OAAON,EAAE,gCAAA;KAC5B,gBAAAG,QAAA,cAACsB,MAAMC,QAAM;IACXC,SAAS5B,SAAS+B;IAClBD,iBAAiB,CAACF,YAAa5B,SAAS+B,uBAAuBH;OAIrE,gBAAAxB,QAAA,cAACE,qBAAAA;IAAoBC,OAAON,EAAE,iCAAA;KAC5B,gBAAAG,QAAA,cAACsB,MAAMC,QAAM;IACXC,SAAS5B,SAASgC;IAClBF,iBAAiB,CAACF,YAAa5B,SAASgC,kBAAkBJ;;AAKpE;",
|
|
6
|
+
"names": ["React", "Surface", "mx", "React", "useCapability", "IconButton", "useTranslation", "ToggleSidebarButton", "classNames", "variant", "layoutContext", "useCapability", "DeckCapabilities", "MutableDeckState", "t", "useTranslation", "DECK_PLUGIN", "IconButton", "iconOnly", "icon", "size", "label", "onClick", "sidebarState", "CloseSidebarButton", "ToggleComplementarySidebarButton", "inR0", "complementarySidebarState", "tooltipSide", "undefined", "Banner", "variant", "classNames", "React", "header", "className", "mx", "CloseSidebarButton", "ToggleSidebarButton", "span", "div", "role", "Surface", "limit", "untracked", "React", "useCallback", "useEffect", "useMemo", "useRef", "Fragment", "useState", "LayoutAction", "createIntent", "Surface", "useCapability", "useIntentDispatcher", "usePluginManager", "AttentionCapabilities", "AlertDialog", "Dialog", "NaturalDialog", "Main", "Popover", "useMediaQuery", "useOnTransition", "Stack", "StackContext", "DEFAULT_HORIZONTAL_SIZE", "mainPaddingTransitions", "React", "Surface", "useAppGraph", "useAttended", "useEffect", "useState", "useNode", "graph", "id", "timeout", "nodeState", "setNodeState", "useState", "findNode", "undefined", "useEffect", "frame", "requestAnimationFrame", "node", "waitForNode", "cancelAnimationFrame", "useEffect", "ACTION_GROUP_TYPE", "ACTION_TYPE", "getGraph", "expandNodeActions", "node", "graph", "getGraph", "expand", "ACTION_GROUP_TYPE", "ACTION_TYPE", "useNodeActionExpander", "useEffect", "frame", "requestAnimationFrame", "cancelAnimationFrame", "useMainContext", "useMainSize", "navigationSidebarState", "complementarySidebarState", "useMainContext", "ActiveNode", "id", "useAttended", "graph", "useAppGraph", "activeNode", "useNode", "useNodeActionExpander", "React", "div", "role", "className", "Surface", "data", "subject", "limit", "React", "useCallback", "useEffect", "useMemo", "useState", "Fragment", "createIntent", "LayoutAction", "Surface", "useAppGraph", "useCapabilities", "useCapability", "useIntentDispatcher", "Main", "useTranslation", "toLocalizedString", "IconButton", "ScrollArea", "NaturalScrollArea", "useAttended", "Tabs", "byPosition", "React", "useEffect", "useState", "useTranslation", "descriptionText", "mx", "React", "Fragment", "memo", "useCallback", "useEffect", "useMemo", "createIntent", "LayoutAction", "Surface", "useAppGraph", "useIntentDispatcher", "Icon", "Popover", "toLocalizedString", "useTranslation", "StackItem", "TextTooltip", "React", "forwardRef", "Button", "ButtonGroup", "Icon", "Tooltip", "useTranslation", "PlankControl", "icon", "label", "props", "React", "Tooltip", "Root", "Trigger", "asChild", "Button", "variant", "span", "className", "Icon", "size", "Portal", "Content", "side", "PlankControls", "forwardRef", "onClick", "capabilities", "can", "isSolo", "pin", "close", "children", "classNames", "forwardedRef", "t", "useTranslation", "DECK_PLUGIN", "buttonClassNames", "ButtonGroup", "ref", "solo", "disabled", "incrementStart", "incrementEnd", "data-testid", "mx", "soloInlinePadding", "sidebarToggleStyles", "fixedSidebarToggleStyles", "mx", "fixedComplementarySidebarToggleStyles", "NodePlankHeading", "memo", "id", "part", "node", "canIncrementStart", "canIncrementEnd", "popoverAnchorId", "pending", "actions", "t", "useTranslation", "DECK_PLUGIN", "graph", "useAppGraph", "breakpoint", "useBreakpoints", "icon", "properties", "label", "toLocalizedString", "ns", "dispatchPromise", "dispatch", "useIntentDispatcher", "ActionRoot", "Popover", "Anchor", "Fragment", "useEffect", "frame", "requestAnimationFrame", "cancelAnimationFrame", "attendableId", "split", "SLUG_PATH_SEPARATOR", "at", "capabilities", "useMemo", "solo", "incrementStart", "incrementEnd", "sigilActions", "filter", "a", "length", "handleAction", "useCallback", "action", "data", "caller", "handlePlankAction", "eventType", "createIntent", "DeckAction", "Adjust", "type", "LayoutAction", "UpdateComplementary", "options", "state", "Close", "subject", "React", "StackItem", "Heading", "classNames", "soloInlinePadding", "Sigil", "related", "triggerLabel", "onAction", "Surface", "role", "SigilButton", "span", "className", "Icon", "size", "TextTooltip", "text", "onlyWhenTruncating", "HeadingLabel", "PlankControls", "isSolo", "onClick", "close", "React", "PlankLoading", "React", "div", "role", "className", "PlankContentError", "error", "t", "useTranslation", "DECK_PLUGIN", "errorString", "toString", "React", "div", "role", "className", "p", "mx", "descriptionText", "length", "PlankError", "id", "part", "node", "timedOut", "setTimedOut", "useState", "useEffect", "setTimeout", "NodePlankHeading", "pending", "PlankLoading", "label", "ns", "DECK_PLUGIN", "ComplementarySidebar", "current", "t", "useTranslation", "dispatchPromise", "dispatch", "useIntentDispatcher", "layout", "useCapability", "DeckCapabilities", "MutableDeckState", "attended", "useAttended", "graph", "useAppGraph", "node", "useNode", "breakpoint", "useBreakpoints", "topbar", "layoutAppliesTopbar", "hoistStatusbar", "useHoistStatusbar", "panels", "useCapabilities", "ComplementaryPanel", "availablePanels", "filter", "panel", "toSorted", "byPosition", "activePanelId", "find", "id", "internalValue", "setInternalValue", "useState", "useEffect", "handleTabClick", "useCallback", "event", "nextValue", "currentTarget", "getAttribute", "complementarySidebarState", "createIntent", "LayoutAction", "UpdateComplementary", "part", "subject", "data", "useMemo", "workspace", "activeDeck", "popoverAnchorId", "React", "Main", "classNames", "Tabs", "Root", "orientation", "verticalVariant", "value", "attendableId", "div", "role", "className", "Tablist", "map", "Tab", "key", "asChild", "IconButton", "toLocalizedString", "icon", "size", "iconOnly", "tooltipSide", "data-value", "variant", "onClick", "Surface", "limit", "ToggleComplementarySidebarButton", "Tabpanel", "inert", "ComplementarySidebarPanel", "ScrollArea", "children", "NaturalScrollArea", "Viewport", "Scrollbar", "Thumb", "Wrapper", "fixed", "Fragment", "h2", "fallback", "PlankContentError", "placeholder", "PlankLoading", "React", "Surface", "ContentEmpty", "breakpoint", "useBreakpoints", "topbar", "layoutAppliesTopbar", "React", "div", "role", "className", "data-testid", "Surface", "ToggleSidebarButton", "variant", "classNames", "fixedSidebarToggleStyles", "React", "Surface", "useAppGraph", "fixedInsetFlexLayout", "React", "useTranslation", "errorText", "mx", "Fallback", "t", "useTranslation", "DECK_PLUGIN", "React", "div", "role", "className", "p", "mx", "errorText", "SURFACE_PREFIX", "Fullscreen", "id", "graph", "useAppGraph", "fullScreenNode", "useNode", "React", "div", "role", "className", "fixedInsetFlexLayout", "Surface", "limit", "fallback", "Fallback", "data", "subject", "component", "startsWith", "SURFACE_PREFIX", "slice", "length", "undefined", "React", "memo", "useCallback", "useLayoutEffect", "useMemo", "useRef", "createIntent", "LayoutAction", "Surface", "useCapability", "useAppGraph", "useIntentDispatcher", "debounce", "useAttendableAttributes", "StackItem", "railGridHorizontal", "mainIntrinsicSize", "mx", "UNKNOWN_ID", "Plank", "memo", "id", "part", "path", "order", "active", "layoutMode", "dispatchPromise", "dispatch", "useIntentDispatcher", "deck", "popoverAnchorId", "scrollIntoView", "useCapability", "DeckCapabilities", "DeckState", "graph", "useAppGraph", "node", "useNode", "rootElement", "useRef", "canResize", "Root", "StackItem", "attendableAttrs", "useAttendableAttributes", "index", "findIndex", "entryId", "length", "canIncrementStart", "undefined", "canIncrementEnd", "key", "split", "size", "plankSizing", "setSize", "useCallback", "debounce", "nextSize", "createIntent", "DeckAction", "UpdatePlankSize", "handleKeyDown", "event", "target", "currentTarget", "current", "closest", "focus", "useLayoutEffect", "focusable", "querySelector", "preventScroll", "behavior", "inline", "LayoutAction", "ScrollIntoView", "subject", "isSolo", "isAttendable", "sizeAttrs", "useMainSize", "data", "useMemo", "placeholder", "React", "PlankLoading", "className", "mx", "mainIntrinsicSize", "railGridHorizontal", "ref", "data-testid", "tabIndex", "item", "onSizeChange", "classNames", "role", "onKeyDown", "NodePlankHeading", "Surface", "limit", "fallback", "PlankContentError", "PlankError", "ResizeHandle", "React", "useMemo", "Surface", "useCapability", "Main", "label", "ns", "DECK_PLUGIN", "Sidebar", "popoverAnchorId", "activeDeck", "current", "useCapability", "DeckCapabilities", "DeckState", "breakpoint", "useBreakpoints", "topbar", "layoutAppliesTopbar", "hoistStatusbar", "useHoistStatusbar", "navigationData", "useMemo", "React", "Main", "NavigationSidebar", "classNames", "Surface", "role", "data", "limit", "React", "Surface", "useLandmarkMover", "StatusBar", "showHints", "mover", "useLandmarkMover", "undefined", "React", "div", "role", "className", "Surface", "limit", "React", "Button", "Icon", "Toast", "NaturalToast", "toLocalizedString", "useTranslation", "Toast", "id", "title", "description", "icon", "duration", "actionLabel", "actionAlt", "closeLabel", "onAction", "onOpenChange", "t", "useTranslation", "DECK_PLUGIN", "React", "NaturalToast", "Root", "data-testid", "defaultOpen", "Body", "Title", "classNames", "Icon", "size", "span", "toLocalizedString", "Description", "Actions", "Action", "altText", "asChild", "Button", "variant", "onClick", "Close", "React", "Topbar", "React", "Banner", "variant", "PlankSeparator", "index", "React", "span", "role", "className", "style", "gridColumn", "DeckLayout", "overscroll", "showHints", "onDismissToast", "dispatchPromise", "dispatch", "useIntentDispatcher", "context", "useCapability", "DeckCapabilities", "MutableDeckState", "sidebarState", "complementarySidebarState", "complementarySidebarPanel", "dialogOpen", "dialogContent", "dialogBlockAlign", "dialogType", "popoverOpen", "popoverContent", "popoverAnchorId", "deck", "toasts", "active", "fullscreen", "solo", "plankSizing", "breakpoint", "useBreakpoints", "topbar", "layoutAppliesTopbar", "hoistStatusbar", "useHoistStatusbar", "pluginManager", "usePluginManager", "scrollLeftRef", "useRef", "deckRef", "delayedPopoverVisibility", "setDelayedPopoverVisibility", "useState", "useEffect", "setTimeout", "attended", "untracked", "attention", "requestCapability", "AttentionCapabilities", "Attention", "current", "firstId", "length", "document", "querySelector", "focus", "isNotMobile", "useMediaQuery", "ssr", "shouldRevert", "getMode", "createIntent", "LayoutAction", "SetLayoutMode", "part", "subject", "options", "mode", "revert", "handleResize", "useCallback", "window", "addEventListener", "removeEventListener", "restoreScroll", "scrollLeft", "layoutMode", "useOnTransition", "handleScroll", "event", "currentTarget", "target", "isEmpty", "padding", "useMemo", "calculateOverscroll", "mainPosition", "Dialog", "AlertDialog", "NaturalDialog", "handlePopoverOpenChange", "nextOpen", "undefined", "popoverSide", "handlePopoverClose", "Popover", "Root", "modal", "open", "onOpenChange", "ActiveNode", "Fullscreen", "id", "Main", "navigationSidebarState", "onNavigationSidebarStateChange", "next", "onComplementarySidebarStateChange", "Sidebar", "ComplementarySidebar", "Overlay", "Content", "bounce", "handlesFocus", "classNames", "ContentEmpty", "DEFAULT_HORIZONTAL_SIZE", "div", "inert", "ToggleSidebarButton", "fixedSidebarToggleStyles", "ToggleComplementarySidebarButton", "fixedComplementarySidebarToggleStyles", "Stack", "orientation", "size", "mainPaddingTransitions", "onScroll", "itemsCount", "ref", "map", "entryId", "Fragment", "key", "Plank", "order", "StackContext", "Provider", "value", "rail", "Topbar", "StatusBar", "Portal", "side", "onEscapeKeyDown", "Viewport", "Surface", "data", "limit", "Arrow", "fallback", "PlankContentError", "placeholder", "blockAlign", "toast", "Toast", "React", "Input", "Select", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "isSocket", "globalThis", "__args", "LayoutSettings", "settings", "t", "useTranslation", "DECK_PLUGIN", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Select", "Root", "value", "newPlankPositioning", "onValueChange", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "NewPlankPositions", "map", "position", "Option", "key", "overscroll", "OverscrollOptions", "option", "Input", "Switch", "checked", "showHints", "onCheckedChange", "enableNativeRedirect", "enableStatusbar"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-deck/src/meta.ts":{"bytes":1063,"imports":[],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/capabilities.ts":{"bytes":2143,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/app-graph-builder.ts":{"bytes":16990,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/check-app-scheme.ts":{"bytes":5005,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/layout.ts":{"bytes":8435,"imports":[{"path":"immer","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/types.ts":{"bytes":16244,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/util/overscroll.ts":{"bytes":17548,"imports":[],"format":"esm"},"packages/plugins/plugin-deck/src/util/set-active.ts":{"bytes":5694,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/util/useBreakpoints.ts":{"bytes":1327,"imports":[{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/util/layoutAppliesTopbar.ts":{"bytes":1031,"imports":[],"format":"esm"},"packages/plugins/plugin-deck/src/util/useHoistStatusbar.ts":{"bytes":2744,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/util/index.ts":{"bytes":939,"imports":[{"path":"packages/plugins/plugin-deck/src/util/overscroll.ts","kind":"import-statement","original":"./overscroll"},{"path":"packages/plugins/plugin-deck/src/util/set-active.ts","kind":"import-statement","original":"./set-active"},{"path":"packages/plugins/plugin-deck/src/util/useBreakpoints.ts","kind":"import-statement","original":"./useBreakpoints"},{"path":"packages/plugins/plugin-deck/src/util/layoutAppliesTopbar.ts","kind":"import-statement","original":"./layoutAppliesTopbar"},{"path":"packages/plugins/plugin-deck/src/util/useHoistStatusbar.ts","kind":"import-statement","original":"./useHoistStatusbar"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts":{"bytes":57388,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/layout.ts","kind":"import-statement","original":"../layout"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/constants.ts":{"bytes":729,"imports":[],"format":"esm"},"packages/plugins/plugin-deck/src/hooks/useNode.ts":{"bytes":4476,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/hooks/useNodeActionExpander.ts":{"bytes":2645,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/hooks/useMainSize.ts":{"bytes":1556,"imports":[{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/hooks/index.ts":{"bytes":725,"imports":[{"path":"packages/plugins/plugin-deck/src/hooks/useNode.ts","kind":"import-statement","original":"./useNode"},{"path":"packages/plugins/plugin-deck/src/hooks/useNodeActionExpander.ts","kind":"import-statement","original":"./useNodeActionExpander"},{"path":"packages/plugins/plugin-deck/src/hooks/useMainSize.ts","kind":"import-statement","original":"./useMainSize"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/ActiveNode.tsx":{"bytes":3045,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankControls.tsx":{"bytes":11447,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/fragments.ts":{"bytes":1900,"imports":[{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/NodePlankHeading.tsx":{"bytes":18210,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-text-tooltip","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankControls.tsx","kind":"import-statement","original":"./PlankControls"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../../types"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"packages/plugins/plugin-deck/src/components/fragments.ts","kind":"import-statement","original":"../fragments"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx":{"bytes":1262,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx":{"bytes":5343,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/NodePlankHeading.tsx","kind":"import-statement","original":"./NodePlankHeading"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx","kind":"import-statement","original":"./PlankLoading"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx":{"bytes":7385,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/ComplementarySidebar.tsx":{"bytes":24696,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-tabs","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx","kind":"import-statement","original":"./PlankError"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx","kind":"import-statement","original":"./PlankLoading"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx","kind":"import-statement","original":"./SidebarButton"},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/ContentEmpty.tsx":{"bytes":2988,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx","kind":"import-statement","original":"./SidebarButton"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"packages/plugins/plugin-deck/src/components/fragments.ts","kind":"import-statement","original":"../fragments"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Fallback.tsx":{"bytes":2488,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Fullscreen.tsx":{"bytes":3315,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Fallback.tsx","kind":"import-statement","original":"./Fallback"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/constants.ts","kind":"import-statement","original":"./constants"},{"path":"packages/plugins/plugin-deck/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Plank.tsx":{"bytes":17844,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/NodePlankHeading.tsx","kind":"import-statement","original":"./NodePlankHeading"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx","kind":"import-statement","original":"./PlankError"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx","kind":"import-statement","original":"./PlankLoading"},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../../types"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Sidebar.tsx":{"bytes":4850,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/StatusBar.tsx":{"bytes":2467,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Toast.tsx":{"bytes":6420,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Banner.tsx":{"bytes":4616,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx","kind":"import-statement","original":"./SidebarButton"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Topbar.tsx":{"bytes":1014,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Banner.tsx","kind":"import-statement","original":"./Banner"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/DeckLayout.tsx":{"bytes":41702,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/ActiveNode.tsx","kind":"import-statement","original":"./ActiveNode"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/ComplementarySidebar.tsx","kind":"import-statement","original":"./ComplementarySidebar"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/ContentEmpty.tsx","kind":"import-statement","original":"./ContentEmpty"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Fullscreen.tsx","kind":"import-statement","original":"./Fullscreen"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Plank.tsx","kind":"import-statement","original":"./Plank"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx","kind":"import-statement","original":"./PlankError"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Sidebar.tsx","kind":"import-statement","original":"./Sidebar"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx","kind":"import-statement","original":"./SidebarButton"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/StatusBar.tsx","kind":"import-statement","original":"./StatusBar"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Toast.tsx","kind":"import-statement","original":"./Toast"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Topbar.tsx","kind":"import-statement","original":"./Topbar"},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../../types"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"packages/plugins/plugin-deck/src/components/fragments.ts","kind":"import-statement","original":"../fragments"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/index.ts":{"bytes":666,"imports":[{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/constants.ts","kind":"import-statement","original":"./constants"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/DeckLayout.tsx","kind":"import-statement","original":"./DeckLayout"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/LayoutSettings.tsx":{"bytes":10191,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/index.ts":{"bytes":623,"imports":[{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/index.ts","kind":"import-statement","original":"./DeckLayout"},{"path":"packages/plugins/plugin-deck/src/components/LayoutSettings.tsx","kind":"import-statement","original":"./LayoutSettings"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/react-root.tsx":{"bytes":5427,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/react-surface.tsx":{"bytes":3926,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Banner.tsx","kind":"import-statement","original":"../components/DeckLayout/Banner"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/settings.ts":{"bytes":2495,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/state.ts":{"bytes":12810,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/tools.ts":{"bytes":6939,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/url-handler.ts":{"bytes":9241,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/core","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/index.ts":{"bytes":2827,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"packages/plugins/plugin-deck/src/capabilities/check-app-scheme.ts","kind":"dynamic-import","original":"./check-app-scheme"},{"path":"packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-deck/src/capabilities/react-root.tsx","kind":"dynamic-import","original":"./react-root"},{"path":"packages/plugins/plugin-deck/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"packages/plugins/plugin-deck/src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"packages/plugins/plugin-deck/src/capabilities/state.ts","kind":"dynamic-import","original":"./state"},{"path":"packages/plugins/plugin-deck/src/capabilities/tools.ts","kind":"dynamic-import","original":"./tools"},{"path":"packages/plugins/plugin-deck/src/capabilities/url-handler.ts","kind":"dynamic-import","original":"./url-handler"}],"format":"esm"},"packages/plugins/plugin-deck/src/events.ts":{"bytes":1604,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/translations.ts":{"bytes":8351,"imports":[{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/DeckPlugin.ts":{"bytes":10535,"imports":[{"path":"immer","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-deck/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-deck/src/index.ts":{"bytes":920,"imports":[{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-deck/src/DeckPlugin.ts","kind":"import-statement","original":"./DeckPlugin"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-deck/dist/lib/browser/state-2MOTLKVR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6383},"packages/plugins/plugin-deck/dist/lib/browser/state-2MOTLKVR.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/state.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/state.ts":{"bytesInOutput":3133}},"bytes":3438},"packages/plugins/plugin-deck/dist/lib/browser/tools-64LXGLYR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3319},"packages/plugins/plugin-deck/dist/lib/browser/tools-64LXGLYR.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/tools.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/tools.ts":{"bytesInOutput":1832}},"bytes":2021},"packages/plugins/plugin-deck/dist/lib/browser/url-handler-MVHTKUYA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4614},"packages/plugins/plugin-deck/dist/lib/browser/url-handler-MVHTKUYA.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/core","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/url-handler.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/url-handler.ts":{"bytesInOutput":2059}},"bytes":2309},"packages/plugins/plugin-deck/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9130},"packages/plugins/plugin-deck/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-ATPSUXXK.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"immer","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["DECK_PLUGIN","DeckCapabilities","DeckEvents","DeckPlugin","meta"],"entryPoint":"packages/plugins/plugin-deck/src/index.ts","inputs":{"packages/plugins/plugin-deck/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-deck/src/events.ts":{"bytesInOutput":317},"packages/plugins/plugin-deck/src/DeckPlugin.ts":{"bytesInOutput":2123},"packages/plugins/plugin-deck/src/translations.ts":{"bytesInOutput":2712}},"bytes":5773},"packages/plugins/plugin-deck/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-deck/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"}],"exports":["DECK_ACTION","Deck","DeckAction","DeckSettingsSchema","DeckState","NewPlankPositions","OverscrollOptions","PlankSizing","SLUG_PATH_SEPARATOR","getMode","isLayoutMode"],"entryPoint":"packages/plugins/plugin-deck/src/types.ts","inputs":{},"bytes":474},"packages/plugins/plugin-deck/dist/lib/browser/app-graph-builder-IYHAGFA3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7703},"packages/plugins/plugin-deck/dist/lib/browser/app-graph-builder-IYHAGFA3.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/app-graph-builder.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/app-graph-builder.ts":{"bytesInOutput":4098}},"bytes":4389},"packages/plugins/plugin-deck/dist/lib/browser/check-app-scheme-S3EYUPMF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2646},"packages/plugins/plugin-deck/dist/lib/browser/check-app-scheme-S3EYUPMF.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/check-app-scheme.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/check-app-scheme.ts":{"bytesInOutput":918}},"bytes":1147},"packages/plugins/plugin-deck/dist/lib/browser/intent-resolver-P5BVUQKU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":30869},"packages/plugins/plugin-deck/dist/lib/browser/intent-resolver-P5BVUQKU.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"immer","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts":{"bytesInOutput":14158},"packages/plugins/plugin-deck/src/layout.ts":{"bytesInOutput":1769}},"bytes":16460},"packages/plugins/plugin-deck/dist/lib/browser/react-root-ZQCTDM4Y.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2700},"packages/plugins/plugin-deck/dist/lib/browser/react-root-ZQCTDM4Y.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-63K74E3J.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-ATPSUXXK.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/react-root.tsx","inputs":{"packages/plugins/plugin-deck/src/capabilities/react-root.tsx":{"bytesInOutput":987}},"bytes":1404},"packages/plugins/plugin-deck/dist/lib/browser/react-surface-RG3PVPY3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1919},"packages/plugins/plugin-deck/dist/lib/browser/react-surface-RG3PVPY3.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-63K74E3J.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-ATPSUXXK.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-deck/src/capabilities/react-surface.tsx":{"bytesInOutput":764}},"bytes":1176},"packages/plugins/plugin-deck/dist/lib/browser/chunk-63K74E3J.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":92455},"packages/plugins/plugin-deck/dist/lib/browser/chunk-63K74E3J.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-tabs","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-text-tooltip","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["Banner","DeckLayout","LayoutSettings"],"inputs":{"packages/plugins/plugin-deck/src/components/DeckLayout/Banner.tsx":{"bytesInOutput":1371},"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx":{"bytesInOutput":1848},"packages/plugins/plugin-deck/src/components/DeckLayout/DeckLayout.tsx":{"bytesInOutput":10021},"packages/plugins/plugin-deck/src/components/DeckLayout/ActiveNode.tsx":{"bytesInOutput":572},"packages/plugins/plugin-deck/src/hooks/useNode.ts":{"bytesInOutput":662},"packages/plugins/plugin-deck/src/hooks/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-deck/src/hooks/useNodeActionExpander.ts":{"bytesInOutput":571},"packages/plugins/plugin-deck/src/hooks/useMainSize.ts":{"bytesInOutput":319},"packages/plugins/plugin-deck/src/components/DeckLayout/ComplementarySidebar.tsx":{"bytesInOutput":6572},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx":{"bytesInOutput":1281},"packages/plugins/plugin-deck/src/components/DeckLayout/NodePlankHeading.tsx":{"bytesInOutput":4389},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankControls.tsx":{"bytesInOutput":2553},"packages/plugins/plugin-deck/src/components/fragments.ts":{"bytesInOutput":437},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx":{"bytesInOutput":196},"packages/plugins/plugin-deck/src/components/DeckLayout/ContentEmpty.tsx":{"bytesInOutput":620},"packages/plugins/plugin-deck/src/components/DeckLayout/Fullscreen.tsx":{"bytesInOutput":667},"packages/plugins/plugin-deck/src/components/DeckLayout/Fallback.tsx":{"bytesInOutput":611},"packages/plugins/plugin-deck/src/components/DeckLayout/constants.ts":{"bytesInOutput":33},"packages/plugins/plugin-deck/src/components/DeckLayout/Plank.tsx":{"bytesInOutput":4074},"packages/plugins/plugin-deck/src/components/DeckLayout/Sidebar.tsx":{"bytesInOutput":1103},"packages/plugins/plugin-deck/src/components/DeckLayout/StatusBar.tsx":{"bytesInOutput":648},"packages/plugins/plugin-deck/src/components/DeckLayout/Toast.tsx":{"bytesInOutput":1663},"packages/plugins/plugin-deck/src/components/DeckLayout/Topbar.tsx":{"bytesInOutput":138},"packages/plugins/plugin-deck/src/components/LayoutSettings.tsx":{"bytesInOutput":2797},"packages/plugins/plugin-deck/src/components/DeckLayout/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-deck/src/components/index.ts":{"bytesInOutput":0}},"bytes":45780},"packages/plugins/plugin-deck/dist/lib/browser/chunk-ATPSUXXK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1418},"packages/plugins/plugin-deck/dist/lib/browser/chunk-ATPSUXXK.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/dist/lib/browser/app-graph-builder-IYHAGFA3.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/check-app-scheme-S3EYUPMF.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/intent-resolver-P5BVUQKU.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/react-root-ZQCTDM4Y.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/react-surface-RG3PVPY3.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/settings-X3P2HKQJ.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/state-2MOTLKVR.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/tools-64LXGLYR.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/url-handler-MVHTKUYA.mjs","kind":"dynamic-import"}],"exports":["AppGraphBuilder","CheckAppScheme","DeckSettings","DeckState","LayoutIntentResolver","ReactRoot","ReactSurface","Tools","UrlHandler"],"inputs":{"packages/plugins/plugin-deck/src/capabilities/index.ts":{"bytesInOutput":664}},"bytes":920},"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12772},"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["calculateOverscroll","layoutAppliesTopbar","setActive","useBreakpoints","useHoistStatusbar"],"inputs":{"packages/plugins/plugin-deck/src/util/set-active.ts":{"bytesInOutput":1130},"packages/plugins/plugin-deck/src/util/overscroll.ts":{"bytesInOutput":759},"packages/plugins/plugin-deck/src/util/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-deck/src/util/useBreakpoints.ts":{"bytesInOutput":236},"packages/plugins/plugin-deck/src/util/layoutAppliesTopbar.ts":{"bytesInOutput":139},"packages/plugins/plugin-deck/src/util/useHoistStatusbar.ts":{"bytesInOutput":549}},"bytes":3321},"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["DeckCapabilities"],"inputs":{"packages/plugins/plugin-deck/src/capabilities/capabilities.ts":{"bytesInOutput":443}},"bytes":639},"packages/plugins/plugin-deck/dist/lib/browser/settings-X3P2HKQJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1258},"packages/plugins/plugin-deck/dist/lib/browser/settings-X3P2HKQJ.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/settings.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/settings.ts":{"bytesInOutput":445}},"bytes":711},"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8698},"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["DECK_ACTION","Deck","DeckAction","DeckSettingsSchema","DeckState","NewPlankPositions","OverscrollOptions","PlankSizing","SLUG_PATH_SEPARATOR","getMode","isLayoutMode"],"inputs":{"packages/plugins/plugin-deck/src/types.ts":{"bytesInOutput":3345}},"bytes":3680},"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":511},"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs":{"imports":[],"exports":["DECK_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-deck/src/meta.ts":{"bytesInOutput":124}},"bytes":247}}}
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-deck/src/meta.ts":{"bytes":1063,"imports":[],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/capabilities.ts":{"bytes":2143,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/app-graph-builder.ts":{"bytes":16990,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/check-app-scheme.ts":{"bytes":5005,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/layout.ts":{"bytes":8435,"imports":[{"path":"immer","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/types.ts":{"bytes":16244,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/util/overscroll.ts":{"bytes":17548,"imports":[],"format":"esm"},"packages/plugins/plugin-deck/src/util/set-active.ts":{"bytes":5694,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/util/useBreakpoints.ts":{"bytes":1327,"imports":[{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/util/layoutAppliesTopbar.ts":{"bytes":1031,"imports":[],"format":"esm"},"packages/plugins/plugin-deck/src/util/useHoistStatusbar.ts":{"bytes":2744,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/util/index.ts":{"bytes":939,"imports":[{"path":"packages/plugins/plugin-deck/src/util/overscroll.ts","kind":"import-statement","original":"./overscroll"},{"path":"packages/plugins/plugin-deck/src/util/set-active.ts","kind":"import-statement","original":"./set-active"},{"path":"packages/plugins/plugin-deck/src/util/useBreakpoints.ts","kind":"import-statement","original":"./useBreakpoints"},{"path":"packages/plugins/plugin-deck/src/util/layoutAppliesTopbar.ts","kind":"import-statement","original":"./layoutAppliesTopbar"},{"path":"packages/plugins/plugin-deck/src/util/useHoistStatusbar.ts","kind":"import-statement","original":"./useHoistStatusbar"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts":{"bytes":57388,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/layout.ts","kind":"import-statement","original":"../layout"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../types"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/constants.ts":{"bytes":729,"imports":[],"format":"esm"},"packages/plugins/plugin-deck/src/hooks/useNode.ts":{"bytes":4476,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/hooks/useNodeActionExpander.ts":{"bytes":2645,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/hooks/useMainSize.ts":{"bytes":1556,"imports":[{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/hooks/index.ts":{"bytes":725,"imports":[{"path":"packages/plugins/plugin-deck/src/hooks/useNode.ts","kind":"import-statement","original":"./useNode"},{"path":"packages/plugins/plugin-deck/src/hooks/useNodeActionExpander.ts","kind":"import-statement","original":"./useNodeActionExpander"},{"path":"packages/plugins/plugin-deck/src/hooks/useMainSize.ts","kind":"import-statement","original":"./useMainSize"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/ActiveNode.tsx":{"bytes":3045,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankControls.tsx":{"bytes":11447,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/fragments.ts":{"bytes":1900,"imports":[{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/NodePlankHeading.tsx":{"bytes":18210,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-text-tooltip","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankControls.tsx","kind":"import-statement","original":"./PlankControls"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../../types"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"packages/plugins/plugin-deck/src/components/fragments.ts","kind":"import-statement","original":"../fragments"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx":{"bytes":1262,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx":{"bytes":5343,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/NodePlankHeading.tsx","kind":"import-statement","original":"./NodePlankHeading"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx","kind":"import-statement","original":"./PlankLoading"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx":{"bytes":7385,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/ComplementarySidebar.tsx":{"bytes":24696,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-tabs","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx","kind":"import-statement","original":"./PlankError"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx","kind":"import-statement","original":"./PlankLoading"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx","kind":"import-statement","original":"./SidebarButton"},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/ContentEmpty.tsx":{"bytes":2988,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx","kind":"import-statement","original":"./SidebarButton"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"packages/plugins/plugin-deck/src/components/fragments.ts","kind":"import-statement","original":"../fragments"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Fallback.tsx":{"bytes":2488,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Fullscreen.tsx":{"bytes":3315,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Fallback.tsx","kind":"import-statement","original":"./Fallback"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/constants.ts","kind":"import-statement","original":"./constants"},{"path":"packages/plugins/plugin-deck/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Plank.tsx":{"bytes":17844,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/NodePlankHeading.tsx","kind":"import-statement","original":"./NodePlankHeading"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx","kind":"import-statement","original":"./PlankError"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx","kind":"import-statement","original":"./PlankLoading"},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../../types"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Sidebar.tsx":{"bytes":4850,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/StatusBar.tsx":{"bytes":2467,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Toast.tsx":{"bytes":6420,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Banner.tsx":{"bytes":4616,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx","kind":"import-statement","original":"./SidebarButton"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/Topbar.tsx":{"bytes":1014,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Banner.tsx","kind":"import-statement","original":"./Banner"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/DeckLayout.tsx":{"bytes":42076,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/ActiveNode.tsx","kind":"import-statement","original":"./ActiveNode"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/ComplementarySidebar.tsx","kind":"import-statement","original":"./ComplementarySidebar"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/ContentEmpty.tsx","kind":"import-statement","original":"./ContentEmpty"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Fullscreen.tsx","kind":"import-statement","original":"./Fullscreen"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Plank.tsx","kind":"import-statement","original":"./Plank"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx","kind":"import-statement","original":"./PlankError"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Sidebar.tsx","kind":"import-statement","original":"./Sidebar"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx","kind":"import-statement","original":"./SidebarButton"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/StatusBar.tsx","kind":"import-statement","original":"./StatusBar"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Toast.tsx","kind":"import-statement","original":"./Toast"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Topbar.tsx","kind":"import-statement","original":"./Topbar"},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"../../capabilities"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../../types"},{"path":"packages/plugins/plugin-deck/src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"packages/plugins/plugin-deck/src/components/fragments.ts","kind":"import-statement","original":"../fragments"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/DeckLayout/index.ts":{"bytes":666,"imports":[{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/constants.ts","kind":"import-statement","original":"./constants"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/DeckLayout.tsx","kind":"import-statement","original":"./DeckLayout"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/LayoutSettings.tsx":{"bytes":10191,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-deck/src/components/index.ts":{"bytes":623,"imports":[{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/index.ts","kind":"import-statement","original":"./DeckLayout"},{"path":"packages/plugins/plugin-deck/src/components/LayoutSettings.tsx","kind":"import-statement","original":"./LayoutSettings"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/react-root.tsx":{"bytes":5427,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/react-surface.tsx":{"bytes":3926,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-deck/src/components/DeckLayout/Banner.tsx","kind":"import-statement","original":"../components/DeckLayout/Banner"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/settings.ts":{"bytes":2495,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/state.ts":{"bytes":12810,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-deck/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/tools.ts":{"bytes":6939,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/url-handler.ts":{"bytes":9241,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/core","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"}],"format":"esm"},"packages/plugins/plugin-deck/src/capabilities/index.ts":{"bytes":2827,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"packages/plugins/plugin-deck/src/capabilities/check-app-scheme.ts","kind":"dynamic-import","original":"./check-app-scheme"},{"path":"packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-deck/src/capabilities/react-root.tsx","kind":"dynamic-import","original":"./react-root"},{"path":"packages/plugins/plugin-deck/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"},{"path":"packages/plugins/plugin-deck/src/capabilities/settings.ts","kind":"dynamic-import","original":"./settings"},{"path":"packages/plugins/plugin-deck/src/capabilities/state.ts","kind":"dynamic-import","original":"./state"},{"path":"packages/plugins/plugin-deck/src/capabilities/tools.ts","kind":"dynamic-import","original":"./tools"},{"path":"packages/plugins/plugin-deck/src/capabilities/url-handler.ts","kind":"dynamic-import","original":"./url-handler"}],"format":"esm"},"packages/plugins/plugin-deck/src/events.ts":{"bytes":1604,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/translations.ts":{"bytes":8351,"imports":[{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-deck/src/DeckPlugin.ts":{"bytes":10535,"imports":[{"path":"immer","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-deck/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-deck/src/index.ts":{"bytes":920,"imports":[{"path":"packages/plugins/plugin-deck/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-deck/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/plugins/plugin-deck/src/DeckPlugin.ts","kind":"import-statement","original":"./DeckPlugin"},{"path":"packages/plugins/plugin-deck/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-deck/dist/lib/browser/state-2MOTLKVR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6383},"packages/plugins/plugin-deck/dist/lib/browser/state-2MOTLKVR.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/state.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/state.ts":{"bytesInOutput":3133}},"bytes":3438},"packages/plugins/plugin-deck/dist/lib/browser/tools-64LXGLYR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3319},"packages/plugins/plugin-deck/dist/lib/browser/tools-64LXGLYR.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/tools.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/tools.ts":{"bytesInOutput":1832}},"bytes":2021},"packages/plugins/plugin-deck/dist/lib/browser/url-handler-MVHTKUYA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4614},"packages/plugins/plugin-deck/dist/lib/browser/url-handler-MVHTKUYA.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/core","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/url-handler.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/url-handler.ts":{"bytesInOutput":2059}},"bytes":2309},"packages/plugins/plugin-deck/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9130},"packages/plugins/plugin-deck/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-IZ5RPJ6T.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"immer","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["DECK_PLUGIN","DeckCapabilities","DeckEvents","DeckPlugin","meta"],"entryPoint":"packages/plugins/plugin-deck/src/index.ts","inputs":{"packages/plugins/plugin-deck/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-deck/src/events.ts":{"bytesInOutput":317},"packages/plugins/plugin-deck/src/DeckPlugin.ts":{"bytesInOutput":2123},"packages/plugins/plugin-deck/src/translations.ts":{"bytesInOutput":2712}},"bytes":5773},"packages/plugins/plugin-deck/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-deck/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"}],"exports":["DECK_ACTION","Deck","DeckAction","DeckSettingsSchema","DeckState","NewPlankPositions","OverscrollOptions","PlankSizing","SLUG_PATH_SEPARATOR","getMode","isLayoutMode"],"entryPoint":"packages/plugins/plugin-deck/src/types.ts","inputs":{},"bytes":474},"packages/plugins/plugin-deck/dist/lib/browser/app-graph-builder-IYHAGFA3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7703},"packages/plugins/plugin-deck/dist/lib/browser/app-graph-builder-IYHAGFA3.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/app-graph-builder.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/app-graph-builder.ts":{"bytesInOutput":4098}},"bytes":4389},"packages/plugins/plugin-deck/dist/lib/browser/check-app-scheme-S3EYUPMF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2646},"packages/plugins/plugin-deck/dist/lib/browser/check-app-scheme-S3EYUPMF.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/check-app-scheme.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/check-app-scheme.ts":{"bytesInOutput":918}},"bytes":1147},"packages/plugins/plugin-deck/dist/lib/browser/intent-resolver-P5BVUQKU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":30869},"packages/plugins/plugin-deck/dist/lib/browser/intent-resolver-P5BVUQKU.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"immer","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts":{"bytesInOutput":14158},"packages/plugins/plugin-deck/src/layout.ts":{"bytesInOutput":1769}},"bytes":16460},"packages/plugins/plugin-deck/dist/lib/browser/react-root-EP4UF3KA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2700},"packages/plugins/plugin-deck/dist/lib/browser/react-root-EP4UF3KA.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-Z23S33X6.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-IZ5RPJ6T.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/react-root.tsx","inputs":{"packages/plugins/plugin-deck/src/capabilities/react-root.tsx":{"bytesInOutput":987}},"bytes":1404},"packages/plugins/plugin-deck/dist/lib/browser/react-surface-5B3RLJCD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1919},"packages/plugins/plugin-deck/dist/lib/browser/react-surface-5B3RLJCD.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-Z23S33X6.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-IZ5RPJ6T.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-deck/src/capabilities/react-surface.tsx":{"bytesInOutput":764}},"bytes":1176},"packages/plugins/plugin-deck/dist/lib/browser/chunk-Z23S33X6.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":92629},"packages/plugins/plugin-deck/dist/lib/browser/chunk-Z23S33X6.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-tabs","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-text-tooltip","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"exports":["Banner","DeckLayout","LayoutSettings"],"inputs":{"packages/plugins/plugin-deck/src/components/DeckLayout/Banner.tsx":{"bytesInOutput":1371},"packages/plugins/plugin-deck/src/components/DeckLayout/SidebarButton.tsx":{"bytesInOutput":1848},"packages/plugins/plugin-deck/src/components/DeckLayout/DeckLayout.tsx":{"bytesInOutput":10197},"packages/plugins/plugin-deck/src/components/DeckLayout/ActiveNode.tsx":{"bytesInOutput":572},"packages/plugins/plugin-deck/src/hooks/useNode.ts":{"bytesInOutput":662},"packages/plugins/plugin-deck/src/hooks/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-deck/src/hooks/useNodeActionExpander.ts":{"bytesInOutput":571},"packages/plugins/plugin-deck/src/hooks/useMainSize.ts":{"bytesInOutput":319},"packages/plugins/plugin-deck/src/components/DeckLayout/ComplementarySidebar.tsx":{"bytesInOutput":6572},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankError.tsx":{"bytesInOutput":1281},"packages/plugins/plugin-deck/src/components/DeckLayout/NodePlankHeading.tsx":{"bytesInOutput":4389},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankControls.tsx":{"bytesInOutput":2553},"packages/plugins/plugin-deck/src/components/fragments.ts":{"bytesInOutput":437},"packages/plugins/plugin-deck/src/components/DeckLayout/PlankLoading.tsx":{"bytesInOutput":196},"packages/plugins/plugin-deck/src/components/DeckLayout/ContentEmpty.tsx":{"bytesInOutput":620},"packages/plugins/plugin-deck/src/components/DeckLayout/Fullscreen.tsx":{"bytesInOutput":667},"packages/plugins/plugin-deck/src/components/DeckLayout/Fallback.tsx":{"bytesInOutput":611},"packages/plugins/plugin-deck/src/components/DeckLayout/constants.ts":{"bytesInOutput":33},"packages/plugins/plugin-deck/src/components/DeckLayout/Plank.tsx":{"bytesInOutput":4074},"packages/plugins/plugin-deck/src/components/DeckLayout/Sidebar.tsx":{"bytesInOutput":1103},"packages/plugins/plugin-deck/src/components/DeckLayout/StatusBar.tsx":{"bytesInOutput":648},"packages/plugins/plugin-deck/src/components/DeckLayout/Toast.tsx":{"bytesInOutput":1663},"packages/plugins/plugin-deck/src/components/DeckLayout/Topbar.tsx":{"bytesInOutput":138},"packages/plugins/plugin-deck/src/components/LayoutSettings.tsx":{"bytesInOutput":2797},"packages/plugins/plugin-deck/src/components/DeckLayout/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-deck/src/components/index.ts":{"bytesInOutput":0}},"bytes":45956},"packages/plugins/plugin-deck/dist/lib/browser/chunk-IZ5RPJ6T.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1418},"packages/plugins/plugin-deck/dist/lib/browser/chunk-IZ5RPJ6T.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-deck/dist/lib/browser/app-graph-builder-IYHAGFA3.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/check-app-scheme-S3EYUPMF.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/intent-resolver-P5BVUQKU.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/react-root-EP4UF3KA.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/react-surface-5B3RLJCD.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/settings-X3P2HKQJ.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/state-2MOTLKVR.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/tools-64LXGLYR.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/url-handler-MVHTKUYA.mjs","kind":"dynamic-import"}],"exports":["AppGraphBuilder","CheckAppScheme","DeckSettings","DeckState","LayoutIntentResolver","ReactRoot","ReactSurface","Tools","UrlHandler"],"inputs":{"packages/plugins/plugin-deck/src/capabilities/index.ts":{"bytesInOutput":664}},"bytes":920},"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12772},"packages/plugins/plugin-deck/dist/lib/browser/chunk-YCKJNTKG.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["calculateOverscroll","layoutAppliesTopbar","setActive","useBreakpoints","useHoistStatusbar"],"inputs":{"packages/plugins/plugin-deck/src/util/set-active.ts":{"bytesInOutput":1130},"packages/plugins/plugin-deck/src/util/overscroll.ts":{"bytesInOutput":759},"packages/plugins/plugin-deck/src/util/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-deck/src/util/useBreakpoints.ts":{"bytesInOutput":236},"packages/plugins/plugin-deck/src/util/layoutAppliesTopbar.ts":{"bytesInOutput":139},"packages/plugins/plugin-deck/src/util/useHoistStatusbar.ts":{"bytesInOutput":549}},"bytes":3321},"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"packages/plugins/plugin-deck/dist/lib/browser/chunk-22AQ5IVX.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["DeckCapabilities"],"inputs":{"packages/plugins/plugin-deck/src/capabilities/capabilities.ts":{"bytesInOutput":443}},"bytes":639},"packages/plugins/plugin-deck/dist/lib/browser/settings-X3P2HKQJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1258},"packages/plugins/plugin-deck/dist/lib/browser/settings-X3P2HKQJ.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-deck/src/capabilities/settings.ts","inputs":{"packages/plugins/plugin-deck/src/capabilities/settings.ts":{"bytesInOutput":445}},"bytes":711},"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8698},"packages/plugins/plugin-deck/dist/lib/browser/chunk-FYKBOM3C.mjs":{"imports":[{"path":"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["DECK_ACTION","Deck","DeckAction","DeckSettingsSchema","DeckState","NewPlankPositions","OverscrollOptions","PlankSizing","SLUG_PATH_SEPARATOR","getMode","isLayoutMode"],"inputs":{"packages/plugins/plugin-deck/src/types.ts":{"bytesInOutput":3345}},"bytes":3680},"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":511},"packages/plugins/plugin-deck/dist/lib/browser/chunk-N7TEPFVR.mjs":{"imports":[],"exports":["DECK_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-deck/src/meta.ts":{"bytesInOutput":124}},"bytes":247}}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DeckLayout
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-Z23S33X6.mjs";
|
|
4
|
+
import "./chunk-IZ5RPJ6T.mjs";
|
|
5
5
|
import "./chunk-YCKJNTKG.mjs";
|
|
6
6
|
import {
|
|
7
7
|
DeckCapabilities
|
|
@@ -42,4 +42,4 @@ var react_root_default = () => contributes(Capabilities.ReactRoot, {
|
|
|
42
42
|
export {
|
|
43
43
|
react_root_default as default
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=react-root-
|
|
45
|
+
//# sourceMappingURL=react-root-EP4UF3KA.mjs.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Banner,
|
|
3
3
|
LayoutSettings
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-Z23S33X6.mjs";
|
|
5
|
+
import "./chunk-IZ5RPJ6T.mjs";
|
|
6
6
|
import "./chunk-YCKJNTKG.mjs";
|
|
7
7
|
import "./chunk-22AQ5IVX.mjs";
|
|
8
8
|
import "./chunk-FYKBOM3C.mjs";
|
|
@@ -36,4 +36,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
36
36
|
export {
|
|
37
37
|
react_surface_default as default
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=react-surface-
|
|
39
|
+
//# sourceMappingURL=react-surface-5B3RLJCD.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeckLayout.d.ts","sourceRoot":"","sources":["../../../../../src/components/DeckLayout/DeckLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoF,MAAM,OAAO,CAAC;AAmCzG,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAIvD,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAKF,eAAO,MAAM,UAAU,8CAA+C,eAAe,
|
|
1
|
+
{"version":3,"file":"DeckLayout.d.ts","sourceRoot":"","sources":["../../../../../src/components/DeckLayout/DeckLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoF,MAAM,OAAO,CAAC;AAmCzG,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAIvD,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAKF,eAAO,MAAM,UAAU,8CAA+C,eAAe,sBAsRpF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-deck",
|
|
3
|
-
"version": "0.8.1-
|
|
3
|
+
"version": "0.8.1-staging.391c573",
|
|
4
4
|
"description": "DXOS Surface plugin for the main application layout.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -31,33 +31,33 @@
|
|
|
31
31
|
"src"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@fluentui/react-tabster": "9.
|
|
34
|
+
"@fluentui/react-tabster": "^9.24.2",
|
|
35
35
|
"@preact/signals-core": "^1.6.0",
|
|
36
36
|
"effect": "3.13.3",
|
|
37
37
|
"immer": "^10.1.1",
|
|
38
|
-
"@dxos/app-framework": "0.8.1-
|
|
39
|
-
"@dxos/
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/echo-
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/live-object": "0.8.1-
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/local-storage": "0.8.1-
|
|
49
|
-
"@dxos/plugin-attention": "0.8.1-
|
|
50
|
-
"@dxos/plugin-client": "0.8.1-
|
|
51
|
-
"@dxos/plugin-graph": "0.8.1-
|
|
52
|
-
"@dxos/plugin-observability": "0.8.1-
|
|
53
|
-
"@dxos/plugin-theme": "0.8.1-
|
|
54
|
-
"@dxos/react-client": "0.8.1-
|
|
55
|
-
"@dxos/react-ui-attention": "0.8.1-
|
|
56
|
-
"@dxos/react-ui-
|
|
57
|
-
"@dxos/react-ui-tabs": "0.8.1-
|
|
58
|
-
"@dxos/react-ui-
|
|
59
|
-
"@dxos/
|
|
60
|
-
"@dxos/
|
|
38
|
+
"@dxos/app-framework": "0.8.1-staging.391c573",
|
|
39
|
+
"@dxos/async": "0.8.1-staging.391c573",
|
|
40
|
+
"@dxos/artifact": "0.8.1-staging.391c573",
|
|
41
|
+
"@dxos/debug": "0.8.1-staging.391c573",
|
|
42
|
+
"@dxos/echo-schema": "0.8.1-staging.391c573",
|
|
43
|
+
"@dxos/echo-signals": "0.8.1-staging.391c573",
|
|
44
|
+
"@dxos/keyboard": "0.8.1-staging.391c573",
|
|
45
|
+
"@dxos/live-object": "0.8.1-staging.391c573",
|
|
46
|
+
"@dxos/invariant": "0.8.1-staging.391c573",
|
|
47
|
+
"@dxos/log": "0.8.1-staging.391c573",
|
|
48
|
+
"@dxos/local-storage": "0.8.1-staging.391c573",
|
|
49
|
+
"@dxos/plugin-attention": "0.8.1-staging.391c573",
|
|
50
|
+
"@dxos/plugin-client": "0.8.1-staging.391c573",
|
|
51
|
+
"@dxos/plugin-graph": "0.8.1-staging.391c573",
|
|
52
|
+
"@dxos/plugin-observability": "0.8.1-staging.391c573",
|
|
53
|
+
"@dxos/plugin-theme": "0.8.1-staging.391c573",
|
|
54
|
+
"@dxos/react-client": "0.8.1-staging.391c573",
|
|
55
|
+
"@dxos/react-ui-attention": "0.8.1-staging.391c573",
|
|
56
|
+
"@dxos/react-ui-stack": "0.8.1-staging.391c573",
|
|
57
|
+
"@dxos/react-ui-tabs": "0.8.1-staging.391c573",
|
|
58
|
+
"@dxos/react-ui-text-tooltip": "0.8.1-staging.391c573",
|
|
59
|
+
"@dxos/react-ui-form": "0.8.1-staging.391c573",
|
|
60
|
+
"@dxos/util": "0.8.1-staging.391c573"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -66,16 +66,16 @@
|
|
|
66
66
|
"react": "~18.2.0",
|
|
67
67
|
"react-dom": "~18.2.0",
|
|
68
68
|
"vite": "5.4.7",
|
|
69
|
-
"@dxos/react-ui": "0.8.1-
|
|
70
|
-
"@dxos/react-ui
|
|
71
|
-
"@dxos/storybook-utils": "0.8.1-
|
|
69
|
+
"@dxos/react-ui-theme": "0.8.1-staging.391c573",
|
|
70
|
+
"@dxos/react-ui": "0.8.1-staging.391c573",
|
|
71
|
+
"@dxos/storybook-utils": "0.8.1-staging.391c573"
|
|
72
72
|
},
|
|
73
73
|
"peerDependencies": {
|
|
74
74
|
"@phosphor-icons/react": "^2.0.5",
|
|
75
75
|
"react": "~18.2.0",
|
|
76
76
|
"react-dom": "~18.2.0",
|
|
77
|
-
"@dxos/react-ui
|
|
78
|
-
"@dxos/react-ui": "0.8.1-
|
|
77
|
+
"@dxos/react-ui": "0.8.1-staging.391c573",
|
|
78
|
+
"@dxos/react-ui-theme": "0.8.1-staging.391c573"
|
|
79
79
|
},
|
|
80
80
|
"publishConfig": {
|
|
81
81
|
"access": "public"
|
|
@@ -19,9 +19,9 @@ import {
|
|
|
19
19
|
Dialog as NaturalDialog,
|
|
20
20
|
Main,
|
|
21
21
|
Popover,
|
|
22
|
-
useOnTransition,
|
|
23
22
|
type MainProps,
|
|
24
23
|
useMediaQuery,
|
|
24
|
+
useOnTransition,
|
|
25
25
|
} from '@dxos/react-ui';
|
|
26
26
|
import { Stack, StackContext, DEFAULT_HORIZONTAL_SIZE } from '@dxos/react-ui-stack';
|
|
27
27
|
import { mainPaddingTransitions } from '@dxos/react-ui-theme';
|
|
@@ -304,7 +304,8 @@ export const DeckLayout = ({ overscroll, showHints, onDismissToast }: DeckLayout
|
|
|
304
304
|
onOpenChange={(nextOpen) => (context.dialogOpen = nextOpen)}
|
|
305
305
|
>
|
|
306
306
|
{dialogBlockAlign === 'end' ? (
|
|
307
|
-
|
|
307
|
+
// TODO(burdon): Placeholder creates a suspense boundary; replace with defaults.
|
|
308
|
+
<Surface role='dialog' data={dialogContent} limit={1} fallback={PlankContentError} placeholder={<div />} />
|
|
308
309
|
) : (
|
|
309
310
|
<Dialog.Overlay blockAlign={dialogBlockAlign}>
|
|
310
311
|
<Surface role='dialog' data={dialogContent} limit={1} fallback={PlankContentError} />
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/DeckLayout/Banner.tsx", "../../../src/components/DeckLayout/SidebarButton.tsx", "../../../src/components/DeckLayout/DeckLayout.tsx", "../../../src/components/DeckLayout/ActiveNode.tsx", "../../../src/hooks/useNode.ts", "../../../src/hooks/useNodeActionExpander.ts", "../../../src/hooks/useMainSize.ts", "../../../src/components/DeckLayout/ComplementarySidebar.tsx", "../../../src/components/DeckLayout/PlankError.tsx", "../../../src/components/DeckLayout/NodePlankHeading.tsx", "../../../src/components/DeckLayout/PlankControls.tsx", "../../../src/components/fragments.ts", "../../../src/components/DeckLayout/PlankLoading.tsx", "../../../src/components/DeckLayout/ContentEmpty.tsx", "../../../src/components/DeckLayout/Fullscreen.tsx", "../../../src/components/DeckLayout/Fallback.tsx", "../../../src/components/DeckLayout/constants.ts", "../../../src/components/DeckLayout/Plank.tsx", "../../../src/components/DeckLayout/Sidebar.tsx", "../../../src/components/DeckLayout/StatusBar.tsx", "../../../src/components/DeckLayout/Toast.tsx", "../../../src/components/DeckLayout/Topbar.tsx", "../../../src/components/LayoutSettings.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { CloseSidebarButton, ToggleSidebarButton } from './SidebarButton';\n\nexport const Banner = ({ variant, classNames }: ThemedClassName<{ variant?: 'topbar' | 'sidebar' }>) => {\n return (\n <header\n className={mx(\n 'flex items-stretch relative plb-1 pis-1 pie-2',\n variant === 'topbar' &&\n 'fixed inset-inline-0 block-start-[env(safe-area-inset-top)] bs-[--rail-size] border-be border-separator',\n classNames,\n )}\n >\n {variant === 'sidebar' ? <CloseSidebarButton /> : <ToggleSidebarButton />}\n <span className='self-center grow mis-1'>Composer</span>\n {variant === 'topbar' && (\n <div role='none' className='absolute inset-0 pointer-events-none'>\n <div role='none' className='grid bs-full pointer-fine:p-1 max-is-md mli-auto pointer-events-auto'>\n <Surface role='search-input' limit={1} />\n </div>\n </div>\n )}\n <span role='none' className='grow' />\n <Surface role='header-end' limit={1} />\n <Surface role='notch-start' limit={1} />\n </header>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useCapability } from '@dxos/app-framework';\nimport { IconButton, type IconButtonProps, type ThemedClassName, useTranslation } from '@dxos/react-ui';\n\nimport { DeckCapabilities } from '../../capabilities';\nimport { DECK_PLUGIN } from '../../meta';\n\nexport const ToggleSidebarButton = ({\n classNames,\n variant = 'ghost',\n}: ThemedClassName<Pick<IconButtonProps, 'variant'>>) => {\n const layoutContext = useCapability(DeckCapabilities.MutableDeckState);\n const { t } = useTranslation(DECK_PLUGIN);\n return (\n <IconButton\n variant={variant}\n iconOnly\n icon='ph--sidebar--regular'\n size={4}\n label={t('open navigation sidebar label')}\n onClick={() =>\n (layoutContext.sidebarState = layoutContext.sidebarState === 'expanded' ? 'collapsed' : 'expanded')\n }\n classNames={classNames}\n />\n );\n};\n\nexport const CloseSidebarButton = () => {\n const layoutContext = useCapability(DeckCapabilities.MutableDeckState);\n const { t } = useTranslation(DECK_PLUGIN);\n return (\n <IconButton\n variant='ghost'\n iconOnly\n icon='ph--caret-line-left--regular'\n size={4}\n label={t('close navigation sidebar label')}\n onClick={() => (layoutContext.sidebarState = 'collapsed')}\n classNames='rounded-none pli-1 dx-focus-ring-inset pie-[max(.5rem,env(safe-area-inset-left))]'\n />\n );\n};\n\nexport const ToggleComplementarySidebarButton = ({ inR0, classNames }: ThemedClassName<{ inR0?: boolean }>) => {\n const layoutContext = useCapability(DeckCapabilities.MutableDeckState);\n const { t } = useTranslation(DECK_PLUGIN);\n return (\n <IconButton\n iconOnly\n onClick={() =>\n (layoutContext.complementarySidebarState =\n layoutContext.complementarySidebarState === 'expanded' ? 'collapsed' : 'expanded')\n }\n variant='ghost'\n label={t('open complementary sidebar label')}\n classNames={['[&>svg]:-scale-x-100', classNames]}\n icon='ph--sidebar-simple--regular'\n size={inR0 ? 5 : 4}\n tooltipSide={inR0 ? 'left' : undefined}\n />\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { untracked } from '@preact/signals-core';\nimport React, { useCallback, useEffect, useMemo, useRef, type UIEvent, Fragment, useState } from 'react';\n\nimport {\n LayoutAction,\n createIntent,\n Surface,\n useCapability,\n useIntentDispatcher,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport {\n AlertDialog,\n Dialog as NaturalDialog,\n Main,\n Popover,\n useOnTransition,\n type MainProps,\n useMediaQuery,\n} from '@dxos/react-ui';\nimport { Stack, StackContext, DEFAULT_HORIZONTAL_SIZE } from '@dxos/react-ui-stack';\nimport { mainPaddingTransitions } from '@dxos/react-ui-theme';\n\nimport { ActiveNode } from './ActiveNode';\nimport { ComplementarySidebar } from './ComplementarySidebar';\nimport { ContentEmpty } from './ContentEmpty';\nimport { Fullscreen } from './Fullscreen';\nimport { Plank } from './Plank';\nimport { PlankContentError } from './PlankError';\nimport { Sidebar } from './Sidebar';\nimport { ToggleComplementarySidebarButton, ToggleSidebarButton } from './SidebarButton';\nimport { StatusBar } from './StatusBar';\nimport { Toast } from './Toast';\nimport { Topbar } from './Topbar';\nimport { DeckCapabilities } from '../../capabilities';\nimport { getMode, type Overscroll } from '../../types';\nimport { calculateOverscroll, layoutAppliesTopbar, useBreakpoints, useHoistStatusbar } from '../../util';\nimport { fixedComplementarySidebarToggleStyles, fixedSidebarToggleStyles } from '../fragments';\n\nexport type DeckLayoutProps = {\n overscroll: Overscroll;\n showHints: boolean;\n onDismissToast: (id: string) => void;\n};\n\nconst PlankSeparator = ({ index }: { index: number }) =>\n index > 0 ? <span role='separator' className='row-span-2 bg-deck is-4' style={{ gridColumn: index * 2 }} /> : null;\n\nexport const DeckLayout = ({ overscroll, showHints, onDismissToast }: DeckLayoutProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const context = useCapability(DeckCapabilities.MutableDeckState);\n const {\n sidebarState,\n complementarySidebarState,\n complementarySidebarPanel,\n dialogOpen,\n dialogContent,\n dialogBlockAlign,\n dialogType,\n popoverOpen,\n popoverContent,\n popoverAnchorId,\n deck,\n toasts,\n } = context;\n const { active, fullscreen, solo, plankSizing } = deck;\n const breakpoint = useBreakpoints();\n const topbar = layoutAppliesTopbar(breakpoint);\n const hoistStatusbar = useHoistStatusbar(breakpoint);\n const pluginManager = usePluginManager();\n\n const scrollLeftRef = useRef<number | null>();\n const deckRef = useRef<HTMLDivElement>(null);\n\n // TODO(thure): This is a workaround for the difference in `React`ion time between displaying a Popover and rendering\n // the anchor further down the tree. Refactor to use VirtualTrigger or some other approach which does not cause a lag.\n const [delayedPopoverVisibility, setDelayedPopoverVisibility] = useState(false);\n useEffect(() => {\n popoverOpen ? setTimeout(() => setDelayedPopoverVisibility(true), 40) : setDelayedPopoverVisibility(false);\n }, [popoverOpen]);\n\n // Ensure the first plank is attended when the deck is first rendered.\n useEffect(() => {\n // NOTE: Not `useAttended` so that the layout component is not re-rendered when the attended list changes.\n const attended = untracked(() => {\n const attention = pluginManager.context.requestCapability(AttentionCapabilities.Attention);\n return attention.current;\n });\n const firstId = solo ?? active[0];\n if (attended.length === 0 && firstId) {\n // TODO(wittjosiah): Focusing the type button is a workaround.\n // If the plank is directly focused on first load the focus ring appears.\n document.querySelector<HTMLElement>(`article[data-attendable-id=\"${firstId}\"] button`)?.focus();\n }\n }, []);\n\n // Not using `breakpoint` to avoid firing when breakpoint changes between tablet and desktop.\n // `ssr: false` to avoid using fallback values and flashing into solo mode on startup.\n const [isNotMobile] = useMediaQuery('md', { ssr: false });\n const shouldRevert = useRef(false);\n useEffect(() => {\n if (!isNotMobile && getMode(deck) === 'deck') {\n // NOTE: Not `useAttended` so that the layout component is not re-rendered when the attended list changes.\n const attended = untracked(() => {\n const attention = pluginManager.context.requestCapability(AttentionCapabilities.Attention);\n return attention.current;\n });\n\n shouldRevert.current = true;\n void dispatch(\n createIntent(LayoutAction.SetLayoutMode, { part: 'mode', subject: attended[0], options: { mode: 'solo' } }),\n );\n } else if (isNotMobile && getMode(deck) === 'solo' && shouldRevert.current) {\n void dispatch(createIntent(LayoutAction.SetLayoutMode, { part: 'mode', options: { revert: true } }));\n }\n }, [isNotMobile, deck, dispatch]);\n\n /**\n * Clear scroll restoration state if the window is resized\n */\n const handleResize = useCallback(() => {\n scrollLeftRef.current = null;\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n\n const restoreScroll = useCallback(() => {\n if (deckRef.current && scrollLeftRef.current != null) {\n deckRef.current.scrollLeft = scrollLeftRef.current;\n }\n }, []);\n\n const layoutMode = getMode(deck);\n useOnTransition(layoutMode, (mode) => mode !== 'deck', 'deck', restoreScroll);\n\n /**\n * Save scroll position as the user scrolls\n */\n const handleScroll = useCallback(\n (event: UIEvent) => {\n if (!solo && event.currentTarget === event.target) {\n scrollLeftRef.current = (event.target as HTMLDivElement).scrollLeft;\n }\n },\n [solo],\n );\n\n const isEmpty = !solo && active.length === 0;\n\n const padding = useMemo(() => {\n if (!solo && overscroll === 'centering') {\n return calculateOverscroll(active.length);\n }\n return {};\n }, [solo, overscroll, deck]);\n\n const mainPosition = useMemo(\n () => [\n 'grid !block-start-[env(safe-area-inset-top)]',\n topbar && '!block-start-[calc(env(safe-area-inset-top)+var(--rail-size))]',\n hoistStatusbar && 'lg:block-end-[--statusbar-size]',\n ],\n [topbar, hoistStatusbar],\n );\n\n const Dialog = dialogType === 'alert' ? AlertDialog : NaturalDialog;\n\n const handlePopoverOpenChange = useCallback(\n (nextOpen: boolean) => {\n if (nextOpen && popoverAnchorId) {\n context.popoverOpen = true;\n } else {\n context.popoverOpen = false;\n context.popoverAnchorId = undefined;\n context.popoverSide = undefined;\n }\n },\n [context],\n );\n const handlePopoverClose = useCallback(() => handlePopoverOpenChange(false), [handlePopoverOpenChange]);\n\n return (\n <Popover.Root modal open={!!(popoverAnchorId && delayedPopoverVisibility)} onOpenChange={handlePopoverOpenChange}>\n <ActiveNode />\n\n {fullscreen && <Fullscreen id={solo} />}\n\n {!fullscreen && (\n <Main.Root\n navigationSidebarState={context.sidebarState}\n onNavigationSidebarStateChange={(next) => (context.sidebarState = next)}\n complementarySidebarState={context.complementarySidebarState}\n onComplementarySidebarStateChange={(next) => (context.complementarySidebarState = next)}\n >\n {/* Left sidebar. */}\n <Sidebar />\n\n {/* Right sidebar. */}\n <ComplementarySidebar current={complementarySidebarPanel} />\n\n {/* Dialog overlay to dismiss dialogs. */}\n <Main.Overlay />\n\n {/* No content. */}\n {isEmpty && (\n <Main.Content bounce handlesFocus classNames={mainPosition}>\n <ContentEmpty />\n </Main.Content>\n )}\n\n {/* Solo/deck mode. */}\n {!isEmpty && (\n <Main.Content\n bounce\n classNames={mainPosition}\n handlesFocus\n style={\n {\n '--dx-main-sidebarWidth':\n sidebarState === 'expanded'\n ? 'var(--nav-sidebar-size)'\n : sidebarState === 'collapsed'\n ? 'var(--l0-size)'\n : '0',\n '--dx-main-complementaryWidth':\n complementarySidebarState === 'expanded'\n ? 'var(--complementary-sidebar-size)'\n : complementarySidebarState === 'collapsed'\n ? 'var(--rail-size)'\n : '0',\n '--dx-main-contentFirstWidth': `${plankSizing[active[0] ?? 'never'] ?? DEFAULT_HORIZONTAL_SIZE}rem`,\n '--dx-main-contentLastWidth': `${plankSizing[active[(active.length ?? 1) - 1] ?? 'never'] ?? DEFAULT_HORIZONTAL_SIZE}rem`,\n } as MainProps['style']\n }\n >\n <div\n role='none'\n className={!solo ? 'relative bg-deck overflow-hidden' : 'sr-only'}\n {...(solo && { inert: '' })}\n >\n {!topbar && <ToggleSidebarButton classNames={fixedSidebarToggleStyles} />}\n {!topbar && <ToggleComplementarySidebarButton classNames={fixedComplementarySidebarToggleStyles} />}\n <Stack\n orientation='horizontal'\n size='contain'\n classNames={['absolute inset-block-0 -inset-inline-px', mainPaddingTransitions]}\n onScroll={handleScroll}\n itemsCount={2 * (active.length ?? 0) - 1}\n style={padding}\n ref={deckRef}\n >\n {active.map((entryId, index) => (\n <Fragment key={entryId}>\n <PlankSeparator index={index} />\n <Plank id={entryId} part='deck' order={index * 2 + 1} active={active} layoutMode={layoutMode} />\n </Fragment>\n ))}\n </Stack>\n </div>\n <div\n role='none'\n className={solo ? 'relative bg-deck overflow-hidden' : 'sr-only'}\n {...(!solo && { inert: '' })}\n >\n {!topbar && <ToggleSidebarButton classNames={fixedSidebarToggleStyles} />}\n {!topbar && <ToggleComplementarySidebarButton classNames={fixedComplementarySidebarToggleStyles} />}\n <StackContext.Provider value={{ size: 'contain', orientation: 'horizontal', rail: true }}>\n <Plank id={solo} part='solo' layoutMode={layoutMode} />\n </StackContext.Provider>\n </div>\n </Main.Content>\n )}\n\n {/* Status bar. */}\n {topbar && <Topbar />}\n {hoistStatusbar && <StatusBar showHints={showHints} />}\n </Main.Root>\n )}\n\n {/* Global popovers. */}\n <Popover.Portal>\n <Popover.Content side={context.popoverSide} onEscapeKeyDown={handlePopoverClose}>\n <Popover.Viewport>\n <Surface role='popover' data={popoverContent} limit={1} />\n </Popover.Viewport>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n\n {/* Global dialog. */}\n {/* TODO(thure): End block alignment affecting `modal` and whether the surface renders in an overlay is tailored\n to the needs of the ambient chat dialog. As the feature matures, consider separating concerns. */}\n <Dialog.Root\n modal={dialogBlockAlign !== 'end'}\n open={dialogOpen}\n onOpenChange={(nextOpen) => (context.dialogOpen = nextOpen)}\n >\n {dialogBlockAlign === 'end' ? (\n <Surface role='dialog' data={dialogContent} limit={1} fallback={PlankContentError} />\n ) : (\n <Dialog.Overlay blockAlign={dialogBlockAlign}>\n <Surface role='dialog' data={dialogContent} limit={1} fallback={PlankContentError} />\n </Dialog.Overlay>\n )}\n </Dialog.Root>\n\n {/* Global toasts. */}\n {toasts?.map((toast) => (\n <Toast\n {...toast}\n key={toast.id}\n onOpenChange={(open) => {\n if (!open) {\n onDismissToast(toast.id);\n }\n\n return open;\n }}\n />\n ))}\n </Popover.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface, useAppGraph } from '@dxos/app-framework';\nimport { useAttended } from '@dxos/react-ui-attention';\n\nimport { useNode, useNodeActionExpander } from '../../hooks';\n\n// TODO(burdon): Factor out to effect in plugin set document title.\nexport const ActiveNode = () => {\n const [id] = useAttended();\n const { graph } = useAppGraph();\n const activeNode = useNode(graph, id);\n useNodeActionExpander(activeNode);\n\n return (\n <div role='none' className='sr-only'>\n {/* TODO(wittjosiah): Weird that this is a surface, feel like it's not really render logic.\n Probably this lives in React-land currently in order to access translations? */}\n <Surface role='document-title' data={{ subject: activeNode }} limit={1} />\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Graph, type Node } from '@dxos/plugin-graph';\n\n/**\n * React hook to get a node from the graph.\n *\n * @param graph Graph to find the node in.\n * @param id Id of the node to find.\n * @param timeout Optional timeout in milliseconds to wait for the node to be found.\n * @returns Node if found, undefined otherwise.\n */\n// TODO(wittjosiah): Factor out.\nexport const useNode = <T = any>(graph: Graph, id?: string, timeout?: number): Node<T> | undefined => {\n const [nodeState, setNodeState] = useState<Node<T> | undefined>(id ? graph.findNode(id, false) : undefined);\n\n useEffect(() => {\n if (!id && nodeState) {\n setNodeState(undefined);\n }\n\n if (nodeState?.id === id || !id) {\n return;\n }\n\n // Set timeout did not seem to effectively not block the UI thread.\n const frame = requestAnimationFrame(async () => {\n try {\n const node = await graph.waitForNode(id, timeout);\n if (node) {\n setNodeState(node);\n }\n } catch {\n // TODO(ZaymonFC): This leaves the resolved node in an invalid state in the case of a timeout.\n }\n });\n\n return () => cancelAnimationFrame(frame);\n }, [graph, id, timeout, nodeState?.id]);\n\n return nodeState;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { ACTION_GROUP_TYPE, ACTION_TYPE, getGraph, type Node } from '@dxos/plugin-graph';\n\nconst expandNodeActions = async (node: Node) => {\n const graph = getGraph(node);\n await graph.expand(node, 'outbound', ACTION_GROUP_TYPE);\n await graph.expand(node, 'outbound', ACTION_TYPE);\n};\n\nexport const useNodeActionExpander = (node?: Node) => {\n useEffect(() => {\n if (node) {\n const frame = requestAnimationFrame(() => {\n void expandNodeActions(node);\n });\n return () => cancelAnimationFrame(frame);\n }\n }, [node]);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useMainContext } from '@dxos/react-ui';\n\nexport const useMainSize = () => {\n const { navigationSidebarState, complementarySidebarState } = useMainContext('DeckPluginPlank');\n return {\n 'data-sidebar-inline-start-state': navigationSidebarState,\n 'data-sidebar-inline-end-state': complementarySidebarState,\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, {\n type PropsWithChildren,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type MouseEvent,\n Fragment,\n} from 'react';\n\nimport {\n createIntent,\n LayoutAction,\n Surface,\n useAppGraph,\n useCapabilities,\n useCapability,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport {\n Main,\n useTranslation,\n toLocalizedString,\n IconButton,\n ScrollArea as NaturalScrollArea,\n type Label,\n} from '@dxos/react-ui';\nimport { useAttended } from '@dxos/react-ui-attention';\nimport { Tabs } from '@dxos/react-ui-tabs';\nimport { byPosition } from '@dxos/util';\n\nimport { PlankContentError } from './PlankError';\nimport { PlankLoading } from './PlankLoading';\nimport { ToggleComplementarySidebarButton } from './SidebarButton';\nimport { DeckCapabilities } from '../../capabilities';\nimport { useNode } from '../../hooks';\nimport { DECK_PLUGIN } from '../../meta';\nimport { type Panel } from '../../types';\nimport { layoutAppliesTopbar, useBreakpoints, useHoistStatusbar } from '../../util';\n\nexport type ComplementarySidebarProps = {\n current?: string;\n};\n\nconst label = ['complementary sidebar title', { ns: DECK_PLUGIN }] satisfies Label;\n\nexport const ComplementarySidebar = ({ current }: ComplementarySidebarProps) => {\n const { t } = useTranslation(DECK_PLUGIN);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const layout = useCapability(DeckCapabilities.MutableDeckState);\n const attended = useAttended();\n const { graph } = useAppGraph();\n const node = useNode(graph, attended[0]);\n const breakpoint = useBreakpoints();\n const topbar = layoutAppliesTopbar(breakpoint);\n const hoistStatusbar = useHoistStatusbar(breakpoint);\n\n const panels = useCapabilities(DeckCapabilities.ComplementaryPanel);\n const availablePanels = panels\n .filter((panel) => {\n if (!node || !panel.filter) {\n return true;\n }\n\n return panel.filter(node);\n })\n .toSorted(byPosition);\n const activePanelId = availablePanels.find((panel) => panel.id === current)?.id ?? availablePanels[0]?.id;\n const [internalValue, setInternalValue] = useState(activePanelId);\n\n useEffect(() => {\n setInternalValue(activePanelId);\n }, [activePanelId]);\n\n const handleTabClick = useCallback(\n (event: MouseEvent) => {\n const nextValue = event.currentTarget.getAttribute('data-value') as string;\n if (nextValue === activePanelId) {\n layout.complementarySidebarState = layout.complementarySidebarState === 'expanded' ? 'collapsed' : 'expanded';\n } else {\n setInternalValue(nextValue);\n layout.complementarySidebarState = 'expanded';\n void dispatch(createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: nextValue }));\n }\n },\n [layout, activePanelId, dispatch],\n );\n\n const data = useMemo(\n () =>\n node && {\n id: node.id,\n subject: node.data,\n workspace: layout.activeDeck,\n popoverAnchorId: layout.popoverAnchorId,\n },\n [node, layout.popoverAnchorId],\n );\n\n // TODO(burdon): Scroll area should be controlled by surface.\n return (\n <Main.ComplementarySidebar\n label={label}\n classNames={[\n topbar && 'block-start-[calc(env(safe-area-inset-top)+var(--rail-size))]',\n hoistStatusbar && 'block-end-[--statusbar-size]',\n ]}\n >\n <Tabs.Root\n orientation='vertical'\n verticalVariant='stateless'\n value={internalValue}\n attendableId={attended[0]}\n classNames='contents'\n >\n <div\n role='none'\n className='absolute z-[1] inset-block-0 inline-end-0 !is-[--r0-size] pbs-[env(safe-area-inset-top)] pbe-[env(safe-area-inset-bottom)] border-is border-separator grid grid-cols-1 grid-rows-[1fr_min-content] bg-baseSurface contain-layout app-drag'\n >\n <Tabs.Tablist classNames='grid grid-cols-1 auto-rows-[--rail-action] p-1 gap-1 !overflow-y-auto'>\n {availablePanels.map((panel) => (\n <Tabs.Tab key={panel.id} value={panel.id} asChild>\n <IconButton\n label={toLocalizedString(panel.label, t)}\n icon={panel.icon}\n size={5}\n iconOnly\n tooltipSide='left'\n data-value={panel.id}\n variant={\n activePanelId === panel.id\n ? layout.complementarySidebarState === 'expanded'\n ? 'primary'\n : 'default'\n : 'ghost'\n }\n onClick={handleTabClick}\n />\n </Tabs.Tab>\n ))}\n </Tabs.Tablist>\n {!hoistStatusbar && (\n <div role='none' className='grid grid-cols-1 auto-rows-[--rail-item] p-1 overflow-y-auto'>\n <Surface role='status-bar--r0-footer' limit={1} />\n </div>\n )}\n <div role='none' className='hidden lg:grid grid-cols-1 auto-rows-[--rail-action] p-1'>\n <ToggleComplementarySidebarButton />\n </div>\n </div>\n {availablePanels.map((panel) => (\n <Tabs.Tabpanel\n key={panel.id}\n value={panel.id}\n classNames='absolute data-[state=\"inactive\"]:-z-[1] inset-block-0 inline-start-0 is-[calc(100%-var(--r0-size))] lg:is-[--r1-size] grid grid-cols-1 grid-rows-[var(--rail-size)_1fr_min-content] pbs-[env(safe-area-inset-top)]'\n {...(layout.complementarySidebarState !== 'expanded' && { inert: 'true' })}\n >\n <ComplementarySidebarPanel\n panel={panel}\n activePanelId={activePanelId}\n data={data}\n hoistStatusbar={hoistStatusbar}\n />\n </Tabs.Tabpanel>\n ))}\n </Tabs.Root>\n </Main.ComplementarySidebar>\n );\n};\n\ntype ComplementarySidebarPanelProps = {\n panel: Panel;\n activePanelId: string;\n data?: {\n id: string;\n subject: any;\n workspace: string;\n popoverAnchorId?: string;\n };\n hoistStatusbar: boolean;\n};\n\nconst ScrollArea = ({ children }: PropsWithChildren) => {\n return (\n <NaturalScrollArea.Root>\n <NaturalScrollArea.Viewport>{children}</NaturalScrollArea.Viewport>\n <NaturalScrollArea.Scrollbar orientation='vertical'>\n <NaturalScrollArea.Thumb />\n </NaturalScrollArea.Scrollbar>\n </NaturalScrollArea.Root>\n );\n};\n\nconst ComplementarySidebarPanel = ({ panel, activePanelId, data, hoistStatusbar }: ComplementarySidebarPanelProps) => {\n const { t } = useTranslation(DECK_PLUGIN);\n\n if (panel.id !== activePanelId || !data) {\n return null;\n }\n\n const Wrapper = panel.fixed ? Fragment : ScrollArea;\n\n return (\n <>\n <h2 className='flex items-center pli-2 border-separator border-be font-medium'>\n {toLocalizedString(panel.label, t)}\n </h2>\n <Wrapper>\n <Surface\n role={`complementary--${activePanelId}`}\n data={data}\n fallback={PlankContentError}\n placeholder={<PlankLoading />}\n />\n </Wrapper>\n {!hoistStatusbar && (\n <div\n role='contentinfo'\n className='flex flex-wrap justify-center items-center border-bs border-separator pbs-1 pbe-[max(env(safe-area-inset-bottom),0.25rem)]'\n >\n <Surface role='status-bar--r1-footer' limit={1} />\n </div>\n )}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { type Node } from '@dxos/plugin-graph';\nimport { useTranslation } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { NodePlankHeading, type NodePlankHeadingProps } from './NodePlankHeading';\nimport { PlankLoading } from './PlankLoading';\nimport { DECK_PLUGIN } from '../../meta';\n\nexport const PlankContentError = ({ error }: { error?: Error }) => {\n const { t } = useTranslation(DECK_PLUGIN);\n const errorString = error?.toString() ?? '';\n return (\n <div role='none' className='overflow-auto p-8 attention-surface grid place-items-center'>\n <p\n role='alert'\n className={mx(\n descriptionText,\n 'break-words border border-dashed border-separator rounded-lg p-8',\n errorString.length < 256 && 'text-lg',\n )}\n >\n {error ? errorString : t('error fallback message')}\n </p>\n </div>\n );\n};\n\nexport const PlankError = ({\n id,\n part,\n node,\n error,\n}: {\n id: string;\n part: NodePlankHeadingProps['part'];\n node?: Node;\n error?: Error;\n}) => {\n const [timedOut, setTimedOut] = useState(false);\n useEffect(() => {\n setTimeout(() => setTimedOut(true), 5e3);\n }, []);\n return (\n <>\n <NodePlankHeading id={id} part={part} node={node} pending={!timedOut} />\n {timedOut ? <PlankContentError error={error} /> : <PlankLoading />}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { Fragment, memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { createIntent, LayoutAction, Surface, useAppGraph, useIntentDispatcher } from '@dxos/app-framework';\nimport { type Node } from '@dxos/plugin-graph';\nimport { Icon, Popover, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { StackItem, type StackItemSigilAction } from '@dxos/react-ui-stack';\nimport { TextTooltip } from '@dxos/react-ui-text-tooltip';\n\nimport { PlankControls } from './PlankControls';\nimport { DECK_PLUGIN } from '../../meta';\nimport { DeckAction, SLUG_PATH_SEPARATOR } from '../../types';\nimport { useBreakpoints } from '../../util';\nimport { soloInlinePadding } from '../fragments';\n\nexport type NodePlankHeadingProps = {\n id: string;\n part: 'solo' | 'deck' | 'complementary';\n node?: Node;\n canIncrementStart?: boolean;\n canIncrementEnd?: boolean;\n popoverAnchorId?: string;\n pending?: boolean;\n actions?: StackItemSigilAction[];\n};\n\nexport const NodePlankHeading = memo(\n ({\n id,\n part,\n node,\n canIncrementStart,\n canIncrementEnd,\n popoverAnchorId,\n pending,\n actions = [],\n }: NodePlankHeadingProps) => {\n const { t } = useTranslation(DECK_PLUGIN);\n const { graph } = useAppGraph();\n const breakpoint = useBreakpoints();\n const icon = node?.properties?.icon ?? 'ph--placeholder--regular';\n const label = pending\n ? t('pending heading')\n : toLocalizedString(node?.properties?.label ?? ['plank heading fallback label', { ns: DECK_PLUGIN }], t);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const ActionRoot = node && popoverAnchorId === `dxos.org/ui/${DECK_PLUGIN}/${node.id}` ? Popover.Anchor : Fragment;\n\n useEffect(() => {\n const frame = requestAnimationFrame(() => {\n // Load actions for the node.\n node && graph.actions(node);\n });\n\n return () => cancelAnimationFrame(frame);\n }, [node]);\n\n // NOTE(Zan): Node ids may now contain a path like `${space}:${id}~comments`\n const attendableId = id.split(SLUG_PATH_SEPARATOR).at(0);\n const capabilities = useMemo(\n () => ({\n solo: breakpoint !== 'mobile' && (part === 'solo' || part === 'deck'),\n incrementStart: canIncrementStart,\n incrementEnd: canIncrementEnd,\n }),\n [breakpoint, part, canIncrementStart, canIncrementEnd],\n );\n\n const sigilActions = useMemo(\n () => node && [actions, graph.actions(node)].filter((a) => a.length > 0),\n [actions, node, graph],\n );\n const handleAction = useCallback((action: StackItemSigilAction) => {\n typeof action.data === 'function' && action.data?.({ node: action as Node, caller: DECK_PLUGIN });\n }, []);\n\n const handlePlankAction = useCallback(\n (eventType: DeckAction.PartAdjustment) => {\n if (eventType === 'solo') {\n return dispatch(createIntent(DeckAction.Adjust, { type: eventType, id }));\n } else if (eventType === 'close') {\n if (part === 'complementary') {\n return dispatch(\n createIntent(LayoutAction.UpdateComplementary, {\n part: 'complementary',\n options: { state: 'collapsed' },\n }),\n );\n } else {\n return dispatch(\n createIntent(LayoutAction.Close, { part: 'main', subject: [id], options: { state: false } }),\n );\n }\n } else {\n return dispatch(createIntent(DeckAction.Adjust, { type: eventType, id }));\n }\n },\n [dispatch, id, part],\n );\n\n return (\n <StackItem.Heading\n classNames={[\n 'plb-1 border-be border-separator items-stretch gap-1 sticky inline-start-12 app-drag',\n part === 'solo' ? soloInlinePadding : 'pli-1',\n ]}\n >\n <ActionRoot>\n {node && sigilActions ? (\n <StackItem.Sigil\n icon={icon}\n related={part === 'complementary'}\n attendableId={attendableId}\n triggerLabel={t('actions menu label')}\n actions={sigilActions}\n onAction={handleAction}\n >\n <Surface role='menu-footer' data={{ subject: node.data }} />\n </StackItem.Sigil>\n ) : (\n <StackItem.SigilButton>\n <span className='sr-only'>{label}</span>\n <Icon icon={icon} size={5} />\n </StackItem.SigilButton>\n )}\n </ActionRoot>\n <TextTooltip text={label} onlyWhenTruncating>\n <StackItem.HeadingLabel\n attendableId={attendableId}\n related={part === 'complementary'}\n {...(pending && { classNames: 'text-description' })}\n >\n {label}\n </StackItem.HeadingLabel>\n </TextTooltip>\n {node && part !== 'complementary' && <Surface role='navbar-end' data={{ subject: node.data }} />}\n <PlankControls\n capabilities={capabilities}\n isSolo={part === 'solo'}\n onClick={handlePlankAction}\n close={part === 'complementary' ? 'minify-end' : true}\n />\n </StackItem.Heading>\n );\n },\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef } from 'react';\n\nimport {\n Button,\n ButtonGroup,\n type ButtonGroupProps,\n type ButtonProps,\n Icon,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\n\nimport { DECK_PLUGIN } from '../../meta';\nimport { type DeckAction } from '../../types';\n\nexport type PlankControlHandler = (event: DeckAction.PartAdjustment) => void;\n\nexport type PlankCapabilities = {\n incrementStart?: boolean;\n incrementEnd?: boolean;\n solo?: boolean;\n};\n\nexport type PlankControlsProps = Omit<ButtonGroupProps, 'onClick'> & {\n onClick?: PlankControlHandler;\n variant?: 'hide-disabled' | 'default';\n close?: boolean | 'minify-start' | 'minify-end';\n capabilities: PlankCapabilities;\n isSolo?: boolean;\n pin?: 'start' | 'end' | 'both';\n};\n\nconst PlankControl = ({ icon, label, ...props }: Omit<ButtonProps, 'children'> & { label: string; icon: string }) => {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button variant='ghost' {...props}>\n <span className='sr-only'>{label}</span>\n <Icon icon={icon} size={5} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content side='bottom'>{label}</Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\n// TODO(wittjosiah): Duplicate of stack LayoutControls?\n// Translations were to be duplicated between packages.\n// NOTE(thure): Pinning & unpinning are disabled indefinitely.\nexport const PlankControls = forwardRef<HTMLDivElement, PlankControlsProps>(\n (\n { onClick, variant = 'default', capabilities: can, isSolo, pin, close = false, children, classNames, ...props },\n forwardedRef,\n ) => {\n const { t } = useTranslation(DECK_PLUGIN);\n const buttonClassNames = variant === 'hide-disabled' ? 'disabled:hidden pli-2 plb-3' : 'pli-2 plb-3';\n\n return (\n <ButtonGroup {...props} classNames={['app-no-drag', classNames]} ref={forwardedRef}>\n {/* {pin && !isSolo && ['both', 'start'].includes(pin) && (\n <PlankControl\n label={t('pin start label')}\n variant='ghost'\n classNames={buttonClassNames}\n onClick={() => onClick?.('pin-start')}\n icon='ph--caret-line-left--regular'\n />\n )} */}\n\n {can.solo && (\n <PlankControl\n label={isSolo ? t('show deck plank label') : t('show solo plank label')}\n classNames={buttonClassNames}\n onClick={() => onClick?.('solo')}\n icon={isSolo ? 'ph--corners-in--regular' : 'ph--corners-out--regular'}\n />\n )}\n\n {!isSolo && can.solo && (\n <>\n <PlankControl\n label={t('increment start label')}\n disabled={!can.incrementStart}\n classNames={buttonClassNames}\n onClick={() => onClick?.('increment-start')}\n icon='ph--caret-left--regular'\n />\n <PlankControl\n label={t('increment end label')}\n disabled={!can.incrementEnd}\n classNames={buttonClassNames}\n onClick={() => onClick?.('increment-end')}\n icon='ph--caret-right--regular'\n />\n </>\n )}\n\n {/* {pin && !isSolo && ['both', 'end'].includes(pin) && (\n <PlankControl\n label={t('pin end label')}\n classNames={buttonClassNames}\n onClick={() => onClick?.('pin-end')}\n icon='ph--caret-line-right--regular'\n />\n )} */}\n\n {close && !isSolo && (\n <PlankControl\n label={t(`${typeof close === 'string' ? 'minify' : 'close'} label`)}\n classNames={buttonClassNames}\n onClick={() => onClick?.('close')}\n data-testid='plankHeading.close'\n icon={\n close === 'minify-start'\n ? 'ph--caret-line-left--regular'\n : close === 'minify-end'\n ? 'ph--caret-line-right--regular'\n : 'ph--x--regular'\n }\n />\n )}\n {children}\n </ButtonGroup>\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { mx } from '@dxos/react-ui-theme';\n\nexport const soloInlinePadding =\n 'pis-[calc(env(safe-area-inset-left)+.25rem)] pie-[calc(env(safe-area-inset-left)+.25rem)]';\n\nconst sidebarToggleStyles = 'bs-[--rail-item] is-[--rail-item] absolute block-end-2 z-[1] !bg-deck lg:hidden';\n\nexport const fixedSidebarToggleStyles = mx(sidebarToggleStyles, 'inline-start-2');\n\nexport const fixedComplementarySidebarToggleStyles = mx(sidebarToggleStyles, 'inline-end-2');\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\n// TODO(burdon): Show skeleton: https://github.com/dxos/dxos/issues/8259\nexport const PlankLoading = () => {\n return <div role='none' className='grid place-items-center attention-surface' />;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework';\n\nimport { ToggleSidebarButton } from './SidebarButton';\nimport { layoutAppliesTopbar, useBreakpoints } from '../../util';\nimport { fixedSidebarToggleStyles } from '../fragments';\n\nexport const ContentEmpty = () => {\n const breakpoint = useBreakpoints();\n const topbar = layoutAppliesTopbar(breakpoint);\n return (\n <div\n role='none'\n className='grid place-items-center p-8 relative bg-deck'\n data-testid='layoutPlugin.firstRunMessage'\n >\n <Surface role='keyshortcuts' />\n {!topbar && <ToggleSidebarButton variant='default' classNames={fixedSidebarToggleStyles} />}\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface, useAppGraph } from '@dxos/app-framework';\nimport { fixedInsetFlexLayout } from '@dxos/react-ui-theme';\n\nimport { Fallback } from './Fallback';\nimport { SURFACE_PREFIX } from './constants';\nimport { useNode } from '../../hooks';\n\nexport const Fullscreen = ({ id }: { id?: string }) => {\n const { graph } = useAppGraph();\n const fullScreenNode = useNode(graph, id);\n\n return (\n <div role='none' className={fixedInsetFlexLayout}>\n <Surface\n role='main'\n limit={1}\n fallback={Fallback}\n data={{\n subject: fullScreenNode?.data,\n component: id?.startsWith(SURFACE_PREFIX) ? id.slice(SURFACE_PREFIX.length) : undefined,\n }}\n />\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { errorText, mx } from '@dxos/react-ui-theme';\n\nimport { DECK_PLUGIN } from '../../meta';\n\nexport const Fallback = () => {\n const { t } = useTranslation(DECK_PLUGIN);\n\n return (\n <div role='none' className='min-bs-screen is-full flex items-center justify-center p-8'>\n <p\n role='alert'\n className={mx(\n errorText,\n 'border border-error-400/50 rounded-lg flex items-center justify-center p-8 font-normal text-lg',\n )}\n >\n {t('plugin error message')}\n </p>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const NAV_ID = 'NavTree';\nexport const SURFACE_PREFIX = 'surface:';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { type KeyboardEvent, memo, useCallback, useLayoutEffect, useMemo, useRef } from 'react';\n\nimport {\n createIntent,\n LayoutAction,\n Surface,\n useCapability,\n useAppGraph,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { debounce } from '@dxos/async';\nimport { useAttendableAttributes } from '@dxos/react-ui-attention';\nimport { StackItem, railGridHorizontal } from '@dxos/react-ui-stack';\nimport { mainIntrinsicSize, mx } from '@dxos/react-ui-theme';\n\nimport { NodePlankHeading, type NodePlankHeadingProps } from './NodePlankHeading';\nimport { PlankContentError, PlankError } from './PlankError';\nimport { PlankLoading } from './PlankLoading';\nimport { DeckCapabilities } from '../../capabilities';\nimport { useNode, useMainSize } from '../../hooks';\nimport { DeckAction, type LayoutMode } from '../../types';\n\nconst UNKNOWN_ID = 'unknown_id';\n\nexport type PlankProps = {\n id?: string;\n part: NodePlankHeadingProps['part'];\n path?: string[];\n order?: number;\n active?: string[];\n layoutMode: LayoutMode;\n};\n\nexport const Plank = memo(({ id = UNKNOWN_ID, part, path, order, active, layoutMode }: PlankProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { deck, popoverAnchorId, scrollIntoView } = useCapability(DeckCapabilities.DeckState);\n const { graph } = useAppGraph();\n const node = useNode(graph, id);\n const rootElement = useRef<HTMLDivElement | null>(null);\n const canResize = layoutMode === 'deck';\n const Root = part === 'solo' ? 'article' : StackItem.Root;\n\n const attendableAttrs = useAttendableAttributes(id);\n const index = active ? active.findIndex((entryId) => entryId === id) : 0;\n const length = active?.length ?? 1;\n const canIncrementStart = active && index !== undefined && index > 0 && length !== undefined && length > 1;\n const canIncrementEnd = active && index !== undefined && index < length - 1 && length !== undefined;\n\n const key = id.split('+')[0];\n const size = deck.plankSizing[key] as number | undefined;\n const setSize = useCallback(\n debounce((nextSize: number) => {\n return dispatch(createIntent(DeckAction.UpdatePlankSize, { id: key, size: nextSize }));\n }, 200),\n [dispatch, key],\n );\n\n // TODO(thure): Tabster’s focus group should handle moving focus to Main, but something is blocking it.\n const handleKeyDown = useCallback((event: KeyboardEvent) => {\n if (event.target === event.currentTarget && event.key === 'Escape') {\n rootElement.current?.closest('main')?.focus();\n }\n }, []);\n\n useLayoutEffect(() => {\n if (scrollIntoView === id) {\n // TODO(wittjosiah): When focused on page load, the focus is always visible.\n // Forcing focus to something smaller than the plank prevents large focus ring in the interim.\n const focusable = rootElement.current?.querySelector('button') || rootElement.current;\n focusable?.focus({ preventScroll: true });\n layoutMode === 'deck' && focusable?.scrollIntoView({ behavior: 'smooth', inline: 'center' });\n // Clear the scroll into view state once it has been actioned.\n void dispatch(createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: undefined }));\n }\n }, [id, scrollIntoView, layoutMode]);\n\n const isSolo = layoutMode === 'solo' && part === 'solo';\n const isAttendable = isSolo || (layoutMode === 'deck' && part === 'deck');\n\n const sizeAttrs = useMainSize();\n\n const data = useMemo(\n () =>\n node && {\n subject: node.data,\n path,\n popoverAnchorId,\n },\n [node, node?.data, path, popoverAnchorId],\n );\n\n // TODO(wittjosiah): Change prop to accept a component.\n const placeholder = useMemo(() => <PlankLoading />, []);\n\n const className = mx(\n 'attention-surface relative',\n isSolo && mainIntrinsicSize,\n isSolo && railGridHorizontal,\n isSolo ? 'grid absolute inset-0' : '!border-separator border-li',\n );\n\n return (\n <Root\n ref={rootElement}\n data-testid='deck.plank'\n tabIndex={0}\n {...(part === 'solo'\n ? ({ ...sizeAttrs, className } as any)\n : {\n item: { id },\n size,\n onSizeChange: setSize,\n classNames: className,\n order,\n role: 'article',\n })}\n {...(isAttendable ? attendableAttrs : {})}\n onKeyDown={handleKeyDown}\n >\n {node ? (\n <>\n <NodePlankHeading\n id={id}\n part={part}\n node={node}\n canIncrementStart={canIncrementStart}\n canIncrementEnd={canIncrementEnd}\n popoverAnchorId={popoverAnchorId}\n />\n <Surface\n key={node.id}\n role='article'\n data={data}\n limit={1}\n fallback={PlankContentError}\n placeholder={placeholder}\n />\n </>\n ) : (\n <PlankError id={id} part={part} />\n )}\n {canResize && <StackItem.ResizeHandle />}\n </Root>\n );\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Surface, useCapability } from '@dxos/app-framework';\nimport { type Label, Main } from '@dxos/react-ui';\n\nimport { DeckCapabilities } from '../../capabilities';\nimport { DECK_PLUGIN } from '../../meta';\nimport { layoutAppliesTopbar, useBreakpoints, useHoistStatusbar } from '../../util';\n\nconst label = ['sidebar title', { ns: DECK_PLUGIN }] satisfies Label;\n\nexport const Sidebar = () => {\n const { popoverAnchorId, activeDeck: current } = useCapability(DeckCapabilities.DeckState);\n const breakpoint = useBreakpoints();\n const topbar = layoutAppliesTopbar(breakpoint);\n const hoistStatusbar = useHoistStatusbar(breakpoint);\n\n const navigationData = useMemo(\n () => ({ popoverAnchorId, topbar, hoistStatusbar, current }),\n [popoverAnchorId, topbar, hoistStatusbar, current],\n );\n\n return (\n <Main.NavigationSidebar\n label={label}\n classNames={[\n 'grid',\n topbar && 'block-start-[calc(env(safe-area-inset-top)+var(--rail-size))]',\n hoistStatusbar && 'block-end-[--statusbar-size]',\n ]}\n >\n <Surface role='navigation' data={navigationData} limit={1} />\n </Main.NavigationSidebar>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework';\nimport { useLandmarkMover } from '@dxos/react-ui';\n\nexport const StatusBar = ({ showHints }: { showHints?: boolean }) => {\n const mover = useLandmarkMover(undefined, '3');\n return (\n <div\n role='contentinfo'\n className='fixed block-end-0 inset-inline-0 bs-[--statusbar-size] border-bs border-separator z-[2] flex text-description'\n {...mover}\n >\n {showHints && <Surface role='hints' limit={1} />}\n <Surface role='status-bar' limit={1} />\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type LayoutAction } from '@dxos/app-framework';\nimport {\n Button,\n Icon,\n Toast as NaturalToast,\n toLocalizedString,\n useTranslation,\n type ToastRootProps,\n} from '@dxos/react-ui';\n\nimport { DECK_PLUGIN } from '../../meta';\n\n// TODO(wittjosiah): Render remaining duration as a progress bar within the toast.\nexport const Toast = ({\n id,\n title,\n description,\n icon,\n duration,\n actionLabel,\n actionAlt,\n closeLabel,\n onAction,\n onOpenChange,\n}: LayoutAction.Toast & Pick<ToastRootProps, 'onOpenChange'>) => {\n const { t } = useTranslation(DECK_PLUGIN);\n\n return (\n <NaturalToast.Root data-testid={id} defaultOpen duration={duration} onOpenChange={onOpenChange}>\n <NaturalToast.Body>\n <NaturalToast.Title classNames='items-center'>\n {icon && <Icon icon={icon} size={5} classNames='inline mr-1' />}\n {title && <span>{toLocalizedString(title, t)}</span>}\n </NaturalToast.Title>\n {description && (\n <NaturalToast.Description>{description && toLocalizedString(description, t)}</NaturalToast.Description>\n )}\n </NaturalToast.Body>\n <NaturalToast.Actions>\n {onAction && actionAlt && actionLabel && (\n <NaturalToast.Action altText={toLocalizedString(actionAlt, t)} asChild>\n <Button data-testid='toast.action' variant='primary' onClick={() => onAction?.()}>\n {toLocalizedString(actionLabel, t)}\n </Button>\n </NaturalToast.Action>\n )}\n {closeLabel && (\n <NaturalToast.Close asChild>\n <Button data-testid='toast.close'>{toLocalizedString(closeLabel, t)}</Button>\n </NaturalToast.Close>\n )}\n </NaturalToast.Actions>\n </NaturalToast.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Banner } from './Banner';\n\nexport const Topbar = () => {\n return <Banner variant='topbar' />;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { DECK_PLUGIN } from '../meta';\nimport {\n type NewPlankPositioning,\n NewPlankPositions,\n type DeckSettingsProps,\n type Overscroll,\n OverscrollOptions,\n} from '../types';\n\nconst isSocket = !!(globalThis as any).__args;\n\nexport const LayoutSettings = ({ settings }: { settings: DeckSettingsProps }) => {\n const { t } = useTranslation(DECK_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('select new plank positioning label')}>\n <Select.Root\n value={settings.newPlankPositioning ?? 'start'}\n onValueChange={(value) => (settings.newPlankPositioning = value as NewPlankPositioning)}\n >\n <Select.TriggerButton placeholder={t('select new plank positioning placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {NewPlankPositions.map((position) => (\n <Select.Option key={position} value={position}>\n {t(`settings new plank position ${position} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings overscroll label')}>\n <Select.Root\n value={settings.overscroll ?? 'none'}\n onValueChange={(value) => (settings.overscroll = value as Overscroll)}\n >\n <Select.TriggerButton placeholder={t('select overscroll placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {OverscrollOptions.map((option) => (\n <Select.Option key={option} value={option}>\n {t(`settings overscroll ${option} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n <DeprecatedFormInput label={t('settings show hints label')}>\n <Input.Switch checked={settings.showHints} onCheckedChange={(checked) => (settings.showHints = checked)} />\n </DeprecatedFormInput>\n {!isSocket && (\n <DeprecatedFormInput label={t('settings native redirect label')}>\n <Input.Switch\n checked={settings.enableNativeRedirect}\n onCheckedChange={(checked) => (settings.enableNativeRedirect = checked)}\n />\n </DeprecatedFormInput>\n )}\n <DeprecatedFormInput label={t('settings enable statusbar label')}>\n <Input.Switch\n checked={settings.enableStatusbar}\n onCheckedChange={(checked) => (settings.enableStatusbar = checked)}\n />\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "Surface", "mx", "React", "useCapability", "IconButton", "useTranslation", "ToggleSidebarButton", "classNames", "variant", "layoutContext", "useCapability", "DeckCapabilities", "MutableDeckState", "t", "useTranslation", "DECK_PLUGIN", "IconButton", "iconOnly", "icon", "size", "label", "onClick", "sidebarState", "CloseSidebarButton", "ToggleComplementarySidebarButton", "inR0", "complementarySidebarState", "tooltipSide", "undefined", "Banner", "variant", "classNames", "React", "header", "className", "mx", "CloseSidebarButton", "ToggleSidebarButton", "span", "div", "role", "Surface", "limit", "untracked", "React", "useCallback", "useEffect", "useMemo", "useRef", "Fragment", "useState", "LayoutAction", "createIntent", "Surface", "useCapability", "useIntentDispatcher", "usePluginManager", "AttentionCapabilities", "AlertDialog", "Dialog", "NaturalDialog", "Main", "Popover", "useOnTransition", "useMediaQuery", "Stack", "StackContext", "DEFAULT_HORIZONTAL_SIZE", "mainPaddingTransitions", "React", "Surface", "useAppGraph", "useAttended", "useEffect", "useState", "useNode", "graph", "id", "timeout", "nodeState", "setNodeState", "useState", "findNode", "undefined", "useEffect", "frame", "requestAnimationFrame", "node", "waitForNode", "cancelAnimationFrame", "useEffect", "ACTION_GROUP_TYPE", "ACTION_TYPE", "getGraph", "expandNodeActions", "node", "graph", "getGraph", "expand", "ACTION_GROUP_TYPE", "ACTION_TYPE", "useNodeActionExpander", "useEffect", "frame", "requestAnimationFrame", "cancelAnimationFrame", "useMainContext", "useMainSize", "navigationSidebarState", "complementarySidebarState", "useMainContext", "ActiveNode", "id", "useAttended", "graph", "useAppGraph", "activeNode", "useNode", "useNodeActionExpander", "React", "div", "role", "className", "Surface", "data", "subject", "limit", "React", "useCallback", "useEffect", "useMemo", "useState", "Fragment", "createIntent", "LayoutAction", "Surface", "useAppGraph", "useCapabilities", "useCapability", "useIntentDispatcher", "Main", "useTranslation", "toLocalizedString", "IconButton", "ScrollArea", "NaturalScrollArea", "useAttended", "Tabs", "byPosition", "React", "useEffect", "useState", "useTranslation", "descriptionText", "mx", "React", "Fragment", "memo", "useCallback", "useEffect", "useMemo", "createIntent", "LayoutAction", "Surface", "useAppGraph", "useIntentDispatcher", "Icon", "Popover", "toLocalizedString", "useTranslation", "StackItem", "TextTooltip", "React", "forwardRef", "Button", "ButtonGroup", "Icon", "Tooltip", "useTranslation", "PlankControl", "icon", "label", "props", "React", "Tooltip", "Root", "Trigger", "asChild", "Button", "variant", "span", "className", "Icon", "size", "Portal", "Content", "side", "PlankControls", "forwardRef", "onClick", "capabilities", "can", "isSolo", "pin", "close", "children", "classNames", "forwardedRef", "t", "useTranslation", "DECK_PLUGIN", "buttonClassNames", "ButtonGroup", "ref", "solo", "disabled", "incrementStart", "incrementEnd", "data-testid", "mx", "soloInlinePadding", "sidebarToggleStyles", "fixedSidebarToggleStyles", "mx", "fixedComplementarySidebarToggleStyles", "NodePlankHeading", "memo", "id", "part", "node", "canIncrementStart", "canIncrementEnd", "popoverAnchorId", "pending", "actions", "t", "useTranslation", "DECK_PLUGIN", "graph", "useAppGraph", "breakpoint", "useBreakpoints", "icon", "properties", "label", "toLocalizedString", "ns", "dispatchPromise", "dispatch", "useIntentDispatcher", "ActionRoot", "Popover", "Anchor", "Fragment", "useEffect", "frame", "requestAnimationFrame", "cancelAnimationFrame", "attendableId", "split", "SLUG_PATH_SEPARATOR", "at", "capabilities", "useMemo", "solo", "incrementStart", "incrementEnd", "sigilActions", "filter", "a", "length", "handleAction", "useCallback", "action", "data", "caller", "handlePlankAction", "eventType", "createIntent", "DeckAction", "Adjust", "type", "LayoutAction", "UpdateComplementary", "options", "state", "Close", "subject", "React", "StackItem", "Heading", "classNames", "soloInlinePadding", "Sigil", "related", "triggerLabel", "onAction", "Surface", "role", "SigilButton", "span", "className", "Icon", "size", "TextTooltip", "text", "onlyWhenTruncating", "HeadingLabel", "PlankControls", "isSolo", "onClick", "close", "React", "PlankLoading", "React", "div", "role", "className", "PlankContentError", "error", "t", "useTranslation", "DECK_PLUGIN", "errorString", "toString", "React", "div", "role", "className", "p", "mx", "descriptionText", "length", "PlankError", "id", "part", "node", "timedOut", "setTimedOut", "useState", "useEffect", "setTimeout", "NodePlankHeading", "pending", "PlankLoading", "label", "ns", "DECK_PLUGIN", "ComplementarySidebar", "current", "t", "useTranslation", "dispatchPromise", "dispatch", "useIntentDispatcher", "layout", "useCapability", "DeckCapabilities", "MutableDeckState", "attended", "useAttended", "graph", "useAppGraph", "node", "useNode", "breakpoint", "useBreakpoints", "topbar", "layoutAppliesTopbar", "hoistStatusbar", "useHoistStatusbar", "panels", "useCapabilities", "ComplementaryPanel", "availablePanels", "filter", "panel", "toSorted", "byPosition", "activePanelId", "find", "id", "internalValue", "setInternalValue", "useState", "useEffect", "handleTabClick", "useCallback", "event", "nextValue", "currentTarget", "getAttribute", "complementarySidebarState", "createIntent", "LayoutAction", "UpdateComplementary", "part", "subject", "data", "useMemo", "workspace", "activeDeck", "popoverAnchorId", "React", "Main", "classNames", "Tabs", "Root", "orientation", "verticalVariant", "value", "attendableId", "div", "role", "className", "Tablist", "map", "Tab", "key", "asChild", "IconButton", "toLocalizedString", "icon", "size", "iconOnly", "tooltipSide", "data-value", "variant", "onClick", "Surface", "limit", "ToggleComplementarySidebarButton", "Tabpanel", "inert", "ComplementarySidebarPanel", "ScrollArea", "children", "NaturalScrollArea", "Viewport", "Scrollbar", "Thumb", "Wrapper", "fixed", "Fragment", "h2", "fallback", "PlankContentError", "placeholder", "PlankLoading", "React", "Surface", "ContentEmpty", "breakpoint", "useBreakpoints", "topbar", "layoutAppliesTopbar", "React", "div", "role", "className", "data-testid", "Surface", "ToggleSidebarButton", "variant", "classNames", "fixedSidebarToggleStyles", "React", "Surface", "useAppGraph", "fixedInsetFlexLayout", "React", "useTranslation", "errorText", "mx", "Fallback", "t", "useTranslation", "DECK_PLUGIN", "React", "div", "role", "className", "p", "mx", "errorText", "SURFACE_PREFIX", "Fullscreen", "id", "graph", "useAppGraph", "fullScreenNode", "useNode", "React", "div", "role", "className", "fixedInsetFlexLayout", "Surface", "limit", "fallback", "Fallback", "data", "subject", "component", "startsWith", "SURFACE_PREFIX", "slice", "length", "undefined", "React", "memo", "useCallback", "useLayoutEffect", "useMemo", "useRef", "createIntent", "LayoutAction", "Surface", "useCapability", "useAppGraph", "useIntentDispatcher", "debounce", "useAttendableAttributes", "StackItem", "railGridHorizontal", "mainIntrinsicSize", "mx", "UNKNOWN_ID", "Plank", "memo", "id", "part", "path", "order", "active", "layoutMode", "dispatchPromise", "dispatch", "useIntentDispatcher", "deck", "popoverAnchorId", "scrollIntoView", "useCapability", "DeckCapabilities", "DeckState", "graph", "useAppGraph", "node", "useNode", "rootElement", "useRef", "canResize", "Root", "StackItem", "attendableAttrs", "useAttendableAttributes", "index", "findIndex", "entryId", "length", "canIncrementStart", "undefined", "canIncrementEnd", "key", "split", "size", "plankSizing", "setSize", "useCallback", "debounce", "nextSize", "createIntent", "DeckAction", "UpdatePlankSize", "handleKeyDown", "event", "target", "currentTarget", "current", "closest", "focus", "useLayoutEffect", "focusable", "querySelector", "preventScroll", "behavior", "inline", "LayoutAction", "ScrollIntoView", "subject", "isSolo", "isAttendable", "sizeAttrs", "useMainSize", "data", "useMemo", "placeholder", "React", "PlankLoading", "className", "mx", "mainIntrinsicSize", "railGridHorizontal", "ref", "data-testid", "tabIndex", "item", "onSizeChange", "classNames", "role", "onKeyDown", "NodePlankHeading", "Surface", "limit", "fallback", "PlankContentError", "PlankError", "ResizeHandle", "React", "useMemo", "Surface", "useCapability", "Main", "label", "ns", "DECK_PLUGIN", "Sidebar", "popoverAnchorId", "activeDeck", "current", "useCapability", "DeckCapabilities", "DeckState", "breakpoint", "useBreakpoints", "topbar", "layoutAppliesTopbar", "hoistStatusbar", "useHoistStatusbar", "navigationData", "useMemo", "React", "Main", "NavigationSidebar", "classNames", "Surface", "role", "data", "limit", "React", "Surface", "useLandmarkMover", "StatusBar", "showHints", "mover", "useLandmarkMover", "undefined", "React", "div", "role", "className", "Surface", "limit", "React", "Button", "Icon", "Toast", "NaturalToast", "toLocalizedString", "useTranslation", "Toast", "id", "title", "description", "icon", "duration", "actionLabel", "actionAlt", "closeLabel", "onAction", "onOpenChange", "t", "useTranslation", "DECK_PLUGIN", "React", "NaturalToast", "Root", "data-testid", "defaultOpen", "Body", "Title", "classNames", "Icon", "size", "span", "toLocalizedString", "Description", "Actions", "Action", "altText", "asChild", "Button", "variant", "onClick", "Close", "React", "Topbar", "React", "Banner", "variant", "PlankSeparator", "index", "React", "span", "role", "className", "style", "gridColumn", "DeckLayout", "overscroll", "showHints", "onDismissToast", "dispatchPromise", "dispatch", "useIntentDispatcher", "context", "useCapability", "DeckCapabilities", "MutableDeckState", "sidebarState", "complementarySidebarState", "complementarySidebarPanel", "dialogOpen", "dialogContent", "dialogBlockAlign", "dialogType", "popoverOpen", "popoverContent", "popoverAnchorId", "deck", "toasts", "active", "fullscreen", "solo", "plankSizing", "breakpoint", "useBreakpoints", "topbar", "layoutAppliesTopbar", "hoistStatusbar", "useHoistStatusbar", "pluginManager", "usePluginManager", "scrollLeftRef", "useRef", "deckRef", "delayedPopoverVisibility", "setDelayedPopoverVisibility", "useState", "useEffect", "setTimeout", "attended", "untracked", "attention", "requestCapability", "AttentionCapabilities", "Attention", "current", "firstId", "length", "document", "querySelector", "focus", "isNotMobile", "useMediaQuery", "ssr", "shouldRevert", "getMode", "createIntent", "LayoutAction", "SetLayoutMode", "part", "subject", "options", "mode", "revert", "handleResize", "useCallback", "window", "addEventListener", "removeEventListener", "restoreScroll", "scrollLeft", "layoutMode", "useOnTransition", "handleScroll", "event", "currentTarget", "target", "isEmpty", "padding", "useMemo", "calculateOverscroll", "mainPosition", "Dialog", "AlertDialog", "NaturalDialog", "handlePopoverOpenChange", "nextOpen", "undefined", "popoverSide", "handlePopoverClose", "Popover", "Root", "modal", "open", "onOpenChange", "ActiveNode", "Fullscreen", "id", "Main", "navigationSidebarState", "onNavigationSidebarStateChange", "next", "onComplementarySidebarStateChange", "Sidebar", "ComplementarySidebar", "Overlay", "Content", "bounce", "handlesFocus", "classNames", "ContentEmpty", "DEFAULT_HORIZONTAL_SIZE", "div", "inert", "ToggleSidebarButton", "fixedSidebarToggleStyles", "ToggleComplementarySidebarButton", "fixedComplementarySidebarToggleStyles", "Stack", "orientation", "size", "mainPaddingTransitions", "onScroll", "itemsCount", "ref", "map", "entryId", "Fragment", "key", "Plank", "order", "StackContext", "Provider", "value", "rail", "Topbar", "StatusBar", "Portal", "side", "onEscapeKeyDown", "Viewport", "Surface", "data", "limit", "Arrow", "fallback", "PlankContentError", "blockAlign", "toast", "Toast", "React", "Input", "Select", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "isSocket", "globalThis", "__args", "LayoutSettings", "settings", "t", "useTranslation", "DECK_PLUGIN", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Select", "Root", "value", "newPlankPositioning", "onValueChange", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "NewPlankPositions", "map", "position", "Option", "key", "overscroll", "OverscrollOptions", "option", "Input", "Switch", "checked", "showHints", "onCheckedChange", "enableNativeRedirect", "enableStatusbar"]
|
|
7
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|