@dxos/plugin-deck 0.8.3 → 0.8.4-main.f9ba587

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 (84) hide show
  1. package/dist/lib/browser/{app-graph-builder-YCO7Y54J.mjs → app-graph-builder-JTFSDT2I.mjs} +4 -4
  2. package/dist/lib/browser/{check-app-scheme-7AXGR6UT.mjs → check-app-scheme-57U62A3A.mjs} +3 -3
  3. package/dist/lib/browser/{chunk-RAZK4XT5.mjs → chunk-7LJDT5OH.mjs} +19 -19
  4. package/dist/lib/browser/{chunk-TRFYUEBA.mjs → chunk-CNTGBCMK.mjs} +5 -5
  5. package/dist/lib/browser/{chunk-KLN73CM3.mjs → chunk-M57WD3V6.mjs} +3 -3
  6. package/dist/lib/browser/{chunk-RMCRP7HV.mjs → chunk-QBKDUEDV.mjs} +33 -33
  7. package/dist/lib/browser/{chunk-RMCRP7HV.mjs.map → chunk-QBKDUEDV.mjs.map} +1 -1
  8. package/dist/lib/browser/{chunk-FX44YX3G.mjs → chunk-QO3VIMKQ.mjs} +6 -6
  9. package/dist/lib/browser/{chunk-YN5OZEGS.mjs → chunk-XL7EWOGI.mjs} +3 -3
  10. package/dist/lib/browser/{chunk-NSATFAEE.mjs → chunk-Z5KITAZW.mjs} +2 -2
  11. package/dist/lib/browser/index.mjs +12 -12
  12. package/dist/lib/browser/index.mjs.map +3 -3
  13. package/dist/lib/browser/{intent-resolver-EGLWTKJG.mjs → intent-resolver-6YMAE4SF.mjs} +7 -7
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/{react-root-C4HIM5CI.mjs → react-root-UVN2LMU3.mjs} +9 -9
  16. package/dist/lib/browser/{react-surface-RV2AZ6WZ.mjs → react-surface-WOLHGHMN.mjs} +9 -9
  17. package/dist/lib/browser/{settings-7VUU3ZJ4.mjs → settings-L5CR5GTJ.mjs} +4 -4
  18. package/dist/lib/browser/state-ZTYWMORZ.mjs +10 -0
  19. package/dist/lib/browser/{tools-N57NQ2LH.mjs → tools-2YYFHQAS.mjs} +5 -5
  20. package/dist/lib/browser/types.mjs +2 -2
  21. package/dist/lib/browser/{url-handler-BUGI6XRE.mjs → url-handler-KZW7GBA2.mjs} +5 -5
  22. package/dist/lib/node-esm/app-graph-builder-YCSX45KJ.mjs +153 -0
  23. package/dist/lib/node-esm/app-graph-builder-YCSX45KJ.mjs.map +7 -0
  24. package/dist/lib/node-esm/check-app-scheme-3YZIA73T.mjs +33 -0
  25. package/dist/lib/node-esm/check-app-scheme-3YZIA73T.mjs.map +7 -0
  26. package/dist/lib/node-esm/chunk-ANLUUC3J.mjs +129 -0
  27. package/dist/lib/node-esm/chunk-ANLUUC3J.mjs.map +7 -0
  28. package/dist/lib/node-esm/chunk-F4YIQ5GG.mjs +128 -0
  29. package/dist/lib/node-esm/chunk-F4YIQ5GG.mjs.map +7 -0
  30. package/dist/lib/node-esm/chunk-HHG6H2BX.mjs +15 -0
  31. package/dist/lib/node-esm/chunk-HHG6H2BX.mjs.map +7 -0
  32. package/dist/lib/node-esm/chunk-KTPDAVNM.mjs +17 -0
  33. package/dist/lib/node-esm/chunk-KTPDAVNM.mjs.map +7 -0
  34. package/dist/lib/node-esm/chunk-NMSUKHE3.mjs +1495 -0
  35. package/dist/lib/node-esm/chunk-NMSUKHE3.mjs.map +7 -0
  36. package/dist/lib/node-esm/chunk-QFKYT4JK.mjs +163 -0
  37. package/dist/lib/node-esm/chunk-QFKYT4JK.mjs.map +7 -0
  38. package/dist/lib/node-esm/chunk-UJGQAMF7.mjs +147 -0
  39. package/dist/lib/node-esm/chunk-UJGQAMF7.mjs.map +7 -0
  40. package/dist/lib/node-esm/index.mjs +169 -0
  41. package/dist/lib/node-esm/index.mjs.map +7 -0
  42. package/dist/lib/node-esm/intent-resolver-URTWBGD7.mjs +522 -0
  43. package/dist/lib/node-esm/intent-resolver-URTWBGD7.mjs.map +7 -0
  44. package/dist/lib/node-esm/meta.json +1 -0
  45. package/dist/lib/node-esm/react-root-GFX4GOJT.mjs +44 -0
  46. package/dist/lib/node-esm/react-root-GFX4GOJT.mjs.map +7 -0
  47. package/dist/lib/node-esm/react-surface-F6L5PLWK.mjs +41 -0
  48. package/dist/lib/node-esm/react-surface-F6L5PLWK.mjs.map +7 -0
  49. package/dist/lib/node-esm/settings-WE3TBMOC.mjs +30 -0
  50. package/dist/lib/node-esm/settings-WE3TBMOC.mjs.map +7 -0
  51. package/dist/lib/node-esm/state-DUK6WFDX.mjs +11 -0
  52. package/dist/lib/node-esm/state-DUK6WFDX.mjs.map +7 -0
  53. package/dist/lib/node-esm/tools-HH6NN7HB.mjs +89 -0
  54. package/dist/lib/node-esm/tools-HH6NN7HB.mjs.map +7 -0
  55. package/dist/lib/node-esm/types.mjs +35 -0
  56. package/dist/lib/node-esm/types.mjs.map +7 -0
  57. package/dist/lib/node-esm/url-handler-774BWWKI.mjs +71 -0
  58. package/dist/lib/node-esm/url-handler-774BWWKI.mjs.map +7 -0
  59. package/dist/types/src/components/Plank/Plank.stories.d.ts +1 -1
  60. package/dist/types/src/components/Plank/Plank.stories.d.ts.map +1 -1
  61. package/dist/types/src/translations.d.ts +56 -56
  62. package/dist/types/src/translations.d.ts.map +1 -1
  63. package/dist/types/tsconfig.tsbuildinfo +1 -1
  64. package/package.json +34 -36
  65. package/src/DeckPlugin.ts +1 -1
  66. package/src/components/Plank/Plank.stories.tsx +3 -3
  67. package/src/components/Plank/PlankHeading.tsx +1 -1
  68. package/src/translations.ts +6 -4
  69. package/dist/lib/browser/state-VJ6E3ADY.mjs +0 -10
  70. /package/dist/lib/browser/{app-graph-builder-YCO7Y54J.mjs.map → app-graph-builder-JTFSDT2I.mjs.map} +0 -0
  71. /package/dist/lib/browser/{check-app-scheme-7AXGR6UT.mjs.map → check-app-scheme-57U62A3A.mjs.map} +0 -0
  72. /package/dist/lib/browser/{chunk-RAZK4XT5.mjs.map → chunk-7LJDT5OH.mjs.map} +0 -0
  73. /package/dist/lib/browser/{chunk-TRFYUEBA.mjs.map → chunk-CNTGBCMK.mjs.map} +0 -0
  74. /package/dist/lib/browser/{chunk-KLN73CM3.mjs.map → chunk-M57WD3V6.mjs.map} +0 -0
  75. /package/dist/lib/browser/{chunk-FX44YX3G.mjs.map → chunk-QO3VIMKQ.mjs.map} +0 -0
  76. /package/dist/lib/browser/{chunk-YN5OZEGS.mjs.map → chunk-XL7EWOGI.mjs.map} +0 -0
  77. /package/dist/lib/browser/{chunk-NSATFAEE.mjs.map → chunk-Z5KITAZW.mjs.map} +0 -0
  78. /package/dist/lib/browser/{intent-resolver-EGLWTKJG.mjs.map → intent-resolver-6YMAE4SF.mjs.map} +0 -0
  79. /package/dist/lib/browser/{react-root-C4HIM5CI.mjs.map → react-root-UVN2LMU3.mjs.map} +0 -0
  80. /package/dist/lib/browser/{react-surface-RV2AZ6WZ.mjs.map → react-surface-WOLHGHMN.mjs.map} +0 -0
  81. /package/dist/lib/browser/{settings-7VUU3ZJ4.mjs.map → settings-L5CR5GTJ.mjs.map} +0 -0
  82. /package/dist/lib/browser/{state-VJ6E3ADY.mjs.map → state-ZTYWMORZ.mjs.map} +0 -0
  83. /package/dist/lib/browser/{tools-N57NQ2LH.mjs.map → tools-2YYFHQAS.mjs.map} +0 -0
  84. /package/dist/lib/browser/{url-handler-BUGI6XRE.mjs.map → url-handler-KZW7GBA2.mjs.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  DeckSettingsSchema
3
- } from "./chunk-YN5OZEGS.mjs";
3
+ } from "./chunk-XL7EWOGI.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-NSATFAEE.mjs";
6
+ } from "./chunk-Z5KITAZW.mjs";
7
7
 
