@dxos/plugin-kanban 0.7.5-main.9d26e3a → 0.7.5-main.9d2a38b

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 (75) hide show
  1. package/dist/lib/browser/{chunk-JZBAL6SW.mjs → chunk-L4PZ5BVV.mjs} +18 -5
  2. package/dist/lib/browser/chunk-L4PZ5BVV.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +55 -243
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/intent-resolver-ILMGO3TT.mjs +70 -0
  6. package/dist/lib/browser/intent-resolver-ILMGO3TT.mjs.map +7 -0
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/react-surface-KCOBVPKL.mjs +180 -0
  9. package/dist/lib/browser/react-surface-KCOBVPKL.mjs.map +7 -0
  10. package/dist/lib/browser/types.mjs +1 -2
  11. package/dist/lib/node/{chunk-BE2FRW7E.cjs → chunk-QCB2U2J2.cjs} +22 -8
  12. package/dist/lib/node/chunk-QCB2U2J2.cjs.map +7 -0
  13. package/dist/lib/node/index.cjs +56 -235
  14. package/dist/lib/node/index.cjs.map +4 -4
  15. package/dist/lib/node/intent-resolver-6QZ6AMZF.cjs +84 -0
  16. package/dist/lib/node/intent-resolver-6QZ6AMZF.cjs.map +7 -0
  17. package/dist/lib/node/meta.json +1 -1
  18. package/dist/lib/node/react-surface-MOZ2OTXW.cjs +198 -0
  19. package/dist/lib/node/react-surface-MOZ2OTXW.cjs.map +7 -0
  20. package/dist/lib/node/types.cjs +4 -5
  21. package/dist/lib/node/types.cjs.map +2 -2
  22. package/dist/lib/node-esm/{chunk-L7JM7LGJ.mjs → chunk-PNSRVZBP.mjs} +18 -4
  23. package/dist/lib/node-esm/chunk-PNSRVZBP.mjs.map +7 -0
  24. package/dist/lib/node-esm/index.mjs +55 -243
  25. package/dist/lib/node-esm/index.mjs.map +4 -4
  26. package/dist/lib/node-esm/intent-resolver-LRZVOK2C.mjs +71 -0
  27. package/dist/lib/node-esm/intent-resolver-LRZVOK2C.mjs.map +7 -0
  28. package/dist/lib/node-esm/meta.json +1 -1
  29. package/dist/lib/node-esm/react-surface-HNVSKYHF.mjs +181 -0
  30. package/dist/lib/node-esm/react-surface-HNVSKYHF.mjs.map +7 -0
  31. package/dist/lib/node-esm/types.mjs +1 -2
  32. package/dist/types/src/KanbanPlugin.d.ts +1 -3
  33. package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
  34. package/dist/types/src/capabilities/index.d.ts +3 -0
  35. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  36. package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
  37. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  38. package/dist/types/src/capabilities/react-surface.d.ts +4 -0
  39. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  40. package/dist/types/src/components/KanbanViewEditor.d.ts +2 -2
  41. package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -1
  42. package/dist/types/src/components/index.d.ts +1 -0
  43. package/dist/types/src/components/index.d.ts.map +1 -1
  44. package/dist/types/src/index.d.ts +1 -2
  45. package/dist/types/src/index.d.ts.map +1 -1
  46. package/dist/types/src/meta.d.ts +1 -2
  47. package/dist/types/src/meta.d.ts.map +1 -1
  48. package/dist/types/src/types.d.ts +10 -4
  49. package/dist/types/src/types.d.ts.map +1 -1
  50. package/dist/types/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +21 -29
  52. package/src/KanbanPlugin.tsx +48 -72
  53. package/src/capabilities/index.ts +8 -0
  54. package/src/capabilities/intent-resolver.ts +39 -0
  55. package/src/capabilities/react-surface.tsx +28 -0
  56. package/src/components/KanbanViewEditor.tsx +21 -5
  57. package/src/components/index.ts +1 -0
  58. package/src/index.ts +1 -4
  59. package/src/meta.ts +1 -1
  60. package/src/types.ts +0 -13
  61. package/dist/lib/browser/chunk-JZBAL6SW.mjs.map +0 -7
  62. package/dist/lib/browser/chunk-LG4OMN5S.mjs +0 -18
  63. package/dist/lib/browser/chunk-LG4OMN5S.mjs.map +0 -7
  64. package/dist/lib/browser/meta.mjs +0 -9
  65. package/dist/lib/browser/meta.mjs.map +0 -7
  66. package/dist/lib/node/chunk-BE2FRW7E.cjs.map +0 -7
  67. package/dist/lib/node/chunk-MBAGHRFM.cjs +0 -41
  68. package/dist/lib/node/chunk-MBAGHRFM.cjs.map +0 -7
  69. package/dist/lib/node/meta.cjs +0 -30
  70. package/dist/lib/node/meta.cjs.map +0 -7
  71. package/dist/lib/node-esm/chunk-L7JM7LGJ.mjs.map +0 -7
  72. package/dist/lib/node-esm/chunk-OTZHYV3S.mjs +0 -20
  73. package/dist/lib/node-esm/chunk-OTZHYV3S.mjs.map +0 -7
  74. package/dist/lib/node-esm/meta.mjs +0 -10
  75. package/dist/lib/node-esm/meta.mjs.map +0 -7
@@ -1,13 +1,24 @@
1
- import {
2
- KANBAN_PLUGIN
3
- } from "./chunk-LG4OMN5S.mjs";
4
-
5
1
  // packages/plugins/experimental/plugin-kanban/src/types.ts
6
2
  import { S } from "@dxos/echo-schema";
7
3
  import { SpaceSchema } from "@dxos/react-client/echo";
8
4
  import { KanbanType } from "@dxos/react-ui-kanban";
9
5
  import { initializeKanban } from "@dxos/react-ui-kanban/testing";
10
6
  import { FieldSchema } from "@dxos/schema";
