@dxos/plugin-kanban 0.7.5-labs.e27f9b9 → 0.7.5-labs.f400bbc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/lib/browser/artifact-definition-NJGTNX74.mjs +177 -0
  2. package/dist/lib/browser/artifact-definition-NJGTNX74.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-FAA5WRZY.mjs → chunk-ILL6UKZE.mjs} +34 -9
  4. package/dist/lib/browser/chunk-ILL6UKZE.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +26 -15
  6. package/dist/lib/browser/index.mjs.map +3 -3
  7. package/dist/lib/browser/{intent-resolver-EYGCUTQP.mjs → intent-resolver-6BD4KUAU.mjs} +51 -5
  8. package/dist/lib/browser/intent-resolver-6BD4KUAU.mjs.map +7 -0
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/{react-surface-SARIDX5F.mjs → react-surface-6NYIVXVG.mjs} +96 -51
  11. package/dist/lib/browser/react-surface-6NYIVXVG.mjs.map +7 -0
  12. package/dist/lib/browser/types.mjs +7 -1
  13. package/dist/lib/node/artifact-definition-FDZAT4PG.cjs +192 -0
  14. package/dist/lib/node/artifact-definition-FDZAT4PG.cjs.map +7 -0
  15. package/dist/lib/node/{chunk-PLKK6ZJE.cjs → chunk-63KJGDFJ.cjs} +40 -12
  16. package/dist/lib/node/chunk-63KJGDFJ.cjs.map +7 -0
  17. package/dist/lib/node/index.cjs +33 -23
  18. package/dist/lib/node/index.cjs.map +3 -3
  19. package/dist/lib/node/{intent-resolver-DPMA6342.cjs → intent-resolver-DHL5HBJM.cjs} +57 -11
  20. package/dist/lib/node/intent-resolver-DHL5HBJM.cjs.map +7 -0
  21. package/dist/lib/node/meta.json +1 -1
  22. package/dist/lib/node/{react-surface-J5WY2F5B.cjs → react-surface-65D6R6Z7.cjs} +107 -64
  23. package/dist/lib/node/react-surface-65D6R6Z7.cjs.map +7 -0
  24. package/dist/lib/node/types.cjs +10 -4
  25. package/dist/lib/node/types.cjs.map +2 -2
  26. package/dist/lib/node-esm/artifact-definition-OD3OJAWN.mjs +178 -0
  27. package/dist/lib/node-esm/artifact-definition-OD3OJAWN.mjs.map +7 -0
  28. package/dist/lib/node-esm/{chunk-3753HLJC.mjs → chunk-TZ3QKBLD.mjs} +34 -9
  29. package/dist/lib/node-esm/chunk-TZ3QKBLD.mjs.map +7 -0
  30. package/dist/lib/node-esm/index.mjs +26 -15
  31. package/dist/lib/node-esm/index.mjs.map +3 -3
  32. package/dist/lib/node-esm/{intent-resolver-KY3JF673.mjs → intent-resolver-QQWZXC5O.mjs} +51 -5
  33. package/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs.map +7 -0
  34. package/dist/lib/node-esm/meta.json +1 -1
  35. package/dist/lib/node-esm/{react-surface-66YOBKYF.mjs → react-surface-4JPB2SZX.mjs} +96 -51
  36. package/dist/lib/node-esm/react-surface-4JPB2SZX.mjs.map +7 -0
  37. package/dist/lib/node-esm/types.mjs +7 -1
  38. package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
  39. package/dist/types/src/capabilities/artifact-definition.d.ts +11 -0
  40. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  41. package/dist/types/src/capabilities/index.d.ts +1 -0
  42. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  44. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  45. package/dist/types/src/components/KanbanContainer.d.ts +1 -2
  46. package/dist/types/src/components/KanbanContainer.d.ts.map +1 -1
  47. package/dist/types/src/components/KanbanViewEditor.d.ts +1 -2
  48. package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -1
  49. package/dist/types/src/meta.d.ts +1 -0
  50. package/dist/types/src/meta.d.ts.map +1 -1
  51. package/dist/types/src/translations.d.ts +3 -0
  52. package/dist/types/src/translations.d.ts.map +1 -1
  53. package/dist/types/src/types.d.ts +32 -16
  54. package/dist/types/src/types.d.ts.map +1 -1
  55. package/package.json +26 -21
  56. package/src/KanbanPlugin.tsx +22 -10
  57. package/src/capabilities/artifact-definition.ts +135 -0
  58. package/src/capabilities/index.ts +1 -0
  59. package/src/capabilities/intent-resolver.ts +22 -2
  60. package/src/capabilities/react-surface.tsx +63 -2
  61. package/src/components/KanbanContainer.tsx +10 -10
  62. package/src/components/KanbanViewEditor.tsx +6 -23
  63. package/src/meta.ts +3 -1
  64. package/src/translations.ts +1 -0
  65. package/src/types.ts +34 -7
  66. package/dist/lib/browser/chunk-FAA5WRZY.mjs.map +0 -7
  67. package/dist/lib/browser/intent-resolver-EYGCUTQP.mjs.map +0 -7
  68. package/dist/lib/browser/react-surface-SARIDX5F.mjs.map +0 -7
  69. package/dist/lib/node/chunk-PLKK6ZJE.cjs.map +0 -7
  70. package/dist/lib/node/intent-resolver-DPMA6342.cjs.map +0 -7
  71. package/dist/lib/node/react-surface-J5WY2F5B.cjs.map +0 -7
  72. package/dist/lib/node-esm/chunk-3753HLJC.mjs.map +0 -7
  73. package/dist/lib/node-esm/intent-resolver-KY3JF673.mjs.map +0 -7
  74. package/dist/lib/node-esm/react-surface-66YOBKYF.mjs.map +0 -7
