@dxos/plugin-kanban 0.8.4-main.4a85c3132b → 0.8.4-main.4f23b4e393

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 (274) hide show
  1. package/dist/lib/neutral/KanbanContainer-QK6LNCYT.mjs +132 -0
  2. package/dist/lib/neutral/KanbanContainer-QK6LNCYT.mjs.map +7 -0
  3. package/dist/lib/neutral/KanbanPlugin.mjs +36 -0
  4. package/dist/lib/neutral/KanbanPlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/KanbanPlugin.node.mjs +27 -0
  6. package/dist/lib/neutral/KanbanPlugin.node.mjs.map +7 -0
  7. package/dist/lib/{browser/KanbanViewEditor-IH5CJ6BW.mjs → neutral/KanbanSettings-G6M47NSK.mjs} +36 -19
  8. package/dist/lib/neutral/KanbanSettings-G6M47NSK.mjs.map +7 -0
  9. package/dist/lib/{browser/blueprint-definition-HFEKGFJK.mjs → neutral/blueprint-definition-FHVIEKTQ.mjs} +4 -6
  10. package/dist/lib/neutral/blueprint-definition-FHVIEKTQ.mjs.map +7 -0
  11. package/dist/lib/{browser → neutral}/blueprints/index.mjs +1 -1
  12. package/dist/lib/neutral/capabilities/index.mjs +19 -0
  13. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  14. package/dist/lib/neutral/chunk-BGWIKRS5.mjs +8 -0
  15. package/dist/lib/neutral/chunk-BGWIKRS5.mjs.map +7 -0
  16. package/dist/lib/neutral/chunk-KDPM77BD.mjs +21 -0
  17. package/dist/lib/neutral/chunk-KDPM77BD.mjs.map +7 -0
  18. package/dist/lib/neutral/chunk-OQ72EEGU.mjs +254 -0
  19. package/dist/lib/neutral/chunk-OQ72EEGU.mjs.map +7 -0
  20. package/dist/lib/{browser/chunk-TLYZSC7O.mjs → neutral/chunk-ZTQW5KQS.mjs} +3 -6
  21. package/dist/lib/neutral/chunk-ZTQW5KQS.mjs.map +7 -0
  22. package/dist/lib/{browser/KanbanContainer-BCXSJ6KS.mjs → neutral/components/index.mjs} +78 -139
  23. package/dist/lib/neutral/components/index.mjs.map +7 -0
  24. package/dist/lib/neutral/containers/index.mjs +11 -0
  25. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  26. package/dist/lib/neutral/create-object-DKBSI46K.mjs +40 -0
  27. package/dist/lib/neutral/create-object-DKBSI46K.mjs.map +7 -0
  28. package/dist/lib/neutral/delete-card-356CBACE.mjs +24 -0
  29. package/dist/lib/neutral/delete-card-356CBACE.mjs.map +7 -0
  30. package/dist/lib/neutral/delete-card-field-IRCZL2BR.mjs +42 -0
  31. package/dist/lib/neutral/delete-card-field-IRCZL2BR.mjs.map +7 -0
  32. package/dist/lib/{node-esm/chunk-CSL3HF2X.mjs → neutral/hooks/index.mjs} +128 -82
  33. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  34. package/dist/lib/neutral/index.mjs +34 -0
  35. package/dist/lib/neutral/meta.json +1 -0
  36. package/dist/lib/neutral/meta.mjs +8 -0
  37. package/dist/lib/neutral/migrations-IWBT35UT.mjs +31 -0
  38. package/dist/lib/neutral/migrations-IWBT35UT.mjs.map +7 -0
  39. package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs +13 -0
  40. package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs.map +7 -0
  41. package/dist/lib/neutral/operations/index.mjs +8 -0
  42. package/dist/lib/neutral/plugin.mjs +16 -0
  43. package/dist/lib/neutral/plugin.mjs.map +7 -0
  44. package/dist/lib/{browser/react-surface-FOMOGFVW.mjs → neutral/react-surface-JCVI5QVB.mjs} +21 -27
  45. package/dist/lib/neutral/react-surface-JCVI5QVB.mjs.map +7 -0
  46. package/dist/lib/neutral/restore-card-P25Y4YSE.mjs +21 -0
  47. package/dist/lib/neutral/restore-card-P25Y4YSE.mjs.map +7 -0
  48. package/dist/lib/neutral/restore-card-field-NHR3R4XI.mjs +40 -0
  49. package/dist/lib/neutral/restore-card-field-NHR3R4XI.mjs.map +7 -0
  50. package/dist/lib/neutral/testing/index.mjs +60 -0
  51. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  52. package/dist/lib/neutral/translations.mjs +44 -0
  53. package/dist/lib/neutral/translations.mjs.map +7 -0
  54. package/dist/lib/{browser → neutral}/types/index.mjs +7 -5
  55. package/dist/lib/neutral/undo-mappings-6CHW6BOF.mjs +42 -0
  56. package/dist/lib/neutral/undo-mappings-6CHW6BOF.mjs.map +7 -0
  57. package/dist/types/src/KanbanPlugin.d.ts +1 -0
  58. package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
  59. package/dist/types/src/KanbanPlugin.node.d.ts +4 -0
  60. package/dist/types/src/KanbanPlugin.node.d.ts.map +1 -0
  61. package/dist/types/src/KanbanPlugin.test.d.ts +2 -0
  62. package/dist/types/src/KanbanPlugin.test.d.ts.map +1 -0
  63. package/dist/types/src/blueprints/kanban-blueprint.d.ts +2 -2
  64. package/dist/types/src/blueprints/kanban-blueprint.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  66. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  67. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  68. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  69. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  70. package/dist/types/src/capabilities/index.d.ts +13 -3
  71. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/migrations.d.ts +6 -0
  73. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  74. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  75. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  76. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/undo-mappings.d.ts +5 -0
  78. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  79. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +17 -38
  80. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -1
  81. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts +48 -46
  82. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -1
  83. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts +2 -3
  84. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -1
  85. package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts +2 -3
  86. package/dist/types/src/components/KanbanBoard/KanbanColumn.d.ts.map +1 -1
  87. package/dist/types/src/components/KanbanBoard/context.d.ts +38 -0
  88. package/dist/types/src/components/KanbanBoard/context.d.ts.map +1 -0
  89. package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts +4 -4
  90. package/dist/types/src/containers/KanbanContainer/KanbanContainer.d.ts.map +1 -1
  91. package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts +48 -46
  92. package/dist/types/src/containers/KanbanContainer/KanbanContainer.stories.d.ts.map +1 -1
  93. package/dist/types/src/containers/KanbanContainer/index.d.ts +1 -2
  94. package/dist/types/src/containers/KanbanContainer/index.d.ts.map +1 -1
  95. package/dist/types/src/containers/KanbanSettings/KanbanSettings.d.ts +13 -0
  96. package/dist/types/src/containers/KanbanSettings/KanbanSettings.d.ts.map +1 -0
  97. package/dist/types/src/containers/KanbanSettings/index.d.ts +2 -0
  98. package/dist/types/src/containers/KanbanSettings/index.d.ts.map +1 -0
  99. package/dist/types/src/containers/index.d.ts +1 -1
  100. package/dist/types/src/containers/index.d.ts.map +1 -1
  101. package/dist/types/src/hooks/index.d.ts +1 -0
  102. package/dist/types/src/hooks/index.d.ts.map +1 -1
  103. package/dist/types/src/hooks/useEchoChangeCallback.d.ts +1 -1
  104. package/dist/types/src/hooks/useEchoChangeCallback.d.ts.map +1 -1
  105. package/dist/types/src/hooks/useItemsProjection.d.ts +10 -0
  106. package/dist/types/src/hooks/useItemsProjection.d.ts.map +1 -0
  107. package/dist/types/src/hooks/useKanbanBoardModel.browser.test.d.ts +2 -0
  108. package/dist/types/src/hooks/useKanbanBoardModel.browser.test.d.ts.map +1 -0
  109. package/dist/types/src/hooks/useKanbanBoardModel.d.ts +1 -1
  110. package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -1
  111. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts +2 -2
  112. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts.map +1 -1
  113. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts +2 -2
  114. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts.map +1 -1
  115. package/dist/types/src/hooks/useProjectionModel.d.ts +1 -1
  116. package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -1
  117. package/dist/types/src/index.d.ts +3 -1
  118. package/dist/types/src/index.d.ts.map +1 -1
  119. package/dist/types/src/operations/delete-card-field.d.ts +5 -0
  120. package/dist/types/src/operations/delete-card-field.d.ts.map +1 -0
  121. package/dist/types/src/operations/delete-card.d.ts +5 -0
  122. package/dist/types/src/operations/delete-card.d.ts.map +1 -0
  123. package/dist/types/src/operations/index.d.ts +3 -0
  124. package/dist/types/src/operations/index.d.ts.map +1 -0
  125. package/dist/types/src/operations/restore-card-field.d.ts +5 -0
  126. package/dist/types/src/operations/restore-card-field.d.ts.map +1 -0
  127. package/dist/types/src/operations/restore-card.d.ts +5 -0
  128. package/dist/types/src/operations/restore-card.d.ts.map +1 -0
  129. package/dist/types/src/playwright/board-manager.d.ts.map +1 -1
  130. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
  131. package/dist/types/src/plugin.d.ts +4 -0
  132. package/dist/types/src/plugin.d.ts.map +1 -0
  133. package/dist/types/src/testing/KanbanCardTileSimple.d.ts +4 -2
  134. package/dist/types/src/testing/KanbanCardTileSimple.d.ts.map +1 -1
  135. package/dist/types/src/translations.d.ts +48 -46
  136. package/dist/types/src/translations.d.ts.map +1 -1
  137. package/dist/types/src/types/Kanban.d.ts +78 -7
  138. package/dist/types/src/types/Kanban.d.ts.map +1 -1
  139. package/dist/types/src/types/KanbanOperation.d.ts +52 -0
  140. package/dist/types/src/types/KanbanOperation.d.ts.map +1 -0
  141. package/dist/types/src/types/constants.d.ts +3 -3
  142. package/dist/types/src/types/constants.d.ts.map +1 -1
  143. package/dist/types/src/types/index.d.ts +2 -1
  144. package/dist/types/src/types/index.d.ts.map +1 -1
  145. package/dist/types/src/types/migrations.test.d.ts +2 -0
  146. package/dist/types/src/types/migrations.test.d.ts.map +1 -0
  147. package/dist/types/src/types/schema.d.ts +15 -104
  148. package/dist/types/src/types/schema.d.ts.map +1 -1
  149. package/dist/types/src/types/types.d.ts +2 -2
  150. package/dist/types/src/util/arrangement.d.ts +8 -4
  151. package/dist/types/src/util/arrangement.d.ts.map +1 -1
  152. package/dist/types/tsconfig.tsbuildinfo +1 -1
  153. package/package.json +108 -65
  154. package/src/KanbanPlugin.node.ts +21 -0
  155. package/src/KanbanPlugin.test.ts +31 -0
  156. package/src/KanbanPlugin.tsx +21 -29
  157. package/src/blueprints/kanban-blueprint.ts +4 -8
  158. package/src/capabilities/{artifact-definition/artifact-definition.ts → artifact-definition.ts} +6 -7
  159. package/src/capabilities/{blueprint-definition/blueprint-definition.ts → blueprint-definition.ts} +3 -1
  160. package/src/capabilities/create-object.ts +40 -0
  161. package/src/capabilities/index.ts +13 -3
  162. package/src/capabilities/migrations.ts +35 -0
  163. package/src/capabilities/operation-handler.ts +14 -0
  164. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +23 -15
  165. package/src/capabilities/undo-mappings.ts +34 -0
  166. package/src/components/KanbanBoard/KanbanBoard.stories.tsx +21 -18
  167. package/src/components/KanbanBoard/KanbanBoard.tsx +44 -64
  168. package/src/components/KanbanBoard/KanbanCard.tsx +77 -63
  169. package/src/components/KanbanBoard/KanbanColumn.tsx +19 -16
  170. package/src/components/KanbanBoard/context.ts +54 -0
  171. package/src/containers/KanbanContainer/KanbanContainer.stories.tsx +46 -33
  172. package/src/containers/KanbanContainer/KanbanContainer.tsx +118 -27
  173. package/src/containers/KanbanContainer/index.ts +1 -3
  174. package/src/containers/KanbanSettings/KanbanSettings.tsx +94 -0
  175. package/src/containers/KanbanSettings/index.ts +5 -0
  176. package/src/containers/index.ts +1 -1
  177. package/src/hooks/index.ts +1 -0
  178. package/src/hooks/useEchoChangeCallback.ts +3 -3
  179. package/src/hooks/useItemsProjection.ts +44 -0
  180. package/src/hooks/{useKanbanBoardModel.test.ts → useKanbanBoardModel.browser.test.ts} +6 -7
  181. package/src/hooks/useKanbanBoardModel.ts +20 -6
  182. package/src/hooks/useKanbanColumnEventHandler.ts +1 -1
  183. package/src/hooks/useKanbanItemEventHandler.ts +1 -1
  184. package/src/hooks/useProjectionModel.ts +3 -3
  185. package/src/index.ts +3 -2
  186. package/src/meta.ts +1 -1
  187. package/src/operations/delete-card-field.ts +47 -0
  188. package/src/operations/delete-card.ts +23 -0
  189. package/src/operations/index.ts +10 -0
  190. package/src/operations/restore-card-field.ts +41 -0
  191. package/src/operations/restore-card.ts +21 -0
  192. package/src/playwright/smoke.spec.ts +3 -3
  193. package/src/plugin.ts +11 -0
  194. package/src/testing/KanbanCardTileSimple.tsx +25 -19
  195. package/src/translations.ts +26 -25
  196. package/src/types/Kanban.ts +98 -15
  197. package/src/types/KanbanOperation.ts +67 -0
  198. package/src/types/index.ts +3 -1
  199. package/src/types/migrations.test.ts +82 -0
  200. package/src/types/schema.ts +20 -78
  201. package/src/types/types.ts +2 -2
  202. package/src/util/arrangement.test.ts +12 -3
  203. package/src/util/arrangement.ts +25 -15
  204. package/dist/lib/browser/KanbanContainer-BCXSJ6KS.mjs.map +0 -7
  205. package/dist/lib/browser/KanbanViewEditor-IH5CJ6BW.mjs.map +0 -7
  206. package/dist/lib/browser/blueprint-definition-HFEKGFJK.mjs.map +0 -7
  207. package/dist/lib/browser/chunk-QSWCFMEB.mjs +0 -385
  208. package/dist/lib/browser/chunk-QSWCFMEB.mjs.map +0 -7
  209. package/dist/lib/browser/chunk-RNFIFE2P.mjs +0 -213
  210. package/dist/lib/browser/chunk-RNFIFE2P.mjs.map +0 -7
  211. package/dist/lib/browser/chunk-TLYZSC7O.mjs.map +0 -7
  212. package/dist/lib/browser/index.mjs +0 -101
  213. package/dist/lib/browser/index.mjs.map +0 -7
  214. package/dist/lib/browser/meta.json +0 -1
  215. package/dist/lib/browser/operation-resolver-BRA2OHUE.mjs +0 -162
  216. package/dist/lib/browser/operation-resolver-BRA2OHUE.mjs.map +0 -7
  217. package/dist/lib/browser/react-surface-FOMOGFVW.mjs.map +0 -7
  218. package/dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs +0 -305
  219. package/dist/lib/node-esm/KanbanContainer-EHRTLE7M.mjs.map +0 -7
  220. package/dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs +0 -67
  221. package/dist/lib/node-esm/KanbanViewEditor-WDACFC35.mjs.map +0 -7
  222. package/dist/lib/node-esm/blueprint-definition-NARBX32U.mjs +0 -18
  223. package/dist/lib/node-esm/blueprint-definition-NARBX32U.mjs.map +0 -7
  224. package/dist/lib/node-esm/blueprints/index.mjs +0 -9
  225. package/dist/lib/node-esm/chunk-4AWDHQVY.mjs +0 -214
  226. package/dist/lib/node-esm/chunk-4AWDHQVY.mjs.map +0 -7
  227. package/dist/lib/node-esm/chunk-CSL3HF2X.mjs.map +0 -7
  228. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  229. package/dist/lib/node-esm/chunk-X3UJUQIV.mjs +0 -31
  230. package/dist/lib/node-esm/chunk-X3UJUQIV.mjs.map +0 -7
  231. package/dist/lib/node-esm/index.mjs +0 -102
  232. package/dist/lib/node-esm/index.mjs.map +0 -7
  233. package/dist/lib/node-esm/meta.json +0 -1
  234. package/dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs +0 -163
  235. package/dist/lib/node-esm/operation-resolver-UEQ64LCN.mjs.map +0 -7
  236. package/dist/lib/node-esm/react-surface-AITKFRBE.mjs +0 -100
  237. package/dist/lib/node-esm/react-surface-AITKFRBE.mjs.map +0 -7
  238. package/dist/lib/node-esm/types/index.mjs +0 -21
  239. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +0 -1
  240. package/dist/types/src/capabilities/artifact-definition/index.d.ts +0 -3
  241. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +0 -1
  242. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -6
  243. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  244. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  245. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  246. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  247. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  248. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  249. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  250. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  251. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  252. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  253. package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts +0 -6
  254. package/dist/types/src/containers/KanbanViewEditor/KanbanViewEditor.d.ts.map +0 -1
  255. package/dist/types/src/containers/KanbanViewEditor/index.d.ts +0 -3
  256. package/dist/types/src/containers/KanbanViewEditor/index.d.ts.map +0 -1
  257. package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts +0 -2
  258. package/dist/types/src/hooks/useKanbanBoardModel.test.d.ts.map +0 -1
  259. package/src/capabilities/artifact-definition/index.ts +0 -7
  260. package/src/capabilities/blueprint-definition/index.ts +0 -7
  261. package/src/capabilities/operation-resolver/index.ts +0 -7
  262. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -133
  263. package/src/capabilities/react-surface/index.ts +0 -7
  264. package/src/containers/KanbanViewEditor/KanbanViewEditor.tsx +0 -63
  265. package/src/containers/KanbanViewEditor/index.ts +0 -7
  266. /package/dist/lib/{browser → neutral}/blueprints/index.mjs.map +0 -0
  267. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  268. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  269. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  270. /package/dist/lib/{node-esm/blueprints/index.mjs.map → neutral/meta.mjs.map} +0 -0
  271. /package/dist/lib/{node-esm/types → neutral/operations}/index.mjs.map +0 -0
  272. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/types/index.mjs.map} +0 -0
  273. /package/dist/types/src/capabilities/{artifact-definition/artifact-definition.d.ts → artifact-definition.d.ts} +0 -0
  274. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
