@dxos/plugin-kanban 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

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 (225) hide show
  1. package/dist/lib/browser/KanbanContainer-BCXSJ6KS.mjs +304 -0
  2. package/dist/lib/browser/KanbanContainer-BCXSJ6KS.mjs.map +7 -0
  3. package/dist/lib/browser/KanbanViewEditor-IH5CJ6BW.mjs +66 -0
  4. package/dist/lib/browser/KanbanViewEditor-IH5CJ6BW.mjs.map +7 -0
  5. package/dist/lib/browser/blueprint-definition-HFEKGFJK.mjs +17 -0
  6. package/dist/lib/browser/blueprint-definition-HFEKGFJK.mjs.map +7 -0
  7. package/dist/lib/browser/blueprints/index.mjs +8 -0
  8. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  10. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-QSWCFMEB.mjs +385 -0
  12. package/dist/lib/browser/chunk-QSWCFMEB.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-RNFIFE2P.mjs +213 -0
  14. package/dist/lib/browser/chunk-RNFIFE2P.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-TLYZSC7O.mjs +29 -0
  16. package/dist/lib/browser/chunk-TLYZSC7O.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +65 -68
  18. package/dist/lib/browser/index.mjs.map +4 -4
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/operation-resolver-BRA2OHUE.mjs +162 -0
  21. package/dist/lib/browser/operation-resolver-BRA2OHUE.mjs.map +7 -0
  22. package/dist/lib/browser/react-surface-FOMOGFVW.mjs +99 -0
  23. package/dist/lib/browser/react-surface-FOMOGFVW.mjs.map +7 -0
  24. package/dist/lib/browser/types/index.mjs +14 -5
  25. package/dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs +305 -0
  26. package/dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs.map +7 -0
  27. package/dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs +67 -0
  28. package/dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs.map +7 -0
  29. package/dist/lib/node-esm/blueprint-definition-NARBX32U.mjs +18 -0
  30. package/dist/lib/node-esm/blueprint-definition-NARBX32U.mjs.map +7 -0
  31. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  32. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-4AWDHQVY.mjs +214 -0
  34. package/dist/lib/node-esm/chunk-4AWDHQVY.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-CSL3HF2X.mjs +386 -0
  36. package/dist/lib/node-esm/chunk-CSL3HF2X.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  38. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-X3UJUQIV.mjs +31 -0
  40. package/dist/lib/node-esm/chunk-X3UJUQIV.mjs.map +7 -0
  41. package/dist/lib/node-esm/index.mjs +65 -68
  42. package/dist/lib/node-esm/index.mjs.map +4 -4
  43. package/dist/lib/node-esm/meta.json +1 -1
  44. package/dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs +163 -0
  45. package/dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs.map +7 -0
  46. package/dist/lib/node-esm/react-surface-AITKFRBE.mjs +100 -0
  47. package/dist/lib/node-esm/react-surface-AITKFRBE.mjs.map +7 -0
  48. package/dist/lib/node-esm/types/index.mjs +14 -5
  49. package/dist/types/src/KanbanPlugin.d.ts +2 -1
  50. package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
  51. package/dist/types/src/blueprints/index.d.ts +2 -0
  52. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  53. package/dist/types/src/blueprints/kanban-blueprint.d.ts +4 -0
  54. package/dist/types/src/blueprints/kanban-blueprint.d.ts.map +1 -0
  55. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  56. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  57. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  58. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  60. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  61. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  62. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/index.d.ts +3 -3
  64. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  66. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  68. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  70. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  72. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  73. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +58 -0
  74. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -0
  75. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts +70 -0
  76. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -0
  77. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts +10 -0
  78. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -0
  79. package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts +9 -0
  80. package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts.map +1 -0
  81. package/dist/types/src/components/KanbanBoard/index.d.ts +2 -0
  82. package/dist/types/src/components/KanbanBoard/index.d.ts.map +1 -0
  83. package/dist/types/src/components/index.d.ts +1 -2
  84. package/dist/types/src/components/index.d.ts.map +1 -1
  85. package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts +6 -0
  86. package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts.map +1 -0
  87. package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts +77 -0
  88. package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts.map +1 -0
  89. package/dist/types/src/containers/KanbanContainer/index.d.ts +3 -0
  90. package/dist/types/src/containers/KanbanContainer/index.d.ts.map +1 -0
  91. package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts +6 -0
  92. package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts.map +1 -0
  93. package/dist/types/src/containers/KanbanViewEditor/index.d.ts +3 -0
  94. package/dist/types/src/containers/KanbanViewEditor/index.d.ts.map +1 -0
  95. package/dist/types/src/containers/index.d.ts +4 -0
  96. package/dist/types/src/containers/index.d.ts.map +1 -0
  97. package/dist/types/src/hooks/index.d.ts +6 -0
  98. package/dist/types/src/hooks/index.d.ts.map +1 -0
  99. package/dist/types/src/hooks/useEchoChangeCallback.d.ts +13 -0
  100. package/dist/types/src/hooks/useEchoChangeCallback.d.ts.map +1 -0
  101. package/dist/types/src/hooks/useKanbanBoardModel.d.ts +16 -0
  102. package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -0
  103. package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts +2 -0
  104. package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts.map +1 -0
  105. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts +22 -0
  106. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts.map +1 -0
  107. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts +19 -0
  108. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts.map +1 -0
  109. package/dist/types/src/hooks/useProjectionModel.d.ts +15 -0
  110. package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -0
  111. package/dist/types/src/meta.d.ts +2 -2
  112. package/dist/types/src/meta.d.ts.map +1 -1
  113. package/dist/types/src/playwright/board-manager.d.ts +5 -0
  114. package/dist/types/src/playwright/board-manager.d.ts.map +1 -0
  115. package/dist/types/src/playwright/playwright.config.d.ts +3 -0
  116. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  117. package/dist/types/src/playwright/smoke.spec.d.ts +2 -0
  118. package/dist/types/src/playwright/smoke.spec.d.ts.map +1 -0
  119. package/dist/types/src/testing/KanbanCardTileSimple.d.ts +5 -0
  120. package/dist/types/src/testing/KanbanCardTileSimple.d.ts.map +1 -0
  121. package/dist/types/src/testing/index.d.ts +2 -0
  122. package/dist/types/src/testing/index.d.ts.map +1 -0
  123. package/dist/types/src/translations.d.ts +35 -9
  124. package/dist/types/src/translations.d.ts.map +1 -1
  125. package/dist/types/src/types/Kanban.d.ts +37 -0
  126. package/dist/types/src/types/Kanban.d.ts.map +1 -0
  127. package/dist/types/src/types/constants.d.ts +6 -0
  128. package/dist/types/src/types/constants.d.ts.map +1 -0
  129. package/dist/types/src/types/index.d.ts +2 -0
  130. package/dist/types/src/types/index.d.ts.map +1 -1
  131. package/dist/types/src/types/schema.d.ts +98 -43
  132. package/dist/types/src/types/schema.d.ts.map +1 -1
  133. package/dist/types/src/types/types.d.ts +28 -0
  134. package/dist/types/src/types/types.d.ts.map +1 -1
  135. package/dist/types/src/util/arrangement.d.ts +68 -0
  136. package/dist/types/src/util/arrangement.d.ts.map +1 -0
  137. package/dist/types/src/util/arrangement.test.d.ts +2 -0
  138. package/dist/types/src/util/arrangement.test.d.ts.map +1 -0
  139. package/dist/types/src/util/index.d.ts +2 -0
  140. package/dist/types/src/util/index.d.ts.map +1 -0
  141. package/dist/types/tsconfig.tsbuildinfo +1 -1
  142. package/package.json +67 -46
  143. package/src/KanbanPlugin.tsx +35 -54
  144. package/src/blueprints/index.ts +5 -0
  145. package/src/blueprints/kanban-blueprint.ts +31 -0
  146. package/src/capabilities/artifact-definition/artifact-definition.ts +151 -0
  147. package/src/capabilities/artifact-definition/index.ts +7 -0
  148. package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
  149. package/src/capabilities/blueprint-definition/index.ts +7 -0
  150. package/src/capabilities/index.ts +3 -5
  151. package/src/capabilities/operation-resolver/index.ts +7 -0
  152. package/src/capabilities/operation-resolver/operation-resolver.ts +133 -0
  153. package/src/capabilities/react-surface/index.ts +7 -0
  154. package/src/capabilities/react-surface/react-surface.tsx +86 -0
  155. package/src/components/KanbanBoard/KanbanBoard.stories.tsx +142 -0
  156. package/src/components/KanbanBoard/KanbanBoard.tsx +184 -0
  157. package/src/components/KanbanBoard/KanbanCard.tsx +87 -0
  158. package/src/components/KanbanBoard/KanbanColumn.tsx +69 -0
  159. package/src/components/KanbanBoard/index.ts +5 -0
  160. package/src/components/index.ts +1 -2
  161. package/src/containers/KanbanContainer/KanbanContainer.stories.tsx +263 -0
  162. package/src/containers/KanbanContainer/KanbanContainer.tsx +87 -0
  163. package/src/containers/KanbanContainer/index.ts +7 -0
  164. package/src/containers/KanbanViewEditor/KanbanViewEditor.tsx +63 -0
  165. package/src/containers/KanbanViewEditor/index.ts +7 -0
  166. package/src/containers/index.ts +8 -0
  167. package/src/hooks/index.ts +9 -0
  168. package/src/hooks/useEchoChangeCallback.ts +30 -0
  169. package/src/hooks/useKanbanBoardModel.test.ts +235 -0
  170. package/src/hooks/useKanbanBoardModel.ts +143 -0
  171. package/src/hooks/useKanbanColumnEventHandler.ts +106 -0
  172. package/src/hooks/useKanbanItemEventHandler.ts +133 -0
  173. package/src/hooks/useProjectionModel.ts +58 -0
  174. package/src/meta.ts +8 -4
  175. package/src/playwright/board-manager.ts +13 -0
  176. package/src/playwright/playwright.config.ts +19 -0
  177. package/src/playwright/smoke.spec.ts +107 -0
  178. package/src/testing/KanbanCardTileSimple.tsx +76 -0
  179. package/src/testing/index.ts +5 -0
  180. package/src/translations.ts +13 -6
  181. package/src/types/Kanban.ts +67 -0
  182. package/src/types/constants.ts +9 -0
  183. package/src/types/index.ts +2 -0
  184. package/src/types/schema.ts +84 -38
  185. package/src/types/types.ts +35 -0
  186. package/src/util/arrangement.test.ts +208 -0
  187. package/src/util/arrangement.ts +167 -0
  188. package/src/util/index.ts +5 -0
  189. package/dist/lib/browser/blueprint-definition-UYVX622Q.mjs +0 -28
  190. package/dist/lib/browser/blueprint-definition-UYVX622Q.mjs.map +0 -7
  191. package/dist/lib/browser/chunk-K7KYFJ3P.mjs +0 -80
  192. package/dist/lib/browser/chunk-K7KYFJ3P.mjs.map +0 -7
  193. package/dist/lib/browser/intent-resolver-LR3SDMKQ.mjs +0 -111
  194. package/dist/lib/browser/intent-resolver-LR3SDMKQ.mjs.map +0 -7
  195. package/dist/lib/browser/react-surface-R2ORFB43.mjs +0 -255
  196. package/dist/lib/browser/react-surface-R2ORFB43.mjs.map +0 -7
  197. package/dist/lib/node-esm/blueprint-definition-42P47FUY.mjs +0 -30
  198. package/dist/lib/node-esm/blueprint-definition-42P47FUY.mjs.map +0 -7
  199. package/dist/lib/node-esm/chunk-VDWYSHP4.mjs +0 -82
  200. package/dist/lib/node-esm/chunk-VDWYSHP4.mjs.map +0 -7
  201. package/dist/lib/node-esm/intent-resolver-CKDNVLND.mjs +0 -112
  202. package/dist/lib/node-esm/intent-resolver-CKDNVLND.mjs.map +0 -7
  203. package/dist/lib/node-esm/react-surface-RMRLHCOY.mjs +0 -256
  204. package/dist/lib/node-esm/react-surface-RMRLHCOY.mjs.map +0 -7
  205. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  206. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  207. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  208. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  209. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  210. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  211. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  212. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  213. package/dist/types/src/components/KanbanContainer.d.ts +0 -7
  214. package/dist/types/src/components/KanbanContainer.d.ts.map +0 -1
  215. package/dist/types/src/components/KanbanContainer.stories.d.ts +0 -41
  216. package/dist/types/src/components/KanbanContainer.stories.d.ts.map +0 -1
  217. package/dist/types/src/components/KanbanViewEditor.d.ts +0 -8
  218. package/dist/types/src/components/KanbanViewEditor.d.ts.map +0 -1
  219. package/src/capabilities/artifact-definition.ts +0 -148
  220. package/src/capabilities/blueprint-definition.ts +0 -30
  221. package/src/capabilities/intent-resolver.ts +0 -71
  222. package/src/capabilities/react-surface.tsx +0 -84
  223. package/src/components/KanbanContainer.stories.tsx +0 -193
  224. package/src/components/KanbanContainer.tsx +0 -95
  225. package/src/components/KanbanViewEditor.tsx +0 -64
