@dxos/plugin-pipeline 0.8.4-main.c351d160a8 → 0.8.4-main.dfabb4ec29

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 (127) hide show
  1. package/dist/lib/neutral/PipelineContainer-7MK2SS76.mjs +69 -0
  2. package/dist/lib/neutral/PipelineContainer-7MK2SS76.mjs.map +7 -0
  3. package/dist/lib/neutral/PipelinePlugin.mjs +26 -0
  4. package/dist/lib/neutral/PipelinePlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/PipelinePlugin.node.mjs +21 -0
  6. package/dist/lib/neutral/PipelinePlugin.node.mjs.map +7 -0
  7. package/dist/lib/{browser/PipelineObjectSettings-QFMIKJH5.mjs → neutral/PipelineProperties-RRPQ3V6I.mjs} +12 -22
  8. package/dist/lib/neutral/PipelineProperties-RRPQ3V6I.mjs.map +7 -0
  9. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs +44 -0
  10. package/dist/lib/neutral/app-graph-builder-ZLGRWRJU.mjs.map +7 -0
  11. package/dist/lib/neutral/capabilities/index.mjs +11 -0
  12. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  13. package/dist/lib/{browser/chunk-3A235GUD.mjs → neutral/chunk-ULB5DKWO.mjs} +1 -1
  14. package/dist/lib/{browser/chunk-3A235GUD.mjs.map → neutral/chunk-ULB5DKWO.mjs.map} +2 -2
  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/{browser/react-surface-7PY3UOEA.mjs → neutral/react-surface-TW6TRMO6.mjs} +11 -23
  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 -0
  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 +9 -3
  44. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  45. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  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 +22 -16
  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 +2 -2
  53. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +1 -1
  54. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts +52 -33
  55. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +1 -1
  56. package/dist/types/src/containers/PipelineContainer/index.d.ts +1 -2
  57. package/dist/types/src/containers/PipelineContainer/index.d.ts.map +1 -1
  58. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts +11 -0
  59. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts.map +1 -0
  60. package/dist/types/src/containers/PipelineProperties/index.d.ts +2 -0
  61. package/dist/types/src/containers/PipelineProperties/index.d.ts.map +1 -0
  62. package/dist/types/src/containers/index.d.ts +1 -1
  63. package/dist/types/src/containers/index.d.ts.map +1 -1
  64. package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -1
  65. package/dist/types/src/index.d.ts +0 -1
  66. package/dist/types/src/index.d.ts.map +1 -1
  67. package/dist/types/src/plugin.d.ts +3 -0
  68. package/dist/types/src/plugin.d.ts.map +1 -0
  69. package/dist/types/src/templates/research.d.ts.map +1 -1
  70. package/dist/types/src/translations.d.ts +44 -26
  71. package/dist/types/src/translations.d.ts.map +1 -1
  72. package/dist/types/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +100 -56
  74. package/src/PipelinePlugin.node.ts +19 -0
  75. package/src/PipelinePlugin.test.ts +27 -0
  76. package/src/PipelinePlugin.tsx +6 -19
  77. package/src/capabilities/app-graph-builder.ts +40 -0
  78. package/src/capabilities/create-object.ts +29 -0
  79. package/src/capabilities/index.ts +5 -3
  80. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +12 -14
  81. package/src/components/PipelineComponent/PipelineColumn.tsx +55 -31
  82. package/src/components/PipelineComponent/PipelineComponent.stories.tsx +16 -16
  83. package/src/components/PipelineComponent/PipelineComponent.tsx +22 -13
  84. package/src/containers/PipelineContainer/PipelineContainer.stories.tsx +34 -33
  85. package/src/containers/PipelineContainer/PipelineContainer.tsx +11 -13
  86. package/src/containers/PipelineContainer/index.ts +1 -3
  87. package/src/containers/{PipelineObjectSettings/PipelineObjectSettings.tsx → PipelineProperties/PipelineProperties.tsx} +14 -15
  88. package/src/containers/PipelineProperties/index.ts +5 -0
  89. package/src/containers/index.ts +1 -1
  90. package/src/hooks/usePipelineBoardModel.ts +1 -1
  91. package/src/index.ts +0 -1
  92. package/src/plugin.ts +9 -0
  93. package/src/templates/research.ts +2 -2
  94. package/src/translations.ts +22 -22
  95. package/dist/lib/browser/PipelineContainer-V5KGYEQR.mjs +0 -318
  96. package/dist/lib/browser/PipelineContainer-V5KGYEQR.mjs.map +0 -7
  97. package/dist/lib/browser/PipelineObjectSettings-QFMIKJH5.mjs.map +0 -7
  98. package/dist/lib/browser/app-graph-builder-QQKBLYFD.mjs +0 -56
  99. package/dist/lib/browser/app-graph-builder-QQKBLYFD.mjs.map +0 -7
  100. package/dist/lib/browser/index.mjs +0 -87
  101. package/dist/lib/browser/index.mjs.map +0 -7
  102. package/dist/lib/browser/meta.json +0 -1
  103. package/dist/lib/browser/react-surface-7PY3UOEA.mjs.map +0 -7
  104. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  105. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  106. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  107. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -2
  108. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  109. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  110. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  111. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  112. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  113. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  114. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts +0 -11
  115. package/dist/types/src/containers/PipelineObjectSettings/PipelineObjectSettings.d.ts.map +0 -1
  116. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts +0 -3
  117. package/dist/types/src/containers/PipelineObjectSettings/index.d.ts.map +0 -1
  118. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -49
  119. package/src/capabilities/app-graph-builder/index.ts +0 -7
  120. package/src/capabilities/operation-resolver/index.ts +0 -5
  121. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -9
  122. package/src/capabilities/react-surface/index.ts +0 -7
  123. package/src/containers/PipelineObjectSettings/index.ts +0 -7
  124. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  125. /package/dist/lib/{browser → neutral}/types/index.mjs +0 -0
  126. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  127. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +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