@@ -0,0 +1,132 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/KanbanContainer/KanbanContainer.tsx
4
+ import { Atom, RegistryContext } from "@effect-atom/atom-react";
5
+ import React, { useCallback, useContext, useMemo } from "react";
6
+ import { useCapabilities, useOperationInvoker } from "@dxos/app-framework/ui";
7
+ import { AppCapabilities } from "@dxos/app-toolkit";
8
+ import { Filter, Obj, Query, Type } from "@dxos/echo";
9
+ import { AtomObj, AtomQuery } from "@dxos/echo-atom";
10
+ import { useObject, useSchema } from "@dxos/react-client/echo";
11
+ import { Panel, Toolbar } from "@dxos/react-ui";
12
+ import { getTagFromQuery, getTypenameFromQuery } from "@dxos/schema";
13
+ import { KanbanBoard } from "#components";
14
+ import { useEchoChangeCallback, useItemsProjection, useProjectionModel } from "#hooks";
15
+ import { KanbanOperation } from "#types";
16
+ import { Kanban } from "#types";
17
+ var KanbanContainer = (props) => {
18
+ return Kanban.isKanbanItems(props.subject) ? /* @__PURE__ */ React.createElement(ItemsKanbanContainer, {
19
+ ...props,
20
+ subject: props.subject
21
+ }) : /* @__PURE__ */ React.createElement(ViewKanbanContainer, props);
22
+ };
23
+ var ViewKanbanContainer = ({ role, subject: object }) => {
24
+ const registry = useContext(RegistryContext);
25
+ const schemas = useCapabilities(AppCapabilities.Schema);
26
+ const db = Obj.getDatabase(object);
27
+ const { invokePromise } = useOperationInvoker();
28
+ const [view] = useObject(object.spec.kind === "view" ? object.spec.view : void 0);
29
+ const typename = view?.query ? getTypenameFromQuery(view.query.ast) : void 0;
30
+ const tag = view?.query ? getTagFromQuery(view.query.ast) : void 0;
31
+ const schemaFromDb = useSchema(db, typename);
32
+ const cardSchema = useMemo(() => schemaFromDb ?? schemas.flat().find((schema) => Type.getTypename(schema) === typename), [
33
+ schemaFromDb,
34
+ schemas,
35
+ typename
36
+ ]);
37
+ const items = useMemo(() => {
38
+ if (!db) {
39
+ return null;
40
+ }
41
+ const baseFilter = cardSchema ? Filter.type(cardSchema) : Filter.nothing();
42
+ const query = tag ? Query.select(baseFilter).select(Filter.tag(tag)) : Query.select(baseFilter);
43
+ return AtomQuery.make(db, query);
44
+ }, [
45
+ db,
46
+ cardSchema,
47
+ tag
48
+ ]);
49
+ const projection = useProjectionModel(cardSchema, object, registry);
50
+ const change = useEchoChangeCallback(object);
51
+ const pivotFieldId = view?.projection?.pivotFieldId;
52
+ const columnFieldPath = projection && pivotFieldId ? projection.tryGetFieldProjection(pivotFieldId)?.props.property : void 0;
53
+ const handleCardAdd = useCallback((columnValue) => {
54
+ if (db && cardSchema && columnFieldPath) {
55
+ const card = Obj.make(cardSchema, {
56
+ [columnFieldPath]: columnValue
57
+ });
58
+ db.add(card);
59
+ return card.id;
60
+ }
61
+ }, [
62
+ db,
63
+ cardSchema,
64
+ columnFieldPath
65
+ ]);
66
+ const handleCardRemove = useCallback((card) => {
67
+ void invokePromise(KanbanOperation.DeleteCard, {
68
+ card
69
+ });
70
+ }, [
71
+ invokePromise
72
+ ]);
73
+ if (!object || !db || !items || !projection || !change) {
74
+ return null;
75
+ }
76
+ return /* @__PURE__ */ React.createElement(Panel.Root, {
77
+ role
78
+ }, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
79
+ asChild: true
80
+ }, /* @__PURE__ */ React.createElement(Toolbar.Root, null)), /* @__PURE__ */ React.createElement(KanbanBoard.Root, {
81
+ kanban: object,
82
+ projection,
83
+ items,
84
+ change,
85
+ onCardAdd: handleCardAdd,
86
+ onCardRemove: handleCardRemove
87
+ }, /* @__PURE__ */ React.createElement(Panel.Content, {
88
+ asChild: true
89
+ }, /* @__PURE__ */ React.createElement(KanbanBoard.Content, null))));
90
+ };
91
+ var ItemsKanbanContainer = ({ role, subject: object }) => {
92
+ const db = Obj.getDatabase(object);
93
+ const projection = useItemsProjection(object);
94
+ const change = useEchoChangeCallback(object);
95
+ const itemsAtom = useMemo(() => Atom.make((get) => {
96
+ const out = [];
97
+ for (const ref of object.spec.items) {
98
+ const target = get(AtomObj.make(ref));
99
+ if (target == null) {
100
+ continue;
101
+ }
102
+ if (Obj.isDeleted(target)) {
103
+ continue;
104
+ }
105
+ out.push(target);
106
+ }
107
+ return out;
108
+ }), [
109
+ object.spec.items
110
+ ]);
111
+ const handleCardRemove = useCallback(() => void 0, []);
112
+ if (!object || !db || !change) {
113
+ return null;
114
+ }
115
+ return /* @__PURE__ */ React.createElement(Panel.Root, {
116
+ role
117
+ }, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
118
+ asChild: true
119
+ }, /* @__PURE__ */ React.createElement(Toolbar.Root, null)), /* @__PURE__ */ React.createElement(KanbanBoard.Root, {
120
+ kanban: object,
121
+ projection,
122
+ items: itemsAtom,
123
+ change,
124
+ onCardRemove: handleCardRemove
125
+ }, /* @__PURE__ */ React.createElement(Panel.Content, {
126
+ asChild: true
127
+ }, /* @__PURE__ */ React.createElement(KanbanBoard.Content, null))));
128
+ };
129
+ export {
130
+ KanbanContainer as default
131
+ };
132
+ //# sourceMappingURL=KanbanContainer-QK6LNCYT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/KanbanContainer/KanbanContainer.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Atom, RegistryContext } from '@effect-atom/atom-react';\nimport React, { useCallback, useContext, useMemo } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Filter, Obj, Query, type Ref, Type } from '@dxos/echo';\nimport { AtomObj, AtomQuery } from '@dxos/echo-atom';\nimport { useObject, useSchema } from '@dxos/react-client/echo';\nimport { Panel, Toolbar } from '@dxos/react-ui';\nimport { getTagFromQuery, getTypenameFromQuery } from '@dxos/schema';\n\nimport { KanbanBoard } from '#components';\nimport { useEchoChangeCallback, useItemsProjection, useProjectionModel } from '#hooks';\nimport { KanbanOperation } from '#types';\nimport { Kanban } from '#types';\n\nexport type KanbanContainerProps = AppSurface.ObjectArticleProps<Kanban.Kanban>;\n\nexport const KanbanContainer = (props: KanbanContainerProps) => {\n // Branch on `kanban.spec.kind`: view-variant runs a typename query through\n // `useProjectionModel`; items-variant dereferences `kanban.spec.items` and\n // uses a stub projection from `useItemsProjection`.\n return Kanban.isKanbanItems(props.subject) ? (\n <ItemsKanbanContainer {...props} subject={props.subject} />\n ) : (\n <ViewKanbanContainer {...props} />\n );\n};\n\nconst ViewKanbanContainer = ({ role, subject: object }: KanbanContainerProps) => {\n const registry = useContext(RegistryContext);\n const schemas = useCapabilities(AppCapabilities.Schema);\n const db = Obj.getDatabase(object);\n const { invokePromise } = useOperationInvoker();\n const [view] = useObject(object.spec.kind === 'view' ? object.spec.view : undefined);\n const typename = view?.query ? getTypenameFromQuery(view.query.ast) : undefined;\n const tag = view?.query ? getTagFromQuery(view.query.ast) : undefined;\n\n const schemaFromDb = useSchema(db, typename);\n const cardSchema = useMemo(\n () => schemaFromDb ?? schemas.flat().find((schema) => Type.getTypename(schema) === typename),\n [schemaFromDb, schemas, typename],\n );\n\n const items = useMemo(() => {\n if (!db) {\n return null;\n }\n const baseFilter = cardSchema ? Filter.type(cardSchema) : Filter.nothing();\n const query = tag ? Query.select(baseFilter).select(Filter.tag(tag)) : Query.select(baseFilter);\n return AtomQuery.make(db, query);\n }, [db, cardSchema, tag]);\n\n const projection = useProjectionModel(cardSchema, object, registry);\n const change = useEchoChangeCallback(object);\n\n const pivotFieldId = view?.projection?.pivotFieldId;\n const columnFieldPath =\n projection && pivotFieldId ? projection.tryGetFieldProjection(pivotFieldId)?.props.property : undefined;\n\n const handleCardAdd = useCallback(\n (columnValue: string | undefined) => {\n if (db && cardSchema && columnFieldPath) {\n const card = Obj.make(cardSchema, { [columnFieldPath]: columnValue });\n db.add(card);\n return card.id;\n }\n },\n [db, cardSchema, columnFieldPath],\n );\n\n const handleCardRemove = useCallback(\n (card: { id: string }) => {\n void invokePromise(KanbanOperation.DeleteCard, { card });\n },\n [invokePromise],\n );\n\n if (!object || !db || !items || !projection || !change) {\n return null;\n }\n\n return (\n <Panel.Root role={role}>\n <Panel.Toolbar asChild>\n <Toolbar.Root />\n </Panel.Toolbar>\n <KanbanBoard.Root\n kanban={object}\n projection={projection}\n items={items}\n change={change}\n onCardAdd={handleCardAdd}\n onCardRemove={handleCardRemove}\n >\n <Panel.Content asChild>\n <KanbanBoard.Content />\n </Panel.Content>\n </KanbanBoard.Root>\n </Panel.Root>\n );\n};\n\ntype ItemsKanbanContainerProps = Omit<KanbanContainerProps, 'subject'> & { subject: Kanban.KanbanItems };\n\nconst ItemsKanbanContainer = ({ role, subject: object }: ItemsKanbanContainerProps) => {\n const db = Obj.getDatabase(object);\n const projection = useItemsProjection(object);\n const change = useEchoChangeCallback(object);\n\n // TODO(wittjosiah): pass refs (not loaded objects) through to the kanban\n // board and let `KanbanCard` subscribe to its own ref via `useObject`.\n // Today this atom subscribes to *every* item — any one changing causes the\n // container (and the model's per-column atoms) to recompute. With cards\n // subscribing themselves, the container only needs the refs and the\n // per-card render is independent. Requires:\n // - `KanbanCard` to accept `Ref<Obj.Unknown>` as `data` and call\n // `useObject(ref)` internally.\n // - The model to handle a ref-bearing item shape (id from\n // `ref.dxn.asEchoDXN()?.echoId`) and use arrangement-only ordering\n // for items-variant (no pivot-value fallback, since refs don't expose\n // the pivot field without loading).\n // - `Mosaic.isItem` to accept the ref wrapper alongside `Obj.isObject`.\n const itemsAtom = useMemo(\n () =>\n Atom.make((get) => {\n const out: Obj.Unknown[] = [];\n for (const ref of object.spec.items as ReadonlyArray<Ref.Ref<Obj.Unknown>>) {\n const target = get(AtomObj.make(ref));\n if (target == null) {\n continue;\n }\n // Drop soft-deleted cards (e.g. Trello-closed cards). The ref\n // stays in `spec.items` so arrangement is preserved, but the card\n // shouldn't render.\n if (Obj.isDeleted(target)) {\n continue;\n }\n out.push(target as unknown as Obj.Unknown);\n }\n return out;\n }),\n [object.spec.items],\n );\n\n const handleCardRemove = useCallback(() => undefined, []);\n\n if (!object || !db || !change) {\n return null;\n }\n\n // TODO(wittjosiah): wire `onCardAdd` to the create-object flow so\n // users can add items directly from the kanban (currently the column's\n // \"+\" button is hidden because `onCardAdd` is undefined).\n return (\n <Panel.Root role={role}>\n <Panel.Toolbar asChild>\n <Toolbar.Root />\n </Panel.Toolbar>\n <KanbanBoard.Root\n kanban={object}\n projection={projection}\n items={itemsAtom}\n change={change}\n onCardRemove={handleCardRemove}\n >\n <Panel.Content asChild>\n <KanbanBoard.Content />\n </Panel.Content>\n </KanbanBoard.Root>\n </Panel.Root>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Atom", "RegistryContext", "React", "useCallback", "useContext", "useMemo", "useCapabilities", "useOperationInvoker", "AppCapabilities", "Filter", "Obj", "Query", "Type", "AtomObj", "AtomQuery", "useObject", "useSchema", "Panel", "Toolbar", "getTagFromQuery", "getTypenameFromQuery", "KanbanBoard", "useEchoChangeCallback", "useItemsProjection", "useProjectionModel", "KanbanOperation", "Kanban", "KanbanContainer", "props", "isKanbanItems", "subject", "ItemsKanbanContainer", "ViewKanbanContainer", "role", "object", "registry", "schemas", "Schema", "db", "getDatabase", "invokePromise", "view", "spec", "kind", "undefined", "typename", "query", "ast", "tag", "schemaFromDb", "cardSchema", "flat", "find", "schema", "getTypename", "items", "baseFilter", "type", "nothing", "select", "make", "projection", "change", "pivotFieldId", "columnFieldPath", "tryGetFieldProjection", "property", "handleCardAdd", "columnValue", "card", "add", "id", "handleCardRemove", "DeleteCard", "Root", "asChild", "kanban", "onCardAdd", "onCardRemove", "Content", "itemsAtom", "get", "out", "ref", "target", "isDeleted", "push"]
7
+ }
@@ -0,0 +1,36 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/KanbanPlugin.tsx
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppPlugin } from "@dxos/app-toolkit";
6
+ import { ClientEvents } from "@dxos/plugin-client";
7
+ import { BlueprintDefinition, CreateObject, Migrations, OperationHandler, UndoMappings, ReactSurface } from "#capabilities";
8
+ import { meta } from "#meta";
9
+ import { translations } from "#translations";
10
+ import { Kanban } from "#types";
11
+ var KanbanPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionModule({
12
+ activate: BlueprintDefinition
13
+ }), AppPlugin.addCreateObjectModule({
14
+ activate: CreateObject
15
+ }), AppPlugin.addOperationHandlerModule({
16
+ activate: OperationHandler
17
+ }), AppPlugin.addUndoMappingsModule({
18
+ activate: UndoMappings
19
+ }), AppPlugin.addSchemaModule({
20
+ schema: [
21
+ Kanban.Kanban
22
+ ]
23
+ }), AppPlugin.addSurfaceModule({
24
+ activate: ReactSurface
25
+ }), AppPlugin.addTranslationsModule({
26
+ translations
27
+ }), Plugin.addModule({
28
+ activatesOn: ClientEvents.SetupMigration,
29
+ activate: Migrations
30
+ }), Plugin.make);
31
+ var KanbanPlugin_default = KanbanPlugin;
32
+ export {
33
+ KanbanPlugin,
34
+ KanbanPlugin_default as default
35
+ };
36
+ //# sourceMappingURL=KanbanPlugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/KanbanPlugin.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { ClientEvents } from '@dxos/plugin-client';\n\nimport {\n BlueprintDefinition,\n CreateObject,\n Migrations,\n OperationHandler,\n UndoMappings,\n ReactSurface,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { Kanban } from '#types';\n\nexport const KanbanPlugin = Plugin.define(meta).pipe(\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addUndoMappingsModule({ activate: UndoMappings }),\n AppPlugin.addSchemaModule({ schema: [Kanban.Kanban] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n activatesOn: ClientEvents.SetupMigration,\n activate: Migrations,\n }),\n Plugin.make,\n);\n\nexport default KanbanPlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAE7B,SACEC,qBACAC,cACAC,YACAC,kBACAC,cACAC,oBACK;AACP,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAC7B,SAASC,cAAc;AAEhB,IAAMC,eAAeZ,OAAOa,OAAOJ,IAAAA,EAAMK,KAC9Cb,UAAUc,6BAA6B;EAAEC,UAAUb;AAAoB,CAAA,GACvEF,UAAUgB,sBAAsB;EAAED,UAAUZ;AAAa,CAAA,GACzDH,UAAUiB,0BAA0B;EAAEF,UAAUV;AAAiB,CAAA,GACjEL,UAAUkB,sBAAsB;EAAEH,UAAUT;AAAa,CAAA,GACzDN,UAAUmB,gBAAgB;EAAEC,QAAQ;IAACV,OAAOA;;AAAQ,CAAA,GACpDV,UAAUqB,iBAAiB;EAAEN,UAAUR;AAAa,CAAA,GACpDP,UAAUsB,sBAAsB;EAAEb;AAAa,CAAA,GAC/CV,OAAOwB,UAAU;EACfC,aAAavB,aAAawB;EAC1BV,UAAUX;AACZ,CAAA,GACAL,OAAO2B,IAAI;AAGb,IAAA,uBAAef;",
6
+ "names": ["Plugin", "AppPlugin", "ClientEvents", "BlueprintDefinition", "CreateObject", "Migrations", "OperationHandler", "UndoMappings", "ReactSurface", "meta", "translations", "Kanban", "KanbanPlugin", "define", "pipe", "addBlueprintDefinitionModule", "activate", "addCreateObjectModule", "addOperationHandlerModule", "addUndoMappingsModule", "addSchemaModule", "schema", "addSurfaceModule", "addTranslationsModule", "addModule", "activatesOn", "SetupMigration", "make"]
7
+ }
@@ -0,0 +1,27 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/KanbanPlugin.node.ts
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppPlugin } from "@dxos/app-toolkit";
6
+ import { BlueprintDefinition, CreateObject, OperationHandler, UndoMappings } from "#capabilities";
7
+ import { meta } from "#meta";
8
+ import { Kanban } from "#types";
9
+ var KanbanPlugin = Plugin.define(meta).pipe(AppPlugin.addBlueprintDefinitionModule({
10
+ activate: BlueprintDefinition
11
+ }), AppPlugin.addCreateObjectModule({
12
+ activate: CreateObject
13
+ }), AppPlugin.addOperationHandlerModule({
14
+ activate: OperationHandler
15
+ }), AppPlugin.addUndoMappingsModule({
16
+ activate: UndoMappings
17
+ }), AppPlugin.addSchemaModule({
18
+ schema: [
19
+ Kanban.Kanban
20
+ ]
21
+ }), Plugin.make);
22
+ var KanbanPlugin_node_default = KanbanPlugin;
23
+ export {
24
+ KanbanPlugin,
25
+ KanbanPlugin_node_default as default
26
+ };
27
+ //# sourceMappingURL=KanbanPlugin.node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/KanbanPlugin.node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\n\nimport { BlueprintDefinition, CreateObject, OperationHandler, UndoMappings } from '#capabilities';\nimport { meta } from '#meta';\nimport { Kanban } from '#types';\n\nexport const KanbanPlugin = Plugin.define(meta).pipe(\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addUndoMappingsModule({ activate: UndoMappings }),\n AppPlugin.addSchemaModule({ schema: [Kanban.Kanban] }),\n Plugin.make,\n);\n\nexport default KanbanPlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAE1B,SAASC,qBAAqBC,cAAcC,kBAAkBC,oBAAoB;AAClF,SAASC,YAAY;AACrB,SAASC,cAAc;AAEhB,IAAMC,eAAeR,OAAOS,OAAOH,IAAAA,EAAMI,KAC9CT,UAAUU,6BAA6B;EAAEC,UAAUV;AAAoB,CAAA,GACvED,UAAUY,sBAAsB;EAAED,UAAUT;AAAa,CAAA,GACzDF,UAAUa,0BAA0B;EAAEF,UAAUR;AAAiB,CAAA,GACjEH,UAAUc,sBAAsB;EAAEH,UAAUP;AAAa,CAAA,GACzDJ,UAAUe,gBAAgB;EAAEC,QAAQ;IAACV,OAAOA;;AAAQ,CAAA,GACpDP,OAAOkB,IAAI;AAGb,IAAA,4BAAeV;",
6
+ "names": ["Plugin", "AppPlugin", "BlueprintDefinition", "CreateObject", "OperationHandler", "UndoMappings", "meta", "Kanban", "KanbanPlugin", "define", "pipe", "addBlueprintDefinitionModule", "activate", "addCreateObjectModule", "addOperationHandlerModule", "addUndoMappingsModule", "addSchemaModule", "schema", "make"]
7
+ }
@@ -1,12 +1,6 @@
1
- import {
2
- useProjectionModel
3
- } from "./chunk-QSWCFMEB.mjs";
4
- import {
5
- SettingsSchema
6
- } from "./chunk-RNFIFE2P.mjs";
7
1
  import "./chunk-J5LGTIGS.mjs";