7
+
8
+ // packages/plugins/experimental/plugin-kanban/src/meta.ts
9
+ var KANBAN_PLUGIN = "dxos.org/plugin/kanban";
10
+ var meta = {
11
+ id: KANBAN_PLUGIN,
12
+ name: "Kanban",
13
+ description: "Kanban board for managing tasks.",
14
+ icon: "ph--kanban--regular",
15
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-kanban",
16
+ tags: [
17
+ "experimental"
18
+ ]
19
+ };
20
+
21
+ // packages/plugins/experimental/plugin-kanban/src/types.ts
11
22
  var KanbanAction;
12
23
  (function(KanbanAction2) {
13
24
  const KANBAN_ACTION = `${KANBAN_PLUGIN}/action`;
@@ -49,8 +60,10 @@ var createKanban = async (space) => {
49
60
  };
50
61
 
51
62
  export {
63
+ KANBAN_PLUGIN,
64
+ meta,
52
65
  KanbanAction,
53
66
  isKanban,
54
67
  createKanban
55
68
  };
56
- //# sourceMappingURL=chunk-JZBAL6SW.mjs.map
69
+ //# sourceMappingURL=chunk-L4PZ5BVV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types.ts", "../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\nimport { type Space, SpaceSchema } from '@dxos/react-client/echo';\nimport { KanbanType } from '@dxos/react-ui-kanban';\nimport { initializeKanban } from '@dxos/react-ui-kanban/testing';\nimport { FieldSchema } from '@dxos/schema';\n\nimport { KANBAN_PLUGIN } from './meta';\n\n/**\n * Kanban data model.\n * A Kanban board is a collection of columns, each of which contains a collection of items.\n * The layout of columns and items is controlled by models.\n * The underlying data model may be represented by direct object relationships\n * (e.g., a column object containing an array of ordered items) or projections constructed\n * by the model (e.g., a query of items based on metadata within a column object).\n */\n\nexport namespace KanbanAction {\n const KANBAN_ACTION = `${KANBAN_PLUGIN}/action`;\n\n export class Create extends S.TaggedClass<Create>()(`${KANBAN_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n space: SpaceSchema,\n }),\n output: S.Struct({\n object: KanbanType,\n }),\n }) {}\n\n export class DeleteCardField extends S.TaggedClass<DeleteCardField>()(`${KANBAN_ACTION}/delete-card-field`, {\n input: S.Struct({\n kanban: KanbanType,\n fieldId: S.String,\n // TODO(wittjosiah): Separate fields for undo data?\n deletionData: S.optional(\n S.Struct({\n field: FieldSchema,\n // TODO(wittjosiah): This creates a type error.\n // props: PropertySchema,\n props: S.Any,\n index: S.Number,\n }),\n ),\n }),\n output: S.Void,\n }) {}\n}\n\n// TODO(burdon): Undo?\n// TODO(burdon): Typescript types (replace proto with annotations?)\n// TODO(burdon): Should pure components depend on ECHO? Relationship between ECHO object/array and Observable.\n// TODO(burdon): Can the plugin configure the object based on the data? E.g., how are the models constructed?\n// TODO(burdon): Create models. Simple first based on actual data.\n// Model is always a projection since the dragging state is tentative.\n\n// TODO(burdon): Extend model for moving items (in and across columns).\nexport interface KanbanModel {\n root: KanbanType;\n}\n\nexport type Location = {\n idx?: number;\n};\n\nexport const isKanban = (object: unknown): object is KanbanType => object != null && object instanceof KanbanType;\n\nexport const createKanban = async (space: Space) => {\n const { kanban } = await initializeKanban({ space });\n return kanban;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const KANBAN_PLUGIN = 'dxos.org/plugin/kanban';\n\nexport const meta = {\n id: KANBAN_PLUGIN,\n name: 'Kanban',\n description: 'Kanban board for managing tasks.',\n icon: 'ph--kanban--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-kanban',\n tags: ['experimental'],\n} satisfies PluginMeta;\n"],
5
+ "mappings": ";AAIA,SAASA,SAAS;AAClB,SAAqBC,mBAAmB;AACxC,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB;AACjC,SAASC,mBAAmB;;;ACFrB,IAAMC,gBAAgB;AAEtB,IAAMC,OAAO;EAClBC,IAAIF;EACJG,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;;;;UDMiBC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;EAElB,MAAMC,eAAeC,EAAEC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAC7EK,OAAOF,EAAEG,OAAO;MACdC,MAAMJ,EAAEK,SAASL,EAAEM,MAAM;MACzBC,OAAOC;IACT,CAAA;IACAC,QAAQT,EAAEG,OAAO;MACfO,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBARSZ,SAAAA;EAUN,MAAMa,wBAAwBZ,EAAEC,YAAW,EAAoB,GAAGJ,aAAAA,sBAAmC;IAC1GK,OAAOF,EAAEG,OAAO;MACdU,QAAQF;MACRG,SAASd,EAAEM;;MAEXS,cAAcf,EAAEK,SACdL,EAAEG,OAAO;QACPa,OAAOC;;;QAGPC,OAAOlB,EAAEmB;QACTC,OAAOpB,EAAEqB;MACX,CAAA,CAAA;IAEJ,CAAA;IACAZ,QAAQT,EAAEsB;EACZ,CAAA,EAAA;EAAI;gBAhBSV,kBAAAA;AAiBf,GA9BiBhB,iBAAAA,eAAAA,CAAAA,EAAAA;AAgDV,IAAM2B,WAAW,CAACb,WAA0CA,UAAU,QAAQA,kBAAkBC;AAEhG,IAAMa,eAAe,OAAOjB,UAAAA;AACjC,QAAM,EAAEM,OAAM,IAAK,MAAMY,iBAAiB;IAAElB;EAAM,CAAA;AAClD,SAAOM;AACT;",
6
+ "names": ["S", "SpaceSchema", "KanbanType", "initializeKanban", "FieldSchema", "KANBAN_PLUGIN", "meta", "id", "name", "description", "icon", "source", "tags", "KanbanAction", "KANBAN_ACTION", "KANBAN_PLUGIN", "Create", "S", "TaggedClass", "input", "Struct", "name", "optional", "String", "space", "SpaceSchema", "output", "object", "KanbanType", "DeleteCardField", "kanban", "fieldId", "deletionData", "field", "FieldSchema", "props", "Any", "index", "Number", "Void", "isKanban", "createKanban", "initializeKanban"]
7
+ }
@@ -1,145 +1,18 @@
1
- import {
2
- KanbanAction,
3
- createKanban,
4
- isKanban
5
- } from "./chunk-JZBAL6SW.mjs";
6
1
  import {
7
2
  KANBAN_PLUGIN,
8
- meta_default
9
- } from "./chunk-LG4OMN5S.mjs";
3
+ KanbanAction,
4
+ meta
5
+ } from "./chunk-L4PZ5BVV.mjs";
10
6
 
