@dxos/plugin-deck 0.8.4-main.74a063c4e0 → 0.8.4-main.765dc60934
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/DeckLayout-6SICSSUF.mjs +278 -0
- package/dist/lib/neutral/DeckLayout-6SICSSUF.mjs.map +7 -0
- package/dist/lib/neutral/DeckPlugin.mjs +70 -0
- package/dist/lib/neutral/DeckPlugin.mjs.map +7 -0
- package/dist/lib/neutral/DeckPlugin.node.mjs +18 -0
- package/dist/lib/neutral/DeckPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/DeckSettings-W5I57OXM.mjs +27 -0
- package/dist/lib/neutral/DeckSettings-W5I57OXM.mjs.map +7 -0
- package/dist/lib/{browser/add-toast-HW74YZHJ.mjs → neutral/add-toast-2OMTFZ2L.mjs} +5 -5
- package/dist/lib/{browser/add-toast-HW74YZHJ.mjs.map → neutral/add-toast-2OMTFZ2L.mjs.map} +2 -2
- package/dist/lib/{browser/adjust-OXVHZTBE.mjs → neutral/adjust-RXTF3IT3.mjs} +17 -20
- package/dist/lib/neutral/adjust-RXTF3IT3.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-GZYYAN5B.mjs +129 -0
- package/dist/lib/neutral/app-graph-builder-GZYYAN5B.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +23 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/check-app-scheme-A7FZVNZO.mjs +10 -0
- package/dist/lib/neutral/chunk-4MYX2NT3.mjs +1335 -0
- package/dist/lib/neutral/chunk-4MYX2NT3.mjs.map +7 -0
- package/dist/lib/neutral/chunk-64ODQD6S.mjs +282 -0
- package/dist/lib/neutral/chunk-64ODQD6S.mjs.map +7 -0
- package/dist/lib/neutral/chunk-6MOYMDKQ.mjs +8 -0
- package/dist/lib/neutral/chunk-6MOYMDKQ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GBIGQKYW.mjs +112 -0
- package/dist/lib/neutral/chunk-GBIGQKYW.mjs.map +7 -0
- package/dist/lib/{browser/chunk-KUTDCWZF.mjs → neutral/chunk-GLB73Q6U.mjs} +2 -10
- package/dist/lib/{node-esm/chunk-MLVJ2ODW.mjs.map → neutral/chunk-GLB73Q6U.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-JMYWDX4I.mjs +19 -0
- package/dist/lib/neutral/chunk-JMYWDX4I.mjs.map +7 -0
- package/dist/lib/neutral/chunk-VHETZ22W.mjs +101 -0
- package/dist/lib/neutral/chunk-VHETZ22W.mjs.map +7 -0
- package/dist/lib/{browser/chunk-DF2VZ6W3.mjs → neutral/chunk-ZYYOSX5I.mjs} +1 -1
- package/dist/lib/{browser/chunk-DF2VZ6W3.mjs.map → neutral/chunk-ZYYOSX5I.mjs.map} +2 -2
- package/dist/lib/{browser/close-N5FCDT7Y.mjs → neutral/close-DG5IVQCE.mjs} +12 -12
- package/dist/lib/{browser/close-N5FCDT7Y.mjs.map → neutral/close-DG5IVQCE.mjs.map} +2 -2
- package/dist/lib/neutral/components/index.mjs +126 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +32 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +178 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/{node-esm/types → neutral}/index.mjs +13 -8
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/{browser/open-J5HV42UN.mjs → neutral/open-SGYZO7RF.mjs} +21 -24
- package/dist/lib/neutral/open-SGYZO7RF.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-266CVMTW.mjs +13 -0
- package/dist/lib/neutral/operation-handler-266CVMTW.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-root-WZ6KH27J.mjs +41 -0
- package/dist/lib/neutral/react-root-WZ6KH27J.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-KAAZDHV3.mjs +34 -0
- package/dist/lib/neutral/react-surface-KAAZDHV3.mjs.map +7 -0
- package/dist/lib/{browser/revert-workspace-VWNN7RYF.mjs → neutral/revert-workspace-V6D7W6CL.mjs} +5 -5
- package/dist/lib/{browser/revert-workspace-VWNN7RYF.mjs.map → neutral/revert-workspace-V6D7W6CL.mjs.map} +2 -2
- package/dist/lib/{browser/scroll-into-view-CA7E3PSO.mjs → neutral/scroll-into-view-UM446Q2T.mjs} +5 -5
- package/dist/lib/{browser/scroll-into-view-CA7E3PSO.mjs.map → neutral/scroll-into-view-UM446Q2T.mjs.map} +2 -2
- package/dist/lib/{browser/set-YVWQQZLE.mjs → neutral/set-JFFKT32S.mjs} +11 -11
- package/dist/lib/{browser/set-YVWQQZLE.mjs.map → neutral/set-JFFKT32S.mjs.map} +2 -2
- package/dist/lib/{browser/set-layout-mode-DRNBZHE7.mjs → neutral/set-layout-mode-I4YV5V2Y.mjs} +10 -15
- package/dist/lib/neutral/set-layout-mode-I4YV5V2Y.mjs.map +7 -0
- package/dist/lib/neutral/settings-FE7AC5VS.mjs +34 -0
- package/dist/lib/neutral/settings-FE7AC5VS.mjs.map +7 -0
- package/dist/lib/{browser/show-undo-KA2XHQ6E.mjs → neutral/show-undo-ZCMF4J2Q.mjs} +5 -5
- package/dist/lib/{browser/show-undo-KA2XHQ6E.mjs.map → neutral/show-undo-ZCMF4J2Q.mjs.map} +2 -2
- package/dist/lib/neutral/state-IIDXMQUO.mjs +86 -0
- package/dist/lib/neutral/state-IIDXMQUO.mjs.map +7 -0
- package/dist/lib/{browser/switch-workspace-U7SPENHU.mjs → neutral/switch-workspace-CVDYG5YZ.mjs} +8 -16
- package/dist/lib/neutral/switch-workspace-CVDYG5YZ.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +57 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/types/index.mjs +7 -5
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/update-companion-VPCM7FJX.mjs +32 -0
- package/dist/lib/neutral/update-companion-VPCM7FJX.mjs.map +7 -0
- package/dist/lib/{browser/update-complementary-W6UVLWLI.mjs → neutral/update-complementary-SEQ6DDWA.mjs} +6 -6
- package/dist/lib/neutral/update-complementary-SEQ6DDWA.mjs.map +7 -0
- package/dist/lib/{browser/update-dialog-VCTI7WKS.mjs → neutral/update-dialog-VDHYE4QH.mjs} +5 -5
- package/dist/lib/{browser/update-dialog-VCTI7WKS.mjs.map → neutral/update-dialog-VDHYE4QH.mjs.map} +2 -2
- package/dist/lib/neutral/update-plank-size-ZXOUZD7Y.mjs +26 -0
- package/dist/lib/neutral/update-plank-size-ZXOUZD7Y.mjs.map +7 -0
- package/dist/lib/{browser/update-popover-4EVVZSB6.mjs → neutral/update-popover-VFP32W57.mjs} +5 -5
- package/dist/lib/{browser/update-popover-4EVVZSB6.mjs.map → neutral/update-popover-VFP32W57.mjs.map} +2 -2
- package/dist/lib/{browser/update-sidebar-PAZARC4Q.mjs → neutral/update-sidebar-O5HBOXYH.mjs} +6 -6
- package/dist/lib/{browser/update-sidebar-PAZARC4Q.mjs.map → neutral/update-sidebar-O5HBOXYH.mjs.map} +2 -2
- package/dist/lib/neutral/url-handler-3QTKEM2K.mjs +184 -0
- package/dist/lib/neutral/url-handler-3QTKEM2K.mjs.map +7 -0
- package/dist/types/src/DeckPlugin.d.ts +1 -0
- package/dist/types/src/DeckPlugin.d.ts.map +1 -1
- package/dist/types/src/DeckPlugin.node.d.ts +4 -0
- package/dist/types/src/DeckPlugin.node.d.ts.map +1 -0
- package/dist/types/src/DeckPlugin.test.d.ts +2 -0
- package/dist/types/src/DeckPlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/check-app-scheme.d.ts +1 -1
- package/dist/types/src/capabilities/check-app-scheme.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +18 -30
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +2 -13
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +16 -16
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/tools.d.ts.map +1 -1
- package/dist/types/src/capabilities/url-handler.d.ts +1 -1
- package/dist/types/src/capabilities/url-handler.d.ts.map +1 -1
- package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +1 -1
- package/dist/types/src/components/DeckSettings/DeckSettings.stories.d.ts +42 -52
- package/dist/types/src/components/DeckSettings/DeckSettings.stories.d.ts.map +1 -1
- package/dist/types/src/components/Matrix/Matrix.d.ts +2 -10
- package/dist/types/src/components/Matrix/Matrix.d.ts.map +1 -1
- package/dist/types/src/components/Matrix/Matrix.stories.d.ts.map +1 -1
- package/dist/types/src/containers/Deck/Banner.d.ts +1 -1
- package/dist/types/src/containers/Deck/Banner.d.ts.map +1 -1
- package/dist/types/src/containers/Deck/Deck.d.ts.map +1 -1
- package/dist/types/src/containers/Deck/Deck.stories.d.ts +42 -52
- package/dist/types/src/containers/Deck/Deck.stories.d.ts.map +1 -1
- package/dist/types/src/containers/Deck/DeckContent.d.ts +4 -4
- package/dist/types/src/containers/Deck/DeckContent.d.ts.map +1 -1
- package/dist/types/src/containers/Deck/DeckRoot.d.ts +5 -8
- package/dist/types/src/containers/Deck/DeckRoot.d.ts.map +1 -1
- package/dist/types/src/containers/Deck/DeckViewport.d.ts +4 -7
- package/dist/types/src/containers/Deck/DeckViewport.d.ts.map +1 -1
- package/dist/types/src/containers/Deck/StatusBar.d.ts.map +1 -1
- package/dist/types/src/containers/DeckLayout/DeckLayout.d.ts.map +1 -1
- package/dist/types/src/containers/DeckLayout/DeckLayout.stories.d.ts +42 -52
- package/dist/types/src/containers/DeckLayout/DeckLayout.stories.d.ts.map +1 -1
- package/dist/types/src/containers/DeckLayout/Dialog.d.ts.map +1 -1
- package/dist/types/src/containers/DeckLayout/Popover.d.ts.map +1 -1
- package/dist/types/src/containers/DeckLayout/Toast.d.ts +1 -1
- package/dist/types/src/containers/DeckLayout/Toast.d.ts.map +1 -1
- package/dist/types/src/containers/DeckLayout/index.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/Plank.d.ts +2 -6
- package/dist/types/src/containers/Plank/Plank.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/Plank.stories.d.ts +43 -52
- package/dist/types/src/containers/Plank/Plank.stories.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/PlankComponent.d.ts +2 -0
- package/dist/types/src/containers/Plank/PlankComponent.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/PlankContent.d.ts +1 -5
- package/dist/types/src/containers/Plank/PlankContent.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/PlankControls.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/PlankError.d.ts +1 -1
- package/dist/types/src/containers/Plank/PlankError.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/PlankHeading.d.ts +2 -1
- package/dist/types/src/containers/Plank/PlankHeading.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/PlankRoot.d.ts +3 -3
- package/dist/types/src/containers/Plank/PlankRoot.d.ts.map +1 -1
- package/dist/types/src/containers/Sidebar/ComplementarySidebar.d.ts.map +1 -1
- package/dist/types/src/containers/Sidebar/SidebarButton.d.ts +1 -1
- package/dist/types/src/containers/Sidebar/SidebarButton.d.ts.map +1 -1
- package/dist/types/src/hooks/useBreakpoints.d.ts +1 -1
- package/dist/types/src/hooks/useCompanions.d.ts.map +1 -1
- package/dist/types/src/hooks/useDeckCompanions.d.ts +2 -1
- package/dist/types/src/hooks/useDeckCompanions.d.ts.map +1 -1
- package/dist/types/src/hooks/useHoistStatusbar.d.ts.map +1 -1
- package/dist/types/src/hooks/useMainSize.d.ts.map +1 -1
- package/dist/types/src/hooks/useNodeActionExpander.d.ts.map +1 -1
- package/dist/types/src/hooks/useSelectedCompanion.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/layout.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/add-toast.d.ts +1 -1
- package/dist/types/src/operations/add-toast.d.ts.map +1 -1
- package/dist/types/src/operations/adjust.d.ts +3 -3
- package/dist/types/src/operations/adjust.d.ts.map +1 -1
- package/dist/types/src/operations/close.d.ts +1 -1
- package/dist/types/src/operations/close.d.ts.map +1 -1
- package/dist/types/src/operations/helpers.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts +1 -2
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/open.d.ts +1 -1
- package/dist/types/src/operations/open.d.ts.map +1 -1
- package/dist/types/src/operations/revert-workspace.d.ts +1 -1
- package/dist/types/src/operations/revert-workspace.d.ts.map +1 -1
- package/dist/types/src/operations/scroll-into-view.d.ts +1 -1
- package/dist/types/src/operations/scroll-into-view.d.ts.map +1 -1
- package/dist/types/src/operations/set-layout-mode.d.ts +1 -1
- package/dist/types/src/operations/set-layout-mode.d.ts.map +1 -1
- package/dist/types/src/operations/set.d.ts +1 -1
- package/dist/types/src/operations/set.d.ts.map +1 -1
- package/dist/types/src/operations/show-undo.d.ts +1 -1
- package/dist/types/src/operations/show-undo.d.ts.map +1 -1
- package/dist/types/src/operations/switch-workspace.d.ts +1 -1
- package/dist/types/src/operations/switch-workspace.d.ts.map +1 -1
- package/dist/types/src/operations/update-companion.d.ts +5 -0
- package/dist/types/src/operations/update-companion.d.ts.map +1 -0
- package/dist/types/src/operations/update-complementary.d.ts +1 -1
- package/dist/types/src/operations/update-complementary.d.ts.map +1 -1
- package/dist/types/src/operations/update-dialog.d.ts +1 -1
- package/dist/types/src/operations/update-dialog.d.ts.map +1 -1
- package/dist/types/src/operations/update-plank-size.d.ts +3 -3
- package/dist/types/src/operations/update-plank-size.d.ts.map +1 -1
- package/dist/types/src/operations/update-popover.d.ts +1 -1
- package/dist/types/src/operations/update-popover.d.ts.map +1 -1
- package/dist/types/src/operations/update-sidebar.d.ts +1 -1
- package/dist/types/src/operations/update-sidebar.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +42 -53
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/DeckCapabilities.d.ts +188 -0
- package/dist/types/src/types/DeckCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/DeckEvents.d.ts +5 -0
- package/dist/types/src/types/DeckEvents.d.ts.map +1 -0
- package/dist/types/src/{operations/definitions.d.ts → types/DeckOperation.d.ts} +3 -6
- package/dist/types/src/types/DeckOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +7 -6
- package/dist/types/src/types/Settings.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +3 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +0 -11
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/util/layoutAppliesTopbar.d.ts.map +1 -1
- package/dist/types/src/util/plank-url-params.d.ts.map +1 -1
- package/dist/types/src/util/sanitize-persisted-state.d.ts.map +1 -1
- package/dist/types/src/util/set-active.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +104 -78
- package/src/DeckPlugin.node.ts +17 -0
- package/src/DeckPlugin.test.ts +27 -0
- package/src/DeckPlugin.ts +6 -5
- package/src/capabilities/app-graph-builder.ts +6 -6
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/operation-handler.ts +1 -1
- package/src/capabilities/react-surface.tsx +1 -2
- package/src/capabilities/settings.ts +1 -1
- package/src/capabilities/tools.ts +3 -3
- package/src/capabilities/url-handler.ts +6 -1
- package/src/components/DeckSettings/DeckSettings.stories.tsx +2 -1
- package/src/components/DeckSettings/DeckSettings.tsx +8 -47
- package/src/components/Matrix/Matrix.stories.tsx +22 -15
- package/src/components/Matrix/Matrix.tsx +1 -1
- package/src/components/Matrix/SPEC.md +1 -1
- package/src/containers/Deck/Banner.tsx +2 -2
- package/src/containers/Deck/Deck.stories.tsx +1 -3
- package/src/containers/Deck/DeckContent.tsx +1 -1
- package/src/containers/Deck/DeckViewport.tsx +14 -19
- package/src/containers/DeckLayout/ActiveNode.tsx +3 -3
- package/src/containers/DeckLayout/DeckLayout.stories.tsx +90 -90
- package/src/containers/DeckLayout/Dialog.tsx +8 -2
- package/src/containers/DeckLayout/Fallback.tsx +1 -1
- package/src/containers/DeckLayout/Popover.tsx +6 -4
- package/src/containers/Plank/Plank.stories.tsx +11 -8
- package/src/containers/Plank/PlankComponent.tsx +58 -21
- package/src/containers/Plank/PlankControls.tsx +2 -2
- package/src/containers/Plank/PlankError.tsx +1 -1
- package/src/containers/Plank/PlankHeading.tsx +18 -8
- package/src/containers/Plank/PlankLoading.tsx +1 -1
- package/src/containers/Plank/PlankRoot.tsx +3 -3
- package/src/containers/Sidebar/ComplementarySidebar.tsx +7 -8
- package/src/containers/Sidebar/Sidebar.tsx +2 -2
- package/src/containers/Sidebar/SidebarButton.tsx +7 -1
- package/src/hooks/useDeckCompanions.ts +2 -1
- package/src/index.ts +1 -3
- package/src/meta.ts +1 -0
- package/src/operations/add-toast.ts +1 -1
- package/src/operations/adjust.ts +5 -6
- package/src/operations/close.ts +2 -2
- package/src/operations/index.ts +2 -4
- package/src/operations/open.ts +7 -7
- package/src/operations/revert-workspace.ts +1 -1
- package/src/operations/scroll-into-view.ts +1 -1
- package/src/operations/set-layout-mode.ts +1 -1
- package/src/operations/set.ts +2 -2
- package/src/operations/show-undo.ts +1 -1
- package/src/operations/switch-workspace.ts +1 -1
- package/src/operations/{change-companion.ts → update-companion.ts} +5 -5
- package/src/operations/update-complementary.ts +1 -1
- package/src/operations/update-dialog.ts +1 -1
- package/src/operations/update-plank-size.ts +3 -4
- package/src/operations/update-popover.ts +1 -1
- package/src/operations/update-sidebar.ts +1 -1
- package/src/plugin.ts +11 -0
- package/src/translations.ts +2 -12
- package/src/types/DeckCapabilities.ts +34 -0
- package/src/types/DeckEvents.ts +21 -0
- package/src/{operations/definitions.ts → types/DeckOperation.ts} +4 -14
- package/src/types/Settings.ts +31 -6
- package/src/types/index.ts +4 -2
- package/src/types/schema.ts +0 -9
- package/dist/lib/browser/adjust-OXVHZTBE.mjs.map +0 -7
- package/dist/lib/browser/change-companion-Z3Q2UPX4.mjs +0 -34
- package/dist/lib/browser/change-companion-Z3Q2UPX4.mjs.map +0 -7
- package/dist/lib/browser/chunk-2YNVGCOQ.mjs +0 -88
- package/dist/lib/browser/chunk-2YNVGCOQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-BRZAVPMC.mjs +0 -48
- package/dist/lib/browser/chunk-BRZAVPMC.mjs.map +0 -7
- package/dist/lib/browser/chunk-GFOCQS7S.mjs +0 -216
- package/dist/lib/browser/chunk-GFOCQS7S.mjs.map +0 -7
- package/dist/lib/browser/chunk-KUTDCWZF.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -201
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/open-J5HV42UN.mjs.map +0 -7
- package/dist/lib/browser/operations/index.mjs +0 -13
- package/dist/lib/browser/operations/index.mjs.map +0 -7
- package/dist/lib/browser/set-layout-mode-DRNBZHE7.mjs.map +0 -7
- package/dist/lib/browser/switch-workspace-U7SPENHU.mjs.map +0 -7
- package/dist/lib/browser/update-complementary-W6UVLWLI.mjs.map +0 -7
- package/dist/lib/browser/update-plank-size-6TPVOYLT.mjs +0 -28
- package/dist/lib/browser/update-plank-size-6TPVOYLT.mjs.map +0 -7
- package/dist/lib/node-esm/add-toast-FA7NTWKA.mjs +0 -25
- package/dist/lib/node-esm/add-toast-FA7NTWKA.mjs.map +0 -7
- package/dist/lib/node-esm/adjust-G6FGZW6H.mjs +0 -97
- package/dist/lib/node-esm/adjust-G6FGZW6H.mjs.map +0 -7
- package/dist/lib/node-esm/change-companion-V6343HMY.mjs +0 -35
- package/dist/lib/node-esm/change-companion-V6343HMY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6BWQJDNT.mjs +0 -217
- package/dist/lib/node-esm/chunk-6BWQJDNT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GI5JXNBT.mjs +0 -89
- package/dist/lib/node-esm/chunk-GI5JXNBT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-IRWCUYJY.mjs +0 -71
- package/dist/lib/node-esm/chunk-IRWCUYJY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MB4SDDVY.mjs +0 -50
- package/dist/lib/node-esm/chunk-MB4SDDVY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MLVJ2ODW.mjs +0 -32
- package/dist/lib/node-esm/close-AMA63RJN.mjs +0 -45
- package/dist/lib/node-esm/close-AMA63RJN.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -202
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/open-KRCARMEB.mjs +0 -151
- package/dist/lib/node-esm/open-KRCARMEB.mjs.map +0 -7
- package/dist/lib/node-esm/operations/index.mjs +0 -14
- package/dist/lib/node-esm/operations/index.mjs.map +0 -7
- package/dist/lib/node-esm/revert-workspace-A2K3JQFS.mjs +0 -22
- package/dist/lib/node-esm/revert-workspace-A2K3JQFS.mjs.map +0 -7
- package/dist/lib/node-esm/scroll-into-view-B2U4RQK7.mjs +0 -22
- package/dist/lib/node-esm/scroll-into-view-B2U4RQK7.mjs.map +0 -7
- package/dist/lib/node-esm/set-HCWNW76S.mjs +0 -38
- package/dist/lib/node-esm/set-HCWNW76S.mjs.map +0 -7
- package/dist/lib/node-esm/set-layout-mode-E27AI5KE.mjs +0 -91
- package/dist/lib/node-esm/set-layout-mode-E27AI5KE.mjs.map +0 -7
- package/dist/lib/node-esm/show-undo-YTZXH422.mjs +0 -60
- package/dist/lib/node-esm/show-undo-YTZXH422.mjs.map +0 -7
- package/dist/lib/node-esm/switch-workspace-AQCNGS4Y.mjs +0 -69
- package/dist/lib/node-esm/switch-workspace-AQCNGS4Y.mjs.map +0 -7
- package/dist/lib/node-esm/update-complementary-7HIRM7OT.mjs +0 -29
- package/dist/lib/node-esm/update-complementary-7HIRM7OT.mjs.map +0 -7
- package/dist/lib/node-esm/update-dialog-F3JF7MBZ.mjs +0 -30
- package/dist/lib/node-esm/update-dialog-F3JF7MBZ.mjs.map +0 -7
- package/dist/lib/node-esm/update-plank-size-IIZKU7YR.mjs +0 -29
- package/dist/lib/node-esm/update-plank-size-IIZKU7YR.mjs.map +0 -7
- package/dist/lib/node-esm/update-popover-RO5QEH4C.mjs +0 -34
- package/dist/lib/node-esm/update-popover-RO5QEH4C.mjs.map +0 -7
- package/dist/lib/node-esm/update-sidebar-2RX6VLEK.mjs +0 -26
- package/dist/lib/node-esm/update-sidebar-2RX6VLEK.mjs.map +0 -7
- package/dist/types/src/operations/change-companion.d.ts +0 -5
- package/dist/types/src/operations/change-companion.d.ts.map +0 -1
- package/dist/types/src/operations/definitions.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -202
- package/dist/types/src/types/capabilities.d.ts.map +0 -1
- package/dist/types/src/types/events.d.ts +0 -7
- package/dist/types/src/types/events.d.ts.map +0 -1
- package/src/types/capabilities.ts +0 -35
- package/src/types/events.ts +0 -21
- /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/check-app-scheme-A7FZVNZO.mjs.map} +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
- /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
|
@@ -106,7 +106,7 @@ IDs with a `~` prefix on the last segment (e.g., `root/obj/~settings`) mark the
|
|
|
106
106
|
| -------------- | ----------- | ------------------------------------------------------ |
|
|
107
107
|
| DOM focus | Browser | `tabIndex`, `focus()`, focus/blur events |
|
|
108
108
|
| Attention | App-wide | `data-attendable-id` + `RootAttentionProvider` capture |
|
|
109
|
-
| Matrix.current | Matrix only | `focusin` on viewport → resolve `data-
|
|
109
|
+
| Matrix.current | Matrix only | `focusin` on viewport → resolve `data-object-id` |
|
|
110
110
|
|
|
111
111
|
Currently, Matrix.current and the attention system are independent. For the Matrix to participate in the attention system, tiles would need `data-attendable-id` attributes and the `RootAttentionProvider` would track them automatically via DOM focus. The `onCurrentChange` callback on Matrix.Root could then be driven by attention rather than raw focus events.
|
|
112
112
|
|
|
@@ -27,8 +27,8 @@ export const Banner = ({ variant, classNames }: ThemedClassName<{ variant?: 'top
|
|
|
27
27
|
{variant === 'sidebar' ? <CloseSidebarButton /> : <ToggleSidebarButton />}
|
|
28
28
|
<span className='self-center grow ms-1'>{t('current-app.name', { ns: osTranslations })}</span>
|
|
29
29
|
{variant === 'topbar' && (
|
|
30
|
-
<div
|
|
31
|
-
<div
|
|
30
|
+
<div className='absolute inset-0 pointer-events-none'>
|
|
31
|
+
<div className='grid h-full pointer-fine:p-1 max-w-md mx-auto pointer-events-auto'>
|
|
32
32
|
<Surface.Surface role='search-input' limit={1} />
|
|
33
33
|
</div>
|
|
34
34
|
</div>
|
|
@@ -10,14 +10,13 @@ import { withPluginManager } from '@dxos/app-framework/testing';
|
|
|
10
10
|
import { useAtomCapability, usePluginManager } from '@dxos/app-framework/ui';
|
|
11
11
|
import { AppActivationEvents } from '@dxos/app-toolkit';
|
|
12
12
|
import { corePlugins } from '@dxos/plugin-testing';
|
|
13
|
-
import { withLayout } from '@dxos/react-ui/testing';
|
|
14
13
|
|
|
15
14
|
import { DeckSettings, DeckState } from '#capabilities';
|
|
16
15
|
import { useDeckState } from '#hooks';
|
|
17
16
|
import { meta as pluginMeta } from '#meta';
|
|
17
|
+
import { translations } from '#translations';
|
|
18
18
|
import { DeckCapabilities, getMode } from '#types';
|
|
19
19
|
|
|
20
|
-
import { translations } from '../../translations';
|
|
21
20
|
import { Deck } from './Deck';
|
|
22
21
|
|
|
23
22
|
const TestPlugin = Plugin.define(pluginMeta).pipe(
|
|
@@ -64,7 +63,6 @@ const meta = {
|
|
|
64
63
|
title: 'plugins/plugin-deck/containers/Deck',
|
|
65
64
|
component: DefaultStory,
|
|
66
65
|
decorators: [
|
|
67
|
-
withLayout({ layout: 'fullscreen' }),
|
|
68
66
|
withPluginManager({
|
|
69
67
|
plugins: [...corePlugins(), TestPlugin()],
|
|
70
68
|
setupEvents: [AppActivationEvents.SetupSettings],
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { type PropsWithChildren, useCallback, useEffect, useRef } from 'react';
|
|
6
6
|
|
|
7
|
-
import { AttentionCapabilities } from '@dxos/plugin-attention
|
|
7
|
+
import { AttentionCapabilities } from '@dxos/plugin-attention';
|
|
8
8
|
import { Main, useMediaQuery } from '@dxos/react-ui';
|
|
9
9
|
|
|
10
10
|
import { useBreakpoints, useHoistStatusbar } from '#hooks';
|
|
@@ -25,14 +25,14 @@ import { hoverableControls, hoverableFocusedWithinControls, mainPaddingTransitio
|
|
|
25
25
|
|
|
26
26
|
import { useBreakpoints, useCompanions, useDeckState, useHoistStatusbar, useSelectedCompanion } from '#hooks';
|
|
27
27
|
import { meta } from '#meta';
|
|
28
|
-
import { DeckOperation } from '#
|
|
28
|
+
import { DeckOperation } from '#types';
|
|
29
29
|
import { getMode } from '#types';
|
|
30
30
|
|
|
31
31
|
import { layoutAppliesTopbar } from '../../util';
|
|
32
32
|
import { Plank, PlankRootProps, type PlankComponentProps } from '../Plank';
|
|
33
33
|
import {
|
|
34
|
-
ToggleComplementarySidebarButton as
|
|
35
|
-
ToggleSidebarButton as
|
|
34
|
+
ToggleComplementarySidebarButton as NaturalToggleComplementarySidebarButton,
|
|
35
|
+
ToggleSidebarButton as NaturalToggleSidebarButton,
|
|
36
36
|
} from '../Sidebar';
|
|
37
37
|
import { useDeckContext } from './DeckRoot';
|
|
38
38
|
|
|
@@ -49,7 +49,7 @@ export type DeckViewportProps = PropsWithChildren;
|
|
|
49
49
|
*/
|
|
50
50
|
export const DeckViewport = ({ children }: DeckViewportProps) => {
|
|
51
51
|
const {
|
|
52
|
-
deck: { active,
|
|
52
|
+
deck: { active, plankSizing },
|
|
53
53
|
state: { sidebarState, complementarySidebarState },
|
|
54
54
|
settings,
|
|
55
55
|
layoutMode,
|
|
@@ -105,11 +105,7 @@ export const DeckContentEmpty = () => {
|
|
|
105
105
|
const layoutMode = getMode(deck);
|
|
106
106
|
const topbar = layoutAppliesTopbar(breakpoint, layoutMode);
|
|
107
107
|
return (
|
|
108
|
-
<div
|
|
109
|
-
role='none'
|
|
110
|
-
className='grid place-items-center p-8 relative bg-deck-surface'
|
|
111
|
-
data-testid='layoutPlugin.firstRunMessage'
|
|
112
|
-
>
|
|
108
|
+
<div className='grid place-items-center p-8 relative bg-deck-surface' data-testid='layoutPlugin.firstRunMessage'>
|
|
113
109
|
<Surface.Surface role='keyshortcuts' />
|
|
114
110
|
{!topbar && <ToggleSidebarButton />}
|
|
115
111
|
</div>
|
|
@@ -149,7 +145,7 @@ export const DeckSoloMode = () => {
|
|
|
149
145
|
}, [fullscreen, onLayoutChange]);
|
|
150
146
|
|
|
151
147
|
return (
|
|
152
|
-
<div
|
|
148
|
+
<div className='relative overflow-hidden bg-deck-surface'>
|
|
153
149
|
<DeckSidebarToggles topbar={topbar} fullscreen={fullscreen} />
|
|
154
150
|
{fullscreen && <ExitFullscreenButton onExit={() => onLayoutChange({ mode: 'solo--fullscreen' })} />}
|
|
155
151
|
<StackContext.Provider
|
|
@@ -233,7 +229,7 @@ export const DeckMultiMode = () => {
|
|
|
233
229
|
}, [active, lastPlankCompanions.length]);
|
|
234
230
|
|
|
235
231
|
return (
|
|
236
|
-
<div
|
|
232
|
+
<div className='relative bg-deck-surface overflow-hidden'>
|
|
237
233
|
<DeckSidebarToggles topbar={topbar} fullscreen={fullscreen} />
|
|
238
234
|
<Stack
|
|
239
235
|
classNames={[
|
|
@@ -272,16 +268,15 @@ export const DeckMultiMode = () => {
|
|
|
272
268
|
|
|
273
269
|
const sidebarToggleStyles = 'h-(--dx-rail-item) w-(--dx-rail-item) absolute bottom-2 z-[1] bg-deck-surface! lg:hidden';
|
|
274
270
|
|
|
275
|
-
const ToggleSidebarButton = () => <
|
|
271
|
+
const ToggleSidebarButton = () => <NaturalToggleSidebarButton classNames={mx(sidebarToggleStyles, 'left-2')} />;
|
|
276
272
|
const ToggleComplementarySidebarButton = () => (
|
|
277
|
-
<
|
|
273
|
+
<NaturalToggleComplementarySidebarButton classNames={mx(sidebarToggleStyles, 'right-2')} />
|
|
278
274
|
);
|
|
279
275
|
|
|
280
276
|
const ExitFullscreenButton = ({ onExit }: { onExit: () => void }) => {
|
|
281
277
|
const { t } = useTranslation(meta.id);
|
|
282
278
|
return (
|
|
283
279
|
<div
|
|
284
|
-
role='none'
|
|
285
280
|
className={mx(
|
|
286
281
|
'fixed top-2 right-2 z-[1]',
|
|
287
282
|
hoverableControls,
|
|
@@ -393,8 +388,8 @@ const PlankContainer = memo(
|
|
|
393
388
|
[invokePromise],
|
|
394
389
|
);
|
|
395
390
|
|
|
396
|
-
const
|
|
397
|
-
(companion: string | null) => invokePromise(
|
|
391
|
+
const handleUpdateCompanion = useCallback(
|
|
392
|
+
(companion: string | null) => invokePromise(LayoutOperation.UpdateCompanion, { subject: companion }),
|
|
398
393
|
[invokePromise],
|
|
399
394
|
);
|
|
400
395
|
|
|
@@ -410,7 +405,7 @@ const PlankContainer = memo(
|
|
|
410
405
|
onAdjust={handleAdjust}
|
|
411
406
|
onResize={handleResize}
|
|
412
407
|
onScrollIntoView={handleScrollIntoView}
|
|
413
|
-
|
|
408
|
+
onUpdateCompanion={handleUpdateCompanion}
|
|
414
409
|
>
|
|
415
410
|
<Plank.Content solo={part === 'solo'} companion={hasCompanion} encapsulate={!!settings?.encapsulatedPlanks}>
|
|
416
411
|
<Plank.Component
|
|
@@ -440,12 +435,12 @@ const PlankContainer = memo(
|
|
|
440
435
|
primary={node}
|
|
441
436
|
{...(part === 'solo'
|
|
442
437
|
? {
|
|
443
|
-
part: 'solo-companion',
|
|
444
438
|
order,
|
|
439
|
+
part: 'solo-companion',
|
|
445
440
|
}
|
|
446
441
|
: {
|
|
447
|
-
part,
|
|
448
442
|
order: (order ?? 0) + 1,
|
|
443
|
+
part,
|
|
449
444
|
})}
|
|
450
445
|
/>
|
|
451
446
|
)}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
7
|
import { Surface } from '@dxos/app-framework/ui';
|
|
8
|
-
import {
|
|
8
|
+
import { AppSurface, useAppGraph } from '@dxos/app-toolkit/ui';
|
|
9
9
|
import { useNode } from '@dxos/plugin-graph';
|
|
10
10
|
import { useAttended } from '@dxos/react-ui-attention';
|
|
11
11
|
|
|
@@ -19,11 +19,11 @@ export const ActiveNode = () => {
|
|
|
19
19
|
useNodeActionExpander(activeNode);
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
|
-
<div
|
|
22
|
+
<div className='sr-only'>
|
|
23
23
|
{/* TODO(wittjosiah): Weird that this is a surface, feel like it's not really render logic.
|
|
24
24
|
Probably this lives in React-land currently in order to access translations? */}
|
|
25
25
|
<Surface.Surface
|
|
26
|
-
|
|
26
|
+
type={AppSurface.DocumentTitle}
|
|
27
27
|
data={{ subject: activeNode } satisfies AppSurface.DocumentTitleData}
|
|
28
28
|
limit={1}
|
|
29
29
|
/>
|
|
@@ -11,19 +11,20 @@ import { Capabilities, Capability, Plugin } from '@dxos/app-framework';
|
|
|
11
11
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
12
12
|
import { Surface, useOperationInvoker } from '@dxos/app-framework/ui';
|
|
13
13
|
import { AppActivationEvents, AppCapabilities, AppNode, AppPlugin, LayoutOperation } from '@dxos/app-toolkit';
|
|
14
|
-
import { useAppGraph, useLayout } from '@dxos/app-toolkit/ui';
|
|
14
|
+
import { AppSurface, useAppGraph, useLayout } from '@dxos/app-toolkit/ui';
|
|
15
15
|
import { invariant } from '@dxos/invariant';
|
|
16
16
|
import { GraphBuilder, Node, NodeMatcher, useConnections } from '@dxos/plugin-graph';
|
|
17
17
|
import { corePlugins } from '@dxos/plugin-testing';
|
|
18
18
|
import { random } from '@dxos/random';
|
|
19
19
|
import { useAsyncEffect } from '@dxos/react-hooks';
|
|
20
|
-
import {
|
|
20
|
+
import { Icon, List, ListItem, Panel } from '@dxos/react-ui';
|
|
21
21
|
import { linkedSegment } from '@dxos/react-ui-attention';
|
|
22
|
-
import {
|
|
22
|
+
import { Syntax } from '@dxos/react-ui-syntax-highlighter';
|
|
23
23
|
import { Loading, withLayout } from '@dxos/react-ui/testing';
|
|
24
24
|
|
|
25
25
|
import { OperationHandler } from '#capabilities';
|
|
26
26
|
import { meta as pluginMeta } from '#meta';
|
|
27
|
+
import { translations } from '#translations';
|
|
27
28
|
import {
|
|
28
29
|
DeckCapabilities,
|
|
29
30
|
type EphemeralDeckState,
|
|
@@ -34,11 +35,13 @@ import {
|
|
|
34
35
|
PLANK_COMPANION_TYPE,
|
|
35
36
|
} from '#types';
|
|
36
37
|
|
|
37
|
-
import { translations } from '../../translations';
|
|
38
38
|
import { DeckLayout } from './DeckLayout';
|
|
39
39
|
|
|
40
40
|
random.seed(1234);
|
|
41
41
|
|
|
42
|
+
// TODO(burdon): Show/hide companions.
|
|
43
|
+
// TODO(burdon): Companion width.
|
|
44
|
+
|
|
42
45
|
// TODO(burdon): Factor out.
|
|
43
46
|
const storyDeckSettings = Capability.makeModule(() =>
|
|
44
47
|
Effect.sync(() => {
|
|
@@ -47,7 +50,7 @@ const storyDeckSettings = Capability.makeModule(() =>
|
|
|
47
50
|
enableDeck: true,
|
|
48
51
|
enableStatusbar: false,
|
|
49
52
|
enableNativeRedirect: false,
|
|
50
|
-
encapsulatedPlanks:
|
|
53
|
+
encapsulatedPlanks: false,
|
|
51
54
|
}).pipe(Atom.keepAlive);
|
|
52
55
|
|
|
53
56
|
return [Capability.contributes(DeckCapabilities.Settings, settingsAtom)];
|
|
@@ -63,10 +66,10 @@ const storyDeckState = Capability.makeModule(() =>
|
|
|
63
66
|
complementarySidebarPanel: undefined,
|
|
64
67
|
activeDeck: 'default',
|
|
65
68
|
previousDeck: 'default',
|
|
69
|
+
previousMode: {},
|
|
66
70
|
decks: {
|
|
67
71
|
default: { ...defaultDeck },
|
|
68
72
|
},
|
|
69
|
-
previousMode: {},
|
|
70
73
|
};
|
|
71
74
|
|
|
72
75
|
const stateAtom = Atom.make<StoredDeckState>({ ...defaultStoredDeckState }).pipe(Atom.keepAlive);
|
|
@@ -169,35 +172,6 @@ const TestPlugin = Plugin.define(pluginMeta).pipe(
|
|
|
169
172
|
filter: (data): data is { current: string } => typeof (data as any).current === 'string',
|
|
170
173
|
component: ({ data, ref }) => <NavContainer current={data.current} ref={ref} />,
|
|
171
174
|
}),
|
|
172
|
-
Surface.create({
|
|
173
|
-
id: 'story-article-companion',
|
|
174
|
-
role: 'article',
|
|
175
|
-
filter: (data): data is Record<string, unknown> =>
|
|
176
|
-
typeof data === 'object' && data !== null && (data as { companionTo?: unknown }).companionTo != null,
|
|
177
|
-
component: ({ data }) => {
|
|
178
|
-
const subject = (data as any)?.subject;
|
|
179
|
-
const companionTo = (data as any)?.companionTo;
|
|
180
|
-
const properties = (data as any)?.properties;
|
|
181
|
-
const variant = (data as any)?.variant as string | undefined;
|
|
182
|
-
|
|
183
|
-
if (companionTo == null) {
|
|
184
|
-
return <Loading />;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
const jsonPayload = {
|
|
188
|
-
primaryItem: companionTo,
|
|
189
|
-
companion: { data: subject, properties, variant },
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
return (
|
|
193
|
-
<Json.Root data={jsonPayload}>
|
|
194
|
-
<Json.Content>
|
|
195
|
-
<Json.Data />
|
|
196
|
-
</Json.Content>
|
|
197
|
-
</Json.Root>
|
|
198
|
-
);
|
|
199
|
-
},
|
|
200
|
-
}),
|
|
201
175
|
Surface.create({
|
|
202
176
|
id: 'story-article',
|
|
203
177
|
role: 'article',
|
|
@@ -206,7 +180,6 @@ const TestPlugin = Plugin.define(pluginMeta).pipe(
|
|
|
206
180
|
component: ({ data }) => {
|
|
207
181
|
const subject = (data as any)?.subject;
|
|
208
182
|
const attendableId = (data as any)?.attendableId as string | undefined;
|
|
209
|
-
|
|
210
183
|
if (subject == null) {
|
|
211
184
|
return <Loading />;
|
|
212
185
|
}
|
|
@@ -215,16 +188,45 @@ const TestPlugin = Plugin.define(pluginMeta).pipe(
|
|
|
215
188
|
<Panel.Root>
|
|
216
189
|
<Panel.Content className='grid grid-rows-[min-content_1fr]'>
|
|
217
190
|
{attendableId && <ItemComponent id={attendableId} />}
|
|
218
|
-
<
|
|
219
|
-
<
|
|
220
|
-
<
|
|
221
|
-
|
|
222
|
-
|
|
191
|
+
<Syntax.Root data={subject}>
|
|
192
|
+
<Syntax.Content>
|
|
193
|
+
<Syntax.Filter />
|
|
194
|
+
<Syntax.Viewport>
|
|
195
|
+
<Syntax.Code />
|
|
196
|
+
</Syntax.Viewport>
|
|
197
|
+
</Syntax.Content>
|
|
198
|
+
</Syntax.Root>
|
|
223
199
|
</Panel.Content>
|
|
224
200
|
</Panel.Root>
|
|
225
201
|
);
|
|
226
202
|
},
|
|
227
203
|
}),
|
|
204
|
+
Surface.create({
|
|
205
|
+
id: 'story-article-companion',
|
|
206
|
+
role: 'article',
|
|
207
|
+
filter: (data): data is AppSurface.ArticleData<unknown, {}, unknown> =>
|
|
208
|
+
typeof data === 'object' && data !== null && (data as { companionTo?: unknown }).companionTo != null,
|
|
209
|
+
component: ({ data: { subject, companionTo, properties, variant } }) => {
|
|
210
|
+
if (companionTo == null) {
|
|
211
|
+
return <Loading />;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return (
|
|
215
|
+
<Syntax.Root
|
|
216
|
+
data={{
|
|
217
|
+
primaryItem: companionTo,
|
|
218
|
+
companion: { data: subject, properties, variant },
|
|
219
|
+
}}
|
|
220
|
+
>
|
|
221
|
+
<Syntax.Content>
|
|
222
|
+
<Syntax.Viewport>
|
|
223
|
+
<Syntax.Code />
|
|
224
|
+
</Syntax.Viewport>
|
|
225
|
+
</Syntax.Content>
|
|
226
|
+
</Syntax.Root>
|
|
227
|
+
);
|
|
228
|
+
},
|
|
229
|
+
}),
|
|
228
230
|
]),
|
|
229
231
|
),
|
|
230
232
|
}),
|
|
@@ -283,7 +285,7 @@ const NavContainer = forwardRef<HTMLDivElement, NavContainerProps>((_props, forw
|
|
|
283
285
|
{items.map((node) => (
|
|
284
286
|
<ListItem.Root
|
|
285
287
|
key={node.id}
|
|
286
|
-
classNames={activeSet.has(node.id) ? 'bg-
|
|
288
|
+
classNames={activeSet.has(node.id) ? 'bg-current-surface' : undefined}
|
|
287
289
|
onClick={() => void invokePromise(LayoutOperation.Set, { subject: [node.id] })}
|
|
288
290
|
>
|
|
289
291
|
{node.properties.icon && (
|
|
@@ -308,36 +310,43 @@ type ItemComponentProps = {
|
|
|
308
310
|
const ItemComponent = ({ id }: ItemComponentProps) => {
|
|
309
311
|
const { graph } = useAppGraph();
|
|
310
312
|
const { invokePromise } = useOperationInvoker();
|
|
311
|
-
|
|
312
|
-
const plankConnections = useConnections(graph, id, 'child');
|
|
313
|
+
const connections = useConnections(graph, id, 'child');
|
|
313
314
|
const items = useMemo(
|
|
314
|
-
() =>
|
|
315
|
-
[
|
|
315
|
+
() => connections.filter((node) => !Node.isActionLike(node) && node.type !== PLANK_COMPANION_TYPE),
|
|
316
|
+
[connections],
|
|
316
317
|
);
|
|
317
318
|
|
|
318
319
|
return (
|
|
319
|
-
<
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
320
|
+
<List>
|
|
321
|
+
{items.map((node) => {
|
|
322
|
+
const open = () =>
|
|
323
|
+
void invokePromise(LayoutOperation.Open, { subject: [node.id], pivotId: id, navigation: 'immediate' });
|
|
324
|
+
return (
|
|
325
|
+
<ListItem.Root
|
|
323
326
|
key={node.id}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
327
|
+
classNames='dx-hover cursor-pointer'
|
|
328
|
+
role='button'
|
|
329
|
+
tabIndex={0}
|
|
330
|
+
onClick={open}
|
|
331
|
+
onKeyDown={(event) => {
|
|
332
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
333
|
+
event.preventDefault();
|
|
334
|
+
open();
|
|
335
|
+
}
|
|
336
|
+
}}
|
|
332
337
|
>
|
|
333
|
-
{node.properties.icon &&
|
|
334
|
-
|
|
338
|
+
{node.properties.icon && (
|
|
339
|
+
<ListItem.Endcap>
|
|
340
|
+
<Icon icon={node.properties.icon} size={4} />
|
|
341
|
+
</ListItem.Endcap>
|
|
342
|
+
)}
|
|
343
|
+
<ListItem.Heading classNames='truncate'>
|
|
335
344
|
{typeof node.properties.label === 'string' ? node.properties.label : node.id}
|
|
336
|
-
</
|
|
337
|
-
</
|
|
338
|
-
)
|
|
339
|
-
|
|
340
|
-
</
|
|
345
|
+
</ListItem.Heading>
|
|
346
|
+
</ListItem.Root>
|
|
347
|
+
);
|
|
348
|
+
})}
|
|
349
|
+
</List>
|
|
341
350
|
);
|
|
342
351
|
};
|
|
343
352
|
|
|
@@ -363,35 +372,26 @@ type Story = StoryObj<typeof meta>;
|
|
|
363
372
|
|
|
364
373
|
export const Default: Story = {};
|
|
365
374
|
|
|
366
|
-
const SoloStory = () => {
|
|
367
|
-
const { invokePromise } = useOperationInvoker();
|
|
368
|
-
useAsyncEffect(async () => {
|
|
369
|
-
await invokePromise(LayoutOperation.Open, { subject: [STORY_ITEMS[0].id], navigation: 'immediate' });
|
|
370
|
-
await invokePromise(LayoutOperation.SetLayoutMode, { mode: 'solo', subject: STORY_ITEMS[0].id });
|
|
371
|
-
});
|
|
372
|
-
|
|
373
|
-
return <DeckLayout />;
|
|
374
|
-
};
|
|
375
|
-
|
|
376
375
|
export const Solo: Story = {
|
|
377
|
-
render: () =>
|
|
378
|
-
};
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
useAsyncEffect(async () => {
|
|
383
|
-
await invokePromise(LayoutOperation.Open, {
|
|
384
|
-
subject: [STORY_ITEMS[0].id],
|
|
385
|
-
navigation: 'immediate',
|
|
386
|
-
});
|
|
387
|
-
await invokePromise(LayoutOperation.SetLayoutMode, {
|
|
388
|
-
mode: 'multi',
|
|
376
|
+
render: () => {
|
|
377
|
+
const { invokePromise } = useOperationInvoker();
|
|
378
|
+
useAsyncEffect(async () => {
|
|
379
|
+
await invokePromise(LayoutOperation.Open, { subject: [STORY_ITEMS[0].id], navigation: 'immediate' });
|
|
380
|
+
await invokePromise(LayoutOperation.SetLayoutMode, { mode: 'solo', subject: STORY_ITEMS[0].id });
|
|
389
381
|
});
|
|
390
|
-
});
|
|
391
382
|
|
|
392
|
-
|
|
383
|
+
return <DeckLayout />;
|
|
384
|
+
},
|
|
393
385
|
};
|
|
394
386
|
|
|
395
387
|
export const Multi: Story = {
|
|
396
|
-
render: () =>
|
|
388
|
+
render: () => {
|
|
389
|
+
const { invokePromise } = useOperationInvoker();
|
|
390
|
+
useAsyncEffect(async () => {
|
|
391
|
+
await invokePromise(LayoutOperation.Open, { subject: [STORY_ITEMS[0].id], navigation: 'immediate' });
|
|
392
|
+
await invokePromise(LayoutOperation.SetLayoutMode, { mode: 'multi' });
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
return <DeckLayout />;
|
|
396
|
+
},
|
|
397
397
|
};
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import React, { useCallback } from 'react';
|
|
6
6
|
|
|
7
7
|
import { Surface } from '@dxos/app-framework/ui';
|
|
8
|
+
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
8
9
|
import { AlertDialog, Dialog as NaturalDialog } from '@dxos/react-ui';
|
|
9
10
|
|
|
10
11
|
import { useDeckState } from '#hooks';
|
|
@@ -30,7 +31,7 @@ export const Dialog = () => {
|
|
|
30
31
|
{dialogBlockAlign === 'end' ? (
|
|
31
32
|
// TODO(burdon): Placeholder creates a suspense boundary; replace with defaults.
|
|
32
33
|
<Surface.Surface
|
|
33
|
-
|
|
34
|
+
type={AppSurface.Dialog}
|
|
34
35
|
data={dialogContent ?? undefined}
|
|
35
36
|
limit={1}
|
|
36
37
|
fallback={PlankErrorFallback}
|
|
@@ -38,7 +39,12 @@ export const Dialog = () => {
|
|
|
38
39
|
/>
|
|
39
40
|
) : (
|
|
40
41
|
<Overlay blockAlign={dialogBlockAlign} classNames={dialogOverlayClasses} style={dialogOverlayStyle}>
|
|
41
|
-
<Surface.Surface
|
|
42
|
+
<Surface.Surface
|
|
43
|
+
type={AppSurface.Dialog}
|
|
44
|
+
data={dialogContent ?? undefined}
|
|
45
|
+
limit={1}
|
|
46
|
+
fallback={PlankErrorFallback}
|
|
47
|
+
/>
|
|
42
48
|
</Overlay>
|
|
43
49
|
)}
|
|
44
50
|
</Root>
|
|
@@ -12,7 +12,7 @@ const Fallback = () => {
|
|
|
12
12
|
const { t } = useTranslation(meta.id);
|
|
13
13
|
|
|
14
14
|
return (
|
|
15
|
-
<div
|
|
15
|
+
<div className='min-h-screen w-full flex items-center justify-center p-8'>
|
|
16
16
|
<p
|
|
17
17
|
role='alert'
|
|
18
18
|
className='flex items-center justify-center p-8 font-normal text-lg text-error-text border border-rose-fill rounded-md'
|
|
@@ -8,7 +8,7 @@ import * as Option from 'effect/Option';
|
|
|
8
8
|
import React, { type PropsWithChildren, useCallback, useEffect, useRef, useState } from 'react';
|
|
9
9
|
|
|
10
10
|
import { Surface } from '@dxos/app-framework/ui';
|
|
11
|
-
import { useObjectMenuItems } from '@dxos/app-toolkit/ui';
|
|
11
|
+
import { AppSurface, useObjectMenuItems } from '@dxos/app-toolkit/ui';
|
|
12
12
|
import { Annotation, Obj } from '@dxos/echo';
|
|
13
13
|
import {
|
|
14
14
|
Card,
|
|
@@ -122,8 +122,8 @@ export const PopoverContent = () => {
|
|
|
122
122
|
>
|
|
123
123
|
<Popover.Viewport>
|
|
124
124
|
{/* Base popover */}
|
|
125
|
-
{state.popoverKind === 'base' && (
|
|
126
|
-
<Surface.Surface
|
|
125
|
+
{state.popoverKind === 'base' && state.popoverContent && 'component' in state.popoverContent && (
|
|
126
|
+
<Surface.Surface type={AppSurface.Popover} data={state.popoverContent} limit={1} />
|
|
127
127
|
)}
|
|
128
128
|
|
|
129
129
|
{/* Card popover */}
|
|
@@ -147,7 +147,9 @@ export const PopoverContent = () => {
|
|
|
147
147
|
</Card.IconBlock>
|
|
148
148
|
</Card.Toolbar>
|
|
149
149
|
|
|
150
|
-
|
|
150
|
+
{state.popoverContent && 'subject' in state.popoverContent && (
|
|
151
|
+
<Surface.Surface type={AppSurface.Card} data={state.popoverContent} limit={1} />
|
|
152
|
+
)}
|
|
151
153
|
</Card.Root>
|
|
152
154
|
</Menu.Root>
|
|
153
155
|
)}
|
|
@@ -14,14 +14,14 @@ import { corePlugins } from '@dxos/plugin-testing';
|
|
|
14
14
|
import { random } from '@dxos/random';
|
|
15
15
|
import { Main } from '@dxos/react-ui';
|
|
16
16
|
import { StackContext } from '@dxos/react-ui-stack';
|
|
17
|
-
import {
|
|
17
|
+
import { Syntax } from '@dxos/react-ui-syntax-highlighter';
|
|
18
18
|
import { Loading } from '@dxos/react-ui/testing';
|
|
19
19
|
import { Organization } from '@dxos/types';
|
|
20
20
|
|
|
21
21
|
import { DeckSettings, DeckState } from '#capabilities';
|
|
22
22
|
import { meta as pluginMeta } from '#meta';
|
|
23
|
+
import { translations } from '#translations';
|
|
23
24
|
|
|
24
|
-
import { translations } from '../../translations';
|
|
25
25
|
import { Plank } from './Plank';
|
|
26
26
|
|
|
27
27
|
const TestPlugin = Plugin.define(pluginMeta).pipe(
|
|
@@ -51,11 +51,13 @@ const storySurfaceExtension = Capability.contributes(
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
return (
|
|
54
|
-
<
|
|
55
|
-
<
|
|
56
|
-
<
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
<Syntax.Root data={subject}>
|
|
55
|
+
<Syntax.Content>
|
|
56
|
+
<Syntax.Viewport>
|
|
57
|
+
<Syntax.Code />
|
|
58
|
+
</Syntax.Viewport>
|
|
59
|
+
</Syntax.Content>
|
|
60
|
+
</Syntax.Root>
|
|
59
61
|
);
|
|
60
62
|
},
|
|
61
63
|
}),
|
|
@@ -69,7 +71,7 @@ const DefaultStory = () => {
|
|
|
69
71
|
return (
|
|
70
72
|
<Main.Root>
|
|
71
73
|
<Main.Content bounce handlesFocus classNames='grid' style={{ '--main-spacing': '0' } as any}>
|
|
72
|
-
<div
|
|
74
|
+
<div className='relative overflow-hidden bg-deck-surface'>
|
|
73
75
|
<StackContext.Provider value={{ orientation: 'horizontal', size: 'contain', rail: true }}>
|
|
74
76
|
<Plank.Root graph={graph} part='solo' layoutMode='solo'>
|
|
75
77
|
<Plank.Content solo companion={false} encapsulate={false}>
|
|
@@ -94,6 +96,7 @@ const meta = {
|
|
|
94
96
|
}),
|
|
95
97
|
],
|
|
96
98
|
parameters: {
|
|
99
|
+
layout: 'fullscreen',
|
|
97
100
|
translations,
|
|
98
101
|
},
|
|
99
102
|
} satisfies Meta<typeof DefaultStory>;
|