@dxos/plugin-kanban 0.8.4-main.ae835ea → 0.8.4-main.bcb3aa67d6

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 (219) hide show
  1. package/dist/lib/browser/blueprints/index.mjs +27 -0
  2. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-A3PBV3S5.mjs +105 -0
  4. package/dist/lib/browser/chunk-A3PBV3S5.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  6. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  7. package/dist/lib/browser/delete-card-VPNVIWOA.mjs +32 -0
  8. package/dist/lib/browser/delete-card-VPNVIWOA.mjs.map +7 -0
  9. package/dist/lib/browser/delete-card-field-4HHF2GYX.mjs +50 -0
  10. package/dist/lib/browser/delete-card-field-4HHF2GYX.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +101 -85
  12. package/dist/lib/browser/index.mjs.map +4 -4
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/operations/index.mjs +13 -0
  15. package/dist/lib/browser/operations/index.mjs.map +7 -0
  16. package/dist/lib/browser/restore-card-4GG2RYKR.mjs +29 -0
  17. package/dist/lib/browser/restore-card-4GG2RYKR.mjs.map +7 -0
  18. package/dist/lib/browser/restore-card-field-3T26ACYX.mjs +48 -0
  19. package/dist/lib/browser/restore-card-field-3T26ACYX.mjs.map +7 -0
  20. package/dist/lib/browser/types/index.mjs +95 -6
  21. package/dist/lib/browser/types/index.mjs.map +4 -4
  22. package/dist/lib/node-esm/blueprints/index.mjs +28 -0
  23. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  24. package/dist/lib/node-esm/chunk-6LELYA2G.mjs +106 -0
  25. package/dist/lib/node-esm/chunk-6LELYA2G.mjs.map +7 -0
  26. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  27. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  28. package/dist/lib/node-esm/delete-card-5PW5OMFN.mjs +33 -0
  29. package/dist/lib/node-esm/delete-card-5PW5OMFN.mjs.map +7 -0
  30. package/dist/lib/node-esm/delete-card-field-KPJU2AQ3.mjs +51 -0
  31. package/dist/lib/node-esm/delete-card-field-KPJU2AQ3.mjs.map +7 -0
  32. package/dist/lib/node-esm/index.mjs +101 -85
  33. package/dist/lib/node-esm/index.mjs.map +4 -4
  34. package/dist/lib/node-esm/meta.json +1 -1
  35. package/dist/lib/node-esm/operations/index.mjs +14 -0
  36. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  37. package/dist/lib/node-esm/restore-card-X2TKMU5A.mjs +30 -0
  38. package/dist/lib/node-esm/restore-card-X2TKMU5A.mjs.map +7 -0
  39. package/dist/lib/node-esm/restore-card-field-IUTL4RTR.mjs +49 -0
  40. package/dist/lib/node-esm/restore-card-field-IUTL4RTR.mjs.map +7 -0
  41. package/dist/lib/node-esm/types/index.mjs +95 -6
  42. package/dist/lib/node-esm/types/index.mjs.map +4 -4
  43. package/dist/types/src/KanbanPlugin.d.ts +2 -1
  44. package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
  45. package/dist/types/src/blueprints/index.d.ts +2 -0
  46. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  47. package/dist/types/src/blueprints/kanban-blueprint.d.ts +4 -0
  48. package/dist/types/src/blueprints/kanban-blueprint.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
  50. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  51. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  52. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  53. package/dist/types/src/capabilities/index.d.ts +6 -3
  54. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  55. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  56. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  57. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  58. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  59. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  60. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  61. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +65 -0
  62. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -0
  63. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts +72 -0
  64. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -0
  65. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts +10 -0
  66. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -0
  67. package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts +9 -0
  68. package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts.map +1 -0
  69. package/dist/types/src/components/KanbanBoard/index.d.ts +2 -0
  70. package/dist/types/src/components/KanbanBoard/index.d.ts.map +1 -0
  71. package/dist/types/src/components/index.d.ts +1 -2
  72. package/dist/types/src/components/index.d.ts.map +1 -1
  73. package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts +6 -0
  74. package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts.map +1 -0
  75. package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts +79 -0
  76. package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts.map +1 -0
  77. package/dist/types/src/containers/KanbanContainer/index.d.ts +3 -0
  78. package/dist/types/src/containers/KanbanContainer/index.d.ts.map +1 -0
  79. package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts +6 -0
  80. package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts.map +1 -0
  81. package/dist/types/src/containers/KanbanViewEditor/index.d.ts +3 -0
  82. package/dist/types/src/containers/KanbanViewEditor/index.d.ts.map +1 -0
  83. package/dist/types/src/containers/index.d.ts +4 -0
  84. package/dist/types/src/containers/index.d.ts.map +1 -0
  85. package/dist/types/src/hooks/index.d.ts +6 -0
  86. package/dist/types/src/hooks/index.d.ts.map +1 -0
  87. package/dist/types/src/hooks/useEchoChangeCallback.d.ts +13 -0
  88. package/dist/types/src/hooks/useEchoChangeCallback.d.ts.map +1 -0
  89. package/dist/types/src/hooks/useKanbanBoardModel.d.ts +16 -0
  90. package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -0
  91. package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts +2 -0
  92. package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts.map +1 -0
  93. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts +22 -0
  94. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts.map +1 -0
  95. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts +19 -0
  96. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts.map +1 -0
  97. package/dist/types/src/hooks/useProjectionModel.d.ts +15 -0
  98. package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -0
  99. package/dist/types/src/meta.d.ts +2 -2
  100. package/dist/types/src/meta.d.ts.map +1 -1
  101. package/dist/types/src/operations/definitions.d.ts +52 -0
  102. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  103. package/dist/types/src/operations/delete-card-field.d.ts +5 -0
  104. package/dist/types/src/operations/delete-card-field.d.ts.map +1 -0
  105. package/dist/types/src/operations/delete-card.d.ts +5 -0
  106. package/dist/types/src/operations/delete-card.d.ts.map +1 -0
  107. package/dist/types/src/operations/index.d.ts +4 -0
  108. package/dist/types/src/operations/index.d.ts.map +1 -0
  109. package/dist/types/src/operations/restore-card-field.d.ts +5 -0
  110. package/dist/types/src/operations/restore-card-field.d.ts.map +1 -0
  111. package/dist/types/src/operations/restore-card.d.ts +5 -0
  112. package/dist/types/src/operations/restore-card.d.ts.map +1 -0
  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 +7 -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 +50 -22
  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 +3 -51
  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 +84 -46
  143. package/src/KanbanPlugin.tsx +49 -56
  144. package/src/blueprints/index.ts +5 -0
  145. package/src/blueprints/kanban-blueprint.ts +28 -0
  146. package/src/capabilities/artifact-definition.ts +115 -112
  147. package/src/capabilities/blueprint-definition.ts +11 -24
  148. package/src/capabilities/index.ts +9 -4
  149. package/src/capabilities/operation-handler.ts +14 -0
  150. package/src/capabilities/react-surface.tsx +70 -68
  151. package/src/capabilities/undo-mappings.ts +34 -0
  152. package/src/components/KanbanBoard/KanbanBoard.stories.tsx +142 -0
  153. package/src/components/KanbanBoard/KanbanBoard.tsx +193 -0
  154. package/src/components/KanbanBoard/KanbanCard.tsx +86 -0
  155. package/src/components/KanbanBoard/KanbanColumn.tsx +69 -0
  156. package/src/components/KanbanBoard/index.ts +5 -0
  157. package/src/components/index.ts +1 -2
  158. package/src/containers/KanbanContainer/KanbanContainer.stories.tsx +269 -0
  159. package/src/containers/KanbanContainer/KanbanContainer.tsx +96 -0
  160. package/src/containers/KanbanContainer/index.ts +7 -0
  161. package/src/containers/KanbanViewEditor/KanbanViewEditor.tsx +63 -0
  162. package/src/containers/KanbanViewEditor/index.ts +7 -0
  163. package/src/containers/index.ts +8 -0
  164. package/src/hooks/index.ts +9 -0
  165. package/src/hooks/useEchoChangeCallback.ts +30 -0
  166. package/src/hooks/useKanbanBoardModel.test.ts +235 -0
  167. package/src/hooks/useKanbanBoardModel.ts +143 -0
  168. package/src/hooks/useKanbanColumnEventHandler.ts +106 -0
  169. package/src/hooks/useKanbanItemEventHandler.ts +133 -0
  170. package/src/hooks/useProjectionModel.ts +58 -0
  171. package/src/meta.ts +3 -3
  172. package/src/operations/definitions.ts +63 -0
  173. package/src/operations/delete-card-field.ts +47 -0
  174. package/src/operations/delete-card.ts +23 -0
  175. package/src/operations/index.ts +12 -0
  176. package/src/operations/restore-card-field.ts +41 -0
  177. package/src/operations/restore-card.ts +21 -0
  178. package/src/playwright/board-manager.ts +13 -0
  179. package/src/playwright/playwright.config.ts +19 -0
  180. package/src/playwright/smoke.spec.ts +107 -0
  181. package/src/testing/KanbanCardTileSimple.tsx +82 -0
  182. package/src/testing/index.ts +5 -0
  183. package/src/translations.ts +28 -20
  184. package/src/types/Kanban.ts +71 -0
  185. package/src/types/constants.ts +9 -0
  186. package/src/types/index.ts +2 -0
  187. package/src/types/schema.ts +14 -44
  188. package/src/types/types.ts +35 -0
  189. package/src/util/arrangement.test.ts +208 -0
  190. package/src/util/arrangement.ts +167 -0
  191. package/src/util/index.ts +5 -0
  192. package/dist/lib/browser/blueprint-definition-UYVX622Q.mjs +0 -28
  193. package/dist/lib/browser/blueprint-definition-UYVX622Q.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-3UDST345.mjs +0 -85
  195. package/dist/lib/browser/chunk-3UDST345.mjs.map +0 -7
  196. package/dist/lib/browser/intent-resolver-VVBNS2TO.mjs +0 -111
  197. package/dist/lib/browser/intent-resolver-VVBNS2TO.mjs.map +0 -7
  198. package/dist/lib/browser/react-surface-FNXJ6VJX.mjs +0 -255
  199. package/dist/lib/browser/react-surface-FNXJ6VJX.mjs.map +0 -7
  200. package/dist/lib/node-esm/blueprint-definition-42P47FUY.mjs +0 -30
  201. package/dist/lib/node-esm/blueprint-definition-42P47FUY.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-JBOARUAT.mjs +0 -87
  203. package/dist/lib/node-esm/chunk-JBOARUAT.mjs.map +0 -7
  204. package/dist/lib/node-esm/intent-resolver-ACN7UALP.mjs +0 -112
  205. package/dist/lib/node-esm/intent-resolver-ACN7UALP.mjs.map +0 -7
  206. package/dist/lib/node-esm/react-surface-ZHYHCV5N.mjs +0 -256
  207. package/dist/lib/node-esm/react-surface-ZHYHCV5N.mjs.map +0 -7
  208. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  209. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  210. package/dist/types/src/components/KanbanContainer.d.ts +0 -7
  211. package/dist/types/src/components/KanbanContainer.d.ts.map +0 -1
  212. package/dist/types/src/components/KanbanContainer.stories.d.ts +0 -41
  213. package/dist/types/src/components/KanbanContainer.stories.d.ts.map +0 -1
  214. package/dist/types/src/components/KanbanViewEditor.d.ts +0 -8
  215. package/dist/types/src/components/KanbanViewEditor.d.ts.map +0 -1
  216. package/src/capabilities/intent-resolver.ts +0 -71
  217. package/src/components/KanbanContainer.stories.tsx +0 -193
  218. package/src/components/KanbanContainer.tsx +0 -95
  219. package/src/components/KanbanViewEditor.tsx +0 -64
