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

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 (23) hide show
  1. package/dist/lib/browser/{PipelineContainer-FAOVECDX.mjs → PipelineContainer-V5KGYEQR.mjs} +10 -10
  2. package/dist/lib/browser/PipelineContainer-V5KGYEQR.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 +5 -3
  6. package/dist/lib/browser/index.mjs.map +3 -3
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/{react-surface-XD6PVALN.mjs → react-surface-7PY3UOEA.mjs} +4 -4
  9. package/dist/lib/browser/{react-surface-XD6PVALN.mjs.map → react-surface-7PY3UOEA.mjs.map} +1 -1
  10. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  11. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -1
  12. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -1
  13. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts.map +1 -1
  14. package/dist/types/tsconfig.tsbuildinfo +1 -1
  15. package/package.json +41 -41
  16. package/src/PipelinePlugin.tsx +4 -2
  17. package/src/capabilities/react-surface/react-surface.tsx +1 -1
  18. package/src/components/PipelineComponent/PipelineColumn.tsx +13 -6
  19. package/src/components/PipelineComponent/PipelineComponent.stories.tsx +4 -2
  20. package/src/containers/PipelineContainer/PipelineContainer.tsx +1 -1
  21. package/src/containers/PipelineObjectSettings/PipelineObjectSettings.tsx +7 -5
  22. package/dist/lib/browser/PipelineContainer-FAOVECDX.mjs.map +0 -7
  23. package/dist/lib/browser/PipelineObjectSettings-JFOS6Z37.mjs.map +0 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-pipeline",
3
- "version": "0.8.4-main.6fa680abb7",
3
+ "version": "0.8.4-main.c351d160a8",
4
4
  "description": "Pipeline plugin for Composer",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -40,34 +40,34 @@
40
40
  "@radix-ui/react-compose-refs": "1.1.1",
41
41
  "@radix-ui/react-context": "1.1.1",
42
42
  "effect": "3.19.16",
