@dxos/plugin-kanban 0.7.4 → 0.7.5-labs.071a3e2
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.
- package/dist/lib/browser/chunk-7PFZLUDZ.mjs +72 -0
- package/dist/lib/browser/chunk-7PFZLUDZ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +66 -145
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-4SJJSDOD.mjs +76 -0
- package/dist/lib/browser/intent-resolver-4SJJSDOD.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-surface-5WOH5E2K.mjs +240 -0
- package/dist/lib/browser/react-surface-5WOH5E2K.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +11 -0
- package/dist/lib/node/chunk-IR3NCB4Y.cjs +94 -0
- package/dist/lib/node/chunk-IR3NCB4Y.cjs.map +7 -0
- package/dist/lib/node/index.cjs +62 -133
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/intent-resolver-X3NB4IA6.cjs +90 -0
- package/dist/lib/node/intent-resolver-X3NB4IA6.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react-surface-A5TP26JG.cjs +258 -0
- package/dist/lib/node/react-surface-A5TP26JG.cjs.map +7 -0
- package/dist/lib/node/{types/index.cjs → types.cjs} +7 -10
- package/dist/lib/node/types.cjs.map +7 -0
- package/dist/lib/node-esm/chunk-LUAZTJHF.mjs +74 -0
- package/dist/lib/node-esm/chunk-LUAZTJHF.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +66 -145
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/intent-resolver-KFSXWDSV.mjs +77 -0
- package/dist/lib/node-esm/intent-resolver-KFSXWDSV.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-surface-W4HLVD2O.mjs +241 -0
- package/dist/lib/node-esm/react-surface-W4HLVD2O.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +12 -0
- package/dist/types/src/KanbanPlugin.d.ts +1 -3
- package/dist/types/src/KanbanPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +3 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts +4 -0
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts +4 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/components/KanbanContainer.d.ts +7 -0
- package/dist/types/src/components/KanbanContainer.d.ts.map +1 -0
- package/dist/types/src/components/KanbanViewEditor.d.ts +8 -0
- package/dist/types/src/components/KanbanViewEditor.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +2 -3
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +32 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +67 -0
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +21 -31
- package/src/KanbanPlugin.tsx +41 -101
- package/src/capabilities/index.ts +8 -0
- package/src/capabilities/intent-resolver.ts +45 -0
- package/src/capabilities/react-surface.tsx +28 -0
- package/src/components/KanbanContainer.tsx +80 -0
- package/src/components/KanbanViewEditor.tsx +106 -0
- package/src/components/index.ts +3 -4
- package/src/index.ts +1 -4
- package/src/meta.ts +4 -2
- package/src/translations.ts +8 -2
- package/src/types.ts +75 -0
- package/dist/lib/browser/KanbanMain-I5TMXNIY.mjs +0 -444
- package/dist/lib/browser/KanbanMain-I5TMXNIY.mjs.map +0 -7
- package/dist/lib/browser/chunk-4Y4TZ47E.mjs +0 -47
- package/dist/lib/browser/chunk-4Y4TZ47E.mjs.map +0 -7
- package/dist/lib/browser/chunk-LG4OMN5S.mjs +0 -18
- package/dist/lib/browser/chunk-LG4OMN5S.mjs.map +0 -7
- package/dist/lib/browser/meta.mjs +0 -9
- package/dist/lib/browser/types/index.mjs +0 -14
- package/dist/lib/node/KanbanMain-4OWAWTS4.cjs +0 -453
- package/dist/lib/node/KanbanMain-4OWAWTS4.cjs.map +0 -7
- package/dist/lib/node/chunk-LTR4WYI2.cjs +0 -67
- package/dist/lib/node/chunk-LTR4WYI2.cjs.map +0 -7
- package/dist/lib/node/chunk-MBAGHRFM.cjs +0 -41
- package/dist/lib/node/chunk-MBAGHRFM.cjs.map +0 -7
- package/dist/lib/node/meta.cjs +0 -30
- package/dist/lib/node/meta.cjs.map +0 -7
- package/dist/lib/node/types/index.cjs.map +0 -7
- package/dist/lib/node-esm/KanbanMain-PJC2JMJH.mjs +0 -445
- package/dist/lib/node-esm/KanbanMain-PJC2JMJH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2ZBX5F7L.mjs +0 -48
- package/dist/lib/node-esm/chunk-2ZBX5F7L.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OTZHYV3S.mjs +0 -20
- package/dist/lib/node-esm/chunk-OTZHYV3S.mjs.map +0 -7
- package/dist/lib/node-esm/meta.mjs +0 -10
- package/dist/lib/node-esm/meta.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -15
- package/dist/lib/node-esm/types/index.mjs.map +0 -7
- package/dist/types/src/components/KanbanBoard.d.ts +0 -6
- package/dist/types/src/components/KanbanBoard.d.ts.map +0 -1
- package/dist/types/src/components/KanbanCard.d.ts +0 -9
- package/dist/types/src/components/KanbanCard.d.ts.map +0 -1
- package/dist/types/src/components/KanbanColumn.d.ts +0 -14
- package/dist/types/src/components/KanbanColumn.d.ts.map +0 -1
- package/dist/types/src/components/KanbanMain.d.ts +0 -7
- package/dist/types/src/components/KanbanMain.d.ts.map +0 -1
- package/dist/types/src/components/util.d.ts +0 -7
- package/dist/types/src/components/util.d.ts.map +0 -1
- package/dist/types/src/stories/testing.d.ts +0 -19
- package/dist/types/src/stories/testing.d.ts.map +0 -1
- package/dist/types/src/types/index.d.ts +0 -3
- package/dist/types/src/types/index.d.ts.map +0 -1
- package/dist/types/src/types/kanban.d.ts +0 -76
- package/dist/types/src/types/kanban.d.ts.map +0 -1
- package/dist/types/src/types/types.d.ts +0 -18
- package/dist/types/src/types/types.d.ts.map +0 -1
- package/src/components/KanbanBoard.tsx +0 -195
- package/src/components/KanbanCard.tsx +0 -82
- package/src/components/KanbanColumn.tsx +0 -143
- package/src/components/KanbanMain.tsx +0 -37
- package/src/components/util.ts +0 -38
- package/src/stories/testing.ts +0 -29
- package/src/types/index.ts +0 -6
- package/src/types/kanban.ts +0 -22
- package/src/types/types.ts +0 -57
- /package/dist/lib/browser/{meta.mjs.map → types.mjs.map} +0 -0
- /package/dist/lib/{browser/types/index.mjs.map → node-esm/types.mjs.map} +0 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
KANBAN_PLUGIN,
|
|
4
|
+
KanbanAction,
|
|
5
|
+
isKanban
|
|
6
|
+
} from "./chunk-LUAZTJHF.mjs";
|
|
7
|
+
|
|
8
|
+
// packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
|
|
9
|
+
import React3 from "react";
|
|
10
|
+
import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
|
|
11
|
+
|
|
12
|
+
// packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx
|
|
13
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
14
|
+
import { invariant } from "@dxos/invariant";
|
|
15
|
+
import { useGlobalFilteredObjects } from "@dxos/plugin-search";
|
|
16
|
+
import { Filter, useQuery, getSpace, create } from "@dxos/react-client/echo";
|
|
17
|
+
import { useKanbanModel, Kanban } from "@dxos/react-ui-kanban";
|
|
18
|
+
import { StackItem } from "@dxos/react-ui-stack";
|
|
19
|
+
import { ViewProjection } from "@dxos/schema";
|
|
20
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanContainer.tsx";
|
|
21
|
+
var KanbanContainer = ({ kanban }) => {
|
|
22
|
+
const [cardSchema, setCardSchema] = useState();
|
|
23
|
+
const [projection, setProjection] = useState();
|
|
24
|
+
const space = getSpace(kanban);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (kanban.cardView?.target?.query?.type && space) {
|
|
27
|
+
const query = space.db.schemaRegistry.query({
|
|
28
|
+
typename: kanban.cardView.target.query.type
|
|
29
|
+
});
|
|
30
|
+
const unsubscribe = query.subscribe(() => {
|
|
31
|
+
const [schema] = query.results;
|
|
32
|
+
if (schema) {
|
|
33
|
+
setCardSchema(schema);
|
|
34
|
+
}
|
|
35
|
+
}, {
|
|
36
|
+
fire: true
|
|
37
|
+
});
|
|
38
|
+
return unsubscribe;
|
|
39
|
+
}
|
|
40
|
+
}, [
|
|
41
|
+
kanban.cardView?.target?.query,
|
|
42
|
+
space
|
|
43
|
+
]);
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (kanban.cardView?.target && cardSchema) {
|
|
46
|
+
setProjection(new ViewProjection(cardSchema, kanban.cardView.target));
|
|
47
|
+
}
|
|
48
|
+
}, [
|
|
49
|
+
kanban.cardView?.target,
|
|
50
|
+
cardSchema,
|
|
51
|
+
JSON.stringify(cardSchema?.jsonSchema)
|
|
52
|
+
]);
|
|
53
|
+
const objects = useQuery(space, cardSchema ? Filter.schema(cardSchema) : Filter.nothing());
|
|
54
|
+
const filteredObjects = useGlobalFilteredObjects(objects);
|
|
55
|
+
const model = useKanbanModel({
|
|
56
|
+
kanban,
|
|
57
|
+
cardSchema,
|
|
58
|
+
projection,
|
|
59
|
+
items: filteredObjects
|
|
60
|
+
});
|
|
61
|
+
const handleAddCard = useCallback((columnValue) => {
|
|
62
|
+
const path = model?.columnFieldPath;
|
|
63
|
+
if (space && cardSchema && path) {
|
|
64
|
+
space.db.add(create(cardSchema, {
|
|
65
|
+
[path]: columnValue
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
}, [
|
|
69
|
+
space,
|
|
70
|
+
cardSchema,
|
|
71
|
+
model
|
|
72
|
+
]);
|
|
73
|
+
const handleRemoveCard = useCallback((card) => {
|
|
74
|
+
invariant(space, void 0, {
|
|
75
|
+
F: __dxlog_file,
|
|
76
|
+
L: 65,
|
|
77
|
+
S: void 0,
|
|
78
|
+
A: [
|
|
79
|
+
"space",
|
|
80
|
+
""
|
|
81
|
+
]
|
|
82
|
+
});
|
|
83
|
+
space.db.remove(card);
|
|
84
|
+
}, [
|
|
85
|
+
space
|
|
86
|
+
]);
|
|
87
|
+
return /* @__PURE__ */ React.createElement(StackItem.Content, {
|
|
88
|
+
toolbar: false
|
|
89
|
+
}, model ? /* @__PURE__ */ React.createElement(Kanban, {
|
|
90
|
+
model,
|
|
91
|
+
onAddCard: handleAddCard,
|
|
92
|
+
onRemoveCard: handleRemoveCard
|
|
93
|
+
}) : /* @__PURE__ */ React.createElement("span", null, "Loading"));
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx
|
|
97
|
+
import React2, { useCallback as useCallback2, useEffect as useEffect2, useMemo, useState as useState2 } from "react";
|
|
98
|
+
import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
99
|
+
import { FormatEnum } from "@dxos/echo-schema";
|
|
100
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
101
|
+
import { Filter as Filter2, getSpace as getSpace2, useQuery as useQuery2 } from "@dxos/react-client/echo";
|
|
102
|
+
import { ViewEditor, Form, SelectInput } from "@dxos/react-ui-form";
|
|
103
|
+
import { KanbanSettingsSchema } from "@dxos/react-ui-kanban";
|
|
104
|
+
import { ViewType, ViewProjection as ViewProjection2 } from "@dxos/schema";
|
|
105
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-kanban/src/components/KanbanViewEditor.tsx";
|
|
106
|
+
var KanbanViewEditor = ({ kanban }) => {
|
|
107
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
108
|
+
const space = getSpace2(kanban);
|
|
109
|
+
const [schema, setSchema] = useState2();
|
|
110
|
+
useEffect2(() => {
|
|
111
|
+
if (space && kanban?.cardView?.target?.query?.type) {
|
|
112
|
+
const query = space.db.schemaRegistry.query({
|
|
113
|
+
typename: kanban.cardView.target.query.type
|
|
114
|
+
});
|
|
115
|
+
const unsubscribe = query.subscribe(() => {
|
|
116
|
+
const [schema2] = query.results;
|
|
117
|
+
if (schema2) {
|
|
118
|
+
setSchema(schema2);
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
fire: true
|
|
122
|
+
});
|
|
123
|
+
return unsubscribe;
|
|
124
|
+
}
|
|
125
|
+
}, [
|
|
126
|
+
space,
|
|
127
|
+
kanban?.cardView?.target?.query?.type
|
|
128
|
+
]);
|
|
129
|
+
const views = useQuery2(space, Filter2.schema(ViewType));
|
|
130
|
+
const currentTypename = useMemo(() => kanban?.cardView?.target?.query?.type, [
|
|
131
|
+
kanban?.cardView?.target?.query?.type
|
|
132
|
+
]);
|
|
133
|
+
const updateViewTypename = useCallback2((newTypename) => {
|
|
134
|
+
invariant2(schema, void 0, {
|
|
135
|
+
F: __dxlog_file2,
|
|
136
|
+
L: 45,
|
|
137
|
+
S: void 0,
|
|
138
|
+
A: [
|
|
139
|
+
"schema",
|
|
140
|
+
""
|
|
141
|
+
]
|
|
142
|
+
});
|
|
143
|
+
const matchingViews = views.filter((view) => view.query.type === currentTypename);
|
|
144
|
+
for (const view of matchingViews) {
|
|
145
|
+
view.query.type = newTypename;
|
|
146
|
+
}
|
|
147
|
+
schema.updateTypename(newTypename);
|
|
148
|
+
}, [
|
|
149
|
+
views,
|
|
150
|
+
schema
|
|
151
|
+
]);
|
|
152
|
+
const handleDelete = useCallback2((fieldId) => dispatch?.(createIntent(KanbanAction.DeleteCardField, {
|
|
153
|
+
kanban,
|
|
154
|
+
fieldId
|
|
155
|
+
})), [
|
|
156
|
+
dispatch,
|
|
157
|
+
kanban
|
|
158
|
+
]);
|
|
159
|
+
const projection = useMemo(() => {
|
|
160
|
+
if (kanban?.cardView?.target && schema) {
|
|
161
|
+
return new ViewProjection2(schema, kanban.cardView.target);
|
|
162
|
+
}
|
|
163
|
+
}, [
|
|
164
|
+
kanban?.cardView?.target,
|
|
165
|
+
schema,
|
|
166
|
+
JSON.stringify(schema)
|
|
167
|
+
]);
|
|
168
|
+
const selectFields = useMemo(() => {
|
|
169
|
+
if (!projection) {
|
|
170
|
+
return [];
|
|
171
|
+
}
|
|
172
|
+
return projection.getFieldProjections().filter((field) => field.props.format === FormatEnum.SingleSelect).map(({ field }) => ({
|
|
173
|
+
value: field.id,
|
|
174
|
+
label: field.path
|
|
175
|
+
}));
|
|
176
|
+
}, [
|
|
177
|
+
projection
|
|
178
|
+
]);
|
|
179
|
+
const onSave = useCallback2((values) => {
|
|
180
|
+
kanban.columnFieldId = values.columnFieldId;
|
|
181
|
+
}, [
|
|
182
|
+
kanban
|
|
183
|
+
]);
|
|
184
|
+
const initialValues = useMemo(() => ({
|
|
185
|
+
columnFieldId: kanban.columnFieldId
|
|
186
|
+
}), [
|
|
187
|
+
kanban
|
|
188
|
+
]);
|
|
189
|
+
const custom = useMemo(() => ({
|
|
190
|
+
columnFieldId: (props) => /* @__PURE__ */ React2.createElement(SelectInput, {
|
|
191
|
+
...props,
|
|
192
|
+
options: selectFields
|
|
193
|
+
})
|
|
194
|
+
}), [
|
|
195
|
+
selectFields
|
|
196
|
+
]);
|
|
197
|
+
if (!space || !schema || !kanban.cardView?.target) {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Form, {
|
|
201
|
+
schema: KanbanSettingsSchema,
|
|
202
|
+
values: initialValues,
|
|
203
|
+
onSave,
|
|
204
|
+
autoSave: true,
|
|
205
|
+
Custom: custom
|
|
206
|
+
}), /* @__PURE__ */ React2.createElement(ViewEditor, {
|
|
207
|
+
registry: space.db.schemaRegistry,
|
|
208
|
+
schema,
|
|
209
|
+
view: kanban.cardView.target,
|
|
210
|
+
onTypenameChanged: updateViewTypename,
|
|
211
|
+
onDelete: handleDelete
|
|
212
|
+
}));
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
// packages/plugins/plugin-kanban/src/capabilities/react-surface.tsx
|
|
216
|
+
var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
217
|
+
createSurface({
|
|
218
|
+
id: `${KANBAN_PLUGIN}/kanban`,
|
|
219
|
+
role: [
|
|
220
|
+
"article",
|
|
221
|
+
"section"
|
|
222
|
+
],
|
|
223
|
+
filter: (data) => isKanban(data.subject),
|
|
224
|
+
component: ({ data, role }) => /* @__PURE__ */ React3.createElement(KanbanContainer, {
|
|
225
|
+
kanban: data.subject,
|
|
226
|
+
role
|
|
227
|
+
})
|
|
228
|
+
}),
|
|
229
|
+
createSurface({
|
|
230
|
+
id: `${KANBAN_PLUGIN}/settings`,
|
|
231
|
+
role: "complementary--settings",
|
|
232
|
+
filter: (data) => isKanban(data.subject),
|
|
233
|
+
component: ({ data }) => /* @__PURE__ */ React3.createElement(KanbanViewEditor, {
|
|
234
|
+
kanban: data.subject
|
|
235
|
+
})
|
|
236
|
+
})
|
|
237
|
+
]);
|
|
238
|
+
export {
|
|
239
|
+
react_surface_default as default
|
|
240
|
+
};
|
|
241
|
+
//# sourceMappingURL=react-surface-W4HLVD2O.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 React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { type KanbanType } from '@dxos/react-ui-kanban';\n\nimport { KanbanContainer, KanbanViewEditor } from '../components';\nimport { KANBAN_PLUGIN } from '../meta';\nimport { isKanban } 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}/settings`,\n role: 'complementary--settings',\n filter: (data): data is { subject: KanbanType } => isKanban(data.subject),\n component: ({ data }) => <KanbanViewEditor kanban={data.subject} />,\n }),\n ]);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { type EchoSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useGlobalFilteredObjects } from '@dxos/plugin-search';\nimport { Filter, useQuery, getSpace, create } 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\nexport const KanbanContainer = ({ kanban }: { kanban: KanbanType; role: string }) => {\n const [cardSchema, setCardSchema] = useState<EchoSchema>();\n const [projection, setProjection] = useState<ViewProjection>();\n const space = getSpace(kanban);\n\n useEffect(() => {\n if (kanban.cardView?.target?.query?.type && space) {\n const query = space.db.schemaRegistry.query({ typename: kanban.cardView.target.query.type });\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 && cardSchema) {\n setProjection(new ViewProjection(cardSchema, 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, cardSchema, JSON.stringify(cardSchema?.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 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 space.db.add(create(cardSchema, { [path]: columnValue }));\n }\n },\n [space, cardSchema, model],\n );\n\n const handleRemoveCard = useCallback(\n (card: { id: string }) => {\n invariant(space);\n space.db.remove(card);\n },\n [space],\n );\n\n return (\n <StackItem.Content toolbar={false}>\n {model ? (\n <Kanban model={model} onAddCard={handleAddCard} onRemoveCard={handleRemoveCard} />\n ) : (\n <span>Loading</span>\n )}\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { type EchoSchema, FormatEnum } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { Filter, getSpace, useQuery } 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 space = getSpace(kanban);\n\n const [schema, setSchema] = useState<EchoSchema | undefined>();\n\n useEffect(() => {\n if (space && kanban?.cardView?.target?.query?.type) {\n const query = space.db.schemaRegistry.query({ typename: kanban.cardView.target.query.type });\n const unsubscribe = query.subscribe(\n () => {\n const [schema] = query.results;\n if (schema) {\n setSchema(schema);\n }\n },\n { fire: true },\n );\n return unsubscribe;\n }\n }, [space, kanban?.cardView?.target?.query?.type]);\n\n const views = useQuery(space, Filter.schema(ViewType));\n const currentTypename = useMemo(() => kanban?.cardView?.target?.query?.type, [kanban?.cardView?.target?.query?.type]);\n const updateViewTypename = useCallback(\n (newTypename: string) => {\n invariant(schema);\n const matchingViews = views.filter((view) => view.query.type === currentTypename);\n for (const view of matchingViews) {\n view.query.type = newTypename;\n }\n schema.updateTypename(newTypename);\n },\n [views, schema],\n );\n\n const handleDelete = useCallback(\n (fieldId: string) => dispatch?.(createIntent(KanbanAction.DeleteCardField, { kanban, fieldId })),\n [dispatch, kanban],\n );\n\n const projection = useMemo(() => {\n if (kanban?.cardView?.target && schema) {\n return new ViewProjection(schema, kanban.cardView.target);\n }\n }, [kanban?.cardView?.target, schema, JSON.stringify(schema)]);\n\n const selectFields = useMemo(() => {\n if (!projection) {\n return [];\n }\n\n return projection\n .getFieldProjections()\n .filter((field) => field.props.format === FormatEnum.SingleSelect)\n .map(({ field }) => ({ value: field.id, label: field.path }));\n }, [projection]);\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]);\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={updateViewTypename}\n onDelete={handleDelete}\n />\n </>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "Capabilities", "contributes", "createSurface", "React", "useCallback", "useEffect", "useState", "invariant", "useGlobalFilteredObjects", "Filter", "useQuery", "getSpace", "create", "useKanbanModel", "Kanban", "StackItem", "ViewProjection", "KanbanContainer", "kanban", "cardSchema", "setCardSchema", "projection", "setProjection", "space", "cardView", "target", "query", "type", "db", "schemaRegistry", "typename", "unsubscribe", "subscribe", "schema", "results", "fire", "JSON", "stringify", "jsonSchema", "objects", "nothing", "filteredObjects", "model", "items", "handleAddCard", "columnValue", "path", "columnFieldPath", "add", "handleRemoveCard", "card", "remove", "Content", "toolbar", "onAddCard", "onRemoveCard", "span", "React", "useCallback", "useEffect", "useMemo", "useState", "createIntent", "useIntentDispatcher", "FormatEnum", "invariant", "Filter", "getSpace", "useQuery", "ViewEditor", "Form", "SelectInput", "KanbanSettingsSchema", "ViewType", "ViewProjection", "KanbanViewEditor", "kanban", "dispatchPromise", "dispatch", "useIntentDispatcher", "space", "getSpace", "schema", "setSchema", "useState", "useEffect", "cardView", "target", "query", "type", "db", "schemaRegistry", "typename", "unsubscribe", "subscribe", "results", "fire", "views", "useQuery", "Filter", "ViewType", "currentTypename", "useMemo", "updateViewTypename", "useCallback", "newTypename", "invariant", "matchingViews", "filter", "view", "updateTypename", "handleDelete", "fieldId", "createIntent", "KanbanAction", "DeleteCardField", "projection", "ViewProjection", "JSON", "stringify", "selectFields", "getFieldProjections", "field", "props", "format", "FormatEnum", "SingleSelect", "map", "value", "id", "label", "path", "onSave", "values", "columnFieldId", "initialValues", "custom", "React", "SelectInput", "options", "Form", "KanbanSettingsSchema", "autoSave", "Custom", "ViewEditor", "registry", "onTypenameChanged", "onDelete", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "KANBAN_PLUGIN", "role", "filter", "data", "isKanban", "subject", "component", "React", "KanbanContainer", "kanban", "KanbanViewEditor"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
KanbanAction,
|
|
4
|
+
createKanban,
|
|
5
|
+
isKanban
|
|
6
|
+
} from "./chunk-LUAZTJHF.mjs";
|
|
7
|
+
export {
|
|
8
|
+
KanbanAction,
|
|
9
|
+
createKanban,
|
|
10
|
+
isKanban
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=types.mjs.map
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { type KanbanPluginProvides } from './types';
|
|
3
|
-
export declare const KanbanPlugin: () => PluginDefinition<KanbanPluginProvides>;
|
|
1
|
+
export declare const KanbanPlugin: () => import("@dxos/app-framework").Plugin;
|
|
4
2
|
//# sourceMappingURL=KanbanPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanPlugin.d.ts","sourceRoot":"","sources":["../../../src/KanbanPlugin.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KanbanPlugin.d.ts","sourceRoot":"","sources":["../../../src/KanbanPlugin.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,YAAY,4CAoCrB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
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 ReactSurface: (props?: unknown) => Promise<() => Promise<import("@dxos/app-framework").Capability<import("@dxos/app-framework").Capabilities.ReactSurface> | import("@dxos/app-framework").AnyCapability[]>>;
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,kMAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,gMAAwC,CAAC"}
|
|
@@ -0,0 +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,wBAgCK"}
|
|
@@ -0,0 +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;;AAO/E,wBAcK"}
|
|
@@ -0,0 +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;AAIhF,eAAO,MAAM,eAAe,eAAgB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,sBAiE/E,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type KanbanType } from '@dxos/react-ui-kanban';
|
|
3
|
+
type KanbanViewEditorProps = {
|
|
4
|
+
kanban: KanbanType;
|
|
5
|
+
};
|
|
6
|
+
export declare const KanbanViewEditor: ({ kanban }: KanbanViewEditorProps) => React.JSX.Element | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=KanbanViewEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanViewEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/KanbanViewEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAOzE,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,6BAuFjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC"}
|
package/dist/types/src/meta.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare const KANBAN_PLUGIN = "dxos.org/plugin/kanban";
|
|
2
|
-
declare const
|
|
2
|
+
export declare const meta: {
|
|
3
3
|
id: string;
|
|
4
4
|
name: string;
|
|
5
5
|
description: string;
|
|
6
6
|
icon: string;
|
|
7
7
|
source: string;
|
|
8
8
|
tags: string[];
|
|
9
|
+
screenshots: string[];
|
|
9
10
|
};
|
|
10
|
-
export default _default;
|
|
11
11
|
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,2BAA2B,CAAC
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,2BAA2B,CAAC;AAEtD,eAAO,MAAM,IAAI;;;;;;;;CASK,CAAC"}
|
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
2
|
'en-US': {
|
|
3
|
+
[x: string]: {
|
|
4
|
+
'typename label': string;
|
|
5
|
+
'plugin name'?: undefined;
|
|
6
|
+
'kanban title label'?: undefined;
|
|
7
|
+
'kanban title placeholder'?: 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
|
+
'create kanban label'?: undefined;
|
|
17
|
+
'card field deleted label'?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
'plugin name': string;
|
|
20
|
+
'kanban title label': string;
|
|
21
|
+
'kanban title placeholder': string;
|
|
22
|
+
'column title label': string;
|
|
23
|
+
'column title placeholder': string;
|
|
24
|
+
'item title label': string;
|
|
25
|
+
'item title placeholder': string;
|
|
26
|
+
'add column label': string;
|
|
27
|
+
'add item label': string;
|
|
28
|
+
'delete column label': string;
|
|
29
|
+
'delete item label': string;
|
|
30
|
+
'create kanban label': string;
|
|
31
|
+
'card field deleted label': string;
|
|
32
|
+
'typename label'?: undefined;
|
|
33
|
+
};
|
|
3
34
|
"dxos.org/plugin/kanban": {
|
|
4
35
|
'plugin name': string;
|
|
5
36
|
'kanban title label': string;
|
|
@@ -13,6 +44,7 @@ declare const _default: {
|
|
|
13
44
|
'delete column label': string;
|
|
14
45
|
'delete item label': string;
|
|
15
46
|
'create kanban label': string;
|
|
47
|
+
'card field deleted label': string;
|
|
16
48
|
};
|
|
17
49
|
};
|
|
18
50
|
}[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wBAuBE"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { S } from '@dxos/echo-schema';
|
|
2
|
+
import { type Space } from '@dxos/react-client/echo';
|
|
3
|
+
import { KanbanType } from '@dxos/react-ui-kanban';
|
|
4
|
+
/**
|
|
5
|
+
* Kanban data model.
|
|
6
|
+
* A Kanban board is a collection of columns, each of which contains a collection of items.
|
|
7
|
+
* The layout of columns and items is controlled by models.
|
|
8
|
+
* The underlying data model may be represented by direct object relationships
|
|
9
|
+
* (e.g., a column object containing an array of ordered items) or projections constructed
|
|
10
|
+
* by the model (e.g., a query of items based on metadata within a column object).
|
|
11
|
+
*/
|
|
12
|
+
export declare namespace KanbanAction {
|
|
13
|
+
const Create_base: S.TaggedClass<Create, "dxos.org/plugin/kanban/action/create", {
|
|
14
|
+
readonly _tag: S.tag<"dxos.org/plugin/kanban/action/create">;
|
|
15
|
+
} & {
|
|
16
|
+
input: S.Struct<{
|
|
17
|
+
name: S.optional<typeof S.String>;
|
|
18
|
+
space: S.Schema<Space, Space, never>;
|
|
19
|
+
}>;
|
|
20
|
+
output: S.Struct<{
|
|
21
|
+
object: typeof KanbanType;
|
|
22
|
+
}>;
|
|
23
|
+
}>;
|
|
24
|
+
export class Create extends Create_base {
|
|
25
|
+
}
|
|
26
|
+
const DeleteCardField_base: S.TaggedClass<DeleteCardField, "dxos.org/plugin/kanban/action/delete-card-field", {
|
|
27
|
+
readonly _tag: S.tag<"dxos.org/plugin/kanban/action/delete-card-field">;
|
|
28
|
+
} & {
|
|
29
|
+
input: S.Struct<{
|
|
30
|
+
kanban: typeof KanbanType;
|
|
31
|
+
fieldId: typeof S.String;
|
|
32
|
+
deletionData: S.optional<S.Struct<{
|
|
33
|
+
field: S.mutable<S.Struct<{
|
|
34
|
+
id: typeof S.String;
|
|
35
|
+
path: S.Schema<import("@dxos/echo-schema").JsonPath, import("@dxos/echo-schema").JsonPath, never>;
|
|
36
|
+
visible: S.optional<typeof S.
|
|
37
|
+
/**
|
|
38
|
+
* Kanban data model.
|
|
39
|
+
* A Kanban board is a collection of columns, each of which contains a collection of items.
|
|
40
|
+
* The layout of columns and items is controlled by models.
|
|
41
|
+
* The underlying data model may be represented by direct object relationships
|
|
42
|
+
* (e.g., a column object containing an array of ordered items) or projections constructed
|
|
43
|
+
* by the model (e.g., a query of items based on metadata within a column object).
|
|
44
|
+
*/
|
|
45
|
+
Boolean>;
|
|
46
|
+
size: S.optional<typeof S.Number>;
|
|
47
|
+
referencePath: S.optional<S.Schema<import("@dxos/echo-schema").JsonPath, import("@dxos/echo-schema").JsonPath, never>>;
|
|
48
|
+
}>>;
|
|
49
|
+
props: typeof S.Any;
|
|
50
|
+
index: typeof S.Number;
|
|
51
|
+
}>>;
|
|
52
|
+
}>;
|
|
53
|
+
output: typeof S.Void;
|
|
54
|
+
}>;
|
|
55
|
+
export class DeleteCardField extends DeleteCardField_base {
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
58
|
+
}
|
|
59
|
+
export interface KanbanModel {
|
|
60
|
+
root: KanbanType;
|
|
61
|
+
}
|
|
62
|
+
export type Location = {
|
|
63
|
+
idx?: number;
|
|
64
|
+
};
|
|
65
|
+
export declare const isKanban: (object: unknown) => object is KanbanType;
|
|
66
|
+
export declare const createKanban: (space: Space) => Promise<KanbanType>;
|
|
67
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,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;AAEH,yBAAiB,YAAY,CAAC;;;;;;;;;;;;IAG5B,MAAM,OAAO,MAAO,SAAQ,WAQ1B;KAAG;;;;;;;;;+BAzBoD,EAAG,MAC5D;0BAAW,EAAG,MAAM;6BAEJ,EAAG,QAAQ,QAAO;oBAEpC;;;;;;;uBAOG;oBAEH,OARC;0BAAY,EAAG,QACd,QAAO,EAAG,MAAM;mCAAqB,EAAG,QAAQ,CAAC,EAAG,MAAK;;;;;;;;IAoBzD,MAAM,OAAO,eAAgB,SAAQ,oBAgBnC;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,UAAiB,KAAK,wBAG9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"5.7.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-kanban",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.5-labs.071a3e2",
|
|
4
4
|
"description": "Kanban DXOS Surface plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -13,11 +13,6 @@
|
|
|
13
13
|
"browser": "./dist/lib/browser/index.mjs",
|
|
14
14
|
"node": "./dist/lib/node-esm/index.mjs"
|
|
15
15
|
},
|
|
16
|
-
"./meta": {
|
|
17
|
-
"types": "./dist/types/src/meta.d.ts",
|
|
18
|
-
"browser": "./dist/lib/browser/meta.mjs",
|
|
19
|
-
"node": "./dist/lib/node-esm/meta.mjs"
|
|
20
|
-
},
|
|
21
16
|
"./types": {
|
|
22
17
|
"types": "./dist/types/src/types/index.d.ts",
|
|
23
18
|
"browser": "./dist/lib/browser/types/index.mjs",
|
|
@@ -27,9 +22,6 @@
|
|
|
27
22
|
"types": "dist/types/src/index.d.ts",
|
|
28
23
|
"typesVersions": {
|
|
29
24
|
"*": {
|
|
30
|
-
"meta": [
|
|
31
|
-
"dist/types/src/meta.d.ts"
|
|
32
|
-
],
|
|
33
25
|
"types": [
|
|
34
26
|
"dist/types/src/types/index.d.ts"
|
|
35
27
|
]
|
|
@@ -40,41 +32,39 @@
|
|
|
40
32
|
"src"
|
|
41
33
|
],
|
|
42
34
|
"dependencies": {
|
|
43
|
-
"@dnd-kit/core": "^6.0.5",
|
|
44
|
-
"@dnd-kit/modifiers": "^6.0.0",
|
|
45
|
-
"@dnd-kit/sortable": "^7.0.1",
|
|
46
|
-
"@dnd-kit/utilities": "^3.2.0",
|
|
47
35
|
"@effect/schema": "^0.75.5",
|
|
48
36
|
"@preact/signals-core": "^1.6.0",
|
|
49
|
-
"@dxos/app-framework": "0.7.
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/plugin-client": "0.7.
|
|
53
|
-
"@dxos/plugin-
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/
|
|
58
|
-
"@dxos/
|
|
37
|
+
"@dxos/app-framework": "0.7.5-labs.071a3e2",
|
|
38
|
+
"@dxos/echo-schema": "0.7.5-labs.071a3e2",
|
|
39
|
+
"@dxos/async": "0.7.5-labs.071a3e2",
|
|
40
|
+
"@dxos/plugin-client": "0.7.5-labs.071a3e2",
|
|
41
|
+
"@dxos/plugin-search": "0.7.5-labs.071a3e2",
|
|
42
|
+
"@dxos/plugin-space": "0.7.5-labs.071a3e2",
|
|
43
|
+
"@dxos/invariant": "0.7.5-labs.071a3e2",
|
|
44
|
+
"@dxos/plugin-graph": "0.7.5-labs.071a3e2",
|
|
45
|
+
"@dxos/random": "0.7.5-labs.071a3e2",
|
|
46
|
+
"@dxos/react-client": "0.7.5-labs.071a3e2",
|
|
47
|
+
"@dxos/react-ui-form": "0.7.5-labs.071a3e2",
|
|
48
|
+
"@dxos/react-ui-kanban": "0.7.5-labs.071a3e2",
|
|
49
|
+
"@dxos/react-ui-stack": "0.7.5-labs.071a3e2",
|
|
50
|
+
"@dxos/schema": "0.7.5-labs.071a3e2",
|
|
51
|
+
"@dxos/util": "0.7.5-labs.071a3e2"
|
|
59
52
|
},
|
|
60
53
|
"devDependencies": {
|
|
61
|
-
"@phosphor-icons/react": "^2.1.5",
|
|
62
54
|
"@types/react": "~18.2.0",
|
|
63
55
|
"@types/react-dom": "~18.2.0",
|
|
64
56
|
"react": "~18.2.0",
|
|
65
57
|
"react-dom": "~18.2.0",
|
|
66
58
|
"vite": "5.4.7",
|
|
67
|
-
"@dxos/
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/react-ui-theme": "0.7.
|
|
70
|
-
"@dxos/storybook-utils": "0.7.4"
|
|
59
|
+
"@dxos/react-ui": "0.7.5-labs.071a3e2",
|
|
60
|
+
"@dxos/storybook-utils": "0.7.5-labs.071a3e2",
|
|
61
|
+
"@dxos/react-ui-theme": "0.7.5-labs.071a3e2"
|
|
71
62
|
},
|
|
72
63
|
"peerDependencies": {
|
|
73
|
-
"@phosphor-icons/react": "^2.1.5",
|
|
74
64
|
"react": "~18.2.0",
|
|
75
65
|
"react-dom": "~18.2.0",
|
|
76
|
-
"@dxos/react-ui": "0.7.
|
|
77
|
-
"@dxos/react-ui-theme": "0.7.
|
|
66
|
+
"@dxos/react-ui": "0.7.5-labs.071a3e2",
|
|
67
|
+
"@dxos/react-ui-theme": "0.7.5-labs.071a3e2"
|
|
78
68
|
},
|
|
79
69
|
"publishConfig": {
|
|
80
70
|
"access": "public"
|