@dxos/plugin-kanban 0.8.2-main.f11618f → 0.8.2-staging.7ac8446

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/{artifact-definition-OSLO5B6P.mjs → artifact-definition-SVNHDJQT.mjs} +2 -2
  2. package/dist/lib/browser/{chunk-3MVG4VGQ.mjs → chunk-K5BYEZ4Z.mjs} +13 -2
  3. package/dist/lib/browser/chunk-K5BYEZ4Z.mjs.map +7 -0
  4. package/dist/lib/browser/index.mjs +4 -4
  5. package/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs +132 -0
  6. package/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs.map +7 -0
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/{react-surface-RJ5WMSWU.mjs → react-surface-5DLU7L63.mjs} +28 -58
  9. package/dist/lib/browser/react-surface-5DLU7L63.mjs.map +7 -0
  10. package/dist/lib/browser/types.mjs +3 -1
  11. package/dist/lib/node/{artifact-definition-ZOUZLESK.cjs → artifact-definition-M2XAYUI2.cjs} +11 -11
  12. package/dist/lib/node/{chunk-ZRCL6XVF.cjs → chunk-3EUR6ZR2.cjs} +16 -4
  13. package/dist/lib/node/chunk-3EUR6ZR2.cjs.map +7 -0
  14. package/dist/lib/node/index.cjs +16 -16
  15. package/dist/lib/node/intent-resolver-P3PSZO7H.cjs +146 -0
  16. package/dist/lib/node/intent-resolver-P3PSZO7H.cjs.map +7 -0
  17. package/dist/lib/node/meta.json +1 -1
  18. package/dist/lib/node/{react-surface-LQ7CQFWF.cjs → react-surface-OWAYP7VQ.cjs} +32 -62
  19. package/dist/lib/node/react-surface-OWAYP7VQ.cjs.map +7 -0
  20. package/dist/lib/node/types.cjs +8 -6
  21. package/dist/lib/node/types.cjs.map +2 -2
  22. package/dist/lib/node-esm/{artifact-definition-A7GJP5BI.mjs → artifact-definition-HQ5I2OO5.mjs} +2 -2
  23. package/dist/lib/node-esm/{chunk-ZJJYPR6C.mjs → chunk-2N7CO3DI.mjs} +13 -2
  24. package/dist/lib/node-esm/chunk-2N7CO3DI.mjs.map +7 -0
  25. package/dist/lib/node-esm/index.mjs +4 -4
  26. package/dist/lib/node-esm/intent-resolver-4G47V67J.mjs +133 -0
  27. package/dist/lib/node-esm/intent-resolver-4G47V67J.mjs.map +7 -0
  28. package/dist/lib/node-esm/meta.json +1 -1
  29. package/dist/lib/node-esm/{react-surface-C7CETLHO.mjs → react-surface-CLEITUUD.mjs} +28 -58
  30. package/dist/lib/node-esm/react-surface-CLEITUUD.mjs.map +7 -0
  31. package/dist/lib/node-esm/types.mjs +3 -1
  32. package/dist/types/src/capabilities/index.d.ts +1 -1
  33. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  34. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  35. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  36. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  37. package/dist/types/src/components/KanbanContainer.d.ts.map +1 -1
  38. package/dist/types/src/types.d.ts +18 -2
  39. package/dist/types/src/types.d.ts.map +1 -1
  40. package/package.json +24 -27
  41. package/src/capabilities/intent-resolver.ts +6 -10
  42. package/src/capabilities/react-surface.tsx +8 -37
  43. package/src/components/KanbanContainer.tsx +10 -23
  44. package/src/types.ts +17 -1
  45. package/dist/lib/browser/chunk-3MVG4VGQ.mjs.map +0 -7
  46. package/dist/lib/browser/intent-resolver-OFEXRD4O.mjs +0 -296
  47. package/dist/lib/browser/intent-resolver-OFEXRD4O.mjs.map +0 -7
  48. package/dist/lib/browser/react-surface-RJ5WMSWU.mjs.map +0 -7
  49. package/dist/lib/node/chunk-ZRCL6XVF.cjs.map +0 -7
  50. package/dist/lib/node/intent-resolver-BCCCN7LD.cjs +0 -307
  51. package/dist/lib/node/intent-resolver-BCCCN7LD.cjs.map +0 -7
  52. package/dist/lib/node/react-surface-LQ7CQFWF.cjs.map +0 -7
  53. package/dist/lib/node-esm/chunk-ZJJYPR6C.mjs.map +0 -7
  54. package/dist/lib/node-esm/intent-resolver-4LPFRDUP.mjs +0 -297
  55. package/dist/lib/node-esm/intent-resolver-4LPFRDUP.mjs.map +0 -7
  56. package/dist/lib/node-esm/react-surface-C7CETLHO.mjs.map +0 -7
  57. package/dist/types/src/components/KanbanContainer.stories.d.ts +0 -10
  58. package/dist/types/src/components/KanbanContainer.stories.d.ts.map +0 -1
  59. package/dist/types/src/testing/index.d.ts +0 -3
  60. package/dist/types/src/testing/index.d.ts.map +0 -1
  61. package/dist/types/src/testing/initialize-kanban.d.ts +0 -17
  62. package/dist/types/src/testing/initialize-kanban.d.ts.map +0 -1
  63. package/dist/types/src/testing/kanban-manager.d.ts +0 -7
  64. package/dist/types/src/testing/kanban-manager.d.ts.map +0 -1
  65. package/dist/types/src/testing/playwright/smoke.spec.d.ts +0 -2
  66. package/dist/types/src/testing/playwright/smoke.spec.d.ts.map +0 -1
  67. package/src/components/KanbanContainer.stories.tsx +0 -186
  68. package/src/testing/index.ts +0 -6
  69. package/src/testing/initialize-kanban.ts +0 -139
  70. package/src/testing/kanban-manager.ts +0 -13
  71. package/src/testing/playwright/playwright.config.cts +0 -18
  72. package/src/testing/playwright/smoke.spec.ts +0 -7
  73. /package/dist/lib/browser/{artifact-definition-OSLO5B6P.mjs.map → artifact-definition-SVNHDJQT.mjs.map} +0 -0
  74. /package/dist/lib/node/{artifact-definition-ZOUZLESK.cjs.map → artifact-definition-M2XAYUI2.cjs.map} +0 -0
  75. /package/dist/lib/node-esm/{artifact-definition-A7GJP5BI.mjs.map → artifact-definition-HQ5I2OO5.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  KanbanAction,
3
3
  meta
4
- } from "./chunk-3MVG4VGQ.mjs";
4
+ } from "./chunk-K5BYEZ4Z.mjs";
5
5
 
