@dxos/plugin-kanban 0.8.3 → 0.8.4-main.1068cf700f

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 (158) hide show
  1. package/dist/lib/browser/blueprint-definition-GGL6Y5GN.mjs +18 -0
  2. package/dist/lib/browser/blueprint-definition-GGL6Y5GN.mjs.map +7 -0
  3. package/dist/lib/browser/blueprints/index.mjs +8 -0
  4. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  5. package/dist/lib/browser/chunk-L6N4ZDZ7.mjs +35 -0
  6. package/dist/lib/browser/chunk-L6N4ZDZ7.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-XYQO4VL7.mjs +150 -0
  8. package/dist/lib/browser/chunk-XYQO4VL7.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +66 -72
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/operation-resolver-RFQU4VAB.mjs +162 -0
  13. package/dist/lib/browser/operation-resolver-RFQU4VAB.mjs.map +7 -0
  14. package/dist/lib/browser/react-surface-FZQDOE3J.mjs +237 -0
  15. package/dist/lib/browser/react-surface-FZQDOE3J.mjs.map +7 -0
  16. package/dist/lib/browser/types/index.mjs +14 -0
  17. package/dist/lib/browser/types/index.mjs.map +7 -0
  18. package/dist/lib/node-esm/blueprint-definition-AMIOYZSF.mjs +19 -0
  19. package/dist/lib/node-esm/blueprint-definition-AMIOYZSF.mjs.map +7 -0
  20. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  21. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  22. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  23. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  24. package/dist/lib/node-esm/chunk-NN6JMKIT.mjs +152 -0
  25. package/dist/lib/node-esm/chunk-NN6JMKIT.mjs.map +7 -0
  26. package/dist/lib/node-esm/chunk-ZHRMUKTF.mjs +36 -0
  27. package/dist/lib/node-esm/chunk-ZHRMUKTF.mjs.map +7 -0
  28. package/dist/lib/node-esm/index.mjs +66 -72
  29. package/dist/lib/node-esm/index.mjs.map +4 -4
  30. package/dist/lib/node-esm/meta.json +1 -1
  31. package/dist/lib/node-esm/operation-resolver-J4JUSY74.mjs +163 -0
  32. package/dist/lib/node-esm/operation-resolver-J4JUSY74.mjs.map +7 -0
  33. package/dist/lib/node-esm/react-surface-KOQ56TL6.mjs +238 -0
  34. package/dist/lib/node-esm/react-surface-KOQ56TL6.mjs.map +7 -0
  35. package/dist/lib/node-esm/{types.mjs → types/index.mjs} +7 -6
  36. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  37. package/dist/types/src/KanbanPlugin.d.ts +2 -1
  38. package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
  39. package/dist/types/src/blueprints/index.d.ts +2 -0
  40. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  41. package/dist/types/src/blueprints/kanban-blueprint.d.ts +22 -0
  42. package/dist/types/src/blueprints/kanban-blueprint.d.ts.map +1 -0
  43. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  44. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  45. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  46. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  47. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +10 -0
  48. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  50. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  51. package/dist/types/src/capabilities/index.d.ts +3 -3
  52. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  53. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  54. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  55. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  56. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  57. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  58. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  59. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  60. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  61. package/dist/types/src/components/KanbanContainer.d.ts +4 -5
  62. package/dist/types/src/components/KanbanContainer.d.ts.map +1 -1
  63. package/dist/types/src/components/KanbanContainer.stories.d.ts +71 -6
  64. package/dist/types/src/components/KanbanContainer.stories.d.ts.map +1 -1
  65. package/dist/types/src/components/KanbanViewEditor.d.ts +3 -3
  66. package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -1
  67. package/dist/types/src/index.d.ts +1 -1
  68. package/dist/types/src/index.d.ts.map +1 -1
  69. package/dist/types/src/meta.d.ts +2 -3
  70. package/dist/types/src/meta.d.ts.map +1 -1
  71. package/dist/types/src/translations.d.ts +36 -53
  72. package/dist/types/src/translations.d.ts.map +1 -1
  73. package/dist/types/src/types/index.d.ts +3 -0
  74. package/dist/types/src/types/index.d.ts.map +1 -0
  75. package/dist/types/src/types/schema.d.ts +122 -0
  76. package/dist/types/src/types/schema.d.ts.map +1 -0
  77. package/dist/types/src/types/types.d.ts +4 -0
  78. package/dist/types/src/types/types.d.ts.map +1 -0
  79. package/dist/types/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +65 -44
  81. package/src/KanbanPlugin.tsx +39 -55
  82. package/src/blueprints/index.ts +5 -0
  83. package/src/blueprints/kanban-blueprint.ts +24 -0
  84. package/src/capabilities/artifact-definition/artifact-definition.ts +150 -0
  85. package/src/capabilities/artifact-definition/index.ts +7 -0
  86. package/src/capabilities/blueprint-definition/blueprint-definition.ts +24 -0
  87. package/src/capabilities/blueprint-definition/index.ts +7 -0
  88. package/src/capabilities/index.ts +3 -5
  89. package/src/capabilities/operation-resolver/index.ts +7 -0
  90. package/src/capabilities/operation-resolver/operation-resolver.ts +133 -0
  91. package/src/capabilities/react-surface/index.ts +7 -0
  92. package/src/capabilities/react-surface/react-surface.tsx +87 -0
  93. package/src/components/KanbanContainer.stories.tsx +212 -118
  94. package/src/components/KanbanContainer.tsx +38 -46
  95. package/src/components/KanbanViewEditor.tsx +34 -79
  96. package/src/index.ts +2 -1
  97. package/src/meta.ts +9 -7
  98. package/src/translations.ts +10 -10
  99. package/src/types/index.ts +6 -0
  100. package/src/types/schema.ts +120 -0
  101. package/src/types/types.ts +7 -0
  102. package/dist/lib/browser/artifact-definition-6HNQFL2M.mjs +0 -178
  103. package/dist/lib/browser/artifact-definition-6HNQFL2M.mjs.map +0 -7
  104. package/dist/lib/browser/chunk-6JEDX6HA.mjs +0 -85
  105. package/dist/lib/browser/chunk-6JEDX6HA.mjs.map +0 -7
  106. package/dist/lib/browser/intent-resolver-QQOH5EV2.mjs +0 -297
  107. package/dist/lib/browser/intent-resolver-QQOH5EV2.mjs.map +0 -7
  108. package/dist/lib/browser/react-surface-HJL2JRJP.mjs +0 -305
  109. package/dist/lib/browser/react-surface-HJL2JRJP.mjs.map +0 -7
  110. package/dist/lib/browser/types.mjs +0 -13
  111. package/dist/lib/node/artifact-definition-GRCAYCVG.cjs +0 -193
  112. package/dist/lib/node/artifact-definition-GRCAYCVG.cjs.map +0 -7
  113. package/dist/lib/node/chunk-ATDUVDIE.cjs +0 -108
  114. package/dist/lib/node/chunk-ATDUVDIE.cjs.map +0 -7
  115. package/dist/lib/node/index.cjs +0 -128
  116. package/dist/lib/node/index.cjs.map +0 -7
  117. package/dist/lib/node/intent-resolver-6ZNOIHKY.cjs +0 -308
  118. package/dist/lib/node/intent-resolver-6ZNOIHKY.cjs.map +0 -7
  119. package/dist/lib/node/meta.json +0 -1
  120. package/dist/lib/node/react-surface-G2J6F7U5.cjs +0 -322
  121. package/dist/lib/node/react-surface-G2J6F7U5.cjs.map +0 -7
  122. package/dist/lib/node/types.cjs +0 -35
  123. package/dist/lib/node/types.cjs.map +0 -7
  124. package/dist/lib/node-esm/artifact-definition-FA2IAAUQ.mjs +0 -179
  125. package/dist/lib/node-esm/artifact-definition-FA2IAAUQ.mjs.map +0 -7
  126. package/dist/lib/node-esm/chunk-7DHZSNGQ.mjs +0 -87
  127. package/dist/lib/node-esm/chunk-7DHZSNGQ.mjs.map +0 -7
  128. package/dist/lib/node-esm/intent-resolver-4TYFDM4E.mjs +0 -298
  129. package/dist/lib/node-esm/intent-resolver-4TYFDM4E.mjs.map +0 -7
  130. package/dist/lib/node-esm/react-surface-257WTPQZ.mjs +0 -306
  131. package/dist/lib/node-esm/react-surface-257WTPQZ.mjs.map +0 -7
  132. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  133. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  134. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  135. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  136. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  137. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  138. package/dist/types/src/testing/index.d.ts +0 -3
  139. package/dist/types/src/testing/index.d.ts.map +0 -1
  140. package/dist/types/src/testing/initialize-kanban.d.ts +0 -17
  141. package/dist/types/src/testing/initialize-kanban.d.ts.map +0 -1
  142. package/dist/types/src/testing/kanban-manager.d.ts +0 -7
  143. package/dist/types/src/testing/kanban-manager.d.ts.map +0 -1
  144. package/dist/types/src/testing/playwright/smoke.spec.d.ts +0 -2
  145. package/dist/types/src/testing/playwright/smoke.spec.d.ts.map +0 -1
  146. package/dist/types/src/types.d.ts +0 -76
  147. package/dist/types/src/types.d.ts.map +0 -1
  148. package/src/capabilities/artifact-definition.ts +0 -136
  149. package/src/capabilities/intent-resolver.ts +0 -71
  150. package/src/capabilities/react-surface.tsx +0 -81
  151. package/src/testing/index.ts +0 -6
  152. package/src/testing/initialize-kanban.ts +0 -128
  153. package/src/testing/kanban-manager.ts +0 -13
  154. package/src/testing/playwright/playwright.config.cts +0 -18
  155. package/src/testing/playwright/smoke.spec.ts +0 -7
  156. package/src/types.ts +0 -95
  157. /package/dist/lib/browser/{types.mjs.map → blueprints/index.mjs.map} +0 -0
  158. /package/dist/lib/{node-esm/types.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
@@ -1,306 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- KANBAN_PLUGIN,
4
- KanbanAction,
5
- PivotColumnAnnotationId,
6
- isKanban
7
- } from "./chunk-7DHZSNGQ.mjs";
8
-
9
- // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
10
- import React3, { useMemo as useMemo3 } from "react";
11
- import { Capabilities, contributes, createSurface, useCapabilities } from "@dxos/app-framework";
12
- import { Type as Type3 } from "@dxos/echo";
13
- import { findAnnotation } from "@dxos/effect";
14
- import { ClientCapabilities } from "@dxos/plugin-client";
15
- import { getSpace as getSpace3, isSpace } from "@dxos/react-client/echo";
16
- import { SelectInput as SelectInput2, useFormValues } from "@dxos/react-ui-form";
17
-
18
- // packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx
19
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
20
- import React, { useCallback, useEffect, useMemo, useState } from "react";
21
- import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
22
- import { Filter, Obj, Type } from "@dxos/echo";
23
- import { EchoSchema } from "@dxos/echo-schema";
24
- import { useGlobalFilteredObjects } from "@dxos/plugin-search";
25
- import { useClient } from "@dxos/react-client";
26
- import { useQuery, getSpace } from "@dxos/react-client/echo";
27
- import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
28
- import { StackItem } from "@dxos/react-ui-stack";
29
- import { ViewProjection } from "@dxos/schema";
30
- var KanbanContainer = ({ kanban }) => {
31
- var _effect = _useSignals();
32
- try {
33
- const client = useClient();
34
- const [cardSchema, setCardSchema] = useState();
35
- const [projection, setProjection] = useState();
36
- const space = getSpace(kanban);
37
- const { dispatchPromise: dispatch } = useIntentDispatcher();
38
- const jsonSchema = useMemo(() => {
39
- if (!cardSchema) {
40
- return void 0;
41
- }
42
- return cardSchema instanceof EchoSchema ? cardSchema.jsonSchema : Type.toJsonSchema(cardSchema);
43
- }, [
44
- cardSchema
45
- ]);
46
- useEffect(() => {
47
- const typename = kanban.cardView?.target?.query?.typename;
48
- const staticSchema = client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename);
49
- if (staticSchema) {
50
- setCardSchema(() => staticSchema);
51
- }
52
- if (!staticSchema && typename && space) {
53
- const query = space.db.schemaRegistry.query({
54
- typename
55
- });
56
- const unsubscribe = query.subscribe(() => {
57
- const [schema] = query.results;
58
- if (schema) {
59
- setCardSchema(schema);
60
- }
61
- }, {
62
- fire: true
63
- });
64
- return unsubscribe;
65
- }
66
- }, [
67
- kanban.cardView?.target?.query,
68
- space
69
- ]);
70
- useEffect(() => {
71
- if (kanban.cardView?.target && jsonSchema) {
72
- setProjection(new ViewProjection(jsonSchema, kanban.cardView.target));
73
- }
74
- }, [
75
- kanban.cardView?.target,
76
- JSON.stringify(jsonSchema)
77
- ]);
78
- const objects = useQuery(space, cardSchema ? Filter.type(cardSchema) : Filter.nothing());
79
- const filteredObjects = useGlobalFilteredObjects(objects);
80
- const model = useKanbanModel({
81
- kanban,
82
- schema: cardSchema,
83
- projection,
84
- items: filteredObjects
85
- });
86
- const handleAddCard = useCallback((columnValue) => {
87
- const path = model?.columnFieldPath;
88
- if (space && cardSchema && path) {
89
- const card = Obj.make(cardSchema, {
90
- [path]: columnValue
91
- });
92
- space.db.add(card);
93
- return card.id;
94
- }
95
- }, [
96
- space,
97
- cardSchema,
98
- model
99
- ]);
100
- const handleRemoveCard = useCallback((card) => {
101
- void dispatch(createIntent(KanbanAction.DeleteCard, {
102
- card
103
- }));
104
- }, [
105
- dispatch
106
- ]);
107
- return /* @__PURE__ */ React.createElement(StackItem.Content, null, model && /* @__PURE__ */ React.createElement(Kanban, {
108
- model,
109
- onAddCard: handleAddCard,
110
- onRemoveCard: handleRemoveCard
111
- }));
112
- } finally {
113
- _effect.f();
114
- }
115
- };
116
-
117
- // packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx
118
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
119
- import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
120
- import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
121
- import { Type as Type2 } from "@dxos/echo";
122
- import { EchoSchema as EchoSchema2, FormatEnum } from "@dxos/echo-schema";
123
- import { invariant } from "@dxos/invariant";
124
- import { useClient as useClient2 } from "@dxos/react-client";
125
- import { Filter as Filter2, getSpace as getSpace2, useQuery as useQuery2, useSchema } from "@dxos/react-client/echo";
126
- import { ViewEditor, Form, SelectInput } from "@dxos/react-ui-form";
127
- import { KanbanSettingsSchema } from "@dxos/react-ui-kanban";
128
- import { ViewType, ViewProjection as ViewProjection2 } from "@dxos/schema";
129
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx";
130
- var KanbanViewEditor = ({ kanban }) => {
131
- var _effect = _useSignals2();
132
- try {
133
- const { dispatchPromise: dispatch } = useIntentDispatcher2();
134
- const client = useClient2();
135
- const space = getSpace2(kanban);
136
- const currentTypename = useMemo2(() => kanban?.cardView?.target?.query?.typename, [
137
- kanban?.cardView?.target?.query?.typename
138
- ]);
139
- const schema = useSchema(client, space, currentTypename);
140
- const views = useQuery2(space, Filter2.type(ViewType));
141
- const handleUpdateTypename = useCallback2((newTypename) => {
142
- invariant(schema, void 0, {
143
- F: __dxlog_file,
144
- L: 34,
145
- S: void 0,
146
- A: [
147
- "schema",
148
- ""
149
- ]
150
- });
151
- invariant(Type2.isMutable(schema), void 0, {
152
- F: __dxlog_file,
153
- L: 35,
154
- S: void 0,
155
- A: [
156
- "Type.isMutable(schema)",
157
- ""
158
- ]
159
- });
160
- const matchingViews = views.filter((view) => view.query.typename === currentTypename);
161
- for (const view of matchingViews) {
162
- view.query.typename = newTypename;
163
- }
164
- schema.updateTypename(newTypename);
165
- }, [
166
- views,
167
- schema
168
- ]);
169
- const handleDelete = useCallback2((fieldId) => {
170
- void dispatch?.(createIntent2(KanbanAction.DeleteCardField, {
171
- kanban,
172
- fieldId
173
- }));
174
- }, [
175
- dispatch,
176
- kanban
177
- ]);
178
- const projection = useMemo2(() => {
179
- if (kanban?.cardView?.target && schema) {
180
- const jsonSchema = schema instanceof EchoSchema2 ? schema.jsonSchema : Type2.toJsonSchema(schema);
181
- return new ViewProjection2(jsonSchema, kanban.cardView.target);
182
- }
183
- }, [
184
- kanban?.cardView?.target,
185
- JSON.stringify(schema)
186
- ]);
187
- const fieldProjections = projection?.getFieldProjections() || [];
188
- const selectFields = fieldProjections.filter((field) => field.props.format === FormatEnum.SingleSelect).map(({ field }) => ({
189
- value: field.id,
190
- label: field.path
191
- }));
192
- const handleSave = useCallback2((values) => {
193
- kanban.columnFieldId = values.columnFieldId;
194
- }, [
195
- kanban
196
- ]);
197
- const initialValues = useMemo2(() => ({
198
- columnFieldId: kanban.columnFieldId
199
- }), [
200
- kanban.columnFieldId
201
- ]);
202
- const custom = useMemo2(() => ({
203
- columnFieldId: (props) => /* @__PURE__ */ React2.createElement(SelectInput, {
204
- ...props,
205
- options: selectFields
206
- })
207
- }), [
208
- selectFields
209
- ]);
210
- if (!space || !schema || !kanban.cardView?.target) {
211
- return null;
212
- }
213
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Form, {
214
- Custom: custom,
215
- schema: KanbanSettingsSchema,
216
- values: initialValues,
217
- onSave: handleSave,
218
- autoSave: true,
219
- outerSpacing: false,
220
- classNames: "pbs-inputSpacingBlock"
221
- }), /* @__PURE__ */ React2.createElement(ViewEditor, {
222
- registry: space.db.schemaRegistry,
223
- schema,
224
- view: kanban.cardView.target,
225
- onTypenameChanged: Type2.isMutable(schema) ? handleUpdateTypename : void 0,
226
- onDelete: Type2.isMutable(schema) ? handleDelete : void 0,
227
- outerSpacing: false
228
- }));
229
- } finally {
230
- _effect.f();
231
- }
232
- };
233
-
234
- // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
235
- var react_surface_default = () => contributes(Capabilities.ReactSurface, [
236
- createSurface({
237
- id: `${KANBAN_PLUGIN}/kanban`,
238
- role: [
239
- "article",
240
- "section"
241
- ],
242
- filter: (data) => isKanban(data.subject),
243
- component: ({ data, role }) => /* @__PURE__ */ React3.createElement(KanbanContainer, {
244
- kanban: data.subject,
245
- role
246
- })
247
- }),
248
- createSurface({
249
- id: `${KANBAN_PLUGIN}/object-settings`,
250
- role: "object-settings",
251
- filter: (data) => isKanban(data.subject),
252
- component: ({ data }) => /* @__PURE__ */ React3.createElement(KanbanViewEditor, {
253
- kanban: data.subject
254
- })
255
- }),
256
- createSurface({
257
- id: `${KANBAN_PLUGIN}/create-initial-schema-form-[pivot-column]`,
258
- role: "form-input",
259
- filter: (data) => {
260
- const annotation = findAnnotation(data.schema.ast, PivotColumnAnnotationId);
261
- return !!annotation;
262
- },
263
- component: ({ data: { target }, ...inputProps }) => {
264
- const props = inputProps;
265
- const space = isSpace(target) ? target : getSpace3(target);
266
- if (!space) {
267
- return null;
268
- }
269
- const { typename } = useFormValues();
270
- const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
271
- const staticSchema = schemaWhitelists.flat().find((schema) => Type3.getTypename(schema) === typename);
272
- const [selectedSchema] = space?.db.schemaRegistry.query({
273
- typename
274
- }).runSync();
275
- const singleSelectColumns = useMemo3(() => {
276
- const properties = staticSchema ? Type3.toJsonSchema(staticSchema).properties : selectedSchema?.jsonSchema?.properties;
277
- if (!properties) {
278
- return [];
279
- }
280
- const columns = Object.entries(properties).reduce((acc, [key, value]) => {
281
- if (typeof value === "object" && value?.format === "single-select") {
282
- acc.push(key);
283
- }
284
- return acc;
285
- }, []);
286
- return columns;
287
- }, [
288
- selectedSchema?.jsonSchema,
289
- staticSchema
290
- ]);
291
- if (!typename) {
292
- return null;
293
- }
294
- return /* @__PURE__ */ React3.createElement(SelectInput2, {
295
- ...props,
296
- options: singleSelectColumns.map((column) => ({
297
- value: column
298
- }))
299
- });
300
- }
301
- })
302
- ]);
303
- export {
304
- react_surface_default as default
305
- };
306
- //# sourceMappingURL=react-surface-257WTPQZ.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/KanbanContainer.tsx", "../../../src/components/KanbanViewEditor.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Schema } from 'effect';\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface, useCapabilities } from '@dxos/app-framework';\nimport { Type } from '@dxos/echo';\nimport { findAnnotation } from '@dxos/effect';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { getSpace, isSpace, type Space } from '@dxos/react-client/echo';\nimport { type InputProps, SelectInput, useFormValues } from '@dxos/react-ui-form';\nimport { type KanbanType } from '@dxos/react-ui-kanban';\nimport { type DataType } from '@dxos/schema';\n\nimport { KanbanContainer, KanbanViewEditor } from '../components';\nimport { KANBAN_PLUGIN } from '../meta';\nimport { isKanban, PivotColumnAnnotationId } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${KANBAN_PLUGIN}/kanban`,\n role: ['article', 'section'],\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data, role }) => <KanbanContainer kanban={data.subject} role={role} />,\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data }) => <KanbanViewEditor kanban={data.subject} />,\n }),\n createSurface({\n id: `${KANBAN_PLUGIN}/create-initial-schema-form-[pivot-column]`,\n role: 'form-input',\n filter: (\n data,\n ): data is { prop: string; schema: Schema.Schema<any>; target: Space | DataType.Collection | undefined } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, PivotColumnAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target }, ...inputProps }) => {\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n const { typename } = useFormValues();\n // TODO(wittjosiah): Unify this schema lookup.\n const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);\n const staticSchema = schemaWhitelists.flat().find((schema) => Type.getTypename(schema) === typename);\n const [selectedSchema] = space?.db.schemaRegistry.query({ typename }).runSync();\n\n const singleSelectColumns = useMemo(() => {\n const properties = staticSchema\n ? Type.toJsonSchema(staticSchema).properties\n : selectedSchema?.jsonSchema?.properties;\n if (!properties) {\n return [];\n }\n\n const columns = Object.entries(properties).reduce<string[]>((acc, [key, value]) => {\n if (typeof value === 'object' && value?.format === 'single-select') {\n acc.push(key);\n }\n return acc;\n }, []);\n\n return columns;\n }, [selectedSchema?.jsonSchema, staticSchema]);\n\n if (!typename) {\n return null;\n }\n\n return <SelectInput {...props} options={singleSelectColumns.map((column) => ({ value: column }))} />;\n },\n }),\n ]);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Filter, Obj, Type } from '@dxos/echo';\nimport { EchoSchema, type TypedObject } from '@dxos/echo-schema';\nimport { useGlobalFilteredObjects } from '@dxos/plugin-search';\nimport { useClient } from '@dxos/react-client';\nimport { useQuery, getSpace } from '@dxos/react-client/echo';\nimport { type KanbanType, useKanbanModel, Kanban } from '@dxos/react-ui-kanban';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { ViewProjection } from '@dxos/schema';\n\nimport { KanbanAction } from '../types';\n\nexport const KanbanContainer = ({ kanban }: { kanban: KanbanType; role: string }) => {\n const client = useClient();\n const [cardSchema, setCardSchema] = useState<TypedObject<any, any>>();\n const [projection, setProjection] = useState<ViewProjection>();\n const space = getSpace(kanban);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const jsonSchema = useMemo(() => {\n if (!cardSchema) {\n return undefined;\n }\n return cardSchema instanceof EchoSchema ? cardSchema.jsonSchema : Type.toJsonSchema(cardSchema);\n }, [cardSchema]);\n\n useEffect(() => {\n const typename = kanban.cardView?.target?.query?.typename;\n const staticSchema = client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename);\n if (staticSchema) {\n setCardSchema(() => staticSchema as TypedObject<any, any>);\n }\n if (!staticSchema && typename && space) {\n const query = space.db.schemaRegistry.query({ typename });\n const unsubscribe = query.subscribe(\n () => {\n const [schema] = query.results;\n if (schema) {\n setCardSchema(schema);\n }\n },\n { fire: true },\n );\n return unsubscribe;\n }\n }, [kanban.cardView?.target?.query, space]);\n\n useEffect(() => {\n if (kanban.cardView?.target && jsonSchema) {\n setProjection(new ViewProjection(jsonSchema, kanban.cardView.target));\n }\n // TODO(ZaymonFC): Is there a better way to get notified about deep changes in the json schema?\n }, [kanban.cardView?.target, JSON.stringify(jsonSchema)]);\n\n const objects = useQuery(space, cardSchema ? Filter.type(cardSchema) : Filter.nothing());\n const filteredObjects = useGlobalFilteredObjects(objects);\n\n const model = useKanbanModel({\n kanban,\n schema: cardSchema,\n projection,\n items: filteredObjects,\n });\n\n const handleAddCard = useCallback(\n (columnValue: string | undefined) => {\n const path = model?.columnFieldPath;\n if (space && cardSchema && path) {\n const card = Obj.make(cardSchema, { [path]: columnValue });\n space.db.add(card);\n return card.id;\n }\n },\n [space, cardSchema, model],\n );\n\n const handleRemoveCard = useCallback(\n (card: { id: string }) => {\n void dispatch(createIntent(KanbanAction.DeleteCard, { card }));\n },\n [dispatch],\n );\n\n return (\n <StackItem.Content>\n {model && <Kanban model={model} onAddCard={handleAddCard} onRemoveCard={handleRemoveCard} />}\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Type } from '@dxos/echo';\nimport { EchoSchema, FormatEnum } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getSpace, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { ViewEditor, Form, SelectInput, type CustomInputMap } from '@dxos/react-ui-form';\nimport { type KanbanType, KanbanSettingsSchema } from '@dxos/react-ui-kanban';\nimport { ViewType, ViewProjection } from '@dxos/schema';\n\nimport { KanbanAction } from '../types';\n\ntype KanbanViewEditorProps = { kanban: KanbanType };\n\nexport const KanbanViewEditor = ({ kanban }: KanbanViewEditorProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const space = getSpace(kanban);\n const currentTypename = useMemo(\n () => kanban?.cardView?.target?.query?.typename,\n [kanban?.cardView?.target?.query?.typename],\n );\n const schema = useSchema(client, space, currentTypename);\n const views = useQuery(space, Filter.type(ViewType));\n\n const handleUpdateTypename = useCallback(\n (newTypename: string) => {\n invariant(schema);\n invariant(Type.isMutable(schema));\n\n const matchingViews = views.filter((view) => view.query.typename === currentTypename);\n for (const view of matchingViews) {\n view.query.typename = newTypename;\n }\n\n schema.updateTypename(newTypename);\n },\n [views, schema],\n );\n\n const handleDelete = useCallback(\n (fieldId: string) => {\n void dispatch?.(createIntent(KanbanAction.DeleteCardField, { kanban, fieldId }));\n },\n [dispatch, kanban],\n );\n\n const projection = useMemo(() => {\n if (kanban?.cardView?.target && schema) {\n const jsonSchema = schema instanceof EchoSchema ? schema.jsonSchema : Type.toJsonSchema(schema);\n return new ViewProjection(jsonSchema, kanban.cardView.target);\n }\n }, [kanban?.cardView?.target, JSON.stringify(schema)]);\n\n const fieldProjections = projection?.getFieldProjections() || [];\n const selectFields = fieldProjections\n .filter((field) => field.props.format === FormatEnum.SingleSelect)\n .map(({ field }) => ({ value: field.id, label: field.path }));\n\n const handleSave = useCallback(\n (values: Partial<{ columnFieldId: string }>) => {\n kanban.columnFieldId = values.columnFieldId;\n },\n [kanban],\n );\n\n const initialValues = useMemo(() => ({ columnFieldId: kanban.columnFieldId }), [kanban.columnFieldId]);\n const custom: CustomInputMap = useMemo(\n () => ({ columnFieldId: (props) => <SelectInput {...props} options={selectFields} /> }),\n [selectFields],\n );\n\n if (!space || !schema || !kanban.cardView?.target) {\n return null;\n }\n\n return (\n <>\n <Form\n Custom={custom}\n schema={KanbanSettingsSchema}\n values={initialValues}\n onSave={handleSave}\n autoSave\n outerSpacing={false}\n classNames='pbs-inputSpacingBlock'\n />\n <ViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={kanban.cardView.target}\n onTypenameChanged={Type.isMutable(schema) ? handleUpdateTypename : undefined}\n onDelete={Type.isMutable(schema) ? handleDelete : undefined}\n outerSpacing={false}\n />\n </>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useMemo", "Capabilities", "contributes", "createSurface", "useCapabilities", "Type", "findAnnotation", "ClientCapabilities", "getSpace", "isSpace", "SelectInput", "useFormValues", "React", "useCallback", "useEffect", "useMemo", "useState", "createIntent", "useIntentDispatcher", "Filter", "Obj", "Type", "EchoSchema", "useGlobalFilteredObjects", "useClient", "useQuery", "getSpace", "useKanbanModel", "Kanban", "StackItem", "ViewProjection", "KanbanContainer", "kanban", "client", "useClient", "cardSchema", "setCardSchema", "useState", "projection", "setProjection", "space", "getSpace", "dispatchPromise", "dispatch", "useIntentDispatcher", "jsonSchema", "useMemo", "undefined", "EchoSchema", "Type", "toJsonSchema", "useEffect", "typename", "cardView", "target", "query", "staticSchema", "graph", "schemaRegistry", "schemas", "find", "schema", "getTypename", "db", "unsubscribe", "subscribe", "results", "fire", "ViewProjection", "JSON", "stringify", "objects", "useQuery", "Filter", "type", "nothing", "filteredObjects", "useGlobalFilteredObjects", "model", "useKanbanModel", "items", "handleAddCard", "useCallback", "columnValue", "path", "columnFieldPath", "card", "Obj", "make", "add", "id", "handleRemoveCard", "createIntent", "KanbanAction", "DeleteCard", "StackItem", "Content", "Kanban", "onAddCard", "onRemoveCard", "React", "useCallback", "useMemo", "createIntent", "useIntentDispatcher", "Type", "EchoSchema", "FormatEnum", "invariant", "useClient", "Filter", "getSpace", "useQuery", "useSchema", "ViewEditor", "Form", "SelectInput", "KanbanSettingsSchema", "ViewType", "ViewProjection", "KanbanViewEditor", "kanban", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "space", "getSpace", "currentTypename", "useMemo", "cardView", "target", "query", "typename", "schema", "useSchema", "views", "useQuery", "Filter", "type", "ViewType", "handleUpdateTypename", "useCallback", "newTypename", "invariant", "Type", "isMutable", "matchingViews", "filter", "view", "updateTypename", "handleDelete", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "projection", "jsonSchema", "EchoSchema", "toJsonSchema", "ViewProjection", "JSON", "stringify", "fieldProjections", "getFieldProjections", "selectFields", "field", "props", "format", "FormatEnum", "SingleSelect", "map", "value", "id", "label", "path", "handleSave", "values", "columnFieldId", "initialValues", "custom", "React", "SelectInput", "options", "Form", "Custom", "KanbanSettingsSchema", "onSave", "autoSave", "outerSpacing", "classNames", "ViewEditor", "registry", "db", "schemaRegistry", "onTypenameChanged", "undefined", "onDelete", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "KANBAN_PLUGIN", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor", "annotation", "findAnnotation", "schema", "ast", "PivotColumnAnnotationId", "target", "inputProps", "props", "space", "isSpace", "getSpace", "typename", "useFormValues", "schemaWhitelists", "useCapabilities", "ClientCapabilities", "SchemaWhiteList", "staticSchema", "flat", "find", "Type", "getTypename", "selectedSchema", "db", "schemaRegistry", "query", "runSync", "singleSelectColumns", "useMemo", "properties", "toJsonSchema", "jsonSchema", "columns", "Object", "entries", "reduce", "acc", "key", "value", "format", "push", "SelectInput", "options", "map", "column"]
7
- }
@@ -1,11 +0,0 @@
1
- import { type PromiseIntentDispatcher } from '@dxos/app-framework';
2
- import { type Space } from '@dxos/react-client/echo';
3
- declare global {
4
- interface ToolContextExtensions {
5
- space?: Space;
6
- dispatch?: PromiseIntentDispatcher;
7
- }
8
- }
9
- declare const _default: () => import("@dxos/app-framework").Capability<import("@dxos/artifact").ArtifactDefinition>;
10
- export default _default;
11
- //# sourceMappingURL=artifact-definition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifact-definition.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/artifact-definition.ts"],"names":[],"mappings":"AAOA,OAAO,EAAkD,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAMnH,OAAO,EAA4B,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAU/E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,QAAQ,CAAC,EAAE,uBAAuB,CAAC;KACpC;CACF;;AAED,wBAyGE"}
@@ -1,4 +0,0 @@
1
- import { Capabilities, type PluginContext } from '@dxos/app-framework';
2
- declare const _default: (context: PluginContext) => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
3
- export default _default;
4
- //# sourceMappingURL=intent-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;yBAUpF,SAAS,aAAa;AAAtC,wBAwDK"}
@@ -1,4 +0,0 @@
1
- import { Capabilities } from '@dxos/app-framework';
2
- declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.ReactSurface>;
3
- export default _default;
4
- //# sourceMappingURL=react-surface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAA+C,MAAM,qBAAqB,CAAC;;AAahG,wBA4DK"}
@@ -1,3 +0,0 @@
1
- export * from './kanban-manager';
2
- export * from './initialize-kanban';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -1,17 +0,0 @@
1
- import { Type } from '@dxos/echo';
2
- import { type Client } from '@dxos/react-client';
3
- import { type Space } from '@dxos/react-client/echo';
4
- import { KanbanType } from '@dxos/react-ui-kanban';
5
- type InitializeKanbanProps = {
6
- client: Client;
7
- space: Space;
8
- name?: string;
9
- typename?: string;
10
- initialPivotColumn?: string;
11
- };
12
- export declare const initializeKanban: ({ client, space, name, typename, initialPivotColumn, }: InitializeKanbanProps) => Promise<{
13
- kanban: KanbanType;
14
- schema?: Type.Schema;
15
- }>;
16
- export {};
17
- //# sourceMappingURL=initialize-kanban.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initialize-kanban.d.ts","sourceRoot":"","sources":["../../../../src/testing/initialize-kanban.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,IAAI,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAqBF,eAAO,MAAM,gBAAgB,GAAU,wDAMpC,qBAAqB,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,CA6E9E,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { Locator } from '@playwright/test';
2
- export declare class KanbanManager {
3
- readonly locator: Locator;
4
- private readonly _page;
5
- constructor(locator: Locator);
6
- }
7
- //# sourceMappingURL=kanban-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kanban-manager.d.ts","sourceRoot":"","sources":["../../../../src/testing/kanban-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,aAAa;IAGZ,QAAQ,CAAC,OAAO,EAAE,OAAO;IAFrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAER,OAAO,EAAE,OAAO;CAGtC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=smoke.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smoke.spec.d.ts","sourceRoot":"","sources":["../../../../../src/testing/playwright/smoke.spec.ts"],"names":[],"mappings":""}
@@ -1,76 +0,0 @@
1
- import { Schema } from 'effect';
2
- import { KanbanType } from '@dxos/react-ui-kanban';
3
- /**
4
- * Kanban data model.
5
- * A Kanban board is a collection of columns, each of which contains a collection of items.
6
- * The layout of columns and items is controlled by models.
7
- * The underlying data model may be represented by direct object relationships
8
- * (e.g., a column object containing an array of ordered items) or projections constructed
9
- * by the model (e.g., a query of items based on metadata within a column object).
10
- */
11
- export declare const PivotColumnAnnotationId: unique symbol;
12
- export declare const CreateKanbanSchema: Schema.Struct<{
13
- name: Schema.optional<typeof Schema.String>;
14
- typename: Schema.optional<Schema.SchemaClass<string, string, never>>;
15
- initialPivotColumn: Schema.optional<Schema.SchemaClass<string, string, never>>;
16
- }>;
17
- export type CreateKanbanType = Schema.Schema.Type<typeof CreateKanbanSchema>;
18
- export declare namespace KanbanAction {
19
- const Create_base: Schema.TaggedClass<Create, "dxos.org/plugin/kanban/action/create", {
20
- readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/create">;
21
- } & {
22
- input: Schema.extend<Schema.Struct<{
23
- space: Schema.Schema<import("@dxos/client-protocol").Space, import("@dxos/client-protocol").Space, never>;
24
- }>, Schema.Struct<{
25
- name: Schema.optional<typeof Schema.String>;
26
- typename: Schema.optional<Schema.SchemaClass<string, string, never>>;
27
- initialPivotColumn: Schema.optional<Schema.SchemaClass<string, string, never>>;
28
- }>>;
29
- output: Schema.Struct<{
30
- object: typeof KanbanType;
31
- }>;
32
- }>;
33
- export class Create extends Create_base {
34
- }
35
- const DeleteCardField_base: Schema.TaggedClass<DeleteCardField, "dxos.org/plugin/kanban/action/delete-card-field", {
36
- readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/delete-card-field">;
37
- } & {
38
- input: Schema.Struct<{
39
- kanban: typeof KanbanType;
40
- fieldId: typeof Schema.String;
41
- deletionData: Schema.optional<Schema.Struct<{
42
- field: Schema.mutable<Schema.Struct<{
43
- id: typeof Schema.String;
44
- path: Schema.Schema<import("@dxos/effect").JsonPath, import("@dxos/effect").JsonPath, never>;
45
- visible: Schema.optional<typeof Schema.Boolean>;
46
- size: Schema.optional<typeof Schema.Number>;
47
- referencePath: Schema.optional<Schema.Schema<import("@dxos/effect").JsonPath, import("@dxos/effect").JsonPath, never>>;
48
- }>>;
49
- props: typeof Schema.Any;
50
- index: typeof Schema.Number;
51
- }>>;
52
- }>;
53
- output: typeof Schema.Void;
54
- }>;
55
- export class DeleteCardField extends DeleteCardField_base {
56
- }
57
- const DeleteCard_base: Schema.TaggedClass<DeleteCard, "dxos.org/plugin/kanban/action/delete-card", {
58
- readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/delete-card">;
59
- } & {
60
- input: Schema.Struct<{
61
- card: typeof Schema.Any;
62
- }>;
63
- output: typeof Schema.Void;
64
- }>;
65
- export class DeleteCard extends DeleteCard_base {
66
- }
67
- export {};
68
- }
69
- export interface KanbanModel {
70
- root: KanbanType;
71
- }
72
- export type Location = {
73
- idx?: number;
74
- };
75
- export declare const isKanban: (object: unknown) => object is KanbanType;
76
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKnD;;;;;;;GAOG;AAGH,eAAO,MAAM,uBAAuB,eAA2D,CAAC;AAEhG,eAAO,MAAM,kBAAkB;;;;EAc7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7E,yBAAiB,YAAY,CAAC;;;;;;;;;;;;;;;IAG5B,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;;;;;;;;;;;;;;;;;;;;;IAEL,MAAM,OAAO,eAAgB,SAAQ,oBAgBnC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,UAAW,SAAQ,eAK9B;KAAG;;CACN;AAUD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,QAAQ,OAAO,KAAG,MAAM,IAAI,UAA4D,CAAC"}