@dxos/plugin-kanban 0.7.5-main.ff8607b → 0.7.5-staging.b81e783

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 (71) hide show
  1. package/dist/lib/browser/artifact-definition-RSO5XMKU.mjs +173 -0
  2. package/dist/lib/browser/artifact-definition-RSO5XMKU.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-CX6EJQUM.mjs → chunk-ILL6UKZE.mjs} +33 -11
  4. package/dist/lib/browser/chunk-ILL6UKZE.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +30 -19
  6. package/dist/lib/browser/index.mjs.map +3 -3
  7. package/dist/lib/browser/{intent-resolver-WZK6U7AV.mjs → intent-resolver-6BD4KUAU.mjs} +53 -7
  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-23WY6Y2I.mjs → react-surface-SN2UKU4Y.mjs} +98 -53
  11. package/dist/lib/browser/react-surface-SN2UKU4Y.mjs.map +7 -0
  12. package/dist/lib/browser/types.mjs +7 -1
  13. package/dist/lib/node/artifact-definition-UTF2PHQN.cjs +189 -0
  14. package/dist/lib/node/artifact-definition-UTF2PHQN.cjs.map +7 -0
  15. package/dist/lib/node/{chunk-LCX4U4ES.cjs → chunk-63KJGDFJ.cjs} +36 -11
  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-FJATJZJ7.cjs → intent-resolver-DHL5HBJM.cjs} +58 -12
  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-DYOAOKIF.cjs → react-surface-TCUFAH5K.cjs} +105 -62
  23. package/dist/lib/node/react-surface-TCUFAH5K.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-MVIL3EEK.mjs +174 -0
  27. package/dist/lib/node-esm/artifact-definition-MVIL3EEK.mjs.map +7 -0
  28. package/dist/lib/node-esm/{chunk-D3NDCI33.mjs → chunk-TZ3QKBLD.mjs} +33 -11
  29. package/dist/lib/node-esm/chunk-TZ3QKBLD.mjs.map +7 -0
  30. package/dist/lib/node-esm/index.mjs +30 -19
  31. package/dist/lib/node-esm/index.mjs.map +3 -3
  32. package/dist/lib/node-esm/{intent-resolver-MBXQL2BL.mjs → intent-resolver-QQWZXC5O.mjs} +53 -7
  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-P6FJM7SN.mjs → react-surface-HZJXQKYV.mjs} +98 -53
  36. package/dist/lib/node-esm/react-surface-HZJXQKYV.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/translations.d.ts +3 -0
  50. package/dist/types/src/translations.d.ts.map +1 -1
  51. package/dist/types/src/types.d.ts +30 -14
  52. package/dist/types/src/types.d.ts.map +1 -1
  53. package/package.json +26 -21
  54. package/src/KanbanPlugin.tsx +22 -10
  55. package/src/capabilities/artifact-definition.ts +131 -0
  56. package/src/capabilities/index.ts +1 -0
  57. package/src/capabilities/intent-resolver.ts +22 -2
  58. package/src/capabilities/react-surface.tsx +63 -2
  59. package/src/components/KanbanContainer.tsx +9 -5
  60. package/src/components/KanbanViewEditor.tsx +6 -23
  61. package/src/translations.ts +1 -0
  62. package/src/types.ts +34 -7
  63. package/dist/lib/browser/chunk-CX6EJQUM.mjs.map +0 -7
  64. package/dist/lib/browser/intent-resolver-WZK6U7AV.mjs.map +0 -7
  65. package/dist/lib/browser/react-surface-23WY6Y2I.mjs.map +0 -7
  66. package/dist/lib/node/chunk-LCX4U4ES.cjs.map +0 -7
  67. package/dist/lib/node/intent-resolver-FJATJZJ7.cjs.map +0 -7
  68. package/dist/lib/node/react-surface-DYOAOKIF.cjs.map +0 -7
  69. package/dist/lib/node-esm/chunk-D3NDCI33.mjs.map +0 -7
  70. package/dist/lib/node-esm/intent-resolver-MBXQL2BL.mjs.map +0 -7
  71. package/dist/lib/node-esm/react-surface-P6FJM7SN.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,21 +1,25 @@
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-D3NDCI33.mjs";
7
+ } from "./chunk-TZ3QKBLD.mjs";
7
8
 
8
- // packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx
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
- // packages/plugins/experimental/plugin-kanban/src/capabilities/index.ts
16
+ // packages/plugins/plugin-kanban/src/capabilities/index.ts
14
17
  import { lazy } from "@dxos/app-framework";
15
- var IntentResolver = lazy(() => import("./intent-resolver-MBXQL2BL.mjs"));
16
- var ReactSurface = lazy(() => import("./react-surface-P6FJM7SN.mjs"));
18
+ var ArtifactDefinition = lazy(() => import("./artifact-definition-MVIL3EEK.mjs"));
19
+ var IntentResolver = lazy(() => import("./intent-resolver-QQWZXC5O.mjs"));
20
+ var ReactSurface = lazy(() => import("./react-surface-HZJXQKYV.mjs"));
17
21
 