6
6
  // packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts
7
7
  import { pipe } from "effect";
@@ -174,4 +174,4 @@ var artifact_definition_default = () => {
174
174
  export {
175
175
  artifact_definition_default as default
176
176
  };
177
- //# sourceMappingURL=artifact-definition-OSLO5B6P.mjs.map
177
+ //# sourceMappingURL=artifact-definition-SVNHDJQT.mjs.map
@@ -3,6 +3,7 @@ import { TitleAnnotationId } from "effect/SchemaAST";
3
3
  import { S } from "@dxos/echo-schema";
4
4
  import { SpaceSchema } from "@dxos/react-client/echo";
5
5
  import { KanbanType } from "@dxos/react-ui-kanban";
6
+ import { initializeKanban } from "@dxos/react-ui-kanban/testing";
6
7
  import { FieldSchema } from "@dxos/schema";
7
8
 
8
9
  // packages/plugins/plugin-kanban/src/meta.ts
@@ -75,6 +76,15 @@ var KanbanAction;
75
76
  KanbanAction2.DeleteCard = DeleteCard;
76
77
  })(KanbanAction || (KanbanAction = {}));
77
78
  var isKanban = (object) => object != null && object instanceof KanbanType;
79
+ var createKanban = async ({ space, name, typename, initialPivotColumn }) => {
80
+ const { kanban } = await initializeKanban({
81
+ space,
82
+ name,
83
+ typename,
84
+ initialPivotColumn
85
+ });
86
+ return kanban;
87
+ };
78
88
 
79
89
  export {
80
90
  KANBAN_PLUGIN,
@@ -83,6 +93,7 @@ export {
83
93
  PivotColumnAnnotationId,
84
94
  CreateKanbanSchema,
85
95
  KanbanAction,
86
- isKanban
96
+ isKanban,
97
+ createKanban
87
98
  };
88
- //# sourceMappingURL=chunk-3MVG4VGQ.mjs.map
99
+ //# sourceMappingURL=chunk-K5BYEZ4Z.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types.ts", "../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { TitleAnnotationId } from 'effect/SchemaAST';\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\n// TODO(burdon): Move to FormatEnum or SDK.\nexport const TypenameAnnotationId = Symbol.for('@dxos/plugin-kanban/annotation/Typename');\nexport const PivotColumnAnnotationId = Symbol.for('@dxos/plugin-kanban/annotation/PivotColumn');\n\nexport const CreateKanbanSchema = S.Struct({\n name: S.optional(S.String),\n typename: S.optional(\n S.String.annotations({\n [TypenameAnnotationId]: true,\n [TitleAnnotationId]: 'Select card schema (leave empty to start fresh)',\n }),\n ),\n initialPivotColumn: S.optional(\n S.String.annotations({\n [PivotColumnAnnotationId]: true,\n [TitleAnnotationId]: 'Pivot column',\n }),\n ),\n});\n\nexport type CreateKanbanType = S.Schema.Type<typeof CreateKanbanSchema>;\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.extend(S.Struct({ space: SpaceSchema }), CreateKanbanSchema),\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 export class DeleteCard extends S.TaggedClass<DeleteCard>()(`${KANBAN_ACTION}/delete-card`, {\n input: S.Struct({\n card: S.Any, // The card object to delete\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 ({\n space,\n name,\n typename,\n initialPivotColumn,\n}: {\n space: Space;\n name?: string;\n typename?: string;\n initialPivotColumn?: string;\n}) => {\n const { kanban } = await initializeKanban({ space, name, typename, initialPivotColumn });\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: PluginMeta = {\n id: KANBAN_PLUGIN,\n name: 'Kanban',\n description:\n 'Kanban allows you to explore Table data in sorted columns defined by your custom schema. You can use Kanbans to track progress or trigger custom automations when cards are moved from one state to another.',\n icon: 'ph--kanban--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-kanban',\n tags: ['experimental'],\n screenshots: ['https://dxos.network/plugin-details-kanban-dark.png'],\n};\n"],
5
+ "mappings": ";AAIA,SAASA,yBAAyB;AAElC,SAASC,SAAS;AAClB,SAAqBC,mBAAmB;AACxC,SAASC,kBAAkB;AAC3B,SAASC,wBAAwB;AACjC,SAASC,mBAAmB;;;ACJrB,IAAMC,gBAAgB;AAEtB,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;;;ADOO,IAAMC,uBAAuBC,OAAOC,IAAI,yCAAA;AACxC,IAAMC,0BAA0BF,OAAOC,IAAI,4CAAA;AAE3C,IAAME,qBAAqBC,EAAEC,OAAO;EACzCC,MAAMF,EAAEG,SAASH,EAAEI,MAAM;EACzBC,UAAUL,EAAEG,SACVH,EAAEI,OAAOE,YAAY;IACnB,CAACX,oBAAAA,GAAuB;IACxB,CAACY,iBAAAA,GAAoB;EACvB,CAAA,CAAA;EAEFC,oBAAoBR,EAAEG,SACpBH,EAAEI,OAAOE,YAAY;IACnB,CAACR,uBAAAA,GAA0B;IAC3B,CAACS,iBAAAA,GAAoB;EACvB,CAAA,CAAA;AAEJ,CAAA;;UAIiBE,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;EAElB,MAAMC,eAAeZ,EAAEa,YAAW,EAAW,GAAGH,aAAAA,WAAwB;IAC7EI,OAAOd,EAAEe,OAAOf,EAAEC,OAAO;MAAEe,OAAOC;IAAY,CAAA,GAAIlB,kBAAAA;IAClDmB,QAAQlB,EAAEC,OAAO;MACfkB,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBALSR,SAAAA;EAON,MAAMS,wBAAwBrB,EAAEa,YAAW,EAAoB,GAAGH,aAAAA,sBAAmC;IAC1GI,OAAOd,EAAEC,OAAO;MACdqB,QAAQF;MACRG,SAASvB,EAAEI;;MAEXoB,cAAcxB,EAAEG,SACdH,EAAEC,OAAO;QACPwB,OAAOC;;;QAGPC,OAAO3B,EAAE4B;QACTC,OAAO7B,EAAE8B;MACX,CAAA,CAAA;IAEJ,CAAA;IACAZ,QAAQlB,EAAE+B;EACZ,CAAA,EAAA;EAAI;gBAhBSV,kBAAAA;EAkBN,MAAMW,mBAAmBhC,EAAEa,YAAW,EAAe,GAAGH,aAAAA,gBAA6B;IAC1FI,OAAOd,EAAEC,OAAO;MACdgC,MAAMjC,EAAE4B;IACV,CAAA;IACAV,QAAQlB,EAAE+B;EACZ,CAAA,EAAA;EAAI;gBALSC,aAAAA;AAMf,GAlCiBvB,iBAAAA,eAAAA,CAAAA,EAAAA;AAoDV,IAAMyB,WAAW,CAACf,WAA0CA,UAAU,QAAQA,kBAAkBC;AAEhG,IAAMe,eAAe,OAAO,EACjCnB,OACAd,MACAG,UACAG,mBAAkB,MAMnB;AACC,QAAM,EAAEc,OAAM,IAAK,MAAMc,iBAAiB;IAAEpB;IAAOd;IAAMG;IAAUG;EAAmB,CAAA;AACtF,SAAOc;AACT;",
6
+ "names": ["TitleAnnotationId", "S", "SpaceSchema", "KanbanType", "initializeKanban", "FieldSchema", "KANBAN_PLUGIN", "meta", "id", "name", "description", "icon", "source", "tags", "screenshots", "TypenameAnnotationId", "Symbol", "for", "PivotColumnAnnotationId", "CreateKanbanSchema", "S", "Struct", "name", "optional", "String", "typename", "annotations", "TitleAnnotationId", "initialPivotColumn", "KanbanAction", "KANBAN_ACTION", "KANBAN_PLUGIN", "Create", "TaggedClass", "input", "extend", "space", "SpaceSchema", "output", "object", "KanbanType", "DeleteCardField", "kanban", "fieldId", "deletionData", "field", "FieldSchema", "props", "Any", "index", "Number", "Void", "DeleteCard", "card", "isKanban", "createKanban", "initializeKanban"]
7
+ }
@@ -3,7 +3,7 @@ import {
3
3
  KANBAN_PLUGIN,
4
4
  KanbanAction,
5
5
  meta
6
- } from "./chunk-3MVG4VGQ.mjs";
6
+ } from "./chunk-K5BYEZ4Z.mjs";
7
7
 
