@dxos/plugin-kanban 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (191) hide show
  1. package/dist/lib/browser/KanbanContainer-N532FS3F.mjs +300 -0
  2. package/dist/lib/browser/KanbanContainer-N532FS3F.mjs.map +7 -0
  3. package/dist/lib/browser/KanbanViewEditor-W7E4RAK2.mjs +66 -0
  4. package/dist/lib/browser/KanbanViewEditor-W7E4RAK2.mjs.map +7 -0
  5. package/dist/lib/browser/blueprint-definition-2NNRB2ZQ.mjs +17 -0
  6. package/dist/lib/browser/blueprint-definition-2NNRB2ZQ.mjs.map +7 -0
  7. package/dist/lib/browser/blueprints/index.mjs +3 -3
  8. package/dist/lib/browser/{chunk-L6N4ZDZ7.mjs → chunk-B6RIAQMI.mjs} +11 -17
  9. package/dist/lib/browser/chunk-B6RIAQMI.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-PCKA5REX.mjs +385 -0
  11. package/dist/lib/browser/chunk-PCKA5REX.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-Z2ZFDWCK.mjs +213 -0
  13. package/dist/lib/browser/chunk-Z2ZFDWCK.mjs.map +7 -0
  14. package/dist/lib/browser/index.mjs +35 -30
  15. package/dist/lib/browser/index.mjs.map +3 -3
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{operation-resolver-UEJHX42A.mjs → operation-resolver-ZWJLPKQB.mjs} +7 -7
  18. package/dist/lib/browser/operation-resolver-ZWJLPKQB.mjs.map +7 -0
  19. package/dist/lib/browser/react-surface-OIP6KXQK.mjs +99 -0
  20. package/dist/lib/browser/react-surface-OIP6KXQK.mjs.map +7 -0
  21. package/dist/lib/browser/types/index.mjs +9 -3
  22. package/dist/lib/node-esm/KanbanContainer-DQ7XDXB4.mjs +301 -0
  23. package/dist/lib/node-esm/KanbanContainer-DQ7XDXB4.mjs.map +7 -0
  24. package/dist/lib/node-esm/KanbanViewEditor-JPV2II5P.mjs +67 -0
  25. package/dist/lib/node-esm/KanbanViewEditor-JPV2II5P.mjs.map +7 -0
  26. package/dist/lib/node-esm/{blueprint-definition-APJQFSHJ.mjs → blueprint-definition-5GWECQLZ.mjs} +6 -6
  27. package/dist/lib/node-esm/blueprint-definition-5GWECQLZ.mjs.map +7 -0
  28. package/dist/lib/node-esm/blueprints/index.mjs +3 -3
  29. package/dist/lib/node-esm/chunk-HL3BNZKP.mjs +214 -0
  30. package/dist/lib/node-esm/chunk-HL3BNZKP.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-P4RSMGOS.mjs +386 -0
  32. package/dist/lib/node-esm/chunk-P4RSMGOS.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-ZHRMUKTF.mjs → chunk-SD555I65.mjs} +11 -16
  34. package/dist/lib/node-esm/chunk-SD555I65.mjs.map +7 -0
  35. package/dist/lib/node-esm/index.mjs +35 -30
  36. package/dist/lib/node-esm/index.mjs.map +3 -3
  37. package/dist/lib/node-esm/meta.json +1 -1
  38. package/dist/lib/node-esm/{operation-resolver-5RPWHZCF.mjs → operation-resolver-YJKEXUHT.mjs} +7 -7
  39. package/dist/lib/node-esm/operation-resolver-YJKEXUHT.mjs.map +7 -0
  40. package/dist/lib/node-esm/react-surface-ZBPEPHZO.mjs +100 -0
  41. package/dist/lib/node-esm/react-surface-ZBPEPHZO.mjs.map +7 -0
  42. package/dist/lib/node-esm/types/index.mjs +9 -3
  43. package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
  44. package/dist/types/src/blueprints/index.d.ts +1 -1
  45. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  46. package/dist/types/src/blueprints/kanban-blueprint.d.ts +3 -21
  47. package/dist/types/src/blueprints/kanban-blueprint.d.ts.map +1 -1
  48. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +1 -1
  49. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -1
  50. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +3 -6
  51. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  52. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -1
  53. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  54. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  55. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  56. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  57. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  59. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  60. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  61. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  62. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +59 -0
  63. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -0
  64. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts +72 -0
  65. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -0
  66. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts +10 -0
  67. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -0
  68. package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts +9 -0
  69. package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts.map +1 -0
  70. package/dist/types/src/components/KanbanBoard/index.d.ts +2 -0
  71. package/dist/types/src/components/KanbanBoard/index.d.ts.map +1 -0
  72. package/dist/types/src/components/index.d.ts +1 -2
  73. package/dist/types/src/components/index.d.ts.map +1 -1
  74. package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts +6 -0
  75. package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts.map +1 -0
  76. package/dist/types/src/{components → containers/KanbanContainer}/KanbanContainer.stories.d.ts +18 -14
  77. package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts.map +1 -0
  78. package/dist/types/src/containers/KanbanContainer/index.d.ts +3 -0
  79. package/dist/types/src/containers/KanbanContainer/index.d.ts.map +1 -0
  80. package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts +6 -0
  81. package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts.map +1 -0
  82. package/dist/types/src/containers/KanbanViewEditor/index.d.ts +3 -0
  83. package/dist/types/src/containers/KanbanViewEditor/index.d.ts.map +1 -0
  84. package/dist/types/src/containers/index.d.ts +4 -0
  85. package/dist/types/src/containers/index.d.ts.map +1 -0
  86. package/dist/types/src/hooks/index.d.ts +6 -0
  87. package/dist/types/src/hooks/index.d.ts.map +1 -0
  88. package/dist/types/src/hooks/useEchoChangeCallback.d.ts +13 -0
  89. package/dist/types/src/hooks/useEchoChangeCallback.d.ts.map +1 -0
  90. package/dist/types/src/hooks/useKanbanBoardModel.d.ts +16 -0
  91. package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -0
  92. package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts +2 -0
  93. package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts.map +1 -0
  94. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts +22 -0
  95. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts.map +1 -0
  96. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts +19 -0
  97. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts.map +1 -0
  98. package/dist/types/src/hooks/useProjectionModel.d.ts +15 -0
  99. package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -0
  100. package/dist/types/src/playwright/board-manager.d.ts +5 -0
  101. package/dist/types/src/playwright/board-manager.d.ts.map +1 -0
  102. package/dist/types/src/playwright/playwright.config.d.ts +3 -0
  103. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  104. package/dist/types/src/playwright/smoke.spec.d.ts +2 -0
  105. package/dist/types/src/playwright/smoke.spec.d.ts.map +1 -0
  106. package/dist/types/src/testing/KanbanCardTileSimple.d.ts +5 -0
  107. package/dist/types/src/testing/KanbanCardTileSimple.d.ts.map +1 -0
  108. package/dist/types/src/testing/index.d.ts +2 -0
  109. package/dist/types/src/testing/index.d.ts.map +1 -0
  110. package/dist/types/src/translations.d.ts +16 -0
  111. package/dist/types/src/translations.d.ts.map +1 -1
  112. package/dist/types/src/types/Kanban.d.ts +37 -0
  113. package/dist/types/src/types/Kanban.d.ts.map +1 -0
  114. package/dist/types/src/types/constants.d.ts +6 -0
  115. package/dist/types/src/types/constants.d.ts.map +1 -0
  116. package/dist/types/src/types/index.d.ts +2 -0
  117. package/dist/types/src/types/index.d.ts.map +1 -1
  118. package/dist/types/src/types/schema.d.ts +5 -5
  119. package/dist/types/src/types/schema.d.ts.map +1 -1
  120. package/dist/types/src/types/types.d.ts +28 -0
  121. package/dist/types/src/types/types.d.ts.map +1 -1
  122. package/dist/types/src/util/arrangement.d.ts +68 -0
  123. package/dist/types/src/util/arrangement.d.ts.map +1 -0
  124. package/dist/types/src/util/arrangement.test.d.ts +2 -0
  125. package/dist/types/src/util/arrangement.test.d.ts.map +1 -0
  126. package/dist/types/src/util/index.d.ts +2 -0
  127. package/dist/types/src/util/index.d.ts.map +1 -0
  128. package/dist/types/tsconfig.tsbuildinfo +1 -1
  129. package/package.json +47 -42
  130. package/src/KanbanPlugin.tsx +15 -15
  131. package/src/blueprints/index.ts +1 -1
  132. package/src/blueprints/kanban-blueprint.ts +14 -7
  133. package/src/capabilities/artifact-definition/artifact-definition.ts +8 -7
  134. package/src/capabilities/blueprint-definition/blueprint-definition.ts +6 -12
  135. package/src/capabilities/operation-resolver/operation-resolver.ts +5 -5
  136. package/src/capabilities/react-surface/react-surface.tsx +14 -14
  137. package/src/components/KanbanBoard/KanbanBoard.stories.tsx +142 -0
  138. package/src/components/KanbanBoard/KanbanBoard.tsx +183 -0
  139. package/src/components/KanbanBoard/KanbanCard.tsx +86 -0
  140. package/src/components/KanbanBoard/KanbanColumn.tsx +69 -0
  141. package/src/components/KanbanBoard/index.ts +5 -0
  142. package/src/components/index.ts +1 -2
  143. package/src/{components → containers/KanbanContainer}/KanbanContainer.stories.tsx +62 -85
  144. package/src/containers/KanbanContainer/KanbanContainer.tsx +87 -0
  145. package/src/containers/KanbanContainer/index.ts +7 -0
  146. package/src/{components → containers/KanbanViewEditor}/KanbanViewEditor.tsx +23 -19
  147. package/src/containers/KanbanViewEditor/index.ts +7 -0
  148. package/src/containers/index.ts +8 -0
  149. package/src/hooks/index.ts +9 -0
  150. package/src/hooks/useEchoChangeCallback.ts +30 -0
  151. package/src/hooks/useKanbanBoardModel.test.ts +235 -0
  152. package/src/hooks/useKanbanBoardModel.ts +143 -0
  153. package/src/hooks/useKanbanColumnEventHandler.ts +106 -0
  154. package/src/hooks/useKanbanItemEventHandler.ts +133 -0
  155. package/src/hooks/useProjectionModel.ts +58 -0
  156. package/src/meta.ts +1 -1
  157. package/src/playwright/board-manager.ts +13 -0
  158. package/src/playwright/playwright.config.ts +19 -0
  159. package/src/playwright/smoke.spec.ts +107 -0
  160. package/src/testing/KanbanCardTileSimple.tsx +76 -0
  161. package/src/testing/index.ts +5 -0
  162. package/src/translations.ts +9 -1
  163. package/src/types/Kanban.ts +71 -0
  164. package/src/types/constants.ts +9 -0
  165. package/src/types/index.ts +2 -0
  166. package/src/types/schema.ts +8 -9
  167. package/src/types/types.ts +35 -0
  168. package/src/util/arrangement.test.ts +208 -0
  169. package/src/util/arrangement.ts +167 -0
  170. package/src/util/index.ts +5 -0
  171. package/dist/lib/browser/blueprint-definition-T2544VMJ.mjs +0 -17
  172. package/dist/lib/browser/blueprint-definition-T2544VMJ.mjs.map +0 -7
  173. package/dist/lib/browser/chunk-L6N4ZDZ7.mjs.map +0 -7
  174. package/dist/lib/browser/chunk-XYQO4VL7.mjs +0 -150
  175. package/dist/lib/browser/chunk-XYQO4VL7.mjs.map +0 -7
  176. package/dist/lib/browser/operation-resolver-UEJHX42A.mjs.map +0 -7
  177. package/dist/lib/browser/react-surface-LFUJAPRL.mjs +0 -236
  178. package/dist/lib/browser/react-surface-LFUJAPRL.mjs.map +0 -7
  179. package/dist/lib/node-esm/blueprint-definition-APJQFSHJ.mjs.map +0 -7
  180. package/dist/lib/node-esm/chunk-NN6JMKIT.mjs +0 -152
  181. package/dist/lib/node-esm/chunk-NN6JMKIT.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-ZHRMUKTF.mjs.map +0 -7
  183. package/dist/lib/node-esm/operation-resolver-5RPWHZCF.mjs.map +0 -7
  184. package/dist/lib/node-esm/react-surface-7TSGBRJL.mjs +0 -237
  185. package/dist/lib/node-esm/react-surface-7TSGBRJL.mjs.map +0 -7
  186. package/dist/types/src/components/KanbanContainer.d.ts +0 -6
  187. package/dist/types/src/components/KanbanContainer.d.ts.map +0 -1
  188. package/dist/types/src/components/KanbanContainer.stories.d.ts.map +0 -1
  189. package/dist/types/src/components/KanbanViewEditor.d.ts +0 -8
  190. package/dist/types/src/components/KanbanViewEditor.d.ts.map +0 -1
  191. package/src/components/KanbanContainer.tsx +0 -86
