@dxos/plugin-deck 0.8.4-main.8360d9e660 → 0.8.4-main.8baae0fced
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-ZD2KFDHJ.mjs +278 -0
- package/dist/lib/neutral/DeckLayout-ZD2KFDHJ.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/DeckPlugin.workerd.mjs +16 -0
- package/dist/lib/neutral/DeckPlugin.workerd.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/neutral/add-toast-IKNUJBKF.mjs +24 -0
- package/dist/lib/neutral/add-toast-IKNUJBKF.mjs.map +7 -0
- package/dist/lib/neutral/adjust-5H2LB7IO.mjs +93 -0
- package/dist/lib/neutral/adjust-5H2LB7IO.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-builder-MRA3OMKO.mjs +129 -0
- package/dist/lib/neutral/app-graph-builder-MRA3OMKO.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-DNLSRLTQ.mjs +278 -0
- package/dist/lib/neutral/chunk-DNLSRLTQ.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/neutral/chunk-GLB73Q6U.mjs +22 -0
- package/dist/lib/neutral/chunk-GLB73Q6U.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-NLTTHGRS.mjs +1299 -0
- package/dist/lib/neutral/chunk-NLTTHGRS.mjs.map +7 -0
- package/dist/lib/neutral/chunk-PTCEE64Z.mjs +8 -0
- package/dist/lib/neutral/chunk-PTCEE64Z.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-L3RYMAV7.mjs → neutral/chunk-YYOZW6QJ.mjs} +6 -2
- package/dist/lib/neutral/chunk-YYOZW6QJ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ZYYOSX5I.mjs +69 -0
- package/dist/lib/neutral/chunk-ZYYOSX5I.mjs.map +7 -0
- package/dist/lib/neutral/close-OBEHDVLR.mjs +44 -0
- package/dist/lib/neutral/close-OBEHDVLR.mjs.map +7 -0
- 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/{browser/chunk-TAHLKBDO.mjs → neutral/hooks/index.mjs} +34 -62
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +38 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/open-X3ILMSIU.mjs +149 -0
- package/dist/lib/neutral/open-X3ILMSIU.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/{browser/react-root-XBFHPSCP.mjs → neutral/react-root-WZ6KH27J.mjs} +6 -13
- 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/neutral/revert-workspace-D4XI6RDS.mjs +21 -0
- package/dist/lib/neutral/revert-workspace-D4XI6RDS.mjs.map +7 -0
- package/dist/lib/neutral/scroll-into-view-AG4SBMNE.mjs +21 -0
- package/dist/lib/neutral/scroll-into-view-AG4SBMNE.mjs.map +7 -0
- package/dist/lib/neutral/set-MOEIXWLN.mjs +37 -0
- package/dist/lib/neutral/set-MOEIXWLN.mjs.map +7 -0
- package/dist/lib/neutral/set-layout-mode-YUC24WQ4.mjs +85 -0
- package/dist/lib/neutral/set-layout-mode-YUC24WQ4.mjs.map +7 -0
- package/dist/lib/{browser/settings-PTMGCSJH.mjs → neutral/settings-EGNYUM4T.mjs} +7 -14
- package/dist/lib/neutral/settings-EGNYUM4T.mjs.map +7 -0
- package/dist/lib/neutral/show-undo-YHE4CRBI.mjs +59 -0
- package/dist/lib/neutral/show-undo-YHE4CRBI.mjs.map +7 -0
- package/dist/lib/{browser/state-MA4SQ7BE.mjs → neutral/state-IIDXMQUO.mjs} +13 -33
- package/dist/lib/neutral/state-IIDXMQUO.mjs.map +7 -0
- package/dist/lib/neutral/switch-workspace-IXFZ2VOT.mjs +60 -0
- package/dist/lib/neutral/switch-workspace-IXFZ2VOT.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +57 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +34 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/update-companion-R6NU5DVD.mjs +32 -0
- package/dist/lib/neutral/update-companion-R6NU5DVD.mjs.map +7 -0
- package/dist/lib/neutral/update-complementary-6GT5PZXY.mjs +28 -0
- package/dist/lib/neutral/update-complementary-6GT5PZXY.mjs.map +7 -0
- package/dist/lib/neutral/update-dialog-MBJMVOXX.mjs +29 -0
- package/dist/lib/neutral/update-dialog-MBJMVOXX.mjs.map +7 -0
- package/dist/lib/neutral/update-plank-size-YJ5R5AFH.mjs +26 -0
- package/dist/lib/neutral/update-plank-size-YJ5R5AFH.mjs.map +7 -0
- package/dist/lib/neutral/update-popover-RP3X7F2X.mjs +33 -0
- package/dist/lib/neutral/update-popover-RP3X7F2X.mjs.map +7 -0
- package/dist/lib/neutral/update-sidebar-IH5CAFZ3.mjs +25 -0
- package/dist/lib/neutral/update-sidebar-IH5CAFZ3.mjs.map +7 -0
- 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/DeckPlugin.workerd.d.ts +4 -0
- package/dist/types/src/DeckPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/check-app-scheme.d.ts +19 -0
- package/dist/types/src/capabilities/check-app-scheme.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +198 -9
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings.d.ts +7 -0
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/{state/state.d.ts → state.d.ts} +38 -22
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/capabilities/{tools/tools.d.ts → tools.d.ts} +1 -1
- package/dist/types/src/capabilities/tools.d.ts.map +1 -0
- package/dist/types/src/capabilities/{url-handler/url-handler.d.ts → url-handler.d.ts} +1 -1
- package/dist/types/src/capabilities/url-handler.d.ts.map +1 -0
- package/dist/types/src/components/DeckSettings/DeckSettings.d.ts +6 -0
- package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +1 -0
- package/dist/types/src/components/DeckSettings/DeckSettings.stories.d.ts +61 -0
- package/dist/types/src/components/DeckSettings/DeckSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/DeckSettings/index.d.ts +2 -0
- package/dist/types/src/components/DeckSettings/index.d.ts.map +1 -0
- package/dist/types/src/components/Matrix/Matrix.d.ts +41 -0
- package/dist/types/src/components/Matrix/Matrix.d.ts.map +1 -0
- package/dist/types/src/components/Matrix/Matrix.stories.d.ts +17 -0
- package/dist/types/src/components/Matrix/Matrix.stories.d.ts.map +1 -0
- package/dist/types/src/components/Matrix/index.d.ts +3 -0
- package/dist/types/src/components/Matrix/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +3 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/{components/DeckLayout → containers/Deck}/Banner.d.ts +1 -1
- package/dist/types/src/containers/Deck/Banner.d.ts.map +1 -0
- package/dist/types/src/containers/Deck/Deck.d.ts +25 -0
- package/dist/types/src/containers/Deck/Deck.d.ts.map +1 -0
- package/dist/types/src/containers/Deck/Deck.stories.d.ts +61 -0
- package/dist/types/src/containers/Deck/Deck.stories.d.ts.map +1 -0
- package/dist/types/src/containers/Deck/DeckContent.d.ts +7 -0
- package/dist/types/src/containers/Deck/DeckContent.d.ts.map +1 -0
- package/dist/types/src/containers/Deck/DeckRoot.d.ts +39 -0
- package/dist/types/src/containers/Deck/DeckRoot.d.ts.map +1 -0
- package/dist/types/src/containers/Deck/DeckViewport.d.ts +16 -0
- package/dist/types/src/containers/Deck/DeckViewport.d.ts.map +1 -0
- package/dist/types/src/containers/Deck/StatusBar.d.ts.map +1 -0
- package/dist/types/src/containers/Deck/index.d.ts +2 -0
- package/dist/types/src/containers/Deck/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/DeckLayout/ActiveNode.d.ts.map +1 -1
- package/dist/types/src/containers/DeckLayout/DeckLayout.d.ts.map +1 -0
- package/dist/types/src/containers/DeckLayout/DeckLayout.stories.d.ts +63 -0
- package/dist/types/src/containers/DeckLayout/DeckLayout.stories.d.ts.map +1 -0
- package/dist/types/src/containers/DeckLayout/Dialog.d.ts.map +1 -0
- package/dist/types/src/containers/DeckLayout/Fallback.d.ts +2 -0
- package/dist/types/src/containers/DeckLayout/Fallback.d.ts.map +1 -0
- package/dist/types/src/containers/DeckLayout/Popover.d.ts +5 -0
- package/dist/types/src/containers/DeckLayout/Popover.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/DeckLayout/Toast.d.ts +1 -1
- package/dist/types/src/containers/DeckLayout/Toast.d.ts.map +1 -0
- package/dist/types/src/containers/DeckLayout/constants.d.ts.map +1 -0
- package/dist/types/src/containers/DeckLayout/index.d.ts +4 -0
- package/dist/types/src/containers/DeckLayout/index.d.ts.map +1 -0
- package/dist/types/src/containers/Plank/Plank.d.ts +17 -0
- package/dist/types/src/containers/Plank/Plank.d.ts.map +1 -0
- package/dist/types/src/containers/Plank/Plank.stories.d.ts +61 -0
- package/dist/types/src/containers/Plank/Plank.stories.d.ts.map +1 -0
- package/dist/types/src/containers/Plank/PlankComponent.d.ts +17 -0
- package/dist/types/src/containers/Plank/PlankComponent.d.ts.map +1 -0
- package/dist/types/src/containers/Plank/PlankContent.d.ts +10 -0
- package/dist/types/src/containers/Plank/PlankContent.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/Plank/PlankControls.d.ts +5 -6
- package/dist/types/src/containers/Plank/PlankControls.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/Plank/PlankError.d.ts +2 -2
- package/dist/types/src/containers/Plank/PlankError.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/Plank/PlankHeading.d.ts +3 -2
- package/dist/types/src/containers/Plank/PlankHeading.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/Plank/PlankLoading.d.ts.map +1 -1
- package/dist/types/src/containers/Plank/PlankRoot.d.ts +37 -0
- package/dist/types/src/containers/Plank/PlankRoot.d.ts.map +1 -0
- package/dist/types/src/containers/Plank/index.d.ts +4 -0
- package/dist/types/src/containers/Plank/index.d.ts.map +1 -0
- package/dist/types/src/containers/Sidebar/ComplementarySidebar.d.ts.map +1 -0
- package/dist/types/src/containers/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/Sidebar/SidebarButton.d.ts +1 -1
- package/dist/types/src/containers/Sidebar/SidebarButton.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/Sidebar/index.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +4 -2
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +0 -1
- package/dist/types/src/hooks/index.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/useDeckState.d.ts +3 -3
- package/dist/types/src/hooks/useDeckState.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 +20 -3
- package/dist/types/src/layout.d.ts.map +1 -1
- package/dist/types/src/layout.test.d.ts +2 -0
- package/dist/types/src/layout.test.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/add-toast.d.ts +5 -0
- package/dist/types/src/operations/add-toast.d.ts.map +1 -0
- package/dist/types/src/operations/adjust.d.ts +5 -0
- package/dist/types/src/operations/adjust.d.ts.map +1 -0
- package/dist/types/src/operations/close.d.ts +5 -0
- package/dist/types/src/operations/close.d.ts.map +1 -0
- package/dist/types/src/operations/helpers.d.ts +3 -0
- package/dist/types/src/operations/helpers.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/open.d.ts +5 -0
- package/dist/types/src/operations/open.d.ts.map +1 -0
- package/dist/types/src/operations/revert-workspace.d.ts +5 -0
- package/dist/types/src/operations/revert-workspace.d.ts.map +1 -0
- package/dist/types/src/operations/scroll-into-view.d.ts +5 -0
- package/dist/types/src/operations/scroll-into-view.d.ts.map +1 -0
- package/dist/types/src/operations/set-layout-mode.d.ts +9 -0
- package/dist/types/src/operations/set-layout-mode.d.ts.map +1 -0
- package/dist/types/src/operations/set.d.ts +5 -0
- package/dist/types/src/operations/set.d.ts.map +1 -0
- package/dist/types/src/operations/show-undo.d.ts +5 -0
- package/dist/types/src/operations/show-undo.d.ts.map +1 -0
- package/dist/types/src/operations/switch-workspace.d.ts +5 -0
- package/dist/types/src/operations/switch-workspace.d.ts.map +1 -0
- 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 +5 -0
- package/dist/types/src/operations/update-complementary.d.ts.map +1 -0
- package/dist/types/src/operations/update-dialog.d.ts +5 -0
- package/dist/types/src/operations/update-dialog.d.ts.map +1 -0
- package/dist/types/src/operations/update-plank-size.d.ts +5 -0
- package/dist/types/src/operations/update-plank-size.d.ts.map +1 -0
- package/dist/types/src/operations/update-popover.d.ts +5 -0
- package/dist/types/src/operations/update-popover.d.ts.map +1 -0
- package/dist/types/src/operations/update-sidebar.d.ts +5 -0
- package/dist/types/src/operations/update-sidebar.d.ts.map +1 -0
- 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 -56
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/{capabilities/state/index.d.ts → types/DeckCapabilities.d.ts} +51 -35
- 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/types/DeckOperation.d.ts +15 -0
- package/dist/types/src/types/DeckOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +10 -0
- package/dist/types/src/types/Settings.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +4 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +39 -100
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +2 -1
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/layoutAppliesTopbar.d.ts +1 -1
- package/dist/types/src/util/layoutAppliesTopbar.d.ts.map +1 -1
- package/dist/types/src/util/plank-url-params.d.ts +14 -0
- package/dist/types/src/util/plank-url-params.d.ts.map +1 -0
- package/dist/types/src/util/plank-url-params.test.d.ts +2 -0
- package/dist/types/src/util/plank-url-params.test.d.ts.map +1 -0
- package/dist/types/src/util/sanitize-persisted-state.d.ts +19 -0
- package/dist/types/src/util/sanitize-persisted-state.d.ts.map +1 -0
- package/dist/types/src/util/sanitize-persisted-state.test.d.ts +2 -0
- package/dist/types/src/util/sanitize-persisted-state.test.d.ts.map +1 -0
- package/dist/types/src/util/set-active.d.ts +2 -2
- package/dist/types/src/util/set-active.d.ts.map +1 -1
- package/dist/types/src/util/set-active.test.d.ts +2 -0
- package/dist/types/src/util/set-active.test.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +111 -52
- package/src/DeckPlugin.node.ts +17 -0
- package/src/DeckPlugin.test.ts +27 -0
- package/src/DeckPlugin.ts +13 -17
- package/src/DeckPlugin.workerd.ts +16 -0
- package/src/capabilities/app-graph-builder.ts +127 -0
- package/src/capabilities/check-app-scheme.ts +139 -0
- package/src/capabilities/index.ts +14 -10
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/{react-root/react-root.tsx → react-root.tsx} +3 -3
- package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +12 -14
- package/src/capabilities/{settings/settings.ts → settings.ts} +4 -7
- package/src/capabilities/{state/state.ts → state.ts} +12 -26
- package/src/capabilities/{tools/tools.ts → tools.ts} +7 -7
- package/src/capabilities/url-handler.ts +231 -0
- package/src/components/DeckSettings/DeckSettings.stories.tsx +37 -0
- package/src/components/DeckSettings/DeckSettings.tsx +34 -0
- package/src/components/DeckSettings/index.ts +5 -0
- package/src/components/Matrix/Matrix.stories.tsx +220 -0
- package/src/components/Matrix/Matrix.tsx +205 -0
- package/src/components/Matrix/SPEC.md +219 -0
- package/src/components/Matrix/index.ts +6 -0
- package/src/components/index.ts +6 -2
- package/src/{components/DeckLayout → containers/Deck}/Banner.tsx +7 -5
- package/src/containers/Deck/Deck.stories.tsx +81 -0
- package/src/containers/Deck/Deck.tsx +21 -0
- package/src/containers/Deck/DeckContent.tsx +102 -0
- package/src/containers/Deck/DeckRoot.tsx +50 -0
- package/src/containers/Deck/DeckViewport.tsx +449 -0
- package/src/containers/Deck/index.ts +5 -0
- package/src/{components → containers}/DeckLayout/ActiveNode.tsx +8 -4
- package/src/containers/DeckLayout/DeckLayout.stories.tsx +395 -0
- package/src/containers/DeckLayout/DeckLayout.tsx +62 -0
- package/src/{components → containers}/DeckLayout/Dialog.tsx +11 -4
- package/src/{components → containers}/DeckLayout/Fallback.tsx +4 -4
- package/src/{components → containers}/DeckLayout/Popover.tsx +34 -21
- package/src/{components → containers}/DeckLayout/Toast.tsx +1 -1
- package/src/{components → containers}/DeckLayout/constants.ts +1 -0
- package/src/{components → containers}/DeckLayout/index.ts +3 -2
- package/src/containers/Plank/Plank.stories.tsx +108 -0
- package/src/containers/Plank/Plank.tsx +22 -0
- package/src/containers/Plank/PlankComponent.tsx +217 -0
- package/src/containers/Plank/PlankContent.tsx +45 -0
- package/src/{components → containers}/Plank/PlankControls.tsx +37 -28
- package/src/{components → containers}/Plank/PlankError.tsx +20 -4
- package/src/{components → containers}/Plank/PlankHeading.tsx +50 -39
- package/src/{components → containers}/Plank/PlankLoading.tsx +1 -1
- package/src/containers/Plank/PlankRoot.tsx +49 -0
- package/src/{components → containers}/Plank/index.ts +0 -2
- package/src/containers/Sidebar/ComplementarySidebar.tsx +191 -0
- package/src/containers/Sidebar/Sidebar.tsx +39 -0
- package/src/{components → containers}/Sidebar/SidebarButton.tsx +17 -11
- package/src/containers/index.ts +5 -2
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useCompanions.ts +1 -1
- package/src/hooks/useDeckCompanions.ts +3 -2
- package/src/hooks/useDeckState.ts +11 -20
- package/src/hooks/useSelectedCompanion.ts +4 -4
- package/src/index.ts +1 -3
- package/src/layout.test.ts +59 -0
- package/src/layout.ts +38 -27
- package/src/meta.ts +2 -0
- package/src/operations/add-toast.ts +24 -0
- package/src/operations/adjust.ts +82 -0
- package/src/operations/close.ts +35 -0
- package/src/operations/helpers.ts +22 -0
- package/src/operations/index.ts +24 -0
- package/src/operations/open.ts +186 -0
- package/src/operations/revert-workspace.ts +22 -0
- package/src/operations/scroll-into-view.ts +24 -0
- package/src/operations/set-layout-mode.ts +84 -0
- package/src/operations/set.ts +36 -0
- package/src/operations/show-undo.ts +47 -0
- package/src/operations/switch-workspace.ts +66 -0
- package/src/operations/update-companion.ts +35 -0
- package/src/operations/update-complementary.ts +33 -0
- package/src/operations/update-dialog.ts +34 -0
- package/src/operations/update-plank-size.ts +28 -0
- package/src/operations/update-popover.ts +36 -0
- package/src/operations/update-sidebar.ts +28 -0
- package/src/plugin.ts +11 -0
- package/src/translations.ts +42 -55
- package/src/types/DeckCapabilities.ts +34 -0
- package/src/types/DeckEvents.ts +21 -0
- package/src/types/DeckOperation.ts +51 -0
- package/src/types/Settings.ts +36 -0
- package/src/types/index.ts +5 -2
- package/src/types/schema.ts +33 -113
- package/src/util/index.ts +2 -1
- package/src/util/layoutAppliesTopbar.ts +1 -1
- package/src/util/plank-url-params.test.ts +85 -0
- package/src/util/plank-url-params.ts +36 -0
- package/src/util/sanitize-persisted-state.test.ts +79 -0
- package/src/util/sanitize-persisted-state.ts +52 -0
- package/src/util/set-active.test.ts +106 -0
- package/src/util/set-active.ts +2 -2
- package/src/vite-env.d.ts +5 -0
- package/dist/lib/browser/Banner-AJW6225V.mjs +0 -14
- package/dist/lib/browser/Banner-AJW6225V.mjs.map +0 -7
- package/dist/lib/browser/DeckSettings-HSSQKFNE.mjs +0 -96
- package/dist/lib/browser/DeckSettings-HSSQKFNE.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-MP6INIM2.mjs +0 -123
- package/dist/lib/browser/app-graph-builder-MP6INIM2.mjs.map +0 -7
- package/dist/lib/browser/check-app-scheme-AUNCD2Y6.mjs +0 -33
- package/dist/lib/browser/check-app-scheme-AUNCD2Y6.mjs.map +0 -7
- package/dist/lib/browser/chunk-3P2FJVXC.mjs +0 -278
- package/dist/lib/browser/chunk-3P2FJVXC.mjs.map +0 -7
- package/dist/lib/browser/chunk-BJDEG7YZ.mjs +0 -74
- package/dist/lib/browser/chunk-BJDEG7YZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-L3RYMAV7.mjs.map +0 -7
- package/dist/lib/browser/chunk-TAHLKBDO.mjs.map +0 -7
- package/dist/lib/browser/chunk-WTNYSXY5.mjs +0 -1388
- package/dist/lib/browser/chunk-WTNYSXY5.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -184
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/operation-resolver-2TEGT4PG.mjs +0 -639
- package/dist/lib/browser/operation-resolver-2TEGT4PG.mjs.map +0 -7
- package/dist/lib/browser/react-root-XBFHPSCP.mjs.map +0 -7
- package/dist/lib/browser/react-surface-4J3BZNT2.mjs +0 -44
- package/dist/lib/browser/react-surface-4J3BZNT2.mjs.map +0 -7
- package/dist/lib/browser/settings-PTMGCSJH.mjs.map +0 -7
- package/dist/lib/browser/state-MA4SQ7BE.mjs.map +0 -7
- package/dist/lib/browser/toolkit-6B34QFU3.mjs +0 -55
- package/dist/lib/browser/toolkit-6B34QFU3.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -38
- package/dist/lib/browser/url-handler-FEUFPQIP.mjs +0 -98
- package/dist/lib/browser/url-handler-FEUFPQIP.mjs.map +0 -7
- package/dist/lib/node-esm/Banner-XBH2IIDR.mjs +0 -15
- package/dist/lib/node-esm/Banner-XBH2IIDR.mjs.map +0 -7
- package/dist/lib/node-esm/DeckSettings-DJRFLKQS.mjs +0 -97
- package/dist/lib/node-esm/DeckSettings-DJRFLKQS.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-ACHG5HY7.mjs +0 -124
- package/dist/lib/node-esm/app-graph-builder-ACHG5HY7.mjs.map +0 -7
- package/dist/lib/node-esm/check-app-scheme-WN76GWVC.mjs +0 -34
- package/dist/lib/node-esm/check-app-scheme-WN76GWVC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CQ3XYTNJ.mjs +0 -1389
- package/dist/lib/node-esm/chunk-CQ3XYTNJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-DGTRKKWZ.mjs +0 -76
- package/dist/lib/node-esm/chunk-DGTRKKWZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-EMU4VIPH.mjs +0 -188
- package/dist/lib/node-esm/chunk-EMU4VIPH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GZJAQ5IP.mjs +0 -279
- package/dist/lib/node-esm/chunk-GZJAQ5IP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XCNF4COU.mjs +0 -18
- package/dist/lib/node-esm/chunk-XCNF4COU.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -185
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/operation-resolver-GCMCCI7A.mjs +0 -640
- package/dist/lib/node-esm/operation-resolver-GCMCCI7A.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-32LZ6APH.mjs +0 -49
- package/dist/lib/node-esm/react-root-32LZ6APH.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-CO4ZDZKM.mjs +0 -45
- package/dist/lib/node-esm/react-surface-CO4ZDZKM.mjs.map +0 -7
- package/dist/lib/node-esm/settings-LPPFLXNJ.mjs +0 -41
- package/dist/lib/node-esm/settings-LPPFLXNJ.mjs.map +0 -7
- package/dist/lib/node-esm/state-KNRU3GDC.mjs +0 -107
- package/dist/lib/node-esm/state-KNRU3GDC.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-SOWYKJY3.mjs +0 -56
- package/dist/lib/node-esm/toolkit-SOWYKJY3.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -39
- package/dist/lib/node-esm/url-handler-4LEB7UWF.mjs +0 -99
- package/dist/lib/node-esm/url-handler-4LEB7UWF.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/check-app-scheme/check-app-scheme.d.ts +0 -5
- package/dist/types/src/capabilities/check-app-scheme/check-app-scheme.d.ts.map +0 -1
- package/dist/types/src/capabilities/check-app-scheme/index.d.ts +0 -3
- package/dist/types/src/capabilities/check-app-scheme/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-root/index.d.ts +0 -6
- package/dist/types/src/capabilities/react-root/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-root/react-root.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/index.d.ts +0 -19
- package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/settings.d.ts +0 -22
- package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
- package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
- package/dist/types/src/capabilities/toolkit/index.d.ts +0 -3
- package/dist/types/src/capabilities/toolkit/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/toolkit/toolkit.d.ts +0 -27
- package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +0 -1
- package/dist/types/src/capabilities/tools/index.d.ts +0 -3
- package/dist/types/src/capabilities/tools/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/tools/tools.d.ts.map +0 -1
- package/dist/types/src/capabilities/url-handler/index.d.ts +0 -3
- package/dist/types/src/capabilities/url-handler/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/url-handler/url-handler.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/Banner.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts +0 -3
- package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/DeckLayout.stories.d.ts +0 -75
- package/dist/types/src/components/DeckLayout/DeckLayout.stories.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/DeckMain.d.ts +0 -3
- package/dist/types/src/components/DeckLayout/DeckMain.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/Dialog.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/Fallback.d.ts +0 -3
- package/dist/types/src/components/DeckLayout/Fallback.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/Popover.d.ts +0 -5
- package/dist/types/src/components/DeckLayout/Popover.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/StatusBar.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/Toast.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/Topbar.d.ts +0 -3
- package/dist/types/src/components/DeckLayout/Topbar.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/constants.d.ts.map +0 -1
- package/dist/types/src/components/DeckLayout/index.d.ts +0 -4
- package/dist/types/src/components/DeckLayout/index.d.ts.map +0 -1
- package/dist/types/src/components/Plank/Plank.d.ts +0 -27
- package/dist/types/src/components/Plank/Plank.d.ts.map +0 -1
- package/dist/types/src/components/Plank/Plank.stories.d.ts +0 -108
- package/dist/types/src/components/Plank/Plank.stories.d.ts.map +0 -1
- package/dist/types/src/components/Plank/PlankControls.d.ts.map +0 -1
- package/dist/types/src/components/Plank/PlankError.d.ts.map +0 -1
- package/dist/types/src/components/Plank/PlankHeading.d.ts.map +0 -1
- package/dist/types/src/components/Plank/index.d.ts +0 -6
- package/dist/types/src/components/Plank/index.d.ts.map +0 -1
- package/dist/types/src/components/Sidebar/ComplementarySidebar.d.ts.map +0 -1
- package/dist/types/src/components/Sidebar/Sidebar.d.ts.map +0 -1
- package/dist/types/src/components/Sidebar/SidebarButton.d.ts.map +0 -1
- package/dist/types/src/components/fragments.d.ts +0 -7
- package/dist/types/src/components/fragments.d.ts.map +0 -1
- package/dist/types/src/containers/Banner/Banner.d.ts +0 -2
- package/dist/types/src/containers/Banner/Banner.d.ts.map +0 -1
- package/dist/types/src/containers/Banner/index.d.ts +0 -3
- package/dist/types/src/containers/Banner/index.d.ts.map +0 -1
- package/dist/types/src/containers/DeckSettings/DeckSettings.d.ts +0 -8
- package/dist/types/src/containers/DeckSettings/DeckSettings.d.ts.map +0 -1
- package/dist/types/src/containers/DeckSettings/index.d.ts +0 -3
- package/dist/types/src/containers/DeckSettings/index.d.ts.map +0 -1
- package/dist/types/src/hooks/useHoistStatusbar.d.ts +0 -3
- package/dist/types/src/hooks/useHoistStatusbar.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -190
- 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/dist/types/src/util/overscroll.d.ts +0 -47
- package/dist/types/src/util/overscroll.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -119
- package/src/capabilities/app-graph-builder/index.ts +0 -7
- package/src/capabilities/check-app-scheme/check-app-scheme.ts +0 -45
- package/src/capabilities/check-app-scheme/index.ts +0 -7
- package/src/capabilities/operation-resolver/index.ts +0 -10
- package/src/capabilities/operation-resolver/operation-resolver.ts +0 -558
- package/src/capabilities/react-root/index.ts +0 -7
- package/src/capabilities/react-surface/index.ts +0 -7
- package/src/capabilities/settings/index.ts +0 -7
- package/src/capabilities/state/index.ts +0 -7
- package/src/capabilities/toolkit/index.ts +0 -7
- package/src/capabilities/toolkit/toolkit.ts +0 -64
- package/src/capabilities/tools/index.ts +0 -7
- package/src/capabilities/url-handler/index.ts +0 -7
- package/src/capabilities/url-handler/url-handler.ts +0 -98
- package/src/components/DeckLayout/ContentEmpty.tsx +0 -30
- package/src/components/DeckLayout/DeckLayout.stories.tsx +0 -53
- package/src/components/DeckLayout/DeckLayout.tsx +0 -34
- package/src/components/DeckLayout/DeckMain.tsx +0 -287
- package/src/components/DeckLayout/Topbar.tsx +0 -11
- package/src/components/Plank/Plank.stories.tsx +0 -64
- package/src/components/Plank/Plank.tsx +0 -307
- package/src/components/Sidebar/ComplementarySidebar.tsx +0 -220
- package/src/components/Sidebar/Sidebar.tsx +0 -42
- package/src/components/fragments.ts +0 -19
- package/src/containers/Banner/Banner.tsx +0 -5
- package/src/containers/Banner/index.ts +0 -7
- package/src/containers/DeckSettings/DeckSettings.tsx +0 -113
- package/src/containers/DeckSettings/index.ts +0 -7
- package/src/hooks/useHoistStatusbar.ts +0 -24
- package/src/types/capabilities.ts +0 -33
- package/src/types/events.ts +0 -21
- package/src/util/overscroll.ts +0 -69
- /package/dist/lib/{browser/types/index.mjs.map → neutral/check-app-scheme-A7FZVNZO.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
- /package/dist/types/src/capabilities/{react-root/react-root.d.ts → react-root.d.ts} +0 -0
- /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
- /package/dist/types/src/{components/DeckLayout → containers/Deck}/StatusBar.d.ts +0 -0
- /package/dist/types/src/{components → containers}/DeckLayout/ActiveNode.d.ts +0 -0
- /package/dist/types/src/{components → containers}/DeckLayout/DeckLayout.d.ts +0 -0
- /package/dist/types/src/{components → containers}/DeckLayout/Dialog.d.ts +0 -0
- /package/dist/types/src/{components → containers}/DeckLayout/constants.d.ts +0 -0
- /package/dist/types/src/{components → containers}/Plank/PlankLoading.d.ts +0 -0
- /package/dist/types/src/{components → containers}/Sidebar/ComplementarySidebar.d.ts +0 -0
- /package/dist/types/src/{components → containers}/Sidebar/Sidebar.d.ts +0 -0
- /package/dist/types/src/{components → containers}/Sidebar/index.d.ts +0 -0
- /package/src/{components/DeckLayout → containers/Deck}/StatusBar.tsx +0 -0
- /package/src/{components → containers}/Sidebar/index.ts +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/schema.ts", "../../../src/types/DeckCapabilities.ts", "../../../src/types/DeckEvents.ts", "../../../src/types/DeckOperation.ts", "../../../src/types/Settings.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Label, LayoutOperation } from '@dxos/app-toolkit';\nimport { type DeepReadonly } from '@dxos/util';\n\nimport { meta } from '#meta';\n\nexport { PLANK_COMPANION_TYPE, DECK_COMPANION_TYPE } from '@dxos/app-toolkit';\n\nexport type Part = 'solo' | 'multi' | 'complementary';\nexport type ResolvedPart = Part | 'solo-primary' | 'solo-companion';\n\nexport const PlankSizing = Schema.Record({ key: Schema.String, value: Schema.Number });\nexport type PlankSizing = Schema.Schema.Type<typeof PlankSizing>;\n\nexport const DeckState = Schema.Struct({\n /** If false, the deck has not yet left solo mode and new planks should be soloed. */\n initialized: Schema.Boolean,\n /** Item IDs of planks currently displayed in multi-mode. */\n active: Schema.mutable(Schema.Array(Schema.String)),\n /** Item IDs of planks that have been closed; used for state persistence and reopening. */\n inactive: Schema.mutable(Schema.Array(Schema.String)),\n /** Item ID of the single plank displayed in solo or fullscreen mode. */\n solo: Schema.optional(Schema.String),\n /** Whether the solo plank is displayed in fullscreen mode (no heading or sidebars). */\n fullscreen: Schema.Boolean,\n /** Persisted plank widths in rem, keyed by item ID. */\n plankSizing: Schema.mutable(PlankSizing),\n /** Whether the companion pane is visible alongside the active plank(s). */\n companionOpen: Schema.Boolean,\n /** Which companion variant to display when the companion pane is open. */\n companionVariant: Schema.optional(Schema.String),\n /** Persisted companion frame widths in rem, keyed by frame ID. */\n companionFrameSizing: Schema.mutable(PlankSizing),\n});\nexport type DeckState = Schema.Schema.Type<typeof DeckState>;\n\nexport const defaultDeck: DeckState = {\n initialized: false,\n active: [],\n inactive: [],\n solo: undefined,\n fullscreen: false,\n plankSizing: {},\n companionOpen: false,\n companionVariant: undefined,\n companionFrameSizing: {},\n};\n\n//\n// Layout\n//\n\nconst LayoutMode = Schema.Literal('multi', 'solo', 'solo--fullscreen');\nexport type LayoutMode = Schema.Schema.Type<typeof LayoutMode>;\nexport const isLayoutMode = (value: any): value is LayoutMode => Schema.is(LayoutMode)(value);\nexport const getMode = (deck: DeckState | DeepReadonly<DeckState>): LayoutMode => {\n if (deck.solo) {\n return deck.fullscreen ? 'solo--fullscreen' : 'solo';\n }\n\n return 'multi';\n};\n\n// Persisted plugin state (stored in KVS/localStorage).\nexport const StoredDeckState = Schema.Struct({\n sidebarState: Schema.Literal('closed', 'collapsed', 'expanded'),\n complementarySidebarState: Schema.Literal('closed', 'collapsed', 'expanded'),\n complementarySidebarPanel: Schema.optional(Schema.String),\n activeDeck: Schema.String,\n previousDeck: Schema.String,\n decks: Schema.mutable(Schema.Record({ key: Schema.String, value: Schema.mutable(DeckState) })),\n previousMode: Schema.mutable(Schema.Record({ key: Schema.String, value: LayoutMode })),\n}).pipe(Schema.mutable);\nexport type StoredDeckState = Schema.Schema.Type<typeof StoredDeckState>;\n\n// Transient/ephemeral plugin state (not persisted).\nexport const EphemeralDeckState = Schema.Struct({\n dialogOpen: Schema.Boolean,\n dialogType: Schema.optional(Schema.Literal('default', 'alert')),\n dialogBlockAlign: Schema.optional(Schema.Literal('start', 'center', 'end')),\n dialogOverlayClasses: Schema.optional(Schema.String),\n dialogOverlayStyle: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n /** Data to be passed to the dialog Surface. */\n dialogContent: Schema.NullOr(Schema.Struct({ component: Schema.String, props: Schema.optional(Schema.Any) })),\n popoverOpen: Schema.Boolean,\n popoverSide: Schema.optional(Schema.Literal('top', 'right', 'bottom', 'left')),\n popoverAnchor: Schema.optional(Schema.Any),\n popoverAnchorId: Schema.optional(Schema.String),\n popoverKind: Schema.optional(Schema.Literal('base', 'card')),\n popoverTitle: Schema.optional(Label.annotations({ description: 'The title of the popover.' })),\n /** Ref of the subject to be passed to the popover Surface. */\n popoverContentRef: Schema.optional(Schema.String),\n /** Data to be passed to the popover Surface. */\n popoverContent: Schema.NullOr(\n Schema.Union(\n Schema.Struct({ component: Schema.String, props: Schema.optional(Schema.Any) }),\n Schema.Struct({ subject: Schema.Any }),\n ),\n ),\n toasts: Schema.mutable(Schema.Array(LayoutOperation.Toast)),\n currentUndoId: Schema.optional(Schema.String),\n /** The identifier of a component to scroll into view when it is mounted. */\n scrollIntoView: Schema.optional(Schema.String),\n}).pipe(Schema.mutable);\nexport type EphemeralDeckState = Schema.Schema.Type<typeof EphemeralDeckState>;\n\n// Combined state type (for convenience in components that need both).\nexport type DeckPluginState = StoredDeckState & EphemeralDeckState;\n\nexport namespace DeckAction {\n const PartAdjustmentSchema = Schema.Union(\n Schema.Literal('close').annotations({ description: 'Close the plank.' }),\n Schema.Literal('companion').annotations({ description: 'Open the companion plank.' }),\n Schema.Literal('solo').annotations({ description: 'Solo the plank.' }),\n Schema.Literal('solo--fullscreen').annotations({ description: 'Fullscreen the plank.' }),\n Schema.Literal('increment-start').annotations({ description: 'Move the plank towards the start of the deck.' }),\n Schema.Literal('increment-end').annotations({ description: 'Move the plank towards the end of the deck.' }),\n );\n export type PartAdjustment = Schema.Schema.Type<typeof PartAdjustmentSchema>;\n export const Adjustment = Schema.mutable(Schema.Struct({ id: Schema.String, type: PartAdjustmentSchema }));\n export type Adjustment = Schema.Schema.Type<typeof Adjustment>;\n\n // An atomic transaction to apply to the deck, describing which element to move to which location.\n export class Adjust extends Schema.TaggedClass<Adjust>()(`${meta.id}.action.adjust`, {\n input: Adjustment,\n output: Schema.Void,\n }) {}\n\n export class UpdatePlankSize extends Schema.TaggedClass<UpdatePlankSize>()(`${meta.id}.action.update-plank-size`, {\n input: Schema.Struct({\n id: Schema.String,\n size: Schema.Number,\n }),\n output: Schema.Void,\n }) {}\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\n\nimport { meta } from '#meta';\n\nimport { type EphemeralDeckState, type DeckState, type StoredDeckState } from './schema';\n\nexport const Settings = Capability.make<Atom.Writable<import('./Settings').Settings>>(`${meta.id}.capability.settings`);\n\n/** Persisted state (stored in KVS/localStorage). */\nexport const State = Capability.make<Atom.Writable<StoredDeckState>>(`${meta.id}.capability.state`);\n\n/** Transient/ephemeral state (not persisted). */\nexport const EphemeralState = Capability.make<Atom.Writable<EphemeralDeckState>>(\n `${meta.id}.capability.ephemeral-state`,\n);\n\n/** Get the current active deck from state. */\nexport const getDeck = (): Effect.Effect<DeckState, Error, Capability.Service> =>\n Effect.gen(function* () {\n const state = yield* Capabilities.getAtomValue(State);\n const deck = state.decks[state.activeDeck];\n invariant(deck, `Deck not found: ${state.activeDeck}`);\n return deck;\n });\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type ActivationEvent } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '#meta';\n\nimport * as DeckCapabilities from './DeckCapabilities';\n\nexport const StateReady: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(\n `${meta.id}.state-ready`,\n);\n\n/** Fired when DeckSettings capability is ready. */\nexport const SettingsReady: ActivationEvent.ActivationEvent = AppActivationEvents.createSettingsEvent(\n DeckCapabilities.Settings.identifier,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\n\nimport { meta } from '#meta';\n\nconst PartAdjustmentSchema = Schema.Union(\n Schema.Literal('close').annotations({ description: 'Close the plank.' }),\n Schema.Literal('companion').annotations({ description: 'Open the companion plank.' }),\n Schema.Literal('solo').annotations({ description: 'Solo the plank.' }),\n Schema.Literal('solo--fullscreen').annotations({ description: 'Fullscreen the plank.' }),\n Schema.Literal('increment-start').annotations({ description: 'Move the plank towards the start of the deck.' }),\n Schema.Literal('increment-end').annotations({ description: 'Move the plank towards the end of the deck.' }),\n);\n\nexport type PartAdjustment = Schema.Schema.Type<typeof PartAdjustmentSchema>;\n\nexport const Adjust = Operation.make({\n meta: {\n key: `${meta.id}.operation.adjust`,\n name: 'Adjust',\n description: 'Adjust the layout of a plank.',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n id: Schema.String.annotations({ description: 'The id of the plank to adjust.' }),\n type: PartAdjustmentSchema.annotations({ description: 'The type of adjustment to make.' }),\n }),\n output: Schema.Void,\n});\n\nexport const UpdatePlankSize = Operation.make({\n meta: {\n key: `${meta.id}.operation.update-plank-size`,\n name: 'Update Plank Size',\n description: 'Update the size of a plank.',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n id: Schema.String.annotations({ description: 'The id of the plank to resize.' }),\n size: Schema.Number.annotations({ description: 'The new size of the plank.' }),\n }),\n output: Schema.Void,\n});\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nexport const Settings = Schema.Struct({\n enableDeck: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Enable Deck',\n description: 'Display multiple panels side by side instead of one at a time.',\n }),\n ),\n // TODO(burdon): Rename layoutMode? (e.g., bento/encapsulated or floating/compact, etc.)\n encapsulatedPlanks: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Encapsulated planks',\n description: 'Render each plank inside its own isolated container.',\n }),\n ),\n showHints: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Show hints',\n description: 'Show helpful tips and keyboard shortcut hints in the interface.',\n }),\n ),\n enableNativeRedirect: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Enable native url redirect',\n description: 'Redirect supported URLs to the native desktop application.',\n }),\n ),\n}).pipe(Schema.mutable);\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Schema", "Label", "LayoutOperation", "meta", "PLANK_COMPANION_TYPE", "DECK_COMPANION_TYPE", "PlankSizing", "Record", "key", "String", "value", "Number", "DeckState", "Struct", "initialized", "Boolean", "active", "mutable", "Array", "inactive", "solo", "optional", "fullscreen", "plankSizing", "companionOpen", "companionVariant", "companionFrameSizing", "defaultDeck", "undefined", "LayoutMode", "Literal", "isLayoutMode", "is", "getMode", "deck", "StoredDeckState", "sidebarState", "complementarySidebarState", "complementarySidebarPanel", "activeDeck", "previousDeck", "decks", "previousMode", "pipe", "EphemeralDeckState", "dialogOpen", "dialogType", "dialogBlockAlign", "dialogOverlayClasses", "dialogOverlayStyle", "Any", "dialogContent", "NullOr", "component", "props", "popoverOpen", "popoverSide", "popoverAnchor", "popoverAnchorId", "popoverKind", "popoverTitle", "annotations", "description", "popoverContentRef", "popoverContent", "Union", "subject", "toasts", "Toast", "currentUndoId", "scrollIntoView", "DeckAction", "PartAdjustmentSchema", "Adjustment", "id", "type", "Adjust", "TaggedClass", "input", "output", "Void", "UpdatePlankSize", "size", "Effect", "Capabilities", "Capability", "invariant", "meta", "Settings", "EphemeralState", "getDeck", "State", "deck", "activeDeck", "AppActivationEvents", "meta", "StateReady", "AppActivationEvents", "createStateEvent", "meta", "id", "SettingsReady", "createSettingsEvent", "Settings", "identifier", "Schema", "Capability", "Operation", "meta", "PartAdjustmentSchema", "Union", "Literal", "annotations", "description", "Adjust", "make", "key", "id", "name", "services", "Service", "input", "Struct", "String", "type", "output", "Void", "UpdatePlankSize", "size", "Number", "Settings", "Schema", "Struct", "enableDeck", "optional", "Boolean", "annotations", "title", "description", "encapsulatedPlanks", "showHints", "enableNativeRedirect", "pipe", "mutable"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// src/util/plank-url-params.ts
|
|
2
|
+
import { fromUrlPath, toUrlPath } from "@dxos/app-toolkit";
|
|
3
|
+
var PLANK_PARAM = "plank";
|
|
4
|
+
var serializePlanks = (active, existingSearch) => {
|
|
5
|
+
const params = new URLSearchParams(existingSearch);
|
|
6
|
+
params.delete(PLANK_PARAM);
|
|
7
|
+
for (const id of active) {
|
|
8
|
+
params.append(PLANK_PARAM, toUrlPath(id));
|
|
9
|
+
}
|
|
10
|
+
return params.size > 0 ? `?${params.toString()}` : "";
|
|
11
|
+
};
|
|
12
|
+
var deserializePlanks = (url) => {
|
|
13
|
+
return url.searchParams.getAll(PLANK_PARAM).map(fromUrlPath);
|
|
14
|
+
};
|
|
15
|
+
var stripPlanks = (existingSearch) => {
|
|
16
|
+
const params = new URLSearchParams(existingSearch);
|
|
17
|
+
params.delete(PLANK_PARAM);
|
|
18
|
+
return params.size > 0 ? `?${params.toString()}` : "";
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// src/util/sanitize-persisted-state.ts
|
|
22
|
+
var sanitizePersistedState = (state) => {
|
|
23
|
+
let needsUpdate = false;
|
|
24
|
+
const cleanedDecks = {
|
|
25
|
+
...state.decks
|
|
26
|
+
};
|
|
27
|
+
for (const [id, deck] of Object.entries(cleanedDecks)) {
|
|
28
|
+
if (!deck) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
let updated = false;
|
|
32
|
+
let cleanedDeck = deck;
|
|
33
|
+
if (deck.fullscreen) {
|
|
34
|
+
cleanedDeck = {
|
|
35
|
+
...cleanedDeck,
|
|
36
|
+
fullscreen: false
|
|
37
|
+
};
|
|
38
|
+
updated = true;
|
|
39
|
+
}
|
|
40
|
+
if (deck.solo && deck.active.length > 0) {
|
|
41
|
+
cleanedDeck = {
|
|
42
|
+
...cleanedDeck,
|
|
43
|
+
active: []
|
|
44
|
+
};
|
|
45
|
+
updated = true;
|
|
46
|
+
}
|
|
47
|
+
if (updated) {
|
|
48
|
+
cleanedDecks[id] = cleanedDeck;
|
|
49
|
+
needsUpdate = true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return needsUpdate ? {
|
|
53
|
+
...state,
|
|
54
|
+
decks: cleanedDecks
|
|
55
|
+
} : state;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// src/util/set-active.ts
|
|
59
|
+
var computeActiveUpdates = ({ next, deck, attention }) => {
|
|
60
|
+
const active = deck.solo ? [
|
|
61
|
+
deck.solo
|
|
62
|
+
] : deck.active;
|
|
63
|
+
const removed = active.filter((id) => !next.includes(id));
|
|
64
|
+
const closed = Array.from(/* @__PURE__ */ new Set([
|
|
65
|
+
...deck.inactive.filter((id) => !next.includes(id)),
|
|
66
|
+
...removed
|
|
67
|
+
]));
|
|
68
|
+
const updates = {
|
|
69
|
+
inactive: closed,
|
|
70
|
+
solo: deck.solo,
|
|
71
|
+
active: deck.active,
|
|
72
|
+
fullscreen: deck.fullscreen
|
|
73
|
+
};
|
|
74
|
+
if (deck.solo || !deck.initialized) {
|
|
75
|
+
updates.solo = next[0];
|
|
76
|
+
} else {
|
|
77
|
+
updates.active = next;
|
|
78
|
+
}
|
|
79
|
+
if (deck.fullscreen && !updates.solo) {
|
|
80
|
+
updates.fullscreen = false;
|
|
81
|
+
}
|
|
82
|
+
let toAttend;
|
|
83
|
+
if (attention) {
|
|
84
|
+
const attended = attention.getCurrent();
|
|
85
|
+
const [attendedId] = Array.from(attended);
|
|
86
|
+
const isAttendedAvailable = !!attendedId && next.includes(attendedId);
|
|
87
|
+
if (!isAttendedAvailable) {
|
|
88
|
+
const attendedIndex = active.indexOf(attendedId);
|
|
89
|
+
const index = attendedIndex === -1 ? 0 : attendedIndex >= next.length ? next.length - 1 : attendedIndex;
|
|
90
|
+
toAttend = next[index];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
deckUpdates: updates,
|
|
95
|
+
toAttend
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
// src/util/layoutAppliesTopbar.ts
|
|
100
|
+
var layoutAppliesTopbar = (breakpoint, layoutMode) => {
|
|
101
|
+
return document.body.getAttribute("data-platform") === "windows" && breakpoint === "desktop" && layoutMode !== "solo--fullscreen";
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export {
|
|
105
|
+
layoutAppliesTopbar,
|
|
106
|
+
serializePlanks,
|
|
107
|
+
deserializePlanks,
|
|
108
|
+
stripPlanks,
|
|
109
|
+
sanitizePersistedState,
|
|
110
|
+
computeActiveUpdates
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=chunk-GBIGQKYW.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/plank-url-params.ts", "../../../src/util/sanitize-persisted-state.ts", "../../../src/util/set-active.ts", "../../../src/util/layoutAppliesTopbar.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { fromUrlPath, toUrlPath } from '@dxos/app-toolkit';\n\nconst PLANK_PARAM = 'plank';\n\n/**\n * Serialize deck active qualified IDs into a URL search string.\n * Preserves non-plank query params from the existing search string.\n */\nexport const serializePlanks = (active: readonly string[], existingSearch: string): string => {\n const params = new URLSearchParams(existingSearch);\n params.delete(PLANK_PARAM);\n for (const id of active) {\n params.append(PLANK_PARAM, toUrlPath(id));\n }\n return params.size > 0 ? `?${params.toString()}` : '';\n};\n\n/**\n * Deserialize plank query params from a URL back to qualified graph IDs.\n */\nexport const deserializePlanks = (url: URL): string[] => {\n return url.searchParams.getAll(PLANK_PARAM).map(fromUrlPath);\n};\n\n/**\n * Strip plank query params from a search string, preserving all others.\n */\nexport const stripPlanks = (existingSearch: string): string => {\n const params = new URLSearchParams(existingSearch);\n params.delete(PLANK_PARAM);\n return params.size > 0 ? `?${params.toString()}` : '';\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type StoredDeckState } from '#types';\n\n/**\n * Sanitizes persisted deck state on startup.\n *\n * Persisted state may contain values that are inappropriate to restore across sessions:\n *\n * - **Fullscreen**: Cleared unconditionally to prevent the user from getting stuck in fullscreen\n * mode if the app was closed (or crashed) while fullscreen was active.\n *\n * - **Active planks in solo-mode decks**: When a deck is in solo mode, any items in `active`\n * represent planks that were kept mounted (hidden) during the session for fast deck↔solo\n * switching. After a restart these planks would need to fully remount anyway, so retaining\n * them only adds unnecessary load. Clearing `active` for solo-mode decks avoids rendering\n * stale planks in the background on startup.\n *\n * Returns a new state object if any changes were made, or the original state if clean.\n */\nexport const sanitizePersistedState = (state: StoredDeckState): StoredDeckState => {\n let needsUpdate = false;\n const cleanedDecks = { ...state.decks };\n\n for (const [id, deck] of Object.entries(cleanedDecks)) {\n if (!deck) {\n continue;\n }\n\n let updated = false;\n let cleanedDeck = deck;\n\n if (deck.fullscreen) {\n cleanedDeck = { ...cleanedDeck, fullscreen: false };\n updated = true;\n }\n\n if (deck.solo && deck.active.length > 0) {\n cleanedDeck = { ...cleanedDeck, active: [] };\n updated = true;\n }\n\n if (updated) {\n cleanedDecks[id] = cleanedDeck;\n needsUpdate = true;\n }\n }\n\n return needsUpdate ? { ...state, decks: cleanedDecks } : state;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AttentionManager } from '@dxos/react-ui-attention';\n\nimport { type DeckState } from '#types';\n\nexport type SetActiveOptions = {\n next: string[];\n deck: DeckState;\n attention?: AttentionManager;\n};\n\nexport type SetActiveResult = {\n /** Updates to apply to the deck. */\n deckUpdates: {\n inactive: string[];\n solo: string | undefined;\n active: string[];\n fullscreen: boolean;\n };\n /** ID of the item to attend (scroll into view) if attention changed. */\n toAttend?: string;\n};\n\n/**\n * Computes the new active state for the deck without mutating.\n * Returns the updates to apply and optionally an item to attend.\n */\nexport const computeActiveUpdates = ({ next, deck, attention }: SetActiveOptions): SetActiveResult => {\n const active = deck.solo ? [deck.solo] : deck.active;\n const removed = active.filter((id) => !next.includes(id));\n const closed = Array.from(new Set([...deck.inactive.filter((id) => !next.includes(id)), ...removed]));\n\n const updates = {\n inactive: closed,\n solo: deck.solo,\n active: deck.active,\n fullscreen: deck.fullscreen,\n };\n\n if (deck.solo || !deck.initialized) {\n updates.solo = next[0];\n } else {\n updates.active = next;\n }\n\n if (deck.fullscreen && !updates.solo) {\n updates.fullscreen = false;\n }\n\n let toAttend: string | undefined;\n if (attention) {\n const attended = attention.getCurrent();\n const [attendedId] = Array.from(attended);\n const isAttendedAvailable = !!attendedId && next.includes(attendedId);\n if (!isAttendedAvailable) {\n const attendedIndex = active.indexOf(attendedId);\n // If outside of bounds, focus on the first/last plank, otherwise focus on the new plank in the same position.\n const index = attendedIndex === -1 ? 0 : attendedIndex >= next.length ? next.length - 1 : attendedIndex;\n toAttend = next[index];\n }\n }\n\n return { deckUpdates: updates, toAttend };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type LayoutMode } from '#types';\n\nexport const layoutAppliesTopbar = (breakpoint: string, layoutMode?: LayoutMode) => {\n return (\n document.body.getAttribute('data-platform') === 'windows' &&\n breakpoint === 'desktop' &&\n layoutMode !== 'solo--fullscreen'\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["fromUrlPath", "toUrlPath", "PLANK_PARAM", "serializePlanks", "active", "existingSearch", "params", "URLSearchParams", "delete", "id", "append", "size", "toString", "deserializePlanks", "url", "searchParams", "getAll", "map", "stripPlanks", "sanitizePersistedState", "state", "needsUpdate", "cleanedDecks", "decks", "id", "deck", "Object", "entries", "updated", "cleanedDeck", "fullscreen", "solo", "active", "length", "computeActiveUpdates", "next", "deck", "attention", "active", "solo", "removed", "filter", "id", "includes", "closed", "Array", "from", "Set", "inactive", "updates", "fullscreen", "initialized", "toAttend", "attended", "getCurrent", "attendedId", "isAttendedAvailable", "attendedIndex", "indexOf", "index", "length", "deckUpdates", "layoutAppliesTopbar", "breakpoint", "layoutMode", "document", "body", "getAttribute"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/operations/helpers.ts
|
|
2
|
+
import { invariant } from "@dxos/invariant";
|
|
3
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-deck/src/operations/helpers.ts";
|
|
4
|
+
var updateActiveDeck = (current, deckUpdates) => {
|
|
5
|
+
const currentDeck = current.decks[current.activeDeck];
|
|
6
|
+
invariant(currentDeck, `Deck not found: ${current.activeDeck}`, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 7, S: void 0, A: ["currentDeck", "`Deck not found: ${current.activeDeck}`"] });
|
|
7
|
+
return {
|
|
8
|
+
...current,
|
|
9
|
+
decks: {
|
|
10
|
+
...current.decks,
|
|
11
|
+
[current.activeDeck]: {
|
|
12
|
+
...currentDeck,
|
|
13
|
+
...deckUpdates
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
updateActiveDeck
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=chunk-GLB73Q6U.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/helpers.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { invariant } from '@dxos/invariant';\n\nimport { type DeckState, type StoredDeckState } from '../types';\n\nexport const updateActiveDeck = (current: StoredDeckState, deckUpdates: Partial<DeckState>): StoredDeckState => {\n const currentDeck = current.decks[current.activeDeck];\n invariant(currentDeck, `Deck not found: ${current.activeDeck}`);\n return {\n ...current,\n decks: {\n ...current.decks,\n [current.activeDeck]: {\n ...currentDeck,\n ...deckUpdates,\n },\n },\n };\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,iBAAiB;AAI1B,IAAA,eAAaC;AAEXD,IAAAA,mBAAwB,CAAA,SAAA,gBAA0BE;AAClD,QAAA,cAAO,QAAA,MAAA,QAAA,UAAA;YACFC,aAAO,mBAAA,QAAA,UAAA,IAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,GAAA,GAAA,QAAA,GAAA,CAAA,eAAA,yCAAA,EAAA,CAAA;SACVC;;WAEGD;iBACIE;eACAC,UAAW,GAAA;QAChB,GAAA;QACF,GAAA;MACF;IACA;;;",
|
|
6
|
+
"names": ["invariant", "updateActiveDeck", "activeDeck", "current", "decks", "currentDeck", "deckUpdates"]
|
|
7
|
+
}
|