+ }
@@ -1,13 +1,9 @@
1
- import {
2
- meta
3
- } from "./chunk-3A235GUD.mjs";
4
-
5
- // src/containers/PipelineObjectSettings/PipelineObjectSettings.tsx
1
+ // src/containers/PipelineProperties/PipelineProperties.tsx
6
2
  import * as Schema from "effect/Schema";
7
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";
8
6
  import { DXN, Filter, JsonSchema, Obj, Query, Ref, Tag } from "@dxos/echo";
9
- import { useTypeOptions } from "@dxos/plugin-space";
10
- import { resolveSchemaWithRegistry } from "@dxos/plugin-space";
11
7
  import { getSpace, useObject, useQuery } from "@dxos/react-client/echo";
12
8
  import { IconButton, useAsyncEffect, useTranslation } from "@dxos/react-ui";
13
9
  import { Form, ViewEditor } from "@dxos/react-ui-form";
@@ -16,10 +12,11 @@ import { ViewModel } from "@dxos/schema";
16
12
  import { Pipeline } from "@dxos/types";
17
13
  import { mx, osTranslations, subtleHover } from "@dxos/ui-theme";
18
14
  import { arrayMove } from "@dxos/util";
15
+ import { meta } from "#meta";
19
16
  var listGrid = "grid grid-cols-[min-content_1fr_min-content_min-content_min-content]";
20
17
  var listItemGrid = "grid grid-cols-subgrid col-span-5";
21
18
  var ColumnFormSchema = Pipeline.Column.pipe(Schema.mutable, Schema.pick("name"));
22
- var PipelineObjectSettings = ({ classNames, pipeline }) => {
19
+ var PipelineProperties = ({ classNames, pipeline }) => {
23
20
  const { t } = useTranslation(meta.id);
24
21
  const space = getSpace(pipeline);
25
22
  const [expandedId, setExpandedId] = useState();
@@ -148,11 +145,10 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
148
145
  updateColumns
149
146
  ]);