@@ -1,12 +1,101 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- CreateKanbanSchema,
4
- KanbanAction,
5
- PivotColumnAnnotationId
6
- } from "../chunk-JBOARUAT.mjs";
3
+ __export
4
+ } from "../chunk-HSLMI22Q.mjs";
5
+
6
+ // src/types/constants.ts
7
+ var UNCATEGORIZED_VALUE = "__uncategorized__";
8
+ var UNCATEGORIZED_ATTRIBUTES = {
9
+ title: "Uncategorized",
10
+ color: "neutral"
11
+ };
12
+
13
+ // src/types/Kanban.ts
14
+ var Kanban_exports = {};
15
+ __export(Kanban_exports, {
16
+ Arrangement: () => Arrangement,
17
+ Kanban: () => Kanban,
18
+ make: () => make
19
+ });
20
+ import * as Schema from "effect/Schema";
21
+ import { Annotation, Obj, Ref, Type } from "@dxos/echo";
22
+ import { View } from "@dxos/echo";
23
+ import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
24
+ import { ViewAnnotation } from "@dxos/schema";
25
+ var ArrangementColumnEntry = Schema.Struct({
26
+ ids: Schema.Array(Obj.ID),
27
+ hidden: Schema.optional(Schema.Boolean)
28
+ });
29
+ var ArrangementColumns = Schema.Record({
30
+ key: Schema.String,
31
+ value: ArrangementColumnEntry
32
+ }).pipe(FormInputAnnotation.set(false));
33
+ var Arrangement = Schema.Struct({
34
+ order: Schema.Array(Schema.String).pipe(FormInputAnnotation.set(false)),
35
+ columns: ArrangementColumns
36
+ }).pipe(FormInputAnnotation.set(false));
37
+ var Kanban = Schema.Struct({
38
+ name: Schema.optional(Schema.String),
39
+ view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),
40
+ /** Column display order and per-column card ids. */
41
+ arrangement: Arrangement
42
+ }).pipe(Type.object({
43
+ typename: "org.dxos.type.kanban",
44
+ version: "0.1.0"
45
+ }), LabelAnnotation.set([
46
+ "name"
47
+ ]), ViewAnnotation.set(true), Annotation.IconAnnotation.set({
48
+ icon: "ph--kanban--regular",
49
+ hue: "green"
50
+ }));
51
+ var make = (props) => {
52
+ const { name, view, arrangement } = props;
53
+ const order = arrangement?.order ?? [];
54
+ const columns = arrangement?.columns ?? {};
55
+ return Obj.make(Kanban, {
56
+ name,
57
+ view: Ref.make(view),
58
+ arrangement: {
59
+ order,
60
+ columns
61
+ }
62
+ });
63
+ };
64
+
65
+ // src/types/schema.ts
66
+ import * as Schema2 from "effect/Schema";
67
+ import { TypeInputOptionsAnnotation } from "@dxos/plugin-space/types";
68
+ var PivotColumnAnnotationId = /* @__PURE__ */ Symbol.for("@dxos/plugin-kanban/annotation/PivotColumn");
69
+ var SettingsSchema = Schema2.Struct({
70
+ columnFieldId: Schema2.String.annotations({
71
+ title: "Column field"
72
+ })
73
+ });
74
+ var CreateKanbanSchema = Schema2.Struct({
75
+ name: Schema2.optional(Schema2.String),
76
+ // TODO(wittjosiah): This should be a query input instead.
77
+ typename: Schema2.String.pipe(Schema2.annotations({
78
+ title: "Select card type"
79
+ }), TypeInputOptionsAnnotation.set({
80
+ location: [
81
+ "database",
82
+ "runtime"
83
+ ],
84
+ kind: [
85
+ "user"
86
+ ]
87
+ }), Schema2.optional),
88
+ initialPivotColumn: Schema2.optional(Schema2.String.annotations({
89
+ [PivotColumnAnnotationId]: true,
90
+ title: "Pivot column"
91
+ }))
92
+ });
7
93
  export {
8
94
  CreateKanbanSchema,
9
- KanbanAction,
10
- PivotColumnAnnotationId
95
+ Kanban_exports as Kanban,
96
+ PivotColumnAnnotationId,
97
+ SettingsSchema,
98
+ UNCATEGORIZED_ATTRIBUTES,
99
+ UNCATEGORIZED_VALUE
11
100
  };
