@dxos/plugin-kanban 0.9.1-staging.ee54ba693a → 0.11.0

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 (169) hide show
  1. package/dist/lib/KanbanPlugin.mjs +18 -0
  2. package/dist/lib/KanbanPlugin.mjs.map +1 -0
  3. package/dist/lib/KanbanPlugin.node.mjs +11 -0
  4. package/dist/lib/KanbanPlugin.node.mjs.map +1 -0
  5. package/dist/lib/KanbanPlugin.workerd.mjs +11 -0
  6. package/dist/lib/KanbanPlugin.workerd.mjs.map +1 -0
  7. package/dist/lib/capabilities/node.mjs +10 -0
  8. package/dist/lib/capabilities/node.mjs.map +1 -0
  9. package/dist/lib/capabilities.mjs +11 -0
  10. package/dist/lib/capabilities.mjs.map +1 -0
  11. package/dist/lib/chunk-KanbanArticle.mjs +121 -0
  12. package/dist/lib/chunk-KanbanArticle.mjs.map +1 -0
  13. package/dist/lib/chunk-KanbanProperties.mjs +73 -0
  14. package/dist/lib/chunk-KanbanProperties.mjs.map +1 -0
  15. package/dist/lib/chunk-create-object.mjs +42 -0
  16. package/dist/lib/chunk-create-object.mjs.map +1 -0
  17. package/dist/lib/chunk-delete-card-field.mjs +50 -0
  18. package/dist/lib/chunk-delete-card-field.mjs.map +1 -0
  19. package/dist/lib/chunk-delete-card.mjs +23 -0
  20. package/dist/lib/chunk-delete-card.mjs.map +1 -0
  21. package/dist/lib/{neutral/chunk-V4AVOJVU.mjs → chunk-meta.mjs} +21 -29
  22. package/dist/lib/chunk-meta.mjs.map +1 -0
  23. package/dist/lib/chunk-operation-handler.mjs +11 -0
  24. package/dist/lib/chunk-operation-handler.mjs.map +1 -0
  25. package/dist/lib/chunk-react-surface.mjs +67 -0
  26. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  27. package/dist/lib/chunk-restore-card-field.mjs +48 -0
  28. package/dist/lib/chunk-restore-card-field.mjs.map +1 -0
  29. package/dist/lib/chunk-restore-card.mjs +22 -0
  30. package/dist/lib/chunk-restore-card.mjs.map +1 -0
  31. package/dist/lib/chunk-skill-definition.mjs +10 -0
  32. package/dist/lib/chunk-skill-definition.mjs.map +1 -0
  33. package/dist/lib/chunk-skills.mjs +20 -0
  34. package/dist/lib/chunk-skills.mjs.map +1 -0
  35. package/dist/lib/chunk-types.mjs +231 -0
  36. package/dist/lib/chunk-types.mjs.map +1 -0
  37. package/dist/lib/chunk-undo-mappings.mjs +25 -0
  38. package/dist/lib/chunk-undo-mappings.mjs.map +1 -0
  39. package/dist/lib/components.mjs +227 -0
  40. package/dist/lib/components.mjs.map +1 -0
  41. package/dist/lib/containers.mjs +8 -0
  42. package/dist/lib/containers.mjs.map +1 -0
  43. package/dist/lib/hooks.mjs +394 -0
  44. package/dist/lib/hooks.mjs.map +1 -0
  45. package/dist/lib/index.mjs +5 -0
  46. package/dist/lib/meta.mjs +2 -0
  47. package/dist/lib/operations.mjs +7 -0
  48. package/dist/lib/operations.mjs.map +1 -0
  49. package/dist/lib/plugin.mjs +9 -0
  50. package/dist/lib/plugin.mjs.map +1 -0
  51. package/dist/lib/skills.mjs +2 -0
  52. package/dist/lib/testing.mjs +72 -0
  53. package/dist/lib/testing.mjs.map +1 -0
  54. package/dist/lib/translations.mjs +38 -0
  55. package/dist/lib/translations.mjs.map +1 -0
  56. package/dist/lib/types.mjs +2 -0
  57. package/dist/types/src/capabilities/PivotColumnField.d.ts +12 -0
  58. package/dist/types/src/capabilities/PivotColumnField.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  60. package/dist/types/src/capabilities/create-object.d.ts +1 -1
  61. package/dist/types/src/capabilities/node.d.ts +7 -0
  62. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  63. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  64. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  65. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  66. package/dist/types/src/capabilities/undo-mappings.d.ts +1 -1
  67. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts +3 -4
  68. package/dist/types/src/components/KanbanBoard/KanbanBoard.d.ts.map +1 -1
  69. package/dist/types/src/components/KanbanBoard/KanbanBoard.stories.d.ts.map +1 -1
  70. package/dist/types/src/components/KanbanBoard/KanbanCard.d.ts.map +1 -1
  71. package/dist/types/src/components/KanbanBoard/index.d.ts +1 -0
  72. package/dist/types/src/components/KanbanBoard/index.d.ts.map +1 -1
  73. package/dist/types/src/containers/KanbanArticle/KanbanArticle.d.ts +4 -1
  74. package/dist/types/src/containers/KanbanArticle/KanbanArticle.d.ts.map +1 -1
  75. package/dist/types/src/containers/KanbanArticle/KanbanArticle.stories.d.ts.map +1 -1
  76. package/dist/types/src/containers/KanbanProperties/KanbanProperties.d.ts +4 -8
  77. package/dist/types/src/containers/KanbanProperties/KanbanProperties.d.ts.map +1 -1
  78. package/dist/types/src/hooks/useKanbanBoardModel.d.ts +1 -1
  79. package/dist/types/src/hooks/useKanbanBoardModel.d.ts.map +1 -1
  80. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts +4 -3
  81. package/dist/types/src/hooks/useKanbanColumnEventHandler.d.ts.map +1 -1
  82. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts +4 -3
  83. package/dist/types/src/hooks/useKanbanItemEventHandler.d.ts.map +1 -1
  84. package/dist/types/src/hooks/useProjectionModel.d.ts +1 -1
  85. package/dist/types/src/hooks/useProjectionModel.d.ts.map +1 -1
  86. package/dist/types/src/testing/KanbanCardTileSimple.d.ts.map +1 -1
  87. package/dist/types/tsconfig.tsbuildinfo +1 -1
  88. package/dx.config.ts +1 -0
  89. package/package.json +58 -51
  90. package/src/capabilities/PivotColumnField.tsx +56 -0
  91. package/src/capabilities/node.ts +18 -0
  92. package/src/capabilities/react-surface.ts +45 -0
  93. package/src/components/KanbanBoard/KanbanBoard.stories.tsx +15 -4
  94. package/src/components/KanbanBoard/KanbanBoard.tsx +0 -3
  95. package/src/components/KanbanBoard/KanbanCard.tsx +5 -3
  96. package/src/components/KanbanBoard/index.ts +2 -0
  97. package/src/containers/KanbanArticle/KanbanArticle.stories.tsx +2 -1
  98. package/src/containers/KanbanArticle/KanbanArticle.tsx +3 -1
  99. package/src/containers/KanbanProperties/KanbanProperties.tsx +3 -1
  100. package/src/hooks/useItemsProjection.ts +1 -1
  101. package/src/hooks/useKanbanBoardModel.browser.test.ts +1 -1
  102. package/src/hooks/useKanbanBoardModel.ts +1 -1
  103. package/src/hooks/useKanbanColumnEventHandler.ts +6 -5
  104. package/src/hooks/useKanbanItemEventHandler.ts +6 -7
  105. package/src/hooks/useProjectionModel.ts +1 -1
  106. package/src/testing/KanbanCardTileSimple.tsx +2 -1
  107. package/dist/lib/neutral/KanbanArticle-JQMQQHRB.mjs +0 -132
  108. package/dist/lib/neutral/KanbanArticle-JQMQQHRB.mjs.map +0 -7
  109. package/dist/lib/neutral/KanbanPlugin.mjs +0 -44
  110. package/dist/lib/neutral/KanbanPlugin.mjs.map +0 -7
  111. package/dist/lib/neutral/KanbanPlugin.node.mjs +0 -27
  112. package/dist/lib/neutral/KanbanPlugin.node.mjs.map +0 -7
  113. package/dist/lib/neutral/KanbanPlugin.workerd.mjs +0 -21
  114. package/dist/lib/neutral/KanbanPlugin.workerd.mjs.map +0 -7
  115. package/dist/lib/neutral/KanbanProperties-W7MZNZVJ.mjs +0 -83
  116. package/dist/lib/neutral/KanbanProperties-W7MZNZVJ.mjs.map +0 -7
  117. package/dist/lib/neutral/capabilities/index.mjs +0 -17
  118. package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
  119. package/dist/lib/neutral/chunk-7TVVF45P.mjs +0 -247
  120. package/dist/lib/neutral/chunk-7TVVF45P.mjs.map +0 -7
  121. package/dist/lib/neutral/chunk-7YLGUKDJ.mjs +0 -8
  122. package/dist/lib/neutral/chunk-7YLGUKDJ.mjs.map +0 -7
  123. package/dist/lib/neutral/chunk-CFPH5R6P.mjs +0 -26
  124. package/dist/lib/neutral/chunk-CFPH5R6P.mjs.map +0 -7
  125. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  126. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  127. package/dist/lib/neutral/chunk-V4AVOJVU.mjs.map +0 -7
  128. package/dist/lib/neutral/components/index.mjs +0 -245
  129. package/dist/lib/neutral/components/index.mjs.map +0 -7
  130. package/dist/lib/neutral/containers/index.mjs +0 -11
  131. package/dist/lib/neutral/containers/index.mjs.map +0 -7
  132. package/dist/lib/neutral/create-object-DIIFRS57.mjs +0 -45
  133. package/dist/lib/neutral/create-object-DIIFRS57.mjs.map +0 -7
  134. package/dist/lib/neutral/delete-card-TK2G6YHX.mjs +0 -24
  135. package/dist/lib/neutral/delete-card-TK2G6YHX.mjs.map +0 -7
  136. package/dist/lib/neutral/delete-card-field-LGWPBOUW.mjs +0 -39
  137. package/dist/lib/neutral/delete-card-field-LGWPBOUW.mjs.map +0 -7
  138. package/dist/lib/neutral/hooks/index.mjs +0 -431
  139. package/dist/lib/neutral/hooks/index.mjs.map +0 -7
  140. package/dist/lib/neutral/index.mjs +0 -34
  141. package/dist/lib/neutral/index.mjs.map +0 -7
  142. package/dist/lib/neutral/meta.json +0 -1
  143. package/dist/lib/neutral/meta.mjs +0 -8
  144. package/dist/lib/neutral/meta.mjs.map +0 -7
  145. package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs +0 -13
  146. package/dist/lib/neutral/operation-handler-B7IW6MXU.mjs.map +0 -7
  147. package/dist/lib/neutral/operations/index.mjs +0 -8
  148. package/dist/lib/neutral/operations/index.mjs.map +0 -7
  149. package/dist/lib/neutral/plugin.mjs +0 -16
  150. package/dist/lib/neutral/plugin.mjs.map +0 -7
  151. package/dist/lib/neutral/react-surface-FQGXRR3X.mjs +0 -89
  152. package/dist/lib/neutral/react-surface-FQGXRR3X.mjs.map +0 -7
  153. package/dist/lib/neutral/restore-card-3O6PVN7J.mjs +0 -21
  154. package/dist/lib/neutral/restore-card-3O6PVN7J.mjs.map +0 -7
  155. package/dist/lib/neutral/restore-card-field-5G4DVYYY.mjs +0 -37
  156. package/dist/lib/neutral/restore-card-field-5G4DVYYY.mjs.map +0 -7
  157. package/dist/lib/neutral/skill-definition-YGTCKXGP.mjs +0 -15
  158. package/dist/lib/neutral/skill-definition-YGTCKXGP.mjs.map +0 -7
  159. package/dist/lib/neutral/skills/index.mjs +0 -8
  160. package/dist/lib/neutral/skills/index.mjs.map +0 -7
  161. package/dist/lib/neutral/testing/index.mjs +0 -64
  162. package/dist/lib/neutral/testing/index.mjs.map +0 -7
  163. package/dist/lib/neutral/translations.mjs +0 -44
  164. package/dist/lib/neutral/translations.mjs.map +0 -7
  165. package/dist/lib/neutral/types/index.mjs +0 -22
  166. package/dist/lib/neutral/types/index.mjs.map +0 -7
  167. package/dist/lib/neutral/undo-mappings-EZTHO4UL.mjs +0 -42
  168. package/dist/lib/neutral/undo-mappings-EZTHO4UL.mjs.map +0 -7
  169. package/src/capabilities/react-surface.tsx +0 -95
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/restore-card-field.ts"],
4
- "sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\nimport { Obj, Type } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { ProjectionModel, createEchoChangeCallback, getTypeURIFromQuery } from '@dxos/schema';\n\nimport { KanbanOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof KanbanOperation.RestoreCardField> = KanbanOperation.RestoreCardField.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ view, field, props, index }) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const db = Obj.getDatabase(view);\n invariant(db, 'Database not found');\n const types = db.graph.registry.list().filter(Type.isType);\n const type = types.find((t) => Type.getURI(t) === getTypeURIFromQuery(view.query.ast));\n invariant(type, 'Schema not found');\n\n invariant(Type.isType(type), 'expected stored Type.Type for card schema');\n const projection = new ProjectionModel({\n registry,\n view,\n baseSchema: type.jsonSchema,\n change: createEchoChangeCallback(view, type),\n });\n\n projection.setFieldProjection({ field, props }, index);\n }),\n ),\n);\n\nexport default handler;\n"],
5
- "mappings": ";;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiB;AAC1B,SAASC,KAAKC,YAAY;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiBC,0BAA0BC,2BAA2B;AAI/E,IAAA,eAAgFC;IAI1E,UAAWC,wBAAgBC,iBAAAA,KAAAA,UAAAA,YAAAA,kBAAAA,WAAAA,EAAAA,MAAAA,OAAAA,OAAAA,MAAAA,GAAAA;AAC3BC,QAAAA,WAAc,OAAA,WAAA,IAAA,aAAA,YAAA;AACd,QAAMC,KAAAA,IAAQC,YAASC,IAAQ;AAC/B,YAAMC,IAAOH,sBAAuBI,EAAAA,YAAOC,YAAOC,GAAAA,cAAyBC,GAAAA,IAAK,GAACC,MAAG,GAAA,CAAA,MAAA,sBAAA,EAAA,CAAA;AACpFT,QAAAA,QAAUI,GAAM,MAAA,SAAA,KAAA,EAAA,OAAA,KAAA,MAAA;AAEhBJ,QAAAA,OAAUU,MAAKC,KAAOP,CAAAA,MAAO,KAAA,OAAA,CAAA,MAAA,oBAAA,KAAA,MAAA,GAAA,CAAA;AAC7B,YAAMQ,MAAAA,oBAAiBC,EAAAA,YAAgB,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,QAAA,oBAAA,EAAA,CAAA;YACrCV,KAAAA,OAAAA,IAAAA,GAAAA,6CAAAA,EAAAA,YAAAA,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,MAAAA,GAAAA,CAAAA,qBAAAA,6CAAAA,EAAAA,CAAAA;QACAJ,aAAAA,IAAAA,gBAAAA;IACAe;IACAC;IACF,YAAA,KAAA;IAEAH,QAAWI,yBAAmB,MAAA,IAAA;;aAASC,mBAAAA;IAASC;IAClD;EAIJ,GAAA,KAAA;;;",
6
- "names": ["Effect", "Capabilities", "Capability", "Operation", "Obj", "Type", "invariant", "ProjectionModel", "createEchoChangeCallback", "getTypeURIFromQuery", "KanbanOperation", "Obj", "view", "invariant", "types", "db", "registry", "type", "getURI", "t", "getTypeURIFromQuery", "query", "ast", "Type", "isType", "projection", "ProjectionModel", "baseSchema", "change", "setFieldProjection", "props", "index"]
7
- }
@@ -1,15 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/capabilities/skill-definition.ts
4
- import * as Effect from "effect/Effect";
5
- import { Capability } from "@dxos/app-framework";
6
- import { AppCapabilities } from "@dxos/app-toolkit";
7
- import { KanbanSkill } from "#skills";
8
- var skillDefinition = () => Effect.succeed([
9
- Capability.contributes(AppCapabilities.SkillDefinition, KanbanSkill)
10
- ]);
11
- var skill_definition_default = skillDefinition;
12
- export {
13
- skill_definition_default as default
14
- };
15
- //# sourceMappingURL=skill-definition-YGTCKXGP.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/skill-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\nimport { KanbanSkill } from '#skills';\n\nconst skillDefinition = () => Effect.succeed([Capability.contributes(AppCapabilities.SkillDefinition, KanbanSkill)]);\n\nexport default skillDefinition;\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAEhC,SAASC,mBAAmB;AAE5B,IAAMC,kBAAkB,MAAaC,eAAQ;EAACJ,WAAWK,YAAYJ,gBAAgBK,iBAAiBJ,WAAAA;CAAa;AAEnH,IAAA,2BAAeC;",
6
- "names": ["Effect", "Capability", "AppCapabilities", "KanbanSkill", "skillDefinition", "succeed", "contributes", "SkillDefinition"]
7
- }
@@ -1,8 +0,0 @@
1
- import {
2
- kanban_skill_default
3
- } from "../chunk-CFPH5R6P.mjs";
4
- import "../chunk-J5LGTIGS.mjs";
5
- export {
6
- kanban_skill_default as KanbanSkill
7
- };
8
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,64 +0,0 @@
1
- import "../chunk-J5LGTIGS.mjs";
2
-
3
- // src/testing/KanbanCardTileSimple.tsx
4
- import React, { forwardRef, useCallback, useMemo, useState } from "react";
5
- import { Obj } from "@dxos/echo";
6
- import { Card, IconButton, useTranslation } from "@dxos/react-ui";
7
- import { Menu, createMenuAction } from "@dxos/react-ui-menu";
8
- import { Focus, Mosaic, useBoard } from "@dxos/react-ui-mosaic";
9
- import { useKanbanBoard } from "#components";
10
- import { meta } from "#meta";
11
- var KANBAN_CARD_TILE_SIMPLE_NAME = "KanbanCardTileSimple";
12
- var KanbanCardTileSimple = /* @__PURE__ */ forwardRef(({ data, location, debug }, forwardedRef) => {
13
- const { t } = useTranslation(meta.profile.key);
14
- const { model } = useBoard(KANBAN_CARD_TILE_SIMPLE_NAME);
15
- const { onCardRemove } = useKanbanBoard(KANBAN_CARD_TILE_SIMPLE_NAME);
16
- const [dragHandle, setDragHandle] = useState(null);
17
- const dragHandleRef = useCallback((el) => setDragHandle(el), []);
18
- const menuItems = useMemo(() => onCardRemove ? [
19
- createMenuAction("remove", () => onCardRemove(data), {
20
- label: t("remove-card.label"),
21
- icon: "ph--trash--regular"
22
- })
23
- ] : [], [
24
- onCardRemove,
25
- data,
26
- t
27
- ]);
28
- return /* @__PURE__ */ React.createElement(Menu.Root, null, /* @__PURE__ */ React.createElement(Mosaic.Tile, {
29
- asChild: true,
30
- id: model.getItemId(data),
31
- data,
32
- location,
33
- debug,
34
- dragHandle
35
- }, /* @__PURE__ */ React.createElement(Focus.Item, {
36
- asChild: true
37
- }, /* @__PURE__ */ React.createElement(Card.Root, {
38
- ref: forwardedRef,
39
- "data-testid": "board-item"
40
- }, /* @__PURE__ */ React.createElement(Card.Header, null, /* @__PURE__ */ React.createElement(Card.DragHandle, {
41
- ref: dragHandleRef
42
- }), /* @__PURE__ */ React.createElement(Card.Title, null, Obj.getLabel(data)), /* @__PURE__ */ React.createElement(Card.Block, {
43
- end: true
44
- }, /* @__PURE__ */ React.createElement(Menu.Trigger, {
45
- asChild: true,
46
- disabled: !menuItems?.length
47
- }, /* @__PURE__ */ React.createElement(IconButton, {
48
- iconOnly: true,
49
- variant: "ghost",
50
- icon: "ph--dots-three-vertical--regular",
51
- label: t("action-menu.label")
52
- })), /* @__PURE__ */ React.createElement(Menu.Content, {
53
- items: menuItems
54
- }))), /* @__PURE__ */ React.createElement(Card.Body, null, /* @__PURE__ */ React.createElement(Card.Row, {
55
- fullWidth: true
56
- }, /* @__PURE__ */ React.createElement("pre", {
57
- className: "p-2 text-xs text-description whitespace-pre-wrap"
58
- }, JSON.stringify(data, null, 2))))))));
59
- });
60
- KanbanCardTileSimple.displayName = KANBAN_CARD_TILE_SIMPLE_NAME;
61
- export {
62
- KanbanCardTileSimple
63
- };
64
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/testing/KanbanCardTileSimple.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef, useCallback, useMemo, useState } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { Card, IconButton, useTranslation } from '@dxos/react-ui';\nimport { Menu, createMenuAction } from '@dxos/react-ui-menu';\nimport { Focus, Mosaic, useBoard } from '@dxos/react-ui-mosaic';\n\nimport { type KanbanCardProps, useKanbanBoard } from '#components';\nimport { meta } from '#meta';\n\nconst KANBAN_CARD_TILE_SIMPLE_NAME = 'KanbanCardTileSimple';\n\n/**\n * Card tile without Surface; for stories and tests when plugin manager is not available.\n */\nexport const KanbanCardTileSimple = forwardRef<HTMLDivElement, KanbanCardProps>(\n ({ data, location, debug }, forwardedRef) => {\n const { t } = useTranslation(meta.profile.key);\n const { model } = useBoard(KANBAN_CARD_TILE_SIMPLE_NAME);\n const { onCardRemove } = useKanbanBoard(KANBAN_CARD_TILE_SIMPLE_NAME);\n const [dragHandle, setDragHandle] = useState<HTMLButtonElement | null>(null);\n const dragHandleRef = useCallback((el: HTMLButtonElement | null) => setDragHandle(el), []);\n\n const menuItems = useMemo(\n () =>\n onCardRemove\n ? [\n createMenuAction('remove', () => onCardRemove(data), {\n label: t('remove-card.label'),\n icon: 'ph--trash--regular',\n }),\n ]\n : [],\n [onCardRemove, data, t],\n );\n\n return (\n <Menu.Root>\n <Mosaic.Tile\n asChild\n id={model.getItemId(data)}\n data={data}\n location={location}\n debug={debug}\n dragHandle={dragHandle}\n >\n <Focus.Item asChild>\n <Card.Root ref={forwardedRef} data-testid='board-item'>\n <Card.Header>\n <Card.DragHandle ref={dragHandleRef} />\n <Card.Title>{Obj.getLabel(data)}</Card.Title>\n {/* TODO(wittjosiah): Reconcile with Card.Menu. */}\n <Card.Block end>\n <Menu.Trigger asChild disabled={!menuItems?.length}>\n <IconButton\n iconOnly\n variant='ghost'\n icon='ph--dots-three-vertical--regular'\n label={t('action-menu.label')}\n />\n </Menu.Trigger>\n <Menu.Content items={menuItems} />\n </Card.Block>\n </Card.Header>\n <Card.Body>\n <Card.Row fullWidth>\n <pre className='p-2 text-xs text-description whitespace-pre-wrap'>\n {JSON.stringify(data, null, 2)}\n </pre>\n </Card.Row>\n </Card.Body>\n </Card.Root>\n </Focus.Item>\n </Mosaic.Tile>\n </Menu.Root>\n );\n },\n);\n\nKanbanCardTileSimple.displayName = KANBAN_CARD_TILE_SIMPLE_NAME;\n"],
5
- "mappings": ";;;AAIA,OAAOA,SAASC,YAAYC,aAAaC,SAASC,gBAAgB;AAElE,SAASC,WAAW;AACpB,SAASC,MAAMC,YAAYC,sBAAsB;AACjD,SAASC,MAAMC,wBAAwB;AACvC,SAASC,OAAOC,QAAQC,gBAAgB;AAExC,SAA+BC,sBAAsB;AACrD,SAASC,YAAY;AAErB,IAAMC,+BAA+B;AAK9B,IAAMC,uBAAuBhB,2BAClC,CAAC,EAAEiB,MAAMC,UAAUC,MAAK,GAAIC,iBAAAA;AAC1B,QAAM,EAAEC,EAAC,IAAKd,eAAeO,KAAKQ,QAAQC,GAAG;AAC7C,QAAM,EAAEC,MAAK,IAAKZ,SAASG,4BAAAA;AAC3B,QAAM,EAAEU,aAAY,IAAKZ,eAAeE,4BAAAA;AACxC,QAAM,CAACW,YAAYC,aAAAA,IAAiBxB,SAAmC,IAAA;AACvE,QAAMyB,gBAAgB3B,YAAY,CAAC4B,OAAiCF,cAAcE,EAAAA,GAAK,CAAA,CAAE;AAEzF,QAAMC,YAAY5B,QAChB,MACEuB,eACI;IACEhB,iBAAiB,UAAU,MAAMgB,aAAaR,IAAAA,GAAO;MACnDc,OAAOV,EAAE,mBAAA;MACTW,MAAM;IACR,CAAA;MAEF,CAAA,GACN;IAACP;IAAcR;IAAMI;GAAE;AAGzB,SACE,sBAAA,cAACb,KAAKyB,MAAI,MACR,sBAAA,cAACtB,OAAOuB,MAAI;IACVC,SAAAA;IACAC,IAAIZ,MAAMa,UAAUpB,IAAAA;IACpBA;IACAC;IACAC;IACAO;KAEA,sBAAA,cAAChB,MAAM4B,MAAI;IAACH,SAAAA;KACV,sBAAA,cAAC9B,KAAK4B,MAAI;IAACM,KAAKnB;IAAcoB,eAAY;KACxC,sBAAA,cAACnC,KAAKoC,QAAM,MACV,sBAAA,cAACpC,KAAKqC,YAAU;IAACH,KAAKX;MACtB,sBAAA,cAACvB,KAAKsC,OAAK,MAAEvC,IAAIwC,SAAS3B,IAAAA,CAAAA,GAE1B,sBAAA,cAACZ,KAAKwC,OAAK;IAACC,KAAAA;KACV,sBAAA,cAACtC,KAAKuC,SAAO;IAACZ,SAAAA;IAAQa,UAAU,CAAClB,WAAWmB;KAC1C,sBAAA,cAAC3C,YAAAA;IACC4C,UAAAA;IACAC,SAAQ;IACRnB,MAAK;IACLD,OAAOV,EAAE,mBAAA;OAGb,sBAAA,cAACb,KAAK4C,SAAO;IAACC,OAAOvB;QAGzB,sBAAA,cAACzB,KAAKiD,MAAI,MACR,sBAAA,cAACjD,KAAKkD,KAAG;IAACC,WAAAA;KACR,sBAAA,cAACC,OAAAA;IAAIC,WAAU;KACZC,KAAKC,UAAU3C,MAAM,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAS9C,CAAA;AAGFD,qBAAqB6C,cAAc9C;",
6
- "names": ["React", "forwardRef", "useCallback", "useMemo", "useState", "Obj", "Card", "IconButton", "useTranslation", "Menu", "createMenuAction", "Focus", "Mosaic", "useBoard", "useKanbanBoard", "meta", "KANBAN_CARD_TILE_SIMPLE_NAME", "KanbanCardTileSimple", "data", "location", "debug", "forwardedRef", "t", "profile", "key", "model", "onCardRemove", "dragHandle", "setDragHandle", "dragHandleRef", "el", "menuItems", "label", "icon", "Root", "Tile", "asChild", "id", "getItemId", "Item", "ref", "data-testid", "Header", "DragHandle", "Title", "getLabel", "Block", "end", "Trigger", "disabled", "length", "iconOnly", "variant", "Content", "items", "Body", "Row", "fullWidth", "pre", "className", "JSON", "stringify", "displayName"]
7
- }
@@ -1,44 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/translations.ts
4
- import { Type } from "@dxos/echo";
5
- import { meta } from "#meta";
6
- import { Kanban } from "#types";
7
- var translations = [
8
- {
9
- "en-US": {
10
- [Type.getTypename(Kanban.Kanban)]: {
11
- "typename.label": "Kanban",
12
- "typename.label_zero": "Kanbans",
13
- "typename.label_one": "Kanban",
14
- "typename.label_other": "Kanbans",
15
- "object-name.placeholder": "New kanban",
16
- "add-object.label": "Add kanban",
17
- "rename-object.label": "Rename kanban",
18
- "delete-object.label": "Delete kanban",
19
- "object-deleted.label": "Kanban deleted"
20
- },
21
- [meta.profile.key]: {
22
- "action-menu.label": "Actions",
23
- "plugin.name": "Kanban",
24
- "kanban-title.label": "Title",
25
- "column-title.label": "Column title",
26
- "column-title.placeholder": "New column",
27
- "add-column.label": "Add column",
28
- "add-card.label": "Add card",
29
- "new-column-name.label": "New column name",
30
- "remove-card.label": "Remove card",
31
- "remove-empty-column.label": "Remove empty column",
32
- "column-drag-handle.label": "Drag to rearrange",
33
- "delete-column.label": "Delete column",
34
- "card-field-deleted.label": "Card field deleted",
35
- "card-deleted.label": "Card deleted",
36
- "select-pivot.placeholder": "Select a pivot column in board settings to display columns."
37
- }
38
- }
39
- }
40
- ];
41
- export {
42
- translations
43
- };
44
- //# sourceMappingURL=translations.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { Kanban } from '#types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Kanban.Kanban)]: {\n 'typename.label': 'Kanban',\n 'typename.label_zero': 'Kanbans',\n 'typename.label_one': 'Kanban',\n 'typename.label_other': 'Kanbans',\n 'object-name.placeholder': 'New kanban',\n 'add-object.label': 'Add kanban',\n 'rename-object.label': 'Rename kanban',\n 'delete-object.label': 'Delete kanban',\n 'object-deleted.label': 'Kanban deleted',\n },\n [meta.profile.key]: {\n 'action-menu.label': 'Actions',\n 'plugin.name': 'Kanban',\n 'kanban-title.label': 'Title',\n 'column-title.label': 'Column title',\n 'column-title.placeholder': 'New column',\n 'add-column.label': 'Add column',\n 'add-card.label': 'Add card',\n 'new-column-name.label': 'New column name',\n 'remove-card.label': 'Remove card',\n 'remove-empty-column.label': 'Remove empty column',\n 'column-drag-handle.label': 'Drag to rearrange',\n 'delete-column.label': 'Delete column',\n 'card-field-deleted.label': 'Card field deleted',\n 'card-deleted.label': 'Card deleted',\n 'select-pivot.placeholder': 'Select a pivot column in board settings to display columns.',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;AAIA,SAASA,YAAY;AAGrB,SAASC,YAAY;AACrB,SAASC,cAAc;AAEhB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACH,KAAKI,YAAYF,OAAOA,MAAM,CAAA,GAAI;QACjC,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACD,KAAKI,QAAQC,GAAG,GAAG;QAClB,qBAAqB;QACrB,eAAe;QACf,sBAAsB;QACtB,sBAAsB;QACtB,4BAA4B;QAC5B,oBAAoB;QACpB,kBAAkB;QAClB,yBAAyB;QACzB,qBAAqB;QACrB,6BAA6B;QAC7B,4BAA4B;QAC5B,uBAAuB;QACvB,4BAA4B;QAC5B,sBAAsB;QACtB,4BAA4B;MAC9B;IACF;EACF;;",
6
- "names": ["Type", "meta", "Kanban", "translations", "getTypename", "profile", "key"]
7
- }
@@ -1,22 +0,0 @@
1
- import {
2
- CreateKanbanSchema,
3
- KanbanOperation_exports,
4
- KanbanSettingsSchema,
5
- KanbanViewSettingsSchema,
6
- Kanban_exports,
7
- PivotColumnAnnotationId,
8
- UNCATEGORIZED_ATTRIBUTES,
9
- UNCATEGORIZED_VALUE
10
- } from "../chunk-7TVVF45P.mjs";
11
- import "../chunk-J5LGTIGS.mjs";
12
- export {
13
- CreateKanbanSchema,
14
- Kanban_exports as Kanban,
15
- KanbanOperation_exports as KanbanOperation,
16
- KanbanSettingsSchema,
17
- KanbanViewSettingsSchema,
18
- PivotColumnAnnotationId,
19
- UNCATEGORIZED_ATTRIBUTES,
20
- UNCATEGORIZED_VALUE
21
- };
22
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,42 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/capabilities/undo-mappings.ts
4
- import * as Effect from "effect/Effect";
5
- import { Capabilities, Capability, UndoMapping } from "@dxos/app-framework";
6
- import { meta } from "#meta";
7
- import { KanbanOperation } from "#types";
8
- var undo_mappings_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.UndoMapping, [
9
- UndoMapping.make({
10
- operation: KanbanOperation.DeleteCardField,
11
- inverse: KanbanOperation.RestoreCardField,
12
- deriveContext: (input, output) => ({
13
- view: input.view,
14
- field: output.field,
15
- props: output.props,
16
- index: output.index
17
- }),
18
- message: [
19
- "card-field-deleted.label",
20
- {
21
- ns: meta.profile.key
22
- }
23
- ]
24
- }),
25
- UndoMapping.make({
26
- operation: KanbanOperation.DeleteCard,
27
- inverse: KanbanOperation.RestoreCard,
28
- deriveContext: (_input, output) => ({
29
- card: output.card
30
- }),
31
- message: [
32
- "card-deleted.label",
33
- {
34
- ns: meta.profile.key
35
- }
36
- ]
37
- })
38
- ])));
39
- export {
40
- undo_mappings_default as default
41
- };
42
- //# sourceMappingURL=undo-mappings-EZTHO4UL.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/undo-mappings.ts"],
4
- "sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability, UndoMapping } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\nimport { KanbanOperation } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.UndoMapping, [\n UndoMapping.make({\n operation: KanbanOperation.DeleteCardField,\n inverse: KanbanOperation.RestoreCardField,\n deriveContext: (input, output) => ({\n view: input.view,\n field: output.field,\n props: output.props,\n index: output.index,\n }),\n message: ['card-field-deleted.label', { ns: meta.profile.key }],\n }),\n UndoMapping.make({\n operation: KanbanOperation.DeleteCard,\n inverse: KanbanOperation.RestoreCard,\n deriveContext: (_input, output) => ({\n card: output.card,\n }),\n message: ['card-deleted.label', { ns: meta.profile.key }],\n }),\n ]),\n ),\n);\n"],
5
- "mappings": ";;;AAEA,YAAYA,YAAY;AAExB,SAASC,cAAcC,YAAYC,mBAAmB;AAEtD,SAASC,YAAY;AACrB,SAASC,uBAAuB;AAEhC,IAAA,wBAAeH,WAAWI,WAAW,MAC5BC,eACLL,WAAWM,YAAYP,aAAaE,aAAa;EAC/CA,YAAYM,KAAK;IACfC,WAAWL,gBAAgBM;IAC3BC,SAASP,gBAAgBQ;IACzBC,eAAe,CAACC,OAAOC,YAAY;MACjCC,MAAMF,MAAME;MACZC,OAAOF,OAAOE;MACdC,OAAOH,OAAOG;MACdC,OAAOJ,OAAOI;IAChB;IACAC,SAAS;MAAC;MAA4B;QAAEC,IAAIlB,KAAKmB,QAAQC;MAAI;;EAC/D,CAAA;EACArB,YAAYM,KAAK;IACfC,WAAWL,gBAAgBoB;IAC3Bb,SAASP,gBAAgBqB;IACzBZ,eAAe,CAACa,QAAQX,YAAY;MAClCY,MAAMZ,OAAOY;IACf;IACAP,SAAS;MAAC;MAAsB;QAAEC,IAAIlB,KAAKmB,QAAQC;MAAI;;EACzD,CAAA;CACD,CAAA,CAAA;",
6
- "names": ["Effect", "Capabilities", "Capability", "UndoMapping", "meta", "KanbanOperation", "makeModule", "succeed", "contributes", "make", "operation", "DeleteCardField", "inverse", "RestoreCardField", "deriveContext", "input", "output", "view", "field", "props", "index", "message", "ns", "profile", "key", "DeleteCard", "RestoreCard", "_input", "card"]
7
- }
@@ -1,95 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import * as Effect from 'effect/Effect';
6
- import React, { useMemo } from 'react';
7
-
8
- import { Capabilities, Capability } from '@dxos/app-framework';
9
- import { Surface } from '@dxos/app-framework/ui';
10
- import { AppSurface } from '@dxos/app-toolkit/ui';
11
- import { Database, Obj, Type } from '@dxos/echo';
12
- import { SchemaEx } from '@dxos/effect';
13
- import { type FormFieldRendererProps, SelectField, useFormValues } from '@dxos/react-ui-form';
14
- import { Position } from '@dxos/util';
15
-
16
- import { KanbanArticle, KanbanProperties } from '#containers';
17
- import { Kanban, PivotColumnAnnotationId } from '#types';
18
-
19
- export default Capability.makeModule(() =>
20
- Effect.succeed(
21
- Capability.contributes(Capabilities.ReactSurface, [
22
- Surface.create({
23
- id: 'root',
24
- // TODO(wittjosiah): Split into multiple surfaces if this filter proves too strict for non-article roles.
25
- filter: AppSurface.oneOf(
26
- AppSurface.object(AppSurface.Article, Kanban.Kanban),
27
- AppSurface.object(AppSurface.Section, Kanban.Kanban),
28
- ),
29
- component: ({ data, role }) => <KanbanArticle role={role} subject={data.subject} />,
30
- }),
31
- Surface.create({
32
- id: 'objectProperties',
33
- position: Position.first,
34
- filter: AppSurface.object(AppSurface.ObjectProperties, Kanban.Kanban),
35
- component: ({ data }) => <KanbanProperties subject={data.subject} />,
36
- }),
37
- Surface.create({
38
- id: 'createInitialSchemaForm',
39
- filter: AppSurface.formInputBySchema((ast) => !!SchemaEx.findAnnotation<boolean>(ast, PivotColumnAnnotationId)),
40
- component: ({ data, ...inputProps }) => {
41
- const ast = data.fieldPropertyAst;
42
- if (!ast) {
43
- return null;
44
- }
45
-
46
- const props = { ...inputProps, type: ast } as any as FormFieldRendererProps;
47
- const target = data.target;
48
- const db = Database.isDatabase(target) ? target : Obj.isObject(target) ? Obj.getDatabase(target) : undefined;
49
- if (!db) {
50
- return null;
51
- }
52
-
53
- const { typename } = useFormValues('KanbanForm');
54
- const [selectedSchema] = useMemo(
55
- () =>
56
- db.graph.registry
57
- .list()
58
- .filter(Type.isType)
59
- .filter((t) => Type.getTypename(t) === typename),
60
- [db, typename],
61
- );
62
- const singleSelectColumns = useMemo(() => {
63
- if (!selectedSchema) {
64
- return [];
65
- }
66
- const jsonSchema = selectedSchema.jsonSchema;
67
- const properties = jsonSchema.properties;
68
- if (!properties) {
69
- return [];
70
- }
71
-
72
- const columns = Object.entries(properties).reduce<string[]>((acc, [key, value]) => {
73
- if (
74
- typeof value === 'object' &&
75
- value !== null &&
76
- (value as { format?: string }).format === 'single-select'
77
- ) {
78
- acc.push(key);
79
- }
80
- return acc;
81
- }, []);
82
-
83
- return columns;
84
- }, [selectedSchema]);
85
-
86
- if (!typename) {
87
- return null;
88
- }
89
-
90
- return <SelectField {...props} options={singleSelectColumns.map((column) => ({ value: column }))} />;
91
- },
92
- }),
93
- ]),
94
- ),
95
- );