@dxos/plugin-kanban 0.7.5-labs.071a3e2 → 0.7.5-labs.401163d
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.
- package/dist/lib/browser/artifact-FJ7K5S5Y.mjs +173 -0
- package/dist/lib/browser/artifact-FJ7K5S5Y.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7PFZLUDZ.mjs → chunk-ILL6UKZE.mjs} +30 -8
- package/dist/lib/browser/chunk-ILL6UKZE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +13 -4
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-4SJJSDOD.mjs → intent-resolver-EOTUDRIU.mjs} +41 -4
- package/dist/lib/browser/intent-resolver-EOTUDRIU.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-5WOH5E2K.mjs → react-surface-SN2UKU4Y.mjs} +94 -49
- package/dist/lib/browser/react-surface-SN2UKU4Y.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +7 -1
- package/dist/lib/node/artifact-TT3JYZEY.cjs +189 -0
- package/dist/lib/node/artifact-TT3JYZEY.cjs.map +7 -0
- package/dist/lib/node/{chunk-IR3NCB4Y.cjs → chunk-63KJGDFJ.cjs} +36 -11
- package/dist/lib/node/chunk-63KJGDFJ.cjs.map +7 -0
- package/dist/lib/node/index.cjs +23 -15
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-X3NB4IA6.cjs → intent-resolver-PMBA35UQ.cjs} +47 -10
- package/dist/lib/node/intent-resolver-PMBA35UQ.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-A5TP26JG.cjs → react-surface-TCUFAH5K.cjs} +105 -62
- package/dist/lib/node/react-surface-TCUFAH5K.cjs.map +7 -0
- package/dist/lib/node/types.cjs +10 -4
- package/dist/lib/node/types.cjs.map +2 -2
- package/dist/lib/node-esm/artifact-TKSPF5E2.mjs +174 -0
- package/dist/lib/node-esm/artifact-TKSPF5E2.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LUAZTJHF.mjs → chunk-TZ3QKBLD.mjs} +30 -8
- package/dist/lib/node-esm/chunk-TZ3QKBLD.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +13 -4
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-KFSXWDSV.mjs → intent-resolver-VYYMQVBP.mjs} +41 -4
- package/dist/lib/node-esm/intent-resolver-VYYMQVBP.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-W4HLVD2O.mjs → react-surface-HZJXQKYV.mjs} +94 -49
- package/dist/lib/node-esm/react-surface-HZJXQKYV.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +7 -1
- package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact.d.ts +11 -0
- package/dist/types/src/capabilities/artifact.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +1 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/KanbanContainer.d.ts.map +1 -1
- package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +30 -14
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +25 -21
- package/src/KanbanPlugin.tsx +9 -3
- package/src/capabilities/artifact.ts +131 -0
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/intent-resolver.ts +21 -2
- package/src/capabilities/react-surface.tsx +63 -2
- package/src/components/KanbanContainer.tsx +9 -5
- package/src/components/KanbanViewEditor.tsx +6 -23
- package/src/translations.ts +1 -0
- package/src/types.ts +34 -7
- package/dist/lib/browser/chunk-7PFZLUDZ.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-4SJJSDOD.mjs.map +0 -7
- package/dist/lib/browser/react-surface-5WOH5E2K.mjs.map +0 -7
- package/dist/lib/node/chunk-IR3NCB4Y.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-X3NB4IA6.cjs.map +0 -7
- package/dist/lib/node/react-surface-A5TP26JG.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-LUAZTJHF.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-KFSXWDSV.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-W4HLVD2O.mjs.map +0 -7
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KanbanAction
|
|
3
|
+
} from "./chunk-ILL6UKZE.mjs";
|
|
4
|
+
|
|
5
|
+
// packages/plugins/plugin-kanban/src/capabilities/artifact.ts
|
|
6
|
+
import { pipe } from "effect";
|
|
7
|
+
import { Capabilities, chain, contributes, createIntent } from "@dxos/app-framework";
|
|
8
|
+
import { defineArtifact, defineTool, ToolResult } from "@dxos/artifact";
|
|
9
|
+
import { createArtifactElement } from "@dxos/assistant";
|
|
10
|
+
import { isInstanceOf, S } from "@dxos/echo-schema";
|
|
11
|
+
import { invariant } from "@dxos/invariant";
|
|
12
|
+
import { SpaceAction } from "@dxos/plugin-space/types";
|
|
13
|
+
import { Filter, fullyQualifiedId } from "@dxos/react-client/echo";
|
|
14
|
+
import { KanbanType } from "@dxos/react-ui-kanban";
|
|
15
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/capabilities/artifact.ts";
|
|
16
|
+
var QualifiedId = S.String.annotations({
|
|
17
|
+
description: "The fully qualified ID of the kanban `spaceID:objectID`"
|
|
18
|
+
});
|
|
19
|
+
var artifact_default = () => {
|
|
20
|
+
const definition = defineArtifact({
|
|
21
|
+
id: "plugin-kanban",
|
|
22
|
+
instructions: `
|
|
23
|
+
When working with kanban boards here are some additional instructions:
|
|
24
|
+
- Before adding items to a kanban board, inspect the board to see its schema
|
|
25
|
+
- When adding items, you must not include the 'id' field -- it is automatically generated
|
|
26
|
+
- BEFORE adding items, always make sure the board has been shown to the user!
|
|
27
|
+
`,
|
|
28
|
+
schema: KanbanType,
|
|
29
|
+
tools: [
|
|
30
|
+
defineTool({
|
|
31
|
+
name: "kanban_new",
|
|
32
|
+
description: `
|
|
33
|
+
Create a new kanban board using an existing schema.
|
|
34
|
+
Use schema_create first to create a schema, or schema_list to choose an existing one.`,
|
|
35
|
+
schema: S.Struct({
|
|
36
|
+
typename: S.String.annotations({
|
|
37
|
+
description: "The fully qualified typename of the schema to use for the kanban cards."
|
|
38
|
+
}),
|
|
39
|
+
pivotColumn: S.optional(S.String).annotations({
|
|
40
|
+
description: "Optional field name to use as the column pivot."
|
|
41
|
+
})
|
|
42
|
+
}),
|
|
43
|
+
execute: async ({ typename, pivotColumn }, { extensions }) => {
|
|
44
|
+
invariant(extensions?.space, "No space", {
|
|
45
|
+
F: __dxlog_file,
|
|
46
|
+
L: 54,
|
|
47
|
+
S: void 0,
|
|
48
|
+
A: [
|
|
49
|
+
"extensions?.space",
|
|
50
|
+
"'No space'"
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
invariant(extensions?.dispatch, "No intent dispatcher", {
|
|
54
|
+
F: __dxlog_file,
|
|
55
|
+
L: 55,
|
|
56
|
+
S: void 0,
|
|
57
|
+
A: [
|
|
58
|
+
"extensions?.dispatch",
|
|
59
|
+
"'No intent dispatcher'"
|
|
60
|
+
]
|
|
61
|
+
});
|
|
62
|
+
const schema = await extensions.space.db.schemaRegistry.query({
|
|
63
|
+
typename
|
|
64
|
+
}).firstOrUndefined();
|
|
65
|
+
if (!schema) {
|
|
66
|
+
return ToolResult.Error(`Schema not found: ${typename}`);
|
|
67
|
+
}
|
|
68
|
+
const intent = pipe(createIntent(KanbanAction.Create, {
|
|
69
|
+
space: extensions.space,
|
|
70
|
+
initialSchema: typename,
|
|
71
|
+
initialPivotColumn: pivotColumn
|
|
72
|
+
}), chain(SpaceAction.AddObject, {
|
|
73
|
+
target: extensions.space
|
|
74
|
+
}));
|
|
75
|
+
const { data, error } = await extensions.dispatch(intent);
|
|
76
|
+
if (!data || error) {
|
|
77
|
+
return ToolResult.Error(error?.message ?? "Failed to create kanban board");
|
|
78
|
+
}
|
|
79
|
+
return ToolResult.Success(createArtifactElement(data.id));
|
|
80
|
+
}
|
|
81
|
+
}),
|
|
82
|
+
defineTool({
|
|
83
|
+
name: "kanban_list",
|
|
84
|
+
description: "List all kanban boards in the current space.",
|
|
85
|
+
schema: S.Struct({}),
|
|
86
|
+
execute: async (_input, { extensions }) => {
|
|
87
|
+
invariant(extensions?.space, "No space", {
|
|
88
|
+
F: __dxlog_file,
|
|
89
|
+
L: 85,
|
|
90
|
+
S: void 0,
|
|
91
|
+
A: [
|
|
92
|
+
"extensions?.space",
|
|
93
|
+
"'No space'"
|
|
94
|
+
]
|
|
95
|
+
});
|
|
96
|
+
const space = extensions.space;
|
|
97
|
+
const { objects: boards } = await space.db.query(Filter.schema(KanbanType)).run();
|
|
98
|
+
const boardInfo = await Promise.all(boards.map(async (board) => {
|
|
99
|
+
const view = await board.cardView?.load();
|
|
100
|
+
return {
|
|
101
|
+
id: fullyQualifiedId(board),
|
|
102
|
+
typename: view?.query.type
|
|
103
|
+
};
|
|
104
|
+
}));
|
|
105
|
+
return ToolResult.Success(boardInfo);
|
|
106
|
+
}
|
|
107
|
+
}),
|
|
108
|
+
defineTool({
|
|
109
|
+
name: "kanban_inspect",
|
|
110
|
+
description: "Get details about a specific kanban board.",
|
|
111
|
+
schema: S.Struct({
|
|
112
|
+
id: QualifiedId
|
|
113
|
+
}),
|
|
114
|
+
execute: async ({ id }, { extensions }) => {
|
|
115
|
+
invariant(extensions?.space, "No space", {
|
|
116
|
+
F: __dxlog_file,
|
|
117
|
+
L: 107,
|
|
118
|
+
S: void 0,
|
|
119
|
+
A: [
|
|
120
|
+
"extensions?.space",
|
|
121
|
+
"'No space'"
|
|
122
|
+
]
|
|
123
|
+
});
|
|
124
|
+
const space = extensions.space;
|
|
125
|
+
const { objects: boards } = await space.db.query(Filter.schema(KanbanType)).run();
|
|
126
|
+
const board = boards.find((board2) => fullyQualifiedId(board2) === id);
|
|
127
|
+
invariant(isInstanceOf(KanbanType, board), void 0, {
|
|
128
|
+
F: __dxlog_file,
|
|
129
|
+
L: 111,
|
|
130
|
+
S: void 0,
|
|
131
|
+
A: [
|
|
132
|
+
"isInstanceOf(KanbanType, board)",
|
|
133
|
+
""
|
|
134
|
+
]
|
|
135
|
+
});
|
|
136
|
+
const view = await board.cardView?.load();
|
|
137
|
+
invariant(view, void 0, {
|
|
138
|
+
F: __dxlog_file,
|
|
139
|
+
L: 114,
|
|
140
|
+
S: void 0,
|
|
141
|
+
A: [
|
|
142
|
+
"view",
|
|
143
|
+
""
|
|
144
|
+
]
|
|
145
|
+
});
|
|
146
|
+
const typename = view.query.type;
|
|
147
|
+
const schema = await space.db.schemaRegistry.query({
|
|
148
|
+
typename
|
|
149
|
+
}).firstOrUndefined();
|
|
150
|
+
invariant(schema, void 0, {
|
|
151
|
+
F: __dxlog_file,
|
|
152
|
+
L: 118,
|
|
153
|
+
S: void 0,
|
|
154
|
+
A: [
|
|
155
|
+
"schema",
|
|
156
|
+
""
|
|
157
|
+
]
|
|
158
|
+
});
|
|
159
|
+
return ToolResult.Success({
|
|
160
|
+
schema,
|
|
161
|
+
columnField: board.columnFieldId,
|
|
162
|
+
viewFields: view.fields
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
})
|
|
166
|
+
]
|
|
167
|
+
});
|
|
168
|
+
return contributes(Capabilities.ArtifactDefinition, definition);
|
|
169
|
+
};
|
|
170
|
+
export {
|
|
171
|
+
artifact_default as default
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=artifact-FJ7K5S5Y.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/artifact.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect';\n\nimport { Capabilities, chain, contributes, createIntent, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineArtifact, defineTool, ToolResult } from '@dxos/artifact';\nimport { createArtifactElement } from '@dxos/assistant';\nimport { isInstanceOf, S } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Filter, fullyQualifiedId, type Space } from '@dxos/react-client/echo';\nimport { KanbanType } from '@dxos/react-ui-kanban';\n\nimport { KanbanAction } from '../types';\n\nconst QualifiedId = S.String.annotations({\n description: 'The fully qualified ID of the kanban `spaceID:objectID`',\n});\n\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nexport default () => {\n const definition = defineArtifact({\n id: 'plugin-kanban',\n instructions: `\n When working with kanban boards here are some additional instructions:\n - Before adding items to a kanban board, inspect the board to see its schema\n - When adding items, you must not include the 'id' field -- it is automatically generated\n - BEFORE adding items, always make sure the board has been shown to the user!\n `,\n schema: KanbanType,\n tools: [\n defineTool({\n name: 'kanban_new',\n description: `\n Create a new kanban board using an existing schema.\n Use schema_create first to create a schema, or schema_list to choose an existing one.`,\n schema: S.Struct({\n typename: S.String.annotations({\n description: 'The fully qualified typename of the schema to use for the kanban cards.',\n }),\n pivotColumn: S.optional(S.String).annotations({\n description: 'Optional field name to use as the column pivot.',\n }),\n }),\n execute: async ({ typename, pivotColumn }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n invariant(extensions?.dispatch, 'No intent dispatcher');\n\n // Validate schema exists first\n const schema = await extensions.space.db.schemaRegistry.query({ typename }).firstOrUndefined();\n if (!schema) {\n return ToolResult.Error(`Schema not found: ${typename}`);\n }\n\n const intent = pipe(\n createIntent(KanbanAction.Create, {\n space: extensions.space,\n initialSchema: typename,\n initialPivotColumn: pivotColumn,\n }),\n chain(SpaceAction.AddObject, { target: extensions.space }),\n );\n\n const { data, error } = await extensions.dispatch(intent);\n if (!data || error) {\n return ToolResult.Error(error?.message ?? 'Failed to create kanban board');\n }\n\n return ToolResult.Success(createArtifactElement(data.id));\n },\n }),\n defineTool({\n name: 'kanban_list',\n description: 'List all kanban boards in the current space.',\n schema: S.Struct({}),\n execute: async (_input, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const space = extensions.space;\n const { objects: boards } = await space.db.query(Filter.schema(KanbanType)).run();\n\n const boardInfo = await Promise.all(\n boards.map(async (board: KanbanType) => {\n const view = await board.cardView?.load();\n return {\n id: fullyQualifiedId(board),\n typename: view?.query.type,\n };\n }),\n );\n\n return ToolResult.Success(boardInfo);\n },\n }),\n defineTool({\n name: 'kanban_inspect',\n description: 'Get details about a specific kanban board.',\n schema: S.Struct({ id: QualifiedId }),\n execute: async ({ id }, { extensions }) => {\n invariant(extensions?.space, 'No space');\n const space = extensions.space;\n const { objects: boards } = await space.db.query(Filter.schema(KanbanType)).run();\n const board = boards.find((board: KanbanType) => fullyQualifiedId(board) === id);\n invariant(isInstanceOf(KanbanType, board));\n\n const view = await board.cardView?.load();\n invariant(view);\n\n const typename = view.query.type;\n const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();\n invariant(schema);\n\n return ToolResult.Success({\n schema,\n columnField: board.columnFieldId,\n viewFields: view.fields,\n });\n },\n }),\n ],\n });\n\n return contributes(Capabilities.ArtifactDefinition, definition);\n};\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,YAAY;AAErB,SAASC,cAAcC,OAAOC,aAAaC,oBAAkD;AAC7F,SAASC,gBAAgBC,YAAYC,kBAAkB;AACvD,SAASC,6BAA6B;AACtC,SAASC,cAAcC,SAAS;AAChC,SAASC,iBAAiB;AAC1B,SAASC,mBAAmB;AAC5B,SAASC,QAAQC,wBAAoC;AACrD,SAASC,kBAAkB;;AAI3B,IAAMC,cAAcC,EAAEC,OAAOC,YAAY;EACvCC,aAAa;AACf,CAAA;AASA,IAAA,mBAAe,MAAA;AACb,QAAMC,aAAaC,eAAe;IAChCC,IAAI;IACJC,cAAc;;;;;;IAMdC,QAAQC;IACRC,OAAO;MACLC,WAAW;QACTC,MAAM;QACNT,aAAa;;;QAGbK,QAAQR,EAAEa,OAAO;UACfC,UAAUd,EAAEC,OAAOC,YAAY;YAC7BC,aAAa;UACf,CAAA;UACAY,aAAaf,EAAEgB,SAAShB,EAAEC,MAAM,EAAEC,YAAY;YAC5CC,aAAa;UACf,CAAA;QACF,CAAA;QACAc,SAAS,OAAO,EAAEH,UAAUC,YAAW,GAAI,EAAEG,WAAU,MAAE;AACvDC,oBAAUD,YAAYE,OAAO,YAAA;;;;;;;;;AAC7BD,oBAAUD,YAAYG,UAAU,wBAAA;;;;;;;;;AAGhC,gBAAMb,SAAS,MAAMU,WAAWE,MAAME,GAAGC,eAAeC,MAAM;YAAEV;UAAS,CAAA,EAAGW,iBAAgB;AAC5F,cAAI,CAACjB,QAAQ;AACX,mBAAOkB,WAAWC,MAAM,qBAAqBb,QAAAA,EAAU;UACzD;AAEA,gBAAMc,SAASC,KACbC,aAAaC,aAAaC,QAAQ;YAChCZ,OAAOF,WAAWE;YAClBa,eAAenB;YACfoB,oBAAoBnB;UACtB,CAAA,GACAoB,MAAMC,YAAYC,WAAW;YAAEC,QAAQpB,WAAWE;UAAM,CAAA,CAAA;AAG1D,gBAAM,EAAEmB,MAAMC,MAAK,IAAK,MAAMtB,WAAWG,SAASO,MAAAA;AAClD,cAAI,CAACW,QAAQC,OAAO;AAClB,mBAAOd,WAAWC,MAAMa,OAAOC,WAAW,+BAAA;UAC5C;AAEA,iBAAOf,WAAWgB,QAAQC,sBAAsBJ,KAAKjC,EAAE,CAAA;QACzD;MACF,CAAA;MACAK,WAAW;QACTC,MAAM;QACNT,aAAa;QACbK,QAAQR,EAAEa,OAAO,CAAC,CAAA;QAClBI,SAAS,OAAO2B,QAAQ,EAAE1B,WAAU,MAAE;AACpCC,oBAAUD,YAAYE,OAAO,YAAA;;;;;;;;;AAC7B,gBAAMA,QAAQF,WAAWE;AACzB,gBAAM,EAAEyB,SAASC,OAAM,IAAK,MAAM1B,MAAME,GAAGE,MAAMuB,OAAOvC,OAAOC,UAAAA,CAAAA,EAAauC,IAAG;AAE/E,gBAAMC,YAAY,MAAMC,QAAQC,IAC9BL,OAAOM,IAAI,OAAOC,UAAAA;AAChB,kBAAMC,OAAO,MAAMD,MAAME,UAAUC,KAAAA;AACnC,mBAAO;cACLlD,IAAImD,iBAAiBJ,KAAAA;cACrBvC,UAAUwC,MAAM9B,MAAMkC;YACxB;UACF,CAAA,CAAA;AAGF,iBAAOhC,WAAWgB,QAAQO,SAAAA;QAC5B;MACF,CAAA;MACAtC,WAAW;QACTC,MAAM;QACNT,aAAa;QACbK,QAAQR,EAAEa,OAAO;UAAEP,IAAIP;QAAY,CAAA;QACnCkB,SAAS,OAAO,EAAEX,GAAE,GAAI,EAAEY,WAAU,MAAE;AACpCC,oBAAUD,YAAYE,OAAO,YAAA;;;;;;;;;AAC7B,gBAAMA,QAAQF,WAAWE;AACzB,gBAAM,EAAEyB,SAASC,OAAM,IAAK,MAAM1B,MAAME,GAAGE,MAAMuB,OAAOvC,OAAOC,UAAAA,CAAAA,EAAauC,IAAG;AAC/E,gBAAMK,QAAQP,OAAOa,KAAK,CAACN,WAAsBI,iBAAiBJ,MAAAA,MAAW/C,EAAAA;AAC7Ea,oBAAUyC,aAAanD,YAAY4C,KAAAA,GAAAA,QAAAA;;;;;;;;;AAEnC,gBAAMC,OAAO,MAAMD,MAAME,UAAUC,KAAAA;AACnCrC,oBAAUmC,MAAAA,QAAAA;;;;;;;;;AAEV,gBAAMxC,WAAWwC,KAAK9B,MAAMkC;AAC5B,gBAAMlD,SAAS,MAAMY,MAAME,GAAGC,eAAeC,MAAM;YAAEV;UAAS,CAAA,EAAGW,iBAAgB;AACjFN,oBAAUX,QAAAA,QAAAA;;;;;;;;;AAEV,iBAAOkB,WAAWgB,QAAQ;YACxBlC;YACAqD,aAAaR,MAAMS;YACnBC,YAAYT,KAAKU;UACnB,CAAA;QACF;MACF,CAAA;;EAEJ,CAAA;AAEA,SAAOC,YAAYC,aAAaC,oBAAoB/D,UAAAA;AACtD;",
|
|
6
|
+
"names": ["pipe", "Capabilities", "chain", "contributes", "createIntent", "defineArtifact", "defineTool", "ToolResult", "createArtifactElement", "isInstanceOf", "S", "invariant", "SpaceAction", "Filter", "fullyQualifiedId", "KanbanType", "QualifiedId", "S", "String", "annotations", "description", "definition", "defineArtifact", "id", "instructions", "schema", "KanbanType", "tools", "defineTool", "name", "Struct", "typename", "pivotColumn", "optional", "execute", "extensions", "invariant", "space", "dispatch", "db", "schemaRegistry", "query", "firstOrUndefined", "ToolResult", "Error", "intent", "pipe", "createIntent", "KanbanAction", "Create", "initialSchema", "initialPivotColumn", "chain", "SpaceAction", "AddObject", "target", "data", "error", "message", "Success", "createArtifactElement", "_input", "objects", "boards", "Filter", "run", "boardInfo", "Promise", "all", "map", "board", "view", "cardView", "load", "fullyQualifiedId", "type", "find", "isInstanceOf", "columnField", "columnFieldId", "viewFields", "fields", "contributes", "Capabilities", "ArtifactDefinition"]
|
|
7
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// packages/plugins/plugin-kanban/src/types.ts
|
|
2
|
+
import { TitleAnnotationId } from "@effect/schema/AST";
|
|
2
3
|
import { S } from "@dxos/echo-schema";
|
|
3
4
|
import { SpaceSchema } from "@dxos/react-client/echo";
|
|
4
5
|
import { KanbanType } from "@dxos/react-ui-kanban";
|
|
@@ -22,14 +23,26 @@ var meta = {
|
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
// packages/plugins/plugin-kanban/src/types.ts
|
|
26
|
+
var InitialSchemaAnnotationId = Symbol.for("@dxos/plugin-kanban/annotation/InitialSchema");
|
|
27
|
+
var InitialPivotColumnAnnotationId = Symbol.for("@dxos/plugin-kanban/annotation/InitialPivotColumn");
|
|
28
|
+
var CreateKanbanSchema = S.Struct({
|
|
29
|
+
name: S.optional(S.String),
|
|
30
|
+
initialSchema: S.optional(S.String.annotations({
|
|
31
|
+
[InitialSchemaAnnotationId]: true,
|
|
32
|
+
[TitleAnnotationId]: "Select card schema (leave empty to start fresh)"
|
|
33
|
+
})),
|
|
34
|
+
initialPivotColumn: S.optional(S.String.annotations({
|
|
35
|
+
[InitialPivotColumnAnnotationId]: true,
|
|
36
|
+
[TitleAnnotationId]: "Pivot column"
|
|
37
|
+
}))
|
|
38
|
+
});
|
|
25
39
|
var KanbanAction;
|
|
26
40
|
(function(KanbanAction2) {
|
|
27
41
|
const KANBAN_ACTION = `${KANBAN_PLUGIN}/action`;
|
|
28
42
|
class Create extends S.TaggedClass()(`${KANBAN_ACTION}/create`, {
|
|
29
|
-
input: S.Struct({
|
|
30
|
-
name: S.optional(S.String),
|
|
43
|
+
input: S.extend(S.Struct({
|
|
31
44
|
space: SpaceSchema
|
|
32
|
-
}),
|
|
45
|
+
}), CreateKanbanSchema),
|
|
33
46
|
output: S.Struct({
|
|
34
47
|
object: KanbanType
|
|
35
48
|
})
|
|
@@ -53,20 +66,29 @@ var KanbanAction;
|
|
|
53
66
|
}) {
|
|
54
67
|
}
|
|
55
68
|
KanbanAction2.DeleteCardField = DeleteCardField;
|
|
69
|
+
class DeleteCard extends S.TaggedClass()(`${KANBAN_ACTION}/delete-card`, {
|
|
70
|
+
input: S.Struct({
|
|
71
|
+
card: S.Any
|
|
72
|
+
}),
|
|
73
|
+
output: S.Void
|
|
74
|
+
}) {
|
|
75
|
+
}
|
|
76
|
+
KanbanAction2.DeleteCard = DeleteCard;
|
|
56
77
|
})(KanbanAction || (KanbanAction = {}));
|
|
57
78
|
var isKanban = (object) => object != null && object instanceof KanbanType;
|
|
58
|
-
var createKanban = async (
|
|
59
|
-
const { kanban } = await initializeKanban(
|
|
60
|
-
space
|
|
61
|
-
});
|
|
79
|
+
var createKanban = async (props) => {
|
|
80
|
+
const { kanban } = await initializeKanban(props);
|
|
62
81
|
return kanban;
|
|
63
82
|
};
|
|
64
83
|
|
|
65
84
|
export {
|
|
66
85
|
KANBAN_PLUGIN,
|
|
67
86
|
meta,
|
|
87
|
+
InitialSchemaAnnotationId,
|
|
88
|
+
InitialPivotColumnAnnotationId,
|
|
89
|
+
CreateKanbanSchema,
|
|
68
90
|
KanbanAction,
|
|
69
91
|
isKanban,
|
|
70
92
|
createKanban
|
|
71
93
|
};
|
|
72
|
-
//# sourceMappingURL=chunk-
|
|
94
|
+
//# sourceMappingURL=chunk-ILL6UKZE.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types.ts", "../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { TitleAnnotationId } from '@effect/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,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
+
CreateKanbanSchema,
|
|
2
3
|
KANBAN_PLUGIN,
|
|
3
4
|
KanbanAction,
|
|
4
5
|
meta
|
|
5
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ILL6UKZE.mjs";
|
|
6
7
|
|
|
7
8
|
// packages/plugins/plugin-kanban/src/KanbanPlugin.tsx
|
|
8
9
|
import { createIntent, defineModule, contributes, Capabilities, Events, definePlugin } from "@dxos/app-framework";
|
|
@@ -11,8 +12,9 @@ import { KanbanType as KanbanType2, translations as kanbanTranslations } from "@
|
|
|
11
12
|
|
|
12
13
|
// packages/plugins/plugin-kanban/src/capabilities/index.ts
|
|
13
14
|
import { lazy } from "@dxos/app-framework";
|
|
14
|
-
var
|
|
15
|
-
var
|
|
15
|
+
var Artifact = lazy(() => import("./artifact-FJ7K5S5Y.mjs"));
|
|
16
|
+
var IntentResolver = lazy(() => import("./intent-resolver-EOTUDRIU.mjs"));
|
|
17
|
+
var ReactSurface = lazy(() => import("./react-surface-SN2UKU4Y.mjs"));
|
|
16
18
|
|
|
17
19
|
// packages/plugins/plugin-kanban/src/translations.ts
|
|
18
20
|
import { KanbanType } from "@dxos/react-ui-kanban";
|
|
@@ -35,7 +37,8 @@ var translations_default = [
|
|
|
35
37
|
"delete column label": "Delete column",
|
|
36
38
|
"delete item label": "Delete card",
|
|
37
39
|
"create kanban label": "Create kanban",
|
|
38
|
-
"card field deleted label": "Card field deleted"
|
|
40
|
+
"card field deleted label": "Card field deleted",
|
|
41
|
+
"card deleted label": "Card deleted"
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
44
|
}
|
|
@@ -57,6 +60,7 @@ var KanbanPlugin = () => definePlugin(meta, [
|
|
|
57
60
|
activate: () => contributes(Capabilities.Metadata, {
|
|
58
61
|
id: KanbanType2.typename,
|
|
59
62
|
metadata: {
|
|
63
|
+
creationSchema: CreateKanbanSchema,
|
|
60
64
|
createObject: (props, options) => createIntent(KanbanAction.Create, {
|
|
61
65
|
...props,
|
|
62
66
|
space: options.space
|
|
@@ -87,6 +91,11 @@ var KanbanPlugin = () => definePlugin(meta, [
|
|
|
87
91
|
id: `${meta.id}/module/intent-resolver`,
|
|
88
92
|
activatesOn: Events.SetupIntents,
|
|
89
93
|
activate: IntentResolver
|
|
94
|
+
}),
|
|
95
|
+
defineModule({
|
|
96
|
+
id: `${meta.id}/module/artifact`,
|
|
97
|
+
activatesOn: Events.Startup,
|
|
98
|
+
activate: Artifact
|
|
90
99
|
})
|
|
91
100
|
]);
|
|
92
101
|
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:
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["createIntent", "defineModule", "contributes", "Capabilities", "Events", "definePlugin", "ClientCapabilities", "ClientEvents", "KanbanType", "translations", "kanbanTranslations", "lazy", "
|
|
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 { Artifact, IntentResolver, ReactSurface } from './capabilities';\nimport { KANBAN_PLUGIN, meta } from './meta';\nimport translations from './translations';\nimport { CreateKanbanSchema, type CreateKanbanType, 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 creationSchema: CreateKanbanSchema,\n createObject: (props: CreateKanbanType, 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 defineModule({\n id: `${meta.id}/module/artifact`,\n activatesOn: Events.Startup,\n activate: Artifact,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const Artifact = lazy(() => import('./artifact'));\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,oBAAoBC,oBAAoB;AAEjD,SAASC,cAAAA,aAAYC,gBAAgBC,0BAA0B;;;ACH/D,SAASC,YAAY;AAEd,IAAMC,WAAWC,KAAK,MAAM,OAAO,yBAAA,CAAA;AACnC,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;;;;AFjBK,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,gBAAgBC;QAChBC,cAAc,CAACC,OAAyBC,YACtCC,aAAaC,aAAaC,QAAQ;UAAE,GAAGJ;UAAOK,OAAOJ,QAAQI;QAAM,CAAA;QACrEC,aAAa;UAAC;UAA4B;YAAEC,IAAIC;UAAc;;QAC9DC,MAAM;MACR;IACF,CAAA;EACJ,CAAA;EACA5B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa2B,aAAaC;IAC1BzB,UAAU,MAAMC,YAAYyB,mBAAmBC,QAAQ;MAACnB;KAAW;EACrE,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO8B;IACpB5B,UAAU6B;EACZ,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;CACD;",
|
|
6
|
+
"names": ["createIntent", "defineModule", "contributes", "Capabilities", "Events", "definePlugin", "ClientCapabilities", "ClientEvents", "KanbanType", "translations", "kanbanTranslations", "lazy", "Artifact", "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", "creationSchema", "CreateKanbanSchema", "createObject", "props", "options", "createIntent", "KanbanAction", "Create", "space", "placeholder", "ns", "KANBAN_PLUGIN", "icon", "ClientEvents", "SetupSchema", "ClientCapabilities", "Schema", "SetupSurfaces", "ReactSurface", "SetupIntents", "IntentResolver", "Startup", "Artifact"]
|
|
7
7
|
}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
KANBAN_PLUGIN,
|
|
3
3
|
KanbanAction,
|
|
4
4
|
createKanban
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ILL6UKZE.mjs";
|
|
6
6
|
|
|
7
7
|
// packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts
|
|
8
8
|
import { contributes, Capabilities, createResolver } from "@dxos/app-framework";
|
|
@@ -13,9 +13,13 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/s
|
|
|
13
13
|
var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
|
|
14
14
|
createResolver({
|
|
15
15
|
intent: KanbanAction.Create,
|
|
16
|
-
resolve: async ({ space }) => ({
|
|
16
|
+
resolve: async ({ space, initialSchema, initialPivotColumn }) => ({
|
|
17
17
|
data: {
|
|
18
|
-
object: await createKanban(
|
|
18
|
+
object: await createKanban({
|
|
19
|
+
space,
|
|
20
|
+
initialSchema,
|
|
21
|
+
initialPivotColumn
|
|
22
|
+
})
|
|
19
23
|
}
|
|
20
24
|
})
|
|
21
25
|
}),
|
|
@@ -68,9 +72,42 @@ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
|
|
|
68
72
|
}, index);
|
|
69
73
|
}
|
|
70
74
|
}
|
|
75
|
+
}),
|
|
76
|
+
createResolver({
|
|
77
|
+
intent: KanbanAction.DeleteCard,
|
|
78
|
+
resolve: ({ card }, undo) => {
|
|
79
|
+
const space = getSpace(card);
|
|
80
|
+
invariant(space, void 0, {
|
|
81
|
+
F: __dxlog_file,
|
|
82
|
+
L: 49,
|
|
83
|
+
S: void 0,
|
|
84
|
+
A: [
|
|
85
|
+
"space",
|
|
86
|
+
""
|
|
87
|
+
]
|
|
88
|
+
});
|
|
89
|
+
if (!undo) {
|
|
90
|
+
space.db.remove(card);
|
|
91
|
+
return {
|
|
92
|
+
undoable: {
|
|
93
|
+
message: [
|
|
94
|
+
"card deleted label",
|
|
95
|
+
{
|
|
96
|
+
ns: KANBAN_PLUGIN
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
data: {
|
|
100
|
+
card
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
} else {
|
|
105
|
+
space.db.add(card);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
71
108
|
})
|
|
72
109
|
]);
|
|
73
110
|
export {
|
|
74
111
|
intent_resolver_default as default
|
|
75
112
|
};
|
|
76
|
-
//# sourceMappingURL=intent-resolver-
|
|
113
|
+
//# sourceMappingURL=intent-resolver-EOTUDRIU.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\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;;;;;;;;;AAEzB,YAAMC,SACJN,OAAOK,SAASE,UAAUC,SAASR,MAAAA,GAASS,GAAGC,eAAeC,UAAUX,OAAOK,SAASE,OAAOK,MAAMC,IAAI;AAC3GT,gBAAUE,QAAAA,QAAAA;;;;;;;;;AACV,YAAMQ,aAAa,IAAIC,eAAeT,QAAQN,OAAOK,SAASE,MAAM;AAEpE,UAAI,CAACJ,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,QAAQe,SAASmB,IAAAA;AACvBvB,gBAAUX,OAAAA,QAAAA;;;;;;;;;AAEV,UAAI,CAACU,MAAM;AACTV,cAAMgB,GAAGmB,OAAOD,IAAAA;AAChB,eAAO;UACLR,UAAU;YACRC,SAAS;cAAC;cAAsB;gBAAEC,IAAIC;cAAc;;YACpD1B,MAAM;cAAE+B;YAAK;UACf;QACF;MACF,OAAO;AACLlC,cAAMgB,GAAGoB,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", "schema", "target", "getSpace", "db", "schemaRegistry", "getSchema", "query", "type", "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":2257,"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/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5336},"packages/plugins/plugin-kanban/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-7PFZLUDZ.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/browser/intent-resolver-4SJJSDOD.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-5WOH5E2K.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":2943},"packages/plugins/plugin-kanban/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-kanban/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-7PFZLUDZ.mjs","kind":"import-statement"}],"exports":["KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/plugin-kanban/src/types.ts","inputs":{},"bytes":173},"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-4SJJSDOD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3190},"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-4SJJSDOD.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-7PFZLUDZ.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":2157},"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-5WOH5E2K.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13925},"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-5WOH5E2K.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-7PFZLUDZ.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":7396},"packages/plugins/plugin-kanban/dist/lib/browser/chunk-7PFZLUDZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4902},"packages/plugins/plugin-kanban/dist/lib/browser/chunk-7PFZLUDZ.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":564}},"bytes":2199}}}
|
|
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.ts":{"bytes":19315,"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":9926,"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":1297,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/capabilities/artifact.ts","kind":"dynamic-import","original":"./artifact"},{"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":8375,"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/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5908},"packages/plugins/plugin-kanban/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-ILL6UKZE.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/browser/artifact-FJ7K5S5Y.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-EOTUDRIU.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-SN2UKU4Y.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":1715},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytesInOutput":252},"packages/plugins/plugin-kanban/src/translations.ts":{"bytesInOutput":850},"packages/plugins/plugin-kanban/src/index.ts":{"bytesInOutput":0}},"bytes":3234},"packages/plugins/plugin-kanban/dist/lib/browser/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-kanban/dist/lib/browser/types.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-ILL6UKZE.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","InitialPivotColumnAnnotationId","InitialSchemaAnnotationId","KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/plugin-kanban/src/types.ts","inputs":{},"bytes":343},"packages/plugins/plugin-kanban/dist/lib/browser/artifact-FJ7K5S5Y.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8680},"packages/plugins/plugin-kanban/dist/lib/browser/artifact-FJ7K5S5Y.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-ILL6UKZE.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.ts","inputs":{"packages/plugins/plugin-kanban/src/capabilities/artifact.ts":{"bytesInOutput":5890}},"bytes":6098},"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-EOTUDRIU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4212},"packages/plugins/plugin-kanban/dist/lib/browser/intent-resolver-EOTUDRIU.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-ILL6UKZE.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":2659}},"bytes":2921},"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-SN2UKU4Y.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18304},"packages/plugins/plugin-kanban/dist/lib/browser/react-surface-SN2UKU4Y.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/browser/chunk-ILL6UKZE.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":9222},"packages/plugins/plugin-kanban/dist/lib/browser/chunk-ILL6UKZE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6722},"packages/plugins/plugin-kanban/dist/lib/browser/chunk-ILL6UKZE.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":3104}}}
|