@dxos/plugin-kanban 0.8.4-main.ae835ea → 0.8.4-main.bc2380dfbc
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/KanbanArticle-NEJ3LNBO.mjs +132 -0
- package/dist/lib/neutral/KanbanArticle-NEJ3LNBO.mjs.map +7 -0
- package/dist/lib/neutral/KanbanPlugin.mjs +36 -0
- package/dist/lib/neutral/KanbanPlugin.mjs.map +7 -0
- package/dist/lib/neutral/KanbanPlugin.node.mjs +27 -0
- package/dist/lib/neutral/KanbanPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/KanbanPlugin.workerd.mjs +21 -0
- package/dist/lib/neutral/KanbanPlugin.workerd.mjs.map +7 -0
- package/dist/lib/neutral/KanbanSettings-G6M47NSK.mjs +83 -0
- package/dist/lib/neutral/KanbanSettings-G6M47NSK.mjs.map +7 -0
- package/dist/lib/neutral/blueprint-definition-FHVIEKTQ.mjs +15 -0
- package/dist/lib/neutral/blueprint-definition-FHVIEKTQ.mjs.map +7 -0
- package/dist/lib/neutral/blueprints/index.mjs +8 -0
- package/dist/lib/neutral/capabilities/index.mjs +19 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-6FPBLOS3.mjs +8 -0
- package/dist/lib/neutral/chunk-6FPBLOS3.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-KDPM77BD.mjs +21 -0
- package/dist/lib/neutral/chunk-KDPM77BD.mjs.map +7 -0
- package/dist/lib/neutral/chunk-OQ72EEGU.mjs +254 -0
- package/dist/lib/neutral/chunk-OQ72EEGU.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ZTQW5KQS.mjs +26 -0
- package/dist/lib/neutral/chunk-ZTQW5KQS.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +243 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +11 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-object-DKBSI46K.mjs +40 -0
- package/dist/lib/neutral/create-object-DKBSI46K.mjs.map +7 -0
- package/dist/lib/neutral/delete-card-356CBACE.mjs +24 -0
- package/dist/lib/neutral/delete-card-356CBACE.mjs.map +7 -0
- package/dist/lib/neutral/delete-card-field-IRCZL2BR.mjs +42 -0
- package/dist/lib/neutral/delete-card-field-IRCZL2BR.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +432 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +34 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/migrations-IWBT35UT.mjs +31 -0
- package/dist/lib/neutral/migrations-IWBT35UT.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs +13 -0
- package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-QROEHBRW.mjs +93 -0
- package/dist/lib/neutral/react-surface-QROEHBRW.mjs.map +7 -0
- package/dist/lib/neutral/restore-card-P25Y4YSE.mjs +21 -0
- package/dist/lib/neutral/restore-card-P25Y4YSE.mjs.map +7 -0
- package/dist/lib/neutral/restore-card-field-NHR3R4XI.mjs +40 -0
- package/dist/lib/neutral/restore-card-field-NHR3R4XI.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +60 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +44 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +22 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/neutral/undo-mappings-6CHW6BOF.mjs +42 -0
- package/dist/lib/neutral/undo-mappings-6CHW6BOF.mjs.map +7 -0
- package/dist/types/src/KanbanPlugin.d.ts +3 -1
- package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
- package/dist/types/src/KanbanPlugin.node.d.ts +4 -0
- package/dist/types/src/KanbanPlugin.node.d.ts.map +1 -0
- package/dist/types/src/KanbanPlugin.test.d.ts +2 -0
- package/dist/types/src/KanbanPlugin.test.d.ts.map +1 -0
- package/dist/types/src/KanbanPlugin.workerd.d.ts +4 -0
- package/dist/types/src/KanbanPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/kanban-blueprint.d.ts +4 -0
- package/dist/types/src/blueprints/kanban-blueprint.d.ts.map +1 -0
- package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +13 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/migrations.d.ts +6 -0
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
- package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +37 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts +72 -0
- package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts +9 -0
- package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts +8 -0
- package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/context.d.ts +38 -0
- package/dist/types/src/components/KanbanBoard/context.d.ts.map +1 -0
- package/dist/types/src/components/KanbanBoard/index.d.ts +2 -0
- package/dist/types/src/components/KanbanBoard/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.d.ts +6 -0
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.stories.d.ts +79 -0
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanArticle/index.d.ts +2 -0
- package/dist/types/src/containers/KanbanArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanSettings/KanbanSettings.d.ts +13 -0
- package/dist/types/src/containers/KanbanSettings/KanbanSettings.d.ts.map +1 -0
- package/dist/types/src/containers/KanbanSettings/index.d.ts +2 -0
- package/dist/types/src/containers/KanbanSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +4 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +7 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -0
- package/dist/types/src/hooks/useEchoChangeCallback.d.ts +13 -0
- package/dist/types/src/hooks/useEchoChangeCallback.d.ts.map +1 -0
- package/dist/types/src/hooks/useItemsProjection.d.ts +10 -0
- package/dist/types/src/hooks/useItemsProjection.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanBoardModel.browser.test.d.ts +2 -0
- package/dist/types/src/hooks/useKanbanBoardModel.browser.test.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanBoardModel.d.ts +16 -0
- package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts +22 -0
- package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts.map +1 -0
- package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts +19 -0
- package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts.map +1 -0
- package/dist/types/src/hooks/useProjectionModel.d.ts +15 -0
- package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/delete-card-field.d.ts +5 -0
- package/dist/types/src/operations/delete-card-field.d.ts.map +1 -0
- package/dist/types/src/operations/delete-card.d.ts +5 -0
- package/dist/types/src/operations/delete-card.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +3 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/restore-card-field.d.ts +5 -0
- package/dist/types/src/operations/restore-card-field.d.ts.map +1 -0
- package/dist/types/src/operations/restore-card.d.ts +5 -0
- package/dist/types/src/operations/restore-card.d.ts.map +1 -0
- package/dist/types/src/playwright/board-manager.d.ts +5 -0
- package/dist/types/src/playwright/board-manager.d.ts.map +1 -0
- package/dist/types/src/playwright/playwright.config.d.ts +3 -0
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
- package/dist/types/src/playwright/smoke.spec.d.ts +2 -0
- package/dist/types/src/playwright/smoke.spec.d.ts.map +1 -0
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing/KanbanCardTileSimple.d.ts +7 -0
- package/dist/types/src/testing/KanbanCardTileSimple.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +50 -22
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Kanban.d.ts +108 -0
- package/dist/types/src/types/Kanban.d.ts.map +1 -0
- package/dist/types/src/types/KanbanOperation.d.ts +52 -0
- package/dist/types/src/types/KanbanOperation.d.ts.map +1 -0
- package/dist/types/src/types/constants.d.ts +6 -0
- package/dist/types/src/types/constants.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/migrations.test.d.ts +2 -0
- package/dist/types/src/types/migrations.test.d.ts.map +1 -0
- package/dist/types/src/types/schema.d.ts +17 -51
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +28 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util/arrangement.d.ts +72 -0
- package/dist/types/src/util/arrangement.d.ts.map +1 -0
- package/dist/types/src/util/arrangement.test.d.ts +2 -0
- package/dist/types/src/util/arrangement.test.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +2 -0
- package/dist/types/src/util/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +123 -57
- package/src/KanbanPlugin.node.ts +21 -0
- package/src/KanbanPlugin.test.ts +31 -0
- package/src/KanbanPlugin.tsx +28 -56
- package/src/KanbanPlugin.workerd.ts +18 -0
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/kanban-blueprint.ts +27 -0
- package/src/capabilities/artifact-definition.ts +116 -114
- package/src/capabilities/blueprint-definition.ts +13 -24
- package/src/capabilities/create-object.ts +40 -0
- package/src/capabilities/index.ts +12 -4
- package/src/capabilities/migrations.ts +35 -0
- package/src/capabilities/operation-handler.ts +14 -0
- package/src/capabilities/react-surface.tsx +77 -67
- package/src/capabilities/undo-mappings.ts +34 -0
- package/src/components/KanbanBoard/KanbanBoard.stories.tsx +145 -0
- package/src/components/KanbanBoard/KanbanBoard.tsx +164 -0
- package/src/components/KanbanBoard/KanbanCard.tsx +101 -0
- package/src/components/KanbanBoard/KanbanColumn.tsx +72 -0
- package/src/components/KanbanBoard/context.ts +54 -0
- package/src/components/KanbanBoard/index.ts +5 -0
- package/src/components/index.ts +1 -2
- package/src/containers/KanbanArticle/KanbanArticle.stories.tsx +276 -0
- package/src/containers/KanbanArticle/KanbanArticle.tsx +178 -0
- package/src/containers/KanbanArticle/index.ts +5 -0
- package/src/containers/KanbanSettings/KanbanSettings.tsx +94 -0
- package/src/containers/KanbanSettings/index.ts +5 -0
- package/src/containers/index.ts +8 -0
- package/src/hooks/index.ts +10 -0
- package/src/hooks/useEchoChangeCallback.ts +30 -0
- package/src/hooks/useItemsProjection.ts +44 -0
- package/src/hooks/useKanbanBoardModel.browser.test.ts +234 -0
- package/src/hooks/useKanbanBoardModel.ts +157 -0
- package/src/hooks/useKanbanColumnEventHandler.ts +106 -0
- package/src/hooks/useKanbanItemEventHandler.ts +133 -0
- package/src/hooks/useProjectionModel.ts +58 -0
- package/src/index.ts +3 -2
- package/src/meta.ts +3 -3
- package/src/operations/delete-card-field.ts +47 -0
- package/src/operations/delete-card.ts +23 -0
- package/src/operations/index.ts +10 -0
- package/src/operations/restore-card-field.ts +41 -0
- package/src/operations/restore-card.ts +21 -0
- package/src/playwright/board-manager.ts +13 -0
- package/src/playwright/playwright.config.ts +19 -0
- package/src/playwright/smoke.spec.ts +107 -0
- package/src/plugin.ts +11 -0
- package/src/testing/KanbanCardTileSimple.tsx +82 -0
- package/src/testing/index.ts +5 -0
- package/src/translations.ts +28 -20
- package/src/types/Kanban.ts +150 -0
- package/src/types/KanbanOperation.ts +67 -0
- package/src/types/constants.ts +9 -0
- package/src/types/index.ts +4 -0
- package/src/types/migrations.test.ts +82 -0
- package/src/types/schema.ts +32 -44
- package/src/types/types.ts +35 -0
- package/src/util/arrangement.test.ts +217 -0
- package/src/util/arrangement.ts +177 -0
- package/src/util/index.ts +5 -0
- package/dist/lib/browser/blueprint-definition-UYVX622Q.mjs +0 -28
- package/dist/lib/browser/blueprint-definition-UYVX622Q.mjs.map +0 -7
- package/dist/lib/browser/chunk-3UDST345.mjs +0 -85
- package/dist/lib/browser/chunk-3UDST345.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -105
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-VVBNS2TO.mjs +0 -111
- package/dist/lib/browser/intent-resolver-VVBNS2TO.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-FNXJ6VJX.mjs +0 -255
- package/dist/lib/browser/react-surface-FNXJ6VJX.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -11
- package/dist/lib/node-esm/blueprint-definition-42P47FUY.mjs +0 -30
- package/dist/lib/node-esm/blueprint-definition-42P47FUY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JBOARUAT.mjs +0 -87
- package/dist/lib/node-esm/chunk-JBOARUAT.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -106
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-ACN7UALP.mjs +0 -112
- package/dist/lib/node-esm/intent-resolver-ACN7UALP.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/react-surface-ZHYHCV5N.mjs +0 -256
- package/dist/lib/node-esm/react-surface-ZHYHCV5N.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -12
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/KanbanContainer.d.ts +0 -7
- package/dist/types/src/components/KanbanContainer.d.ts.map +0 -1
- package/dist/types/src/components/KanbanContainer.stories.d.ts +0 -41
- package/dist/types/src/components/KanbanContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/KanbanViewEditor.d.ts +0 -8
- package/dist/types/src/components/KanbanViewEditor.d.ts.map +0 -1
- package/src/capabilities/intent-resolver.ts +0 -71
- package/src/components/KanbanContainer.stories.tsx +0 -193
- package/src/components/KanbanContainer.tsx +0 -95
- package/src/components/KanbanViewEditor.tsx +0 -64
- /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type SelectOption } from '@dxos/echo/internal';
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
type ArrangedCards,
|
|
9
|
+
type BaseKanbanItem,
|
|
10
|
+
type ColumnStructure,
|
|
11
|
+
type Kanban,
|
|
12
|
+
UNCATEGORIZED_VALUE,
|
|
13
|
+
} from '#types';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Column order from a raw arrangement object (e.g. when working with arrangement only).
|
|
17
|
+
*
|
|
18
|
+
* @param arrangement - Optional arrangement; reads order.
|
|
19
|
+
* @returns Mutable copy of order array, or empty if arrangement/order missing or empty.
|
|
20
|
+
*/
|
|
21
|
+
export const getOrderFromArrangement = (arrangement?: Kanban.Arrangement): string[] => {
|
|
22
|
+
const order = arrangement?.order;
|
|
23
|
+
if (order != null && Array.isArray(order) && order.length > 0) {
|
|
24
|
+
return [...order];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return [];
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Per-column card id order and optional hidden flag from a raw arrangement object.
|
|
32
|
+
*
|
|
33
|
+
* Returns mutable copies so schema readonly does not leak to callers.
|
|
34
|
+
*
|
|
35
|
+
* @param arrangement - Optional arrangement; reads columns.
|
|
36
|
+
* @returns Map of column value → { ids, hidden? }; empty object if not set.
|
|
37
|
+
*/
|
|
38
|
+
export const getOrderByColumnFromArrangement = (
|
|
39
|
+
arrangement?: Kanban.Arrangement,
|
|
40
|
+
): Record<string, { ids: string[]; hidden?: boolean }> => {
|
|
41
|
+
const columns = arrangement?.columns;
|
|
42
|
+
if (columns != null && Object.keys(columns).length > 0) {
|
|
43
|
+
return Object.fromEntries(
|
|
44
|
+
Object.entries(columns).map(([key, entry]) => {
|
|
45
|
+
const rawIds = entry.ids;
|
|
46
|
+
const ids = Array.isArray(rawIds) ? [...rawIds] : [];
|
|
47
|
+
return [key, { ids, ...(entry.hidden !== undefined && { hidden: entry.hidden }) }];
|
|
48
|
+
}),
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return {};
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Builds the ordered list of columns (value + ids) for the board model.
|
|
57
|
+
*
|
|
58
|
+
* Column order: uncategorized first, then effectiveOrder, then any
|
|
59
|
+
* selectOption ids not yet in order. Each entry gets the ids from
|
|
60
|
+
* effectiveByColumn for that column (or empty). Columns whose entry has
|
|
61
|
+
* `hidden: true` are dropped from the result — currently only the
|
|
62
|
+
* "Uncategorized" column is toggleable from settings, but the filter is
|
|
63
|
+
* generic so any column can be hidden via the same flag.
|
|
64
|
+
*
|
|
65
|
+
* @param effectiveOrder - Column order from arrangement (or previous merge).
|
|
66
|
+
* @param effectiveByColumn - Per-column card id order + hidden flag from arrangement.
|
|
67
|
+
* @param selectOptions - Defines valid column ids; any missing from order are appended.
|
|
68
|
+
* @returns ColumnStructure array in display order.
|
|
69
|
+
*/
|
|
70
|
+
export const computeColumnStructure = (
|
|
71
|
+
effectiveOrder: string[],
|
|
72
|
+
effectiveByColumn: Record<string, { ids: string[]; hidden?: boolean }>,
|
|
73
|
+
selectOptions: SelectOption[],
|
|
74
|
+
): ColumnStructure[] => {
|
|
75
|
+
const order = [...effectiveOrder];
|
|
76
|
+
if (!order.includes(UNCATEGORIZED_VALUE)) {
|
|
77
|
+
order.unshift(UNCATEGORIZED_VALUE);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
for (const opt of selectOptions) {
|
|
81
|
+
if (opt.id !== UNCATEGORIZED_VALUE && !order.includes(opt.id)) {
|
|
82
|
+
order.push(opt.id);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return order
|
|
87
|
+
.filter((columnValue) => effectiveByColumn[columnValue]?.hidden !== true)
|
|
88
|
+
.map((columnValue) => ({
|
|
89
|
+
columnValue,
|
|
90
|
+
ids: effectiveByColumn[columnValue]?.ids ?? [],
|
|
91
|
+
}));
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Orders items for a single column: partition by saved order vs new, sort by orderMap, concatenate.
|
|
96
|
+
* Uses explicit null/undefined check for itemColumn so empty string is handled consistently.
|
|
97
|
+
*
|
|
98
|
+
* @param items - All items to filter.
|
|
99
|
+
* @param ids - Saved id order for this column.
|
|
100
|
+
* @param columnValue - Column id (e.g. UNCATEGORIZED_VALUE or option id).
|
|
101
|
+
* @param pivotPath - Item property key for column value (undefined = no pivot).
|
|
102
|
+
* @param validColumnValues - Set of valid option ids.
|
|
103
|
+
* @returns Items belonging to this column in display order.
|
|
104
|
+
*/
|
|
105
|
+
export const orderItemsInColumn = <T extends BaseKanbanItem>(
|
|
106
|
+
items: T[],
|
|
107
|
+
ids: string[],
|
|
108
|
+
columnValue: string,
|
|
109
|
+
pivotPath: string | undefined,
|
|
110
|
+
validColumnValues: Set<string>,
|
|
111
|
+
): T[] => {
|
|
112
|
+
const orderMap = new Map(ids.map((id, index) => [id, index]));
|
|
113
|
+
const cardsWithExistingOrder: T[] = [];
|
|
114
|
+
const newCards: T[] = [];
|
|
115
|
+
|
|
116
|
+
for (const item of items) {
|
|
117
|
+
const itemColumn = pivotPath !== undefined ? (item[pivotPath as keyof T] as string | undefined) : undefined;
|
|
118
|
+
const isValidColumn = itemColumn != null && validColumnValues.has(itemColumn);
|
|
119
|
+
const belongsInColumn = columnValue === UNCATEGORIZED_VALUE ? !isValidColumn : itemColumn === columnValue;
|
|
120
|
+
|
|
121
|
+
if (belongsInColumn) {
|
|
122
|
+
(orderMap.has(item.id) ? cardsWithExistingOrder : newCards).push(item);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
cardsWithExistingOrder.sort((a, b) => {
|
|
127
|
+
const indexA = orderMap.get(a.id) ?? Infinity;
|
|
128
|
+
const indexB = orderMap.get(b.id) ?? Infinity;
|
|
129
|
+
return indexA - indexB;
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
return [...cardsWithExistingOrder, ...newCards];
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Computes the full item arrangement for the board: one entry per column with items in display order.
|
|
137
|
+
*
|
|
138
|
+
* Columns follow selectOptions order (uncategorized first, then each option). Within each column,
|
|
139
|
+
* cards that appear in the kanban's saved arrangement keep that order; any other cards in that
|
|
140
|
+
* column are appended after them.
|
|
141
|
+
*
|
|
142
|
+
* @param object - Kanban object whose arrangement holds per-column id order.
|
|
143
|
+
* @param items - All items to distribute into columns.
|
|
144
|
+
* @param pivotPath - Optional item property key whose value is the column id (e.g. status, priority).
|
|
145
|
+
* @param selectOptions - Defines valid column ids and their display order.
|
|
146
|
+
* @returns Array of { columnValue, cards } in column order, with cards ordered as above.
|
|
147
|
+
*/
|
|
148
|
+
export const computeItemArrangement = <T extends BaseKanbanItem = BaseKanbanItem>({
|
|
149
|
+
object,
|
|
150
|
+
items,
|
|
151
|
+
pivotPath,
|
|
152
|
+
selectOptions,
|
|
153
|
+
}: {
|
|
154
|
+
object: Kanban.Kanban;
|
|
155
|
+
items: T[];
|
|
156
|
+
pivotPath?: string;
|
|
157
|
+
selectOptions: SelectOption[];
|
|
158
|
+
}): ArrangedCards<T> => {
|
|
159
|
+
const validColumnValues = new Set(selectOptions.map((opt) => opt.id));
|
|
160
|
+
const byColumn = getOrderByColumnFromArrangement(object?.arrangement);
|
|
161
|
+
|
|
162
|
+
// Column order: uncategorized first, then each select option (skip
|
|
163
|
+
// uncategorized if duplicated). Columns whose arrangement entry has
|
|
164
|
+
// `hidden: true` are dropped — same generic hide-by-column flag used
|
|
165
|
+
// by `computeColumnStructure`.
|
|
166
|
+
const columnEntries = [
|
|
167
|
+
{ columnValue: UNCATEGORIZED_VALUE, ids: byColumn[UNCATEGORIZED_VALUE]?.ids ?? [] },
|
|
168
|
+
...selectOptions
|
|
169
|
+
.filter((opt) => opt.id !== UNCATEGORIZED_VALUE)
|
|
170
|
+
.map((opt) => ({ columnValue: opt.id, ids: byColumn[opt.id]?.ids ?? [] })),
|
|
171
|
+
].filter((entry) => byColumn[entry.columnValue]?.hidden !== true);
|
|
172
|
+
|
|
173
|
+
return columnEntries.map(({ columnValue, ids }) => ({
|
|
174
|
+
columnValue,
|
|
175
|
+
cards: orderItemsInColumn(items, ids, columnValue, pivotPath, validColumnValues),
|
|
176
|
+
}));
|
|
177
|
+
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// src/capabilities/blueprint-definition.ts
|
|
2
|
-
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
3
|
-
import { Blueprint, Template } from "@dxos/blueprints";
|
|
4
|
-
import { trim } from "@dxos/util";
|
|
5
|
-
var functions = [];
|
|
6
|
-
var tools = [];
|
|
7
|
-
var blueprint_definition_default = (() => {
|
|
8
|
-
return [
|
|
9
|
-
contributes(Capabilities.Functions, functions),
|
|
10
|
-
contributes(Capabilities.BlueprintDefinition, Blueprint.make({
|
|
11
|
-
key: "dxos.org/blueprint/kanban",
|
|
12
|
-
name: "Kanban",
|
|
13
|
-
tools: Blueprint.toolDefinitions({
|
|
14
|
-
functions,
|
|
15
|
-
tools
|
|
16
|
-
}),
|
|
17
|
-
instructions: Template.make({
|
|
18
|
-
source: trim`
|
|
19
|
-
You can create and update kanban boards to show data in sorted columns defined by schema.
|
|
20
|
-
`
|
|
21
|
-
})
|
|
22
|
-
}))
|
|
23
|
-
];
|
|
24
|
-
});
|
|
25
|
-
export {
|
|
26
|
-
blueprint_definition_default as default
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=blueprint-definition-UYVX622Q.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/blueprint-definition.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nconst functions: FunctionDefinition[] = [];\nconst tools: string[] = [];\n\nexport default () => {\n return [\n contributes(Capabilities.Functions, functions),\n contributes(\n Capabilities.BlueprintDefinition,\n Blueprint.make({\n key: 'dxos.org/blueprint/kanban',\n name: 'Kanban',\n tools: Blueprint.toolDefinitions({ functions, tools }),\n instructions: Template.make({\n source: trim`\n You can create and update kanban boards to show data in sorted columns defined by schema.\n `,\n }),\n }),\n ),\n ];\n};\n"],
|
|
5
|
-
"mappings": ";AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,WAAWC,gBAAgB;AAEpC,SAASC,YAAY;AAErB,IAAMC,YAAkC,CAAA;AACxC,IAAMC,QAAkB,CAAA;AAExB,IAAA,gCAAe,MAAA;AACb,SAAO;IACLC,YAAYC,aAAaC,WAAWJ,SAAAA;IACpCE,YACEC,aAAaE,qBACbC,UAAUC,KAAK;MACbC,KAAK;MACLC,MAAM;MACNR,OAAOK,UAAUI,gBAAgB;QAAEV;QAAWC;MAAM,CAAA;MACpDU,cAAcC,SAASL,KAAK;QAC1BM,QAAQC;;;MAGV,CAAA;IACF,CAAA,CAAA;;AAGN;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "Blueprint", "Template", "trim", "functions", "tools", "contributes", "Capabilities", "Functions", "BlueprintDefinition", "Blueprint", "make", "key", "name", "toolDefinitions", "instructions", "Template", "source", "trim"]
|
|
7
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
// src/types/schema.ts
|
|
2
|
-
import * as Schema from "effect/Schema";
|
|
3
|
-
import { SpaceSchema } from "@dxos/react-client/echo";
|
|
4
|
-
import { DataType, FieldSchema, TypenameAnnotationId } from "@dxos/schema";
|
|
5
|
-
|
|
6
|
-
// src/meta.ts
|
|
7
|
-
import { trim } from "@dxos/util";
|
|
8
|
-
var meta = {
|
|
9
|
-
id: "dxos.org/plugin/kanban",
|
|
10
|
-
name: "Kanban",
|
|
11
|
-
description: trim`
|
|
12
|
-
Visual project management using customizable kanban boards to track workflow progress.
|
|
13
|
-
Organize table data into columns, drag and drop items between stages, and trigger automations based on status changes.
|
|
14
|
-
`,
|
|
15
|
-
icon: "ph--kanban--regular",
|
|
16
|
-
iconHue: "green",
|
|
17
|
-
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-kanban",
|
|
18
|
-
screenshots: [
|
|
19
|
-
"https://dxos.network/plugin-details-kanban-dark.png"
|
|
20
|
-
]
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
// src/types/schema.ts
|
|
24
|
-
var PivotColumnAnnotationId = Symbol.for("@dxos/plugin-kanban/annotation/PivotColumn");
|
|
25
|
-
var CreateKanbanSchema = Schema.Struct({
|
|
26
|
-
name: Schema.optional(Schema.String),
|
|
27
|
-
typename: Schema.optional(Schema.String.annotations({
|
|
28
|
-
[TypenameAnnotationId]: [
|
|
29
|
-
"used-static",
|
|
30
|
-
"dynamic"
|
|
31
|
-
],
|
|
32
|
-
title: "Select card record type (leave empty to start fresh)"
|
|
33
|
-
})),
|
|
34
|
-
initialPivotColumn: Schema.optional(Schema.String.annotations({
|
|
35
|
-
[PivotColumnAnnotationId]: true,
|
|
36
|
-
title: "Pivot column"
|
|
37
|
-
}))
|
|
38
|
-
});
|
|
39
|
-
(function(KanbanAction2) {
|
|
40
|
-
const KANBAN_ACTION = `${meta.id}/action`;
|
|
41
|
-
class Create extends Schema.TaggedClass()(`${KANBAN_ACTION}/create`, {
|
|
42
|
-
input: Schema.extend(Schema.Struct({
|
|
43
|
-
space: SpaceSchema
|
|
44
|
-
}), CreateKanbanSchema),
|
|
45
|
-
output: Schema.Struct({
|
|
46
|
-
object: DataType.View
|
|
47
|
-
})
|
|
48
|
-
}) {
|
|
49
|
-
}
|
|
50
|
-
KanbanAction2.Create = Create;
|
|
51
|
-
class DeleteCardField extends Schema.TaggedClass()(`${KANBAN_ACTION}/delete-card-field`, {
|
|
52
|
-
input: Schema.Struct({
|
|
53
|
-
view: DataType.View,
|
|
54
|
-
fieldId: Schema.String,
|
|
55
|
-
// TODO(wittjosiah): Separate fields for undo data?
|
|
56
|
-
deletionData: Schema.optional(Schema.Struct({
|
|
57
|
-
field: FieldSchema,
|
|
58
|
-
// TODO(wittjosiah): This creates a type error.
|
|
59
|
-
// props: PropertySchema,
|
|
60
|
-
props: Schema.Any,
|
|
61
|
-
index: Schema.Number
|
|
62
|
-
}))
|
|
63
|
-
}),
|
|
64
|
-
output: Schema.Void
|
|
65
|
-
}) {
|
|
66
|
-
}
|
|
67
|
-
KanbanAction2.DeleteCardField = DeleteCardField;
|
|
68
|
-
class DeleteCard extends Schema.TaggedClass()(`${KANBAN_ACTION}/delete-card`, {
|
|
69
|
-
input: Schema.Struct({
|
|
70
|
-
card: Schema.Any
|
|
71
|
-
}),
|
|
72
|
-
output: Schema.Void
|
|
73
|
-
}) {
|
|
74
|
-
}
|
|
75
|
-
KanbanAction2.DeleteCard = DeleteCard;
|
|
76
|
-
})(KanbanAction || (KanbanAction = {}));
|
|
77
|
-
var KanbanAction;
|
|
78
|
-
|
|
79
|
-
export {
|
|
80
|
-
meta,
|
|
81
|
-
PivotColumnAnnotationId,
|
|
82
|
-
CreateKanbanSchema,
|
|
83
|
-
KanbanAction
|
|
84
|
-
};
|
|
85
|
-
//# sourceMappingURL=chunk-3UDST345.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/schema.ts", "../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { DataType, FieldSchema, TypenameAnnotationId } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\n/**\n * Kanban data model.\n * A Kanban board is a collection of columns, each of which contains a collection of items.\n * The layout of columns and items is controlled by models.\n * The underlying data model may be represented by direct object relationships\n * (e.g., a column object containing an array of ordered items) or projections constructed\n * by the model (e.g., a query of items based on metadata within a column object).\n */\n\n// TODO(wittjosiah): Factor out?\nexport const PivotColumnAnnotationId = Symbol.for('@dxos/plugin-kanban/annotation/PivotColumn');\n\nexport const CreateKanbanSchema = Schema.Struct({\n name: Schema.optional(Schema.String),\n typename: Schema.optional(\n Schema.String.annotations({\n [TypenameAnnotationId]: ['used-static', 'dynamic'],\n title: 'Select card record type (leave empty to start fresh)',\n }),\n ),\n initialPivotColumn: Schema.optional(\n Schema.String.annotations({\n [PivotColumnAnnotationId]: true,\n title: 'Pivot column',\n }),\n ),\n});\n\nexport namespace KanbanAction {\n const KANBAN_ACTION = `${meta.id}/action`;\n\n export class Create extends Schema.TaggedClass<Create>()(`${KANBAN_ACTION}/create`, {\n input: Schema.extend(Schema.Struct({ space: SpaceSchema }), CreateKanbanSchema),\n output: Schema.Struct({\n object: DataType.View,\n }),\n }) {}\n\n export class DeleteCardField extends Schema.TaggedClass<DeleteCardField>()(`${KANBAN_ACTION}/delete-card-field`, {\n input: Schema.Struct({\n view: DataType.View,\n fieldId: Schema.String,\n // TODO(wittjosiah): Separate fields for undo data?\n deletionData: Schema.optional(\n Schema.Struct({\n field: FieldSchema,\n // TODO(wittjosiah): This creates a type error.\n // props: PropertySchema,\n props: Schema.Any,\n index: Schema.Number,\n }),\n ),\n }),\n output: Schema.Void,\n }) {}\n\n export class DeleteCard extends Schema.TaggedClass<DeleteCard>()(`${KANBAN_ACTION}/delete-card`, {\n input: Schema.Struct({\n card: Schema.Any, // The card object to delete\n }),\n output: Schema.Void,\n }) {}\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/kanban',\n name: 'Kanban',\n description: trim`\n Visual project management using customizable kanban boards to track workflow progress.\n Organize table data into columns, drag and drop items between stages, and trigger automations based on status changes.\n `,\n icon: 'ph--kanban--regular',\n iconHue: 'green',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-kanban',\n screenshots: ['https://dxos.network/plugin-details-kanban-dark.png'],\n};\n"],
|
|
5
|
-
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,mBAAmB;AAC5B,SAASC,UAAUC,aAAaC,4BAA4B;;;ACF5D,SAASC,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa;IAAC;;AAChB;;;ADGO,IAAMC,0BAA0BC,OAAOC,IAAI,4CAAA;AAE3C,IAAMC,qBAA4BC,cAAO;EAC9CC,MAAaC,gBAAgBC,aAAM;EACnCC,UAAiBF,gBACRC,cAAOE,YAAY;IACxB,CAACC,oBAAAA,GAAuB;MAAC;MAAe;;IACxCC,OAAO;EACT,CAAA,CAAA;EAEFC,oBAA2BN,gBAClBC,cAAOE,YAAY;IACxB,CAACT,uBAAAA,GAA0B;IAC3BW,OAAO;EACT,CAAA,CAAA;AAEJ,CAAA;UAEiBE,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,KAAKC,EAAE;EAEzB,MAAMC,eAAsBC,mBAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAClFK,OAAcC,cAAchB,cAAO;MAAEiB,OAAOC;IAAY,CAAA,GAAInB,kBAAAA;IAC5DoB,QAAenB,cAAO;MACpBoB,QAAQC,SAASC;IACnB,CAAA;EACF,CAAA,EAAA;EAAI;gBALST,SAAAA;EAON,MAAMU,wBAA+BT,mBAAW,EAAoB,GAAGJ,aAAAA,sBAAmC;IAC/GK,OAAcf,cAAO;MACnBwB,MAAMH,SAASC;MACfG,SAAgBtB;;MAEhBuB,cAAqBxB,gBACZF,cAAO;QACZ2B,OAAOC;;;QAGPC,OAAcC;QACdC,OAAcC;MAChB,CAAA,CAAA;IAEJ,CAAA;IACAb,QAAec;EACjB,CAAA,EAAA;EAAI;gBAhBSV,kBAAAA;EAkBN,MAAMW,mBAA0BpB,mBAAW,EAAe,GAAGJ,aAAAA,gBAA6B;IAC/FK,OAAcf,cAAO;MACnBmC,MAAaL;IACf,CAAA;IACAX,QAAec;EACjB,CAAA,EAAA;EAAI;gBALSC,aAAAA;AAMf,GAlCiBzB,iBAAAA,eAAAA,CAAAA,EAAAA;;",
|
|
6
|
-
"names": ["Schema", "SpaceSchema", "DataType", "FieldSchema", "TypenameAnnotationId", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "PivotColumnAnnotationId", "Symbol", "for", "CreateKanbanSchema", "Struct", "name", "optional", "String", "typename", "annotations", "TypenameAnnotationId", "title", "initialPivotColumn", "KanbanAction", "KANBAN_ACTION", "meta", "id", "Create", "TaggedClass", "input", "extend", "space", "SpaceSchema", "output", "object", "DataType", "View", "DeleteCardField", "view", "fieldId", "deletionData", "field", "FieldSchema", "props", "Any", "index", "Number", "Void", "DeleteCard", "card"]
|
|
7
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CreateKanbanSchema,
|
|
3
|
-
KanbanAction,
|
|
4
|
-
meta
|
|
5
|
-
} from "./chunk-3UDST345.mjs";
|
|
6
|
-
|
|
7
|
-
// src/KanbanPlugin.tsx
|
|
8
|
-
import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
|
|
9
|
-
import { ClientEvents } from "@dxos/plugin-client";
|
|
10
|
-
import { SpaceCapabilities } from "@dxos/plugin-space";
|
|
11
|
-
import { defineObjectForm } from "@dxos/plugin-space/types";
|
|
12
|
-
import { translations as kanbanTranslations } from "@dxos/react-ui-kanban";
|
|
13
|
-
import { Kanban as Kanban2 } from "@dxos/react-ui-kanban/types";
|
|
14
|
-
|
|
15
|
-
// src/capabilities/index.ts
|
|
16
|
-
import { lazy } from "@dxos/app-framework";
|
|
17
|
-
var BlueprintDefinition = lazy(() => import("./blueprint-definition-UYVX622Q.mjs"));
|
|
18
|
-
var IntentResolver = lazy(() => import("./intent-resolver-VVBNS2TO.mjs"));
|
|
19
|
-
var ReactSurface = lazy(() => import("./react-surface-FNXJ6VJX.mjs"));
|
|
20
|
-
|
|
21
|
-
// src/translations.ts
|
|
22
|
-
import { Kanban } from "@dxos/react-ui-kanban/types";
|
|
23
|
-
var translations = [
|
|
24
|
-
{
|
|
25
|
-
"en-US": {
|
|
26
|
-
[Kanban.Kanban.typename]: {
|
|
27
|
-
"typename label": "Kanban",
|
|
28
|
-
"typename label_zero": "Kanbans",
|
|
29
|
-
"typename label_one": "Kanban",
|
|
30
|
-
"typename label_other": "Kanbans",
|
|
31
|
-
"object name placeholder": "New kanban"
|
|
32
|
-
},
|
|
33
|
-
[meta.id]: {
|
|
34
|
-
"plugin name": "Kanban",
|
|
35
|
-
"kanban title label": "Title",
|
|
36
|
-
"column title label": "Column title",
|
|
37
|
-
"column title placeholder": "New column",
|
|
38
|
-
"item title label": "Item title",
|
|
39
|
-
"item title placeholder": "New item",
|
|
40
|
-
"add column label": "Add column",
|
|
41
|
-
"add item label": "Add card",
|
|
42
|
-
"delete column label": "Delete column",
|
|
43
|
-
"delete item label": "Delete card",
|
|
44
|
-
"card field deleted label": "Card field deleted",
|
|
45
|
-
"card deleted label": "Card deleted"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
];
|
|
50
|
-
|
|
51
|
-
// src/KanbanPlugin.tsx
|
|
52
|
-
var KanbanPlugin = definePlugin(meta, () => [
|
|
53
|
-
defineModule({
|
|
54
|
-
id: `${meta.id}/module/translations`,
|
|
55
|
-
activatesOn: Events.SetupTranslations,
|
|
56
|
-
activate: () => contributes(Capabilities.Translations, [
|
|
57
|
-
...translations,
|
|
58
|
-
...kanbanTranslations
|
|
59
|
-
])
|
|
60
|
-
}),
|
|
61
|
-
defineModule({
|
|
62
|
-
id: `${meta.id}/module/metadata`,
|
|
63
|
-
activatesOn: Events.SetupMetadata,
|
|
64
|
-
activate: () => contributes(Capabilities.Metadata, {
|
|
65
|
-
id: Kanban2.Kanban.typename,
|
|
66
|
-
metadata: {
|
|
67
|
-
icon: "ph--kanban--regular",
|
|
68
|
-
iconHue: "green"
|
|
69
|
-
}
|
|
70
|
-
})
|
|
71
|
-
}),
|
|
72
|
-
defineModule({
|
|
73
|
-
id: `${meta.id}/module/object-form`,
|
|
74
|
-
activatesOn: ClientEvents.SetupSchema,
|
|
75
|
-
activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
|
|
76
|
-
objectSchema: Kanban2.Kanban,
|
|
77
|
-
formSchema: CreateKanbanSchema,
|
|
78
|
-
hidden: true,
|
|
79
|
-
getIntent: (props, options) => createIntent(KanbanAction.Create, {
|
|
80
|
-
...props,
|
|
81
|
-
space: options.space
|
|
82
|
-
})
|
|
83
|
-
}))
|
|
84
|
-
}),
|
|
85
|
-
defineModule({
|
|
86
|
-
id: `${meta.id}/module/react-surface`,
|
|
87
|
-
activatesOn: Events.SetupReactSurface,
|
|
88
|
-
activate: ReactSurface
|
|
89
|
-
}),
|
|
90
|
-
defineModule({
|
|
91
|
-
id: `${meta.id}/module/intent-resolver`,
|
|
92
|
-
activatesOn: Events.SetupIntentResolver,
|
|
93
|
-
activate: IntentResolver
|
|
94
|
-
}),
|
|
95
|
-
defineModule({
|
|
96
|
-
id: `${meta.id}/module/blueprint`,
|
|
97
|
-
activatesOn: Events.SetupArtifactDefinition,
|
|
98
|
-
activate: BlueprintDefinition
|
|
99
|
-
})
|
|
100
|
-
]);
|
|
101
|
-
export {
|
|
102
|
-
KanbanPlugin,
|
|
103
|
-
meta
|
|
104
|
-
};
|
|
105
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/KanbanPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, 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 { translations as kanbanTranslations } from '@dxos/react-ui-kanban';\nimport { Kanban } from '@dxos/react-ui-kanban/types';\n\nimport { BlueprintDefinition, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { CreateKanbanSchema, KanbanAction } from './types';\n\nexport const KanbanPlugin = 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: Kanban.Kanban.typename,\n metadata: {\n icon: 'ph--kanban--regular',\n iconHue: 'green',\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: Kanban.Kanban,\n formSchema: CreateKanbanSchema,\n hidden: true,\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/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = lazy(() => import('./blueprint-definition'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { Kanban } from '@dxos/react-ui-kanban/types';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [Kanban.Kanban.typename]: {\n 'typename label': 'Kanban',\n 'typename label_zero': 'Kanbans',\n 'typename label_one': 'Kanban',\n 'typename label_other': 'Kanbans',\n 'object name placeholder': 'New kanban',\n },\n [meta.id]: {\n 'plugin name': 'Kanban',\n 'kanban title label': 'Title',\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 'card field deleted label': 'Card field deleted',\n 'card deleted label': 'Card deleted',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAIA,SAASA,cAAcC,QAAQC,aAAaC,cAAcC,cAAcC,oBAAoB;AAC5F,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,gBAAgBC,0BAA0B;AACnD,SAASC,UAAAA,eAAc;;;ACLvB,SAASC,YAAY;AAEd,IAAMC,sBAAsBC,KAAK,MAAM,OAAO,qCAAA,CAAA;AAC9C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACH9C,SAASG,cAAc;AAIhB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,OAAOA,OAAOC,QAAQ,GAAG;QACxB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;MAC7B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,sBAAsB;QACtB,sBAAsB;QACtB,4BAA4B;QAC5B,oBAAoB;QACpB,0BAA0B;QAC1B,oBAAoB;QACpB,kBAAkB;QAClB,uBAAuB;QACvB,qBAAqB;QACrB,4BAA4B;QAC5B,sBAAsB;MACxB;IACF;EACF;;;;AFlBK,IAAMC,eAAeC,aAAaC,MAAM,MAAM;EACnDC,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,QAAOA,OAAOC;MAClBC,UAAU;QACRC,MAAM;QACNC,SAAS;MACX;IACF,CAAA;EACJ,CAAA;EACAjB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAagB,aAAaC;IAC1Bd,UAAU,MACRC,YACEc,kBAAkBC,YAClBC,iBAAiB;MACfC,cAAcV,QAAOA;MACrBW,YAAYC;MACZC,QAAQ;MACRC,WAAW,CAACC,OAAOC,YAAYC,aAAaC,aAAaC,QAAQ;QAAE,GAAGJ;QAAOK,OAAOJ,QAAQI;MAAM,CAAA;IACpG,CAAA,CAAA;EAEN,CAAA;EACAjC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO+B;IACpB7B,UAAU8B;EACZ,CAAA;EACAnC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOiC;IACpB/B,UAAUgC;EACZ,CAAA;EACArC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOmC;IACpBjC,UAAUkC;EACZ,CAAA;CACD;",
|
|
6
|
-
"names": ["Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "translations", "kanbanTranslations", "Kanban", "lazy", "BlueprintDefinition", "lazy", "IntentResolver", "ReactSurface", "Kanban", "translations", "Kanban", "typename", "meta", "id", "KanbanPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "kanbanTranslations", "SetupMetadata", "Metadata", "Kanban", "typename", "metadata", "icon", "iconHue", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "CreateKanbanSchema", "hidden", "getIntent", "props", "options", "createIntent", "KanbanAction", "Create", "space", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupArtifactDefinition", "BlueprintDefinition"]
|
|
7
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
KanbanAction,
|
|
3
|
-
meta
|
|
4
|
-
} from "./chunk-3UDST345.mjs";
|
|
5
|
-
|
|
6
|
-
// src/capabilities/intent-resolver.ts
|
|
7
|
-
import { Capabilities, contributes, createResolver } from "@dxos/app-framework";
|
|
8
|
-
import { invariant } from "@dxos/invariant";
|
|
9
|
-
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
10
|
-
import { getSpace } from "@dxos/react-client/echo";
|
|
11
|
-
import { Kanban } from "@dxos/react-ui-kanban/types";
|
|
12
|
-
import { ProjectionModel, getTypenameFromQuery } from "@dxos/schema";
|
|
13
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts";
|
|
14
|
-
var intent_resolver_default = ((context) => contributes(Capabilities.IntentResolver, [
|
|
15
|
-
createResolver({
|
|
16
|
-
intent: KanbanAction.Create,
|
|
17
|
-
resolve: async ({ space, name, typename, initialPivotColumn }) => {
|
|
18
|
-
const client = context.getCapability(ClientCapabilities.Client);
|
|
19
|
-
const { view } = await Kanban.makeView({
|
|
20
|
-
client,
|
|
21
|
-
space,
|
|
22
|
-
name,
|
|
23
|
-
typename,
|
|
24
|
-
pivotFieldName: initialPivotColumn
|
|
25
|
-
});
|
|
26
|
-
return {
|
|
27
|
-
data: {
|
|
28
|
-
object: view
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}),
|
|
33
|
-
createResolver({
|
|
34
|
-
intent: KanbanAction.DeleteCardField,
|
|
35
|
-
resolve: async ({ view, fieldId, deletionData }, undo) => {
|
|
36
|
-
const schema = getSpace(view)?.db.schemaRegistry.getSchema(getTypenameFromQuery(view.query.ast));
|
|
37
|
-
invariant(schema, void 0, {
|
|
38
|
-
F: __dxlog_file,
|
|
39
|
-
L: 35,
|
|
40
|
-
S: void 0,
|
|
41
|
-
A: [
|
|
42
|
-
"schema",
|
|
43
|
-
""
|
|
44
|
-
]
|
|
45
|
-
});
|
|
46
|
-
const projection = new ProjectionModel(schema.jsonSchema, view.projection);
|
|
47
|
-
if (!undo) {
|
|
48
|
-
const { deleted, index } = projection.deleteFieldProjection(fieldId);
|
|
49
|
-
return {
|
|
50
|
-
undoable: {
|
|
51
|
-
message: [
|
|
52
|
-
"card field deleted label",
|
|
53
|
-
{
|
|
54
|
-
ns: meta.id
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
data: {
|
|
58
|
-
deletionData: {
|
|
59
|
-
...deleted,
|
|
60
|
-
index
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
} else if (undo && deletionData) {
|
|
66
|
-
const { field, props, index } = deletionData;
|
|
67
|
-
projection.setFieldProjection({
|
|
68
|
-
field,
|
|
69
|
-
props
|
|
70
|
-
}, index);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}),
|
|
74
|
-
createResolver({
|
|
75
|
-
intent: KanbanAction.DeleteCard,
|
|
76
|
-
resolve: ({ card }, undo) => {
|
|
77
|
-
const space = getSpace(card);
|
|
78
|
-
invariant(space, void 0, {
|
|
79
|
-
F: __dxlog_file,
|
|
80
|
-
L: 56,
|
|
81
|
-
S: void 0,
|
|
82
|
-
A: [
|
|
83
|
-
"space",
|
|
84
|
-
""
|
|
85
|
-
]
|
|
86
|
-
});
|
|
87
|
-
if (!undo) {
|
|
88
|
-
space.db.remove(card);
|
|
89
|
-
return {
|
|
90
|
-
undoable: {
|
|
91
|
-
message: [
|
|
92
|
-
"card deleted label",
|
|
93
|
-
{
|
|
94
|
-
ns: meta.id
|
|
95
|
-
}
|
|
96
|
-
],
|
|
97
|
-
data: {
|
|
98
|
-
card
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
} else {
|
|
103
|
-
space.db.add(card);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
})
|
|
107
|
-
]));
|
|
108
|
-
export {
|
|
109
|
-
intent_resolver_default as default
|
|
110
|
-
};
|
|
111
|
-
//# sourceMappingURL=intent-resolver-VVBNS2TO.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, contributes, createResolver } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Kanban } from '@dxos/react-ui-kanban/types';\nimport { ProjectionModel, getTypenameFromQuery } from '@dxos/schema';\n\nimport { meta } from '../meta';\nimport { KanbanAction } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: KanbanAction.Create,\n resolve: async ({ space, name, typename, initialPivotColumn }) => {\n const client = context.getCapability(ClientCapabilities.Client);\n const { view } = await Kanban.makeView({\n client,\n space,\n name,\n typename,\n pivotFieldName: initialPivotColumn,\n });\n return { data: { object: view } };\n },\n }),\n createResolver({\n intent: KanbanAction.DeleteCardField,\n resolve: async ({ view, fieldId, deletionData }, undo) => {\n const schema = getSpace(view)?.db.schemaRegistry.getSchema(getTypenameFromQuery(view.query.ast)!);\n invariant(schema);\n const projection = new ProjectionModel(schema.jsonSchema, view.projection);\n\n if (!undo) {\n const { deleted, index } = projection.deleteFieldProjection(fieldId);\n return {\n undoable: {\n message: ['card field deleted label', { ns: meta.id }],\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: meta.id }],\n data: { card },\n },\n };\n } else {\n space.db.add(card);\n }\n },\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,SAASA,cAAkCC,aAAaC,sBAAsB;AAC9E,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AACzB,SAASC,cAAc;AACvB,SAASC,iBAAiBC,4BAA4B;;AAKtD,IAAA,2BAAe,CAACC,YACdC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,OAAO,EAAEC,OAAOC,MAAMC,UAAUC,mBAAkB,MAAE;AAC3D,YAAMC,SAASb,QAAQc,cAAcC,mBAAmBC,MAAM;AAC9D,YAAM,EAAEC,KAAI,IAAK,MAAMC,OAAOC,SAAS;QACrCN;QACAJ;QACAC;QACAC;QACAS,gBAAgBR;MAClB,CAAA;AACA,aAAO;QAAES,MAAM;UAAEC,QAAQL;QAAK;MAAE;IAClC;EACF,CAAA;EACAb,eAAe;IACbC,QAAQC,aAAaiB;IACrBf,SAAS,OAAO,EAAES,MAAMO,SAASC,aAAY,GAAIC,SAAAA;AAC/C,YAAMC,SAASC,SAASX,IAAAA,GAAOY,GAAGC,eAAeC,UAAUC,qBAAqBf,KAAKgB,MAAMC,GAAG,CAAA;AAC9FC,gBAAUR,QAAAA,QAAAA;;;;;;;;;AACV,YAAMS,aAAa,IAAIC,gBAAgBV,OAAOW,YAAYrB,KAAKmB,UAAU;AAEzE,UAAI,CAACV,MAAM;AACT,cAAM,EAAEa,SAASC,MAAK,IAAKJ,WAAWK,sBAAsBjB,OAAAA;AAC5D,eAAO;UACLkB,UAAU;YACRC,SAAS;cAAC;cAA4B;gBAAEC,IAAIC,KAAKC;cAAG;;YACpDzB,MAAM;cAAEI,cAAc;gBAAE,GAAGc;gBAASC;cAAM;YAAE;UAC9C;QACF;MACF,WAAWd,QAAQD,cAAc;AAC/B,cAAM,EAAEsB,OAAOC,OAAOR,MAAK,IAAKf;AAChCW,mBAAWa,mBAAmB;UAAEF;UAAOC;QAAM,GAAGR,KAAAA;MAClD;IACF;EACF,CAAA;EACApC,eAAe;IACbC,QAAQC,aAAa4C;IACrB1C,SAAS,CAAC,EAAE2C,KAAI,GAAIzB,SAAAA;AAClB,YAAMjB,QAAQmB,SAASuB,IAAAA;AACvBhB,gBAAU1B,OAAAA,QAAAA;;;;;;;;;AAEV,UAAI,CAACiB,MAAM;AACTjB,cAAMoB,GAAGuB,OAAOD,IAAAA;AAChB,eAAO;UACLT,UAAU;YACRC,SAAS;cAAC;cAAsB;gBAAEC,IAAIC,KAAKC;cAAG;;YAC9CzB,MAAM;cAAE8B;YAAK;UACf;QACF;MACF,OAAO;AACL1C,cAAMoB,GAAGwB,IAAIF,IAAAA;MACf;IACF;EACF,CAAA;CACD;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "createResolver", "invariant", "ClientCapabilities", "getSpace", "Kanban", "ProjectionModel", "getTypenameFromQuery", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "KanbanAction", "Create", "resolve", "space", "name", "typename", "initialPivotColumn", "client", "getCapability", "ClientCapabilities", "Client", "view", "Kanban", "makeView", "pivotFieldName", "data", "object", "DeleteCardField", "fieldId", "deletionData", "undo", "schema", "getSpace", "db", "schemaRegistry", "getSchema", "getTypenameFromQuery", "query", "ast", "invariant", "projection", "ProjectionModel", "jsonSchema", "deleted", "index", "deleteFieldProjection", "undoable", "message", "ns", "meta", "id", "field", "props", "setFieldProjection", "DeleteCard", "card", "remove", "add"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"inputs":{"src/meta.ts":{"bytes":2139,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/blueprint-definition.ts":{"bytes":3077,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/types/schema.ts":{"bytes":8595,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"src/types/index.ts":{"bytes":501,"imports":[{"path":"src/types/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/capabilities/intent-resolver.ts":{"bytes":10476,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/KanbanContainer.tsx":{"bytes":12503,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/components/KanbanViewEditor.tsx":{"bytes":8682,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"src/components/index.ts":{"bytes":599,"imports":[{"path":"src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"},{"path":"src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./KanbanViewEditor"}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":12817,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/capabilities/index.ts":{"bytes":1323,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/blueprint-definition.ts","kind":"dynamic-import","original":"./blueprint-definition"},{"path":"src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/translations.ts":{"bytes":3589,"imports":[{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"src/KanbanPlugin.tsx":{"bytes":8467,"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":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/types/index.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6302},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-3UDST345.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/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/browser/blueprint-definition-UYVX622Q.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/intent-resolver-VVBNS2TO.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/react-surface-FNXJ6VJX.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true}],"exports":["KanbanPlugin","meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/KanbanPlugin.tsx":{"bytesInOutput":1830},"src/capabilities/index.ts":{"bytesInOutput":275},"src/translations.ts":{"bytesInOutput":917}},"bytes":3281},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-3UDST345.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","KanbanAction","PivotColumnAnnotationId"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":216},"dist/lib/browser/blueprint-definition-UYVX622Q.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1612},"dist/lib/browser/blueprint-definition-UYVX622Q.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/blueprints","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/blueprint-definition.ts","inputs":{"src/capabilities/blueprint-definition.ts":{"bytesInOutput":710}},"bytes":867},"dist/lib/browser/intent-resolver-VVBNS2TO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4800},"dist/lib/browser/intent-resolver-VVBNS2TO.mjs":{"imports":[{"path":"dist/lib/browser/chunk-3UDST345.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/intent-resolver.ts","inputs":{"src/capabilities/intent-resolver.ts":{"bytesInOutput":2750}},"bytes":2956},"dist/lib/browser/react-surface-FNXJ6VJX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17562},"dist/lib/browser/react-surface-FNXJ6VJX.mjs":{"imports":[{"path":"dist/lib/browser/chunk-3UDST345.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo/internal","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/types","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":3007},"src/components/KanbanContainer.tsx":{"bytesInOutput":3210},"src/components/index.ts":{"bytesInOutput":0},"src/components/KanbanViewEditor.tsx":{"bytesInOutput":2409}},"bytes":8972},"dist/lib/browser/chunk-3UDST345.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5075},"dist/lib/browser/chunk-3UDST345.mjs":{"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["CreateKanbanSchema","KanbanAction","PivotColumnAnnotationId","meta"],"inputs":{"src/types/schema.ts":{"bytesInOutput":1870},"src/meta.ts":{"bytesInOutput":554},"src/types/index.ts":{"bytesInOutput":0}},"bytes":2616}}}
|