11
7
  // packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx
12
- import React3 from "react";
13
- import { createSurface, createIntent as createIntent2, createResolver } from "@dxos/app-framework";
14
- import { invariant as invariant2 } from "@dxos/invariant";
15
- import { getSpace as getSpace3 } from "@dxos/react-client/echo";
8
+ import { createIntent, defineModule, contributes, Capabilities, Events, definePlugin, oneOf } from "@dxos/app-framework";
9
+ import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
16
10
  import { KanbanType as KanbanType2, translations as kanbanTranslations } from "@dxos/react-ui-kanban";
17
- import { ViewProjection } from "@dxos/schema";
18
11
 
19
- // packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx
20
- import React, { useCallback, useEffect, useState } from "react";
21
- import { invariant } from "@dxos/invariant";
22
- import { useGlobalFilteredObjects } from "@dxos/plugin-search";
23
- import { Filter, useQuery, getSpace, create } from "@dxos/react-client/echo";
24
- import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
25
- import { StackItem } from "@dxos/react-ui-stack";
26
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx";
27
- var KanbanContainer = ({ kanban }) => {
28
- const [cardSchema, setCardSchema] = useState();
29
- const space = getSpace(kanban);
30
- useEffect(() => {
31
- if (kanban.cardView && space) {
32
- setCardSchema(space.db.schemaRegistry.getSchema(kanban.cardView.target.query.type));
33
- }
34
- }, [
35
- kanban.cardView,
36
- space
37
- ]);
38
- const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());
39
- const filteredObjects = useGlobalFilteredObjects(objects);
40
- const model = useKanbanModel({
41
- kanban,
42
- cardSchema,
43
- items: filteredObjects
44
- });
45
- const handleAddColumn = useCallback((columnValue) => model?.addEmptyColumn(columnValue), [
46
- model
47
- ]);
48
- const handleAddCard = useCallback((columnValue) => {
49
- if (space && cardSchema) {
50
- space.db.add(create(cardSchema, {
51
- title: "",
52
- description: "",
53
- state: columnValue
54
- }));
55
- }
56
- }, [
57
- space,
58
- cardSchema
59
- ]);
60
- const handleRemoveCard = useCallback((card) => {
61
- invariant(space, void 0, {
62
- F: __dxlog_file,
63
- L: 51,
64
- S: void 0,
65
- A: [
66
- "space",
67
- ""
68
- ]
69
- });
70
- space.db.remove(card);
71
- }, [
72
- space
73
- ]);
74
- const handleRemoveEmptyColumn = useCallback((columnValue) => {
75
- model?.removeColumnFromArrangement(columnValue);
76
- }, [
77
- model
78
- ]);
79
- return /* @__PURE__ */ React.createElement(StackItem.Content, {
80
- toolbar: false
81
- }, model ? /* @__PURE__ */ React.createElement(Kanban, {
82
- model,
83
- onAddCard: handleAddCard,
84
- onAddColumn: handleAddColumn,
85
- onRemoveCard: handleRemoveCard,
86
- onRemoveEmptyColumn: handleRemoveEmptyColumn
87
- }) : /* @__PURE__ */ React.createElement("span", null, "Loading"));
88
- };
89
-
90
- // packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx
91
- import React2, { useCallback as useCallback2, useEffect as useEffect2, useState as useState2 } from "react";
92
- import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
93
- import { getSpace as getSpace2 } from "@dxos/react-client/echo";
94
- import { ViewEditor, Form } from "@dxos/react-ui-form";
95
- import { KanbanPropsSchema } from "@dxos/react-ui-kanban";
96
- var KanbanViewEditor = ({ kanban }) => {
97
- const { dispatchPromise: dispatch } = useIntentDispatcher();
98
- const space = getSpace2(kanban);
99
- const [schema, setSchema] = useState2(space && kanban?.cardView?.target?.query?.type ? space.db.schemaRegistry.getSchema(kanban.cardView.target.query.type) : void 0);
100
- useEffect2(() => {
101
- if (space && kanban?.cardView?.target?.query?.type) {
102
- const unsubscribe = space.db.schemaRegistry.query({
103
- typename: kanban?.cardView?.target?.query?.type
104
- }).subscribe((query) => {
105
- const [schema2] = query.results;
106
- if (schema2) {
107
- setSchema(schema2);
108
- }
109
- });
110
- return unsubscribe;
111
- }
112
- }, [
113
- space,
114
- kanban?.cardView?.target?.query?.type
115
- ]);
116
- const handleDelete = useCallback2((fieldId) => dispatch?.(createIntent(KanbanAction.DeleteCardField, {
117
- kanban,
118
- fieldId
119
- })), [
120
- dispatch,
121
- kanban
122
- ]);
123
- if (!space || !schema || !kanban.cardView?.target) {
124
- return null;
125
- }
126
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Form, {
127
- schema: KanbanPropsSchema,
128
- values: {
129
- columnField: kanban.columnField
130
- },
131
- onSave: ({ columnField }) => {
132
- kanban.columnField = columnField;
133
- kanban.arrangement = void 0;
134
- }
135
- }), /* @__PURE__ */ React2.createElement(ViewEditor, {
136
- registry: space.db.schemaRegistry,
137
- schema,
138
- view: kanban.cardView.target,
139
- onDelete: handleDelete
140
- }));
141
- };
142
- var KanbanViewEditor_default = KanbanViewEditor;
12
+ // packages/plugins/experimental/plugin-kanban/src/capabilities/index.ts
13
+ import { lazy } from "@dxos/app-framework";
14
+ var IntentResolver = lazy(() => import("./intent-resolver-ILMGO3TT.mjs"));
15
+ var ReactSurface = lazy(() => import("./react-surface-KCOBVPKL.mjs"));
143
16
 