12
101
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
3
+ "sources": ["../../../../src/types/constants.ts", "../../../../src/types/Kanban.ts", "../../../../src/types/schema.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 { Annotation, 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: 'org.dxos.type.kanban',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n ViewAnnotation.set(true),\n Annotation.IconAnnotation.set({\n icon: 'ph--kanban--regular',\n hue: 'green',\n }),\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 { TypeInputOptionsAnnotation } from '@dxos/plugin-space/types';\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 }),\n Schema.optional,\n ),\n initialPivotColumn: Schema.optional(\n Schema.String.annotations({\n [PivotColumnAnnotationId]: true,\n title: 'Pivot column',\n }),\n ),\n});\n"],
5
+ "mappings": ";;;;;;AAIO,IAAMA,sBAAsB;AAC5B,IAAMC,2BAA2B;EACtCC,OAAO;EACPC,OAAO;AACT;;;ACRA;;;;;;AAIA,YAAYC,YAAY;AAExB,SAASC,YAAYC,KAAKC,KAAKC,YAAY;AAC3C,SAASC,YAAY;AACrB,SAASC,qBAAqBC,uBAAuB;AACrD,SAASC,sBAAsB;AAG/B,IAAMC,yBAAgCC,cAAO;EAC3CC,KAAYC,aAAMC,IAAIC,EAAE;EACxBC,QAAeC,gBAAgBC,cAAO;AACxC,CAAA;AAGA,IAAMC,qBAA4BC,cAAO;EACvCC,KAAYC;EACZC,OAAOb;AACT,CAAA,EAAGc,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;AAGzB,IAAMC,cAAqBhB,cAAO;EACvCiB,OAAcf,aAAaS,aAAM,EAAEE,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;EAChEG,SAASV;AACX,CAAA,EAAGK,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;AAIzB,IAAMI,SAAgBnB,cAAO;EAClCoB,MAAad,gBAAgBK,aAAM;EAEnCU,MAAMC,IAAIA,IAAIC,KAAKA,IAAI,EAAEV,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;;EAGtDS,aAAaR;AACf,CAAA,EAAGH,KACDY,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBd,IAAI;EAAC;CAAO,GAC5Be,eAAef,IAAI,IAAA,GACnBgB,WAAWC,eAAejB,IAAI;EAC5BkB,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAaK,IAAMC,OAAO,CAACC,UAAAA;AACnB,QAAM,EAAEhB,MAAMC,MAAMG,YAAW,IAAKY;AACpC,QAAMnB,QAAQO,aAAaP,SAAS,CAAA;AACpC,QAAMC,UAAUM,aAAaN,WAAW,CAAC;AACzC,SAAOf,IAAIgC,KAAKhB,QAAQ;IACtBC;IACAC,MAAMC,IAAIa,KAAKd,IAAAA;IACfG,aAAa;MAAEP;MAAOC;IAAQ;EAChC,CAAA;AACF;;;AClEA,YAAYmB,aAAY;AAExB,SAASC,kCAAkC;AAYpC,IAAMC,0BAA0BC,uBAAOC,IAAI,4CAAA;AAE3C,IAAMC,iBAAwBC,eAAO;EAC1CC,eAAsBC,eAAOC,YAAY;IACvCC,OAAO;EACT,CAAA;AACF,CAAA;AAEO,IAAMC,qBAA4BL,eAAO;EAC9CM,MAAaC,iBAAgBL,cAAM;;EAEnCM,UAAiBN,eAAOO,KACfN,oBAAY;IAAEC,OAAO;EAAmB,CAAA,GAC/CM,2BAA2BC,IAAI;IAC7BC,UAAU;MAAC;MAAY;;IACvBC,MAAM;MAAC;;EACT,CAAA,GACON,gBAAQ;EAEjBO,oBAA2BP,iBAClBL,eAAOC,YAAY;IACxB,CAACP,uBAAAA,GAA0B;IAC3BQ,OAAO;EACT,CAAA,CAAA;AAEJ,CAAA;",
6
+ "names": ["UNCATEGORIZED_VALUE", "UNCATEGORIZED_ATTRIBUTES", "title", "color", "Schema", "Annotation", "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", "Annotation", "IconAnnotation", "icon", "hue", "make", "props", "Schema", "TypeInputOptionsAnnotation", "PivotColumnAnnotationId", "Symbol", "for", "SettingsSchema", "Struct", "columnFieldId", "String", "annotations", "title", "CreateKanbanSchema", "name", "optional", "typename", "pipe", "TypeInputOptionsAnnotation", "set", "location", "kind", "initialPivotColumn"]
7
7
  }