8
8
  // packages/plugins/plugin-kanban/src/KanbanPlugin.tsx
9
9
  import { createIntent, defineModule, contributes, Capabilities, Events, definePlugin } from "@dxos/app-framework";
@@ -14,9 +14,9 @@ import { KanbanType as KanbanType2, translations as kanbanTranslations } from "@
14
14
 
15
15
  // packages/plugins/plugin-kanban/src/capabilities/index.ts
16
16
  import { lazy } from "@dxos/app-framework";
17
- var ArtifactDefinition = lazy(() => import("./artifact-definition-OSLO5B6P.mjs"));
18
- var IntentResolver = lazy(() => import("./intent-resolver-OFEXRD4O.mjs"));
19
- var ReactSurface = lazy(() => import("./react-surface-RJ5WMSWU.mjs"));
17
+ var ArtifactDefinition = lazy(() => import("./artifact-definition-SVNHDJQT.mjs"));
18
+ var IntentResolver = lazy(() => import("./intent-resolver-XCDQ5N3Q.mjs"));
19
+ var ReactSurface = lazy(() => import("./react-surface-5DLU7L63.mjs"));
20
20
 
21
21
  // packages/plugins/plugin-kanban/src/translations.ts
22
22
  import { KanbanType } from "@dxos/react-ui-kanban";