@@ -0,0 +1,5 @@
1
+ import { BoardManager as MosaicBoardManager } from '@dxos/react-ui-mosaic/playwright';
2
+ export declare class BoardManager extends MosaicBoardManager {
3
+ waitUntilReady(): Promise<void>;
4
+ }
5
+ //# sourceMappingURL=board-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-manager.d.ts","sourceRoot":"","sources":["../../../../src/playwright/board-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtF,qBAAa,YAAa,SAAQ,kBAAkB;IAC5C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAKtC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@playwright/test").PlaywrightTestConfig<{}, {}>;
2
+ export default _default;
3
+ //# sourceMappingURL=playwright.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright.config.d.ts","sourceRoot":"","sources":["../../../../src/playwright/playwright.config.ts"],"names":[],"mappings":";AAQA,wBAUG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=smoke.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smoke.spec.d.ts","sourceRoot":"","sources":["../../../../src/playwright/smoke.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { type KanbanCardProps } from '../components';
3
+ /** Card tile without Surface; for stories and tests when plugin manager is not available. */
4
+ export declare const KanbanCardTileSimple: React.ForwardRefExoticComponent<KanbanCardProps & React.RefAttributes<HTMLDivElement>>;
5
+ //# sourceMappingURL=KanbanCardTileSimple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanCardTileSimple.d.ts","sourceRoot":"","sources":["../../../../src/testing/KanbanCardTileSimple.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAO1E,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,eAAe,CAAC;AAKrE,6FAA6F;AAC7F,eAAO,MAAM,oBAAoB,wFAwDhC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { KanbanCardTileSimple } from './KanbanCardTileSimple';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -6,31 +6,47 @@ export declare const translations: [{
6
6
  readonly 'typename label_one': "Kanban";
