@dxos/plugin-deck 0.9.0 → 0.9.1-staging.ee54ba693a

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 (314) hide show
  1. package/PLUGIN.mdl +3 -1
  2. package/dist/lib/neutral/{DeckLayout-DEURA3KR.mjs → DeckLayout-B3RUUV5P.mjs} +36 -22
  3. package/dist/lib/neutral/DeckLayout-B3RUUV5P.mjs.map +7 -0
  4. package/dist/lib/neutral/DeckPlugin.mjs +4 -8
  5. package/dist/lib/neutral/DeckPlugin.mjs.map +4 -4
  6. package/dist/lib/neutral/DeckSettings-Z7GMB7XJ.mjs +32 -0
  7. package/dist/lib/neutral/DeckSettings-Z7GMB7XJ.mjs.map +7 -0
  8. package/dist/lib/neutral/{add-toast-TNB6DXWU.mjs → add-toast-BHNEH5UY.mjs} +2 -2
  9. package/dist/lib/neutral/{adjust-HNU5CCRO.mjs → adjust-MJB6UMRQ.mjs} +16 -10
  10. package/dist/lib/neutral/adjust-MJB6UMRQ.mjs.map +7 -0
  11. package/dist/lib/neutral/{app-graph-builder-HMLT627T.mjs → app-graph-builder-2F7P4IFQ.mjs} +8 -7
  12. package/dist/lib/neutral/app-graph-builder-2F7P4IFQ.mjs.map +7 -0
  13. package/dist/lib/neutral/capabilities/index.mjs +8 -8
  14. package/dist/lib/neutral/{check-app-scheme-INSOF72J.mjs → check-app-scheme-HSAORHHX.mjs} +2 -2
  15. package/dist/lib/neutral/chunk-FKGYHBUB.mjs +8 -0
  16. package/dist/lib/neutral/{chunk-BS4EOYMK.mjs → chunk-ICOJ4GMB.mjs} +37 -19
  17. package/dist/lib/neutral/chunk-ICOJ4GMB.mjs.map +7 -0
  18. package/dist/lib/neutral/chunk-KY7LMF4D.mjs +46 -0
  19. package/dist/lib/neutral/chunk-KY7LMF4D.mjs.map +7 -0
  20. package/dist/lib/neutral/{chunk-324PPIZB.mjs → chunk-KZFJ4PBT.mjs} +4 -4
  21. package/dist/lib/neutral/chunk-KZFJ4PBT.mjs.map +7 -0
  22. package/dist/lib/neutral/{chunk-GBIGQKYW.mjs → chunk-PP32NEVY.mjs} +4 -4
  23. package/dist/lib/neutral/chunk-PP32NEVY.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-SONATB35.mjs +20 -0
  25. package/dist/lib/neutral/chunk-SONATB35.mjs.map +7 -0
  26. package/dist/lib/neutral/chunk-Z2B5RSVI.mjs +1096 -0
  27. package/dist/lib/neutral/chunk-Z2B5RSVI.mjs.map +7 -0
  28. package/dist/lib/neutral/{close-ASKR22A6.mjs → close-2YGB5IIP.mjs} +4 -3
  29. package/dist/lib/neutral/{close-ASKR22A6.mjs.map → close-2YGB5IIP.mjs.map} +1 -1
  30. package/dist/lib/neutral/components/index.mjs +201 -16
  31. package/dist/lib/neutral/components/index.mjs.map +4 -4
  32. package/dist/lib/neutral/containers/index.mjs +6 -11
  33. package/dist/lib/neutral/containers/index.mjs.map +3 -3
  34. package/dist/lib/neutral/hooks/index.mjs +101 -17
  35. package/dist/lib/neutral/hooks/index.mjs.map +4 -4
  36. package/dist/lib/neutral/index.mjs +18 -2
  37. package/dist/lib/neutral/meta.json +1 -1
  38. package/dist/lib/neutral/meta.mjs +1 -1
  39. package/dist/lib/neutral/{notification-tracker-P36322BH.mjs → notification-tracker-Y5CRTWJM.mjs} +12 -10
  40. package/dist/lib/neutral/notification-tracker-Y5CRTWJM.mjs.map +7 -0
  41. package/dist/lib/neutral/{open-5OYNO3RT.mjs → open-P6XQ56M7.mjs} +8 -7
  42. package/dist/lib/neutral/open-P6XQ56M7.mjs.map +7 -0
  43. package/dist/lib/neutral/operations/index.mjs +1 -1
  44. package/dist/lib/neutral/plugin.mjs +2 -2
  45. package/dist/lib/neutral/{react-root-HH5DEUOG.mjs → react-root-E6TAFHX6.mjs} +2 -2
  46. package/dist/lib/neutral/react-root-E6TAFHX6.mjs.map +7 -0
  47. package/dist/lib/neutral/{react-surface-3UVVCK3O.mjs → react-surface-H63FXUK3.mjs} +5 -6
  48. package/dist/lib/neutral/react-surface-H63FXUK3.mjs.map +7 -0
  49. package/dist/lib/neutral/{revert-workspace-B2QLT2C4.mjs → revert-workspace-RXWP2TEE.mjs} +2 -2
  50. package/dist/lib/neutral/{scroll-into-view-B52C3PJO.mjs → scroll-into-view-HFV5EGYZ.mjs} +2 -2
  51. package/dist/lib/neutral/{set-PA35ONXO.mjs → set-HOOVB7E4.mjs} +4 -3
  52. package/dist/lib/neutral/{set-PA35ONXO.mjs.map → set-HOOVB7E4.mjs.map} +1 -1
  53. package/dist/lib/neutral/{set-layout-mode-RPCCPQRB.mjs → set-layout-mode-XAGSZZGB.mjs} +2 -2
  54. package/dist/lib/neutral/{settings-EGNYUM4T.mjs → settings-6CDQEB6B.mjs} +3 -3
  55. package/dist/lib/neutral/settings-6CDQEB6B.mjs.map +7 -0
  56. package/dist/lib/neutral/{state-IIDXMQUO.mjs → state-F4X5GPGZ.mjs} +4 -3
  57. package/dist/lib/neutral/state-F4X5GPGZ.mjs.map +7 -0
  58. package/dist/lib/neutral/{switch-workspace-LZF4KZXH.mjs → switch-workspace-PA7N6EUX.mjs} +4 -4
  59. package/dist/lib/neutral/switch-workspace-PA7N6EUX.mjs.map +7 -0
  60. package/dist/lib/neutral/translations.mjs +3 -3
  61. package/dist/lib/neutral/translations.mjs.map +3 -3
  62. package/dist/lib/neutral/types/index.mjs +11 -1
  63. package/dist/lib/neutral/{update-companion-YUCZZVGY.mjs → update-companion-6A2SKQAI.mjs} +14 -6
  64. package/dist/lib/neutral/update-companion-6A2SKQAI.mjs.map +7 -0
  65. package/dist/lib/neutral/{update-complementary-7FZNB55J.mjs → update-complementary-K55I5EV5.mjs} +2 -2
  66. package/dist/lib/neutral/{update-dialog-FNQTSSAP.mjs → update-dialog-Z3GEXMVV.mjs} +2 -2
  67. package/dist/lib/neutral/{update-plank-size-3YW4NXEY.mjs → update-plank-size-BTESVV7N.mjs} +2 -2
  68. package/dist/lib/neutral/{update-popover-G2VUD7E6.mjs → update-popover-QEVDSZSH.mjs} +2 -2
  69. package/dist/lib/neutral/{update-sidebar-KRHPUHUB.mjs → update-sidebar-VSRCN47U.mjs} +2 -2
  70. package/dist/lib/neutral/{url-handler-A6HLW4RB.mjs → url-handler-ERZXXEYR.mjs} +11 -10
  71. package/dist/lib/neutral/url-handler-ERZXXEYR.mjs.map +7 -0
  72. package/dist/types/dx.config.d.ts +28 -0
  73. package/dist/types/dx.config.d.ts.map +1 -0
  74. package/dist/types/src/DeckPlugin.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -2
  76. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/index.d.ts +8 -196
  78. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/notification-tracker.d.ts +1 -1
  80. package/dist/types/src/capabilities/notification-tracker.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/react-root.d.ts +1 -5
  82. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/react-surface.d.ts +2 -2
  84. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/settings.d.ts +1 -3
  86. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/state.d.ts +1 -187
  88. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/tools.d.ts +1 -1
  90. package/dist/types/src/capabilities/url-handler.d.ts +1 -1
  91. package/dist/types/src/components/Companion/Companion.d.ts +17 -0
  92. package/dist/types/src/components/Companion/Companion.d.ts.map +1 -0
  93. package/dist/types/src/components/Companion/index.d.ts +2 -0
  94. package/dist/types/src/components/Companion/index.d.ts.map +1 -0
  95. package/dist/types/src/components/Matrix/Matrix.d.ts +1 -1
  96. package/dist/types/src/components/Matrix/Matrix.d.ts.map +1 -1
  97. package/dist/types/src/components/Matrix/Matrix.stories.d.ts +2 -2
  98. package/dist/types/src/components/Matrix/Matrix.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/Matrix/index.d.ts +1 -1
  100. package/dist/types/src/components/Matrix/index.d.ts.map +1 -1
  101. package/dist/types/src/components/Pane/Pane.d.ts +45 -0
  102. package/dist/types/src/components/Pane/Pane.d.ts.map +1 -0
  103. package/dist/types/src/components/Pane/Pane.stories.d.ts +7 -0
  104. package/dist/types/src/components/Pane/Pane.stories.d.ts.map +1 -0
  105. package/dist/types/src/components/Pane/index.d.ts +2 -0
  106. package/dist/types/src/components/Pane/index.d.ts.map +1 -0
  107. package/dist/types/src/components/Plank/Plank.d.ts +74 -0
  108. package/dist/types/src/components/Plank/Plank.d.ts.map +1 -0
  109. package/dist/types/src/components/Plank/Plank.stories.d.ts +6 -0
  110. package/dist/types/src/components/Plank/Plank.stories.d.ts.map +1 -0
  111. package/dist/types/src/components/Plank/index.d.ts +2 -0
  112. package/dist/types/src/components/Plank/index.d.ts.map +1 -0
  113. package/dist/types/src/components/index.d.ts +3 -2
  114. package/dist/types/src/components/index.d.ts.map +1 -1
  115. package/dist/types/src/containers/Deck/Banner.d.ts.map +1 -1
  116. package/dist/types/src/containers/Deck/Deck.d.ts +1 -1
  117. package/dist/types/src/containers/Deck/Deck.d.ts.map +1 -1
  118. package/dist/types/src/containers/Deck/Deck.stories.d.ts +2 -2
  119. package/dist/types/src/containers/Deck/DeckPlank.d.ts +21 -0
  120. package/dist/types/src/containers/Deck/DeckPlank.d.ts.map +1 -0
  121. package/dist/types/src/containers/Deck/DeckViewport.d.ts +3 -1
  122. package/dist/types/src/containers/Deck/DeckViewport.d.ts.map +1 -1
  123. package/dist/types/src/containers/{Plank → Deck}/PlankControls.d.ts +3 -10
  124. package/dist/types/src/containers/Deck/PlankControls.d.ts.map +1 -0
  125. package/dist/types/src/containers/Deck/PlankFallback.d.ts +6 -0
  126. package/dist/types/src/containers/Deck/PlankFallback.d.ts.map +1 -0
  127. package/dist/types/src/containers/Deck/StatusBar.d.ts.map +1 -1
  128. package/dist/types/src/containers/Deck/useDeckPlank.d.ts +49 -0
  129. package/dist/types/src/containers/Deck/useDeckPlank.d.ts.map +1 -0
  130. package/dist/types/src/containers/DeckLayout/DeckLayout.stories.d.ts +2 -2
  131. package/dist/types/src/containers/DeckLayout/DeckLayout.stories.d.ts.map +1 -1
  132. package/dist/types/src/containers/DeckLayout/Popover.d.ts.map +1 -1
  133. package/dist/types/src/{components → containers}/DeckSettings/DeckSettings.d.ts +1 -1
  134. package/dist/types/src/containers/DeckSettings/DeckSettings.d.ts.map +1 -0
  135. package/dist/types/src/{components → containers}/DeckSettings/DeckSettings.stories.d.ts +2 -2
  136. package/dist/types/src/{components → containers}/DeckSettings/DeckSettings.stories.d.ts.map +1 -1
  137. package/dist/types/src/containers/DeckSettings/index.d.ts.map +1 -0
  138. package/dist/types/src/containers/Sidebar/ComplementarySidebar.d.ts.map +1 -1
  139. package/dist/types/src/containers/index.d.ts +1 -1
  140. package/dist/types/src/containers/index.d.ts.map +1 -1
  141. package/dist/types/src/hooks/index.d.ts +2 -0
  142. package/dist/types/src/hooks/index.d.ts.map +1 -1
  143. package/dist/types/src/hooks/useCompanionSplit.d.ts +28 -0
  144. package/dist/types/src/hooks/useCompanionSplit.d.ts.map +1 -0
  145. package/dist/types/src/hooks/useCompanions.d.ts +11 -7
  146. package/dist/types/src/hooks/useCompanions.d.ts.map +1 -1
  147. package/dist/types/src/hooks/useDeckCompanions.d.ts +2 -2
  148. package/dist/types/src/hooks/useDeckCompanions.d.ts.map +1 -1
  149. package/dist/types/src/hooks/useDeckState.d.ts +1 -1
  150. package/dist/types/src/hooks/useDeckState.d.ts.map +1 -1
  151. package/dist/types/src/hooks/useSelectedCompanionVariant.d.ts +6 -0
  152. package/dist/types/src/hooks/useSelectedCompanionVariant.d.ts.map +1 -0
  153. package/dist/types/src/index.d.ts +1 -0
  154. package/dist/types/src/index.d.ts.map +1 -1
  155. package/dist/types/src/meta.d.ts +32 -2
  156. package/dist/types/src/meta.d.ts.map +1 -1
  157. package/dist/types/src/operations/adjust.d.ts.map +1 -1
  158. package/dist/types/src/operations/open.d.ts.map +1 -1
  159. package/dist/types/src/operations/switch-workspace.d.ts.map +1 -1
  160. package/dist/types/src/operations/update-companion.d.ts.map +1 -1
  161. package/dist/types/src/translations.d.ts +2 -2
  162. package/dist/types/src/translations.d.ts.map +1 -1
  163. package/dist/types/src/types/DeckCapabilities.d.ts +4 -4
  164. package/dist/types/src/types/DeckCapabilities.d.ts.map +1 -1
  165. package/dist/types/src/types/DeckOperation.d.ts +2 -2
  166. package/dist/types/src/types/DeckOperation.d.ts.map +1 -1
  167. package/dist/types/src/types/index.d.ts +1 -0
  168. package/dist/types/src/types/index.d.ts.map +1 -1
  169. package/dist/types/src/types/schema.d.ts +11 -9
  170. package/dist/types/src/types/schema.d.ts.map +1 -1
  171. package/dist/types/src/types/surface.d.ts +12 -0
  172. package/dist/types/src/types/surface.d.ts.map +1 -0
  173. package/dist/types/src/util/companion-view-state.d.ts +16 -0
  174. package/dist/types/src/util/companion-view-state.d.ts.map +1 -0
  175. package/dist/types/src/util/index.d.ts +1 -0
  176. package/dist/types/src/util/index.d.ts.map +1 -1
  177. package/dist/types/src/util/plank-url-params.d.ts +2 -0
  178. package/dist/types/src/util/plank-url-params.d.ts.map +1 -1
  179. package/dist/types/tsconfig.tsbuildinfo +1 -1
  180. package/dx.config.ts +35 -0
  181. package/package.json +50 -48
  182. package/src/DeckPlugin.test.ts +1 -1
  183. package/src/DeckPlugin.ts +2 -3
  184. package/src/capabilities/app-graph-builder.ts +7 -6
  185. package/src/capabilities/check-app-scheme.ts +3 -3
  186. package/src/capabilities/notification-tracker.ts +11 -9
  187. package/src/capabilities/react-root.tsx +1 -1
  188. package/src/capabilities/react-surface.tsx +4 -5
  189. package/src/capabilities/settings.ts +2 -2
  190. package/src/capabilities/state.ts +1 -1
  191. package/src/capabilities/url-handler.ts +7 -15
  192. package/src/components/Companion/Companion.tsx +91 -0
  193. package/src/components/Companion/index.ts +5 -0
  194. package/src/components/Matrix/Matrix.stories.tsx +15 -27
  195. package/src/components/Matrix/Matrix.tsx +3 -3
  196. package/src/components/Matrix/SPEC.md +1 -1
  197. package/src/components/Matrix/index.ts +1 -1
  198. package/src/components/Pane/Pane.stories.tsx +92 -0
  199. package/src/components/Pane/Pane.tsx +178 -0
  200. package/src/components/Pane/index.ts +5 -0
  201. package/src/components/Plank/Plank.stories.tsx +103 -0
  202. package/src/components/Plank/Plank.tsx +149 -0
  203. package/src/components/Plank/index.ts +5 -0
  204. package/src/components/index.ts +3 -4
  205. package/src/containers/Deck/Banner.tsx +5 -4
  206. package/src/containers/Deck/Deck.tsx +3 -3
  207. package/src/containers/Deck/DeckPlank.tsx +187 -0
  208. package/src/containers/Deck/DeckViewport.tsx +118 -246
  209. package/src/containers/{Plank → Deck}/PlankControls.tsx +21 -19
  210. package/src/containers/Deck/PlankFallback.tsx +42 -0
  211. package/src/containers/Deck/StatusBar.tsx +4 -2
  212. package/src/containers/Deck/useDeckPlank.ts +219 -0
  213. package/src/containers/DeckLayout/DeckLayout.stories.tsx +44 -60
  214. package/src/containers/DeckLayout/Dialog.tsx +1 -1
  215. package/src/containers/DeckLayout/Fallback.tsx +1 -1
  216. package/src/containers/DeckLayout/Popover.tsx +37 -20
  217. package/src/containers/DeckLayout/Toast.tsx +1 -1
  218. package/src/{components → containers}/DeckSettings/DeckSettings.stories.tsx +1 -1
  219. package/src/containers/DeckSettings/DeckSettings.tsx +42 -0
  220. package/src/containers/Sidebar/ComplementarySidebar.tsx +8 -7
  221. package/src/containers/Sidebar/Sidebar.tsx +1 -1
  222. package/src/containers/Sidebar/SidebarButton.tsx +3 -3
  223. package/src/containers/index.ts +1 -1
  224. package/src/hooks/index.ts +2 -0
  225. package/src/hooks/useCompanionSplit.ts +78 -0
  226. package/src/hooks/useCompanions.ts +39 -7
  227. package/src/hooks/useDeckCompanions.ts +3 -3
  228. package/src/hooks/useDeckState.ts +1 -1
  229. package/src/hooks/useSelectedCompanionVariant.ts +14 -0
  230. package/src/index.ts +7 -0
  231. package/src/meta.ts +2 -27
  232. package/src/operations/adjust.ts +23 -12
  233. package/src/operations/open.ts +12 -10
  234. package/src/operations/switch-workspace.ts +2 -2
  235. package/src/operations/update-companion.ts +10 -6
  236. package/src/translations.ts +3 -3
  237. package/src/types/DeckCapabilities.ts +6 -4
  238. package/src/types/DeckEvents.ts +1 -1
  239. package/src/types/DeckOperation.ts +3 -2
  240. package/src/types/index.ts +1 -0
  241. package/src/types/schema.ts +21 -16
  242. package/src/types/surface.ts +28 -0
  243. package/src/util/companion-view-state.ts +28 -0
  244. package/src/util/index.ts +1 -0
  245. package/src/util/plank-url-params.test.ts +5 -0
  246. package/src/util/plank-url-params.ts +5 -3
  247. package/src/util/sanitize-persisted-state.test.ts +1 -1
  248. package/src/util/set-active.test.ts +1 -1
  249. package/dist/lib/neutral/DeckLayout-DEURA3KR.mjs.map +0 -7
  250. package/dist/lib/neutral/DeckSettings-W5I57OXM.mjs +0 -27
  251. package/dist/lib/neutral/DeckSettings-W5I57OXM.mjs.map +0 -7
  252. package/dist/lib/neutral/adjust-HNU5CCRO.mjs.map +0 -7
  253. package/dist/lib/neutral/app-graph-builder-HMLT627T.mjs.map +0 -7
  254. package/dist/lib/neutral/chunk-324PPIZB.mjs.map +0 -7
  255. package/dist/lib/neutral/chunk-BS4EOYMK.mjs.map +0 -7
  256. package/dist/lib/neutral/chunk-GBIGQKYW.mjs.map +0 -7
  257. package/dist/lib/neutral/chunk-PYEY5SEC.mjs +0 -37
  258. package/dist/lib/neutral/chunk-PYEY5SEC.mjs.map +0 -7
  259. package/dist/lib/neutral/chunk-Q4W6B4IB.mjs +0 -8
  260. package/dist/lib/neutral/chunk-WAXJPQJI.mjs +0 -1306
  261. package/dist/lib/neutral/chunk-WAXJPQJI.mjs.map +0 -7
  262. package/dist/lib/neutral/notification-tracker-P36322BH.mjs.map +0 -7
  263. package/dist/lib/neutral/open-5OYNO3RT.mjs.map +0 -7
  264. package/dist/lib/neutral/react-root-HH5DEUOG.mjs.map +0 -7
  265. package/dist/lib/neutral/react-surface-3UVVCK3O.mjs.map +0 -7
  266. package/dist/lib/neutral/settings-EGNYUM4T.mjs.map +0 -7
  267. package/dist/lib/neutral/state-IIDXMQUO.mjs.map +0 -7
  268. package/dist/lib/neutral/switch-workspace-LZF4KZXH.mjs.map +0 -7
  269. package/dist/lib/neutral/update-companion-YUCZZVGY.mjs.map +0 -7
  270. package/dist/lib/neutral/url-handler-A6HLW4RB.mjs.map +0 -7
  271. package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +0 -1
  272. package/dist/types/src/components/DeckSettings/index.d.ts.map +0 -1
  273. package/dist/types/src/containers/Plank/Plank.d.ts +0 -17
  274. package/dist/types/src/containers/Plank/Plank.d.ts.map +0 -1
  275. package/dist/types/src/containers/Plank/Plank.stories.d.ts +0 -67
  276. package/dist/types/src/containers/Plank/Plank.stories.d.ts.map +0 -1
  277. package/dist/types/src/containers/Plank/PlankComponent.d.ts +0 -17
  278. package/dist/types/src/containers/Plank/PlankComponent.d.ts.map +0 -1
  279. package/dist/types/src/containers/Plank/PlankContent.d.ts +0 -10
  280. package/dist/types/src/containers/Plank/PlankContent.d.ts.map +0 -1
  281. package/dist/types/src/containers/Plank/PlankControls.d.ts.map +0 -1
  282. package/dist/types/src/containers/Plank/PlankError.d.ts +0 -15
  283. package/dist/types/src/containers/Plank/PlankError.d.ts.map +0 -1
  284. package/dist/types/src/containers/Plank/PlankHeading.d.ts +0 -22
  285. package/dist/types/src/containers/Plank/PlankHeading.d.ts.map +0 -1
  286. package/dist/types/src/containers/Plank/PlankLoading.d.ts +0 -3
  287. package/dist/types/src/containers/Plank/PlankLoading.d.ts.map +0 -1
  288. package/dist/types/src/containers/Plank/PlankRoot.d.ts +0 -37
  289. package/dist/types/src/containers/Plank/PlankRoot.d.ts.map +0 -1
  290. package/dist/types/src/containers/Plank/index.d.ts +0 -4
  291. package/dist/types/src/containers/Plank/index.d.ts.map +0 -1
  292. package/src/components/DeckSettings/DeckSettings.tsx +0 -34
  293. package/src/containers/Plank/Plank.stories.tsx +0 -108
  294. package/src/containers/Plank/Plank.tsx +0 -22
  295. package/src/containers/Plank/PlankComponent.tsx +0 -223
  296. package/src/containers/Plank/PlankContent.tsx +0 -45
  297. package/src/containers/Plank/PlankError.tsx +0 -82
  298. package/src/containers/Plank/PlankHeading.tsx +0 -237
  299. package/src/containers/Plank/PlankLoading.tsx +0 -10
  300. package/src/containers/Plank/PlankRoot.tsx +0 -49
  301. package/src/containers/Plank/index.ts +0 -7
  302. /package/dist/lib/neutral/{add-toast-TNB6DXWU.mjs.map → add-toast-BHNEH5UY.mjs.map} +0 -0
  303. /package/dist/lib/neutral/{check-app-scheme-INSOF72J.mjs.map → check-app-scheme-HSAORHHX.mjs.map} +0 -0
  304. /package/dist/lib/neutral/{chunk-Q4W6B4IB.mjs.map → chunk-FKGYHBUB.mjs.map} +0 -0
  305. /package/dist/lib/neutral/{revert-workspace-B2QLT2C4.mjs.map → revert-workspace-RXWP2TEE.mjs.map} +0 -0
  306. /package/dist/lib/neutral/{scroll-into-view-B52C3PJO.mjs.map → scroll-into-view-HFV5EGYZ.mjs.map} +0 -0
  307. /package/dist/lib/neutral/{set-layout-mode-RPCCPQRB.mjs.map → set-layout-mode-XAGSZZGB.mjs.map} +0 -0
  308. /package/dist/lib/neutral/{update-complementary-7FZNB55J.mjs.map → update-complementary-K55I5EV5.mjs.map} +0 -0
  309. /package/dist/lib/neutral/{update-dialog-FNQTSSAP.mjs.map → update-dialog-Z3GEXMVV.mjs.map} +0 -0
  310. /package/dist/lib/neutral/{update-plank-size-3YW4NXEY.mjs.map → update-plank-size-BTESVV7N.mjs.map} +0 -0
  311. /package/dist/lib/neutral/{update-popover-G2VUD7E6.mjs.map → update-popover-QEVDSZSH.mjs.map} +0 -0
  312. /package/dist/lib/neutral/{update-sidebar-KRHPUHUB.mjs.map → update-sidebar-VSRCN47U.mjs.map} +0 -0
  313. /package/dist/types/src/{components → containers}/DeckSettings/index.d.ts +0 -0
  314. /package/src/{components → containers}/DeckSettings/index.ts +0 -0