@@ -0,0 +1,213 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
4
+
5
+ // src/types/constants.ts
6
+ var UNCATEGORIZED_VALUE = "__uncategorized__";
7
+ var UNCATEGORIZED_ATTRIBUTES = {
8
+ title: "Uncategorized",
9
+ color: "neutral"
10
+ };
11
+
12
+ // src/types/Kanban.ts
13
+ var Kanban_exports = {};
14
+ __export(Kanban_exports, {
15
+ Arrangement: () => Arrangement,
16
+ Kanban: () => Kanban,
17
+ make: () => make
18
+ });
19
+ import * as Schema from "effect/Schema";
20
+ import { Obj, Ref, Type } from "@dxos/echo";
21
+ import { View } from "@dxos/echo";
22
+ import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
23
+ import { ViewAnnotation } from "@dxos/schema";
24
+ var ArrangementColumnEntry = Schema.Struct({
25
+ ids: Schema.Array(Obj.ID),
26
+ hidden: Schema.optional(Schema.Boolean)
27
+ });
28
+ var ArrangementColumns = Schema.Record({
29
+ key: Schema.String,
30
+ value: ArrangementColumnEntry
31
+ }).pipe(FormInputAnnotation.set(false));
32
+ var Arrangement = Schema.Struct({
33
+ order: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),
34
+ columns: ArrangementColumns
35
+ }).pipe(FormInputAnnotation.set(false));
36
+ var Kanban = Schema.Struct({
37
+ name: Schema.optional(Schema.String),
38
+ view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),
39
+ /** Column display order and per-column card ids. */
40
+ arrangement: Arrangement
41
+ }).pipe(Type.object({
42
+ typename: "dxos.org/type/Kanban",
43
+ version: "0.3.0"
44
+ }), LabelAnnotation.set([
45
+ "name"
46
+ ]), ViewAnnotation.set(true));
47
+ var make = (props) => {
48
+ const { name, view, arrangement } = props;
49
+ const order = arrangement?.order ?? [];
50
+ const columns = arrangement?.columns ?? {};
51
+ return Obj.make(Kanban, {
52
+ name,
53
+ view: Ref.make(view),
54
+ arrangement: {
55
+ order,
56
+ columns
57
+ }
58
+ });
59
+ };
60
+
61
+ // src/types/schema.ts
62
+ import * as Schema2 from "effect/Schema";
63
+ import { Capability } from "@dxos/app-framework";
64
+ import { View as View2 } from "@dxos/echo";
65
+ import { Operation } from "@dxos/operation";
66
+ import { TypeInputOptionsAnnotation } from "@dxos/plugin-space/types";
67
+
68
+ // src/meta.ts
69
+ import { trim } from "@dxos/util";
70
+ var meta = {
71
+ id: "dxos.org/plugin/kanban",
72
+ name: "Kanban",
73
+ description: trim`
74
+ Visual project management using customizable kanban boards to track workflow progress.
75
+ Organize table data into columns, drag and drop items between stages, and trigger automations based on status changes.
76
+ `,
77
+ icon: "ph--kanban--regular",
78
+ iconHue: "green",
79
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-kanban",
80
+ screenshots: [
81
+ "https://dxos.network/plugin-details-kanban-dark.png"
82
+ ]
83
+ };
84
+
85
+ // src/types/schema.ts
86
+ var PivotColumnAnnotationId = /* @__PURE__ */ Symbol.for("@dxos/plugin-kanban/annotation/PivotColumn");
87
+ var SettingsSchema = Schema2.Struct({
88
+ columnFieldId: Schema2.String.annotations({
89
+ title: "Column field"
90
+ })
91
+ });
92
+ var CreateKanbanSchema = Schema2.Struct({
93
+ name: Schema2.optional(Schema2.String),
94
+ // TODO(wittjosiah): This should be a query input instead.
95
+ typename: Schema2.String.pipe(Schema2.annotations({
96
+ title: "Select card type"
97
+ }), TypeInputOptionsAnnotation.set({
98
+ location: [
99
+ "database",
100
+ "runtime"
101
+ ],
102
+ kind: [
103
+ "user"
104
+ ],
105
+ registered: [
106
+ "registered"
107
+ ]
108
+ }), Schema2.optional),
109
+ initialPivotColumn: Schema2.optional(Schema2.String.annotations({
110
+ [PivotColumnAnnotationId]: true,
111
+ title: "Pivot column"
112
+ }))
113
+ });
114
+ var KANBAN_OPERATION = `${meta.id}/operation`;
115
+ (function(KanbanOperation2) {
116
+ KanbanOperation2.DeleteCardFieldOutput = Schema2.Struct({
117
+ field: View2.FieldSchema.annotations({
118
+ description: "The deleted field schema."
119
+ }),
120
+ props: Schema2.Any.annotations({
121
+ description: "The deleted field properties."
122
+ }),
123
+ index: Schema2.Number.annotations({
124
+ description: "The index the field was at."
125
+ })
126
+ });
127
+ KanbanOperation2.DeleteCardField = Operation.make({
128
+ meta: {
129
+ key: `${KANBAN_OPERATION}/delete-card-field`,
130
+ name: "Delete Card Field"
131
+ },
132
+ services: [
133
+ Capability.Service
134
+ ],
135
+ schema: {
136
+ input: Schema2.Struct({
137
+ view: View2.View,
138
+ fieldId: Schema2.String
139
+ }),
140
+ output: KanbanOperation2.DeleteCardFieldOutput
141
+ }
142
+ });
143
+ KanbanOperation2.DeleteCardOutput = Schema2.Struct({
144
+ card: Schema2.Any.annotations({
145
+ description: "The deleted card."
146
+ })
147
+ });
148
+ KanbanOperation2.DeleteCard = Operation.make({
149
+ meta: {
150
+ key: `${KANBAN_OPERATION}/delete-card`,
151
+ name: "Delete Card"
152
+ },
153
+ schema: {
154
+ input: Schema2.Struct({
155
+ card: Schema2.Any
156
+ }),
157
+ output: KanbanOperation2.DeleteCardOutput
158
+ }
159
+ });
160
+ KanbanOperation2.RestoreCardField = Operation.make({
161
+ meta: {
162
+ key: `${KANBAN_OPERATION}/restore-card-field`,
163
+ name: "Restore Card Field"
164
+ },
165
+ services: [
166
+ Capability.Service
167
+ ],
168
+ schema: {
169
+ input: Schema2.Struct({
170
+ view: View2.View.annotations({
171
+ description: "The view to restore the field to."
172
+ }),
173
+ field: View2.FieldSchema.annotations({
174
+ description: "The field schema to restore."
175
+ }),
176
+ props: Schema2.Any.annotations({
177
+ description: "The field properties to restore."
178
+ }),
179
+ index: Schema2.Number.annotations({
180
+ description: "The index to restore the field at."
181
+ })
182
+ }),
183
+ output: Schema2.Void
184
+ }
185
+ });
186
+ KanbanOperation2.RestoreCard = Operation.make({
187
+ meta: {
188
+ key: `${KANBAN_OPERATION}/restore-card`,
189
+ name: "Restore Card"
190
+ },
191
+ schema: {
192
+ input: Schema2.Struct({
193
+ card: Schema2.Any.annotations({
194
+ description: "The card to restore."
195
+ })
196
+ }),
197
+ output: Schema2.Void
198
+ }
199
+ });
200
+ })(KanbanOperation || (KanbanOperation = {}));
201
+ var KanbanOperation;
202
+
203
+ export {
204
+ meta,
205
+ UNCATEGORIZED_VALUE,
206
+ UNCATEGORIZED_ATTRIBUTES,
207
+ Kanban_exports,
208
+ PivotColumnAnnotationId,
209
+ SettingsSchema,
210
+ CreateKanbanSchema,
211
+ KanbanOperation
212
+ };
213
+ //# sourceMappingURL=chunk-RNFIFE2P.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/constants.ts", "../../../src/types/Kanban.ts", "../../../src/types/schema.ts", "../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nexport const UNCATEGORIZED_VALUE = '__uncategorized__' as const;\nexport const UNCATEGORIZED_ATTRIBUTES = {\n title: 'Uncategorized',\n color: 'neutral',\n} as const;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { View } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { ViewAnnotation } from '@dxos/schema';\n\n/** Per-column entry (ids order, optional hidden). */\nconst ArrangementColumnEntry = Schema.Struct({\n ids: Schema.Array(Obj.ID),\n hidden: Schema.optional(Schema.Boolean),\n});\n\n/** Keyed by columnValue. */\nconst ArrangementColumns = Schema.Record({\n key: Schema.String,\n value: ArrangementColumnEntry,\n}).pipe(FormInputAnnotation.set(false));\n\n/** Column order and per-column card ids. */\nexport const Arrangement = Schema.Struct({\n order: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),\n columns: ArrangementColumns,\n}).pipe(FormInputAnnotation.set(false));\n\nexport type Arrangement = Schema.Schema.Type<typeof Arrangement>;\n\nexport const Kanban = Schema.Struct({\n name: Schema.optional(Schema.String),\n\n view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),\n\n /** Column display order and per-column card ids. */\n arrangement: Arrangement,\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Kanban',\n version: '0.3.0',\n }),\n LabelAnnotation.set(['name']),\n ViewAnnotation.set(true),\n);\n\n/** Instance type; use Kanban.Kanban in type position so namespace has .Kanban as type and .KanbanSchema as schema. */\nexport interface Kanban extends Schema.Schema.Type<typeof Kanban> {}\n\ntype MakeProps = Omit<Partial<Obj.MakeProps<typeof Kanban>>, 'view'> & {\n view: View.View;\n};\n\n/**\n * Make a kanban as a view of a data set.\n */\nexport const make = (props: MakeProps): Kanban => {\n const { name, view, arrangement } = props;\n const order = arrangement?.order ?? [];\n const columns = arrangement?.columns ?? {};\n return Obj.make(Kanban, {\n name,\n view: Ref.make(view),\n arrangement: { order, columns },\n });\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { View } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { TypeInputOptionsAnnotation } from '@dxos/plugin-space/types';\n\nimport { meta } from '../meta';\n\n/**\n * Kanban data model.\n * A Kanban board is a collection of columns, each of which contains a collection of items.\n * The layout of columns and items is controlled by models.\n * The underlying data model may be represented by direct object relationships\n * (e.g., a column object containing an array of ordered items) or projections constructed\n * by the model (e.g., a query of items based on metadata within a column object).\n */\n\n// TODO(wittjosiah): Factor out?\nexport const PivotColumnAnnotationId = Symbol.for('@dxos/plugin-kanban/annotation/PivotColumn');\n\nexport const SettingsSchema = Schema.Struct({\n columnFieldId: Schema.String.annotations({\n title: 'Column field',\n }),\n});\n\nexport const CreateKanbanSchema = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): This should be a query input instead.\n typename: Schema.String.pipe(\n Schema.annotations({ title: 'Select card type' }),\n TypeInputOptionsAnnotation.set({\n location: ['database', 'runtime'],\n kind: ['user'],\n registered: ['registered'],\n }),\n Schema.optional,\n ),\n initialPivotColumn: Schema.optional(\n Schema.String.annotations({\n [PivotColumnAnnotationId]: true,\n title: 'Pivot column',\n }),\n ),\n});\n\nconst KANBAN_OPERATION = `${meta.id}/operation`;\n\nexport namespace KanbanOperation {\n export const DeleteCardFieldOutput = Schema.Struct({\n field: View.FieldSchema.annotations({ description: 'The deleted field schema.' }),\n props: Schema.Any.annotations({ description: 'The deleted field properties.' }),\n index: Schema.Number.annotations({ description: 'The index the field was at.' }),\n });\n\n export type DeleteCardFieldOutput = Schema.Schema.Type<typeof DeleteCardFieldOutput>;\n\n export const DeleteCardField = Operation.make({\n meta: { key: `${KANBAN_OPERATION}/delete-card-field`, name: 'Delete Card Field' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n view: View.View,\n fieldId: Schema.String,\n }),\n output: DeleteCardFieldOutput,\n },\n });\n\n export const DeleteCardOutput = Schema.Struct({\n card: Schema.Any.annotations({ description: 'The deleted card.' }),\n });\n\n export type DeleteCardOutput = Schema.Schema.Type<typeof DeleteCardOutput>;\n\n export const DeleteCard = Operation.make({\n meta: { key: `${KANBAN_OPERATION}/delete-card`, name: 'Delete Card' },\n schema: {\n input: Schema.Struct({\n card: Schema.Any,\n }),\n output: DeleteCardOutput,\n },\n });\n\n /**\n * Restore a deleted card field (inverse of DeleteCardField).\n */\n export const RestoreCardField = Operation.make({\n meta: { key: `${KANBAN_OPERATION}/restore-card-field`, name: 'Restore Card Field' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n view: View.View.annotations({ description: 'The view to restore the field to.' }),\n field: View.FieldSchema.annotations({ description: 'The field schema to restore.' }),\n props: Schema.Any.annotations({ description: 'The field properties to restore.' }),\n index: Schema.Number.annotations({ description: 'The index to restore the field at.' }),\n }),\n output: Schema.Void,\n },\n });\n\n /**\n * Restore a deleted card (inverse of DeleteCard).\n */\n export const RestoreCard = Operation.make({\n meta: { key: `${KANBAN_OPERATION}/restore-card`, name: 'Restore Card' },\n schema: {\n input: Schema.Struct({\n card: Schema.Any.annotations({ description: 'The card to restore.' }),\n }),\n output: Schema.Void,\n },\n });\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/kanban',\n name: 'Kanban',\n description: trim`\n Visual project management using customizable kanban boards to track workflow progress.\n Organize table data into columns, drag and drop items between stages, and trigger automations based on status changes.\n `,\n icon: 'ph--kanban--regular',\n iconHue: 'green',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-kanban',\n screenshots: ['https://dxos.network/plugin-details-kanban-dark.png'],\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["UNCATEGORIZED_VALUE", "UNCATEGORIZED_ATTRIBUTES", "title", "color", "Schema", "Obj", "Ref", "Type", "View", "FormInputAnnotation", "LabelAnnotation", "ViewAnnotation", "ArrangementColumnEntry", "Struct", "ids", "Array", "Obj", "ID", "hidden", "optional", "Boolean", "ArrangementColumns", "Record", "key", "String", "value", "pipe", "FormInputAnnotation", "set", "Arrangement", "order", "columns", "Kanban", "name", "view", "Ref", "View", "arrangement", "Type", "object", "typename", "version", "LabelAnnotation", "ViewAnnotation", "make", "props", "Schema", "Capability", "View", "Operation", "TypeInputOptionsAnnotation", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots", "PivotColumnAnnotationId", "Symbol", "for", "SettingsSchema", "Struct", "columnFieldId", "String", "annotations", "title", "CreateKanbanSchema", "name", "optional", "typename", "pipe", "TypeInputOptionsAnnotation", "set", "location", "kind", "registered", "initialPivotColumn", "KANBAN_OPERATION", "meta", "id", "KanbanOperation", "DeleteCardFieldOutput", "field", "View", "FieldSchema", "description", "props", "Any", "index", "Number", "DeleteCardField", "Operation", "make", "key", "services", "Capability", "Service", "schema", "input", "view", "fieldId", "output", "DeleteCardOutput", "card", "DeleteCard", "RestoreCardField", "Void", "RestoreCard"]
7
+ }
@@ -0,0 +1,29 @@
1
+ // src/blueprints/kanban-blueprint.ts
2
+ import { Blueprint, Template } from "@dxos/blueprints";
3
+ import { trim } from "@dxos/util";
4
+ var BLUEPRINT_KEY = "dxos.org/blueprint/kanban";
5
+ var functions = [];
6
+ var make = () => Blueprint.make({
7
+ key: BLUEPRINT_KEY,
8
+ name: "Kanban",
9
+ tools: Blueprint.toolDefinitions({
10
+ functions,
11
+ tools: []
12
+ }),
13
+ instructions: Template.make({
14
+ source: trim`
15
+ You can create and update kanban boards to show data in sorted columns defined by schema.
16
+ `
17
+ })
18
+ });
19
+ var blueprint = {
20
+ key: BLUEPRINT_KEY,
21
+ functions,
22
+ make
23
+ };
24
+ var kanban_blueprint_default = blueprint;
25
+
26
+ export {
27
+ kanban_blueprint_default
28
+ };
29
+ //# sourceMappingURL=chunk-TLYZSC7O.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/kanban-blueprint.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AppCapabilities } from '@dxos/app-toolkit';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { trim } from '@dxos/util';\n\nconst BLUEPRINT_KEY = 'dxos.org/blueprint/kanban';\n\nconst functions: AppCapabilities.BlueprintDefinition['functions'] = [];\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Kanban',\n tools: Blueprint.toolDefinitions({ functions, tools: [] }),\n instructions: Template.make({\n source: trim`\n You can create and update kanban boards to show data in sorted columns defined by schema.\n `,\n }),\n });\n\nconst blueprint: AppCapabilities.BlueprintDefinition = {\n key: BLUEPRINT_KEY,\n functions,\n make,\n};\n\nexport default blueprint;\n"],
5
+ "mappings": ";AAKA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAErB,IAAMC,gBAAgB;AAEtB,IAAMC,YAA8D,CAAA;AAEpE,IAAMC,OAAO,MACXC,UAAUD,KAAK;EACbE,KAAKJ;EACLK,MAAM;EACNC,OAAOH,UAAUI,gBAAgB;IAAEN;IAAWK,OAAO,CAAA;EAAG,CAAA;EACxDE,cAAcC,SAASP,KAAK;IAC1BQ,QAAQC;;;EAGV,CAAA;AACF,CAAA;AAEF,IAAMC,YAAiD;EACrDR,KAAKJ;EACLC;EACAC;AACF;AAEA,IAAA,2BAAeU;",
6
+ "names": ["Blueprint", "Template", "trim", "BLUEPRINT_KEY", "functions", "make", "Blueprint", "key", "name", "tools", "toolDefinitions", "instructions", "Template", "source", "trim", "blueprint"]
7
+ }
@@ -1,102 +1,99 @@
1
1
  import {
2
2
  CreateKanbanSchema,
3
- KanbanAction,
3
+ Kanban_exports,
4
4
  meta
5
- } from "./chunk-K7KYFJ3P.mjs";
5
+ } from "./chunk-RNFIFE2P.mjs";
6
+ import "./chunk-J5LGTIGS.mjs";
6
7
 
