@dxos/plugin-board 0.8.4-main.ae835ea → 0.8.4-main.bcb3aa67d6

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 +69 -67
  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 +1 -1
  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 +69 -67
  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 +1 -1
  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 +3 -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 +0 -1
  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 -10
  34. package/dist/types/src/translations.d.ts.map +1 -1
  35. package/dist/types/src/types/Board.d.ts +25 -67
  36. package/dist/types/src/types/Board.d.ts.map +1 -1
  37. package/dist/types/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +62 -48
  39. package/src/BoardPlugin.tsx +37 -48
  40. package/src/capabilities/index.ts +2 -3
  41. package/src/capabilities/react-surface.tsx +21 -13
  42. package/src/components/index.ts +0 -2
  43. package/src/containers/BoardContainer/BoardContainer.stories.tsx +122 -0
  44. package/src/{components → containers/BoardContainer}/BoardContainer.tsx +53 -46
  45. package/src/containers/BoardContainer/index.ts +7 -0
  46. package/src/containers/index.ts +7 -0
  47. package/src/index.ts +0 -1
  48. package/src/meta.ts +3 -3
  49. package/src/translations.ts +12 -10
  50. package/src/types/Board.ts +10 -20
  51. package/dist/lib/browser/chunk-6IYOP7JD.mjs +0 -64
  52. package/dist/lib/browser/chunk-6IYOP7JD.mjs.map +0 -7
  53. package/dist/lib/browser/chunk-IDV4P2SK.mjs +0 -143
  54. package/dist/lib/browser/chunk-IDV4P2SK.mjs.map +0 -7
  55. package/dist/lib/browser/intent-resolver-MGJCQT3N.mjs +0 -33
  56. package/dist/lib/browser/intent-resolver-MGJCQT3N.mjs.map +0 -7
  57. package/dist/lib/browser/react-surface-EACRLTVO.mjs +0 -30
  58. package/dist/lib/browser/react-surface-EACRLTVO.mjs.map +0 -7
  59. package/dist/lib/node-esm/chunk-WFLKZNL3.mjs +0 -65
  60. package/dist/lib/node-esm/chunk-WFLKZNL3.mjs.map +0 -7
  61. package/dist/lib/node-esm/chunk-ZNNC2VAL.mjs +0 -145
  62. package/dist/lib/node-esm/chunk-ZNNC2VAL.mjs.map +0 -7
  63. package/dist/lib/node-esm/intent-resolver-TV2AARM7.mjs +0 -34
  64. package/dist/lib/node-esm/intent-resolver-TV2AARM7.mjs.map +0 -7
  65. package/dist/lib/node-esm/react-surface-PEYOXLWP.mjs +0 -31
  66. package/dist/lib/node-esm/react-surface-PEYOXLWP.mjs.map +0 -7
  67. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  68. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  69. package/dist/types/src/components/BoardContainer.d.ts +0 -8
  70. package/dist/types/src/components/BoardContainer.d.ts.map +0 -1
  71. package/dist/types/src/components/BoardContainer.stories.d.ts +0 -45
  72. package/dist/types/src/components/BoardContainer.stories.d.ts.map +0 -1
  73. package/src/capabilities/intent-resolver.ts +0 -34
  74. package/src/components/BoardContainer.stories.tsx +0 -125
@@ -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,89 +1,91 @@
1
1
  import {
2
- BoardContainer
3
- } from "./chunk-IDV4P2SK.mjs";
4
- import {
5
- Board_exports,
6
- meta
7
- } from "./chunk-6IYOP7JD.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
+ };
8
19
 
9
20
  // src/BoardPlugin.tsx
10
- import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
11
- import { ClientEvents } from "@dxos/plugin-client";
12
- import { SpaceCapabilities } from "@dxos/plugin-space";
13
- 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";
14
28
  import { translations as boardTranslations } from "@dxos/react-ui-board";
15
-
16
- // src/capabilities/index.ts
17
- import { lazy } from "@dxos/app-framework";
18
- var IntentResolver = lazy(() => import("./intent-resolver-MGJCQT3N.mjs"));
19
- var ReactSurface = lazy(() => import("./react-surface-EACRLTVO.mjs"));
29
+ import { meta as meta3 } from "#meta";
20
30
 
21
31
  // src/translations.ts
