@dxos/plugin-deck 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef
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/DeckPlugin-YAAL6CBD.mjs +70 -0
- package/dist/lib/browser/DeckPlugin-YAAL6CBD.mjs.map +7 -0
- package/dist/lib/browser/{add-toast-HW74YZHJ.mjs → add-toast-JWJOQNVL.mjs} +3 -3
- package/dist/lib/browser/{add-toast-HW74YZHJ.mjs.map → add-toast-JWJOQNVL.mjs.map} +1 -1
- package/dist/lib/browser/{adjust-OXVHZTBE.mjs → adjust-RG6LIQLX.mjs} +10 -11
- package/dist/lib/browser/adjust-RG6LIQLX.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KUTDCWZF.mjs → chunk-GLB73Q6U.mjs} +2 -10
- package/dist/lib/{node-esm/chunk-MLVJ2ODW.mjs.map → browser/chunk-GLB73Q6U.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-BRZAVPMC.mjs → chunk-LSZ47AY3.mjs} +1 -1
- package/dist/lib/browser/{chunk-GFOCQS7S.mjs → chunk-MARE7ZFK.mjs} +22 -23
- package/dist/lib/browser/{chunk-GFOCQS7S.mjs.map → chunk-MARE7ZFK.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-2YNVGCOQ.mjs → chunk-XM263CQU.mjs} +4 -20
- package/dist/lib/browser/chunk-XM263CQU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-DF2VZ6W3.mjs → chunk-ZYYOSX5I.mjs} +1 -1
- package/dist/lib/browser/{chunk-DF2VZ6W3.mjs.map → chunk-ZYYOSX5I.mjs.map} +2 -2
- package/dist/lib/browser/{close-N5FCDT7Y.mjs → close-URA766JO.mjs} +6 -6
- package/dist/lib/browser/{close-N5FCDT7Y.mjs.map → close-URA766JO.mjs.map} +1 -1
- package/dist/lib/browser/index.mjs +8 -128
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{open-J5HV42UN.mjs → open-OPFOOHCQ.mjs} +7 -10
- package/dist/lib/browser/open-OPFOOHCQ.mjs.map +7 -0
- package/dist/lib/browser/operations/index.mjs +3 -3
- package/dist/lib/browser/operations/index.mjs.map +3 -3
- package/dist/lib/browser/{revert-workspace-VWNN7RYF.mjs → revert-workspace-KP2Y4QLG.mjs} +3 -3
- package/dist/lib/browser/{revert-workspace-VWNN7RYF.mjs.map → revert-workspace-KP2Y4QLG.mjs.map} +1 -1
- package/dist/lib/browser/{scroll-into-view-CA7E3PSO.mjs → scroll-into-view-S5H2FGSQ.mjs} +3 -3
- package/dist/lib/browser/{scroll-into-view-CA7E3PSO.mjs.map → scroll-into-view-S5H2FGSQ.mjs.map} +1 -1
- package/dist/lib/browser/{set-YVWQQZLE.mjs → set-AEKFFSIX.mjs} +5 -5
- package/dist/lib/browser/{set-YVWQQZLE.mjs.map → set-AEKFFSIX.mjs.map} +1 -1
- package/dist/lib/browser/{set-layout-mode-DRNBZHE7.mjs → set-layout-mode-CWIGQDFZ.mjs} +5 -10
- package/dist/lib/browser/set-layout-mode-CWIGQDFZ.mjs.map +7 -0
- package/dist/lib/browser/{show-undo-KA2XHQ6E.mjs → show-undo-XFVEDKYC.mjs} +3 -3
- package/dist/lib/browser/{show-undo-KA2XHQ6E.mjs.map → show-undo-XFVEDKYC.mjs.map} +1 -1
- package/dist/lib/browser/{switch-workspace-U7SPENHU.mjs → switch-workspace-DSAAXZSI.mjs} +4 -12
- package/dist/lib/browser/switch-workspace-DSAAXZSI.mjs.map +7 -0
- package/dist/lib/browser/translations.mjs +57 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/browser/{change-companion-Z3Q2UPX4.mjs → update-companion-IDBBBHT3.mjs} +11 -13
- package/dist/lib/browser/update-companion-IDBBBHT3.mjs.map +7 -0
- package/dist/lib/browser/{update-complementary-W6UVLWLI.mjs → update-complementary-55PNO5MD.mjs} +3 -3
- package/dist/lib/browser/{update-complementary-W6UVLWLI.mjs.map → update-complementary-55PNO5MD.mjs.map} +1 -1
- package/dist/lib/browser/{update-dialog-VCTI7WKS.mjs → update-dialog-VNARIANC.mjs} +3 -3
- package/dist/lib/browser/{update-dialog-VCTI7WKS.mjs.map → update-dialog-VNARIANC.mjs.map} +1 -1
- package/dist/lib/browser/{update-plank-size-6TPVOYLT.mjs → update-plank-size-H63PRRXS.mjs} +5 -5
- package/dist/lib/browser/{update-plank-size-6TPVOYLT.mjs.map → update-plank-size-H63PRRXS.mjs.map} +1 -1
- package/dist/lib/browser/{update-popover-4EVVZSB6.mjs → update-popover-ODTPZ3JL.mjs} +3 -3
- package/dist/lib/browser/{update-popover-4EVVZSB6.mjs.map → update-popover-ODTPZ3JL.mjs.map} +1 -1
- package/dist/lib/browser/{update-sidebar-PAZARC4Q.mjs → update-sidebar-JDVQ36WK.mjs} +3 -3
- package/dist/lib/browser/{update-sidebar-PAZARC4Q.mjs.map → update-sidebar-JDVQ36WK.mjs.map} +1 -1
- package/dist/lib/node-esm/DeckPlugin-ZILU7U44.mjs +71 -0
- package/dist/lib/node-esm/DeckPlugin-ZILU7U44.mjs.map +7 -0
- package/dist/lib/node-esm/{add-toast-FA7NTWKA.mjs → add-toast-JUTN4GTI.mjs} +3 -3
- package/dist/lib/node-esm/{add-toast-FA7NTWKA.mjs.map → add-toast-JUTN4GTI.mjs.map} +1 -1
- package/dist/lib/node-esm/{adjust-G6FGZW6H.mjs → adjust-P5QK33P4.mjs} +10 -11
- package/dist/lib/node-esm/adjust-P5QK33P4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6BWQJDNT.mjs → chunk-FO7YDJZ3.mjs} +22 -23
- package/dist/lib/node-esm/{chunk-6BWQJDNT.mjs.map → chunk-FO7YDJZ3.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-MB4SDDVY.mjs → chunk-KY7ZCANM.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-GI5JXNBT.mjs → chunk-L7OVX7CV.mjs} +4 -20
- package/dist/lib/node-esm/chunk-L7OVX7CV.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MLVJ2ODW.mjs → chunk-SHSR2CYO.mjs} +2 -10
- package/dist/lib/{browser/chunk-KUTDCWZF.mjs.map → node-esm/chunk-SHSR2CYO.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-IRWCUYJY.mjs → chunk-WGBUTT5K.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-IRWCUYJY.mjs.map → chunk-WGBUTT5K.mjs.map} +2 -2
- package/dist/lib/node-esm/{close-AMA63RJN.mjs → close-U5VC7ERP.mjs} +6 -6
- package/dist/lib/node-esm/{close-AMA63RJN.mjs.map → close-U5VC7ERP.mjs.map} +1 -1
- package/dist/lib/node-esm/index.mjs +8 -128
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{open-KRCARMEB.mjs → open-4B3P5XGS.mjs} +7 -10
- package/dist/lib/node-esm/open-4B3P5XGS.mjs.map +7 -0
- package/dist/lib/node-esm/operations/index.mjs +3 -3
- package/dist/lib/node-esm/operations/index.mjs.map +3 -3
- package/dist/lib/node-esm/{revert-workspace-A2K3JQFS.mjs → revert-workspace-QD63M2U7.mjs} +3 -3
- package/dist/lib/node-esm/{revert-workspace-A2K3JQFS.mjs.map → revert-workspace-QD63M2U7.mjs.map} +1 -1
- package/dist/lib/node-esm/{scroll-into-view-B2U4RQK7.mjs → scroll-into-view-G5M2EWK7.mjs} +3 -3
- package/dist/lib/node-esm/{scroll-into-view-B2U4RQK7.mjs.map → scroll-into-view-G5M2EWK7.mjs.map} +1 -1
- package/dist/lib/node-esm/{set-HCWNW76S.mjs → set-ERJCXZBY.mjs} +5 -5
- package/dist/lib/node-esm/{set-HCWNW76S.mjs.map → set-ERJCXZBY.mjs.map} +1 -1
- package/dist/lib/node-esm/{set-layout-mode-E27AI5KE.mjs → set-layout-mode-BOZD7744.mjs} +5 -10
- package/dist/lib/node-esm/set-layout-mode-BOZD7744.mjs.map +7 -0
- package/dist/lib/node-esm/{show-undo-YTZXH422.mjs → show-undo-H5BRBYDC.mjs} +3 -3
- package/dist/lib/node-esm/{show-undo-YTZXH422.mjs.map → show-undo-H5BRBYDC.mjs.map} +1 -1
- package/dist/lib/node-esm/{switch-workspace-AQCNGS4Y.mjs → switch-workspace-F54PXE5N.mjs} +4 -12
- package/dist/lib/node-esm/switch-workspace-F54PXE5N.mjs.map +7 -0
- package/dist/lib/node-esm/translations.mjs +58 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/lib/node-esm/{change-companion-V6343HMY.mjs → update-companion-47LMKL5R.mjs} +11 -13
- package/dist/lib/node-esm/update-companion-47LMKL5R.mjs.map +7 -0
- package/dist/lib/node-esm/{update-complementary-7HIRM7OT.mjs → update-complementary-7VYYG7L2.mjs} +3 -3
- package/dist/lib/node-esm/{update-complementary-7HIRM7OT.mjs.map → update-complementary-7VYYG7L2.mjs.map} +1 -1
- package/dist/lib/node-esm/{update-dialog-F3JF7MBZ.mjs → update-dialog-CABL7OWW.mjs} +3 -3
- package/dist/lib/node-esm/{update-dialog-F3JF7MBZ.mjs.map → update-dialog-CABL7OWW.mjs.map} +1 -1
- package/dist/lib/node-esm/{update-plank-size-IIZKU7YR.mjs → update-plank-size-WYTSMZF2.mjs} +5 -5
- package/dist/lib/node-esm/{update-plank-size-IIZKU7YR.mjs.map → update-plank-size-WYTSMZF2.mjs.map} +1 -1
- package/dist/lib/node-esm/{update-popover-RO5QEH4C.mjs → update-popover-YZDYGL7G.mjs} +3 -3
- package/dist/lib/node-esm/{update-popover-RO5QEH4C.mjs.map → update-popover-YZDYGL7G.mjs.map} +1 -1
- package/dist/lib/node-esm/{update-sidebar-2RX6VLEK.mjs → update-sidebar-HV736LUN.mjs} +3 -3
- package/dist/lib/node-esm/{update-sidebar-2RX6VLEK.mjs.map → update-sidebar-HV736LUN.mjs.map} +1 -1
- 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 -2
- 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 -2
- package/dist/types/src/containers/Plank/Plank.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/Plank.stories.d.ts +42 -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 -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 +2 -2
- 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 +3 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/layout.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 +1 -1
- 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/definitions.d.ts +4 -7
- package/dist/types/src/operations/definitions.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 -1
- 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 +1 -1
- 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/translations.d.ts +42 -53
- package/dist/types/src/translations.d.ts.map +1 -1
- 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/capabilities.d.ts +18 -29
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/events.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +0 -10
- 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 +56 -55
- 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 +2 -2
- 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 +16 -12
- package/src/containers/Deck/Deck.stories.tsx +1 -1
- package/src/containers/Deck/DeckViewport.tsx +10 -10
- package/src/containers/DeckLayout/ActiveNode.tsx +2 -2
- package/src/containers/DeckLayout/DeckLayout.stories.tsx +17 -13
- package/src/containers/DeckLayout/Dialog.tsx +8 -2
- package/src/containers/DeckLayout/Popover.tsx +6 -4
- package/src/containers/Plank/Plank.stories.tsx +9 -7
- 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 +16 -6
- package/src/containers/Plank/PlankRoot.tsx +2 -2
- package/src/containers/Sidebar/ComplementarySidebar.tsx +2 -1
- 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 +10 -2
- package/src/operations/add-toast.ts +1 -1
- package/src/operations/adjust.ts +3 -3
- package/src/operations/close.ts +1 -1
- package/src/operations/definitions.ts +5 -17
- package/src/operations/index.ts +2 -2
- package/src/operations/open.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- package/src/operations/update-popover.ts +1 -1
- package/src/operations/update-sidebar.ts +1 -1
- package/src/translations.ts +2 -12
- package/src/types/Settings.ts +31 -6
- package/src/types/schema.ts +0 -7
- package/dist/lib/browser/adjust-OXVHZTBE.mjs.map +0 -7
- package/dist/lib/browser/change-companion-Z3Q2UPX4.mjs.map +0 -7
- package/dist/lib/browser/chunk-2YNVGCOQ.mjs.map +0 -7
- package/dist/lib/browser/open-J5HV42UN.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/node-esm/adjust-G6FGZW6H.mjs.map +0 -7
- package/dist/lib/node-esm/change-companion-V6343HMY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GI5JXNBT.mjs.map +0 -7
- package/dist/lib/node-esm/open-KRCARMEB.mjs.map +0 -7
- package/dist/lib/node-esm/set-layout-mode-E27AI5KE.mjs.map +0 -7
- package/dist/lib/node-esm/switch-workspace-AQCNGS4Y.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/lib/browser/{chunk-BRZAVPMC.mjs.map → chunk-LSZ47AY3.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-MB4SDDVY.mjs.map → chunk-KY7ZCANM.mjs.map} +0 -0
|
@@ -19,11 +19,12 @@ import { random } from '@dxos/random';
|
|
|
19
19
|
import { useAsyncEffect } from '@dxos/react-hooks';
|
|
20
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,7 +35,6 @@ 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);
|
|
@@ -188,12 +188,14 @@ const TestPlugin = Plugin.define(pluginMeta).pipe(
|
|
|
188
188
|
<Panel.Root>
|
|
189
189
|
<Panel.Content className='grid grid-rows-[min-content_1fr]'>
|
|
190
190
|
{attendableId && <ItemComponent id={attendableId} />}
|
|
191
|
-
<
|
|
192
|
-
<
|
|
193
|
-
<
|
|
194
|
-
<
|
|
195
|
-
|
|
196
|
-
|
|
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>
|
|
197
199
|
</Panel.Content>
|
|
198
200
|
</Panel.Root>
|
|
199
201
|
);
|
|
@@ -210,16 +212,18 @@ const TestPlugin = Plugin.define(pluginMeta).pipe(
|
|
|
210
212
|
}
|
|
211
213
|
|
|
212
214
|
return (
|
|
213
|
-
<
|
|
215
|
+
<Syntax.Root
|
|
214
216
|
data={{
|
|
215
217
|
primaryItem: companionTo,
|
|
216
218
|
companion: { data: subject, properties, variant },
|
|
217
219
|
}}
|
|
218
220
|
>
|
|
219
|
-
<
|
|
220
|
-
<
|
|
221
|
-
|
|
222
|
-
|
|
221
|
+
<Syntax.Content>
|
|
222
|
+
<Syntax.Viewport>
|
|
223
|
+
<Syntax.Code />
|
|
224
|
+
</Syntax.Viewport>
|
|
225
|
+
</Syntax.Content>
|
|
226
|
+
</Syntax.Root>
|
|
223
227
|
);
|
|
224
228
|
},
|
|
225
229
|
}),
|
|
@@ -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>
|
|
@@ -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
|
}),
|
|
@@ -6,12 +6,12 @@ import { useFocusFinders } from '@fluentui/react-tabster';
|
|
|
6
6
|
import React, { type KeyboardEvent, memo, useCallback, useLayoutEffect, useMemo, useRef } from 'react';
|
|
7
7
|
|
|
8
8
|
import { Surface } from '@dxos/app-framework/ui';
|
|
9
|
-
import {
|
|
9
|
+
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
10
10
|
import { debounce } from '@dxos/async';
|
|
11
11
|
import { type Node } from '@dxos/plugin-graph';
|
|
12
12
|
import { getLinkedVariant } from '@dxos/react-ui-attention';
|
|
13
13
|
import { useAttentionAttributes } from '@dxos/react-ui-attention';
|
|
14
|
-
import { StackItem, railGridHorizontal } from '@dxos/react-ui-stack';
|
|
14
|
+
import { StackItem, type StackItemSize, railGridHorizontal } from '@dxos/react-ui-stack';
|
|
15
15
|
import { mainIntrinsicSize, mx } from '@dxos/ui-theme';
|
|
16
16
|
|
|
17
17
|
import { useMainSize } from '#hooks';
|
|
@@ -22,6 +22,32 @@ import { PlankHeading } from './PlankHeading';
|
|
|
22
22
|
import { PlankLoading } from './PlankLoading';
|
|
23
23
|
import { PlankRootProps, usePlankContext } from './PlankRoot';
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* JS-based smooth scroll that won't be interrupted by MutationObserver or layout changes.
|
|
27
|
+
*/
|
|
28
|
+
const smoothScrollTo = (element: HTMLElement, target: number, duration: number) => {
|
|
29
|
+
const start = element.scrollLeft;
|
|
30
|
+
const distance = target - start;
|
|
31
|
+
const startTime = performance.now();
|
|
32
|
+
|
|
33
|
+
const step = (currentTime: number) => {
|
|
34
|
+
const elapsed = currentTime - startTime;
|
|
35
|
+
const progress = Math.min(elapsed / duration, 1);
|
|
36
|
+
// Ease-out cubic.
|
|
37
|
+
const eased = 1 - Math.pow(1 - progress, 3);
|
|
38
|
+
element.scrollLeft = start + distance * eased;
|
|
39
|
+
if (progress < 1) {
|
|
40
|
+
requestAnimationFrame(step);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
requestAnimationFrame(step);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// NOTE: Calibrated to show PLANK + COMPANION on MBP 16" screen.
|
|
48
|
+
export const DEFAULT_SIZE = 48 satisfies StackItemSize;
|
|
49
|
+
export const DEFAULT_COMPANION_SIZE = 35 satisfies StackItemSize;
|
|
50
|
+
|
|
25
51
|
export type PlankComponentProps = Pick<PlankRootProps, 'part'> & {
|
|
26
52
|
id: string;
|
|
27
53
|
path?: string[];
|
|
@@ -40,25 +66,29 @@ export const PlankComponent = memo(
|
|
|
40
66
|
|
|
41
67
|
const canResize = layoutMode === 'multi';
|
|
42
68
|
const { findFirstFocusable } = useFocusFinders();
|
|
69
|
+
const isCompanion = companioned === 'companion';
|
|
43
70
|
const attentionAttrs = useAttentionAttributes(primary?.id ?? id);
|
|
44
|
-
const orderId =
|
|
71
|
+
const orderId = isCompanion ? primary?.id : id;
|
|
45
72
|
const index = orderId && active ? active.findIndex((entryId) => entryId === orderId) : -1;
|
|
46
73
|
const length = active?.length ?? 1;
|
|
47
74
|
const isOrdered = !!active && index >= 0;
|
|
48
75
|
const canIncrementStart = isOrdered && index > 0;
|
|
49
76
|
const canIncrementEnd = isOrdered && index < length - 1;
|
|
50
|
-
|
|
51
77
|
const rootElement = useRef<HTMLDivElement | null>(null);
|
|
52
|
-
|
|
53
78
|
const variant = node?.type === PLANK_COMPANION_TYPE ? getLinkedVariant(id) : undefined;
|
|
54
|
-
const sizeKey = id.split('+')[0];
|
|
55
|
-
const size = plankSizing?.[sizeKey] as number | undefined;
|
|
56
79
|
|
|
80
|
+
// Sizing.
|
|
81
|
+
const sizeAttrs = useMainSize();
|
|
82
|
+
const sizeKey = id.split('+')[0];
|
|
83
|
+
const size = isCompanion
|
|
84
|
+
? DEFAULT_COMPANION_SIZE
|
|
85
|
+
: ((plankSizing?.[sizeKey] as number | undefined) ?? DEFAULT_SIZE);
|
|
57
86
|
const handleSizeChange = useCallback(
|
|
58
87
|
debounce((nextSize: number) => {
|
|
59
|
-
|
|
88
|
+
const size = Math.round(nextSize);
|
|
89
|
+
onResize?.(sizeKey, size);
|
|
60
90
|
}, 200),
|
|
61
|
-
[
|
|
91
|
+
[sizeKey, onResize],
|
|
62
92
|
);
|
|
63
93
|
|
|
64
94
|
// TODO(thure): Tabster's focus group should handle moving focus to Main, but something is blocking it.
|
|
@@ -76,8 +106,17 @@ export const PlankComponent = memo(
|
|
|
76
106
|
}, []);
|
|
77
107
|
|
|
78
108
|
useLayoutEffect(() => {
|
|
79
|
-
if (scrollIntoView === id) {
|
|
80
|
-
|
|
109
|
+
if (scrollIntoView === id && layoutMode === 'multi' && rootElement.current) {
|
|
110
|
+
const element = rootElement.current;
|
|
111
|
+
const scrollParent = element.closest('[style*="overflow"], .overflow-x-auto') as HTMLElement | null;
|
|
112
|
+
if (scrollParent) {
|
|
113
|
+
const elementRect = element.getBoundingClientRect();
|
|
114
|
+
const parentRect = scrollParent.getBoundingClientRect();
|
|
115
|
+
const targetScrollLeft = scrollParent.scrollLeft + (elementRect.left - parentRect.left);
|
|
116
|
+
|
|
117
|
+
smoothScrollTo(scrollParent, targetScrollLeft, 300);
|
|
118
|
+
}
|
|
119
|
+
|
|
81
120
|
onScrollIntoView?.(undefined);
|
|
82
121
|
}
|
|
83
122
|
}, [id, scrollIntoView, layoutMode, onScrollIntoView]);
|
|
@@ -85,7 +124,6 @@ export const PlankComponent = memo(
|
|
|
85
124
|
const isSolo = layoutMode.startsWith('solo') && part === 'solo';
|
|
86
125
|
const isAttendable =
|
|
87
126
|
(layoutMode.startsWith('solo') && part.startsWith('solo')) || (layoutMode === 'multi' && part === 'multi');
|
|
88
|
-
const sizeAttrs = useMainSize();
|
|
89
127
|
|
|
90
128
|
const data = useMemo<AppSurface.ArticleData | undefined>(
|
|
91
129
|
() =>
|
|
@@ -104,8 +142,9 @@ export const PlankComponent = memo(
|
|
|
104
142
|
// TODO(wittjosiah): Change prop to accept a component.
|
|
105
143
|
const placeholder = useMemo(() => <PlankLoading />, []);
|
|
106
144
|
|
|
145
|
+
const Root = part.startsWith('solo') ? 'article' : StackItem.Root;
|
|
107
146
|
const fullscreen = layoutMode === 'solo--fullscreen';
|
|
108
|
-
const
|
|
147
|
+
const classNames = [
|
|
109
148
|
'dx-attention-surface relative dx-focus-ring-inset-over-all dx-density-coarse',
|
|
110
149
|
isSolo && 'absolute inset-0',
|
|
111
150
|
isSolo && mainIntrinsicSize,
|
|
@@ -113,14 +152,12 @@ export const PlankComponent = memo(
|
|
|
113
152
|
part.startsWith('solo') && 'grid',
|
|
114
153
|
part.startsWith('solo-') && 'grid-rows-subgrid row-span-2 min-w-0',
|
|
115
154
|
fullscreen && 'grid-rows-1',
|
|
116
|
-
part === 'multi' && (
|
|
155
|
+
part === 'multi' && (isCompanion ? 'border-separator! border-e' : 'border-separator! border-x'),
|
|
117
156
|
part === 'solo-companion' && 'border-separator! border-s',
|
|
118
157
|
settings?.encapsulatedPlanks &&
|
|
119
158
|
!part.startsWith('solo') &&
|
|
120
159
|
'mx-(--main-spacing) border-separator! border rounded-sm overflow-hidden',
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const Root = part.startsWith('solo') ? 'article' : StackItem.Root;
|
|
160
|
+
];
|
|
124
161
|
|
|
125
162
|
return (
|
|
126
163
|
<Root
|
|
@@ -130,15 +167,15 @@ export const PlankComponent = memo(
|
|
|
130
167
|
tabIndex={0}
|
|
131
168
|
{...(part.startsWith('solo')
|
|
132
169
|
? ({
|
|
133
|
-
className,
|
|
170
|
+
className: mx(classNames),
|
|
134
171
|
...sizeAttrs,
|
|
135
172
|
} as any)
|
|
136
173
|
: {
|
|
137
174
|
role: 'article',
|
|
138
|
-
|
|
175
|
+
item: { id },
|
|
176
|
+
classNames,
|
|
139
177
|
order,
|
|
140
178
|
size,
|
|
141
|
-
item: { id },
|
|
142
179
|
onSizeChange: handleSizeChange,
|
|
143
180
|
})}
|
|
144
181
|
{...(isAttendable ? attentionAttrs : {})}
|
|
@@ -163,7 +200,7 @@ export const PlankComponent = memo(
|
|
|
163
200
|
)}
|
|
164
201
|
<Surface.Surface
|
|
165
202
|
key={node.id}
|
|
166
|
-
|
|
203
|
+
type={AppSurface.Article}
|
|
167
204
|
data={data}
|
|
168
205
|
limit={1}
|
|
169
206
|
fallback={PlankErrorFallback}
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
import React, { forwardRef, useCallback } from 'react';
|
|
6
6
|
|
|
7
7
|
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
8
|
+
import { LayoutOperation } from '@dxos/app-toolkit';
|
|
8
9
|
import { ButtonGroup, type ButtonGroupProps, type ButtonProps, IconButton, useTranslation } from '@dxos/react-ui';
|
|
9
10
|
|
|
10
11
|
import { meta } from '#meta';
|
|
11
|
-
import { DeckOperation } from '#operations';
|
|
12
12
|
import { type DeckAction, type LayoutMode } from '#types';
|
|
13
13
|
|
|
14
14
|
export type PlankControlHandler = (event: DeckAction.PartAdjustment) => void;
|
|
@@ -37,7 +37,7 @@ export const PlankCompanionControls = forwardRef<HTMLDivElement, PlankCompanionC
|
|
|
37
37
|
const { t } = useTranslation(meta.id);
|
|
38
38
|
const { invokePromise } = useOperationInvoker();
|
|
39
39
|
const handleCloseCompanion = useCallback(() => {
|
|
40
|
-
return invokePromise(
|
|
40
|
+
return invokePromise(LayoutOperation.UpdateCompanion, { subject: null });
|
|
41
41
|
}, [invokePromise]);
|
|
42
42
|
return (
|
|
43
43
|
<div ref={forwardedRef} className='contents dx-app-no-drag'>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import React, { Fragment, type MouseEvent, memo, useCallback, useEffect, useMemo } from 'react';
|
|
6
6
|
|
|
7
7
|
import { Surface } from '@dxos/app-framework/ui';
|
|
8
|
-
import {
|
|
8
|
+
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
9
9
|
import { Graph, type Node, useActionRunner } from '@dxos/plugin-graph';
|
|
10
10
|
import { Icon, IconButton, Popover, toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
11
11
|
import { getLinkedVariant } from '@dxos/react-ui-attention';
|
|
@@ -37,6 +37,7 @@ export type PlankHeadingProps = {
|
|
|
37
37
|
companioned?: 'primary' | 'companion';
|
|
38
38
|
companions?: Node.Node[];
|
|
39
39
|
actions?: StackItemSigilAction[];
|
|
40
|
+
debug?: boolean;
|
|
40
41
|
};
|
|
41
42
|
|
|
42
43
|
export const PlankHeading = memo(
|
|
@@ -54,9 +55,10 @@ export const PlankHeading = memo(
|
|
|
54
55
|
companions,
|
|
55
56
|
layoutMode,
|
|
56
57
|
actions = [],
|
|
58
|
+
debug = false,
|
|
57
59
|
}: PlankHeadingProps) => {
|
|
58
60
|
const { t } = useTranslation(meta.id);
|
|
59
|
-
const { graph, onAdjust,
|
|
61
|
+
const { graph, onAdjust, onUpdateCompanion } = usePlankContext('PlankHeading');
|
|
60
62
|
const runAction = useActionRunner();
|
|
61
63
|
const breakpoint = useBreakpoints();
|
|
62
64
|
const icon = node?.properties?.icon ?? 'ph--placeholder--regular';
|
|
@@ -129,10 +131,10 @@ export const PlankHeading = memo(
|
|
|
129
131
|
const target = (event.target as HTMLElement).closest('[data-id]') as HTMLElement | null;
|
|
130
132
|
const tabId = target?.dataset?.id;
|
|
131
133
|
if (tabId) {
|
|
132
|
-
|
|
134
|
+
onUpdateCompanion?.(tabId);
|
|
133
135
|
}
|
|
134
136
|
},
|
|
135
|
-
[
|
|
137
|
+
[onUpdateCompanion],
|
|
136
138
|
);
|
|
137
139
|
|
|
138
140
|
return (
|
|
@@ -185,7 +187,7 @@ export const PlankHeading = memo(
|
|
|
185
187
|
onAction={handleAction}
|
|
186
188
|
>
|
|
187
189
|
<Surface.Surface
|
|
188
|
-
|
|
190
|
+
type={AppSurface.MenuFooter}
|
|
189
191
|
data={{ subject: node.data } satisfies AppSurface.MenuFooterData}
|
|
190
192
|
/>
|
|
191
193
|
</StackItem.Sigil>
|
|
@@ -208,8 +210,16 @@ export const PlankHeading = memo(
|
|
|
208
210
|
</TextTooltip>
|
|
209
211
|
</>
|
|
210
212
|
)}
|
|
213
|
+
{debug && (
|
|
214
|
+
<div role='none' className='flex items-center text-sm text-info-text'>
|
|
215
|
+
{layoutMode}:{part}:{companioned}
|
|
216
|
+
</div>
|
|
217
|
+
)}
|
|
211
218
|
{node && part !== 'complementary' && (
|
|
212
|
-
<Surface.Surface
|
|
219
|
+
<Surface.Surface
|
|
220
|
+
type={AppSurface.NavbarEnd}
|
|
221
|
+
data={{ subject: node.data } satisfies AppSurface.NavbarEndData}
|
|
222
|
+
/>
|
|
213
223
|
)}
|
|
214
224
|
{companioned === 'companion' ? (
|
|
215
225
|
<PlankCompanionControls primary={primaryId} />
|
|
@@ -33,8 +33,8 @@ export type PlankContextValue = {
|
|
|
33
33
|
onResize?: (id: string, size: number) => void;
|
|
34
34
|
/** Callback to clear scroll-into-view state. */
|
|
35
35
|
onScrollIntoView?: (id?: string) => void;
|
|
36
|
-
/** Callback to
|
|
37
|
-
|
|
36
|
+
/** Callback to update the companion. */
|
|
37
|
+
onUpdateCompanion?: (companion: string | null) => void;
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
export const [PlankProvider, usePlankContext] = createContext<PlankContextValue>(PLANK_NAME);
|
|
@@ -105,6 +105,7 @@ export const ComplementarySidebar = ({ current }: ComplementarySidebarProps) =>
|
|
|
105
105
|
iconOnly
|
|
106
106
|
tooltipSide='left'
|
|
107
107
|
data-value={getLinkedVariant(companion.id)}
|
|
108
|
+
{...(companion.properties.joyride && { 'data-joyride': companion.properties.joyride })}
|
|
108
109
|
variant={
|
|
109
110
|
activeId === getLinkedVariant(companion.id)
|
|
110
111
|
? state.complementarySidebarState === 'expanded'
|
|
@@ -120,7 +121,7 @@ export const ComplementarySidebar = ({ current }: ComplementarySidebarProps) =>
|
|
|
120
121
|
{!hoistStatusbar && (
|
|
121
122
|
<div
|
|
122
123
|
role='none'
|
|
123
|
-
className='grid grid-cols-1 auto-rows-(--dx-rail-item) gap-0.5 overflow-y-auto'
|
|
124
|
+
className='grid grid-cols-1 auto-rows-(--dx-rail-item) py-0.5 gap-0.5 overflow-y-auto scrollbar-none'
|
|
124
125
|
style={iconSize(4)}
|
|
125
126
|
>
|
|
126
127
|
<Surface.Surface role='status-indicator' />
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import React, { useMemo } from 'react';
|
|
6
6
|
|
|
7
7
|
import { Surface } from '@dxos/app-framework/ui';
|
|
8
|
-
import {
|
|
8
|
+
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
9
9
|
import { type Label, Main } from '@dxos/react-ui';
|
|
10
10
|
|
|
11
11
|
import { useBreakpoints, useDeckState, useHoistStatusbar } from '#hooks';
|
|
@@ -38,7 +38,7 @@ export const Sidebar = () => {
|
|
|
38
38
|
hoistStatusbar && 'bottom-(--dx-statusbar-size)',
|
|
39
39
|
]}
|
|
40
40
|
>
|
|
41
|
-
<Surface.Surface
|
|
41
|
+
<Surface.Surface type={AppSurface.Navigation} data={navigationData} limit={1} />
|
|
42
42
|
</Main.NavigationSidebar>
|
|
43
43
|
);
|
|
44
44
|
};
|
|
@@ -80,13 +80,19 @@ export const ToggleComplementarySidebarButton = ({
|
|
|
80
80
|
}
|
|
81
81
|
}, [state, updateState, current, companions, invokePromise]);
|
|
82
82
|
|
|
83
|
+
const label = t(
|
|
84
|
+
state.complementarySidebarState === 'expanded'
|
|
85
|
+
? 'close-complementary-sidebar.label'
|
|
86
|
+
: 'open-complementary-sidebar.label',
|
|
87
|
+
);
|
|
88
|
+
|
|
83
89
|
return (
|
|
84
90
|
<IconButton
|
|
85
91
|
variant='ghost'
|
|
86
92
|
classNames={['[&>svg]:-scale-x-100', classNames]}
|
|
87
93
|
icon='ph--sidebar-simple--regular'
|
|
88
94
|
iconOnly
|
|
89
|
-
label={
|
|
95
|
+
label={label}
|
|
90
96
|
tooltipSide={inR0 ? 'left' : undefined}
|
|
91
97
|
onClick={handleClick}
|
|
92
98
|
/>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { useAppGraph } from '@dxos/app-toolkit/ui';
|
|
6
6
|
import { Node, type Node as NodeType } from '@dxos/plugin-graph';
|
|
7
7
|
import { useConnections } from '@dxos/plugin-graph';
|
|
8
|
-
import { type Label } from '@dxos/ui-types';
|
|
8
|
+
import { type Label } from '@dxos/ui-types/translations';
|
|
9
9
|
import { type Position, byPosition } from '@dxos/util';
|
|
10
10
|
|
|
11
11
|
import { DECK_COMPANION_TYPE } from '#types';
|
|
@@ -19,6 +19,7 @@ export type DeckCompanion = NodeType.Node<
|
|
|
19
19
|
/** If true, the panel will not be wrapped in a scroll area. */
|
|
20
20
|
fixed?: boolean;
|
|
21
21
|
position?: Position;
|
|
22
|
+
joyride?: string;
|
|
22
23
|
}
|
|
23
24
|
>;
|
|
24
25
|
|
package/src/index.ts
CHANGED
|
@@ -2,7 +2,15 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import { Plugin } from '@dxos/app-framework';
|
|
6
|
+
|
|
7
|
+
import { meta } from './meta';
|
|
8
|
+
|
|
9
|
+
export const DeckPlugin = Plugin.lazy(meta, () => import('./DeckPlugin'));
|
|
10
|
+
|
|
7
11
|
export * from './meta';
|
|
12
|
+
|
|
13
|
+
export { DeckCapabilities, DeckEvents } from './types';
|
|
14
|
+
// TODO(wittjosiah): Hooks should not be exported from the plugin package at all.
|
|
15
|
+
// Either refactor callers to not need them or factor them out to a shared package.
|
|
8
16
|
export { useCompanions } from './hooks';
|
|
@@ -6,7 +6,7 @@ import * as Effect from 'effect/Effect';
|
|
|
6
6
|
|
|
7
7
|
import { Capabilities } from '@dxos/app-framework';
|
|
8
8
|
import { LayoutOperation } from '@dxos/app-toolkit';
|
|
9
|
-
import { Operation } from '@dxos/
|
|
9
|
+
import { Operation } from '@dxos/compute';
|
|
10
10
|
|
|
11
11
|
import { DeckCapabilities } from '../types';
|
|
12
12
|
|
package/src/operations/adjust.ts
CHANGED
|
@@ -8,7 +8,7 @@ import * as Option from 'effect/Option';
|
|
|
8
8
|
|
|
9
9
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
10
10
|
import { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';
|
|
11
|
-
import { Operation } from '@dxos/
|
|
11
|
+
import { Operation } from '@dxos/compute';
|
|
12
12
|
import { AttentionCapabilities } from '@dxos/plugin-attention/types';
|
|
13
13
|
import { Graph } from '@dxos/plugin-graph';
|
|
14
14
|
import { byPosition } from '@dxos/util';
|
|
@@ -16,7 +16,7 @@ import { byPosition } from '@dxos/util';
|
|
|
16
16
|
import { incrementPlank } from '../layout';
|
|
17
17
|
import { DeckCapabilities, PLANK_COMPANION_TYPE } from '../types';
|
|
18
18
|
import { computeActiveUpdates } from '../util';
|
|
19
|
-
import { Adjust
|
|
19
|
+
import { Adjust } from './definitions';
|
|
20
20
|
import { updateActiveDeck } from './helpers';
|
|
21
21
|
|
|
22
22
|
const handler: Operation.WithHandler<typeof Adjust> = Adjust.pipe(
|
|
@@ -73,7 +73,7 @@ const handler: Operation.WithHandler<typeof Adjust> = Adjust.pipe(
|
|
|
73
73
|
);
|
|
74
74
|
|
|
75
75
|
if (Option.isSome(companion)) {
|
|
76
|
-
yield* Operation.invoke(
|
|
76
|
+
yield* Operation.invoke(LayoutOperation.UpdateCompanion, { subject: companion.value.id });
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}),
|
package/src/operations/close.ts
CHANGED
|
@@ -6,7 +6,7 @@ import * as Effect from 'effect/Effect';
|
|
|
6
6
|
|
|
7
7
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
8
8
|
import { LayoutOperation } from '@dxos/app-toolkit';
|
|
9
|
-
import { Operation } from '@dxos/
|
|
9
|
+
import { Operation } from '@dxos/compute';
|
|
10
10
|
import { AttentionCapabilities } from '@dxos/plugin-attention/types';
|
|
11
11
|
|
|
12
12
|
import { closeEntry } from '../layout';
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
import * as Schema from 'effect/Schema';
|
|
6
6
|
|
|
7
7
|
import { Capability } from '@dxos/app-framework';
|
|
8
|
-
import { Operation } from '@dxos/
|
|
8
|
+
import { Operation } from '@dxos/compute';
|
|
9
9
|
|
|
10
10
|
import { meta } from '#meta';
|
|
11
11
|
|
|
12
|
-
const
|
|
12
|
+
const PartAdjustment = Schema.Union(
|
|
13
13
|
Schema.Literal('close').annotations({ description: 'Close the plank.' }),
|
|
14
14
|
Schema.Literal('companion').annotations({ description: 'Open the companion plank.' }),
|
|
15
15
|
Schema.Literal('solo').annotations({ description: 'Solo the plank.' }),
|
|
@@ -17,7 +17,8 @@ const PartAdjustmentSchema = Schema.Union(
|
|
|
17
17
|
Schema.Literal('increment-start').annotations({ description: 'Move the plank towards the start of the deck.' }),
|
|
18
18
|
Schema.Literal('increment-end').annotations({ description: 'Move the plank towards the end of the deck.' }),
|
|
19
19
|
);
|
|
20
|
-
|
|
20
|
+
|
|
21
|
+
export type PartAdjustment = Schema.Schema.Type<typeof PartAdjustment>;
|
|
21
22
|
|
|
22
23
|
export const Adjust = Operation.make({
|
|
23
24
|
meta: {
|
|
@@ -28,7 +29,7 @@ export const Adjust = Operation.make({
|
|
|
28
29
|
services: [Capability.Service],
|
|
29
30
|
input: Schema.Struct({
|
|
30
31
|
id: Schema.String.annotations({ description: 'The id of the plank to adjust.' }),
|
|
31
|
-
type:
|
|
32
|
+
type: PartAdjustment.annotations({ description: 'The type of adjustment to make.' }),
|
|
32
33
|
}),
|
|
33
34
|
output: Schema.Void,
|
|
34
35
|
});
|
|
@@ -46,16 +47,3 @@ export const UpdatePlankSize = Operation.make({
|
|
|
46
47
|
}),
|
|
47
48
|
output: Schema.Void,
|
|
48
49
|
});
|
|
49
|
-
|
|
50
|
-
export const ChangeCompanion = Operation.make({
|
|
51
|
-
meta: {
|
|
52
|
-
key: `${meta.id}.operation.change-companion`,
|
|
53
|
-
name: 'Change Companion',
|
|
54
|
-
description: 'Change the companion plank for a primary plank.',
|
|
55
|
-
},
|
|
56
|
-
services: [Capability.Service],
|
|
57
|
-
input: Schema.Struct({
|
|
58
|
-
companion: Schema.Union(Schema.String, Schema.Null),
|
|
59
|
-
}),
|
|
60
|
-
output: Schema.Void,
|
|
61
|
-
});
|
package/src/operations/index.ts
CHANGED
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { OperationHandlerSet } from '@dxos/
|
|
5
|
+
import { OperationHandlerSet } from '@dxos/compute';
|
|
6
6
|
|
|
7
7
|
export * as DeckOperation from './definitions';
|
|
8
8
|
|
|
9
9
|
export const DeckOperationHandlerSet = OperationHandlerSet.lazy(
|
|
10
10
|
() => import('./add-toast'),
|
|
11
11
|
() => import('./adjust'),
|
|
12
|
-
() => import('./change-companion'),
|
|
13
12
|
() => import('./close'),
|
|
14
13
|
() => import('./open'),
|
|
15
14
|
() => import('./revert-workspace'),
|
|
@@ -18,6 +17,7 @@ export const DeckOperationHandlerSet = OperationHandlerSet.lazy(
|
|
|
18
17
|
() => import('./set-layout-mode'),
|
|
19
18
|
() => import('./show-undo'),
|
|
20
19
|
() => import('./switch-workspace'),
|
|
20
|
+
() => import('./update-companion'),
|
|
21
21
|
() => import('./update-complementary'),
|
|
22
22
|
() => import('./update-dialog'),
|
|
23
23
|
() => import('./update-plank-size'),
|