@dxos/plugin-kanban 0.7.5-main.9d26e3a → 0.7.5-main.b19bfc8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/lib/browser/artifact-definition-RSO5XMKU.mjs +173 -0
  2. package/dist/lib/browser/artifact-definition-RSO5XMKU.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-ILL6UKZE.mjs +94 -0
  4. package/dist/lib/browser/chunk-ILL6UKZE.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +70 -247
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/intent-resolver-6BD4KUAU.mjs +122 -0
  8. package/dist/lib/browser/intent-resolver-6BD4KUAU.mjs.map +7 -0
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/react-surface-6NYIVXVG.mjs +285 -0
  11. package/dist/lib/browser/react-surface-6NYIVXVG.mjs.map +7 -0
  12. package/dist/lib/browser/types.mjs +7 -2
  13. package/dist/lib/node/artifact-definition-UTF2PHQN.cjs +189 -0
  14. package/dist/lib/node/artifact-definition-UTF2PHQN.cjs.map +7 -0
  15. package/dist/lib/node/{chunk-BE2FRW7E.cjs → chunk-63KJGDFJ.cjs} +57 -15
  16. package/dist/lib/node/chunk-63KJGDFJ.cjs.map +7 -0
  17. package/dist/lib/node/index.cjs +67 -236
  18. package/dist/lib/node/index.cjs.map +4 -4
  19. package/dist/lib/node/intent-resolver-DHL5HBJM.cjs +136 -0
  20. package/dist/lib/node/intent-resolver-DHL5HBJM.cjs.map +7 -0
  21. package/dist/lib/node/meta.json +1 -1
  22. package/dist/lib/node/react-surface-65D6R6Z7.cjs +301 -0
  23. package/dist/lib/node/react-surface-65D6R6Z7.cjs.map +7 -0
  24. package/dist/lib/node/types.cjs +10 -5
  25. package/dist/lib/node/types.cjs.map +2 -2
  26. package/dist/lib/node-esm/artifact-definition-MVIL3EEK.mjs +174 -0
  27. package/dist/lib/node-esm/artifact-definition-MVIL3EEK.mjs.map +7 -0
  28. package/dist/lib/node-esm/chunk-TZ3QKBLD.mjs +96 -0
  29. package/dist/lib/node-esm/chunk-TZ3QKBLD.mjs.map +7 -0
  30. package/dist/lib/node-esm/index.mjs +70 -247
  31. package/dist/lib/node-esm/index.mjs.map +4 -4
  32. package/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs +123 -0
  33. package/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs.map +7 -0
  34. package/dist/lib/node-esm/meta.json +1 -1
  35. package/dist/lib/node-esm/react-surface-4JPB2SZX.mjs +286 -0
  36. package/dist/lib/node-esm/react-surface-4JPB2SZX.mjs.map +7 -0
  37. package/dist/lib/node-esm/types.mjs +7 -2
  38. package/dist/types/src/KanbanPlugin.d.ts +1 -3
  39. package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
  40. package/dist/types/src/capabilities/artifact-definition.d.ts +11 -0
  41. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  42. package/dist/types/src/capabilities/index.d.ts +4 -0
  43. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  44. package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
  45. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  46. package/dist/types/src/capabilities/react-surface.d.ts +4 -0
  47. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  48. package/dist/types/src/components/KanbanContainer.d.ts +1 -2
  49. package/dist/types/src/components/KanbanContainer.d.ts.map +1 -1
  50. package/dist/types/src/components/KanbanViewEditor.d.ts +2 -3
  51. package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -1
  52. package/dist/types/src/components/index.d.ts +1 -0
  53. package/dist/types/src/components/index.d.ts.map +1 -1
  54. package/dist/types/src/index.d.ts +1 -2
  55. package/dist/types/src/index.d.ts.map +1 -1
  56. package/dist/types/src/meta.d.ts +2 -2
  57. package/dist/types/src/meta.d.ts.map +1 -1
  58. package/dist/types/src/translations.d.ts +3 -0
  59. package/dist/types/src/translations.d.ts.map +1 -1
  60. package/dist/types/src/types.d.ts +31 -9
  61. package/dist/types/src/types.d.ts.map +1 -1
  62. package/dist/types/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +26 -29
  64. package/src/KanbanPlugin.tsx +51 -71
  65. package/src/capabilities/artifact-definition.ts +131 -0
  66. package/src/capabilities/index.ts +9 -0
  67. package/src/capabilities/intent-resolver.ts +65 -0
  68. package/src/capabilities/react-surface.tsx +89 -0
  69. package/src/components/KanbanContainer.tsx +38 -37
  70. package/src/components/KanbanViewEditor.tsx +54 -37
  71. package/src/components/index.ts +1 -0
  72. package/src/index.ts +1 -4
  73. package/src/meta.ts +4 -2
  74. package/src/translations.ts +1 -0
  75. package/src/types.ts +34 -20
  76. package/dist/lib/browser/chunk-JZBAL6SW.mjs +0 -56
  77. package/dist/lib/browser/chunk-JZBAL6SW.mjs.map +0 -7
  78. package/dist/lib/browser/chunk-LG4OMN5S.mjs +0 -18
  79. package/dist/lib/browser/chunk-LG4OMN5S.mjs.map +0 -7
  80. package/dist/lib/browser/meta.mjs +0 -9
  81. package/dist/lib/browser/meta.mjs.map +0 -7
  82. package/dist/lib/node/chunk-BE2FRW7E.cjs.map +0 -7
  83. package/dist/lib/node/chunk-MBAGHRFM.cjs +0 -41
  84. package/dist/lib/node/chunk-MBAGHRFM.cjs.map +0 -7
  85. package/dist/lib/node/meta.cjs +0 -30
  86. package/dist/lib/node/meta.cjs.map +0 -7
  87. package/dist/lib/node-esm/chunk-L7JM7LGJ.mjs +0 -57
  88. package/dist/lib/node-esm/chunk-L7JM7LGJ.mjs.map +0 -7
  89. package/dist/lib/node-esm/chunk-OTZHYV3S.mjs +0 -20
  90. package/dist/lib/node-esm/chunk-OTZHYV3S.mjs.map +0 -7
  91. package/dist/lib/node-esm/meta.mjs +0 -10
  92. package/dist/lib/node-esm/meta.mjs.map +0 -7