@@ -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/schema/AST';\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 const InitialSchemaAnnotationId = Symbol.for('@dxos/plugin-kanban/annotation/InitialSchema');\nexport const InitialPivotColumnAnnotationId = Symbol.for('@dxos/plugin-kanban/annotation/InitialPivotColumn');\n\nexport const CreateKanbanSchema = S.Struct({\n name: S.optional(S.String),\n initialSchema: S.optional(\n S.String.annotations({\n [InitialSchemaAnnotationId]: true,\n [TitleAnnotationId]: 'Select card schema (leave empty to start fresh)',\n }),\n ),\n initialPivotColumn: S.optional(\n S.String.annotations({\n [InitialPivotColumnAnnotationId]: 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 (props: { space: Space; initialSchema?: string; initialPivotColumn?: string }) => {\n const { kanban } = await initializeKanban(props);\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:\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} satisfies PluginMeta;\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,OAAO;EAClBC,IAAIF;EACJG,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;;;ADMO,IAAMC,4BAA4BC,OAAOC,IAAI,8CAAA;AAC7C,IAAMC,iCAAiCF,OAAOC,IAAI,mDAAA;AAElD,IAAME,qBAAqBC,EAAEC,OAAO;EACzCC,MAAMF,EAAEG,SAASH,EAAEI,MAAM;EACzBC,eAAeL,EAAEG,SACfH,EAAEI,OAAOE,YAAY;IACnB,CAACX,yBAAAA,GAA4B;IAC7B,CAACY,iBAAAA,GAAoB;EACvB,CAAA,CAAA;EAEFC,oBAAoBR,EAAEG,SACpBH,EAAEI,OAAOE,YAAY;IACnB,CAACR,8BAAAA,GAAiC;IAClC,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,OAAOR,UAAAA;AACjC,QAAM,EAAEL,OAAM,IAAK,MAAMc,iBAAiBT,KAAAA;AAC1C,SAAOL;AACT;",
6
+ "names": ["TitleAnnotationId", "S", "SpaceSchema", "KanbanType", "initializeKanban", "FieldSchema", "KANBAN_PLUGIN", "meta", "id", "name", "description", "icon", "source", "tags", "screenshots", "InitialSchemaAnnotationId", "Symbol", "for", "InitialPivotColumnAnnotationId", "CreateKanbanSchema", "S", "Struct", "name", "optional", "String", "initialSchema", "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
+ }
@@ -1,19 +1,23 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
+ CreateKanbanSchema,
3
4
  KANBAN_PLUGIN,
4
5
  KanbanAction,
5
6
  meta
6
- } from "./chunk-3753HLJC.mjs";
7
+ } from "./chunk-TZ3QKBLD.mjs";
7
8
 
8
9
  // packages/plugins/plugin-kanban/src/KanbanPlugin.tsx
9
10
  import { createIntent, defineModule, contributes, Capabilities, Events, definePlugin } from "@dxos/app-framework";
10
- import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
11
+ import { ClientEvents } from "@dxos/plugin-client";
12
+ import { SpaceCapabilities } from "@dxos/plugin-space";
13
+ import { defineObjectForm } from "@dxos/plugin-space/types";
11
14
  import { KanbanType as KanbanType2, translations as kanbanTranslations } from "@dxos/react-ui-kanban";
12
15
 
13
16
  // packages/plugins/plugin-kanban/src/capabilities/index.ts
14
17
  import { lazy } from "@dxos/app-framework";
15
- var IntentResolver = lazy(() => import("./intent-resolver-KY3JF673.mjs"));
16
- var ReactSurface = lazy(() => import("./react-surface-66YOBKYF.mjs"));
18
+ var ArtifactDefinition = lazy(() => import("./artifact-definition-OD3OJAWN.mjs"));
19
+ var IntentResolver = lazy(() => import("./intent-resolver-QQWZXC5O.mjs"));
20
+ var ReactSurface = lazy(() => import("./react-surface-4JPB2SZX.mjs"));
17
21
 
18
22
  // packages/plugins/plugin-kanban/src/translations.ts
19
23
  import { KanbanType } from "@dxos/react-ui-kanban";