32
+ import { meta as meta2 } from "#meta";
33
+ import { Board } from "#types";
22
34
  var translations = [
23
35
  {
24
36
  "en-US": {
25
- [Board_exports.Board.typename]: {
26
- "typename label": "Board",
27
- "typename label_zero": "Boards",
28
- "typename label_one": "Board",
29
- "typename label_other": "Boards",
30
- "object name placeholder": "New board",
31
- "rename object label": "Rename board",
32
- "delete object label": "Delete board"
37
+ [Board.Board.typename]: {
38
+ "typename.label": "Board",
39
+ "typename.label_zero": "Boards",
40
+ "typename.label_one": "Board",
41
+ "typename.label_other": "Boards",
42
+ "object-name.placeholder": "New board",
43
+ "add-object.label": "Add board",
44
+ "rename-object.label": "Rename board",
45
+ "delete-object.label": "Delete board",
46
+ "object-deleted.label": "Board deleted"
33
47
  },
34
- [meta.id]: {
35
- "plugin name": "Board"
48
+ [meta2.id]: {
49
+ "plugin.name": "Board"
36
50
  }
37
51
  }
38
52
  }
39
53
  ];
40
54
 
41
55
  // src/BoardPlugin.tsx
42
- var BoardPlugin = definePlugin(meta, () => [
43
- defineModule({
44
- id: `${meta.id}/module/translations`,
45
- activatesOn: Events.SetupTranslations,
46
- activate: () => contributes(Capabilities.Translations, [
47
- ...translations,
48
- ...boardTranslations
49
- ])
50
- }),
51
- defineModule({
52
- id: `${meta.id}/module/metadata`,
53
- activatesOn: Events.SetupMetadata,
54
- activate: () => (
55
- // TODO(burdon): "Metadata" here seems non-descriptive; is this specifically for the type? ObjectMetadata?
56
- contributes(Capabilities.Metadata, {
57
- id: Board_exports.Board.typename,
58
- metadata: {
59
- icon: "ph--squares-four--regular",
60
- iconHue: "green"
61
- }
56
+ import { Board as Board2 } from "#types";
57
+ import { ReactSurface } from "#capabilities";
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
+ });
62
72
  })
63
- )
64
- }),
65
- defineModule({
66
- id: `${meta.id}/module/object-form`,
67
- activatesOn: ClientEvents.SetupSchema,
68
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
69
- objectSchema: Board_exports.Board,
70
- getIntent: () => createIntent(Board_exports.Create)
71
- }))
72
- }),
73
- defineModule({
74
- id: `${meta.id}/module/react-surface`,
75
- activatesOn: Events.SetupReactSurface,
76
- activate: ReactSurface
77
- }),
78
- defineModule({
79
- id: `${meta.id}/module/intent-resolver`,
80
- activatesOn: Events.SetupIntentResolver,
81
- activate: IntentResolver
82
- })
83
- ]);
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);
84
87
  export {
85
88
  Board_exports as Board,
86
- BoardContainer,
87
89
  BoardPlugin,
88
90
  meta
89
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, Events, contributes, createIntent, defineModule, definePlugin } 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 = 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 iconHue: 'green',\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// 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 'rename object label': 'Rename board',\n 'delete object label': 'Delete board',\n },\n [meta.id]: {\n 'plugin name': 'Board',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,QAAQC,aAAaC,cAAcC,cAAcC,oBAAoB;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,cAAMA,MAAMC,QAAQ,GAAG;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;MACzB;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;MACjB;IACF;EACF;;;;AFVK,IAAMC,cAAcC,aAAaC,MAAM,MAAM;EAClDC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAkB;EAChG,CAAA;EACAV,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOQ;IACpBN,UAAU;;MAERC,YAAYC,aAAaK,UAAU;QACjCX,IAAIY,cAAMA,MAAMC;QAChBC,UAAU;UACRC,MAAM;UACNC,SAAS;QACX;MACF,CAAA;;EACJ,CAAA;EACAjB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAagB,aAAaC;IAC1Bd,UAAU,MACRC,YACEc,kBAAkBC,YAClBC,iBAAiB;MACfC,cAAcV,cAAMA;MACpBW,WAAW,MAAMC,aAAaZ,cAAMa,MAAM;IAC5C,CAAA,CAAA;EAEN,CAAA;EACA1B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOwB;IACpBtB,UAAUuB;EACZ,CAAA;EACA5B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO0B;IACpBxB,UAAUyB;EACZ,CAAA;CACD;",
6
- "names": ["Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "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", "iconHue", "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 { type CreateObject } from '@dxos/plugin-space/types';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\nimport { translations as boardTranslations } from '@dxos/react-ui-board';\n\nimport { meta } from '#meta';\nimport { translations } from './translations';\nimport { Board } from '#types';\n\nimport { ReactSurface } from '#capabilities';\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;AAE1B,SAASC,sBAAsB;AAC/B,SAASC,gBAAgBC,yBAAyB;AAElD,SAASC,QAAAA,aAAY;;;ACTrB,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;;;;ADVF,SAASC,SAAAA,cAAa;AAEtB,SAASC,oBAAoB;AAEtB,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", "meta", "meta", "Board", "translations", "Board", "typename", "meta", "id", "Board", "ReactSurface", "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/components/BoardContainer.tsx":{"bytes":18025,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","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-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","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/meta.ts":{"bytes":1967,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/types/Board.ts":{"bytes":4590,"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},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types/index.ts":{"bytes":508,"imports":[{"path":"src/types/Board.ts","kind":"import-statement","original":"./Board"}],"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/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":2322,"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":7228,"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":722,"imports":[{"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"},{"path":"src/BoardPlugin.tsx","kind":"import-statement","original":"./BoardPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4965},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-IDV4P2SK.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-6IYOP7JD.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-MGJCQT3N.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/react-surface-EACRLTVO.mjs","kind":"dynamic-import"}],"exports":["Board","BoardContainer","BoardPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/BoardPlugin.tsx":{"bytesInOutput":1642},"src/capabilities/index.ts":{"bytesInOutput":190},"src/translations.ts":{"bytesInOutput":458}},"bytes":2626},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-6IYOP7JD.mjs","kind":"import-statement"}],"exports":["Board"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":129},"dist/lib/browser/intent-resolver-MGJCQT3N.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1473},"dist/lib/browser/intent-resolver-MGJCQT3N.mjs":{"imports":[{"path":"dist/lib/browser/chunk-6IYOP7JD.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":598}},"bytes":797},"dist/lib/browser/react-surface-EACRLTVO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1429},"dist/lib/browser/react-surface-EACRLTVO.mjs":{"imports":[{"path":"dist/lib/browser/chunk-IDV4P2SK.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-6IYOP7JD.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}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":528}},"bytes":787},"dist/lib/browser/chunk-IDV4P2SK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9019},"dist/lib/browser/chunk-IDV4P2SK.mjs":{"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","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-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-board","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["BoardContainer"],"inputs":{"src/components/BoardContainer.tsx":{"bytesInOutput":4504},"src/components/index.ts":{"bytesInOutput":0}},"bytes":4615},"dist/lib/browser/chunk-6IYOP7JD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3298},"dist/lib/browser/chunk-6IYOP7JD.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},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["Board_exports","meta"],"inputs":{"src/types/Board.ts":{"bytesInOutput":1009},"src/meta.ts":{"bytesInOutput":481},"src/types/index.ts":{"bytesInOutput":0}},"bytes":1800}}}
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":"#meta","kind":"import-statement","external":true},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"#types","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true}],"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":"#meta","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"#types","kind":"import-statement","external":true},{"path":"#capabilities","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,6 +1,6 @@
1
1
  import {
2
2
  Board_exports
3
- } from "../chunk-6IYOP7JD.mjs";
3
+ } from "../chunk-FL67SBF5.mjs";
4
4
  export {
5
5
  Board_exports as Board
6
6
  };
