@dxos/plugin-pipeline 0.8.4-main.6fa680abb7 → 0.8.4-main.7996785055

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/lib/browser/{PipelineContainer-FAOVECDX.mjs → PipelineContainer-LY2P4JPA.mjs} +70 -43
  2. package/dist/lib/browser/PipelineContainer-LY2P4JPA.mjs.map +7 -0
  3. package/dist/lib/browser/{PipelineObjectSettings-JFOS6Z37.mjs → PipelineObjectSettings-QFMIKJH5.mjs} +6 -6
  4. package/dist/lib/browser/PipelineObjectSettings-QFMIKJH5.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +18 -13
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/{react-surface-XD6PVALN.mjs → react-surface-QVPKOGEI.mjs} +4 -4
  9. package/dist/lib/browser/{react-surface-XD6PVALN.mjs.map → react-surface-QVPKOGEI.mjs.map} +1 -1
  10. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  11. package/dist/types/src/capabilities/index.d.ts +0 -1
  12. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  13. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -1
  14. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +34 -16
  15. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -1
  16. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -1
  17. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +1 -1
  18. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts.map +1 -1
  19. package/dist/types/tsconfig.tsbuildinfo +1 -1
  20. package/package.json +44 -43
  21. package/src/PipelinePlugin.tsx +18 -5
  22. package/src/capabilities/index.ts +0 -1
  23. package/src/capabilities/react-surface/react-surface.tsx +1 -1
  24. package/src/components/PipelineComponent/PipelineColumn.tsx +62 -31
  25. package/src/components/PipelineComponent/PipelineComponent.stories.tsx +12 -10
  26. package/src/components/PipelineComponent/PipelineComponent.tsx +20 -11
  27. package/src/containers/PipelineContainer/PipelineContainer.stories.tsx +9 -8
  28. package/src/containers/PipelineContainer/PipelineContainer.tsx +5 -5
  29. package/src/containers/PipelineObjectSettings/PipelineObjectSettings.tsx +7 -5
  30. package/dist/lib/browser/PipelineContainer-FAOVECDX.mjs.map +0 -7
  31. package/dist/lib/browser/PipelineObjectSettings-JFOS6Z37.mjs.map +0 -7
  32. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -2
  33. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  34. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  35. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  36. package/src/capabilities/operation-resolver/index.ts +0 -5
  37. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -9
@@ -9,20 +9,21 @@ import { useCapability } from "@dxos/app-framework/ui";
9
9
  import { useOperationInvoker } from "@dxos/app-framework/ui";
10
10
  import { Surface } from "@dxos/app-framework/ui";
11
11
  import { OBJECT_ACTIONS_CONTRIBUTION_ID, OBJECT_ACTIONS_CONTRIBUTION_PRIORITY, useObjectMenuItems } from "@dxos/app-toolkit/ui";
12
- import { COMPANION_PREFIX } from "@dxos/app-toolkit";
13
- import { DeckOperation } from "@dxos/plugin-deck/types";
14
- import { Panel } from "@dxos/react-ui";
12
+ import { companionSegment } from "@dxos/app-toolkit";
13
+ import { DeckOperation } from "@dxos/plugin-deck/operations";
14
+ import { Panel as Panel2 } from "@dxos/react-ui";
15
15
  import { useAttention } from "@dxos/react-ui-attention";
16
16
  import { useMenu } from "@dxos/react-ui-menu";
17
17
 
18
18
  // src/components/PipelineComponent/PipelineColumn.tsx
19
19
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
20
+ import * as Function from "effect/Function";
21
+ import * as Option from "effect/Option";
20
22
  import React2, { forwardRef, useMemo, useRef, useState } from "react";
21
- import { useObjectNavigate } from "@dxos/app-toolkit/ui";
22
- import { JsonSchema, Obj as Obj2, Query, Type } from "@dxos/echo";
23
+ import { Annotation, JsonSchema, Obj as Obj2, Query, Type } from "@dxos/echo";
23
24
  import { resolveSchemaWithRegistry } from "@dxos/plugin-space";
24
25
  import { Filter, getSpace, useObject } from "@dxos/react-client/echo";
25
- import { useAsyncEffect, useTranslation as useTranslation2 } from "@dxos/react-ui";
26
+ import { Panel, Toolbar as Toolbar2, useAsyncEffect, useTranslation as useTranslation2 } from "@dxos/react-ui";
26
27
  import { Card } from "@dxos/react-ui";
27
28
  import { Board as Board2, Focus, Mosaic } from "@dxos/react-ui-mosaic";
28
29
  import { ProjectionModel, createEchoChangeCallback } from "@dxos/schema";
@@ -30,10 +31,12 @@ import { ProjectionModel, createEchoChangeCallback } from "@dxos/schema";
30
31
  // src/components/PipelineComponent/PipelineComponent.tsx
31
32
  import { useAtomValue } from "@effect-atom/atom-react";
32
33
  import { createContext } from "@radix-ui/react-context";
34
+ import { Slot } from "@radix-ui/react-slot";
33
35
  import React from "react";
34
36
  import { Obj } from "@dxos/echo";
35
37
  import { Toolbar, useTranslation } from "@dxos/react-ui";
36
38
  import { Board, useBoard, useEventHandlerAdapter } from "@dxos/react-ui-mosaic";
39
+ import { composable, composableProps, slottable } from "@dxos/ui-theme";
37
40
  var itemNoOp = ({ item }) => /* @__PURE__ */ React.createElement("span", null, item.id);
38
41
  var PIPELINE_ROOT = "Pipeline.Root";
