@dxos/plugin-kanban 0.8.2-main.12df754 → 0.8.2-main.30e4dbb

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 (83) hide show
  1. package/dist/lib/browser/{artifact-definition-SVNHDJQT.mjs → artifact-definition-VGRBHXJ6.mjs} +10 -10
  2. package/dist/lib/browser/artifact-definition-VGRBHXJ6.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-K5BYEZ4Z.mjs → chunk-6JAA7YSW.mjs} +23 -35
  4. package/dist/lib/browser/chunk-6JAA7YSW.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +4 -4
  6. package/dist/lib/browser/intent-resolver-44SXCRIH.mjs +297 -0
  7. package/dist/lib/browser/intent-resolver-44SXCRIH.mjs.map +7 -0
  8. package/dist/lib/browser/meta.json +1 -1
  9. package/dist/lib/browser/{react-surface-R25PYWQV.mjs → react-surface-H5UD7LKX.mjs} +56 -26
  10. package/dist/lib/browser/react-surface-H5UD7LKX.mjs.map +7 -0
  11. package/dist/lib/browser/types.mjs +1 -3
  12. package/dist/lib/node/{artifact-definition-M2XAYUI2.cjs → artifact-definition-KDTULJLX.cjs} +17 -17
  13. package/dist/lib/node/artifact-definition-KDTULJLX.cjs.map +7 -0
  14. package/dist/lib/node/{chunk-3EUR6ZR2.cjs → chunk-O4U7ZQ2I.cjs} +25 -38
  15. package/dist/lib/node/chunk-O4U7ZQ2I.cjs.map +7 -0
  16. package/dist/lib/node/index.cjs +16 -16
  17. package/dist/lib/node/intent-resolver-23TVN46D.cjs +308 -0
  18. package/dist/lib/node/intent-resolver-23TVN46D.cjs.map +7 -0
  19. package/dist/lib/node/meta.json +1 -1
  20. package/dist/lib/node/{react-surface-FVM64YAQ.cjs → react-surface-LKFQ3TZH.cjs} +61 -31
  21. package/dist/lib/node/react-surface-LKFQ3TZH.cjs.map +7 -0
  22. package/dist/lib/node/types.cjs +6 -8
  23. package/dist/lib/node/types.cjs.map +2 -2
  24. package/dist/lib/node-esm/{artifact-definition-HQ5I2OO5.mjs → artifact-definition-G2R5LF26.mjs} +10 -10
  25. package/dist/lib/node-esm/artifact-definition-G2R5LF26.mjs.map +7 -0
  26. package/dist/lib/node-esm/{chunk-2N7CO3DI.mjs → chunk-NOC32MF5.mjs} +23 -35
  27. package/dist/lib/node-esm/chunk-NOC32MF5.mjs.map +7 -0
  28. package/dist/lib/node-esm/index.mjs +4 -4
  29. package/dist/lib/node-esm/intent-resolver-SUADAOIJ.mjs +298 -0
  30. package/dist/lib/node-esm/intent-resolver-SUADAOIJ.mjs.map +7 -0
  31. package/dist/lib/node-esm/meta.json +1 -1
  32. package/dist/lib/node-esm/{react-surface-LZ7MP3CQ.mjs → react-surface-TUKDSY4T.mjs} +56 -26
  33. package/dist/lib/node-esm/react-surface-TUKDSY4T.mjs.map +7 -0
  34. package/dist/lib/node-esm/types.mjs +1 -3
  35. package/dist/types/src/capabilities/index.d.ts +1 -1
  36. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  37. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  38. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  39. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  40. package/dist/types/src/components/KanbanContainer.d.ts.map +1 -1
  41. package/dist/types/src/components/KanbanContainer.stories.d.ts +10 -0
  42. package/dist/types/src/components/KanbanContainer.stories.d.ts.map +1 -0
  43. package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -1
  44. package/dist/types/src/testing/index.d.ts +3 -0
  45. package/dist/types/src/testing/index.d.ts.map +1 -0
  46. package/dist/types/src/testing/initialize-kanban.d.ts +17 -0
  47. package/dist/types/src/testing/initialize-kanban.d.ts.map +1 -0
  48. package/dist/types/src/testing/kanban-manager.d.ts +7 -0
  49. package/dist/types/src/testing/kanban-manager.d.ts.map +1 -0
  50. package/dist/types/src/testing/playwright/smoke.spec.d.ts +2 -0
  51. package/dist/types/src/testing/playwright/smoke.spec.d.ts.map +1 -0
  52. package/dist/types/src/translations.d.ts +2 -28
  53. package/dist/types/src/translations.d.ts.map +1 -1
  54. package/dist/types/src/types.d.ts +34 -41
  55. package/dist/types/src/types.d.ts.map +1 -1
  56. package/dist/types/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +29 -25
  58. package/src/capabilities/artifact-definition.ts +8 -8
  59. package/src/capabilities/intent-resolver.ts +10 -6
  60. package/src/capabilities/react-surface.tsx +46 -12
  61. package/src/components/KanbanContainer.stories.tsx +186 -0
  62. package/src/components/KanbanContainer.tsx +21 -8
  63. package/src/testing/index.ts +6 -0
  64. package/src/testing/initialize-kanban.ts +139 -0
  65. package/src/testing/kanban-manager.ts +13 -0
  66. package/src/testing/playwright/playwright.config.cts +18 -0
  67. package/src/testing/playwright/smoke.spec.ts +7 -0
  68. package/src/types.ts +26 -43
  69. package/dist/lib/browser/artifact-definition-SVNHDJQT.mjs.map +0 -7
  70. package/dist/lib/browser/chunk-K5BYEZ4Z.mjs.map +0 -7
  71. package/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs +0 -132
  72. package/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs.map +0 -7
  73. package/dist/lib/browser/react-surface-R25PYWQV.mjs.map +0 -7
  74. package/dist/lib/node/artifact-definition-M2XAYUI2.cjs.map +0 -7
  75. package/dist/lib/node/chunk-3EUR6ZR2.cjs.map +0 -7
  76. package/dist/lib/node/intent-resolver-P3PSZO7H.cjs +0 -146
  77. package/dist/lib/node/intent-resolver-P3PSZO7H.cjs.map +0 -7
  78. package/dist/lib/node/react-surface-FVM64YAQ.cjs.map +0 -7
  79. package/dist/lib/node-esm/artifact-definition-HQ5I2OO5.mjs.map +0 -7
  80. package/dist/lib/node-esm/chunk-2N7CO3DI.mjs.map +0 -7
  81. package/dist/lib/node-esm/intent-resolver-4G47V67J.mjs +0 -133
  82. package/dist/lib/node-esm/intent-resolver-4G47V67J.mjs.map +0 -7
  83. package/dist/lib/node-esm/react-surface-LZ7MP3CQ.mjs.map +0 -7
