@dxos/plugin-kanban 0.8.2-main.2f9c567 → 0.8.2-main.36232bc

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 (79) hide show
  1. package/dist/lib/browser/{artifact-definition-VGRBHXJ6.mjs → artifact-definition-SVNHDJQT.mjs} +10 -10
  2. package/dist/lib/browser/artifact-definition-SVNHDJQT.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-6JAA7YSW.mjs → chunk-K5BYEZ4Z.mjs} +35 -23
  4. package/dist/lib/browser/chunk-K5BYEZ4Z.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +4 -4
  6. package/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs +132 -0
  7. package/dist/lib/browser/intent-resolver-XCDQ5N3Q.mjs.map +7 -0
  8. package/dist/lib/browser/meta.json +1 -1
  9. package/dist/lib/browser/{react-surface-H5UD7LKX.mjs → react-surface-R25PYWQV.mjs} +26 -56
  10. package/dist/lib/browser/react-surface-R25PYWQV.mjs.map +7 -0
  11. package/dist/lib/browser/types.mjs +3 -1
  12. package/dist/lib/node/{artifact-definition-KDTULJLX.cjs → artifact-definition-M2XAYUI2.cjs} +17 -17
  13. package/dist/lib/node/artifact-definition-M2XAYUI2.cjs.map +7 -0
  14. package/dist/lib/node/{chunk-O4U7ZQ2I.cjs → chunk-3EUR6ZR2.cjs} +38 -25
  15. package/dist/lib/node/chunk-3EUR6ZR2.cjs.map +7 -0
  16. package/dist/lib/node/index.cjs +16 -16
  17. package/dist/lib/node/intent-resolver-P3PSZO7H.cjs +146 -0
  18. package/dist/lib/node/intent-resolver-P3PSZO7H.cjs.map +7 -0
  19. package/dist/lib/node/meta.json +1 -1
  20. package/dist/lib/node/{react-surface-LKFQ3TZH.cjs → react-surface-FVM64YAQ.cjs} +31 -61
  21. package/dist/lib/node/react-surface-FVM64YAQ.cjs.map +7 -0
  22. package/dist/lib/node/types.cjs +8 -6
  23. package/dist/lib/node/types.cjs.map +2 -2
  24. package/dist/lib/node-esm/{artifact-definition-G2R5LF26.mjs → artifact-definition-HQ5I2OO5.mjs} +10 -10
  25. package/dist/lib/node-esm/artifact-definition-HQ5I2OO5.mjs.map +7 -0
  26. package/dist/lib/node-esm/{chunk-NOC32MF5.mjs → chunk-2N7CO3DI.mjs} +35 -23
  27. package/dist/lib/node-esm/chunk-2N7CO3DI.mjs.map +7 -0
  28. package/dist/lib/node-esm/index.mjs +4 -4
  29. package/dist/lib/node-esm/intent-resolver-4G47V67J.mjs +133 -0
  30. package/dist/lib/node-esm/intent-resolver-4G47V67J.mjs.map +7 -0
  31. package/dist/lib/node-esm/meta.json +1 -1
  32. package/dist/lib/node-esm/{react-surface-TUKDSY4T.mjs → react-surface-LZ7MP3CQ.mjs} +26 -56
  33. package/dist/lib/node-esm/react-surface-LZ7MP3CQ.mjs.map +7 -0
  34. package/dist/lib/node-esm/types.mjs +3 -1
  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/types.d.ts +41 -34
  42. package/dist/types/src/types.d.ts.map +1 -1
  43. package/package.json +25 -29
  44. package/src/capabilities/artifact-definition.ts +8 -8
  45. package/src/capabilities/intent-resolver.ts +6 -10
  46. package/src/capabilities/react-surface.tsx +12 -46
  47. package/src/components/KanbanContainer.tsx +8 -21
  48. package/src/types.ts +43 -26
  49. package/dist/lib/browser/artifact-definition-VGRBHXJ6.mjs.map +0 -7
  50. package/dist/lib/browser/chunk-6JAA7YSW.mjs.map +0 -7
  51. package/dist/lib/browser/intent-resolver-44SXCRIH.mjs +0 -297
  52. package/dist/lib/browser/intent-resolver-44SXCRIH.mjs.map +0 -7
  53. package/dist/lib/browser/react-surface-H5UD7LKX.mjs.map +0 -7
  54. package/dist/lib/node/artifact-definition-KDTULJLX.cjs.map +0 -7
  55. package/dist/lib/node/chunk-O4U7ZQ2I.cjs.map +0 -7
  56. package/dist/lib/node/intent-resolver-23TVN46D.cjs +0 -308
  57. package/dist/lib/node/intent-resolver-23TVN46D.cjs.map +0 -7
  58. package/dist/lib/node/react-surface-LKFQ3TZH.cjs.map +0 -7
  59. package/dist/lib/node-esm/artifact-definition-G2R5LF26.mjs.map +0 -7
  60. package/dist/lib/node-esm/chunk-NOC32MF5.mjs.map +0 -7
  61. package/dist/lib/node-esm/intent-resolver-SUADAOIJ.mjs +0 -298
  62. package/dist/lib/node-esm/intent-resolver-SUADAOIJ.mjs.map +0 -7
  63. package/dist/lib/node-esm/react-surface-TUKDSY4T.mjs.map +0 -7
  64. package/dist/types/src/components/KanbanContainer.stories.d.ts +0 -10
  65. package/dist/types/src/components/KanbanContainer.stories.d.ts.map +0 -1
  66. package/dist/types/src/testing/index.d.ts +0 -3
  67. package/dist/types/src/testing/index.d.ts.map +0 -1
  68. package/dist/types/src/testing/initialize-kanban.d.ts +0 -17
  69. package/dist/types/src/testing/initialize-kanban.d.ts.map +0 -1
  70. package/dist/types/src/testing/kanban-manager.d.ts +0 -7
  71. package/dist/types/src/testing/kanban-manager.d.ts.map +0 -1
  72. package/dist/types/src/testing/playwright/smoke.spec.d.ts +0 -2
  73. package/dist/types/src/testing/playwright/smoke.spec.d.ts.map +0 -1
  74. package/src/components/KanbanContainer.stories.tsx +0 -186
  75. package/src/testing/index.ts +0 -6
  76. package/src/testing/initialize-kanban.ts +0 -139
  77. package/src/testing/kanban-manager.ts +0 -13
  78. package/src/testing/playwright/playwright.config.cts +0 -18
  79. package/src/testing/playwright/smoke.spec.ts +0 -7
