@dxos/plugin-board 0.8.4-main.f9ba587 → 0.8.4-main.fcfe5033a5

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 (74) hide show
  1. package/dist/lib/browser/chunk-FL67SBF5.mjs +39 -0
  2. package/dist/lib/browser/chunk-FL67SBF5.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +70 -62
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/types/index.mjs +3 -3
  7. package/dist/lib/node-esm/chunk-5GGKJL4Z.mjs +40 -0
  8. package/dist/lib/node-esm/chunk-5GGKJL4Z.mjs.map +7 -0
  9. package/dist/lib/node-esm/index.mjs +70 -62
  10. package/dist/lib/node-esm/index.mjs.map +4 -4
  11. package/dist/lib/node-esm/meta.json +1 -1
  12. package/dist/lib/node-esm/types/index.mjs +3 -3
  13. package/dist/types/src/BoardPlugin.d.ts +2 -1
  14. package/dist/types/src/BoardPlugin.d.ts.map +1 -1
  15. package/dist/types/src/capabilities/index.d.ts +2 -2
  16. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  17. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  18. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  19. package/dist/types/src/components/index.d.ts +0 -1
  20. package/dist/types/src/components/index.d.ts.map +1 -1
  21. package/dist/types/src/containers/BoardContainer/BoardContainer.d.ts +6 -0
  22. package/dist/types/src/containers/BoardContainer/BoardContainer.d.ts.map +1 -0
  23. package/dist/types/src/containers/BoardContainer/BoardContainer.stories.d.ts +47 -0
  24. package/dist/types/src/containers/BoardContainer/BoardContainer.stories.d.ts.map +1 -0
  25. package/dist/types/src/containers/BoardContainer/index.d.ts +2 -0
  26. package/dist/types/src/containers/BoardContainer/index.d.ts.map +1 -0
  27. package/dist/types/src/containers/index.d.ts +3 -0
  28. package/dist/types/src/containers/index.d.ts.map +1 -0
  29. package/dist/types/src/index.d.ts +1 -0
  30. package/dist/types/src/index.d.ts.map +1 -1
  31. package/dist/types/src/meta.d.ts +2 -2
  32. package/dist/types/src/meta.d.ts.map +1 -1
  33. package/dist/types/src/translations.d.ts +12 -8
  34. package/dist/types/src/translations.d.ts.map +1 -1
  35. package/dist/types/src/types/Board.d.ts +46 -0
  36. package/dist/types/src/types/Board.d.ts.map +1 -0
  37. package/dist/types/src/types/index.d.ts +1 -1
  38. package/dist/types/src/types/index.d.ts.map +1 -1
  39. package/dist/types/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +66 -50
  41. package/src/BoardPlugin.tsx +38 -50
  42. package/src/capabilities/index.ts +2 -3
  43. package/src/capabilities/react-surface.tsx +23 -14
  44. package/src/components/index.ts +0 -2
  45. package/src/containers/BoardContainer/BoardContainer.stories.tsx +122 -0
  46. package/src/containers/BoardContainer/BoardContainer.tsx +154 -0
  47. package/src/containers/BoardContainer/index.ts +5 -0
  48. package/src/containers/index.ts +7 -0
  49. package/src/index.ts +1 -0
  50. package/src/meta.ts +9 -5
  51. package/src/translations.ts +12 -8
  52. package/src/types/Board.ts +37 -0
  53. package/src/types/index.ts +1 -1
  54. package/dist/lib/browser/chunk-TDV6SJ64.mjs +0 -46
  55. package/dist/lib/browser/chunk-TDV6SJ64.mjs.map +0 -7
  56. package/dist/lib/browser/intent-resolver-TDOZP647.mjs +0 -33
  57. package/dist/lib/browser/intent-resolver-TDOZP647.mjs.map +0 -7
  58. package/dist/lib/browser/react-surface-SHXN2B3I.mjs +0 -125
  59. package/dist/lib/browser/react-surface-SHXN2B3I.mjs.map +0 -7
  60. package/dist/lib/node-esm/chunk-K6CHLZYU.mjs +0 -48
  61. package/dist/lib/node-esm/chunk-K6CHLZYU.mjs.map +0 -7
  62. package/dist/lib/node-esm/intent-resolver-IHQWKJNT.mjs +0 -34
  63. package/dist/lib/node-esm/intent-resolver-IHQWKJNT.mjs.map +0 -7
  64. package/dist/lib/node-esm/react-surface-DGFWUKUE.mjs +0 -126
  65. package/dist/lib/node-esm/react-surface-DGFWUKUE.mjs.map +0 -7
  66. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  67. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  68. package/dist/types/src/components/BoardContainer.d.ts +0 -8
  69. package/dist/types/src/components/BoardContainer.d.ts.map +0 -1
  70. package/dist/types/src/types/schema.d.ts +0 -65
  71. package/dist/types/src/types/schema.d.ts.map +0 -1
  72. package/src/capabilities/intent-resolver.ts +0 -34
  73. package/src/components/BoardContainer.tsx +0 -94
  74. package/src/types/schema.ts +0 -45
