@dxos/plugin-pipeline 0.8.4-main.2244d791bb → 0.8.4-main.3fbcb4aa9b

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 (160) hide show
  1. package/dist/lib/neutral/PipelineContainer-7MK2SS76.mjs +69 -0
  2. package/dist/lib/neutral/PipelineContainer-7MK2SS76.mjs.map +7 -0
  3. package/dist/lib/neutral/PipelinePlugin.mjs +26 -0
  4. package/dist/lib/neutral/PipelinePlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/PipelinePlugin.node.mjs +21 -0
  6. package/dist/lib/neutral/PipelinePlugin.node.mjs.map +7 -0
  7. package/dist/lib/{browser/PipelineSettings-R54RTVWZ.mjs → neutral/PipelineProperties-RRPQ3V6I.mjs} +45 -56
  8. package/dist/lib/neutral/PipelineProperties-RRPQ3V6I.mjs.map +7 -0
  9. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs +44 -0
  10. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs.map +7 -0
  11. package/dist/lib/neutral/capabilities/index.mjs +11 -0
  12. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  13. package/dist/lib/{browser/chunk-QWNKLHBY.mjs → neutral/chunk-ULB5DKWO.mjs} +2 -9
  14. package/dist/lib/{browser/chunk-QWNKLHBY.mjs.map → neutral/chunk-ULB5DKWO.mjs.map} +3 -3
  15. package/dist/lib/neutral/components/index.mjs +206 -0
  16. package/dist/lib/neutral/components/index.mjs.map +7 -0
  17. package/dist/lib/neutral/containers/index.mjs +9 -0
  18. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  19. package/dist/lib/neutral/create-object-ZJYFACOI.mjs +25 -0
  20. package/dist/lib/neutral/create-object-ZJYFACOI.mjs.map +7 -0
  21. package/dist/lib/neutral/hooks/index.mjs +70 -0
  22. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  23. package/dist/lib/neutral/index.mjs +7 -0
  24. package/dist/lib/neutral/meta.json +1 -0
  25. package/dist/lib/neutral/meta.mjs +7 -0
  26. package/dist/lib/neutral/meta.mjs.map +7 -0
  27. package/dist/lib/neutral/plugin.mjs +11 -0
  28. package/dist/lib/neutral/plugin.mjs.map +7 -0
  29. package/dist/lib/neutral/react-surface-TW6TRMO6.mjs +49 -0
  30. package/dist/lib/neutral/react-surface-TW6TRMO6.mjs.map +7 -0
  31. package/dist/lib/neutral/translations.mjs +38 -0
  32. package/dist/lib/neutral/translations.mjs.map +7 -0
  33. package/dist/lib/neutral/types/index.mjs +1 -0
  34. package/dist/lib/neutral/types/index.mjs.map +7 -0
  35. package/dist/types/src/PipelinePlugin.d.ts +1 -0
  36. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  37. package/dist/types/src/PipelinePlugin.node.d.ts +4 -0
  38. package/dist/types/src/PipelinePlugin.node.d.ts.map +1 -0
  39. package/dist/types/src/PipelinePlugin.test.d.ts +2 -0
  40. package/dist/types/src/PipelinePlugin.test.d.ts.map +1 -0
  41. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  42. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  43. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  44. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  45. package/dist/types/src/capabilities/index.d.ts +9 -3
  46. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  47. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  48. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  49. package/dist/types/src/components/{PipelineColumn.d.ts → PipelineComponent/PipelineColumn.d.ts} +4 -4
  50. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -0
  51. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +53 -0
  52. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -0
  53. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts +62 -0
  54. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -0
  55. package/dist/types/src/components/PipelineComponent/index.d.ts +3 -0
  56. package/dist/types/src/components/PipelineComponent/index.d.ts.map +1 -0
  57. package/dist/types/src/components/index.d.ts +1 -4
  58. package/dist/types/src/components/index.d.ts.map +1 -1
  59. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts +6 -0
  60. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +1 -0
  61. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts +76 -0
  62. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +1 -0
  63. package/dist/types/src/containers/PipelineContainer/index.d.ts +2 -0
  64. package/dist/types/src/containers/PipelineContainer/index.d.ts.map +1 -0
  65. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts +11 -0
  66. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts.map +1 -0
  67. package/dist/types/src/containers/PipelineProperties/index.d.ts +2 -0
  68. package/dist/types/src/containers/PipelineProperties/index.d.ts.map +1 -0
  69. package/dist/types/src/containers/index.d.ts +4 -0
  70. package/dist/types/src/containers/index.d.ts.map +1 -0
  71. package/dist/types/src/hooks/index.d.ts +2 -0
  72. package/dist/types/src/hooks/index.d.ts.map +1 -0
  73. package/dist/types/src/hooks/usePipelineBoardModel.d.ts +6 -0
  74. package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -0
  75. package/dist/types/src/index.d.ts +0 -1
  76. package/dist/types/src/index.d.ts.map +1 -1
  77. package/dist/types/src/plugin.d.ts +3 -0
  78. package/dist/types/src/plugin.d.ts.map +1 -0
  79. package/dist/types/src/templates/research.d.ts.map +1 -1
  80. package/dist/types/src/translations.d.ts +44 -25
  81. package/dist/types/src/translations.d.ts.map +1 -1
  82. package/dist/types/src/types/index.d.ts +0 -2
  83. package/dist/types/src/types/index.d.ts.map +1 -1
  84. package/dist/types/tsconfig.tsbuildinfo +1 -1
  85. package/package.json +100 -54
  86. package/src/PipelinePlugin.node.ts +19 -0
  87. package/src/PipelinePlugin.test.ts +27 -0
  88. package/src/PipelinePlugin.tsx +7 -31
  89. package/src/capabilities/app-graph-builder.ts +40 -0
  90. package/src/capabilities/create-object.ts +29 -0
  91. package/src/capabilities/index.ts +5 -3
  92. package/src/capabilities/react-surface.tsx +53 -0
  93. package/src/components/{PipelineColumn.tsx → PipelineComponent/PipelineColumn.tsx} +67 -48
  94. package/src/components/{PipelineComponent.stories.tsx → PipelineComponent/PipelineComponent.stories.tsx} +40 -32
  95. package/src/components/PipelineComponent/PipelineComponent.tsx +140 -0
  96. package/src/components/PipelineComponent/index.ts +6 -0
  97. package/src/components/index.ts +1 -7
  98. package/src/containers/PipelineContainer/PipelineContainer.stories.tsx +230 -0
  99. package/src/containers/PipelineContainer/PipelineContainer.tsx +84 -0
  100. package/src/containers/PipelineContainer/index.ts +5 -0
  101. package/src/{components/PipelineSettings.tsx → containers/PipelineProperties/PipelineProperties.tsx} +50 -43
  102. package/src/containers/PipelineProperties/index.ts +5 -0
  103. package/src/containers/index.ts +8 -0
  104. package/src/hooks/index.ts +5 -0
  105. package/src/hooks/usePipelineBoardModel.ts +79 -0
  106. package/src/index.ts +0 -1
  107. package/src/meta.ts +1 -1
  108. package/src/plugin.ts +9 -0
  109. package/src/templates/research.ts +16 -17
  110. package/src/translations.ts +22 -21
  111. package/src/types/index.ts +0 -3
  112. package/dist/lib/browser/PipelineContainer-2BRZPECS.mjs +0 -289
  113. package/dist/lib/browser/PipelineContainer-2BRZPECS.mjs.map +0 -7
  114. package/dist/lib/browser/PipelineSettings-R54RTVWZ.mjs.map +0 -7
  115. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs +0 -65
  116. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs.map +0 -7
  117. package/dist/lib/browser/chunk-7GVESVYR.mjs +0 -42
  118. package/dist/lib/browser/chunk-7GVESVYR.mjs.map +0 -7
  119. package/dist/lib/browser/index.mjs +0 -109
  120. package/dist/lib/browser/index.mjs.map +0 -7
  121. package/dist/lib/browser/meta.json +0 -1
  122. package/dist/lib/browser/react-surface-CMTEEE6F.mjs +0 -57
  123. package/dist/lib/browser/react-surface-CMTEEE6F.mjs.map +0 -7
  124. package/dist/lib/browser/types/index.mjs +0 -10
  125. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  126. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  127. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  128. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  129. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -2
  130. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  131. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  132. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  133. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  134. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  135. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  136. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  137. package/dist/types/src/components/PipelineColumn.d.ts.map +0 -1
  138. package/dist/types/src/components/PipelineComponent.d.ts +0 -44
  139. package/dist/types/src/components/PipelineComponent.d.ts.map +0 -1
  140. package/dist/types/src/components/PipelineComponent.stories.d.ts +0 -42
  141. package/dist/types/src/components/PipelineComponent.stories.d.ts.map +0 -1
  142. package/dist/types/src/components/PipelineContainer.d.ts +0 -7
  143. package/dist/types/src/components/PipelineContainer.d.ts.map +0 -1
  144. package/dist/types/src/components/PipelineContainer.stories.d.ts +0 -56
  145. package/dist/types/src/components/PipelineContainer.stories.d.ts.map +0 -1
  146. package/dist/types/src/components/PipelineSettings.d.ts +0 -12
  147. package/dist/types/src/components/PipelineSettings.d.ts.map +0 -1
  148. package/dist/types/src/types/PipelineAction.d.ts +0 -25
  149. package/dist/types/src/types/PipelineAction.d.ts.map +0 -1
  150. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -51
  151. package/src/capabilities/app-graph-builder/index.ts +0 -7
  152. package/src/capabilities/operation-resolver/index.ts +0 -5
  153. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -29
  154. package/src/capabilities/react-surface/index.ts +0 -7
  155. package/src/capabilities/react-surface/react-surface.tsx +0 -50
  156. package/src/components/PipelineComponent.tsx +0 -186
  157. package/src/components/PipelineContainer.stories.tsx +0 -226
  158. package/src/components/PipelineContainer.tsx +0 -61
  159. package/src/types/PipelineAction.ts +0 -29
  160. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