@@ -0,0 +1,123 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ KANBAN_PLUGIN,
4
+ KanbanAction,
5
+ createKanban
6
+ } from "./chunk-TZ3QKBLD.mjs";
7
+
8
+ // packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts
9
+ import { contributes, Capabilities, createResolver } from "@dxos/app-framework";
10
+ import { invariant } from "@dxos/invariant";
11
+ import { getSpace } from "@dxos/react-client/echo";
12
+ import { ViewProjection } from "@dxos/schema";
13
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts";
14
+ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, [
15
+ createResolver({
16
+ intent: KanbanAction.Create,
17
+ resolve: async ({ space, initialSchema, initialPivotColumn }) => ({
18
+ data: {
19
+ object: await createKanban({
20
+ space,
21
+ initialSchema,
22
+ initialPivotColumn
23
+ })
24
+ }
25
+ })
26
+ }),
27
+ createResolver({
28
+ intent: KanbanAction.DeleteCardField,
29
+ resolve: ({ kanban, fieldId, deletionData }, undo) => {
30
+ invariant(kanban.cardView, void 0, {
31
+ F: __dxlog_file,
32
+ L: 24,
33
+ S: void 0,
34
+ A: [
35
+ "kanban.cardView",
36
+ ""
37
+ ]
38
+ });
39
+ invariant(kanban.cardView.target?.query.type, void 0, {
40
+ F: __dxlog_file,
41
+ L: 25,
42
+ S: void 0,
43
+ A: [
44
+ "kanban.cardView.target?.query.type",
45
+ ""
46
+ ]
47
+ });
48
+ const schema = kanban.cardView.target && getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);
49
+ invariant(schema, void 0, {
50
+ F: __dxlog_file,
51
+ L: 29,
52
+ S: void 0,
53
+ A: [
54
+ "schema",
55
+ ""
56
+ ]
57
+ });
58
+ const projection = new ViewProjection(schema, kanban.cardView.target);
59
+ if (!undo) {
60
+ const { deleted, index } = projection.deleteFieldProjection(fieldId);
61
+ return {
62
+ undoable: {
63
+ message: [
64
+ "card field deleted label",
65
+ {
66
+ ns: KANBAN_PLUGIN
67
+ }
68
+ ],
69
+ data: {
70
+ deletionData: {
71
+ ...deleted,
72
+ index
73
+ }
74
+ }
75
+ }
76
+ };
77
+ } else if (undo && deletionData) {
78
+ const { field, props, index } = deletionData;
79
+ projection.setFieldProjection({
80
+ field,
81
+ props
82
+ }, index);
83
+ }
84
+ }
85
+ }),
86
+ createResolver({
87
+ intent: KanbanAction.DeleteCard,
88
+ resolve: ({ card }, undo) => {
89
+ const space = getSpace(card);
90
+ invariant(space, void 0, {
91
+ F: __dxlog_file,
92
+ L: 50,
93
+ S: void 0,
94
+ A: [
95
+ "space",
96
+ ""
97
+ ]
98
+ });
99
+ if (!undo) {
100
+ space.db.remove(card);
101
+ return {
102
+ undoable: {
103
+ message: [
104
+ "card deleted label",
105
+ {
106
+ ns: KANBAN_PLUGIN
107
+ }
108
+ ],
109
+ data: {
110
+ card
111
+ }
112
+ }
113
+ };
114
+ } else {
115
+ space.db.add(card);
116
+ }
117
+ }
118
+ })
119
+ ]);
120
+ export {
121
+ intent_resolver_default as default
122
+ };
123
+ //# sourceMappingURL=intent-resolver-QQWZXC5O.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, Capabilities, createResolver } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { ViewProjection } from '@dxos/schema';\n\nimport { KANBAN_PLUGIN } from '../meta';\nimport { createKanban, KanbanAction } from '../types';\n\nexport default () =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: KanbanAction.Create,\n resolve: async ({ space, initialSchema, initialPivotColumn }) => ({\n data: { object: await createKanban({ space, initialSchema, initialPivotColumn }) },\n }),\n }),\n createResolver({\n intent: KanbanAction.DeleteCardField,\n resolve: ({ kanban, fieldId, deletionData }, undo) => {\n invariant(kanban.cardView);\n invariant(kanban.cardView.target?.query.type);\n\n const schema =\n kanban.cardView.target && getSpace(kanban)?.db.schemaRegistry.getSchema(kanban.cardView.target.query.type);\n invariant(schema);\n const projection = new ViewProjection(schema, kanban.cardView.target!);\n\n if (!undo) {\n const { deleted, index } = projection.deleteFieldProjection(fieldId);\n return {\n undoable: {\n message: ['card field deleted label', { ns: KANBAN_PLUGIN }],\n data: { deletionData: { ...deleted, index } },\n },\n };\n } else if (undo && deletionData) {\n const { field, props, index } = deletionData;\n projection.setFieldProjection({ field, props }, index);\n }\n },\n }),\n createResolver({\n intent: KanbanAction.DeleteCard,\n resolve: ({ card }, undo) => {\n const space = getSpace(card);\n invariant(space);\n\n if (!undo) {\n space.db.remove(card);\n return {\n undoable: {\n message: ['card deleted label', { ns: KANBAN_PLUGIN }],\n data: { card },\n },\n };\n } else {\n space.db.add(card);\n }\n },\n }),\n ]);\n"],
5
+ "mappings": ";;;;;;;;AAIA,SAASA,aAAaC,cAAcC,sBAAsB;AAC1D,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;;AAK/B,IAAA,0BAAe,MACbC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,aAAaC;IACrBC,SAAS,OAAO,EAAEC,OAAOC,eAAeC,mBAAkB,OAAQ;MAChEC,MAAM;QAAEC,QAAQ,MAAMC,aAAa;UAAEL;UAAOC;UAAeC;QAAmB,CAAA;MAAG;IACnF;EACF,CAAA;EACAP,eAAe;IACbC,QAAQC,aAAaS;IACrBP,SAAS,CAAC,EAAEQ,QAAQC,SAASC,aAAY,GAAIC,SAAAA;AAC3CC,gBAAUJ,OAAOK,UAAQ,QAAA;;;;;;;;;AACzBD,gBAAUJ,OAAOK,SAASC,QAAQC,MAAMC,MAAAA,QAAAA;;;;;;;;;AAExC,YAAMC,SACJT,OAAOK,SAASC,UAAUI,SAASV,MAAAA,GAASW,GAAGC,eAAeC,UAAUb,OAAOK,SAASC,OAAOC,MAAMC,IAAI;AAC3GJ,gBAAUK,QAAAA,QAAAA;;;;;;;;;AACV,YAAMK,aAAa,IAAIC,eAAeN,QAAQT,OAAOK,SAASC,MAAM;AAEpE,UAAI,CAACH,MAAM;AACT,cAAM,EAAEa,SAASC,MAAK,IAAKH,WAAWI,sBAAsBjB,OAAAA;AAC5D,eAAO;UACLkB,UAAU;YACRC,SAAS;cAAC;cAA4B;gBAAEC,IAAIC;cAAc;;YAC1D1B,MAAM;cAAEM,cAAc;gBAAE,GAAGc;gBAASC;cAAM;YAAE;UAC9C;QACF;MACF,WAAWd,QAAQD,cAAc;AAC/B,cAAM,EAAEqB,OAAOC,OAAOP,MAAK,IAAKf;AAChCY,mBAAWW,mBAAmB;UAAEF;UAAOC;QAAM,GAAGP,KAAAA;MAClD;IACF;EACF,CAAA;EACA7B,eAAe;IACbC,QAAQC,aAAaoC;IACrBlC,SAAS,CAAC,EAAEmC,KAAI,GAAIxB,SAAAA;AAClB,YAAMV,QAAQiB,SAASiB,IAAAA;AACvBvB,gBAAUX,OAAAA,QAAAA;;;;;;;;;AAEV,UAAI,CAACU,MAAM;AACTV,cAAMkB,GAAGiB,OAAOD,IAAAA;AAChB,eAAO;UACLR,UAAU;YACRC,SAAS;cAAC;cAAsB;gBAAEC,IAAIC;cAAc;;YACpD1B,MAAM;cAAE+B;YAAK;UACf;QACF;MACF,OAAO;AACLlC,cAAMkB,GAAGkB,IAAIF,IAAAA;MACf;IACF;EACF,CAAA;CACD;",
6
+ "names": ["contributes", "Capabilities", "createResolver", "invariant", "getSpace", "ViewProjection", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "KanbanAction", "Create", "resolve", "space", "initialSchema", "initialPivotColumn", "data", "object", "createKanban", "DeleteCardField", "kanban", "fieldId", "deletionData", "undo", "invariant", "cardView", "target", "query", "type", "schema", "getSpace", "db", "schemaRegistry", "getSchema", "projection", "ViewProjection", "deleted", "index", "deleteFieldProjection", "undoable", "message", "ns", "KANBAN_PLUGIN", "field", "props", "setFieldProjection", "DeleteCard", "card", "remove", "add"]
7
+ }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx":{"bytes":8391,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/index.ts":{"bytes":545,"imports":[{"path":"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/meta.ts":{"bytes":1585,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/types.ts":{"bytes":7681,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytes":8135,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/translations.ts":{"bytes":3142,"imports":[{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx":{"bytes":13760,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-kanban/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./components/KanbanViewEditor"},{"path":"packages/plugins/experimental/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/experimental/plugin-kanban/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/experimental/plugin-kanban/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/experimental/plugin-kanban/src/index.ts":{"bytes":795,"imports":[{"path":"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"},{"path":"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15979},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-L7JM7LGJ.mjs","kind":"import-statement"},{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-OTZHYV3S.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true}],"exports":["KanbanPlugin","default"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/index.ts","inputs":{"packages/plugins/experimental/plugin-kanban/src/KanbanPlugin.tsx":{"bytesInOutput":3653},"packages/plugins/experimental/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2185},"packages/plugins/experimental/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":1900},"packages/plugins/experimental/plugin-kanban/src/translations.ts":{"bytesInOutput":804},"packages/plugins/experimental/plugin-kanban/src/index.ts":{"bytesInOutput":32}},"bytes":9343},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/meta.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-OTZHYV3S.mjs","kind":"import-statement"}],"exports":["KANBAN_PLUGIN","default"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/meta.ts","inputs":{},"bytes":253},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-L7JM7LGJ.mjs","kind":"import-statement"},{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-OTZHYV3S.mjs","kind":"import-statement"}],"exports":["KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/experimental/plugin-kanban/src/types.ts","inputs":{},"bytes":296},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-L7JM7LGJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4308},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-L7JM7LGJ.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-OTZHYV3S.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["KanbanAction","createKanban","isKanban"],"inputs":{"packages/plugins/experimental/plugin-kanban/src/types.ts":{"bytesInOutput":1368}},"bytes":1677},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-OTZHYV3S.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":748},"packages/plugins/experimental/plugin-kanban/dist/lib/node-esm/chunk-OTZHYV3S.mjs":{"imports":[],"exports":["KANBAN_PLUGIN","meta_default"],"inputs":{"packages/plugins/experimental/plugin-kanban/src/meta.ts":{"bytesInOutput":320}},"bytes":561}}}
1
+ {"inputs":{"packages/plugins/plugin-kanban/src/meta.ts":{"bytes":2257,"imports":[],"format":"esm"},"packages/plugins/plugin-kanban/src/types.ts":{"bytes":11041,"imports":[{"path":"@effect/schema/AST","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts":{"bytes":19338,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/assistant","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytes":10411,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx":{"bytes":10185,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytes":11797,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytes":644,"imports":[{"path":"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx","kind":"import-statement","original":"./KanbanContainer"},{"path":"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx","kind":"import-statement","original":"./KanbanViewEditor"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx":{"bytes":13335,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytes":1366,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts","kind":"dynamic-import","original":"./artifact-definition"},{"path":"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/plugin-kanban/src/translations.ts":{"bytes":3267,"imports":[{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx":{"bytes":8907,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-kanban/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-kanban/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-kanban/src/index.ts":{"bytes":594,"imports":[{"path":"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx","kind":"import-statement","original":"./KanbanPlugin"},{"path":"packages/plugins/plugin-kanban/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-kanban/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6210},"packages/plugins/plugin-kanban/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/artifact-definition-MVIL3EEK.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-4JPB2SZX.mjs","kind":"dynamic-import"},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true}],"exports":["KANBAN_PLUGIN","KanbanPlugin","meta"],"entryPoint":"packages/plugins/plugin-kanban/src/index.ts","inputs":{"packages/plugins/plugin-kanban/src/KanbanPlugin.tsx":{"bytesInOutput":1883},"packages/plugins/plugin-kanban/src/capabilities/index.ts":{"bytesInOutput":273},"packages/plugins/plugin-kanban/src/translations.ts":{"bytesInOutput":850},"packages/plugins/plugin-kanban/src/index.ts":{"bytesInOutput":0}},"bytes":3515},"packages/plugins/plugin-kanban/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-kanban/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs","kind":"import-statement"}],"exports":["CreateKanbanSchema","InitialPivotColumnAnnotationId","InitialSchemaAnnotationId","KanbanAction","createKanban","isKanban"],"entryPoint":"packages/plugins/plugin-kanban/src/types.ts","inputs":{},"bytes":435},"packages/plugins/plugin-kanban/dist/lib/node-esm/artifact-definition-MVIL3EEK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8692},"packages/plugins/plugin-kanban/dist/lib/node-esm/artifact-definition-MVIL3EEK.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/artifact","kind":"import-statement","external":true},{"path":"@dxos/assistant","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts","inputs":{"packages/plugins/plugin-kanban/src/capabilities/artifact-definition.ts":{"bytesInOutput":5912}},"bytes":6245},"packages/plugins/plugin-kanban/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4328},"packages/plugins/plugin-kanban/dist/lib/node-esm/intent-resolver-QQWZXC5O.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-kanban/src/capabilities/intent-resolver.ts":{"bytesInOutput":2874}},"bytes":3228},"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-4JPB2SZX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18198},"packages/plugins/plugin-kanban/dist/lib/node-esm/react-surface-4JPB2SZX.mjs":{"imports":[{"path":"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/effect","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx":{"bytesInOutput":3057},"packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx":{"bytesInOutput":2376},"packages/plugins/plugin-kanban/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx":{"bytesInOutput":3200}},"bytes":9252},"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6724},"packages/plugins/plugin-kanban/dist/lib/node-esm/chunk-TZ3QKBLD.mjs":{"imports":[{"path":"@effect/schema/AST","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban","kind":"import-statement","external":true},{"path":"@dxos/react-ui-kanban/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["CreateKanbanSchema","InitialPivotColumnAnnotationId","InitialSchemaAnnotationId","KANBAN_PLUGIN","KanbanAction","createKanban","isKanban","meta"],"inputs":{"packages/plugins/plugin-kanban/src/types.ts":{"bytesInOutput":2188},"packages/plugins/plugin-kanban/src/meta.ts":{"bytesInOutput":564}},"bytes":3197}}}
@@ -0,0 +1,286 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ InitialPivotColumnAnnotationId,
4
+ InitialSchemaAnnotationId,
5
+ KANBAN_PLUGIN,
6
+ KanbanAction,
7
+ isKanban
8
+ } from "./chunk-TZ3QKBLD.mjs";
9
+
10
+ // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
11
+ import React3, { useMemo as useMemo2 } from "react";
12
+ import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
13
+ import { findAnnotation } from "@dxos/effect";
14
+ import { getSpace as getSpace3, isSpace } from "@dxos/react-client/echo";
15
+ import { SelectInput as SelectInput2, useFormValues } from "@dxos/react-ui-form";
16
+
17
+ // packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx
18
+ import React, { useCallback, useEffect, useState } from "react";
19
+ import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
20
+ import { useGlobalFilteredObjects } from "@dxos/plugin-search";
21
+ import { Filter, useQuery, getSpace, create } from "@dxos/react-client/echo";
22
+ import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
23
+ import { StackItem } from "@dxos/react-ui-stack";
24
+ import { ViewProjection } from "@dxos/schema";
25
+ var KanbanContainer = ({ kanban }) => {
26
+ const [cardSchema, setCardSchema] = useState();
27
+ const [projection, setProjection] = useState();
28
+ const space = getSpace(kanban);
29
+ const { dispatchPromise: dispatch } = useIntentDispatcher();
30
+ useEffect(() => {
31
+ if (kanban.cardView?.target?.query?.type && space) {
32
+ const query = space.db.schemaRegistry.query({
33
+ typename: kanban.cardView.target.query.type
34
+ });
35
+ const unsubscribe = query.subscribe(() => {
36
+ const [schema] = query.results;
37
+ if (schema) {
38
+ setCardSchema(schema);
39
+ }
40
+ }, {
41
+ fire: true
42
+ });
43
+ return unsubscribe;
44
+ }
45
+ }, [
46
+ kanban.cardView?.target?.query,
47
+ space
48
+ ]);
49
+ useEffect(() => {
50
+ if (kanban.cardView?.target && cardSchema) {
51
+ setProjection(new ViewProjection(cardSchema, kanban.cardView.target));
52
+ }
53
+ }, [
54
+ kanban.cardView?.target,
55
+ cardSchema,
56
+ JSON.stringify(cardSchema?.jsonSchema)
57
+ ]);
58
+ const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());
59
+ const filteredObjects = useGlobalFilteredObjects(objects);
60
+ const model = useKanbanModel({
61
+ kanban,
62
+ cardSchema,
63
+ projection,
64
+ items: filteredObjects
65
+ });
66
+ const handleAddCard = useCallback((columnValue) => {
67
+ const path = model?.columnFieldPath;
68
+ if (space && cardSchema && path) {
69
+ const card = create(cardSchema, {
70
+ [path]: columnValue
71
+ });
72
+ space.db.add(card);
73
+ return card.id;
74
+ }
75
+ }, [
76
+ space,
77
+ cardSchema,
78
+ model
79
+ ]);
80
+ const handleRemoveCard = useCallback((card) => {
81
+ void dispatch(createIntent(KanbanAction.DeleteCard, {
82
+ card
83
+ }));
84
+ }, [
85
+ dispatch
86
+ ]);
87
+ return /* @__PURE__ */ React.createElement(StackItem.Content, {
88
+ toolbar: false
89
+ }, model && /* @__PURE__ */ React.createElement(Kanban, {
90
+ model,
91
+ onAddCard: handleAddCard,
92
+ onRemoveCard: handleRemoveCard
93
+ }));
94
+ };
95
+
96
+ // packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx
97
+ import React2, { useCallback as useCallback2, useMemo } from "react";
98
+ import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
99
+ import { FormatEnum } from "@dxos/echo-schema";
100
+ import { invariant } from "@dxos/invariant";
101
+ import { Filter as Filter2, getSpace as getSpace2, useQuery as useQuery2, useSchema } from "@dxos/react-client/echo";
102
+ import { ViewEditor, Form, SelectInput } from "@dxos/react-ui-form";
103
+ import { KanbanSettingsSchema } from "@dxos/react-ui-kanban";
104
+ import { ViewType, ViewProjection as ViewProjection2 } from "@dxos/schema";
105
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx";
106
+ var KanbanViewEditor = ({ kanban }) => {
107
+ const { dispatchPromise: dispatch } = useIntentDispatcher2();
108
+ const space = getSpace2(kanban);
109
+ const currentTypename = useMemo(() => kanban?.cardView?.target?.query?.type, [
110
+ kanban?.cardView?.target?.query?.type
111
+ ]);
112
+ const schema = useSchema(space, currentTypename);
113
+ const views = useQuery2(space, Filter2.schema(ViewType));
114
+ const updateViewTypename = useCallback2((newTypename) => {
115
+ invariant(schema, void 0, {
116
+ F: __dxlog_file,
117
+ L: 28,
118
+ S: void 0,
119
+ A: [
120
+ "schema",
121
+ ""
122
+ ]
123
+ });
124
+ const matchingViews = views.filter((view) => view.query.type === currentTypename);
125
+ for (const view of matchingViews) {
126
+ view.query.type = newTypename;
127
+ }
128
+ schema.updateTypename(newTypename);
129
+ }, [
130
+ views,
131
+ schema
132
+ ]);
133
+ const handleDelete = useCallback2((fieldId) => dispatch?.(createIntent2(KanbanAction.DeleteCardField, {
134
+ kanban,
135
+ fieldId
136
+ })), [
137
+ dispatch,
138
+ kanban
139
+ ]);
140
+ const projection = useMemo(() => {
141
+ if (kanban?.cardView?.target && schema) {
142
+ return new ViewProjection2(schema, kanban.cardView.target);
143
+ }
144
+ }, [
145
+ kanban?.cardView?.target,
146
+ schema,
147
+ JSON.stringify(schema)
148
+ ]);
149
+ const selectFields = useMemo(() => {
150
+ if (!projection) {
151
+ return [];
152
+ }
153
+ return projection.getFieldProjections().filter((field) => field.props.format === FormatEnum.SingleSelect).map(({ field }) => ({
154
+ value: field.id,
155
+ label: field.path
156
+ }));
157
+ }, [
158
+ projection
159
+ ]);
160
+ const onSave = useCallback2((values) => {
161
+ kanban.columnFieldId = values.columnFieldId;
162
+ }, [
163
+ kanban
164
+ ]);
165
+ const initialValues = useMemo(() => ({
166
+ columnFieldId: kanban.columnFieldId
167
+ }), [
168
+ kanban
169
+ ]);
170
+ const custom = useMemo(() => ({
171
+ columnFieldId: (props) => /* @__PURE__ */ React2.createElement(SelectInput, {
172
+ ...props,
173
+ options: selectFields
174
+ })
175
+ }), [
176
+ selectFields
177
+ ]);
178
+ if (!space || !schema || !kanban.cardView?.target) {
179
+ return null;
180
+ }
181
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Form, {
182
+ schema: KanbanSettingsSchema,
183
+ values: initialValues,
184
+ onSave,
185
+ autoSave: true,
186
+ Custom: custom
187
+ }), /* @__PURE__ */ React2.createElement(ViewEditor, {
188
+ registry: space.db.schemaRegistry,
189
+ schema,
190
+ view: kanban.cardView.target,
191
+ onTypenameChanged: updateViewTypename,
192
+ onDelete: handleDelete
193
+ }));
194
+ };
195
+
196
+ // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
197
+ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
198
+ createSurface({
199
+ id: `${KANBAN_PLUGIN}/kanban`,
200
+ role: [
201
+ "article",
202
+ "section"
203
+ ],
204
+ filter: (data) => isKanban(data.subject),
205
+ component: ({ data, role }) => /* @__PURE__ */ React3.createElement(KanbanContainer, {
206
+ kanban: data.subject,
207
+ role
208
+ })
209
+ }),
210
+ createSurface({
211
+ id: `${KANBAN_PLUGIN}/settings`,
212
+ role: "complementary--settings",
213
+ filter: (data) => isKanban(data.subject),
214
+ component: ({ data }) => /* @__PURE__ */ React3.createElement(KanbanViewEditor, {
215
+ kanban: data.subject
216
+ })
217
+ }),
218
+ createSurface({
219
+ id: `${KANBAN_PLUGIN}/create-initial-schema-form-[schema]`,
220
+ role: "form-input",
221
+ filter: (data) => {
222
+ const annotation = findAnnotation(data.schema.ast, InitialSchemaAnnotationId);
223
+ return !!annotation;
224
+ },
225
+ component: ({ data: { target }, ...inputProps }) => {
226
+ const props = inputProps;
227
+ const space = isSpace(target) ? target : getSpace3(target);
228
+ if (!space) {
229
+ return null;
230
+ }
231
+ const schemata = space?.db.schemaRegistry.query().runSync();
232
+ return /* @__PURE__ */ React3.createElement(SelectInput2, {
233
+ ...props,
234
+ options: schemata.map((schema) => ({
235
+ value: schema.typename
236
+ }))
237
+ });
238
+ }
239
+ }),
240
+ createSurface({
241
+ id: `${KANBAN_PLUGIN}/create-initial-schema-form-[pivot-column]`,
242
+ role: "form-input",
243
+ filter: (data) => {
244
+ const annotation = findAnnotation(data.schema.ast, InitialPivotColumnAnnotationId);
245
+ return !!annotation;
246
+ },
247
+ component: ({ data: { target }, ...inputProps }) => {
248
+ const props = inputProps;
249
+ const space = isSpace(target) ? target : getSpace3(target);
250
+ if (!space) {
251
+ return null;
252
+ }
253
+ const { initialSchema } = useFormValues();
254
+ const [selectedSchema] = space?.db.schemaRegistry.query({
255
+ typename: initialSchema
256
+ }).runSync();
257
+ const singleSelectColumns = useMemo2(() => {
258
+ if (!selectedSchema?.jsonSchema?.properties) {
259
+ return [];
260
+ }
261
+ const columns = Object.entries(selectedSchema.jsonSchema.properties).reduce((acc, [key, value]) => {
262
+ if (typeof value === "object" && value?.format === "single-select") {
263
+ acc.push(key);
264
+ }
265
+ return acc;
266
+ }, []);
267
+ return columns;
268
+ }, [
269
+ selectedSchema?.jsonSchema
270
+ ]);
271
+ if (!initialSchema) {
272
+ return null;
273
+ }
274
+ return /* @__PURE__ */ React3.createElement(SelectInput2, {
275
+ ...props,
276
+ options: singleSelectColumns.map((column) => ({
277
+ value: column
278
+ }))
279
+ });
280
+ }
281
+ })
282
+ ]);
283
+ export {
284
+ react_surface_default as default
285
+ };
286
+ //# sourceMappingURL=react-surface-4JPB2SZX.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/KanbanContainer.tsx", "../../../src/components/KanbanViewEditor.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { type S } from '@dxos/echo-schema';\nimport { findAnnotation } from '@dxos/effect';\nimport { type CollectionType } from '@dxos/plugin-space/types';\nimport { getSpace, isSpace, type Space } from '@dxos/react-client/echo';\nimport { type InputProps, SelectInput, useFormValues } from '@dxos/react-ui-form';\nimport { type KanbanType } from '@dxos/react-ui-kanban';\n\nimport { KanbanContainer, KanbanViewEditor } from '../components';\nimport { KANBAN_PLUGIN } from '../meta';\nimport { isKanban, InitialSchemaAnnotationId, InitialPivotColumnAnnotationId } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${KANBAN_PLUGIN}/kanban`,\n role: ['article', 'section'],\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data, role }) => <KanbanContainer kanban={data.subject} role={role} />,\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/settings`,\n role: 'complementary--settings',\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data }) => <KanbanViewEditor kanban={data.subject} />,\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/create-initial-schema-form-[schema]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema<any>; target: Space | CollectionType | undefined } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, InitialSchemaAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target }, ...inputProps }) => {\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n const schemata = space?.db.schemaRegistry.query().runSync();\n\n return <SelectInput {...props} options={schemata.map((schema) => ({ value: schema.typename }))} />;\n },\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/create-initial-schema-form-[pivot-column]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema<any>; target: Space | CollectionType | undefined } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, InitialPivotColumnAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target }, ...inputProps }) => {\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n const { initialSchema } = useFormValues();\n const [selectedSchema] = space?.db.schemaRegistry.query({ typename: initialSchema }).runSync();\n\n const singleSelectColumns = useMemo(() => {\n if (!selectedSchema?.jsonSchema?.properties) {\n return [];\n }\n\n const columns = Object.entries(selectedSchema.jsonSchema.properties).reduce<string[]>((acc, [key, value]) => {\n if (typeof value === 'object' && value?.format === 'single-select') {\n acc.push(key);\n }\n return acc;\n }, []);\n\n return columns;\n }, [selectedSchema?.jsonSchema]);\n\n if (!initialSchema) {\n return null;\n }\n\n return <SelectInput {...props} options={singleSelectColumns.map((column) => ({ value: column }))} />;\n },\n }),\n ]);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { type EchoSchema } from '@dxos/echo-schema';\nimport { useGlobalFilteredObjects } from '@dxos/plugin-search';\nimport { Filter, useQuery, getSpace, create } from '@dxos/react-client/echo';\nimport { type KanbanType, useKanbanModel, Kanban } from '@dxos/react-ui-kanban';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { ViewProjection } from '@dxos/schema';\n\nimport { KanbanAction } from '../types';\n\nexport const KanbanContainer = ({ kanban }: { kanban: KanbanType; role: string }) => {\n const [cardSchema, setCardSchema] = useState<EchoSchema>();\n const [projection, setProjection] = useState<ViewProjection>();\n const space = getSpace(kanban);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n useEffect(() => {\n if (kanban.cardView?.target?.query?.type && space) {\n const query = space.db.schemaRegistry.query({ typename: kanban.cardView.target.query.type });\n const unsubscribe = query.subscribe(\n () => {\n const [schema] = query.results;\n if (schema) {\n setCardSchema(schema);\n }\n },\n { fire: true },\n );\n return unsubscribe;\n }\n }, [kanban.cardView?.target?.query, space]);\n\n useEffect(() => {\n if (kanban.cardView?.target && cardSchema) {\n setProjection(new ViewProjection(cardSchema, kanban.cardView.target));\n }\n // TODO(ZaymonFC): Is there a better way to get notified about deep changes in the json schema?\n }, [kanban.cardView?.target, cardSchema, JSON.stringify(cardSchema?.jsonSchema)]);\n\n const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());\n const filteredObjects = useGlobalFilteredObjects(objects);\n\n const model = useKanbanModel({\n kanban,\n cardSchema,\n projection,\n items: filteredObjects,\n });\n\n const handleAddCard = useCallback(\n (columnValue: string | undefined) => {\n const path = model?.columnFieldPath;\n if (space && cardSchema && path) {\n const card = create(cardSchema, { [path]: columnValue });\n space.db.add(card);\n return card.id;\n }\n },\n [space, cardSchema, model],\n );\n\n const handleRemoveCard = useCallback(\n (card: { id: string }) => {\n void dispatch(createIntent(KanbanAction.DeleteCard, { card }));\n },\n [dispatch],\n );\n\n return (\n <StackItem.Content toolbar={false}>\n {model && <Kanban model={model} onAddCard={handleAddCard} onRemoveCard={handleRemoveCard} />}\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { FormatEnum } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { Filter, getSpace, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { ViewEditor, Form, SelectInput, type CustomInputMap } from '@dxos/react-ui-form';\nimport { type KanbanType, KanbanSettingsSchema } from '@dxos/react-ui-kanban';\nimport { ViewType, ViewProjection } from '@dxos/schema';\n\nimport { KanbanAction } from '../types';\n\ntype KanbanViewEditorProps = { kanban: KanbanType };\n\nexport const KanbanViewEditor = ({ kanban }: KanbanViewEditorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const space = getSpace(kanban);\n const currentTypename = useMemo(() => kanban?.cardView?.target?.query?.type, [kanban?.cardView?.target?.query?.type]);\n const schema = useSchema(space, currentTypename);\n const views = useQuery(space, Filter.schema(ViewType));\n\n const updateViewTypename = useCallback(\n (newTypename: string) => {\n invariant(schema);\n const matchingViews = views.filter((view) => view.query.type === currentTypename);\n for (const view of matchingViews) {\n view.query.type = newTypename;\n }\n schema.updateTypename(newTypename);\n },\n [views, schema],\n );\n\n const handleDelete = useCallback(\n (fieldId: string) => dispatch?.(createIntent(KanbanAction.DeleteCardField, { kanban, fieldId })),\n [dispatch, kanban],\n );\n\n const projection = useMemo(() => {\n if (kanban?.cardView?.target && schema) {\n return new ViewProjection(schema, kanban.cardView.target);\n }\n }, [kanban?.cardView?.target, schema, JSON.stringify(schema)]);\n\n const selectFields = useMemo(() => {\n if (!projection) {\n return [];\n }\n\n return projection\n .getFieldProjections()\n .filter((field) => field.props.format === FormatEnum.SingleSelect)\n .map(({ field }) => ({ value: field.id, label: field.path }));\n }, [projection]);\n\n const onSave = useCallback(\n (values: Partial<{ columnFieldId: string }>) => {\n kanban.columnFieldId = values.columnFieldId;\n },\n [kanban],\n );\n\n const initialValues = useMemo(() => ({ columnFieldId: kanban.columnFieldId }), [kanban]);\n const custom: CustomInputMap = useMemo(\n () => ({ columnFieldId: (props) => <SelectInput {...props} options={selectFields} /> }),\n [selectFields],\n );\n\n if (!space || !schema || !kanban.cardView?.target) {\n return null;\n }\n\n return (\n <>\n <Form schema={KanbanSettingsSchema} values={initialValues} onSave={onSave} autoSave Custom={custom} />\n <ViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={kanban.cardView.target}\n onTypenameChanged={updateViewTypename}\n onDelete={handleDelete}\n />\n </>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useMemo", "Capabilities", "contributes", "createSurface", "findAnnotation", "getSpace", "isSpace", "SelectInput", "useFormValues", "React", "useCallback", "useEffect", "useState", "createIntent", "useIntentDispatcher", "useGlobalFilteredObjects", "Filter", "useQuery", "getSpace", "create", "useKanbanModel", "Kanban", "StackItem", "ViewProjection", "KanbanContainer", "kanban", "cardSchema", "setCardSchema", "useState", "projection", "setProjection", "space", "getSpace", "dispatchPromise", "dispatch", "useIntentDispatcher", "useEffect", "cardView", "target", "query", "type", "db", "schemaRegistry", "typename", "unsubscribe", "subscribe", "schema", "results", "fire", "ViewProjection", "JSON", "stringify", "jsonSchema", "objects", "useQuery", "Filter", "nothing", "filteredObjects", "useGlobalFilteredObjects", "model", "useKanbanModel", "items", "handleAddCard", "useCallback", "columnValue", "path", "columnFieldPath", "card", "create", "add", "id", "handleRemoveCard", "createIntent", "KanbanAction", "DeleteCard", "StackItem", "Content", "toolbar", "Kanban", "onAddCard", "onRemoveCard", "React", "useCallback", "useMemo", "createIntent", "useIntentDispatcher", "FormatEnum", "invariant", "Filter", "getSpace", "useQuery", "useSchema", "ViewEditor", "Form", "SelectInput", "KanbanSettingsSchema", "ViewType", "ViewProjection", "KanbanViewEditor", "kanban", "dispatchPromise", "dispatch", "useIntentDispatcher", "space", "getSpace", "currentTypename", "useMemo", "cardView", "target", "query", "type", "schema", "useSchema", "views", "useQuery", "Filter", "ViewType", "updateViewTypename", "useCallback", "newTypename", "invariant", "matchingViews", "filter", "view", "updateTypename", "handleDelete", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "projection", "ViewProjection", "JSON", "stringify", "selectFields", "getFieldProjections", "field", "props", "format", "FormatEnum", "SingleSelect", "map", "value", "id", "label", "path", "onSave", "values", "columnFieldId", "initialValues", "custom", "React", "SelectInput", "options", "Form", "KanbanSettingsSchema", "autoSave", "Custom", "ViewEditor", "registry", "db", "schemaRegistry", "onTypenameChanged", "onDelete", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "KANBAN_PLUGIN", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor", "annotation", "findAnnotation", "schema", "ast", "InitialSchemaAnnotationId", "target", "inputProps", "props", "space", "isSpace", "getSpace", "schemata", "db", "schemaRegistry", "query", "runSync", "SelectInput", "options", "map", "value", "typename", "InitialPivotColumnAnnotationId", "initialSchema", "useFormValues", "selectedSchema", "singleSelectColumns", "useMemo", "jsonSchema", "properties", "columns", "Object", "entries", "reduce", "acc", "key", "format", "push", "column"]
7
+ }
@@ -1,11 +1,16 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
+ CreateKanbanSchema,
4
+ InitialPivotColumnAnnotationId,
5
+ InitialSchemaAnnotationId,
3
6
  KanbanAction,
