@dxos/plugin-attention 0.8.4-main.c4373fc → 0.8.4-main.d05673bc65

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 (105) hide show
  1. package/dist/lib/browser/chunk-JO3EOIIM.mjs +79 -0
  2. package/dist/lib/browser/chunk-JO3EOIIM.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +50 -55
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/keyboard-AV3LSVDV.mjs +22 -0
  6. package/dist/lib/browser/keyboard-AV3LSVDV.mjs.map +7 -0
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/operation-resolver-FH44CQ25.mjs +52 -0
  9. package/dist/lib/browser/operation-resolver-FH44CQ25.mjs.map +7 -0
  10. package/dist/lib/browser/{react-context-7HCRTOWZ.mjs → react-context-GCD36IDC.mjs} +9 -9
  11. package/dist/lib/browser/react-context-GCD36IDC.mjs.map +7 -0
  12. package/dist/lib/browser/types/index.mjs +9 -4
  13. package/dist/lib/node-esm/chunk-CRCKBQIM.mjs +81 -0
  14. package/dist/lib/node-esm/chunk-CRCKBQIM.mjs.map +7 -0
  15. package/dist/lib/node-esm/index.mjs +50 -55
  16. package/dist/lib/node-esm/index.mjs.map +4 -4
  17. package/dist/lib/node-esm/keyboard-STZXDVX7.mjs +23 -0
  18. package/dist/lib/node-esm/keyboard-STZXDVX7.mjs.map +7 -0
  19. package/dist/lib/node-esm/meta.json +1 -1
  20. package/dist/lib/node-esm/operation-resolver-WLB3FSCG.mjs +53 -0
  21. package/dist/lib/node-esm/operation-resolver-WLB3FSCG.mjs.map +7 -0
  22. package/dist/lib/node-esm/{react-context-7RDGSUXD.mjs → react-context-WMKDSFBF.mjs} +9 -9
  23. package/dist/lib/node-esm/react-context-WMKDSFBF.mjs.map +7 -0
  24. package/dist/lib/node-esm/types/index.mjs +9 -4
  25. package/dist/types/src/AttentionPlugin.d.ts +2 -1
  26. package/dist/types/src/AttentionPlugin.d.ts.map +1 -1
  27. package/dist/types/src/capabilities/index.d.ts +3 -8
  28. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  29. package/dist/types/src/capabilities/keyboard/index.d.ts +3 -0
  30. package/dist/types/src/capabilities/keyboard/index.d.ts.map +1 -0
  31. package/dist/types/src/capabilities/keyboard/keyboard.d.ts +5 -0
  32. package/dist/types/src/capabilities/keyboard/keyboard.d.ts.map +1 -0
  33. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  34. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  35. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  36. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  37. package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
  38. package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
  39. package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
  40. package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
  41. package/dist/types/src/index.d.ts +1 -2
  42. package/dist/types/src/index.d.ts.map +1 -1
  43. package/dist/types/src/meta.d.ts +2 -2
  44. package/dist/types/src/meta.d.ts.map +1 -1
  45. package/dist/types/src/types/capabilities.d.ts +7 -0
  46. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  47. package/dist/types/src/types/events.d.ts +5 -0
  48. package/dist/types/src/types/events.d.ts.map +1 -0
  49. package/dist/types/src/types/index.d.ts +2 -0
  50. package/dist/types/src/types/index.d.ts.map +1 -1
  51. package/dist/types/src/types/types.d.ts +38 -2
  52. package/dist/types/src/types/types.d.ts.map +1 -1
  53. package/dist/types/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +20 -15
  55. package/src/AttentionPlugin.ts +34 -33
  56. package/src/capabilities/index.ts +3 -7
  57. package/src/capabilities/keyboard/index.ts +7 -0
  58. package/src/capabilities/keyboard/keyboard.ts +25 -0
  59. package/src/capabilities/operation-resolver/index.ts +7 -0
  60. package/src/capabilities/operation-resolver/operation-resolver.ts +45 -0
  61. package/src/capabilities/react-context/index.ts +7 -0
  62. package/src/capabilities/react-context/react-context.tsx +39 -0
  63. package/src/index.ts +1 -2
  64. package/src/meta.ts +8 -3
  65. package/src/types/capabilities.ts +13 -0
  66. package/src/types/events.ts +11 -0
  67. package/src/types/index.ts +2 -0
  68. package/src/types/types.ts +22 -2
  69. package/dist/lib/browser/chunk-EJ4ELAEO.mjs +0 -16
  70. package/dist/lib/browser/chunk-EJ4ELAEO.mjs.map +0 -7
  71. package/dist/lib/browser/chunk-NMXGUHSU.mjs +0 -10
  72. package/dist/lib/browser/chunk-NMXGUHSU.mjs.map +0 -7
  73. package/dist/lib/browser/chunk-SBLZSJTD.mjs +0 -25
  74. package/dist/lib/browser/chunk-SBLZSJTD.mjs.map +0 -7
  75. package/dist/lib/browser/intent-resolver-C3JE25O5.mjs +0 -51
  76. package/dist/lib/browser/intent-resolver-C3JE25O5.mjs.map +0 -7
  77. package/dist/lib/browser/keyboard-H7IAAFBN.mjs +0 -28
  78. package/dist/lib/browser/keyboard-H7IAAFBN.mjs.map +0 -7
  79. package/dist/lib/browser/react-context-7HCRTOWZ.mjs.map +0 -7
  80. package/dist/lib/node-esm/chunk-FKQHPGTA.mjs +0 -17
  81. package/dist/lib/node-esm/chunk-FKQHPGTA.mjs.map +0 -7
  82. package/dist/lib/node-esm/chunk-GC4PRMVZ.mjs +0 -12
  83. package/dist/lib/node-esm/chunk-GC4PRMVZ.mjs.map +0 -7
  84. package/dist/lib/node-esm/chunk-YNOCLBTT.mjs +0 -26
  85. package/dist/lib/node-esm/chunk-YNOCLBTT.mjs.map +0 -7
  86. package/dist/lib/node-esm/intent-resolver-2IB4I23V.mjs +0 -52
  87. package/dist/lib/node-esm/intent-resolver-2IB4I23V.mjs.map +0 -7
  88. package/dist/lib/node-esm/keyboard-Y32WSEOC.mjs +0 -29
  89. package/dist/lib/node-esm/keyboard-Y32WSEOC.mjs.map +0 -7
  90. package/dist/lib/node-esm/react-context-7RDGSUXD.mjs.map +0 -7
  91. package/dist/types/src/capabilities/capabilities.d.ts +0 -6
  92. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  94. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  95. package/dist/types/src/capabilities/keyboard.d.ts +0 -4
  96. package/dist/types/src/capabilities/keyboard.d.ts.map +0 -1
  97. package/dist/types/src/capabilities/react-context.d.ts +0 -8
  98. package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
  99. package/dist/types/src/events.d.ts +0 -4
  100. package/dist/types/src/events.d.ts.map +0 -1
  101. package/src/capabilities/capabilities.ts +0 -13
  102. package/src/capabilities/intent-resolver.ts +0 -43
  103. package/src/capabilities/keyboard.ts +0 -26
  104. package/src/capabilities/react-context.tsx +0 -35
  105. package/src/events.ts +0 -11
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@dxos/plugin-attention",
3
- "version": "0.8.4-main.c4373fc",
3
+ "version": "0.8.4-main.d05673bc65",
4
4
  "description": "Plugin for attention",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/dxos/dxos"
