@dxos/plugin-pipeline 0.8.4-main.c85a9c8dae → 0.8.4-main.d9fc60f731

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 (169) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +345 -0
  3. package/README.md +1 -1
  4. package/dist/lib/neutral/PipelineArticle-6JIVXMYF.mjs +69 -0
  5. package/dist/lib/neutral/PipelineArticle-6JIVXMYF.mjs.map +7 -0
  6. package/dist/lib/neutral/PipelinePlugin.mjs +38 -0
  7. package/dist/lib/neutral/PipelinePlugin.mjs.map +7 -0
  8. package/dist/lib/neutral/PipelinePlugin.node.mjs +21 -0
  9. package/dist/lib/neutral/PipelinePlugin.node.mjs.map +7 -0
  10. package/dist/lib/neutral/PipelinePlugin.workerd.mjs +16 -0
  11. package/dist/lib/neutral/PipelinePlugin.workerd.mjs.map +7 -0
  12. package/dist/lib/{browser/PipelineObjectSettings-D36OYVHW.mjs → neutral/PipelineProperties-JXY3AVOY.mjs} +58 -73
  13. package/dist/lib/neutral/PipelineProperties-JXY3AVOY.mjs.map +7 -0
  14. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs +44 -0
  15. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs.map +7 -0
  16. package/dist/lib/neutral/capabilities/index.mjs +11 -0
  17. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  18. package/dist/lib/neutral/chunk-CYXDAAKN.mjs +35 -0
  19. package/dist/lib/neutral/chunk-CYXDAAKN.mjs.map +7 -0
  20. package/dist/lib/neutral/components/index.mjs +203 -0
  21. package/dist/lib/neutral/components/index.mjs.map +7 -0
  22. package/dist/lib/neutral/containers/index.mjs +9 -0
  23. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  24. package/dist/lib/neutral/create-object-6Z4MMGX4.mjs +26 -0
  25. package/dist/lib/neutral/create-object-6Z4MMGX4.mjs.map +7 -0
  26. package/dist/lib/neutral/hooks/index.mjs +70 -0
  27. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  28. package/dist/lib/neutral/index.mjs +7 -0
  29. package/dist/lib/neutral/meta.json +1 -0
  30. package/dist/lib/neutral/meta.mjs +7 -0
  31. package/dist/lib/neutral/meta.mjs.map +7 -0
  32. package/dist/lib/neutral/plugin.mjs +11 -0
  33. package/dist/lib/neutral/plugin.mjs.map +7 -0
  34. package/dist/lib/{browser/react-surface-ZGQVH4VX.mjs → neutral/react-surface-QG7QSZSS.mjs} +15 -26
  35. package/dist/lib/neutral/react-surface-QG7QSZSS.mjs.map +7 -0
  36. package/dist/lib/neutral/translations.mjs +39 -0
  37. package/dist/lib/neutral/translations.mjs.map +7 -0
  38. package/dist/lib/neutral/types/index.mjs +1 -0
  39. package/dist/lib/neutral/types/index.mjs.map +7 -0
  40. package/dist/types/src/PipelinePlugin.d.ts +1 -0
  41. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  42. package/dist/types/src/PipelinePlugin.node.d.ts +4 -0
  43. package/dist/types/src/PipelinePlugin.node.d.ts.map +1 -0
  44. package/dist/types/src/PipelinePlugin.test.d.ts +2 -0
  45. package/dist/types/src/PipelinePlugin.test.d.ts.map +1 -0
  46. package/dist/types/src/PipelinePlugin.workerd.d.ts +4 -0
  47. package/dist/types/src/PipelinePlugin.workerd.d.ts.map +1 -0
  48. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  50. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  51. package/dist/types/src/capabilities/index.d.ts +9 -3
  52. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  53. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  54. package/dist/types/src/components/{PipelineColumn.d.ts → PipelineComponent/PipelineColumn.d.ts} +4 -4
  55. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -0
  56. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +53 -0
  57. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -0
  58. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts +62 -0
  59. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -0
  60. package/dist/types/src/components/PipelineComponent/index.d.ts +3 -0
  61. package/dist/types/src/components/PipelineComponent/index.d.ts.map +1 -0
  62. package/dist/types/src/components/index.d.ts +0 -1
  63. package/dist/types/src/components/index.d.ts.map +1 -1
  64. package/dist/types/src/containers/PipelineArticle/PipelineArticle.d.ts +6 -0
  65. package/dist/types/src/containers/PipelineArticle/PipelineArticle.d.ts.map +1 -0
  66. package/dist/types/src/containers/PipelineArticle/PipelineArticle.stories.d.ts +76 -0
  67. package/dist/types/src/containers/PipelineArticle/PipelineArticle.stories.d.ts.map +1 -0
  68. package/dist/types/src/containers/PipelineArticle/index.d.ts +2 -0
  69. package/dist/types/src/containers/PipelineArticle/index.d.ts.map +1 -0
  70. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts +11 -0
  71. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts.map +1 -0
  72. package/dist/types/src/containers/PipelineProperties/index.d.ts +2 -0
  73. package/dist/types/src/containers/PipelineProperties/index.d.ts.map +1 -0
  74. package/dist/types/src/containers/index.d.ts +2 -2
  75. package/dist/types/src/containers/index.d.ts.map +1 -1
  76. package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -1
  77. package/dist/types/src/index.d.ts +0 -1
  78. package/dist/types/src/index.d.ts.map +1 -1
  79. package/dist/types/src/meta.d.ts +1 -1
  80. package/dist/types/src/meta.d.ts.map +1 -1
  81. package/dist/types/src/plugin.d.ts +3 -0
  82. package/dist/types/src/plugin.d.ts.map +1 -0
  83. package/dist/types/src/templates/research.d.ts.map +1 -1
  84. package/dist/types/src/translations.d.ts +44 -25
  85. package/dist/types/src/translations.d.ts.map +1 -1
  86. package/dist/types/src/types/index.d.ts +0 -2
  87. package/dist/types/src/types/index.d.ts.map +1 -1
  88. package/dist/types/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +103 -58
  90. package/src/PipelinePlugin.node.ts +19 -0
  91. package/src/PipelinePlugin.test.ts +27 -0
  92. package/src/PipelinePlugin.tsx +12 -30
  93. package/src/PipelinePlugin.workerd.ts +16 -0
  94. package/src/capabilities/app-graph-builder.ts +40 -0
  95. package/src/capabilities/create-object.ts +30 -0
  96. package/src/capabilities/index.ts +5 -3
  97. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +16 -15
  98. package/src/components/PipelineComponent/PipelineColumn.tsx +154 -0
  99. package/src/components/{PipelineComponent.stories.tsx → PipelineComponent/PipelineComponent.stories.tsx} +21 -21
  100. package/src/components/{PipelineComponent.tsx → PipelineComponent/PipelineComponent.tsx} +22 -13
  101. package/src/components/PipelineComponent/index.ts +6 -0
  102. package/src/components/index.ts +0 -1
  103. package/src/containers/{PipelineContainer/PipelineContainer.stories.tsx → PipelineArticle/PipelineArticle.stories.tsx} +43 -47
  104. package/src/containers/{PipelineContainer/PipelineContainer.tsx → PipelineArticle/PipelineArticle.tsx} +14 -17
  105. package/src/containers/PipelineArticle/index.ts +5 -0
  106. package/src/containers/{PipelineObjectSettings/PipelineObjectSettings.tsx → PipelineProperties/PipelineProperties.tsx} +72 -75
  107. package/src/containers/PipelineProperties/index.ts +5 -0
  108. package/src/containers/index.ts +2 -2
  109. package/src/hooks/usePipelineBoardModel.ts +6 -6
  110. package/src/index.ts +0 -1
  111. package/src/meta.ts +19 -6
  112. package/src/plugin.ts +9 -0
  113. package/src/templates/research.ts +8 -7
  114. package/src/translations.ts +24 -22
  115. package/src/types/index.ts +0 -3
  116. package/src/vite-env.d.ts +10 -0
  117. package/dist/lib/browser/PipelineContainer-2ZYSZATA.mjs +0 -320
  118. package/dist/lib/browser/PipelineContainer-2ZYSZATA.mjs.map +0 -7
  119. package/dist/lib/browser/PipelineObjectSettings-D36OYVHW.mjs.map +0 -7
  120. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs +0 -65
  121. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs.map +0 -7
  122. package/dist/lib/browser/chunk-N6FZHYWT.mjs +0 -42
  123. package/dist/lib/browser/chunk-N6FZHYWT.mjs.map +0 -7
  124. package/dist/lib/browser/chunk-QWNKLHBY.mjs +0 -28
  125. package/dist/lib/browser/chunk-QWNKLHBY.mjs.map +0 -7
  126. package/dist/lib/browser/index.mjs +0 -109
  127. package/dist/lib/browser/index.mjs.map +0 -7
  128. package/dist/lib/browser/meta.json +0 -1
  129. package/dist/lib/browser/react-surface-ZGQVH4VX.mjs.map +0 -7
  130. package/dist/lib/browser/types/index.mjs +0 -10
  131. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  132. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  133. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  134. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -2
  135. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  136. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  137. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  138. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  139. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  140. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  141. package/dist/types/src/components/PipelineColumn.d.ts.map +0 -1
  142. package/dist/types/src/components/PipelineComponent.d.ts +0 -47
  143. package/dist/types/src/components/PipelineComponent.d.ts.map +0 -1
  144. package/dist/types/src/components/PipelineComponent.stories.d.ts +0 -42
  145. package/dist/types/src/components/PipelineComponent.stories.d.ts.map +0 -1
  146. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts +0 -6
  147. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +0 -1
  148. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts +0 -56
  149. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +0 -1
  150. package/dist/types/src/containers/PipelineContainer/index.d.ts +0 -3
  151. package/dist/types/src/containers/PipelineContainer/index.d.ts.map +0 -1
  152. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts +0 -11
  153. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts.map +0 -1
  154. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts +0 -3
  155. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts.map +0 -1
  156. package/dist/types/src/types/PipelineAction.d.ts +0 -25
  157. package/dist/types/src/types/PipelineAction.d.ts.map +0 -1
  158. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -51
  159. package/src/capabilities/app-graph-builder/index.ts +0 -7
  160. package/src/capabilities/operation-resolver/index.ts +0 -5
  161. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -29
  162. package/src/capabilities/react-surface/index.ts +0 -7
  163. package/src/components/PipelineColumn.tsx +0 -133
  164. package/src/containers/PipelineContainer/index.ts +0 -7
  165. package/src/containers/PipelineObjectSettings/index.ts +0 -7
  166. package/src/types/PipelineAction.ts +0 -29
  167. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  168. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  169. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