@@ -1,82 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React, { useEffect, useMemo, useState } from 'react';
6
-
7
- import { TimeoutError } from '@dxos/errors';
8
- import { log } from '@dxos/log';
9
- import { type Node } from '@dxos/plugin-graph';
10
- import { ErrorFallback, type ErrorFallbackProps, useTranslation } from '@dxos/react-ui';
11
- import { descriptionMessage, mx } from '@dxos/ui-theme';
12
-
13
- import { meta } from '#meta';
14
-
15
- import { PlankHeading, type PlankHeadingProps } from './PlankHeading';
16
- import { PlankLoading } from './PlankLoading';
17
-
18
- export const PlankError = ({
19
- id,
20
- part,
21
- node,
22
- error: errorProp,
23
- }: {
24
- id: string;
25
- part: PlankHeadingProps['part'];
26
- node?: Node.Node;
27
- error?: Error;
28
- }) => {
29
- const [timedOut, setTimedOut] = useState(false);
30
- useEffect(() => {
31
- const timer = setTimeout(() => setTimedOut(true), 5_000);
32
- return () => clearTimeout(timer);
33
- }, []);
34
-
35
- const error = useMemo(() => {
36
- if (timedOut) {
37
- return new TimeoutError({ message: 'Timeout loading content' });
38
- }
39
-
40
- return errorProp;
41
- }, [timedOut, errorProp]);
42
-
43
- return (
44
- <>
45
- <PlankHeading id={id} part={part} node={node} pending={!timedOut} />
46
- {timedOut ? <PlankErrorFallback error={error} /> : <PlankLoading />}
47
- </>
48
- );
49
- };
50
-
51
- /**
52
- * User facing error fallback.
53
- */
54
- export const PlankErrorFallback = ({ error }: ErrorFallbackProps) => {
55
- const { t } = useTranslation(meta.id);
56
-
57
- useEffect(() => {
58
- if (error) {
59
- log.error('plank error', { error });
60
- }
61
- }, [error]);
62
-
63
- if (process.env.NODE_ENV === 'development') {
64
- return <ErrorFallback title='Plank Error' error={error} />;
65
- } else {
66
- const errorString = error?.toString() ?? '';
67
-
68
- return (
69
- <div
70
- role='alert'
71
- data-testid='plank-content-error'
72
- className='dx-attention-surface overflow-y-auto p-8 grid place-items-center'
73
- >
74
- <div className='flex flex-col items-center gap-2'>
75
- <p className={mx(descriptionMessage, 'break-all rounded-md p-4')}>
76
- {error ? errorString : t('error-fallback.message')}
77
- </p>
78
- </div>
79
- </div>
80
- );
81
- }
82
- };
@@ -1,237 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React, { Fragment, type MouseEvent, memo, useCallback, useEffect, useMemo } from 'react';
6
-
7
- import { Surface } from '@dxos/app-framework/ui';
8
- import { AppSurface } from '@dxos/app-toolkit/ui';
9
- import { Graph, type Node, useActionRunner } from '@dxos/plugin-graph';
10
- import { Icon, IconButton, Popover, toLocalizedString, useTranslation } from '@dxos/react-ui';
11
- import { getLinkedVariant } from '@dxos/react-ui-attention';
12
- import { StackItem, type StackItemSigilAction } from '@dxos/react-ui-stack';
13
- import { TextTooltip } from '@dxos/react-ui-text-tooltip';
14
- import { hoverableControls, hoverableFocusedWithinControls, iconSize } from '@dxos/ui-theme';
15
-
16
- import { useBreakpoints } from '#hooks';
17
- import { meta } from '#meta';
18
- import { DeckOperation } from '#types';
19
- import { type LayoutMode, PLANK_COMPANION_TYPE, type ResolvedPart } from '#types';
20
-
21
- import { PlankCompanionControls, PlankControls } from './PlankControls';
22
- import { usePlankContext } from './PlankRoot';
23
-
24
- const MAX_COMPANIONS = 5;
25
-
26
- export type PlankHeadingProps = {
27
- id: string;
28
- part: ResolvedPart;
29
- layoutMode?: LayoutMode;
30
- node?: Node.Node;
31
- deckEnabled?: boolean;
32
- canIncrementStart?: boolean;
33
- canIncrementEnd?: boolean;
34
- popoverAnchorId?: string;
35
- primaryId?: string;
36
- pending?: boolean;
37
- companioned?: 'primary' | 'companion';
38
- companions?: Node.Node[];
39
- actions?: StackItemSigilAction[];
40
- debug?: boolean;
41
- };
42
-
43
- export const PlankHeading = memo(
44
- ({
45
- id,
46
- part,
47
- node,
48
- deckEnabled,
49
- canIncrementStart,
50
- canIncrementEnd,
51
- popoverAnchorId,
52
- primaryId,
53
- pending,
54
- companioned,
55
- companions,
56
- layoutMode,
57
- actions = [],
58
- debug = false,
59
- }: PlankHeadingProps) => {
60
- const { t } = useTranslation(meta.id);
61
- const { graph, onAdjust, onUpdateCompanion } = usePlankContext('PlankHeading');
62
- const runAction = useActionRunner();
63
- const breakpoint = useBreakpoints();
64
- const icon = node?.properties?.icon ?? 'ph--circle-dashed--regular';
65
- const label = pending
66
- ? t('pending.heading')
67
- : toLocalizedString(node?.properties?.label ?? ['plank-heading-fallback.label', { ns: meta.id }], t);
68
-
69
- const isCompanionNode = node?.type === PLANK_COMPANION_TYPE;
70
-
71
- useEffect(() => {
72
- const frame = requestAnimationFrame(() => {
73
- // Load actions for the node.
74
- if (node) {
75
- void Graph.expand(graph, node.id, 'child');
76
- }
77
- });
78
-
79
- return () => cancelAnimationFrame(frame);
80
- }, [node]);
81
-
82
- const attendableId = primaryId ?? id;
83
- const capabilities = useMemo(
84
- () => ({
85
- deck: deckEnabled ?? true,
86
- solo: breakpoint !== 'mobile' && (part === 'solo' || part === 'multi'),
87
- incrementStart: canIncrementStart,
88
- incrementEnd: canIncrementEnd,
89
- fullscreen: !isCompanionNode,
90
- companion: layoutMode !== 'multi' && !isCompanionNode && companions && companions.length > 0,
91
- }),
92
- [breakpoint, part, companions, canIncrementStart, canIncrementEnd, isCompanionNode, deckEnabled, layoutMode],
93
- );
94
-
95
- const variant = isCompanionNode ? getLinkedVariant(id) : undefined;
96
- const sigilActions = useMemo(() => {
97
- if (!node) {
98
- return undefined;
99
- } else if (variant) {
100
- return [];
101
- } else {
102
- return [
103
- actions,
104
- Graph.getActions(graph, node.id).filter((action) =>
105
- ['list-item', 'list-item-primary', 'heading-list-item'].includes(action.properties.disposition),
106
- ),
107
- ].filter((a) => a.length > 0);
108
- }
109
- }, [actions, node, variant, graph]);
110
-
111
- const handleAction = useCallback(
112
- (action: StackItemSigilAction) => {
113
- if (typeof action.data === 'function') {
114
- void runAction(action as Node.Action, { parent: node, caller: meta.id });
115
- }
116
- },
117
- [node, runAction],
118
- );
119
-
120
- const handlePlankAction = useCallback(
121
- (eventType: DeckOperation.PartAdjustment) => {
122
- onAdjust?.(id, eventType);
123
- },
124
- [onAdjust, id],
125
- );
126
-
127
- const ActionRoot = node && popoverAnchorId === `${meta.id}:${node.id}` ? Popover.Anchor : Fragment;
128
-
129
- const handleTabClick = useCallback(
130
- (event: MouseEvent) => {
131
- const target = (event.target as HTMLElement).closest('[data-id]') as HTMLElement | null;
132
- const tabId = target?.dataset?.id;
133
- if (tabId) {
134
- onUpdateCompanion?.(tabId);
135
- }
136
- },
137
- [onUpdateCompanion],
138
- );
139
-
140
- return (
141
- <StackItem.Heading
142
- data-tauri-drag-region
143
- data-plank-heading
144
- style={iconSize(5)}
145
- classNames={[
146
- 'py-1 items-stretch gap-1 sticky left-12 dx-app-drag min-w-0 dx-contain-layout dx-density-lg',
147
- part === 'solo'
148
- ? 'ps-[calc(env(safe-area-inset-left)+.25rem)] pe-[calc(env(safe-area-inset-right)+.25rem)]'
149
- : 'px-1',
150
- ...(layoutMode === 'solo--fullscreen'
151
- ? [
152
- hoverableControls,
153
- hoverableFocusedWithinControls,
154
- '*:transition-opacity *:opacity-(--controls-opacity) bg-transparent',
155
- 'border-transparent transition-[background-color,border-color]',
156
- 'hover-hover:hover:bg-header-surface focus-within:bg-header-surface',
157
- 'hover-hover:hover:border-subdued-separator focus-within:border-subdued-separator',
158
- ]
159
- : []),
160
- ]}
161
- >
162
- {companions && isCompanionNode ? (
163
- /* TODO(thure): IMPORTANT: This is a tablist; it should be implemented as such. */
164
- <div data-tauri-drag-region className='flex-1 min-w-0 overflow-x-auto scrollbar-none flex gap-1'>
165
- {companions.map(({ id, properties: { icon, label } }) => (
166
- <IconButton
167
- key={id}
168
- data-id={id}
169
- icon={icon}
170
- iconOnly={companions.length > MAX_COMPANIONS && node?.id !== id}
171
- label={toLocalizedString(label, t)}
172
- variant={node?.id === id ? 'primary' : 'ghost'}
173
- onClick={handleTabClick}
174
- />
175
- ))}
176
- </div>
177
- ) : (
178
- <>
179
- <ActionRoot>
180
- {node && sigilActions ? (
181
- <StackItem.Sigil
182
- icon={icon}
183
- related={part === 'complementary'}
184
- attendableId={attendableId}
185
- triggerLabel={t('actions-menu.label')}
186
- actions={sigilActions}
187
- onAction={handleAction}
188
- >
189
- <Surface.Surface
190
- type={AppSurface.MenuFooter}
191
- data={{ subject: node.data } satisfies AppSurface.MenuFooterData}
192
- />
193
- </StackItem.Sigil>
194
- ) : (
195
- <StackItem.SigilButton>
196
- <span className='sr-only'>{label}</span>
197
- <Icon icon={icon} />
198
- </StackItem.SigilButton>
199
- )}
200
- </ActionRoot>
201
- <TextTooltip text={label} onlyWhenTruncating>
202
- <StackItem.HeadingLabel
203
- data-tauri-drag-region
204
- attendableId={attendableId}
205
- related={part === 'complementary'}
206
- {...(pending && { classNames: 'text-description' })}
207
- >
208
- {label}
209
- </StackItem.HeadingLabel>
210
- </TextTooltip>
211
- </>
212
- )}
213
- {debug && (
214
- <div className='flex items-center text-sm text-info-text'>
215
- {layoutMode}:{part}:{companioned}
216
- </div>
217
- )}
218
- {node && part !== 'complementary' && (
219
- <Surface.Surface
220
- type={AppSurface.NavbarEnd}
221
- data={{ subject: node.data } satisfies AppSurface.NavbarEndData}
222
- />
223
- )}
224
- {companioned === 'companion' ? (
225
- <PlankCompanionControls primary={primaryId} />
226
- ) : (
227
- <PlankControls
228
- capabilities={capabilities}
229
- layoutMode={layoutMode}
230
- close={part === 'complementary' ? 'minify-end' : true}
231
- onClick={handlePlankAction}
232
- />
233
- )}
234
- </StackItem.Heading>
235
- );
236
- },
237
- );
@@ -1,10 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- // TODO(burdon): Show skeleton: https://github.com/dxos/dxos/issues/8259
8
- export const PlankLoading = () => {
9
- return <div className='grid place-items-center dx-attention-surface' />;
10
- };
@@ -1,49 +0,0 @@
1
- //
2
- // Copyright 2026 DXOS.org
3
- //
4
-
5
- import { createContext } from '@radix-ui/react-context';
6
- import React, { PropsWithChildren } from 'react';
7
-
8
- import { type Graph } from '@dxos/plugin-graph';
9
-
10
- import { type DeckOperation } from '#types';
11
- import { type LayoutMode, type PlankSizing, type ResolvedPart, type Settings } from '#types';
12
-
13
- const PLANK_NAME = 'Plank';
14
-
15
- export type PlankContextValue = {
16
- /** The application graph. */
17
- graph: Graph.ExpandableGraph;
18
- /** Which part of the layout this plank occupies. */
19
- part: ResolvedPart;
20
- /** Current layout mode. */
21
- layoutMode: LayoutMode;
22
- /** Deck settings. */
23
- settings?: Settings.Settings;
24
- /** Popover anchor ID for heading menus. */
25
- popoverAnchorId?: string;
26
- /** ID of plank that should be scrolled into view. */
27
- scrollIntoView?: string;
28
- /** Persisted plank sizes keyed by plank ID. */
29
- plankSizing?: PlankSizing;
30
- /** Callback for plank adjustments (close, solo, increment, companion). */
31
- onAdjust?: (id: string, type: DeckOperation.PartAdjustment) => void;
32
- /** Callback for plank resize. */
33
- onResize?: (id: string, size: number) => void;
34
- /** Callback to clear scroll-into-view state. */
35
- onScrollIntoView?: (id?: string) => void;
36
- /** Callback to update the companion. */
37
- onUpdateCompanion?: (companion: string | null) => void;
38
- };
39
-
40
- export const [PlankProvider, usePlankContext] = createContext<PlankContextValue>(PLANK_NAME);
41
-
42
- export type PlankRootProps = PropsWithChildren<PlankContextValue>;
43
-
44
- /**
45
- * Headless root that provides plank context.
46
- */
47
- export const PlankRoot = ({ children, ...context }: PlankRootProps) => {
48
- return <PlankProvider {...context}>{children}</PlankProvider>;
49
- };
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export * from './Plank';
6
- export * from './PlankError';
7
- export * from './PlankLoading';