@@ -5,32 +5,46 @@ import {
5
5
  PivotColumnAnnotationId,
6
6
  TypenameAnnotationId,
7
7
  isKanban
8
- } from "./chunk-2N7CO3DI.mjs";
8
+ } from "./chunk-NOC32MF5.mjs";
9
9
 
10
10
  // packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
11
- import React3, { useMemo as useMemo2 } from "react";
12
- import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
11
+ import React3, { useMemo as useMemo3 } from "react";
12
+ import { Capabilities, contributes, createSurface, useCapabilities } from "@dxos/app-framework";
13
+ import { getTypenameOrThrow as getTypenameOrThrow2, toJsonSchema as toJsonSchema2 } from "@dxos/echo-schema";
13
14
  import { findAnnotation } from "@dxos/effect";
15
+ import { ClientCapabilities } from "@dxos/plugin-client";
16
+ import { useClient as useClient3 } from "@dxos/react-client";
14
17
  import { getSpace as getSpace3, isSpace } from "@dxos/react-client/echo";
15
18
  import { SelectInput as SelectInput2, useFormValues } from "@dxos/react-ui-form";
16
19
 
17
20
  // packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx
18
- import React, { useCallback, useEffect, useState } from "react";
21
+ import React, { useCallback, useEffect, useMemo, useState } from "react";
19
22
  import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
23
+ import { EchoSchema, getTypenameOrThrow, toJsonSchema } from "@dxos/echo-schema";
20
24
  import { useGlobalFilteredObjects } from "@dxos/plugin-search";
25
+ import { useClient } from "@dxos/react-client";
21
26
  import { Filter, useQuery, getSpace, live } from "@dxos/react-client/echo";
22
27
  import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
23
28
  import { StackItem } from "@dxos/react-ui-stack";
24
29
  import { ViewProjection } from "@dxos/schema";