@@ -0,0 +1,203 @@
1
+ // src/components/PipelineComponent/PipelineColumn.tsx
2
+ import { useComposedRefs } from "@radix-ui/react-compose-refs";
3
+ import React2, { forwardRef, useMemo, useRef, useState } from "react";
4
+ import { resolveSchemaWithRegistry } from "@dxos/app-toolkit/query";
5
+ import { Filter, Obj as Obj2, Query, Type } from "@dxos/echo";
6
+ import { useObject } from "@dxos/react-client/echo";
7
+ import { Panel, Toolbar as Toolbar2, useAsyncEffect, useTranslation as useTranslation2 } from "@dxos/react-ui";
8
+ import { Card } from "@dxos/react-ui";
9
+ import { Menu } from "@dxos/react-ui-menu";
10
+ import { Board as Board2, Focus, Mosaic } from "@dxos/react-ui-mosaic";
11
+ import { ProjectionModel, createEchoChangeCallback } from "@dxos/schema";
12
+ import { meta as meta2 } from "#meta";
13
+
14
+ // src/components/PipelineComponent/PipelineComponent.tsx
15
+ import { useAtomValue } from "@effect-atom/atom-react";
16
+ import { createContext } from "@radix-ui/react-context";
17
+ import { Slot } from "@radix-ui/react-slot";
18
+ import React from "react";
19
+ import { Obj } from "@dxos/echo";
20
+ import { Toolbar, useTranslation } from "@dxos/react-ui";
21
+ import { composable, composableProps, slottable } from "@dxos/react-ui";
22
+ import { Board, useBoard, useEventHandlerAdapter } from "@dxos/react-ui-mosaic";
23
+ import { meta } from "#meta";
24
+ var itemNoOp = ({ item }) => /* @__PURE__ */ React.createElement("span", null, item.id);
25
+ var PIPELINE_ROOT = "Pipeline.Root";
26
+ var [PipelineRootContext, usePipeline] = createContext(PIPELINE_ROOT, {
27
+ Item: itemNoOp
28
+ });
29
+ var PipelineRoot = ({ children, ...contextValue }) => /* @__PURE__ */ React.createElement(PipelineRootContext, contextValue, children);
30
+ PipelineRoot.displayName = PIPELINE_ROOT;
31
+ var PIPELINE_CONTENT_NAME = "Pipeline.Content";
32
+ var PipelineContent = slottable(({ asChild, model, children, ...props }, forwardedRef) => {
33
+ const Comp = asChild ? Slot : "div";
34
+ return /* @__PURE__ */ React.createElement(Board.Root, {
35
+ model
36
+ }, /* @__PURE__ */ React.createElement(Comp, {
37
+ ...composableProps(props),
38
+ ref: forwardedRef
39
+ }, children));
40
+ });
41
+ PipelineContent.displayName = PIPELINE_CONTENT_NAME;
42
+ var PIPELINE_COLUMNS_NAME = "Pipeline.Columns";
43
+ var PipelineColumns = composable(({ pipeline, ...props }) => {
44
+ const { model } = useBoard(PIPELINE_COLUMNS_NAME);
45
+ const columns = useAtomValue(model.columns);
46
+ const eventHandler = useEventHandlerAdapter({
47
+ id: pipeline.id,
48
+ // TODO(wittjosiah): Cast because columns array is readonly.
49
+ items: columns,
50
+ getId: model.getColumnId,
51
+ get: (data) => data,
52
+ make: (object) => object,
53
+ canDrop: ({ source }) => model.isColumn(source.data),
54
+ onChange: (mutate) => Obj.update(pipeline, (pipeline2) => mutate(pipeline2.columns))
55
+ });
56
+ return /* @__PURE__ */ React.createElement(Board.Content, {
57
+ ...props,
58
+ id: "pipeline",
59
+ eventHandler,
60
+ Tile: PipelineColumn
61
+ });
62
+ });
63
+ PipelineColumns.displayName = PIPELINE_COLUMNS_NAME;
64
+ var PIPELINE_TOOLBAR_NAME = "Pipeline.Toolbar";
65
+ var PipelineToolbar = composable(({ children, ...props }, forwardedRef) => {
66
+ const { t } = useTranslation(meta.id);
67
+ const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);
68
+ return /* @__PURE__ */ React.createElement(Toolbar.Root, {
69
+ ...composableProps(props),
70
+ ref: forwardedRef
71
+ }, /* @__PURE__ */ React.createElement(Toolbar.IconButton, {
72
+ icon: "ph--plus--regular",
73
+ iconOnly: true,
74
+ label: t("add-column.label"),
75
+ onClick: onAddColumn
76
+ }));
77
+ });
78
+ PipelineToolbar.displayName = PIPELINE_TOOLBAR_NAME;
79
+ var PipelineComponent = {
80
+ Root: PipelineRoot,
81
+ Content: PipelineContent,
82
+ Columns: PipelineColumns,
83
+ Toolbar: PipelineToolbar
84
+ };
85
+
86
+ // src/components/PipelineComponent/PipelineColumn.tsx
87
+ var PIPELINE_COLUMN_NAME = "PipelineColumn";
88
+ var PipelineColumn = ({ data: column, location, classNames, debug }) => {
89
+ const { t } = useTranslation2(meta2.id);
90
+ const [dragHandle, setDragHandle] = useState(null);
91
+ const [viewSnapshot] = useObject(column.view);
92
+ const view = column.view.target;
93
+ const db = view && Obj2.getDatabase(view);
94
+ const { Item } = usePipeline(PIPELINE_COLUMN_NAME);
95
+ const [type, setType] = useState();
96
+ const query = useMemo(() => {
97
+ if (!view) {
98
+ return Query.select(Filter.nothing());
99
+ } else {
100
+ return Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot?.query.ast)));
101
+ }
102
+ }, [
103
+ JSON.stringify(viewSnapshot?.query.ast)
104
+ ]);
105
+ useAsyncEffect(async () => {
106
+ if (!query || !db) {
107
+ return;
108
+ }
109
+ const type2 = await resolveSchemaWithRegistry(db, query.ast);
110
+ setType(() => type2);
111
+ }, [
112
+ db,
113
+ query
114
+ ]);
115
+ const projectionModel = useMemo(() => {
116
+ if (!type || !view) {
117
+ return void 0;
118
+ }
119
+ const change = createEchoChangeCallback(view, Type.getDatabase(type) != null ? type : void 0);
120
+ return new ProjectionModel({
121
+ view,
122
+ baseSchema: type.jsonSchema,
123
+ change
124
+ });
125
+ }, [
126
+ type,
127
+ view
128
+ ]);
129
+ const PipelineTile = useMemo(() => {
130
+ return /* @__PURE__ */ forwardRef((props, ref) => /* @__PURE__ */ React2.createElement(ItemTile, {
131
+ ...props,
132
+ itemProps: {
133
+ item: props.data,
134
+ projectionModel
135
+ },
136
+ ref
137
+ }));
138
+ }, [
139
+ projectionModel
140
+ ]);
141
+ if (!view) {
142
+ return null;
143
+ }
144
+ return /* @__PURE__ */ React2.createElement(Panel.Root, {
145
+ asChild: true
146
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Root, {
147
+ debug,
148
+ data: column,
149
+ location,
150
+ classNames,
151
+ dragHandle
152
+ }, /* @__PURE__ */ React2.createElement(Panel.Toolbar, {
153
+ asChild: true
154
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Header, {
155
+ classNames: "_opacity-10",
156
+ label: column.name || t("untitled-view.title"),
157
+ dragHandleRef: setDragHandle
158
+ })), /* @__PURE__ */ React2.createElement(Panel.Content, {
159
+ asChild: true
160
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Body, {
161
+ data: column,
162
+ Tile: PipelineTile
163
+ }))));
164
+ };
165
+ PipelineColumn.displayName = PIPELINE_COLUMN_NAME;
166
+ var ITEM_TILE_NAME = "ItemTile";
167
+ var ItemTile = /* @__PURE__ */ forwardRef(({ classNames, data, location, debug, itemProps }, forwardedRef) => {
168
+ const rootRef = useRef(null);
169
+ const composedRef = useComposedRefs(rootRef, forwardedRef);
170
+ const { Item } = usePipeline(ITEM_TILE_NAME);
171
+ const icon = Obj2.getIcon(data)?.icon ?? "ph--circle-dashed--regular";
172
+ return /* @__PURE__ */ React2.createElement(Menu.Root, null, /* @__PURE__ */ React2.createElement(Mosaic.Tile, {
173
+ asChild: true,
174
+ id: data.id,
175
+ data,
176
+ location,
177
+ debug
178
+ }, /* @__PURE__ */ React2.createElement(Focus.Item, {
179
+ asChild: true
180
+ }, /* @__PURE__ */ React2.createElement(Card.Root, {
181
+ classNames,
182
+ ref: composedRef
183
+ }, /* @__PURE__ */ React2.createElement(Card.Header, null, /* @__PURE__ */ React2.createElement(Card.Icon, {
184
+ icon
185
+ }), /* @__PURE__ */ React2.createElement(Card.Title, null, Obj2.getLabel(data, {
186
+ fallback: "typename"
187
+ })), /* @__PURE__ */ React2.createElement(Card.IconBlock, null, /* @__PURE__ */ React2.createElement(Menu.Trigger, {
188
+ asChild: true
189
+ }, /* @__PURE__ */ React2.createElement(Toolbar2.IconButton, {
190
+ iconOnly: true,
191
+ variant: "ghost",
192
+ icon: "ph--dots-three-vertical--regular",
193
+ label: "Actions"
194
+ })), /* @__PURE__ */ React2.createElement(Menu.Content, null))), /* @__PURE__ */ React2.createElement(Card.Body, null, /* @__PURE__ */ React2.createElement(Item, itemProps))))));
195
+ });
196
+ ItemTile.displayName = ITEM_TILE_NAME;
197
+ export {
198
+ PipelineColumn,
199
+ PipelineComponent,
200
+ PipelineToolbar,
201
+ usePipeline
202
+ };
203
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/PipelineComponent/PipelineColumn.tsx", "../../../../src/components/PipelineComponent/PipelineComponent.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport React, { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { resolveSchemaWithRegistry } from '@dxos/app-toolkit/query';\nimport { Filter, Obj, Query, Type } from '@dxos/echo';\nimport { useObject } from '@dxos/react-client/echo';\nimport { Panel, Toolbar, useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui';\nimport { Menu } from '@dxos/react-ui-menu';\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';\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 [dragHandle, setDragHandle] = useState<HTMLButtonElement | null>(null);\n // Subscribe to the view target for reactivity.\n const [viewSnapshot] = useObject(column.view);\n const view = column.view.target;\n const db = view && Obj.getDatabase(view);\n const { Item } = usePipeline(PIPELINE_COLUMN_NAME);\n const [type, setType] = useState<Type.AnyEntity>();\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 || !db) {\n return;\n }\n\n const type = await resolveSchemaWithRegistry(db, query.ast);\n setType(() => type);\n }, [db, query]);\n\n const projectionModel = useMemo(() => {\n if (!type || !view) {\n return undefined;\n }\n\n // Use the live jsonSchema reference for reactivity.\n const change = createEchoChangeCallback(view, Type.getDatabase(type) != null ? type : undefined);\n return new ProjectionModel({ view, baseSchema: type.jsonSchema, change });\n }, [type, 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 dragHandle={dragHandle}\n >\n <Panel.Toolbar asChild>\n <Board.Column.Header\n classNames='_opacity-10'\n label={column.name || t('untitled-view.title')}\n dragHandleRef={setDragHandle}\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 = Obj.getIcon(data)?.icon ?? 'ph--circle-dashed--regular';\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.Header>\n <Card.Icon icon={icon} />\n <Card.Title>{Obj.getLabel(data, { fallback: 'typename' })}</Card.Title>\n {/* TODO(wittjosiah): Reconcile with Card.Menu. */}\n <Card.IconBlock>\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.Header>\n <Card.Body>\n <Item {...itemProps} />\n </Card.Body>\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 { composable, composableProps, slottable } 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';\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)} 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.update(pipeline, (pipeline) => mutate(pipeline.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"],
5
+ "mappings": "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",
6
+ "names": ["useComposedRefs", "React", "forwardRef", "useMemo", "useRef", "useState", "resolveSchemaWithRegistry", "Filter", "Obj", "Query", "Type", "useObject", "Panel", "Toolbar", "useAsyncEffect", "useTranslation", "Card", "Menu", "Board", "Focus", "Mosaic", "ProjectionModel", "createEchoChangeCallback", "meta", "useAtomValue", "createContext", "Slot", "React", "Obj", "Toolbar", "useTranslation", "composable", "composableProps", "slottable", "Board", "useBoard", "useEventHandlerAdapter", "meta", "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", "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", "update", "Content", "Tile", "PipelineColumn", "PIPELINE_TOOLBAR_NAME", "PipelineToolbar", "t", "useTranslation", "meta", "onAddColumn", "Toolbar", "IconButton", "icon", "iconOnly", "label", "onClick", "PipelineComponent", "Columns", "PIPELINE_COLUMN_NAME", "PipelineColumn", "data", "column", "location", "classNames", "debug", "t", "useTranslation", "meta", "id", "dragHandle", "setDragHandle", "useState", "viewSnapshot", "useObject", "view", "target", "db", "Obj", "getDatabase", "Item", "usePipeline", "type", "setType", "query", "useMemo", "Query", "select", "Filter", "nothing", "fromAst", "JSON", "parse", "stringify", "ast", "useAsyncEffect", "resolveSchemaWithRegistry", "projectionModel", "undefined", "change", "createEchoChangeCallback", "Type", "ProjectionModel", "baseSchema", "jsonSchema", "PipelineTile", "forwardRef", "props", "ref", "React", "ItemTile", "itemProps", "item", "Panel", "Root", "asChild", "Board", "Column", "Toolbar", "Header", "label", "name", "dragHandleRef", "Content", "Body", "Tile", "displayName", "ITEM_TILE_NAME", "forwardedRef", "rootRef", "useRef", "composedRef", "useComposedRefs", "icon", "getIcon", "Menu", "Mosaic", "Focus", "Card", "Icon", "Title", "getLabel", "fallback", "IconBlock", "Trigger", "IconButton", "iconOnly", "variant"]
7
+ }
@@ -0,0 +1,9 @@
1
+ // src/containers/index.ts
2
+ import { lazy } from "react";
3
+ var PipelineArticle = lazy(() => import("../PipelineArticle-6JIVXMYF.mjs"));
4
+ var PipelineProperties = lazy(() => import("../PipelineProperties-JXY3AVOY.mjs"));
5
+ export {
6
+ PipelineArticle,
7
+ PipelineProperties
8
+ };
9
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/containers/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const PipelineArticle: ComponentType<any> = lazy(() => import('./PipelineArticle'));\nexport const PipelineProperties: ComponentType<any> = lazy(() => import('./PipelineProperties'));\n"],
5
+ "mappings": ";AAIA,SAA6BA,YAAY;AAElC,IAAMC,kBAAsCD,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAME,qBAAyCF,KAAK,MAAM,OAAO,oCAAA,CAAA;",
6
+ "names": ["lazy", "PipelineArticle", "PipelineProperties"]
7
+ }
@@ -0,0 +1,26 @@
1
+ // src/capabilities/create-object.ts
2
+ import * as Effect from "effect/Effect";
3
+ import { Capability } from "@dxos/app-framework";
4
+ import { Operation } from "@dxos/compute";
5
+ import { Type } from "@dxos/echo";
6
+ import { SpaceOperation } from "@dxos/plugin-space";
7
+ import { SpaceCapabilities } from "@dxos/plugin-space";
8
+ import { Pipeline } from "@dxos/types";
9
+ var create_object_default = Capability.makeModule(Effect.fnUntraced(function* () {
10
+ return Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
11
+ id: Type.getTypename(Pipeline.Pipeline),
12
+ createObject: (props, options) => Effect.gen(function* () {
13
+ const object = Pipeline.make(props);
14
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
15
+ object,
16
+ target: options.target,
17
+ hidden: true,
18
+ targetNodeId: options.targetNodeId
19
+ });
20
+ })
21
+ });
22
+ }));
23
+ export {
24
+ create_object_default as default
25
+ };
26
+ //# sourceMappingURL=create-object-6Z4MMGX4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/create-object.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\nimport { Type } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { Pipeline } from '@dxos/types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Pipeline.Pipeline),\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Pipeline.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n });\n }),\n);\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,YAAY;AACrB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AAEzB,IAAA,wBAAeL,WAAWM,WACjBC,kBAAW,aAAA;AAChB,SAAOP,WAAWQ,YAAYJ,kBAAkBK,mBAAmB;IACjEC,IAAIR,KAAKS,YAAYN,SAASA,QAAQ;IACtCO,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,YAAMC,SAASX,SAASY,KAAKJ,KAAAA;AAC7B,aAAO,OAAOZ,UAAUiB,OAAOf,eAAegB,WAAW;QACvDH;QACAI,QAAQN,QAAQM;QAChBC,QAAQ;QACRC,cAAcR,QAAQQ;MACxB,CAAA;IACF,CAAA;EACJ,CAAA;AACF,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "Operation", "Type", "SpaceOperation", "SpaceCapabilities", "Pipeline", "makeModule", "fnUntraced", "contributes", "CreateObjectEntry", "id", "getTypename", "createObject", "props", "options", "gen", "object", "make", "invoke", "AddObject", "target", "hidden", "targetNodeId"]
7
+ }
@@ -0,0 +1,70 @@
1
+ // src/hooks/usePipelineBoardModel.ts
2
+ import { Atom } from "@effect-atom/atom-react";
3
+ import * as Schema from "effect/Schema";
4
+ import { useMemo } from "react";
5
+ import { getQueryTarget } from "@dxos/app-toolkit/query";
6
+ import { Obj, Query } from "@dxos/echo";
7
+ import { AtomObj, AtomQuery } from "@dxos/echo-atom";
8
+ import { getSpace, isSpace } from "@dxos/react-client/echo";
9
+ import { Pipeline } from "@dxos/types";
10
+ var usePipelineBoardModel = (pipeline, registry) => useMemo(() => {
11
+ if (pipeline == null) {
12
+ return emptyPipelineModel;
13
+ }
14
+ const space = getSpace(pipeline);
15
+ const columnsAtom = AtomObj.makeProperty(pipeline, "columns");
16
+ const columnAtomFamily = Atom.family((viewKey) => Atom.make((get) => {
17
+ const columns = get(columnsAtom);
18
+ return columns.find((c) => c.view.uri === viewKey);
19
+ }));
20
+ const itemsAtomFamily = Atom.family((viewKey) => Atom.make((get) => {
21
+ const column = get(columnAtomFamily(viewKey));
22
+ if (column == null) {
23
+ return [];
24
+ }
25
+ const viewSnapshot = get(AtomObj.make(column.view));
26
+ if (!viewSnapshot?.query?.ast) {
27
+ return [];
28
+ }
29
+ const query = Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot.query.ast)));
30
+ const queryTarget = space ? getQueryTarget(query.ast, space) : void 0;
31
+ if (!queryTarget) {
32
+ return [];
33
+ }
34
+ const raw = get(AtomQuery.make(queryTarget, query));
35
+ return isSpace(queryTarget) ? raw : [
36
+ ...raw
37
+ ].reverse();
38
+ }));
39
+ return {
40
+ getColumnId: (data) => data.view.uri,
41
+ getItemId: (data) => data.id,
42
+ isColumn: (obj) => Schema.is(Pipeline.Column)(obj),
43
+ isItem: (obj) => Obj.isObject(obj),
44
+ columns: columnsAtom,
45
+ items: (column) => itemsAtomFamily(column.view.uri),
46
+ getColumns: () => [
47
+ ...registry.get(columnsAtom)
48
+ ],
49
+ getItems: (column) => registry.get(itemsAtomFamily(column.view.uri)) ?? []
50
+ };
51
+ }, [
52
+ pipeline,
53
+ registry
54
+ ]);
55
+ var emptyColumnsAtom = Atom.make(() => []);
56
+ var emptyItemsAtom = Atom.make(() => []);
57
+ var emptyPipelineModel = {
58
+ getColumnId: (data) => data.view.uri,
59
+ getItemId: (data) => data.id,
60
+ isColumn: (obj) => Schema.is(Pipeline.Column)(obj),
61
+ isItem: (obj) => Obj.isObject(obj),
62
+ columns: emptyColumnsAtom,
63
+ items: () => emptyItemsAtom,
64
+ getColumns: () => [],
65
+ getItems: () => []
66
+ };
67
+ export {
68
+ usePipelineBoardModel
69
+ };
70
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/hooks/usePipelineBoardModel.ts"],
4
+ "sourcesContent": ["//\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 { getQueryTarget } from '@dxos/app-toolkit/query';\nimport { Obj, Query } from '@dxos/echo';\nimport { AtomObj, AtomQuery } from '@dxos/echo-atom';\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.uri === 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.uri,\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.uri),\n getColumns: () => [...registry.get(columnsAtom)],\n getItems: (column) => registry.get(itemsAtomFamily(column.view.uri)) ?? [],\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.uri,\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"],
5
+ "mappings": ";AAIA,SAASA,YAA2B;AACpC,YAAYC,YAAY;AACxB,SAASC,eAAe;AAExB,SAASC,sBAAsB;AAC/B,SAASC,KAAKC,aAAa;AAC3B,SAASC,SAASC,iBAAiB;AACnC,SAASC,UAAUC,eAAe;AAElC,SAASC,gBAAgB;AAElB,IAAMC,wBAAwB,CACnCC,UACAC,aAEAX,QAAkD,MAAA;AAChD,MAAIU,YAAY,MAAM;AACpB,WAAOE;EACT;AAEA,QAAMC,QAAQP,SAASI,QAAAA;AACvB,QAAMI,cAAcV,QAAQW,aAAaL,UAAU,SAAA;AACnD,QAAMM,mBAAmBlB,KAAKmB,OAAuD,CAACC,YACpFpB,KAAKqB,KAAK,CAACC,QAAAA;AACT,UAAMC,UAAUD,IAAIN,WAAAA;AACpB,WAAOO,QAAQC,KAAK,CAACC,MAAMA,EAAEC,KAAKC,QAAQP,OAAAA;EAC5C,CAAA,CAAA;AAGF,QAAMQ,kBAAkB5B,KAAKmB,OAAyC,CAACC,YACrEpB,KAAKqB,KAAK,CAACC,QAAAA;AACT,UAAMO,SAASP,IAAIJ,iBAAiBE,OAAAA,CAAAA;AACpC,QAAIS,UAAU,MAAM;AAClB,aAAO,CAAA;IACT;AACA,UAAMC,eAAeR,IAAIhB,QAAQe,KAAKQ,OAAOH,IAAI,CAAA;AACjD,QAAI,CAACI,cAAcC,OAAOC,KAAK;AAC7B,aAAO,CAAA;IACT;AACA,UAAMD,QAAQ1B,MAAM4B,QAAQC,KAAKC,MAAMD,KAAKE,UAAUN,aAAaC,MAAMC,GAAG,CAAA,CAAA;AAC5E,UAAMK,cAActB,QAAQZ,eAAe4B,MAAMC,KAAKjB,KAAAA,IAASuB;AAC/D,QAAI,CAACD,aAAa;AAChB,aAAO,CAAA;IACT;AACA,UAAME,MAAMjB,IAAIf,UAAUc,KAAKgB,aAAaN,KAAAA,CAAAA;AAC5C,WAAOtB,QAAQ4B,WAAAA,IAAeE,MAAM;SAAIA;MAAKC,QAAO;EACtD,CAAA,CAAA;AAGF,SAAO;IACLC,aAAa,CAACC,SAAUA,KAAyBhB,KAAKC;IACtDgB,WAAW,CAACD,SAAUA,KAAqBE;IAC3CC,UAAU,CAACC,QAAgDC,UAAGrC,SAASsC,MAAM,EAAEF,GAAAA;IAC/EG,QAAQ,CAACH,QAAqC1C,IAAI8C,SAASJ,GAAAA;IAC3DvB,SAASP;IACTmC,OAAO,CAACtB,WAAWD,gBAAgBC,OAAOH,KAAKC,GAAG;IAClDyB,YAAY,MAAM;SAAIvC,SAASS,IAAIN,WAAAA;;IACnCqC,UAAU,CAACxB,WAAWhB,SAASS,IAAIM,gBAAgBC,OAAOH,KAAKC,GAAG,CAAA,KAAM,CAAA;EAC1E;AACF,GAAG;EAACf;EAAUC;CAAS;AAEzB,IAAMyC,mBAAmBtD,KAAKqB,KAAK,MAAM,CAAA,CAAE;AAE3C,IAAMkC,iBAAiBvD,KAAKqB,KAAK,MAAM,CAAA,CAAE;AAEzC,IAAMP,qBAA+D;EACnE2B,aAAa,CAACC,SAAUA,KAAyBhB,KAAKC;EACtDgB,WAAW,CAACD,SAAUA,KAAqBE;EAC3CC,UAAU,CAACC,QAAgDC,UAAGrC,SAASsC,MAAM,EAAEF,GAAAA;EAC/EG,QAAQ,CAACH,QAA4B1C,IAAI8C,SAASJ,GAAAA;EAClDvB,SAAS+B;EACTH,OAAO,MAAMI;EACbH,YAAY,MAAM,CAAA;EAClBC,UAAU,MAAM,CAAA;AAClB;",
6
+ "names": ["Atom", "Schema", "useMemo", "getQueryTarget", "Obj", "Query", "AtomObj", "AtomQuery", "getSpace", "isSpace", "Pipeline", "usePipelineBoardModel", "pipeline", "registry", "emptyPipelineModel", "space", "columnsAtom", "makeProperty", "columnAtomFamily", "family", "viewKey", "make", "get", "columns", "find", "c", "view", "uri", "itemsAtomFamily", "column", "viewSnapshot", "query", "ast", "fromAst", "JSON", "parse", "stringify", "queryTarget", "undefined", "raw", "reverse", "getColumnId", "data", "getItemId", "id", "isColumn", "obj", "is", "Column", "isItem", "isObject", "items", "getColumns", "getItems", "emptyColumnsAtom", "emptyItemsAtom"]
7
+ }
@@ -0,0 +1,7 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-CYXDAAKN.mjs";
4
+ export {
5
+ meta
6
+ };
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"inputs":{"src/meta.ts":{"bytes":4132,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":368,"imports":[{"path":"src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"raw-loader:/__w/dxos/dxos/packages/plugins/plugin-pipeline/PLUGIN.mdl?raw":{"bytes":9702,"imports":[]},"src/PipelinePlugin.tsx":{"bytes":3926,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"raw-loader:/__w/dxos/dxos/packages/plugins/plugin-pipeline/PLUGIN.mdl?raw","kind":"import-statement","original":"../PLUGIN.mdl?raw"}],"format":"esm"},"src/PipelinePlugin.node.ts":{"bytes":2333,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/PipelinePlugin.workerd.ts":{"bytes":1605,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/app-graph-builder.ts":{"bytes":4665,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/create-object.ts":{"bytes":3531,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/react-surface.tsx":{"bytes":7142,"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#containers","kind":"import-statement","external":true}],"format":"esm"},"src/capabilities/index.ts":{"bytes":1492,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"src/capabilities/create-object.ts","kind":"dynamic-import","original":"./create-object"},{"path":"src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"src/components/PipelineComponent/PipelineComponent.tsx":{"bytes":12700,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"src/components/PipelineComponent/PipelineColumn.tsx","kind":"import-statement","original":"./PipelineColumn"}],"format":"esm"},"src/components/PipelineComponent/PipelineColumn.tsx":{"bytes":18270,"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/query","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"src/components/PipelineComponent/PipelineComponent.tsx","kind":"import-statement","original":"./PipelineComponent"}],"format":"esm"},"src/components/PipelineComponent/index.ts":{"bytes":503,"imports":[{"path":"src/components/PipelineComponent/PipelineColumn.tsx","kind":"import-statement","original":"./PipelineColumn"},{"path":"src/components/PipelineComponent/PipelineComponent.tsx","kind":"import-statement","original":"./PipelineComponent"}],"format":"esm"},"src/components/index.ts":{"bytes":401,"imports":[{"path":"src/components/PipelineComponent/index.ts","kind":"import-statement","original":"./PipelineComponent"}],"format":"esm"},"src/containers/PipelineArticle/PipelineArticle.tsx":{"bytes":9244,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true}],"format":"esm"},"src/containers/PipelineArticle/index.ts":{"bytes":524,"imports":[{"path":"src/containers/PipelineArticle/PipelineArticle.tsx","kind":"import-statement","original":"./PipelineArticle"}],"format":"esm"},"src/containers/PipelineProperties/PipelineProperties.tsx":{"bytes":28451,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/query","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-list","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/containers/PipelineProperties/index.ts":{"bytes":542,"imports":[{"path":"src/containers/PipelineProperties/PipelineProperties.tsx","kind":"import-statement","original":"./PipelineProperties"}],"format":"esm"},"src/containers/index.ts":{"bytes":1028,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/containers/PipelineArticle/index.ts","kind":"dynamic-import","original":"./PipelineArticle"},{"path":"src/containers/PipelineProperties/index.ts","kind":"dynamic-import","original":"./PipelineProperties"}],"format":"esm"},"src/hooks/usePipelineBoardModel.ts":{"bytes":10475,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/query","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/index.ts":{"bytes":409,"imports":[{"path":"src/hooks/usePipelineBoardModel.ts","kind":"import-statement","original":"./usePipelineBoardModel"}],"format":"esm"},"src/plugin.ts":{"bytes":865,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"#plugin","kind":"dynamic-import","external":true}],"format":"esm"},"src/translations.ts":{"bytes":4162,"imports":[{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"format":"esm"},"src/types/index.ts":{"bytes":288,"imports":[],"format":"esm"}},"outputs":{"dist/lib/neutral/PipelineProperties-JXY3AVOY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15229},"dist/lib/neutral/PipelineProperties-JXY3AVOY.mjs":{"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/query","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-list","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/PipelineProperties/index.ts","inputs":{"src/containers/PipelineProperties/PipelineProperties.tsx":{"bytesInOutput":7085},"src/containers/PipelineProperties/index.ts":{"bytesInOutput":0}},"bytes":7246},"dist/lib/neutral/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/meta.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-CYXDAAKN.mjs","kind":"import-statement"}],"exports":["meta"],"entryPoint":"src/meta.ts","inputs":{},"bytes":100},"dist/lib/neutral/plugin.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":445},"dist/lib/neutral/plugin.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-CYXDAAKN.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"#plugin","kind":"dynamic-import","external":true}],"exports":["PipelinePlugin"],"entryPoint":"src/plugin.ts","inputs":{"src/plugin.ts":{"bytesInOutput":111}},"bytes":241},"dist/lib/neutral/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1961},"dist/lib/neutral/translations.mjs":{"imports":[{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":1161}},"bytes":1253},"dist/lib/neutral/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/types/index.mjs":{"imports":[],"exports":[],"entryPoint":"src/types/index.ts","inputs":{"src/types/index.ts":{"bytesInOutput":0}},"bytes":35},"dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2197},"dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs":{"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/app-graph-builder.ts","inputs":{"src/capabilities/app-graph-builder.ts":{"bytesInOutput":1187}},"bytes":1335},"dist/lib/neutral/create-object-6Z4MMGX4.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1842},"dist/lib/neutral/create-object-6Z4MMGX4.mjs":{"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/create-object.ts","inputs":{"src/capabilities/create-object.ts":{"bytesInOutput":830}},"bytes":966},"dist/lib/neutral/react-surface-QG7QSZSS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3538},"dist/lib/neutral/react-surface-QG7QSZSS.mjs":{"imports":[{"path":"effect/Effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/devtools","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#containers","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/capabilities/react-surface.tsx","inputs":{"src/capabilities/react-surface.tsx":{"bytesInOutput":1761}},"bytes":1898},"dist/lib/neutral/PipelineArticle-6JIVXMYF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4864},"dist/lib/neutral/PipelineArticle-6JIVXMYF.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework/ui","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"#components","kind":"import-statement","external":true},{"path":"#hooks","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/containers/PipelineArticle/index.ts","inputs":{"src/containers/PipelineArticle/PipelineArticle.tsx":{"bytesInOutput":2430},"src/containers/PipelineArticle/index.ts":{"bytesInOutput":0}},"bytes":2579},"dist/lib/neutral/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/neutral/index.mjs":{"imports":[{"path":"dist/lib/neutral/chunk-CYXDAAKN.mjs","kind":"import-statement"}],"exports":["meta"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":101},"dist/lib/neutral/chunk-CYXDAAKN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1928},"dist/lib/neutral/chunk-CYXDAAKN.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["meta"],"inputs":{"src/meta.ts":{"bytesInOutput":1379}},"bytes":1458},"dist/lib/neutral/PipelinePlugin.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12802},"dist/lib/neutral/PipelinePlugin.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true}],"exports":["PipelinePlugin","default"],"entryPoint":"src/PipelinePlugin.tsx","inputs":{"src/PipelinePlugin.tsx":{"bytesInOutput":859},"raw-loader:/__w/dxos/dxos/packages/plugins/plugin-pipeline/PLUGIN.mdl?raw":{"bytesInOutput":10553}},"bytes":11653},"dist/lib/neutral/PipelinePlugin.node.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1229},"dist/lib/neutral/PipelinePlugin.node.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#capabilities","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["PipelinePlugin","default"],"entryPoint":"src/PipelinePlugin.node.ts","inputs":{"src/PipelinePlugin.node.ts":{"bytesInOutput":531}},"bytes":681},"dist/lib/neutral/PipelinePlugin.workerd.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":836},"dist/lib/neutral/PipelinePlugin.workerd.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["PipelinePlugin","default"],"entryPoint":"src/PipelinePlugin.workerd.ts","inputs":{"src/PipelinePlugin.workerd.ts":{"bytesInOutput":346}},"bytes":505},"dist/lib/neutral/capabilities/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":783},"dist/lib/neutral/capabilities/index.mjs":{"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/create-object-6Z4MMGX4.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/react-surface-QG7QSZSS.mjs","kind":"dynamic-import"}],"exports":["AppGraphBuilder","CreateObject","ReactSurface"],"entryPoint":"src/capabilities/index.ts","inputs":{"src/capabilities/index.ts":{"bytesInOutput":357}},"bytes":483},"dist/lib/neutral/components/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16991},"dist/lib/neutral/components/index.mjs":{"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/query","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"#meta","kind":"import-statement","external":true}],"exports":["PipelineColumn","PipelineComponent","PipelineToolbar","usePipeline"],"entryPoint":"src/components/index.ts","inputs":{"src/components/PipelineComponent/PipelineColumn.tsx":{"bytesInOutput":4434},"src/components/PipelineComponent/PipelineComponent.tsx":{"bytesInOutput":2800},"src/components/PipelineComponent/index.ts":{"bytesInOutput":0},"src/components/index.ts":{"bytesInOutput":0}},"bytes":7523},"dist/lib/neutral/containers/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":572},"dist/lib/neutral/containers/index.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"dist/lib/neutral/PipelineArticle-6JIVXMYF.mjs","kind":"dynamic-import"},{"path":"dist/lib/neutral/PipelineProperties-JXY3AVOY.mjs","kind":"dynamic-import"}],"exports":["PipelineArticle","PipelineProperties"],"entryPoint":"src/containers/index.ts","inputs":{"src/containers/index.ts":{"bytesInOutput":190}},"bytes":304},"dist/lib/neutral/hooks/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5701},"dist/lib/neutral/hooks/index.mjs":{"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-toolkit/query","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-atom","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/types","kind":"import-statement","external":true}],"exports":["usePipelineBoardModel"],"entryPoint":"src/hooks/index.ts","inputs":{"src/hooks/usePipelineBoardModel.ts":{"bytesInOutput":2245},"src/hooks/index.ts":{"bytesInOutput":0}},"bytes":2354}}}
@@ -0,0 +1,7 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-CYXDAAKN.mjs";
4
+ export {
5
+ meta
6
+ };
7
+ //# sourceMappingURL=meta.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,11 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-CYXDAAKN.mjs";
4
+
5
+ // src/plugin.ts
6
+ import { Plugin } from "@dxos/app-framework";
7
+ var PipelinePlugin = Plugin.lazy(meta, () => import("#plugin"));
8
+ export {
9
+ PipelinePlugin
10
+ };
11
+ //# sourceMappingURL=plugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/plugin.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport const PipelinePlugin = Plugin.lazy(meta, () => import('#plugin'));\n"],
5
+ "mappings": ";;;;;AAIA,SAASA,cAAc;AAIhB,IAAMC,iBAAiBC,OAAOC,KAAKC,MAAM,MAAM,OAAO,SAAA,CAAA;",
6
+ "names": ["Plugin", "PipelinePlugin", "Plugin", "lazy", "meta"]
7
+ }
@@ -1,42 +1,32 @@
1
- import {
2
- meta
3
- } from "./chunk-QWNKLHBY.mjs";
4
-
5
- // src/capabilities/react-surface/react-surface.tsx
1
+ // src/capabilities/react-surface.tsx
6
2
  import * as Effect from "effect/Effect";