18
- // packages/plugins/experimental/plugin-kanban/src/translations.ts
22
+ // packages/plugins/plugin-kanban/src/translations.ts
19
23
  import { KanbanType } from "@dxos/react-ui-kanban";
20
24
  var translations_default = [
21
25
  {
@@ -36,13 +40,14 @@ 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
  }
43
48
  ];
44
49
 
45
- // packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx
50
+ // packages/plugins/plugin-kanban/src/KanbanPlugin.tsx
46
51
  var KanbanPlugin = () => definePlugin(meta, [
47
52
  defineModule({
48
53
  id: `${meta.id}/module/translations`,
@@ -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,20 +3,24 @@ import {
3
3
  KANBAN_PLUGIN,
4
4
  KanbanAction,
5
5
  createKanban
6
- } from "./chunk-D3NDCI33.mjs";
6
+ } from "./chunk-TZ3QKBLD.mjs";
7
7
 
8
- // packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts
8
+ // packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts
9
9
  import { contributes, Capabilities, createResolver } from "@dxos/app-framework";
10
10
  import { invariant } from "@dxos/invariant";
11
11
  import { getSpace } from "@dxos/react-client/echo";
12
12
  import { ViewProjection } from "@dxos/schema";
13
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts";
13
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts";
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-MBXQL2BL.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/experimental/plugin-kanban/src/meta.ts":{"bytes":2270,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/types.ts":{"bytes":7197,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytes":7257,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx":{"bytes":9768,"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/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytes":13775,"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/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/index.ts":{"bytes":657,"imports":[{"path":"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"},{"path":"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./KanbanViewEditor"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx":{"bytes":3898,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/capabilities/index.ts":{"bytes":1094,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/translations.ts":{"bytes":3142,"imports":[{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx":{"bytes":7541,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/experimental/plugin-kanban/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/index.ts":{"bytes":607,"imports":[{"path":"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5337},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-D3NDCI33.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/intent-resolver-MBXQL2BL.mjs","kind":"dynamic-import"},{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/react-surface-P6FJM7SN.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true}],"exports":["KANBAN_PLUGIN","KanbanPlugin","meta"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/index.ts","inputs":{"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx":{"bytesInOutput":1554},"packages/plugins/experimental/plugin-kanban/src/capabilities/index.ts":{"bytesInOutput":190},"packages/plugins/experimental/plugin-kanban/src/translations.ts":{"bytesInOutput":804},"packages/plugins/experimental/plugin-kanban/src/index.ts":{"bytesInOutput":0}},"bytes":3087},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-D3NDCI33.mjs","kind":"import-statement"}],"exports":["KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/types.ts","inputs":{},"bytes":265},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/intent-resolver-MBXQL2BL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3191},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/intent-resolver-MBXQL2BL.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-D3NDCI33.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/experimental/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytesInOutput":1908}},"bytes":2275},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/react-surface-P6FJM7SN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13926},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/react-surface-P6FJM7SN.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-D3NDCI33.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/experimental/plugin-kanban/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx":{"bytesInOutput":744},"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2514},"packages/plugins/experimental/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":3700}},"bytes":7566},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-D3NDCI33.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4904},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-D3NDCI33.mjs":{"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["KANBAN_PLUGIN","KanbanAction","createKanban","isKanban","meta"],"inputs":{"packages/plugins/experimental/plugin-kanban/src/types.ts":{"bytesInOutput":1368},"packages/plugins/experimental/plugin-kanban/src/meta.ts":{"bytesInOutput":564}},"bytes":2331}}}
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":19338,"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/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":10361,"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-MVIL3EEK.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-HZJXQKYV.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-MVIL3EEK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8692},"packages/plugins/plugin-kanban/dist/lib/node-esm/artifact-definition-MVIL3EEK.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":5912}},"bytes":6245},"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-HZJXQKYV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18305},"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-HZJXQKYV.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":2438},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":3200}},"bytes":9314},"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-D3NDCI33.mjs";
8
+ } from "./chunk-TZ3QKBLD.mjs";
7
9
 
8
- // packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx
9
- import React3 from "react";
10
+ // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
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
- // packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx
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/experimental/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,18 +78,11 @@ 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
@@ -93,47 +93,28 @@ var KanbanContainer = ({ kanban }) => {
93
93
  }) : /* @__PURE__ */ React.createElement("span", null, "Loading"));
94
94
  };
95
95
 
96
- // packages/plugins/experimental/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";
96
+ // packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx
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/experimental/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
  })), [
@@ -212,7 +193,7 @@ var KanbanViewEditor = ({ kanban }) => {
212
193
  }));
213
194
  };
214
195
 
215
- // packages/plugins/experimental/plugin-kanban/src/capabilities/react-surface.tsx
196
+ // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
216
197
  var react_surface_default = () => contributes(Capabilities.ReactSurface, [
217
198
  createSurface({
218
199
  id: `${KANBAN_PLUGIN}/kanban`,
@@ -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-P6FJM7SN.mjs.map
286
+ //# sourceMappingURL=react-surface-HZJXQKYV.mjs.map