7
7
  readonly 'typename label_other': "Kanbans";
8
8
  readonly 'object name placeholder': "New kanban";
9
+ readonly 'add object label': "Add kanban";
9
10
  readonly 'rename object label': "Rename kanban";
10
11
  readonly 'delete object label': "Delete kanban";
11
12
  readonly 'object deleted label': "Kanban deleted";
13
+ readonly 'action menu label'?: undefined;
12
14
  readonly 'plugin name'?: undefined;
13
15
  readonly 'kanban title label'?: undefined;
14
16
  readonly 'column title label'?: undefined;
15
17
  readonly 'column title placeholder'?: undefined;
16
18
  readonly 'add column label'?: undefined;
19
+ readonly 'add card label'?: undefined;
20
+ readonly 'new column name label'?: undefined;
21
+ readonly 'remove card label'?: undefined;
22
+ readonly 'remove empty column label'?: undefined;
23
+ readonly 'column drag handle label'?: undefined;
17
24
  readonly 'delete column label'?: undefined;
18
25
  readonly 'card field deleted label'?: undefined;
19
26
  readonly 'card deleted label'?: undefined;
27
+ readonly 'select pivot placeholder'?: undefined;
20
28
  } | {
29
+ readonly 'action menu label': "Actions";
21
30
  readonly 'plugin name': "Kanban";
22
31
  readonly 'kanban title label': "Title";
23
32
  readonly 'column title label': "Column title";
24
33
  readonly 'column title placeholder': "New column";
25
34
  readonly 'add column label': "Add column";
35
+ readonly 'add card label': "Add card";
36
+ readonly 'new column name label': "New column name";
37
+ readonly 'remove card label': "Remove card";
38
+ readonly 'remove empty column label': "Remove empty column";
39
+ readonly 'column drag handle label': "Drag to rearrange";
26
40
  readonly 'delete column label': "Delete column";
27
41
  readonly 'card field deleted label': "Card field deleted";
28
42
  readonly 'card deleted label': "Card deleted";
43
+ readonly 'select pivot placeholder': "Select a pivot column in board settings to display columns.";
29
44
  readonly 'typename label'?: undefined;
30
45
  readonly 'typename label_zero'?: undefined;
31
46
  readonly 'typename label_one'?: undefined;
32
47
  readonly 'typename label_other'?: undefined;
33
48
  readonly 'object name placeholder'?: undefined;
49
+ readonly 'add object label'?: undefined;
34
50
  readonly 'rename object label'?: undefined;
35
51
  readonly 'delete object label'?: undefined;
36
52
  readonly 'object deleted label'?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBM,CAAC"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCM,CAAC"}