150
147
  return /* @__PURE__ */ React.createElement("div", {
151
- role: "none",
152
148
  className: mx("py-form-padding overflow-y-auto", classNames)
153
149
  }, /* @__PURE__ */ React.createElement("h2", {
154
150
  className: "text-sm text-description py-1"
155
- }, t("views label")), /* @__PURE__ */ React.createElement(List.Root, {
151
+ }, t("views.label")), /* @__PURE__ */ React.createElement(List.Root, {
156
152
  items: columns,
157
153
  isItem: Schema.is(Pipeline.Column),
158
154
  getId: (column2) => column2.view.dxn.toString(),
@@ -166,25 +162,23 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
166
162
  classNames: listItemGrid,
167
163
  "aria-expanded": expandedId === column2.view.dxn.toString()
168
164
  }, /* @__PURE__ */ React.createElement("div", {
169
- role: "none",
170
165
  className: mx(subtleHover, listItemGrid, "rounded-xs cursor-pointer min-h-10")
171
166
  }, /* @__PURE__ */ React.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React.createElement(List.ItemTitle, {
172
167
  onClick: () => handleToggleField(column2)
173
- }, column2.name || t("untitled view title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
174
- label: t("delete view label"),
168
+ }, column2.name || t("untitled-view.title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
169
+ label: t("delete-view.label"),
175
170
  autoHide: false,
176
171
  onClick: () => handleDelete(column2),
177
172
  "data-testid": "view.delete"
178
173
  }), /* @__PURE__ */ React.createElement(IconButton, {
179
174
  iconOnly: true,
180
175
  variant: "ghost",
181
- label: t("toggle expand label", {
176
+ label: t("toggle-expand.label", {
182
177
  ns: osTranslations
183
178
  }),
184
179
  icon: expandedId === column2.view.dxn.toString() ? "ph--caret-down--regular" : "ph--caret-right--regular",
185
180
  onClick: () => handleToggleField(column2)
186
181
  })), expandedId === column2.view.dxn.toString() && column2?.view.target && /* @__PURE__ */ React.createElement("div", {
187
- role: "none",
188
182
  className: "col-span-5 my-2 border border-separator rounded-md"
189
183
  }, /* @__PURE__ */ React.createElement(Form.Root, {
190
184
  schema: ColumnFormSchema,
@@ -202,19 +196,15 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
202
196
  types,
203
197
  onQueryChanged: handleQueryChanged
204
198
  }))))))), /* @__PURE__ */ React.createElement("div", {
205
- role: "none",
206
199
  className: "my-form-padding"
207
200
  }, /* @__PURE__ */ React.createElement(IconButton, {
208
201
  icon: "ph--plus--regular",
209
- label: t("add view label"),
202
+ label: t("add-view.label"),
210
203
  onClick: handleAdd,
211
204
  classNames: "w-full"
212
205
  })));
213
206
  };
214
-
215
- // src/containers/PipelineObjectSettings/index.ts
216
- var PipelineObjectSettings_default = PipelineObjectSettings;
217
207
  export {
218
- PipelineObjectSettings_default as default
208
+ PipelineProperties as default
219
209
  };