@@ -0,0 +1,39 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ // src/types/Board.ts
8
+ var Board_exports = {};
9
+ __export(Board_exports, {
10
+ Board: () => Board,
11
+ makeBoard: () => makeBoard
12
+ });
13
+ import * as Schema from "effect/Schema";
14
+ import { Annotation, Obj, Ref, Type } from "@dxos/echo";
15
+ import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
16
+ import { BoardLayout, defaultLayout } from "@dxos/react-ui-board";
17
+ var Board = Schema.Struct({
18
+ name: Schema.String.pipe(Schema.optional),
19
+ items: Ref.Ref(Obj.Unknown).pipe(Schema.Array, FormInputAnnotation.set(false)),
20
+ layout: BoardLayout.pipe(FormInputAnnotation.set(false))
21
+ }).pipe(Type.object({
22
+ typename: "org.dxos.type.board",
23
+ version: "0.1.0"
24
+ }), LabelAnnotation.set([
25
+ "name"
26
+ ]), Annotation.IconAnnotation.set({
27
+ icon: "ph--squares-four--regular",
28
+ hue: "green"
29
+ }));
30
+ var makeBoard = (props = {}) => Obj.make(Board, {
31
+ items: [],
32
+ layout: defaultLayout,
33
+ ...props
34
+ });
35
+
36
+ export {
37
+ Board_exports
38
+ };
39
+ //# sourceMappingURL=chunk-FL67SBF5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/Board.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Ref, Type } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { BoardLayout, defaultLayout } from '@dxos/react-ui-board';\n\n/**\n * Board and layout.\n */\nexport const Board = Schema.Struct({\n name: Schema.String.pipe(Schema.optional),\n items: Ref.Ref(Obj.Unknown).pipe(Schema.Array, FormInputAnnotation.set(false)),\n layout: BoardLayout.pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.board',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({\n icon: 'ph--squares-four--regular',\n hue: 'green',\n }),\n);\n\nexport interface Board extends Schema.Schema.Type<typeof Board> {}\n\nexport const makeBoard = (props: Partial<Obj.MakeProps<typeof Board>> = {}) =>\n Obj.make(Board, {\n items: [],\n layout: defaultLayout,\n ...props,\n });\n"],
5
+ "mappings": ";;;;;;;AAAA;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,KAAKC,KAAKC,YAAY;AAC3C,SAASC,qBAAqBC,uBAAuB;AACrD,SAASC,aAAaC,qBAAqB;AAKpC,IAAMC,QAAeC,cAAO;EACjCC,MAAaC,cAAOC,KAAYC,eAAQ;EACxCC,OAAOC,IAAIA,IAAIC,IAAIC,OAAO,EAAEL,KAAYM,cAAOC,oBAAoBC,IAAI,KAAA,CAAA;EACvEC,QAAQC,YAAYV,KAAKO,oBAAoBC,IAAI,KAAA,CAAA;AACnD,CAAA,EAAGR,KACDW,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBP,IAAI;EAAC;CAAO,GAC5BQ,WAAWC,eAAeT,IAAI;EAC5BU,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAKK,IAAMC,YAAY,CAACC,QAA8C,CAAC,MACvEjB,IAAIkB,KAAK1B,OAAO;EACdM,OAAO,CAAA;EACPO,QAAQc;EACR,GAAGF;AACL,CAAA;",
6
+ "names": ["Schema", "Annotation", "Obj", "Ref", "Type", "FormInputAnnotation", "LabelAnnotation", "BoardLayout", "defaultLayout", "Board", "Struct", "name", "String", "pipe", "optional", "items", "Ref", "Obj", "Unknown", "Array", "FormInputAnnotation", "set", "layout", "BoardLayout", "Type", "object", "typename", "version", "LabelAnnotation", "Annotation", "IconAnnotation", "icon", "hue", "makeBoard", "props", "make", "defaultLayout"]
7
+ }
@@ -1,83 +1,91 @@
1
1
  import {
2
- Board,
3
- meta
4
- } from "./chunk-TDV6SJ64.mjs";
2
+ Board_exports
3
+ } from "./chunk-FL67SBF5.mjs";
4
+
5
+ // src/meta.ts
6
+ import { trim } from "@dxos/util";
7
+ var meta = {
8
+ id: "org.dxos.plugin.board",
9
+ name: "Board",
10
+ description: trim`
11
+ Infinite canvas workspace that combines sticky notes, media, and whiteboarding tools.
12
+ Arrange and connect ideas freely in a visual space perfect for brainstorming and creative collaboration.
13
+ `,
14
+ icon: "ph--squares-four--regular",
15
+ iconHue: "green",
16
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-board",
17
+ screenshots: []
18
+ };
5
19
 
6
20
  // src/BoardPlugin.tsx
7
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
8
- import { ClientEvents } from "@dxos/plugin-client";
9
- import { SpaceCapabilities } from "@dxos/plugin-space";
10
- import { defineObjectForm } from "@dxos/plugin-space/types";
21
+ import * as Effect from "effect/Effect";
22
+ import * as Option from "effect/Option";
23
+ import { Plugin } from "@dxos/app-framework";
24
+ import { AppPlugin } from "@dxos/app-toolkit";
25
+ import { Annotation } from "@dxos/echo";
26
+ import { Operation } from "@dxos/operation";
27
+ import { SpaceOperation } from "@dxos/plugin-space/operations";
11
28
  import { translations as boardTranslations } from "@dxos/react-ui-board";