144
17
  // packages/plugins/experimental/plugin-kanban/src/translations.ts
145
18
  import { KanbanType } from "@dxos/react-ui-kanban";
@@ -169,117 +42,56 @@ var translations_default = [
169
42
  ];
170
43
 
171
44
  // packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx
172
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx";
173
- var KanbanPlugin = () => {
174
- return {
175
- meta: meta_default,
176
- provides: {
45
+ var KanbanPlugin = () => definePlugin(meta, [
46
+ defineModule({
47
+ id: `${meta.id}/module/translations`,
48
+ activatesOn: Events.SetupTranslations,
49
+ activate: () => contributes(Capabilities.Translations, [
50
+ ...translations_default,
51
+ ...kanbanTranslations
52
+ ])
53
+ }),
54
+ defineModule({
55
+ id: `${meta.id}/module/metadata`,
56
+ activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),
57
+ activate: () => contributes(Capabilities.Metadata, {
58
+ id: KanbanType2.typename,
177
59
  metadata: {
178
- records: {
179
- [KanbanType2.typename]: {
180
- createObject: (props) => createIntent2(KanbanAction.Create, props),
181
- placeholder: [
182
- "kanban title placeholder",
183
- {
184
- ns: KANBAN_PLUGIN
185
- }
186
- ],
187
- icon: "ph--kanban--regular"
60
+ createObject: (props, options) => createIntent(KanbanAction.Create, {
61
+ ...props,
62
+ space: options.space
63
+ }),
64
+ placeholder: [
65
+ "kanban title placeholder",
66
+ {
67
+ ns: KANBAN_PLUGIN
188
68
  }
189
- }
190
- },
191
- echo: {
192
- schema: [
193
- KanbanType2
194
- ]
195
- },
196
- translations: [
197
- ...translations_default,
198
- ...kanbanTranslations
199
- ],
200
- surface: {
201
- definitions: () => [
202
- createSurface({
203
- id: `${KANBAN_PLUGIN}/kanban`,
204
- role: [
205
- "article",
206
- "section"
207
- ],
208
- filter: (data) => isKanban(data.subject),
209
- component: ({ data, role }) => /* @__PURE__ */ React3.createElement(KanbanContainer, {
210
- kanban: data.subject,
211
- role
212
- })
213
- }),
214
- createSurface({
215
- id: `${KANBAN_PLUGIN}/settings`,
216
- role: "complementary--settings",
217
- filter: (data) => isKanban(data.subject),
218
- component: ({ data }) => /* @__PURE__ */ React3.createElement(KanbanViewEditor_default, {
219
- kanban: data.subject
220
- })
221
- })
222
- ]
223
- },
224
- intent: {
225
- resolvers: () => [
226
- createResolver(KanbanAction.Create, async ({ space }) => ({
227
- data: {
228
- object: await createKanban(space)
229
- }
230
- })),
231
- createResolver(KanbanAction.DeleteCardField, ({ kanban, fieldId, deletionData }, undo) => {
232
- invariant2(kanban.cardView, void 0, {
233
- F: __dxlog_file2,
234
- L: 58,
235
- S: void 0,
236
- A: [
237
- "kanban.cardView",
238
- ""
239
- ]
240
- });
241
- const schema = kanban.cardView.target && getSpace3(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);
242
- invariant2(schema, void 0, {
243
- F: __dxlog_file2,
244
- L: 63,
245
- S: void 0,
246
- A: [
247
- "schema",
248
- ""
249
- ]
250
- });
251
- const projection = new ViewProjection(schema, kanban.cardView.target);
252
- if (!undo) {
253
- const { deleted, index } = projection.deleteFieldProjection(fieldId);
254
- return {
255
- undoable: {
256
- message: translations_default[0]["en-US"][KANBAN_PLUGIN]["card field deleted label"],
257
- data: {
258
- deletionData: {
259
- ...deleted,
260
- index
261
- }
262
- }
263
- }
264
- };
265
- } else if (undo && deletionData) {
266
- const { field, props, index } = deletionData;
267
- projection.setFieldProjection({
268
- field,
269
- props
270
- }, index);
271
- }
272
- })
273
- ]
69
+ ],
70
+ icon: "ph--kanban--regular"
274
71
  }
275
- }
276
- };
277
- };
278
-
279
- // packages/plugins/experimental/plugin-kanban/src/index.ts
280
- var src_default = KanbanPlugin;
72
+ })
73
+ }),
74
+ defineModule({
75
+ id: `${meta.id}/module/schema`,
76
+ activatesOn: ClientEvents.SetupClient,
77
+ activate: () => contributes(ClientCapabilities.Schema, [
78
+ KanbanType2
79
+ ])
80
+ }),
81
+ defineModule({
82
+ id: `${meta.id}/module/react-surface`,
83
+ activatesOn: Events.Startup,
84
+ activate: ReactSurface
85
+ }),
86
+ defineModule({
87
+ id: `${meta.id}/module/intent-resolver`,
88
+ activatesOn: Events.SetupIntents,
89
+ activate: IntentResolver
90
+ })
91
+ ]);
281
92
  export {
93
+ KANBAN_PLUGIN,
282
94
  KanbanPlugin,
283
- src_default as default
95
+ meta
284
96
  };