220
- //# sourceMappingURL=PipelineObjectSettings-QFMIKJH5.mjs.map
210
+ //# sourceMappingURL=PipelineProperties-RRPQ3V6I.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 { 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\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 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 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(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 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 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", "getSpace", "useObject", "useQuery", "IconButton", "useAsyncEffect", "useTranslation", "Form", "ViewEditor", "List", "ViewModel", "Pipeline", "mx", "osTranslations", "subtleHover", "arrayMove", "meta", "listGrid", "listItemGrid", "ColumnFormSchema", "Column", "pipe", "mutable", "pick", "PipelineProperties", "classNames", "pipeline", "t", "id", "space", "expandedId", "setExpandedId", "columns", "updateColumns", "column", "find", "view", "dxn", "toString", "updateView", "schema", "setSchema", "Struct", "projectionRef", "tags", "db", "type", "types", "annotation", "location", "kind", "query", "foundSchema", "schemaRegistry", "ast", "handleMove", "fromIndex", "toIndex", "handleQueryChanged", "newQuery", "target", "queue", "tryParse", "undefined", "fromAst", "from", "queues", "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
+ }
@@ -18,4 +18,4 @@ var meta = {
18
18
  export {
19
19
  meta
20
20
  };
21
- //# sourceMappingURL=chunk-3A235GUD.mjs.map
21
+ //# sourceMappingURL=chunk-ULB5DKWO.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/meta.ts"],
4
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,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
6
- "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "tags"]
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
7
  }
