@dxos/plugin-deck 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446

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.
Files changed (151) hide show
  1. package/dist/lib/browser/{app-graph-builder-R7COZ4A6.mjs → app-graph-builder-VYZ4IWI3.mjs} +15 -16
  2. package/dist/lib/browser/app-graph-builder-VYZ4IWI3.mjs.map +7 -0
  3. package/dist/lib/browser/{check-app-scheme-7AXGR6UT.mjs → check-app-scheme-SEYECDHI.mjs} +3 -2
  4. package/dist/lib/browser/check-app-scheme-SEYECDHI.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-6ZSOFCPP.mjs +117 -0
  6. package/dist/lib/browser/chunk-6ZSOFCPP.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-B4LOJUWW.mjs +24 -0
  8. package/dist/lib/browser/chunk-B4LOJUWW.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-KIGMELV2.mjs → chunk-FJBMNSUC.mjs} +336 -366
  10. package/dist/lib/browser/chunk-FJBMNSUC.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-FLOVGNYB.mjs +81 -0
  12. package/dist/lib/browser/chunk-FLOVGNYB.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-RJNCG4ND.mjs +154 -0
  14. package/dist/lib/browser/chunk-RJNCG4ND.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +5 -6
  16. package/dist/lib/browser/index.mjs.map +2 -2
  17. package/dist/lib/browser/{intent-resolver-MAKOS57L.mjs → intent-resolver-UDYKO2QW.mjs} +89 -130
  18. package/dist/lib/browser/intent-resolver-UDYKO2QW.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-root-DGQVIHXP.mjs → react-root-XLXN2VEW.mjs} +6 -6
  21. package/dist/lib/browser/{react-surface-PXBXIOPU.mjs → react-surface-WNGMZL7I.mjs} +6 -6
  22. package/dist/lib/browser/{settings-UBWJF7J7.mjs → settings-HMDGSBGO.mjs} +6 -6
  23. package/dist/lib/browser/settings-HMDGSBGO.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-OF5RIATN.mjs → state-7TN26M42.mjs} +7 -10
  25. package/dist/lib/browser/state-7TN26M42.mjs.map +7 -0
  26. package/dist/lib/browser/{tools-IVPIPTVA.mjs → tools-SC6QEN7R.mjs} +7 -7
  27. package/dist/lib/browser/tools-SC6QEN7R.mjs.map +7 -0
  28. package/dist/lib/browser/types.mjs +1 -1
  29. package/dist/lib/browser/{url-handler-JSYGSVSB.mjs → url-handler-ODG4B6NX.mjs} +4 -4
  30. package/dist/lib/browser/url-handler-ODG4B6NX.mjs.map +7 -0
  31. package/dist/types/src/capabilities/app-graph-builder.d.ts +179 -2
  32. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  33. package/dist/types/src/capabilities/capabilities.d.ts +6 -8
  34. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  35. package/dist/types/src/capabilities/check-app-scheme.d.ts +2 -2
  36. package/dist/types/src/capabilities/check-app-scheme.d.ts.map +1 -1
  37. package/dist/types/src/capabilities/index.d.ts +182 -7
  38. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  39. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  40. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/state.d.ts +6 -7
  42. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/tools.d.ts.map +1 -1
  44. package/dist/types/src/capabilities/url-handler.d.ts +2 -2
  45. package/dist/types/src/capabilities/url-handler.d.ts.map +1 -1
  46. package/dist/types/src/components/DeckLayout/Banner.d.ts.map +1 -1
  47. package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts.map +1 -1
  48. package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +1 -1
  49. package/dist/types/src/components/DeckLayout/Fullscreen.d.ts +5 -0
  50. package/dist/types/src/components/DeckLayout/Fullscreen.d.ts.map +1 -0
  51. package/dist/types/src/components/DeckLayout/StatusBar.d.ts.map +1 -1
  52. package/dist/types/src/components/DeckLayout/Toast.d.ts.map +1 -1
  53. package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +1 -1
  54. package/dist/types/src/components/Plank/Plank.d.ts +5 -18
  55. package/dist/types/src/components/Plank/Plank.d.ts.map +1 -1
  56. package/dist/types/src/components/Plank/Plank.stories.d.ts +3 -3
  57. package/dist/types/src/components/Plank/Plank.stories.d.ts.map +1 -1
  58. package/dist/types/src/components/Plank/PlankControls.d.ts +2 -3
  59. package/dist/types/src/components/Plank/PlankControls.d.ts.map +1 -1
  60. package/dist/types/src/components/Plank/PlankError.d.ts.map +1 -1
  61. package/dist/types/src/components/Plank/PlankHeading.d.ts +2 -3
  62. package/dist/types/src/components/Plank/PlankHeading.d.ts.map +1 -1
  63. package/dist/types/src/components/Sidebar/ComplementarySidebar.d.ts.map +1 -1
  64. package/dist/types/src/components/Sidebar/Sidebar.d.ts.map +1 -1
  65. package/dist/types/src/components/Sidebar/SidebarButton.d.ts +1 -2
  66. package/dist/types/src/components/Sidebar/SidebarButton.d.ts.map +1 -1
  67. package/dist/types/src/hooks/index.d.ts +1 -5
  68. package/dist/types/src/hooks/index.d.ts.map +1 -1
  69. package/dist/types/src/hooks/useNodeActionExpander.d.ts.map +1 -1
  70. package/dist/types/src/index.d.ts +1 -1
  71. package/dist/types/src/index.d.ts.map +1 -1
  72. package/dist/types/src/layout.d.ts.map +1 -1
  73. package/dist/types/src/translations.d.ts +0 -2
  74. package/dist/types/src/translations.d.ts.map +1 -1
  75. package/dist/types/src/types.d.ts +104 -106
  76. package/dist/types/src/types.d.ts.map +1 -1
  77. package/dist/types/src/util/index.d.ts +4 -1
  78. package/dist/types/src/util/index.d.ts.map +1 -1
  79. package/dist/types/src/util/layoutAppliesTopbar.d.ts +1 -2
  80. package/dist/types/src/util/layoutAppliesTopbar.d.ts.map +1 -1
  81. package/dist/types/src/util/overscroll.d.ts.map +1 -1
  82. package/dist/types/src/util/set-active.d.ts.map +1 -1
  83. package/dist/types/src/util/useBreakpoints.d.ts.map +1 -0
  84. package/dist/types/src/util/useCompanions.d.ts.map +1 -0
  85. package/dist/types/src/util/useHoistStatusbar.d.ts +2 -0
  86. package/dist/types/src/util/useHoistStatusbar.d.ts.map +1 -0
  87. package/dist/types/tsconfig.tsbuildinfo +1 -1
  88. package/package.json +29 -36
  89. package/src/capabilities/app-graph-builder.ts +92 -120
  90. package/src/capabilities/check-app-scheme.ts +7 -3
  91. package/src/capabilities/index.ts +2 -3
  92. package/src/capabilities/intent-resolver.ts +133 -175
  93. package/src/capabilities/settings.ts +4 -4
  94. package/src/capabilities/state.ts +4 -7
  95. package/src/capabilities/tools.ts +3 -4
  96. package/src/capabilities/url-handler.ts +4 -4
  97. package/src/components/DeckLayout/ContentEmpty.tsx +4 -9
  98. package/src/components/DeckLayout/DeckLayout.tsx +188 -123
  99. package/src/components/DeckLayout/Fullscreen.tsx +31 -0
  100. package/src/components/Plank/Plank.stories.tsx +8 -20
  101. package/src/components/Plank/Plank.tsx +68 -104
  102. package/src/components/Plank/PlankControls.tsx +57 -53
  103. package/src/components/Plank/PlankError.tsx +6 -2
  104. package/src/components/Plank/PlankHeading.tsx +12 -29
  105. package/src/components/Sidebar/ComplementarySidebar.tsx +54 -33
  106. package/src/components/Sidebar/Sidebar.tsx +4 -7
  107. package/src/components/Sidebar/SidebarButton.tsx +7 -30
  108. package/src/components/fragments.ts +1 -1
  109. package/src/hooks/index.ts +1 -5
  110. package/src/hooks/useNodeActionExpander.ts +8 -3
  111. package/src/index.ts +1 -1
  112. package/src/translations.ts +0 -2
  113. package/src/types.ts +71 -75
  114. package/src/util/index.ts +4 -1
  115. package/src/util/layoutAppliesTopbar.ts +2 -8
  116. package/src/{hooks → util}/useCompanions.ts +3 -3
  117. package/src/{hooks → util}/useHoistStatusbar.ts +4 -9
  118. package/dist/lib/browser/app-graph-builder-R7COZ4A6.mjs.map +0 -7
  119. package/dist/lib/browser/check-app-scheme-7AXGR6UT.mjs.map +0 -7
  120. package/dist/lib/browser/chunk-3O2UZVBA.mjs +0 -121
  121. package/dist/lib/browser/chunk-3O2UZVBA.mjs.map +0 -7
  122. package/dist/lib/browser/chunk-JAYQ5BTF.mjs +0 -157
  123. package/dist/lib/browser/chunk-JAYQ5BTF.mjs.map +0 -7
  124. package/dist/lib/browser/chunk-KIGMELV2.mjs.map +0 -7
  125. package/dist/lib/browser/chunk-OF5RIATN.mjs.map +0 -7
  126. package/dist/lib/browser/chunk-TRFYUEBA.mjs +0 -145
  127. package/dist/lib/browser/chunk-TRFYUEBA.mjs.map +0 -7
  128. package/dist/lib/browser/intent-resolver-MAKOS57L.mjs.map +0 -7
  129. package/dist/lib/browser/settings-UBWJF7J7.mjs.map +0 -7
  130. package/dist/lib/browser/state-4WFB4SDO.mjs +0 -10
  131. package/dist/lib/browser/state-4WFB4SDO.mjs.map +0 -7
  132. package/dist/lib/browser/tools-IVPIPTVA.mjs.map +0 -7
  133. package/dist/lib/browser/url-handler-JSYGSVSB.mjs.map +0 -7
  134. package/dist/types/src/components/DeckLayout/Dialog.d.ts +0 -3
  135. package/dist/types/src/components/DeckLayout/Dialog.d.ts.map +0 -1
  136. package/dist/types/src/components/DeckLayout/Popover.d.ts +0 -5
  137. package/dist/types/src/components/DeckLayout/Popover.d.ts.map +0 -1
  138. package/dist/types/src/hooks/useBreakpoints.d.ts.map +0 -1
  139. package/dist/types/src/hooks/useCompanions.d.ts.map +0 -1
  140. package/dist/types/src/hooks/useDeckCompanions.d.ts +0 -13
  141. package/dist/types/src/hooks/useDeckCompanions.d.ts.map +0 -1
  142. package/dist/types/src/hooks/useHoistStatusbar.d.ts +0 -3
  143. package/dist/types/src/hooks/useHoistStatusbar.d.ts.map +0 -1
  144. package/src/components/DeckLayout/Dialog.tsx +0 -36
  145. package/src/components/DeckLayout/Popover.tsx +0 -104
  146. package/src/hooks/useDeckCompanions.ts +0 -33
  147. /package/dist/lib/browser/{react-root-DGQVIHXP.mjs.map → react-root-XLXN2VEW.mjs.map} +0 -0
  148. /package/dist/lib/browser/{react-surface-PXBXIOPU.mjs.map → react-surface-WNGMZL7I.mjs.map} +0 -0
  149. /package/dist/types/src/{hooks → util}/useBreakpoints.d.ts +0 -0
  150. /package/dist/types/src/{hooks → util}/useCompanions.d.ts +0 -0
  151. /package/src/{hooks → util}/useBreakpoints.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/events.ts", "../../../src/DeckPlugin.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { DECK_PLUGIN } from './meta';\n\nexport namespace DeckEvents {\n export const StateReady = Events.createStateEvent(`${DECK_PLUGIN}/state-ready`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { setAutoFreeze } from 'immer';\n\nimport { allOf, Capabilities, contributes, defineModule, definePlugin, Events, oneOf } from '@dxos/app-framework';\nimport { translations as stackTranslations } from '@dxos/react-ui-stack';\n\nimport {\n AppGraphBuilder,\n CheckAppScheme,\n DeckSettings,\n DeckState,\n LayoutIntentResolver,\n ReactRoot,\n ReactSurface,\n Tools,\n UrlHandler,\n} from './capabilities';\nimport { DeckEvents } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\n\n// NOTE(Zan): When producing values with immer, we shouldn't auto-freeze them because\n// our signal implementation needs to add some hidden properties to the produced values.\n// TODO(Zan): Move this to a more global location if we use immer more broadly.\nsetAutoFreeze(false);\n\nexport const DeckPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/check-app-scheme`,\n activatesOn: Events.SettingsReady,\n activate: CheckAppScheme,\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: DeckSettings,\n }),\n defineModule({\n id: `${meta.id}/module/layout`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: oneOf(Events.SetupSettings, Events.SetupAppGraph),\n activatesAfter: [Events.LayoutReady, DeckEvents.StateReady],\n activate: DeckState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...stackTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/layout-intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: LayoutIntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/tools`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: Tools,\n }),\n defineModule({\n id: `${meta.id}/module/url`,\n activatesOn: allOf(Events.DispatcherReady, DeckEvents.StateReady),\n activate: UrlHandler,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DECK_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [DECK_PLUGIN]: {\n 'plugin name': 'Deck',\n 'main header label': 'Main header',\n 'open navigation sidebar label': 'Open sidebar',\n 'collapse navigation sidebar label': 'Minimize sidebar',\n 'open complementary sidebar label': 'Open context sidebar',\n 'close complementary sidebar label': 'Minimize context sidebar',\n 'sidebar title': 'Navigation sidebar',\n 'complementary sidebar title': 'Context sidebar',\n 'plugin error message': 'Content failed to render.',\n 'content fallback message': 'Unsupported',\n 'content fallback description':\n 'No plugin had a response for the address you navigated to. Double-check the URL, and ensure you’ve enabled a plugin that supports the object.',\n 'toggle fullscreen label': 'Toggle fullscreen',\n 'settings show hints label': 'Show hints',\n 'settings native redirect label': 'Enable native url redirect (experimental)',\n 'settings new plank position start label': 'Start',\n 'settings new plank position end label': 'End',\n 'select new plank positioning placeholder': 'Select new plank positioning',\n 'select new plank positioning label': 'New plank positioning',\n 'undo available label': 'Click to undo previous action.',\n 'undo action label': 'Undo',\n 'undo action alt': 'Undo previous action',\n 'undo close label': 'Dismiss',\n 'error fallback message': 'Unable to open this item',\n 'plank heading fallback label': 'Untitled',\n 'actions menu label': 'Options',\n 'settings deck label': 'Disable deck',\n 'reload required message': 'Reload required.',\n 'pending heading': 'Loading…',\n 'insert plank label': 'Open',\n 'resize label': 'Drag to resize',\n 'pin start label': 'Pin to the left sidebar',\n 'pin end label': 'Pin to the right sidebar',\n 'increment start label': 'Move to the left',\n 'increment end label': 'Move to the right',\n 'show deck plank label': 'Return to deck',\n 'show solo plank label': 'Maximize',\n 'exit fullscreen label': 'Exit fullscreen',\n 'show fullscreen plank label': 'Fullscreen',\n 'close label': 'Close',\n 'minify label': 'Minify',\n 'open companion label': 'Open companion',\n 'close companion label': 'Close companion',\n 'settings overscroll label': 'Plank scrolling',\n 'select overscroll placeholder': 'Select plank scrolling behavior',\n 'settings overscroll centering label': 'Centering',\n 'settings overscroll none label': 'None',\n 'settings enable statusbar label': 'Show status bar',\n 'settings enable deck label': 'Enable Deck',\n 'close current label': 'Close current plank',\n 'close others label': 'Close other planks',\n 'close all label': 'Close all planks',\n 'companion plank heading fallback label': 'Related',\n },\n },\n },\n];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAc;;UAINC,aAAAA;cACFC,aAAaC,OAAOC,iBAAiB,GAAGC,WAAAA,cAAyB;AAChF,GAFiBJ,eAAAA,aAAAA,CAAAA,EAAAA;;;ACJjB,SAASK,qBAAqB;AAE9B,SAASC,OAAOC,cAAcC,aAAaC,cAAcC,cAAcC,UAAAA,SAAQC,aAAa;AAC5F,SAASC,gBAAgBC,yBAAyB;;;ACDlD,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,WAAAA,GAAc;QACb,eAAe;QACf,qBAAqB;QACrB,iCAAiC;QACjC,qCAAqC;QACrC,oCAAoC;QACpC,qCAAqC;QACrC,iBAAiB;QACjB,+BAA+B;QAC/B,wBAAwB;QACxB,4BAA4B;QAC5B,gCACE;QACF,2BAA2B;QAC3B,6BAA6B;QAC7B,kCAAkC;QAClC,2CAA2C;QAC3C,yCAAyC;QACzC,4CAA4C;QAC5C,sCAAsC;QACtC,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;QACnB,oBAAoB;QACpB,0BAA0B;QAC1B,gCAAgC;QAChC,sBAAsB;QACtB,uBAAuB;QACvB,2BAA2B;QAC3B,mBAAmB;QACnB,sBAAsB;QACtB,gBAAgB;QAChB,mBAAmB;QACnB,iBAAiB;QACjB,yBAAyB;QACzB,uBAAuB;QACvB,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB;QACzB,+BAA+B;QAC/B,eAAe;QACf,gBAAgB;QAChB,wBAAwB;QACxB,yBAAyB;QACzB,6BAA6B;QAC7B,iCAAiC;QACjC,uCAAuC;QACvC,kCAAkC;QAClC,mCAAmC;QACnC,8BAA8B;QAC9B,uBAAuB;QACvB,sBAAsB;QACtB,mBAAmB;QACnB,0CAA0C;MAC5C;IACF;EACF;;;;ADtCFC,cAAc,KAAA;AAEP,IAAMC,aAAa,MACxBC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAUC;EACZ,CAAA;EACAN,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOI;IACpBF,UAAUG;EACZ,CAAA;EACAR,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;;;IAIdC,aAAaO,MAAMN,QAAOI,eAAeJ,QAAOO,aAAa;IAC7DC,gBAAgB;MAACR,QAAOS;MAAaC,WAAWC;;IAChDT,UAAUU;EACZ,CAAA;EACAf,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOa;IACpBX,UAAU,MAAMY,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAkB;EAChG,CAAA;EACArB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOmB;IACpBjB,UAAUkB;EACZ,CAAA;EACAvB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOqB;IACpBnB,UAAUoB;EACZ,CAAA;EACAzB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOuB;IACpBrB,UAAUsB;EACZ,CAAA;EACA3B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOO;IACpBL,UAAUuB;EACZ,CAAA;EACA5B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO0B;IACpBxB,UAAUyB;EACZ,CAAA;EACA9B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa6B,MAAM5B,QAAO6B,iBAAiBnB,WAAWC,UAAU;IAChET,UAAU4B;EACZ,CAAA;CACD;",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events } from '@dxos/app-framework';\n\nimport { DECK_PLUGIN } from './meta';\n\nexport namespace DeckEvents {\n export const StateReady = Events.createStateEvent(`${DECK_PLUGIN}/state-ready`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { setAutoFreeze } from 'immer';\n\nimport { allOf, Capabilities, contributes, defineModule, definePlugin, Events, oneOf } from '@dxos/app-framework';\nimport { translations as stackTranslations } from '@dxos/react-ui-stack';\n\nimport {\n AppGraphBuilder,\n CheckAppScheme,\n DeckSettings,\n DeckState,\n LayoutIntentResolver,\n ReactRoot,\n ReactSurface,\n Tools,\n UrlHandler,\n} from './capabilities';\nimport { DeckEvents } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\n\n// NOTE(Zan): When producing values with immer, we shouldn't auto-freeze them because\n// our signal implementation needs to add some hidden properties to the produced values.\n// TODO(Zan): Move this to a more global location if we use immer more broadly.\nsetAutoFreeze(false);\n\nexport const DeckPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/check-app-scheme`,\n activatesOn: Events.SettingsReady,\n activate: CheckAppScheme,\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: DeckSettings,\n }),\n defineModule({\n id: `${meta.id}/module/layout`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: oneOf(Events.SetupSettings, Events.SetupAppGraph),\n activatesAfter: [Events.LayoutReady, DeckEvents.StateReady],\n activate: DeckState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...stackTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/layout-intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: LayoutIntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/tools`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: Tools,\n }),\n defineModule({\n id: `${meta.id}/module/url`,\n activatesOn: allOf(Events.DispatcherReady, DeckEvents.StateReady),\n activate: UrlHandler,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { DECK_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [DECK_PLUGIN]: {\n 'plugin name': 'Deck',\n 'main header label': 'Main header',\n 'open navigation sidebar label': 'Open sidebar',\n 'collapse navigation sidebar label': 'Minimize sidebar',\n 'open complementary sidebar label': 'Open context sidebar',\n 'close complementary sidebar label': 'Minimize context sidebar',\n 'sidebar title': 'Navigation sidebar',\n 'complementary sidebar title': 'Context sidebar',\n 'plugin error message': 'Content failed to render.',\n 'content fallback message': 'Unsupported',\n 'content fallback description':\n 'No plugin had a response for the address you navigated to. Double-check the URL, and ensure you’ve enabled a plugin that supports the object.',\n 'toggle fullscreen label': 'Toggle fullscreen',\n 'settings show hints label': 'Show hints',\n 'settings native redirect label': 'Enable native url redirect (experimental)',\n 'settings new plank position start label': 'Start',\n 'settings new plank position end label': 'End',\n 'select new plank positioning placeholder': 'Select new plank positioning',\n 'select new plank positioning label': 'New plank positioning',\n 'undo available label': 'Click to undo previous action.',\n 'undo action label': 'Undo',\n 'undo action alt': 'Undo previous action',\n 'undo close label': 'Dismiss',\n 'error fallback message': 'Unable to open this item',\n 'plank heading fallback label': 'Untitled',\n 'actions menu label': 'Options',\n 'settings deck label': 'Disable deck',\n 'reload required message': 'Reload required.',\n 'pending heading': 'Loading…',\n 'insert plank label': 'Open',\n 'resize label': 'Drag to resize',\n 'pin start label': 'Pin to the left sidebar',\n 'pin end label': 'Pin to the right sidebar',\n 'increment start label': 'Move to the left',\n 'increment end label': 'Move to the right',\n 'show deck plank label': 'Return to deck',\n 'show solo plank label': 'Maximize',\n 'close label': 'Close',\n 'minify label': 'Minify',\n 'open companion label': 'Open companion',\n 'close companion label': 'Close companion',\n 'settings overscroll label': 'Plank scrolling',\n 'select overscroll placeholder': 'Select plank scrolling behavior',\n 'settings overscroll centering label': 'Centering',\n 'settings overscroll none label': 'None',\n 'settings enable statusbar label': 'Show status bar',\n 'settings enable deck label': 'Enable Deck',\n 'close current label': 'Close current plank',\n 'close others label': 'Close other planks',\n 'close all label': 'Close all planks',\n 'companion plank heading fallback label': 'Related',\n },\n },\n },\n];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAc;;UAINC,aAAAA;cACFC,aAAaC,OAAOC,iBAAiB,GAAGC,WAAAA,cAAyB;AAChF,GAFiBJ,eAAAA,aAAAA,CAAAA,EAAAA;;;ACJjB,SAASK,qBAAqB;AAE9B,SAASC,OAAOC,cAAcC,aAAaC,cAAcC,cAAcC,UAAAA,SAAQC,aAAa;AAC5F,SAASC,gBAAgBC,yBAAyB;;;ACDlD,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,WAAAA,GAAc;QACb,eAAe;QACf,qBAAqB;QACrB,iCAAiC;QACjC,qCAAqC;QACrC,oCAAoC;QACpC,qCAAqC;QACrC,iBAAiB;QACjB,+BAA+B;QAC/B,wBAAwB;QACxB,4BAA4B;QAC5B,gCACE;QACF,2BAA2B;QAC3B,6BAA6B;QAC7B,kCAAkC;QAClC,2CAA2C;QAC3C,yCAAyC;QACzC,4CAA4C;QAC5C,sCAAsC;QACtC,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;QACnB,oBAAoB;QACpB,0BAA0B;QAC1B,gCAAgC;QAChC,sBAAsB;QACtB,uBAAuB;QACvB,2BAA2B;QAC3B,mBAAmB;QACnB,sBAAsB;QACtB,gBAAgB;QAChB,mBAAmB;QACnB,iBAAiB;QACjB,yBAAyB;QACzB,uBAAuB;QACvB,yBAAyB;QACzB,yBAAyB;QACzB,eAAe;QACf,gBAAgB;QAChB,wBAAwB;QACxB,yBAAyB;QACzB,6BAA6B;QAC7B,iCAAiC;QACjC,uCAAuC;QACvC,kCAAkC;QAClC,mCAAmC;QACnC,8BAA8B;QAC9B,uBAAuB;QACvB,sBAAsB;QACtB,mBAAmB;QACnB,0CAA0C;MAC5C;IACF;EACF;;;;ADpCFC,cAAc,KAAA;AAEP,IAAMC,aAAa,MACxBC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOC;IACpBC,UAAUC;EACZ,CAAA;EACAN,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOI;IACpBF,UAAUG;EACZ,CAAA;EACAR,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;;;;IAIdC,aAAaO,MAAMN,QAAOI,eAAeJ,QAAOO,aAAa;IAC7DC,gBAAgB;MAACR,QAAOS;MAAaC,WAAWC;;IAChDT,UAAUU;EACZ,CAAA;EACAf,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOa;IACpBX,UAAU,MAAMY,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAkB;EAChG,CAAA;EACArB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOmB;IACpBjB,UAAUkB;EACZ,CAAA;EACAvB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOqB;IACpBnB,UAAUoB;EACZ,CAAA;EACAzB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOuB;IACpBrB,UAAUsB;EACZ,CAAA;EACA3B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAOO;IACpBL,UAAUuB;EACZ,CAAA;EACA5B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,QAAO0B;IACpBxB,UAAUyB;EACZ,CAAA;EACA9B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa6B,MAAM5B,QAAO6B,iBAAiBnB,WAAWC,UAAU;IAChET,UAAU4B;EACZ,CAAA;CACD;",
6
6
  "names": ["Events", "DeckEvents", "StateReady", "Events", "createStateEvent", "DECK_PLUGIN", "setAutoFreeze", "allOf", "Capabilities", "contributes", "defineModule", "definePlugin", "Events", "oneOf", "translations", "stackTranslations", "DECK_PLUGIN", "setAutoFreeze", "DeckPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SettingsReady", "activate", "CheckAppScheme", "SetupSettings", "DeckSettings", "oneOf", "SetupAppGraph", "activatesAfter", "LayoutReady", "DeckEvents", "StateReady", "DeckState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "stackTranslations", "Startup", "ReactRoot", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "LayoutIntentResolver", "AppGraphBuilder", "SetupArtifactDefinition", "Tools", "allOf", "DispatcherReady", "UrlHandler"]
7
7
  }
@@ -2,9 +2,11 @@ import {
2
2
  closeEntry,
3
3
  createEntryId,
4
4
  incrementPlank,
5
- openEntry,
5
+ openEntry
6
+ } from "./chunk-FLOVGNYB.mjs";
7
+ import {
6
8
  setActive
7
- } from "./chunk-TRFYUEBA.mjs";
9
+ } from "./chunk-6ZSOFCPP.mjs";
8
10
  import {
9
11
  DeckCapabilities
10
12
  } from "./chunk-XMCG42ID.mjs";
@@ -14,21 +16,20 @@ import {
14
16
  defaultDeck,
15
17
  getMode,
16
18
  isLayoutMode
17
- } from "./chunk-JAYQ5BTF.mjs";
19
+ } from "./chunk-RJNCG4ND.mjs";
18
20
  import {
19
21
  DECK_PLUGIN
20
22
  } from "./chunk-NSATFAEE.mjs";