8
2
 
9
- // src/containers/KanbanViewEditor/KanbanViewEditor.tsx
3
+ // src/containers/KanbanSettings/KanbanSettings.tsx
10
4
  import { RegistryContext } from "@effect-atom/atom-react";
11
5
  import React, { useCallback, useContext, useMemo } from "react";
12
6
  import { Obj } from "@dxos/echo";
@@ -14,10 +8,14 @@ import { Format } from "@dxos/echo/internal";
14
8
  import { useObject, useSchema } from "@dxos/react-client/echo";
15
9
  import { Form, SelectField } from "@dxos/react-ui-form";
16
10
  import { getTypenameFromQuery } from "@dxos/schema";
17
- var KanbanViewEditor = ({ subject: object }) => {
11
+ import { useProjectionModel } from "#hooks";
12
+ import { KanbanSettingsSchema, KanbanViewSettingsSchema, UNCATEGORIZED_VALUE } from "#types";
13
+ var KanbanSettings = ({ subject: object }) => {
18
14
  const registry = useContext(RegistryContext);
19
15
  const db = Obj.getDatabase(object);
20
- const [view, updateView] = useObject(object.view);
16
+ const isView = object.spec.kind === "view";
17
+ const [view, updateView] = useObject(object.spec.kind === "view" ? object.spec.view : void 0);
18
+ const [, updateKanban] = useObject(object);
21
19
  const currentTypename = view?.query ? getTypenameFromQuery(view.query.ast) : void 0;
22
20
  const schema = useSchema(db, currentTypename);
23
21
  const projection = useProjectionModel(schema, object, registry);
@@ -28,19 +26,40 @@ var KanbanViewEditor = ({ subject: object }) => {
28
26
  })), [
29
27
  fieldProjections
30
28
  ]);
