@dxos/plugin-kanban 0.10.0 → 0.11.1
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/KanbanPlugin.mjs +18 -0
- package/dist/lib/KanbanPlugin.mjs.map +1 -0
- package/dist/lib/KanbanPlugin.node.mjs +11 -0
- package/dist/lib/KanbanPlugin.node.mjs.map +1 -0
- package/dist/lib/KanbanPlugin.workerd.mjs +11 -0
- package/dist/lib/KanbanPlugin.workerd.mjs.map +1 -0
- package/dist/lib/capabilities/node.mjs +10 -0
- package/dist/lib/capabilities/node.mjs.map +1 -0
- package/dist/lib/capabilities.mjs +11 -0
- package/dist/lib/capabilities.mjs.map +1 -0
- package/dist/lib/chunk-KanbanArticle.mjs +121 -0
- package/dist/lib/chunk-KanbanArticle.mjs.map +1 -0
- package/dist/lib/chunk-KanbanProperties.mjs +73 -0
- package/dist/lib/chunk-KanbanProperties.mjs.map +1 -0
- package/dist/lib/chunk-create-object.mjs +42 -0
- package/dist/lib/chunk-create-object.mjs.map +1 -0
- package/dist/lib/chunk-delete-card-field.mjs +50 -0
- package/dist/lib/chunk-delete-card-field.mjs.map +1 -0
- package/dist/lib/chunk-delete-card.mjs +23 -0
- package/dist/lib/chunk-delete-card.mjs.map +1 -0
- package/dist/lib/{neutral/chunk-V4AVOJVU.mjs → chunk-meta.mjs} +21 -29
- package/dist/lib/chunk-meta.mjs.map +1 -0
- package/dist/lib/chunk-operation-handler.mjs +11 -0
- package/dist/lib/chunk-operation-handler.mjs.map +1 -0
- package/dist/lib/chunk-react-surface.mjs +67 -0
- package/dist/lib/chunk-react-surface.mjs.map +1 -0
- package/dist/lib/chunk-restore-card-field.mjs +48 -0
- package/dist/lib/chunk-restore-card-field.mjs.map +1 -0
- package/dist/lib/chunk-restore-card.mjs +22 -0
- package/dist/lib/chunk-restore-card.mjs.map +1 -0
- package/dist/lib/chunk-skill-definition.mjs +10 -0
- package/dist/lib/chunk-skill-definition.mjs.map +1 -0
- package/dist/lib/chunk-skills.mjs +20 -0
- package/dist/lib/chunk-skills.mjs.map +1 -0
- package/dist/lib/chunk-types.mjs +231 -0
- package/dist/lib/chunk-types.mjs.map +1 -0
- package/dist/lib/chunk-undo-mappings.mjs +25 -0
- package/dist/lib/chunk-undo-mappings.mjs.map +1 -0
- package/dist/lib/components.mjs +227 -0
- package/dist/lib/components.mjs.map +1 -0
- package/dist/lib/containers.mjs +8 -0
- package/dist/lib/containers.mjs.map +1 -0
- package/dist/lib/hooks.mjs +394 -0
- package/dist/lib/hooks.mjs.map +1 -0
- package/dist/lib/index.mjs +5 -0
- package/dist/lib/meta.mjs +2 -0
- package/dist/lib/operations.mjs +7 -0
- package/dist/lib/operations.mjs.map +1 -0
- package/dist/lib/plugin.mjs +9 -0
- package/dist/lib/plugin.mjs.map +1 -0
- package/dist/lib/skills.mjs +2 -0
- package/dist/lib/testing.mjs +72 -0
- package/dist/lib/testing.mjs.map +1 -0
- package/dist/lib/translations.mjs +38 -0
- package/dist/lib/translations.mjs.map +1 -0
- package/dist/lib/types.mjs +2 -0
- package/dist/types/src/capabilities/PivotColumnField.d.ts +12 -0
- package/dist/types/src/capabilities/PivotColumnField.d.ts.map +1 -0
- package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
- package/dist/types/src/capabilities/create-object.d.ts +1 -1
- package/dist/types/src/capabilities/node.d.ts +7 -0
- package/dist/types/src/capabilities/node.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/undo-mappings.d.ts +1 -1
- package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +3 -4
- package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -1
- package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -1
- package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -1
- package/dist/types/src/components/KanbanBoard/index.d.ts +1 -0
- package/dist/types/src/components/KanbanBoard/index.d.ts.map +1 -1
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.d.ts +4 -1
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.d.ts.map +1 -1
- package/dist/types/src/containers/KanbanArticle/KanbanArticle.stories.d.ts.map +1 -1
- package/dist/types/src/containers/KanbanProperties/KanbanProperties.d.ts +4 -8
- package/dist/types/src/containers/KanbanProperties/KanbanProperties.d.ts.map +1 -1
- package/dist/types/src/hooks/useKanbanBoardModel.d.ts +1 -1
- package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -1
- package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts +4 -3
- package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts.map +1 -1
- package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts +4 -3
- package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts.map +1 -1
- package/dist/types/src/hooks/useProjectionModel.d.ts +1 -1
- package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -1
- package/dist/types/src/testing/KanbanCardTileSimple.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +1 -0
- package/package.json +58 -51
- package/src/capabilities/PivotColumnField.tsx +56 -0
- package/src/capabilities/node.ts +18 -0
- package/src/capabilities/react-surface.ts +45 -0
- package/src/components/KanbanBoard/KanbanBoard.stories.tsx +15 -4
- package/src/components/KanbanBoard/KanbanBoard.tsx +0 -3
- package/src/components/KanbanBoard/KanbanCard.tsx +5 -3
- package/src/components/KanbanBoard/index.ts +2 -0
- package/src/containers/KanbanArticle/KanbanArticle.stories.tsx +2 -1
- package/src/containers/KanbanArticle/KanbanArticle.tsx +3 -1
- package/src/containers/KanbanProperties/KanbanProperties.tsx +3 -1
- package/src/hooks/useItemsProjection.ts +1 -1
- package/src/hooks/useKanbanBoardModel.browser.test.ts +1 -1
- package/src/hooks/useKanbanBoardModel.ts +1 -1
- package/src/hooks/useKanbanColumnEventHandler.ts +6 -5
- package/src/hooks/useKanbanItemEventHandler.ts +6 -7
- package/src/hooks/useProjectionModel.ts +1 -1
- package/src/testing/KanbanCardTileSimple.tsx +2 -1
- package/dist/lib/neutral/KanbanArticle-JQMQQHRB.mjs +0 -132
- package/dist/lib/neutral/KanbanArticle-JQMQQHRB.mjs.map +0 -7
- package/dist/lib/neutral/KanbanPlugin.mjs +0 -44
- package/dist/lib/neutral/KanbanPlugin.mjs.map +0 -7
- package/dist/lib/neutral/KanbanPlugin.node.mjs +0 -27
- package/dist/lib/neutral/KanbanPlugin.node.mjs.map +0 -7
- package/dist/lib/neutral/KanbanPlugin.workerd.mjs +0 -21
- package/dist/lib/neutral/KanbanPlugin.workerd.mjs.map +0 -7
- package/dist/lib/neutral/KanbanProperties-W7MZNZVJ.mjs +0 -83
- package/dist/lib/neutral/KanbanProperties-W7MZNZVJ.mjs.map +0 -7
- package/dist/lib/neutral/capabilities/index.mjs +0 -17
- package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
- package/dist/lib/neutral/chunk-7TVVF45P.mjs +0 -247
- package/dist/lib/neutral/chunk-7TVVF45P.mjs.map +0 -7
- package/dist/lib/neutral/chunk-7YLGUKDJ.mjs +0 -8
- package/dist/lib/neutral/chunk-7YLGUKDJ.mjs.map +0 -7
- package/dist/lib/neutral/chunk-CFPH5R6P.mjs +0 -26
- package/dist/lib/neutral/chunk-CFPH5R6P.mjs.map +0 -7
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-V4AVOJVU.mjs.map +0 -7
- package/dist/lib/neutral/components/index.mjs +0 -245
- package/dist/lib/neutral/components/index.mjs.map +0 -7
- package/dist/lib/neutral/containers/index.mjs +0 -11
- package/dist/lib/neutral/containers/index.mjs.map +0 -7
- package/dist/lib/neutral/create-object-DIIFRS57.mjs +0 -45
- package/dist/lib/neutral/create-object-DIIFRS57.mjs.map +0 -7
- package/dist/lib/neutral/delete-card-TK2G6YHX.mjs +0 -24
- package/dist/lib/neutral/delete-card-TK2G6YHX.mjs.map +0 -7
- package/dist/lib/neutral/delete-card-field-LGWPBOUW.mjs +0 -39
- package/dist/lib/neutral/delete-card-field-LGWPBOUW.mjs.map +0 -7
- package/dist/lib/neutral/hooks/index.mjs +0 -431
- package/dist/lib/neutral/hooks/index.mjs.map +0 -7
- package/dist/lib/neutral/index.mjs +0 -34
- package/dist/lib/neutral/index.mjs.map +0 -7
- package/dist/lib/neutral/meta.json +0 -1
- package/dist/lib/neutral/meta.mjs +0 -8
- package/dist/lib/neutral/meta.mjs.map +0 -7
- package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs +0 -13
- package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs.map +0 -7
- package/dist/lib/neutral/operations/index.mjs +0 -8
- package/dist/lib/neutral/operations/index.mjs.map +0 -7
- package/dist/lib/neutral/plugin.mjs +0 -16
- package/dist/lib/neutral/plugin.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-FQGXRR3X.mjs +0 -89
- package/dist/lib/neutral/react-surface-FQGXRR3X.mjs.map +0 -7
- package/dist/lib/neutral/restore-card-3O6PVN7J.mjs +0 -21
- package/dist/lib/neutral/restore-card-3O6PVN7J.mjs.map +0 -7
- package/dist/lib/neutral/restore-card-field-5G4DVYYY.mjs +0 -37
- package/dist/lib/neutral/restore-card-field-5G4DVYYY.mjs.map +0 -7
- package/dist/lib/neutral/skill-definition-YGTCKXGP.mjs +0 -15
- package/dist/lib/neutral/skill-definition-YGTCKXGP.mjs.map +0 -7
- package/dist/lib/neutral/skills/index.mjs +0 -8
- package/dist/lib/neutral/skills/index.mjs.map +0 -7
- package/dist/lib/neutral/testing/index.mjs +0 -64
- package/dist/lib/neutral/testing/index.mjs.map +0 -7
- package/dist/lib/neutral/translations.mjs +0 -44
- package/dist/lib/neutral/translations.mjs.map +0 -7
- package/dist/lib/neutral/types/index.mjs +0 -22
- package/dist/lib/neutral/types/index.mjs.map +0 -7
- package/dist/lib/neutral/undo-mappings-EZTHO4UL.mjs +0 -42
- package/dist/lib/neutral/undo-mappings-EZTHO4UL.mjs.map +0 -7
- package/src/capabilities/react-surface.tsx +0 -95
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/restore-card-field.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\nimport { Obj, Type } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { ProjectionModel, createEchoChangeCallback, getTypeURIFromQuery } from '@dxos/schema';\n\nimport { KanbanOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof KanbanOperation.RestoreCardField> = KanbanOperation.RestoreCardField.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ view, field, props, index }) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const db = Obj.getDatabase(view);\n invariant(db, 'Database not found');\n const types = db.graph.registry.list().filter(Type.isType);\n const type = types.find((t) => Type.getURI(t) === getTypeURIFromQuery(view.query.ast));\n invariant(type, 'Schema not found');\n\n invariant(Type.isType(type), 'expected stored Type.Type for card schema');\n const projection = new ProjectionModel({\n registry,\n view,\n baseSchema: type.jsonSchema,\n change: createEchoChangeCallback(view, type),\n });\n\n projection.setFieldProjection({ field, props }, index);\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiB;AAC1B,SAASC,KAAKC,YAAY;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiBC,0BAA0BC,2BAA2B;AAI/E,IAAA,eAAgFC;IAI1E,UAAWC,wBAAgBC,iBAAAA,KAAAA,UAAAA,YAAAA,kBAAAA,WAAAA,EAAAA,MAAAA,OAAAA,OAAAA,MAAAA,GAAAA;AAC3BC,QAAAA,WAAc,OAAA,WAAA,IAAA,aAAA,YAAA;AACd,QAAMC,KAAAA,IAAQC,YAASC,IAAQ;AAC/B,YAAMC,IAAOH,sBAAuBI,EAAAA,YAAOC,YAAOC,GAAAA,cAAyBC,GAAAA,IAAK,GAACC,MAAG,GAAA,CAAA,MAAA,sBAAA,EAAA,CAAA;AACpFT,QAAAA,QAAUI,GAAM,MAAA,SAAA,KAAA,EAAA,OAAA,KAAA,MAAA;AAEhBJ,QAAAA,OAAUU,MAAKC,KAAOP,CAAAA,MAAO,KAAA,OAAA,CAAA,MAAA,oBAAA,KAAA,MAAA,GAAA,CAAA;AAC7B,YAAMQ,MAAAA,oBAAiBC,EAAAA,YAAgB,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,QAAA,oBAAA,EAAA,CAAA;YACrCV,KAAAA,OAAAA,IAAAA,GAAAA,6CAAAA,EAAAA,YAAAA,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,qBAAAA,6CAAAA,EAAAA,CAAAA;QACAJ,aAAAA,IAAAA,gBAAAA;IACAe;IACAC;IACF,YAAA,KAAA;IAEAH,QAAWI,yBAAmB,MAAA,IAAA;;aAASC,mBAAAA;IAASC;IAClD;EAIJ,GAAA,KAAA;;;",
|
|
6
|
-
"names": ["Effect", "Capabilities", "Capability", "Operation", "Obj", "Type", "invariant", "ProjectionModel", "createEchoChangeCallback", "getTypeURIFromQuery", "KanbanOperation", "Obj", "view", "invariant", "types", "db", "registry", "type", "getURI", "t", "getTypeURIFromQuery", "query", "ast", "Type", "isType", "projection", "ProjectionModel", "baseSchema", "change", "setFieldProjection", "props", "index"]
|
|
7
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/capabilities/skill-definition.ts
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
|
-
import { Capability } from "@dxos/app-framework";
|
|
6
|
-
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
7
|
-
import { KanbanSkill } from "#skills";
|
|
8
|
-
var skillDefinition = () => Effect.succeed([
|
|
9
|
-
Capability.contributes(AppCapabilities.SkillDefinition, KanbanSkill)
|
|
10
|
-
]);
|
|
11
|
-
var skill_definition_default = skillDefinition;
|
|
12
|
-
export {
|
|
13
|
-
skill_definition_default as default
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=skill-definition-YGTCKXGP.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/skill-definition.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n\nimport { KanbanSkill } from '#skills';\n\nconst skillDefinition = () => Effect.succeed([Capability.contributes(AppCapabilities.SkillDefinition, KanbanSkill)]);\n\nexport default skillDefinition;\n"],
|
|
5
|
-
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAEhC,SAASC,mBAAmB;AAE5B,IAAMC,kBAAkB,MAAaC,eAAQ;EAACJ,WAAWK,YAAYJ,gBAAgBK,iBAAiBJ,WAAAA;CAAa;AAEnH,IAAA,2BAAeC;",
|
|
6
|
-
"names": ["Effect", "Capability", "AppCapabilities", "KanbanSkill", "skillDefinition", "succeed", "contributes", "SkillDefinition"]
|
|
7
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import "../chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/testing/KanbanCardTileSimple.tsx
|
|
4
|
-
import React, { forwardRef, useCallback, useMemo, useState } from "react";
|
|
5
|
-
import { Obj } from "@dxos/echo";
|
|
6
|
-
import { Card, IconButton, useTranslation } from "@dxos/react-ui";
|
|
7
|
-
import { Menu, createMenuAction } from "@dxos/react-ui-menu";
|
|
8
|
-
import { Focus, Mosaic, useBoard } from "@dxos/react-ui-mosaic";
|
|
9
|
-
import { useKanbanBoard } from "#components";
|
|
10
|
-
import { meta } from "#meta";
|
|
11
|
-
var KANBAN_CARD_TILE_SIMPLE_NAME = "KanbanCardTileSimple";
|
|
12
|
-
var KanbanCardTileSimple = /* @__PURE__ */ forwardRef(({ data, location, debug }, forwardedRef) => {
|
|
13
|
-
const { t } = useTranslation(meta.profile.key);
|
|
14
|
-
const { model } = useBoard(KANBAN_CARD_TILE_SIMPLE_NAME);
|
|
15
|
-
const { onCardRemove } = useKanbanBoard(KANBAN_CARD_TILE_SIMPLE_NAME);
|
|
16
|
-
const [dragHandle, setDragHandle] = useState(null);
|
|
17
|
-
const dragHandleRef = useCallback((el) => setDragHandle(el), []);
|
|
18
|
-
const menuItems = useMemo(() => onCardRemove ? [
|
|
19
|
-
createMenuAction("remove", () => onCardRemove(data), {
|
|
20
|
-
label: t("remove-card.label"),
|
|
21
|
-
icon: "ph--trash--regular"
|
|
22
|
-
})
|
|
23
|
-
] : [], [
|
|
24
|
-
onCardRemove,
|
|
25
|
-
data,
|
|
26
|
-
t
|
|
27
|
-
]);
|
|
28
|
-
return /* @__PURE__ */ React.createElement(Menu.Root, null, /* @__PURE__ */ React.createElement(Mosaic.Tile, {
|
|
29
|
-
asChild: true,
|
|
30
|
-
id: model.getItemId(data),
|
|
31
|
-
data,
|
|
32
|
-
location,
|
|
33
|
-
debug,
|
|
34
|
-
dragHandle
|
|
35
|
-
}, /* @__PURE__ */ React.createElement(Focus.Item, {
|
|
36
|
-
asChild: true
|
|
37
|
-
}, /* @__PURE__ */ React.createElement(Card.Root, {
|
|
38
|
-
ref: forwardedRef,
|
|
39
|
-
"data-testid": "board-item"
|
|
40
|
-
}, /* @__PURE__ */ React.createElement(Card.Header, null, /* @__PURE__ */ React.createElement(Card.DragHandle, {
|
|
41
|
-
ref: dragHandleRef
|
|
42
|
-
}), /* @__PURE__ */ React.createElement(Card.Title, null, Obj.getLabel(data)), /* @__PURE__ */ React.createElement(Card.Block, {
|
|
43
|
-
end: true
|
|
44
|
-
}, /* @__PURE__ */ React.createElement(Menu.Trigger, {
|
|
45
|
-
asChild: true,
|
|
46
|
-
disabled: !menuItems?.length
|
|
47
|
-
}, /* @__PURE__ */ React.createElement(IconButton, {
|
|
48
|
-
iconOnly: true,
|
|
49
|
-
variant: "ghost",
|
|
50
|
-
icon: "ph--dots-three-vertical--regular",
|
|
51
|
-
label: t("action-menu.label")
|
|
52
|
-
})), /* @__PURE__ */ React.createElement(Menu.Content, {
|
|
53
|
-
items: menuItems
|
|
54
|
-
}))), /* @__PURE__ */ React.createElement(Card.Body, null, /* @__PURE__ */ React.createElement(Card.Row, {
|
|
55
|
-
fullWidth: true
|
|
56
|
-
}, /* @__PURE__ */ React.createElement("pre", {
|
|
57
|
-
className: "p-2 text-xs text-description whitespace-pre-wrap"
|
|
58
|
-
}, JSON.stringify(data, null, 2))))))));
|
|
59
|
-
});
|
|
60
|
-
KanbanCardTileSimple.displayName = KANBAN_CARD_TILE_SIMPLE_NAME;
|
|
61
|
-
export {
|
|
62
|
-
KanbanCardTileSimple
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/testing/KanbanCardTileSimple.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef, useCallback, useMemo, useState } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { Card, IconButton, useTranslation } from '@dxos/react-ui';\nimport { Menu, createMenuAction } from '@dxos/react-ui-menu';\nimport { Focus, Mosaic, useBoard } from '@dxos/react-ui-mosaic';\n\nimport { type KanbanCardProps, useKanbanBoard } from '#components';\nimport { meta } from '#meta';\n\nconst KANBAN_CARD_TILE_SIMPLE_NAME = 'KanbanCardTileSimple';\n\n/**\n * Card tile without Surface; for stories and tests when plugin manager is not available.\n */\nexport const KanbanCardTileSimple = forwardRef<HTMLDivElement, KanbanCardProps>(\n ({ data, location, debug }, forwardedRef) => {\n const { t } = useTranslation(meta.profile.key);\n const { model } = useBoard(KANBAN_CARD_TILE_SIMPLE_NAME);\n const { onCardRemove } = useKanbanBoard(KANBAN_CARD_TILE_SIMPLE_NAME);\n const [dragHandle, setDragHandle] = useState<HTMLButtonElement | null>(null);\n const dragHandleRef = useCallback((el: HTMLButtonElement | null) => setDragHandle(el), []);\n\n const menuItems = useMemo(\n () =>\n onCardRemove\n ? [\n createMenuAction('remove', () => onCardRemove(data), {\n label: t('remove-card.label'),\n icon: 'ph--trash--regular',\n }),\n ]\n : [],\n [onCardRemove, data, t],\n );\n\n return (\n <Menu.Root>\n <Mosaic.Tile\n asChild\n id={model.getItemId(data)}\n data={data}\n location={location}\n debug={debug}\n dragHandle={dragHandle}\n >\n <Focus.Item asChild>\n <Card.Root ref={forwardedRef} data-testid='board-item'>\n <Card.Header>\n <Card.DragHandle ref={dragHandleRef} />\n <Card.Title>{Obj.getLabel(data)}</Card.Title>\n {/* TODO(wittjosiah): Reconcile with Card.Menu. */}\n <Card.Block end>\n <Menu.Trigger asChild disabled={!menuItems?.length}>\n <IconButton\n iconOnly\n variant='ghost'\n icon='ph--dots-three-vertical--regular'\n label={t('action-menu.label')}\n />\n </Menu.Trigger>\n <Menu.Content items={menuItems} />\n </Card.Block>\n </Card.Header>\n <Card.Body>\n <Card.Row fullWidth>\n <pre className='p-2 text-xs text-description whitespace-pre-wrap'>\n {JSON.stringify(data, null, 2)}\n </pre>\n </Card.Row>\n </Card.Body>\n </Card.Root>\n </Focus.Item>\n </Mosaic.Tile>\n </Menu.Root>\n );\n },\n);\n\nKanbanCardTileSimple.displayName = KANBAN_CARD_TILE_SIMPLE_NAME;\n"],
|
|
5
|
-
"mappings": ";;;AAIA,OAAOA,SAASC,YAAYC,aAAaC,SAASC,gBAAgB;AAElE,SAASC,WAAW;AACpB,SAASC,MAAMC,YAAYC,sBAAsB;AACjD,SAASC,MAAMC,wBAAwB;AACvC,SAASC,OAAOC,QAAQC,gBAAgB;AAExC,SAA+BC,sBAAsB;AACrD,SAASC,YAAY;AAErB,IAAMC,+BAA+B;AAK9B,IAAMC,uBAAuBhB,2BAClC,CAAC,EAAEiB,MAAMC,UAAUC,MAAK,GAAIC,iBAAAA;AAC1B,QAAM,EAAEC,EAAC,IAAKd,eAAeO,KAAKQ,QAAQC,GAAG;AAC7C,QAAM,EAAEC,MAAK,IAAKZ,SAASG,4BAAAA;AAC3B,QAAM,EAAEU,aAAY,IAAKZ,eAAeE,4BAAAA;AACxC,QAAM,CAACW,YAAYC,aAAAA,IAAiBxB,SAAmC,IAAA;AACvE,QAAMyB,gBAAgB3B,YAAY,CAAC4B,OAAiCF,cAAcE,EAAAA,GAAK,CAAA,CAAE;AAEzF,QAAMC,YAAY5B,QAChB,MACEuB,eACI;IACEhB,iBAAiB,UAAU,MAAMgB,aAAaR,IAAAA,GAAO;MACnDc,OAAOV,EAAE,mBAAA;MACTW,MAAM;IACR,CAAA;MAEF,CAAA,GACN;IAACP;IAAcR;IAAMI;GAAE;AAGzB,SACE,sBAAA,cAACb,KAAKyB,MAAI,MACR,sBAAA,cAACtB,OAAOuB,MAAI;IACVC,SAAAA;IACAC,IAAIZ,MAAMa,UAAUpB,IAAAA;IACpBA;IACAC;IACAC;IACAO;KAEA,sBAAA,cAAChB,MAAM4B,MAAI;IAACH,SAAAA;KACV,sBAAA,cAAC9B,KAAK4B,MAAI;IAACM,KAAKnB;IAAcoB,eAAY;KACxC,sBAAA,cAACnC,KAAKoC,QAAM,MACV,sBAAA,cAACpC,KAAKqC,YAAU;IAACH,KAAKX;MACtB,sBAAA,cAACvB,KAAKsC,OAAK,MAAEvC,IAAIwC,SAAS3B,IAAAA,CAAAA,GAE1B,sBAAA,cAACZ,KAAKwC,OAAK;IAACC,KAAAA;KACV,sBAAA,cAACtC,KAAKuC,SAAO;IAACZ,SAAAA;IAAQa,UAAU,CAAClB,WAAWmB;KAC1C,sBAAA,cAAC3C,YAAAA;IACC4C,UAAAA;IACAC,SAAQ;IACRnB,MAAK;IACLD,OAAOV,EAAE,mBAAA;OAGb,sBAAA,cAACb,KAAK4C,SAAO;IAACC,OAAOvB;QAGzB,sBAAA,cAACzB,KAAKiD,MAAI,MACR,sBAAA,cAACjD,KAAKkD,KAAG;IAACC,WAAAA;KACR,sBAAA,cAACC,OAAAA;IAAIC,WAAU;KACZC,KAAKC,UAAU3C,MAAM,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAS9C,CAAA;AAGFD,qBAAqB6C,cAAc9C;",
|
|
6
|
-
"names": ["React", "forwardRef", "useCallback", "useMemo", "useState", "Obj", "Card", "IconButton", "useTranslation", "Menu", "createMenuAction", "Focus", "Mosaic", "useBoard", "useKanbanBoard", "meta", "KANBAN_CARD_TILE_SIMPLE_NAME", "KanbanCardTileSimple", "data", "location", "debug", "forwardedRef", "t", "profile", "key", "model", "onCardRemove", "dragHandle", "setDragHandle", "dragHandleRef", "el", "menuItems", "label", "icon", "Root", "Tile", "asChild", "id", "getItemId", "Item", "ref", "data-testid", "Header", "DragHandle", "Title", "getLabel", "Block", "end", "Trigger", "disabled", "length", "iconOnly", "variant", "Content", "items", "Body", "Row", "fullWidth", "pre", "className", "JSON", "stringify", "displayName"]
|
|
7
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/translations.ts
|
|
4
|
-
import { Type } from "@dxos/echo";
|
|
5
|
-
import { meta } from "#meta";
|
|
6
|
-
import { Kanban } from "#types";
|
|
7
|
-
var translations = [
|
|
8
|
-
{
|
|
9
|
-
"en-US": {
|
|
10
|
-
[Type.getTypename(Kanban.Kanban)]: {
|
|
11
|
-
"typename.label": "Kanban",
|
|
12
|
-
"typename.label_zero": "Kanbans",
|
|
13
|
-
"typename.label_one": "Kanban",
|
|
14
|
-
"typename.label_other": "Kanbans",
|
|
15
|
-
"object-name.placeholder": "New kanban",
|
|
16
|
-
"add-object.label": "Add kanban",
|
|
17
|
-
"rename-object.label": "Rename kanban",
|
|
18
|
-
"delete-object.label": "Delete kanban",
|
|
19
|
-
"object-deleted.label": "Kanban deleted"
|
|
20
|
-
},
|
|
21
|
-
[meta.profile.key]: {
|
|
22
|
-
"action-menu.label": "Actions",
|
|
23
|
-
"plugin.name": "Kanban",
|
|
24
|
-
"kanban-title.label": "Title",
|
|
25
|
-
"column-title.label": "Column title",
|
|
26
|
-
"column-title.placeholder": "New column",
|
|
27
|
-
"add-column.label": "Add column",
|
|
28
|
-
"add-card.label": "Add card",
|
|
29
|
-
"new-column-name.label": "New column name",
|
|
30
|
-
"remove-card.label": "Remove card",
|
|
31
|
-
"remove-empty-column.label": "Remove empty column",
|
|
32
|
-
"column-drag-handle.label": "Drag to rearrange",
|
|
33
|
-
"delete-column.label": "Delete column",
|
|
34
|
-
"card-field-deleted.label": "Card field deleted",
|
|
35
|
-
"card-deleted.label": "Card deleted",
|
|
36
|
-
"select-pivot.placeholder": "Select a pivot column in board settings to display columns."
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
];
|
|
41
|
-
export {
|
|
42
|
-
translations
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=translations.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { Kanban } from '#types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Kanban.Kanban)]: {\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 'add-object.label': 'Add kanban',\n 'rename-object.label': 'Rename kanban',\n 'delete-object.label': 'Delete kanban',\n 'object-deleted.label': 'Kanban deleted',\n },\n [meta.profile.key]: {\n 'action-menu.label': 'Actions',\n 'plugin.name': 'Kanban',\n 'kanban-title.label': 'Title',\n 'column-title.label': 'Column title',\n 'column-title.placeholder': 'New column',\n 'add-column.label': 'Add column',\n 'add-card.label': 'Add card',\n 'new-column-name.label': 'New column name',\n 'remove-card.label': 'Remove card',\n 'remove-empty-column.label': 'Remove empty column',\n 'column-drag-handle.label': 'Drag to rearrange',\n 'delete-column.label': 'Delete column',\n 'card-field-deleted.label': 'Card field deleted',\n 'card-deleted.label': 'Card deleted',\n 'select-pivot.placeholder': 'Select a pivot column in board settings to display columns.',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
-
"mappings": ";;;AAIA,SAASA,YAAY;AAGrB,SAASC,YAAY;AACrB,SAASC,cAAc;AAEhB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACH,KAAKI,YAAYF,OAAOA,MAAM,CAAA,GAAI;QACjC,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACD,KAAKI,QAAQC,GAAG,GAAG;QAClB,qBAAqB;QACrB,eAAe;QACf,sBAAsB;QACtB,sBAAsB;QACtB,4BAA4B;QAC5B,oBAAoB;QACpB,kBAAkB;QAClB,yBAAyB;QACzB,qBAAqB;QACrB,6BAA6B;QAC7B,4BAA4B;QAC5B,uBAAuB;QACvB,4BAA4B;QAC5B,sBAAsB;QACtB,4BAA4B;MAC9B;IACF;EACF;;",
|
|
6
|
-
"names": ["Type", "meta", "Kanban", "translations", "getTypename", "profile", "key"]
|
|
7
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CreateKanbanSchema,
|
|
3
|
-
KanbanOperation_exports,
|
|
4
|
-
KanbanSettingsSchema,
|
|
5
|
-
KanbanViewSettingsSchema,
|
|
6
|
-
Kanban_exports,
|
|
7
|
-
PivotColumnAnnotationId,
|
|
8
|
-
UNCATEGORIZED_ATTRIBUTES,
|
|
9
|
-
UNCATEGORIZED_VALUE
|
|
10
|
-
} from "../chunk-7TVVF45P.mjs";
|
|
11
|
-
import "../chunk-J5LGTIGS.mjs";
|
|
12
|
-
export {
|
|
13
|
-
CreateKanbanSchema,
|
|
14
|
-
Kanban_exports as Kanban,
|
|
15
|
-
KanbanOperation_exports as KanbanOperation,
|
|
16
|
-
KanbanSettingsSchema,
|
|
17
|
-
KanbanViewSettingsSchema,
|
|
18
|
-
PivotColumnAnnotationId,
|
|
19
|
-
UNCATEGORIZED_ATTRIBUTES,
|
|
20
|
-
UNCATEGORIZED_VALUE
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
-
|
|
3
|
-
// src/capabilities/undo-mappings.ts
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
|
-
import { Capabilities, Capability, UndoMapping } from "@dxos/app-framework";
|
|
6
|
-
import { meta } from "#meta";
|
|
7
|
-
import { KanbanOperation } from "#types";
|
|
8
|
-
var undo_mappings_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.UndoMapping, [
|
|
9
|
-
UndoMapping.make({
|
|
10
|
-
operation: KanbanOperation.DeleteCardField,
|
|
11
|
-
inverse: KanbanOperation.RestoreCardField,
|
|
12
|
-
deriveContext: (input, output) => ({
|
|
13
|
-
view: input.view,
|
|
14
|
-
field: output.field,
|
|
15
|
-
props: output.props,
|
|
16
|
-
index: output.index
|
|
17
|
-
}),
|
|
18
|
-
message: [
|
|
19
|
-
"card-field-deleted.label",
|
|
20
|
-
{
|
|
21
|
-
ns: meta.profile.key
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
}),
|
|
25
|
-
UndoMapping.make({
|
|
26
|
-
operation: KanbanOperation.DeleteCard,
|
|
27
|
-
inverse: KanbanOperation.RestoreCard,
|
|
28
|
-
deriveContext: (_input, output) => ({
|
|
29
|
-
card: output.card
|
|
30
|
-
}),
|
|
31
|
-
message: [
|
|
32
|
-
"card-deleted.label",
|
|
33
|
-
{
|
|
34
|
-
ns: meta.profile.key
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
})
|
|
38
|
-
])));
|
|
39
|
-
export {
|
|
40
|
-
undo_mappings_default as default
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=undo-mappings-EZTHO4UL.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/undo-mappings.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability, UndoMapping } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\nimport { KanbanOperation } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.UndoMapping, [\n UndoMapping.make({\n operation: KanbanOperation.DeleteCardField,\n inverse: KanbanOperation.RestoreCardField,\n deriveContext: (input, output) => ({\n view: input.view,\n field: output.field,\n props: output.props,\n index: output.index,\n }),\n message: ['card-field-deleted.label', { ns: meta.profile.key }],\n }),\n UndoMapping.make({\n operation: KanbanOperation.DeleteCard,\n inverse: KanbanOperation.RestoreCard,\n deriveContext: (_input, output) => ({\n card: output.card,\n }),\n message: ['card-deleted.label', { ns: meta.profile.key }],\n }),\n ]),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;AAEA,YAAYA,YAAY;AAExB,SAASC,cAAcC,YAAYC,mBAAmB;AAEtD,SAASC,YAAY;AACrB,SAASC,uBAAuB;AAEhC,IAAA,wBAAeH,WAAWI,WAAW,MAC5BC,eACLL,WAAWM,YAAYP,aAAaE,aAAa;EAC/CA,YAAYM,KAAK;IACfC,WAAWL,gBAAgBM;IAC3BC,SAASP,gBAAgBQ;IACzBC,eAAe,CAACC,OAAOC,YAAY;MACjCC,MAAMF,MAAME;MACZC,OAAOF,OAAOE;MACdC,OAAOH,OAAOG;MACdC,OAAOJ,OAAOI;IAChB;IACAC,SAAS;MAAC;MAA4B;QAAEC,IAAIlB,KAAKmB,QAAQC;MAAI;;EAC/D,CAAA;EACArB,YAAYM,KAAK;IACfC,WAAWL,gBAAgBoB;IAC3Bb,SAASP,gBAAgBqB;IACzBZ,eAAe,CAACa,QAAQX,YAAY;MAClCY,MAAMZ,OAAOY;IACf;IACAP,SAAS;MAAC;MAAsB;QAAEC,IAAIlB,KAAKmB,QAAQC;MAAI;;EACzD,CAAA;CACD,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Capabilities", "Capability", "UndoMapping", "meta", "KanbanOperation", "makeModule", "succeed", "contributes", "make", "operation", "DeleteCardField", "inverse", "RestoreCardField", "deriveContext", "input", "output", "view", "field", "props", "index", "message", "ns", "profile", "key", "DeleteCard", "RestoreCard", "_input", "card"]
|
|
7
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Effect from 'effect/Effect';
|
|
6
|
-
import React, { useMemo } from 'react';
|
|
7
|
-
|
|
8
|
-
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
|
-
import { Surface } from '@dxos/app-framework/ui';
|
|
10
|
-
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
11
|
-
import { Database, Obj, Type } from '@dxos/echo';
|
|
12
|
-
import { SchemaEx } from '@dxos/effect';
|
|
13
|
-
import { type FormFieldRendererProps, SelectField, useFormValues } from '@dxos/react-ui-form';
|
|
14
|
-
import { Position } from '@dxos/util';
|
|
15
|
-
|
|
16
|
-
import { KanbanArticle, KanbanProperties } from '#containers';
|
|
17
|
-
import { Kanban, PivotColumnAnnotationId } from '#types';
|
|
18
|
-
|
|
19
|
-
export default Capability.makeModule(() =>
|
|
20
|
-
Effect.succeed(
|
|
21
|
-
Capability.contributes(Capabilities.ReactSurface, [
|
|
22
|
-
Surface.create({
|
|
23
|
-
id: 'root',
|
|
24
|
-
// TODO(wittjosiah): Split into multiple surfaces if this filter proves too strict for non-article roles.
|
|
25
|
-
filter: AppSurface.oneOf(
|
|
26
|
-
AppSurface.object(AppSurface.Article, Kanban.Kanban),
|
|
27
|
-
AppSurface.object(AppSurface.Section, Kanban.Kanban),
|
|
28
|
-
),
|
|
29
|
-
component: ({ data, role }) => <KanbanArticle role={role} subject={data.subject} />,
|
|
30
|
-
}),
|
|
31
|
-
Surface.create({
|
|
32
|
-
id: 'objectProperties',
|
|
33
|
-
position: Position.first,
|
|
34
|
-
filter: AppSurface.object(AppSurface.ObjectProperties, Kanban.Kanban),
|
|
35
|
-
component: ({ data }) => <KanbanProperties subject={data.subject} />,
|
|
36
|
-
}),
|
|
37
|
-
Surface.create({
|
|
38
|
-
id: 'createInitialSchemaForm',
|
|
39
|
-
filter: AppSurface.formInputBySchema((ast) => !!SchemaEx.findAnnotation<boolean>(ast, PivotColumnAnnotationId)),
|
|
40
|
-
component: ({ data, ...inputProps }) => {
|
|
41
|
-
const ast = data.fieldPropertyAst;
|
|
42
|
-
if (!ast) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const props = { ...inputProps, type: ast } as any as FormFieldRendererProps;
|
|
47
|
-
const target = data.target;
|
|
48
|
-
const db = Database.isDatabase(target) ? target : Obj.isObject(target) ? Obj.getDatabase(target) : undefined;
|
|
49
|
-
if (!db) {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const { typename } = useFormValues('KanbanForm');
|
|
54
|
-
const [selectedSchema] = useMemo(
|
|
55
|
-
() =>
|
|
56
|
-
db.graph.registry
|
|
57
|
-
.list()
|
|
58
|
-
.filter(Type.isType)
|
|
59
|
-
.filter((t) => Type.getTypename(t) === typename),
|
|
60
|
-
[db, typename],
|
|
61
|
-
);
|
|
62
|
-
const singleSelectColumns = useMemo(() => {
|
|
63
|
-
if (!selectedSchema) {
|
|
64
|
-
return [];
|
|
65
|
-
}
|
|
66
|
-
const jsonSchema = selectedSchema.jsonSchema;
|
|
67
|
-
const properties = jsonSchema.properties;
|
|
68
|
-
if (!properties) {
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const columns = Object.entries(properties).reduce<string[]>((acc, [key, value]) => {
|
|
73
|
-
if (
|
|
74
|
-
typeof value === 'object' &&
|
|
75
|
-
value !== null &&
|
|
76
|
-
(value as { format?: string }).format === 'single-select'
|
|
77
|
-
) {
|
|
78
|
-
acc.push(key);
|
|
79
|
-
}
|
|
80
|
-
return acc;
|
|
81
|
-
}, []);
|
|
82
|
-
|
|
83
|
-
return columns;
|
|
84
|
-
}, [selectedSchema]);
|
|
85
|
-
|
|
86
|
-
if (!typename) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return <SelectField {...props} options={singleSelectColumns.map((column) => ({ value: column }))} />;
|
|
91
|
-
},
|
|
92
|
-
}),
|
|
93
|
-
]),
|
|
94
|
-
),
|
|
95
|
-
);
|