@@ -36,7 +40,8 @@ var translations_default = [
36
40
  "delete column label": "Delete column",
37
41
  "delete item label": "Delete card",
38
42
  "create kanban label": "Create kanban",
39
- "card field deleted label": "Card field deleted"
43
+ "card field deleted label": "Card field deleted",
44
+ "card deleted label": "Card deleted"
40
45
  }
41
46
  }
42
47
  }
@@ -58,10 +63,6 @@ var KanbanPlugin = () => definePlugin(meta, [
58
63
  activate: () => contributes(Capabilities.Metadata, {
59
64
  id: KanbanType2.typename,
60
65
  metadata: {
61
- createObject: (props, options) => createIntent(KanbanAction.Create, {
62
- ...props,
63
- space: options.space
64
- }),
65
66
  placeholder: [
66
67
  "kanban title placeholder",
67
68
  {
@@ -73,21 +74,31 @@ var KanbanPlugin = () => definePlugin(meta, [
73
74
  })
74
75
  }),
75
76
  defineModule({
76
- id: `${meta.id}/module/schema`,
77
+ id: `${meta.id}/module/object-form`,
77
78
  activatesOn: ClientEvents.SetupSchema,
78
- activate: () => contributes(ClientCapabilities.Schema, [
79
- KanbanType2
80
- ])
79
+ activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
80
+ objectSchema: KanbanType2,
81
+ formSchema: CreateKanbanSchema,
82
+ getIntent: (props, options) => createIntent(KanbanAction.Create, {
83
+ ...props,
84
+ space: options.space
85
+ })
86
+ }))
81
87
  }),
82
88
  defineModule({
83
89
  id: `${meta.id}/module/react-surface`,
84
- activatesOn: Events.SetupSurfaces,
90
+ activatesOn: Events.SetupReactSurface,
85
91
  activate: ReactSurface
86
92
  }),
87
93
  defineModule({
88
94
  id: `${meta.id}/module/intent-resolver`,
89
- activatesOn: Events.SetupIntents,
95
+ activatesOn: Events.SetupIntentResolver,
90
96
  activate: IntentResolver
97
+ }),
98
+ defineModule({
99
+ id: `${meta.id}/module/artifact-definition`,
100
+ activatesOn: Events.SetupArtifactDefinition,
101
+ activate: ArtifactDefinition
91
102
  })
92
103
  ]);
