@dxos/plugin-pipeline 0.8.4-main.2244d791bb → 0.8.4-main.3fbcb4aa9b

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 (160) 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/PipelineSettings-R54RTVWZ.mjs → neutral/PipelineProperties-RRPQ3V6I.mjs} +45 -56
  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-QWNKLHBY.mjs → neutral/chunk-ULB5DKWO.mjs} +2 -9
  14. package/dist/lib/{browser/chunk-QWNKLHBY.mjs.map → neutral/chunk-ULB5DKWO.mjs.map} +3 -3
  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 +1 -0
  34. package/dist/lib/neutral/types/index.mjs.map +7 -0
  35. package/dist/types/src/PipelinePlugin.d.ts +1 -0
  36. package/dist/types/src/PipelinePlugin.d.ts.map +1 -1
  37. package/dist/types/src/PipelinePlugin.node.d.ts +4 -0
  38. package/dist/types/src/PipelinePlugin.node.d.ts.map +1 -0
  39. package/dist/types/src/PipelinePlugin.test.d.ts +2 -0
  40. package/dist/types/src/PipelinePlugin.test.d.ts.map +1 -0
  41. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  42. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  43. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  44. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  45. package/dist/types/src/capabilities/index.d.ts +9 -3
  46. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  47. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  48. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  49. package/dist/types/src/components/{PipelineColumn.d.ts → PipelineComponent/PipelineColumn.d.ts} +4 -4
  50. package/dist/types/src/components/PipelineComponent/PipelineColumn.d.ts.map +1 -0
  51. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts +53 -0
  52. package/dist/types/src/components/PipelineComponent/PipelineComponent.d.ts.map +1 -0
  53. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts +62 -0
  54. package/dist/types/src/components/PipelineComponent/PipelineComponent.stories.d.ts.map +1 -0
  55. package/dist/types/src/components/PipelineComponent/index.d.ts +3 -0
  56. package/dist/types/src/components/PipelineComponent/index.d.ts.map +1 -0
  57. package/dist/types/src/components/index.d.ts +1 -4
  58. package/dist/types/src/components/index.d.ts.map +1 -1
  59. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts +6 -0
  60. package/dist/types/src/containers/PipelineContainer/PipelineContainer.d.ts.map +1 -0
  61. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts +76 -0
  62. package/dist/types/src/containers/PipelineContainer/PipelineContainer.stories.d.ts.map +1 -0
  63. package/dist/types/src/containers/PipelineContainer/index.d.ts +2 -0
  64. package/dist/types/src/containers/PipelineContainer/index.d.ts.map +1 -0
  65. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts +11 -0
  66. package/dist/types/src/containers/PipelineProperties/PipelineProperties.d.ts.map +1 -0
  67. package/dist/types/src/containers/PipelineProperties/index.d.ts +2 -0
  68. package/dist/types/src/containers/PipelineProperties/index.d.ts.map +1 -0
  69. package/dist/types/src/containers/index.d.ts +4 -0
  70. package/dist/types/src/containers/index.d.ts.map +1 -0
  71. package/dist/types/src/hooks/index.d.ts +2 -0
  72. package/dist/types/src/hooks/index.d.ts.map +1 -0
  73. package/dist/types/src/hooks/usePipelineBoardModel.d.ts +6 -0
  74. package/dist/types/src/hooks/usePipelineBoardModel.d.ts.map +1 -0
  75. package/dist/types/src/index.d.ts +0 -1
  76. package/dist/types/src/index.d.ts.map +1 -1
  77. package/dist/types/src/plugin.d.ts +3 -0
  78. package/dist/types/src/plugin.d.ts.map +1 -0
  79. package/dist/types/src/templates/research.d.ts.map +1 -1
  80. package/dist/types/src/translations.d.ts +44 -25
  81. package/dist/types/src/translations.d.ts.map +1 -1
  82. package/dist/types/src/types/index.d.ts +0 -2
  83. package/dist/types/src/types/index.d.ts.map +1 -1
  84. package/dist/types/tsconfig.tsbuildinfo +1 -1
  85. package/package.json +100 -54
  86. package/src/PipelinePlugin.node.ts +19 -0
  87. package/src/PipelinePlugin.test.ts +27 -0
  88. package/src/PipelinePlugin.tsx +7 -31
  89. package/src/capabilities/app-graph-builder.ts +40 -0
  90. package/src/capabilities/create-object.ts +29 -0
  91. package/src/capabilities/index.ts +5 -3
  92. package/src/capabilities/react-surface.tsx +53 -0
  93. package/src/components/{PipelineColumn.tsx → PipelineComponent/PipelineColumn.tsx} +67 -48
  94. package/src/components/{PipelineComponent.stories.tsx → PipelineComponent/PipelineComponent.stories.tsx} +40 -32
  95. package/src/components/PipelineComponent/PipelineComponent.tsx +140 -0
  96. package/src/components/PipelineComponent/index.ts +6 -0
  97. package/src/components/index.ts +1 -7
  98. package/src/containers/PipelineContainer/PipelineContainer.stories.tsx +230 -0
  99. package/src/containers/PipelineContainer/PipelineContainer.tsx +84 -0
  100. package/src/containers/PipelineContainer/index.ts +5 -0
  101. package/src/{components/PipelineSettings.tsx → containers/PipelineProperties/PipelineProperties.tsx} +50 -43
  102. package/src/containers/PipelineProperties/index.ts +5 -0
  103. package/src/containers/index.ts +8 -0
  104. package/src/hooks/index.ts +5 -0
  105. package/src/hooks/usePipelineBoardModel.ts +79 -0
  106. package/src/index.ts +0 -1
  107. package/src/meta.ts +1 -1
  108. package/src/plugin.ts +9 -0
  109. package/src/templates/research.ts +16 -17
  110. package/src/translations.ts +22 -21
  111. package/src/types/index.ts +0 -3
  112. package/dist/lib/browser/PipelineContainer-2BRZPECS.mjs +0 -289
  113. package/dist/lib/browser/PipelineContainer-2BRZPECS.mjs.map +0 -7
  114. package/dist/lib/browser/PipelineSettings-R54RTVWZ.mjs.map +0 -7
  115. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs +0 -65
  116. package/dist/lib/browser/app-graph-builder-NUJB33F7.mjs.map +0 -7
  117. package/dist/lib/browser/chunk-7GVESVYR.mjs +0 -42
  118. package/dist/lib/browser/chunk-7GVESVYR.mjs.map +0 -7
  119. package/dist/lib/browser/index.mjs +0 -109
  120. package/dist/lib/browser/index.mjs.map +0 -7
  121. package/dist/lib/browser/meta.json +0 -1
  122. package/dist/lib/browser/react-surface-CMTEEE6F.mjs +0 -57
  123. package/dist/lib/browser/react-surface-CMTEEE6F.mjs.map +0 -7
  124. package/dist/lib/browser/types/index.mjs +0 -10
  125. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  126. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  127. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  128. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  129. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -2
  130. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  131. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  132. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  133. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  134. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  135. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  136. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  137. package/dist/types/src/components/PipelineColumn.d.ts.map +0 -1
  138. package/dist/types/src/components/PipelineComponent.d.ts +0 -44
  139. package/dist/types/src/components/PipelineComponent.d.ts.map +0 -1
  140. package/dist/types/src/components/PipelineComponent.stories.d.ts +0 -42
  141. package/dist/types/src/components/PipelineComponent.stories.d.ts.map +0 -1
  142. package/dist/types/src/components/PipelineContainer.d.ts +0 -7
  143. package/dist/types/src/components/PipelineContainer.d.ts.map +0 -1
  144. package/dist/types/src/components/PipelineContainer.stories.d.ts +0 -56
  145. package/dist/types/src/components/PipelineContainer.stories.d.ts.map +0 -1
  146. package/dist/types/src/components/PipelineSettings.d.ts +0 -12
  147. package/dist/types/src/components/PipelineSettings.d.ts.map +0 -1
  148. package/dist/types/src/types/PipelineAction.d.ts +0 -25
  149. package/dist/types/src/types/PipelineAction.d.ts.map +0 -1
  150. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -51
  151. package/src/capabilities/app-graph-builder/index.ts +0 -7
  152. package/src/capabilities/operation-resolver/index.ts +0 -5
  153. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -29
  154. package/src/capabilities/react-surface/index.ts +0 -7
  155. package/src/capabilities/react-surface/react-surface.tsx +0 -50
  156. package/src/components/PipelineComponent.tsx +0 -186
  157. package/src/components/PipelineContainer.stories.tsx +0 -226
  158. package/src/components/PipelineContainer.tsx +0 -61
  159. package/src/types/PipelineAction.ts +0 -29
  160. /package/dist/lib/{browser/types → neutral}/index.mjs.map +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,25 +1,22 @@