8
- // packages/plugins/plugin-deck/src/capabilities/settings.ts
8
+ // src/capabilities/settings.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
10
10
  import { live } from "@dxos/live-object";
11
11
  var settings_default = () => {
@@ -26,4 +26,4 @@ var settings_default = () => {
26
26
  export {
27
27
  settings_default as default
28
28
  };
29
- //# sourceMappingURL=settings-7VUU3ZJ4.mjs.map
29
+ //# sourceMappingURL=settings-L5CR5GTJ.mjs.map
@@ -0,0 +1,10 @@
1
+ import {
2
+ state_default
3
+ } from "./chunk-QO3VIMKQ.mjs";
4
+ import "./chunk-M57WD3V6.mjs";
5
+ import "./chunk-XL7EWOGI.mjs";
6
+ import "./chunk-Z5KITAZW.mjs";
7
+ export {
8
+ state_default as default
9
+ };
10
+ //# sourceMappingURL=state-ZTYWMORZ.mjs.map
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  DeckAction
3
- } from "./chunk-YN5OZEGS.mjs";
3
+ } from "./chunk-XL7EWOGI.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-NSATFAEE.mjs";
6
+ } from "./chunk-Z5KITAZW.mjs";
7
7
 
8
- // packages/plugins/plugin-deck/src/capabilities/tools.ts
8
+ // src/capabilities/tools.ts
9
9
  import { Schema } from "effect";
10
10
  import { createTool, ToolResult } from "@dxos/ai";
11
11
  import { contributes, createIntent, Capabilities, LayoutAction } from "@dxos/app-framework";
12
12
  import { invariant } from "@dxos/invariant";
