@dxos/plugin-pipeline 0.8.4-main.52d7546f51 → 0.8.4-main.7996785055

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 (104) hide show
  1. package/dist/lib/browser/PipelineContainer-LY2P4JPA.mjs +345 -0
  2. package/dist/lib/browser/PipelineContainer-LY2P4JPA.mjs.map +7 -0
  3. package/dist/lib/browser/{PipelineSettings-YSGSJHBT.mjs → PipelineObjectSettings-QFMIKJH5.mjs} +71 -63
  4. package/dist/lib/browser/PipelineObjectSettings-QFMIKJH5.mjs.map +7 -0
  5. package/dist/lib/browser/app-graph-builder-QQKBLYFD.mjs +56 -0
  6. package/dist/lib/browser/app-graph-builder-QQKBLYFD.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-QWNKLHBY.mjs → chunk-3A235GUD.mjs} +2 -9
  8. package/dist/lib/browser/{chunk-QWNKLHBY.mjs.map → chunk-3A235GUD.mjs.map} +2 -2
  9. package/dist/lib/browser/index.mjs +26 -45
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/{react-surface-JMMCTIL3.mjs → react-surface-QVPKOGEI.mjs} +17 -13
  13. package/dist/lib/browser/react-surface-QVPKOGEI.mjs.map +7 -0
  14. package/dist/lib/browser/types/index.mjs +0 -9
  15. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  16. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  17. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  18. package/dist/types/src/capabilities/index.d.ts +0 -1
  19. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +1 -1
  21. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  22. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts +9 -0
  23. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -0
  24. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +65 -0
  25. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -0
  26. package/dist/types/src/components/{PipelineComponent.stories.d.ts → PipelineComponent/PipelineComponent.stories.d.ts} +1 -0
  27. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -0
  28. package/dist/types/src/components/PipelineComponent/index.d.ts +3 -0
  29. package/dist/types/src/components/PipelineComponent/index.d.ts.map +1 -0
  30. package/dist/types/src/components/index.d.ts +1 -4
  31. package/dist/types/src/components/index.d.ts.map +1 -1
  32. package/dist/types/src/{components → containers/PipelineContainer}/PipelineContainer.d.ts +3 -4
  33. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +1 -0
  34. package/dist/types/src/{components → containers/PipelineContainer}/PipelineContainer.stories.d.ts +1 -0
  35. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +1 -0
  36. package/dist/types/src/containers/PipelineContainer/index.d.ts +3 -0
  37. package/dist/types/src/containers/PipelineContainer/index.d.ts.map +1 -0
  38. package/dist/types/src/{components/PipelineSettings.d.ts → containers/PipelineObjectSettings/PipelineObjectSettings.d.ts} +1 -2
  39. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts.map +1 -0
  40. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts +3 -0
  41. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts.map +1 -0
  42. package/dist/types/src/containers/index.d.ts +4 -0
  43. package/dist/types/src/containers/index.d.ts.map +1 -0
  44. package/dist/types/src/hooks/index.d.ts +2 -0
  45. package/dist/types/src/hooks/index.d.ts.map +1 -0
  46. package/dist/types/src/hooks/usePipelineBoardModel.d.ts +6 -0
  47. package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -0
  48. package/dist/types/src/templates/research.d.ts.map +1 -1
  49. package/dist/types/src/translations.d.ts +1 -0
  50. package/dist/types/src/translations.d.ts.map +1 -1
  51. package/dist/types/src/types/index.d.ts +0 -2
  52. package/dist/types/src/types/index.d.ts.map +1 -1
  53. package/dist/types/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +45 -41
  55. package/src/PipelinePlugin.tsx +18 -18
  56. package/src/capabilities/app-graph-builder/app-graph-builder.ts +7 -9
  57. package/src/capabilities/index.ts +0 -1
  58. package/src/capabilities/react-surface/react-surface.tsx +14 -9
  59. package/src/components/PipelineComponent/PipelineColumn.tsx +164 -0
  60. package/src/components/{PipelineComponent.stories.tsx → PipelineComponent/PipelineComponent.stories.tsx} +39 -24
  61. package/src/components/PipelineComponent/PipelineComponent.tsx +140 -0
  62. package/src/components/PipelineComponent/index.ts +6 -0
  63. package/src/components/index.ts +1 -7
  64. package/src/containers/PipelineContainer/PipelineContainer.stories.tsx +230 -0
  65. package/src/containers/PipelineContainer/PipelineContainer.tsx +86 -0
  66. package/src/containers/PipelineContainer/index.ts +7 -0
  67. package/src/{components/PipelineSettings.tsx → containers/PipelineObjectSettings/PipelineObjectSettings.tsx} +71 -58
  68. package/src/containers/PipelineObjectSettings/index.ts +7 -0
  69. package/src/containers/index.ts +8 -0
  70. package/src/hooks/index.ts +5 -0
  71. package/src/hooks/usePipelineBoardModel.ts +79 -0
  72. package/src/meta.ts +1 -1
  73. package/src/templates/research.ts +14 -15
  74. package/src/translations.ts +1 -0
  75. package/src/types/index.ts +0 -3
  76. package/dist/lib/browser/PipelineContainer-I3TPA7ZN.mjs +0 -217
  77. package/dist/lib/browser/PipelineContainer-I3TPA7ZN.mjs.map +0 -7
  78. package/dist/lib/browser/PipelineSettings-YSGSJHBT.mjs.map +0 -7
  79. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs +0 -65
  80. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs.map +0 -7
  81. package/dist/lib/browser/chunk-7GVESVYR.mjs +0 -42
  82. package/dist/lib/browser/chunk-7GVESVYR.mjs.map +0 -7
  83. package/dist/lib/browser/react-surface-JMMCTIL3.mjs.map +0 -7
  84. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -2
  85. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  86. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  87. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  88. package/dist/types/src/components/PipelineColumn.d.ts +0 -10
  89. package/dist/types/src/components/PipelineColumn.d.ts.map +0 -1
  90. package/dist/types/src/components/PipelineComponent.d.ts +0 -38
  91. package/dist/types/src/components/PipelineComponent.d.ts.map +0 -1
  92. package/dist/types/src/components/PipelineComponent.stories.d.ts.map +0 -1
  93. package/dist/types/src/components/PipelineContainer.d.ts.map +0 -1
  94. package/dist/types/src/components/PipelineContainer.stories.d.ts.map +0 -1
  95. package/dist/types/src/components/PipelineSettings.d.ts.map +0 -1
  96. package/dist/types/src/types/PipelineAction.d.ts +0 -25
  97. package/dist/types/src/types/PipelineAction.d.ts.map +0 -1
  98. package/src/capabilities/operation-resolver/index.ts +0 -5
  99. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -29
  100. package/src/components/PipelineColumn.tsx +0 -145
  101. package/src/components/PipelineComponent.tsx +0 -103
  102. package/src/components/PipelineContainer.stories.tsx +0 -226
  103. package/src/components/PipelineContainer.tsx +0 -57
  104. package/src/types/PipelineAction.ts +0 -29