@@ -0,0 +1,132 @@
1
+ import {
2
+ KANBAN_PLUGIN,
3
+ KanbanAction,
4
+ createKanban
5
+ } from "./chunk-K5BYEZ4Z.mjs";
6
+
7
+ // packages/plugins/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/plugin-kanban/src/capabilities/intent-resolver.ts";
13
+ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
14
+ createResolver({
15
+ intent: KanbanAction.Create,
16
+ resolve: async ({ space, name, typename, initialPivotColumn }) => ({
17
+ data: {
18
+ object: await createKanban({
19
+ space,
20
+ name,
21
+ typename,
22
+ initialPivotColumn
23
+ })
24
+ }
25
+ })
26
+ }),
27
+ createResolver({
28
+ intent: KanbanAction.DeleteCardField,
29
+ resolve: ({ kanban, fieldId, deletionData }, undo) => {
30
+ invariant(kanban.cardView, void 0, {
31
+ F: __dxlog_file,
32
+ L: 24,
33
+ S: void 0,
34
+ A: [
35
+ "kanban.cardView",
36
+ ""
37
+ ]
38
+ });
39
+ invariant(kanban.cardView.target?.query.typename, void 0, {
40
+ F: __dxlog_file,
41
+ L: 25,
42
+ S: void 0,
43
+ A: [
44
+ "kanban.cardView.target?.query.typename",
45
+ ""
46
+ ]
47
+ });
48
+ const schema = kanban.cardView.target && getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.typename);
49
+ invariant(schema, void 0, {
50
+ F: __dxlog_file,
51
+ L: 30,
52
+ S: void 0,
53
+ A: [
54
+ "schema",
55
+ ""
56
+ ]
57
+ });
58
+ invariant(kanban.cardView.target, void 0, {
59
+ F: __dxlog_file,
60
+ L: 31,
61
+ S: void 0,
62
+ A: [
63
+ "kanban.cardView.target",
64
+ ""
65
+ ]
66
+ });
67
+ const projection = new ViewProjection(schema.jsonSchema, kanban.cardView.target);
68
+ if (!undo) {
69
+ const { deleted, index } = projection.deleteFieldProjection(fieldId);
70
+ return {
71
+ undoable: {
72
+ message: [
73
+ "card field deleted label",
74
+ {
75
+ ns: KANBAN_PLUGIN
76
+ }
77
+ ],
78
+ data: {
79
+ deletionData: {
80
+ ...deleted,
81
+ index
82
+ }
83
+ }
84
+ }
85
+ };
86
+ } else if (undo && deletionData) {
87
+ const { field, props, index } = deletionData;
88
+ projection.setFieldProjection({
89
+ field,
90
+ props
91
+ }, index);
92
+ }
93
+ }
94
+ }),
95
+ createResolver({
96
+ intent: KanbanAction.DeleteCard,
97
+ resolve: ({ card }, undo) => {
98
+ const space = getSpace(card);
99
+ invariant(space, void 0, {
100
+ F: __dxlog_file,
101
+ L: 52,
102
+ S: void 0,
103
+ A: [
104
+ "space",
105
+ ""
106
+ ]
107
+ });
108
+ if (!undo) {
109
+ space.db.remove(card);
110
+ return {
111
+ undoable: {
112
+ message: [
113
+ "card deleted label",
114
+ {
115
+ ns: KANBAN_PLUGIN
116
+ }
117
+ ],
118
+ data: {
119
+ card
120
+ }
121
+ }
122
+ };
123
+ } else {
124
+ space.db.add(card);
125
+ }
126
+ }
127
+ })
128
+ ]);
129
+ export {
130
+ intent_resolver_default as default
131
+ };
132
+ //# sourceMappingURL=intent-resolver-XCDQ5N3Q.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({\n intent: KanbanAction.Create,\n resolve: async ({ space, name, typename, initialPivotColumn }) => ({\n data: { object: await createKanban({ space, name, typename, initialPivotColumn }) },\n }),\n }),\n createResolver({\n intent: KanbanAction.DeleteCardField,\n resolve: ({ kanban, fieldId, deletionData }, undo) => {\n invariant(kanban.cardView);\n invariant(kanban.cardView.target?.query.typename);\n\n const schema =\n kanban.cardView.target &&\n getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.typename);\n invariant(schema);\n invariant(kanban.cardView.target);\n const projection = new ViewProjection(schema.jsonSchema, 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 createResolver({\n intent: KanbanAction.DeleteCard,\n resolve: ({ card }, undo) => {\n const space = getSpace(card);\n invariant(space);\n\n if (!undo) {\n space.db.remove(card);\n return {\n undoable: {\n message: ['card deleted label', { ns: KANBAN_PLUGIN }],\n data: { card },\n },\n };\n } else {\n space.db.add(card);\n }\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,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,OAAO,EAAEC,OAAOC,MAAMC,UAAUC,mBAAkB,OAAQ;MACjEC,MAAM;QAAEC,QAAQ,MAAMC,aAAa;UAAEN;UAAOC;UAAMC;UAAUC;QAAmB,CAAA;MAAG;IACpF;EACF,CAAA;EACAR,eAAe;IACbC,QAAQC,aAAaU;IACrBR,SAAS,CAAC,EAAES,QAAQC,SAASC,aAAY,GAAIC,SAAAA;AAC3CC,gBAAUJ,OAAOK,UAAQ,QAAA;;;;;;;;;AACzBD,gBAAUJ,OAAOK,SAASC,QAAQC,MAAMb,UAAAA,QAAAA;;;;;;;;;AAExC,YAAMc,SACJR,OAAOK,SAASC,UAChBG,SAAST,MAAAA,GAASU,GAAGC,eAAeC,UAAUZ,OAAOK,SAASC,OAAOC,MAAMb,QAAQ;AACrFU,gBAAUI,QAAAA,QAAAA;;;;;;;;;AACVJ,gBAAUJ,OAAOK,SAASC,QAAM,QAAA;;;;;;;;;AAChC,YAAMO,aAAa,IAAIC,eAAeN,OAAOO,YAAYf,OAAOK,SAASC,MAAM;AAE/E,UAAI,CAACH,MAAM;AACT,cAAM,EAAEa,SAASC,MAAK,IAAKJ,WAAWK,sBAAsBjB,OAAAA;AAC5D,eAAO;UACLkB,UAAU;YACRC,SAAS;cAAC;cAA4B;gBAAEC,IAAIC;cAAc;;YAC1D1B,MAAM;cAAEM,cAAc;gBAAE,GAAGc;gBAASC;cAAM;YAAE;UAC9C;QACF;MACF,WAAWd,QAAQD,cAAc;AAC/B,cAAM,EAAEqB,OAAOC,OAAOP,MAAK,IAAKf;AAChCW,mBAAWY,mBAAmB;UAAEF;UAAOC;QAAM,GAAGP,KAAAA;MAClD;IACF;EACF,CAAA;EACA9B,eAAe;IACbC,QAAQC,aAAaqC;IACrBnC,SAAS,CAAC,EAAEoC,KAAI,GAAIxB,SAAAA;AAClB,YAAMX,QAAQiB,SAASkB,IAAAA;AACvBvB,gBAAUZ,OAAAA,QAAAA;;;;;;;;;AAEV,UAAI,CAACW,MAAM;AACTX,cAAMkB,GAAGkB,OAAOD,IAAAA;AAChB,eAAO;UACLR,UAAU;YACRC,SAAS;cAAC;cAAsB;gBAAEC,IAAIC;cAAc;;YACpD1B,MAAM;cAAE+B;YAAK;UACf;QACF;MACF,OAAO;AACLnC,cAAMkB,GAAGmB,IAAIF,IAAAA;MACf;IACF;EACF,CAAA;CACD;",
6
+ "names": ["contributes", "Capabilities", "createResolver", "invariant", "getSpace", "ViewProjection", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "KanbanAction", "Create", "resolve", "space", "name", "typename", "initialPivotColumn", "data", "object", "createKanban", "DeleteCardField", "kanban", "fieldId", "deletionData", "undo", "invariant", "cardView", "target", "query", "schema", "getSpace", "db", "schemaRegistry", "getSchema", "projection", "ViewProjection", "jsonSchema", "deleted", "index", "deleteFieldProjection", "undoable", "message", "ns", "KANBAN_PLUGIN", "field", "props", "setFieldProjection", "DeleteCard", "card", "remove", "add"]
7
+ }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/plugin-kanban/src/meta.ts":{"bytes":2245,"imports":[],"format":"esm"},"packages/plugins/plugin-kanban/src/types.ts":{"bytes":10259,"imports":[{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"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/schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts":{"bytes":19853,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/assistant","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","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":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/testing/kanban-manager.ts":{"bytes":1119,"imports":[],"format":"esm"},"packages/plugins/plugin-kanban/src/testing/initialize-kanban.ts":{"bytes":16826,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","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":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-kanban/src/testing/index.ts":{"bytes":641,"imports":[{"path":"packages/plugins/plugin-kanban/src/testing/kanban-manager.ts","kind":"import-statement","original":"./kanban-manager"},{"path":"packages/plugins/plugin-kanban/src/testing/initialize-kanban.ts","kind":"import-statement","original":"./initialize-kanban"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytes":11925,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","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/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-kanban/src/testing/index.ts","kind":"import-statement","original":"../testing"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx":{"bytes":11998,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client","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":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytes":12425,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","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/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytes":644,"imports":[{"path":"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"},{"path":"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./KanbanViewEditor"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx":{"bytes":17772,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client","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":"packages/plugins/plugin-kanban/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytes":1366,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts","kind":"dynamic-import","original":"./artifact-definition"},{"path":"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/plugin-kanban/src/translations.ts":{"bytes":3122,"imports":[{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx":{"bytes":8396,"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-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-kanban/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/index.ts":{"bytes":594,"imports":[{"path":"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-kanban/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5969},"packages/plugins/plugin-kanban/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-3MVG4VGQ.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-kanban","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/artifact-definition-OSLO5B6P.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-OFEXRD4O.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-RJ5WMSWU.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true}],"exports":["KANBAN_PLUGIN","KanbanPlugin","meta"],"entryPoint":"packages/plugins/plugin-kanban/src/index.ts","inputs":{"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx":{"bytesInOutput":1757},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytesInOutput":273},"packages/plugins/plugin-kanban/src/translations.ts":{"bytesInOutput":801},"packages/plugins/plugin-kanban/src/index.ts":{"bytesInOutput":0}},"bytes":3248},"packages/plugins/plugin-kanban/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-kanban/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-3MVG4VGQ.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","KanbanAction","PivotColumnAnnotationId","TypenameAnnotationId","isKanban"],"entryPoint":"packages/plugins/plugin-kanban/src/types.ts","inputs":{},"bytes":287},"packages/plugins/plugin-kanban/dist/lib/browser/artifact-definition-OSLO5B6P.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8897},"packages/plugins/plugin-kanban/dist/lib/browser/artifact-definition-OSLO5B6P.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-3MVG4VGQ.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/assistant","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","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}],"exports":["default"],"entryPoint":"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts","inputs":{"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts":{"bytesInOutput":5991}},"bytes":6240},"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-OFEXRD4O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13143},"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-OFEXRD4O.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-3MVG4VGQ.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","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":"@dxos/util","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytesInOutput":3356},"packages/plugins/plugin-kanban/src/testing/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-kanban/src/testing/initialize-kanban.ts":{"bytesInOutput":4517}},"bytes":8258},"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-RJ5WMSWU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":22004},"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-RJ5WMSWU.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-3MVG4VGQ.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client","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":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client","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":"@dxos/schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","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/plugin-kanban/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx":{"bytesInOutput":4227},"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2874},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":3391}},"bytes":11007},"packages/plugins/plugin-kanban/dist/lib/browser/chunk-3MVG4VGQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6255},"packages/plugins/plugin-kanban/dist/lib/browser/chunk-3MVG4VGQ.mjs":{"imports":[{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"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/schema","kind":"import-statement","external":true}],"exports":["CreateKanbanSchema","KANBAN_PLUGIN","KanbanAction","PivotColumnAnnotationId","TypenameAnnotationId","isKanban","meta"],"inputs":{"packages/plugins/plugin-kanban/src/types.ts":{"bytesInOutput":1969},"packages/plugins/plugin-kanban/src/meta.ts":{"bytesInOutput":564}},"bytes":2857}}}
1
+ {"inputs":{"packages/plugins/plugin-kanban/src/meta.ts":{"bytes":2245,"imports":[],"format":"esm"},"packages/plugins/plugin-kanban/src/types.ts":{"bytes":11430,"imports":[{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"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/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts":{"bytes":19853,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/assistant","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","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":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytes":10985,"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/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx":{"bytes":10186,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","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":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytes":12425,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","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/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytes":644,"imports":[{"path":"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"},{"path":"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./KanbanViewEditor"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx":{"bytes":13173,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/effect","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":"packages/plugins/plugin-kanban/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytes":1366,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts","kind":"dynamic-import","original":"./artifact-definition"},{"path":"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/plugin-kanban/src/translations.ts":{"bytes":3122,"imports":[{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx":{"bytes":8396,"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-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-kanban/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/index.ts":{"bytes":594,"imports":[{"path":"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-kanban/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5969},"packages/plugins/plugin-kanban/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-K5BYEZ4Z.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-kanban","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/artifact-definition-SVNHDJQT.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-5DLU7L63.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true}],"exports":["KANBAN_PLUGIN","KanbanPlugin","meta"],"entryPoint":"packages/plugins/plugin-kanban/src/index.ts","inputs":{"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx":{"bytesInOutput":1757},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytesInOutput":273},"packages/plugins/plugin-kanban/src/translations.ts":{"bytesInOutput":801},"packages/plugins/plugin-kanban/src/index.ts":{"bytesInOutput":0}},"bytes":3248},"packages/plugins/plugin-kanban/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-kanban/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-K5BYEZ4Z.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","KanbanAction","PivotColumnAnnotationId","TypenameAnnotationId","createKanban","isKanban"],"entryPoint":"packages/plugins/plugin-kanban/src/types.ts","inputs":{},"bytes":319},"packages/plugins/plugin-kanban/dist/lib/browser/artifact-definition-SVNHDJQT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8897},"packages/plugins/plugin-kanban/dist/lib/browser/artifact-definition-SVNHDJQT.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-K5BYEZ4Z.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/assistant","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","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}],"exports":["default"],"entryPoint":"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts","inputs":{"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts":{"bytesInOutput":5991}},"bytes":6240},"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4474},"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-K5BYEZ4Z.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/plugin-kanban/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytesInOutput":3100}},"bytes":3362},"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-5DLU7L63.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18469},"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-5DLU7L63.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-K5BYEZ4Z.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/effect","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":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","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":"@dxos/schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","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/plugin-kanban/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx":{"bytesInOutput":3019},"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2383},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":3360}},"bytes":9277},"packages/plugins/plugin-kanban/dist/lib/browser/chunk-K5BYEZ4Z.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6877},"packages/plugins/plugin-kanban/dist/lib/browser/chunk-K5BYEZ4Z.mjs":{"imports":[{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"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":["CreateKanbanSchema","KANBAN_PLUGIN","KanbanAction","PivotColumnAnnotationId","TypenameAnnotationId","createKanban","isKanban","meta"],"inputs":{"packages/plugins/plugin-kanban/src/types.ts":{"bytesInOutput":2243},"packages/plugins/plugin-kanban/src/meta.ts":{"bytesInOutput":564}},"bytes":3147}}}
@@ -4,46 +4,32 @@ import {
4
4
  PivotColumnAnnotationId,
5
5
  TypenameAnnotationId,
6
6
  isKanban
7
- } from "./chunk-3MVG4VGQ.mjs";
7
+ } from "./chunk-K5BYEZ4Z.mjs";
8
8
 