29
+ const hideUncategorized = object.arrangement.columns[UNCATEGORIZED_VALUE]?.hidden ?? false;
31
30
  const handleValuesChanged = useCallback((values) => {
32
- if (values.columnFieldId != null) {
31
+ if (isView && values.columnFieldId != null) {
33
32
  updateView((view2) => {
34
33
  view2.projection.pivotFieldId = values.columnFieldId;
35
34
  });
36
35
  }
36
+ if (values.hideUncategorized !== void 0) {
37
+ updateKanban((kanban) => {
38
+ const existing = kanban.arrangement.columns[UNCATEGORIZED_VALUE];
39
+ if (existing) {
40
+ existing.hidden = values.hideUncategorized;
41
+ } else {
42
+ kanban.arrangement.columns[UNCATEGORIZED_VALUE] = {
43
+ ids: [],
44
+ hidden: values.hideUncategorized
45
+ };
46
+ }
47
+ });
48
+ }
37
49
  }, [
38
- updateView
50
+ isView,
51
+ updateView,
52
+ updateKanban
39
53
  ]);
40
54
  const initialValues = useMemo(() => ({
41
- columnFieldId: view?.projection.pivotFieldId
55
+ ...isView ? {
56
+ columnFieldId: view?.projection.pivotFieldId
57
+ } : {},
58
+ hideUncategorized
42
59
  }), [
43
- view?.projection.pivotFieldId
60
+ isView,
61
+ view?.projection.pivotFieldId,
62
+ hideUncategorized
44
63
  ]);
45
64
  const fieldMap = useMemo(() => ({
46
65
  columnFieldId: (props) => /* @__PURE__ */ React.createElement(SelectField, {
@@ -50,17 +69,15 @@ var KanbanViewEditor = ({ subject: object }) => {
50
69
  }), [
51
70
  selectFields
52
71
  ]);
72
+ const settingsSchema = isView ? KanbanViewSettingsSchema : KanbanSettingsSchema;
53
73
  return /* @__PURE__ */ React.createElement(Form.Root, {
54
- schema: SettingsSchema,
74
+ schema: settingsSchema,
55
75
  values: initialValues,
56
76
  fieldMap,
57
77
  onValuesChanged: handleValuesChanged
58
78
  }, /* @__PURE__ */ React.createElement(Form.FieldSet, null));
59
79
  };
60
-
61
- // src/containers/KanbanViewEditor/index.ts
62
- var KanbanViewEditor_default = KanbanViewEditor;
63
80
  export {
64
- KanbanViewEditor_default as default
81
+ KanbanSettings as default
65
82
  };
66
- //# sourceMappingURL=KanbanViewEditor-IH5CJ6BW.mjs.map
83
+ //# sourceMappingURL=KanbanSettings-G6M47NSK.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/KanbanSettings/KanbanSettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { RegistryContext } from '@effect-atom/atom-react';\nimport React, { useCallback, useContext, useMemo } from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { Format } from '@dxos/echo/internal';\nimport { useObject, useSchema } from '@dxos/react-client/echo';\nimport { Form, type FormFieldMap, SelectField } from '@dxos/react-ui-form';\nimport { getTypenameFromQuery } from '@dxos/schema';\n\nimport { useProjectionModel } from '#hooks';\nimport { type Kanban, KanbanSettingsSchema, KanbanViewSettingsSchema, UNCATEGORIZED_VALUE } from '#types';\n\nexport type KanbanSettingsProps = AppSurface.ObjectPropertiesProps<Kanban.Kanban>;\n\n/**\n * Settings panel for a Kanban. Renders fields common to every kanban\n * (currently the \"Hide uncategorized column\" toggle); for view-variant\n * kanbans an additional \"Column field\" picker drives the View's pivot\n * field. Items-variant kanbans use a hardcoded `spec.pivotField`, so that\n * field is omitted there.\n */\nexport const KanbanSettings = ({ subject: object }: KanbanSettingsProps) => {\n const registry = useContext(RegistryContext);\n const db = Obj.getDatabase(object);\n const isView = object.spec.kind === 'view';\n const [view, updateView] = useObject(object.spec.kind === 'view' ? object.spec.view : undefined);\n const [, updateKanban] = useObject(object);\n const currentTypename = view?.query ? getTypenameFromQuery(view.query.ast) : undefined;\n const schema = useSchema(db, currentTypename);\n const projection = useProjectionModel(schema, object, registry);\n\n const fieldProjections = projection?.getFieldProjections() ?? [];\n const selectFields = useMemo(\n () =>\n fieldProjections\n .filter((field) => field.props.format === Format.TypeFormat.SingleSelect)\n .map(({ field }) => ({ value: field.id, label: field.path })),\n [fieldProjections],\n );\n\n const hideUncategorized = object.arrangement.columns[UNCATEGORIZED_VALUE]?.hidden ?? false;\n\n const handleValuesChanged = useCallback(\n (values: Partial<{ columnFieldId: string; hideUncategorized: boolean }>) => {\n if (isView && values.columnFieldId != null) {\n updateView((view) => {\n view.projection.pivotFieldId = values.columnFieldId!;\n });\n }\n if (values.hideUncategorized !== undefined) {\n updateKanban((kanban) => {\n const existing = kanban.arrangement.columns[UNCATEGORIZED_VALUE];\n if (existing) {\n existing.hidden = values.hideUncategorized;\n } else {\n kanban.arrangement.columns[UNCATEGORIZED_VALUE] = {\n ids: [],\n hidden: values.hideUncategorized,\n };\n }\n });\n }\n },\n [isView, updateView, updateKanban],\n );\n\n const initialValues = useMemo(\n () => ({\n ...(isView ? { columnFieldId: view?.projection.pivotFieldId } : {}),\n hideUncategorized,\n }),\n [isView, view?.projection.pivotFieldId, hideUncategorized],\n );\n\n const fieldMap: FormFieldMap = useMemo(\n () => ({ columnFieldId: (props) => <SelectField {...props} options={selectFields} /> }),\n [selectFields],\n );\n\n // Schema is picked by `kanban.spec.kind` — they have different shapes,\n // so cast for `Form.Root`'s single-schema prop.\n const settingsSchema = (isView ? KanbanViewSettingsSchema : KanbanSettingsSchema) as any;\n\n return (\n <Form.Root schema={settingsSchema} values={initialValues} fieldMap={fieldMap} onValuesChanged={handleValuesChanged}>\n <Form.FieldSet />\n </Form.Root>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,SAASA,uBAAuB;AAChC,OAAOC,SAASC,aAAaC,YAAYC,eAAe;AAGxD,SAASC,WAAW;AACpB,SAASC,cAAc;AACvB,SAASC,WAAWC,iBAAiB;AACrC,SAASC,MAAyBC,mBAAmB;AACrD,SAASC,4BAA4B;AAErC,SAASC,0BAA0B;AACnC,SAAsBC,sBAAsBC,0BAA0BC,2BAA2B;AAW1F,IAAMC,iBAAiB,CAAC,EAAEC,SAASC,OAAM,MAAuB;AACrE,QAAMC,WAAWhB,WAAWH,eAAAA;AAC5B,QAAMoB,KAAKf,IAAIgB,YAAYH,MAAAA;AAC3B,QAAMI,SAASJ,OAAOK,KAAKC,SAAS;AACpC,QAAM,CAACC,MAAMC,UAAAA,IAAcnB,UAAUW,OAAOK,KAAKC,SAAS,SAASN,OAAOK,KAAKE,OAAOE,MAAAA;AACtF,QAAM,CAAA,EAAGC,YAAAA,IAAgBrB,UAAUW,MAAAA;AACnC,QAAMW,kBAAkBJ,MAAMK,QAAQnB,qBAAqBc,KAAKK,MAAMC,GAAG,IAAIJ;AAC7E,QAAMK,SAASxB,UAAUY,IAAIS,eAAAA;AAC7B,QAAMI,aAAarB,mBAAmBoB,QAAQd,QAAQC,QAAAA;AAEtD,QAAMe,mBAAmBD,YAAYE,oBAAAA,KAAyB,CAAA;AAC9D,QAAMC,eAAehC,QACnB,MACE8B,iBACGG,OAAO,CAACC,UAAUA,MAAMC,MAAMC,WAAWlC,OAAOmC,WAAWC,YAAY,EACvEC,IAAI,CAAC,EAAEL,MAAK,OAAQ;IAAEM,OAAON,MAAMO;IAAIC,OAAOR,MAAMS;EAAK,EAAA,GAC9D;IAACb;GAAiB;AAGpB,QAAMc,oBAAoB9B,OAAO+B,YAAYC,QAAQnC,mBAAAA,GAAsBoC,UAAU;AAErF,QAAMC,sBAAsBlD,YAC1B,CAACmD,WAAAA;AACC,QAAI/B,UAAU+B,OAAOC,iBAAiB,MAAM;AAC1C5B,iBAAW,CAACD,UAAAA;AACVA,QAAAA,MAAKQ,WAAWsB,eAAeF,OAAOC;MACxC,CAAA;IACF;AACA,QAAID,OAAOL,sBAAsBrB,QAAW;AAC1CC,mBAAa,CAAC4B,WAAAA;AACZ,cAAMC,WAAWD,OAAOP,YAAYC,QAAQnC,mBAAAA;AAC5C,YAAI0C,UAAU;AACZA,mBAASN,SAASE,OAAOL;QAC3B,OAAO;AACLQ,iBAAOP,YAAYC,QAAQnC,mBAAAA,IAAuB;YAChD2C,KAAK,CAAA;YACLP,QAAQE,OAAOL;UACjB;QACF;MACF,CAAA;IACF;EACF,GACA;IAAC1B;IAAQI;IAAYE;GAAa;AAGpC,QAAM+B,gBAAgBvD,QACpB,OAAO;IACL,GAAIkB,SAAS;MAAEgC,eAAe7B,MAAMQ,WAAWsB;IAAa,IAAI,CAAC;IACjEP;EACF,IACA;IAAC1B;IAAQG,MAAMQ,WAAWsB;IAAcP;GAAkB;AAG5D,QAAMY,WAAyBxD,QAC7B,OAAO;IAAEkD,eAAe,CAACf,UAAU,sBAAA,cAAC7B,aAAAA;MAAa,GAAG6B;MAAOsB,SAASzB;;EAAiB,IACrF;IAACA;GAAa;AAKhB,QAAM0B,iBAAkBxC,SAASR,2BAA2BD;AAE5D,SACE,sBAAA,cAACJ,KAAKsD,MAAI;IAAC/B,QAAQ8B;IAAgBT,QAAQM;IAAeC;IAAoBI,iBAAiBZ;KAC7F,sBAAA,cAAC3C,KAAKwD,UAAQ,IAAA,CAAA;AAGpB;",
6
+ "names": ["RegistryContext", "React", "useCallback", "useContext", "useMemo", "Obj", "Format", "useObject", "useSchema", "Form", "SelectField", "getTypenameFromQuery", "useProjectionModel", "KanbanSettingsSchema", "KanbanViewSettingsSchema", "UNCATEGORIZED_VALUE", "KanbanSettings", "subject", "object", "registry", "db", "getDatabase", "isView", "spec", "kind", "view", "updateView", "undefined", "updateKanban", "currentTypename", "query", "ast", "schema", "projection", "fieldProjections", "getFieldProjections", "selectFields", "filter", "field", "props", "format", "TypeFormat", "SingleSelect", "map", "value", "id", "label", "path", "hideUncategorized", "arrangement", "columns", "hidden", "handleValuesChanged", "values", "columnFieldId", "pivotFieldId", "kanban", "existing", "ids", "initialValues", "fieldMap", "options", "settingsSchema", "Root", "onValuesChanged", "FieldSet"]
7
+ }
@@ -1,17 +1,15 @@
1
- import {
2
- kanban_blueprint_default
3
- } from "./chunk-TLYZSC7O.mjs";
4
1
  import "./chunk-J5LGTIGS.mjs";
5
2
 
6
- // src/capabilities/blueprint-definition/blueprint-definition.ts
3
+ // src/capabilities/blueprint-definition.ts
7
4
  import * as Effect from "effect/Effect";
8
5
  import { Capability } from "@dxos/app-framework";
9
6
  import { AppCapabilities } from "@dxos/app-toolkit";
7
+ import { KanbanBlueprint } from "#blueprints";
10
8
  var blueprintDefinition = Capability.makeModule(() => Effect.succeed([
11
- Capability.contributes(AppCapabilities.BlueprintDefinition, kanban_blueprint_default)
9
+ Capability.contributes(AppCapabilities.BlueprintDefinition, KanbanBlueprint)
12
10
  ]));
13
11
  var blueprint_definition_default = blueprintDefinition;
14
12
  export {
15
13
  blueprint_definition_default as default
16
14
  };
17
- //# sourceMappingURL=blueprint-definition-HFEKGFJK.mjs.map
15
+ //# sourceMappingURL=blueprint-definition-FHVIEKTQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/blueprint-definition.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport type { Blueprint } from '@dxos/compute';\n\nimport { KanbanBlueprint } from '#blueprints';\n\nconst blueprintDefinition = Capability.makeModule<\n [],\n Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[]\n>(() => Effect.succeed([Capability.contributes(AppCapabilities.BlueprintDefinition, KanbanBlueprint)]));\n\nexport default blueprintDefinition;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAIhC,SAASC,uBAAuB;AAEhC,IAAMC,sBAAsBH,WAAWI,WAGrC,MAAaC,eAAQ;EAACL,WAAWM,YAAYL,gBAAgBM,qBAAqBL,eAAAA;CAAiB,CAAA;AAErG,IAAA,+BAAeC;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "KanbanBlueprint", "blueprintDefinition", "makeModule", "succeed", "contributes", "BlueprintDefinition"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  kanban_blueprint_default
3
- } from "../chunk-TLYZSC7O.mjs";
3
+ } from "../chunk-ZTQW5KQS.mjs";
4
4
  import "../chunk-J5LGTIGS.mjs";