@@ -0,0 +1,206 @@
1
+ // src/components/PipelineComponent/PipelineColumn.tsx
2
+ import { useComposedRefs } from "@radix-ui/react-compose-refs";
3
+ import * as Function from "effect/Function";
4
+ import * as Option from "effect/Option";
5
+ import React2, { forwardRef, useMemo, useRef, useState } from "react";
6
+ import { resolveSchemaWithRegistry } from "@dxos/app-toolkit/query";
7
+ import { Annotation, JsonSchema, Obj as Obj2, Query, Type } from "@dxos/echo";
8
+ import { Filter, getSpace, useObject } from "@dxos/react-client/echo";
9
+ import { Panel, Toolbar as Toolbar2, useAsyncEffect, useTranslation as useTranslation2 } from "@dxos/react-ui";
10
+ import { Card } from "@dxos/react-ui";
11
+ import { Menu } from "@dxos/react-ui-menu";
12
+ import { Board as Board2, Focus, Mosaic } from "@dxos/react-ui-mosaic";
13
+ import { ProjectionModel, createEchoChangeCallback } from "@dxos/schema";
14
+ import { meta as meta2 } from "#meta";
15
+
16
+ // src/components/PipelineComponent/PipelineComponent.tsx
17
+ import { useAtomValue } from "@effect-atom/atom-react";
18
+ import { createContext } from "@radix-ui/react-context";
19
+ import { Slot } from "@radix-ui/react-slot";
20
+ import React from "react";
21
+ import { Obj } from "@dxos/echo";
22
+ import { Toolbar, useTranslation } from "@dxos/react-ui";
23
+ import { Board, useBoard, useEventHandlerAdapter } from "@dxos/react-ui-mosaic";
24
+ import { composable, composableProps, slottable } from "@dxos/ui-theme";
25
+ import { meta } from "#meta";
26
+ var itemNoOp = ({ item }) => /* @__PURE__ */ React.createElement("span", null, item.id);
27
+ var PIPELINE_ROOT = "Pipeline.Root";
28
+ var [PipelineRootContext, usePipeline] = createContext(PIPELINE_ROOT, {
29
+ Item: itemNoOp
30
+ });
31
+ var PipelineRoot = ({ children, ...contextValue }) => /* @__PURE__ */ React.createElement(PipelineRootContext, contextValue, children);
32
+ PipelineRoot.displayName = PIPELINE_ROOT;
33
+ var PIPELINE_CONTENT_NAME = "Pipeline.Content";
34
+ var PipelineContent = slottable(({ asChild, model, children, ...props }, forwardedRef) => {
35
+ const Comp = asChild ? Slot : "div";
36
+ return /* @__PURE__ */ React.createElement(Board.Root, {
37
+ model
38
+ }, /* @__PURE__ */ React.createElement(Comp, {
39
+ ...composableProps(props),
40
+ ref: forwardedRef
41
+ }, children));
42
+ });
43
+ PipelineContent.displayName = PIPELINE_CONTENT_NAME;
44
+ var PIPELINE_COLUMNS_NAME = "Pipeline.Columns";
45
+ var PipelineColumns = composable(({ pipeline, ...props }) => {
46
+ const { model } = useBoard(PIPELINE_COLUMNS_NAME);
47
+ const columns = useAtomValue(model.columns);
48
+ const eventHandler = useEventHandlerAdapter({
49
+ id: pipeline.id,
50
+ // TODO(wittjosiah): Cast because columns array is readonly.
51
+ items: columns,
52
+ getId: model.getColumnId,
53
+ get: (data) => data,
54
+ make: (object) => object,
55
+ canDrop: ({ source }) => model.isColumn(source.data),
56
+ onChange: (mutate) => Obj.update(pipeline, (pipeline2) => mutate(pipeline2.columns))
57
+ });
58
+ return /* @__PURE__ */ React.createElement(Board.Content, {
59
+ ...props,
60
+ id: "pipeline",
61
+ eventHandler,
62
+ Tile: PipelineColumn
63
+ });
64
+ });
65
+ PipelineColumns.displayName = PIPELINE_COLUMNS_NAME;
66
+ var PIPELINE_TOOLBAR_NAME = "Pipeline.Toolbar";
67
+ var PipelineToolbar = composable(({ children, ...props }, forwardedRef) => {
68
+ const { t } = useTranslation(meta.id);
69
+ const { onAddColumn } = usePipeline(PIPELINE_TOOLBAR_NAME);
70
+ return /* @__PURE__ */ React.createElement(Toolbar.Root, {
71
+ ...composableProps(props),
72
+ ref: forwardedRef
73
+ }, /* @__PURE__ */ React.createElement(Toolbar.IconButton, {
74
+ icon: "ph--plus--regular",
75
+ iconOnly: true,
76
+ label: t("add-column.label"),
77
+ onClick: onAddColumn
78
+ }));
79
+ });
80
+ PipelineToolbar.displayName = PIPELINE_TOOLBAR_NAME;
81
+ var PipelineComponent = {
82
+ Root: PipelineRoot,
83
+ Content: PipelineContent,
84
+ Columns: PipelineColumns,
85
+ Toolbar: PipelineToolbar
86
+ };
87
+
88
+ // src/components/PipelineComponent/PipelineColumn.tsx
89
+ var PIPELINE_COLUMN_NAME = "PipelineColumn";
90
+ var PipelineColumn = ({ data: column, location, classNames, debug }) => {
91
+ const { t } = useTranslation2(meta2.id);
92
+ const [dragHandle, setDragHandle] = useState(null);
93
+ const [viewSnapshot] = useObject(column.view);
94
+ const view = column.view.target;
95
+ const space = getSpace(view);
96
+ const { Item } = usePipeline(PIPELINE_COLUMN_NAME);
97
+ const [schema, setSchema] = useState();
98
+ const query = useMemo(() => {
99
+ if (!view) {
100
+ return Query.select(Filter.nothing());
101
+ } else {
102
+ return Query.fromAst(JSON.parse(JSON.stringify(viewSnapshot?.query.ast)));
103
+ }
104
+ }, [
105
+ JSON.stringify(viewSnapshot?.query.ast)
106
+ ]);
107
+ useAsyncEffect(async () => {
108
+ if (!query || !space?.db) {
109
+ return;
110
+ }
111
+ const schema2 = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);
112
+ setSchema(() => schema2);
113
+ }, [
114
+ space,
115
+ query
116
+ ]);
117
+ const projectionModel = useMemo(() => {
118
+ if (!schema || !view) {
119
+ return void 0;
120
+ }
121
+ const jsonSchema = Type.isMutable(schema) ? schema.jsonSchema : JsonSchema.toJsonSchema(schema);
122
+ const change = createEchoChangeCallback(view, Type.isMutable(schema) ? schema : void 0);
123
+ return new ProjectionModel({
124
+ view,
125
+ baseSchema: jsonSchema,
126
+ change
127
+ });
128
+ }, [
129
+ schema,
130
+ view
131
+ ]);
132
+ const PipelineTile = useMemo(() => {
133
+ return /* @__PURE__ */ forwardRef((props, ref) => /* @__PURE__ */ React2.createElement(ItemTile, {
134
+ ...props,
135
+ itemProps: {
136
+ item: props.data,
137
+ projectionModel
138
+ },
139
+ ref
140
+ }));
141
+ }, [
142
+ projectionModel
143
+ ]);
144
+ if (!view) {
145
+ return null;
146
+ }
147
+ return /* @__PURE__ */ React2.createElement(Panel.Root, {
148
+ asChild: true
149
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Root, {
150
+ debug,
151
+ data: column,
152
+ location,
153
+ classNames,
154
+ dragHandle
155
+ }, /* @__PURE__ */ React2.createElement(Panel.Toolbar, {
156
+ asChild: true
157
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Header, {
158
+ classNames: "_opacity-10",
159
+ label: column.name || t("untitled-view.title"),
160
+ dragHandleRef: setDragHandle
161
+ })), /* @__PURE__ */ React2.createElement(Panel.Content, {
162
+ asChild: true
163
+ }, /* @__PURE__ */ React2.createElement(Board2.Column.Body, {
164
+ data: column,
165
+ Tile: PipelineTile
166
+ }))));
167
+ };
168
+ PipelineColumn.displayName = PIPELINE_COLUMN_NAME;
169
+ var ITEM_TILE_NAME = "ItemTile";
170
+ var ItemTile = /* @__PURE__ */ forwardRef(({ classNames, data, location, debug, itemProps }, forwardedRef) => {
171
+ const rootRef = useRef(null);
172
+ const composedRef = useComposedRefs(rootRef, forwardedRef);
173
+ const { Item } = usePipeline(ITEM_TILE_NAME);
174
+ const icon = Function.pipe(Obj2.getSchema(data), Option.fromNullable, Option.flatMap(Annotation.IconAnnotation.get), Option.map(({ icon: icon2 }) => icon2), Option.getOrElse(() => "ph--placeholder--regular"));
175
+ return /* @__PURE__ */ React2.createElement(Menu.Root, null, /* @__PURE__ */ React2.createElement(Mosaic.Tile, {
176
+ asChild: true,
177
+ id: data.id,
178
+ data,
179
+ location,
180
+ debug
181
+ }, /* @__PURE__ */ React2.createElement(Focus.Item, {
182
+ asChild: true
183
+ }, /* @__PURE__ */ React2.createElement(Card.Root, {
184
+ classNames,
185
+ ref: composedRef
186
+ }, /* @__PURE__ */ React2.createElement(Card.Toolbar, null, /* @__PURE__ */ React2.createElement(Card.Icon, {
187
+ icon
188
+ }), /* @__PURE__ */ React2.createElement(Card.Title, null, Obj2.getLabel(data)), /* @__PURE__ */ React2.createElement(Card.IconBlock, {
189
+ padding: true
190
+ }, /* @__PURE__ */ React2.createElement(Menu.Trigger, {
191
+ asChild: true
192
+ }, /* @__PURE__ */ React2.createElement(Toolbar2.IconButton, {
193
+ iconOnly: true,
194
+ variant: "ghost",
195
+ icon: "ph--dots-three-vertical--regular",
196
+ label: "Actions"
197
+ })), /* @__PURE__ */ React2.createElement(Menu.Content, null))), /* @__PURE__ */ React2.createElement(Card.Content, null, /* @__PURE__ */ React2.createElement(Item, itemProps))))));
198
+ });
199
+ ItemTile.displayName = ITEM_TILE_NAME;
200
+ export {
201
+ PipelineColumn,
202
+ PipelineComponent,
203
+ PipelineToolbar,
204
+ usePipeline
205
+ };
206
+ //# sourceMappingURL=index.mjs.map