39
42
  var [PipelineRootContext, usePipeline] = createContext(PIPELINE_ROOT, {
@@ -42,13 +45,20 @@ var [PipelineRootContext, usePipeline] = createContext(PIPELINE_ROOT, {
42
45
  var PipelineRoot = ({ children, ...contextValue }) => /* @__PURE__ */ React.createElement(PipelineRootContext, contextValue, children);
43
46
  PipelineRoot.displayName = PIPELINE_ROOT;
44
47
  var PIPELINE_CONTENT_NAME = "Pipeline.Content";
45
- var PipelineContent = ({ model, children, ...props }) => /* @__PURE__ */ React.createElement(Board.Root, {
46
- ...props,
47
- model
48
- }, children);
48
+ var PipelineContent = slottable(({ asChild, model, children, ...props }, forwardedRef) => {
49
+ const Comp = asChild ? Slot : "div";
50
+ return /* @__PURE__ */ React.createElement(Board.Root, {
51
+ model
52
+ }, /* @__PURE__ */ React.createElement(Comp, {
53
+ ...composableProps(props, {
54
+ role: "none"
55
+ }),
56
+ ref: forwardedRef
57
+ }, children));
58
+ });
49
59
  PipelineContent.displayName = PIPELINE_CONTENT_NAME;
50
60
  var PIPELINE_COLUMNS_NAME = "Pipeline.Columns";
51
- var PipelineColumns = ({ pipeline }) => {
61
+ var PipelineColumns = composable(({ pipeline, ...props }) => {
52
62
  const { model } = useBoard(PIPELINE_COLUMNS_NAME);
53
63
  const columns = useAtomValue(model.columns);
54
64
  const eventHandler = useEventHandlerAdapter({
@@ -59,26 +69,30 @@ var PipelineColumns = ({ pipeline }) => {
59
69
  get: (data) => data,
60
70
  make: (object) => object,
61
71
  canDrop: ({ source }) => model.isColumn(source.data),
62
- onChange: (mutate) => Obj.change(pipeline, (p) => mutate(p.columns))
72
+ onChange: (mutate) => Obj.change(pipeline, (obj) => mutate(obj.columns))
63
73
  });
64
74
  return /* @__PURE__ */ React.createElement(Board.Content, {
75
+ ...props,
65
76
  id: "pipeline",
66
77
  eventHandler,
67
78
  Tile: PipelineColumn
68
79
  });
69
- };
80
+ });
70
81
  PipelineColumns.displayName = PIPELINE_COLUMNS_NAME;
71
82
  var PIPELINE_TOOLBAR_NAME = "Pipeline.Toolbar";
72
- var PipelineToolbar = (props) => {
83
+ var PipelineToolbar = composable(({ children, ...props }, forwardedRef) => {
73
84
  const { t } = useTranslation(meta.id);
74
85
  const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);
75
- return /* @__PURE__ */ React.createElement(Toolbar.Root, props, /* @__PURE__ */ React.createElement(Toolbar.IconButton, {
86
+ return /* @__PURE__ */ React.createElement(Toolbar.Root, {
87
+ ...composableProps(props),
88
+ ref: forwardedRef
89
+ }, /* @__PURE__ */ React.createElement(Toolbar.IconButton, {
76
90
  icon: "ph--plus--regular",
77
91
  iconOnly: true,
78
92
  label: t("add column label"),
79
93
  onClick: onAddColumn
80
94
  }));
81
- };
95
+ });
82
96
  PipelineToolbar.displayName = PIPELINE_TOOLBAR_NAME;
83
97
  var PipelineComponent = {
84
98
  Root: PipelineRoot,
@@ -88,6 +102,7 @@ var PipelineComponent = {
88
102
  };
89
103
 
90
104
  // src/components/PipelineComponent/PipelineColumn.tsx
105
+ import { Menu } from "@dxos/react-ui-menu";
91
106
  var PIPELINE_COLUMN_NAME = "PipelineColumn";
92
107
  var PipelineColumn = ({ data: column, location, classNames, debug }) => {
93
108
  const { t } = useTranslation2(meta.id);
@@ -131,38 +146,41 @@ var PipelineColumn = ({ data: column, location, classNames, debug }) => {
131
146
  schema,
132
147
  view
133
148
  ]);
134
- const Tile = useMemo(() => {
149
+ const PipelineTile = useMemo(() => {
135
150
  return /* @__PURE__ */ forwardRef((props, ref) => /* @__PURE__ */ React2.createElement(ItemTile, {
136
151
  ...props,
137
- ref,
138
152
  itemProps: {
139
153
  item: props.data,
140
154
  projectionModel
141
- }
155
+ },
156
+ ref
142
157
  }));
143
158
  }, [
144
- Item,
145
159
  projectionModel
146
160
  ]);
147
161
  if (!view) {
148
162
  return null;
149
163
  }
150
- return /* @__PURE__ */ React2.createElement(Board2.Column.Root, {
164
+ return /* @__PURE__ */ React2.createElement(Panel.Root, {
165
+ asChild: true
166
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Root, {
167
+ debug,
151
168
  data: column,
152
169
  location,
153
- classNames: [
154
- "group/column grid h-full overflow-hidden grid-rows-[var(--dx-rail-action)_1fr]",
155
- classNames
156
- ],
157
- debug,
170
+ classNames,
158
171
  dragHandleRef
172
+ }, /* @__PURE__ */ React2.createElement(Panel.Toolbar, {
173
+ asChild: true
159
174
  }, /* @__PURE__ */ React2.createElement(Board2.Column.Header, {
160
- label: column.name ?? t("untitled view title"),
175
+ classNames: "_opacity-10",
176
+ label: column.name || t("untitled view title"),
161
177
  dragHandleRef
162
- }), /* @__PURE__ */ React2.createElement(Board2.Column.Body, {
178
+ })), /* @__PURE__ */ React2.createElement(Panel.Content, {
179
+ asChild: true
180
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Body, {
163
181
  data: column,
164
- Tile
165
- }));
182
+ Tile: PipelineTile
183
+ }))));
166
184
  };
167
185
  PipelineColumn.displayName = PIPELINE_COLUMN_NAME;
168
186
  var ITEM_TILE_NAME = "ItemTile";
@@ -170,21 +188,30 @@ var ItemTile = /* @__PURE__ */ forwardRef(({ classNames, data, location, debug,
170
188
  const rootRef = useRef(null);
171
189
  const composedRef = useComposedRefs(rootRef, forwardedRef);
172
190
  const { Item } = usePipeline(ITEM_TILE_NAME);
173
- const handleNavigate = useObjectNavigate(data);
174
- return /* @__PURE__ */ React2.createElement(Mosaic.Tile, {
191
+ const icon = Function.pipe(Obj2.getSchema(data), Option.fromNullable, Option.flatMap(Annotation.IconAnnotation.get), Option.map(({ icon: icon2 }) => icon2), Option.getOrElse(() => "ph--placeholder--regular"));
192
+ return /* @__PURE__ */ React2.createElement(Menu.Root, null, /* @__PURE__ */ React2.createElement(Mosaic.Tile, {
175
193
  asChild: true,
176
194
  id: data.id,
177
195
  data,
178
196
  location,
179
197
  debug
180
- }, /* @__PURE__ */ React2.createElement(Focus.Group, {
198
+ }, /* @__PURE__ */ React2.createElement(Focus.Item, {
181
199
  asChild: true
182
200
  }, /* @__PURE__ */ React2.createElement(Card.Root, {
183
201
  classNames,
184
202
  ref: composedRef
185
- }, /* @__PURE__ */ React2.createElement(Card.Toolbar, null, /* @__PURE__ */ React2.createElement(Card.DragHandle, null), /* @__PURE__ */ React2.createElement(Card.Title, {
186
- onClick: handleNavigate
187
- }, Obj2.getLabel(data)), /* @__PURE__ */ React2.createElement(Card.Menu, null)), /* @__PURE__ */ React2.createElement(Card.Content, null, /* @__PURE__ */ React2.createElement(Item, itemProps)))));
203
+ }, /* @__PURE__ */ React2.createElement(Card.Toolbar, null, /* @__PURE__ */ React2.createElement(Card.Icon, {
204
+ icon
205
+ }), /* @__PURE__ */ React2.createElement(Card.Title, null, Obj2.getLabel(data)), /* @__PURE__ */ React2.createElement(Card.IconBlock, {
206
+ padding: true
207
+ }, /* @__PURE__ */ React2.createElement(Menu.Trigger, {
208
+ asChild: true
209
+ }, /* @__PURE__ */ React2.createElement(Toolbar2.IconButton, {
210
+ iconOnly: true,
211
+ variant: "ghost",
212
+ icon: "ph--dots-three-vertical--regular",
213
+ label: "Actions"
214
+ })), /* @__PURE__ */ React2.createElement(Menu.Content, null))), /* @__PURE__ */ React2.createElement(Card.Content, null, /* @__PURE__ */ React2.createElement(Item, itemProps))))));
188
215
  });
189
216
  ItemTile.displayName = ITEM_TILE_NAME;
190
217
 
@@ -263,23 +290,23 @@ var PipelineContainer = ({ role, subject: pipeline, attendableId }) => {
263
290
  const { invokePromise } = useOperationInvoker();
264
291
  const { hasAttention } = useAttention(attendableId);
265
292
  const handleColumnAdd = useCallback(() => invokePromise(DeckOperation.ChangeCompanion, {
266
- companion: `${COMPANION_PREFIX}settings`
293
+ companion: companionSegment("settings")
267
294
  }), [
268
295
  invokePromise
269
296
  ]);
270
297
  return /* @__PURE__ */ React3.createElement(PipelineComponent.Root, {
271
298
  Item: PipelineItem,
272
299
  onAddColumn: handleColumnAdd
273
- }, /* @__PURE__ */ React3.createElement(Panel.Root, {
274
- role,
275
- className: "dx-article"
276
- }, /* @__PURE__ */ React3.createElement(Panel.Toolbar, {
300
+ }, /* @__PURE__ */ React3.createElement(Panel2.Root, {
301
+ role
302
+ }, /* @__PURE__ */ React3.createElement(Panel2.Toolbar, {
277
303
  asChild: true
278
304
  }, /* @__PURE__ */ React3.createElement(PipelineComponent.Toolbar, {
279
305
  disabled: !hasAttention
280
- })), /* @__PURE__ */ React3.createElement(Panel.Content, {
306
+ })), /* @__PURE__ */ React3.createElement(Panel2.Content, {
281
307
  asChild: true
282
308
  }, /* @__PURE__ */ React3.createElement(PipelineComponent.Content, {
309
+ asChild: true,
283
310
  model
284
311
  }, /* @__PURE__ */ React3.createElement(PipelineComponent.Columns, {
285
312
  pipeline
@@ -315,4 +342,4 @@ var PipelineContainer_default = PipelineContainer;
315
342
  export {
316
343
  PipelineContainer_default as default
317
344
  };
318
- //# sourceMappingURL=PipelineContainer-FAOVECDX.mjs.map
345
+ //# sourceMappingURL=PipelineContainer-LY2P4JPA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/PipelineContainer/PipelineContainer.tsx", "../../../src/components/PipelineComponent/PipelineColumn.tsx", "../../../src/components/PipelineComponent/PipelineComponent.tsx", "../../../src/hooks/usePipelineBoardModel.ts", "../../../src/containers/PipelineContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect } from 'react';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { useCapability } from '@dxos/app-framework/ui';\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { Surface } from '@dxos/app-framework/ui';\nimport {\n OBJECT_ACTIONS_CONTRIBUTION_ID,\n OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,\n type SurfaceComponentProps,\n useObjectMenuItems,\n} from '@dxos/app-toolkit/ui';\nimport { companionSegment } from '@dxos/app-toolkit';\nimport { DeckOperation } from '@dxos/plugin-deck/operations';\nimport { Panel } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { useMenu } from '@dxos/react-ui-menu';\nimport { type Pipeline } from '@dxos/types';\n\nimport { type ItemProps, PipelineComponent } from '../../components';\nimport { usePipelineBoardModel } from '../../hooks';\n\nconst PIPELINE_ITEM = 'PipelineItem';\n\nexport type PipelineContainerProps = SurfaceComponentProps<Pipeline.Pipeline>;\n\nexport const PipelineContainer = ({ role, subject: pipeline, attendableId }: PipelineContainerProps) => {\n const registry = useCapability(Capabilities.AtomRegistry);\n const model = usePipelineBoardModel(pipeline, registry);\n const { invokePromise } = useOperationInvoker();\n const { hasAttention } = useAttention(attendableId);\n\n const handleColumnAdd = useCallback(\n () =>\n invokePromise(DeckOperation.ChangeCompanion, {\n companion: companionSegment('settings'),\n }),\n [invokePromise],\n );\n\n return (\n <PipelineComponent.Root Item={PipelineItem} onAddColumn={handleColumnAdd}>\n <Panel.Root role={role}>\n <Panel.Toolbar asChild>\n <PipelineComponent.Toolbar disabled={!hasAttention} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <PipelineComponent.Content asChild model={model}>\n <PipelineComponent.Columns pipeline={pipeline} />\n </PipelineComponent.Content>\n </Panel.Content>\n </Panel.Root>\n </PipelineComponent.Root>\n );\n};\n\nconst PipelineItem = ({ item, projectionModel }: ItemProps) => {\n const menu = useMenu(PIPELINE_ITEM);\n const items = useObjectMenuItems(item);\n\n useEffect(() => {\n menu.addMenuItems({\n id: OBJECT_ACTIONS_CONTRIBUTION_ID,\n mode: 'additive',\n priority: OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,\n items,\n });\n\n return () => menu.removeMenuItems(OBJECT_ACTIONS_CONTRIBUTION_ID);\n }, [menu, items]);\n\n return (\n <Surface.Surface\n role='card--content'\n data={{\n subject: item,\n projection: projectionModel,\n }}\n limit={1}\n />\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport React, { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { Annotation, JsonSchema, Obj, Query, Type } from '@dxos/echo';\nimport { resolveSchemaWithRegistry } from '@dxos/plugin-space';\nimport { Filter, getSpace, useObject } from '@dxos/react-client/echo';\nimport { Panel, Toolbar, useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui';\nimport { Board, Focus, Mosaic, type MosaicTileProps } from '@dxos/react-ui-mosaic';\nimport { ProjectionModel, createEchoChangeCallback } from '@dxos/schema';\nimport { type Pipeline } from '@dxos/types';\n\nimport { meta } from '../../meta';\n\nimport { type ItemProps, usePipeline } from './PipelineComponent';\nimport { Menu } from '@dxos/react-ui-menu';\n\n//\n// PipelineColumn\n//\n\nconst PIPELINE_COLUMN_NAME = 'PipelineColumn';\n\nexport type PipelineColumnProps = Pick<MosaicTileProps<Pipeline.Column>, 'classNames' | 'location' | 'data' | 'debug'>;\n\n// TODO(wittjosiah): Support item DnD reordering (ordering needs to be stored on the view presentation collection).\nexport const PipelineColumn = ({ data: column, location, classNames, debug }: PipelineColumnProps) => {\n const { t } = useTranslation(meta.id);\n const dragHandleRef = useRef<HTMLButtonElement>(null);\n // Subscribe to the view target for reactivity.\n const [viewSnapshot] = useObject(column.view);\n const view = column.view.target;\n const space = getSpace(view);\n const { Item } = usePipeline(PIPELINE_COLUMN_NAME);\n const [schema, setSchema] = useState<Schema.Schema.AnyNoContext>();\n const query = useMemo(() => {\n if (!view) {\n return Query.select(Filter.nothing());\n } else {\n // NOTE: Snapshot is required to prevent signal read in prohibited scope.\n // TODO(wittjosiah): Without stringify, filter.filters remains a proxied array.\n return Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot?.query.ast)));\n }\n }, [JSON.stringify(viewSnapshot?.query.ast)]);\n\n useAsyncEffect(async () => {\n if (!query || !space?.db) {\n return;\n }\n\n const schema = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);\n setSchema(() => schema);\n }, [space, query]);\n\n const projectionModel = useMemo(() => {\n if (!schema || !view) {\n return undefined;\n }\n\n // For mutable schemas (EchoSchema), use the live jsonSchema reference for reactivity.\n const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : JsonSchema.toJsonSchema(schema);\n const change = createEchoChangeCallback(view, Type.isMutable(schema) ? schema : undefined);\n return new ProjectionModel({ view, baseSchema: jsonSchema, change });\n }, [schema, view]);\n\n const PipelineTile = useMemo(() => {\n return forwardRef<HTMLDivElement, Pick<MosaicTileProps<Obj.Unknown>, 'classNames' | 'location' | 'data' | 'debug'>>(\n (props, ref) => <ItemTile {...props} itemProps={{ item: props.data, projectionModel }} ref={ref} />,\n );\n }, [projectionModel]);\n\n if (!view) {\n return null;\n }\n\n return (\n <Panel.Root asChild>\n <Board.Column.Root\n debug={debug}\n data={column}\n location={location}\n classNames={classNames}\n dragHandleRef={dragHandleRef}\n >\n <Panel.Toolbar asChild>\n <Board.Column.Header\n classNames='_opacity-10'\n label={column.name || t('untitled view title')}\n dragHandleRef={dragHandleRef}\n />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <Board.Column.Body data={column} Tile={PipelineTile} />\n </Panel.Content>\n </Board.Column.Root>\n </Panel.Root>\n );\n};\n\nPipelineColumn.displayName = PIPELINE_COLUMN_NAME;\n\n//\n// ItemTile\n//\n\nconst ITEM_TILE_NAME = 'ItemTile';\n\ntype ItemTileProps = Pick<MosaicTileProps<Obj.Unknown>, 'classNames' | 'location' | 'data' | 'debug'> & {\n itemProps: ItemProps;\n};\n\nconst ItemTile = forwardRef<HTMLDivElement, ItemTileProps>(\n ({ classNames, data, location, debug, itemProps }, forwardedRef) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = useComposedRefs<HTMLDivElement>(rootRef, forwardedRef);\n const { Item } = usePipeline(ITEM_TILE_NAME);\n const icon = Function.pipe(\n Obj.getSchema(data),\n Option.fromNullable,\n Option.flatMap(Annotation.IconAnnotation.get),\n Option.map(({ icon }) => icon),\n Option.getOrElse(() => 'ph--placeholder--regular'),\n );\n\n return (\n <Menu.Root>\n <Mosaic.Tile asChild id={data.id} data={data} location={location} debug={debug}>\n <Focus.Item asChild>\n <Card.Root classNames={classNames} ref={composedRef}>\n <Card.Toolbar>\n <Card.Icon icon={icon} />\n <Card.Title>{Obj.getLabel(data)}</Card.Title>\n {/* TODO(wittjosiah): Reconcile with Card.Menu. */}\n <Card.IconBlock padding>\n <Menu.Trigger asChild>\n <Toolbar.IconButton\n iconOnly\n variant='ghost'\n icon='ph--dots-three-vertical--regular'\n label='Actions'\n />\n </Menu.Trigger>\n <Menu.Content />\n </Card.IconBlock>\n </Card.Toolbar>\n <Card.Content>\n <Item {...itemProps} />\n </Card.Content>\n </Card.Root>\n </Focus.Item>\n </Mosaic.Tile>\n </Menu.Root>\n );\n },\n);\n\nItemTile.displayName = ITEM_TILE_NAME;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport { createContext } from '@radix-ui/react-context';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { type FC, type PropsWithChildren } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { Toolbar, type ToolbarRootProps, useTranslation } from '@dxos/react-ui';\nimport { Board, type BoardModel, useBoard, useEventHandlerAdapter } from '@dxos/react-ui-mosaic';\nimport { type ProjectionModel } from '@dxos/schema';\nimport { type Pipeline } from '@dxos/types';\nimport { composable, composableProps, slottable } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\nimport { PipelineColumn } from './PipelineColumn';\n\ntype ItemProps = {\n item: Obj.Unknown;\n projectionModel?: ProjectionModel;\n};\n\nconst itemNoOp = ({ item }: ItemProps) => <span>{item.id}</span>;\n\n//\n// Root\n//\n\ntype PipelineContextValue = {\n Item: FC<ItemProps>;\n // TODO(wittjosiah): Support adding items.\n // If the created item doesn't match the current query, it will not be visible.\n // TODO(wittjosiah): onAddItem?: (schema: Schema.Schema.AnyNoContext) => void;\n onAddColumn?: () => void;\n};\n\ntype PipelineRootProps = PropsWithChildren<PipelineContextValue>;\n\nconst PIPELINE_ROOT = 'Pipeline.Root';\n\nconst [PipelineRootContext, usePipeline] = createContext<PipelineContextValue>(PIPELINE_ROOT, {\n Item: itemNoOp,\n});\n\nconst PipelineRoot = ({ children, ...contextValue }: PipelineRootProps) => (\n <PipelineRootContext {...contextValue}>{children}</PipelineRootContext>\n);\n\nPipelineRoot.displayName = PIPELINE_ROOT;\n\n//\n// Content\n//\n\nconst PIPELINE_CONTENT_NAME = 'Pipeline.Content';\n\ntype PipelineContentProps = PropsWithChildren<{\n model: BoardModel<Pipeline.Column, Obj.Unknown>;\n}>;\n\nconst PipelineContent = slottable<HTMLDivElement, PipelineContentProps>(\n ({ asChild, model, children, ...props }, forwardedRef) => {\n const Comp = asChild ? Slot : 'div';\n return (\n <Board.Root model={model}>\n <Comp {...composableProps(props, { role: 'none' })} ref={forwardedRef}>\n {children}\n </Comp>\n </Board.Root>\n );\n },\n);\n\nPipelineContent.displayName = PIPELINE_CONTENT_NAME;\n\n//\n// Columns\n//\n\nconst PIPELINE_COLUMNS_NAME = 'Pipeline.Columns';\n\ntype PipelineColumnsProps = {\n pipeline: Pipeline.Pipeline;\n};\n\nconst PipelineColumns = composable<HTMLDivElement, PipelineColumnsProps>(({ pipeline, ...props }) => {\n const { model } = useBoard(PIPELINE_COLUMNS_NAME);\n const columns = useAtomValue(model.columns);\n const eventHandler = useEventHandlerAdapter<Pipeline.Column, Obj.Unknown>({\n id: pipeline.id,\n // TODO(wittjosiah): Cast because columns array is readonly.\n items: columns as any,\n getId: model.getColumnId,\n get: (data) => data as unknown as Obj.Unknown,\n make: (object) => object as unknown as Pipeline.Column,\n canDrop: ({ source }) => model.isColumn(source.data),\n onChange: (mutate) => Obj.change(pipeline, (obj) => mutate(obj.columns)),\n });\n\n return <Board.Content {...props} id='pipeline' eventHandler={eventHandler} Tile={PipelineColumn} />;\n});\n\nPipelineColumns.displayName = PIPELINE_COLUMNS_NAME;\n\n//\n// Toolbar\n//\n\nconst PIPELINE_TOOLBAR_NAME = 'Pipeline.Toolbar';\n\nexport const PipelineToolbar = composable<HTMLDivElement, ToolbarRootProps>(({ children, ...props }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);\n\n return (\n <Toolbar.Root {...composableProps(props)} ref={forwardedRef}>\n <Toolbar.IconButton icon='ph--plus--regular' iconOnly label={t('add column label')} onClick={onAddColumn} />\n </Toolbar.Root>\n );\n});\n\nPipelineToolbar.displayName = PIPELINE_TOOLBAR_NAME;\n\n//\n// Project\n//\n\nexport const PipelineComponent = {\n Root: PipelineRoot,\n Content: PipelineContent,\n Columns: PipelineColumns,\n Toolbar: PipelineToolbar,\n};\n\nexport { usePipeline };\n\nexport type { ItemProps, PipelineContextValue, PipelineRootProps, PipelineContentProps, PipelineColumnsProps };\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, type Registry } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\nimport { useMemo } from 'react';\n\nimport { Obj, Query } from '@dxos/echo';\nimport { AtomObj, AtomQuery } from '@dxos/echo-atom';\nimport { getQueryTarget } from '@dxos/plugin-space';\nimport { getSpace, isSpace } from '@dxos/react-client/echo';\nimport { type BoardModel } from '@dxos/react-ui-mosaic';\nimport { Pipeline } from '@dxos/types';\n\nexport const usePipelineBoardModel = (\n pipeline: Pipeline.Pipeline | undefined,\n registry: Registry.Registry,\n): BoardModel<Pipeline.Column, Obj.Unknown> =>\n useMemo<BoardModel<Pipeline.Column, Obj.Unknown>>(() => {\n if (pipeline == null) {\n return emptyPipelineModel;\n }\n\n const space = getSpace(pipeline);\n const columnsAtom = AtomObj.makeProperty(pipeline, 'columns');\n const columnAtomFamily = Atom.family<string, Atom.Atom<Pipeline.Column | undefined>>((viewKey: string) =>\n Atom.make((get) => {\n const columns = get(columnsAtom);\n return columns.find((c) => c.view.dxn.toString() === viewKey);\n }),\n );\n\n const itemsAtomFamily = Atom.family<string, Atom.Atom<Obj.Unknown[]>>((viewKey: string) =>\n Atom.make((get) => {\n const column = get(columnAtomFamily(viewKey));\n if (column == null) {\n return [];\n }\n const viewSnapshot = get(AtomObj.make(column.view));\n if (!viewSnapshot?.query?.ast) {\n return [];\n }\n const query = Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot.query.ast)));\n const queryTarget = space ? getQueryTarget(query.ast, space) : undefined;\n if (!queryTarget) {\n return [];\n }\n const raw = get(AtomQuery.make(queryTarget, query));\n return isSpace(queryTarget) ? raw : [...raw].reverse();\n }),\n );\n\n return {\n getColumnId: (data) => (data as Pipeline.Column).view.dxn.toString(),\n getItemId: (data) => (data as Obj.Unknown).id,\n isColumn: (obj: unknown): obj is Pipeline.Column => Schema.is(Pipeline.Column)(obj),\n isItem: (obj: unknown): obj is Obj.Unknown => Obj.isObject(obj),\n columns: columnsAtom,\n items: (column) => itemsAtomFamily(column.view.dxn.toString()),\n getColumns: () => [...registry.get(columnsAtom)],\n getItems: (column) => registry.get(itemsAtomFamily(column.view.dxn.toString())) ?? [],\n };\n }, [pipeline, registry]);\n\nconst emptyColumnsAtom = Atom.make(() => [] as Pipeline.Column[]);\n\nconst emptyItemsAtom = Atom.make(() => [] as Obj.Unknown[]);\n\nconst emptyPipelineModel: BoardModel<Pipeline.Column, Obj.Unknown> = {\n getColumnId: (data) => (data as Pipeline.Column).view.dxn.toString(),\n getItemId: (data) => (data as Obj.Unknown).id,\n isColumn: (obj: unknown): obj is Pipeline.Column => Schema.is(Pipeline.Column)(obj),\n isItem: (obj): obj is Obj.Unknown => Obj.isObject(obj),\n columns: emptyColumnsAtom,\n items: () => emptyItemsAtom,\n getColumns: () => [],\n getItems: () => [],\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { PipelineContainer } from './PipelineContainer';\n\nexport default PipelineContainer;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useEffect", "Capabilities", "useCapability", "useOperationInvoker", "Surface", "OBJECT_ACTIONS_CONTRIBUTION_ID", "OBJECT_ACTIONS_CONTRIBUTION_PRIORITY", "useObjectMenuItems", "companionSegment", "DeckOperation", "Panel", "useAttention", "useMenu", "useComposedRefs", "Function", "Option", "React", "forwardRef", "useMemo", "useRef", "useState", "Annotation", "JsonSchema", "Obj", "Query", "Type", "resolveSchemaWithRegistry", "Filter", "getSpace", "useObject", "Panel", "Toolbar", "useAsyncEffect", "useTranslation", "Card", "Board", "Focus", "Mosaic", "ProjectionModel", "createEchoChangeCallback", "useAtomValue", "createContext", "Slot", "React", "Obj", "Toolbar", "useTranslation", "Board", "useBoard", "useEventHandlerAdapter", "composable", "composableProps", "slottable", "itemNoOp", "item", "span", "id", "PIPELINE_ROOT", "PipelineRootContext", "usePipeline", "createContext", "Item", "PipelineRoot", "children", "contextValue", "displayName", "PIPELINE_CONTENT_NAME", "PipelineContent", "slottable", "asChild", "model", "props", "forwardedRef", "Comp", "Slot", "Board", "Root", "composableProps", "role", "ref", "PIPELINE_COLUMNS_NAME", "PipelineColumns", "composable", "pipeline", "useBoard", "columns", "useAtomValue", "eventHandler", "useEventHandlerAdapter", "items", "getId", "getColumnId", "get", "data", "make", "object", "canDrop", "source", "isColumn", "onChange", "mutate", "Obj", "change", "obj", "Content", "Tile", "PipelineColumn", "PIPELINE_TOOLBAR_NAME", "PipelineToolbar", "t", "useTranslation", "meta", "onAddColumn", "Toolbar", "IconButton", "icon", "iconOnly", "label", "onClick", "PipelineComponent", "Columns", "Menu", "PIPELINE_COLUMN_NAME", "PipelineColumn", "data", "column", "location", "classNames", "debug", "t", "useTranslation", "meta", "id", "dragHandleRef", "useRef", "viewSnapshot", "useObject", "view", "target", "space", "getSpace", "Item", "usePipeline", "schema", "setSchema", "useState", "query", "useMemo", "Query", "select", "Filter", "nothing", "fromAst", "JSON", "parse", "stringify", "ast", "useAsyncEffect", "db", "resolveSchemaWithRegistry", "schemaRegistry", "projectionModel", "undefined", "jsonSchema", "Type", "isMutable", "JsonSchema", "toJsonSchema", "change", "createEchoChangeCallback", "ProjectionModel", "baseSchema", "PipelineTile", "forwardRef", "props", "ref", "React", "ItemTile", "itemProps", "item", "Panel", "Root", "asChild", "Board", "Column", "Toolbar", "Header", "label", "name", "Content", "Body", "Tile", "displayName", "ITEM_TILE_NAME", "forwardedRef", "rootRef", "composedRef", "useComposedRefs", "icon", "pipe", "Obj", "getSchema", "fromNullable", "flatMap", "Annotation", "IconAnnotation", "get", "map", "getOrElse", "Menu", "Mosaic", "Focus", "Card", "Icon", "Title", "getLabel", "IconBlock", "padding", "Trigger", "IconButton", "iconOnly", "variant", "Atom", "Schema", "useMemo", "Obj", "Query", "AtomObj", "AtomQuery", "getQueryTarget", "getSpace", "isSpace", "Pipeline", "usePipelineBoardModel", "pipeline", "registry", "useMemo", "emptyPipelineModel", "space", "getSpace", "columnsAtom", "AtomObj", "makeProperty", "columnAtomFamily", "Atom", "family", "viewKey", "make", "get", "columns", "find", "c", "view", "dxn", "toString", "itemsAtomFamily", "column", "viewSnapshot", "query", "ast", "Query", "fromAst", "JSON", "parse", "stringify", "queryTarget", "getQueryTarget", "undefined", "raw", "AtomQuery", "isSpace", "reverse", "getColumnId", "data", "getItemId", "id", "isColumn", "obj", "is", "Pipeline", "Column", "isItem", "Obj", "isObject", "items", "getColumns", "getItems", "emptyColumnsAtom", "emptyItemsAtom", "PIPELINE_ITEM", "PipelineContainer", "role", "subject", "pipeline", "attendableId", "registry", "useCapability", "Capabilities", "AtomRegistry", "model", "usePipelineBoardModel", "invokePromise", "useOperationInvoker", "hasAttention", "useAttention", "handleColumnAdd", "useCallback", "DeckOperation", "ChangeCompanion", "companion", "companionSegment", "React", "PipelineComponent", "Root", "Item", "PipelineItem", "onAddColumn", "Panel", "Toolbar", "asChild", "disabled", "Content", "Columns", "item", "projectionModel", "menu", "useMenu", "items", "useObjectMenuItems", "useEffect", "addMenuItems", "id", "OBJECT_ACTIONS_CONTRIBUTION_ID", "mode", "priority", "OBJECT_ACTIONS_CONTRIBUTION_PRIORITY", "removeMenuItems", "Surface", "data", "projection", "limit", "PipelineContainer"]
7
+ }
@@ -13,7 +13,7 @@ import { IconButton, useAsyncEffect, useTranslation } from "@dxos/react-ui";
13
13
  import { Form, ViewEditor } from "@dxos/react-ui-form";
14
14
  import { List } from "@dxos/react-ui-list";
15
15
  import { ViewModel } from "@dxos/schema";
16
- import { Pipeline, Task } from "@dxos/types";
16
+ import { Pipeline } from "@dxos/types";
17
17
  import { mx, osTranslations, subtleHover } from "@dxos/ui-theme";
18
18
  import { arrayMove } from "@dxos/util";
19
19
  var listGrid = "grid grid-cols-[min-content_1fr_min-content_min-content_min-content]";
@@ -130,13 +130,13 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
130
130
  return;
131
131
  }
132
132
  const newView = ViewModel.make({
133
- query: Query.select(Filter.type(Task.Task)),
134
- jsonSchema: JsonSchema.toJsonSchema(Task.Task)
133
+ query: Query.select(Filter.nothing()),
134
+ jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({}))
135
135
  });
136
136
  space.db.add(newView);
137
137
  updateColumns((columns2) => {
138
138
  columns2.push({
139
- name: "Tasks",
139
+ name: "",
140
140
  // Type assertion needed due to QueryAST type variance.
141
141
  view: Ref.make(newView),
142
142
  order: []
@@ -170,7 +170,7 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
170
170
  className: mx(subtleHover, listItemGrid, "rounded-xs cursor-pointer min-h-10")
171
171
  }, /* @__PURE__ */ React.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React.createElement(List.ItemTitle, {
172
172
  onClick: () => handleToggleField(column2)
173
- }, column2.name), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
173
+ }, column2.name || t("untitled view title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
174
174
  label: t("delete view label"),
175
175
  autoHide: false,
176
176
  onClick: () => handleDelete(column2),
@@ -217,4 +217,4 @@ var PipelineObjectSettings_default = PipelineObjectSettings;
217
217
  export {
218
218
  PipelineObjectSettings_default as default
219
219
  };
220
- //# sourceMappingURL=PipelineObjectSettings-JFOS6Z37.mjs.map
220
+ //# sourceMappingURL=PipelineObjectSettings-QFMIKJH5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/PipelineObjectSettings/PipelineObjectSettings.tsx", "../../../src/containers/PipelineObjectSettings/index.ts"],
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, JsonSchema, Obj, Query, type QueryAST, Ref, Tag } from '@dxos/echo';\nimport { type JsonPath, 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, ViewModel } from '@dxos/schema';\nimport { Pipeline } 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 },\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).from({ 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 = ViewModel.make({\n query,\n jsonSchema: JsonSchema.toJsonSchema(newSchema),\n });\n updateView((view) => {\n view.projection = Obj.getSnapshot(newView).projection as Mutable<typeof view.projection>;\n });\n\n setSchema(() => newSchema);\n },\n [view, updateView, schema],\n );\n\n const handleColumnValuesChanged = useCallback(\n (column: Pipeline.Column) =>\n (newValues: { name?: string }, { changed }: { changed: Record<JsonPath, boolean> }) => {\n if (changed['name' as JsonPath]) {\n const columnIndex = columns.findIndex((c) => c === column);\n if (columnIndex === -1) {\n return;\n }\n updateColumns((cols) => {\n cols[columnIndex].name = newValues.name ?? '';\n });\n }\n },\n [columns, updateColumns],\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 = ViewModel.make({\n query: Query.select(Filter.nothing()),\n jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({})),\n });\n space.db.add(newView);\n updateColumns((columns) => {\n columns.push({\n name: '',\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 return (\n <div role='none' className={mx('py-form-padding overflow-y-auto', classNames)}>\n <h2 className='text-sm text-description py-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-xs cursor-pointer min-h-10')}>\n <List.ItemDragHandle />\n <List.ItemTitle onClick={() => handleToggleField(column)}>\n {column.name || t('untitled view title')}\n </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 my-2 border border-separator rounded-md'>\n <Form.Root\n schema={ColumnFormSchema}\n values={column}\n onValuesChanged={handleColumnValuesChanged(column)}\n >\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 db={space?.db}\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='my-form-padding'>\n <IconButton icon='ph--plus--regular' label={t('add view label')} onClick={handleAdd} classNames='w-full' />\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { PipelineObjectSettings } from './PipelineObjectSettings';\n\nexport default PipelineObjectSettings;\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "React", "useCallback", "useMemo", "useRef", "useState", "DXN", "Filter", "JsonSchema", "Obj", "Query", "Ref", "Tag", "useTypeOptions", "resolveSchemaWithRegistry", "getSpace", "useObject", "useQuery", "IconButton", "useAsyncEffect", "useTranslation", "Form", "ViewEditor", "List", "ViewModel", "Pipeline", "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", "useAsyncEffect", "query", "foundSchema", "resolveSchemaWithRegistry", "schemaRegistry", "ast", "handleMove", "useCallback", "fromIndex", "toIndex", "arrayMove", "handleQueryChanged", "newQuery", "target", "queue", "DXN", "tryParse", "undefined", "Query", "fromAst", "from", "queues", "newSchema", "newView", "ViewModel", "make", "jsonSchema", "JsonSchema", "toJsonSchema", "projection", "Obj", "getSnapshot", "handleColumnValuesChanged", "newValues", "changed", "columnIndex", "findIndex", "c", "cols", "name", "handleToggleField", "prevExpandedId", "handleDelete", "index", "l", "viewToRemove", "load", "splice", "remove", "handleAdd", "select", "nothing", "add", "push", "Ref", "order", "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", "values", "onValuesChanged", "Content", "FieldSet", "ViewEditor", "ref", "mode", "readonly", "registry", "onQueryChanged", "PipelineObjectSettings"]
7
+ }
@@ -3,23 +3,22 @@ import {
3
3
  } from "./chunk-3A235GUD.mjs";
4
4
 
5
5
  // src/PipelinePlugin.tsx
6
- import * as Effect2 from "effect/Effect";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Option from "effect/Option";
7
8
  import { Plugin } from "@dxos/app-framework";
8
9
  import { AppPlugin } from "@dxos/app-toolkit";
10
+ import { Annotation } from "@dxos/echo";
11
+ import { Operation } from "@dxos/operation";
12
+ import { SpaceOperation } from "@dxos/plugin-space/operations";
9
13
  import { Pipeline as Pipeline2 } from "@dxos/types";
10
14
 
11
15
  // src/capabilities/app-graph-builder/index.ts
12
16
  import { Capability } from "@dxos/app-framework";
13
17
  var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-QQKBLYFD.mjs"));
14
18
 
15
- // src/capabilities/operation-resolver/operation-resolver.ts
16
- import * as Effect from "effect/Effect";
17
- import { Capabilities, Capability as Capability2 } from "@dxos/app-framework";
18
- var operation_resolver_default = Capability2.makeModule(() => Effect.succeed(Capability2.contributes(Capabilities.OperationResolver, [])));
19
-
20
19
  // src/capabilities/react-surface/index.ts
21
- import { Capability as Capability3 } from "@dxos/app-framework";
22
- var ReactSurface = Capability3.lazy("ReactSurface", () => import("./react-surface-XD6PVALN.mjs"));
20
+ import { Capability as Capability2 } from "@dxos/app-framework";
21
+ var ReactSurface = Capability2.lazy("ReactSurface", () => import("./react-surface-QVPKOGEI.mjs"));
23
22
 
24
23
  // src/translations.ts
25
24
  import { Pipeline } from "@dxos/types";
@@ -62,13 +61,19 @@ var PipelinePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
62
61
  metadata: {
63
62
  id: Pipeline2.Pipeline.typename,
64
63
  metadata: {
65
- icon: "ph--path--regular",
66
- iconHue: "purple",
67
- createObject: (props) => Effect2.sync(() => Pipeline2.make(props))
64
+ icon: Annotation.IconAnnotation.get(Pipeline2.Pipeline).pipe(Option.getOrThrow).icon,
65
+ iconHue: Annotation.IconAnnotation.get(Pipeline2.Pipeline).pipe(Option.getOrThrow).hue ?? "white",
66
+ createObject: (props, options) => Effect.gen(function* () {
67
+ const object = Pipeline2.make(props);
68
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
69
+ object,
70
+ target: options.target,
71
+ hidden: true,
72
+ targetNodeId: options.targetNodeId
73
+ });
74
+ })
68
75
  }
69
76
  }
70
- }), AppPlugin.addOperationResolverModule({
71
- activate: operation_resolver_default
72
77
  }), AppPlugin.addSchemaModule({
73
78
  schema: [
74
79
  Pipeline2.Pipeline
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/PipelinePlugin.tsx", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/operation-resolver/operation-resolver.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { Pipeline } from '@dxos/types';\n\nimport { AppGraphBuilder, OperationResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const PipelinePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addMetadataModule({\n metadata: {\n id: Pipeline.Pipeline.typename,\n metadata: {\n icon: 'ph--path--regular',\n iconHue: 'purple',\n createObject: ((props) => Effect.sync(() => Pipeline.make(props))) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addOperationResolverModule({ activate: OperationResolver }),\n AppPlugin.addSchemaModule({ schema: [Pipeline.Pipeline] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\n\nexport default Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.OperationResolver, [])));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "import { type Resource } from '@dxos/react-ui';\nimport { Pipeline } from '@dxos/types';\n//\n// Copyright 2023 DXOS.org\n//\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [Pipeline.Pipeline.typename]: {\n 'typename label': 'Pipeline',\n 'typename label_zero': 'Pipelines',\n 'typename label_one': 'Pipeline',\n 'typename label_other': 'Pipelines',\n 'object name placeholder': 'New pipeline',\n 'add object label': 'Add pipeline',\n 'rename object label': 'Rename pipeline',\n 'delete object label': 'Delete pipeline',\n 'object deleted label': 'Pipeline deleted',\n },\n [meta.id]: {\n 'plugin name': 'Pipelines',\n 'add column label': 'Add column',\n 'add card label': 'Add object',\n 'untitled view title': 'New view',\n 'enumerating tab label': 'List',\n 'editing tab label': 'Edit',\n 'views label': 'Views',\n 'pipeline invocations label': 'Invocations',\n 'pipeline automation label': 'Automations',\n 'toggle expand label': 'Toggle expand',\n 'delete view label': 'Delete view',\n 'add view label': 'Add view',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": ";;;;;AAIA,YAAYA,aAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAE1B,SAASC,YAAAA,iBAAgB;;;ACLzB,SAASC,kBAAkB;AAEpB,IAAMC,kBAAkBC,WAAWC,KAAK,mBAAmB,MAAM,OAAO,kCAAA,CAAA;;;ACF/E,YAAYC,YAAY;AAExB,SAASC,cAAcC,cAAAA,mBAAkB;AAEzC,IAAA,6BAAeC,YAAWC,WAAW,MAAaC,eAAQF,YAAWG,YAAYC,aAAaC,mBAAmB,CAAA,CAAE,CAAA,CAAA;;;ACJnH,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACLzE,SAASC,gBAAgB;AAOlB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,SAASA,SAASC,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,oBAAoB;QACpB,kBAAkB;QAClB,uBAAuB;QACvB,yBAAyB;QACzB,qBAAqB;QACrB,eAAe;QACf,8BAA8B;QAC9B,6BAA6B;QAC7B,uBAAuB;QACvB,qBAAqB;QACrB,kBAAkB;MACpB;IACF;EACF;;;;AJtBK,IAAMC,iBAAiBC,OAAOC,OAAOC,IAAAA,EAAMC,KAChDC,UAAUC,kBAAkB;EAAEC,UAAUC;AAAgB,CAAA,GACxDH,UAAUI,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,UAASA,SAASC;IACtBH,UAAU;MACRI,MAAM;MACNC,SAAS;MACTC,cAAe,CAACC,UAAiBC,aAAK,MAAMN,UAASO,KAAKF,KAAAA,CAAAA;IAC5D;EACF;AACF,CAAA,GACAZ,UAAUe,2BAA2B;EAAEb,UAAUc;AAAkB,CAAA,GACnEhB,UAAUiB,gBAAgB;EAAEC,QAAQ;IAACX,UAASA;;AAAU,CAAA,GACxDP,UAAUmB,iBAAiB;EAAEjB,UAAUkB;AAAa,CAAA,GACpDpB,UAAUqB,sBAAsB;EAAEC;AAAa,CAAA,GAC/C1B,OAAOkB,IAAI;",
6
- "names": ["Effect", "Plugin", "AppPlugin", "Pipeline", "Capability", "AppGraphBuilder", "Capability", "lazy", "Effect", "Capabilities", "Capability", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "OperationResolver", "Capability", "ReactSurface", "Capability", "lazy", "Pipeline", "translations", "Pipeline", "typename", "meta", "id", "PipelinePlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addAppGraphModule", "activate", "AppGraphBuilder", "addMetadataModule", "metadata", "id", "Pipeline", "typename", "icon", "iconHue", "createObject", "props", "sync", "make", "addOperationResolverModule", "OperationResolver", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations"]
3
+ "sources": ["../../../src/PipelinePlugin.tsx", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Annotation } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\nimport { Pipeline } from '@dxos/types';\n\nimport { AppGraphBuilder, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const PipelinePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addMetadataModule({\n metadata: {\n id: Pipeline.Pipeline.typename,\n metadata: {\n icon: Annotation.IconAnnotation.get(Pipeline.Pipeline).pipe(Option.getOrThrow).icon,\n iconHue: Annotation.IconAnnotation.get(Pipeline.Pipeline).pipe(Option.getOrThrow).hue ?? 'white',\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 })) satisfies CreateObject,\n },\n },\n }),\n\n AppPlugin.addSchemaModule({ schema: [Pipeline.Pipeline] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "import { type Resource } from '@dxos/react-ui';\nimport { Pipeline } from '@dxos/types';\n//\n// Copyright 2023 DXOS.org\n//\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [Pipeline.Pipeline.typename]: {\n 'typename label': 'Pipeline',\n 'typename label_zero': 'Pipelines',\n 'typename label_one': 'Pipeline',\n 'typename label_other': 'Pipelines',\n 'object name placeholder': 'New pipeline',\n 'add object label': 'Add pipeline',\n 'rename object label': 'Rename pipeline',\n 'delete object label': 'Delete pipeline',\n 'object deleted label': 'Pipeline deleted',\n },\n [meta.id]: {\n 'plugin name': 'Pipelines',\n 'add column label': 'Add column',\n 'add card label': 'Add object',\n 'untitled view title': 'New view',\n 'enumerating tab label': 'List',\n 'editing tab label': 'Edit',\n 'views label': 'Views',\n 'pipeline invocations label': 'Invocations',\n 'pipeline automation label': 'Automations',\n 'toggle expand label': 'Toggle expand',\n 'delete view label': 'Delete view',\n 'add view label': 'Add view',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAE1B,SAASC,sBAAsB;AAC/B,SAASC,YAAAA,iBAAgB;;;ACTzB,SAASC,kBAAkB;AAEpB,IAAMC,kBAAkBC,WAAWC,KAAK,mBAAmB,MAAM,OAAO,kCAAA,CAAA;;;ACF/E,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,eAAeC,YAAWC,KAAK,gBAAgB,MAAM,OAAO,8BAAA,CAAA;;;ACLzE,SAASC,gBAAgB;AAOlB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,SAASA,SAASC,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,oBAAoB;QACpB,kBAAkB;QAClB,uBAAuB;QACvB,yBAAyB;QACzB,qBAAqB;QACrB,eAAe;QACf,8BAA8B;QAC9B,6BAA6B;QAC7B,uBAAuB;QACvB,qBAAqB;QACrB,kBAAkB;MACpB;IACF;EACF;;;;AHlBK,IAAMC,iBAAiBC,OAAOC,OAAOC,IAAAA,EAAMC,KAChDC,UAAUC,kBAAkB;EAAEC,UAAUC;AAAgB,CAAA,GACxDH,UAAUI,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,UAASA,SAASC;IACtBH,UAAU;MACRI,MAAMC,WAAWC,eAAeC,IAAIL,UAASA,QAAQ,EAAER,KAAYc,iBAAU,EAAEJ;MAC/EK,SAASJ,WAAWC,eAAeC,IAAIL,UAASA,QAAQ,EAAER,KAAYc,iBAAU,EAAEE,OAAO;MACzFC,cAAe,CAACC,OAAOC,YACdC,WAAI,aAAA;AACT,cAAMC,SAASb,UAASc,KAAKJ,KAAAA;AAC7B,eAAO,OAAOK,UAAUC,OAAOC,eAAeC,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ;EACF;AACF,CAAA,GAEA5B,UAAU6B,gBAAgB;EAAEC,QAAQ;IAACvB,UAASA;;AAAU,CAAA,GACxDP,UAAU+B,iBAAiB;EAAE7B,UAAU8B;AAAa,CAAA,GACpDhC,UAAUiC,sBAAsB;EAAEC;AAAa,CAAA,GAC/CtC,OAAOyB,IAAI;",
6
+ "names": ["Effect", "Option", "Plugin", "AppPlugin", "Annotation", "Operation", "SpaceOperation", "Pipeline", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Pipeline", "translations", "Pipeline", "typename", "meta", "id", "PipelinePlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addAppGraphModule", "activate", "AppGraphBuilder", "addMetadataModule", "metadata", "id", "Pipeline", "typename", "icon", "Annotation", "IconAnnotation", "get", "getOrThrow", "iconHue", "hue", "createObject", "props", "options", "gen", "object", "make", "Operation", "invoke", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations"]
7
7
  }