13
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-deck/src/capabilities/tools.ts";
13
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-deck/src/capabilities/tools.ts";
14
14
  var tools_default = () => contributes(Capabilities.Tools, [
15
15
  createTool(meta.id, {
16
16
  name: "show",
@@ -85,4 +85,4 @@ var tools_default = () => contributes(Capabilities.Tools, [
85
85
  export {
86
86
  tools_default as default
87
87
  };
88
- //# sourceMappingURL=tools-N57NQ2LH.mjs.map
88
+ //# sourceMappingURL=tools-2YYFHQAS.mjs.map
@@ -13,8 +13,8 @@ import {
13
13
  defaultDeck,
14
14
  getMode,
15
15
  isLayoutMode
16
- } from "./chunk-YN5OZEGS.mjs";
17
- import "./chunk-NSATFAEE.mjs";
16
+ } from "./chunk-XL7EWOGI.mjs";
17
+ import "./chunk-Z5KITAZW.mjs";
18
18
  export {
19
19
  ATTENDABLE_PATH_SEPARATOR,
20
20
  DECK_ACTION,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  DeckCapabilities
3
- } from "./chunk-KLN73CM3.mjs";
3
+ } from "./chunk-M57WD3V6.mjs";
4
4
  import {
5
5
  defaultDeck
6
- } from "./chunk-YN5OZEGS.mjs";
7
- import "./chunk-NSATFAEE.mjs";
6
+ } from "./chunk-XL7EWOGI.mjs";
7
+ import "./chunk-Z5KITAZW.mjs";
8
8
 
9
- // packages/plugins/plugin-deck/src/capabilities/url-handler.ts
9
+ // src/capabilities/url-handler.ts
10
10
  import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
11
11
  import { scheduledEffect } from "@dxos/echo-signals/core";
12
12
  var url_handler_default = async (context) => {
@@ -67,4 +67,4 @@ var url_handler_default = async (context) => {
67
67
  export {
68
68
  url_handler_default as default
69
69
  };
70
- //# sourceMappingURL=url-handler-BUGI6XRE.mjs.map
70
+ //# sourceMappingURL=url-handler-KZW7GBA2.mjs.map
@@ -0,0 +1,153 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ DeckCapabilities
4
+ } from "./chunk-KTPDAVNM.mjs";
5
+ import {
6
+ DECK_PLUGIN
7
+ } from "./chunk-HHG6H2BX.mjs";
8
+
9
+ // src/capabilities/app-graph-builder.ts
10
+ import { Rx } from "@effect-rx/rx-react";
11
+ import { Option, pipe } from "effect";
12
+ import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
13
+ import { AttentionCapabilities } from "@dxos/plugin-attention";
14
+ import { createExtension, ROOT_ID, rxFromSignal } from "@dxos/plugin-graph";
15
+ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, createExtension({
16
+ id: DECK_PLUGIN,
17
+ actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => {
18
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
19
+ const _fullscreen = {
20
+ id: `${LayoutAction.UpdateLayout._tag}/fullscreen`,
21
+ data: async () => {
22
+ const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
23
+ await dispatch(createIntent(LayoutAction.SetLayoutMode, {
24
+ part: "mode",
25
+ options: {
26
+ mode: "fullscreen"
27
+ }
28
+ }));
29
+ },
30
+ properties: {
31
+ label: [
32
+ "toggle fullscreen label",
33
+ {
34
+ ns: DECK_PLUGIN
35
+ }
36
+ ],
37
+ icon: "ph--arrows-out--regular",
38
+ keyBinding: {
39
+ macos: "ctrl+meta+f",
40
+ windows: "shift+ctrl+f"
41
+ }
42
+ }
43
+ };
44
+ const closeCurrent = {
45
+ id: `${LayoutAction.Close._tag}/current`,
46
+ data: async () => {
47
+ const attention = context.getCapability(AttentionCapabilities.Attention);
48
+ const attended = attention.current.at(-1);
49
+ if (attended) {
50
+ const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
51
+ await dispatch(createIntent(LayoutAction.Close, {
52
+ part: "main",
53
+ subject: [
54
+ attended
55
+ ],
56
+ options: {
57
+ state: false
58
+ }
59
+ }));
60
+ }
61
+ },
62
+ properties: {
63
+ label: [
64
+ "close current label",
65
+ {
66
+ ns: DECK_PLUGIN
67
+ }
68
+ ],
69
+ icon: "ph--x--regular"
70
+ }
71
+ };
72
+ const closeOthers = {
73
+ id: `${LayoutAction.Close._tag}/others`,
74
+ data: async () => {
75
+ const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
76
+ const attention = context.getCapability(AttentionCapabilities.Attention);
77
+ const attended = attention.current.at(-1);
78
+ const ids = state.deck.active.filter((id) => id !== attended) ?? [];
79
+ await dispatch(createIntent(LayoutAction.Close, {
80
+ part: "main",
81
+ subject: ids,
82
+ options: {
83
+ state: false
84
+ }
85
+ }));
86
+ },
87
+ properties: {
88
+ label: [
89
+ "close others label",
90
+ {
91
+ ns: DECK_PLUGIN
92
+ }
93
+ ],
94
+ icon: "ph--x-square--regular"
95
+ }
96
+ };
97
+ const closeAll = {
98
+ id: `${LayoutAction.Close._tag}/all`,
99
+ data: async () => {
100
+ const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
101
+ await dispatch(createIntent(LayoutAction.Close, {
102
+ part: "main",
103
+ subject: state.deck.active,
104
+ options: {
105
+ state: false
106
+ }
107
+ }));
108
+ },
109
+ properties: {
110
+ label: [
111
+ "close all label",
112
+ {
113
+ ns: DECK_PLUGIN
114
+ }
115
+ ],
116
+ icon: "ph--x-circle--regular"
117
+ }
118
+ };
119
+ const toggleSidebar = {
120
+ id: `${LayoutAction.UpdateSidebar._tag}/nav`,
121
+ data: async () => {
122
+ state.sidebarState = state.sidebarState === "expanded" ? "collapsed" : "expanded";
123
+ },
124
+ properties: {
125
+ label: [
126
+ get(rxFromSignal(() => state.sidebarState === "expanded" ? "collapse navigation sidebar label" : "open navigation sidebar label")),
127
+ {
128
+ ns: DECK_PLUGIN
129
+ }
130
+ ],
131
+ icon: "ph--sidebar--regular",
132
+ keyBinding: {
133
+ macos: "meta+'"
134
+ },
135
+ disposition: "pin-end",
136
+ position: "hoist",
137
+ l0Breakpoint: "lg"
138
+ }
139
+ };
140
+ return get(rxFromSignal(() => !state.deck.solo ? [
141
+ closeCurrent,
142
+ closeOthers,
143
+ closeAll,
144
+ toggleSidebar
145
+ ] : [
146
+ toggleSidebar
147
+ ]));
148
+ }), Option.getOrElse(() => [])))
149
+ }));
150
+ export {
151
+ app_graph_builder_default as default
152
+ };
153
+ //# sourceMappingURL=app-graph-builder-YCSX45KJ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, createIntent, LayoutAction, type PluginContext } from '@dxos/app-framework';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { createExtension, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';\n\nimport { DeckCapabilities } from './capabilities';\nimport { DECK_PLUGIN } from '../meta';\n\nexport default (context: PluginContext) =>\n contributes(\n Capabilities.AppGraphBuilder,\n createExtension({\n id: DECK_PLUGIN,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => {\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n\n // NOTE(Zan): This is currently disabled.\n // TODO(Zan): Fullscreen needs to know the active node and provide that to the layout part.\n const _fullscreen = {\n id: `${LayoutAction.UpdateLayout._tag}/fullscreen`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(\n createIntent(LayoutAction.SetLayoutMode, { part: 'mode', options: { mode: 'fullscreen' } }),\n );\n },\n properties: {\n label: ['toggle fullscreen label', { ns: DECK_PLUGIN }],\n icon: 'ph--arrows-out--regular',\n keyBinding: {\n macos: 'ctrl+meta+f',\n windows: 'shift+ctrl+f',\n },\n },\n };\n\n const closeCurrent = {\n id: `${LayoutAction.Close._tag}/current`,\n data: async () => {\n const attention = context.getCapability(AttentionCapabilities.Attention);\n const attended = attention.current.at(-1);\n if (attended) {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(\n createIntent(LayoutAction.Close, {\n part: 'main',\n subject: [attended],\n options: { state: false },\n }),\n );\n }\n },\n properties: {\n label: ['close current label', { ns: DECK_PLUGIN }],\n icon: 'ph--x--regular',\n },\n };\n\n const closeOthers = {\n id: `${LayoutAction.Close._tag}/others`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const attention = context.getCapability(AttentionCapabilities.Attention);\n const attended = attention.current.at(-1);\n const ids = state.deck.active.filter((id) => id !== attended) ?? [];\n await dispatch(\n createIntent(LayoutAction.Close, { part: 'main', subject: ids, options: { state: false } }),\n );\n },\n properties: {\n label: ['close others label', { ns: DECK_PLUGIN }],\n icon: 'ph--x-square--regular',\n },\n };\n\n const closeAll = {\n id: `${LayoutAction.Close._tag}/all`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(\n createIntent(LayoutAction.Close, {\n part: 'main',\n subject: state.deck.active,\n options: { state: false },\n }),\n );\n },\n properties: {\n label: ['close all label', { ns: DECK_PLUGIN }],\n icon: 'ph--x-circle--regular',\n },\n };\n\n const toggleSidebar = {\n id: `${LayoutAction.UpdateSidebar._tag}/nav`,\n data: async () => {\n state.sidebarState = state.sidebarState === 'expanded' ? 'collapsed' : 'expanded';\n },\n properties: {\n label: [\n get(\n rxFromSignal(() =>\n state.sidebarState === 'expanded'\n ? 'collapse navigation sidebar label'\n : 'open navigation sidebar label',\n ),\n ),\n { ns: DECK_PLUGIN },\n ],\n icon: 'ph--sidebar--regular',\n keyBinding: {\n macos: \"meta+'\",\n },\n disposition: 'pin-end',\n position: 'hoist',\n l0Breakpoint: 'lg',\n },\n };\n\n return get(\n rxFromSignal(() =>\n !state.deck.solo ? [closeCurrent, closeOthers, closeAll, toggleSidebar] : [toggleSidebar],\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n );\n"],
5
+ "mappings": "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",
6
+ "names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "createIntent", "LayoutAction", "AttentionCapabilities", "createExtension", "ROOT_ID", "rxFromSignal", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "DECK_PLUGIN", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "state", "getCapability", "DeckCapabilities", "MutableDeckState", "_fullscreen", "LayoutAction", "UpdateLayout", "_tag", "data", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "SetLayoutMode", "part", "options", "mode", "properties", "label", "ns", "icon", "keyBinding", "macos", "windows", "closeCurrent", "Close", "attention", "AttentionCapabilities", "Attention", "attended", "current", "at", "subject", "closeOthers", "ids", "deck", "active", "filter", "closeAll", "toggleSidebar", "UpdateSidebar", "sidebarState", "rxFromSignal", "disposition", "position", "l0Breakpoint", "solo", "getOrElse"]
7
+ }
@@ -0,0 +1,33 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ DECK_PLUGIN
4
+ } from "./chunk-HHG6H2BX.mjs";
5
+
6
+ // src/capabilities/check-app-scheme.ts
7
+ import { Capabilities, contributes } from "@dxos/app-framework";
8
+ var isSocket = !!globalThis.__args;
9
+ var appScheme = "composer://";
10
+ var checkAppScheme = (url) => {
11
+ const iframe = document.createElement("iframe");
12
+ iframe.style.display = "none";
13
+ document.body.appendChild(iframe);
14
+ iframe.src = url + window.location.pathname.replace(/^\/+/, "") + window.location.search;
15
+ const timer = setTimeout(() => {
16
+ document.body.removeChild(iframe);
17
+ }, 3e3);
18
+ window.addEventListener("pagehide", (event) => {
19
+ clearTimeout(timer);
20
+ document.body.removeChild(iframe);
21
+ });
22
+ };
23
+ var check_app_scheme_default = async (context) => {
24
+ const settings = context.getCapability(Capabilities.SettingsStore).getStore(DECK_PLUGIN)?.value;
25
+ if (!isSocket && settings?.enableNativeRedirect) {
26
+ checkAppScheme(appScheme);
27
+ }
28
+ return contributes(Capabilities.Null, null);
29
+ };
30
+ export {
31
+ check_app_scheme_default as default
32
+ };
33
+ //# sourceMappingURL=check-app-scheme-3YZIA73T.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/check-app-scheme.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\n\nimport { DECK_PLUGIN } from '../meta';\nimport { type DeckSettingsProps } from '../types';\n\nconst isSocket = !!(globalThis as any).__args;\n\n// TODO(mjamesderocher): Can we get this directly from Socket?\nconst appScheme = 'composer://';\n\n// TODO(mjamesderocher): Factor out as part of NavigationPlugin.\nconst checkAppScheme = (url: string) => {\n const iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n\n iframe.src = url + window.location.pathname.replace(/^\\/+/, '') + window.location.search;\n\n const timer = setTimeout(() => {\n document.body.removeChild(iframe);\n }, 3000);\n\n window.addEventListener('pagehide', (event) => {\n clearTimeout(timer);\n document.body.removeChild(iframe);\n });\n};\n\nexport default async (context: PluginContext) => {\n const settings = context.getCapability(Capabilities.SettingsStore).getStore<DeckSettingsProps>(DECK_PLUGIN)?.value;\n if (!isSocket && settings?.enableNativeRedirect) {\n checkAppScheme(appScheme);\n }\n\n return contributes(Capabilities.Null, null);\n};\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,cAAcC,mBAAuC;AAK9D,IAAMC,WAAW,CAAC,CAAEC,WAAmBC;AAGvC,IAAMC,YAAY;AAGlB,IAAMC,iBAAiB,CAACC,QAAAA;AACtB,QAAMC,SAASC,SAASC,cAAc,QAAA;AACtCF,SAAOG,MAAMC,UAAU;AACvBH,WAASI,KAAKC,YAAYN,MAAAA;AAE1BA,SAAOO,MAAMR,MAAMS,OAAOC,SAASC,SAASC,QAAQ,QAAQ,EAAA,IAAMH,OAAOC,SAASG;AAElF,QAAMC,QAAQC,WAAW,MAAA;AACvBb,aAASI,KAAKU,YAAYf,MAAAA;EAC5B,GAAG,GAAA;AAEHQ,SAAOQ,iBAAiB,YAAY,CAACC,UAAAA;AACnCC,iBAAaL,KAAAA;AACbZ,aAASI,KAAKU,YAAYf,MAAAA;EAC5B,CAAA;AACF;AAEA,IAAA,2BAAe,OAAOmB,YAAAA;AACpB,QAAMC,WAAWD,QAAQE,cAAcC,aAAaC,aAAa,EAAEC,SAA4BC,WAAAA,GAAcC;AAC7G,MAAI,CAAChC,YAAY0B,UAAUO,sBAAsB;AAC/C7B,mBAAeD,SAAAA;EACjB;AAEA,SAAO+B,YAAYN,aAAaO,MAAM,IAAA;AACxC;",
6
+ "names": ["Capabilities", "contributes", "isSocket", "globalThis", "__args", "appScheme", "checkAppScheme", "url", "iframe", "document", "createElement", "style", "display", "body", "appendChild", "src", "window", "location", "pathname", "replace", "search", "timer", "setTimeout", "removeChild", "addEventListener", "event", "clearTimeout", "context", "settings", "getCapability", "Capabilities", "SettingsStore", "getStore", "DECK_PLUGIN", "value", "enableNativeRedirect", "contributes", "Null"]
7
+ }
@@ -0,0 +1,129 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ DeckCapabilities
4
+ } from "./chunk-KTPDAVNM.mjs";
5
+ import {
6
+ defaultDeck,
7
+ getMode
8
+ } from "./chunk-QFKYT4JK.mjs";
9
+ import {
10
+ DECK_PLUGIN
11
+ } from "./chunk-HHG6H2BX.mjs";
12
+
13
+ // src/capabilities/state.ts
14
+ import { Capabilities, contributes } from "@dxos/app-framework";
15
+ import { invariant } from "@dxos/invariant";
16
+ import { live } from "@dxos/live-object";
17
+ import { LocalStorageStore } from "@dxos/local-storage";
18
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-deck/src/capabilities/state.ts";
19
+ var boolean = /true|false/;
20
+ var migrateSidebarStateDefaults = {
21
+ [`${DECK_PLUGIN}/complementary-sidebar-state`]: "expanded",
22
+ [`${DECK_PLUGIN}/sidebar-state`]: "collapsed"
23
+ };
24
+ var migrateSidebarState = () => {
25
+ Object.entries(migrateSidebarStateDefaults).forEach(([key, defaultValue]) => {
26
+ if (boolean.test(localStorage.getItem(key) ?? "never")) {
27
+ localStorage.setItem(key, defaultValue);
28
+ }
29
+ });
30
+ };
31
+ var DeckStateFactory = () => {
32
+ migrateSidebarState();
33
+ const state = new LocalStorageStore(DECK_PLUGIN, {
34
+ sidebarState: "expanded",
35
+ complementarySidebarState: "collapsed",
36
+ complementarySidebarPanel: void 0,
37
+ dialogContent: null,
38
+ dialogOpen: false,
39
+ dialogBlockAlign: void 0,
40
+ dialogType: void 0,
41
+ popoverContent: null,
42
+ popoverAnchor: void 0,
43
+ popoverAnchorId: void 0,
44
+ popoverOpen: false,
45
+ toasts: [],
46
+ currentUndoId: void 0,
47
+ activeDeck: "default",
48
+ previousDeck: "default",
49
+ decks: {
50
+ default: {
51
+ ...defaultDeck
52
+ }
53
+ },
54
+ get deck() {
55
+ const deck = this.decks[this.activeDeck];
56
+ invariant(deck, `Deck not found: ${this.activeDeck}`, {
57
+ F: __dxlog_file,
58
+ L: 56,
59
+ S: this,
60
+ A: [
61
+ "deck",
62
+ "`Deck not found: ${this.activeDeck}`"
63
+ ]
64
+ });
65
+ return deck;
66
+ },
67
+ previousMode: {},
68
+ scrollIntoView: void 0
69
+ });
70
+ state.prop({
71
+ key: "sidebarState",
72
+ type: LocalStorageStore.enum()
73
+ }).prop({
74
+ key: "complementarySidebarState",
75
+ type: LocalStorageStore.enum()
76
+ }).prop({
77
+ key: "complementarySidebarPanel",
78
+ type: LocalStorageStore.string({
79
+ allowUndefined: true
80
+ })
81
+ }).prop({
82
+ key: "decks",
83
+ type: LocalStorageStore.json()
84
+ }).prop({
85
+ key: "activeDeck",
86
+ type: LocalStorageStore.string()
87
+ }).prop({
88
+ key: "previousDeck",
89
+ type: LocalStorageStore.string()
90
+ });
91
+ const layout = live({
92
+ get mode() {
93
+ return getMode(state.values.deck);
94
+ },
95
+ get dialogOpen() {
96
+ return state.values.dialogOpen;
97
+ },
98
+ get sidebarOpen() {
99
+ return state.values.sidebarState === "expanded";
100
+ },
101
+ get complementarySidebarOpen() {
102
+ return state.values.complementarySidebarState === "expanded";
103
+ },
104
+ get workspace() {
105
+ return state.values.activeDeck;
106
+ },
107
+ get active() {
108
+ return state.values.deck.solo ? [
109
+ state.values.deck.solo
110
+ ] : state.values.deck.active;
111
+ },
112
+ get inactive() {
113
+ return state.values.deck.inactive;
114
+ },
115
+ get scrollIntoView() {
116
+ return state.values.scrollIntoView;
117
+ }
118
+ });
119
+ return [
120
+ contributes(DeckCapabilities.DeckState, state.values, () => state.close()),
121
+ contributes(Capabilities.Layout, layout)
122
+ ];
123
+ };
124
+ var state_default = DeckStateFactory;
125
+
126
+ export {
127
+ state_default
128
+ };
129
+ //# sourceMappingURL=chunk-ANLUUC3J.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/state.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { live } from '@dxos/live-object';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { type SidebarState } from '@dxos/react-ui';\n\nimport { DeckCapabilities } from './capabilities';\nimport { DECK_PLUGIN } from '../meta';\nimport { getMode, type DeckPluginState, defaultDeck, type DeckState } from '../types';\n\nconst boolean = /true|false/;\n\n// TODO(thure, 18 Feb 2025): Remove after the next release.\n\nconst migrateSidebarStateDefaults = {\n [`${DECK_PLUGIN}/complementary-sidebar-state`]: 'expanded',\n [`${DECK_PLUGIN}/sidebar-state`]: 'collapsed',\n};\n\nconst migrateSidebarState = () => {\n Object.entries(migrateSidebarStateDefaults).forEach(([key, defaultValue]) => {\n if (boolean.test(localStorage.getItem(key) ?? 'never')) {\n localStorage.setItem(key, defaultValue);\n }\n });\n};\n\nconst DeckStateFactory = () => {\n migrateSidebarState();\n\n const state = new LocalStorageStore<DeckPluginState>(DECK_PLUGIN, {\n sidebarState: 'expanded',\n complementarySidebarState: 'collapsed',\n complementarySidebarPanel: undefined,\n dialogContent: null,\n dialogOpen: false,\n dialogBlockAlign: undefined,\n dialogType: undefined,\n popoverContent: null,\n popoverAnchor: undefined,\n popoverAnchorId: undefined,\n popoverOpen: false,\n toasts: [],\n currentUndoId: undefined,\n activeDeck: 'default',\n previousDeck: 'default',\n decks: {\n default: { ...defaultDeck },\n },\n get deck() {\n const deck = this.decks[this.activeDeck];\n invariant(deck, `Deck not found: ${this.activeDeck}`);\n return deck;\n },\n previousMode: {},\n scrollIntoView: undefined,\n });\n\n state\n .prop({ key: 'sidebarState', type: LocalStorageStore.enum<SidebarState>() })\n .prop({ key: 'complementarySidebarState', type: LocalStorageStore.enum<SidebarState>() })\n .prop({ key: 'complementarySidebarPanel', type: LocalStorageStore.string({ allowUndefined: true }) })\n .prop({ key: 'decks', type: LocalStorageStore.json<Record<string, DeckState>>() })\n .prop({ key: 'activeDeck', type: LocalStorageStore.string() })\n .prop({ key: 'previousDeck', type: LocalStorageStore.string() });\n\n const layout = live<Capabilities.Layout>({\n get mode() {\n return getMode(state.values.deck);\n },\n get dialogOpen() {\n return state.values.dialogOpen;\n },\n get sidebarOpen() {\n return state.values.sidebarState === 'expanded';\n },\n get complementarySidebarOpen() {\n return state.values.complementarySidebarState === 'expanded';\n },\n get workspace() {\n return state.values.activeDeck;\n },\n get active() {\n return state.values.deck.solo ? [state.values.deck.solo] : state.values.deck.active;\n },\n get inactive() {\n return state.values.deck.inactive;\n },\n get scrollIntoView() {\n return state.values.scrollIntoView;\n },\n });\n\n return [\n contributes(DeckCapabilities.DeckState, state.values, () => state.close()),\n contributes(Capabilities.Layout, layout),\n ];\n};\n\nexport default DeckStateFactory;\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AACrB,SAASC,yBAAyB;;AAOlC,IAAMC,UAAU;AAIhB,IAAMC,8BAA8B;EAClC,CAAC,GAAGC,WAAAA,8BAAyC,GAAG;EAChD,CAAC,GAAGA,WAAAA,gBAA2B,GAAG;AACpC;AAEA,IAAMC,sBAAsB,MAAA;AAC1BC,SAAOC,QAAQJ,2BAAAA,EAA6BK,QAAQ,CAAC,CAACC,KAAKC,YAAAA,MAAa;AACtE,QAAIR,QAAQS,KAAKC,aAAaC,QAAQJ,GAAAA,KAAQ,OAAA,GAAU;AACtDG,mBAAaE,QAAQL,KAAKC,YAAAA;IAC5B;EACF,CAAA;AACF;AAEA,IAAMK,mBAAmB,MAAA;AACvBV,sBAAAA;AAEA,QAAMW,QAAQ,IAAIC,kBAAmCb,aAAa;IAChEc,cAAc;IACdC,2BAA2B;IAC3BC,2BAA2BC;IAC3BC,eAAe;IACfC,YAAY;IACZC,kBAAkBH;IAClBI,YAAYJ;IACZK,gBAAgB;IAChBC,eAAeN;IACfO,iBAAiBP;IACjBQ,aAAa;IACbC,QAAQ,CAAA;IACRC,eAAeV;IACfW,YAAY;IACZC,cAAc;IACdC,OAAO;MACLC,SAAS;QAAE,GAAGC;MAAY;IAC5B;IACA,IAAIC,OAAO;AACT,YAAMA,OAAO,KAAKH,MAAM,KAAKF,UAAU;AACvCM,gBAAUD,MAAM,mBAAmB,KAAKL,UAAU,IAAE;;;;;;;;;AACpD,aAAOK;IACT;IACAE,cAAc,CAAC;IACfC,gBAAgBnB;EAClB,CAAA;AAEAL,QACGyB,KAAK;IAAEhC,KAAK;IAAgBiC,MAAMzB,kBAAkB0B,KAAI;EAAiB,CAAA,EACzEF,KAAK;IAAEhC,KAAK;IAA6BiC,MAAMzB,kBAAkB0B,KAAI;EAAiB,CAAA,EACtFF,KAAK;IAAEhC,KAAK;IAA6BiC,MAAMzB,kBAAkB2B,OAAO;MAAEC,gBAAgB;IAAK,CAAA;EAAG,CAAA,EAClGJ,KAAK;IAAEhC,KAAK;IAASiC,MAAMzB,kBAAkB6B,KAAI;EAA8B,CAAA,EAC/EL,KAAK;IAAEhC,KAAK;IAAciC,MAAMzB,kBAAkB2B,OAAM;EAAG,CAAA,EAC3DH,KAAK;IAAEhC,KAAK;IAAgBiC,MAAMzB,kBAAkB2B,OAAM;EAAG,CAAA;AAEhE,QAAMG,SAASC,KAA0B;IACvC,IAAIC,OAAO;AACT,aAAOC,QAAQlC,MAAMmC,OAAOd,IAAI;IAClC;IACA,IAAId,aAAa;AACf,aAAOP,MAAMmC,OAAO5B;IACtB;IACA,IAAI6B,cAAc;AAChB,aAAOpC,MAAMmC,OAAOjC,iBAAiB;IACvC;IACA,IAAImC,2BAA2B;AAC7B,aAAOrC,MAAMmC,OAAOhC,8BAA8B;IACpD;IACA,IAAImC,YAAY;AACd,aAAOtC,MAAMmC,OAAOnB;IACtB;IACA,IAAIuB,SAAS;AACX,aAAOvC,MAAMmC,OAAOd,KAAKmB,OAAO;QAACxC,MAAMmC,OAAOd,KAAKmB;UAAQxC,MAAMmC,OAAOd,KAAKkB;IAC/E;IACA,IAAIE,WAAW;AACb,aAAOzC,MAAMmC,OAAOd,KAAKoB;IAC3B;IACA,IAAIjB,iBAAiB;AACnB,aAAOxB,MAAMmC,OAAOX;IACtB;EACF,CAAA;AAEA,SAAO;IACLkB,YAAYC,iBAAiBC,WAAW5C,MAAMmC,QAAQ,MAAMnC,MAAM6C,MAAK,CAAA;IACvEH,YAAYI,aAAaC,QAAQhB,MAAAA;;AAErC;AAEA,IAAA,gBAAehC;",
6
+ "names": ["Capabilities", "contributes", "invariant", "live", "LocalStorageStore", "boolean", "migrateSidebarStateDefaults", "DECK_PLUGIN", "migrateSidebarState", "Object", "entries", "forEach", "key", "defaultValue", "test", "localStorage", "getItem", "setItem", "DeckStateFactory", "state", "LocalStorageStore", "sidebarState", "complementarySidebarState", "complementarySidebarPanel", "undefined", "dialogContent", "dialogOpen", "dialogBlockAlign", "dialogType", "popoverContent", "popoverAnchor", "popoverAnchorId", "popoverOpen", "toasts", "currentUndoId", "activeDeck", "previousDeck", "decks", "default", "defaultDeck", "deck", "invariant", "previousMode", "scrollIntoView", "prop", "type", "enum", "string", "allowUndefined", "json", "layout", "live", "mode", "getMode", "values", "sidebarOpen", "complementarySidebarOpen", "workspace", "active", "solo", "inactive", "contributes", "DeckCapabilities", "DeckState", "close", "Capabilities", "Layout"]
7
+ }
@@ -0,0 +1,128 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ ATTENDABLE_PATH_SEPARATOR,
4
+ DECK_COMPANION_TYPE,
5
+ PLANK_COMPANION_TYPE
6
+ } from "./chunk-QFKYT4JK.mjs";
7
+ import {
8
+ DECK_PLUGIN
9
+ } from "./chunk-HHG6H2BX.mjs";
10
+
11
+ // src/hooks/useCompanions.ts
12
+ import { useMemo } from "react";
13
+ import { useAppGraph } from "@dxos/app-framework";
14
+ import { useConnections } from "@dxos/plugin-graph";
15
+ import { byPosition } from "@dxos/util";
16
+ var useCompanions = (id) => {
17
+ const { graph } = useAppGraph();
18
+ const nodes = useConnections(graph, id);
19
+ const companions = nodes.filter((node) => node.type === PLANK_COMPANION_TYPE);
20
+ return useMemo(() => companions.toSorted((a, b) => byPosition(a.properties, b.properties)), [
21
+ companions
22
+ ]);
23
+ };
24
+
25
+ // src/hooks/useBreakpoints.ts
26
+ import { useMediaQuery } from "@dxos/react-ui";
27
+ var useBreakpoints = () => {
28
+ const [isNotMobile] = useMediaQuery("md");
29
+ const [isDesktop] = useMediaQuery("lg");
30
+ return isDesktop ? "desktop" : isNotMobile ? "tablet" : "mobile";
31
+ };
32
+
33
+ // src/hooks/useDeckCompanions.ts
34
+ import { useAppGraph as useAppGraph2 } from "@dxos/app-framework";
35
+ import { ROOT_ID, useConnections as useConnections2 } from "@dxos/plugin-graph";
36
+ import { byPosition as byPosition2 } from "@dxos/util";
37
+ var getCompanionId = (id) => {
38
+ const [_, companionId] = id.split(ATTENDABLE_PATH_SEPARATOR);
39
+ return companionId ?? "never";
40
+ };
41
+ var useDeckCompanions = () => {
42
+ const { graph } = useAppGraph2();
43
+ const connections = useConnections2(graph, ROOT_ID);
44
+ const companions = connections.filter((node) => node.type === DECK_COMPANION_TYPE);
45
+ return companions.toSorted((a, b) => byPosition2(a.properties, b.properties));
46
+ };
47
+
48
+ // src/hooks/useHoistStatusbar.ts
49
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
50
+ import { useMemo as useMemo2 } from "react";
51
+ import { Capabilities, useCapability } from "@dxos/app-framework";
52
+ import { useThemeContext } from "@dxos/react-ui";
53
+ var useHoistStatusbar = (breakpoint, layoutMode) => {
54
+ var _effect = _useSignals();
55
+ try {
56
+ const enableStatusbar = useCapability(Capabilities.SettingsStore).getStore(DECK_PLUGIN).value.enableStatusbar;
57
+ const { safeAreaPadding } = useThemeContext();
58
+ return useMemo2(() => {
59
+ return breakpoint === "desktop" && layoutMode !== "solo--fullscreen" && !!enableStatusbar && safeAreaPadding?.bottom === 0;
60
+ }, [
61
+ enableStatusbar,
62
+ breakpoint,
63
+ safeAreaPadding?.bottom,
64
+ layoutMode
65
+ ]);
66
+ } finally {
67
+ _effect.f();
68
+ }
69
+ };
70
+
71
+ // src/hooks/useMainSize.ts
72
+ import { useMainContext } from "@dxos/react-ui";
73
+ var useMainSize = () => {
74
+ const { navigationSidebarState, complementarySidebarState } = useMainContext("DeckPluginPlank");
75
+ return {
76
+ "data-sidebar-inline-start-state": navigationSidebarState,
77
+ "data-sidebar-inline-end-state": complementarySidebarState
78
+ };
79
+ };
80
+
81
+ // src/hooks/useNodeActionExpander.ts
82
+ import { useEffect } from "react";
83
+ import { getGraph } from "@dxos/plugin-graph";
84
+ var useNodeActionExpander = (node) => {
85
+ useEffect(() => {
86
+ if (node) {
87
+ const frame = requestAnimationFrame(() => {
88
+ const graph = getGraph(node);
89
+ void graph.expand(node.id);
90
+ });
91
+ return () => cancelAnimationFrame(frame);
92
+ }
93
+ }, [
94
+ node
95
+ ]);
96
+ };
97
+
98
+ // src/capabilities/index.ts
99
+ import { lazy } from "@dxos/app-framework";
100
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-YCSX45KJ.mjs"));
101
+ var CheckAppScheme = lazy(() => import("./check-app-scheme-3YZIA73T.mjs"));
102
+ var DeckSettings = lazy(() => import("./settings-WE3TBMOC.mjs"));
103
+ var DeckState = lazy(() => import("./state-DUK6WFDX.mjs"));
104
+ var LayoutIntentResolver = lazy(() => import("./intent-resolver-URTWBGD7.mjs"));
105
+ var ReactRoot = lazy(() => import("./react-root-GFX4GOJT.mjs"));
106
+ var ReactSurface = lazy(() => import("./react-surface-F6L5PLWK.mjs"));
107
+ var Tools = lazy(() => import("./tools-HH6NN7HB.mjs"));
108
+ var UrlHandler = lazy(() => import("./url-handler-774BWWKI.mjs"));
109
+
110
+ export {
111
+ useBreakpoints,
112
+ useCompanions,
113
+ getCompanionId,
114
+ useDeckCompanions,
115
+ useHoistStatusbar,
116
+ useMainSize,
117
+ useNodeActionExpander,
118
+ AppGraphBuilder,
119
+ CheckAppScheme,
120
+ DeckSettings,
121
+ DeckState,
122
+ LayoutIntentResolver,
123
+ ReactRoot,
124
+ ReactSurface,
125
+ Tools,
126
+ UrlHandler
127
+ };
128
+ //# sourceMappingURL=chunk-F4YIQ5GG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useCompanions.ts", "../../../src/hooks/useBreakpoints.ts", "../../../src/hooks/useDeckCompanions.ts", "../../../src/hooks/useHoistStatusbar.ts", "../../../src/hooks/useMainSize.ts", "../../../src/hooks/useNodeActionExpander.ts", "../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { useAppGraph } from '@dxos/app-framework';\nimport { useConnections } from '@dxos/plugin-graph';\nimport { byPosition } from '@dxos/util';\n\nimport { PLANK_COMPANION_TYPE } from '../types';\n\nexport const useCompanions = (id?: string) => {\n const { graph } = useAppGraph();\n const nodes = useConnections(graph, id);\n const companions = nodes.filter((node) => node.type === PLANK_COMPANION_TYPE);\n return useMemo(() => companions.toSorted((a, b) => byPosition(a.properties, b.properties)), [companions]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMediaQuery } from '@dxos/react-ui';\n\nexport const useBreakpoints = () => {\n const [isNotMobile] = useMediaQuery('md');\n const [isDesktop] = useMediaQuery('lg');\n return isDesktop ? 'desktop' : isNotMobile ? 'tablet' : 'mobile';\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Label, useAppGraph } from '@dxos/app-framework';\nimport { ROOT_ID, useConnections, type Node } from '@dxos/plugin-graph';\nimport { byPosition, type Position } from '@dxos/util';\n\nimport { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from '../types';\n\nexport const getCompanionId = (id: string) => {\n const [_, companionId] = id.split(ATTENDABLE_PATH_SEPARATOR);\n return companionId ?? 'never';\n};\n\nexport type DeckCompanion = Node<\n any,\n {\n label: Label;\n icon: string;\n // TODO(burdon): Scroll area should be controlled by surface.\n /** If true, the panel will not be wrapped in a scroll area. */\n fixed?: boolean;\n position?: Position;\n }\n>;\n\nexport const useDeckCompanions = (): DeckCompanion[] => {\n const { graph } = useAppGraph();\n const connections = useConnections(graph, ROOT_ID);\n const companions = connections.filter((node) => node.type === DECK_COMPANION_TYPE) as DeckCompanion[];\n return companions.toSorted((a, b) => byPosition(a.properties, b.properties));\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { Capabilities, useCapability } from '@dxos/app-framework';\nimport { useThemeContext } from '@dxos/react-ui';\n\nimport { DECK_PLUGIN } from '../meta';\nimport type { DeckSettingsProps, LayoutMode } from '../types';\n\nexport const useHoistStatusbar = (breakpoint: string, layoutMode?: LayoutMode): boolean => {\n const enableStatusbar = useCapability(Capabilities.SettingsStore).getStore<DeckSettingsProps>(DECK_PLUGIN)!.value\n .enableStatusbar;\n const { safeAreaPadding } = useThemeContext();\n return useMemo(() => {\n return (\n breakpoint === 'desktop' &&\n layoutMode !== 'solo--fullscreen' &&\n !!enableStatusbar &&\n safeAreaPadding?.bottom === 0\n );\n }, [enableStatusbar, breakpoint, safeAreaPadding?.bottom, layoutMode]);\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useMainContext } from '@dxos/react-ui';\n\nexport const useMainSize = () => {\n const { navigationSidebarState, complementarySidebarState } = useMainContext('DeckPluginPlank');\n return {\n 'data-sidebar-inline-start-state': navigationSidebarState,\n 'data-sidebar-inline-end-state': complementarySidebarState,\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { getGraph, type Node } from '@dxos/plugin-graph';\n\nexport const useNodeActionExpander = (node?: Node) => {\n useEffect(() => {\n if (node) {\n const frame = requestAnimationFrame(() => {\n const graph = getGraph(node);\n void graph.expand(node.id);\n });\n return () => cancelAnimationFrame(frame);\n }\n }, [node]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const CheckAppScheme = lazy(() => import('./check-app-scheme'));\nexport const DeckSettings = lazy(() => import('./settings'));\nexport const DeckState = lazy(() => import('./state'));\nexport const LayoutIntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactRoot = lazy(() => import('./react-root'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const Tools = lazy(() => import('./tools'));\nexport const UrlHandler = lazy(() => import('./url-handler'));\n\nexport * from './capabilities';\nexport * from './state';\n"],
5
+ "mappings": "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",
6
+ "names": ["useMemo", "useAppGraph", "useConnections", "byPosition", "useCompanions", "id", "graph", "useAppGraph", "nodes", "useConnections", "companions", "filter", "node", "type", "PLANK_COMPANION_TYPE", "useMemo", "toSorted", "a", "b", "byPosition", "properties", "useMediaQuery", "useBreakpoints", "isNotMobile", "useMediaQuery", "isDesktop", "useAppGraph", "ROOT_ID", "useConnections", "byPosition", "getCompanionId", "id", "_", "companionId", "split", "ATTENDABLE_PATH_SEPARATOR", "useDeckCompanions", "graph", "useAppGraph", "connections", "useConnections", "ROOT_ID", "companions", "filter", "node", "type", "DECK_COMPANION_TYPE", "toSorted", "a", "b", "byPosition", "properties", "useMemo", "Capabilities", "useCapability", "useThemeContext", "useHoistStatusbar", "breakpoint", "layoutMode", "enableStatusbar", "useCapability", "Capabilities", "SettingsStore", "getStore", "DECK_PLUGIN", "value", "safeAreaPadding", "useThemeContext", "useMemo", "bottom", "useMainContext", "useMainSize", "navigationSidebarState", "complementarySidebarState", "useMainContext", "useEffect", "getGraph", "useNodeActionExpander", "node", "useEffect", "frame", "requestAnimationFrame", "graph", "getGraph", "expand", "id", "cancelAnimationFrame", "lazy", "AppGraphBuilder", "lazy", "CheckAppScheme", "DeckSettings", "DeckState", "LayoutIntentResolver", "ReactRoot", "ReactSurface", "Tools", "UrlHandler"]
7
+ }
@@ -0,0 +1,15 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/meta.ts
4
+ var DECK_PLUGIN = "dxos.org/plugin/deck";
5
+ var meta = {
6
+ id: DECK_PLUGIN,
7
+ name: "Layout",
8
+ icon: "ph--layout--regular"
9
+ };
10
+
11
+ export {
12
+ DECK_PLUGIN,
13
+ meta
14
+ };
15
+ //# sourceMappingURL=chunk-HHG6H2BX.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const DECK_PLUGIN = 'dxos.org/plugin/deck' as const;\n\nexport const meta: PluginMeta = {\n id: DECK_PLUGIN,\n name: 'Layout',\n icon: 'ph--layout--regular',\n};\n"],
5
+ "mappings": ";;;AAMO,IAAMA,cAAc;AAEpB,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,MAAM;AACR;",
6
+ "names": ["DECK_PLUGIN", "meta", "id", "name", "icon"]
7
+ }