7
3
  import React from "react";
8
4
  import { Capabilities, Capability } from "@dxos/app-framework";
9
5
  import { Surface } from "@dxos/app-framework/ui";
6
+ import { AppSurface } from "@dxos/app-toolkit/ui";
10
7
  import { InvocationTraceContainer } from "@dxos/devtools";
11
8
  import { Obj } from "@dxos/echo";
12
9
  import { Panel } from "@dxos/react-ui";
13
10
  import { Pipeline } from "@dxos/types";
14
-
15
- // src/containers/index.ts
16
- import { lazy } from "react";
17
- var PipelineContainer = lazy(() => import("./PipelineContainer-2ZYSZATA.mjs"));
18
- var PipelineObjectSettings = lazy(() => import("./PipelineObjectSettings-D36OYVHW.mjs"));
19
-
20
- // src/capabilities/react-surface/react-surface.tsx
11
+ import { PipelineArticle, PipelineProperties } from "#containers";
21
12
  var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
22
13
  Surface.create({
23
- id: meta.id,
24
- role: "article",
25
- filter: (data) => Obj.instanceOf(Pipeline.Pipeline, data.subject),
26
- component: ({ data, role }) => /* @__PURE__ */ React.createElement(PipelineContainer, {
14
+ id: "root",
15
+ filter: AppSurface.object(AppSurface.Article, Pipeline.Pipeline),
16
+ component: ({ data, role }) => /* @__PURE__ */ React.createElement(PipelineArticle, {
27
17
  role,
28
- subject: data.subject
18
+ subject: data.subject,
19
+ attendableId: data.attendableId
29
20
  })
30
21
  }),
31
22
  Surface.create({
32
- id: `${meta.id}/companion/invocations`,
33
- role: "article",
34
- filter: (data) => Obj.instanceOf(Pipeline.Pipeline, data.companionTo) && data.subject === "invocations",
23
+ id: "companion.invocations",
24
+ filter: AppSurface.allOf(AppSurface.literal(AppSurface.Article, "invocations"), AppSurface.companion(AppSurface.Article, Pipeline.Pipeline)),
35
25
  component: ({ data, role }) => {
36
26
  const db = Obj.getDatabase(data.companionTo);
37
27
  return /* @__PURE__ */ React.createElement(Panel.Root, {
38
28
  role,
39
- className: "dx-article"
29
+ className: "dx-document"
40
30
  }, /* @__PURE__ */ React.createElement(Panel.Content, {
41
31
  asChild: true
42
32
  }, /* @__PURE__ */ React.createElement(InvocationTraceContainer, {
@@ -46,10 +36,9 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
46
36
  }
47
37
  }),
48
38
  Surface.create({
49
- id: `${meta.id}/object-settings`,
50
- role: "object-settings",
51
- filter: (data) => Obj.instanceOf(Pipeline.Pipeline, data.subject),
52
- component: ({ data }) => /* @__PURE__ */ React.createElement(PipelineObjectSettings, {
39
+ id: "objectProperties",
40
+ filter: AppSurface.object(AppSurface.ObjectProperties, Pipeline.Pipeline),
41
+ component: ({ data }) => /* @__PURE__ */ React.createElement(PipelineProperties, {
53
42
  pipeline: data.subject
54
43
  })
55
44
  })
@@ -57,4 +46,4 @@ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capabilit
57
46
  export {
58
47
  react_surface_default as default
59
48
  };
60
- //# sourceMappingURL=react-surface-ZGQVH4VX.mjs.map
49
+ //# sourceMappingURL=react-surface-QG7QSZSS.mjs.map