12
-
13
- // src/capabilities/index.ts
14
- import { lazy } from "@dxos/app-framework";
15
- var IntentResolver = lazy(() => import("./intent-resolver-TDOZP647.mjs"));
16
- var ReactSurface = lazy(() => import("./react-surface-SHXN2B3I.mjs"));
29
+ import { ReactSurface } from "#capabilities";
30
+ import { meta as meta3 } from "#meta";
31
+ import { Board as Board2 } from "#types";
17
32
 
18
33
  // src/translations.ts
34
+ import { meta as meta2 } from "#meta";
35
+ import { Board } from "#types";
19
36
  var translations = [
20
37
  {
21
38
  "en-US": {
22
39
  [Board.Board.typename]: {
23
- "typename label": "Board",
24
- "typename label_zero": "Boards",
25
- "typename label_one": "Board",
26
- "typename label_other": "Boards",
27
- "object name placeholder": "New board"
40
+ "typename.label": "Board",
41
+ "typename.label_zero": "Boards",
42
+ "typename.label_one": "Board",
43
+ "typename.label_other": "Boards",
44
+ "object-name.placeholder": "New board",
45
+ "add-object.label": "Add board",
46
+ "rename-object.label": "Rename board",
47
+ "delete-object.label": "Delete board",
48
+ "object-deleted.label": "Board deleted"
28
49
  },
29
- [meta.id]: {
30
- "plugin name": "Board"
50
+ [meta2.id]: {
51
+ "plugin.name": "Board"
31
52
  }
32
53
  }
33
54
  }
34
55
  ];
35
56
 
36
57
  // src/BoardPlugin.tsx
37
- var BoardPlugin = () => {
38
- return definePlugin(meta, [
39
- defineModule({
40
- id: `${meta.id}/module/translations`,
41
- activatesOn: Events.SetupTranslations,
42
- activate: () => contributes(Capabilities.Translations, [
43
- ...translations,
44
- ...boardTranslations
45
- ])
46
- }),
47
- defineModule({
48
- id: `${meta.id}/module/metadata`,
49
- activatesOn: Events.SetupMetadata,
50
- activate: () => (
51
- // TODO(burdon): "Metadata" here seems non-descriptive; is this specifically for the type? ObjectMetadata?
52
- contributes(Capabilities.Metadata, {
53
- id: Board.Board.typename,
54
- metadata: {
55
- icon: "ph--squares-four--regular"
56
- }
57
- })
58
- )
59
- }),
60
- defineModule({
61
- id: `${meta.id}/module/object-form`,
62
- activatesOn: ClientEvents.SetupSchema,
63
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
64
- objectSchema: Board.Board,
65
- getIntent: () => createIntent(Board.Create)
66
- }))
67
- }),
68
- defineModule({
69
- id: `${meta.id}/module/react-surface`,
70
- activatesOn: Events.SetupReactSurface,
71
- activate: ReactSurface
72
- }),
73
- defineModule({
74
- id: `${meta.id}/module/intent-resolver`,
75
- activatesOn: Events.SetupIntentResolver,
76
- activate: IntentResolver
77
- })
78
- ]);
79
- };
58
+ var BoardPlugin = Plugin.define(meta3).pipe(AppPlugin.addMetadataModule({
59
+ metadata: {
60
+ id: Board2.Board.typename,
61
+ metadata: {
62
+ icon: Annotation.IconAnnotation.get(Board2.Board).pipe(Option.getOrThrow).icon,
63
+ iconHue: Annotation.IconAnnotation.get(Board2.Board).pipe(Option.getOrThrow).hue ?? "white",
64
+ createObject: (props, options) => Effect.gen(function* () {
65
+ const object = Board2.makeBoard(props);
66
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
67
+ object,
68
+ target: options.target,
69
+ hidden: true,
70
+ targetNodeId: options.targetNodeId
71
+ });
72
+ })
73
+ }
74
+ }
75
+ }), AppPlugin.addSchemaModule({
76
+ schema: [
77
+ Board2.Board
78
+ ]
79
+ }), AppPlugin.addSurfaceModule({
80
+ activate: ReactSurface
81
+ }), AppPlugin.addTranslationsModule({
82
+ translations: [
83
+ ...translations,
84
+ ...boardTranslations
85
+ ]
86
+ }), Plugin.make);
80
87
  export {
88
+ Board_exports as Board,
81
89
  BoardPlugin,
82
90
  meta
83
91
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/BoardPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { translations as boardTranslations } from '@dxos/react-ui-board';\n\nimport { IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Board } from './types';\n\nexport const BoardPlugin = () => {\n return definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...boardTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n // TODO(burdon): \"Metadata\" here seems non-descriptive; is this specifically for the type? ObjectMetadata?\n contributes(Capabilities.Metadata, {\n id: Board.Board.typename,\n metadata: {\n icon: 'ph--squares-four--regular',\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Board.Board,\n getIntent: () => createIntent(Board.Create),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n ]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Board } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Board.Board.typename]: {\n 'typename label': 'Board',\n 'typename label_zero': 'Boards',\n 'typename label_one': 'Board',\n 'typename label_other': 'Boards',\n 'object name placeholder': 'New board',\n },\n [meta.id]: {\n 'plugin name': 'Board',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,cAAcC,cAAcC,cAAc;AAC5F,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,gBAAgBC,yBAAyB;;;ACJlD,SAASC,YAAY;AAEd,IAAMC,iBAAiBC,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMC,eAAeD,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACEvC,IAAME,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,MAAMA,MAAMC,QAAQ,GAAG;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;MAC7B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;MACjB;IACF;EACF;;;;AFRK,IAAMC,cAAc,MAAA;AACzB,SAAOC,aAAaC,MAAM;IACxBC,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaC,OAAOC;MACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;WAAIC;WAAiBC;OAAkB;IAChG,CAAA;IACAV,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaC,OAAOQ;MACpBN,UAAU;;QAERC,YAAYC,aAAaK,UAAU;UACjCX,IAAIY,MAAMA,MAAMC;UAChBC,UAAU;YACRC,MAAM;UACR;QACF,CAAA;;IACJ,CAAA;IACAhB,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAae,aAAaC;MAC1Bb,UAAU,MACRC,YACEa,kBAAkBC,YAClBC,iBAAiB;QACfC,cAAcT,MAAMA;QACpBU,WAAW,MAAMC,aAAaX,MAAMY,MAAM;MAC5C,CAAA,CAAA;IAEN,CAAA;IACAzB,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaC,OAAOuB;MACpBrB,UAAUsB;IACZ,CAAA;IACA3B,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaC,OAAOyB;MACpBvB,UAAUwB;IACZ,CAAA;GACD;AACH;",
6
- "names": ["Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "translations", "boardTranslations", "lazy", "IntentResolver", "lazy", "ReactSurface", "translations", "Board", "typename", "meta", "id", "BoardPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "boardTranslations", "SetupMetadata", "Metadata", "Board", "typename", "metadata", "icon", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "createIntent", "Create", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver"]
3
+ "sources": ["../../../src/meta.ts", "../../../src/BoardPlugin.tsx", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.board',\n name: 'Board',\n description: trim`\n Infinite canvas workspace that combines sticky notes, media, and whiteboarding tools.\n Arrange and connect ideas freely in a visual space perfect for brainstorming and creative collaboration.\n `,\n icon: 'ph--squares-four--regular',\n iconHue: 'green',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-board',\n screenshots: [],\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Annotation } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { translations as boardTranslations } from '@dxos/react-ui-board';\n\nimport { ReactSurface } from '#capabilities';\nimport { meta } from '#meta';\nimport { Board } from '#types';\n\nimport { translations } from './translations';\n\nexport const BoardPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: Board.Board.typename,\n metadata: {\n icon: Annotation.IconAnnotation.get(Board.Board).pipe(Option.getOrThrow).icon,\n iconHue: Annotation.IconAnnotation.get(Board.Board).pipe(Option.getOrThrow).hue ?? 'white',\n createObject: ((props, options) =>\n Effect.gen(function* () {\n const object = Board.makeBoard(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n })) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addSchemaModule({ schema: [Board.Board] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations: [...translations, ...boardTranslations] }),\n Plugin.make,\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { Board } from '#types';\n\nexport const translations = [\n {\n 'en-US': {\n [Board.Board.typename]: {\n 'typename.label': 'Board',\n 'typename.label_zero': 'Boards',\n 'typename.label_one': 'Board',\n 'typename.label_other': 'Boards',\n 'object-name.placeholder': 'New board',\n 'add-object.label': 'Add board',\n 'rename-object.label': 'Rename board',\n 'delete-object.label': 'Delete board',\n 'object-deleted.label': 'Board deleted',\n },\n [meta.id]: {\n 'plugin.name': 'Board',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa,CAAA;AACf;;;ACdA,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB;AAE/B,SAASC,gBAAgBC,yBAAyB;AAElD,SAASC,oBAAoB;AAC7B,SAASC,QAAAA,aAAY;AACrB,SAASC,SAAAA,cAAa;;;ACXtB,SAASC,QAAAA,aAAY;AACrB,SAASC,aAAa;AAEf,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,MAAMA,MAAMC,QAAQ,GAAG;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,MAAKC,EAAE,GAAG;QACT,eAAe;MACjB;IACF;EACF;;;;ADNK,IAAMC,cAAcC,OAAOC,OAAOC,KAAAA,EAAMC,KAC7CC,UAAUC,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,OAAMA,MAAMC;IAChBH,UAAU;MACRI,MAAMC,WAAWC,eAAeC,IAAIL,OAAMA,KAAK,EAAEL,KAAYW,iBAAU,EAAEJ;MACzEK,SAASJ,WAAWC,eAAeC,IAAIL,OAAMA,KAAK,EAAEL,KAAYW,iBAAU,EAAEE,OAAO;MACnFC,cAAe,CAACC,OAAOC,YACdC,WAAI,aAAA;AACT,cAAMC,SAASb,OAAMc,UAAUJ,KAAAA;AAC/B,eAAO,OAAOK,UAAUC,OAAOC,eAAeC,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ;EACF;AACF,CAAA,GACAzB,UAAU0B,gBAAgB;EAAEC,QAAQ;IAACvB,OAAMA;;AAAO,CAAA,GAClDJ,UAAU4B,iBAAiB;EAAEC,UAAUC;AAAa,CAAA,GACpD9B,UAAU+B,sBAAsB;EAAEC,cAAc;OAAIA;OAAiBC;;AAAmB,CAAA,GACxFrC,OAAOsC,IAAI;",
6
+ "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "Effect", "Option", "Plugin", "AppPlugin", "Annotation", "Operation", "SpaceOperation", "translations", "boardTranslations", "ReactSurface", "meta", "Board", "meta", "Board", "translations", "Board", "typename", "meta", "id", "BoardPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addMetadataModule", "metadata", "id", "Board", "typename", "icon", "Annotation", "IconAnnotation", "get", "getOrThrow", "iconHue", "hue", "createObject", "props", "options", "gen", "object", "makeBoard", "Operation", "invoke", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "addSchemaModule", "schema", "addSurfaceModule", "activate", "ReactSurface", "addTranslationsModule", "translations", "boardTranslations", "make"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/meta.ts":{"bytes":1492,"imports":[],"format":"esm"},"src/types/schema.ts":{"bytes":3858,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types/index.ts":{"bytes":460,"imports":[{"path":"src/types/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/capabilities/intent-resolver.ts":{"bytes":3014,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/BoardContainer.tsx":{"bytes":11747,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@preact/signals-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/components/index.ts":{"bytes":485,"imports":[{"path":"src/components/BoardContainer.tsx","kind":"import-statement","original":"./BoardContainer"}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":2913,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":1035,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":2048,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/BoardPlugin.tsx":{"bytes":7270,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/index.ts":{"bytes":547,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/BoardPlugin.tsx","kind":"import-statement","original":"./BoardPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4898},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-TDV6SJ64.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/intent-resolver-TDOZP647.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/react-surface-SHXN2B3I.mjs","kind":"dynamic-import"}],"exports":["BoardPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/BoardPlugin.tsx":{"bytesInOutput":1684},"src/capabilities/index.ts":{"bytesInOutput":190},"src/translations.ts":{"bytesInOutput":356}},"bytes":2457},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-TDV6SJ64.mjs","kind":"import-statement"}],"exports":["Board"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":104},"dist/lib/browser/intent-resolver-TDOZP647.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1473},"dist/lib/browser/intent-resolver-TDOZP647.mjs":{"imports":[{"path":"dist/lib/browser/chunk-TDV6SJ64.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/intent-resolver.ts","inputs":{"src/capabilities/intent-resolver.ts":{"bytesInOutput":580}},"bytes":771},"dist/lib/browser/react-surface-SHXN2B3I.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7208},"dist/lib/browser/react-surface-SHXN2B3I.mjs":{"imports":[{"path":"dist/lib/browser/chunk-TDV6SJ64.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@preact/signals-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":529},"src/components/BoardContainer.tsx":{"bytesInOutput":3020},"src/components/index.ts":{"bytesInOutput":0}},"bytes":3820},"dist/lib/browser/chunk-TDV6SJ64.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2716},"dist/lib/browser/chunk-TDV6SJ64.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true}],"exports":["Board","meta"],"inputs":{"src/types/schema.ts":{"bytesInOutput":787},"src/meta.ts":{"bytesInOutput":324},"src/types/index.ts":{"bytesInOutput":0}},"bytes":1247}}}
1
+ {"inputs":{"src/meta.ts":{"bytes":1963,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/types/Board.ts":{"bytes":3863,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":508,"imports":[{"path":"src/types/Board.ts","kind":"import-statement","original":"./Board"}],"format":"esm"},"src/translations.ts":{"bytes":2582,"imports":[{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"format":"esm"},"src/BoardPlugin.tsx":{"bytes":6295,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/operations","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/index.ts":{"bytes":628,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"src/BoardPlugin.tsx","kind":"import-statement","original":"./BoardPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5332},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-FL67SBF5.mjs","kind":"import-statement"},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"effect/Option","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/operation","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/operations","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true}],"exports":["Board","BoardPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/meta.ts":{"bytesInOutput":481},"src/index.ts":{"bytesInOutput":0},"src/BoardPlugin.tsx":{"bytesInOutput":1426},"src/translations.ts":{"bytesInOutput":612}},"bytes":2758},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-FL67SBF5.mjs","kind":"import-statement"}],"exports":["Board"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":129},"dist/lib/browser/chunk-FL67SBF5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2134},"dist/lib/browser/chunk-FL67SBF5.mjs":{"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true}],"exports":["Board_exports"],"inputs":{"src/types/Board.ts":{"bytesInOutput":867},"src/types/index.ts":{"bytesInOutput":0}},"bytes":1130}}}
@@ -1,7 +1,7 @@
1
1
  import {
2
- Board
3
- } from "../chunk-TDV6SJ64.mjs";
2
+ Board_exports
3
+ } from "../chunk-FL67SBF5.mjs";
4
4
  export {
5
- Board
5
+ Board_exports as Board
6
6
  };
7
7
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,40 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
7
+
8
+ // src/types/Board.ts
9
+ var Board_exports = {};
10
+ __export(Board_exports, {
11
+ Board: () => Board,
12
+ makeBoard: () => makeBoard
13
+ });
14
+ import * as Schema from "effect/Schema";
15
+ import { Annotation, Obj, Ref, Type } from "@dxos/echo";
16
+ import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
17
+ import { BoardLayout, defaultLayout } from "@dxos/react-ui-board";
18
+ var Board = Schema.Struct({
19
+ name: Schema.String.pipe(Schema.optional),
20
+ items: Ref.Ref(Obj.Unknown).pipe(Schema.Array, FormInputAnnotation.set(false)),
21
+ layout: BoardLayout.pipe(FormInputAnnotation.set(false))
22
+ }).pipe(Type.object({
23
+ typename: "org.dxos.type.board",
24
+ version: "0.1.0"
25
+ }), LabelAnnotation.set([
26
+ "name"
27
+ ]), Annotation.IconAnnotation.set({
28
+ icon: "ph--squares-four--regular",
29
+ hue: "green"
30
+ }));
31
+ var makeBoard = (props = {}) => Obj.make(Board, {
32
+ items: [],
33
+ layout: defaultLayout,
34
+ ...props
35
+ });
36
+
37
+ export {
38
+ Board_exports
39
+ };
40
+ //# sourceMappingURL=chunk-5GGKJL4Z.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/Board.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Ref, Type } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { BoardLayout, defaultLayout } from '@dxos/react-ui-board';\n\n/**\n * Board and layout.\n */\nexport const Board = Schema.Struct({\n name: Schema.String.pipe(Schema.optional),\n items: Ref.Ref(Obj.Unknown).pipe(Schema.Array, FormInputAnnotation.set(false)),\n layout: BoardLayout.pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.board',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n Annotation.IconAnnotation.set({\n icon: 'ph--squares-four--regular',\n hue: 'green',\n }),\n);\n\nexport interface Board extends Schema.Schema.Type<typeof Board> {}\n\nexport const makeBoard = (props: Partial<Obj.MakeProps<typeof Board>> = {}) =>\n Obj.make(Board, {\n items: [],\n layout: defaultLayout,\n ...props,\n });\n"],
5
+ "mappings": ";;;;;;;;AAAA;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,KAAKC,KAAKC,YAAY;AAC3C,SAASC,qBAAqBC,uBAAuB;AACrD,SAASC,aAAaC,qBAAqB;AAKpC,IAAMC,QAAeC,cAAO;EACjCC,MAAaC,cAAOC,KAAYC,eAAQ;EACxCC,OAAOC,IAAIA,IAAIC,IAAIC,OAAO,EAAEL,KAAYM,cAAOC,oBAAoBC,IAAI,KAAA,CAAA;EACvEC,QAAQC,YAAYV,KAAKO,oBAAoBC,IAAI,KAAA,CAAA;AACnD,CAAA,EAAGR,KACDW,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBP,IAAI;EAAC;CAAO,GAC5BQ,WAAWC,eAAeT,IAAI;EAC5BU,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAKK,IAAMC,YAAY,CAACC,QAA8C,CAAC,MACvEjB,IAAIkB,KAAK1B,OAAO;EACdM,OAAO,CAAA;EACPO,QAAQc;EACR,GAAGF;AACL,CAAA;",
6
+ "names": ["Schema", "Annotation", "Obj", "Ref", "Type", "FormInputAnnotation", "LabelAnnotation", "BoardLayout", "defaultLayout", "Board", "Struct", "name", "String", "pipe", "optional", "items", "Ref", "Obj", "Unknown", "Array", "FormInputAnnotation", "set", "layout", "BoardLayout", "Type", "object", "typename", "version", "LabelAnnotation", "Annotation", "IconAnnotation", "icon", "hue", "makeBoard", "props", "make", "defaultLayout"]
7
+ }
@@ -1,84 +1,92 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- Board,
4
- meta
5
- } from "./chunk-K6CHLZYU.mjs";
3
+ Board_exports
4
+ } from "./chunk-5GGKJL4Z.mjs";
5
+
6
+ // src/meta.ts
7
+ import { trim } from "@dxos/util";
8
+ var meta = {
9
+ id: "org.dxos.plugin.board",
10
+ name: "Board",
11
+ description: trim`
12
+ Infinite canvas workspace that combines sticky notes, media, and whiteboarding tools.
13
+ Arrange and connect ideas freely in a visual space perfect for brainstorming and creative collaboration.
14
+ `,
15
+ icon: "ph--squares-four--regular",
16
+ iconHue: "green",
17
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-board",
18
+ screenshots: []
19
+ };
6
20
 
7
21
  // src/BoardPlugin.tsx
8
- import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
9
- import { ClientEvents } from "@dxos/plugin-client";
10
- import { SpaceCapabilities } from "@dxos/plugin-space";
11
- import { defineObjectForm } from "@dxos/plugin-space/types";
22
+ import * as Effect from "effect/Effect";
23
+ import * as Option from "effect/Option";
24
+ import { Plugin } from "@dxos/app-framework";
25
+ import { AppPlugin } from "@dxos/app-toolkit";
26
+ import { Annotation } from "@dxos/echo";
27
+ import { Operation } from "@dxos/operation";
28
+ import { SpaceOperation } from "@dxos/plugin-space/operations";
12
29
  import { translations as boardTranslations } from "@dxos/react-ui-board";
13
-
14
- // src/capabilities/index.ts
15
- import { lazy } from "@dxos/app-framework";
16
- var IntentResolver = lazy(() => import("./intent-resolver-IHQWKJNT.mjs"));
17
- var ReactSurface = lazy(() => import("./react-surface-DGFWUKUE.mjs"));
30
+ import { ReactSurface } from "#capabilities";
31
+ import { meta as meta3 } from "#meta";
32
+ import { Board as Board2 } from "#types";
18
33
 
19
34
  // src/translations.ts
35
+ import { meta as meta2 } from "#meta";
36
+ import { Board } from "#types";
20
37
  var translations = [
21
38
  {
22
39
  "en-US": {
23
40
  [Board.Board.typename]: {
24
- "typename label": "Board",
25
- "typename label_zero": "Boards",
26
- "typename label_one": "Board",
27
- "typename label_other": "Boards",
28
- "object name placeholder": "New board"
41
+ "typename.label": "Board",
42
+ "typename.label_zero": "Boards",
43
+ "typename.label_one": "Board",
44
+ "typename.label_other": "Boards",
45
+ "object-name.placeholder": "New board",
46
+ "add-object.label": "Add board",
47
+ "rename-object.label": "Rename board",
48
+ "delete-object.label": "Delete board",
49
+ "object-deleted.label": "Board deleted"
29
50
  },
30
- [meta.id]: {
31
- "plugin name": "Board"
51
+ [meta2.id]: {
52
+ "plugin.name": "Board"
32
53
  }
33
54
  }
34
55
  }
35
56
  ];
36
57
 
37
58
  // src/BoardPlugin.tsx
38
- var BoardPlugin = () => {
39
- return definePlugin(meta, [
40
- defineModule({
41
- id: `${meta.id}/module/translations`,
42
- activatesOn: Events.SetupTranslations,
43
- activate: () => contributes(Capabilities.Translations, [
44
- ...translations,
45
- ...boardTranslations
46
- ])
47
- }),
48
- defineModule({
49
- id: `${meta.id}/module/metadata`,
50
- activatesOn: Events.SetupMetadata,
51
- activate: () => (
52
- // TODO(burdon): "Metadata" here seems non-descriptive; is this specifically for the type? ObjectMetadata?
53
- contributes(Capabilities.Metadata, {
54
- id: Board.Board.typename,
55
- metadata: {
56
- icon: "ph--squares-four--regular"
57
- }
58
- })
59
- )
60
- }),
61
- defineModule({
62
- id: `${meta.id}/module/object-form`,
63
- activatesOn: ClientEvents.SetupSchema,
64
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
65
- objectSchema: Board.Board,
66
- getIntent: () => createIntent(Board.Create)
67
- }))
68
- }),
69
- defineModule({
70
- id: `${meta.id}/module/react-surface`,
71
- activatesOn: Events.SetupReactSurface,
72
- activate: ReactSurface
73
- }),
74
- defineModule({
75
- id: `${meta.id}/module/intent-resolver`,
76
- activatesOn: Events.SetupIntentResolver,
77
- activate: IntentResolver
78
- })
79
- ]);
80
- };
59
+ var BoardPlugin = Plugin.define(meta3).pipe(AppPlugin.addMetadataModule({
60
+ metadata: {
61
+ id: Board2.Board.typename,
62
+ metadata: {
63
+ icon: Annotation.IconAnnotation.get(Board2.Board).pipe(Option.getOrThrow).icon,
64
+ iconHue: Annotation.IconAnnotation.get(Board2.Board).pipe(Option.getOrThrow).hue ?? "white",
65
+ createObject: (props, options) => Effect.gen(function* () {
66
+ const object = Board2.makeBoard(props);
67
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
68
+ object,
69
+ target: options.target,
70
+ hidden: true,
71
+ targetNodeId: options.targetNodeId
72
+ });
73
+ })
74
+ }
75
+ }
76
+ }), AppPlugin.addSchemaModule({
77
+ schema: [
78
+ Board2.Board
79
+ ]
80
+ }), AppPlugin.addSurfaceModule({
81
+ activate: ReactSurface
82
+ }), AppPlugin.addTranslationsModule({
83
+ translations: [
84
+ ...translations,
85
+ ...boardTranslations
86
+ ]
87
+ }), Plugin.make);
81
88
  export {
89
+ Board_exports as Board,
82
90
  BoardPlugin,
83
91
  meta
84
92
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/BoardPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { translations as boardTranslations } from '@dxos/react-ui-board';\n\nimport { IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Board } from './types';\n\nexport const BoardPlugin = () => {\n return definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...boardTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n // TODO(burdon): \"Metadata\" here seems non-descriptive; is this specifically for the type? ObjectMetadata?\n contributes(Capabilities.Metadata, {\n id: Board.Board.typename,\n metadata: {\n icon: 'ph--squares-four--regular',\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Board.Board,\n getIntent: () => createIntent(Board.Create),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n ]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Board } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Board.Board.typename]: {\n 'typename label': 'Board',\n 'typename label_zero': 'Boards',\n 'typename label_one': 'Board',\n 'typename label_other': 'Boards',\n 'object name placeholder': 'New board',\n },\n [meta.id]: {\n 'plugin name': 'Board',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,cAAcC,cAAcC,cAAc;AAC5F,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,gBAAgBC,yBAAyB;;;ACJlD,SAASC,YAAY;AAEd,IAAMC,iBAAiBC,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMC,eAAeD,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACEvC,IAAME,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,MAAMA,MAAMC,QAAQ,GAAG;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;MAC7B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;MACjB;IACF;EACF;;;;AFRK,IAAMC,cAAc,MAAA;AACzB,SAAOC,aAAaC,MAAM;IACxBC,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaC,OAAOC;MACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;WAAIC;WAAiBC;OAAkB;IAChG,CAAA;IACAV,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaC,OAAOQ;MACpBN,UAAU;;QAERC,YAAYC,aAAaK,UAAU;UACjCX,IAAIY,MAAMA,MAAMC;UAChBC,UAAU;YACRC,MAAM;UACR;QACF,CAAA;;IACJ,CAAA;IACAhB,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAae,aAAaC;MAC1Bb,UAAU,MACRC,YACEa,kBAAkBC,YAClBC,iBAAiB;QACfC,cAAcT,MAAMA;QACpBU,WAAW,MAAMC,aAAaX,MAAMY,MAAM;MAC5C,CAAA,CAAA;IAEN,CAAA;IACAzB,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaC,OAAOuB;MACpBrB,UAAUsB;IACZ,CAAA;IACA3B,aAAa;MACXC,IAAI,GAAGF,KAAKE,EAAE;MACdC,aAAaC,OAAOyB;MACpBvB,UAAUwB;IACZ,CAAA;GACD;AACH;",
6
- "names": ["Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "translations", "boardTranslations", "lazy", "IntentResolver", "lazy", "ReactSurface", "translations", "Board", "typename", "meta", "id", "BoardPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "boardTranslations", "SetupMetadata", "Metadata", "Board", "typename", "metadata", "icon", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "createIntent", "Create", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver"]
3
+ "sources": ["../../../src/meta.ts", "../../../src/BoardPlugin.tsx", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.board',\n name: 'Board',\n description: trim`\n Infinite canvas workspace that combines sticky notes, media, and whiteboarding tools.\n Arrange and connect ideas freely in a visual space perfect for brainstorming and creative collaboration.\n `,\n icon: 'ph--squares-four--regular',\n iconHue: 'green',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-board',\n screenshots: [],\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Annotation } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { translations as boardTranslations } from '@dxos/react-ui-board';\n\nimport { ReactSurface } from '#capabilities';\nimport { meta } from '#meta';\nimport { Board } from '#types';\n\nimport { translations } from './translations';\n\nexport const BoardPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: Board.Board.typename,\n metadata: {\n icon: Annotation.IconAnnotation.get(Board.Board).pipe(Option.getOrThrow).icon,\n iconHue: Annotation.IconAnnotation.get(Board.Board).pipe(Option.getOrThrow).hue ?? 'white',\n createObject: ((props, options) =>\n Effect.gen(function* () {\n const object = Board.makeBoard(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n })) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addSchemaModule({ schema: [Board.Board] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations: [...translations, ...boardTranslations] }),\n Plugin.make,\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { Board } from '#types';\n\nexport const translations = [\n {\n 'en-US': {\n [Board.Board.typename]: {\n 'typename.label': 'Board',\n 'typename.label_zero': 'Boards',\n 'typename.label_one': 'Board',\n 'typename.label_other': 'Boards',\n 'object-name.placeholder': 'New board',\n 'add-object.label': 'Add board',\n 'rename-object.label': 'Rename board',\n 'delete-object.label': 'Delete board',\n 'object-deleted.label': 'Board deleted',\n },\n [meta.id]: {\n 'plugin.name': 'Board',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa,CAAA;AACf;;;ACdA,YAAYC,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,sBAAsB;AAE/B,SAASC,gBAAgBC,yBAAyB;AAElD,SAASC,oBAAoB;AAC7B,SAASC,QAAAA,aAAY;AACrB,SAASC,SAAAA,cAAa;;;ACXtB,SAASC,QAAAA,aAAY;AACrB,SAASC,aAAa;AAEf,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,MAAMA,MAAMC,QAAQ,GAAG;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,MAAKC,EAAE,GAAG;QACT,eAAe;MACjB;IACF;EACF;;;;ADNK,IAAMC,cAAcC,OAAOC,OAAOC,KAAAA,EAAMC,KAC7CC,UAAUC,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,OAAMA,MAAMC;IAChBH,UAAU;MACRI,MAAMC,WAAWC,eAAeC,IAAIL,OAAMA,KAAK,EAAEL,KAAYW,iBAAU,EAAEJ;MACzEK,SAASJ,WAAWC,eAAeC,IAAIL,OAAMA,KAAK,EAAEL,KAAYW,iBAAU,EAAEE,OAAO;MACnFC,cAAe,CAACC,OAAOC,YACdC,WAAI,aAAA;AACT,cAAMC,SAASb,OAAMc,UAAUJ,KAAAA;AAC/B,eAAO,OAAOK,UAAUC,OAAOC,eAAeC,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ;EACF;AACF,CAAA,GACAzB,UAAU0B,gBAAgB;EAAEC,QAAQ;IAACvB,OAAMA;;AAAO,CAAA,GAClDJ,UAAU4B,iBAAiB;EAAEC,UAAUC;AAAa,CAAA,GACpD9B,UAAU+B,sBAAsB;EAAEC,cAAc;OAAIA;OAAiBC;;AAAmB,CAAA,GACxFrC,OAAOsC,IAAI;",
6
+ "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "Effect", "Option", "Plugin", "AppPlugin", "Annotation", "Operation", "SpaceOperation", "translations", "boardTranslations", "ReactSurface", "meta", "Board", "meta", "Board", "translations", "Board", "typename", "meta", "id", "BoardPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addMetadataModule", "metadata", "id", "Board", "typename", "icon", "Annotation", "IconAnnotation", "get", "getOrThrow", "iconHue", "hue", "createObject", "props", "options", "gen", "object", "makeBoard", "Operation", "invoke", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "addSchemaModule", "schema", "addSurfaceModule", "activate", "ReactSurface", "addTranslationsModule", "translations", "boardTranslations", "make"]
7
7
  }