@@ -0,0 +1,345 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-3A235GUD.mjs";
4
+
5
+ // src/containers/PipelineContainer/PipelineContainer.tsx
6
+ import React3, { useCallback, useEffect } from "react";
7
+ import { Capabilities } from "@dxos/app-framework";
8
+ import { useCapability } from "@dxos/app-framework/ui";
9
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
10
+ import { Surface } from "@dxos/app-framework/ui";
11
+ import { OBJECT_ACTIONS_CONTRIBUTION_ID, OBJECT_ACTIONS_CONTRIBUTION_PRIORITY, useObjectMenuItems } from "@dxos/app-toolkit/ui";
12
+ import { companionSegment } from "@dxos/app-toolkit";
13
+ import { DeckOperation } from "@dxos/plugin-deck/operations";
14
+ import { Panel as Panel2 } from "@dxos/react-ui";
15
+ import { useAttention } from "@dxos/react-ui-attention";
16
+ import { useMenu } from "@dxos/react-ui-menu";
17
+
18
+ // src/components/PipelineComponent/PipelineColumn.tsx
19
+ import { useComposedRefs } from "@radix-ui/react-compose-refs";
20
+ import * as Function from "effect/Function";
21
+ import * as Option from "effect/Option";
22
+ import React2, { forwardRef, useMemo, useRef, useState } from "react";
23
+ import { Annotation, JsonSchema, Obj as Obj2, Query, Type } from "@dxos/echo";
24
+ import { resolveSchemaWithRegistry } from "@dxos/plugin-space";
25
+ import { Filter, getSpace, useObject } from "@dxos/react-client/echo";
26
+ import { Panel, Toolbar as Toolbar2, useAsyncEffect, useTranslation as useTranslation2 } from "@dxos/react-ui";
27
+ import { Card } from "@dxos/react-ui";
28
+ import { Board as Board2, Focus, Mosaic } from "@dxos/react-ui-mosaic";
29
+ import { ProjectionModel, createEchoChangeCallback } from "@dxos/schema";
30
+
31
+ // src/components/PipelineComponent/PipelineComponent.tsx
32
+ import { useAtomValue } from "@effect-atom/atom-react";
33
+ import { createContext } from "@radix-ui/react-context";
34
+ import { Slot } from "@radix-ui/react-slot";
35
+ import React from "react";
36
+ import { Obj } from "@dxos/echo";
37
+ import { Toolbar, useTranslation } from "@dxos/react-ui";
38
+ import { Board, useBoard, useEventHandlerAdapter } from "@dxos/react-ui-mosaic";
39
+ import { composable, composableProps, slottable } from "@dxos/ui-theme";
40
+ var itemNoOp = ({ item }) => /* @__PURE__ */ React.createElement("span", null, item.id);
41
+ var PIPELINE_ROOT = "Pipeline.Root";
42
+ var [PipelineRootContext, usePipeline] = createContext(PIPELINE_ROOT, {
43
+ Item: itemNoOp
44
+ });
45
+ var PipelineRoot = ({ children, ...contextValue }) => /* @__PURE__ */ React.createElement(PipelineRootContext, contextValue, children);
46
+ PipelineRoot.displayName = PIPELINE_ROOT;
47
+ var PIPELINE_CONTENT_NAME = "Pipeline.Content";
48
+ var PipelineContent = slottable(({ asChild, model, children, ...props }, forwardedRef) => {
49
+ const Comp = asChild ? Slot : "div";
50
+ return /* @__PURE__ */ React.createElement(Board.Root, {
51
+ model
52
+ }, /* @__PURE__ */ React.createElement(Comp, {
53
+ ...composableProps(props, {
54
+ role: "none"
55
+ }),
56
+ ref: forwardedRef
57
+ }, children));
58
+ });
59
+ PipelineContent.displayName = PIPELINE_CONTENT_NAME;
60
+ var PIPELINE_COLUMNS_NAME = "Pipeline.Columns";
61
+ var PipelineColumns = composable(({ pipeline, ...props }) => {
62
+ const { model } = useBoard(PIPELINE_COLUMNS_NAME);
63
+ const columns = useAtomValue(model.columns);
64
+ const eventHandler = useEventHandlerAdapter({
65
+ id: pipeline.id,
66
+ // TODO(wittjosiah): Cast because columns array is readonly.
67
+ items: columns,
68
+ getId: model.getColumnId,
69
+ get: (data) => data,
70
+ make: (object) => object,
71
+ canDrop: ({ source }) => model.isColumn(source.data),
72
+ onChange: (mutate) => Obj.change(pipeline, (obj) => mutate(obj.columns))
73
+ });
74
+ return /* @__PURE__ */ React.createElement(Board.Content, {
75
+ ...props,
76
+ id: "pipeline",
77
+ eventHandler,
78
+ Tile: PipelineColumn
79
+ });
80
+ });
81
+ PipelineColumns.displayName = PIPELINE_COLUMNS_NAME;
82
+ var PIPELINE_TOOLBAR_NAME = "Pipeline.Toolbar";
83
+ var PipelineToolbar = composable(({ children, ...props }, forwardedRef) => {
84
+ const { t } = useTranslation(meta.id);
85
+ const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);
86
+ return /* @__PURE__ */ React.createElement(Toolbar.Root, {
87
+ ...composableProps(props),
88
+ ref: forwardedRef
89
+ }, /* @__PURE__ */ React.createElement(Toolbar.IconButton, {
90
+ icon: "ph--plus--regular",
91
+ iconOnly: true,
92
+ label: t("add column label"),
93
+ onClick: onAddColumn
94
+ }));
95
+ });
96
+ PipelineToolbar.displayName = PIPELINE_TOOLBAR_NAME;
97
+ var PipelineComponent = {
98
+ Root: PipelineRoot,
99
+ Content: PipelineContent,
100
+ Columns: PipelineColumns,
101
+ Toolbar: PipelineToolbar
102
+ };
103
+
104
+ // src/components/PipelineComponent/PipelineColumn.tsx
105
+ import { Menu } from "@dxos/react-ui-menu";
106
+ var PIPELINE_COLUMN_NAME = "PipelineColumn";
107
+ var PipelineColumn = ({ data: column, location, classNames, debug }) => {
108
+ const { t } = useTranslation2(meta.id);
109
+ const dragHandleRef = useRef(null);
110
+ const [viewSnapshot] = useObject(column.view);
111
+ const view = column.view.target;
112
+ const space = getSpace(view);
113
+ const { Item } = usePipeline(PIPELINE_COLUMN_NAME);
114
+ const [schema, setSchema] = useState();
115
+ const query = useMemo(() => {
116
+ if (!view) {
117
+ return Query.select(Filter.nothing());
118
+ } else {
119
+ return Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot?.query.ast)));
120
+ }
121
+ }, [
122
+ JSON.stringify(viewSnapshot?.query.ast)
123
+ ]);
124
+ useAsyncEffect(async () => {
125
+ if (!query || !space?.db) {
126
+ return;
127
+ }
128
+ const schema2 = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);
129
+ setSchema(() => schema2);
130
+ }, [
131
+ space,
132
+ query
133
+ ]);
134
+ const projectionModel = useMemo(() => {
135
+ if (!schema || !view) {
136
+ return void 0;
137
+ }
138
+ const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : JsonSchema.toJsonSchema(schema);
139
+ const change = createEchoChangeCallback(view, Type.isMutable(schema) ? schema : void 0);
140
+ return new ProjectionModel({
141
+ view,
142
+ baseSchema: jsonSchema,
143
+ change
144
+ });
145
+ }, [
146
+ schema,
147
+ view
148
+ ]);
149
+ const PipelineTile = useMemo(() => {
150
+ return /* @__PURE__ */ forwardRef((props, ref) => /* @__PURE__ */ React2.createElement(ItemTile, {
151
+ ...props,
152
+ itemProps: {
153
+ item: props.data,
154
+ projectionModel
155
+ },
156
+ ref
157
+ }));
158
+ }, [
159
+ projectionModel
160
+ ]);
161
+ if (!view) {
162
+ return null;
163
+ }
164
+ return /* @__PURE__ */ React2.createElement(Panel.Root, {
165
+ asChild: true
166
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Root, {
167
+ debug,
168
+ data: column,
169
+ location,
170
+ classNames,
171
+ dragHandleRef
172
+ }, /* @__PURE__ */ React2.createElement(Panel.Toolbar, {
173
+ asChild: true
174
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Header, {
175
+ classNames: "_opacity-10",
176
+ label: column.name || t("untitled view title"),
177
+ dragHandleRef
178
+ })), /* @__PURE__ */ React2.createElement(Panel.Content, {
179
+ asChild: true
180
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Body, {
181
+ data: column,
182
+ Tile: PipelineTile
183
+ }))));
184
+ };
185
+ PipelineColumn.displayName = PIPELINE_COLUMN_NAME;
186
+ var ITEM_TILE_NAME = "ItemTile";
187
+ var ItemTile = /* @__PURE__ */ forwardRef(({ classNames, data, location, debug, itemProps }, forwardedRef) => {
188
+ const rootRef = useRef(null);
189
+ const composedRef = useComposedRefs(rootRef, forwardedRef);
190
+ const { Item } = usePipeline(ITEM_TILE_NAME);
191
+ const icon = Function.pipe(Obj2.getSchema(data), Option.fromNullable, Option.flatMap(Annotation.IconAnnotation.get), Option.map(({ icon: icon2 }) => icon2), Option.getOrElse(() => "ph--placeholder--regular"));
192
+ return /* @__PURE__ */ React2.createElement(Menu.Root, null, /* @__PURE__ */ React2.createElement(Mosaic.Tile, {
193
+ asChild: true,
194
+ id: data.id,
195
+ data,
196
+ location,
197
+ debug
198
+ }, /* @__PURE__ */ React2.createElement(Focus.Item, {
199
+ asChild: true
200
+ }, /* @__PURE__ */ React2.createElement(Card.Root, {
201
+ classNames,
202
+ ref: composedRef
203
+ }, /* @__PURE__ */ React2.createElement(Card.Toolbar, null, /* @__PURE__ */ React2.createElement(Card.Icon, {
204
+ icon
205
+ }), /* @__PURE__ */ React2.createElement(Card.Title, null, Obj2.getLabel(data)), /* @__PURE__ */ React2.createElement(Card.IconBlock, {
206
+ padding: true
207
+ }, /* @__PURE__ */ React2.createElement(Menu.Trigger, {
208
+ asChild: true
209
+ }, /* @__PURE__ */ React2.createElement(Toolbar2.IconButton, {
210
+ iconOnly: true,
211
+ variant: "ghost",
212
+ icon: "ph--dots-three-vertical--regular",
213
+ label: "Actions"
214
+ })), /* @__PURE__ */ React2.createElement(Menu.Content, null))), /* @__PURE__ */ React2.createElement(Card.Content, null, /* @__PURE__ */ React2.createElement(Item, itemProps))))));
215
+ });
216
+ ItemTile.displayName = ITEM_TILE_NAME;
217
+
218
+ // src/hooks/usePipelineBoardModel.ts
219
+ import { Atom } from "@effect-atom/atom-react";
220
+ import * as Schema from "effect/Schema";
221
+ import { useMemo as useMemo2 } from "react";
222
+ import { Obj as Obj3, Query as Query2 } from "@dxos/echo";
223
+ import { AtomObj, AtomQuery } from "@dxos/echo-atom";
224
+ import { getQueryTarget } from "@dxos/plugin-space";
225
+ import { getSpace as getSpace2, isSpace } from "@dxos/react-client/echo";
226
+ import { Pipeline } from "@dxos/types";
227
+ var usePipelineBoardModel = (pipeline, registry) => useMemo2(() => {
228
+ if (pipeline == null) {
229
+ return emptyPipelineModel;
230
+ }
231
+ const space = getSpace2(pipeline);
232
+ const columnsAtom = AtomObj.makeProperty(pipeline, "columns");
233
+ const columnAtomFamily = Atom.family((viewKey) => Atom.make((get) => {
234
+ const columns = get(columnsAtom);
235
+ return columns.find((c) => c.view.dxn.toString() === viewKey);
236
+ }));
237
+ const itemsAtomFamily = Atom.family((viewKey) => Atom.make((get) => {
238
+ const column = get(columnAtomFamily(viewKey));
239
+ if (column == null) {
240
+ return [];
241
+ }
242
+ const viewSnapshot = get(AtomObj.make(column.view));
243
+ if (!viewSnapshot?.query?.ast) {
244
+ return [];
245
+ }
246
+ const query = Query2.fromAst(JSON.parse(JSON.stringify(viewSnapshot.query.ast)));
247
+ const queryTarget = space ? getQueryTarget(query.ast, space) : void 0;
248
+ if (!queryTarget) {
249
+ return [];
250
+ }
251
+ const raw = get(AtomQuery.make(queryTarget, query));
252
+ return isSpace(queryTarget) ? raw : [
253
+ ...raw
254
+ ].reverse();
255
+ }));
256
+ return {
257
+ getColumnId: (data) => data.view.dxn.toString(),
258
+ getItemId: (data) => data.id,
259
+ isColumn: (obj) => Schema.is(Pipeline.Column)(obj),
260
+ isItem: (obj) => Obj3.isObject(obj),
261
+ columns: columnsAtom,
262
+ items: (column) => itemsAtomFamily(column.view.dxn.toString()),
263
+ getColumns: () => [
264
+ ...registry.get(columnsAtom)
265
+ ],
266
+ getItems: (column) => registry.get(itemsAtomFamily(column.view.dxn.toString())) ?? []
267
+ };
268
+ }, [
269
+ pipeline,
270
+ registry
271
+ ]);
272
+ var emptyColumnsAtom = Atom.make(() => []);
273
+ var emptyItemsAtom = Atom.make(() => []);
274
+ var emptyPipelineModel = {
275
+ getColumnId: (data) => data.view.dxn.toString(),
276
+ getItemId: (data) => data.id,
277
+ isColumn: (obj) => Schema.is(Pipeline.Column)(obj),
278
+ isItem: (obj) => Obj3.isObject(obj),
279
+ columns: emptyColumnsAtom,
280
+ items: () => emptyItemsAtom,
281
+ getColumns: () => [],
282
+ getItems: () => []
283
+ };
284
+
285
+ // src/containers/PipelineContainer/PipelineContainer.tsx
286
+ var PIPELINE_ITEM = "PipelineItem";
287
+ var PipelineContainer = ({ role, subject: pipeline, attendableId }) => {
288
+ const registry = useCapability(Capabilities.AtomRegistry);
289
+ const model = usePipelineBoardModel(pipeline, registry);
290
+ const { invokePromise } = useOperationInvoker();
291
+ const { hasAttention } = useAttention(attendableId);
292
+ const handleColumnAdd = useCallback(() => invokePromise(DeckOperation.ChangeCompanion, {
293
+ companion: companionSegment("settings")
294
+ }), [
295
+ invokePromise
296
+ ]);
297
+ return /* @__PURE__ */ React3.createElement(PipelineComponent.Root, {
298
+ Item: PipelineItem,
299
+ onAddColumn: handleColumnAdd
300
+ }, /* @__PURE__ */ React3.createElement(Panel2.Root, {
301
+ role
302
+ }, /* @__PURE__ */ React3.createElement(Panel2.Toolbar, {
303
+ asChild: true
304
+ }, /* @__PURE__ */ React3.createElement(PipelineComponent.Toolbar, {
305
+ disabled: !hasAttention
306
+ })), /* @__PURE__ */ React3.createElement(Panel2.Content, {
307
+ asChild: true
308
+ }, /* @__PURE__ */ React3.createElement(PipelineComponent.Content, {
309
+ asChild: true,
310
+ model
311
+ }, /* @__PURE__ */ React3.createElement(PipelineComponent.Columns, {
312
+ pipeline
313
+ })))));
314
+ };
315
+ var PipelineItem = ({ item, projectionModel }) => {
316
+ const menu = useMenu(PIPELINE_ITEM);
317
+ const items = useObjectMenuItems(item);
318
+ useEffect(() => {
319
+ menu.addMenuItems({
320
+ id: OBJECT_ACTIONS_CONTRIBUTION_ID,
321
+ mode: "additive",
322
+ priority: OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,
323
+ items
324
+ });
325
+ return () => menu.removeMenuItems(OBJECT_ACTIONS_CONTRIBUTION_ID);
326
+ }, [
327
+ menu,
328
+ items
329
+ ]);
330
+ return /* @__PURE__ */ React3.createElement(Surface.Surface, {
331
+ role: "card--content",
332
+ data: {
333
+ subject: item,
334
+ projection: projectionModel
335
+ },
336
+ limit: 1
337
+ });
338
+ };
339
+
340
+ // src/containers/PipelineContainer/index.ts
341
+ var PipelineContainer_default = PipelineContainer;
342
+ export {
343
+ PipelineContainer_default as default
344
+ };
345
+ //# sourceMappingURL=PipelineContainer-LY2P4JPA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/PipelineContainer/PipelineContainer.tsx", "../../../src/components/PipelineComponent/PipelineColumn.tsx", "../../../src/components/PipelineComponent/PipelineComponent.tsx", "../../../src/hooks/usePipelineBoardModel.ts", "../../../src/containers/PipelineContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect } from 'react';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { useCapability } from '@dxos/app-framework/ui';\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Surface } from '@dxos/app-framework/ui';\nimport {\n OBJECT_ACTIONS_CONTRIBUTION_ID,\n OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,\n type SurfaceComponentProps,\n useObjectMenuItems,\n} from '@dxos/app-toolkit/ui';\nimport { companionSegment } from '@dxos/app-toolkit';\nimport { DeckOperation } from '@dxos/plugin-deck/operations';\nimport { Panel } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { useMenu } from '@dxos/react-ui-menu';\nimport { type Pipeline } from '@dxos/types';\n\nimport { type ItemProps, PipelineComponent } from '../../components';\nimport { usePipelineBoardModel } from '../../hooks';\n\nconst PIPELINE_ITEM = 'PipelineItem';\n\nexport type PipelineContainerProps = SurfaceComponentProps<Pipeline.Pipeline>;\n\nexport const PipelineContainer = ({ role, subject: pipeline, attendableId }: PipelineContainerProps) => {\n const registry = useCapability(Capabilities.AtomRegistry);\n const model = usePipelineBoardModel(pipeline, registry);\n const { invokePromise } = useOperationInvoker();\n const { hasAttention } = useAttention(attendableId);\n\n const handleColumnAdd = useCallback(\n () =>\n invokePromise(DeckOperation.ChangeCompanion, {\n companion: companionSegment('settings'),\n }),\n [invokePromise],\n );\n\n return (\n <PipelineComponent.Root Item={PipelineItem} onAddColumn={handleColumnAdd}>\n <Panel.Root role={role}>\n <Panel.Toolbar asChild>\n <PipelineComponent.Toolbar disabled={!hasAttention} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <PipelineComponent.Content asChild model={model}>\n <PipelineComponent.Columns pipeline={pipeline} />\n </PipelineComponent.Content>\n </Panel.Content>\n </Panel.Root>\n </PipelineComponent.Root>\n );\n};\n\nconst PipelineItem = ({ item, projectionModel }: ItemProps) => {\n const menu = useMenu(PIPELINE_ITEM);\n const items = useObjectMenuItems(item);\n\n useEffect(() => {\n menu.addMenuItems({\n id: OBJECT_ACTIONS_CONTRIBUTION_ID,\n mode: 'additive',\n priority: OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,\n items,\n });\n\n return () => menu.removeMenuItems(OBJECT_ACTIONS_CONTRIBUTION_ID);\n }, [menu, items]);\n\n return (\n <Surface.Surface\n role='card--content'\n data={{\n subject: item,\n projection: projectionModel,\n }}\n limit={1}\n />\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport React, { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { Annotation, JsonSchema, Obj, Query, Type } from '@dxos/echo';\nimport { resolveSchemaWithRegistry } from '@dxos/plugin-space';\nimport { Filter, getSpace, useObject } from '@dxos/react-client/echo';\nimport { Panel, Toolbar, useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui';\nimport { Board, Focus, Mosaic, type MosaicTileProps } from '@dxos/react-ui-mosaic';\nimport { ProjectionModel, createEchoChangeCallback } from '@dxos/schema';\nimport { type Pipeline } from '@dxos/types';\n\nimport { meta } from '../../meta';\n\nimport { type ItemProps, usePipeline } from './PipelineComponent';\nimport { Menu } from '@dxos/react-ui-menu';\n\n//\n// PipelineColumn\n//\n\nconst PIPELINE_COLUMN_NAME = 'PipelineColumn';\n\nexport type PipelineColumnProps = Pick<MosaicTileProps<Pipeline.Column>, 'classNames' | 'location' | 'data' | 'debug'>;\n\n// TODO(wittjosiah): Support item DnD reordering (ordering needs to be stored on the view presentation collection).\nexport const PipelineColumn = ({ data: column, location, classNames, debug }: PipelineColumnProps) => {\n const { t } = useTranslation(meta.id);\n const dragHandleRef = useRef<HTMLButtonElement>(null);\n // Subscribe to the view target for reactivity.\n const [viewSnapshot] = useObject(column.view);\n const view = column.view.target;\n const space = getSpace(view);\n const { Item } = usePipeline(PIPELINE_COLUMN_NAME);\n const [schema, setSchema] = useState<Schema.Schema.AnyNoContext>();\n const query = useMemo(() => {\n if (!view) {\n return Query.select(Filter.nothing());\n } else {\n // NOTE: Snapshot is required to prevent signal read in prohibited scope.\n // TODO(wittjosiah): Without stringify, filter.filters remains a proxied array.\n return Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot?.query.ast)));\n }\n }, [JSON.stringify(viewSnapshot?.query.ast)]);\n\n useAsyncEffect(async () => {\n if (!query || !space?.db) {\n return;\n }\n\n const schema = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);\n setSchema(() => schema);\n }, [space, query]);\n\n const projectionModel = useMemo(() => {\n if (!schema || !view) {\n return undefined;\n }\n\n // For mutable schemas (EchoSchema), use the live jsonSchema reference for reactivity.\n const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : JsonSchema.toJsonSchema(schema);\n const change = createEchoChangeCallback(view, Type.isMutable(schema) ? schema : undefined);\n return new ProjectionModel({ view, baseSchema: jsonSchema, change });\n }, [schema, view]);\n\n const PipelineTile = useMemo(() => {\n return forwardRef<HTMLDivElement, Pick<MosaicTileProps<Obj.Unknown>, 'classNames' | 'location' | 'data' | 'debug'>>(\n (props, ref) => <ItemTile {...props} itemProps={{ item: props.data, projectionModel }} ref={ref} />,\n );\n }, [projectionModel]);\n\n if (!view) {\n return null;\n }\n\n return (\n <Panel.Root asChild>\n <Board.Column.Root\n debug={debug}\n data={column}\n location={location}\n classNames={classNames}\n dragHandleRef={dragHandleRef}\n >\n <Panel.Toolbar asChild>\n <Board.Column.Header\n classNames='_opacity-10'\n label={column.name || t('untitled view title')}\n dragHandleRef={dragHandleRef}\n />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <Board.Column.Body data={column} Tile={PipelineTile} />\n </Panel.Content>\n </Board.Column.Root>\n </Panel.Root>\n );\n};\n\nPipelineColumn.displayName = PIPELINE_COLUMN_NAME;\n\n//\n// ItemTile\n//\n\nconst ITEM_TILE_NAME = 'ItemTile';\n\ntype ItemTileProps = Pick<MosaicTileProps<Obj.Unknown>, 'classNames' | 'location' | 'data' | 'debug'> & {\n itemProps: ItemProps;\n};\n\nconst ItemTile = forwardRef<HTMLDivElement, ItemTileProps>(\n ({ classNames, data, location, debug, itemProps }, forwardedRef) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = useComposedRefs<HTMLDivElement>(rootRef, forwardedRef);\n const { Item } = usePipeline(ITEM_TILE_NAME);\n const icon = Function.pipe(\n Obj.getSchema(data),\n Option.fromNullable,\n Option.flatMap(Annotation.IconAnnotation.get),\n Option.map(({ icon }) => icon),\n Option.getOrElse(() => 'ph--placeholder--regular'),\n );\n\n return (\n <Menu.Root>\n <Mosaic.Tile asChild id={data.id} data={data} location={location} debug={debug}>\n <Focus.Item asChild>\n <Card.Root classNames={classNames} ref={composedRef}>\n <Card.Toolbar>\n <Card.Icon icon={icon} />\n <Card.Title>{Obj.getLabel(data)}</Card.Title>\n {/* TODO(wittjosiah): Reconcile with Card.Menu. */}\n <Card.IconBlock padding>\n <Menu.Trigger asChild>\n <Toolbar.IconButton\n iconOnly\n variant='ghost'\n icon='ph--dots-three-vertical--regular'\n label='Actions'\n />\n </Menu.Trigger>\n <Menu.Content />\n </Card.IconBlock>\n </Card.Toolbar>\n <Card.Content>\n <Item {...itemProps} />\n </Card.Content>\n </Card.Root>\n </Focus.Item>\n </Mosaic.Tile>\n </Menu.Root>\n );\n },\n);\n\nItemTile.displayName = ITEM_TILE_NAME;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport { createContext } from '@radix-ui/react-context';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type FC, type PropsWithChildren } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { Toolbar, type ToolbarRootProps, useTranslation } from '@dxos/react-ui';\nimport { Board, type BoardModel, useBoard, useEventHandlerAdapter } from '@dxos/react-ui-mosaic';\nimport { type ProjectionModel } from '@dxos/schema';\nimport { type Pipeline } from '@dxos/types';\nimport { composable, composableProps, slottable } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\nimport { PipelineColumn } from './PipelineColumn';\n\ntype ItemProps = {\n item: Obj.Unknown;\n projectionModel?: ProjectionModel;\n};\n\nconst itemNoOp = ({ item }: ItemProps) => <span>{item.id}</span>;\n\n//\n// Root\n//\n\ntype PipelineContextValue = {\n Item: FC<ItemProps>;\n // TODO(wittjosiah): Support adding items.\n // If the created item doesn't match the current query, it will not be visible.\n // TODO(wittjosiah): onAddItem?: (schema: Schema.Schema.AnyNoContext) => void;\n onAddColumn?: () => void;\n};\n\ntype PipelineRootProps = PropsWithChildren<PipelineContextValue>;\n\nconst PIPELINE_ROOT = 'Pipeline.Root';\n\nconst [PipelineRootContext, usePipeline] = createContext<PipelineContextValue>(PIPELINE_ROOT, {\n Item: itemNoOp,\n});\n\nconst PipelineRoot = ({ children, ...contextValue }: PipelineRootProps) => (\n <PipelineRootContext {...contextValue}>{children}</PipelineRootContext>\n);\n\nPipelineRoot.displayName = PIPELINE_ROOT;\n\n//\n// Content\n//\n\nconst PIPELINE_CONTENT_NAME = 'Pipeline.Content';\n\ntype PipelineContentProps = PropsWithChildren<{\n model: BoardModel<Pipeline.Column, Obj.Unknown>;\n}>;\n\nconst PipelineContent = slottable<HTMLDivElement, PipelineContentProps>(\n ({ asChild, model, children, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'div';\n return (\n <Board.Root model={model}>\n <Comp {...composableProps(props, { role: 'none' })} ref={forwardedRef}>\n {children}\n </Comp>\n </Board.Root>\n );\n },\n);\n\nPipelineContent.displayName = PIPELINE_CONTENT_NAME;\n\n//\n// Columns\n//\n\nconst PIPELINE_COLUMNS_NAME = 'Pipeline.Columns';\n\ntype PipelineColumnsProps = {\n pipeline: Pipeline.Pipeline;\n};\n\nconst PipelineColumns = composable<HTMLDivElement, PipelineColumnsProps>(({ pipeline, ...props }) => {\n const { model } = useBoard(PIPELINE_COLUMNS_NAME);\n const columns = useAtomValue(model.columns);\n const eventHandler = useEventHandlerAdapter<Pipeline.Column, Obj.Unknown>({\n id: pipeline.id,\n // TODO(wittjosiah): Cast because columns array is readonly.\n items: columns as any,\n getId: model.getColumnId,\n get: (data) => data as unknown as Obj.Unknown,\n make: (object) => object as unknown as Pipeline.Column,\n canDrop: ({ source }) => model.isColumn(source.data),\n onChange: (mutate) => Obj.change(pipeline, (obj) => mutate(obj.columns)),\n });\n\n return <Board.Content {...props} id='pipeline' eventHandler={eventHandler} Tile={PipelineColumn} />;\n});\n\nPipelineColumns.displayName = PIPELINE_COLUMNS_NAME;\n\n//\n// Toolbar\n//\n\nconst PIPELINE_TOOLBAR_NAME = 'Pipeline.Toolbar';\n\nexport const PipelineToolbar = composable<HTMLDivElement, ToolbarRootProps>(({ children, ...props }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);\n\n return (\n <Toolbar.Root {...composableProps(props)} ref={forwardedRef}>\n <Toolbar.IconButton icon='ph--plus--regular' iconOnly label={t('add column label')} onClick={onAddColumn} />\n </Toolbar.Root>\n );\n});\n\nPipelineToolbar.displayName = PIPELINE_TOOLBAR_NAME;\n\n//\n// Project\n//\n\nexport const PipelineComponent = {\n Root: PipelineRoot,\n Content: PipelineContent,\n Columns: PipelineColumns,\n Toolbar: PipelineToolbar,\n};\n\nexport { usePipeline };\n\nexport type { ItemProps, PipelineContextValue, PipelineRootProps, PipelineContentProps, PipelineColumnsProps };\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, type Registry } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\nimport { useMemo } from 'react';\n\nimport { Obj, Query } from '@dxos/echo';\nimport { AtomObj, AtomQuery } from '@dxos/echo-atom';\nimport { getQueryTarget } from '@dxos/plugin-space';\nimport { getSpace, isSpace } from '@dxos/react-client/echo';\nimport { type BoardModel } from '@dxos/react-ui-mosaic';\nimport { Pipeline } from '@dxos/types';\n\nexport const usePipelineBoardModel = (\n pipeline: Pipeline.Pipeline | undefined,\n registry: Registry.Registry,\n): BoardModel<Pipeline.Column, Obj.Unknown> =>\n useMemo<BoardModel<Pipeline.Column, Obj.Unknown>>(() => {\n if (pipeline == null) {\n return emptyPipelineModel;\n }\n\n const space = getSpace(pipeline);\n const columnsAtom = AtomObj.makeProperty(pipeline, 'columns');\n const columnAtomFamily = Atom.family<string, Atom.Atom<Pipeline.Column | undefined>>((viewKey: string) =>\n Atom.make((get) => {\n const columns = get(columnsAtom);\n return columns.find((c) => c.view.dxn.toString() === viewKey);\n }),\n );\n\n const itemsAtomFamily = Atom.family<string, Atom.Atom<Obj.Unknown[]>>((viewKey: string) =>\n Atom.make((get) => {\n const column = get(columnAtomFamily(viewKey));\n if (column == null) {\n return [];\n }\n const viewSnapshot = get(AtomObj.make(column.view));\n if (!viewSnapshot?.query?.ast) {\n return [];\n }\n const query = Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot.query.ast)));\n const queryTarget = space ? getQueryTarget(query.ast, space) : undefined;\n if (!queryTarget) {\n return [];\n }\n const raw = get(AtomQuery.make(queryTarget, query));\n return isSpace(queryTarget) ? raw : [...raw].reverse();\n }),\n );\n\n return {\n getColumnId: (data) => (data as Pipeline.Column).view.dxn.toString(),\n getItemId: (data) => (data as Obj.Unknown).id,\n isColumn: (obj: unknown): obj is Pipeline.Column => Schema.is(Pipeline.Column)(obj),\n isItem: (obj: unknown): obj is Obj.Unknown => Obj.isObject(obj),\n columns: columnsAtom,\n items: (column) => itemsAtomFamily(column.view.dxn.toString()),\n getColumns: () => [...registry.get(columnsAtom)],\n getItems: (column) => registry.get(itemsAtomFamily(column.view.dxn.toString())) ?? [],\n };\n }, [pipeline, registry]);\n\nconst emptyColumnsAtom = Atom.make(() => [] as Pipeline.Column[]);\n\nconst emptyItemsAtom = Atom.make(() => [] as Obj.Unknown[]);\n\nconst emptyPipelineModel: BoardModel<Pipeline.Column, Obj.Unknown> = {\n getColumnId: (data) => (data as Pipeline.Column).view.dxn.toString(),\n getItemId: (data) => (data as Obj.Unknown).id,\n isColumn: (obj: unknown): obj is Pipeline.Column => Schema.is(Pipeline.Column)(obj),\n isItem: (obj): obj is Obj.Unknown => Obj.isObject(obj),\n columns: emptyColumnsAtom,\n items: () => emptyItemsAtom,\n getColumns: () => [],\n getItems: () => [],\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { PipelineContainer } from './PipelineContainer';\n\nexport default PipelineContainer;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useEffect", "Capabilities", "useCapability", "useOperationInvoker", "Surface", "OBJECT_ACTIONS_CONTRIBUTION_ID", "OBJECT_ACTIONS_CONTRIBUTION_PRIORITY", "useObjectMenuItems", "companionSegment", "DeckOperation", "Panel", "useAttention", "useMenu", "useComposedRefs", "Function", "Option", "React", "forwardRef", "useMemo", "useRef", "useState", "Annotation", "JsonSchema", "Obj", "Query", "Type", "resolveSchemaWithRegistry", "Filter", "getSpace", "useObject", "Panel", "Toolbar", "useAsyncEffect", "useTranslation", "Card", "Board", "Focus", "Mosaic", "ProjectionModel", "createEchoChangeCallback", "useAtomValue", "createContext", "Slot", "React", "Obj", "Toolbar", "useTranslation", "Board", "useBoard", "useEventHandlerAdapter", "composable", "composableProps", "slottable", "itemNoOp", "item", "span", "id", "PIPELINE_ROOT", "PipelineRootContext", "usePipeline", "createContext", "Item", "PipelineRoot", "children", "contextValue", "displayName", "PIPELINE_CONTENT_NAME", "PipelineContent", "slottable", "asChild", "model", "props", "forwardedRef", "Comp", "Slot", "Board", "Root", "composableProps", "role", "ref", "PIPELINE_COLUMNS_NAME", "PipelineColumns", "composable", "pipeline", "useBoard", "columns", "useAtomValue", "eventHandler", "useEventHandlerAdapter", "items", "getId", "getColumnId", "get", "data", "make", "object", "canDrop", "source", "isColumn", "onChange", "mutate", "Obj", "change", "obj", "Content", "Tile", "PipelineColumn", "PIPELINE_TOOLBAR_NAME", "PipelineToolbar", "t", "useTranslation", "meta", "onAddColumn", "Toolbar", "IconButton", "icon", "iconOnly", "label", "onClick", "PipelineComponent", "Columns", "Menu", "PIPELINE_COLUMN_NAME", "PipelineColumn", "data", "column", "location", "classNames", "debug", "t", "useTranslation", "meta", "id", "dragHandleRef", "useRef", "viewSnapshot", "useObject", "view", "target", "space", "getSpace", "Item", "usePipeline", "schema", "setSchema", "useState", "query", "useMemo", "Query", "select", "Filter", "nothing", "fromAst", "JSON", "parse", "stringify", "ast", "useAsyncEffect", "db", "resolveSchemaWithRegistry", "schemaRegistry", "projectionModel", "undefined", "jsonSchema", "Type", "isMutable", "JsonSchema", "toJsonSchema", "change", "createEchoChangeCallback", "ProjectionModel", "baseSchema", "PipelineTile", "forwardRef", "props", "ref", "React", "ItemTile", "itemProps", "item", "Panel", "Root", "asChild", "Board", "Column", "Toolbar", "Header", "label", "name", "Content", "Body", "Tile", "displayName", "ITEM_TILE_NAME", "forwardedRef", "rootRef", "composedRef", "useComposedRefs", "icon", "pipe", "Obj", "getSchema", "fromNullable", "flatMap", "Annotation", "IconAnnotation", "get", "map", "getOrElse", "Menu", "Mosaic", "Focus", "Card", "Icon", "Title", "getLabel", "IconBlock", "padding", "Trigger", "IconButton", "iconOnly", "variant", "Atom", "Schema", "useMemo", "Obj", "Query", "AtomObj", "AtomQuery", "getQueryTarget", "getSpace", "isSpace", "Pipeline", "usePipelineBoardModel", "pipeline", "registry", "useMemo", "emptyPipelineModel", "space", "getSpace", "columnsAtom", "AtomObj", "makeProperty", "columnAtomFamily", "Atom", "family", "viewKey", "make", "get", "columns", "find", "c", "view", "dxn", "toString", "itemsAtomFamily", "column", "viewSnapshot", "query", "ast", "Query", "fromAst", "JSON", "parse", "stringify", "queryTarget", "getQueryTarget", "undefined", "raw", "AtomQuery", "isSpace", "reverse", "getColumnId", "data", "getItemId", "id", "isColumn", "obj", "is", "Pipeline", "Column", "isItem", "Obj", "isObject", "items", "getColumns", "getItems", "emptyColumnsAtom", "emptyItemsAtom", "PIPELINE_ITEM", "PipelineContainer", "role", "subject", "pipeline", "attendableId", "registry", "useCapability", "Capabilities", "AtomRegistry", "model", "usePipelineBoardModel", "invokePromise", "useOperationInvoker", "hasAttention", "useAttention", "handleColumnAdd", "useCallback", "DeckOperation", "ChangeCompanion", "companion", "companionSegment", "React", "PipelineComponent", "Root", "Item", "PipelineItem", "onAddColumn", "Panel", "Toolbar", "asChild", "disabled", "Content", "Columns", "item", "projectionModel", "menu", "useMenu", "items", "useObjectMenuItems", "useEffect", "addMenuItems", "id", "OBJECT_ACTIONS_CONTRIBUTION_ID", "mode", "priority", "OBJECT_ACTIONS_CONTRIBUTION_PRIORITY", "removeMenuItems", "Surface", "data", "projection", "limit", "PipelineContainer"]
7
+ }