21
23
 
22
24
  // packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts
23
25
  import { batch } from "@preact/signals-core";
24
- import { Schema, Effect, pipe, Option } from "effect";
26
+ import { pipe } from "effect";
25
27
  import { Capabilities, createResolver, contributes, IntentAction, LayoutAction, createIntent, chain } from "@dxos/app-framework";
26
- import { getTypename } from "@dxos/echo-schema";
28
+ import { getTypename, S } from "@dxos/echo-schema";
27
29
  import { invariant } from "@dxos/invariant";
28
- import { isLiveObject } from "@dxos/live-object";
30
+ import { isReactiveObject } from "@dxos/live-object";
29
31
  import { log } from "@dxos/log";
30
32
  import { AttentionCapabilities } from "@dxos/plugin-attention";
31
- import { isActionLike } from "@dxos/plugin-graph";
32
33
  import { ObservabilityAction } from "@dxos/plugin-observability/types";
33
34
  import { byPosition, isNonNullable } from "@dxos/util";
34
35
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts";
@@ -36,8 +37,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
36
37
  createResolver({
37
38
  intent: IntentAction.ShowUndo,
38
39
  resolve: (data) => {
39
- const layout = context.getCapability(DeckCapabilities.MutableDeckState);
40
- const { undoPromise: undo } = context.getCapability(Capabilities.IntentDispatcher);
40
+ const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
41
+ const { undoPromise: undo } = context.requestCapability(Capabilities.IntentDispatcher);
41
42
  if (layout.currentUndoId) {
42
43
  layout.toasts = layout.toasts.filter((toast) => toast.id !== layout.currentUndoId);
43
44
  }
@@ -78,11 +79,11 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
78
79
  }),
79
80
  createResolver({
80
81
  intent: LayoutAction.UpdateLayout,
81
- // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateSidebar.fields.input)`
82
+ // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.UpdateSidebar.fields.input)`
82
83
  // but the filter is not being applied correctly.
83
- filter: (data) => Schema.is(LayoutAction.UpdateSidebar.fields.input)(data),
84
+ filter: (data) => S.is(LayoutAction.UpdateSidebar.fields.input)(data),
84
85
  resolve: ({ options }) => {
85
- const layout = context.getCapability(DeckCapabilities.MutableDeckState);
86
+ const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
86
87
  const next = options?.state ?? layout.sidebarState;
87
88
  if (next !== layout.sidebarState) {
88
89
  layout.sidebarState = next;
@@ -91,11 +92,11 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
91
92
  }),
92
93
  createResolver({
93
94
  intent: LayoutAction.UpdateLayout,
94
- // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateComplementary.fields.input)`
95
+ // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.UpdateComplementary.fields.input)`
95
96
  // but the filter is not being applied correctly.
96
- filter: (data) => Schema.is(LayoutAction.UpdateComplementary.fields.input)(data),
97
+ filter: (data) => S.is(LayoutAction.UpdateComplementary.fields.input)(data),
97
98
  resolve: ({ subject, options }) => {
98
- const layout = context.getCapability(DeckCapabilities.MutableDeckState);
99
+ const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
99
100
  if (layout.complementarySidebarPanel !== subject) {
100
101
  layout.complementarySidebarPanel = subject;
101
102
  }
@@ -107,11 +108,11 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
107
108
  }),
108
109
  createResolver({
109
110
  intent: LayoutAction.UpdateLayout,
110
- // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateDialog.fields.input)`
111
+ // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.UpdateDialog.fields.input)`
111
112
  // but the filter is not being applied correctly.
112
- filter: (data) => Schema.is(LayoutAction.UpdateDialog.fields.input)(data),
113
+ filter: (data) => S.is(LayoutAction.UpdateDialog.fields.input)(data),
113
114
  resolve: ({ subject, options }) => {
114
- const layout = context.getCapability(DeckCapabilities.MutableDeckState);
115
+ const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
115
116
  layout.dialogOpen = options.state ?? Boolean(subject);
116
117
  layout.dialogContent = subject ? {
117
118
  component: subject,
@@ -123,42 +124,36 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
123
124
  }),
124
125
  createResolver({
125
126
  intent: LayoutAction.UpdateLayout,
126
- // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdatePopover.fields.input)`
127
+ // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.UpdatePopover.fields.input)`
127
128
  // but the filter is not being applied correctly.
128
- filter: (data) => Schema.is(LayoutAction.UpdatePopover.fields.input)(data),
129
+ filter: (data) => S.is(LayoutAction.UpdatePopover.fields.input)(data),
129
130
  resolve: ({ subject, options }) => {
130
- const layout = context.getCapability(DeckCapabilities.MutableDeckState);
131
+ const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
131
132
  layout.popoverOpen = options.state ?? Boolean(subject);
132
- layout.popoverContent = typeof subject === "string" ? {
133
+ layout.popoverContent = subject ? {
133
134
  component: subject,
134
135
  props: options.props
135
- } : subject ? {
136
- subject
137
136
  } : null;
137
+ layout.popoverAnchorId = options.anchorId;
138
138
  layout.popoverSide = options.side;
139
- if (options.variant === "virtual") {
140
- layout.popoverAnchor = options.anchor;
141
- } else {
142
- layout.popoverAnchorId = options.anchorId;
143
- }
144
139
  }
145
140
  }),
146
141
  createResolver({
147
142
  intent: LayoutAction.UpdateLayout,
148
- // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.AddToast.fields.input)`
143
+ // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.AddToast.fields.input)`
149
144
  // but the filter is not being applied correctly.
150
- filter: (data) => Schema.is(LayoutAction.AddToast.fields.input)(data),
145
+ filter: (data) => S.is(LayoutAction.AddToast.fields.input)(data),
151
146
  resolve: ({ subject }) => {
152
- const layout = context.getCapability(DeckCapabilities.MutableDeckState);
147
+ const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
153
148
  layout.toasts.push(subject);
154
149
  }
155
150
  }),
156
151
  createResolver({
157
152
  intent: LayoutAction.UpdateLayout,
158
- // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.SetLayoutMode.fields.input)`
153
+ // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.SetLayoutMode.fields.input)`
159
154
  // but the filter is not being applied correctly.
160
155
  filter: (data) => {
161
- if (!Schema.is(LayoutAction.SetLayoutMode.fields.input)(data)) {
156
+ if (!S.is(LayoutAction.SetLayoutMode.fields.input)(data)) {
162
157
  return false;
163
158
  }
164
159
  if ("mode" in data.options) {
@@ -167,7 +162,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
167
162
  return true;
168
163
  },
169
164
  resolve: ({ subject, options }) => {
170
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
165
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
171
166
  const setMode = (mode) => {
172
167
  const deck = state.deck;
173
168
  const current = deck.solo ? [
@@ -191,8 +186,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
191
186
  deck.solo = void 0;
192
187
  deck.initialized = true;
193
188
  }
194
- if (mode === "solo--fullscreen") {
195
- deck.fullscreen = !deck.fullscreen;
189
+ if (mode === "fullscreen" && !deck.fullscreen) {
190
+ deck.fullscreen = true;
191
+ } else if (mode !== "fullscreen" && deck.fullscreen) {
192
+ deck.fullscreen = false;
196
193
  }
197
194
  };
198
195
  return batch(() => {
@@ -208,7 +205,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
208
205
  } else {
209
206
  log.warn("Invalid layout mode", options, {
210
207
  F: __dxlog_file,
211
- L: 198,
208
+ L: 195,
212
209
  S: void 0,
213
210
  C: (f, a) => f(...a)
214
211
  });
@@ -218,10 +215,9 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
218
215
  }),
219
216
  createResolver({
220
217
  intent: LayoutAction.UpdateLayout,
221
- filter: (data) => Schema.is(LayoutAction.SwitchWorkspace.fields.input)(data),
218
+ filter: (data) => S.is(LayoutAction.SwitchWorkspace.fields.input)(data),
222
219
  resolve: ({ subject }) => {
223
- const { graph } = context.getCapability(Capabilities.AppGraph);
224
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
220
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
225
221
  batch(() => {
226
222
  if (!state.activeDeck.startsWith("!")) {
227
223
  state.previousDeck = state.activeDeck;
@@ -243,28 +239,14 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
243
239
  })
244
240
  ]
245
241
  };
246
- } else {
247
- const [item] = graph.getConnections(subject).filter((node) => !isActionLike(node));
248
- if (item) {
249
- return {
250
- intents: [
251
- createIntent(LayoutAction.Open, {
252
- part: "main",
253
- subject: [
254
- item.id
255
- ]
256
- })
257
- ]
258
- };
259
- }
260
242
  }
261
243
  }
262
244
  }),
263
245
  createResolver({
264
246
  intent: LayoutAction.UpdateLayout,
265
- filter: (data) => Schema.is(LayoutAction.RevertWorkspace.fields.input)(data),
247
+ filter: (data) => S.is(LayoutAction.RevertWorkspace.fields.input)(data),
266
248
  resolve: () => {
267
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
249
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
268
250
  return {
269
251
  intents: [
270
252
  createIntent(LayoutAction.SwitchWorkspace, {
@@ -277,19 +259,12 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
277
259
  }),
278
260
  createResolver({
279
261
  intent: LayoutAction.UpdateLayout,
280
- filter: (data) => Schema.is(LayoutAction.Open.fields.input)(data),
281
- resolve: ({ subject, options }) => Effect.gen(function* () {
282
- const { graph } = context.getCapability(Capabilities.AppGraph);
283
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
284
- const attention = context.getCapability(AttentionCapabilities.Attention);
285
- const settings = context.getCapabilities(Capabilities.SettingsStore)[0]?.getStore(DECK_PLUGIN)?.value;
286
- if (options?.workspace && state.activeDeck !== options?.workspace) {
287
- const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
288
- yield* dispatch(createIntent(LayoutAction.SwitchWorkspace, {
289
- part: "workspace",
290
- subject: options.workspace
291
- }));
292
- }
262
+ filter: (data) => S.is(LayoutAction.Open.fields.input)(data),
263
+ resolve: ({ subject, options }) => {
264
+ const { graph } = context.requestCapability(Capabilities.AppGraph);
265
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
266
+ const attention = context.requestCapability(AttentionCapabilities.Attention);
267
+ const settings = context.requestCapabilities(Capabilities.SettingsStore)[0]?.getStore(DECK_PLUGIN)?.value;
293
268
  const previouslyOpenIds = new Set(state.deck.solo ? [
294
269
  state.deck.solo
295
270
  ] : state.deck.active);
@@ -323,13 +298,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
323
298
  subject: newlyOpen[0] ?? subject[0]
324
299
  }),
325
300
  ...newlyOpen.map((subjectId) => {
326
- const typename = Option.match(graph.getNode(subjectId), {
327
- onNone: () => void 0,
328
- onSome: (node) => {
329
- const active = node.data;
330
- return isLiveObject(active) ? getTypename(active) : void 0;
331
- }
332
- });
301
+ const active = graph?.findNode(subjectId)?.data;
302
+ const typename = isReactiveObject(active) ? getTypename(active) : void 0;
333
303
  return createIntent(ObservabilityAction.SendEvent, {
334
304
  name: "navigation.activate",
335
305
  properties: {
@@ -340,14 +310,14 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
340
310
  })
341
311
  ]
342
312
  };
343
- })
313
+ }
344
314
  }),
345
315
  createResolver({
346
316
  intent: LayoutAction.UpdateLayout,
347
- filter: (data) => Schema.is(LayoutAction.Close.fields.input)(data),
317
+ filter: (data) => S.is(LayoutAction.Close.fields.input)(data),
348
318
  resolve: ({ subject }) => {
349
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
350
- const attention = context.getCapability(AttentionCapabilities.Attention);
319
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
320
+ const attention = context.requestCapability(AttentionCapabilities.Attention);
351
321
  const active = state.deck.solo ? [
352
322
  state.deck.solo
353
323
  ] : state.deck.active;
@@ -376,10 +346,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
376
346
  }),
377
347
  createResolver({
378
348
  intent: LayoutAction.UpdateLayout,
379
- filter: (data) => Schema.is(LayoutAction.Set.fields.input)(data),
349
+ filter: (data) => S.is(LayoutAction.Set.fields.input)(data),
380
350
  resolve: ({ subject }) => {
381
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
382
- const attention = context.getCapability(AttentionCapabilities.Attention);
351
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
352
+ const attention = context.requestCapability(AttentionCapabilities.Attention);
383
353
  const toAttend = setActive({
384
354
  next: subject,
385
355
  state,
@@ -397,30 +367,30 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
397
367
  }),
398
368
  createResolver({
399
369
  intent: LayoutAction.UpdateLayout,
400
- filter: (data) => Schema.is(LayoutAction.ScrollIntoView.fields.input)(data),
370
+ filter: (data) => S.is(LayoutAction.ScrollIntoView.fields.input)(data),
401
371
  resolve: ({ subject }) => {
402
- const layout = context.getCapability(DeckCapabilities.MutableDeckState);
372
+ const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
403
373
  layout.scrollIntoView = subject;
404
374
  }
405
375
  }),
406
376
  createResolver({
407
377
  intent: DeckAction.UpdatePlankSize,
408
378
  resolve: (data) => {
409
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
379
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
410
380
  state.deck.plankSizing[data.id] = data.size;
411
381
  }
412
382
  }),
413
383
  createResolver({
414
384
  intent: DeckAction.ChangeCompanion,
415
385
  resolve: (data) => {
416
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
386
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
417
387
  if (data.companion === null) {
418
388
  const { [data.primary]: _, ...nextActiveCompanions } = state.deck.activeCompanions ?? {};
419
389
  state.deck.activeCompanions = nextActiveCompanions;
420
390
  } else {
421
391
  invariant(data.companion !== data.primary, void 0, {
422
392
  F: __dxlog_file,
423
- L: 376,
393
+ L: 352,
424
394
  S: void 0,
425
395
  A: [
426
396
  "data.companion !== data.primary",
@@ -437,9 +407,9 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
437
407
  createResolver({
438
408
  intent: DeckAction.Adjust,
439
409
  resolve: (adjustment) => {
440
- const state = context.getCapability(DeckCapabilities.MutableDeckState);
441
- const attention = context.getCapability(AttentionCapabilities.Attention);
442
- const { graph } = context.getCapability(Capabilities.AppGraph);
410
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
411
+ const attention = context.requestCapability(AttentionCapabilities.Attention);
412
+ const { graph } = context.requestCapability(Capabilities.AppGraph);
443
413
  return batch(() => {
444
414
  if (adjustment.type === "increment-end" || adjustment.type === "increment-start") {
445
415
  setActive({
@@ -449,9 +419,12 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
449
419
  });
450
420
  }
451
421
  if (adjustment.type === "companion") {
452
- return pipe(graph.getNode(adjustment.id), Option.map((node) => graph.getConnections(node.id).filter((n) => n.type === PLANK_COMPANION_TYPE).toSorted((a, b) => byPosition(a.properties, b.properties))), Option.flatMap((companions) => companions.length > 0 ? Option.some(companions[0]) : Option.none()), Option.match({
453
- onNone: () => ({}),
454
- onSome: (companion) => ({
422
+ const node = graph.findNode(adjustment.id);
423
+ const [companion] = node ? graph.nodes(node, {
424
+ filter: (n) => n.type === PLANK_COMPANION_TYPE
425
+ }).toSorted((a, b) => byPosition(a.properties, b.properties)) : [];
426
+ if (companion) {
427
+ return {
455
428
  intents: [
456
429
  // TODO(wittjosiah): This should remember the previously selected companion.
457
430
  createIntent(DeckAction.ChangeCompanion, {
@@ -459,10 +432,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
459
432
  companion: companion.id
460
433
  })
461
434
  ]
462
- })
463
- }));
435
+ };
436
+ }
464
437
  }
465
- if (adjustment.type.startsWith("solo")) {
438
+ if (adjustment.type === "solo") {
466
439
  const entryId = adjustment.id;
467
440
  if (!state.deck.solo) {
468
441
  return {
@@ -471,42 +444,28 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
471
444
  part: "mode",
472
445
  subject: entryId,
473
446
  options: {
474
- mode: adjustment.type
447
+ mode: "solo"
475
448
  }
476
449
  })
477
450
  ]
478
451
  };
479
452
  } else {
480
- if (adjustment.type === "solo--fullscreen") {
481
- return {
482
- intents: [
483
- createIntent(LayoutAction.SetLayoutMode, {
484
- part: "mode",
485
- subject: entryId,
486
- options: {
487
- mode: "solo--fullscreen"
488
- }
489
- })
490
- ]
491
- };
492
- } else if (adjustment.type === "solo") {
493
- return {
494
- intents: [
495
- // NOTE: The order of these is important.
496
- pipe(createIntent(LayoutAction.SetLayoutMode, {
497
- part: "mode",
498
- options: {
499
- mode: "deck"
500
- }
501
- }), chain(LayoutAction.Open, {
502
- part: "main",
503
- subject: [
504
- entryId
505
- ]
506
- }))
507
- ]
508
- };
509
- }
453
+ return {
454
+ intents: [
455
+ // NOTE: The order of these is important.
456
+ pipe(createIntent(LayoutAction.SetLayoutMode, {
457
+ part: "mode",
458
+ options: {
459
+ mode: "deck"
460
+ }
461
+ }), chain(LayoutAction.Open, {
462
+ part: "main",
463
+ subject: [
464
+ entryId
465
+ ]
466
+ }))
467
+ ]
468
+ };
510
469
  }
511
470
  }
512
471
  });
@@ -516,4 +475,4 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
516
475
  export {
517
476
  intent_resolver_default as default
518
477
  };
519
- //# sourceMappingURL=intent-resolver-MAKOS57L.mjs.map
478
+ //# sourceMappingURL=intent-resolver-UDYKO2QW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { batch } from '@preact/signals-core';\nimport { pipe } from 'effect';\n\nimport {\n Capabilities,\n createResolver,\n contributes,\n IntentAction,\n LayoutAction,\n type PluginsContext,\n createIntent,\n chain,\n} from '@dxos/app-framework';\nimport { getTypename, S } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { isReactiveObject } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { type Node } from '@dxos/plugin-graph';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { byPosition, isNonNullable } from '@dxos/util';\n\nimport { DeckCapabilities } from './capabilities';\nimport { closeEntry, createEntryId, incrementPlank, openEntry } from '../layout';\nimport { DECK_PLUGIN } from '../meta';\nimport {\n DeckAction,\n type LayoutMode,\n type DeckSettingsProps,\n isLayoutMode,\n getMode,\n defaultDeck,\n PLANK_COMPANION_TYPE,\n} from '../types';\nimport { setActive } from '../util';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.ShowUndo,\n resolve: (data) => {\n const layout = context.requestCapability(DeckCapabilities.MutableDeckState);\n const { undoPromise: undo } = context.requestCapability(Capabilities.IntentDispatcher);\n\n // TODO(wittjosiah): Support undoing further back than the last action.\n if (layout.currentUndoId) {\n layout.toasts = layout.toasts.filter((toast) => toast.id !== layout.currentUndoId);\n }\n layout.currentUndoId = `${IntentAction.ShowUndo._tag}-${Date.now()}`;\n layout.toasts = [\n ...layout.toasts,\n {\n id: layout.currentUndoId,\n title: data.message ?? ['undo available label', { ns: DECK_PLUGIN }],\n duration: 10_000,\n actionLabel: ['undo action label', { ns: DECK_PLUGIN }],\n actionAlt: ['undo action alt', { ns: DECK_PLUGIN }],\n closeLabel: ['undo close label', { ns: DECK_PLUGIN }],\n onAction: () => undo(),\n },\n ];\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.UpdateSidebar.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is S.Schema.Type<typeof LayoutAction.UpdateSidebar.fields.input> =>\n S.is(LayoutAction.UpdateSidebar.fields.input)(data),\n resolve: ({ options }) => {\n const layout = context.requestCapability(DeckCapabilities.MutableDeckState);\n const next = options?.state ?? layout.sidebarState;\n if (next !== layout.sidebarState) {\n layout.sidebarState = next;\n }\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.UpdateComplementary.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is S.Schema.Type<typeof LayoutAction.UpdateComplementary.fields.input> =>\n S.is(LayoutAction.UpdateComplementary.fields.input)(data),\n resolve: ({ subject, options }) => {\n const layout = context.requestCapability(DeckCapabilities.MutableDeckState);\n\n if (layout.complementarySidebarPanel !== subject) {\n layout.complementarySidebarPanel = subject;\n }\n\n const next = subject ? 'expanded' : options?.state ?? layout.complementarySidebarState;\n if (next !== layout.complementarySidebarState) {\n layout.complementarySidebarState = next;\n }\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.UpdateDialog.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is S.Schema.Type<typeof LayoutAction.UpdateDialog.fields.input> =>\n S.is(LayoutAction.UpdateDialog.fields.input)(data),\n resolve: ({ subject, options }) => {\n const layout = context.requestCapability(DeckCapabilities.MutableDeckState);\n layout.dialogOpen = options.state ?? Boolean(subject);\n layout.dialogContent = subject ? { component: subject, props: options.props } : null;\n layout.dialogBlockAlign = options.blockAlign ?? 'center';\n layout.dialogType = options.type ?? 'default';\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.UpdatePopover.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is S.Schema.Type<typeof LayoutAction.UpdatePopover.fields.input> =>\n S.is(LayoutAction.UpdatePopover.fields.input)(data),\n resolve: ({ subject, options }) => {\n const layout = context.requestCapability(DeckCapabilities.MutableDeckState);\n layout.popoverOpen = options.state ?? Boolean(subject);\n layout.popoverContent = subject ? { component: subject, props: options.props } : null;\n layout.popoverAnchorId = options.anchorId;\n layout.popoverSide = options.side;\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.AddToast.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is S.Schema.Type<typeof LayoutAction.AddToast.fields.input> =>\n S.is(LayoutAction.AddToast.fields.input)(data),\n resolve: ({ subject }) => {\n const layout = context.requestCapability(DeckCapabilities.MutableDeckState);\n layout.toasts.push(subject);\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.SetLayoutMode.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is S.Schema.Type<typeof LayoutAction.SetLayoutMode.fields.input> => {\n if (!S.is(LayoutAction.SetLayoutMode.fields.input)(data)) {\n return false;\n }\n\n if ('mode' in data.options) {\n return isLayoutMode(data.options.mode);\n }\n\n return true;\n },\n resolve: ({ subject, options }) => {\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n\n const setMode = (mode: LayoutMode) => {\n const deck = state.deck;\n const current = deck.solo ? [deck.solo] : deck.active;\n // When un-soloing, the solo entry is added to the deck.\n const next = (\n mode !== 'deck' ? [subject ?? deck.solo ?? deck.active[0]] : [...deck.active, deck.solo]\n ).filter(isNonNullable);\n\n const removed = current.filter((id) => !next.includes(id));\n const closed = Array.from(new Set([...deck.inactive.filter((id) => !next.includes(id)), ...removed]));\n deck.inactive = closed;\n\n if (mode !== 'deck' && next[0]) {\n deck.solo = next[0];\n } else if (mode === 'deck' && deck.solo) {\n deck.solo = undefined;\n deck.initialized = true;\n }\n\n if (mode === 'fullscreen' && !deck.fullscreen) {\n deck.fullscreen = true;\n } else if (mode !== 'fullscreen' && deck.fullscreen) {\n deck.fullscreen = false;\n }\n };\n\n return batch(() => {\n if ('mode' in options) {\n const current = getMode(state.deck);\n if (current !== options.mode) {\n state.previousMode[state.activeDeck] = current;\n }\n setMode(options.mode as LayoutMode);\n } else if ('revert' in options) {\n const last = state.previousMode[state.activeDeck];\n setMode(last ?? 'solo');\n } else {\n log.warn('Invalid layout mode', options);\n }\n });\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is S.Schema.Type<typeof LayoutAction.SwitchWorkspace.fields.input> =>\n S.is(LayoutAction.SwitchWorkspace.fields.input)(data),\n resolve: ({ subject }) => {\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n batch(() => {\n // TODO(wittjosiah): This is a hack to prevent the previous deck from being set for pinned items.\n // Ideally this should be worked into the data model in a generic way.\n if (!state.activeDeck.startsWith('!')) {\n state.previousDeck = state.activeDeck;\n }\n state.activeDeck = subject;\n if (!state.decks[subject]) {\n state.decks[subject] = { ...defaultDeck };\n }\n });\n\n const first = state.deck.solo ? state.deck.solo : state.deck.active[0];\n if (first) {\n return {\n intents: [createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: first })],\n };\n }\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is S.Schema.Type<typeof LayoutAction.RevertWorkspace.fields.input> =>\n S.is(LayoutAction.RevertWorkspace.fields.input)(data),\n resolve: () => {\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n return {\n intents: [createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: state.previousDeck })],\n };\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is S.Schema.Type<typeof LayoutAction.Open.fields.input> =>\n S.is(LayoutAction.Open.fields.input)(data),\n resolve: ({ subject, options }) => {\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<DeckSettingsProps>(DECK_PLUGIN)?.value;\n\n const previouslyOpenIds = new Set<string>(state.deck.solo ? [state.deck.solo] : state.deck.active);\n batch(() => {\n const next = state.deck.solo\n ? (subject as string[]).map((id) => createEntryId(id, options?.variant))\n : subject.reduce(\n (acc, entryId) =>\n openEntry(acc, entryId, {\n key: options?.key,\n positioning: options?.positioning ?? settings?.newPlankPositioning,\n pivotId: options?.pivotId,\n variant: options?.variant,\n }),\n state.deck.active,\n );\n\n return setActive({ next, state, attention });\n });\n\n const ids = state.deck.solo ? [state.deck.solo] : state.deck.active;\n const newlyOpen = ids.filter((i) => !previouslyOpenIds.has(i));\n\n return {\n intents: [\n ...(options?.scrollIntoView !== false\n ? [createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: newlyOpen[0] ?? subject[0] })]\n : []),\n createIntent(LayoutAction.Expose, { part: 'navigation', subject: newlyOpen[0] ?? subject[0] }),\n ...newlyOpen.map((subjectId) => {\n const active = graph?.findNode(subjectId)?.data;\n const typename = isReactiveObject(active) ? getTypename(active) : undefined;\n return createIntent(ObservabilityAction.SendEvent, {\n name: 'navigation.activate',\n properties: {\n subjectId,\n typename,\n },\n });\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is S.Schema.Type<typeof LayoutAction.Close.fields.input> =>\n S.is(LayoutAction.Close.fields.input)(data),\n resolve: ({ subject }) => {\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const active = state.deck.solo ? [state.deck.solo] : state.deck.active;\n const next = subject.reduce((acc, id) => closeEntry(acc, id), active);\n const toAttend = setActive({ next, state, attention });\n\n const clearCompanionIntents = subject\n .filter((id) => state.deck.activeCompanions && id in state.deck.activeCompanions)\n .map((primary) => createIntent(DeckAction.ChangeCompanion, { primary, companion: null }));\n\n return {\n intents: [\n ...clearCompanionIntents,\n ...(toAttend ? [createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: toAttend })] : []),\n ],\n };\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is S.Schema.Type<typeof LayoutAction.Set.fields.input> =>\n S.is(LayoutAction.Set.fields.input)(data),\n resolve: ({ subject }) => {\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const toAttend = setActive({ next: subject as string[], state, attention });\n return {\n intents: toAttend ? [createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: toAttend })] : [],\n };\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is S.Schema.Type<typeof LayoutAction.ScrollIntoView.fields.input> =>\n S.is(LayoutAction.ScrollIntoView.fields.input)(data),\n resolve: ({ subject }) => {\n const layout = context.requestCapability(DeckCapabilities.MutableDeckState);\n layout.scrollIntoView = subject;\n },\n }),\n createResolver({\n intent: DeckAction.UpdatePlankSize,\n resolve: (data) => {\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n state.deck.plankSizing[data.id] = data.size;\n },\n }),\n createResolver({\n intent: DeckAction.ChangeCompanion,\n resolve: (data) => {\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n // TODO(thure): Reactivity only works when creating a lexically new `activeCompanions`… Are these not proxy objects?\n if (data.companion === null) {\n const { [data.primary]: _, ...nextActiveCompanions } = state.deck.activeCompanions ?? {};\n state.deck.activeCompanions = nextActiveCompanions;\n } else {\n invariant(data.companion !== data.primary);\n state.deck.activeCompanions = {\n ...state.deck.activeCompanions,\n [data.primary]: data.companion,\n };\n }\n },\n }),\n createResolver({\n intent: DeckAction.Adjust,\n resolve: (adjustment) => {\n const state = context.requestCapability(DeckCapabilities.MutableDeckState);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n\n return batch(() => {\n if (adjustment.type === 'increment-end' || adjustment.type === 'increment-start') {\n setActive({\n next: incrementPlank(state.deck.active, adjustment),\n state,\n attention,\n });\n }\n\n if (adjustment.type === 'companion') {\n const node = graph.findNode(adjustment.id);\n const [companion] = node\n ? graph\n .nodes(node, { filter: (n): n is Node<any> => n.type === PLANK_COMPANION_TYPE })\n .toSorted((a, b) => byPosition(a.properties, b.properties))\n : [];\n if (companion) {\n return {\n intents: [\n // TODO(wittjosiah): This should remember the previously selected companion.\n createIntent(DeckAction.ChangeCompanion, { primary: adjustment.id, companion: companion.id }),\n ],\n };\n }\n }\n\n if (adjustment.type === 'solo') {\n const entryId = adjustment.id;\n if (!state.deck.solo) {\n // Solo the entry.\n return {\n intents: [\n createIntent(LayoutAction.SetLayoutMode, {\n part: 'mode',\n subject: entryId,\n options: { mode: 'solo' },\n }),\n ],\n };\n } else {\n // Un-solo the current entry.\n return {\n intents: [\n // NOTE: The order of these is important.\n pipe(\n createIntent(LayoutAction.SetLayoutMode, { part: 'mode', options: { mode: 'deck' } }),\n chain(LayoutAction.Open, { part: 'main', subject: [entryId] }),\n ),\n ],\n };\n }\n }\n });\n },\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["batch", "pipe", "Capabilities", "createResolver", "contributes", "IntentAction", "LayoutAction", "createIntent", "chain", "getTypename", "S", "invariant", "isReactiveObject", "log", "AttentionCapabilities", "ObservabilityAction", "byPosition", "isNonNullable", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "ShowUndo", "resolve", "data", "layout", "requestCapability", "DeckCapabilities", "MutableDeckState", "undoPromise", "undo", "IntentDispatcher", "currentUndoId", "toasts", "filter", "toast", "id", "_tag", "Date", "now", "title", "message", "ns", "DECK_PLUGIN", "duration", "actionLabel", "actionAlt", "closeLabel", "onAction", "LayoutAction", "UpdateLayout", "S", "is", "UpdateSidebar", "fields", "input", "options", "next", "state", "sidebarState", "UpdateComplementary", "subject", "complementarySidebarPanel", "complementarySidebarState", "UpdateDialog", "dialogOpen", "Boolean", "dialogContent", "component", "props", "dialogBlockAlign", "blockAlign", "dialogType", "type", "UpdatePopover", "popoverOpen", "popoverContent", "popoverAnchorId", "anchorId", "popoverSide", "side", "AddToast", "push", "SetLayoutMode", "isLayoutMode", "mode", "setMode", "deck", "current", "solo", "active", "isNonNullable", "removed", "includes", "closed", "Array", "from", "Set", "inactive", "undefined", "initialized", "fullscreen", "batch", "getMode", "previousMode", "activeDeck", "last", "log", "warn", "SwitchWorkspace", "startsWith", "previousDeck", "decks", "defaultDeck", "first", "intents", "createIntent", "ScrollIntoView", "part", "RevertWorkspace", "Open", "graph", "AppGraph", "attention", "AttentionCapabilities", "Attention", "settings", "requestCapabilities", "SettingsStore", "getStore", "value", "previouslyOpenIds", "map", "createEntryId", "variant", "reduce", "acc", "entryId", "openEntry", "key", "positioning", "newPlankPositioning", "pivotId", "setActive", "ids", "newlyOpen", "i", "has", "scrollIntoView", "Expose", "subjectId", "findNode", "typename", "isReactiveObject", "getTypename", "ObservabilityAction", "SendEvent", "name", "properties", "Close", "closeEntry", "toAttend", "clearCompanionIntents", "activeCompanions", "primary", "DeckAction", "ChangeCompanion", "companion", "UpdatePlankSize", "plankSizing", "size", "_", "nextActiveCompanions", "invariant", "Adjust", "adjustment", "incrementPlank", "node", "nodes", "n", "PLANK_COMPANION_TYPE", "toSorted", "a", "b", "byPosition", "pipe", "chain"]
7
+ }