10
+ },
7
11
  "license": "MIT",
8
12
  "author": "DXOS.org",
9
13
  "sideEffects": true,
@@ -35,24 +39,25 @@
35
39
  "src"
36
40
  ],
37
41
  "dependencies": {
38
- "@preact-signals/safe-react": "^0.9.0",
39
- "@preact/signals-core": "^1.12.1",
40
- "effect": "3.18.3",
41
- "@dxos/app-framework": "0.8.4-main.c4373fc",
42
- "@dxos/echo": "0.8.4-main.c4373fc",
43
- "@dxos/echo-signals": "0.8.4-main.c4373fc",
44
- "@dxos/keyboard": "0.8.4-main.c4373fc",
45
- "@dxos/react-ui-attention": "0.8.4-main.c4373fc"
42
+ "effect": "3.19.16",
43
+ "@dxos/app-framework": "0.8.4-main.d05673bc65",
44
+ "@dxos/app-toolkit": "0.8.4-main.d05673bc65",
45
+ "@dxos/echo": "0.8.4-main.d05673bc65",
46
+ "@dxos/keyboard": "0.8.4-main.d05673bc65",
47
+ "@dxos/react-ui-attention": "0.8.4-main.d05673bc65",
48
+ "@dxos/plugin-graph": "0.8.4-main.d05673bc65",
49
+ "@dxos/operation": "0.8.4-main.d05673bc65",
50
+ "@dxos/util": "0.8.4-main.d05673bc65"
46
51
  },
47
52
  "devDependencies": {
48
- "@types/react": "~19.2.2",
49
- "react": "~19.2.0",
50
- "react-dom": "~19.2.0"
53
+ "@types/react": "~19.2.7",
54
+ "react": "~19.2.3",
55
+ "react-dom": "~19.2.3"
51
56
  },
52
57
  "peerDependencies": {
53
- "effect": "^3.13.3",
54
- "react": "^19.0.0",
55
- "react-dom": "^19.0.0"
58
+ "effect": "3.19.16",
59
+ "react": "~19.2.3",
60
+ "react-dom": "~19.2.3"
56
61
  },