@@ -0,0 +1,37 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import { Obj, Type } from '@dxos/echo';
3
+ import { View } from '@dxos/echo';
4
+ /** Column order and per-column card ids. */
5
+ export declare const Arrangement: Schema.Struct<{
6
+ order: Schema.Array$<typeof Schema.String>;
7
+ columns: Schema.Record$<typeof Schema.String, Schema.Struct<{
8
+ ids: Schema.Array$<import("@dxos/keys").ObjectIdClass>;
9
+ hidden: Schema.optional<typeof Schema.Boolean>;
10
+ }>>;
11
+ }>;
12
+ export type Arrangement = Schema.Schema.Type<typeof Arrangement>;
13
+ export declare const Kanban: Type.Obj<{
14
+ readonly name?: string | undefined;
15
+ readonly view: import("@dxos/echo/internal").Ref<import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & View.View>;
16
+ readonly arrangement: {
17
+ readonly order: readonly string[];
18
+ readonly columns: {
19
+ readonly [x: string]: {
20
+ readonly ids: readonly string[];
21
+ readonly hidden?: boolean | undefined;
22
+ };
23
+ };
24
+ };
25
+ }, Schema.Struct.Fields>;
26
+ /** Instance type; use Kanban.Kanban in type position so namespace has .Kanban as type and .KanbanSchema as schema. */
27
+ export interface Kanban extends Schema.Schema.Type<typeof Kanban> {
28
+ }
29
+ type MakeProps = Omit<Partial<Obj.MakeProps<typeof Kanban>>, 'view'> & {
30
+ view: View.View;
31
+ };
32
+ /**
33
+ * Make a kanban as a view of a data set.
34
+ */
35
+ export declare const make: (props: MakeProps) => Kanban;
36
+ export {};
37
+ //# sourceMappingURL=Kanban.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kanban.d.ts","sourceRoot":"","sources":["../../../../src/types/Kanban.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAc,GAAG,EAAO,IAAI,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAgBlC,4CAA4C;AAC5C,eAAO,MAAM,WAAW;;;;;;EAGe,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;AAEjE,eAAO,MAAM,MAAM;;;;;;;;;;;;wBAkBlB,CAAC;AAEF,sHAAsH;AACtH,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC;CAAG;AAEpE,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IACrE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,KAAG,MASvC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const UNCATEGORIZED_VALUE: "__uncategorized__";
2
+ export declare const UNCATEGORIZED_ATTRIBUTES: {
3
+ readonly title: "Uncategorized";
4
+ readonly color: "neutral";
5
+ };
6
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/types/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,EAAG,mBAA4B,CAAC;AAChE,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC"}
@@ -1,3 +1,5 @@
1
+ export * from './constants';
2
+ export * as Kanban from './Kanban';
1
3
  export * from './schema';