@@ -1,2 +1,3 @@
1
- export declare const KanbanPlugin: import("@dxos/app-framework").PluginFactory<void>;
1
+ import { Plugin } from '@dxos/app-framework';
2
+ export declare const KanbanPlugin: Plugin.PluginFactory<void>;
2
3
  //# sourceMappingURL=KanbanPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanPlugin.d.ts","sourceRoot":"","sources":["../../../src/KanbanPlugin.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,YAAY,mDA+CvB,CAAC"}
1
+ {"version":3,"file":"KanbanPlugin.d.ts","sourceRoot":"","sources":["../../../src/KanbanPlugin.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAc7C,eAAO,MAAM,YAAY,4BAmCxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as KanbanBlueprint } from './kanban-blueprint';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blueprints/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type AppCapabilities } from '@dxos/app-toolkit';
2
+ declare const blueprint: AppCapabilities.BlueprintDefinition;
3
+ export default blueprint;
4
+ //# sourceMappingURL=kanban-blueprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kanban-blueprint.d.ts","sourceRoot":"","sources":["../../../../src/blueprints/kanban-blueprint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAkBzD,QAAA,MAAM,SAAS,EAAE,eAAe,CAAC,mBAGhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,4 +1,5 @@
1
- import { type PromiseIntentDispatcher } from '@dxos/app-framework';
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability, type PromiseIntentDispatcher } from '@dxos/app-framework';
2
3
  import { type Space } from '@dxos/react-client/echo';
3
4
  declare global {
4
5
  interface ToolContextExtensions {
@@ -6,6 +7,6 @@ declare global {
6
7
  dispatch?: PromiseIntentDispatcher;
7
8
  }
8
9
  }
9
- declare const _default: () => import("@dxos/app-framework").Capability<any>;
10
+ declare const _default: (props: void) => Effect.Effect<Capability.Capability<any>, never, never>;
10
11
  export default _default;
11
12
  //# sourceMappingURL=artifact-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-definition.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/artifact-definition.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgB,KAAK,uBAAuB,EAAoC,MAAM,qBAAqB,CAAC;AAMnH,OAAO,EAAU,KAAK,KAAK,EAAoB,MAAM,yBAAyB,CAAC;AAY/E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,QAAQ,CAAC,EAAE,uBAAuB,CAAC;KACpC;CACF;;AAED,wBA+GE"}
1
+ {"version":3,"file":"artifact-definition.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/artifact-definition.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAgB,UAAU,EAAE,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAO7F,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAW7D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,QAAQ,CAAC,EAAE,uBAAuB,CAAC;KACpC;CACF;;AAED,wBAkHE"}
@@ -1,5 +1,6 @@
1
- import { Blueprint } from '@dxos/blueprints';
2
- import { type FunctionDefinition } from '@dxos/functions';
3
- declare const _default: () => (import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<FunctionDefinition<any, any>[]>> | import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<Blueprint.Blueprint>>)[];
4
- export default _default;
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability } from '@dxos/app-framework';
3
+ import { AppCapabilities } from '@dxos/app-toolkit';
4
+ declare const blueprintDefinition: (props: []) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<AppCapabilities.BlueprintDefinition>>[], Error, Capability.Service>;
5
+ export default blueprintDefinition;
5
6
  //# sourceMappingURL=blueprint-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blueprint-definition.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/blueprint-definition.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAY,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAM1D,wBAiBE"}
1
+ {"version":3,"file":"blueprint-definition.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/blueprint-definition.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,QAAA,MAAM,mBAAmB,gJAG8E,CAAC;AAExG,eAAe,mBAAmB,CAAC"}
@@ -1,4 +1,7 @@
1
- export declare const BlueprintDefinition: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").AnyCapability[] | import("@dxos/app-framework").Capability<unknown>>>;
2
- export declare const IntentResolver: (props?: import("@dxos/app-framework").PluginContext | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<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").InterfaceDef<import("@dxos/app-framework").Capabilities.ReactSurface>> | import("@dxos/app-framework").AnyCapability[]>>;
1
+ import { Capability } from '@dxos/app-framework';
2
+ import { OperationHandlerSet } from '@dxos/operation';
3
+ export declare const BlueprintDefinition: Capability.LazyCapability<[], Capability.Capability<Capability.InterfaceDef<import("@dxos/app-toolkit").AppCapabilities.BlueprintDefinition>>[], Error>;
4
+ export declare const OperationHandler: Capability.LazyCapability<OperationHandlerSet.OperationHandlerSet, Capability.ModuleReturn, Error>;
5
+ export declare const ReactSurface: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-framework/Capabilities").ReactSurface>>, Error>;
6
+ export declare const UndoMappings: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-framework/Capabilities").UndoMapping[]>>, Error>;
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,gJAA+C,CAAC;AAChF,eAAO,MAAM,cAAc,8RAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,4OAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,mBAAmB,yJAAiF,CAAC;AAClH,eAAO,MAAM,gBAAgB,oGAG5B,CAAC;AACF,eAAO,MAAM,YAAY,iJAAmE,CAAC;AAC7F,eAAO,MAAM,YAAY,kJAAmE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capability } from '@dxos/app-framework';
3
+ import type { OperationHandlerSet } from '@dxos/operation';
4
+ declare const _default: (props: OperationHandlerSet.OperationHandlerSet) => Effect.Effect<Capability.ModuleReturn, Error, Capability.Service>;
5
+ export default _default;
6
+ //# sourceMappingURL=operation-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-handler.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/operation-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;;AAI3D,wBAIE"}
@@ -1,4 +1,5 @@
1
- import { Capabilities } from '@dxos/app-framework';
2
- declare const _default: () => import("@dxos/app-framework").Capability<import("@dxos/app-framework").InterfaceDef<Capabilities.ReactSurface>>;
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capabilities, Capability } from '@dxos/app-framework';
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Capabilities.ReactSurface>>, never, never>;
3
4
  export default _default;