9
9
  // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
10
- import React3, { useMemo as useMemo3 } from "react";
11
- import { Capabilities, contributes, createSurface, useCapabilities } from "@dxos/app-framework";
12
- import { getTypenameOrThrow as getTypenameOrThrow2, toJsonSchema as toJsonSchema2 } from "@dxos/echo-schema";
10
+ import React3, { useMemo as useMemo2 } from "react";
11
+ import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
13
12
  import { findAnnotation } from "@dxos/effect";
14
- import { ClientCapabilities } from "@dxos/plugin-client";
15
- import { useClient as useClient3 } from "@dxos/react-client";
16
13
  import { getSpace as getSpace3, isSpace } from "@dxos/react-client/echo";
17
14
  import { SelectInput as SelectInput2, useFormValues } from "@dxos/react-ui-form";
18
15
 
19
16
  // packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx
20
- import React, { useCallback, useEffect, useMemo, useState } from "react";
17
+ import React, { useCallback, useEffect, useState } from "react";
21
18
  import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
22
- import { EchoSchema, getTypenameOrThrow, toJsonSchema } from "@dxos/echo-schema";
23
19
  import { useGlobalFilteredObjects } from "@dxos/plugin-search";
24
- import { useClient } from "@dxos/react-client";
25
- import { Filter, useQuery, getSpace, live } from "@dxos/react-client/echo";
20
+ import { Filter, useQuery, getSpace, create } from "@dxos/react-client/echo";
26
21
  import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