285
97
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/KanbanPlugin.tsx", "../../../src/components/KanbanContainer.tsx", "../../../src/components/KanbanViewEditor.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type PluginDefinition, createSurface, createIntent, createResolver } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace, type Space } from '@dxos/react-client/echo';\nimport { KanbanType, translations as kanbanTranslations } from '@dxos/react-ui-kanban';\nimport { ViewProjection } from '@dxos/schema';\n\nimport { KanbanContainer } from './components';\nimport KanbanViewEditor from './components/KanbanViewEditor';\nimport meta, { KANBAN_PLUGIN } from './meta';\nimport translations from './translations';\nimport { isKanban, KanbanAction, type KanbanPluginProvides, createKanban } from './types';\n\nexport const KanbanPlugin = (): PluginDefinition<KanbanPluginProvides> => {\n return {\n meta,\n provides: {\n metadata: {\n records: {\n [KanbanType.typename]: {\n createObject: (props: { name?: string; space: Space }) => createIntent(KanbanAction.Create, props),\n placeholder: ['kanban title placeholder', { ns: KANBAN_PLUGIN }],\n icon: 'ph--kanban--regular',\n },\n },\n },\n echo: {\n schema: [KanbanType],\n },\n translations: [...translations, ...kanbanTranslations],\n surface: {\n definitions: () => [\n createSurface({\n id: `${KANBAN_PLUGIN}/kanban`,\n role: ['article', 'section'],\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data, role }) => <KanbanContainer kanban={data.subject} role={role} />,\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/settings`,\n role: 'complementary--settings',\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data }) => <KanbanViewEditor kanban={data.subject} />,\n }),\n ],\n },\n intent: {\n resolvers: () => [\n createResolver(KanbanAction.Create, async ({ space }) => ({\n data: { object: await createKanban(space) },\n })),\n createResolver(KanbanAction.DeleteCardField, ({ kanban, fieldId, deletionData }, undo) => {\n invariant(kanban.cardView);\n\n const schema =\n kanban.cardView.target &&\n getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);\n invariant(schema);\n const projection = new ViewProjection(schema, kanban.cardView.target!);\n\n if (!undo) {\n const { deleted, index } = projection.deleteFieldProjection(fieldId);\n return {\n undoable: {\n message: translations[0]['en-US'][KANBAN_PLUGIN]['card field deleted label'],\n data: { deletionData: { ...deleted, index } },\n },\n };\n } else if (undo && deletionData) {\n const { field, props, index } = deletionData;\n projection.setFieldProjection({ field, props }, index);\n }\n }),\n ],\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { type EchoSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useGlobalFilteredObjects } from '@dxos/plugin-search';\nimport { Filter, useQuery, getSpace, create } from '@dxos/react-client/echo';\nimport { type KanbanType, useKanbanModel, Kanban } from '@dxos/react-ui-kanban';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nexport const KanbanContainer = ({ kanban }: { kanban: KanbanType; role: string }) => {\n const [cardSchema, setCardSchema] = useState<EchoSchema>();\n const space = getSpace(kanban);\n useEffect(() => {\n if (kanban.cardView && space) {\n setCardSchema(space.db.schemaRegistry.getSchema(kanban.cardView.target!.query.type));\n }\n }, [kanban.cardView, space]);\n\n const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());\n const filteredObjects = useGlobalFilteredObjects(objects);\n\n const model = useKanbanModel({\n kanban,\n cardSchema,\n items: filteredObjects,\n });\n\n const handleAddColumn = useCallback((columnValue: string) => model?.addEmptyColumn(columnValue), [model]);\n\n const handleAddCard = useCallback(\n (columnValue: string) => {\n if (space && cardSchema) {\n space.db.add(\n create(cardSchema, {\n title: '',\n description: '',\n state: columnValue,\n }),\n );\n }\n },\n [space, cardSchema],\n );\n\n const handleRemoveCard = useCallback(\n (card: { id: string }) => {\n invariant(space);\n space.db.remove(card);\n },\n [space],\n );\n\n const handleRemoveEmptyColumn = useCallback(\n (columnValue: string) => {\n model?.removeColumnFromArrangement(columnValue);\n },\n [model],\n );\n\n return (\n <StackItem.Content toolbar={false}>\n {model ? (\n <Kanban\n model={model}\n onAddCard={handleAddCard}\n onAddColumn={handleAddColumn}\n onRemoveCard={handleRemoveCard}\n onRemoveEmptyColumn={handleRemoveEmptyColumn}\n />\n ) : (\n <span>Loading</span>\n )}\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { ViewEditor, Form } from '@dxos/react-ui-form';\nimport { type KanbanType, KanbanPropsSchema } from '@dxos/react-ui-kanban';\n\nimport { KanbanAction } from '../types';\n\ntype KanbanViewEditorProps = { kanban: KanbanType };\n\nconst KanbanViewEditor = ({ kanban }: KanbanViewEditorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const space = getSpace(kanban);\n\n // TODO(ZaymonFC): The schema registry needs an API where we can query with initial value and\n // endure typename changes. We shouldn't need to manage a subscription at this layer.\n const [schema, setSchema] = useState(\n space && kanban?.cardView?.target?.query?.type\n ? space.db.schemaRegistry.getSchema(kanban.cardView.target.query.type)\n : undefined,\n );\n\n useEffect(() => {\n if (space && kanban?.cardView?.target?.query?.type) {\n const unsubscribe = space.db.schemaRegistry\n .query({ typename: kanban?.cardView?.target?.query?.type })\n .subscribe((query) => {\n const [schema] = query.results;\n if (schema) {\n setSchema(schema);\n }\n });\n\n return unsubscribe;\n }\n }, [space, kanban?.cardView?.target?.query?.type]);\n\n const handleDelete = useCallback(\n (fieldId: string) => dispatch?.(createIntent(KanbanAction.DeleteCardField, { kanban, fieldId })),\n [dispatch, kanban],\n );\n\n if (!space || !schema || !kanban.cardView?.target) {\n return null;\n }\n\n return (\n <>\n <Form\n schema={KanbanPropsSchema}\n values={{ columnField: kanban.columnField }}\n onSave={({ columnField }) => {\n kanban.columnField = columnField;\n kanban.arrangement = undefined;\n }}\n />\n <ViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={kanban.cardView.target}\n onDelete={handleDelete}\n />\n </>\n );\n};\n\nexport default KanbanViewEditor;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { KanbanType } from '@dxos/react-ui-kanban';\n\nimport { KANBAN_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [KanbanType.typename]: {\n 'typename label': 'Kanban',\n },\n [KANBAN_PLUGIN]: {\n 'plugin name': 'Kanban',\n 'kanban title label': 'Title',\n 'kanban title placeholder': 'New kanban',\n 'column title label': 'Column title',\n 'column title placeholder': 'New column',\n 'item title label': 'Item title',\n 'item title placeholder': 'New item',\n 'add column label': 'Add column',\n 'add item label': 'Add card',\n 'delete column label': 'Delete column',\n 'delete item label': 'Delete card',\n 'create kanban label': 'Create kanban',\n 'card field deleted label': 'Card field deleted',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { KanbanPlugin } from './KanbanPlugin';\n\nexport default KanbanPlugin;\n\nexport * from './KanbanPlugin';\n"],
5
- "mappings": "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",
6
- "names": ["React", "createSurface", "createIntent", "createResolver", "invariant", "getSpace", "KanbanType", "translations", "kanbanTranslations", "ViewProjection", "React", "useCallback", "useEffect", "useState", "invariant", "useGlobalFilteredObjects", "Filter", "useQuery", "getSpace", "create", "useKanbanModel", "Kanban", "StackItem", "KanbanContainer", "kanban", "cardSchema", "setCardSchema", "space", "cardView", "db", "schemaRegistry", "getSchema", "target", "query", "type", "objects", "schema", "nothing", "filteredObjects", "model", "items", "handleAddColumn", "columnValue", "addEmptyColumn", "handleAddCard", "add", "title", "description", "state", "handleRemoveCard", "card", "remove", "handleRemoveEmptyColumn", "removeColumnFromArrangement", "Content", "toolbar", "onAddCard", "onAddColumn", "onRemoveCard", "onRemoveEmptyColumn", "span", "React", "useCallback", "useEffect", "useState", "createIntent", "useIntentDispatcher", "getSpace", "ViewEditor", "Form", "KanbanPropsSchema", "KanbanViewEditor", "kanban", "dispatchPromise", "dispatch", "useIntentDispatcher", "space", "getSpace", "schema", "setSchema", "useState", "cardView", "target", "query", "type", "db", "schemaRegistry", "getSchema", "undefined", "useEffect", "unsubscribe", "typename", "subscribe", "results", "handleDelete", "useCallback", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "React", "Form", "KanbanPropsSchema", "values", "columnField", "onSave", "arrangement", "ViewEditor", "registry", "view", "onDelete", "KanbanType", "KanbanType", "typename", "KANBAN_PLUGIN", "KanbanPlugin", "meta", "provides", "metadata", "records", "KanbanType", "typename", "createObject", "props", "createIntent", "KanbanAction", "Create", "placeholder", "ns", "KANBAN_PLUGIN", "icon", "echo", "schema", "translations", "kanbanTranslations", "surface", "definitions", "createSurface", "id", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor", "intent", "resolvers", "createResolver", "space", "object", "createKanban", "DeleteCardField", "fieldId", "deletionData", "undo", "invariant", "cardView", "target", "getSpace", "db", "schemaRegistry", "getSchema", "query", "type", "projection", "ViewProjection", "deleted", "index", "deleteFieldProjection", "undoable", "message", "field", "setFieldProjection", "KanbanPlugin"]
3
+ "sources": ["../../../src/KanbanPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n createIntent,\n defineModule,\n contributes,\n Capabilities,\n Events,\n definePlugin,\n oneOf,\n} from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { KanbanType, translations as kanbanTranslations } from '@dxos/react-ui-kanban';\n\nimport { IntentResolver, ReactSurface } from './capabilities';\nimport { KANBAN_PLUGIN, meta } from './meta';\nimport translations from './translations';\nimport { KanbanAction } from './types';\n\nexport const KanbanPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...kanbanTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: KanbanType.typename,\n metadata: {\n createObject: (props: { name?: string }, options: { space: Space }) =>\n createIntent(KanbanAction.Create, { ...props, space: options.space }),\n placeholder: ['kanban title placeholder', { ns: KANBAN_PLUGIN }],\n icon: 'ph--kanban--regular',\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupClient,\n activate: () => contributes(ClientCapabilities.Schema, [KanbanType]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.Startup,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntents,\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 { KanbanType } from '@dxos/react-ui-kanban';\n\nimport { KANBAN_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [KanbanType.typename]: {\n 'typename label': 'Kanban',\n },\n [KANBAN_PLUGIN]: {\n 'plugin name': 'Kanban',\n 'kanban title label': 'Title',\n 'kanban title placeholder': 'New kanban',\n 'column title label': 'Column title',\n 'column title placeholder': 'New column',\n 'item title label': 'Item title',\n 'item title placeholder': 'New item',\n 'add column label': 'Add column',\n 'add item label': 'Add card',\n 'delete column label': 'Delete column',\n 'delete item label': 'Delete card',\n 'create kanban label': 'Create kanban',\n 'card field deleted label': 'Card field deleted',\n },\n },\n },\n];\n"],
5
+ "mappings": ";;;;;;;AAIA,SACEA,cACAC,cACAC,aACAC,cACAC,QACAC,cACAC,aACK;AACP,SAASC,oBAAoBC,oBAAoB;AAEjD,SAASC,cAAAA,aAAYC,gBAAgBC,0BAA0B;;;ACX/D,SAASC,YAAY;AAEd,IAAMC,iBAAiBC,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMC,eAAeD,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACH9C,SAASE,kBAAkB;AAI3B,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,WAAWC,QAAQ,GAAG;QACrB,kBAAkB;MACpB;MACA,CAACC,aAAAA,GAAgB;QACf,eAAe;QACf,sBAAsB;QACtB,4BAA4B;QAC5B,sBAAsB;QACtB,4BAA4B;QAC5B,oBAAoB;QACpB,0BAA0B;QAC1B,oBAAoB;QACpB,kBAAkB;QAClB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,4BAA4B;MAC9B;IACF;EACF;;;;AFRK,IAAMC,eAAe,MAC1BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAmB;EACjG,CAAA;EACAV,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaS,MAAMR,OAAOS,SAAST,OAAOU,aAAa;IACvDR,UAAU,MACRC,YAAYC,aAAaO,UAAU;MACjCb,IAAIc,YAAWC;MACfC,UAAU;QACRC,cAAc,CAACC,OAA0BC,YACvCC,aAAaC,aAAaC,QAAQ;UAAE,GAAGJ;UAAOK,OAAOJ,QAAQI;QAAM,CAAA;QACrEC,aAAa;UAAC;UAA4B;YAAEC,IAAIC;UAAc;;QAC9DC,MAAM;MACR;IACF,CAAA;EACJ,CAAA;EACA5B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa2B,aAAaC;IAC1BzB,UAAU,MAAMC,YAAYyB,mBAAmBC,QAAQ;MAACjB;KAAW;EACrE,CAAA;EACAf,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOS;IACpBP,UAAU4B;EACZ,CAAA;EACAjC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO+B;IACpB7B,UAAU8B;EACZ,CAAA;CACD;",
6
+ "names": ["createIntent", "defineModule", "contributes", "Capabilities", "Events", "definePlugin", "oneOf", "ClientCapabilities", "ClientEvents", "KanbanType", "translations", "kanbanTranslations", "lazy", "IntentResolver", "lazy", "ReactSurface", "KanbanType", "KanbanType", "typename", "KANBAN_PLUGIN", "KanbanPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "kanbanTranslations", "oneOf", "Startup", "SetupAppGraph", "Metadata", "KanbanType", "typename", "metadata", "createObject", "props", "options", "createIntent", "KanbanAction", "Create", "space", "placeholder", "ns", "KANBAN_PLUGIN", "icon", "ClientEvents", "SetupClient", "ClientCapabilities", "Schema", "ReactSurface", "SetupIntents", "IntentResolver"]
7
7
  }
@@ -0,0 +1,70 @@
1
+ import {
2
+ KANBAN_PLUGIN,
3
+ KanbanAction,
4
+ createKanban
5
+ } from "./chunk-L4PZ5BVV.mjs";
6
+
7
+ // packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts
8
+ import { contributes, Capabilities, createResolver } from "@dxos/app-framework";
9
+ import { invariant } from "@dxos/invariant";
10
+ import { getSpace } from "@dxos/react-client/echo";
11
+ import { ViewProjection } from "@dxos/schema";
12
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts";
13
+ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
14
+ createResolver(KanbanAction.Create, async ({ space }) => ({
15
+ data: {
16
+ object: await createKanban(space)
17
+ }
18
+ })),
19
+ createResolver(KanbanAction.DeleteCardField, ({ kanban, fieldId, deletionData }, undo) => {
20
+ invariant(kanban.cardView, void 0, {
21
+ F: __dxlog_file,
22
+ L: 19,
23
+ S: void 0,
24
+ A: [
25
+ "kanban.cardView",
26
+ ""
27
+ ]
28
+ });
29
+ const schema = kanban.cardView.target && getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);
30
+ invariant(schema, void 0, {
31
+ F: __dxlog_file,
32
+ L: 23,
33
+ S: void 0,
34
+ A: [
35
+ "schema",
36
+ ""
37
+ ]
38
+ });
39
+ const projection = new ViewProjection(schema, kanban.cardView.target);
40
+ if (!undo) {
41
+ const { deleted, index } = projection.deleteFieldProjection(fieldId);
42
+ return {
43
+ undoable: {
44
+ message: [
45
+ "card field deleted label",
46
+ {
47
+ ns: KANBAN_PLUGIN
48
+ }
49
+ ],
50
+ data: {
51
+ deletionData: {
52
+ ...deleted,
53
+ index
54
+ }
55
+ }
56
+ }
57
+ };
58
+ } else if (undo && deletionData) {
59
+ const { field, props, index } = deletionData;
60
+ projection.setFieldProjection({
61
+ field,
62
+ props
63
+ }, index);
64
+ }
65
+ })
66
+ ]);
67
+ export {
68
+ intent_resolver_default as default
69
+ };
70
+ //# sourceMappingURL=intent-resolver-ILMGO3TT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, Capabilities, createResolver } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { ViewProjection } from '@dxos/schema';\n\nimport { KANBAN_PLUGIN } from '../meta';\nimport { createKanban, KanbanAction } from '../types';\n\nexport default () =>\n contributes(Capabilities.IntentResolver, [\n createResolver(KanbanAction.Create, async ({ space }) => ({\n data: { object: await createKanban(space) },\n })),\n createResolver(KanbanAction.DeleteCardField, ({ kanban, fieldId, deletionData }, undo) => {\n invariant(kanban.cardView);\n\n const schema =\n kanban.cardView.target && getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);\n invariant(schema);\n const projection = new ViewProjection(schema, kanban.cardView.target!);\n\n if (!undo) {\n const { deleted, index } = projection.deleteFieldProjection(fieldId);\n return {\n undoable: {\n message: ['card field deleted label', { ns: KANBAN_PLUGIN }],\n data: { deletionData: { ...deleted, index } },\n },\n };\n } else if (undo && deletionData) {\n const { field, props, index } = deletionData;\n projection.setFieldProjection({ field, props }, index);\n }\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;AAIA,SAASA,aAAaC,cAAcC,sBAAsB;AAC1D,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;;AAK/B,IAAA,0BAAe,MACbC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAeC,aAAaC,QAAQ,OAAO,EAAEC,MAAK,OAAQ;IACxDC,MAAM;MAAEC,QAAQ,MAAMC,aAAaH,KAAAA;IAAO;EAC5C,EAAA;EACAH,eAAeC,aAAaM,iBAAiB,CAAC,EAAEC,QAAQC,SAASC,aAAY,GAAIC,SAAAA;AAC/EC,cAAUJ,OAAOK,UAAQ,QAAA;;;;;;;;;AAEzB,UAAMC,SACJN,OAAOK,SAASE,UAAUC,SAASR,MAAAA,GAASS,GAAGC,eAAeC,UAAUX,OAAOK,SAASE,OAAOK,MAAMC,IAAI;AAC3GT,cAAUE,QAAAA,QAAAA;;;;;;;;;AACV,UAAMQ,aAAa,IAAIC,eAAeT,QAAQN,OAAOK,SAASE,MAAM;AAEpE,QAAI,CAACJ,MAAM;AACT,YAAM,EAAEa,SAASC,MAAK,IAAKH,WAAWI,sBAAsBjB,OAAAA;AAC5D,aAAO;QACLkB,UAAU;UACRC,SAAS;YAAC;YAA4B;cAAEC,IAAIC;YAAc;;UAC1D1B,MAAM;YAAEM,cAAc;cAAE,GAAGc;cAASC;YAAM;UAAE;QAC9C;MACF;IACF,WAAWd,QAAQD,cAAc;AAC/B,YAAM,EAAEqB,OAAOC,OAAOP,MAAK,IAAKf;AAChCY,iBAAWW,mBAAmB;QAAEF;QAAOC;MAAM,GAAGP,KAAAA;IAClD;EACF,CAAA;CACD;",
6
+ "names": ["contributes", "Capabilities", "createResolver", "invariant", "getSpace", "ViewProjection", "contributes", "Capabilities", "IntentResolver", "createResolver", "KanbanAction", "Create", "space", "data", "object", "createKanban", "DeleteCardField", "kanban", "fieldId", "deletionData", "undo", "invariant", "cardView", "schema", "target", "getSpace", "db", "schemaRegistry", "getSchema", "query", "type", "projection", "ViewProjection", "deleted", "index", "deleteFieldProjection", "undoable", "message", "ns", "KANBAN_PLUGIN", "field", "props", "setFieldProjection"]
7
+ }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx":{"bytes":8391,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/index.ts":{"bytes":545,"imports":[{"path":"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/meta.ts":{"bytes":1585,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/types.ts":{"bytes":7681,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytes":8135,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/translations.ts":{"bytes":3142,"imports":[{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx":{"bytes":13760,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","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-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./components/KanbanViewEditor"},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/experimental/plugin-kanban/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/index.ts":{"bytes":795,"imports":[{"path":"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"},{"path":"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/experimental/plugin-kanban/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15978},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-JZBAL6SW.mjs","kind":"import-statement"},{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-LG4OMN5S.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","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-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true}],"exports":["KanbanPlugin","default"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/index.ts","inputs":{"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx":{"bytesInOutput":3653},"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2185},"packages/plugins/experimental/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":1900},"packages/plugins/experimental/plugin-kanban/src/translations.ts":{"bytesInOutput":804},"packages/plugins/experimental/plugin-kanban/src/index.ts":{"bytesInOutput":32}},"bytes":9251},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-LG4OMN5S.mjs","kind":"import-statement"}],"exports":["KANBAN_PLUGIN","default"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/meta.ts","inputs":{},"bytes":161},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-JZBAL6SW.mjs","kind":"import-statement"},{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-LG4OMN5S.mjs","kind":"import-statement"}],"exports":["KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/types.ts","inputs":{},"bytes":204},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-JZBAL6SW.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4307},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-JZBAL6SW.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-LG4OMN5S.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["KanbanAction","createKanban","isKanban"],"inputs":{"packages/plugins/experimental/plugin-kanban/src/types.ts":{"bytesInOutput":1368}},"bytes":1585},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-LG4OMN5S.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":746},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-LG4OMN5S.mjs":{"imports":[],"exports":["KANBAN_PLUGIN","meta_default"],"inputs":{"packages/plugins/experimental/plugin-kanban/src/meta.ts":{"bytesInOutput":320}},"bytes":468}}}
1
+ {"inputs":{"packages/plugins/experimental/plugin-kanban/src/meta.ts":{"bytes":1622,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/types.ts":{"bytes":7197,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytes":6679,"imports":[{"path":"@dxos/app-framework","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/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx":{"bytes":8391,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytes":10572,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/index.ts":{"bytes":657,"imports":[{"path":"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"},{"path":"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./KanbanViewEditor"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx":{"bytes":3898,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/capabilities/index.ts":{"bytes":1094,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/translations.ts":{"bytes":3142,"imports":[{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx":{"bytes":7681,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/experimental/plugin-kanban/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/index.ts":{"bytes":607,"imports":[{"path":"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/experimental/plugin-kanban/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5418},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-L4PZ5BVV.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/intent-resolver-ILMGO3TT.mjs","kind":"dynamic-import"},{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/react-surface-KCOBVPKL.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true}],"exports":["KANBAN_PLUGIN","KanbanPlugin","meta"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/index.ts","inputs":{"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx":{"bytesInOutput":1578},"packages/plugins/experimental/plugin-kanban/src/capabilities/index.ts":{"bytesInOutput":190},"packages/plugins/experimental/plugin-kanban/src/translations.ts":{"bytesInOutput":804},"packages/plugins/experimental/plugin-kanban/src/index.ts":{"bytesInOutput":0}},"bytes":3019},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-L4PZ5BVV.mjs","kind":"import-statement"}],"exports":["KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/types.ts","inputs":{},"bytes":173},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/intent-resolver-ILMGO3TT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2998},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/intent-resolver-ILMGO3TT.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-L4PZ5BVV.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","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/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytesInOutput":1746}},"bytes":2021},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/react-surface-KCOBVPKL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11670},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/react-surface-KCOBVPKL.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-L4PZ5BVV.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx":{"bytesInOutput":744},"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2185},"packages/plugins/experimental/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":2520}},"bytes":5965},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-L4PZ5BVV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4619},"packages/plugins/experimental/plugin-kanban/dist/lib/browser/chunk-L4PZ5BVV.mjs":{"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["KANBAN_PLUGIN","KanbanAction","createKanban","isKanban","meta"],"inputs":{"packages/plugins/experimental/plugin-kanban/src/types.ts":{"bytesInOutput":1368},"packages/plugins/experimental/plugin-kanban/src/meta.ts":{"bytesInOutput":312}},"bytes":1986}}}