@dxos/plugin-pipeline 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393

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 (83) hide show
  1. package/dist/lib/neutral/PipelineContainer-7MK2SS76.mjs +69 -0
  2. package/dist/lib/neutral/PipelineContainer-7MK2SS76.mjs.map +7 -0
  3. package/dist/lib/neutral/PipelinePlugin.mjs +26 -0
  4. package/dist/lib/neutral/PipelinePlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/PipelinePlugin.node.mjs +21 -0
  6. package/dist/lib/neutral/PipelinePlugin.node.mjs.map +7 -0
  7. package/dist/lib/neutral/PipelineProperties-GED4FJSS.mjs +211 -0
  8. package/dist/lib/neutral/PipelineProperties-GED4FJSS.mjs.map +7 -0
  9. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs +44 -0
  10. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs.map +7 -0
  11. package/dist/lib/neutral/capabilities/index.mjs +11 -0
  12. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-ULB5DKWO.mjs +21 -0
  14. package/dist/lib/neutral/chunk-ULB5DKWO.mjs.map +7 -0
  15. package/dist/lib/neutral/components/index.mjs +206 -0
  16. package/dist/lib/neutral/components/index.mjs.map +7 -0
  17. package/dist/lib/neutral/containers/index.mjs +9 -0
  18. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  19. package/dist/lib/neutral/create-object-ZJYFACOI.mjs +25 -0
  20. package/dist/lib/neutral/create-object-ZJYFACOI.mjs.map +7 -0
  21. package/dist/lib/neutral/hooks/index.mjs +70 -0
  22. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  23. package/dist/lib/neutral/index.mjs +7 -0
  24. package/dist/lib/neutral/meta.json +1 -0
  25. package/dist/lib/neutral/meta.mjs +7 -0
  26. package/dist/lib/neutral/meta.mjs.map +7 -0
  27. package/dist/lib/neutral/plugin.mjs +11 -0
  28. package/dist/lib/neutral/plugin.mjs.map +7 -0
  29. package/dist/lib/neutral/react-surface-TW6TRMO6.mjs +49 -0
  30. package/dist/lib/neutral/react-surface-TW6TRMO6.mjs.map +7 -0
  31. package/dist/lib/neutral/translations.mjs +38 -0
  32. package/dist/lib/neutral/translations.mjs.map +7 -0
  33. package/dist/lib/neutral/types/index.mjs.map +7 -0
  34. package/dist/types/src/PipelinePlugin.d.ts +1 -0
  35. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  36. package/dist/types/src/PipelinePlugin.node.d.ts +4 -0
  37. package/dist/types/src/PipelinePlugin.node.d.ts.map +1 -0
  38. package/dist/types/src/PipelinePlugin.test.d.ts +2 -0
  39. package/dist/types/src/PipelinePlugin.test.d.ts.map +1 -0
  40. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  42. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  43. package/dist/types/src/capabilities/index.d.ts +6 -0
  44. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  45. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  46. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts +4 -4
  47. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -1
  48. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +4 -0
  49. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -1
  50. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts +44 -25
  51. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -1
  52. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +1 -1
  53. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts +52 -33
  54. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +1 -1
  55. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts.map +1 -1
  56. package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -1
  57. package/dist/types/src/index.d.ts +0 -1
  58. package/dist/types/src/index.d.ts.map +1 -1
  59. package/dist/types/src/plugin.d.ts +3 -0
  60. package/dist/types/src/plugin.d.ts.map +1 -0
  61. package/dist/types/src/templates/research.d.ts.map +1 -1
  62. package/dist/types/src/translations.d.ts +44 -26
  63. package/dist/types/src/translations.d.ts.map +1 -1
  64. package/dist/types/tsconfig.tsbuildinfo +1 -1
  65. package/package.json +95 -53
  66. package/src/PipelinePlugin.node.ts +19 -0
  67. package/src/PipelinePlugin.test.ts +27 -0
  68. package/src/PipelinePlugin.tsx +5 -30
  69. package/src/capabilities/create-object.ts +29 -0
  70. package/src/capabilities/index.ts +1 -0
  71. package/src/components/PipelineComponent/PipelineColumn.tsx +9 -9
  72. package/src/components/PipelineComponent/PipelineComponent.stories.tsx +5 -7
  73. package/src/components/PipelineComponent/PipelineComponent.tsx +1 -1
  74. package/src/containers/PipelineContainer/PipelineContainer.stories.tsx +14 -15
  75. package/src/containers/PipelineProperties/PipelineProperties.tsx +23 -23
  76. package/src/index.ts +0 -1
  77. package/src/plugin.ts +9 -0
  78. package/src/templates/research.ts +2 -2
  79. package/dist/lib/browser/index.mjs +0 -98
  80. package/dist/lib/browser/index.mjs.map +0 -7
  81. package/dist/lib/browser/meta.json +0 -1
  82. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  83. /package/dist/lib/{browser → neutral}/types/index.mjs +0 -0