57
62
  "publishConfig": {
58
63
  "access": "public"
@@ -2,44 +2,45 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Events, allOf, contributes, defineModule, definePlugin } from '@dxos/app-framework';
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { ActivationEvent, ActivationEvents, Capabilities, Capability, Plugin } from '@dxos/app-framework';
8
+ import { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';
6
9
  import { AttentionManager, SelectionManager } from '@dxos/react-ui-attention';
7
10
 
8
- import { AttentionCapabilities, IntentResolver, Keyboard, ReactContext } from './capabilities';
9
- import { AttentionEvents } from './events';
11
+ import { Keyboard, OperationResolver, ReactContext } from './capabilities';
10
12
  import { meta } from './meta';
13
+ import { AttentionEvents } from './types';
14
+ import { AttentionCapabilities } from './types';
11
15
 
12
- export const AttentionPlugin = definePlugin(meta, () => [
13
- defineModule({
14
- id: `${meta.id}/module/attention`,
15
- activatesOn: Events.Startup,
16
+ export const AttentionPlugin = Plugin.define(meta).pipe(
17
+ AppPlugin.addOperationResolverModule({ activate: OperationResolver }),
18
+ Plugin.addModule({
19
+ id: 'attention',
20
+ activatesOn: ActivationEvents.Startup,
16
21
  activatesAfter: [AttentionEvents.AttentionReady],
17
- activate: () => {
18
- const attention = new AttentionManager();
19
- const selection = new SelectionManager();
20
- setupDevtools(attention);
21
- return [
22
- contributes(AttentionCapabilities.Attention, attention),
23
- contributes(AttentionCapabilities.Selection, selection),
24
- ];
25
- },
22
+ activate: () =>
23
+ Effect.gen(function* () {
24
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
25
+ const attention = new AttentionManager(registry);
26
+ const selection = new SelectionManager(registry);
27
+ setupDevtools(attention);
28
+ return [
29
+ Capability.contributes(AttentionCapabilities.Attention, attention),
30
+ Capability.contributes(AttentionCapabilities.Selection, selection),
31
+ ];
32
+ }),
26
33
  }),
27
- defineModule({
28
- id: `${meta.id}/module/react-context`,
29
- activatesOn: Events.Startup,
34
+ Plugin.addModule({
35
+ activatesOn: ActivationEvents.Startup,
30
36
  activate: ReactContext,
31
37
  }),
32
- defineModule({
33
- id: `${meta.id}/module/keyboard`,
34
- activatesOn: allOf(Events.AppGraphReady, AttentionEvents.AttentionReady),
38
+ Plugin.addModule({
39
+ activatesOn: ActivationEvent.allOf(AppActivationEvents.AppGraphReady, AttentionEvents.AttentionReady),
35
40
  activate: Keyboard,
36
41
  }),
37
- defineModule({
38
- id: `${meta.id}/module/intent-resolver`,
39
- activatesOn: Events.SetupIntentResolver,
40
- activate: IntentResolver,
41
- }),
42
- ]);
42
+ Plugin.make,
43
+ );
43
44
 
44
45
  const setupDevtools = (attention: AttentionManager) => {
45
46
  (globalThis as any).composer ??= {};
@@ -49,13 +50,13 @@ const setupDevtools = (attention: AttentionManager) => {
49
50
  return attention;
50
51
  },
51
52
  get attended() {
52
- return attention.current;
53
+ return attention.getCurrent();
53
54
  },
54
55
  get currentSpace() {
55
- for (const id of attention.current) {
56
- const [spaceId, objectId] = id.split(':');
57
- if (spaceId && objectId && spaceId.length === 33) {
58
- return spaceId;
56
+ for (const id of attention.getCurrent()) {
57
+ const segments = id.split('/');
58
+ if (segments.length > 1 && segments[1].length === 33) {
59
+ return segments[1];
59
60
  }
60
61
  }
61
62
  },
@@ -2,10 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from '@dxos/app-framework';
6
-
7
- export const IntentResolver = lazy(() => import('./intent-resolver'));
8
- export const Keyboard = lazy(() => import('./keyboard'));
9
- export const ReactContext = lazy(() => import('./react-context'));
10
-
11
- export * from './capabilities';
5
+ export * from './keyboard';
6
+ export * from './operation-resolver';
7
+ export * from './react-context';
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const Keyboard = Capability.lazy('Keyboard', () => import('./keyboard'));
@@ -0,0 +1,25 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capabilities, Capability } from '@dxos/app-framework';
8
+ import { Keyboard } from '@dxos/keyboard';
9
+
10
+ import { AttentionCapabilities } from '../../types';
11
+
12
+ export default Capability.makeModule(
13
+ Effect.fnUntraced(function* () {
14
+ const attention = yield* Capability.get(AttentionCapabilities.Attention);
15
+
16
+ const unsubscribe = attention.subscribeCurrent((current) => {
17
+ const id = current[0];
18
+ if (id) {
19
+ Keyboard.singleton.setCurrentContext(id);
20
+ }
21
+ });
22
+
23
+ return Capability.contributes(Capabilities.Null, null, () => Effect.sync(() => unsubscribe()));
24
+ }),
25
+ );
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));
@@ -0,0 +1,45 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import * as Match from 'effect/Match';
7
+
8
+ import { Capabilities, Capability } from '@dxos/app-framework';
9
+ import { OperationResolver } from '@dxos/operation';
10
+
11
+ import { AttentionCapabilities, AttentionOperation } from '../../types';
12
+
13
+ export default Capability.makeModule(
14
+ Effect.fnUntraced(function* () {
15
+ return Capability.contributes(Capabilities.OperationResolver, [
16
+ OperationResolver.make({
17
+ operation: AttentionOperation.Select,
18
+ handler: Effect.fnUntraced(function* (input) {
19
+ const selection = yield* Capability.get(AttentionCapabilities.Selection);
20
+ Match.value(input.selection).pipe(
21
+ Match.when({ mode: 'single', id: undefined }, () => {
22
+ selection.clearSelection(input.contextId);
23
+ }),
24
+ Match.when({ mode: 'single' }, (s) => {
25
+ selection.updateSingle(input.contextId, s.id!);
26
+ }),
27
+ Match.when({ mode: 'multi' }, (s) => {
28
+ selection.updateMulti(input.contextId, s.ids);
29
+ }),
30
+ Match.when({ mode: 'range', from: undefined, to: undefined }, () => {
31
+ selection.clearSelection(input.contextId);
32
+ }),
33
+ Match.when({ mode: 'range' }, (s) => {
34
+ selection.updateRange(input.contextId, s.from!, s.to!);
35
+ }),
36
+ Match.when({ mode: 'multi-range' }, (s) => {
37
+ selection.updateMultiRange(input.contextId, s.ranges);
38
+ }),
39
+ Match.exhaustive,
40
+ );
41
+ }),
42
+ }),
43
+ ]);
44
+ }),
45
+ );
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const ReactContext = Capability.lazy('ReactContext', () => import('./react-context'));
@@ -0,0 +1,39 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import React, { type PropsWithChildren } from 'react';
7
+
8
+ import { Capabilities, Capability } from '@dxos/app-framework';
9
+ import { useCapability } from '@dxos/app-framework/ui';
10
+ import { RootAttentionProvider, SelectionProvider } from '@dxos/react-ui-attention';
11
+
12
+ import { meta } from '../../meta';
13
+ import { AttentionCapabilities } from '../../types';
14
+
15
+ export default Capability.makeModule(() =>
16
+ Effect.succeed(
17
+ Capability.contributes(Capabilities.ReactContext, {
18
+ id: meta.id,
19
+ context: (props: PropsWithChildren) => {
20
+ const attention = useCapability(AttentionCapabilities.Attention);
21
+ const selection = useCapability(AttentionCapabilities.Selection);
22
+
23
+ return (
24
+ <RootAttentionProvider
25
+ attention={attention}
26
+ onChange={(nextAttended) => {
27
+ // TODO(Zan): Workout why this was in deck plugin. It didn't seem to work?
28
+ // if (layout.values.scrollIntoView && nextAttended.has(layout.values.scrollIntoView)) {
29
+ // layout.values.scrollIntoView = undefined;
30
+ // }
31
+ }}
32
+ >
33
+ <SelectionProvider selection={selection}>{props.children}</SelectionProvider>
34
+ </RootAttentionProvider>
35
+ );
36
+ },
37
+ }),
38
+ ),
39
+ );
package/src/index.ts CHANGED
@@ -5,6 +5,5 @@
5
5
  export * from '@dxos/react-ui-attention';
6
6
 
7
7
  export * from './AttentionPlugin';
8
- export { AttentionCapabilities } from './capabilities';
9
- export * from './events';
10
8
  export * from './meta';
9
+ export * from './types';
package/src/meta.ts CHANGED
@@ -2,9 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { type PluginMeta } from '@dxos/app-framework';
5
+ import { type Plugin } from '@dxos/app-framework';
6
+ import { trim } from '@dxos/util';
6
7
 
7
- export const meta: PluginMeta = {
8
- id: 'dxos.org/plugin/attention',
8
+ export const meta: Plugin.Meta = {
9
+ id: 'org.dxos.plugin.attention',
9
10
  name: 'Attention',
11
+ description: trim`
12
+ Track and manage focused attention on objects across your workspace.
13
+ Highlight items requiring action and coordinate team focus on priority work.
14
+ `,
10
15
  };
@@ -0,0 +1,13 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+ import { type AttentionManager, type SelectionManager } from '@dxos/react-ui-attention';
7
+
8
+ import { meta } from '../meta';
9
+
10
+ export namespace AttentionCapabilities {
11
+ export const Attention = Capability.make<AttentionManager>(`${meta.id}.capability.attention`);
12
+ export const Selection = Capability.make<SelectionManager>(`${meta.id}.capability.selection`);
13
+ }
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { ActivationEvent } from '@dxos/app-framework';
6
+
7
+ import { meta } from '../meta';
8
+
9
+ export namespace AttentionEvents {
10
+ export const AttentionReady = ActivationEvent.make(`${meta.id}.event.attention-ready`);
11
+ }
@@ -2,4 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ export * from './capabilities';
6
+ export * from './events';
5
7
  export * from './types';
@@ -4,14 +4,16 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { Operation } from '@dxos/operation';
7
9
  import { SelectionSchema } from '@dxos/react-ui-attention';
8
10
 
9
11
  import { meta } from '../meta';
10
12
 
11
13
  export namespace AttentionAction {
12
- const ATTENTION_ACTION = `${meta.id}/action`;
14
+ const ATTENTION_ACTION = `${meta.id}.action`;
13
15
 
14
- export class Select extends Schema.TaggedClass<Select>()(`${ATTENTION_ACTION}/select`, {
16
+ export class Select extends Schema.TaggedClass<Select>()(`${ATTENTION_ACTION}.select`, {
15
17
  input: Schema.Struct({
16
18
  contextId: Schema.String,
17
19
  selection: SelectionSchema,
@@ -19,3 +21,21 @@ export namespace AttentionAction {
19
21
  output: Schema.Void,
20
22
  }) {}
21
23
  }
24
+
25
+ export namespace AttentionOperation {
26
+ export const Select = Operation.make({
27
+ meta: {
28
+ key: `${meta.id}.operation.select`,
29
+ name: 'Select',
30
+ description: 'Select items in an attention context.',
31
+ },
32
+ services: [Capability.Service],
33
+ schema: {
34
+ input: Schema.Struct({
35
+ contextId: Schema.String.annotations({ description: 'The id of the attention context.' }),
36
+ selection: SelectionSchema.annotations({ description: 'The selection to apply.' }),
37
+ }),
38
+ output: Schema.Void,
39
+ },
40
+ });
41
+ }
@@ -1,16 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-NMXGUHSU.mjs";
4
-
5
- // src/capabilities/capabilities.ts
6
- import { defineCapability } from "@dxos/app-framework";
7
- (function(AttentionCapabilities2) {
8
- AttentionCapabilities2.Attention = defineCapability(`${meta.id}/capability/attention`);
9
- AttentionCapabilities2.Selection = defineCapability(`${meta.id}/capability/selection`);
10
- })(AttentionCapabilities || (AttentionCapabilities = {}));
11
- var AttentionCapabilities;
12
-
13
- export {
14
- AttentionCapabilities
15
- };
16
- //# sourceMappingURL=chunk-EJ4ELAEO.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/capabilities.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type AttentionManager, type SelectionManager } from '@dxos/react-ui-attention';\n\nimport { meta } from '../meta';\n\nexport namespace AttentionCapabilities {\n export const Attention = defineCapability<AttentionManager>(`${meta.id}/capability/attention`);\n export const Selection = defineCapability<SelectionManager>(`${meta.id}/capability/selection`);\n}\n"],
5
- "mappings": ";;;;;AAIA,SAASA,wBAAwB;UAKhBC,wBAAAA;yBACFC,YAAYC,iBAAmC,GAAGC,KAAKC,EAAE,uBAAuB;yBAChFC,YAAYH,iBAAmC,GAAGC,KAAKC,EAAE,uBAAuB;AAC/F,GAHiBJ,0BAAAA,wBAAAA,CAAAA,EAAAA;;",
6
- "names": ["defineCapability", "AttentionCapabilities", "Attention", "defineCapability", "meta", "id", "Selection"]
7
- }
@@ -1,10 +0,0 @@
1
- // src/meta.ts
2
- var meta = {
3
- id: "dxos.org/plugin/attention",
4
- name: "Attention"
5
- };
6
-
7
- export {
8
- meta
9
- };
10
- //# sourceMappingURL=chunk-NMXGUHSU.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/attention',\n name: 'Attention',\n};\n"],
5
- "mappings": ";AAMO,IAAMA,OAAmB;EAC9BC,IAAI;EACJC,MAAM;AACR;",
6
- "names": ["meta", "id", "name"]
7
- }
@@ -1,25 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-NMXGUHSU.mjs";
4
-
5
- // src/types/types.ts
6
- import * as Schema from "effect/Schema";
7
- import { SelectionSchema } from "@dxos/react-ui-attention";
8
- (function(AttentionAction2) {
9
- const ATTENTION_ACTION = `${meta.id}/action`;
10
- class Select extends Schema.TaggedClass()(`${ATTENTION_ACTION}/select`, {
11
- input: Schema.Struct({
12
- contextId: Schema.String,
13
- selection: SelectionSchema
14
- }),
15
- output: Schema.Void
16
- }) {
17
- }
18
- AttentionAction2.Select = Select;
19
- })(AttentionAction || (AttentionAction = {}));
20
- var AttentionAction;
21
-
22
- export {
23
- AttentionAction
24
- };
25
- //# sourceMappingURL=chunk-SBLZSJTD.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SelectionSchema } from '@dxos/react-ui-attention';\n\nimport { meta } from '../meta';\n\nexport namespace AttentionAction {\n const ATTENTION_ACTION = `${meta.id}/action`;\n\n export class Select extends Schema.TaggedClass<Select>()(`${ATTENTION_ACTION}/select`, {\n input: Schema.Struct({\n contextId: Schema.String,\n selection: SelectionSchema,\n }),\n output: Schema.Void,\n }) {}\n}\n"],
5
- "mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,uBAAuB;UAIfC,kBAAAA;AACf,QAAMC,mBAAmB,GAAGC,KAAKC,EAAE;EAE5B,MAAMC,eAAsBC,mBAAW,EAAW,GAAGJ,gBAAAA,WAA2B;IACrFK,OAAcC,cAAO;MACnBC,WAAkBC;MAClBC,WAAWC;IACb,CAAA;IACAC,QAAeC;EACjB,CAAA,EAAA;EAAI;mBANST,SAAAA;AAOf,GAViBJ,oBAAAA,kBAAAA,CAAAA,EAAAA;;",
6
- "names": ["Schema", "SelectionSchema", "AttentionAction", "ATTENTION_ACTION", "meta", "id", "Select", "TaggedClass", "input", "Struct", "contextId", "String", "selection", "SelectionSchema", "output", "Void"]
7
- }
@@ -1,51 +0,0 @@
1
- import {
2
- AttentionAction
3
- } from "./chunk-SBLZSJTD.mjs";
4
- import {
5
- AttentionCapabilities
6
- } from "./chunk-EJ4ELAEO.mjs";
7
- import "./chunk-NMXGUHSU.mjs";
8
-
9
- // src/capabilities/intent-resolver.ts
10
- import * as Match from "effect/Match";
11
- import { Capabilities, contributes, createResolver } from "@dxos/app-framework";
12
- var intent_resolver_default = ((context) => contributes(Capabilities.IntentResolver, [
13
- createResolver({
14
- intent: AttentionAction.Select,
15
- resolve: (data) => {
16
- const selection = context.getCapability(AttentionCapabilities.Selection);
17
- Match.type().pipe(Match.when({
18
- mode: "single",
19
- id: void 0
20
- }, () => {
21
- selection.clearSelection(data.contextId);
22
- }), Match.when({
23
- mode: "single"
24
- }, (s) => {
25
- selection.updateSingle(data.contextId, s.id);
26
- }), Match.when({
27
- mode: "multi"
28
- }, (s) => {
29
- selection.updateMulti(data.contextId, s.ids);
30
- }), Match.when({
31
- mode: "range",
32
- from: void 0,
33
- to: void 0
34
- }, () => {
35
- selection.clearSelection(data.contextId);
36
- }), Match.when({
37
- mode: "range"
38
- }, (s) => {
39
- selection.updateRange(data.contextId, s.from, s.to);
40
- }), Match.when({
41
- mode: "multi-range"
42
- }, (s) => {
43
- selection.updateMultiRange(data.contextId, s.ranges);
44
- }), Match.exhaustive)(data.selection);
45
- }
46
- })
47
- ]));
48
- export {
49
- intent_resolver_default as default
50
- };
51
- //# sourceMappingURL=intent-resolver-C3JE25O5.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Match from 'effect/Match';\n\nimport { Capabilities, type PluginContext, contributes, createResolver } from '@dxos/app-framework';\nimport { type Selection } from '@dxos/react-ui-attention';\n\nimport { AttentionAction } from '../types';\n\nimport { AttentionCapabilities } from './capabilities';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: AttentionAction.Select,\n resolve: (data) => {\n const selection = context.getCapability(AttentionCapabilities.Selection);\n Match.type<Selection>().pipe(\n Match.when({ mode: 'single', id: undefined }, () => {\n selection.clearSelection(data.contextId);\n }),\n Match.when({ mode: 'single' }, (s) => {\n selection.updateSingle(data.contextId, s.id!);\n }),\n Match.when({ mode: 'multi' }, (s) => {\n selection.updateMulti(data.contextId, s.ids);\n }),\n Match.when({ mode: 'range', from: undefined, to: undefined }, () => {\n selection.clearSelection(data.contextId);\n }),\n Match.when({ mode: 'range' }, (s) => {\n selection.updateRange(data.contextId, s.from!, s.to!);\n }),\n Match.when({ mode: 'multi-range' }, (s) => {\n selection.updateMultiRange(data.contextId, s.ranges);\n }),\n Match.exhaustive,\n )(data.selection);\n },\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;AAIA,YAAYA,WAAW;AAEvB,SAASC,cAAkCC,aAAaC,sBAAsB;AAO9E,IAAA,2BAAe,CAACC,YACdC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,gBAAgBC;IACxBC,SAAS,CAACC,SAAAA;AACR,YAAMC,YAAYV,QAAQW,cAAcC,sBAAsBC,SAAS;AACvEC,MAAMC,WAAI,EAAcC,KAChBC,WAAK;QAAEC,MAAM;QAAUC,IAAIC;MAAU,GAAG,MAAA;AAC5CV,kBAAUW,eAAeZ,KAAKa,SAAS;MACzC,CAAA,GACML,WAAK;QAAEC,MAAM;MAAS,GAAG,CAACK,MAAAA;AAC9Bb,kBAAUc,aAAaf,KAAKa,WAAWC,EAAEJ,EAAE;MAC7C,CAAA,GACMF,WAAK;QAAEC,MAAM;MAAQ,GAAG,CAACK,MAAAA;AAC7Bb,kBAAUe,YAAYhB,KAAKa,WAAWC,EAAEG,GAAG;MAC7C,CAAA,GACMT,WAAK;QAAEC,MAAM;QAASS,MAAMP;QAAWQ,IAAIR;MAAU,GAAG,MAAA;AAC5DV,kBAAUW,eAAeZ,KAAKa,SAAS;MACzC,CAAA,GACML,WAAK;QAAEC,MAAM;MAAQ,GAAG,CAACK,MAAAA;AAC7Bb,kBAAUmB,YAAYpB,KAAKa,WAAWC,EAAEI,MAAOJ,EAAEK,EAAE;MACrD,CAAA,GACMX,WAAK;QAAEC,MAAM;MAAc,GAAG,CAACK,MAAAA;AACnCb,kBAAUoB,iBAAiBrB,KAAKa,WAAWC,EAAEQ,MAAM;MACrD,CAAA,GACMC,gBAAU,EAChBvB,KAAKC,SAAS;IAClB;EACF,CAAA;CACD;",
6
- "names": ["Match", "Capabilities", "contributes", "createResolver", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "AttentionAction", "Select", "resolve", "data", "selection", "getCapability", "AttentionCapabilities", "Selection", "Match", "type", "pipe", "when", "mode", "id", "undefined", "clearSelection", "contextId", "s", "updateSingle", "updateMulti", "ids", "from", "to", "updateRange", "updateMultiRange", "ranges", "exhaustive"]
7
- }
@@ -1,28 +0,0 @@
1
- import {
2
- AttentionCapabilities
3
- } from "./chunk-EJ4ELAEO.mjs";
4
- import "./chunk-NMXGUHSU.mjs";
5
-
6
- // src/capabilities/keyboard.ts
7
- import { effect } from "@preact/signals-core";
8
- import * as Option from "effect/Option";
9
- import { Capabilities as AppCapabilities, contributes } from "@dxos/app-framework";
10
- import { Keyboard } from "@dxos/keyboard";
11
- var keyboard_default = ((context) => {
12
- const { graph } = context.getCapability(AppCapabilities.AppGraph);
13
- const attention = context.getCapability(AttentionCapabilities.Attention);
14
- const unsubscribe = effect(() => {
15
- const id = Array.from(attention.current)[0];
16
- const path = id && graph.getPath({
17
- target: id
18
- }).pipe(Option.getOrNull);
19
- if (path) {
20
- Keyboard.singleton.setCurrentContext(path.join("/"));
21
- }
22
- });
23
- return contributes(AppCapabilities.Null, null, () => unsubscribe());
24
- });
25
- export {
26
- keyboard_default as default
27
- };
28
- //# sourceMappingURL=keyboard-H7IAAFBN.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/keyboard.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities as AppCapabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { Keyboard } from '@dxos/keyboard';\n\nimport { AttentionCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const { graph } = context.getCapability(AppCapabilities.AppGraph);\n const attention = context.getCapability(AttentionCapabilities.Attention);\n\n const unsubscribe = effect(() => {\n const id = Array.from(attention.current)[0];\n const path = id && graph.getPath({ target: id }).pipe(Option.getOrNull);\n if (path) {\n Keyboard.singleton.setCurrentContext(path.join('/'));\n }\n });\n\n return contributes(AppCapabilities.Null, null, () => unsubscribe());\n};\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,cAAc;AACvB,YAAYC,YAAY;AAExB,SAASC,gBAAgBC,iBAAqCC,mBAAmB;AACjF,SAASC,gBAAgB;AAIzB,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAM,EAAEC,MAAK,IAAKD,QAAQE,cAAcC,gBAAgBC,QAAQ;AAChE,QAAMC,YAAYL,QAAQE,cAAcI,sBAAsBC,SAAS;AAEvE,QAAMC,cAAcC,OAAO,MAAA;AACzB,UAAMC,KAAKC,MAAMC,KAAKP,UAAUQ,OAAO,EAAE,CAAA;AACzC,UAAMC,OAAOJ,MAAMT,MAAMc,QAAQ;MAAEC,QAAQN;IAAG,CAAA,EAAGO,KAAYC,gBAAS;AACtE,QAAIJ,MAAM;AACRK,eAASC,UAAUC,kBAAkBP,KAAKQ,KAAK,GAAA,CAAA;IACjD;EACF,CAAA;AAEA,SAAOC,YAAYpB,gBAAgBqB,MAAM,MAAM,MAAMhB,YAAAA,CAAAA;AACvD;",
6
- "names": ["effect", "Option", "Capabilities", "AppCapabilities", "contributes", "Keyboard", "context", "graph", "getCapability", "AppCapabilities", "AppGraph", "attention", "AttentionCapabilities", "Attention", "unsubscribe", "effect", "id", "Array", "from", "current", "path", "getPath", "target", "pipe", "getOrNull", "Keyboard", "singleton", "setCurrentContext", "join", "contributes", "Null"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-context.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\nimport { RootAttentionProvider, SelectionProvider } from '@dxos/react-ui-attention';\n\nimport { meta } from '../meta';\n\nimport { AttentionCapabilities } from './capabilities';\n\nexport default () =>\n contributes(Capabilities.ReactContext, {\n id: meta.id,\n context: (props: PropsWithChildren) => {\n const attention = useCapability(AttentionCapabilities.Attention);\n const selection = useCapability(AttentionCapabilities.Selection);\n\n return (\n <RootAttentionProvider\n attention={attention}\n onChange={(nextAttended) => {\n // TODO(Zan): Workout why this was in deck plugin. It didn't seem to work?\n // if (layout.values.scrollIntoView && nextAttended.has(layout.values.scrollIntoView)) {\n // layout.values.scrollIntoView = undefined;\n // }\n }}\n >\n <SelectionProvider selection={selection}>{props.children}</SelectionProvider>\n </RootAttentionProvider>\n );\n },\n });\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,WAAuC;AAE9C,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,uBAAuBC,yBAAyB;AAMzD,IAAA,yBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,IAAIC,KAAKD;EACTE,SAAS,CAACC,UAAAA;AACR,UAAMC,YAAYC,cAAcC,sBAAsBC,SAAS;AAC/D,UAAMC,YAAYH,cAAcC,sBAAsBG,SAAS;AAE/D,WACE,sBAAA,cAACC,uBAAAA;MACCN;MACAO,UAAU,CAACC,iBAAAA;MAKX;OAEA,sBAAA,cAACC,mBAAAA;MAAkBL;OAAuBL,MAAMW,QAAQ,CAAA;EAG9D;AACF,CAAA;",
6
- "names": ["React", "Capabilities", "contributes", "useCapability", "RootAttentionProvider", "SelectionProvider", "contributes", "Capabilities", "ReactContext", "id", "meta", "context", "props", "attention", "useCapability", "AttentionCapabilities", "Attention", "selection", "Selection", "RootAttentionProvider", "onChange", "nextAttended", "SelectionProvider", "children"]
7
- }
@@ -1,17 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- meta
4
- } from "./chunk-GC4PRMVZ.mjs";
5
-
6
- // src/capabilities/capabilities.ts
7
- import { defineCapability } from "@dxos/app-framework";
8
- (function(AttentionCapabilities2) {
9
- AttentionCapabilities2.Attention = defineCapability(`${meta.id}/capability/attention`);
10
- AttentionCapabilities2.Selection = defineCapability(`${meta.id}/capability/selection`);
11
- })(AttentionCapabilities || (AttentionCapabilities = {}));
12
- var AttentionCapabilities;
13
-
14
- export {
15
- AttentionCapabilities
16
- };
17
- //# sourceMappingURL=chunk-FKQHPGTA.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/capabilities.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type AttentionManager, type SelectionManager } from '@dxos/react-ui-attention';\n\nimport { meta } from '../meta';\n\nexport namespace AttentionCapabilities {\n export const Attention = defineCapability<AttentionManager>(`${meta.id}/capability/attention`);\n export const Selection = defineCapability<SelectionManager>(`${meta.id}/capability/selection`);\n}\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,wBAAwB;UAKhBC,wBAAAA;yBACFC,YAAYC,iBAAmC,GAAGC,KAAKC,EAAE,uBAAuB;yBAChFC,YAAYH,iBAAmC,GAAGC,KAAKC,EAAE,uBAAuB;AAC/F,GAHiBJ,0BAAAA,wBAAAA,CAAAA,EAAAA;;",
6
- "names": ["defineCapability", "AttentionCapabilities", "Attention", "defineCapability", "meta", "id", "Selection"]
7
- }