@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.
- package/dist/browser/{FlowCanvas-CHIaMaBv.js → FlowCanvas-SqPUBqze.js} +3 -3
- package/dist/browser/{createResourceDialog-C0E5yPe6.js → createResourceDialog-CB3eiK7e.js} +3 -3
- package/dist/browser/{dialog-b3hsdu8i.js → dialog-Bi-MVTGj.js} +1 -1
- package/dist/browser/{exportPng-DGHcejgy.js → exportPng-CLZKdNzR.js} +2 -2
- package/dist/browser/{flowChanges-BvSWezEb.js → flowChanges-CnOOPJJR.js} +15 -12
- package/dist/browser/{flowWorkspace-BKnMRClO.js → flowWorkspace-B79fy3Me.js} +8 -8
- package/dist/browser/{markdownContent-BR9-1ikU.js → markdownContent-D0BBrFcF.js} +1 -1
- package/dist/browser/preview.css +12 -10
- package/dist/browser/preview.js +3 -1
- package/dist/browser/theme.css +3 -1
- package/dist/browser/{tooltip-DSBF3bRw.js → tooltip-BZ6tpqnr.js} +3 -1
- package/dist/browser/ui.css +12 -10
- package/dist/browser/ui.d.ts +1 -0
- package/dist/browser/ui.js +110 -63
- package/dist/browser/workbench.css +12 -10
- package/dist/browser/workbench.js +7 -7
- package/dist/browser/{workbenchSelect-Di1Bm_-d.js → workbenchSelect-CHOeceKA.js} +2 -2
- package/dist/browser/{wrapLayout-B0AT8_-i.js → wrapLayout-BB_qwy3k.js} +1 -1
- package/dist/command/index.js +32 -32
- package/dist/common/control-api-conformance.js +12 -9
- package/dist/common/control-api.js +12 -9
- package/dist/common/control-requests.js +8 -2
- package/dist/common/flow-semantics.js +7 -1
- package/dist/common/mcp.js +12 -9
- package/dist/render/browser/runtime.css +12 -10
- package/dist/render/browser/runtime.js +3 -1
- package/package.json +1 -1
- package/src/control/common/api.ts +13 -9
- package/src/control/common/authoring.ts +2 -1
- package/src/flow/common/graph.ts +10 -1
package/dist/browser/ui.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import w, { createElement, forwardRef, useEffect,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
19655
|
-
|
|
19656
|
-
|
|
19657
|
-
|
|
19658
|
-
|
|
19659
|
-
|
|
19660
|
-
|
|
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
|
-
|
|
19668
|
-
|
|
19669
|
-
|
|
19670
|
-
|
|
19671
|
-
|
|
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(
|
|
19692
|
-
|
|
19693
|
-
|
|
19694
|
-
|
|
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: (
|
|
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(
|
|
19708
|
-
|
|
19709
|
-
|
|
19710
|
-
|
|
19711
|
-
|
|
19712
|
-
|
|
19713
|
-
|
|
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: (
|
|
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:
|
|
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
|
-
|
|
7988
|
+
gap: 0;
|
|
7980
7989
|
padding: 4px;
|
|
7981
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
2
|
-
import { $t as SelectGroup, Qt as SelectContent, Xt as Select, en as SelectItem, nn as SelectTrigger, rn as SelectValue } from "./dialog-
|
|
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-
|
|
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";
|