@dxos/plugin-simple-layout 0.0.0 → 0.8.4-main.69d29f4

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 (154) hide show
  1. package/dist/lib/browser/chunk-CLPGTNWJ.mjs +29 -0
  2. package/dist/lib/browser/chunk-CLPGTNWJ.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-FK4M7GJV.mjs +613 -0
  4. package/dist/lib/browser/chunk-FK4M7GJV.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +94 -0
  6. package/dist/lib/browser/index.mjs.map +7 -0
  7. package/dist/lib/browser/meta.json +1 -0
  8. package/dist/lib/browser/operation-resolver-LTB63NKP.mjs +168 -0
  9. package/dist/lib/browser/operation-resolver-LTB63NKP.mjs.map +7 -0
  10. package/dist/lib/browser/react-root-6ARAPH3O.mjs +21 -0
  11. package/dist/lib/browser/react-root-6ARAPH3O.mjs.map +7 -0
  12. package/dist/lib/browser/react-surface-SO7B23GS.mjs +39 -0
  13. package/dist/lib/browser/react-surface-SO7B23GS.mjs.map +7 -0
  14. package/dist/lib/browser/spotlight-dismiss-VSNOPETH.mjs +66 -0
  15. package/dist/lib/browser/spotlight-dismiss-VSNOPETH.mjs.map +7 -0
  16. package/dist/lib/browser/state-H4IGICBB.mjs +45 -0
  17. package/dist/lib/browser/state-H4IGICBB.mjs.map +7 -0
  18. package/dist/lib/browser/url-handler-7CFGTLNG.mjs +54 -0
  19. package/dist/lib/browser/url-handler-7CFGTLNG.mjs.map +7 -0
  20. package/dist/lib/node-esm/chunk-EGFZAVBD.mjs +614 -0
  21. package/dist/lib/node-esm/chunk-EGFZAVBD.mjs.map +7 -0
  22. package/dist/lib/node-esm/chunk-MUVVYBUE.mjs +31 -0
  23. package/dist/lib/node-esm/chunk-MUVVYBUE.mjs.map +7 -0
  24. package/dist/lib/node-esm/index.mjs +95 -0
  25. package/dist/lib/node-esm/index.mjs.map +7 -0
  26. package/dist/lib/node-esm/meta.json +1 -0
  27. package/dist/lib/node-esm/operation-resolver-7O6O7T4Q.mjs +169 -0
  28. package/dist/lib/node-esm/operation-resolver-7O6O7T4Q.mjs.map +7 -0
  29. package/dist/lib/node-esm/react-root-2CPA2ZUS.mjs +22 -0
  30. package/dist/lib/node-esm/react-root-2CPA2ZUS.mjs.map +7 -0
  31. package/dist/lib/node-esm/react-surface-FKAV56MO.mjs +40 -0
  32. package/dist/lib/node-esm/react-surface-FKAV56MO.mjs.map +7 -0
  33. package/dist/lib/node-esm/spotlight-dismiss-L5PCWIJG.mjs +68 -0
  34. package/dist/lib/node-esm/spotlight-dismiss-L5PCWIJG.mjs.map +7 -0
  35. package/dist/lib/node-esm/state-QIU2LMLT.mjs +46 -0
  36. package/dist/lib/node-esm/state-QIU2LMLT.mjs.map +7 -0
  37. package/dist/lib/node-esm/url-handler-4LYP3JM7.mjs +55 -0
  38. package/dist/lib/node-esm/url-handler-4LYP3JM7.mjs.map +7 -0
  39. package/dist/types/src/SimpleLayoutPlugin.d.ts +7 -0
  40. package/dist/types/src/SimpleLayoutPlugin.d.ts.map +1 -0
  41. package/dist/types/src/capabilities/index.d.ts +7 -0
  42. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  43. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  44. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  45. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  46. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  47. package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
  48. package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
  50. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
  51. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  52. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  53. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  54. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  55. package/dist/types/src/capabilities/spotlight-dismiss/index.d.ts +3 -0
  56. package/dist/types/src/capabilities/spotlight-dismiss/index.d.ts.map +1 -0
  57. package/dist/types/src/capabilities/spotlight-dismiss/spotlight-dismiss.d.ts +14 -0
  58. package/dist/types/src/capabilities/spotlight-dismiss/spotlight-dismiss.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/state/index.d.ts +13 -0
  60. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  61. package/dist/types/src/capabilities/state/state.d.ts +19 -0
  62. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/url-handler/index.d.ts +3 -0
  64. package/dist/types/src/capabilities/url-handler/index.d.ts.map +1 -0
  65. package/dist/types/src/capabilities/url-handler/url-handler.d.ts +10 -0
  66. package/dist/types/src/capabilities/url-handler/url-handler.d.ts.map +1 -0
  67. package/dist/types/src/components/ContentError.d.ts +5 -0
  68. package/dist/types/src/components/ContentError.d.ts.map +1 -0
  69. package/dist/types/src/components/ContentError.stories.d.ts +35 -0
  70. package/dist/types/src/components/ContentError.stories.d.ts.map +1 -0
  71. package/dist/types/src/components/ContentLoading.d.ts +3 -0
  72. package/dist/types/src/components/ContentLoading.d.ts.map +1 -0
  73. package/dist/types/src/components/ContentLoading.stories.d.ts +13 -0
  74. package/dist/types/src/components/ContentLoading.stories.d.ts.map +1 -0
  75. package/dist/types/src/components/Dialog/Dialog.d.ts +3 -0
  76. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
  77. package/dist/types/src/components/Dialog/index.d.ts +2 -0
  78. package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
  79. package/dist/types/src/components/Home/Home.d.ts +7 -0
  80. package/dist/types/src/components/Home/Home.d.ts.map +1 -0
  81. package/dist/types/src/components/Home/index.d.ts +2 -0
  82. package/dist/types/src/components/Home/index.d.ts.map +1 -0
  83. package/dist/types/src/components/Popover/Popover.d.ts +4 -0
  84. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -0
  85. package/dist/types/src/components/Popover/index.d.ts +2 -0
  86. package/dist/types/src/components/Popover/index.d.ts.map +1 -0
  87. package/dist/types/src/components/SimpleLayout/Banner.d.ts +8 -0
  88. package/dist/types/src/components/SimpleLayout/Banner.d.ts.map +1 -0
  89. package/dist/types/src/components/SimpleLayout/Main.d.ts +9 -0
  90. package/dist/types/src/components/SimpleLayout/Main.d.ts.map +1 -0
  91. package/dist/types/src/components/SimpleLayout/NavBar.d.ts +8 -0
  92. package/dist/types/src/components/SimpleLayout/NavBar.d.ts.map +1 -0
  93. package/dist/types/src/components/SimpleLayout/NavBar.stories.d.ts +39 -0
  94. package/dist/types/src/components/SimpleLayout/NavBar.stories.d.ts.map +1 -0
  95. package/dist/types/src/components/SimpleLayout/SimpleLayout.d.ts +3 -0
  96. package/dist/types/src/components/SimpleLayout/SimpleLayout.d.ts.map +1 -0
  97. package/dist/types/src/components/SimpleLayout/SimpleLayout.stories.d.ts +37 -0
  98. package/dist/types/src/components/SimpleLayout/SimpleLayout.stories.d.ts.map +1 -0
  99. package/dist/types/src/components/SimpleLayout/index.d.ts +2 -0
  100. package/dist/types/src/components/SimpleLayout/index.d.ts.map +1 -0
  101. package/dist/types/src/components/Workspace/Workspace.d.ts +9 -0
  102. package/dist/types/src/components/Workspace/Workspace.d.ts.map +1 -0
  103. package/dist/types/src/components/Workspace/index.d.ts +2 -0
  104. package/dist/types/src/components/Workspace/index.d.ts.map +1 -0
  105. package/dist/types/src/components/hooks.d.ts +5 -0
  106. package/dist/types/src/components/hooks.d.ts.map +1 -0
  107. package/dist/types/src/components/index.d.ts +6 -0
  108. package/dist/types/src/components/index.d.ts.map +1 -0
  109. package/dist/types/src/hooks/index.d.ts +2 -0
  110. package/dist/types/src/hooks/index.d.ts.map +1 -0
  111. package/dist/types/src/hooks/useSimpleLayoutState.d.ts +7 -0
  112. package/dist/types/src/hooks/useSimpleLayoutState.d.ts.map +1 -0
  113. package/dist/types/src/index.d.ts +2 -0
  114. package/dist/types/src/index.d.ts.map +1 -0
  115. package/dist/types/src/meta.d.ts +3 -0
  116. package/dist/types/src/meta.d.ts.map +1 -0
  117. package/dist/types/src/translations.d.ts +20 -0
  118. package/dist/types/src/translations.d.ts.map +1 -0
  119. package/dist/types/src/types/capabilities.d.ts +31 -0
  120. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  121. package/dist/types/src/types/events.d.ts +6 -0
  122. package/dist/types/src/types/events.d.ts.map +1 -0
  123. package/dist/types/src/types/index.d.ts +3 -0
  124. package/dist/types/src/types/index.d.ts.map +1 -0
  125. package/dist/types/tsconfig.tsbuildinfo +1 -0
  126. package/package.json +29 -24
  127. package/src/SimpleLayoutPlugin.ts +20 -4
  128. package/src/capabilities/index.ts +3 -0
  129. package/src/capabilities/operation-resolver/operation-resolver.ts +82 -39
  130. package/src/capabilities/react-surface/index.ts +7 -0
  131. package/src/capabilities/react-surface/react-surface.tsx +40 -0
  132. package/src/capabilities/spotlight-dismiss/index.ts +7 -0
  133. package/src/{hooks/useSpotlightDismiss.ts → capabilities/spotlight-dismiss/spotlight-dismiss.ts} +31 -40
  134. package/src/capabilities/state/state.tsx +21 -32
  135. package/src/capabilities/url-handler/index.ts +7 -0
  136. package/src/capabilities/url-handler/url-handler.ts +80 -0
  137. package/src/components/Dialog/Dialog.tsx +14 -14
  138. package/src/components/Home/Home.tsx +53 -61
  139. package/src/components/Popover/Popover.tsx +45 -27
  140. package/src/components/SimpleLayout/Banner.tsx +50 -28
  141. package/src/components/SimpleLayout/Main.tsx +40 -44
  142. package/src/components/SimpleLayout/NavBar.tsx +18 -41
  143. package/src/components/SimpleLayout/SimpleLayout.stories.tsx +2 -9
  144. package/src/components/SimpleLayout/SimpleLayout.tsx +0 -1
  145. package/src/components/Workspace/Workspace.tsx +115 -0
  146. package/src/components/Workspace/index.ts +5 -0
  147. package/src/components/hooks.ts +30 -0
  148. package/src/components/index.ts +1 -0
  149. package/src/hooks/index.ts +1 -1
  150. package/src/hooks/useSimpleLayoutState.ts +30 -0
  151. package/src/types/capabilities.ts +8 -1
  152. package/src/types/events.ts +14 -0
  153. package/src/types/index.ts +1 -0
  154. /package/src/components/SimpleLayout/{NavBarstories.tsx → NavBar.stories.tsx} +0 -0