43
- "@dxos/app-framework": "0.8.4-main.6fa680abb7",
44
- "@dxos/app-toolkit": "0.8.4-main.6fa680abb7",
45
- "@dxos/assistant-toolkit": "0.8.4-main.6fa680abb7",
46
- "@dxos/devtools": "0.8.4-main.6fa680abb7",
47
- "@dxos/async": "0.8.4-main.6fa680abb7",
48
- "@dxos/echo": "0.8.4-main.6fa680abb7",
49
- "@dxos/functions": "0.8.4-main.6fa680abb7",
50
- "@dxos/echo-atom": "0.8.4-main.6fa680abb7",
51
- "@dxos/log": "0.8.4-main.6fa680abb7",
52
- "@dxos/echo-query": "0.8.4-main.6fa680abb7",
53
- "@dxos/plugin-client": "0.8.4-main.6fa680abb7",
54
- "@dxos/plugin-deck": "0.8.4-main.6fa680abb7",
55
- "@dxos/plugin-graph": "0.8.4-main.6fa680abb7",
56
- "@dxos/operation": "0.8.4-main.6fa680abb7",
57
- "@dxos/plugin-inbox": "0.8.4-main.6fa680abb7",
58
- "@dxos/plugin-markdown": "0.8.4-main.6fa680abb7",
59
- "@dxos/plugin-space": "0.8.4-main.6fa680abb7",
60
- "@dxos/react-ui-attention": "0.8.4-main.6fa680abb7",
61
- "@dxos/react-client": "0.8.4-main.6fa680abb7",
62
- "@dxos/react-ui-components": "0.8.4-main.6fa680abb7",
63
- "@dxos/react-ui-list": "0.8.4-main.6fa680abb7",
64
- "@dxos/react-ui-form": "0.8.4-main.6fa680abb7",
65
- "@dxos/react-ui-stack": "0.8.4-main.6fa680abb7",
66
- "@dxos/react-ui-menu": "0.8.4-main.6fa680abb7",
67
- "@dxos/react-ui-mosaic": "0.8.4-main.6fa680abb7",
68
- "@dxos/types": "0.8.4-main.6fa680abb7",
69
- "@dxos/schema": "0.8.4-main.6fa680abb7",
70
- "@dxos/util": "0.8.4-main.6fa680abb7"
43
+ "@dxos/async": "0.8.4-main.c351d160a8",
44
+ "@dxos/app-toolkit": "0.8.4-main.c351d160a8",
45
+ "@dxos/assistant-toolkit": "0.8.4-main.c351d160a8",
46
+ "@dxos/devtools": "0.8.4-main.c351d160a8",
47
+ "@dxos/echo-atom": "0.8.4-main.c351d160a8",
48
+ "@dxos/echo-query": "0.8.4-main.c351d160a8",
49
+ "@dxos/functions": "0.8.4-main.c351d160a8",
50
+ "@dxos/echo": "0.8.4-main.c351d160a8",
51
+ "@dxos/operation": "0.8.4-main.c351d160a8",
52
+ "@dxos/log": "0.8.4-main.c351d160a8",
53
+ "@dxos/plugin-client": "0.8.4-main.c351d160a8",
54
+ "@dxos/plugin-deck": "0.8.4-main.c351d160a8",
55
+ "@dxos/plugin-inbox": "0.8.4-main.c351d160a8",
56
+ "@dxos/plugin-graph": "0.8.4-main.c351d160a8",
57
+ "@dxos/plugin-space": "0.8.4-main.c351d160a8",
58
+ "@dxos/plugin-markdown": "0.8.4-main.c351d160a8",
59
+ "@dxos/react-client": "0.8.4-main.c351d160a8",
60
+ "@dxos/react-ui-attention": "0.8.4-main.c351d160a8",
61
+ "@dxos/react-ui-list": "0.8.4-main.c351d160a8",
62
+ "@dxos/react-ui-form": "0.8.4-main.c351d160a8",
63
+ "@dxos/react-ui-menu": "0.8.4-main.c351d160a8",
64
+ "@dxos/react-ui-mosaic": "0.8.4-main.c351d160a8",
65
+ "@dxos/schema": "0.8.4-main.c351d160a8",
66
+ "@dxos/react-ui-stack": "0.8.4-main.c351d160a8",
67
+ "@dxos/types": "0.8.4-main.c351d160a8",
68
+ "@dxos/util": "0.8.4-main.c351d160a8",
69
+ "@dxos/react-ui-components": "0.8.4-main.c351d160a8",
70
+ "@dxos/app-framework": "0.8.4-main.c351d160a8"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@effect-atom/atom-react": "^0.5.0",
@@ -76,24 +76,24 @@
76
76
  "react": "~19.2.3",
77
77
  "react-dom": "~19.2.3",
78
78
  "vite": "^7.1.11",
79
- "@dxos/echo-db": "0.8.4-main.6fa680abb7",
80
- "@dxos/plugin-inbox": "0.8.4-main.6fa680abb7",
81
- "@dxos/plugin-testing": "0.8.4-main.6fa680abb7",
82
- "@dxos/plugin-preview": "0.8.4-main.6fa680abb7",
83
- "@dxos/random": "0.8.4-main.6fa680abb7",
84
- "@dxos/plugin-theme": "0.8.4-main.6fa680abb7",
85
- "@dxos/react-ui": "0.8.4-main.6fa680abb7",
86
- "@dxos/plugin-attention": "0.8.4-main.6fa680abb7",
87
- "@dxos/storybook-utils": "0.8.4-main.6fa680abb7",
88
- "@dxos/ui-theme": "0.8.4-main.6fa680abb7"
79
+ "@dxos/echo-db": "0.8.4-main.c351d160a8",
80
+ "@dxos/plugin-attention": "0.8.4-main.c351d160a8",
81
+ "@dxos/plugin-inbox": "0.8.4-main.c351d160a8",
82
+ "@dxos/plugin-preview": "0.8.4-main.c351d160a8",
83
+ "@dxos/plugin-testing": "0.8.4-main.c351d160a8",
84
+ "@dxos/plugin-theme": "0.8.4-main.c351d160a8",
85
+ "@dxos/react-ui": "0.8.4-main.c351d160a8",
86
+ "@dxos/storybook-utils": "0.8.4-main.c351d160a8",
87
+ "@dxos/ui-theme": "0.8.4-main.c351d160a8",
88
+ "@dxos/random": "0.8.4-main.c351d160a8"
89
89
  },