1
- import {
2
- meta
3
- } from "./chunk-QWNKLHBY.mjs";
4
-
5
- // src/components/PipelineSettings.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";
8
- import { DXN, Filter, Query, Ref, Tag, Type } from "@dxos/echo";
9
- import { useTypeOptions } from "@dxos/plugin-space";
10
- import { resolveSchemaWithRegistry } from "@dxos/plugin-space";
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";
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";
14
10
  import { List } from "@dxos/react-ui-list";
15
- import { View } from "@dxos/schema";
16
- import { Pipeline, Task } from "@dxos/types";
11
+ import { ViewModel } from "@dxos/schema";
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();
@@ -41,10 +38,6 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
41
38
  ],
42
39
  kind: [
43
40
  "user"
44
- ],
45
- registered: [
46
- "registered",
47
- "unregistered"
48
41
  ]
49
42
  }
50
43
  });
@@ -71,7 +64,7 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
71
64
  return;
72
65
  }
73
66
  const queue = target && DXN.tryParse(target) ? target : void 0;
74
- const query = queue ? Query.fromAst(newQuery).options({
67
+ const query = queue ? Query.fromAst(newQuery).from({
75
68
  queues: [
76
69
  queue
77
70
  ]
@@ -83,12 +76,12 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
83
76
  if (!newSchema) {
84
77
  return;
85
78
  }
86
- const newView = View.make({
79
+ const newView = ViewModel.make({
87
80
  query,
88
- jsonSchema: Type.toJsonSchema(newSchema)
81
+ jsonSchema: JsonSchema.toJsonSchema(newSchema)
89
82
  });
90
83
  updateView((view2) => {
91
- view2.projection = newView.projection;
84
+ view2.projection = Obj.getSnapshot(newView).projection;
92
85
  });
93
86
  setSchema(() => newSchema);
94
87
  }, [
@@ -96,6 +89,20 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
96
89
  updateView,
97
90
  schema
98
91
  ]);
92
+ const handleColumnValuesChanged = useCallback((column2) => (newValues, { changed }) => {
93
+ if (changed["name"]) {
94
+ const columnIndex = columns.findIndex((c) => c === column2);
95
+ if (columnIndex === -1) {
96
+ return;
97
+ }
98
+ updateColumns((cols) => {
99
+ cols[columnIndex].name = newValues.name ?? "";
100
+ });
101
+ }
102
+ }, [
103
+ columns,
104
+ updateColumns
105
+ ]);
99
106
  const handleToggleField = useCallback((column2) => {
100
107
  setExpandedId((prevExpandedId) => prevExpandedId === column2.view.dxn.toString() ? void 0 : column2.view.dxn.toString());
101
108
  }, []);
@@ -119,14 +126,14 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
119
126
  if (!space) {
120
127
  return;
121
128
  }
122
- const newView = View.make({
123
- query: Query.select(Filter.type(Task.Task)),
124
- jsonSchema: Type.toJsonSchema(Task.Task)
129
+ const newView = ViewModel.make({
130
+ query: Query.select(Filter.nothing()),
131
+ jsonSchema: JsonSchema.toJsonSchema(Schema.Struct({}))
125
132
  });
126
133
  space.db.add(newView);
127
134
  updateColumns((columns2) => {
128
135
  columns2.push({
129
- name: "Tasks",
136
+ name: "",
130
137
  // Type assertion needed due to QueryAST type variance.
131
138
  view: Ref.make(newView),
132
139
  order: []
@@ -137,24 +144,11 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
137
144
  space,
138
145
  updateColumns
139
146
  ]);
140
- const handleColumnSave = useCallback((values) => {
141
- if (column) {
142
- const columnIndex = columns.findIndex((c) => c === column);
143
- updateColumns((columns2) => {
144
- columns2[columnIndex].name = values.name;
145
- });
146
- }
147
- }, [
148
- column,
149
- columns,
150
- updateColumns
151
- ]);
152
147
  return /* @__PURE__ */ React.createElement("div", {
153
- role: "none",
154
- className: mx("plb-cardSpacingBlock overflow-y-auto", classNames)
148
+ className: mx("py-form-padding overflow-y-auto", classNames)
155
149
  }, /* @__PURE__ */ React.createElement("h2", {
156
- className: "text-sm text-description plb-1"
157
- }, t("views label")), /* @__PURE__ */ React.createElement(List.Root, {
150
+ className: "text-sm text-description py-1"
151
+ }, t("views.label")), /* @__PURE__ */ React.createElement(List.Root, {
158
152
  items: columns,
159
153
  isItem: Schema.is(Pipeline.Column),
160
154
  getId: (column2) => column2.view.dxn.toString(),
@@ -168,31 +162,28 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
168
162
  classNames: listItemGrid,
169
163
  "aria-expanded": expandedId === column2.view.dxn.toString()
170
164
  }, /* @__PURE__ */ React.createElement("div", {
171
- role: "none",
172
- className: mx(subtleHover, listItemGrid, "rounded-sm cursor-pointer min-bs-10")
165
+ className: mx(subtleHover, listItemGrid, "rounded-xs cursor-pointer min-h-10")
173
166
  }, /* @__PURE__ */ React.createElement(List.ItemDragHandle, null), /* @__PURE__ */ React.createElement(List.ItemTitle, {
174
167
  onClick: () => handleToggleField(column2)
175
- }, column2.name), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
176
- label: t("delete view label"),
168
+ }, column2.name || t("untitled-view.title")), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
169
+ label: t("delete-view.label"),
177
170
  autoHide: false,
178
171
  onClick: () => handleDelete(column2),
179
172
  "data-testid": "view.delete"
180
173
  }), /* @__PURE__ */ React.createElement(IconButton, {
181
174
  iconOnly: true,
182
175
  variant: "ghost",
183
- label: t("toggle expand label", {
176
+ label: t("toggle-expand.label", {
184
177
  ns: osTranslations
185
178
  }),
186
179
  icon: expandedId === column2.view.dxn.toString() ? "ph--caret-down--regular" : "ph--caret-right--regular",
187
180
  onClick: () => handleToggleField(column2)
188
181
  })), expandedId === column2.view.dxn.toString() && column2?.view.target && /* @__PURE__ */ React.createElement("div", {
189
- role: "none",
190
- className: "col-span-5 mlb-2 border border-separator rounded-md"
182
+ className: "col-span-5 my-2 border border-separator rounded-md"
191
183
  }, /* @__PURE__ */ React.createElement(Form.Root, {
192
184
  schema: ColumnFormSchema,
193
185
  values: column2,
194
- autoSave: true,
195
- onSave: handleColumnSave
186
+ onValuesChanged: handleColumnValuesChanged(column2)
196
187
  }, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null))), /* @__PURE__ */ React.createElement(ViewEditor, {
197
188
  ref: projectionRef,
198
189
  mode: "tag",
@@ -200,22 +191,20 @@ var PipelineObjectSettings = ({ classNames, pipeline }) => {
200
191
  schema,
201
192
  view: column2.view.target,
202
193
  registry: space?.db.schemaRegistry,
194
+ db: space?.db,
203
195
  tags,
204
196
  types,
205
197
  onQueryChanged: handleQueryChanged
206
198
  }))))))), /* @__PURE__ */ React.createElement("div", {
207
- role: "none",
208
- className: "mlb-cardSpacingBlock"
199
+ className: "my-form-padding"
209
200
  }, /* @__PURE__ */ React.createElement(IconButton, {
210
201
  icon: "ph--plus--regular",
211
- label: t("add view label"),
202
+ label: t("add-view.label"),
212
203
  onClick: handleAdd,
213
- classNames: "is-full"
204
+ classNames: "w-full"
214
205
  })));
215
206
  };
216
- var PipelineSettings_default = PipelineObjectSettings;
217
207
  export {
218
- PipelineObjectSettings,
219
- PipelineSettings_default as default
208
+ PipelineProperties as default
220
209
  };
221
- //# sourceMappingURL=PipelineSettings-R54RTVWZ.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
+ }
@@ -1,13 +1,7 @@
1
- var __defProp = Object.defineProperty;
2
- var __export = (target, all) => {
3
- for (var name in all)
4
- __defProp(target, name, { get: all[name], enumerable: true });
5
- };
6
-
7
1
  // src/meta.ts
8
2
  import { trim } from "@dxos/util";
9
3
  var meta = {
10
- id: "dxos.org/plugin/pipeline",
4
+ id: "org.dxos.plugin.pipeline",
11
5
  name: "Pipelines",
12
6
  description: trim`
13
7
  Pipelines for organizing tasks, milestones, and deliverables.
@@ -22,7 +16,6 @@ var meta = {
22
16
  };
23
17
 
24
18
  export {
25
- __export,
26
19
  meta
27
20
  };
28
- //# sourceMappingURL=chunk-QWNKLHBY.mjs.map
21
+ //# sourceMappingURL=chunk-ULB5DKWO.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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: 'dxos.org/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"]
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
7
  }