4
7
  createKanban,
5
8
  isKanban
6
- } from "./chunk-L7JM7LGJ.mjs";
7
- import "./chunk-OTZHYV3S.mjs";
9
+ } from "./chunk-TZ3QKBLD.mjs";
8
10
  export {
11
+ CreateKanbanSchema,
12
+ InitialPivotColumnAnnotationId,
13
+ InitialSchemaAnnotationId,
9
14
  KanbanAction,
10
15
  createKanban,
11
16
  isKanban
@@ -1,4 +1,2 @@
1
- import { type PluginDefinition } from '@dxos/app-framework';
2
- import { type KanbanPluginProvides } from './types';
3
- export declare const KanbanPlugin: () => PluginDefinition<KanbanPluginProvides>;
1
+ export declare const KanbanPlugin: () => import("@dxos/app-framework").Plugin;
4
2
  //# sourceMappingURL=KanbanPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanPlugin.d.ts","sourceRoot":"","sources":["../../../src/KanbanPlugin.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,gBAAgB,EAA+C,MAAM,qBAAqB,CAAC;AAUzG,OAAO,EAA0B,KAAK,oBAAoB,EAAgB,MAAM,SAAS,CAAC;AAE1F,eAAO,MAAM,YAAY,QAAO,gBAAgB,CAAC,oBAAoB,CAgEpE,CAAC"}
1
+ {"version":3,"file":"KanbanPlugin.d.ts","sourceRoot":"","sources":["../../../src/KanbanPlugin.tsx"],"names":[],"mappings":"AAeA,eAAO,MAAM,YAAY,4CA+CrB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type PromiseIntentDispatcher } from '@dxos/app-framework';
2
+ import { type Space } from '@dxos/react-client/echo';
3
+ declare global {
4
+ interface ToolContextExtensions {
5
+ space?: Space;
6
+ dispatch?: PromiseIntentDispatcher;
7
+ }
8
+ }
9
+ declare const _default: () => import("@dxos/app-framework").Capability<import("@dxos/artifact").ArtifactDefinition>;
10
+ export default _default;
11
+ //# sourceMappingURL=artifact-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-definition.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/artifact-definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkD,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAMnH,OAAO,EAA4B,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAS/E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,QAAQ,CAAC,EAAE,uBAAuB,CAAC;KACpC;CACF;;AAED,wBAsGE"}
@@ -0,0 +1,4 @@
1
+ export declare const ArtifactDefinition: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/artifact").ArtifactDefinition> | import("@dxos/app-framework").AnyCapability[]>>;
2
+ export declare const IntentResolver: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver> | import("@dxos/app-framework").AnyCapability[]>>;
3
+ export declare const ReactSurface: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface> | import("@dxos/app-framework").AnyCapability[]>>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,oLAA8C,CAAC;AAC9E,eAAO,MAAM,cAAc,kMAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,gMAAwC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Capabilities } from '@dxos/app-framework';
2
+ declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
3
+ export default _default;
4
+ //# sourceMappingURL=intent-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,MAAM,qBAAqB,CAAC;;AAQhF,wBAoDK"}
@@ -0,0 +1,4 @@
1
+ import { Capabilities } from '@dxos/app-framework';
2
+ declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.ReactSurface>;
3
+ export default _default;
4
+ //# sourceMappingURL=react-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAA8B,MAAM,qBAAqB,CAAC;;AAY/E,wBAsEK"}