93
104
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/KanbanPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, defineModule, contributes, Capabilities, Events, definePlugin } 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: Events.SetupMetadata,\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.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [KanbanType]),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupSurfaces,\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,SAASA,cAAcC,cAAcC,aAAaC,cAAcC,QAAQC,oBAAoB;AAC5F,SAASC,oBAAoBC,oBAAoB;AAEjD,SAASC,cAAAA,aAAYC,gBAAgBC,0BAA0B;;;ACH/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;;;;AFhBK,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,aAAaC,OAAOQ;IACpBN,UAAU,MACRC,YAAYC,aAAaK,UAAU;MACjCX,IAAIY,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;EACA1B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAayB,aAAaC;IAC1BvB,UAAU,MAAMC,YAAYuB,mBAAmBC,QAAQ;MAACjB;KAAW;EACrE,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO4B;IACpB1B,UAAU2B;EACZ,CAAA;EACAhC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO8B;IACpB5B,UAAU6B;EACZ,CAAA;CACD;",
6
- "names": ["createIntent", "defineModule", "contributes", "Capabilities", "Events", "definePlugin", "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", "SetupMetadata", "Metadata", "KanbanType", "typename", "metadata", "createObject", "props", "options", "createIntent", "KanbanAction", "Create", "space", "placeholder", "ns", "KANBAN_PLUGIN", "icon", "ClientEvents", "SetupSchema", "ClientCapabilities", "Schema", "SetupSurfaces", "ReactSurface", "SetupIntents", "IntentResolver"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, defineModule, contributes, Capabilities, Events, definePlugin } from '@dxos/app-framework';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { KanbanType, translations as kanbanTranslations } from '@dxos/react-ui-kanban';\n\nimport { ArtifactDefinition, IntentResolver, ReactSurface } from './capabilities';\nimport { KANBAN_PLUGIN, meta } from './meta';\nimport translations from './translations';\nimport { CreateKanbanSchema, 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: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: KanbanType.typename,\n metadata: {\n placeholder: ['kanban title placeholder', { ns: KANBAN_PLUGIN }],\n icon: 'ph--kanban--regular',\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: KanbanType,\n formSchema: CreateKanbanSchema,\n getIntent: (props, options) => createIntent(KanbanAction.Create, { ...props, space: options.space }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/artifact-definition`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: ArtifactDefinition,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const ArtifactDefinition = lazy(() => import('./artifact-definition'));\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 'card deleted label': 'Card deleted',\n },\n },\n },\n];\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,cAAcC,cAAcC,aAAaC,cAAcC,QAAQC,oBAAoB;AAC5F,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,cAAAA,aAAYC,gBAAgBC,0BAA0B;;;ACJ/D,SAASC,YAAY;AAEd,IAAMC,qBAAqBC,KAAK,MAAM,OAAO,oCAAA,CAAA;AAC7C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACJ9C,SAASG,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;QAC5B,sBAAsB;MACxB;IACF;EACF;;;;AFhBK,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,aAAaC,OAAOQ;IACpBN,UAAU,MACRC,YAAYC,aAAaK,UAAU;MACjCX,IAAIY,YAAWC;MACfC,UAAU;QACRC,aAAa;UAAC;UAA4B;YAAEC,IAAIC;UAAc;;QAC9DC,MAAM;MACR;IACF,CAAA;EACJ,CAAA;EACAnB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAakB,aAAaC;IAC1BhB,UAAU,MACRC,YACEgB,kBAAkBC,YAClBC,iBAAiB;MACfC,cAAcZ;MACda,YAAYC;MACZC,WAAW,CAACC,OAAOC,YAAYC,aAAaC,aAAaC,QAAQ;QAAE,GAAGJ;QAAOK,OAAOJ,QAAQI;MAAM,CAAA;IACpG,CAAA,CAAA;EAEN,CAAA;EACAlC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOgC;IACpB9B,UAAU+B;EACZ,CAAA;EACApC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOkC;IACpBhC,UAAUiC;EACZ,CAAA;EACAtC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOoC;IACpBlC,UAAUmC;EACZ,CAAA;CACD;",
6
+ "names": ["createIntent", "defineModule", "contributes", "Capabilities", "Events", "definePlugin", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "KanbanType", "translations", "kanbanTranslations", "lazy", "ArtifactDefinition", "lazy", "IntentResolver", "ReactSurface", "KanbanType", "KanbanType", "typename", "KANBAN_PLUGIN", "KanbanPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "kanbanTranslations", "SetupMetadata", "Metadata", "KanbanType", "typename", "metadata", "placeholder", "ns", "KANBAN_PLUGIN", "icon", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "CreateKanbanSchema", "getIntent", "props", "options", "createIntent", "KanbanAction", "Create", "space", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupArtifactDefinition", "ArtifactDefinition"]
7
7
  }
@@ -3,7 +3,7 @@ import {
3
3
  KANBAN_PLUGIN,
4
4
  KanbanAction,
5
5
  createKanban
6
- } from "./chunk-3753HLJC.mjs";
6
+ } from "./chunk-TZ3QKBLD.mjs";
7
7
 
8
8
  // packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts
9
9
  import { contributes, Capabilities, createResolver } from "@dxos/app-framework";
@@ -14,9 +14,13 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/s
14
14
  var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
15
15
  createResolver({
16
16
  intent: KanbanAction.Create,
17
- resolve: async ({ space }) => ({
17
+ resolve: async ({ space, initialSchema, initialPivotColumn }) => ({
18
18
  data: {
19
- object: await createKanban(space)
19
+ object: await createKanban({
20
+ space,
21
+ initialSchema,
22
+ initialPivotColumn
23
+ })
20
24
  }
21
25
  })
22
26
  }),
@@ -32,10 +36,19 @@ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
32
36
  ""
33
37
  ]
34
38
  });
39
+ invariant(kanban.cardView.target?.query.type, void 0, {
40
+ F: __dxlog_file,
41
+ L: 25,
42
+ S: void 0,
43
+ A: [
44
+ "kanban.cardView.target?.query.type",
45
+ ""
46
+ ]
47
+ });
35
48
  const schema = kanban.cardView.target && getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);
36
49
  invariant(schema, void 0, {
37
50
  F: __dxlog_file,
38
- L: 28,
51
+ L: 29,
39
52
  S: void 0,
40
53
  A: [
41
54
  "schema",
@@ -69,9 +82,42 @@ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
69
82
  }, index);
70
83
  }
71
84
  }
85
+ }),
86
+ createResolver({
87
+ intent: KanbanAction.DeleteCard,
88
+ resolve: ({ card }, undo) => {
89
+ const space = getSpace(card);
90
+ invariant(space, void 0, {
91
+ F: __dxlog_file,
92
+ L: 50,
93
+ S: void 0,
94
+ A: [
95
+ "space",
96
+ ""
97
+ ]
98
+ });
99
+ if (!undo) {
100
+ space.db.remove(card);
101
+ return {
102
+ undoable: {
103
+ message: [
104
+ "card deleted label",
105
+ {
106
+ ns: KANBAN_PLUGIN
107
+ }
108
+ ],
109
+ data: {
110
+ card
111
+ }
112
+ }
113
+ };
114
+ } else {
115
+ space.db.add(card);
116
+ }
117
+ }
72
118
  })
73
119
  ]);
74
120
  export {
75
121
  intent_resolver_default as default
76
122
  };
77
- //# sourceMappingURL=intent-resolver-KY3JF673.mjs.map
123
+ //# sourceMappingURL=intent-resolver-QQWZXC5O.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, initialSchema, initialPivotColumn }) => ({\n data: { object: await createKanban({ space, initialSchema, 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.type);\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 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,eAAeC,mBAAkB,OAAQ;MAChEC,MAAM;QAAEC,QAAQ,MAAMC,aAAa;UAAEL;UAAOC;UAAeC;QAAmB,CAAA;MAAG;IACnF;EACF,CAAA;EACAP,eAAe;IACbC,QAAQC,aAAaS;IACrBP,SAAS,CAAC,EAAEQ,QAAQC,SAASC,aAAY,GAAIC,SAAAA;AAC3CC,gBAAUJ,OAAOK,UAAQ,QAAA;;;;;;;;;AACzBD,gBAAUJ,OAAOK,SAASC,QAAQC,MAAMC,MAAAA,QAAAA;;;;;;;;;AAExC,YAAMC,SACJT,OAAOK,SAASC,UAAUI,SAASV,MAAAA,GAASW,GAAGC,eAAeC,UAAUb,OAAOK,SAASC,OAAOC,MAAMC,IAAI;AAC3GJ,gBAAUK,QAAAA,QAAAA;;;;;;;;;AACV,YAAMK,aAAa,IAAIC,eAAeN,QAAQT,OAAOK,SAASC,MAAM;AAEpE,UAAI,CAACH,MAAM;AACT,cAAM,EAAEa,SAASC,MAAK,IAAKH,WAAWI,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;AAChCY,mBAAWW,mBAAmB;UAAEF;UAAOC;QAAM,GAAGP,KAAAA;MAClD;IACF;EACF,CAAA;EACA7B,eAAe;IACbC,QAAQC,aAAaoC;IACrBlC,SAAS,CAAC,EAAEmC,KAAI,GAAIxB,SAAAA;AAClB,YAAMV,QAAQiB,SAASiB,IAAAA;AACvBvB,gBAAUX,OAAAA,QAAAA;;;;;;;;;AAEV,UAAI,CAACU,MAAM;AACTV,cAAMkB,GAAGiB,OAAOD,IAAAA;AAChB,eAAO;UACLR,UAAU;YACRC,SAAS;cAAC;cAAsB;gBAAEC,IAAIC;cAAc;;YACpD1B,MAAM;cAAE+B;YAAK;UACf;QACF;MACF,OAAO;AACLlC,cAAMkB,GAAGkB,IAAIF,IAAAA;MACf;IACF;EACF,CAAA;CACD;",
6
+ "names": ["contributes", "Capabilities", "createResolver", "invariant", "getSpace", "ViewProjection", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "KanbanAction", "Create", "resolve", "space", "initialSchema", "initialPivotColumn", "data", "object", "createKanban", "DeleteCardField", "kanban", "fieldId", "deletionData", "undo", "invariant", "cardView", "target", "query", "type", "schema", "getSpace", "db", "schemaRegistry", "getSchema", "projection", "ViewProjection", "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":1609,"imports":[],"format":"esm"},"packages/plugins/plugin-kanban/src/types.ts":{"bytes":7184,"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/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytes":7244,"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":9755,"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},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytes":13762,"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/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":3885,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","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":1081,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"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":3129,"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":7528,"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/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/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5337},"packages/plugins/plugin-kanban/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-3753HLJC.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/plugin-kanban/dist/lib/node-esm/intent-resolver-KY3JF673.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-66YOBKYF.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":1554},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytesInOutput":190},"packages/plugins/plugin-kanban/src/translations.ts":{"bytesInOutput":804},"packages/plugins/plugin-kanban/src/index.ts":{"bytesInOutput":0}},"bytes":3035},"packages/plugins/plugin-kanban/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-kanban/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-3753HLJC.mjs","kind":"import-statement"}],"exports":["KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/plugin-kanban/src/types.ts","inputs":{},"bytes":265},"packages/plugins/plugin-kanban/dist/lib/node-esm/intent-resolver-KY3JF673.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3191},"packages/plugins/plugin-kanban/dist/lib/node-esm/intent-resolver-KY3JF673.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-3753HLJC.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":1895}},"bytes":2249},"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-66YOBKYF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13926},"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-66YOBKYF.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-3753HLJC.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":"@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/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":744},"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2501},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":3687}},"bytes":7488},"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-3753HLJC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4621},"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-3753HLJC.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/plugin-kanban/src/types.ts":{"bytesInOutput":1368},"packages/plugins/plugin-kanban/src/meta.ts":{"bytesInOutput":312}},"bytes":2040}}}
1
+ {"inputs":{"packages/plugins/plugin-kanban/src/meta.ts":{"bytes":2257,"imports":[],"format":"esm"},"packages/plugins/plugin-kanban/src/types.ts":{"bytes":11041,"imports":[{"path":"@effect/schema/AST","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":19846,"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":10411,"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":10185,"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":11797,"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/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":13335,"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":3267,"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":8907,"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/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6210},"packages/plugins/plugin-kanban/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.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/node-esm/artifact-definition-OD3OJAWN.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-4JPB2SZX.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":1883},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytesInOutput":273},"packages/plugins/plugin-kanban/src/translations.ts":{"bytesInOutput":850},"packages/plugins/plugin-kanban/src/index.ts":{"bytesInOutput":0}},"bytes":3515},"packages/plugins/plugin-kanban/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-kanban/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","InitialPivotColumnAnnotationId","InitialSchemaAnnotationId","KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/plugin-kanban/src/types.ts","inputs":{},"bytes":435},"packages/plugins/plugin-kanban/dist/lib/node-esm/artifact-definition-OD3OJAWN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8919},"packages/plugins/plugin-kanban/dist/lib/node-esm/artifact-definition-OD3OJAWN.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.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":5984}},"bytes":6325},"packages/plugins/plugin-kanban/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4328},"packages/plugins/plugin-kanban/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.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":2874}},"bytes":3228},"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-4JPB2SZX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18198},"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-4JPB2SZX.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.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/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":3057},"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2376},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":3200}},"bytes":9252},"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6724},"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs":{"imports":[{"path":"@effect/schema/AST","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","InitialPivotColumnAnnotationId","InitialSchemaAnnotationId","KANBAN_PLUGIN","KanbanAction","createKanban","isKanban","meta"],"inputs":{"packages/plugins/plugin-kanban/src/types.ts":{"bytesInOutput":2188},"packages/plugins/plugin-kanban/src/meta.ts":{"bytesInOutput":564}},"bytes":3197}}}
@@ -1,27 +1,32 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
+ InitialPivotColumnAnnotationId,
4
+ InitialSchemaAnnotationId,
3
5
  KANBAN_PLUGIN,
4
6
  KanbanAction,
5
7
  isKanban
6
- } from "./chunk-3753HLJC.mjs";
8
+ } from "./chunk-TZ3QKBLD.mjs";
7
9
 
8
10
  // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
9
- import React3 from "react";
11
+ import React3, { useMemo as useMemo2 } from "react";
10
12
  import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
13
+ import { findAnnotation } from "@dxos/effect";
14
+ import { getSpace as getSpace3, isSpace } from "@dxos/react-client/echo";
15
+ import { SelectInput as SelectInput2, useFormValues } from "@dxos/react-ui-form";
11
16
 
12
17
  // packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx
13
18
  import React, { useCallback, useEffect, useState } from "react";
14
- import { invariant } from "@dxos/invariant";
19
+ import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
15
20
  import { useGlobalFilteredObjects } from "@dxos/plugin-search";
16
21
  import { Filter, useQuery, getSpace, create } from "@dxos/react-client/echo";
17
22
  import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
18
23
  import { StackItem } from "@dxos/react-ui-stack";
19
24
  import { ViewProjection } from "@dxos/schema";
20
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx";
21
25
  var KanbanContainer = ({ kanban }) => {
22
26
  const [cardSchema, setCardSchema] = useState();
23
27
  const [projection, setProjection] = useState();
24
28
  const space = getSpace(kanban);
29
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
25
30
  useEffect(() => {
26
31
  if (kanban.cardView?.target?.query?.type && space) {
27
32
  const query = space.db.schemaRegistry.query({
@@ -61,9 +66,11 @@ var KanbanContainer = ({ kanban }) => {
61
66
  const handleAddCard = useCallback((columnValue) => {
62
67
  const path = model?.columnFieldPath;
63
68
  if (space && cardSchema && path) {
64
- space.db.add(create(cardSchema, {
69
+ const card = create(cardSchema, {
65
70
  [path]: columnValue
66
- }));
71
+ });
72
+ space.db.add(card);
73
+ return card.id;
67
74
  }
68
75
  }, [
69
76
  space,
@@ -71,69 +78,43 @@ var KanbanContainer = ({ kanban }) => {
71
78
  model
72
79
  ]);
73
80
  const handleRemoveCard = useCallback((card) => {
74
- invariant(space, void 0, {
75
- F: __dxlog_file,
76
- L: 65,
77
- S: void 0,
78
- A: [
79
- "space",
80
- ""
81
- ]
82
- });
83
- space.db.remove(card);
81
+ void dispatch(createIntent(KanbanAction.DeleteCard, {
82
+ card
83
+ }));
84
84
  }, [
85
- space
85
+ dispatch
86
86
  ]);
87
87
  return /* @__PURE__ */ React.createElement(StackItem.Content, {
88
88
  toolbar: false
89
- }, model ? /* @__PURE__ */ React.createElement(Kanban, {
89
+ }, model && /* @__PURE__ */ React.createElement(Kanban, {
90
90
  model,
91
91
  onAddCard: handleAddCard,
92
92
  onRemoveCard: handleRemoveCard
93
- }) : /* @__PURE__ */ React.createElement("span", null, "Loading"));
93
+ }));
94
94
  };
95
95
 
96
96
  // packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx
97
- import React2, { useCallback as useCallback2, useEffect as useEffect2, useMemo, useState as useState2 } from "react";
98
- import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
97
+ import React2, { useCallback as useCallback2, useMemo } from "react";
98
+ import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
99
99
  import { FormatEnum } from "@dxos/echo-schema";
100
- import { invariant as invariant2 } from "@dxos/invariant";
101
- import { Filter as Filter2, getSpace as getSpace2, useQuery as useQuery2 } from "@dxos/react-client/echo";
100
+ import { invariant } from "@dxos/invariant";
101
+ import { Filter as Filter2, getSpace as getSpace2, useQuery as useQuery2, useSchema } from "@dxos/react-client/echo";
102
102
  import { ViewEditor, Form, SelectInput } from "@dxos/react-ui-form";
103
103
  import { KanbanSettingsSchema } from "@dxos/react-ui-kanban";
104
104
  import { ViewType, ViewProjection as ViewProjection2 } from "@dxos/schema";
105
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx";
105
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx";
106
106
  var KanbanViewEditor = ({ kanban }) => {
107
- const { dispatchPromise: dispatch } = useIntentDispatcher();
107
+ const { dispatchPromise: dispatch } = useIntentDispatcher2();
108
108
  const space = getSpace2(kanban);
109
- const [schema, setSchema] = useState2();
110
- useEffect2(() => {
111
- if (space && kanban?.cardView?.target?.query?.type) {
112
- const query = space.db.schemaRegistry.query({
113
- typename: kanban.cardView.target.query.type
114
- });
115
- const unsubscribe = query.subscribe(() => {
116
- const [schema2] = query.results;
117
- if (schema2) {
118
- setSchema(schema2);
119
- }
120
- }, {
121
- fire: true
122
- });
123
- return unsubscribe;
124
- }
125
- }, [
126
- space,
127
- kanban?.cardView?.target?.query?.type
128
- ]);
129
- const views = useQuery2(space, Filter2.schema(ViewType));
130
109
  const currentTypename = useMemo(() => kanban?.cardView?.target?.query?.type, [
131
110
  kanban?.cardView?.target?.query?.type
132
111
  ]);
112
+ const schema = useSchema(space, currentTypename);
113
+ const views = useQuery2(space, Filter2.schema(ViewType));
133
114
  const updateViewTypename = useCallback2((newTypename) => {
134
- invariant2(schema, void 0, {
135
- F: __dxlog_file2,
136
- L: 45,
115
+ invariant(schema, void 0, {
116
+ F: __dxlog_file,
117
+ L: 28,
137
118
  S: void 0,
138
119
  A: [
139
120
  "schema",
@@ -149,7 +130,7 @@ var KanbanViewEditor = ({ kanban }) => {
149
130
  views,
150
131
  schema
151
132
  ]);
152
- const handleDelete = useCallback2((fieldId) => dispatch?.(createIntent(KanbanAction.DeleteCardField, {
133
+ const handleDelete = useCallback2((fieldId) => dispatch?.(createIntent2(KanbanAction.DeleteCardField, {
153
134
  kanban,
154
135
  fieldId
155
136
  })), [
@@ -233,9 +214,73 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
233
214
  component: ({ data }) => /* @__PURE__ */ React3.createElement(KanbanViewEditor, {
234
215
  kanban: data.subject
235
216
  })
217
+ }),
218
+ createSurface({
219
+ id: `${KANBAN_PLUGIN}/create-initial-schema-form-[schema]`,
220
+ role: "form-input",
221
+ filter: (data) => {
222
+ const annotation = findAnnotation(data.schema.ast, InitialSchemaAnnotationId);
223
+ return !!annotation;
224
+ },
225
+ component: ({ data: { target }, ...inputProps }) => {
226
+ const props = inputProps;
227
+ const space = isSpace(target) ? target : getSpace3(target);
228
+ if (!space) {
229
+ return null;
230
+ }
231
+ const schemata = space?.db.schemaRegistry.query().runSync();
232
+ return /* @__PURE__ */ React3.createElement(SelectInput2, {
233
+ ...props,
234
+ options: schemata.map((schema) => ({
235
+ value: schema.typename
236
+ }))
237
+ });
238
+ }
239
+ }),
240
+ createSurface({
241
+ id: `${KANBAN_PLUGIN}/create-initial-schema-form-[pivot-column]`,
242
+ role: "form-input",
243
+ filter: (data) => {
244
+ const annotation = findAnnotation(data.schema.ast, InitialPivotColumnAnnotationId);
245
+ return !!annotation;
246
+ },
247
+ component: ({ data: { target }, ...inputProps }) => {
248
+ const props = inputProps;
249
+ const space = isSpace(target) ? target : getSpace3(target);
250
+ if (!space) {
251
+ return null;
252
+ }
253
+ const { initialSchema } = useFormValues();
254
+ const [selectedSchema] = space?.db.schemaRegistry.query({
255
+ typename: initialSchema
256
+ }).runSync();
257
+ const singleSelectColumns = useMemo2(() => {
258
+ if (!selectedSchema?.jsonSchema?.properties) {
259
+ return [];
260
+ }
261
+ const columns = Object.entries(selectedSchema.jsonSchema.properties).reduce((acc, [key, value]) => {
262
+ if (typeof value === "object" && value?.format === "single-select") {
263
+ acc.push(key);
264
+ }
265
+ return acc;
266
+ }, []);
267
+ return columns;
268
+ }, [
269
+ selectedSchema?.jsonSchema
270
+ ]);
271
+ if (!initialSchema) {
272
+ return null;
273
+ }
274
+ return /* @__PURE__ */ React3.createElement(SelectInput2, {
275
+ ...props,
276
+ options: singleSelectColumns.map((column) => ({
277
+ value: column
278
+ }))
279
+ });
280
+ }
236
281
  })
237
282
  ]);
238
283
  export {
239
284
  react_surface_default as default
240
285
  };
241
- //# sourceMappingURL=react-surface-66YOBKYF.mjs.map
286
+ //# sourceMappingURL=react-surface-4JPB2SZX.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, InitialSchemaAnnotationId, InitialPivotColumnAnnotationId } 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}/settings`,\n role: 'complementary--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, InitialSchemaAnnotationId);\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 schemata = space?.db.schemaRegistry.query().runSync();\n\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, InitialPivotColumnAnnotationId);\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 { initialSchema } = useFormValues();\n const [selectedSchema] = space?.db.schemaRegistry.query({ typename: initialSchema }).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 (!initialSchema) {\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?.type && space) {\n const query = space.db.schemaRegistry.query({ typename: kanban.cardView.target.query.type });\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, 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 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 toolbar={false}>\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 { 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 space = getSpace(kanban);\n const currentTypename = useMemo(() => kanban?.cardView?.target?.query?.type, [kanban?.cardView?.target?.query?.type]);\n const schema = useSchema(space, currentTypename);\n const views = useQuery(space, Filter.schema(ViewType));\n\n const updateViewTypename = useCallback(\n (newTypename: string) => {\n invariant(schema);\n const matchingViews = views.filter((view) => view.query.type === currentTypename);\n for (const view of matchingViews) {\n view.query.type = newTypename;\n }\n schema.updateTypename(newTypename);\n },\n [views, schema],\n );\n\n const handleDelete = useCallback(\n (fieldId: string) => dispatch?.(createIntent(KanbanAction.DeleteCardField, { kanban, fieldId })),\n [dispatch, kanban],\n );\n\n const projection = useMemo(() => {\n if (kanban?.cardView?.target && schema) {\n return new ViewProjection(schema, kanban.cardView.target);\n }\n }, [kanban?.cardView?.target, schema, JSON.stringify(schema)]);\n\n const selectFields = useMemo(() => {\n if (!projection) {\n return [];\n }\n\n return projection\n .getFieldProjections()\n .filter((field) => field.props.format === FormatEnum.SingleSelect)\n .map(({ field }) => ({ value: field.id, label: field.path }));\n }, [projection]);\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]);\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={updateViewTypename}\n onDelete={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", "type", "db", "schemaRegistry", "typename", "unsubscribe", "subscribe", "schema", "results", "fire", "ViewProjection", "JSON", "stringify", "jsonSchema", "objects", "useQuery", "Filter", "nothing", "filteredObjects", "useGlobalFilteredObjects", "model", "useKanbanModel", "items", "handleAddCard", "useCallback", "columnValue", "path", "columnFieldPath", "card", "create", "add", "id", "handleRemoveCard", "createIntent", "KanbanAction", "DeleteCard", "StackItem", "Content", "toolbar", "Kanban", "onAddCard", "onRemoveCard", "React", "useCallback", "useMemo", "createIntent", "useIntentDispatcher", "FormatEnum", "invariant", "Filter", "getSpace", "useQuery", "useSchema", "ViewEditor", "Form", "SelectInput", "KanbanSettingsSchema", "ViewType", "ViewProjection", "KanbanViewEditor", "kanban", "dispatchPromise", "dispatch", "useIntentDispatcher", "space", "getSpace", "currentTypename", "useMemo", "cardView", "target", "query", "type", "schema", "useSchema", "views", "useQuery", "Filter", "ViewType", "updateViewTypename", "useCallback", "newTypename", "invariant", "matchingViews", "filter", "view", "updateTypename", "handleDelete", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "projection", "ViewProjection", "JSON", "stringify", "selectFields", "getFieldProjections", "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", "onDelete", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "KANBAN_PLUGIN", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor", "annotation", "findAnnotation", "schema", "ast", "InitialSchemaAnnotationId", "target", "inputProps", "props", "space", "isSpace", "getSpace", "schemata", "db", "schemaRegistry", "query", "runSync", "SelectInput", "options", "map", "value", "typename", "InitialPivotColumnAnnotationId", "initialSchema", "useFormValues", "selectedSchema", "singleSelectColumns", "useMemo", "jsonSchema", "properties", "columns", "Object", "entries", "reduce", "acc", "key", "format", "push", "column"]
7
+ }