5
5
  export {
6
6
  kanban_blueprint_default as KanbanBlueprint
@@ -0,0 +1,19 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/index.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var BlueprintDefinition = Capability.lazy("BlueprintDefinition", () => import("../blueprint-definition-FHVIEKTQ.mjs"));
6
+ var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-DKBSI46K.mjs"));
7
+ var Migrations = Capability.lazy("Migrations", () => import("../migrations-IWBT35UT.mjs"));
8
+ var OperationHandler = Capability.lazy("OperationHandler", () => import("../operation-handler-B7IW6MXU.mjs"));
9
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-JCVI5QVB.mjs"));
10
+ var UndoMappings = Capability.lazy("UndoMappings", () => import("../undo-mappings-6CHW6BOF.mjs"));
11
+ export {
12
+ BlueprintDefinition,
13
+ CreateObject,
14
+ Migrations,
15
+ OperationHandler,
16
+ ReactSurface,
17
+ UndoMappings
18
+ };
19
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport type { Blueprint, OperationHandlerSet } from '@dxos/compute';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const Migrations = Capability.lazy('Migrations', () => import('./migrations'));\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\nexport const UndoMappings = Capability.lazy('UndoMappings', () => import('./undo-mappings'));\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAIpB,IAAMC,sBAAsBD,WAAWE,KAAK,uBAAuB,MAAM,OAAO,sCAAA,CAAA;AAChF,IAAMC,eAAeH,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAME,aAAaJ,WAAWE,KAAK,cAAc,MAAM,OAAO,4BAAA,CAAA;AAC9D,IAAMG,mBAAmBL,WAAWE,KACzC,oBACA,MAAM,OAAO,mCAAA,CAAA;AAER,IAAMI,eAAeN,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMK,eAAeP,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;",
6
+ "names": ["Capability", "BlueprintDefinition", "lazy", "CreateObject", "Migrations", "OperationHandler", "ReactSurface", "UndoMappings"]
7
+ }
@@ -0,0 +1,8 @@
1
+ // src/operations/index.ts
2
+ import { OperationHandlerSet } from "@dxos/compute";
3
+ var KanbanOperationHandlerSet = OperationHandlerSet.lazy(() => import("./delete-card-356CBACE.mjs"), () => import("./delete-card-field-IRCZL2BR.mjs"), () => import("./restore-card-P25Y4YSE.mjs"), () => import("./restore-card-field-NHR3R4XI.mjs"));
4
+
5
+ export {
6
+ KanbanOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=chunk-BGWIKRS5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/index.ts"],
4
+ "sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const KanbanOperationHandlerSet = OperationHandlerSet.lazy(\n () => import('./delete-card'),\n () => import('./delete-card-field'),\n () => import('./restore-card'),\n () => import('./restore-card-field'),\n);\n"],
5
+ "mappings": ";AAEA,SAASA,2BAA2B;AAE7B,IAAMC,4BAA4BD,oBAAoBE,KAC3D,MAAM,OAAO,4BAAA,GACb,MAAM,OAAO,kCAAA,GACb,MAAM,OAAO,6BAAA,GACb,MAAM,OAAO,mCAAA,CAAA;",
6
+ "names": ["OperationHandlerSet", "KanbanOperationHandlerSet", "lazy"]
7
+ }
@@ -0,0 +1,21 @@
1
+ // src/meta.ts
2
+ import { trim } from "@dxos/util";
3
+ var meta = {
4
+ id: "org.dxos.plugin.kanban",
5
+ name: "Kanban",
6
+ description: trim`
7
+ Visual project management using customizable kanban boards to track workflow progress.
8
+ Organize table data into columns, drag and drop items between stages, and trigger automations based on status changes.
9
+ `,
10
+ icon: "ph--kanban--regular",
11
+ iconHue: "green",
12
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-kanban",
13
+ screenshots: [
14
+ "https://dxos.network/plugin-details-kanban-dark.png"
15
+ ]
16
+ };
17
+
18
+ export {
19
+ meta
20
+ };
21
+ //# sourceMappingURL=chunk-KDPM77BD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\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: 'org.dxos.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": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaJ;;;;EAIbK,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa;IAAC;;AAChB;",
6
+ "names": ["trim", "meta", "id", "name", "description", "icon", "iconHue", "source", "screenshots"]
7
+ }