27
22
  import { StackItem } from "@dxos/react-ui-stack";
28
23
  import { ViewProjection } from "@dxos/schema";
29
24
  var KanbanContainer = ({ kanban }) => {
30
- const client = useClient();
31
25
  const [cardSchema, setCardSchema] = useState();
32
26
  const [projection, setProjection] = useState();
33
27
  const space = getSpace(kanban);
34
28
  const { dispatchPromise: dispatch } = useIntentDispatcher();
35
- const jsonSchema = useMemo(() => cardSchema instanceof EchoSchema ? cardSchema.jsonSchema : cardSchema ? toJsonSchema(cardSchema) : void 0, [
36
- cardSchema
37
- ]);
38
29
  useEffect(() => {
39
- const typename = kanban.cardView?.target?.query?.typename;
40
- const staticSchema = client.graph.schemaRegistry.schemas.find((schema) => getTypenameOrThrow(schema) === typename);
41
- if (staticSchema) {
42
- setCardSchema(() => staticSchema);
43
- }
44
- if (!staticSchema && typename && space) {
30
+ if (kanban.cardView?.target?.query?.typename && space) {
45
31
  const query = space.db.schemaRegistry.query({
46
- typename
32
+ typename: kanban.cardView.target.query.typename
47
33
  });
48
34
  const unsubscribe = query.subscribe(() => {
49
35
  const [schema] = query.results;
@@ -60,12 +46,13 @@ var KanbanContainer = ({ kanban }) => {
60
46
  space
61
47
  ]);
62
48
  useEffect(() => {
63
- if (kanban.cardView?.target && jsonSchema) {
64
- setProjection(new ViewProjection(jsonSchema, kanban.cardView.target));
49
+ if (kanban.cardView?.target && cardSchema) {
50
+ setProjection(new ViewProjection(cardSchema.jsonSchema, kanban.cardView.target));
65
51
  }
66
52
  }, [
67
53
  kanban.cardView?.target,
68
- JSON.stringify(jsonSchema)
54
+ cardSchema,
55
+ JSON.stringify(cardSchema?.jsonSchema)
69
56
  ]);
70
57
  const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());
71
58
  const filteredObjects = useGlobalFilteredObjects(objects);
@@ -78,7 +65,7 @@ var KanbanContainer = ({ kanban }) => {
78
65
  const handleAddCard = useCallback((columnValue) => {
79
66
  const path = model?.columnFieldPath;
80
67
  if (space && cardSchema && path) {
81
- const card = live(cardSchema, {
68
+ const card = create(cardSchema, {
82
69
  [path]: columnValue
83
70
  });
84
71
  space.db.add(card);
@@ -104,11 +91,11 @@ var KanbanContainer = ({ kanban }) => {
104
91
  };
105
92
 
106
93
  // packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx
107
- import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
94
+ import React2, { useCallback as useCallback2, useMemo } from "react";
108
95
  import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
109
96
  import { FormatEnum } from "@dxos/echo-schema";
110
97
  import { invariant } from "@dxos/invariant";
111
- import { useClient as useClient2 } from "@dxos/react-client";
98
+ import { useClient } from "@dxos/react-client";
112
99
  import { Filter as Filter2, getSpace as getSpace2, useQuery as useQuery2, useSchema } from "@dxos/react-client/echo";
113
100
  import { ViewEditor, Form, SelectInput } from "@dxos/react-ui-form";
114
101
  import { KanbanSettingsSchema } from "@dxos/react-ui-kanban";
@@ -116,9 +103,9 @@ import { ViewType, ViewProjection as ViewProjection2 } from "@dxos/schema";
116
103
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx";
117
104
  var KanbanViewEditor = ({ kanban }) => {
118
105
  const { dispatchPromise: dispatch } = useIntentDispatcher2();
119
- const client = useClient2();
106
+ const client = useClient();
120
107
  const space = getSpace2(kanban);
121
- const currentTypename = useMemo2(() => kanban?.cardView?.target?.query?.typename, [
108
+ const currentTypename = useMemo(() => kanban?.cardView?.target?.query?.typename, [
122
109
  kanban?.cardView?.target?.query?.typename
123
110
  ]);
124
111
  const schema = useSchema(client, space, currentTypename);
@@ -151,7 +138,7 @@ var KanbanViewEditor = ({ kanban }) => {
151
138
  dispatch,
152
139
  kanban
153
140
  ]);
154
- const projection = useMemo2(() => {
141
+ const projection = useMemo(() => {
155
142
  if (kanban?.cardView?.target && schema) {
156
143
  return new ViewProjection2(schema.jsonSchema, kanban.cardView.target);
157
144
  }
@@ -170,12 +157,12 @@ var KanbanViewEditor = ({ kanban }) => {
170
157
  }, [
171
158
  kanban
172
159
  ]);
173
- const initialValues = useMemo2(() => ({
160
+ const initialValues = useMemo(() => ({
174
161
  columnFieldId: kanban.columnFieldId
175
162
  }), [
176
163
  kanban.columnFieldId
177
164
  ]);
178
- const custom = useMemo2(() => ({
165
+ const custom = useMemo(() => ({
179
166
  columnFieldId: (props) => /* @__PURE__ */ React2.createElement(SelectInput, {
180
167
  ...props,
181
168
  options: selectFields
@@ -224,36 +211,23 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
224
211
  })
225
212
  }),
226
213
  createSurface({
227
- id: `${KANBAN_PLUGIN}/create-initial-schema-form`,
214
+ id: `${KANBAN_PLUGIN}/create-initial-schema-form-[schema]`,
228
215
  role: "form-input",
229
216
  filter: (data) => {
230
- if (data.prop !== "typename") {
231
- return false;
232
- }
233
217
  const annotation = findAnnotation(data.schema.ast, TypenameAnnotationId);
234
218
  return !!annotation;
235
219
  },
236
220
  component: ({ data: { target }, ...inputProps }) => {
237
- const client = useClient3();
238
221
  const props = inputProps;
239
222
  const space = isSpace(target) ? target : getSpace3(target);
240
223
  if (!space) {
241
224
  return null;
242
225
  }
243
- const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
244
- const whitelistedTypenames = useMemo3(() => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => type.typename))), [
245
- schemaWhitelists
246
- ]);
247
- const fixed = client.graph.schemaRegistry.schemas.filter((schema) => whitelistedTypenames.has(getTypenameOrThrow2(schema)));
248
- const dynamic = space?.db.schemaRegistry.query().runSync();
249
- const typenames = Array.from(/* @__PURE__ */ new Set([
250
- ...fixed.map((schema) => getTypenameOrThrow2(schema)),
251
- ...dynamic.map((schema) => schema.typename)
252
- ])).sort();
226
+ const schemata = space?.db.schemaRegistry.query().runSync();
253
227
  return /* @__PURE__ */ React3.createElement(SelectInput2, {
254
228
  ...props,
255
- options: typenames.map((typename) => ({
256
- value: typename
229
+ options: schemata.map((schema) => ({
230
+ value: schema.typename
257
231
  }))
258
232
  });
259
233
  }
@@ -272,17 +246,14 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
272
246
  return null;
273
247
  }
274
248
  const { typename } = useFormValues();
275
- const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
276
- const staticSchema = schemaWhitelists.flat().find((schema) => getTypenameOrThrow2(schema) === typename);
277
249
  const [selectedSchema] = space?.db.schemaRegistry.query({
278
250
  typename
279
251
  }).runSync();
280
- const singleSelectColumns = useMemo3(() => {
281
- const properties = staticSchema ? toJsonSchema2(staticSchema).properties : selectedSchema?.jsonSchema?.properties;
282
- if (!properties) {
252
+ const singleSelectColumns = useMemo2(() => {
253
+ if (!selectedSchema?.jsonSchema?.properties) {
283
254
  return [];
284
255
  }
285
- const columns = Object.entries(properties).reduce((acc, [key, value]) => {
256
+ const columns = Object.entries(selectedSchema.jsonSchema.properties).reduce((acc, [key, value]) => {
286
257
  if (typeof value === "object" && value?.format === "single-select") {
287
258
  acc.push(key);
288
259
  }
@@ -290,8 +261,7 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
290
261
  }, []);
291
262
  return columns;
292
263
  }, [
293
- selectedSchema?.jsonSchema,
294
- staticSchema
264
+ selectedSchema?.jsonSchema
295
265
  ]);
296
266
  if (!typename) {
297
267
  return null;
@@ -308,4 +278,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
308
278
  export {
309
279
  react_surface_default as default
310
280
  };
311
- //# sourceMappingURL=react-surface-RJ5WMSWU.mjs.map
281
+ //# sourceMappingURL=react-surface-5DLU7L63.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/KanbanContainer.tsx", "../../../src/components/KanbanViewEditor.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { type S } from '@dxos/echo-schema';\nimport { findAnnotation } from '@dxos/effect';\nimport { type CollectionType } from '@dxos/plugin-space/types';\nimport { getSpace, isSpace, type Space } from '@dxos/react-client/echo';\nimport { type InputProps, SelectInput, useFormValues } from '@dxos/react-ui-form';\nimport { type KanbanType } from '@dxos/react-ui-kanban';\n\nimport { KanbanContainer, KanbanViewEditor } from '../components';\nimport { KANBAN_PLUGIN } from '../meta';\nimport { isKanban, TypenameAnnotationId, PivotColumnAnnotationId } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\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}/object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data }) => <KanbanViewEditor kanban={data.subject} />,\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/create-initial-schema-form-[schema]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema<any>; target: Space | CollectionType | undefined } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, TypenameAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target }, ...inputProps }) => {\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n\n const schemata = space?.db.schemaRegistry.query().runSync();\n return <SelectInput {...props} options={schemata.map((schema) => ({ value: schema.typename }))} />;\n },\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/create-initial-schema-form-[pivot-column]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema<any>; target: Space | CollectionType | undefined } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, PivotColumnAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target }, ...inputProps }) => {\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n const { typename } = useFormValues();\n const [selectedSchema] = space?.db.schemaRegistry.query({ typename }).runSync();\n\n const singleSelectColumns = useMemo(() => {\n if (!selectedSchema?.jsonSchema?.properties) {\n return [];\n }\n\n const columns = Object.entries(selectedSchema.jsonSchema.properties).reduce<string[]>((acc, [key, value]) => {\n if (typeof value === 'object' && value?.format === 'single-select') {\n acc.push(key);\n }\n return acc;\n }, []);\n\n return columns;\n }, [selectedSchema?.jsonSchema]);\n\n if (!typename) {\n return null;\n }\n\n return <SelectInput {...props} options={singleSelectColumns.map((column) => ({ value: column }))} />;\n },\n }),\n ]);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { type EchoSchema } from '@dxos/echo-schema';\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';\nimport { ViewProjection } from '@dxos/schema';\n\nimport { KanbanAction } from '../types';\n\nexport const KanbanContainer = ({ kanban }: { kanban: KanbanType; role: string }) => {\n const [cardSchema, setCardSchema] = useState<EchoSchema>();\n const [projection, setProjection] = useState<ViewProjection>();\n const space = getSpace(kanban);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n useEffect(() => {\n if (kanban.cardView?.target?.query?.typename && space) {\n const query = space.db.schemaRegistry.query({ typename: kanban.cardView.target.query.typename });\n const unsubscribe = query.subscribe(\n () => {\n const [schema] = query.results;\n if (schema) {\n setCardSchema(schema);\n }\n },\n { fire: true },\n );\n return unsubscribe;\n }\n }, [kanban.cardView?.target?.query, space]);\n\n useEffect(() => {\n if (kanban.cardView?.target && cardSchema) {\n setProjection(new ViewProjection(cardSchema.jsonSchema, kanban.cardView.target));\n }\n // TODO(ZaymonFC): Is there a better way to get notified about deep changes in the json schema?\n }, [kanban.cardView?.target, cardSchema, JSON.stringify(cardSchema?.jsonSchema)]);\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 schema: cardSchema,\n projection,\n items: filteredObjects,\n });\n\n const handleAddCard = useCallback(\n (columnValue: string | undefined) => {\n const path = model?.columnFieldPath;\n if (space && cardSchema && path) {\n const card = create(cardSchema, { [path]: columnValue });\n space.db.add(card);\n return card.id;\n }\n },\n [space, cardSchema, model],\n );\n\n const handleRemoveCard = useCallback(\n (card: { id: string }) => {\n void dispatch(createIntent(KanbanAction.DeleteCard, { card }));\n },\n [dispatch],\n );\n\n return (\n <StackItem.Content>\n {model && <Kanban model={model} onAddCard={handleAddCard} onRemoveCard={handleRemoveCard} />}\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { FormatEnum } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getSpace, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { ViewEditor, Form, SelectInput, type CustomInputMap } from '@dxos/react-ui-form';\nimport { type KanbanType, KanbanSettingsSchema } from '@dxos/react-ui-kanban';\nimport { ViewType, ViewProjection } from '@dxos/schema';\n\nimport { KanbanAction } from '../types';\n\ntype KanbanViewEditorProps = { kanban: KanbanType };\n\nexport const KanbanViewEditor = ({ kanban }: KanbanViewEditorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const space = getSpace(kanban);\n const currentTypename = useMemo(\n () => kanban?.cardView?.target?.query?.typename,\n [kanban?.cardView?.target?.query?.typename],\n );\n const schema = useSchema(client, space, currentTypename);\n const views = useQuery(space, Filter.schema(ViewType));\n\n const handleUpdateTypename = useCallback(\n (newTypename: string) => {\n invariant(schema);\n const matchingViews = views.filter((view) => view.query.typename === currentTypename);\n for (const view of matchingViews) {\n view.query.typename = newTypename;\n }\n\n schema.mutable.updateTypename(newTypename);\n },\n [views, schema],\n );\n\n const handleDelete = useCallback(\n (fieldId: string) => {\n void dispatch?.(createIntent(KanbanAction.DeleteCardField, { kanban, fieldId }));\n },\n [dispatch, kanban],\n );\n\n const projection = useMemo(() => {\n if (kanban?.cardView?.target && schema) {\n return new ViewProjection(schema.jsonSchema, kanban.cardView.target);\n }\n }, [kanban?.cardView?.target, schema, JSON.stringify(schema)]);\n\n const fieldProjections = projection?.getFieldProjections() || [];\n const selectFields = fieldProjections\n .filter((field) => field.props.format === FormatEnum.SingleSelect)\n .map(({ field }) => ({ value: field.id, label: field.path }));\n\n const onSave = useCallback(\n (values: Partial<{ columnFieldId: string }>) => {\n kanban.columnFieldId = values.columnFieldId;\n },\n [kanban],\n );\n\n const initialValues = useMemo(() => ({ columnFieldId: kanban.columnFieldId }), [kanban.columnFieldId]);\n const custom: CustomInputMap = useMemo(\n () => ({ columnFieldId: (props) => <SelectInput {...props} options={selectFields} /> }),\n [selectFields],\n );\n\n if (!space || !schema || !kanban.cardView?.target) {\n return null;\n }\n\n return (\n <>\n <Form schema={KanbanSettingsSchema} values={initialValues} onSave={onSave} autoSave Custom={custom} />\n <ViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={kanban.cardView.target}\n onTypenameChanged={schema.readonly ? undefined : handleUpdateTypename}\n onDelete={schema.readonly ? undefined : handleDelete}\n />\n </>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useMemo", "Capabilities", "contributes", "createSurface", "findAnnotation", "getSpace", "isSpace", "SelectInput", "useFormValues", "React", "useCallback", "useEffect", "useState", "createIntent", "useIntentDispatcher", "useGlobalFilteredObjects", "Filter", "useQuery", "getSpace", "create", "useKanbanModel", "Kanban", "StackItem", "ViewProjection", "KanbanContainer", "kanban", "cardSchema", "setCardSchema", "useState", "projection", "setProjection", "space", "getSpace", "dispatchPromise", "dispatch", "useIntentDispatcher", "useEffect", "cardView", "target", "query", "typename", "db", "schemaRegistry", "unsubscribe", "subscribe", "schema", "results", "fire", "ViewProjection", "jsonSchema", "JSON", "stringify", "objects", "useQuery", "Filter", "nothing", "filteredObjects", "useGlobalFilteredObjects", "model", "useKanbanModel", "items", "handleAddCard", "useCallback", "columnValue", "path", "columnFieldPath", "card", "create", "add", "id", "handleRemoveCard", "createIntent", "KanbanAction", "DeleteCard", "StackItem", "Content", "Kanban", "onAddCard", "onRemoveCard", "React", "useCallback", "useMemo", "createIntent", "useIntentDispatcher", "FormatEnum", "invariant", "useClient", "Filter", "getSpace", "useQuery", "useSchema", "ViewEditor", "Form", "SelectInput", "KanbanSettingsSchema", "ViewType", "ViewProjection", "KanbanViewEditor", "kanban", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "space", "getSpace", "currentTypename", "useMemo", "cardView", "target", "query", "typename", "schema", "useSchema", "views", "useQuery", "Filter", "ViewType", "handleUpdateTypename", "useCallback", "newTypename", "invariant", "matchingViews", "filter", "view", "mutable", "updateTypename", "handleDelete", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "projection", "ViewProjection", "jsonSchema", "JSON", "stringify", "fieldProjections", "getFieldProjections", "selectFields", "field", "props", "format", "FormatEnum", "SingleSelect", "map", "value", "id", "label", "path", "onSave", "values", "columnFieldId", "initialValues", "custom", "React", "SelectInput", "options", "Form", "KanbanSettingsSchema", "autoSave", "Custom", "ViewEditor", "registry", "db", "schemaRegistry", "onTypenameChanged", "readonly", "undefined", "onDelete", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "KANBAN_PLUGIN", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor", "annotation", "findAnnotation", "schema", "ast", "TypenameAnnotationId", "target", "inputProps", "props", "space", "isSpace", "getSpace", "schemata", "db", "schemaRegistry", "query", "runSync", "SelectInput", "options", "map", "value", "typename", "PivotColumnAnnotationId", "useFormValues", "selectedSchema", "singleSelectColumns", "useMemo", "jsonSchema", "properties", "columns", "Object", "entries", "reduce", "acc", "key", "format", "push", "column"]
7
+ }