2
4
  export type * from './types';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,mBAAmB,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,mBAAmB,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as Schema from 'effect/Schema';
2
2
  import { Capability } from '@dxos/app-framework';
3
- import { View } from '@dxos/schema';
3
+ import { View } from '@dxos/echo';
4
4
  /**
5
5
  * Kanban data model.
6
6
  * A Kanban board is a collection of columns, each of which contains a collection of items.
@@ -32,7 +32,7 @@ export declare namespace KanbanOperation {
32
32
  type DeleteCardFieldOutput = Schema.Schema.Type<typeof DeleteCardFieldOutput>;
33
33
  const DeleteCardField: Omit<{
34
34
  readonly meta: {
35
- readonly key: `${string}/delete-card-field`;
35
+ readonly key: `${string}.delete-card-field`;
36
36
  readonly name: "Delete Card Field";
37
37
  };
38
38
  readonly services: readonly [typeof Capability.Service];
@@ -61,7 +61,7 @@ export declare namespace KanbanOperation {
61
61
  type DeleteCardOutput = Schema.Schema.Type<typeof DeleteCardOutput>;
62
62
  const DeleteCard: Omit<{
63
63
  readonly meta: {
64
- readonly key: `${string}/delete-card`;
64
+ readonly key: `${string}.delete-card`;
65
65
  readonly name: "Delete Card";
66
66
  };
67
67
  readonly schema: {
@@ -80,7 +80,7 @@ export declare namespace KanbanOperation {
80
80
  */