@@ -1,289 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-QWNKLHBY.mjs";
4
-
5
- // src/components/PipelineContainer.tsx
6
- import React3, { useCallback } 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 { Obj as Obj3 } from "@dxos/echo";
12
- import { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from "@dxos/plugin-deck/types";
13
- import { Layout } from "@dxos/react-ui";
14
- import { useAttention } from "@dxos/react-ui-attention";
15
-
16
- // src/components/PipelineComponent.tsx
17
- import { Atom, useAtomValue as useAtomValue2 } from "@effect-atom/atom-react";
18
- import { createContext } from "@radix-ui/react-context";
19
- import * as Schema from "effect/Schema";
20
- import React2, { useMemo as useMemo2 } from "react";
21
- import { Obj as Obj2, Query as Query2 } from "@dxos/echo";
22
- import { AtomObj, AtomQuery } from "@dxos/echo-atom";
23
- import { getQueryTarget } from "@dxos/plugin-space";
24
- import { getSpace as getSpace2, isSpace } from "@dxos/react-client/echo";
25
- import { Toolbar, useTranslation as useTranslation2 } from "@dxos/react-ui";
26
- import { Board as Board2, useBoard as useBoard2, useEventHandlerAdapter } from "@dxos/react-ui-mosaic";
27
- import { Pipeline } from "@dxos/types";
28
-
29
- // src/components/PipelineColumn.tsx
30
- import { useAtomValue } from "@effect-atom/atom-react";
31
- import { useComposedRefs } from "@radix-ui/react-compose-refs";
32
- import React, { forwardRef, useMemo, useRef, useState } from "react";
33
- import { Obj, Query, Type } from "@dxos/echo";
34
- import { resolveSchemaWithRegistry } from "@dxos/plugin-space";
35
- import { Filter, getSpace, useObject } from "@dxos/react-client/echo";
36
- import { useAsyncEffect, useTranslation } from "@dxos/react-ui";
37
- import { Board, Card, Focus, Mosaic, useBoard } from "@dxos/react-ui-mosaic";
38
- import { ProjectionModel, createEchoChangeCallback } from "@dxos/schema";
39
- import { mx } from "@dxos/ui-theme";
40
- var PIPELINE_COLUMN_NAME = "PipelineColumn";
41
- var PipelineColumn = ({ data: column, location, classNames, debug }) => {
42
- const { t } = useTranslation(meta.id);
43
- const { model } = useBoard(PIPELINE_COLUMN_NAME);
44
- const items = useAtomValue(model.items(column));
45
- const [viewSnapshot] = useObject(column.view);
46
- const view = column.view.target;
47
- const space = getSpace(view);
48
- const { Item } = usePipeline(PIPELINE_COLUMN_NAME);
49
- const [schema, setSchema] = useState();
50
- const query = useMemo(() => {
51
- if (!view) {
52
- return Query.select(Filter.nothing());
53
- } else {
54
- return Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot?.query.ast)));
55
- }
56
- }, [
57
- JSON.stringify(viewSnapshot?.query.ast)
58
- ]);
59
- useAsyncEffect(async () => {
60
- if (!query || !space?.db) {
61
- return;
62
- }
63
- const schema2 = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);
64
- setSchema(() => schema2);
65
- }, [
66
- space,
67
- query
68
- ]);
69
- const projectionModel = useMemo(() => {
70
- if (!schema || !view) {
71
- return void 0;
72
- }
73
- const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : Type.toJsonSchema(schema);
74
- const change = createEchoChangeCallback(view, Type.isMutable(schema) ? schema : void 0);
75
- return new ProjectionModel({
76
- view,
77
- baseSchema: jsonSchema,
78
- change
79
- });
80
- }, [
81
- schema,
82
- view
83
- ]);
84
- const Tile = useMemo(() => {
85
- return /* @__PURE__ */ forwardRef((props, ref) => /* @__PURE__ */ React.createElement(ItemTile, {
86
- ...props,
87
- ref,
88
- itemProps: {
89
- item: props.data,
90
- projectionModel
91
- }
92
- }));
93
- }, [
94
- Item,
95
- projectionModel
96
- ]);
97
- if (!view) {
98
- return null;
99
- }
100
- const dragHandleRef = useRef(null);
101
- return /* @__PURE__ */ React.createElement(Board.Column.Root, {
102
- data: column,
103
- location,
104
- classNames,
105
- debug,
106
- dragHandleRef
107
- }, /* @__PURE__ */ React.createElement("div", {
108
- role: "none",
109
- "data-testid": "board-column",
110
- className: mx("group/column grid bs-full overflow-hidden grid-rows-[var(--rail-action)_1fr]", classNames)
111
- }, /* @__PURE__ */ React.createElement(Board.Column.Header, {
112
- classNames: "border-be border-separator",
113
- label: column.name ?? t("untitled view title"),
114
- dragHandleRef
115
- }), /* @__PURE__ */ React.createElement(Board.Column.Body, {
116
- data: column,
117
- Tile
118
- })));
119
- };
120
- PipelineColumn.displayName = PIPELINE_COLUMN_NAME;
121
- var ITEM_TILE_NAME = "ItemTile";
122
- var ItemTile = /* @__PURE__ */ forwardRef(({ classNames, data, location, debug, itemProps }, forwardedRef) => {
123
- const rootRef = useRef(null);
124
- const composedRef = useComposedRefs(rootRef, forwardedRef);
125
- const { Item } = usePipeline(ITEM_TILE_NAME);
126
- return /* @__PURE__ */ React.createElement(Mosaic.Tile, {
127
- asChild: true,
128
- id: data.id,
129
- data,
130
- location,
131
- debug
132
- }, /* @__PURE__ */ React.createElement(Focus.Group, {
133
- asChild: true
134
- }, /* @__PURE__ */ React.createElement(Card.Root, {
135
- classNames,
136
- ref: composedRef
137
- }, /* @__PURE__ */ React.createElement(Card.Toolbar, null, /* @__PURE__ */ React.createElement(Card.DragHandle, null), /* @__PURE__ */ React.createElement(Card.Title, null, Obj.getLabel(data)), /* @__PURE__ */ React.createElement(Card.Menu, null)), /* @__PURE__ */ React.createElement(Card.Content, null, /* @__PURE__ */ React.createElement(Item, itemProps)))));
138
- });
139
- ItemTile.displayName = ITEM_TILE_NAME;
140
-
141
- // src/components/PipelineComponent.tsx
142
- var itemNoOp = ({ item }) => /* @__PURE__ */ React2.createElement("span", null, item.id);
143
- var PIPELINE_ROOT = "Pipeline.Root";
144
- var [PipelineRootContext, usePipeline] = createContext(PIPELINE_ROOT, {
145
- Item: itemNoOp
146
- });
147
- var PipelineRoot = ({ model, children, ...contextValue }) => /* @__PURE__ */ React2.createElement(PipelineRootContext, contextValue, /* @__PURE__ */ React2.createElement(Board2.Root, {
148
- model
149
- }, children));
150
- PipelineRoot.displayName = PIPELINE_ROOT;
151
- var emptyColumnsAtom = Atom.make(() => []);
152
- var emptyItemsAtom = Atom.make(() => []);
153
- var emptyPipelineModel = {
154
- getColumnId: (data) => data.view.dxn.toString(),
155
- getItemId: (data) => data.id,
156
- isColumn: (obj) => Schema.is(Pipeline.Column)(obj),
157
- isItem: (obj) => Obj2.isObject(obj),
158
- columns: emptyColumnsAtom,
159
- items: () => emptyItemsAtom,
160
- getColumns: () => [],
161
- getItems: () => []
162
- };
163
- var usePipelineBoardModel = (pipeline, registry) => useMemo2(() => {
164
- if (pipeline == null) {
165
- return emptyPipelineModel;
166
- }
167
- const space = getSpace2(pipeline);
168
- const columnsAtom = AtomObj.makeProperty(pipeline, "columns");
169
- const columnAtomFamily = Atom.family((viewKey) => Atom.make((get) => {
170
- const columns = get(columnsAtom);
171
- return columns.find((c) => c.view.dxn.toString() === viewKey);
172
- }));
173
- const itemsAtomFamily = Atom.family((viewKey) => Atom.make((get) => {
174
- const column = get(columnAtomFamily(viewKey));
175
- if (column == null) {
176
- return [];
177
- }
178
- const viewSnapshot = get(AtomObj.make(column.view));
179
- if (!viewSnapshot?.query?.ast) {
180
- return [];
181
- }
182
- const query = Query2.fromAst(JSON.parse(JSON.stringify(viewSnapshot.query.ast)));
183
- const queryTarget = space ? getQueryTarget(query.ast, space) : void 0;
184
- if (!queryTarget) {
185
- return [];
186
- }
187
- const raw = get(AtomQuery.make(queryTarget, query));
188
- return isSpace(queryTarget) ? raw : [
189
- ...raw
190
- ].reverse();
191
- }));
192
- return {
193
- getColumnId: (data) => data.view.dxn.toString(),
194
- getItemId: (data) => data.id,
195
- isColumn: (obj) => Schema.is(Pipeline.Column)(obj),
196
- isItem: (obj) => Obj2.isObject(obj),
197
- columns: columnsAtom,
198
- items: (column) => itemsAtomFamily(column.view.dxn.toString()),
199
- getColumns: () => [
200
- ...registry.get(columnsAtom)
201
- ],
202
- getItems: (column) => registry.get(itemsAtomFamily(column.view.dxn.toString())) ?? []
203
- };
204
- }, [
205
- pipeline,
206
- registry
207
- ]);
208
- var PIPELINE_CONTENT_NAME = "Pipeline.Content";
209
- var PipelineContent = ({ pipeline }) => {
210
- const { model } = useBoard2(PIPELINE_CONTENT_NAME);
211
- const columns = useAtomValue2(model.columns);
212
- const eventHandler = useEventHandlerAdapter({
213
- id: pipeline.id,
214
- // TODO(wittjosiah): Cast because columns array is readonly.
215
- items: columns,
216
- getId: model.getColumnId,
217
- get: (data) => data,
218
- make: (object) => object,
219
- canDrop: ({ source }) => model.isColumn(source.data),
220
- onChange: (mutate) => Obj2.change(pipeline, (p) => mutate(p.columns))
221
- });
222
- return /* @__PURE__ */ React2.createElement(Board2.Content, {
223
- id: "pipeline",
224
- eventHandler,
225
- Tile: PipelineColumn
226
- });
227
- };
228
- PipelineContent.displayName = PIPELINE_CONTENT_NAME;
229
- var PIPELINE_TOOLBAR_NAME = "Pipeline.Toolbar";
230
- var PipelineToolbar = (props) => {
231
- const { t } = useTranslation2(meta.id);
232
- const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);
233
- return /* @__PURE__ */ React2.createElement(Toolbar.Root, props, /* @__PURE__ */ React2.createElement(Toolbar.IconButton, {
234
- icon: "ph--plus--regular",
235
- iconOnly: true,
236
- label: t("add column label"),
237
- onClick: onAddColumn
238
- }));
239
- };
240
- PipelineToolbar.displayName = PIPELINE_TOOLBAR_NAME;
241
- var PipelineComponent = {
242
- Root: PipelineRoot,
243
- Content: PipelineContent,
244
- Toolbar: PipelineToolbar
245
- };
246
-
247
- // src/components/PipelineContainer.tsx
248
- var PipelineContainer = ({ role, subject: pipeline }) => {
249
- const registry = useCapability(Capabilities.AtomRegistry);
250
- const model = usePipelineBoardModel(pipeline, registry);
251
- const { invokePromise } = useOperationInvoker();
252
- const attendableId = Obj3.getDXN(pipeline).toString();
253
- const { hasAttention } = useAttention(attendableId);
254
- const handleColumnAdd = useCallback(() => invokePromise(DeckOperation.ChangeCompanion, {
255
- primary: attendableId,
256
- companion: `${attendableId}${ATTENDABLE_PATH_SEPARATOR}settings`
257
- }), [
258
- invokePromise,
259
- attendableId
260
- ]);
261
- return /* @__PURE__ */ React3.createElement(Layout.Main, {
262
- role,
263
- toolbar: true
264
- }, /* @__PURE__ */ React3.createElement(PipelineComponent.Root, {
265
- Item: PipelineItem,
266
- model,
267
- onAddColumn: handleColumnAdd
268
- }, /* @__PURE__ */ React3.createElement(PipelineComponent.Toolbar, {
269
- disabled: !hasAttention
270
- }), /* @__PURE__ */ React3.createElement(PipelineComponent.Content, {
271
- pipeline
272
- })));
273
- };
274
- var PipelineItem = ({ item, projectionModel }) => {
275
- return /* @__PURE__ */ React3.createElement(Surface.Surface, {
276
- role: "card--content",
277
- data: {
278
- subject: item,
279
- projection: projectionModel
280
- },
281
- limit: 1
282
- });
283
- };
284
- var PipelineContainer_default = PipelineContainer;
285
- export {
286
- PipelineContainer,
287
- PipelineContainer_default as default
288
- };
289
- //# sourceMappingURL=PipelineContainer-2BRZPECS.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/PipelineContainer.tsx", "../../../src/components/PipelineComponent.tsx", "../../../src/components/PipelineColumn.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback } 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 { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckOperation } from '@dxos/plugin-deck/types';\nimport { Layout } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { type Pipeline as PipelineType } from '@dxos/types';\n\nimport { type ItemProps, PipelineComponent, usePipelineBoardModel } from './PipelineComponent';\n\nexport type PipelineContainerProps = SurfaceComponentProps<PipelineType.Pipeline>;\n\nexport const PipelineContainer = ({ role, subject: pipeline }: PipelineContainerProps) => {\n const registry = useCapability(Capabilities.AtomRegistry);\n const model = usePipelineBoardModel(pipeline, registry);\n const { invokePromise } = useOperationInvoker();\n const attendableId = Obj.getDXN(pipeline).toString();\n const { hasAttention } = useAttention(attendableId);\n\n const handleColumnAdd = useCallback(\n () =>\n invokePromise(DeckOperation.ChangeCompanion, {\n primary: attendableId,\n companion: `${attendableId}${ATTENDABLE_PATH_SEPARATOR}settings`,\n }),\n [invokePromise, attendableId],\n );\n\n return (\n <Layout.Main role={role} toolbar>\n <PipelineComponent.Root Item={PipelineItem} model={model} onAddColumn={handleColumnAdd}>\n <PipelineComponent.Toolbar disabled={!hasAttention} />\n <PipelineComponent.Content pipeline={pipeline} />\n </PipelineComponent.Root>\n </Layout.Main>\n );\n};\n\nconst PipelineItem = ({ item, projectionModel }: ItemProps) => {\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\nexport default PipelineContainer;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, type Registry, useAtomValue } from '@effect-atom/atom-react';\nimport { createContext } from '@radix-ui/react-context';\nimport * as Schema from 'effect/Schema';\nimport React, { type FC, type PropsWithChildren, 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 { 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 { Pipeline, type Pipeline as PipelineType } from '@dxos/types';\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\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 // onAddItem?: (schema: Schema.Schema.AnyNoContext) => void;\n onAddColumn?: () => void;\n};\n\n//\n// Root\n//\n\ntype PipelineRootProps = PropsWithChildren<\n PipelineContextValue & {\n model: BoardModel<PipelineType.Column, Obj.Unknown>;\n }\n>;\n\nconst PIPELINE_ROOT = 'Pipeline.Root';\n\nconst [PipelineRootContext, usePipeline] = createContext<PipelineContextValue>(PIPELINE_ROOT, {\n Item: itemNoOp,\n});\n\nconst PipelineRoot = ({ model, children, ...contextValue }: PipelineRootProps) => (\n <PipelineRootContext {...contextValue}>\n <Board.Root model={model}>{children}</Board.Root>\n </PipelineRootContext>\n);\n\nPipelineRoot.displayName = PIPELINE_ROOT;\n\n//\n// usePipelineBoardModel\n//\n\nconst emptyColumnsAtom = Atom.make(() => [] as PipelineType.Column[]);\nconst emptyItemsAtom = Atom.make(() => [] as Obj.Unknown[]);\nconst emptyPipelineModel: BoardModel<PipelineType.Column, Obj.Unknown> = {\n getColumnId: (data) => (data as PipelineType.Column).view.dxn.toString(),\n getItemId: (data) => (data as Obj.Unknown).id,\n isColumn: (obj: unknown): obj is PipelineType.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\nconst usePipelineBoardModel = (\n pipeline: PipelineType.Pipeline | undefined,\n registry: Registry.Registry,\n): BoardModel<PipelineType.Column, Obj.Unknown> =>\n useMemo<BoardModel<PipelineType.Column, Obj.Unknown>>(() => {\n if (pipeline == null) {\n return emptyPipelineModel;\n }\n const space = getSpace(pipeline);\n const columnsAtom = AtomObj.makeProperty(pipeline, 'columns');\n const columnAtomFamily = Atom.family<string, Atom.Atom<PipelineType.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 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 return {\n getColumnId: (data) => (data as PipelineType.Column).view.dxn.toString(),\n getItemId: (data) => (data as Obj.Unknown).id,\n isColumn: (obj: unknown): obj is PipelineType.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\n//\n// Content\n//\n\nconst PIPELINE_CONTENT_NAME = 'Pipeline.Content';\n\ntype PipelineContentProps = {\n pipeline: PipelineType.Pipeline;\n};\n\nconst PipelineContent = ({ pipeline }: PipelineContentProps) => {\n const { model } = useBoard(PIPELINE_CONTENT_NAME);\n const columns = useAtomValue(model.columns);\n const eventHandler = useEventHandlerAdapter<PipelineType.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 PipelineType.Column,\n canDrop: ({ source }) => model.isColumn(source.data),\n onChange: (mutate) => Obj.change(pipeline, (p) => mutate(p.columns)),\n });\n\n return <Board.Content id='pipeline' eventHandler={eventHandler} Tile={PipelineColumn} />;\n};\n\nPipelineContent.displayName = PIPELINE_CONTENT_NAME;\n\n//\n// Toolbar\n//\n\nconst PIPELINE_TOOLBAR_NAME = 'Pipeline.Toolbar';\n\nexport const PipelineToolbar = (props: ToolbarRootProps) => {\n const { t } = useTranslation(meta.id);\n const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);\n\n return (\n <Toolbar.Root {...props}>\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 Toolbar: PipelineToolbar,\n};\n\nexport { usePipeline, usePipelineBoardModel };\n\nexport type { ItemProps, PipelineContextValue, PipelineRootProps };\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport type * as Schema from 'effect/Schema';\nimport React, { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { Obj, Query, Type } from '@dxos/echo';\nimport { resolveSchemaWithRegistry } from '@dxos/plugin-space';\nimport { Filter, getSpace, useObject } from '@dxos/react-client/echo';\nimport { useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { Board, Card, Focus, Mosaic, type MosaicTileProps, useBoard } from '@dxos/react-ui-mosaic';\nimport { ProjectionModel, createEchoChangeCallback } from '@dxos/schema';\nimport { type Pipeline } from '@dxos/types';\nimport { mx } from '@dxos/ui-theme';\n\nimport { meta } from '../meta';\n\nimport { type ItemProps, usePipeline } from './PipelineComponent';\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 { model } = useBoard<Pipeline.Column, Obj.Unknown>(PIPELINE_COLUMN_NAME);\n const items = useAtomValue(model.items(column));\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 : Type.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 Tile = useMemo(() => {\n return forwardRef<HTMLDivElement, Pick<MosaicTileProps<Obj.Unknown>, 'classNames' | 'location' | 'data' | 'debug'>>(\n (props, ref) => <ItemTile {...props} ref={ref} itemProps={{ item: props.data, projectionModel }} />,\n );\n }, [Item, projectionModel]);\n\n if (!view) {\n return null;\n }\n\n const dragHandleRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Board.Column.Root\n data={column}\n location={location}\n classNames={classNames}\n debug={debug}\n dragHandleRef={dragHandleRef}\n >\n <div\n role='none'\n data-testid='board-column'\n className={mx('group/column grid bs-full overflow-hidden grid-rows-[var(--rail-action)_1fr]', classNames)}\n >\n <Board.Column.Header\n classNames='border-be border-separator'\n label={column.name ?? t('untitled view title')}\n dragHandleRef={dragHandleRef}\n />\n <Board.Column.Body data={column} Tile={Tile} />\n </div>\n </Board.Column.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\n return (\n <Mosaic.Tile asChild id={data.id} data={data} location={location} debug={debug}>\n <Focus.Group asChild>\n <Card.Root classNames={classNames} ref={composedRef}>\n <Card.Toolbar>\n <Card.DragHandle />\n <Card.Title>{Obj.getLabel(data)}</Card.Title>\n <Card.Menu />\n </Card.Toolbar>\n <Card.Content>\n <Item {...itemProps} />\n </Card.Content>\n </Card.Root>\n </Focus.Group>\n </Mosaic.Tile>\n );\n },\n);\n\nItemTile.displayName = ITEM_TILE_NAME;\n"],
5
- "mappings": ";;;;;AAIA,OAAOA,UAASC,mBAAmB;AAEnC,SAASC,oBAAoB;AAC7B,SAASC,qBAAqB;AAC9B,SAASC,2BAA2B;AACpC,SAASC,eAAe;AAExB,SAASC,OAAAA,YAAW;AACpB,SAASC,2BAA2BC,qBAAqB;AACzD,SAASC,cAAc;AACvB,SAASC,oBAAoB;;;ACV7B,SAASC,MAAqBC,gBAAAA,qBAAoB;AAClD,SAASC,qBAAqB;AAC9B,YAAYC,YAAY;AACxB,OAAOC,UAA0CC,WAAAA,gBAAe;AAEhE,SAASC,OAAAA,MAAKC,SAAAA,cAAa;AAC3B,SAASC,SAASC,iBAAiB;AACnC,SAASC,sBAAsB;AAC/B,SAASC,YAAAA,WAAUC,eAAe;AAClC,SAASC,SAAgCC,kBAAAA,uBAAsB;AAC/D,SAASC,SAAAA,QAAwBC,YAAAA,WAAUC,8BAA8B;AAEzE,SAASC,gBAA+C;;;ACZxD,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAEhC,OAAOC,SAASC,YAAYC,SAASC,QAAQC,gBAAgB;AAE7D,SAASC,KAAKC,OAAOC,YAAY;AACjC,SAASC,iCAAiC;AAC1C,SAASC,QAAQC,UAAUC,iBAAiB;AAC5C,SAASC,gBAAgBC,sBAAsB;AAC/C,SAASC,OAAOC,MAAMC,OAAOC,QAA8BC,gBAAgB;AAC3E,SAASC,iBAAiBC,gCAAgC;AAE1D,SAASC,UAAU;AAUnB,IAAMC,uBAAuB;AAKtB,IAAMC,iBAAiB,CAAC,EAAEC,MAAMC,QAAQC,UAAUC,YAAYC,MAAK,MAAuB;AAC/F,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAM,EAAEC,MAAK,IAAKC,SAAuCZ,oBAAAA;AACzD,QAAMa,QAAQC,aAAaH,MAAME,MAAMV,MAAAA,CAAAA;AAEvC,QAAM,CAACY,YAAAA,IAAgBC,UAAUb,OAAOc,IAAI;AAC5C,QAAMA,OAAOd,OAAOc,KAAKC;AACzB,QAAMC,QAAQC,SAASH,IAAAA;AACvB,QAAM,EAAEI,KAAI,IAAKC,YAAYtB,oBAAAA;AAC7B,QAAM,CAACuB,QAAQC,SAAAA,IAAaC,SAAAA;AAC5B,QAAMC,QAAQC,QAAQ,MAAA;AACpB,QAAI,CAACV,MAAM;AACT,aAAOW,MAAMC,OAAOC,OAAOC,QAAO,CAAA;IACpC,OAAO;AAGL,aAAOH,MAAMI,QAAQC,KAAKC,MAAMD,KAAKE,UAAUpB,cAAcW,MAAMU,GAAAA,CAAAA,CAAAA;IACrE;EACF,GAAG;IAACH,KAAKE,UAAUpB,cAAcW,MAAMU,GAAAA;GAAK;AAE5CC,iBAAe,YAAA;AACb,QAAI,CAACX,SAAS,CAACP,OAAOmB,IAAI;AACxB;IACF;AAEA,UAAMf,UAAS,MAAMgB,0BAA0BpB,MAAMmB,GAAGE,gBAAgBd,MAAMU,GAAG;AACjFZ,cAAU,MAAMD,OAAAA;EAClB,GAAG;IAACJ;IAAOO;GAAM;AAEjB,QAAMe,kBAAkBd,QAAQ,MAAA;AAC9B,QAAI,CAACJ,UAAU,CAACN,MAAM;AACpB,aAAOyB;IACT;AAGA,UAAMC,aAAaC,KAAKC,UAAUtB,MAAAA,IAAUA,OAAOoB,aAAaC,KAAKE,aAAavB,MAAAA;AAClF,UAAMwB,SAASC,yBAAyB/B,MAAM2B,KAAKC,UAAUtB,MAAAA,IAAUA,SAASmB,MAAAA;AAChF,WAAO,IAAIO,gBAAgB;MAAEhC;MAAMiC,YAAYP;MAAYI;IAAO,CAAA;EACpE,GAAG;IAACxB;IAAQN;GAAK;AAEjB,QAAMkC,OAAOxB,QAAQ,MAAA;AACnB,WAAOyB,2BACL,CAACC,OAAOC,QAAQ,sBAAA,cAACC,UAAAA;MAAU,GAAGF;MAAOC;MAAUE,WAAW;QAAEC,MAAMJ,MAAMnD;QAAMuC;MAAgB;;EAElG,GAAG;IAACpB;IAAMoB;GAAgB;AAE1B,MAAI,CAACxB,MAAM;AACT,WAAO;EACT;AAEA,QAAMyC,gBAAgBC,OAA0B,IAAA;AAEhD,SACE,sBAAA,cAACC,MAAMC,OAAOC,MAAI;IAChB5D,MAAMC;IACNC;IACAC;IACAC;IACAoD;KAEA,sBAAA,cAACK,OAAAA;IACCC,MAAK;IACLC,eAAY;IACZC,WAAWC,GAAG,gFAAgF9D,UAAAA;KAE9F,sBAAA,cAACuD,MAAMC,OAAOO,QAAM;IAClB/D,YAAW;IACXgE,OAAOlE,OAAOmE,QAAQ/D,EAAE,qBAAA;IACxBmD;MAEF,sBAAA,cAACE,MAAMC,OAAOU,MAAI;IAACrE,MAAMC;IAAQgD;;AAIzC;AAEAlD,eAAeuE,cAAcxE;AAM7B,IAAMyE,iBAAiB;AAMvB,IAAMlB,WAAWH,2BACf,CAAC,EAAE/C,YAAYH,MAAME,UAAUE,OAAOkD,UAAS,GAAIkB,iBAAAA;AACjD,QAAMC,UAAUhB,OAAuB,IAAA;AACvC,QAAMiB,cAAcC,gBAAgCF,SAASD,YAAAA;AAC7D,QAAM,EAAErD,KAAI,IAAKC,YAAYmD,cAAAA;AAE7B,SACE,sBAAA,cAACK,OAAO3B,MAAI;IAAC4B,SAAAA;IAAQrE,IAAIR,KAAKQ;IAAIR;IAAYE;IAAoBE;KAChE,sBAAA,cAAC0E,MAAMC,OAAK;IAACF,SAAAA;KACX,sBAAA,cAACG,KAAKpB,MAAI;IAACzD;IAAwBiD,KAAKsB;KACtC,sBAAA,cAACM,KAAKC,SAAO,MACX,sBAAA,cAACD,KAAKE,YAAU,IAAA,GAChB,sBAAA,cAACF,KAAKG,OAAK,MAAEC,IAAIC,SAASrF,IAAAA,CAAAA,GAC1B,sBAAA,cAACgF,KAAKM,MAAI,IAAA,CAAA,GAEZ,sBAAA,cAACN,KAAKO,SAAO,MACX,sBAAA,cAACpE,MAASmC,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAMtB,CAAA;AAGFD,SAASiB,cAAcC;;;ADrHvB,IAAMiB,WAAW,CAAC,EAAEC,KAAI,MAAkB,gBAAAC,OAAA,cAACC,QAAAA,MAAMF,KAAKG,EAAE;AAoBxD,IAAMC,gBAAgB;AAEtB,IAAM,CAACC,qBAAqBC,WAAAA,IAAeC,cAAoCH,eAAe;EAC5FI,MAAMT;AACR,CAAA;AAEA,IAAMU,eAAe,CAAC,EAAEC,OAAOC,UAAU,GAAGC,aAAAA,MAC1C,gBAAAX,OAAA,cAACI,qBAAwBO,cACvB,gBAAAX,OAAA,cAACY,OAAMC,MAAI;EAACJ;GAAeC,QAAAA,CAAAA;AAI/BF,aAAaM,cAAcX;AAM3B,IAAMY,mBAAmBC,KAAKC,KAAK,MAAM,CAAA,CAAE;AAC3C,IAAMC,iBAAiBF,KAAKC,KAAK,MAAM,CAAA,CAAE;AACzC,IAAME,qBAAmE;EACvEC,aAAa,CAACC,SAAUA,KAA6BC,KAAKC,IAAIC,SAAQ;EACtEC,WAAW,CAACJ,SAAUA,KAAqBnB;EAC3CwB,UAAU,CAACC,QAAoDC,UAAGC,SAASC,MAAM,EAAEH,GAAAA;EACnFI,QAAQ,CAACJ,QAA4BK,KAAIC,SAASN,GAAAA;EAClDO,SAASnB;EACToB,OAAO,MAAMjB;EACbkB,YAAY,MAAM,CAAA;EAClBC,UAAU,MAAM,CAAA;AAClB;AAEA,IAAMC,wBAAwB,CAC5BC,UACAC,aAEAC,SAAsD,MAAA;AACpD,MAAIF,YAAY,MAAM;AACpB,WAAOpB;EACT;AACA,QAAMuB,QAAQC,UAASJ,QAAAA;AACvB,QAAMK,cAAcC,QAAQC,aAAaP,UAAU,SAAA;AACnD,QAAMQ,mBAAmB/B,KAAKgC,OAA2D,CAACC,YACxFjC,KAAKC,KAAK,CAACiC,QAAAA;AACT,UAAMhB,UAAUgB,IAAIN,WAAAA;AACpB,WAAOV,QAAQiB,KAAK,CAACC,MAAMA,EAAE9B,KAAKC,IAAIC,SAAQ,MAAOyB,OAAAA;EACvD,CAAA,CAAA;AAEF,QAAMI,kBAAkBrC,KAAKgC,OAAyC,CAACC,YACrEjC,KAAKC,KAAK,CAACiC,QAAAA;AACT,UAAMI,SAASJ,IAAIH,iBAAiBE,OAAAA,CAAAA;AACpC,QAAIK,UAAU,MAAM;AAClB,aAAO,CAAA;IACT;AACA,UAAMC,eAAeL,IAAIL,QAAQ5B,KAAKqC,OAAOhC,IAAI,CAAA;AACjD,QAAI,CAACiC,cAAcC,OAAOC,KAAK;AAC7B,aAAO,CAAA;IACT;AACA,UAAMD,QAAQE,OAAMC,QAAQC,KAAKC,MAAMD,KAAKE,UAAUP,aAAaC,MAAMC,GAAG,CAAA,CAAA;AAC5E,UAAMM,cAAcrB,QAAQsB,eAAeR,MAAMC,KAAKf,KAAAA,IAASuB;AAC/D,QAAI,CAACF,aAAa;AAChB,aAAO,CAAA;IACT;AACA,UAAMG,MAAMhB,IAAIiB,UAAUlD,KAAK8C,aAAaP,KAAAA,CAAAA;AAC5C,WAAOY,QAAQL,WAAAA,IAAeG,MAAM;SAAIA;MAAKG,QAAO;EACtD,CAAA,CAAA;AAEF,SAAO;IACLjD,aAAa,CAACC,SAAUA,KAA6BC,KAAKC,IAAIC,SAAQ;IACtEC,WAAW,CAACJ,SAAUA,KAAqBnB;IAC3CwB,UAAU,CAACC,QAAoDC,UAAGC,SAASC,MAAM,EAAEH,GAAAA;IACnFI,QAAQ,CAACJ,QAAqCK,KAAIC,SAASN,GAAAA;IAC3DO,SAASU;IACTT,OAAO,CAACmB,WAAWD,gBAAgBC,OAAOhC,KAAKC,IAAIC,SAAQ,CAAA;IAC3DY,YAAY,MAAM;SAAII,SAASU,IAAIN,WAAAA;;IACnCP,UAAU,CAACiB,WAAWd,SAASU,IAAIG,gBAAgBC,OAAOhC,KAAKC,IAAIC,SAAQ,CAAA,CAAA,KAAQ,CAAA;EACrF;AACF,GAAG;EAACe;EAAUC;CAAS;AAMzB,IAAM8B,wBAAwB;AAM9B,IAAMC,kBAAkB,CAAC,EAAEhC,SAAQ,MAAwB;AACzD,QAAM,EAAE9B,MAAK,IAAK+D,UAASF,qBAAAA;AAC3B,QAAMpC,UAAUuC,cAAahE,MAAMyB,OAAO;AAC1C,QAAMwC,eAAeC,uBAAyD;IAC5EzE,IAAIqC,SAASrC;;IAEbiC,OAAOD;IACP0C,OAAOnE,MAAMW;IACb8B,KAAK,CAAC7B,SAASA;IACfJ,MAAM,CAAC4D,WAAWA;IAClBC,SAAS,CAAC,EAAEC,OAAM,MAAOtE,MAAMiB,SAASqD,OAAO1D,IAAI;IACnD2D,UAAU,CAACC,WAAWjD,KAAIkD,OAAO3C,UAAU,CAAC4C,MAAMF,OAAOE,EAAEjD,OAAO,CAAA;EACpE,CAAA;AAEA,SAAO,gBAAAlC,OAAA,cAACY,OAAMwE,SAAO;IAAClF,IAAG;IAAWwE;IAA4BW,MAAMC;;AACxE;AAEAf,gBAAgBzD,cAAcwD;AAM9B,IAAMiB,wBAAwB;AAEvB,IAAMC,kBAAkB,CAACC,UAAAA;AAC9B,QAAM,EAAEC,EAAC,IAAKC,gBAAeC,KAAK1F,EAAE;AACpC,QAAM,EAAE2F,YAAW,IAAKxF,YAAYkF,qBAAAA;AAEpC,SACE,gBAAAvF,OAAA,cAAC8F,QAAQjF,MAAS4E,OAChB,gBAAAzF,OAAA,cAAC8F,QAAQC,YAAU;IAACC,MAAK;IAAoBC,UAAAA;IAASC,OAAOR,EAAE,kBAAA;IAAqBS,SAASN;;AAGnG;AAEAL,gBAAgB1E,cAAcyE;AAMvB,IAAMa,oBAAoB;EAC/BvF,MAAML;EACN4E,SAASb;EACTuB,SAASN;AACX;;;ADhKO,IAAMa,oBAAoB,CAAC,EAAEC,MAAMC,SAASC,SAAQ,MAA0B;AACnF,QAAMC,WAAWC,cAAcC,aAAaC,YAAY;AACxD,QAAMC,QAAQC,sBAAsBN,UAAUC,QAAAA;AAC9C,QAAM,EAAEM,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,eAAeC,KAAIC,OAAOX,QAAAA,EAAUY,SAAQ;AAClD,QAAM,EAAEC,aAAY,IAAKC,aAAaL,YAAAA;AAEtC,QAAMM,kBAAkBC,YACtB,MACET,cAAcU,cAAcC,iBAAiB;IAC3CC,SAASV;IACTW,WAAW,GAAGX,YAAAA,GAAeY,yBAAAA;EAC/B,CAAA,GACF;IAACd;IAAeE;GAAa;AAG/B,SACE,gBAAAa,OAAA,cAACC,OAAOC,MAAI;IAAC1B;IAAY2B,SAAAA;KACvB,gBAAAH,OAAA,cAACI,kBAAkBC,MAAI;IAACC,MAAMC;IAAcxB;IAAcyB,aAAaf;KACrE,gBAAAO,OAAA,cAACI,kBAAkBK,SAAO;IAACC,UAAU,CAACnB;MACtC,gBAAAS,OAAA,cAACI,kBAAkBO,SAAO;IAACjC;;AAInC;AAEA,IAAM6B,eAAe,CAAC,EAAEK,MAAMC,gBAAe,MAAa;AACxD,SACE,gBAAAb,OAAA,cAACc,QAAQA,SAAO;IACdtC,MAAK;IACLuC,MAAM;MACJtC,SAASmC;MACTI,YAAYH;IACd;IACAI,OAAO;;AAGb;AAEA,IAAA,4BAAe1C;",
6
- "names": ["React", "useCallback", "Capabilities", "useCapability", "useOperationInvoker", "Surface", "Obj", "ATTENDABLE_PATH_SEPARATOR", "DeckOperation", "Layout", "useAttention", "Atom", "useAtomValue", "createContext", "Schema", "React", "useMemo", "Obj", "Query", "AtomObj", "AtomQuery", "getQueryTarget", "getSpace", "isSpace", "Toolbar", "useTranslation", "Board", "useBoard", "useEventHandlerAdapter", "Pipeline", "useAtomValue", "useComposedRefs", "React", "forwardRef", "useMemo", "useRef", "useState", "Obj", "Query", "Type", "resolveSchemaWithRegistry", "Filter", "getSpace", "useObject", "useAsyncEffect", "useTranslation", "Board", "Card", "Focus", "Mosaic", "useBoard", "ProjectionModel", "createEchoChangeCallback", "mx", "PIPELINE_COLUMN_NAME", "PipelineColumn", "data", "column", "location", "classNames", "debug", "t", "useTranslation", "meta", "id", "model", "useBoard", "items", "useAtomValue", "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", "toJsonSchema", "change", "createEchoChangeCallback", "ProjectionModel", "baseSchema", "Tile", "forwardRef", "props", "ref", "ItemTile", "itemProps", "item", "dragHandleRef", "useRef", "Board", "Column", "Root", "div", "role", "data-testid", "className", "mx", "Header", "label", "name", "Body", "displayName", "ITEM_TILE_NAME", "forwardedRef", "rootRef", "composedRef", "useComposedRefs", "Mosaic", "asChild", "Focus", "Group", "Card", "Toolbar", "DragHandle", "Title", "Obj", "getLabel", "Menu", "Content", "itemNoOp", "item", "React", "span", "id", "PIPELINE_ROOT", "PipelineRootContext", "usePipeline", "createContext", "Item", "PipelineRoot", "model", "children", "contextValue", "Board", "Root", "displayName", "emptyColumnsAtom", "Atom", "make", "emptyItemsAtom", "emptyPipelineModel", "getColumnId", "data", "view", "dxn", "toString", "getItemId", "isColumn", "obj", "is", "Pipeline", "Column", "isItem", "Obj", "isObject", "columns", "items", "getColumns", "getItems", "usePipelineBoardModel", "pipeline", "registry", "useMemo", "space", "getSpace", "columnsAtom", "AtomObj", "makeProperty", "columnAtomFamily", "family", "viewKey", "get", "find", "c", "itemsAtomFamily", "column", "viewSnapshot", "query", "ast", "Query", "fromAst", "JSON", "parse", "stringify", "queryTarget", "getQueryTarget", "undefined", "raw", "AtomQuery", "isSpace", "reverse", "PIPELINE_CONTENT_NAME", "PipelineContent", "useBoard", "useAtomValue", "eventHandler", "useEventHandlerAdapter", "getId", "object", "canDrop", "source", "onChange", "mutate", "change", "p", "Content", "Tile", "PipelineColumn", "PIPELINE_TOOLBAR_NAME", "PipelineToolbar", "props", "t", "useTranslation", "meta", "onAddColumn", "Toolbar", "IconButton", "icon", "iconOnly", "label", "onClick", "PipelineComponent", "PipelineContainer", "role", "subject", "pipeline", "registry", "useCapability", "Capabilities", "AtomRegistry", "model", "usePipelineBoardModel", "invokePromise", "useOperationInvoker", "attendableId", "Obj", "getDXN", "toString", "hasAttention", "useAttention", "handleColumnAdd", "useCallback", "DeckOperation", "ChangeCompanion", "primary", "companion", "ATTENDABLE_PATH_SEPARATOR", "React", "Layout", "Main", "toolbar", "PipelineComponent", "Root", "Item", "PipelineItem", "onAddColumn", "Toolbar", "disabled", "Content", "item", "projectionModel", "Surface", "data", "projection", "limit"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/PipelineSettings.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { DXN, Filter, Query, type QueryAST, Ref, Tag, Type } from '@dxos/echo';\nimport { type Mutable } from '@dxos/echo/internal';\nimport { useTypeOptions } from '@dxos/plugin-space';\nimport { resolveSchemaWithRegistry } from '@dxos/plugin-space';\nimport { getSpace, useObject, useQuery } from '@dxos/react-client/echo';\nimport { IconButton, type ThemedClassName, useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { Form, ViewEditor } from '@dxos/react-ui-form';\nimport { List } from '@dxos/react-ui-list';\nimport { type ProjectionModel, View } from '@dxos/schema';\nimport { Pipeline, Task } from '@dxos/types';\nimport { mx, osTranslations, subtleHover } from '@dxos/ui-theme';\nimport { arrayMove } from '@dxos/util';\n\nimport { meta } from '../meta';\n\nconst listGrid = 'grid grid-cols-[min-content_1fr_min-content_min-content_min-content]';\nconst listItemGrid = 'grid grid-cols-subgrid col-span-5';\n\nconst ColumnFormSchema = Pipeline.Column.pipe(Schema.mutable, Schema.pick('name'));\n\n// TODO(burdon): Standardize Object/Plugin settings.\nexport type PipelineObjectSettingsProps = ThemedClassName<{\n pipeline: Pipeline.Pipeline;\n}>;\n\n/**\n * Supports editing the pipeline view.\n */\nexport const PipelineObjectSettings = ({ classNames, pipeline }: PipelineObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const space = getSpace(pipeline);\n const [expandedId, setExpandedId] = useState<string>();\n const [columns, updateColumns] = useObject(pipeline, 'columns');\n const column = useMemo(\n () => columns.find((column) => column.view.dxn.toString() === expandedId),\n [columns, expandedId],\n );\n const [view, updateView] = useObject(column?.view);\n const [schema, setSchema] = useState<Schema.Schema.AnyNoContext>(() => Schema.Struct({}));\n const projectionRef = useRef<ProjectionModel>(null);\n const tags = useQuery(space?.db, Filter.type(Tag.Tag));\n const types = useTypeOptions({\n space,\n annotation: {\n location: ['database', 'runtime'],\n kind: ['user'],\n registered: ['registered', 'unregistered'],\n },\n });\n\n useAsyncEffect(async () => {\n if (!view?.query || !space) {\n return;\n }\n\n const foundSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, view.query.ast);\n if (foundSchema && foundSchema !== schema) {\n setSchema(() => foundSchema);\n }\n }, [space, view, schema]);\n\n const handleMove = useCallback(\n (fromIndex: number, toIndex: number) =>\n updateColumns((columns) => {\n arrayMove(columns, fromIndex, toIndex);\n }),\n [updateColumns],\n );\n\n const handleQueryChanged = useCallback(\n async (newQuery: QueryAST.Query, target?: string) => {\n if (!view || !space) {\n return;\n }\n\n const queue = target && DXN.tryParse(target) ? target : undefined;\n const query = queue ? Query.fromAst(newQuery).options({ queues: [queue] }) : Query.fromAst(newQuery);\n updateView((view) => {\n view.query.ast = query.ast as Mutable<typeof query.ast>;\n });\n const newSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);\n if (!newSchema) {\n return;\n }\n\n const newView = View.make({\n query,\n jsonSchema: Type.toJsonSchema(newSchema),\n });\n updateView((view) => {\n view.projection = newView.projection as Mutable<typeof view.projection>;\n });\n\n setSchema(() => newSchema);\n },\n [view, updateView, schema],\n );\n\n const handleToggleField = useCallback((column: Pipeline.Column) => {\n setExpandedId((prevExpandedId) =>\n prevExpandedId === column.view.dxn.toString() ? undefined : column.view.dxn.toString(),\n );\n }, []);\n\n const handleDelete = useCallback(\n async (column: Pipeline.Column) => {\n if (column.view.dxn.toString() === expandedId) {\n setExpandedId(undefined);\n }\n\n const index = columns.findIndex((l) => l === column);\n const viewToRemove = await column.view.load();\n updateColumns((columns) => {\n columns.splice(index, 1);\n });\n space?.db.remove(viewToRemove);\n },\n [expandedId, columns, updateColumns, space],\n );\n\n const handleAdd = useCallback(() => {\n if (!space) {\n return;\n }\n const newView = View.make({\n query: Query.select(Filter.type(Task.Task)),\n jsonSchema: Type.toJsonSchema(Task.Task),\n });\n space.db.add(newView);\n updateColumns((columns) => {\n columns.push({\n name: 'Tasks',\n // Type assertion needed due to QueryAST type variance.\n view: Ref.make(newView) as (typeof columns)[number]['view'],\n order: [],\n });\n });\n setExpandedId(newView.id);\n }, [space, updateColumns]);\n\n const handleColumnSave = useCallback(\n (values: Schema.Schema.Type<typeof ColumnFormSchema>) => {\n if (column) {\n const columnIndex = columns.findIndex((c) => c === column);\n updateColumns((columns) => {\n columns[columnIndex].name = values.name;\n });\n }\n },\n [column, columns, updateColumns],\n );\n\n return (\n <div role='none' className={mx('plb-cardSpacingBlock overflow-y-auto', classNames)}>\n <h2 className='text-sm text-description plb-1'>{t('views label')}</h2>\n\n <List.Root<Pipeline.Column>\n items={columns}\n isItem={Schema.is(Pipeline.Column)}\n getId={(column) => column.view.dxn.toString()}\n onMove={handleMove}\n >\n {({ items: columns }) => (\n <>\n <div role='list' className={mx(listGrid)}>\n {columns.map((column) => (\n <List.Item<Pipeline.Column>\n key={column.view.dxn.toString()}\n item={column}\n classNames={listItemGrid}\n aria-expanded={expandedId === column.view.dxn.toString()}\n >\n <div role='none' className={mx(subtleHover, listItemGrid, 'rounded-sm cursor-pointer min-bs-10')}>\n <List.ItemDragHandle />\n <List.ItemTitle onClick={() => handleToggleField(column)}>{column.name}</List.ItemTitle>\n <List.ItemDeleteButton\n label={t('delete view label')}\n autoHide={false}\n onClick={() => handleDelete(column)}\n data-testid='view.delete'\n />\n <IconButton\n iconOnly\n variant='ghost'\n label={t('toggle expand label', { ns: osTranslations })}\n icon={\n expandedId === column.view.dxn.toString()\n ? 'ph--caret-down--regular'\n : 'ph--caret-right--regular'\n }\n onClick={() => handleToggleField(column)}\n />\n </div>\n {expandedId === column.view.dxn.toString() && column?.view.target && (\n <div role='none' className='col-span-5 mlb-2 border border-separator rounded-md'>\n <Form.Root schema={ColumnFormSchema} values={column} autoSave onSave={handleColumnSave}>\n <Form.Content>\n <Form.FieldSet />\n </Form.Content>\n </Form.Root>\n <ViewEditor\n ref={projectionRef}\n mode='tag'\n readonly\n schema={schema}\n view={column.view.target}\n registry={space?.db.schemaRegistry}\n tags={tags}\n types={types}\n onQueryChanged={handleQueryChanged}\n />\n </div>\n )}\n </List.Item>\n ))}\n </div>\n </>\n )}\n </List.Root>\n\n <div role='none' className='mlb-cardSpacingBlock'>\n <IconButton icon='ph--plus--regular' label={t('add view label')} onClick={handleAdd} classNames='is-full' />\n </div>\n </div>\n );\n};\n\nexport default PipelineObjectSettings;\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "React", "useCallback", "useMemo", "useRef", "useState", "DXN", "Filter", "Query", "Ref", "Tag", "Type", "useTypeOptions", "resolveSchemaWithRegistry", "getSpace", "useObject", "useQuery", "IconButton", "useAsyncEffect", "useTranslation", "Form", "ViewEditor", "List", "View", "Pipeline", "Task", "mx", "osTranslations", "subtleHover", "arrayMove", "listGrid", "listItemGrid", "ColumnFormSchema", "Pipeline", "Column", "pipe", "mutable", "pick", "PipelineObjectSettings", "classNames", "pipeline", "t", "useTranslation", "meta", "id", "space", "getSpace", "expandedId", "setExpandedId", "useState", "columns", "updateColumns", "useObject", "column", "useMemo", "find", "view", "dxn", "toString", "updateView", "schema", "setSchema", "Struct", "projectionRef", "useRef", "tags", "useQuery", "db", "Filter", "type", "Tag", "types", "useTypeOptions", "annotation", "location", "kind", "registered", "useAsyncEffect", "query", "foundSchema", "resolveSchemaWithRegistry", "schemaRegistry", "ast", "handleMove", "useCallback", "fromIndex", "toIndex", "arrayMove", "handleQueryChanged", "newQuery", "target", "queue", "DXN", "tryParse", "undefined", "Query", "fromAst", "options", "queues", "newSchema", "newView", "View", "make", "jsonSchema", "Type", "toJsonSchema", "projection", "handleToggleField", "prevExpandedId", "handleDelete", "index", "findIndex", "l", "viewToRemove", "load", "splice", "remove", "handleAdd", "select", "Task", "add", "push", "name", "Ref", "order", "handleColumnSave", "values", "columnIndex", "c", "div", "role", "className", "mx", "h2", "List", "Root", "items", "isItem", "is", "getId", "onMove", "map", "Item", "key", "item", "aria-expanded", "subtleHover", "ItemDragHandle", "ItemTitle", "onClick", "ItemDeleteButton", "label", "autoHide", "data-testid", "IconButton", "iconOnly", "variant", "ns", "osTranslations", "icon", "Form", "autoSave", "onSave", "Content", "FieldSet", "ViewEditor", "ref", "mode", "readonly", "registry", "onQueryChanged"]
7
- }
@@ -1,65 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-QWNKLHBY.mjs";
4
-
5
- // src/capabilities/app-graph-builder/app-graph-builder.ts
6
- import * as Effect from "effect/Effect";
7
- import { Capability } from "@dxos/app-framework";
8
- import { AppCapabilities } from "@dxos/app-toolkit";
9
- import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
10
- import { GraphBuilder } from "@dxos/plugin-graph";
11
- import { Pipeline } from "@dxos/types";
12
- var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
13
- const extensions = yield* Effect.all([
14
- GraphBuilder.createTypeExtension({
15
- id: `${meta.id}/triggers`,
16
- type: Pipeline.Pipeline,
17
- connector: (pipeline) => {
18
- const nodeId = pipeline.id;
19
- return Effect.succeed([
20
- {
21
- id: [
22
- nodeId,
23
- "invocations"
24
- ].join(ATTENDABLE_PATH_SEPARATOR),
25
- type: PLANK_COMPANION_TYPE,
26
- data: "invocations",
27
- properties: {
28
- label: [
29
- "pipeline invocations label",
30
- {
31
- ns: meta.id
32
- }
33
- ],
34
- icon: "ph--clock-countdown--regular",
35
- disposition: "hidden"
36
- }
37
- },
38
- {
39
- id: [
40
- nodeId,
41
- "automation"
42
- ].join(ATTENDABLE_PATH_SEPARATOR),
43
- type: PLANK_COMPANION_TYPE,
44
- data: "automation",
45
- properties: {
46
- label: [
47
- "pipeline automation label",
48
- {
49
- ns: meta.id
50
- }
51
- ],
52
- icon: "ph--lightning--regular",
53
- disposition: "hidden"
54
- }
55
- }
56
- ]);
57
- }
58
- })
59
- ]);
60
- return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
61
- }));
62
- export {
63
- app_graph_builder_default as default
64
- };
65
- //# sourceMappingURL=app-graph-builder-NUJB33F7.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { GraphBuilder } from '@dxos/plugin-graph';\nimport { Pipeline } from '@dxos/types';\n\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* Effect.all([\n GraphBuilder.createTypeExtension({\n id: `${meta.id}/triggers`,\n type: Pipeline.Pipeline,\n connector: (pipeline) => {\n const nodeId = pipeline.id;\n return Effect.succeed([\n {\n id: [nodeId, 'invocations'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'invocations',\n properties: {\n label: ['pipeline invocations label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n disposition: 'hidden',\n },\n },\n {\n id: [nodeId, 'automation'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'automation',\n properties: {\n label: ['pipeline automation label', { ns: meta.id }],\n icon: 'ph--lightning--regular',\n disposition: 'hidden',\n },\n },\n ]);\n },\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
- "mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,2BAA2BC,4BAA4B;AAChE,SAASC,oBAAoB;AAC7B,SAASC,gBAAgB;AAIzB,IAAA,4BAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAcC,WAAI;IACnCC,aAAaC,oBAAoB;MAC/BC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAMC,SAASA;MACfC,WAAW,CAACC,aAAAA;AACV,cAAMC,SAASD,SAASL;AACxB,eAAcO,eAAQ;UACpB;YACEP,IAAI;cAACM;cAAQ;cAAeE,KAAKC,yBAAAA;YACjCP,MAAMQ;YACNC,MAAM;YACNC,YAAY;cACVC,OAAO;gBAAC;gBAA8B;kBAAEC,IAAIb,KAAKD;gBAAG;;cACpDe,MAAM;cACNC,aAAa;YACf;UACF;UACA;YACEhB,IAAI;cAACM;cAAQ;cAAcE,KAAKC,yBAAAA;YAChCP,MAAMQ;YACNC,MAAM;YACNC,YAAY;cACVC,OAAO;gBAAC;gBAA6B;kBAAEC,IAAIb,KAAKD;gBAAG;;cACnDe,MAAM;cACNC,aAAa;YACf;UACF;SACD;MACH;IACF,CAAA;GACD;AAED,SAAOvB,WAAWwB,YAAYC,gBAAgBC,iBAAiBvB,UAAAA;AACjE,CAAA,CAAA;",
6
- "names": ["Effect", "Capability", "AppCapabilities", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "GraphBuilder", "Pipeline", "Capability", "makeModule", "fnUntraced", "extensions", "all", "GraphBuilder", "createTypeExtension", "id", "meta", "type", "Pipeline", "connector", "pipeline", "nodeId", "succeed", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "data", "properties", "label", "ns", "icon", "disposition", "contributes", "AppCapabilities", "AppGraphBuilder"]
7
- }
@@ -1,42 +0,0 @@
1
- import {
2
- __export,
3
- meta
4
- } from "./chunk-QWNKLHBY.mjs";
5
-
6
- // src/types/PipelineAction.ts
7
- var PipelineAction_exports = {};
8
- __export(PipelineAction_exports, {
9
- PipelineOperation: () => PipelineOperation
10
- });
11
- import * as Schema from "effect/Schema";
12
- import { Capability } from "@dxos/app-framework";
13
- import { Operation } from "@dxos/operation";
14
- import { SpaceSchema } from "@dxos/react-client/echo";
15
- import { Collection } from "@dxos/schema";
16
- var PIPELINE_OPERATION = `${meta.id}/operation`;
17
- (function(PipelineOperation2) {
18
- PipelineOperation2.OnCreateSpace = Operation.make({
19
- meta: {
20
- key: `${PIPELINE_OPERATION}/on-create-space`,
21
- name: "On Create Space"
22
- },
23
- services: [
24
- Capability.Service
25
- ],
26
- schema: {
27
- input: Schema.Struct({
28
- space: SpaceSchema,
29
- rootCollection: Collection.Collection,
30
- isDefault: Schema.optional(Schema.Boolean)
31
- }),
32
- output: Schema.Void
33
- }
34
- });
35
- })(PipelineOperation || (PipelineOperation = {}));
36
- var PipelineOperation;
37
-
38
- export {
39
- PipelineOperation,
40
- PipelineAction_exports
41
- };
42
- //# sourceMappingURL=chunk-7GVESVYR.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/PipelineAction.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nconst PIPELINE_OPERATION = `${meta.id}/operation`;\n\nexport namespace PipelineOperation {\n export const OnCreateSpace = Operation.make({\n meta: { key: `${PIPELINE_OPERATION}/on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n isDefault: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n },\n });\n}\n"],
5
- "mappings": ";;;;;;AAAA;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;AAI3B,IAAMC,qBAAqB,GAAGC,KAAKC,EAAE;UAEpBC,oBAAAA;qBACFC,gBAAgBC,UAAUC,KAAK;IAC1CL,MAAM;MAAEM,KAAK,GAAGP,kBAAAA;MAAsCQ,MAAM;IAAkB;IAC9EC,UAAU;MAACC,WAAWC;;IACtBC,QAAQ;MACNC,OAAcC,cAAO;QACnBC,OAAOC;QACPC,gBAAgBC,WAAWA;QAC3BC,WAAkBC,gBAAgBC,cAAO;MAC3C,CAAA;MACAC,QAAeC;IACjB;EACF,CAAA;AACF,GAbiBpB,sBAAAA,oBAAAA,CAAAA,EAAAA;;",
6
- "names": ["Schema", "Capability", "Operation", "SpaceSchema", "Collection", "PIPELINE_OPERATION", "meta", "id", "PipelineOperation", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "schema", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "isDefault", "optional", "Boolean", "output", "Void"]
7
- }
@@ -1,109 +0,0 @@
1
- import {
2
- PipelineOperation
3
- } from "./chunk-7GVESVYR.mjs";
4
- import {
5
- meta
6
- } from "./chunk-QWNKLHBY.mjs";
7
-
8
- // src/PipelinePlugin.tsx
9
- import * as Effect2 from "effect/Effect";
10
- import { Capability as Capability4, Plugin } from "@dxos/app-framework";
11
- import { AppPlugin } from "@dxos/app-toolkit";
12
- import { Operation } from "@dxos/operation";
13
- import { SpaceCapabilities, SpaceEvents } from "@dxos/plugin-space";
14
- import { Pipeline as Pipeline3 } from "@dxos/types";
15
-
16
- // src/capabilities/app-graph-builder/index.ts
17
- import { Capability } from "@dxos/app-framework";
18
- var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-NUJB33F7.mjs"));
19
-
20
- // src/capabilities/operation-resolver/operation-resolver.ts
21
- import * as Effect from "effect/Effect";
22
- import { Capabilities, Capability as Capability2 } from "@dxos/app-framework";
23
- import { Obj, Ref, Type } from "@dxos/echo";
24
- import { OperationResolver } from "@dxos/operation";
25
- import { Collection } from "@dxos/schema";
26
- import { Pipeline } from "@dxos/types";
27
- var operation_resolver_default = Capability2.makeModule(() => Effect.succeed(Capability2.contributes(Capabilities.OperationResolver, [
28
- OperationResolver.make({
29
- operation: PipelineOperation.OnCreateSpace,
30
- handler: Effect.fnUntraced(function* ({ rootCollection }) {
31
- const collection = Collection.makeManaged({
32
- key: Type.getTypename(Pipeline.Pipeline)
33
- });
34
- Obj.change(rootCollection, (c) => {
35
- c.objects.push(Ref.make(collection));
36
- });
37
- })
38
- })
39
- ])));
40
-
41
- // src/capabilities/react-surface/index.ts
42
- import { Capability as Capability3 } from "@dxos/app-framework";
43
- var ReactSurface = Capability3.lazy("ReactSurface", () => import("./react-surface-CMTEEE6F.mjs"));
44
-
45
- // src/translations.ts
46
- import { Pipeline as Pipeline2 } from "@dxos/types";
47
- var translations = [
48
- {
49
- "en-US": {
50
- [Pipeline2.Pipeline.typename]: {
51
- "typename label": "Pipeline",
52
- "typename label_zero": "Pipelines",
53
- "typename label_one": "Pipeline",
54
- "typename label_other": "Pipelines",
55
- "object name placeholder": "New pipeline",
56
- "rename object label": "Rename pipeline",
57
- "delete object label": "Delete pipeline",
58
- "object deleted label": "Pipeline deleted"
59
- },
60
- [meta.id]: {
61
- "plugin name": "Pipelines",
62
- "add column label": "Add column",
63
- "add card label": "Add object",
64
- "untitled view title": "New view",
65
- "enumerating tab label": "List",
66
- "editing tab label": "Edit",
67
- "views label": "Views",
68
- "pipeline invocations label": "Invocations",
69
- "pipeline automation label": "Automations",
70
- "toggle expand label": "Toggle expand",
71
- "delete view label": "Delete view",
72
- "add view label": "Add view"
73
- }
74
- }
75
- }
76
- ];
77
-
78
- // src/PipelinePlugin.tsx
79
- var PipelinePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
80
- activate: AppGraphBuilder
81
- }), AppPlugin.addMetadataModule({
82
- metadata: {
83
- id: Pipeline3.Pipeline.typename,
84
- metadata: {
85
- icon: "ph--path--regular",
86
- iconHue: "purple",
87
- createObject: (props) => Effect2.sync(() => Pipeline3.make(props))
88
- }
89
- }
90
- }), AppPlugin.addOperationResolverModule({
91
- activate: operation_resolver_default
92
- }), AppPlugin.addSchemaModule({
93
- schema: [
94
- Pipeline3.Pipeline
95
- ]
96
- }), AppPlugin.addSurfaceModule({
97
- activate: ReactSurface
98
- }), AppPlugin.addTranslationsModule({
99
- translations
100
- }), Plugin.addModule({
101
- id: "on-space-created",
102
- activatesOn: SpaceEvents.SpaceCreated,
103
- activate: () => Effect2.succeed(Capability4.contributes(SpaceCapabilities.OnCreateSpace, (params) => Operation.invoke(PipelineOperation.OnCreateSpace, params)))
104
- }), Plugin.make);
105
- export {
106
- PipelinePlugin,
107
- meta
108
- };
109
- //# sourceMappingURL=index.mjs.map