@@ -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,90 +1,92 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- BoardContainer
4
- } from "./chunk-ZNNC2VAL.mjs";
5
- import {
6
- Board_exports,
7
- meta
8
- } from "./chunk-WFLKZNL3.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
+ };
9
20
 
10
21
  // src/BoardPlugin.tsx
11
- import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
12
- import { ClientEvents } from "@dxos/plugin-client";
13
- import { SpaceCapabilities } from "@dxos/plugin-space";
14
- 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";
15
29
  import { translations as boardTranslations } from "@dxos/react-ui-board";
16
-
17
- // src/capabilities/index.ts
18
- import { lazy } from "@dxos/app-framework";
19
- var IntentResolver = lazy(() => import("./intent-resolver-TV2AARM7.mjs"));
20
- var ReactSurface = lazy(() => import("./react-surface-PEYOXLWP.mjs"));
30
+ import { meta as meta3 } from "#meta";
21
31
 
22
32
  // src/translations.ts
33
+ import { meta as meta2 } from "#meta";
34
+ import { Board } from "#types";
23
35
  var translations = [
24
36
  {
25
37
  "en-US": {
26
- [Board_exports.Board.typename]: {
27
- "typename label": "Board",
28
- "typename label_zero": "Boards",
29
- "typename label_one": "Board",
30
- "typename label_other": "Boards",
31
- "object name placeholder": "New board",
32
- "rename object label": "Rename board",
33
- "delete object label": "Delete board"
38
+ [Board.Board.typename]: {
39
+ "typename.label": "Board",
40
+ "typename.label_zero": "Boards",
41
+ "typename.label_one": "Board",
42
+ "typename.label_other": "Boards",
43
+ "object-name.placeholder": "New board",
44
+ "add-object.label": "Add board",
45
+ "rename-object.label": "Rename board",
46
+ "delete-object.label": "Delete board",
47
+ "object-deleted.label": "Board deleted"
34
48
  },
35
- [meta.id]: {
36
- "plugin name": "Board"
49
+ [meta2.id]: {
50
+ "plugin.name": "Board"
37
51
  }
38
52
  }
39
53
  }
40
54
  ];
41
55
 
42
56
  // src/BoardPlugin.tsx
43
- var BoardPlugin = definePlugin(meta, () => [
44
- defineModule({
45
- id: `${meta.id}/module/translations`,
46
- activatesOn: Events.SetupTranslations,
47
- activate: () => contributes(Capabilities.Translations, [
48
- ...translations,
49
- ...boardTranslations
50
- ])
51
- }),
52
- defineModule({
53
- id: `${meta.id}/module/metadata`,
54
- activatesOn: Events.SetupMetadata,
55
- activate: () => (
56
- // TODO(burdon): "Metadata" here seems non-descriptive; is this specifically for the type? ObjectMetadata?
57
- contributes(Capabilities.Metadata, {
58
- id: Board_exports.Board.typename,
59
- metadata: {
60
- icon: "ph--squares-four--regular",
61
- iconHue: "green"
62
- }
57
+ import { Board as Board2 } from "#types";
58
+ import { ReactSurface } from "#capabilities";
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
+ });
63
73
  })
64
- )
65
- }),
66
- defineModule({
67
- id: `${meta.id}/module/object-form`,
68
- activatesOn: ClientEvents.SetupSchema,
69
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
70
- objectSchema: Board_exports.Board,
71
- getIntent: () => createIntent(Board_exports.Create)
72
- }))
73
- }),
74
- defineModule({
75
- id: `${meta.id}/module/react-surface`,
76
- activatesOn: Events.SetupReactSurface,
77
- activate: ReactSurface
78
- }),
79
- defineModule({
80
- id: `${meta.id}/module/intent-resolver`,
81
- activatesOn: Events.SetupIntentResolver,
82
- activate: IntentResolver
83
- })
84
- ]);
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);
85
88
  export {
86
89
  Board_exports as Board,
87
- BoardContainer,
88
90
  BoardPlugin,
89
91
  meta
90
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, Events, contributes, createIntent, defineModule, definePlugin } 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 = 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 iconHue: 'green',\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// 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 'rename object label': 'Rename board',\n 'delete object label': 'Delete board',\n },\n [meta.id]: {\n 'plugin name': 'Board',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;;;;;AAIA,SAASA,cAAcC,QAAQC,aAAaC,cAAcC,cAAcC,oBAAoB;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,cAAMA,MAAMC,QAAQ,GAAG;QACtB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;MACzB;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;MACjB;IACF;EACF;;;;AFVK,IAAMC,cAAcC,aAAaC,MAAM,MAAM;EAClDC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAkB;EAChG,CAAA;EACAV,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOQ;IACpBN,UAAU;;MAERC,YAAYC,aAAaK,UAAU;QACjCX,IAAIY,cAAMA,MAAMC;QAChBC,UAAU;UACRC,MAAM;UACNC,SAAS;QACX;MACF,CAAA;;EACJ,CAAA;EACAjB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAagB,aAAaC;IAC1Bd,UAAU,MACRC,YACEc,kBAAkBC,YAClBC,iBAAiB;MACfC,cAAcV,cAAMA;MACpBW,WAAW,MAAMC,aAAaZ,cAAMa,MAAM;IAC5C,CAAA,CAAA;EAEN,CAAA;EACA1B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOwB;IACpBtB,UAAUuB;EACZ,CAAA;EACA5B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO0B;IACpBxB,UAAUyB;EACZ,CAAA;CACD;",
6
- "names": ["Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "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", "iconHue", "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 { type CreateObject } from '@dxos/plugin-space/types';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\nimport { translations as boardTranslations } from '@dxos/react-ui-board';\n\nimport { meta } from '#meta';\nimport { translations } from './translations';\nimport { Board } from '#types';\n\nimport { ReactSurface } from '#capabilities';\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;AAE1B,SAASC,sBAAsB;AAC/B,SAASC,gBAAgBC,yBAAyB;AAElD,SAASC,QAAAA,aAAY;;;ACTrB,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;;;;ADVF,SAASC,SAAAA,cAAa;AAEtB,SAASC,oBAAoB;AAEtB,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", "meta", "meta", "Board", "translations", "Board", "typename", "meta", "id", "Board", "ReactSurface", "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
  }