4
5
  //# sourceMappingURL=react-surface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAA+C,MAAM,qBAAqB,CAAC;;AAahG,wBA+DK"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;;AAW/D,wBAkEE"}
@@ -0,0 +1,5 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capabilities, Capability } from '@dxos/app-framework';
3
+ declare const _default: (props: void) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Capabilities.UndoMapping[]>>, never, never>;
4
+ export default _default;
5
+ //# sourceMappingURL=undo-mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-mappings.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/undo-mappings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAC;;AAK5E,wBAwBE"}
@@ -0,0 +1,65 @@
1
+ import { type Atom } from '@effect-atom/atom-react';
2
+ import React, { type ComponentPropsWithoutRef, type ComponentType, type PropsWithChildren } from 'react';
3
+ import { Obj } from '@dxos/echo';
4
+ import type { ProjectionModel } from '@dxos/schema';
5
+ import { type Kanban, type KanbanChangeCallback } from '#types';
6
+ import { type KanbanCardProps } from './KanbanCard';
7
+ import { type KanbanColumnProps } from './KanbanColumn';
8
+ /**
9
+ * Context value for the Kanban board.
10
+ * Items are Echo objects (Obj.Unknown).
11
+ */
12
+ type KanbanBoardContextValue = {
13
+ kanbanId: string;
14
+ projection: ProjectionModel | undefined;
15
+ columnFieldPath: string | undefined;
16
+ change: KanbanChangeCallback<Obj.Unknown>;
17
+ pivotFieldId: string | undefined;
18
+ getPivotAttributes: (columnValue: string) => {
19
+ title: string;
20
+ color: string;
21
+ };
22
+ itemTile?: ComponentType<KanbanCardProps>;
23
+ onCardAdd?: (columnValue: string | undefined) => string | undefined;
24
+ onCardRemove?: (card: Obj.Unknown) => void;
25
+ };
26
+ declare const useKanbanBoard: (consumerName: string) => KanbanBoardContextValue;
27
+ type KanbanBoardRootProps = PropsWithChildren<{
28
+ kanban: Kanban.Kanban;
29
+ /** Required when providing context; Root derives columnFieldPath, pivotFieldId, getPivotAttributes from kanban + projection. */
30
+ projection: ProjectionModel;
31
+ /** Atom of items (e.g. from AtomQuery for DB, or Atom.make([]) for in-memory). */
32
+ items: Atom.Atom<Obj.Unknown[]>;
33
+ onCardAdd?: (columnValue: string | undefined) => string | undefined;
34
+ onCardRemove?: (card: Obj.Unknown) => void;
35
+ } & Pick<KanbanBoardContextValue, 'change' | 'itemTile'> & ComponentPropsWithoutRef<'div'>>;
36
+ export declare const KanbanBoardRoot: {
37
+ ({ children, kanban, projection, items, change, itemTile, onCardAdd, onCardRemove, }: KanbanBoardRootProps): React.JSX.Element;
38
+ displayName: string;
39
+ };
40
+ type KanbanBoardContentProps = {};
41
+ export declare const KanbanBoardContent: React.ForwardRefExoticComponent<Omit<KanbanBoardContentProps, "className"> & {
42
+ classNames?: import("@dxos/ui-types").ClassNameValue;
43
+ } & {
44
+ className?: string;
45
+ children?: React.ReactNode;
46
+ role?: string;
47
+ } & React.RefAttributes<HTMLDivElement>>;
48
+ export declare const KanbanBoard: {
49
+ Root: {
50
+ ({ children, kanban, projection, items, change, itemTile, onCardAdd, onCardRemove, }: KanbanBoardRootProps): React.JSX.Element;
51
+ displayName: string;
52
+ };
53
+ Content: React.ForwardRefExoticComponent<Omit<KanbanBoardContentProps, "className"> & {
54
+ classNames?: import("@dxos/ui-types").ClassNameValue;
55
+ } & {
56
+ className?: string;
57
+ children?: React.ReactNode;
58
+ role?: string;
59
+ } & React.RefAttributes<HTMLDivElement>>;
60
+ Column: React.ForwardRefExoticComponent<KanbanColumnProps & React.RefAttributes<HTMLDivElement>>;
61
+ Card: React.ForwardRefExoticComponent<KanbanCardProps & React.RefAttributes<HTMLDivElement>>;
62
+ };
63
+ export { useKanbanBoard };
64
+ export type { KanbanBoardRootProps as KanbanBoardProps, KanbanCardProps, KanbanColumnProps };
65
+ //# sourceMappingURL=KanbanBoard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanBoard.d.ts","sourceRoot":"","sources":["../../../../../src/components/KanbanBoard/KanbanBoard.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAmB,MAAM,yBAAyB,CAAC;AAErE,OAAO,KAAK,EAAE,EACZ,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAIvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,oBAAoB,EAAiD,MAAM,QAAQ,CAAC;AAE/G,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAUtE;;;GAGG;AACH,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC;IACxC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,kBAAkB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,QAAQ,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACpE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF,QAAA,MAA2B,cAAc,mDASvC,CAAC;AAQH,KAAK,oBAAoB,GAAG,iBAAiB,CAC3C;IACE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACtB,gIAAgI;IAChI,UAAU,EAAE,eAAe,CAAC;IAC5B,kFAAkF;IAClF,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACpE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;CAC5C,GAAG,IAAI,CAAC,uBAAuB,EAAE,QAAQ,GAAG,UAAU,CAAC,GACtD,wBAAwB,CAAC,KAAK,CAAC,CAClC,CAAC;AAEF,eAAO,MAAM,eAAe;0FASzB,oBAAoB;;CAmDtB,CAAC;AAUF,KAAK,uBAAuB,GAAG,EAAE,CAAC;AAElC,eAAO,MAAM,kBAAkB;;;;;;wCAqB7B,CAAC;AAQH,eAAO,MAAM,WAAW;;8FA5FrB,oBAAoB;;;;;;;;;;;;CAiGtB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,YAAY,EAAE,oBAAoB,IAAI,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { type StoryObj } from '@storybook/react-vite';
2
+ import React from 'react';
3
+ declare const meta: {
4
+ title: string;
5
+ component: () => React.JSX.Element;
6
+ decorators: import("@storybook/react").Decorator[];
7
+ parameters: {
8
+ layout: string;
9
+ translations: [{
10
+ readonly 'en-US': {
11
+ readonly [x: string]: {
12
+ readonly 'typename.label': "Kanban";
13
+ readonly 'typename.label_zero': "Kanbans";
14
+ readonly 'typename.label_one': "Kanban";
15
+ readonly 'typename.label_other': "Kanbans";
16
+ readonly 'object-name.placeholder': "New kanban";
17
+ readonly 'add-object.label': "Add kanban";
18
+ readonly 'rename-object.label': "Rename kanban";
19
+ readonly 'delete-object.label': "Delete kanban";
20
+ readonly 'object-deleted.label': "Kanban deleted";
21
+ readonly 'action-menu.label'?: undefined;
22
+ readonly 'plugin.name'?: undefined;
23
+ readonly 'kanban-title.label'?: undefined;
24
+ readonly 'column-title.label'?: undefined;
25
+ readonly 'column-title.placeholder'?: undefined;
26
+ readonly 'add-column.label'?: undefined;
27
+ readonly 'add-card.label'?: undefined;
28
+ readonly 'new-column-name.label'?: undefined;
29
+ readonly 'remove-card.label'?: undefined;
30
+ readonly 'remove-empty-column.label'?: undefined;
31
+ readonly 'column-drag-handle.label'?: undefined;
32
+ readonly 'delete-column.label'?: undefined;
33
+ readonly 'card-field-deleted.label'?: undefined;
34
+ readonly 'card-deleted.label'?: undefined;
35
+ readonly 'select-pivot.placeholder'?: undefined;
36
+ } | {
37
+ readonly 'action-menu.label': "Actions";
38
+ readonly 'plugin.name': "Kanban";
39
+ readonly 'kanban-title.label': "Title";
40
+ readonly 'column-title.label': "Column title";
41
+ readonly 'column-title.placeholder': "New column";
42
+ readonly 'add-column.label': "Add column";
43
+ readonly 'add-card.label': "Add card";
44
+ readonly 'new-column-name.label': "New column name";
45
+ readonly 'remove-card.label': "Remove card";
46
+ readonly 'remove-empty-column.label': "Remove empty column";
47
+ readonly 'column-drag-handle.label': "Drag to rearrange";
48
+ readonly 'delete-column.label': "Delete column";
49
+ readonly 'card-field-deleted.label': "Card field deleted";
50
+ readonly 'card-deleted.label': "Card deleted";
51
+ readonly 'select-pivot.placeholder': "Select a pivot column in board settings to display columns.";
52
+ readonly 'typename.label'?: undefined;
53
+ readonly 'typename.label_zero'?: undefined;
54
+ readonly 'typename.label_one'?: undefined;
55
+ readonly 'typename.label_other'?: undefined;
56
+ readonly 'object-name.placeholder'?: undefined;
57
+ readonly 'add-object.label'?: undefined;
58
+ readonly 'rename-object.label'?: undefined;
59
+ readonly 'delete-object.label'?: undefined;
60
+ readonly 'object-deleted.label'?: undefined;
61
+ };
62
+ };
63
+ }];
64
+ };
65
+ };
66
+ export default meta;
67
+ type Story = StoryObj<typeof meta>;
68
+ /**
69
+ * In-memory board with Echo-shaped objects. No plugin manager, client, or Space.
70
+ */
71
+ export declare const Default: Story;
72
+ //# sourceMappingURL=KanbanBoard.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanBoard.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/KanbanBoard/KanbanBoard.stories.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAgE,MAAM,OAAO,CAAC;AAsHrF,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQ2B,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { Obj } from '@dxos/echo';
3
+ import { type MosaicTileProps } from '@dxos/react-ui-mosaic';
4
+ export type KanbanCardProps = Pick<MosaicTileProps<Obj.Unknown>, 'location' | 'data' | 'debug'>;
5
+ /**
6
+ * Mosaic Tile for Kanban card.
7
+ * Uses Surface for content; requires plugin manager context.
8
+ */
9
+ export declare const KanbanCard: React.ForwardRefExoticComponent<KanbanCardProps & React.RefAttributes<HTMLDivElement>>;
10
+ //# sourceMappingURL=KanbanCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/KanbanBoard/KanbanCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAI1E,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAiB,KAAK,eAAe,EAAY,MAAM,uBAAuB,CAAC;AAQtF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEhG;;;GAGG;AACH,eAAO,MAAM,UAAU,wFA0DrB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { type MosaicTileProps } from '@dxos/react-ui-mosaic';
3
+ import { type ColumnStructure } from '#types';
4
+ export type KanbanColumnProps = Pick<MosaicTileProps<ColumnStructure>, 'location' | 'data' | 'debug'>;
5
+ /**
6
+ * Mosaic Tile for Kanban column.
7
+ */
8
+ export declare const KanbanColumn: React.ForwardRefExoticComponent<KanbanColumnProps & React.RefAttributes<HTMLDivElement>>;
9
+ //# sourceMappingURL=KanbanColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/KanbanBoard/KanbanColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAS,KAAK,eAAe,EAAY,MAAM,uBAAuB,CAAC;AAG9E,OAAO,EAAE,KAAK,eAAe,EAAuB,MAAM,QAAQ,CAAC;AAMnE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEtG;;GAEG;AACH,eAAO,MAAM,YAAY,0FA6CxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './KanbanBoard';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/KanbanBoard/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC"}
@@ -1,3 +1,2 @@
1
- export * from './KanbanContainer';
2
- export * from './KanbanViewEditor';
1
+ export * from './KanbanBoard';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { type ObjectSurfaceProps } from '@dxos/app-toolkit/ui';
3
+ import { type Kanban } from '#types';
4
+ export type KanbanContainerProps = ObjectSurfaceProps<Kanban.Kanban>;
5
+ export declare const KanbanContainer: ({ role, subject: object }: KanbanContainerProps) => React.JSX.Element | null;
6
+ //# sourceMappingURL=KanbanContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanContainer.d.ts","sourceRoot":"","sources":["../../../../../src/containers/KanbanContainer/KanbanContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAIhE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAErE,eAAO,MAAM,eAAe,GAAI,2BAA2B,oBAAoB,6BAwE9E,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { type Decorator, type StoryObj } from '@storybook/react-vite';
2
+ import React from 'react';
3
+ declare const meta: {
4
+ title: string;
5
+ component: () => React.JSX.Element | null;
6
+ render: () => React.JSX.Element;
7
+ decorators: Decorator[];
8
+ parameters: {
9
+ layout: string;
10
+ translations: [{
11
+ readonly 'en-US': {
12
+ readonly [x: string]: {
13
+ readonly 'typename.label': "Kanban";
14
+ readonly 'typename.label_zero': "Kanbans";
15
+ readonly 'typename.label_one': "Kanban";
16
+ readonly 'typename.label_other': "Kanbans";
17
+ readonly 'object-name.placeholder': "New kanban";
18
+ readonly 'add-object.label': "Add kanban";
19
+ readonly 'rename-object.label': "Rename kanban";
20
+ readonly 'delete-object.label': "Delete kanban";
21
+ readonly 'object-deleted.label': "Kanban deleted";
22
+ readonly 'action-menu.label'?: undefined;
23
+ readonly 'plugin.name'?: undefined;
24
+ readonly 'kanban-title.label'?: undefined;
25
+ readonly 'column-title.label'?: undefined;
26
+ readonly 'column-title.placeholder'?: undefined;
27
+ readonly 'add-column.label'?: undefined;
28
+ readonly 'add-card.label'?: undefined;
29
+ readonly 'new-column-name.label'?: undefined;
30
+ readonly 'remove-card.label'?: undefined;
31
+ readonly 'remove-empty-column.label'?: undefined;
32
+ readonly 'column-drag-handle.label'?: undefined;
33
+ readonly 'delete-column.label'?: undefined;
34
+ readonly 'card-field-deleted.label'?: undefined;
35
+ readonly 'card-deleted.label'?: undefined;
36
+ readonly 'select-pivot.placeholder'?: undefined;
37
+ } | {
38
+ readonly 'action-menu.label': "Actions";
39
+ readonly 'plugin.name': "Kanban";
40
+ readonly 'kanban-title.label': "Title";
41
+ readonly 'column-title.label': "Column title";
42
+ readonly 'column-title.placeholder': "New column";
43
+ readonly 'add-column.label': "Add column";
44
+ readonly 'add-card.label': "Add card";
45
+ readonly 'new-column-name.label': "New column name";
46
+ readonly 'remove-card.label': "Remove card";
47
+ readonly 'remove-empty-column.label': "Remove empty column";
48
+ readonly 'column-drag-handle.label': "Drag to rearrange";
49
+ readonly 'delete-column.label': "Delete column";
50
+ readonly 'card-field-deleted.label': "Card field deleted";
51
+ readonly 'card-deleted.label': "Card deleted";
52
+ readonly 'select-pivot.placeholder': "Select a pivot column in board settings to display columns.";
53
+ readonly 'typename.label'?: undefined;
54
+ readonly 'typename.label_zero'?: undefined;
55
+ readonly 'typename.label_one'?: undefined;
56
+ readonly 'typename.label_other'?: undefined;
57
+ readonly 'object-name.placeholder'?: undefined;
58
+ readonly 'add-object.label'?: undefined;
59
+ readonly 'rename-object.label'?: undefined;
60
+ readonly 'delete-object.label'?: undefined;
61
+ readonly 'object-deleted.label'?: undefined;
62
+ };
63
+ };
64
+ }];
65
+ };
66
+ };
67
+ export default meta;
68
+ type Story = StoryObj<typeof meta>;
69
+ /**
70
+ * Default story using static runtime schema (immutable).
71
+ * Schema mutations are not allowed.
72
+ */
73
+ export declare const Default: Story;
74
+ /**
75
+ * Story variant that uses a mutable database schema (EchoSchema).
76
+ * This allows testing schema mutations like adding/removing fields.
77
+ */
78
+ export declare const MutableSchema: Story;
79
+ //# sourceMappingURL=KanbanContainer.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanContainer.stories.d.ts","sourceRoot":"","sources":["../../../../../src/containers/KanbanContainer/KanbanContainer.stories.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,KAA2C,MAAM,OAAO,CAAC;AA4IhE,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS+B,CAAC;AAE1C,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAiErB,CAAC;AAEF;;;GAGG;AAKH,eAAO,MAAM,aAAa,EAAE,KA2B3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { KanbanContainer } from './KanbanContainer';
2
+ export default KanbanContainer;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/KanbanContainer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAe,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { type ObjectSurfaceProps } from '@dxos/app-toolkit/ui';
3
+ import { type Kanban } from '#types';
4
+ export type KanbanViewEditorProps = ObjectSurfaceProps<Kanban.Kanban>;
5
+ export declare const KanbanViewEditor: ({ subject: object }: KanbanViewEditorProps) => React.JSX.Element;
6
+ //# sourceMappingURL=KanbanViewEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanViewEditor.d.ts","sourceRoot":"","sources":["../../../../../src/containers/KanbanViewEditor/KanbanViewEditor.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ/D,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,gBAAgB,GAAI,qBAAqB,qBAAqB,sBA2C1E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { KanbanViewEditor } from './KanbanViewEditor';
2
+ export default KanbanViewEditor;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/KanbanViewEditor/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ComponentType } from 'react';
2
+ export declare const KanbanContainer: ComponentType<any>;
3
+ export declare const KanbanViewEditor: ComponentType<any>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/containers/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAQ,MAAM,OAAO,CAAC;AAEjD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,GAAG,CAA2C,CAAC;AAC3F,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAA4C,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './useEchoChangeCallback';
2
+ export * from './useKanbanBoardModel';
3
+ export * from './useKanbanColumnEventHandler';
4
+ export * from './useKanbanItemEventHandler';
5
+ export * from './useProjectionModel';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC"}