81
81
  const RestoreCardField: Omit<{
82
82
  readonly meta: {
83
- readonly key: `${string}/restore-card-field`;
83
+ readonly key: `${string}.restore-card-field`;
84
84
  readonly name: "Restore Card Field";
85
85
  };
86
86
  readonly services: readonly [typeof Capability.Service];
@@ -106,7 +106,7 @@ export declare namespace KanbanOperation {
106
106
  */
107
107
  const RestoreCard: Omit<{
108
108
  readonly meta: {
109
- readonly key: `${string}/restore-card`;
109
+ readonly key: `${string}.restore-card`;
110
110
  readonly name: "Restore Card";
111
111
  };
112
112
  readonly schema: {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAe,IAAI,EAAE,MAAM,cAAc,CAAC;AAIjD;;;;;;;GAOG;AAGH,eAAO,MAAM,uBAAuB,eAA2D,CAAC;AAEhG,eAAO,MAAM,cAAc;;EAIzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;EAkB7B,CAAC;AAIH,yBAAiB,eAAe,CAAC;IACxB,MAAM,qBAAqB;;;;;;;;;MAIhC,CAAC;IAEH,KAAY,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAE9E,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;KAU1B,CAAC;IAEI,MAAM,gBAAgB;;MAE3B,CAAC;IAEH,KAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAEpE,MAAM,UAAU;;;;;;;;;;;;;;;KAQrB,CAAC;IAEH;;OAEG;IACI,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;KAY3B,CAAC;IAEH;;OAEG;IACI,MAAM,WAAW;;;;;;;;;;;;;KAQtB,CAAC;CACJ"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/types/schema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMlC;;;;;;;GAOG;AAGH,eAAO,MAAM,uBAAuB,eAA2D,CAAC;AAEhG,eAAO,MAAM,cAAc;;EAIzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;EAiB7B,CAAC;AAIH,yBAAiB,eAAe,CAAC;IACxB,MAAM,qBAAqB;;;;;;;;;MAIhC,CAAC;IAEH,KAAY,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAE9E,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;KAU1B,CAAC;IAEI,MAAM,gBAAgB;;MAE3B,CAAC;IAEH,KAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAEpE,MAAM,UAAU;;;;;;;;;;;;;;;KAQrB,CAAC;IAEH;;OAEG;IACI,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;KAY3B,CAAC;IAEH;;OAEG;IACI,MAAM,WAAW;;;;;;;;;;;;;KAQtB,CAAC;CACJ"}
@@ -1,4 +1,32 @@
1
+ import { type Obj } from '@dxos/echo';
2
+ import { type Kanban } from './Kanban';
1
3
  export type Location = {
2
4
  idx?: number;
3
5
  };
6
+ /** Snapshot shape used when reading kanban arrangement from atoms. */
7
+ export type KanbanArrangementSnapshot = Kanban | Obj.Snapshot<Kanban>;
8
+ /** Minimal item shape for arrangement; Obj.Unknown satisfies this. */
9
+ export type BaseKanbanItem = {
10
+ id: string;
11
+ };
12
+ /** Column structure without cards; used for board model column type and derived atoms. */
13
+ export type ColumnStructure = {
14
+ columnValue: string;
15
+ ids: string[];
16
+ };
17
+ export type KanbanColumn<T extends BaseKanbanItem = BaseKanbanItem> = {
18
+ columnValue: string;
19
+ cards: T[];
20
+ };
21
+ export type ArrangedCards<T extends BaseKanbanItem = BaseKanbanItem> = KanbanColumn<T>[];
22
+ /**
23
+ * Callback type for wrapping mutations in Obj.change().
24
+ * Contains separate callbacks for kanban object and item mutations.
25
+ */
26
+ export type KanbanChangeCallback<T extends BaseKanbanItem> = {
27
+ /** Callback to wrap kanban object mutations. */
28
+ kanban: (mutate: (mutableKanban: Obj.Mutable<Kanban>) => void) => void;
29
+ /** Sets a field on an item, wrapping in Obj.change() if needed. */
30
+ setItemField: (item: T, field: string, value: unknown) => void;
31
+ };
4
32
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEtE,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,0FAA0F;AAC1F,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;AAEzF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,cAAc,IAAI;IAC3D,gDAAgD;IAChD,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC;IAEvE,mEAAmE;IACnE,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAChE,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { type SelectOption } from '@dxos/echo/internal';
2
+ import { type ArrangedCards, type BaseKanbanItem, type ColumnStructure, type Kanban } from '../types';
3
+ /**
4
+ * Column order from a raw arrangement object (e.g. when working with arrangement only).
5
+ *
6
+ * @param arrangement - Optional arrangement; reads order.
7
+ * @returns Mutable copy of order array, or empty if arrangement/order missing or empty.
8
+ */
9
+ export declare const getOrderFromArrangement: (arrangement?: Kanban.Arrangement) => string[];
10
+ /**
11
+ * Per-column card id order and optional hidden flag from a raw arrangement object.
12
+ *
13
+ * Returns mutable copies so schema readonly does not leak to callers.
14
+ *
15
+ * @param arrangement - Optional arrangement; reads columns.
16
+ * @returns Map of column value → { ids, hidden? }; empty object if not set.
17
+ */
18
+ export declare const getOrderByColumnFromArrangement: (arrangement?: Kanban.Arrangement) => Record<string, {
19
+ ids: string[];
20
+ hidden?: boolean;
21
+ }>;
22
+ /**
23
+ * Builds the ordered list of columns (value + ids) for the board model.
24
+ *
25
+ * Column order: uncategorized first, then effectiveOrder, then any selectOption ids not yet in order.
26
+ * Each entry gets the ids from effectiveByColumn for that column (or empty).
27
+ *
28
+ * @param effectiveOrder - Column order from arrangement (or previous merge).
29
+ * @param effectiveByColumn - Per-column card id order from arrangement.
30
+ * @param selectOptions - Defines valid column ids; any missing from order are appended.
31
+ * @returns ColumnStructure array in display order.
32
+ */
33
+ export declare const computeColumnStructure: (effectiveOrder: string[], effectiveByColumn: Record<string, {
34
+ ids: string[];
35
+ hidden?: boolean;
36
+ }>, selectOptions: SelectOption[]) => ColumnStructure[];
37
+ /**
38
+ * Orders items for a single column: partition by saved order vs new, sort by orderMap, concatenate.
39
+ * Uses explicit null/undefined check for itemColumn so empty string is handled consistently.
40
+ *
41
+ * @param items - All items to filter.
42
+ * @param ids - Saved id order for this column.
43
+ * @param columnValue - Column id (e.g. UNCATEGORIZED_VALUE or option id).
44
+ * @param pivotPath - Item property key for column value (undefined = no pivot).
45
+ * @param validColumnValues - Set of valid option ids.
46
+ * @returns Items belonging to this column in display order.
47
+ */
48
+ export declare const orderItemsInColumn: <T extends BaseKanbanItem>(items: T[], ids: string[], columnValue: string, pivotPath: string | undefined, validColumnValues: Set<string>) => T[];
49
+ /**
50
+ * Computes the full item arrangement for the board: one entry per column with items in display order.
51
+ *
52
+ * Columns follow selectOptions order (uncategorized first, then each option). Within each column,
53
+ * cards that appear in the kanban's saved arrangement keep that order; any other cards in that
54
+ * column are appended after them.
55
+ *
56
+ * @param object - Kanban object whose arrangement holds per-column id order.
57
+ * @param items - All items to distribute into columns.
58
+ * @param pivotPath - Optional item property key whose value is the column id (e.g. status, priority).
59
+ * @param selectOptions - Defines valid column ids and their display order.
60
+ * @returns Array of { columnValue, cards } in column order, with cards ordered as above.
61
+ */
62
+ export declare const computeItemArrangement: <T extends BaseKanbanItem = BaseKanbanItem>({ object, items, pivotPath, selectOptions, }: {
63
+ object: Kanban.Kanban;
64
+ items: T[];
65
+ pivotPath?: string;
66
+ selectOptions: SelectOption[];
67
+ }) => ArrangedCards<T>;
68
+ //# sourceMappingURL=arrangement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrangement.d.ts","sourceRoot":"","sources":["../../../../src/util/arrangement.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,MAAM,EAEZ,MAAM,UAAU,CAAC;AAElB;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,cAAc,MAAM,CAAC,WAAW,KAAG,MAAM,EAOhF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,GAC1C,cAAc,MAAM,CAAC,WAAW,KAC/B,MAAM,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAYpD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,GACjC,gBAAgB,MAAM,EAAE,EACxB,mBAAmB,MAAM,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACtE,eAAe,YAAY,EAAE,KAC5B,eAAe,EAgBjB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,cAAc,EACzD,OAAO,CAAC,EAAE,EACV,KAAK,MAAM,EAAE,EACb,aAAa,MAAM,EACnB,WAAW,MAAM,GAAG,SAAS,EAC7B,mBAAmB,GAAG,CAAC,MAAM,CAAC,KAC7B,CAAC,EAsBH,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,8CAK/E;IACD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IACtB,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,KAAG,aAAa,CAAC,CAAC,CAgBlB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=arrangement.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrangement.test.d.ts","sourceRoot":"","sources":["../../../../src/util/arrangement.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './arrangement';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/util/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC"}