90
90
  "peerDependencies": {
91
91
  "@effect-atom/atom-react": "^0.5.0",
92
92
  "effect": "3.19.16",
93
93
  "react": "~19.2.3",
94
94
  "react-dom": "~19.2.3",
95
- "@dxos/react-ui": "0.8.4-main.6fa680abb7",
96
- "@dxos/ui-theme": "0.8.4-main.6fa680abb7"
95
+ "@dxos/react-ui": "0.8.4-main.c351d160a8",
96
+ "@dxos/ui-theme": "0.8.4-main.c351d160a8"
97
97
  },
98
98
  "publishConfig": {
99
99
  "access": "public"
@@ -3,9 +3,11 @@
3
3
  //
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
+ import * as Option from 'effect/Option';
6
7
 
7
8
  import { Plugin } from '@dxos/app-framework';
8
9
  import { AppPlugin } from '@dxos/app-toolkit';
10
+ import { Annotation } from '@dxos/echo';
9
11
  import { type CreateObject } from '@dxos/plugin-space/types';
10
12
  import { Pipeline } from '@dxos/types';
11
13
 
@@ -19,8 +21,8 @@ export const PipelinePlugin = Plugin.define(meta).pipe(
19
21
  metadata: {
20
22
  id: Pipeline.Pipeline.typename,
21
23
  metadata: {
22
- icon: 'ph--path--regular',
23
- iconHue: 'purple',
24
+ icon: Annotation.IconAnnotation.get(Pipeline.Pipeline).pipe(Option.getOrThrow).icon,
25
+ iconHue: Annotation.IconAnnotation.get(Pipeline.Pipeline).pipe(Option.getOrThrow).hue ?? 'white',
24
26
  createObject: ((props) => Effect.sync(() => Pipeline.make(props))) satisfies CreateObject,
25
27
  },
26
28
  },
@@ -36,7 +36,7 @@ export default Capability.makeModule(() =>
36
36
  const db = Obj.getDatabase(data.companionTo);
37
37
  // TODO(wittjosiah): Filter the invocations to those relevant to the project.
38
38
  return (
39
- <Panel.Root role={role} className='dx-article'>
39
+ <Panel.Root role={role} className='dx-document'>
40
40
  <Panel.Content asChild>
41
41
  <InvocationTraceContainer db={db} detailAxis='block' />
42
42
  </Panel.Content>
@@ -3,11 +3,12 @@
3
3
  //
4
4
 
5
5
  import { useComposedRefs } from '@radix-ui/react-compose-refs';
6
+ import * as Function from 'effect/Function';
7
+ import * as Option from 'effect/Option';
6
8
  import type * as Schema from 'effect/Schema';
7
9
  import React, { forwardRef, useMemo, useRef, useState } from 'react';
8
10
 
9
- import { useObjectNavigate } from '@dxos/app-toolkit/ui';
10
- import { JsonSchema, Obj, Query, Type } from '@dxos/echo';
11
+ import { Annotation, JsonSchema, Obj, Query, Type } from '@dxos/echo';
11
12
  import { resolveSchemaWithRegistry } from '@dxos/plugin-space';
12
13
  import { Filter, getSpace, useObject } from '@dxos/react-client/echo';
13
14
  import { useAsyncEffect, useTranslation } from '@dxos/react-ui';
@@ -86,7 +87,7 @@ export const PipelineColumn = ({ data: column, location, classNames, debug }: Pi
86
87
  debug={debug}
87
88
  dragHandleRef={dragHandleRef}
88
89
  >
89
- <Board.Column.Header label={column.name ?? t('untitled view title')} dragHandleRef={dragHandleRef} />
90
+ <Board.Column.Header label={column.name || t('untitled view title')} dragHandleRef={dragHandleRef} />
90
91
  <Board.Column.Body data={column} Tile={Tile} />
91
92
  </Board.Column.Root>
92
93
  );
@@ -109,15 +110,21 @@ const ItemTile = forwardRef<HTMLDivElement, ItemTileProps>(
109
110
  const rootRef = useRef<HTMLDivElement>(null);
110
111
  const composedRef = useComposedRefs<HTMLDivElement>(rootRef, forwardedRef);
111
112
  const { Item } = usePipeline(ITEM_TILE_NAME);
112
- const handleNavigate = useObjectNavigate(data);
113
+ const icon = Function.pipe(
114
+ Obj.getSchema(data),
115
+ Option.fromNullable,
116
+ Option.flatMap(Annotation.IconAnnotation.get),
117
+ Option.map(({ icon }) => icon),
118
+ Option.getOrElse(() => 'ph--placeholder--regular'),
119
+ );
113
120
 
114
121
  return (
115
122
  <Mosaic.Tile asChild id={data.id} data={data} location={location} debug={debug}>
116
123
  <Focus.Group asChild>
117
124
  <Card.Root classNames={classNames} ref={composedRef}>
118
125
  <Card.Toolbar>
119
- <Card.DragHandle />
120
- <Card.Title onClick={handleNavigate}>{Obj.getLabel(data)}</Card.Title>
126
+ <Card.Icon icon={icon} />
127
+ <Card.Title>{Obj.getLabel(data)}</Card.Title>
121
128
  <Card.Menu />
122
129
  </Card.Toolbar>
123
130
  <Card.Content>
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { RegistryContext } from '@effect-atom/atom-react';
6
6
  import { type Meta, type StoryObj } from '@storybook/react-vite';
7
- import React, { useCallback, useContext, useEffect } from 'react';
7
+ import React, { useCallback, useContext, useEffect, useMemo } from 'react';
8
8
 
9
9
  import { Filter, Ref } from '@dxos/client/echo';
10
10
  import { JsonSchema, Obj, Query } from '@dxos/echo';
@@ -26,11 +26,13 @@ import { translations } from '../../translations';
26
26
  import { type ItemProps, PipelineComponent } from './PipelineComponent';
27
27
 
28
28
  const StorybookProjectItem = ({ item, projectionModel }: ItemProps) => {
29
+ const personSchema = useMemo(() => omitId(Person.Person), []);
30
+
29
31
  if (Obj.instanceOf(Person.Person, item)) {
30
32
  const contact = item as Obj.OfShape<Person.Person>;
31
33
 
32
34
  return (
33
- <Form.Root schema={omitId(Person.Person)} projection={projectionModel} values={contact} autoSave>
35
+ <Form.Root schema={personSchema} projection={projectionModel} values={contact} autoSave>
34
36
  <Form.Viewport>
35
37
  <Form.Content>
36
38
  <Form.FieldSet />
@@ -44,7 +44,7 @@ export const PipelineContainer = ({ role, subject: pipeline, attendableId }: Pip
44
44
 
45
45
  return (
46
46
  <PipelineComponent.Root Item={PipelineItem} onAddColumn={handleColumnAdd}>
47
- <Panel.Root role={role} className='dx-article'>
47
+ <Panel.Root role={role}>
48
48
  <Panel.Toolbar asChild>
49
49
  <PipelineComponent.Toolbar disabled={!hasAttention} />
50
50
  </Panel.Toolbar>
@@ -14,7 +14,7 @@ import { IconButton, type ThemedClassName, useAsyncEffect, useTranslation } from
14
14
  import { Form, ViewEditor } from '@dxos/react-ui-form';
15
15
  import { List } from '@dxos/react-ui-list';
16
16
  import { type ProjectionModel, ViewModel } from '@dxos/schema';
17
- import { Pipeline, Task } from '@dxos/types';
17
+ import { Pipeline } from '@dxos/types';
18
18
  import { mx, osTranslations, subtleHover } from '@dxos/ui-theme';
19
19
  import { arrayMove } from '@dxos/util';
20
20
 
@@ -145,13 +145,13 @@ export const PipelineObjectSettings = ({ classNames, pipeline }: PipelineObjectS
145
145
  return;
146
146
  }
147
147
  const newView = ViewModel.make({
148
- query: Query.select(Filter.type(Task.Task)),
149
- jsonSchema: JsonSchema.toJsonSchema(Task.Task),
148
+ query: Query.select(Filter.nothing()),
149
+ jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({})),
150
150
  });
151
151
  space.db.add(newView);
152
152
  updateColumns((columns) => {
153
153
  columns.push({
154
- name: 'Tasks',
154
+ name: '',
155
155
  // Type assertion needed due to QueryAST type variance.
156
156
  view: Ref.make(newView) as (typeof columns)[number]['view'],
157
157
  order: [],
@@ -182,7 +182,9 @@ export const PipelineObjectSettings = ({ classNames, pipeline }: PipelineObjectS
182
182
  >
183
183
  <div role='none' className={mx(subtleHover, listItemGrid, 'rounded-xs cursor-pointer min-h-10')}>
184
184
  <List.ItemDragHandle />
185
- <List.ItemTitle onClick={() => handleToggleField(column)}>{column.name}</List.ItemTitle>
185
+ <List.ItemTitle onClick={() => handleToggleField(column)}>
186
+ {column.name || t('untitled view title')}
187
+ </List.ItemTitle>
186
188
  <List.ItemDeleteButton
187
189
  label={t('delete view label')}
188
190
  autoHide={false}
@@ -1,7 +0,0 @@
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 { COMPANION_PREFIX } from '@dxos/app-toolkit';\nimport { DeckOperation } from '@dxos/plugin-deck/types';\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: `${COMPANION_PREFIX}settings`,\n }),\n [invokePromise],\n );\n\n return (\n <PipelineComponent.Root Item={PipelineItem} onAddColumn={handleColumnAdd}>\n <Panel.Root role={role} className='dx-article'>\n <Panel.Toolbar asChild>\n <PipelineComponent.Toolbar disabled={!hasAttention} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <PipelineComponent.Content 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 type * as Schema from 'effect/Schema';\nimport React, { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useObjectNavigate } from '@dxos/app-toolkit/ui';\nimport { JsonSchema, Obj, Query, Type } from '@dxos/echo';\nimport { resolveSchemaWithRegistry } from '@dxos/plugin-space';\nimport { Filter, getSpace, useObject } from '@dxos/react-client/echo';\nimport { useAsyncEffect, useTranslation } from '@dxos/react-ui';\nimport { 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';\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 Tile = useMemo(() => {\n return forwardRef<HTMLDivElement, Pick<MosaicTileProps<Obj.Unknown>, 'classNames' | 'location' | 'data' | 'debug'>>(\n (props, ref) => <ItemTile {...props} ref={ref} itemProps={{ item: props.data, projectionModel }} />,\n );\n }, [Item, projectionModel]);\n\n if (!view) {\n return null;\n }\n\n return (\n <Board.Column.Root\n data={column}\n location={location}\n classNames={['group/column grid h-full overflow-hidden grid-rows-[var(--dx-rail-action)_1fr]', classNames]}\n debug={debug}\n dragHandleRef={dragHandleRef}\n >\n <Board.Column.Header label={column.name ?? t('untitled view title')} dragHandleRef={dragHandleRef} />\n <Board.Column.Body data={column} Tile={Tile} />\n </Board.Column.Root>\n );\n};\n\nPipelineColumn.displayName = PIPELINE_COLUMN_NAME;\n\n//\n// ItemTile\n//\n\nconst ITEM_TILE_NAME = 'ItemTile';\n\ntype ItemTileProps = Pick<MosaicTileProps<Obj.Unknown>, 'classNames' | 'location' | 'data' | 'debug'> & {\n itemProps: ItemProps;\n};\n\nconst ItemTile = forwardRef<HTMLDivElement, ItemTileProps>(\n ({ classNames, data, location, debug, itemProps }, forwardedRef) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = useComposedRefs<HTMLDivElement>(rootRef, forwardedRef);\n const { Item } = usePipeline(ITEM_TILE_NAME);\n const handleNavigate = useObjectNavigate(data);\n\n return (\n <Mosaic.Tile asChild id={data.id} data={data} location={location} debug={debug}>\n <Focus.Group asChild>\n <Card.Root classNames={classNames} ref={composedRef}>\n <Card.Toolbar>\n <Card.DragHandle />\n <Card.Title onClick={handleNavigate}>{Obj.getLabel(data)}</Card.Title>\n <Card.Menu />\n </Card.Toolbar>\n <Card.Content>\n <Item {...itemProps} />\n </Card.Content>\n </Card.Root>\n </Focus.Group>\n </Mosaic.Tile>\n );\n },\n);\n\nItemTile.displayName = ITEM_TILE_NAME;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport { createContext } from '@radix-ui/react-context';\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';\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 = ({ model, children, ...props }: PipelineContentProps) => (\n <Board.Root {...props} model={model}>\n {children}\n </Board.Root>\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 = ({ pipeline }: PipelineColumnsProps) => {\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, (p) => mutate(p.columns)),\n });\n\n return <Board.Content 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 = (props: ToolbarRootProps) => {\n const { t } = useTranslation(meta.id);\n const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);\n\n return (\n <Toolbar.Root {...props}>\n <Toolbar.IconButton icon='ph--plus--regular' iconOnly label={t('add column label')} onClick={onAddColumn} />\n </Toolbar.Root>\n );\n};\n\nPipelineToolbar.displayName = PIPELINE_TOOLBAR_NAME;\n\n//\n// Project\n//\n\nexport const PipelineComponent = {\n Root: PipelineRoot,\n Content: PipelineContent,\n 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", "COMPANION_PREFIX", "DeckOperation", "Panel", "useAttention", "useMenu", "useComposedRefs", "React", "forwardRef", "useMemo", "useRef", "useState", "useObjectNavigate", "JsonSchema", "Obj", "Query", "Type", "resolveSchemaWithRegistry", "Filter", "getSpace", "useObject", "useAsyncEffect", "useTranslation", "Card", "Board", "Focus", "Mosaic", "ProjectionModel", "createEchoChangeCallback", "useAtomValue", "createContext", "React", "Obj", "Toolbar", "useTranslation", "Board", "useBoard", "useEventHandlerAdapter", "itemNoOp", "item", "span", "id", "PIPELINE_ROOT", "PipelineRootContext", "usePipeline", "createContext", "Item", "PipelineRoot", "children", "contextValue", "displayName", "PIPELINE_CONTENT_NAME", "PipelineContent", "model", "props", "Board", "Root", "PIPELINE_COLUMNS_NAME", "PipelineColumns", "pipeline", "useBoard", "columns", "useAtomValue", "eventHandler", "useEventHandlerAdapter", "items", "getId", "getColumnId", "get", "data", "make", "object", "canDrop", "source", "isColumn", "onChange", "mutate", "Obj", "change", "p", "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", "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", "Tile", "forwardRef", "props", "ref", "React", "ItemTile", "itemProps", "item", "Board", "Column", "Root", "Header", "label", "name", "Body", "displayName", "ITEM_TILE_NAME", "forwardedRef", "rootRef", "composedRef", "useComposedRefs", "handleNavigate", "useObjectNavigate", "Mosaic", "asChild", "Focus", "Group", "Card", "Toolbar", "DragHandle", "Title", "onClick", "Obj", "getLabel", "Menu", "Content", "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", "COMPANION_PREFIX", "React", "PipelineComponent", "Root", "Item", "PipelineItem", "onAddColumn", "Panel", "className", "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
- }
@@ -1,7 +0,0 @@
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, Task } from '@dxos/types';\nimport { mx, osTranslations, subtleHover } from '@dxos/ui-theme';\nimport { arrayMove } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nconst listGrid = 'grid grid-cols-[min-content_1fr_min-content_min-content_min-content]';\nconst listItemGrid = 'grid grid-cols-subgrid col-span-5';\n\nconst ColumnFormSchema = Pipeline.Column.pipe(Schema.mutable, Schema.pick('name'));\n\n// TODO(burdon): Standardize Object/Plugin settings.\nexport type PipelineObjectSettingsProps = ThemedClassName<{\n pipeline: Pipeline.Pipeline;\n}>;\n\n/**\n * Supports editing the pipeline view.\n */\nexport const PipelineObjectSettings = ({ classNames, pipeline }: PipelineObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const space = getSpace(pipeline);\n const [expandedId, setExpandedId] = useState<string>();\n const [columns, updateColumns] = useObject(pipeline, 'columns');\n const column = useMemo(\n () => columns.find((column) => column.view.dxn.toString() === expandedId),\n [columns, expandedId],\n );\n const [view, updateView] = useObject(column?.view);\n const [schema, setSchema] = useState<Schema.Schema.AnyNoContext>(() => Schema.Struct({}));\n const projectionRef = useRef<ProjectionModel>(null);\n const tags = useQuery(space?.db, Filter.type(Tag.Tag));\n const types = useTypeOptions({\n space,\n annotation: {\n location: ['database', 'runtime'],\n kind: ['user'],\n },\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.type(Task.Task)),\n jsonSchema: JsonSchema.toJsonSchema(Task.Task),\n });\n space.db.add(newView);\n updateColumns((columns) => {\n columns.push({\n name: 'Tasks',\n // Type assertion needed due to QueryAST type variance.\n view: Ref.make(newView) as (typeof columns)[number]['view'],\n order: [],\n });\n });\n setExpandedId(newView.id);\n }, [space, updateColumns]);\n\n 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)}>{column.name}</List.ItemTitle>\n <List.ItemDeleteButton\n label={t('delete view label')}\n autoHide={false}\n onClick={() => handleDelete(column)}\n data-testid='view.delete'\n />\n <IconButton\n iconOnly\n variant='ghost'\n label={t('toggle expand label', { ns: osTranslations })}\n icon={\n expandedId === column.view.dxn.toString()\n ? 'ph--caret-down--regular'\n : 'ph--caret-right--regular'\n }\n onClick={() => handleToggleField(column)}\n />\n </div>\n {expandedId === column.view.dxn.toString() && column?.view.target && (\n <div role='none' className='col-span-5 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", "Task", "mx", "osTranslations", "subtleHover", "arrayMove", "listGrid", "listItemGrid", "ColumnFormSchema", "Pipeline", "Column", "pipe", "mutable", "pick", "PipelineObjectSettings", "classNames", "pipeline", "t", "useTranslation", "meta", "id", "space", "getSpace", "expandedId", "setExpandedId", "useState", "columns", "updateColumns", "useObject", "column", "useMemo", "find", "view", "dxn", "toString", "updateView", "schema", "setSchema", "Struct", "projectionRef", "useRef", "tags", "useQuery", "db", "Filter", "type", "Tag", "types", "useTypeOptions", "annotation", "location", "kind", "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", "Task", "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
- }