7
8
  // src/KanbanPlugin.tsx
8
- import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from "@dxos/app-framework";
9
- import { ClientEvents } from "@dxos/plugin-client";
10
- import { SpaceCapabilities } from "@dxos/plugin-space";
11
- import { defineObjectForm } from "@dxos/plugin-space/types";
12
- import { translations as kanbanTranslations } from "@dxos/react-ui-kanban";
13
- import { Kanban as Kanban2 } from "@dxos/react-ui-kanban/types";
9
+ import * as Effect from "effect/Effect";
10
+ import { Plugin } from "@dxos/app-framework";
11
+ import { AppPlugin } from "@dxos/app-toolkit";
12
+ import { Type as Type2 } from "@dxos/echo";
13
+ import { ViewModel } from "@dxos/schema";
14
14
 
15
- // src/capabilities/index.ts
16
- import { lazy } from "@dxos/app-framework";
17
- var BlueprintDefinition = lazy(() => import("./blueprint-definition-UYVX622Q.mjs"));
18
- var IntentResolver = lazy(() => import("./intent-resolver-LR3SDMKQ.mjs"));
19
- var ReactSurface = lazy(() => import("./react-surface-R2ORFB43.mjs"));
15
+ // src/capabilities/blueprint-definition/index.ts
16
+ import { Capability } from "@dxos/app-framework";
17
+ var BlueprintDefinition = Capability.lazy("BlueprintDefinition", () => import("./blueprint-definition-HFEKGFJK.mjs"));
18
+
19
+ // src/capabilities/operation-resolver/index.ts
20
+ import { Capability as Capability2 } from "@dxos/app-framework";
21
+ var OperationResolver = Capability2.lazy("OperationResolver", () => import("./operation-resolver-BRA2OHUE.mjs"));
22
+
23
+ // src/capabilities/react-surface/index.ts
24
+ import { Capability as Capability3 } from "@dxos/app-framework";
25
+ var ReactSurface = Capability3.lazy("ReactSurface", () => import("./react-surface-FOMOGFVW.mjs"));
20
26
 