@@ -0,0 +1,69 @@
1
+ // src/containers/PipelineContainer/PipelineContainer.tsx
2
+ import React, { useCallback, useEffect } from "react";
3
+ import { Capabilities } from "@dxos/app-framework";
4
+ import { Surface, useCapability, useOperationInvoker } from "@dxos/app-framework/ui";
5
+ import { LayoutOperation } from "@dxos/app-toolkit";
6
+ import { AppSurface, OBJECT_ACTIONS_CONTRIBUTION_ID, OBJECT_ACTIONS_CONTRIBUTION_PRIORITY, useObjectMenuItems } from "@dxos/app-toolkit/ui";
7
+ import { Panel } from "@dxos/react-ui";
8
+ import { linkedSegment } from "@dxos/react-ui-attention";
9
+ import { useAttention } from "@dxos/react-ui-attention";
10
+ import { useMenu } from "@dxos/react-ui-menu";
11
+ import { PipelineComponent } from "#components";
12
+ import { usePipelineBoardModel } from "#hooks";
13
+ var PIPELINE_ITEM = "PipelineItem";
14
+ var PipelineContainer = ({ role, subject: pipeline, attendableId }) => {
15
+ const registry = useCapability(Capabilities.AtomRegistry);
16
+ const model = usePipelineBoardModel(pipeline, registry);
17
+ const { invokePromise } = useOperationInvoker();
18
+ const { hasAttention } = useAttention(attendableId);
19
+ const handleColumnAdd = useCallback(() => invokePromise(LayoutOperation.UpdateCompanion, {
20
+ subject: linkedSegment("settings")
21
+ }), [
22
+ invokePromise
23
+ ]);
24
+ return /* @__PURE__ */ React.createElement(PipelineComponent.Root, {
25
+ Item: PipelineItem,
26
+ onAddColumn: handleColumnAdd
27
+ }, /* @__PURE__ */ React.createElement(Panel.Root, {
28
+ role
29
+ }, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
30
+ asChild: true
31
+ }, /* @__PURE__ */ React.createElement(PipelineComponent.Toolbar, {
32
+ disabled: !hasAttention
33
+ })), /* @__PURE__ */ React.createElement(Panel.Content, {
34
+ asChild: true
35
+ }, /* @__PURE__ */ React.createElement(PipelineComponent.Content, {
36
+ asChild: true,
37
+ model
38
+ }, /* @__PURE__ */ React.createElement(PipelineComponent.Columns, {
39
+ pipeline
40
+ })))));
41
+ };
42
+ var PipelineItem = ({ item, projectionModel }) => {
43
+ const menu = useMenu(PIPELINE_ITEM);
44
+ const items = useObjectMenuItems(item);
45
+ useEffect(() => {
46
+ menu.addMenuItems({
47
+ id: OBJECT_ACTIONS_CONTRIBUTION_ID,
48
+ mode: "additive",
49
+ priority: OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,
50
+ items
51
+ });
52
+ return () => menu.removeMenuItems(OBJECT_ACTIONS_CONTRIBUTION_ID);
53
+ }, [
54
+ menu,
55
+ items
56
+ ]);
57
+ return /* @__PURE__ */ React.createElement(Surface.Surface, {
58
+ type: AppSurface.Card,
59
+ data: {
60
+ subject: item,
61
+ projection: projectionModel
62
+ },
63
+ limit: 1
64
+ });
65
+ };
66
+ export {
67
+ PipelineContainer as default
68
+ };
69
+ //# sourceMappingURL=PipelineContainer-7MK2SS76.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/PipelineContainer/PipelineContainer.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect } from 'react';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { Surface, useCapability, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport {\n AppSurface,\n OBJECT_ACTIONS_CONTRIBUTION_ID,\n OBJECT_ACTIONS_CONTRIBUTION_PRIORITY,\n useObjectMenuItems,\n} from '@dxos/app-toolkit/ui';\nimport { Panel } from '@dxos/react-ui';\nimport { linkedSegment } from '@dxos/react-ui-attention';\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 = AppSurface.ObjectArticleProps<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(LayoutOperation.UpdateCompanion, {\n subject: linkedSegment('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 type={AppSurface.Card}\n data={{\n subject: item,\n projection: projectionModel,\n }}\n limit={1}\n />\n );\n};\n"],
5
+ "mappings": ";AAIA,OAAOA,SAASC,aAAaC,iBAAiB;AAE9C,SAASC,oBAAoB;AAC7B,SAASC,SAASC,eAAeC,2BAA2B;AAC5D,SAASC,uBAAuB;AAChC,SACEC,YACAC,gCACAC,sCACAC,0BACK;AACP,SAASC,aAAa;AACtB,SAASC,qBAAqB;AAC9B,SAASC,oBAAoB;AAC7B,SAASC,eAAe;AAGxB,SAAyBC,yBAAyB;AAClD,SAASC,6BAA6B;AAEtC,IAAMC,gBAAgB;AAIf,IAAMC,oBAAoB,CAAC,EAAEC,MAAMC,SAASC,UAAUC,aAAY,MAA0B;AACjG,QAAMC,WAAWnB,cAAcF,aAAasB,YAAY;AACxD,QAAMC,QAAQT,sBAAsBK,UAAUE,QAAAA;AAC9C,QAAM,EAAEG,cAAa,IAAKrB,oBAAAA;AAC1B,QAAM,EAAEsB,aAAY,IAAKd,aAAaS,YAAAA;AAEtC,QAAMM,kBAAkB5B,YACtB,MACE0B,cAAcpB,gBAAgBuB,iBAAiB;IAC7CT,SAASR,cAAc,UAAA;EACzB,CAAA,GACF;IAACc;GAAc;AAGjB,SACE,sBAAA,cAACX,kBAAkBe,MAAI;IAACC,MAAMC;IAAcC,aAAaL;KACvD,sBAAA,cAACjB,MAAMmB,MAAI;IAACX;KACV,sBAAA,cAACR,MAAMuB,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACpB,kBAAkBmB,SAAO;IAACE,UAAU,CAACT;OAExC,sBAAA,cAAChB,MAAM0B,SAAO;IAACF,SAAAA;KACb,sBAAA,cAACpB,kBAAkBsB,SAAO;IAACF,SAAAA;IAAQV;KACjC,sBAAA,cAACV,kBAAkBuB,SAAO;IAACjB;;AAMvC;AAEA,IAAMW,eAAe,CAAC,EAAEO,MAAMC,gBAAe,MAAa;AACxD,QAAMC,OAAO3B,QAAQG,aAAAA;AACrB,QAAMyB,QAAQhC,mBAAmB6B,IAAAA;AAEjCtC,YAAU,MAAA;AACRwC,SAAKE,aAAa;MAChBC,IAAIpC;MACJqC,MAAM;MACNC,UAAUrC;MACViC;IACF,CAAA;AAEA,WAAO,MAAMD,KAAKM,gBAAgBvC,8BAAAA;EACpC,GAAG;IAACiC;IAAMC;GAAM;AAEhB,SACE,sBAAA,cAACvC,QAAQA,SAAO;IACd6C,MAAMzC,WAAW0C;IACjBC,MAAM;MACJ9B,SAASmB;MACTY,YAAYX;IACd;IACAY,OAAO;;AAGb;",
6
+ "names": ["React", "useCallback", "useEffect", "Capabilities", "Surface", "useCapability", "useOperationInvoker", "LayoutOperation", "AppSurface", "OBJECT_ACTIONS_CONTRIBUTION_ID", "OBJECT_ACTIONS_CONTRIBUTION_PRIORITY", "useObjectMenuItems", "Panel", "linkedSegment", "useAttention", "useMenu", "PipelineComponent", "usePipelineBoardModel", "PIPELINE_ITEM", "PipelineContainer", "role", "subject", "pipeline", "attendableId", "registry", "AtomRegistry", "model", "invokePromise", "hasAttention", "handleColumnAdd", "UpdateCompanion", "Root", "Item", "PipelineItem", "onAddColumn", "Toolbar", "asChild", "disabled", "Content", "Columns", "item", "projectionModel", "menu", "items", "addMenuItems", "id", "mode", "priority", "removeMenuItems", "type", "Card", "data", "projection", "limit"]
7
+ }
@@ -0,0 +1,26 @@
1
+ // src/PipelinePlugin.tsx
2
+ import { Plugin } from "@dxos/app-framework";
3
+ import { AppPlugin } from "@dxos/app-toolkit";
4
+ import { Pipeline } from "@dxos/types";
5
+ import { AppGraphBuilder, CreateObject, ReactSurface } from "#capabilities";
6
+ import { meta } from "#meta";
7
+ import { translations } from "#translations";
8
+ var PipelinePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
9
+ activate: AppGraphBuilder
10
+ }), AppPlugin.addCreateObjectModule({
11
+ activate: CreateObject
12
+ }), AppPlugin.addSchemaModule({
13
+ schema: [
14
+ Pipeline.Pipeline
15
+ ]
16
+ }), AppPlugin.addSurfaceModule({
17
+ activate: ReactSurface
18
+ }), AppPlugin.addTranslationsModule({
19
+ translations
20
+ }), Plugin.make);
21
+ var PipelinePlugin_default = PipelinePlugin;
22
+ export {
23
+ PipelinePlugin,
24
+ PipelinePlugin_default as default
25
+ };
26
+ //# sourceMappingURL=PipelinePlugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/PipelinePlugin.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Pipeline } from '@dxos/types';\n\nimport { AppGraphBuilder, CreateObject, 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.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addSchemaModule({ schema: [Pipeline.Pipeline] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n\nexport default PipelinePlugin;\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAEzB,SAASC,iBAAiBC,cAAcC,oBAAoB;AAC5D,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAEtB,IAAMC,iBAAiBR,OAAOS,OAAOH,IAAAA,EAAMI,KAChDT,UAAUU,kBAAkB;EAAEC,UAAUT;AAAgB,CAAA,GACxDF,UAAUY,sBAAsB;EAAED,UAAUR;AAAa,CAAA,GACzDH,UAAUa,gBAAgB;EAAEC,QAAQ;IAACb,SAASA;;AAAU,CAAA,GACxDD,UAAUe,iBAAiB;EAAEJ,UAAUP;AAAa,CAAA,GACpDJ,UAAUgB,sBAAsB;EAAEV;AAAa,CAAA,GAC/CP,OAAOkB,IAAI;AAGb,IAAA,yBAAeV;",
6
+ "names": ["Plugin", "AppPlugin", "Pipeline", "AppGraphBuilder", "CreateObject", "ReactSurface", "meta", "translations", "PipelinePlugin", "define", "pipe", "addAppGraphModule", "activate", "addCreateObjectModule", "addSchemaModule", "schema", "addSurfaceModule", "addTranslationsModule", "make"]
7
+ }
@@ -0,0 +1,21 @@
1
+ // src/PipelinePlugin.node.ts
2
+ import { Plugin } from "@dxos/app-framework";
3
+ import { AppPlugin } from "@dxos/app-toolkit";
4
+ import { Pipeline } from "@dxos/types";
5
+ import { AppGraphBuilder, CreateObject } from "#capabilities";
6
+ import { meta } from "#meta";
7
+ var PipelinePlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
8
+ activate: AppGraphBuilder
9
+ }), AppPlugin.addCreateObjectModule({
10
+ activate: CreateObject
11
+ }), AppPlugin.addSchemaModule({
12
+ schema: [
13
+ Pipeline.Pipeline
14
+ ]
15
+ }), Plugin.make);
16
+ var PipelinePlugin_node_default = PipelinePlugin;
17
+ export {
18
+ PipelinePlugin,
19
+ PipelinePlugin_node_default as default
20
+ };
21
+ //# sourceMappingURL=PipelinePlugin.node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/PipelinePlugin.node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Pipeline } from '@dxos/types';\n\nimport { AppGraphBuilder, CreateObject } from '#capabilities';\nimport { meta } from '#meta';\n\nexport const PipelinePlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addSchemaModule({ schema: [Pipeline.Pipeline] }),\n Plugin.make,\n);\n\nexport default PipelinePlugin;\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAEzB,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,YAAY;AAEd,IAAMC,iBAAiBN,OAAOO,OAAOF,IAAAA,EAAMG,KAChDP,UAAUQ,kBAAkB;EAAEC,UAAUP;AAAgB,CAAA,GACxDF,UAAUU,sBAAsB;EAAED,UAAUN;AAAa,CAAA,GACzDH,UAAUW,gBAAgB;EAAEC,QAAQ;IAACX,SAASA;;AAAU,CAAA,GACxDF,OAAOc,IAAI;AAGb,IAAA,8BAAeR;",
6
+ "names": ["Plugin", "AppPlugin", "Pipeline", "AppGraphBuilder", "CreateObject", "meta", "PipelinePlugin", "define", "pipe", "addAppGraphModule", "activate", "addCreateObjectModule", "addSchemaModule", "schema", "make"]
7
+ }
@@ -0,0 +1,211 @@
1
+ // src/containers/PipelineProperties/PipelineProperties.tsx
2
+ import * as Schema from "effect/Schema";
3
+ import React, { useCallback, useMemo, useRef, useState } from "react";
4
+ import { resolveSchemaWithRegistry } from "@dxos/app-toolkit/query";
5
+ import { useTypeOptions } from "@dxos/app-toolkit/ui";
6
+ import { DXN, Filter, JsonSchema, Obj, Query, Ref, Tag } from "@dxos/echo";
7
+ import { useObject, useQuery } from "@dxos/react-client/echo";
8
+ import { IconButton, useAsyncEffect, useTranslation } from "@dxos/react-ui";
9
+ import { Form, ViewEditor } from "@dxos/react-ui-form";
10
+ import { List } from "@dxos/react-ui-list";
11
+ import { ViewModel } from "@dxos/schema";
12
+ import { Pipeline } from "@dxos/types";
13
+ import { mx, osTranslations } from "@dxos/ui-theme";
14
+ import { arrayMove } from "@dxos/util";
15
+ import { meta } from "#meta";
16
+ var listGrid = "grid grid-cols-[min-content_1fr_min-content_min-content_min-content]";
17
+ var listItemGrid = "grid grid-cols-subgrid col-span-5";
18
+ var ColumnFormSchema = Pipeline.Column.pipe(Schema.mutable, Schema.pick("name"));
19
+ var PipelineProperties = ({ classNames, pipeline }) => {
20
+ const { t } = useTranslation(meta.id);
21
+ const db = Obj.getDatabase(pipeline);
22
+ const [expandedId, setExpandedId] = useState();
23
+ const [columns, updateColumns] = useObject(pipeline, "columns");
24
+ const column = useMemo(() => columns.find((column2) => column2.view.dxn.toString() === expandedId), [
25
+ columns,
26
+ expandedId
27
+ ]);
28
+ const [view, updateView] = useObject(column?.view);
29
+ const [schema, setSchema] = useState(() => Schema.Struct({}));
30
+ const projectionRef = useRef(null);
31
+ const tags = useQuery(db, Filter.type(Tag.Tag));
32
+ const types = useTypeOptions({
33
+ db,
34
+ annotation: {
35
+ location: [
36
+ "database",
37
+ "runtime"
38
+ ],
39
+ kind: [
40
+ "user"
41
+ ]
42
+ }
43
+ });
44
+ useAsyncEffect(async () => {
45
+ if (!view?.query || !db) {
46
+ return;
47
+ }
48
+ const foundSchema = await resolveSchemaWithRegistry(db.schemaRegistry, view.query.ast);
49
+ if (foundSchema && foundSchema !== schema) {
50
+ setSchema(() => foundSchema);
51
+ }
52
+ }, [
53
+ db,
54
+ view,
55
+ schema
56
+ ]);
57
+ const handleMove = useCallback((fromIndex, toIndex) => updateColumns((columns2) => {
58
+ arrayMove(columns2, fromIndex, toIndex);
59
+ }), [
60
+ updateColumns
61
+ ]);
62
+ const handleQueryChanged = useCallback(async (newQuery, target) => {
63
+ if (!view || !db) {
64
+ return;
65
+ }
66
+ const queue = target && DXN.tryParse(target) ? target : void 0;
67
+ const query = queue ? Query.fromAst(newQuery).from({
68
+ feeds: [
69
+ queue
70
+ ]
71
+ }) : Query.fromAst(newQuery);
72
+ updateView((view2) => {
73
+ view2.query.ast = query.ast;
74
+ });
75
+ const newSchema = await resolveSchemaWithRegistry(db.schemaRegistry, query.ast);
76
+ if (!newSchema) {
77
+ return;
78
+ }
79
+ const newView = ViewModel.make({
80
+ query,
81
+ jsonSchema: JsonSchema.toJsonSchema(newSchema)
82
+ });
83
+ updateView((view2) => {
84
+ view2.projection = Obj.getSnapshot(newView).projection;
85
+ });
86
+ setSchema(() => newSchema);
87
+ }, [
88
+ db,
89
+ view,
90
+ updateView,
91
+ schema
92
+ ]);
93
+ const handleColumnValuesChanged = useCallback((column2) => (newValues, { changed }) => {
94
+ if (changed["name"]) {
95
+ const columnIndex = columns.findIndex((c) => c === column2);
96
+ if (columnIndex === -1) {
97
+ return;
98
+ }
99
+ updateColumns((cols) => {
100
+ cols[columnIndex].name = newValues.name ?? "";
101
+ });
102
+ }
103
+ }, [
104
+ columns,
105
+ updateColumns
106
+ ]);
107
+ const handleToggleField = useCallback((column2) => {
108
+ setExpandedId((prevExpandedId) => prevExpandedId === column2.view.dxn.toString() ? void 0 : column2.view.dxn.toString());
109
+ }, []);
110
+ const handleDelete = useCallback(async (column2) => {
111
+ if (column2.view.dxn.toString() === expandedId) {
112
+ setExpandedId(void 0);
113
+ }
114
+ const index = columns.findIndex((l) => l === column2);
115
+ const viewToRemove = await column2.view.load();
116
+ updateColumns((columns2) => {
117
+ columns2.splice(index, 1);
118
+ });
119
+ db?.remove(viewToRemove);
120
+ }, [
121
+ expandedId,
122
+ columns,
123
+ updateColumns,
124
+ db
125
+ ]);
126
+ const handleAdd = useCallback(() => {
127
+ if (!db) {
128
+ return;
129
+ }
130
+ const newView = ViewModel.make({
131
+ query: Query.select(Filter.nothing()),
132
+ jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({}))
133
+ });
134
+ db.add(newView);
135
+ updateColumns((columns2) => {
136
+ columns2.push({
137
+ name: "",
138
+ // Type assertion needed due to QueryAST type variance.
139
+ view: Ref.make(newView),
140
+ order: []
141
+ });
142
+ });
143
+ setExpandedId(newView.id);
144
+ }, [
145
+ db,
146
+ updateColumns
147
+ ]);
148
+ return /* @__PURE__ */ React.createElement("div", {
149
+ className: mx("py-form-padding overflow-y-auto", classNames)
150
+ }, /* @__PURE__ */ React.createElement("h2", {
151
+ className: "text-sm text-description py-1"
152
+ }, t("views.label")), /* @__PURE__ */ React.createElement(List.Root, {
153
+ items: columns,
154
+ isItem: Schema.is(Pipeline.Column),
155
+ getId: (column2) => column2.view.dxn.toString(),
156
+ onMove: handleMove
157
+ }, ({ items: columns2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
158
+ role: "list",
159
+ className: mx(listGrid)
160
+ }, columns2.map((column2) => /* @__PURE__ */ React.createElement(List.Item, {
161
+ key: column2.view.dxn.toString(),
162
+ item: column2,
163
+ classNames: listItemGrid,
164
+ "aria-expanded": expandedId === column2.view.dxn.toString()
165
+ }, /* @__PURE__ */ React.createElement("div", {
166
+ className: mx(listItemGrid, "dx-hover rounded-xs cursor-pointer min-h-10")
167
+ }, /* @__PURE__ */ React.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React.createElement(List.ItemTitle, {
168
+ onClick: () => handleToggleField(column2)
169
+ }, column2.name || t("untitled-view.title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
170
+ label: t("delete-view.label"),
171
+ autoHide: false,
172
+ onClick: () => handleDelete(column2),
173
+ "data-testid": "view.delete"
174
+ }), /* @__PURE__ */ React.createElement(IconButton, {
175
+ iconOnly: true,
176
+ variant: "ghost",
177
+ label: t("toggle-expand.label", {
178
+ ns: osTranslations
179
+ }),
180
+ icon: expandedId === column2.view.dxn.toString() ? "ph--caret-down--regular" : "ph--caret-right--regular",
181
+ onClick: () => handleToggleField(column2)
182
+ })), expandedId === column2.view.dxn.toString() && column2?.view.target && /* @__PURE__ */ React.createElement("div", {
183
+ className: "col-span-5 my-2 border border-separator rounded-md"
184
+ }, /* @__PURE__ */ React.createElement(Form.Root, {
185
+ schema: ColumnFormSchema,
186
+ values: column2,
187
+ onValuesChanged: handleColumnValuesChanged(column2)
188
+ }, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null))), /* @__PURE__ */ React.createElement(ViewEditor, {
189
+ ref: projectionRef,
190
+ mode: "tag",
191
+ readonly: true,
192
+ schema,
193
+ view: column2.view.target,
194
+ registry: db?.schemaRegistry,
195
+ db,
196
+ tags,
197
+ types,
198
+ onQueryChanged: handleQueryChanged
199
+ }))))))), /* @__PURE__ */ React.createElement("div", {
200
+ className: "my-form-padding"
201
+ }, /* @__PURE__ */ React.createElement(IconButton, {
202
+ icon: "ph--plus--regular",
203
+ label: t("add-view.label"),
204
+ onClick: handleAdd,
205
+ classNames: "w-full"
206
+ })));
207
+ };
208
+ export {
209
+ PipelineProperties as default
210
+ };
211
+ //# sourceMappingURL=PipelineProperties-GED4FJSS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/PipelineProperties/PipelineProperties.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { resolveSchemaWithRegistry } from '@dxos/app-toolkit/query';\nimport { useTypeOptions } from '@dxos/app-toolkit/ui';\nimport { DXN, Filter, JsonSchema, Obj, Query, type QueryAST, Ref, Tag } from '@dxos/echo';\nimport { type JsonPath, type Mutable } from '@dxos/echo/internal';\nimport { 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 } 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\nexport type PipelinePropertiesProps = ThemedClassName<{\n pipeline: Pipeline.Pipeline;\n}>;\n\n/**\n * Supports editing the pipeline view.\n */\nexport const PipelineProperties = ({ classNames, pipeline }: PipelinePropertiesProps) => {\n const { t } = useTranslation(meta.id);\n const db = Obj.getDatabase(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(db, Filter.type(Tag.Tag));\n const types = useTypeOptions({\n db,\n annotation: {\n location: ['database', 'runtime'],\n kind: ['user'],\n },\n });\n\n useAsyncEffect(async () => {\n if (!view?.query || !db) {\n return;\n }\n\n const foundSchema = await resolveSchemaWithRegistry(db.schemaRegistry, view.query.ast);\n if (foundSchema && foundSchema !== schema) {\n setSchema(() => foundSchema);\n }\n }, [db, 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 || !db) {\n return;\n }\n\n const queue = target && DXN.tryParse(target) ? target : undefined;\n const query = queue ? Query.fromAst(newQuery).from({ feeds: [queue] }) : Query.fromAst(newQuery);\n updateView((view) => {\n view.query.ast = query.ast as Mutable<typeof query.ast>;\n });\n const newSchema = await resolveSchemaWithRegistry(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 [db, 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 db?.remove(viewToRemove);\n },\n [expandedId, columns, updateColumns, db],\n );\n\n const handleAdd = useCallback(() => {\n if (!db) {\n return;\n }\n const newView = ViewModel.make({\n query: Query.select(Filter.nothing()),\n jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({})),\n });\n 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 }, [db, updateColumns]);\n\n return (\n <div 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 className={mx(listItemGrid, 'dx-hover 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 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={db?.schemaRegistry}\n db={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 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"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "React", "useCallback", "useMemo", "useRef", "useState", "resolveSchemaWithRegistry", "useTypeOptions", "DXN", "Filter", "JsonSchema", "Obj", "Query", "Ref", "Tag", "useObject", "useQuery", "IconButton", "useAsyncEffect", "useTranslation", "Form", "ViewEditor", "List", "ViewModel", "Pipeline", "mx", "osTranslations", "arrayMove", "meta", "listGrid", "listItemGrid", "ColumnFormSchema", "Column", "pipe", "mutable", "pick", "PipelineProperties", "classNames", "pipeline", "t", "id", "db", "getDatabase", "expandedId", "setExpandedId", "columns", "updateColumns", "column", "find", "view", "dxn", "toString", "updateView", "schema", "setSchema", "Struct", "projectionRef", "tags", "type", "types", "annotation", "location", "kind", "query", "foundSchema", "schemaRegistry", "ast", "handleMove", "fromIndex", "toIndex", "handleQueryChanged", "newQuery", "target", "queue", "tryParse", "undefined", "fromAst", "from", "feeds", "newSchema", "newView", "make", "jsonSchema", "toJsonSchema", "projection", "getSnapshot", "handleColumnValuesChanged", "newValues", "changed", "columnIndex", "findIndex", "c", "cols", "name", "handleToggleField", "prevExpandedId", "handleDelete", "index", "l", "viewToRemove", "load", "splice", "remove", "handleAdd", "select", "nothing", "add", "push", "order", "div", "className", "h2", "Root", "items", "isItem", "is", "getId", "onMove", "role", "map", "Item", "key", "item", "aria-expanded", "ItemDragHandle", "ItemTitle", "onClick", "ItemDeleteButton", "label", "autoHide", "data-testid", "iconOnly", "variant", "ns", "icon", "values", "onValuesChanged", "Content", "FieldSet", "ref", "mode", "readonly", "registry", "onQueryChanged"]
7
+ }
@@ -0,0 +1,44 @@
1
+ // src/capabilities/app-graph-builder.ts
2
+ import * as Effect from "effect/Effect";
3
+ import { Capability } from "@dxos/app-framework";
4
+ import { AppCapabilities, AppNode } from "@dxos/app-toolkit";
5
+ import { GraphBuilder } from "@dxos/plugin-graph";
6
+ import { Pipeline } from "@dxos/types";
7
+ import { meta } from "#meta";
8
+ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
9
+ const extensions = yield* Effect.all([
10
+ GraphBuilder.createTypeExtension({
11
+ id: "triggers",
12
+ type: Pipeline.Pipeline,
13
+ connector: () => Effect.succeed([
14
+ AppNode.makeCompanion({
15
+ id: "invocations",
16
+ label: [
17
+ "pipeline-invocations.label",
18
+ {
19
+ ns: meta.id
20
+ }
21
+ ],
22
+ icon: "ph--clock-countdown--regular",
23
+ data: "invocations"
24
+ }),
25
+ AppNode.makeCompanion({
26
+ id: "automation",
27
+ label: [
28
+ "pipeline-automation.label",
29
+ {
30
+ ns: meta.id
31
+ }
32
+ ],
33
+ icon: "ph--lightning--regular",
34
+ data: "automation"
35
+ })
36
+ ])
37
+ })
38
+ ]);
39
+ return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
40
+ }));
41
+ export {
42
+ app_graph_builder_default as default
43
+ };
44
+ //# sourceMappingURL=app-graph-builder-ZLGRWRJU.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities, AppNode } from '@dxos/app-toolkit';\nimport { GraphBuilder } from '@dxos/plugin-graph';\nimport { Pipeline } from '@dxos/types';\n\nimport { meta } from '#meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* Effect.all([\n GraphBuilder.createTypeExtension({\n id: 'triggers',\n type: Pipeline.Pipeline,\n connector: () =>\n Effect.succeed([\n AppNode.makeCompanion({\n id: 'invocations',\n label: ['pipeline-invocations.label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n data: 'invocations',\n }),\n AppNode.makeCompanion({\n id: 'automation',\n label: ['pipeline-automation.label', { ns: meta.id }],\n icon: 'ph--lightning--regular',\n data: 'automation',\n }),\n ]),\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
+ "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,eAAe;AACzC,SAASC,oBAAoB;AAC7B,SAASC,gBAAgB;AAEzB,SAASC,YAAY;AAErB,IAAA,4BAAeL,WAAWM,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAcC,WAAI;IACnCN,aAAaO,oBAAoB;MAC/BC,IAAI;MACJC,MAAMR,SAASA;MACfS,WAAW,MACFC,eAAQ;QACbZ,QAAQa,cAAc;UACpBJ,IAAI;UACJK,OAAO;YAAC;YAA8B;cAAEC,IAAIZ,KAAKM;YAAG;;UACpDO,MAAM;UACNC,MAAM;QACR,CAAA;QACAjB,QAAQa,cAAc;UACpBJ,IAAI;UACJK,OAAO;YAAC;YAA6B;cAAEC,IAAIZ,KAAKM;YAAG;;UACnDO,MAAM;UACNC,MAAM;QACR,CAAA;OACD;IACL,CAAA;GACD;AAED,SAAOnB,WAAWoB,YAAYnB,gBAAgBoB,iBAAiBb,UAAAA;AACjE,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "AppNode", "GraphBuilder", "Pipeline", "meta", "makeModule", "fnUntraced", "extensions", "all", "createTypeExtension", "id", "type", "connector", "succeed", "makeCompanion", "label", "ns", "icon", "data", "contributes", "AppGraphBuilder"]
7
+ }
@@ -0,0 +1,11 @@
1
+ // src/capabilities/index.ts
2
+ import { Capability } from "@dxos/app-framework";
3
+ var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("../app-graph-builder-ZLGRWRJU.mjs"));
4
+ var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-ZJYFACOI.mjs"));
5
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-TW6TRMO6.mjs"));
6
+ export {
7
+ AppGraphBuilder,
8
+ CreateObject,
9
+ ReactSurface
10
+ };
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n"],
5
+ "mappings": ";AAIA,SAASA,kBAAkB;AAEpB,IAAMC,kBAAkBD,WAAWE,KAAK,mBAAmB,MAAM,OAAO,mCAAA,CAAA;AACxE,IAAMC,eAAeH,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAME,eAAeJ,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;",
6
+ "names": ["Capability", "AppGraphBuilder", "lazy", "CreateObject", "ReactSurface"]
7
+ }
@@ -0,0 +1,21 @@
1
+ // src/meta.ts
2
+ import { trim } from "@dxos/util";
3
+ var meta = {
4
+ id: "org.dxos.plugin.pipeline",
5
+ name: "Pipelines",
6
+ description: trim`
7
+ Pipelines for organizing tasks, milestones, and deliverables.
8
+ Track progress across multiple pipelines and coordinate team activities in a structured environment.
9
+ `,
10
+ icon: "ph--path--regular",
11
+ iconHue: "purple",
12
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-pipeline",
13
+ tags: [
14
+ "labs"
15
+ ]
16
+ };
17
+
18
+ export {
19
+ meta
20
+ };
21
+ //# sourceMappingURL=chunk-ULB5DKWO.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.pipeline',\n name: 'Pipelines',\n description: trim`\n Pipelines for organizing tasks, milestones, and deliverables.\n Track progress across multiple pipelines and coordinate team activities in a structured environment.\n `,\n icon: 'ph--path--regular',\n iconHue: 'purple',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-pipeline',\n tags: ['labs'],\n};\n"],
5
+ "mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaJ;;;;EAIbK,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
6
+ "names": ["trim", "meta", "id", "name", "description", "icon", "iconHue", "source", "tags"]
7
+ }