25
30
  var KanbanContainer = ({ kanban }) => {
31
+ const client = useClient();
26
32
  const [cardSchema, setCardSchema] = useState();
27
33
  const [projection, setProjection] = useState();
28
34
  const space = getSpace(kanban);
29
35
  const { dispatchPromise: dispatch } = useIntentDispatcher();
36
+ const jsonSchema = useMemo(() => cardSchema instanceof EchoSchema ? cardSchema.jsonSchema : cardSchema ? toJsonSchema(cardSchema) : void 0, [
37
+ cardSchema
38
+ ]);
30
39
  useEffect(() => {
31
- if (kanban.cardView?.target?.query?.typename && space) {
40
+ const typename = kanban.cardView?.target?.query?.typename;
41
+ const staticSchema = client.graph.schemaRegistry.schemas.find((schema) => getTypenameOrThrow(schema) === typename);
42
+ if (staticSchema) {
43
+ setCardSchema(() => staticSchema);
44
+ }
45
+ if (!staticSchema && typename && space) {
32
46
  const query = space.db.schemaRegistry.query({
33
- typename: kanban.cardView.target.query.typename
47
+ typename
34
48
  });
35
49
  const unsubscribe = query.subscribe(() => {
36
50
  const [schema] = query.results;
@@ -47,13 +61,12 @@ var KanbanContainer = ({ kanban }) => {
47
61
  space
48
62
  ]);
49
63
  useEffect(() => {
50
- if (kanban.cardView?.target && cardSchema) {
51
- setProjection(new ViewProjection(cardSchema.jsonSchema, kanban.cardView.target));
64
+ if (kanban.cardView?.target && jsonSchema) {
65
+ setProjection(new ViewProjection(jsonSchema, kanban.cardView.target));
52
66
  }
53
67
  }, [
54
68
  kanban.cardView?.target,
55
- cardSchema,
56
- JSON.stringify(cardSchema?.jsonSchema)
69
+ JSON.stringify(jsonSchema)
57
70
  ]);
58
71
  const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());
59
72
  const filteredObjects = useGlobalFilteredObjects(objects);
@@ -92,11 +105,11 @@ var KanbanContainer = ({ kanban }) => {
92
105
  };
93
106
 
94
107
  // packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx
95
- import React2, { useCallback as useCallback2, useMemo } from "react";
108
+ import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
96
109
  import { createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
97
110
  import { FormatEnum } from "@dxos/echo-schema";
98
111
  import { invariant } from "@dxos/invariant";
99
- import { useClient } from "@dxos/react-client";
112
+ import { useClient as useClient2 } from "@dxos/react-client";
100
113
  import { Filter as Filter2, getSpace as getSpace2, useQuery as useQuery2, useSchema } from "@dxos/react-client/echo";
101
114
  import { ViewEditor, Form, SelectInput } from "@dxos/react-ui-form";
102
115
  import { KanbanSettingsSchema } from "@dxos/react-ui-kanban";
@@ -104,9 +117,9 @@ import { ViewType, ViewProjection as ViewProjection2 } from "@dxos/schema";
104
117
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx";
105
118
  var KanbanViewEditor = ({ kanban }) => {
106
119
  const { dispatchPromise: dispatch } = useIntentDispatcher2();
107
- const client = useClient();
120
+ const client = useClient2();
108
121
  const space = getSpace2(kanban);
109
- const currentTypename = useMemo(() => kanban?.cardView?.target?.query?.typename, [
122
+ const currentTypename = useMemo2(() => kanban?.cardView?.target?.query?.typename, [
110
123
  kanban?.cardView?.target?.query?.typename
111
124
  ]);
112
125
  const schema = useSchema(client, space, currentTypename);
@@ -139,7 +152,7 @@ var KanbanViewEditor = ({ kanban }) => {
139
152
  dispatch,
140
153
  kanban
141
154
  ]);
142
- const projection = useMemo(() => {
155
+ const projection = useMemo2(() => {
143
156
  if (kanban?.cardView?.target && schema) {
144
157
  return new ViewProjection2(schema.jsonSchema, kanban.cardView.target);
145
158
  }
@@ -158,12 +171,12 @@ var KanbanViewEditor = ({ kanban }) => {
158
171
  }, [
159
172
  kanban
160
173
  ]);
161
- const initialValues = useMemo(() => ({
174
+ const initialValues = useMemo2(() => ({
162
175
  columnFieldId: kanban.columnFieldId
163
176
  }), [
164
177
  kanban.columnFieldId
165
178
  ]);
166
- const custom = useMemo(() => ({
179
+ const custom = useMemo2(() => ({
167
180
  columnFieldId: (props) => /* @__PURE__ */ React2.createElement(SelectInput, {
168
181
  ...props,
169
182
  options: selectFields
@@ -212,23 +225,36 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
212
225
  })
213
226
  }),
214
227
  createSurface({
215
- id: `${KANBAN_PLUGIN}/create-initial-schema-form-[schema]`,
228
+ id: `${KANBAN_PLUGIN}/create-initial-schema-form`,
216
229
  role: "form-input",
217
230
  filter: (data) => {
231
+ if (data.prop !== "typename") {
232
+ return false;
233
+ }
218
234
  const annotation = findAnnotation(data.schema.ast, TypenameAnnotationId);
219
235
  return !!annotation;
220
236
  },
221
237
  component: ({ data: { target }, ...inputProps }) => {
238
+ const client = useClient3();
222
239
  const props = inputProps;
223
240
  const space = isSpace(target) ? target : getSpace3(target);
224
241
  if (!space) {
225
242
  return null;
226
243
  }
227
- const schemata = space?.db.schemaRegistry.query().runSync();
244
+ const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
245
+ const whitelistedTypenames = useMemo3(() => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => type.typename))), [
246
+ schemaWhitelists
247
+ ]);
248
+ const fixed = client.graph.schemaRegistry.schemas.filter((schema) => whitelistedTypenames.has(getTypenameOrThrow2(schema)));
249
+ const dynamic = space?.db.schemaRegistry.query().runSync();
250
+ const typenames = Array.from(/* @__PURE__ */ new Set([
251
+ ...fixed.map((schema) => getTypenameOrThrow2(schema)),
252
+ ...dynamic.map((schema) => schema.typename)
253
+ ])).sort();
228
254
  return /* @__PURE__ */ React3.createElement(SelectInput2, {
229
255
  ...props,
230
- options: schemata.map((schema) => ({
231
- value: schema.typename
256
+ options: typenames.map((typename) => ({
257
+ value: typename
232
258
  }))
233
259
  });
234
260
  }
@@ -247,14 +273,17 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
247
273
  return null;
248
274
  }
249
275
  const { typename } = useFormValues();
276
+ const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
277
+ const staticSchema = schemaWhitelists.flat().find((schema) => getTypenameOrThrow2(schema) === typename);
250
278
  const [selectedSchema] = space?.db.schemaRegistry.query({
251
279
  typename
252
280
  }).runSync();
253
- const singleSelectColumns = useMemo2(() => {
254
- if (!selectedSchema?.jsonSchema?.properties) {
281
+ const singleSelectColumns = useMemo3(() => {
282
+ const properties = staticSchema ? toJsonSchema2(staticSchema).properties : selectedSchema?.jsonSchema?.properties;
283
+ if (!properties) {
255
284
  return [];
256
285
  }
257
- const columns = Object.entries(selectedSchema.jsonSchema.properties).reduce((acc, [key, value]) => {
286
+ const columns = Object.entries(properties).reduce((acc, [key, value]) => {
258
287
  if (typeof value === "object" && value?.format === "single-select") {
259
288
  acc.push(key);
260
289
  }
@@ -262,7 +291,8 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
262
291
  }, []);
263
292
  return columns;
264
293
  }, [
265
- selectedSchema?.jsonSchema
294
+ selectedSchema?.jsonSchema,
295
+ staticSchema
266
296
  ]);
267
297
  if (!typename) {
268
298
  return null;
@@ -279,4 +309,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
279
309
  export {
280
310
  react_surface_default as default
281
311
  };
282
- //# sourceMappingURL=react-surface-LZ7MP3CQ.mjs.map
312
+ //# sourceMappingURL=react-surface-TUKDSY4T.mjs.map
@@ -0,0 +1,7 @@
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 { getTypenameOrThrow, toJsonSchema } from '@dxos/echo-schema';\nimport { findAnnotation } from '@dxos/effect';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { type CollectionType } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-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';\n\nimport { KanbanContainer, KanbanViewEditor } from '../components';\nimport { KANBAN_PLUGIN } from '../meta';\nimport { isKanban, TypenameAnnotationId, 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`,\n role: 'form-input',\n filter: (\n data,\n ): data is { prop: string; schema: Schema.Schema<any>; target: Space | CollectionType | undefined } => {\n if (data.prop !== 'typename') {\n return false;\n }\n\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, TypenameAnnotationId);\n return !!annotation;\n },\n component: ({ data: { target }, ...inputProps }) => {\n const client = useClient();\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n\n const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);\n const whitelistedTypenames = useMemo(\n () => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => type.typename))),\n [schemaWhitelists],\n );\n\n const fixed = client.graph.schemaRegistry.schemas.filter((schema) =>\n whitelistedTypenames.has(getTypenameOrThrow(schema)),\n );\n const dynamic = space?.db.schemaRegistry.query().runSync();\n const typenames = Array.from(\n new Set<string>([\n ...fixed.map((schema) => getTypenameOrThrow(schema)),\n ...dynamic.map((schema) => schema.typename),\n ]),\n ).sort();\n\n return <SelectInput {...props} options={typenames.map((typename) => ({ value: typename }))} />;\n },\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 | CollectionType | 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) => getTypenameOrThrow(schema) === typename);\n const [selectedSchema] = space?.db.schemaRegistry.query({ typename }).runSync();\n\n const singleSelectColumns = useMemo(() => {\n const properties = staticSchema\n ? 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 { EchoSchema, getTypenameOrThrow, toJsonSchema, type TypedObject } from '@dxos/echo-schema';\nimport { useGlobalFilteredObjects } from '@dxos/plugin-search';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, useQuery, getSpace, live } 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 () =>\n cardSchema instanceof EchoSchema ? cardSchema.jsonSchema : cardSchema ? toJsonSchema(cardSchema) : undefined,\n [cardSchema],\n );\n\n useEffect(() => {\n const typename = kanban.cardView?.target?.query?.typename;\n const staticSchema = client.graph.schemaRegistry.schemas.find((schema) => getTypenameOrThrow(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.schema(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 = live(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 { 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.schema(ViewType));\n\n const handleUpdateTypename = useCallback(\n (newTypename: string) => {\n invariant(schema);\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.mutable.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 return new ViewProjection(schema.jsonSchema, kanban.cardView.target);\n }\n }, [kanban?.cardView?.target, schema, 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 onSave = 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 schema={KanbanSettingsSchema} values={initialValues} onSave={onSave} autoSave Custom={custom} />\n <ViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={kanban.cardView.target}\n onTypenameChanged={schema.readonly ? undefined : handleUpdateTypename}\n onDelete={schema.readonly ? undefined : handleDelete}\n />\n </>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useMemo", "Capabilities", "contributes", "createSurface", "useCapabilities", "getTypenameOrThrow", "toJsonSchema", "findAnnotation", "ClientCapabilities", "useClient", "getSpace", "isSpace", "SelectInput", "useFormValues", "React", "useCallback", "useEffect", "useMemo", "useState", "createIntent", "useIntentDispatcher", "EchoSchema", "getTypenameOrThrow", "toJsonSchema", "useGlobalFilteredObjects", "useClient", "Filter", "useQuery", "getSpace", "live", "useKanbanModel", "Kanban", "StackItem", "ViewProjection", "KanbanContainer", "kanban", "client", "useClient", "cardSchema", "setCardSchema", "useState", "projection", "setProjection", "space", "getSpace", "dispatchPromise", "dispatch", "useIntentDispatcher", "jsonSchema", "useMemo", "EchoSchema", "toJsonSchema", "undefined", "useEffect", "typename", "cardView", "target", "query", "staticSchema", "graph", "schemaRegistry", "schemas", "find", "schema", "getTypenameOrThrow", "db", "unsubscribe", "subscribe", "results", "fire", "ViewProjection", "JSON", "stringify", "objects", "useQuery", "Filter", "nothing", "filteredObjects", "useGlobalFilteredObjects", "model", "useKanbanModel", "items", "handleAddCard", "useCallback", "columnValue", "path", "columnFieldPath", "card", "live", "add", "id", "handleRemoveCard", "createIntent", "KanbanAction", "DeleteCard", "StackItem", "Content", "Kanban", "onAddCard", "onRemoveCard", "React", "useCallback", "useMemo", "createIntent", "useIntentDispatcher", "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", "ViewType", "handleUpdateTypename", "useCallback", "newTypename", "invariant", "matchingViews", "filter", "view", "mutable", "updateTypename", "handleDelete", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "projection", "ViewProjection", "jsonSchema", "JSON", "stringify", "fieldProjections", "getFieldProjections", "selectFields", "field", "props", "format", "FormatEnum", "SingleSelect", "map", "value", "id", "label", "path", "onSave", "values", "columnFieldId", "initialValues", "custom", "React", "SelectInput", "options", "Form", "KanbanSettingsSchema", "autoSave", "Custom", "ViewEditor", "registry", "db", "schemaRegistry", "onTypenameChanged", "readonly", "undefined", "onDelete", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "KANBAN_PLUGIN", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor", "prop", "annotation", "findAnnotation", "schema", "ast", "TypenameAnnotationId", "target", "inputProps", "client", "useClient", "props", "space", "isSpace", "getSpace", "schemaWhitelists", "useCapabilities", "ClientCapabilities", "SchemaWhiteList", "whitelistedTypenames", "useMemo", "Set", "flatMap", "typeArray", "map", "type", "typename", "fixed", "graph", "schemaRegistry", "schemas", "has", "getTypenameOrThrow", "dynamic", "db", "query", "runSync", "typenames", "Array", "from", "sort", "SelectInput", "options", "value", "PivotColumnAnnotationId", "useFormValues", "staticSchema", "flat", "find", "selectedSchema", "singleSelectColumns", "properties", "toJsonSchema", "jsonSchema", "columns", "Object", "entries", "reduce", "acc", "key", "format", "push", "column"]
7
+ }
@@ -4,15 +4,13 @@ import {
4
4
  KanbanAction,
5
5
  PivotColumnAnnotationId,
6
6
  TypenameAnnotationId,
7
- createKanban,
8
7
  isKanban
9
- } from "./chunk-2N7CO3DI.mjs";
8
+ } from "./chunk-NOC32MF5.mjs";
10
9
  export {
11
10
  CreateKanbanSchema,
12
11
  KanbanAction,
13
12
  PivotColumnAnnotationId,
14
13
  TypenameAnnotationId,
15
- createKanban,
16
14
  isKanban
17
15
  };
18
16
  //# sourceMappingURL=types.mjs.map
@@ -1,4 +1,4 @@
1
1
  export declare const ArtifactDefinition: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/artifact").ArtifactDefinition> | import("@dxos/app-framework").AnyCapability[]>>;
2
- export declare const IntentResolver: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver> | import("@dxos/app-framework").AnyCapability[]>>;
2
+ export declare const IntentResolver: (props?: import("@dxos/app-framework").PluginsContext | undefined) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.IntentResolver> | import("@dxos/app-framework").AnyCapability[]>>;
3
3
  export declare const ReactSurface: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface> | import("@dxos/app-framework").AnyCapability[]>>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,oLAA8C,CAAC;AAC9E,eAAO,MAAM,cAAc,kMAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,gMAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,oLAA8C,CAAC;AAC9E,eAAO,MAAM,cAAc,mPAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,gMAAwC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Capabilities } from '@dxos/app-framework';
2
- declare const _default: () => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
1
+ import { Capabilities, type PluginsContext } from '@dxos/app-framework';
2
+ declare const _default: (context: PluginsContext) => import("@dxos/app-framework").Capability<Capabilities.IntentResolver>;
3
3
  export default _default;
4
4
  //# sourceMappingURL=intent-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,MAAM,qBAAqB,CAAC;;AAQhF,wBAsDK"}
1
+ {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;yBAUrF,SAAS,cAAc;AAAvC,wBAwDK"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAA8B,MAAM,qBAAqB,CAAC;;AAY/E,wBAsEK"}
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;;AAchG,wBAqGK"}
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,OAAO,EAAE,KAAK,UAAU,EAA0B,MAAM,uBAAuB,CAAC;AAMhF,eAAO,MAAM,eAAe,eAAgB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,sBA+D/E,CAAC"}
1
+ {"version":3,"file":"KanbanContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAOzE,OAAO,EAAE,KAAK,UAAU,EAA0B,MAAM,uBAAuB,CAAC;AAMhF,eAAO,MAAM,eAAe,GAAI,YAAY;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,sBA2E/E,CAAC"}
@@ -0,0 +1,10 @@
1
+ import '@dxos-theme';
2
+ import { type StoryObj, type Meta } from '@storybook/react';
3
+ type StoryProps = {
4
+ rows?: number;
5
+ };
6
+ declare const meta: Meta<StoryProps>;
7
+ export default meta;
8
+ type Story = StoryObj<StoryProps>;
9
+ export declare const Default: Story;
10
+ //# sourceMappingURL=KanbanContainer.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KanbanContainer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanContainer.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AA8H5D,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAAU,CAwC1B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAElC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanViewEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanViewEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,uBAAuB,CAAC;AAK9E,KAAK,qBAAqB,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpD,eAAO,MAAM,gBAAgB,eAAgB,qBAAqB,6BAuEjE,CAAC"}
1
+ {"version":3,"file":"KanbanViewEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanViewEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,uBAAuB,CAAC;AAK9E,KAAK,qBAAqB,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpD,eAAO,MAAM,gBAAgB,GAAI,YAAY,qBAAqB,6BAuEjE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './kanban-manager';
2
+ export * from './initialize-kanban';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type EchoSchema } from '@dxos/echo-schema';
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?: EchoSchema;
15
+ }>;
16
+ export {};
17
+ //# sourceMappingURL=initialize-kanban.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize-kanban.d.ts","sourceRoot":"","sources":["../../../../src/testing/initialize-kanban.ts"],"names":[],"mappings":"AAMA,OAAO,EAKL,KAAK,UAAU,EAGhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,KAAK,KAAK,EAAiB,MAAM,yBAAyB,CAAC;AACpE,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;AAyBF,eAAO,MAAM,gBAAgB,GAAU,wDAMpC,qBAAqB,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CA6E7E,CAAC"}
@@ -0,0 +1,7 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=smoke.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smoke.spec.d.ts","sourceRoot":"","sources":["../../../../../src/testing/playwright/smoke.spec.ts"],"names":[],"mappings":""}
@@ -1,35 +1,9 @@
1
+ import { KanbanType } from '@dxos/react-ui-kanban';
1
2
  declare const _default: {
2
3
  'en-US': {
3
- [x: string]: {
4
+ [KanbanType.typename]: {
4
5
  'typename label': string;
5
6
  'object name placeholder': string;
6
- 'plugin name'?: undefined;
7
- 'kanban title label'?: undefined;
8
- 'column title label'?: undefined;
9
- 'column title placeholder'?: undefined;
10
- 'item title label'?: undefined;
11
- 'item title placeholder'?: undefined;
12
- 'add column label'?: undefined;
13
- 'add item label'?: undefined;
14
- 'delete column label'?: undefined;
15
- 'delete item label'?: undefined;
16
- 'card field deleted label'?: undefined;
17
- 'card deleted label'?: undefined;
18
- } | {
19
- 'plugin name': string;
20
- 'kanban title label': string;
21
- 'column title label': string;
22
- 'column title placeholder': string;
23
- 'item title label': string;
24
- 'item title placeholder': string;
25
- 'add column label': string;
26
- 'add item label': string;
27
- 'delete column label': string;
28
- 'delete item label': string;
29
- 'card field deleted label': string;
30
- 'card deleted label': string;
31
- 'typename label'?: undefined;
32
- 'object name placeholder'?: undefined;
33
7
  };
34
8
  "dxos.org/plugin/kanban": {
35
9
  'plugin name': string;
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wBAuBE"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;;;QAO7C,CAAC,UAAU,CAAC,QAAQ,CAAC;;;UAGpB;;;;;;;;;;;;;;;;;AANP,wBAuBE"}
@@ -1,5 +1,4 @@
1
- import { S } from '@dxos/echo-schema';
2
- import { type Space } from '@dxos/react-client/echo';
1
+ import { Schema } from 'effect';
3
2
  import { KanbanType } from '@dxos/react-ui-kanban';
4
3
  /**
5
4
  * Kanban data model.
@@ -11,58 +10,58 @@ import { KanbanType } from '@dxos/react-ui-kanban';
11
10
  */
12
11
  export declare const TypenameAnnotationId: unique symbol;
13
12
  export declare const PivotColumnAnnotationId: unique symbol;
14
- export declare const CreateKanbanSchema: S.Struct<{
15
- name: S.optional<typeof S.String>;
16
- typename: S.optional<S.SchemaClass<string, string, never>>;
17
- initialPivotColumn: S.optional<S.SchemaClass<string, string, never>>;
13
+ export declare const CreateKanbanSchema: Schema.Struct<{
14
+ name: Schema.optional<typeof Schema.String>;
15
+ typename: Schema.optional<Schema.SchemaClass<string, string, never>>;
16
+ initialPivotColumn: Schema.optional<Schema.SchemaClass<string, string, never>>;
18
17
  }>;
19
- export type CreateKanbanType = S.Schema.Type<typeof CreateKanbanSchema>;
18
+ export type CreateKanbanType = Schema.Schema.Type<typeof CreateKanbanSchema>;
20
19
  export declare namespace KanbanAction {
21
- const Create_base: S.TaggedClass<Create, "dxos.org/plugin/kanban/action/create", {
22
- readonly _tag: S.tag<"dxos.org/plugin/kanban/action/create">;
20
+ const Create_base: Schema.TaggedClass<Create, "dxos.org/plugin/kanban/action/create", {
21
+ readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/create">;
23
22
  } & {
24
- input: S.extend<S.Struct<{
25
- space: S.Schema<Space, Space, never>;
26
- }>, S.Struct<{
27
- name: S.optional<typeof S.String>;
28
- typename: S.optional<S.SchemaClass<string, string, never>>;
29
- initialPivotColumn: S.optional<S.SchemaClass<string, string, never>>;
23
+ input: Schema.extend<Schema.Struct<{
24
+ space: Schema.Schema<import("@dxos/client-protocol").Space, import("@dxos/client-protocol").Space, never>;
25
+ }>, Schema.Struct<{
26
+ name: Schema.optional<typeof Schema.String>;
27
+ typename: Schema.optional<Schema.SchemaClass<string, string, never>>;
28
+ initialPivotColumn: Schema.optional<Schema.SchemaClass<string, string, never>>;
30
29
  }>>;
31
- output: S.Struct<{
30
+ output: Schema.Struct<{
32
31
  object: typeof KanbanType;
33
32
  }>;
34
33
  }>;
35
34
  export class Create extends Create_base {
36
35
  }
37
- const DeleteCardField_base: S.TaggedClass<DeleteCardField, "dxos.org/plugin/kanban/action/delete-card-field", {
38
- readonly _tag: S.tag<"dxos.org/plugin/kanban/action/delete-card-field">;
36
+ const DeleteCardField_base: Schema.TaggedClass<DeleteCardField, "dxos.org/plugin/kanban/action/delete-card-field", {
37
+ readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/delete-card-field">;
39
38
  } & {
40
- input: S.Struct<{
39
+ input: Schema.Struct<{
41
40
  kanban: typeof KanbanType;
42
- fieldId: typeof S.String;
43
- deletionData: S.optional<S.Struct<{
44
- field: S.mutable<S.Struct<{
45
- id: typeof S.String;
46
- path: S.Schema<import("@dxos/effect").JsonPath, import("@dxos/effect").JsonPath, never>;
47
- visible: S.optional<typeof S.Boolean>;
48
- size: S.optional<typeof S.Number>;
49
- referencePath: S.optional<S.Schema<import("@dxos/effect").JsonPath, import("@dxos/effect").JsonPath, never>>;
41
+ fieldId: typeof Schema.String;
42
+ deletionData: Schema.optional<Schema.Struct<{
43
+ field: Schema.mutable<Schema.Struct<{
44
+ id: typeof Schema.String;
45
+ path: Schema.Schema<import("@dxos/effect").JsonPath, import("@dxos/effect").JsonPath, never>;
46
+ visible: Schema.optional<typeof Schema.Boolean>;
47
+ size: Schema.optional<typeof Schema.Number>;
48
+ referencePath: Schema.optional<Schema.Schema<import("@dxos/effect").JsonPath, import("@dxos/effect").JsonPath, never>>;
50
49
  }>>;
51
- props: typeof S.Any;
52
- index: typeof S.Number;
50
+ props: typeof Schema.Any;
51
+ index: typeof Schema.Number;
53
52
  }>>;
54
53
  }>;
55
- output: typeof S.Void;
54
+ output: typeof Schema.Void;
56
55
  }>;
57
56
  export class DeleteCardField extends DeleteCardField_base {
58
57
  }
59
- const DeleteCard_base: S.TaggedClass<DeleteCard, "dxos.org/plugin/kanban/action/delete-card", {
60
- readonly _tag: S.tag<"dxos.org/plugin/kanban/action/delete-card">;
58
+ const DeleteCard_base: Schema.TaggedClass<DeleteCard, "dxos.org/plugin/kanban/action/delete-card", {
59
+ readonly _tag: Schema.tag<"dxos.org/plugin/kanban/action/delete-card">;
61
60
  } & {
62
- input: S.Struct<{
63
- card: typeof S.Any;
61
+ input: Schema.Struct<{
62
+ card: typeof Schema.Any;
64
63
  }>;
65
- output: typeof S.Void;
64
+ output: typeof Schema.Void;
66
65
  }>;
67
66
  export class DeleteCard extends DeleteCard_base {
68
67
  }
@@ -75,10 +74,4 @@ export type Location = {
75
74
  idx?: number;
76
75
  };
77
76
  export declare const isKanban: (object: unknown) => object is KanbanType;
78
- export declare const createKanban: ({ space, name, typename, initialPivotColumn, }: {
79
- space: Space;
80
- name?: string;
81
- typename?: string;
82
- initialPivotColumn?: string;
83
- }) => Promise<KanbanType>;
84
77
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD;;;;;;;GAOG;AAGH,eAAO,MAAM,oBAAoB,eAAwD,CAAC;AAC1F,eAAO,MAAM,uBAAuB,eAA2D,CAAC;AAEhG,eAAO,MAAM,kBAAkB;;;;EAc7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE,yBAAiB,YAAY,CAAC;;;;;;;;;;;;;;;IAG5B,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;;;;;;;;;+BA5CE,EAAG,MAAM;0BAAW,EAAI,MAAK;6BACzB,EAAG,QAAQ,QAAO,EAAG,OAAO;0BAEhC,EAAE,QAAQ,QAAO,EAAI,MAAK;mCAGxB,EAAI,QACf,CAAC,EAAE,MAAM;;;;;;;;IAuCP,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,WAAY,OAAO,KAAG,MAAM,IAAI,UAA4D,CAAC;AAElH,eAAO,MAAM,YAAY,mDAKtB;IACD,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,wBAGA,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKnD;;;;;;;GAOG;AAGH,eAAO,MAAM,oBAAoB,eAAwD,CAAC;AAC1F,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"}
@@ -1 +1 @@
1
- {"version":"5.7.3"}
1
+ {"version":"5.8.3"}