@@ -0,0 +1,22 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ SimpleLayout
4
+ } from "./chunk-EGFZAVBD.mjs";
5
+ import {
6
+ meta
7
+ } from "./chunk-MUVVYBUE.mjs";
8
+
9
+ // src/capabilities/react-root/react-root.tsx
10
+ import * as Effect from "effect/Effect";
11
+ import React from "react";
12
+ import { Capability, Common } from "@dxos/app-framework";
13
+ var react_root_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Common.Capability.ReactRoot, {
14
+ id: meta.id,
15
+ root: () => {
16
+ return /* @__PURE__ */ React.createElement(SimpleLayout, null);
17
+ }
18
+ })));
19
+ export {
20
+ react_root_default as default
21
+ };
22
+ //# sourceMappingURL=react-root-2CPA2ZUS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-root/react-root.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capability, Common } from '@dxos/app-framework';\n\nimport { SimpleLayout } from '../../components';\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Common.Capability.ReactRoot, {\n id: meta.id,\n root: () => {\n return <SimpleLayout />;\n },\n }),\n ),\n);\n"],
5
+ "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,YAAYC,cAAc;AAKnC,IAAA,qBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,OAAOJ,WAAWK,WAAW;EAClDC,IAAIC,KAAKD;EACTE,MAAM,MAAA;AACJ,WAAO,sBAAA,cAACC,cAAAA,IAAAA;EACV;AACF,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "React", "Capability", "Common", "Capability", "makeModule", "succeed", "contributes", "Common", "ReactRoot", "id", "meta", "root", "SimpleLayout"]
7
+ }
@@ -0,0 +1,40 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Home,
4
+ Workspace
5
+ } from "./chunk-EGFZAVBD.mjs";
6
+ import {
7
+ meta
8
+ } from "./chunk-MUVVYBUE.mjs";
9
+
10
+ // src/capabilities/react-surface/react-surface.tsx
11
+ import * as Effect from "effect/Effect";
12
+ import React from "react";
13
+ import { Capability, Common } from "@dxos/app-framework";
14
+ import { Node } from "@dxos/plugin-graph";
15
+ var ALLOWED_DISPOSITIONS = [
16
+ "workspace",
17
+ "user-account",
18
+ "pin-end"
19
+ ];
20
+ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Common.Capability.ReactSurface, [
21
+ Common.createSurface({
22
+ id: `${meta.id}/home`,
23
+ role: "article",
24
+ filter: (data) => data.attendableId === Node.RootId,
25
+ component: () => /* @__PURE__ */ React.createElement(Home, null)
26
+ }),
27
+ Common.createSurface({
28
+ id: `${meta.id}/workspace-article`,
29
+ role: "article",
30
+ position: "fallback",
31
+ filter: (data) => ALLOWED_DISPOSITIONS.includes(data.properties?.disposition),
32
+ component: ({ data }) => /* @__PURE__ */ React.createElement(Workspace, {
33
+ id: data.attendableId
34
+ })
35
+ })
36
+ ])));
37
+ export {
38
+ react_surface_default as default
39
+ };
40
+ //# sourceMappingURL=react-surface-FKAV56MO.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { Node } from '@dxos/plugin-graph';\n\nimport { Home, Workspace } from '../../components';\nimport { meta } from '../../meta';\n\ntype SurfaceData = {\n attendableId: string;\n properties: Record<string, any>;\n};\n\nconst ALLOWED_DISPOSITIONS = ['workspace', 'user-account', 'pin-end'];\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Common.Capability.ReactSurface, [\n Common.createSurface({\n id: `${meta.id}/home`,\n role: 'article',\n filter: (data): data is SurfaceData => data.attendableId === Node.RootId,\n component: () => <Home />,\n }),\n Common.createSurface({\n id: `${meta.id}/workspace-article`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is SurfaceData =>\n ALLOWED_DISPOSITIONS.includes((data.properties as Record<string, any>)?.disposition),\n component: ({ data }) => <Workspace id={data.attendableId} />,\n }),\n ]),\n ),\n);\n"],
5
+ "mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,YAAYC,cAAc;AACnC,SAASC,YAAY;AAUrB,IAAMC,uBAAuB;EAAC;EAAa;EAAgB;;AAE3D,IAAA,wBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,OAAOJ,WAAWK,cAAc;EACrDD,OAAOE,cAAc;IACnBC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SAA8BA,KAAKC,iBAAiBC,KAAKC;IAClEC,WAAW,MAAM,sBAAA,cAACC,MAAAA,IAAAA;EACpB,CAAA;EACAZ,OAAOE,cAAc;IACnBC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNQ,UAAU;IACVP,QAAQ,CAACC,SACPZ,qBAAqBmB,SAAUP,KAAKQ,YAAoCC,WAAAA;IAC1EL,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACU,WAAAA;MAAUd,IAAII,KAAKC;;EAC/C,CAAA;CACD,CAAA,CAAA;",
6
+ "names": ["Effect", "React", "Capability", "Common", "Node", "ALLOWED_DISPOSITIONS", "Capability", "makeModule", "succeed", "contributes", "Common", "ReactSurface", "createSurface", "id", "meta", "role", "filter", "data", "attendableId", "Node", "RootId", "component", "Home", "position", "includes", "properties", "disposition", "Workspace"]
7
+ }
@@ -0,0 +1,68 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/capabilities/spotlight-dismiss/spotlight-dismiss.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability, Common } from "@dxos/app-framework";
6
+ import { log } from "@dxos/log";
7
+ import { isTauri } from "@dxos/util";
8
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-simple-layout/src/capabilities/spotlight-dismiss/spotlight-dismiss.ts";
9
+ var getTauriWindow = () => {
10
+ const tauri = globalThis.__TAURI__;
11
+ return tauri?.window;
12
+ };
13
+ var getTauriCore = () => {
14
+ const tauri = globalThis.__TAURI__;
15
+ return tauri?.core;
16
+ };
17
+ var spotlight_dismiss_default = Capability.makeModule(({ isPopover = false } = {}) => Effect.promise(async () => {
18
+ if (!isPopover || !isTauri()) {
19
+ return [];
20
+ }
21
+ let focusCleanup;
22
+ try {
23
+ const tauriWindow = getTauriWindow();
24
+ const tauriCore = getTauriCore();
25
+ if (tauriWindow && tauriCore) {
26
+ const win = tauriWindow.getCurrentWindow();
27
+ focusCleanup = await win.onFocusChanged(async ({ payload }) => {
28
+ if (!payload) {
29
+ await tauriCore.invoke("hide_spotlight");
30
+ }
31
+ });
32
+ }
33
+ } catch (err) {
34
+ log.catch(err, void 0, {
35
+ F: __dxlog_file,
36
+ L: 60,
37
+ S: void 0,
38
+ C: (f, a) => f(...a)
39
+ });
40
+ }
41
+ const handleKeyDown = async (event) => {
42
+ if (event.key === "Escape") {
43
+ event.preventDefault();
44
+ try {
45
+ const tauriCore = getTauriCore();
46
+ if (tauriCore) {
47
+ await tauriCore.invoke("hide_spotlight");
48
+ }
49
+ } catch (err) {
50
+ log.catch(err, void 0, {
51
+ F: __dxlog_file,
52
+ L: 73,
53
+ S: void 0,
54
+ C: (f, a) => f(...a)
55
+ });
56
+ }
57
+ }
58
+ };
59
+ window.addEventListener("keydown", handleKeyDown);
60
+ return Capability.contributes(Common.Capability.Null, null, () => Effect.sync(() => {
61
+ focusCleanup?.();
62
+ window.removeEventListener("keydown", handleKeyDown);
63
+ }));
64
+ }));
65
+ export {
66
+ spotlight_dismiss_default as default
67
+ };
68
+ //# sourceMappingURL=spotlight-dismiss-L5PCWIJG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/spotlight-dismiss/spotlight-dismiss.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// Based on the frontend-driven dismiss pattern from:\n// https://github.com/Jedliu/tauri-template-demo\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { isTauri } from '@dxos/util';\n\n/**\n * Get the Tauri window API from the global object.\n */\nconst getTauriWindow = (): any => {\n const tauri = (globalThis as any).__TAURI__;\n return tauri?.window;\n};\n\n/**\n * Get the Tauri core API (invoke) from the global object.\n */\nconst getTauriCore = (): any => {\n const tauri = (globalThis as any).__TAURI__;\n return tauri?.core;\n};\n\nexport type SpotlightDismissOptions = {\n /** Whether running in popover window context. */\n isPopover?: boolean;\n};\n\n/**\n * Capability that sets up spotlight panel dismiss behavior.\n * When running in Tauri popover mode, listens for focus loss and Escape key\n * to dismiss the spotlight panel. Runs at startup before React renders.\n */\nexport default Capability.makeModule(({ isPopover = false }: SpotlightDismissOptions = {}) =>\n Effect.promise(async () => {\n if (!isPopover || !isTauri()) {\n return [];\n }\n\n // Set up focus listener.\n let focusCleanup: (() => void) | undefined;\n try {\n const tauriWindow = getTauriWindow();\n const tauriCore = getTauriCore();\n if (tauriWindow && tauriCore) {\n const win = tauriWindow.getCurrentWindow();\n focusCleanup = await win.onFocusChanged(async ({ payload }: { payload: boolean }) => {\n if (!payload) {\n await tauriCore.invoke('hide_spotlight');\n }\n });\n }\n } catch (err) {\n log.catch(err);\n }\n\n // Set up Escape key listener.\n const handleKeyDown = async (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n try {\n const tauriCore = getTauriCore();\n if (tauriCore) {\n await tauriCore.invoke('hide_spotlight');\n }\n } catch (err) {\n log.catch(err);\n }\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n\n return Capability.contributes(Common.Capability.Null, null, () =>\n Effect.sync(() => {\n focusCleanup?.();\n window.removeEventListener('keydown', handleKeyDown);\n }),\n );\n }),\n);\n"],
5
+ "mappings": ";;;AAOA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AACnC,SAASC,WAAW;AACpB,SAASC,eAAe;;AAKxB,IAAMC,iBAAiB,MAAA;AACrB,QAAMC,QAASC,WAAmBC;AAClC,SAAOF,OAAOG;AAChB;AAKA,IAAMC,eAAe,MAAA;AACnB,QAAMJ,QAASC,WAAmBC;AAClC,SAAOF,OAAOK;AAChB;AAYA,IAAA,4BAAeV,WAAWW,WAAW,CAAC,EAAEC,YAAY,MAAK,IAA8B,CAAC,MAC/EC,eAAQ,YAAA;AACb,MAAI,CAACD,aAAa,CAACT,QAAAA,GAAW;AAC5B,WAAO,CAAA;EACT;AAGA,MAAIW;AACJ,MAAI;AACF,UAAMC,cAAcX,eAAAA;AACpB,UAAMY,YAAYP,aAAAA;AAClB,QAAIM,eAAeC,WAAW;AAC5B,YAAMC,MAAMF,YAAYG,iBAAgB;AACxCJ,qBAAe,MAAMG,IAAIE,eAAe,OAAO,EAAEC,QAAO,MAAwB;AAC9E,YAAI,CAACA,SAAS;AACZ,gBAAMJ,UAAUK,OAAO,gBAAA;QACzB;MACF,CAAA;IACF;EACF,SAASC,KAAK;AACZpB,QAAIqB,MAAMD,KAAAA,QAAAA;;;;;;EACZ;AAGA,QAAME,gBAAgB,OAAOC,UAAAA;AAC3B,QAAIA,MAAMC,QAAQ,UAAU;AAC1BD,YAAME,eAAc;AACpB,UAAI;AACF,cAAMX,YAAYP,aAAAA;AAClB,YAAIO,WAAW;AACb,gBAAMA,UAAUK,OAAO,gBAAA;QACzB;MACF,SAASC,KAAK;AACZpB,YAAIqB,MAAMD,KAAAA,QAAAA;;;;;;MACZ;IACF;EACF;AACAd,SAAOoB,iBAAiB,WAAWJ,aAAAA;AAEnC,SAAOxB,WAAW6B,YAAY5B,OAAOD,WAAW8B,MAAM,MAAM,MACnDC,YAAK,MAAA;AACVjB,mBAAAA;AACAN,WAAOwB,oBAAoB,WAAWR,aAAAA;EACxC,CAAA,CAAA;AAEJ,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "Common", "log", "isTauri", "getTauriWindow", "tauri", "globalThis", "__TAURI__", "window", "getTauriCore", "core", "makeModule", "isPopover", "promise", "focusCleanup", "tauriWindow", "tauriCore", "win", "getCurrentWindow", "onFocusChanged", "payload", "invoke", "err", "catch", "handleKeyDown", "event", "key", "preventDefault", "addEventListener", "contributes", "Null", "sync", "removeEventListener"]
7
+ }
@@ -0,0 +1,46 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ SimpleLayoutState
4
+ } from "./chunk-MUVVYBUE.mjs";
5
+
6
+ // src/capabilities/state/state.tsx
7
+ import { Atom } from "@effect-atom/atom-react";
8
+ import * as Effect from "effect/Effect";
9
+ import { Capability, Common } from "@dxos/app-framework";
10
+ import { Node } from "@dxos/plugin-graph";
11
+ var defaultState = {
12
+ dialogOpen: false,
13
+ workspace: Node.RootId,
14
+ previousWorkspace: Node.RootId,
15
+ history: [],
16
+ isPopover: false
17
+ };
18
+ var state_default = Capability.makeModule(({ initialState } = {}) => Effect.sync(() => {
19
+ const stateAtom = Atom.make({
20
+ ...defaultState,
21
+ ...initialState
22
+ });
23
+ const layoutAtom = Atom.make((get) => {
24
+ const state = get(stateAtom);
25
+ return {
26
+ mode: "simple",
27
+ dialogOpen: state.dialogOpen,
28
+ sidebarOpen: false,
29
+ complementarySidebarOpen: false,
30
+ workspace: state.workspace,
31
+ active: state.active ? [
32
+ state.active
33
+ ] : [],
34
+ inactive: [],
35
+ scrollIntoView: void 0
36
+ };
37
+ });
38
+ return [
39
+ Capability.contributes(SimpleLayoutState, stateAtom),
40
+ Capability.contributes(Common.Capability.Layout, layoutAtom)
41
+ ];
42
+ }));
43
+ export {
44
+ state_default as default
45
+ };
46
+ //# sourceMappingURL=state-QIU2LMLT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/state/state.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { Node } from '@dxos/plugin-graph';\n\nimport { type SimpleLayoutState } from '../../types';\nimport { SimpleLayoutState as SimpleLayoutStateCapability } from '../../types';\n\nconst defaultState: SimpleLayoutState = {\n dialogOpen: false,\n workspace: Node.RootId,\n previousWorkspace: Node.RootId,\n history: [],\n isPopover: false,\n};\n\nexport type SimpleLayoutStateOptions = {\n initialState?: Partial<SimpleLayoutState>;\n};\n\nexport default Capability.makeModule(({ initialState }: SimpleLayoutStateOptions = {}) =>\n Effect.sync(() => {\n const stateAtom = Atom.make<SimpleLayoutState>({ ...defaultState, ...initialState });\n\n const layoutAtom = Atom.make((get): Common.Capability.Layout => {\n const state = get(stateAtom);\n return {\n mode: 'simple',\n dialogOpen: state.dialogOpen,\n sidebarOpen: false,\n complementarySidebarOpen: false,\n workspace: state.workspace,\n active: state.active ? [state.active] : [],\n inactive: [],\n scrollIntoView: undefined,\n };\n });\n\n return [\n Capability.contributes(SimpleLayoutStateCapability, stateAtom),\n Capability.contributes(Common.Capability.Layout, layoutAtom),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,YAAYC,cAAc;AACnC,SAASC,YAAY;AAKrB,IAAMC,eAAkC;EACtCC,YAAY;EACZC,WAAWC,KAAKC;EAChBC,mBAAmBF,KAAKC;EACxBE,SAAS,CAAA;EACTC,WAAW;AACb;AAMA,IAAA,gBAAeC,WAAWC,WAAW,CAAC,EAAEC,aAAY,IAA+B,CAAC,MAC3EC,YAAK,MAAA;AACV,QAAMC,YAAYC,KAAKC,KAAwB;IAAE,GAAGd;IAAc,GAAGU;EAAa,CAAA;AAElF,QAAMK,aAAaF,KAAKC,KAAK,CAACE,QAAAA;AAC5B,UAAMC,QAAQD,IAAIJ,SAAAA;AAClB,WAAO;MACLM,MAAM;MACNjB,YAAYgB,MAAMhB;MAClBkB,aAAa;MACbC,0BAA0B;MAC1BlB,WAAWe,MAAMf;MACjBmB,QAAQJ,MAAMI,SAAS;QAACJ,MAAMI;UAAU,CAAA;MACxCC,UAAU,CAAA;MACVC,gBAAgBC;IAClB;EACF,CAAA;AAEA,SAAO;IACLhB,WAAWiB,YAAYC,mBAA6Bd,SAAAA;IACpDJ,WAAWiB,YAAYE,OAAOnB,WAAWoB,QAAQb,UAAAA;;AAErD,CAAA,CAAA;",
6
+ "names": ["Atom", "Effect", "Capability", "Common", "Node", "defaultState", "dialogOpen", "workspace", "Node", "RootId", "previousWorkspace", "history", "isPopover", "Capability", "makeModule", "initialState", "sync", "stateAtom", "Atom", "make", "layoutAtom", "get", "state", "mode", "sidebarOpen", "complementarySidebarOpen", "active", "inactive", "scrollIntoView", "undefined", "contributes", "SimpleLayoutStateCapability", "Common", "Layout"]
7
+ }
@@ -0,0 +1,55 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ SimpleLayoutState
4
+ } from "./chunk-MUVVYBUE.mjs";
5
+
6
+ // src/capabilities/url-handler/url-handler.ts
7
+ import * as Effect from "effect/Effect";
8
+ import { Capability, Common } from "@dxos/app-framework";
9
+ import { Node } from "@dxos/plugin-graph";
10
+ var url_handler_default = Capability.makeModule(Effect.fnUntraced(function* () {
11
+ const { invokeSync } = yield* Capability.get(Common.Capability.OperationInvoker);
12
+ const handleNavigation = () => {
13
+ const pathname = window.location.pathname;
14
+ const [_, nextWorkspace, nextActive] = pathname.split("/");
15
+ const targetWorkspace = !nextWorkspace || nextWorkspace === "root" ? Node.RootId : nextWorkspace;
16
+ invokeSync(Common.LayoutOperation.SwitchWorkspace, {
17
+ subject: targetWorkspace
18
+ });
19
+ if (nextActive) {
20
+ invokeSync(Common.LayoutOperation.Open, {
21
+ subject: [
22
+ nextActive
23
+ ]
24
+ });
25
+ }
26
+ };
27
+ yield* Effect.sync(() => handleNavigation());
28
+ window.addEventListener("popstate", handleNavigation);
29
+ let lastWorkspace;
30
+ let lastActive;
31
+ const unsubscribe = yield* Common.Capability.subscribeAtom(SimpleLayoutState, (state) => {
32
+ const { workspace, active } = state;
33
+ if (workspace !== lastWorkspace || active !== lastActive) {
34
+ lastWorkspace = workspace;
35
+ lastActive = active;
36
+ let path;
37
+ if (workspace === Node.RootId) {
38
+ path = active ? `/${Node.RootId}/${active}` : "/";
39
+ } else {
40
+ path = active ? `/${workspace}/${active}` : `/${workspace}`;
41
+ }
42
+ if (window.location.pathname !== path) {
43
+ history.pushState(null, "", `${path}${window.location.search}`);
44
+ }
45
+ }
46
+ });
47
+ return Capability.contributes(Common.Capability.Null, null, () => Effect.sync(() => {
48
+ window.removeEventListener("popstate", handleNavigation);
49
+ unsubscribe();
50
+ }));
51
+ }));
52
+ export {
53
+ url_handler_default as default
54
+ };
55
+ //# sourceMappingURL=url-handler-4LYP3JM7.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/url-handler/url-handler.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { Node } from '@dxos/plugin-graph';\n\nimport { type SimpleLayoutState, SimpleLayoutState as SimpleLayoutStateCapability } from '../../types';\n\n/**\n * URL handler for simple layout that syncs browser URL with layout state.\n * URL format: /{workspace} or /{workspace}/{active}\n * Root is represented as / or /root.\n */\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const { invokeSync } = yield* Capability.get(Common.Capability.OperationInvoker);\n\n /**\n * Handle navigation events (initial load and popstate).\n * Parses URL and updates state accordingly.\n */\n const handleNavigation = () => {\n const pathname = window.location.pathname;\n\n // Parse URL segments: /{workspace}/{active}\n const [_, nextWorkspace, nextActive] = pathname.split('/');\n\n // Determine target workspace (empty or 'root' means Node.RootId).\n const targetWorkspace = !nextWorkspace || nextWorkspace === 'root' ? Node.RootId : nextWorkspace;\n\n // Navigate via operations (they will update state accordingly).\n invokeSync(Common.LayoutOperation.SwitchWorkspace, { subject: targetWorkspace });\n if (nextActive) {\n invokeSync(Common.LayoutOperation.Open, { subject: [nextActive] });\n }\n };\n\n // Handle initial URL and listen for browser navigation.\n yield* Effect.sync(() => handleNavigation());\n window.addEventListener('popstate', handleNavigation);\n\n // Subscribe to state changes to update the URL.\n let lastWorkspace: string | undefined;\n let lastActive: string | undefined;\n const unsubscribe = yield* Common.Capability.subscribeAtom(\n SimpleLayoutStateCapability,\n (state: SimpleLayoutState) => {\n const { workspace, active } = state;\n\n // Only update URL if relevant state changed.\n if (workspace !== lastWorkspace || active !== lastActive) {\n lastWorkspace = workspace;\n lastActive = active;\n\n // Build path: root is represented as /, other workspaces as /{workspace}.\n let path: string;\n if (workspace === Node.RootId) {\n path = active ? `/${Node.RootId}/${active}` : '/';\n } else {\n path = active ? `/${workspace}/${active}` : `/${workspace}`;\n }\n\n if (window.location.pathname !== path) {\n history.pushState(null, '', `${path}${window.location.search}`);\n }\n }\n },\n );\n\n return Capability.contributes(Common.Capability.Null, null, () =>\n Effect.sync(() => {\n window.removeEventListener('popstate', handleNavigation);\n unsubscribe();\n }),\n );\n }),\n);\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AACnC,SAASC,YAAY;AASrB,IAAA,sBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAM,EAAEC,WAAU,IAAK,OAAOH,WAAWI,IAAIC,OAAOL,WAAWM,gBAAgB;AAM/E,QAAMC,mBAAmB,MAAA;AACvB,UAAMC,WAAWC,OAAOC,SAASF;AAGjC,UAAM,CAACG,GAAGC,eAAeC,UAAAA,IAAcL,SAASM,MAAM,GAAA;AAGtD,UAAMC,kBAAkB,CAACH,iBAAiBA,kBAAkB,SAASI,KAAKC,SAASL;AAGnFT,eAAWE,OAAOa,gBAAgBC,iBAAiB;MAAEC,SAASL;IAAgB,CAAA;AAC9E,QAAIF,YAAY;AACdV,iBAAWE,OAAOa,gBAAgBG,MAAM;QAAED,SAAS;UAACP;;MAAY,CAAA;IAClE;EACF;AAGA,SAAcS,YAAK,MAAMf,iBAAAA,CAAAA;AACzBE,SAAOc,iBAAiB,YAAYhB,gBAAAA;AAGpC,MAAIiB;AACJ,MAAIC;AACJ,QAAMC,cAAc,OAAOrB,OAAOL,WAAW2B,cAC3CC,mBACA,CAACC,UAAAA;AACC,UAAM,EAAEC,WAAWC,OAAM,IAAKF;AAG9B,QAAIC,cAAcN,iBAAiBO,WAAWN,YAAY;AACxDD,sBAAgBM;AAChBL,mBAAaM;AAGb,UAAIC;AACJ,UAAIF,cAAcd,KAAKC,QAAQ;AAC7Be,eAAOD,SAAS,IAAIf,KAAKC,MAAM,IAAIc,MAAAA,KAAW;MAChD,OAAO;AACLC,eAAOD,SAAS,IAAID,SAAAA,IAAaC,MAAAA,KAAW,IAAID,SAAAA;MAClD;AAEA,UAAIrB,OAAOC,SAASF,aAAawB,MAAM;AACrCC,gBAAQC,UAAU,MAAM,IAAI,GAAGF,IAAAA,GAAOvB,OAAOC,SAASyB,MAAM,EAAE;MAChE;IACF;EACF,CAAA;AAGF,SAAOnC,WAAWoC,YAAY/B,OAAOL,WAAWqC,MAAM,MAAM,MACnDf,YAAK,MAAA;AACVb,WAAO6B,oBAAoB,YAAY/B,gBAAAA;AACvCmB,gBAAAA;EACF,CAAA,CAAA;AAEJ,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "Common", "Node", "Capability", "makeModule", "fnUntraced", "invokeSync", "get", "Common", "OperationInvoker", "handleNavigation", "pathname", "window", "location", "_", "nextWorkspace", "nextActive", "split", "targetWorkspace", "Node", "RootId", "LayoutOperation", "SwitchWorkspace", "subject", "Open", "sync", "addEventListener", "lastWorkspace", "lastActive", "unsubscribe", "subscribeAtom", "SimpleLayoutStateCapability", "state", "workspace", "active", "path", "history", "pushState", "search", "contributes", "Null", "removeEventListener"]
7
+ }
@@ -0,0 +1,7 @@
1
+ import { Plugin } from '@dxos/app-framework';
2
+ export type SimpleLayoutPluginOptions = {
3
+ /** Whether running in popover window context (hides mobile-specific UI). */
4
+ isPopover?: boolean;
5
+ };
6
+ export declare const SimpleLayoutPlugin: Plugin.PluginFactory<SimpleLayoutPluginOptions>;
7
+ //# sourceMappingURL=SimpleLayoutPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleLayoutPlugin.d.ts","sourceRoot":"","sources":["../../../src/SimpleLayoutPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuC,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAOlF,MAAM,MAAM,yBAAyB,GAAG;IACtC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,iDA8B9B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './operation-resolver';
2
+ export * from './react-root';
3
+ export * from './react-surface';
4
+ export * from './spotlight-dismiss';
5
+ export * from './state';
6
+ export * from './url-handler';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAIA,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Capability } from '@dxos/app-framework';
2
+ export declare const OperationResolver: Capability.LazyCapability;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/operation-resolver/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAA6B,MAAM,qBAAqB,CAAC;AAEjF,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,cAG1C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability, Common } from '@dxos/app-framework';
3
+ declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Common.Capability.OperationResolver[]>>, Error, Capability.Service>;
4
+ export default _default;
5
+ //# sourceMappingURL=operation-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/operation-resolver/operation-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;;AAQzD,wBAmKE"}
@@ -0,0 +1,6 @@
1
+ import { Capability } from '@dxos/app-framework';
2
+ export declare const ReactRoot: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<Readonly<{
3
+ id: string;
4
+ root: import("react").FC<import("react").PropsWithChildren>;
5
+ }>>>, Error>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-root/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,SAAS;;;YAA6D,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import React from 'react';
3
+ import { Capability } from '@dxos/app-framework';
4
+ declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Readonly<{
5
+ id: string;
6
+ root: React.FC<React.PropsWithChildren>;
7
+ }>>>, never, never>;
8
+ export default _default;
9
+ //# sourceMappingURL=react-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-root.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-root/react-root.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAC;;;;;AAKzD,wBASE"}
@@ -0,0 +1,3 @@
1
+ import { Capability } from '@dxos/app-framework';
2
+ export declare const ReactSurface: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-framework/Common").Capability.ReactSurface>>, Error>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,YAAY,sJAAmE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability, Common } from '@dxos/app-framework';
3
+ declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Common.Capability.ReactSurface>>, never, never>;
4
+ export default _default;
5
+ //# sourceMappingURL=react-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/react-surface/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;;AAazD,wBAmBE"}
@@ -0,0 +1,3 @@
1
+ import { Capability } from '@dxos/app-framework';
2
+ export declare const SpotlightDismiss: Capability.LazyCapability<import("./spotlight-dismiss").SpotlightDismissOptions, [] | Capability.Capability<Capability.InterfaceDef<null>>, Error>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/spotlight-dismiss/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,gBAAgB,oJAA2E,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability } from '@dxos/app-framework';
3
+ export type SpotlightDismissOptions = {
4
+ /** Whether running in popover window context. */
5
+ isPopover?: boolean;
6
+ };
7
+ /**
8
+ * Capability that sets up spotlight panel dismiss behavior.
9
+ * When running in Tauri popover mode, listens for focus loss and Escape key
10
+ * to dismiss the spotlight panel. Runs at startup before React renders.
11
+ */
12
+ declare const _default: (props?: SpotlightDismissOptions | undefined) => Effect.Effect<[] | Capability.Capability<Capability.InterfaceDef<null>>, never, never>;
13
+ export default _default;
14
+ //# sourceMappingURL=spotlight-dismiss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotlight-dismiss.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/spotlight-dismiss/spotlight-dismiss.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAC;AAoBzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;GAIG;;AACH,wBA8CE"}
@@ -0,0 +1,13 @@
1
+ import { Capability } from '@dxos/app-framework';
2
+ export declare const State: Capability.LazyCapability<import("./state").SimpleLayoutStateOptions, [Capability.Capability<Capability.InterfaceDef<import("@effect-atom/atom/Atom").Writable<import("../../types").SimpleLayoutState, import("../../types").SimpleLayoutState>>>, Capability.Capability<Capability.InterfaceDef<import("@effect-atom/atom/Atom").Atom<Readonly<{
3
+ mode: string;
4
+ dialogOpen: boolean;
5
+ sidebarOpen: boolean;
6
+ complementarySidebarOpen: boolean;
7
+ workspace: string;
8
+ active: string[];
9
+ inactive: string[];
10
+ scrollIntoView: string | undefined;
11
+ }>>>>], Error>;
12
+ export type { SimpleLayoutStateOptions } from './state';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/state/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,KAAK;;;;;;;;;cAAoD,CAAC;AAEvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Atom } from '@effect-atom/atom-react';
2
+ import * as Effect from 'effect/Effect';
3
+ import { Capability } from '@dxos/app-framework';
4
+ import { type SimpleLayoutState } from '../../types';
5
+ export type SimpleLayoutStateOptions = {
6
+ initialState?: Partial<SimpleLayoutState>;
7
+ };
8
+ declare const _default: (props?: SimpleLayoutStateOptions | undefined) => Effect.Effect<[Capability.Capability<Capability.InterfaceDef<Atom.Writable<SimpleLayoutState, SimpleLayoutState>>>, Capability.Capability<Capability.InterfaceDef<Atom.Atom<Readonly<{
9
+ mode: string;
10
+ dialogOpen: boolean;
11
+ sidebarOpen: boolean;
12
+ complementarySidebarOpen: boolean;
13
+ workspace: string;
14
+ active: string[];
15
+ inactive: string[];
16
+ scrollIntoView: string | undefined;
17
+ }>>>>], never, never>;
18
+ export default _default;
19
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/state/state.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAWrD,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC3C,CAAC;;;;;;;;;;;AAEF,wBAuBE"}
@@ -0,0 +1,3 @@
1
+ import { Capability } from '@dxos/app-framework';
2
+ export declare const UrlHandler: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<null>>, Error>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/url-handler/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,UAAU,8FAA+D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability } from '@dxos/app-framework';
3
+ /**
4
+ * URL handler for simple layout that syncs browser URL with layout state.
5
+ * URL format: /{workspace} or /{workspace}/{active}
6
+ * Root is represented as / or /root.
7
+ */
8
+ declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<null>>, Error, Capability.Service>;
9
+ export default _default;
10
+ //# sourceMappingURL=url-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-handler.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/url-handler/url-handler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAC;AAKzD;;;;GAIG;;AACH,wBA+DE"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const ContentError: ({ error }: {
3
+ error?: Error;
4
+ }) => React.JSX.Element;
5
+ //# sourceMappingURL=ContentError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentError.d.ts","sourceRoot":"","sources":["../../../../src/components/ContentError.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,eAAO,MAAM,YAAY,GAAI,WAAW;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,sBAUxD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { type StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: ({ error }: {
5
+ error?: Error;
6
+ }) => import("react").JSX.Element;
7
+ decorators: import("@storybook/react").Decorator[];
8
+ parameters: {
9
+ layout: string;
10
+ translations: [{
11
+ readonly 'en-US': {
12
+ readonly [meta.id]: {
13
+ readonly 'plugin name': "Simple layout";
14
+ readonly 'settings title': "Simple layout settings";
15
+ readonly 'workspaces heading': "Workspaces";
16
+ readonly 'settings heading': "Settings";
17
+ readonly 'back label': "Back";
18
+ readonly 'browse label': "Browse";
19
+ readonly 'notifications label': "Notifications";
20
+ readonly 'profile label': "Profile";
21
+ readonly 'app menu label': "App menu";
22
+ readonly 'main menu label': "Main menu";
23
+ readonly 'error fallback message': "An error occurred";
24
+ readonly 'search placeholder': "Search...";
25
+ };
26
+ };
27
+ }];
28
+ };
29
+ };
30
+ export default meta;
31
+ type Story = StoryObj<typeof meta>;
32
+ export declare const Default: Story;
33
+ export declare const WithError: Story;
34
+ export declare const WithTypeError: Story;
35
+ //# sourceMappingURL=ContentError.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentError.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/ContentError.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjE,QAAA,MAAM,IAAI;;;aACE,CAAC;;;;;;;yBALJ,CAAQ,IAAI,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;CAYY,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAI3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const ContentLoading: () => React.JSX.Element;
3
+ //# sourceMappingURL=ContentLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentLoading.d.ts","sourceRoot":"","sources":["../../../../src/components/ContentLoading.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,cAAc,yBAE1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: () => import("react").JSX.Element;
5
+ decorators: import("@storybook/react").Decorator[];
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+ export declare const Default: Story;
13
+ //# sourceMappingURL=ContentLoading.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentLoading.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/ContentLoading.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMjE,QAAA,MAAM,IAAI;;;;;;;CAO6B,CAAC;AAExC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const Dialog: () => React.JSX.Element;
3
+ //# sourceMappingURL=Dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,eAAO,MAAM,MAAM,yBAyBlB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './Dialog';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Dialog/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export type HomeProps = {};
3
+ /**
4
+ * Home screen.
5
+ */
6
+ export declare const Home: (_: HomeProps) => React.JSX.Element;
7
+ //# sourceMappingURL=Home.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../../../../../src/components/Home/Home.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAcvE,MAAM,MAAM,SAAS,GAAG,EAAE,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,GAAG,SAAS,sBAiChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './Home';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Home/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC"}