21
27
  // src/translations.ts
22
- import { Kanban } from "@dxos/react-ui-kanban/types";
28
+ import { Type } from "@dxos/echo";
23
29
  var translations = [
24
30
  {
25
31
  "en-US": {
26
- [Kanban.Kanban.typename]: {
32
+ [Type.getTypename(Kanban_exports.Kanban)]: {
27
33
  "typename label": "Kanban",
28
34
  "typename label_zero": "Kanbans",
29
35
  "typename label_one": "Kanban",
30
36
  "typename label_other": "Kanbans",
31
- "object name placeholder": "New kanban"
37
+ "object name placeholder": "New kanban",
38
+ "rename object label": "Rename kanban",
39
+ "delete object label": "Delete kanban",
40
+ "object deleted label": "Kanban deleted"
32
41
  },
33
42
  [meta.id]: {
43
+ "action menu label": "Actions",
34
44
  "plugin name": "Kanban",
35
45
  "kanban title label": "Title",
36
46
  "column title label": "Column title",
37
47
  "column title placeholder": "New column",
38
- "item title label": "Item title",
39
- "item title placeholder": "New item",
40
48
  "add column label": "Add column",
41
- "add item label": "Add card",
49
+ "add card label": "Add card",
50
+ "new column name label": "New column name",
51
+ "remove card label": "Remove card",
52
+ "remove empty column label": "Remove empty column",
53
+ "column drag handle label": "Drag to rearrange",
42
54
  "delete column label": "Delete column",
43
- "delete item label": "Delete card",
44
55
  "card field deleted label": "Card field deleted",
45
- "card deleted label": "Card deleted"
56
+ "card deleted label": "Card deleted",
57
+ "select pivot placeholder": "Select a pivot column in board settings to display columns."
46
58
  }
47
59
  }
48
60
  }
49
61
  ];
50
62
 
51
63
  // src/KanbanPlugin.tsx
52
- var KanbanPlugin = definePlugin(meta, () => [
53
- defineModule({
54
- id: `${meta.id}/module/translations`,
55
- activatesOn: Events.SetupTranslations,
56
- activate: () => contributes(Capabilities.Translations, [
57
- ...translations,
58
- ...kanbanTranslations
59
- ])
60
- }),
61
- defineModule({
62
- id: `${meta.id}/module/metadata`,
63
- activatesOn: Events.SetupMetadata,
64
- activate: () => contributes(Capabilities.Metadata, {
65
- id: Kanban2.Kanban.typename,
66
- metadata: {
67
- icon: "ph--kanban--regular"
68
- }
69
- })
70
- }),
71
- defineModule({
72
- id: `${meta.id}/module/object-form`,
73
- activatesOn: ClientEvents.SetupSchema,
74
- activate: () => contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
75
- objectSchema: Kanban2.Kanban,
76
- formSchema: CreateKanbanSchema,
77
- hidden: true,
78
- getIntent: (props, options) => createIntent(KanbanAction.Create, {
79
- ...props,
80
- space: options.space
64
+ var KanbanPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionModule({
65
+ activate: BlueprintDefinition
66
+ }), AppPlugin.addMetadataModule({
67
+ metadata: {
68
+ id: Type2.getTypename(Kanban_exports.Kanban),
69
+ metadata: {
70
+ icon: "ph--kanban--regular",
71
+ iconHue: "green",
72
+ inputSchema: CreateKanbanSchema,
73
+ createObject: (props, { db }) => Effect.promise(async () => {
74
+ const { view } = await ViewModel.makeFromDatabase({
75
+ db,
76
+ typename: props.typename,
77
+ pivotFieldName: props.initialPivotColumn
78
+ });
79
+ return Kanban_exports.make({
80
+ name: props.name,
81
+ view
82
+ });
81
83
  })
82
- }))
83
- }),
84
- defineModule({
85
- id: `${meta.id}/module/react-surface`,
86
- activatesOn: Events.SetupReactSurface,
87
- activate: ReactSurface
88
- }),
89
- defineModule({
90
- id: `${meta.id}/module/intent-resolver`,
91
- activatesOn: Events.SetupIntentResolver,
92
- activate: IntentResolver
93
- }),
94
- defineModule({
95
- id: `${meta.id}/module/blueprint`,
96
- activatesOn: Events.SetupArtifactDefinition,
97
- activate: BlueprintDefinition
98
- })
99
- ]);
84
+ }
85
+ }
86
+ }), AppPlugin.addOperationResolverModule({
87
+ activate: OperationResolver
88
+ }), AppPlugin.addSchemaModule({
89
+ schema: [
90
+ Kanban_exports.Kanban
91
+ ]
92
+ }), AppPlugin.addSurfaceModule({
93
+ activate: ReactSurface
94
+ }), AppPlugin.addTranslationsModule({
95
+ translations
96
+ }), Plugin.make);
100
97
  export {
101
98
  KanbanPlugin,
102
99
  meta
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/KanbanPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { translations as kanbanTranslations } from '@dxos/react-ui-kanban';\nimport { Kanban } from '@dxos/react-ui-kanban/types';\n\nimport { BlueprintDefinition, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { CreateKanbanSchema, KanbanAction } from './types';\n\nexport const KanbanPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...kanbanTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: Kanban.Kanban.typename,\n metadata: {\n icon: 'ph--kanban--regular',\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Kanban.Kanban,\n formSchema: CreateKanbanSchema,\n hidden: true,\n getIntent: (props, options) => createIntent(KanbanAction.Create, { ...props, space: options.space }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = lazy(() => import('./blueprint-definition'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { Kanban } from '@dxos/react-ui-kanban/types';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [Kanban.Kanban.typename]: {\n 'typename label': 'Kanban',\n 'typename label_zero': 'Kanbans',\n 'typename label_one': 'Kanban',\n 'typename label_other': 'Kanbans',\n 'object name placeholder': 'New kanban',\n },\n [meta.id]: {\n 'plugin name': 'Kanban',\n 'kanban title label': 'Title',\n 'column title label': 'Column title',\n 'column title placeholder': 'New column',\n 'item title label': 'Item title',\n 'item title placeholder': 'New item',\n 'add column label': 'Add column',\n 'add item label': 'Add card',\n 'delete column label': 'Delete column',\n 'delete item label': 'Delete card',\n 'card field deleted label': 'Card field deleted',\n 'card deleted label': 'Card deleted',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,cAAcC,QAAQC,aAAaC,cAAcC,cAAcC,oBAAoB;AAC5F,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,gBAAgBC,0BAA0B;AACnD,SAASC,UAAAA,eAAc;;;ACLvB,SAASC,YAAY;AAEd,IAAMC,sBAAsBC,KAAK,MAAM,OAAO,qCAAA,CAAA;AAC9C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACH9C,SAASG,cAAc;AAIhB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,OAAOA,OAAOC,QAAQ,GAAG;QACxB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;MAC7B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,sBAAsB;QACtB,sBAAsB;QACtB,4BAA4B;QAC5B,oBAAoB;QACpB,0BAA0B;QAC1B,oBAAoB;QACpB,kBAAkB;QAClB,uBAAuB;QACvB,qBAAqB;QACrB,4BAA4B;QAC5B,sBAAsB;MACxB;IACF;EACF;;;;AFlBK,IAAMC,eAAeC,aAAaC,MAAM,MAAM;EACnDC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAc;SAAIC;SAAiBC;KAAmB;EACjG,CAAA;EACAV,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOQ;IACpBN,UAAU,MACRC,YAAYC,aAAaK,UAAU;MACjCX,IAAIY,QAAOA,OAAOC;MAClBC,UAAU;QACRC,MAAM;MACR;IACF,CAAA;EACJ,CAAA;EACAhB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAae,aAAaC;IAC1Bb,UAAU,MACRC,YACEa,kBAAkBC,YAClBC,iBAAiB;MACfC,cAAcT,QAAOA;MACrBU,YAAYC;MACZC,QAAQ;MACRC,WAAW,CAACC,OAAOC,YAAYC,aAAaC,aAAaC,QAAQ;QAAE,GAAGJ;QAAOK,OAAOJ,QAAQI;MAAM,CAAA;IACpG,CAAA,CAAA;EAEN,CAAA;EACAhC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO8B;IACpB5B,UAAU6B;EACZ,CAAA;EACAlC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOgC;IACpB9B,UAAU+B;EACZ,CAAA;EACApC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOkC;IACpBhC,UAAUiC;EACZ,CAAA;CACD;",
6
- "names": ["Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "translations", "kanbanTranslations", "Kanban", "lazy", "BlueprintDefinition", "lazy", "IntentResolver", "ReactSurface", "Kanban", "translations", "Kanban", "typename", "meta", "id", "KanbanPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "kanbanTranslations", "SetupMetadata", "Metadata", "Kanban", "typename", "metadata", "icon", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "CreateKanbanSchema", "hidden", "getIntent", "props", "options", "createIntent", "KanbanAction", "Create", "space", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupArtifactDefinition", "BlueprintDefinition"]
3
+ "sources": ["../../../src/KanbanPlugin.tsx", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Type } from '@dxos/echo';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { ViewModel } from '@dxos/schema';\n\nimport { BlueprintDefinition, OperationResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { CreateKanbanSchema, Kanban } from './types';\n\nexport const KanbanPlugin = Plugin.define(meta).pipe(\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addMetadataModule({\n metadata: {\n id: Type.getTypename(Kanban.Kanban),\n metadata: {\n icon: 'ph--kanban--regular',\n iconHue: 'green',\n inputSchema: CreateKanbanSchema,\n createObject: ((props, { db }) =>\n Effect.promise(async () => {\n const { view } = await ViewModel.makeFromDatabase({\n db,\n typename: props.typename,\n pivotFieldName: props.initialPivotColumn,\n });\n return Kanban.make({ name: props.name, view });\n })) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addOperationResolverModule({ activate: OperationResolver }),\n AppPlugin.addSchemaModule({ schema: [Kanban.Kanban] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\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 'rename object label': 'Rename kanban',\n 'delete object label': 'Delete kanban',\n 'object deleted label': 'Kanban deleted',\n },\n [meta.id]: {\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,YAAYA,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,QAAAA,aAAY;AAErB,SAASC,iBAAiB;;;ACN1B,SAASC,kBAAkB;AAEpB,IAAMC,sBAAsBC,WAAWC,KAAK,uBAAuB,MAAM,OAAO,qCAAA,CAAA;;;ACFvF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,oBAAoBC,YAAWC,KAAK,qBAAqB,MAAM,OAAO,mCAAA,CAAA;;;ACFnF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACFzE,SAASC,YAAY;AAMd,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,YAAYC,eAAOA,MAAM,CAAA,GAAI;QACjC,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,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;;;;AJxBK,IAAMC,eAAeC,OAAOC,OAAOC,IAAAA,EAAMC,KAC9CC,UAAUC,6BAA6B;EAAEC,UAAUC;AAAoB,CAAA,GACvEH,UAAUI,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,MAAKC,YAAYC,eAAOA,MAAM;IAClCJ,UAAU;MACRK,MAAM;MACNC,SAAS;MACTC,aAAaC;MACbC,cAAe,CAACC,OAAO,EAAEC,GAAE,MAClBC,eAAQ,YAAA;AACb,cAAM,EAAEC,KAAI,IAAK,MAAMC,UAAUC,iBAAiB;UAChDJ;UACAK,UAAUN,MAAMM;UAChBC,gBAAgBP,MAAMQ;QACxB,CAAA;AACA,eAAOd,eAAOe,KAAK;UAAEC,MAAMV,MAAMU;UAAMP;QAAK,CAAA;MAC9C,CAAA;IACJ;EACF;AACF,CAAA,GACAlB,UAAU0B,2BAA2B;EAAExB,UAAUyB;AAAkB,CAAA,GACnE3B,UAAU4B,gBAAgB;EAAEC,QAAQ;IAACpB,eAAOA;;AAAQ,CAAA,GACpDT,UAAU8B,iBAAiB;EAAE5B,UAAU6B;AAAa,CAAA,GACpD/B,UAAUgC,sBAAsB;EAAEC;AAAa,CAAA,GAC/CrC,OAAO4B,IAAI;",
6
+ "names": ["Effect", "Plugin", "AppPlugin", "Type", "ViewModel", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Type", "translations", "Type", "getTypename", "Kanban", "meta", "id", "KanbanPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addBlueprintDefinitionModule", "activate", "BlueprintDefinition", "addMetadataModule", "metadata", "id", "Type", "getTypename", "Kanban", "icon", "iconHue", "inputSchema", "CreateKanbanSchema", "createObject", "props", "db", "promise", "view", "ViewModel", "makeFromDatabase", "typename", "pivotFieldName", "initialPivotColumn", "make", "name", "addOperationResolverModule", "OperationResolver", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations"]
7
7
  }