@@ -1,139 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { Schema, SchemaAST } from 'effect';
6
-
7
- import {
8
- TypedObject,
9
- FormatEnum,
10
- TypeEnum,
11
- type JsonProp,
12
- type EchoSchema,
13
- getTypenameOrThrow,
14
- toJsonSchema,
15
- } from '@dxos/echo-schema';
16
- import { invariant } from '@dxos/invariant';
17
- import { type Client, PublicKey } from '@dxos/react-client';
18
- import { type Space, live, makeRef } from '@dxos/react-client/echo';
19
- import { KanbanType } from '@dxos/react-ui-kanban';
20
- import { createView, ViewProjection, createFieldId, getSchemaProperties } from '@dxos/schema';
21
- import { capitalize } from '@dxos/util';
22
-
23
- // TODO(wittjosiah): UI package shouldn't depend on client.
24
-
25
- type InitializeKanbanProps = {
26
- client: Client;
27
- space: Space;
28
- name?: string;
29
- typename?: string;
30
- initialPivotColumn?: string;
31
- };
32
-
33
- const createDefaultTaskSchema = () => {
34
- const stateOptions = [
35
- { id: PublicKey.random().truncate(), title: 'Draft', color: 'indigo' },
36
- { id: PublicKey.random().truncate(), title: 'Active', color: 'cyan' },
37
- { id: PublicKey.random().truncate(), title: 'Completed', color: 'emerald' },
38
- ];
39
-
40
- const schema = TypedObject({
41
- typename: `example.com/type/${PublicKey.random().truncate()}`,
42
- version: '0.1.0',
43
- })({
44
- title: Schema.optional(Schema.String).annotations({
45
- [SchemaAST.TitleAnnotationId]: 'Title',
46
- }),
47
- description: Schema.optional(Schema.String).annotations({
48
- [SchemaAST.TitleAnnotationId]: 'Description',
49
- }),
50
- state: Schema.optional(Schema.String),
51
- });
52
-
53
- return { schema, stateOptions };
54
- };
55
-
56
- export const initializeKanban = async ({
57
- client,
58
- space,
59
- name,
60
- typename,
61
- initialPivotColumn,
62
- }: InitializeKanbanProps): Promise<{ kanban: KanbanType; schema?: EchoSchema }> => {
63
- if (typename) {
64
- const staticSchema = client.graph.schemaRegistry.schemas.find((schema) => getTypenameOrThrow(schema) === typename);
65
- const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();
66
-
67
- const ast = staticSchema?.ast ?? schema?.ast;
68
- const jsonSchema = staticSchema ? toJsonSchema(staticSchema) : schema?.jsonSchema;
69
- invariant(ast, `Schema not found: ${typename}`);
70
- invariant(jsonSchema, `Schema not found: ${typename}`);
71
-
72
- const fields = getSchemaProperties(ast)
73
- .filter((prop) => prop.type !== 'object' || prop.format === FormatEnum.Ref)
74
- .map((prop) => prop.name);
75
-
76
- const view = createView({
77
- name: "Kanban's card view",
78
- typename,
79
- jsonSchema,
80
- fields,
81
- });
82
-
83
- const kanban = live(KanbanType, { cardView: makeRef(view), columnFieldId: undefined, name });
84
- if (initialPivotColumn) {
85
- const viewProjection = new ViewProjection(jsonSchema, view);
86
- const fieldId = viewProjection.getFieldId(initialPivotColumn);
87
- if (fieldId) {
88
- kanban.columnFieldId = fieldId;
89
- }
90
- }
91
- return { kanban, schema };
92
- } else {
93
- const { schema: taskSchema, stateOptions } = createDefaultTaskSchema();
94
- const [schema] = await space.db.schemaRegistry.register([taskSchema]);
95
-
96
- const view = createView({
97
- name: "Kanban's card view",
98
- typename: schema.typename,
99
- jsonSchema: schema.jsonSchema,
100
- fields: ['title', 'description'],
101
- });
102
-
103
- const viewProjection = new ViewProjection(schema.jsonSchema, view);
104
-
105
- // Set description field to Markdown format.
106
- const descriptionFieldId = viewProjection.getFieldId('description');
107
- if (descriptionFieldId) {
108
- const fieldProjection = viewProjection.getFieldProjection(descriptionFieldId);
109
- if (fieldProjection) {
110
- viewProjection.setFieldProjection({
111
- ...fieldProjection,
112
- props: { ...fieldProjection.props, format: FormatEnum.Markdown },
113
- });
114
- }
115
- }
116
-
117
- const initialPivotField = 'state';
118
- viewProjection.setFieldProjection({
119
- field: {
120
- id: createFieldId(),
121
- path: initialPivotField as JsonProp,
122
- size: 150,
123
- },
124
- props: {
125
- property: initialPivotField as JsonProp,
126
- type: TypeEnum.String,
127
- format: FormatEnum.SingleSelect,
128
- title: capitalize(initialPivotField),
129
- options: stateOptions,
130
- },
131
- });
132
-
133
- const fieldId = viewProjection.getFieldId(initialPivotField);
134
- invariant(fieldId);
135
-
136
- const kanban = live(KanbanType, { cardView: makeRef(view), columnFieldId: fieldId });
137
- return { kanban, schema };
138
- }
139
- };
@@ -1,13 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import type { Locator, Page } from '@playwright/test';
6
-
7
- export class KanbanManager {
8
- private readonly _page: Page;
9
-
10
- constructor(readonly locator: Locator) {
11
- this._page = locator.page();
12
- }
13
- }
@@ -1,18 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { nxE2EPreset } from '@nx/playwright/preset';
6
- import { defineConfig } from '@playwright/test';
7
-
8
- import { e2ePreset } from '@dxos/test-utils/playwright';
9
-
10
- export default defineConfig({
11
- ...nxE2EPreset(__filename, { testDir: __dirname }),
12
- ...e2ePreset(__dirname),
13
- webServer: {
14
- command: 'pnpm -w nx storybook-e2e stories',
15
- port: 9009,
16
- reuseExistingServer: !process.env.CI,
17
- },
18
- });
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2021 DXOS.org
3
- //
4
-
5
- import { test } from '@playwright/test';
6
-
7
- test.describe('Kanban', () => {});