@oomol-lab/open-flow 0.1.0-beta.86 → 0.1.0-beta.88

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 (30) hide show
  1. package/dist/browser/{FlowCanvas-CHIaMaBv.js → FlowCanvas-SqPUBqze.js} +3 -3
  2. package/dist/browser/{createResourceDialog-C0E5yPe6.js → createResourceDialog-CB3eiK7e.js} +3 -3
  3. package/dist/browser/{dialog-b3hsdu8i.js → dialog-Bi-MVTGj.js} +1 -1
  4. package/dist/browser/{exportPng-DGHcejgy.js → exportPng-CLZKdNzR.js} +2 -2
  5. package/dist/browser/{flowChanges-BvSWezEb.js → flowChanges-CnOOPJJR.js} +15 -12
  6. package/dist/browser/{flowWorkspace-BKnMRClO.js → flowWorkspace-B79fy3Me.js} +8 -8
  7. package/dist/browser/{markdownContent-BR9-1ikU.js → markdownContent-D0BBrFcF.js} +1 -1
  8. package/dist/browser/preview.css +12 -10
  9. package/dist/browser/preview.js +3 -1
  10. package/dist/browser/theme.css +3 -1
  11. package/dist/browser/{tooltip-DSBF3bRw.js → tooltip-BZ6tpqnr.js} +3 -1
  12. package/dist/browser/ui.css +12 -10
  13. package/dist/browser/ui.d.ts +1 -0
  14. package/dist/browser/ui.js +110 -63
  15. package/dist/browser/workbench.css +12 -10
  16. package/dist/browser/workbench.js +7 -7
  17. package/dist/browser/{workbenchSelect-Di1Bm_-d.js → workbenchSelect-CHOeceKA.js} +2 -2
  18. package/dist/browser/{wrapLayout-B0AT8_-i.js → wrapLayout-BB_qwy3k.js} +1 -1
  19. package/dist/command/index.js +32 -32
  20. package/dist/common/control-api-conformance.js +12 -9
  21. package/dist/common/control-api.js +12 -9
  22. package/dist/common/control-requests.js +8 -2
  23. package/dist/common/flow-semantics.js +7 -1
  24. package/dist/common/mcp.js +12 -9
  25. package/dist/render/browser/runtime.css +12 -10
  26. package/dist/render/browser/runtime.js +3 -1
  27. package/package.json +1 -1
  28. package/src/control/common/api.ts +13 -9
  29. package/src/control/common/authoring.ts +2 -1
  30. package/src/flow/common/graph.ts +10 -1
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import w, { createElement, forwardRef, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
2
+ import w, { createElement, forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import * as ReactDOM from "react-dom";
5
5
  //#region \0rolldown/runtime.js
@@ -4252,6 +4252,7 @@ function cn(...inputs) {
4252
4252
  //#region src/ui/browser/button.tsx
4253
4253
  var buttonVariants = cva("nodrag group/button relative inline-flex shrink-0 items-center justify-center rounded-[var(--ui-control-radius,calc(var(--ui-radius)_+_2px))] border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap no-underline transition-[color,background-color,border-color,box-shadow,opacity,transform] outline-none select-none before:absolute before:inset-0 before:content-[''] motion-reduce:transition-none focus-visible:border-border focus-visible:outline-2 focus-visible:outline-solid focus-visible:ring-0 focus-visible:aria-invalid:ring-0 focus-visible:outline-offset-1 focus-visible:outline-ring focus-visible:aria-invalid:outline-destructive active:not-aria-[haspopup]:not-data-[variant=field]:translate-y-px disabled:pointer-events-none disabled:opacity-[var(--ui-disabled-opacity,0.5)] aria-disabled:pointer-events-none aria-disabled:opacity-[var(--ui-disabled-opacity,0.5)] aria-invalid:border-destructive [&_svg]:pointer-events-none [&_i[aria-hidden=true]]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
4254
4254
  variants: {
4255
+ multiline: { true: "min-h-min whitespace-normal wrap-anywhere text-center" },
4255
4256
  variant: {
4256
4257
  "default": "bg-primary text-primary-foreground hover:bg-primary/80",
4257
4258
  "outline": "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-[var(--ui-disabled-background,color-mix(in_srgb,var(--ui-input)_50%,transparent))]",
@@ -4280,7 +4281,7 @@ var buttonVariants = cva("nodrag group/button relative inline-flex shrink-0 item
4280
4281
  size: "default"
4281
4282
  }
4282
4283
  });
4283
- var Button$1 = forwardRef(function Button({ className, variant = "default", size = "default", ...props }, ref) {
4284
+ var Button$1 = forwardRef(function Button({ className, variant = "default", size = "default", multiline, ...props }, ref) {
4284
4285
  return /* @__PURE__ */ jsx(Button$2, {
4285
4286
  ref,
4286
4287
  "data-slot": "button",
@@ -4289,6 +4290,7 @@ var Button$1 = forwardRef(function Button({ className, variant = "default", size
4289
4290
  className: cn(buttonVariants({
4290
4291
  variant,
4291
4292
  size,
4293
+ multiline,
4292
4294
  className
4293
4295
  })),
4294
4296
  ...props
@@ -4537,7 +4539,7 @@ var maybeReactUseId = SafeReact.useId;
4537
4539
  * @param idOverride
4538
4540
  * @returns {string}
4539
4541
  */
4540
- function useId$1(idOverride, prefix) {
4542
+ function useId(idOverride, prefix) {
4541
4543
  if (maybeReactUseId !== void 0) {
4542
4544
  const reactId = maybeReactUseId();
4543
4545
  return idOverride ?? (prefix ? `${prefix}-${reactId}` : reactId);
@@ -4552,7 +4554,7 @@ function useId$1(idOverride, prefix) {
4552
4554
  * @returns {string | undefined}
4553
4555
  */
4554
4556
  function useBaseUiId(idOverride) {
4555
- return useId$1(idOverride, "base-ui");
4557
+ return useId(idOverride, "base-ui");
4556
4558
  }
4557
4559
  //#endregion
4558
4560
  //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/dialog/description/DialogDescription.js
@@ -5785,7 +5787,7 @@ var usePortalContext = () => React.useContext(PortalContext);
5785
5787
  var attr = createAttribute("portal");
5786
5788
  function useFloatingPortalNode(props = {}) {
5787
5789
  const { ref, container: containerProp, componentProps = EMPTY_OBJECT, elementProps } = props;
5788
- const uniqueId = useId$1();
5790
+ const uniqueId = useId();
5789
5791
  const parentPortalNode = usePortalContext()?.portalNode;
5790
5792
  const [containerElement, setContainerElement] = React.useState(null);
5791
5793
  const [portalNode, setPortalNode] = React.useState(null);
@@ -5978,7 +5980,7 @@ var useFloatingTree = (externalTree) => {
5978
5980
  * @see https://floating-ui.com/docs/FloatingTree
5979
5981
  */
5980
5982
  function useFloatingNodeId(externalTree) {
5981
- const id = useId$1();
5983
+ const id = useId();
5982
5984
  const tree = useFloatingTree(externalTree);
5983
5985
  const parentId = useFloatingParentNodeId();
5984
5986
  useIsoLayoutEffect(() => {
@@ -9513,7 +9515,7 @@ var popupStoreSelectors = {
9513
9515
  //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.js
9514
9516
  function useFloatingRootContext(options) {
9515
9517
  const { open = false, onOpenChange, elements = {} } = options;
9516
- const floatingId = useId$1();
9518
+ const floatingId = useId();
9517
9519
  const nested = useFloatingParentNodeId() != null;
9518
9520
  if (process.env.NODE_ENV !== "production") {
9519
9521
  const optionDomReference = elements.reference;
@@ -9671,7 +9673,7 @@ function useFloating(options = {}) {
9671
9673
  */
9672
9674
  function useSyncedFloatingRootContext(options) {
9673
9675
  const { popupStore, treatPopupAsFloatingElement = false, onOpenChange } = options;
9674
- const floatingId = useId$1();
9676
+ const floatingId = useId();
9675
9677
  const nested = useFloatingParentNodeId() != null;
9676
9678
  const open = popupStore.useState("open");
9677
9679
  const referenceElement = popupStore.useState("activeTriggerElement");
@@ -10806,7 +10808,7 @@ function useRole(context, props = {}) {
10806
10808
  const domReference = store.useState("domReferenceElement");
10807
10809
  const floatingElement = store.useState("floatingElement");
10808
10810
  const { role = "dialog" } = props;
10809
- const defaultReferenceId = useId$1();
10811
+ const defaultReferenceId = useId();
10810
10812
  const referenceId = domReference?.id || defaultReferenceId;
10811
10813
  const floatingId = React.useMemo(() => getFloatingFocusElement(floatingElement)?.id || defaultFloatingId, [floatingElement, defaultFloatingId]);
10812
10814
  const ariaRole = componentRoleToAriaRoleMap.get(role) ?? role;
@@ -14405,7 +14407,7 @@ var MenuRoot = fastComponent(function MenuRoot(props) {
14405
14407
  disabled: disabledProp,
14406
14408
  modal: parent.type === void 0 ? modalProp : void 0,
14407
14409
  openMethod,
14408
- rootId: useId$1()
14410
+ rootId: useId()
14409
14411
  });
14410
14412
  useImplicitActiveTrigger(store);
14411
14413
  const { forceUnmount } = useOpenStateTransitions(open, store, () => {
@@ -15969,6 +15971,12 @@ function ClosePartProvider(props) {
15969
15971
  children
15970
15972
  });
15971
15973
  }
15974
+ function useClosePartRegistration() {
15975
+ const context = React.useContext(ClosePartContext);
15976
+ useIsoLayoutEffect(() => {
15977
+ return context?.register();
15978
+ }, [context]);
15979
+ }
15972
15980
  //#endregion
15973
15981
  //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/popover/popup/PopoverPopup.js
15974
15982
  var stateAttributesMapping$1 = {
@@ -16093,6 +16101,35 @@ var PopoverTitle$2 = /*#__PURE__*/ React.forwardRef(function PopoverTitle(compon
16093
16101
  });
16094
16102
  });
16095
16103
  if (process.env.NODE_ENV !== "production") PopoverTitle$2.displayName = "PopoverTitle";
16104
+ //#endregion
16105
+ //#region ../../node_modules/.bun/@base-ui+react@1.4.1+fa6c2f29eeb10566/node_modules/@base-ui/react/esm/popover/close/PopoverClose.js
16106
+ /**
16107
+ * A button that closes the popover.
16108
+ * Renders a `<button>` element.
16109
+ *
16110
+ * Documentation: [Base UI Popover](https://base-ui.com/react/components/popover)
16111
+ */
16112
+ var PopoverClose$1 = /*#__PURE__*/ React.forwardRef(function PopoverClose(componentProps, forwardedRef) {
16113
+ const { render, className, disabled = false, nativeButton = true, style, ...elementProps } = componentProps;
16114
+ const { buttonRef, getButtonProps } = useButton({
16115
+ disabled,
16116
+ focusableWhenDisabled: false,
16117
+ native: nativeButton
16118
+ });
16119
+ const { store } = usePopoverRootContext();
16120
+ useClosePartRegistration();
16121
+ return useRenderElement("button", componentProps, {
16122
+ ref: [forwardedRef, buttonRef],
16123
+ props: [
16124
+ { onClick(event) {
16125
+ store.setOpen(false, createChangeEventDetails(closePress, event.nativeEvent, event.currentTarget));
16126
+ } },
16127
+ elementProps,
16128
+ getButtonProps
16129
+ ]
16130
+ });
16131
+ });
16132
+ if (process.env.NODE_ENV !== "production") PopoverClose$1.displayName = "PopoverClose";
16096
16133
  var scroll_area_module_default = {
16097
16134
  container: "scroll-area_container_07c14",
16098
16135
  scrollbar: "scroll-area_scrollbar_07c14",
@@ -18675,6 +18712,12 @@ var PopoverTrigger$1 = React.forwardRef(function PopoverTrigger(props, ref) {
18675
18712
  ref
18676
18713
  });
18677
18714
  });
18715
+ function PopoverClose(props) {
18716
+ return /* @__PURE__ */ jsx(PopoverClose$1, {
18717
+ "data-slot": "popover-close",
18718
+ ...props
18719
+ });
18720
+ }
18678
18721
  function PopoverContent$1({ className, positionerClassName, positionerStyle, align = "center", alignOffset = 0, anchor, collisionBoundary, collisionAvoidance, positionMethod, container, keepMounted, side = "bottom", sideOffset = 4, ...props }) {
18679
18722
  return /* @__PURE__ */ jsx(PopoverPortal, {
18680
18723
  container,
@@ -19624,9 +19667,9 @@ var themeIcons = {
19624
19667
  var actionClassName = "rounded-full bg-foreground/3 text-foreground hover:bg-foreground/7 dark:hover:bg-foreground/7";
19625
19668
  /** Shared host navigation; each host owns preference storage and localized labels. */
19626
19669
  function HostNavigationActions({ className, language, onLanguageChange, theme, onThemeChange, labels }) {
19627
- const themeId = useId();
19628
- const languageId = useId();
19670
+ const [container, setContainer] = useState(null);
19629
19671
  return /* @__PURE__ */ jsxs("div", {
19672
+ ref: setContainer,
19630
19673
  className: cn("flex items-center gap-2", className),
19631
19674
  children: [
19632
19675
  /* @__PURE__ */ jsx(HostTooltip, {
@@ -19648,78 +19691,82 @@ function HostNavigationActions({ className, language, onLanguageChange, theme, o
19648
19691
  })
19649
19692
  })
19650
19693
  }),
19651
- /* @__PURE__ */ jsx(HostTooltip, {
19694
+ /* @__PURE__ */ jsxs(Popover$1, { children: [/* @__PURE__ */ jsx(HostTooltip, {
19652
19695
  label: labels.theme,
19653
19696
  side: "bottom",
19654
- children: /* @__PURE__ */ jsx(Button$1, {
19655
- className: actionClassName,
19656
- variant: "ghost",
19657
- size: "icon",
19658
- type: "button",
19659
- "aria-label": labels.theme,
19660
- popovertarget: themeId,
19697
+ children: /* @__PURE__ */ jsx(PopoverTrigger$1, {
19698
+ render: /* @__PURE__ */ jsx(Button$1, {
19699
+ className: actionClassName,
19700
+ variant: "ghost",
19701
+ size: "icon",
19702
+ type: "button",
19703
+ "aria-label": labels.theme
19704
+ }),
19661
19705
  children: /* @__PURE__ */ jsx("i", {
19662
19706
  "aria-hidden": "true",
19663
19707
  className: `${themeIcons[theme]} size-4`
19664
19708
  })
19665
19709
  })
19666
- }),
19667
- /* @__PURE__ */ jsx(HostTooltip, {
19668
- label: labels.language,
19669
- side: "bottom",
19670
- children: /* @__PURE__ */ jsx(Button$1, {
19671
- className: actionClassName,
19672
- variant: "ghost",
19673
- size: "icon",
19674
- type: "button",
19675
- popovertarget: languageId,
19676
- "aria-label": labels.language,
19677
- children: /* @__PURE__ */ jsx("i", {
19678
- "aria-hidden": "true",
19679
- className: "i-lucide-light:languages size-4"
19680
- })
19681
- })
19682
- }),
19683
- /* @__PURE__ */ jsx("div", {
19684
- id: themeId,
19685
- popover: "auto",
19686
- className: "open-flow-navigation-menu",
19710
+ }), /* @__PURE__ */ jsx(PopoverContent$1, {
19711
+ container,
19712
+ align: "end",
19713
+ positionMethod: "fixed",
19714
+ className: "open-flow-navigation-menu ring-0",
19715
+ "aria-label": labels.theme,
19687
19716
  children: [
19688
19717
  "light",
19689
19718
  "dark",
19690
19719
  "auto"
19691
- ].map((value) => /* @__PURE__ */ jsxs(Button$1, {
19692
- className: "justify-start gap-2",
19693
- variant: "ghost",
19694
- size: "sm",
19720
+ ].map((value) => /* @__PURE__ */ jsxs(PopoverClose, {
19721
+ render: /* @__PURE__ */ jsx(Button$1, {
19722
+ multiline: true,
19723
+ className: "justify-start gap-2",
19724
+ variant: "ghost",
19725
+ size: "sm"
19726
+ }),
19695
19727
  type: "button",
19696
19728
  "aria-pressed": theme == value,
19697
- onClick: (event) => {
19698
- onThemeChange(value);
19699
- event.currentTarget.closest("[popover]")?.hidePopover();
19700
- },
19729
+ onClick: () => onThemeChange(value),
19701
19730
  children: [/* @__PURE__ */ jsx("i", {
19702
19731
  "aria-hidden": "true",
19703
- className: `${themeIcons[value]} size-4`
19732
+ className: `${themeIcons[value]} size-4 shrink-0`
19704
19733
  }), labels[value]]
19705
19734
  }, value))
19706
- }),
19707
- /* @__PURE__ */ jsx("div", {
19708
- id: languageId,
19709
- popover: "auto",
19710
- className: "open-flow-navigation-menu",
19711
- children: uiLanguages.map((value) => /* @__PURE__ */ jsx(Button$1, {
19712
- variant: "ghost",
19713
- size: "sm",
19735
+ })] }),
19736
+ /* @__PURE__ */ jsxs(Popover$1, { children: [/* @__PURE__ */ jsx(HostTooltip, {
19737
+ label: labels.language,
19738
+ side: "bottom",
19739
+ children: /* @__PURE__ */ jsx(PopoverTrigger$1, {
19740
+ render: /* @__PURE__ */ jsx(Button$1, {
19741
+ className: actionClassName,
19742
+ variant: "ghost",
19743
+ size: "icon",
19744
+ type: "button",
19745
+ "aria-label": labels.language
19746
+ }),
19747
+ children: /* @__PURE__ */ jsx("i", {
19748
+ "aria-hidden": "true",
19749
+ className: "i-lucide-light:languages size-4"
19750
+ })
19751
+ })
19752
+ }), /* @__PURE__ */ jsx(PopoverContent$1, {
19753
+ container,
19754
+ align: "end",
19755
+ positionMethod: "fixed",
19756
+ className: "open-flow-navigation-menu ring-0",
19757
+ "aria-label": labels.language,
19758
+ children: uiLanguages.map((value) => /* @__PURE__ */ jsx(PopoverClose, {
19759
+ render: /* @__PURE__ */ jsx(Button$1, {
19760
+ multiline: true,
19761
+ variant: "ghost",
19762
+ size: "sm"
19763
+ }),
19714
19764
  type: "button",
19715
19765
  "aria-pressed": language == value,
19716
- onClick: (event) => {
19717
- onLanguageChange(value);
19718
- event.currentTarget.closest("[popover]")?.hidePopover();
19719
- },
19766
+ onClick: () => onLanguageChange(value),
19720
19767
  children: uiLanguageNames[value]
19721
19768
  }, value))
19722
- })
19769
+ })] })
19723
19770
  ]
19724
19771
  });
19725
19772
  }
@@ -1933,7 +1933,7 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
1933
1933
 
1934
1934
  .open-flow-theme {
1935
1935
  --_open-flow-theme: light;
1936
- color-scheme: var(--_open-flow-theme);
1936
+ color-scheme: light;
1937
1937
  --_open-flow-background: var(--open-flow-background, light-dark(#fdfdfd, #1c1c1c));
1938
1938
  --_open-flow-foreground: var(--open-flow-foreground, light-dark(#242424, #eee));
1939
1939
  --_open-flow-card: var(--open-flow-card, light-dark(#fefefe, #242424));
@@ -1972,6 +1972,7 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
1972
1972
 
1973
1973
  .open-flow-theme[data-theme="dark"] {
1974
1974
  --_open-flow-theme: dark;
1975
+ color-scheme: dark;
1975
1976
  }
1976
1977
 
1977
1978
  .open-flow-theme, .open-flow-canvas-root :is(.react-flow__controls, [data-canvas-control-scope]) {
@@ -3291,6 +3292,10 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
3291
3292
  min-height: min(360px, 80dvh);
3292
3293
  }
3293
3294
 
3295
+ :where(.open-flow-theme, .open-flow-workbench, .open-flow-canvas-root) .min-h-min {
3296
+ min-height: min-content;
3297
+ }
3298
+
3294
3299
  :where(.open-flow-theme, .open-flow-workbench, .open-flow-canvas-root) .w-\(--anchor-width\) {
3295
3300
  width: var(--anchor-width);
3296
3301
  }
@@ -7972,23 +7977,20 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
7972
7977
  }
7973
7978
 
7974
7979
  .open-flow-navigation-menu {
7980
+ width: max-content;
7981
+ max-width: calc(100vw - 16px);
7982
+ max-height: var(--available-height);
7983
+ overscroll-behavior: contain;
7975
7984
  border: 1px solid var(--ui-border);
7976
7985
  border-radius: var(--ui-radius);
7977
7986
  background: var(--ui-popover);
7978
7987
  color: var(--ui-popover-foreground);
7979
- margin: 0;
7988
+ gap: 0;
7980
7989
  padding: 4px;
7981
- position: fixed;
7982
- inset: 48px 16px auto auto;
7990
+ overflow-y: auto;
7983
7991
  box-shadow: 0 4px 12px #0002;
7984
7992
  }
7985
7993
 
7986
- .open-flow-navigation-menu:popover-open {
7987
- flex-direction: column;
7988
- align-items: stretch;
7989
- display: flex;
7990
- }
7991
-
7992
7994
  .open-flow-navigation-menu button[aria-pressed="true"] {
7993
7995
  background: var(--ui-muted);
7994
7996
  }
@@ -1,9 +1,9 @@
1
- import { A as DropdownMenuItem, C as IconifyProvider, E as DropdownMenu, O as DropdownMenuContent, P as DropdownMenuSeparator, R as DropdownMenuTrigger, c as PopoverContent, f as PopoverTitle, p as PopoverTrigger, pt as IconThemeContext, s as Popover, v as ContentIcon } from "./wrapLayout-B0AT8_-i.js";
1
+ import { A as DropdownMenuItem, C as IconifyProvider, E as DropdownMenu, O as DropdownMenuContent, P as DropdownMenuSeparator, R as DropdownMenuTrigger, c as PopoverContent, f as PopoverTitle, p as PopoverTrigger, pt as IconThemeContext, s as Popover, v as ContentIcon } from "./wrapLayout-BB_qwy3k.js";
2
2
  import { a as derive, i as compute, l as val } from "./dist-bO8nvHFH.js";
3
3
  import { c as useLang, l as useTranslate, o as I18nProvider, u as useVal } from "./dist-BFmpkX4P.js";
4
- import { Cr as cn, i as TooltipTrigger, n as TooltipContent, t as Tooltip, xr as Button } from "./tooltip-DSBF3bRw.js";
5
- import { Bt as schemaObject, C as upgradeManualTrigger, Dt as connectorProxyTask, M as mapConditionSources, N as nodeInputMappings, Rt as matchesSchema, S as resourceNameIssue, Yt as dequal, _ as applyFlowChanges, a as DialogFooter, bt as connectorProxyConfigSchema, d as Field, g as FlowChangeError, h as FieldLabel, hn as Input, i as DialogDescription, l as Icon, m as FieldGroup, o as DialogHeader, p as FieldError, r as DialogContent, s as DialogTitle, t as Dialog, u as Spinner, v as isTriggerNode, w as upgradeRevisionContent } from "./dialog-b3hsdu8i.js";
6
- import { $ as resourceValue, $n as allConnectorConnectionsQuery, $t as WorkflowExportDialog, At as actionWithConnections, Bn as EmptyMedia, Br as ApiError, Bt as setNodeContentHidden, C as updateValue, Ct as flowResourceReferences, Et as diagnosticItems, Fn as InputGroupInput, Ft as removeComments, Gt as setCodeActions, Hn as Badge, Ht as setVerticalNodeWidth, In as Empty, It as restoreCanvasPresentation, J as scopedValue, Jt as setServiceConnections, K as combineSources, Kn as createI18n, Kt as setConnectorConnection, Ln as EmptyContent, Lt as setCanvasLayout, Mn as followWorkbenchLink, Mt as canvasPresentationChange, Nn as InputGroup, Nt as commentIds, Pn as InputGroupAddon, Pr as workflowCandidate, Pt as flowPresentation, Q as resourceData, Qn as randomId, Qt as WorkflowBundleSummary, Rn as EmptyDescription, Rr as invalidResponse, Rt as setComment, S as updateTriggerConfig, St as revisionView, Tt as deriveInspectorDiagnostics, U as addNodeIntent, Un as EventSourcesPage, Ut as repairNodeNames, Vn as EmptyTitle, Vr as controlErrorCode, Vt as setNodePositions, W as deriveAddNodeOptions, Wt as resetInputValues, X as CacheResource, Xn as WorkbenchClient, Xt as updateTriggerSchedule, Y as connectorActionPresentation, Yn as errorNotice, Yt as updateStartInputDefs, Zn as normalizeFlowQuery, Zt as dequal$1, _ as updateRequestParameters, _r as workflowBundleFromPreview, a as nameCreatedNodes, an as FlowTagChips, at as getActionsCache, b as updateTaskAdditionalInputs, br as workflowNameFromFile, c as setInputVariable, cr as normalizeTriggerOutputs, ct as getProvidersCache, d as updateCondition, en as WorkflowExportMenuItem, et as action, f as updateNodeDescription, fr as isJsonValue, ft as designerGraph, g as updateOutputPorts, gr as parseWorkflowImportFile, h as updateNodeSettings, hr as encodeWorkflowBundle, i as deleteSelection, in as FlowSettingsDialog, jn as useFlowQuery, jt as connectionCatalog, l as setTriggerConnection, lr as sampleErrorOutputs, lt as createPersistentCache, m as updateNodeName, mr as connectorActionMetadata, nn as IdTooltip, nt as proxyResponse, o as selectWebhookResponse, on as TagPicker, p as updateNodeIcon, pr as connection, qt as setInputSources, r as applyFlowChanges$1, rt as validateAction, s as setInputValue, st as getConnectionsCache, t as addNode, tn as useWorkflowExportAction, tr as decodeTriggerCatalog, tt as provider, u as setTriggerEventSource, ur as triggerOutputDefinitions, ut as createSessionCache, v as updateResolution, vr as encodeWorkflowFile, vt as providerIcon, w as updateWebhook, wt as Latest, x as updateTaskPorts, y as updateTask, yr as workflowFileName, yt as RunStore, zn as EmptyHeader, zr as record, zt as setFlowViewport } from "./flowChanges-BvSWezEb.js";
4
+ import { Cr as cn, i as TooltipTrigger, n as TooltipContent, t as Tooltip, xr as Button } from "./tooltip-BZ6tpqnr.js";
5
+ import { Bt as schemaObject, C as upgradeManualTrigger, Dt as connectorProxyTask, M as mapConditionSources, N as nodeInputMappings, Rt as matchesSchema, S as resourceNameIssue, Yt as dequal, _ as applyFlowChanges, a as DialogFooter, bt as connectorProxyConfigSchema, d as Field, g as FlowChangeError, h as FieldLabel, hn as Input, i as DialogDescription, l as Icon, m as FieldGroup, o as DialogHeader, p as FieldError, r as DialogContent, s as DialogTitle, t as Dialog, u as Spinner, v as isTriggerNode, w as upgradeRevisionContent } from "./dialog-Bi-MVTGj.js";
6
+ import { $ as resourceValue, $n as allConnectorConnectionsQuery, $t as WorkflowExportDialog, At as actionWithConnections, Bn as EmptyMedia, Br as ApiError, Bt as setNodeContentHidden, C as updateValue, Ct as flowResourceReferences, Et as diagnosticItems, Fn as InputGroupInput, Ft as removeComments, Gt as setCodeActions, Hn as Badge, Ht as setVerticalNodeWidth, In as Empty, It as restoreCanvasPresentation, J as scopedValue, Jt as setServiceConnections, K as combineSources, Kn as createI18n, Kt as setConnectorConnection, Ln as EmptyContent, Lt as setCanvasLayout, Mn as followWorkbenchLink, Mt as canvasPresentationChange, Nn as InputGroup, Nt as commentIds, Pn as InputGroupAddon, Pr as workflowCandidate, Pt as flowPresentation, Q as resourceData, Qn as randomId, Qt as WorkflowBundleSummary, Rn as EmptyDescription, Rr as invalidResponse, Rt as setComment, S as updateTriggerConfig, St as revisionView, Tt as deriveInspectorDiagnostics, U as addNodeIntent, Un as EventSourcesPage, Ut as repairNodeNames, Vn as EmptyTitle, Vr as controlErrorCode, Vt as setNodePositions, W as deriveAddNodeOptions, Wt as resetInputValues, X as CacheResource, Xn as WorkbenchClient, Xt as updateTriggerSchedule, Y as connectorActionPresentation, Yn as errorNotice, Yt as updateStartInputDefs, Zn as normalizeFlowQuery, Zt as dequal$1, _ as updateRequestParameters, _r as workflowBundleFromPreview, a as nameCreatedNodes, an as FlowTagChips, at as getActionsCache, b as updateTaskAdditionalInputs, br as workflowNameFromFile, c as setInputVariable, cr as normalizeTriggerOutputs, ct as getProvidersCache, d as updateCondition, en as WorkflowExportMenuItem, et as action, f as updateNodeDescription, fr as isJsonValue, ft as designerGraph, g as updateOutputPorts, gr as parseWorkflowImportFile, h as updateNodeSettings, hr as encodeWorkflowBundle, i as deleteSelection, in as FlowSettingsDialog, jn as useFlowQuery, jt as connectionCatalog, l as setTriggerConnection, lr as sampleErrorOutputs, lt as createPersistentCache, m as updateNodeName, mr as connectorActionMetadata, nn as IdTooltip, nt as proxyResponse, o as selectWebhookResponse, on as TagPicker, p as updateNodeIcon, pr as connection, qt as setInputSources, r as applyFlowChanges$1, rt as validateAction, s as setInputValue, st as getConnectionsCache, t as addNode, tn as useWorkflowExportAction, tr as decodeTriggerCatalog, tt as provider, u as setTriggerEventSource, ur as triggerOutputDefinitions, ut as createSessionCache, v as updateResolution, vr as encodeWorkflowFile, vt as providerIcon, w as updateWebhook, wt as Latest, x as updateTaskPorts, y as updateTask, yr as workflowFileName, yt as RunStore, zn as EmptyHeader, zr as record, zt as setFlowViewport } from "./flowChanges-CnOOPJJR.js";
7
7
  import { a as uiLanguages, i as uiLanguageNames, n as isUiLanguage, r as resolveUiLanguage, t as importedWorkflowName } from "./languages-gYzoQqCi.js";
8
8
  import { i as objectValue, n as isJsonValue$1, s as valueType, t as initialValue } from "./value-BbFQZZ_V.js";
9
9
  import { Suspense, forwardRef, lazy, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
@@ -520,7 +520,7 @@ function FlowDeletionDialog({ flow, workspace, container, busy, finalFocus, onCl
520
520
  }
521
521
  //#endregion
522
522
  //#region src/workbench/browser/runtime/shell/resourceBrowser.tsx
523
- var CreateResourceDialog = lazy(() => import("./createResourceDialog-C0E5yPe6.js"));
523
+ var CreateResourceDialog = lazy(() => import("./createResourceDialog-CB3eiK7e.js"));
524
524
  var flowIdTooltipAlignOffset = 44;
525
525
  var renamePopoverAlignOffset = -12;
526
526
  function compactFlowId(flowId) {
@@ -7047,7 +7047,7 @@ var WorkbenchStore = class {
7047
7047
  async downloadPng(result) {
7048
7048
  const title = this.workspace.$.flow.value?.name ?? this.workspace.$.flowId.value ?? "Workflow";
7049
7049
  try {
7050
- const { downloadPng } = await import("./exportPng-DGHcejgy.js");
7050
+ const { downloadPng } = await import("./exportPng-CLZKdNzR.js");
7051
7051
  downloadPng(result, title);
7052
7052
  if (!this.#disposed) this.#notice.set({
7053
7053
  kind: "success",
@@ -7314,7 +7314,7 @@ var WorkbenchStore = class {
7314
7314
  };
7315
7315
  //#endregion
7316
7316
  //#region src/workbench/browser/runtime/openFlowWorkbench.tsx
7317
- var FlowWorkspace = lazy(() => import("./flowWorkspace-BKnMRClO.js"));
7317
+ var FlowWorkspace = lazy(() => import("./flowWorkspace-B79fy3Me.js"));
7318
7318
  function OpenFlowSessionGate({ action, description, error, onSubmit, onTokenChange, pending = false, title, token, tokenLabel }) {
7319
7319
  const hasToken = token != null && tokenLabel != null && onTokenChange != null;
7320
7320
  const tokenValue = token ?? "";
@@ -1,5 +1,5 @@
1
- import { Cr as cn } from "./tooltip-DSBF3bRw.js";
2
- import { $t as SelectGroup, Qt as SelectContent, Xt as Select, en as SelectItem, nn as SelectTrigger, rn as SelectValue } from "./dialog-b3hsdu8i.js";
1
+ import { Cr as cn } from "./tooltip-BZ6tpqnr.js";
2
+ import { $t as SelectGroup, Qt as SelectContent, Xt as Select, en as SelectItem, nn as SelectTrigger, rn as SelectValue } from "./dialog-Bi-MVTGj.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/workbench/browser/runtime/shell/workbenchSelect.tsx
5
5
  function WorkbenchSelect({ ariaLabel, className, disabled = false, id, onValueChange, options, portalRoot, size, value, variant }) {
@@ -1,5 +1,5 @@
1
1
  import { a as derive, l as val, r as combine } from "./dist-bO8nvHFH.js";
2
- import { $ as useToolbarRootContext, $t as fastComponent, An as isMac, Ar as warn, At as useImplicitActiveTrigger, B as ARROW_LEFT, Bn as transitionStatusMapping, Br as useStableCallback, Bt as useFloatingNodeId, Cr as cn, Ct as useHoverFloatingInteraction, Dn as getTarget, Dr as EMPTY_ARRAY$1, Dt as createInitialPopupStoreState, En as contains, Er as useRenderElement, Fn as createLucideIcon, Fr as formatErrorMessage, Ft as useDismiss, G as HORIZONTAL_KEYS, Gr as isHTMLElement$1, Gt as CLICK_TRIGGER_IDENTIFIER, H as ARROW_UP, Hn as useOnMount, Hr as getParentNode, Ht as useFloatingTree, I as useCompositeListItem, In as useTransitionStatus, Ir as mergeProps, It as useClick, Jn as closePress, Jt as FocusGuard, K as HORIZONTAL_KEYS_WITH_EXTRA_KEYS, Kn as cancelOpen, Kr as isLastTraversableNode, Kt as DROPDOWN_COLLISION_AVOIDANCE, L as ALL_KEYS, Ln as useOpenChangeComplete, Lr as useIsoLayoutEffect, Lt as FloatingFocusManager, Mn as ownerDocument, Mr as useButton, Mt as useTriggerDataForwarding, Nr as CompositeRootContext, Nt as useTriggerRegistration, Or as EMPTY_OBJECT, Ot as popupStoreSelectors, P as Separator, Pn as Check, Pr as useCompositeRootContext, Q as scrollIntoViewIfNeeded, R as ARROW_DOWN, Rn as useAnimationsFinished, Rr as SafeReact, Rt as FloatingNode, St as useHoverReferenceInteraction, Tr as clsx, Tt as useSyncedFloatingRootContext, U as COMPOSITE_KEYS, Un as useValueChanged, Ut as FloatingTreeStore, V as ARROW_RIGHT, Vr as useRefWithInit, Vt as useFloatingParentNodeId, Wn as createChangeEventDetails, Wt as FloatingPortal, X as VERTICAL_KEYS_WITH_EXTRA_KEYS, Xn as focusOut, Xt as ReactStore, Y as VERTICAL_KEYS, Z as isNativeInput, Zn as imperativeAction, _n as getMaxListIndex, _r as fieldValidityMapping, _t as safePolygon, an as useOnFirstRender, ar as siblingOpen, at as useAnchorPositioning, bn as isListIndexDisabled, br as useControlled, bt as useListNavigation, cn as getNextTabbable, ct as CompositeList, dn as isOutsideEvent, dr as useFormContext, en as fastComponentRef, et as useAnchoredPopupScrollLock, fn as createGridCellMap, fr as useRegisterFieldControl, ft as popupStateMapping, gn as getGridNavigatedIndex, hn as getGridCellIndices, hr as useId$1, ht as useOpenInteractionType, it as InternalBackdrop, jr as useMergedRefs, jt as useOpenStateTransitions, kr as NOOP, kt as PopupTriggerMap, ln as getTabbableAfterElement, lt as inertValue, mn as getGridCellIndexOfCorner, mr as useBaseUiId, mt as triggerOpenStateMapping, nt as usePositioner, on as Timeout, ot as adaptiveOrigin, pn as findNonDisabledListIndex, pr as useFieldRootContext, pt as pressableTriggerOpenStateMapping, q as MODIFIER_KEYS, qt as POPUP_COLLISION_AVOIDANCE, rn as createSelector, rr as none, rt as getDisabledMountTransitionStyles, sn as useTimeout, sr as triggerHover, st as useDirection, tr as itemPress, un as getTabbableBeforeElement, ur as useLabelableContext, ut as getPseudoElementBounds, vn as getMinListIndex, vr as visuallyHidden, vt as useTypeahead, wt as useFocus, xr as Button, xt as useInteractions, yn as isIndexOutOfListBounds, yr as visuallyHiddenInput, yt as useRole, z as ARROW_KEYS, zt as FloatingTree } from "./tooltip-DSBF3bRw.js";
2
+ import { $ as useToolbarRootContext, $t as fastComponent, An as isMac, Ar as warn, At as useImplicitActiveTrigger, B as ARROW_LEFT, Bn as transitionStatusMapping, Br as useStableCallback, Bt as useFloatingNodeId, Cr as cn, Ct as useHoverFloatingInteraction, Dn as getTarget, Dr as EMPTY_ARRAY$1, Dt as createInitialPopupStoreState, En as contains, Er as useRenderElement, Fn as createLucideIcon, Fr as formatErrorMessage, Ft as useDismiss, G as HORIZONTAL_KEYS, Gr as isHTMLElement$1, Gt as CLICK_TRIGGER_IDENTIFIER, H as ARROW_UP, Hn as useOnMount, Hr as getParentNode, Ht as useFloatingTree, I as useCompositeListItem, In as useTransitionStatus, Ir as mergeProps, It as useClick, Jn as closePress, Jt as FocusGuard, K as HORIZONTAL_KEYS_WITH_EXTRA_KEYS, Kn as cancelOpen, Kr as isLastTraversableNode, Kt as DROPDOWN_COLLISION_AVOIDANCE, L as ALL_KEYS, Ln as useOpenChangeComplete, Lr as useIsoLayoutEffect, Lt as FloatingFocusManager, Mn as ownerDocument, Mr as useButton, Mt as useTriggerDataForwarding, Nr as CompositeRootContext, Nt as useTriggerRegistration, Or as EMPTY_OBJECT, Ot as popupStoreSelectors, P as Separator, Pn as Check, Pr as useCompositeRootContext, Q as scrollIntoViewIfNeeded, R as ARROW_DOWN, Rn as useAnimationsFinished, Rr as SafeReact, Rt as FloatingNode, St as useHoverReferenceInteraction, Tr as clsx, Tt as useSyncedFloatingRootContext, U as COMPOSITE_KEYS, Un as useValueChanged, Ut as FloatingTreeStore, V as ARROW_RIGHT, Vr as useRefWithInit, Vt as useFloatingParentNodeId, Wn as createChangeEventDetails, Wt as FloatingPortal, X as VERTICAL_KEYS_WITH_EXTRA_KEYS, Xn as focusOut, Xt as ReactStore, Y as VERTICAL_KEYS, Z as isNativeInput, Zn as imperativeAction, _n as getMaxListIndex, _r as fieldValidityMapping, _t as safePolygon, an as useOnFirstRender, ar as siblingOpen, at as useAnchorPositioning, bn as isListIndexDisabled, br as useControlled, bt as useListNavigation, cn as getNextTabbable, ct as CompositeList, dn as isOutsideEvent, dr as useFormContext, en as fastComponentRef, et as useAnchoredPopupScrollLock, fn as createGridCellMap, fr as useRegisterFieldControl, ft as popupStateMapping, gn as getGridNavigatedIndex, hn as getGridCellIndices, hr as useId$1, ht as useOpenInteractionType, it as InternalBackdrop, jr as useMergedRefs, jt as useOpenStateTransitions, kr as NOOP, kt as PopupTriggerMap, ln as getTabbableAfterElement, lt as inertValue, mn as getGridCellIndexOfCorner, mr as useBaseUiId, mt as triggerOpenStateMapping, nt as usePositioner, on as Timeout, ot as adaptiveOrigin, pn as findNonDisabledListIndex, pr as useFieldRootContext, pt as pressableTriggerOpenStateMapping, q as MODIFIER_KEYS, qt as POPUP_COLLISION_AVOIDANCE, rn as createSelector, rr as none, rt as getDisabledMountTransitionStyles, sn as useTimeout, sr as triggerHover, st as useDirection, tr as itemPress, un as getTabbableBeforeElement, ur as useLabelableContext, ut as getPseudoElementBounds, vn as getMinListIndex, vr as visuallyHidden, vt as useTypeahead, wt as useFocus, xr as Button, xt as useInteractions, yn as isIndexOutOfListBounds, yr as visuallyHiddenInput, yt as useRole, z as ARROW_KEYS, zt as FloatingTree } from "./tooltip-BZ6tpqnr.js";
3
3
  import * as React from "react";
4
4
  import reactExports, { createContext, forwardRef, memo, useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";