@parallelworks/ui 0.17.0 → 0.18.0
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/LICENSE +202 -21
- package/dist/chunks/{CodePreviewEditor-UAtnpmOV.js → CodePreviewEditor-4lx3kE-w.js} +2 -2
- package/dist/chunks/{CreateModal-BbV5cTj7.js → CreateModal-BY6DLmur.js} +10 -10
- package/dist/chunks/{lib-CUTRDpa6.js → FieldWrapper-Bef01EWO.js} +49 -48
- package/dist/chunks/{Monaco-DVyIpyv4.js → Monaco-C1POOdVv.js} +3 -3
- package/dist/chunks/{PageHeader-MxuOs9cH.js → PageHeader-l49p1nM9.js} +145 -82
- package/dist/chunks/{Provider-DHmZ3v9i.js → Provider-Ghua9PkN.js} +6 -4
- package/dist/chunks/{SwitchToggle-BRQoEwLZ.js → SwitchToggle-CHPP8uZQ.js} +11 -11
- package/dist/chunks/{Table-C6JdFFiJ.js → Table-4OHjdKdO.js} +2 -2
- package/dist/chunks/{Tooltip-n9w7Tkt1.js → Tooltip-Crxo_eU_.js} +3 -3
- package/dist/chunks/{editor-mNznodJN.js → editor-9_uVtUyy.js} +4 -4
- package/dist/chunks/{list-7k0eaI5N.js → list-qrojZZNv.js} +128 -17
- package/dist/components/AddMenu.d.ts +1 -0
- package/dist/components/Avatar.d.ts +13 -0
- package/dist/components/Dropdown.d.ts +2 -0
- package/dist/components/Provider.d.ts +2 -0
- package/dist/editor/index.js +1 -1
- package/dist/file-explorer/index.js +28 -27
- package/dist/form/FieldWrapper.d.ts +2 -1
- package/dist/form/Form.d.ts +3 -1
- package/dist/form/index.js +22 -20
- package/dist/form/types/fieldComponentTypes.d.ts +1 -0
- package/dist/form/types/fieldTypes.d.ts +4 -4
- package/dist/form/useParsedOpts.d.ts +1 -1
- package/dist/icons.d.ts +1 -1
- package/dist/icons.js +3 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.js +13 -13
- package/dist/list/RowContextMenu.d.ts +9 -9
- package/dist/list/UserHoverCard.d.ts +45 -0
- package/dist/list/index.d.ts +2 -1
- package/dist/list/index.js +3 -3
- package/dist/logviewer/index.js +7 -7
- package/dist/styles/Geist-Variable.woff2 +0 -0
- package/dist/styles/GeistMono-Variable.woff2 +0 -0
- package/dist/styles/base.css +57 -0
- package/dist/styles/fonts.css +15 -0
- package/dist/styles/theme.css +6 -40
- package/dist/styles.css +1 -1
- package/dist/workflow/index.js +8 -8
- package/package.json +10 -9
- package/dist/chunks/{BareModal-BqroLbZ5.js → BareModal-BtRiQezg.js} +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { a as usePersistedState, n as useLink, r as useNavigation, u as useStrings } from "./Provider-Ghua9PkN.js";
|
|
2
|
+
import { T as Avatar, _ as useRowMenuActive, c as PageHeader, f as rowContextMenuProps, u as MoreButton } from "./PageHeader-l49p1nM9.js";
|
|
1
3
|
import { CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, DisplayIcon, ErrorIcon, FilterIcon, MenuIcon, SearchIcon, XIcon } from "../icons.js";
|
|
2
|
-
import {
|
|
3
|
-
import { n as
|
|
4
|
-
import { _ as useRowMenuActive, c as PageHeader, p as rowContextMenuProps, u as MoreButton } from "./PageHeader-MxuOs9cH.js";
|
|
5
|
-
import { n as Table } from "./Table-C6JdFFiJ.js";
|
|
4
|
+
import { n as TOOLTIP_ID, r as TooltipInfo } from "./Tooltip-Crxo_eU_.js";
|
|
5
|
+
import { n as Table } from "./Table-4OHjdKdO.js";
|
|
6
6
|
import cx from "classnames";
|
|
7
|
-
import { Fragment,
|
|
8
|
-
import { Children, Fragment as Fragment$1, cloneElement, createContext, isValidElement, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
7
|
+
import { Children, Fragment, cloneElement, createContext, isValidElement, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
9
8
|
import { useLocalStorage } from "usehooks-ts";
|
|
9
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
import { createPortal } from "react-dom";
|
|
11
11
|
import { Menu, MenuButton, MenuItem, MenuItems } from "@headlessui/react";
|
|
12
12
|
//#region src/list/ActionToolbar.tsx
|
|
@@ -20,7 +20,7 @@ function tipProps(content, place) {
|
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
function ToolbarItemView({ item }) {
|
|
23
|
-
if ("element" in item) return /* @__PURE__ */ jsx(Fragment, { children: item.element });
|
|
23
|
+
if ("element" in item) return /* @__PURE__ */ jsx(Fragment$1, { children: item.element });
|
|
24
24
|
return /* @__PURE__ */ jsx(ToolbarButton, { action: item });
|
|
25
25
|
}
|
|
26
26
|
function ToolbarButton({ action }) {
|
|
@@ -30,7 +30,7 @@ function ToolbarButton({ action }) {
|
|
|
30
30
|
const className = cx("inline-flex items-center gap-x-0.5 h-9 px-2 rounded-md text-[13.5px] uppercase font-semibold transition-colors whitespace-nowrap", "bg-(--theme-element) text-(--theme-element-text)", action.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:bg-(--theme-element-hover)");
|
|
31
31
|
const tooltipProps = tipProps(action.disabled ? action.disabledTooltip : action.enabledTooltip, "bottom");
|
|
32
32
|
const Icon = action.icon;
|
|
33
|
-
const content = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
|
|
33
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
|
|
34
34
|
className: "h-6 flex items-center",
|
|
35
35
|
children: /* @__PURE__ */ jsx(Icon, { className: cx("w-auto", action.iconClassName) })
|
|
36
36
|
}), action.label] });
|
|
@@ -64,7 +64,7 @@ function OverflowRow({ item }) {
|
|
|
64
64
|
const Icon = item.icon;
|
|
65
65
|
const className = cx("flex w-full items-center gap-x-1 px-4 py-2 text-[13px] uppercase font-semibold link hover:theme-hover", item.disabled && "opacity-50 cursor-not-allowed");
|
|
66
66
|
const tooltipProps = tipProps(item.disabled ? item.disabledTooltip : item.enabledTooltip, "left");
|
|
67
|
-
const content = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
|
|
67
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
|
|
68
68
|
className: "w-5 h-6 flex items-center",
|
|
69
69
|
children: /* @__PURE__ */ jsx(Icon, { className: cx(item.iconClassName) })
|
|
70
70
|
}), item.label] });
|
|
@@ -106,7 +106,7 @@ function OverflowMenu({ items }) {
|
|
|
106
106
|
className: "z-50 min-w-56 rounded-md border theme-border bg-(--theme-app-bg) shadow-lg py-1 focus:outline-none",
|
|
107
107
|
children: /* @__PURE__ */ jsx(OverflowMenuContext.Provider, {
|
|
108
108
|
value: true,
|
|
109
|
-
children: items.map((item) => "element" in item ? /* @__PURE__ */ jsx(Fragment
|
|
109
|
+
children: items.map((item) => "element" in item ? /* @__PURE__ */ jsx(Fragment, { children: item.element }, item.key) : /* @__PURE__ */ jsx(OverflowRow, { item }, item.key))
|
|
110
110
|
})
|
|
111
111
|
})]
|
|
112
112
|
});
|
|
@@ -177,7 +177,7 @@ function ActionToolbar({ groups, right = [], sticky = false }) {
|
|
|
177
177
|
className: cx("flex items-center gap-2.5", sticky && cx("sticky top-10 z-10 bg-(--theme-app-bg)", "py-1.5")),
|
|
178
178
|
children: [visibleGroups.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
179
179
|
className: "flex items-center gap-2.5 shrink-0",
|
|
180
|
-
children: visibleGroups.map((group, i) => /* @__PURE__ */ jsxs(Fragment
|
|
180
|
+
children: visibleGroups.map((group, i) => /* @__PURE__ */ jsxs(Fragment, { children: [i > 0 && /* @__PURE__ */ jsx("div", { className: "w-px h-5 bg-(--theme-border)" }), /* @__PURE__ */ jsx("div", {
|
|
181
181
|
className: "flex items-center gap-1",
|
|
182
182
|
children: group.map((item) => /* @__PURE__ */ jsx(ToolbarItemView, { item }, item.key))
|
|
183
183
|
})] }, group[0]?.key ?? i))
|
|
@@ -205,7 +205,7 @@ var listTableFixedProps = {
|
|
|
205
205
|
};
|
|
206
206
|
function NameCell({ icon, name, subtitle, href, badge, title }) {
|
|
207
207
|
const Link = useLink();
|
|
208
|
-
const inner = /* @__PURE__ */ jsxs(Fragment, { children: [icon, /* @__PURE__ */ jsxs("div", {
|
|
208
|
+
const inner = /* @__PURE__ */ jsxs(Fragment$1, { children: [icon, /* @__PURE__ */ jsxs("div", {
|
|
209
209
|
className: "min-w-0",
|
|
210
210
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
211
211
|
className: "flex min-w-0 items-center gap-1.5",
|
|
@@ -332,7 +332,7 @@ function ListActionsHeader({ view, actionCount = 0, className }) {
|
|
|
332
332
|
width,
|
|
333
333
|
minWidth: width
|
|
334
334
|
},
|
|
335
|
-
className: cx("py-2 text-right @max-[43rem]:w-[52px]! @max-[43rem]:min-w-[52px]!", className),
|
|
335
|
+
className: cx("relative py-2 text-right @max-[43rem]:w-[52px]! @max-[43rem]:min-w-[52px]!", className),
|
|
336
336
|
children: /* @__PURE__ */ jsx("span", {
|
|
337
337
|
className: "sr-only",
|
|
338
338
|
children: "Actions"
|
|
@@ -462,7 +462,7 @@ function ListRow({ href, onActivate, items, goTo, openMenu, pinnedActions, selec
|
|
|
462
462
|
}
|
|
463
463
|
/** Name column min-width is by role, not position, so a leading checkbox doesn't shift it. */
|
|
464
464
|
function ListColumns({ view }) {
|
|
465
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [view.visibleColumns.map((col, i) => /* @__PURE__ */ jsx(Table.Header, {
|
|
465
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [view.visibleColumns.map((col, i) => /* @__PURE__ */ jsx(Table.Header, {
|
|
466
466
|
caps: false,
|
|
467
467
|
className: cx(col.headerClassName, view.columnClasses[i]),
|
|
468
468
|
style: col.alwaysVisible ? { minWidth: 200 } : void 0,
|
|
@@ -743,7 +743,7 @@ function AnchoredPopover({ icon, label, active, shortcut, panelClassName, childr
|
|
|
743
743
|
window.addEventListener("keydown", onKey);
|
|
744
744
|
return () => window.removeEventListener("keydown", onKey);
|
|
745
745
|
}, [shortcut, open]);
|
|
746
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("button", {
|
|
746
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("button", {
|
|
747
747
|
ref: btnRef,
|
|
748
748
|
type: "button",
|
|
749
749
|
onClick: () => pos ? close() : open(),
|
|
@@ -986,7 +986,7 @@ function FilterMenuBody({ view }) {
|
|
|
986
986
|
const scheduleClose = () => {
|
|
987
987
|
closeTimer.current = setTimeout(() => setOpenKey(null), 160);
|
|
988
988
|
};
|
|
989
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
|
|
989
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
|
|
990
990
|
className: "flex items-center justify-between px-3 py-1",
|
|
991
991
|
children: [/* @__PURE__ */ jsx("span", {
|
|
992
992
|
className: "text-[11px] font-medium uppercase tracking-wide text-(--theme-muted-text-color)",
|
|
@@ -1297,4 +1297,115 @@ function HoverCardSurface({ x, y, widthClassName, padded = true, relayoutKey, on
|
|
|
1297
1297
|
}), document.querySelector(".ds-root") ?? document.body);
|
|
1298
1298
|
}
|
|
1299
1299
|
//#endregion
|
|
1300
|
-
|
|
1300
|
+
//#region src/list/UserHoverCard.tsx
|
|
1301
|
+
/** Opens `card` after a short hover or on focus of `children`. */
|
|
1302
|
+
function HoverCardTrigger({ className, children, card }) {
|
|
1303
|
+
const { triggerRef, coords, scheduleOpen, scheduleClose, keepOpen } = useHoverCard();
|
|
1304
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
1305
|
+
ref: triggerRef,
|
|
1306
|
+
role: "none",
|
|
1307
|
+
className,
|
|
1308
|
+
onMouseEnter: scheduleOpen,
|
|
1309
|
+
onMouseLeave: scheduleClose,
|
|
1310
|
+
onFocus: scheduleOpen,
|
|
1311
|
+
onBlur: scheduleClose,
|
|
1312
|
+
children: [children, coords && card({
|
|
1313
|
+
x: coords.x,
|
|
1314
|
+
y: coords.y,
|
|
1315
|
+
onKeepOpen: keepOpen,
|
|
1316
|
+
onLeave: scheduleClose
|
|
1317
|
+
})]
|
|
1318
|
+
});
|
|
1319
|
+
}
|
|
1320
|
+
function UserHoverCard({ x, y, onKeepOpen, onLeave, username, name, avatarSrc, badge, href, linkComponent, loading = false, relayoutKey, children }) {
|
|
1321
|
+
const strings = useStrings();
|
|
1322
|
+
const SlotLink = useLink();
|
|
1323
|
+
const Link = linkComponent ?? SlotLink;
|
|
1324
|
+
const displayName = name || username;
|
|
1325
|
+
const header = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Avatar, {
|
|
1326
|
+
src: avatarSrc,
|
|
1327
|
+
name: displayName,
|
|
1328
|
+
size: "lg",
|
|
1329
|
+
className: "shrink-0"
|
|
1330
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
1331
|
+
className: "min-w-0",
|
|
1332
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
1333
|
+
className: "flex items-center gap-1.5",
|
|
1334
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
1335
|
+
className: "truncate text-sm font-semibold text-(--theme-app)",
|
|
1336
|
+
children: displayName
|
|
1337
|
+
}), badge && /* @__PURE__ */ jsx("span", {
|
|
1338
|
+
className: "shrink-0 rounded-full bg-(--theme-muted-panel-bg) px-1.5 py-0.5 text-[10px] font-medium leading-none text-(--theme-muted-text-color)",
|
|
1339
|
+
children: badge
|
|
1340
|
+
})]
|
|
1341
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
1342
|
+
className: "truncate text-xs text-(--theme-muted-text-color)",
|
|
1343
|
+
children: username
|
|
1344
|
+
})]
|
|
1345
|
+
})] });
|
|
1346
|
+
return /* @__PURE__ */ jsxs(HoverCardSurface, {
|
|
1347
|
+
x,
|
|
1348
|
+
y,
|
|
1349
|
+
widthClassName: "w-64",
|
|
1350
|
+
relayoutKey,
|
|
1351
|
+
onKeepOpen,
|
|
1352
|
+
onLeave,
|
|
1353
|
+
children: [href ? /* @__PURE__ */ jsx(Link, {
|
|
1354
|
+
to: href,
|
|
1355
|
+
className: "flex items-center gap-3 transition-opacity hover:opacity-80",
|
|
1356
|
+
children: header
|
|
1357
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
1358
|
+
className: "flex items-center gap-3",
|
|
1359
|
+
children: header
|
|
1360
|
+
}), loading ? /* @__PURE__ */ jsxs("div", {
|
|
1361
|
+
role: "status",
|
|
1362
|
+
"aria-label": strings.loading,
|
|
1363
|
+
className: "mt-3 space-y-2 border-t border-(--theme-border) pt-3",
|
|
1364
|
+
children: [
|
|
1365
|
+
/* @__PURE__ */ jsx("div", {
|
|
1366
|
+
"aria-hidden": "true",
|
|
1367
|
+
className: "h-3 w-24 animate-pulse rounded theme-muted-panel"
|
|
1368
|
+
}),
|
|
1369
|
+
/* @__PURE__ */ jsx("div", {
|
|
1370
|
+
"aria-hidden": "true",
|
|
1371
|
+
className: "h-3 w-36 animate-pulse rounded theme-muted-panel"
|
|
1372
|
+
}),
|
|
1373
|
+
/* @__PURE__ */ jsx("span", {
|
|
1374
|
+
className: "sr-only",
|
|
1375
|
+
children: strings.loading
|
|
1376
|
+
})
|
|
1377
|
+
]
|
|
1378
|
+
}) : children ? /* @__PURE__ */ jsx("div", {
|
|
1379
|
+
className: "mt-3 space-y-2 border-t border-(--theme-border) pt-3 text-[13px]",
|
|
1380
|
+
children
|
|
1381
|
+
}) : null]
|
|
1382
|
+
});
|
|
1383
|
+
}
|
|
1384
|
+
var rowClasses = "flex gap-2 text-(--theme-muted-text-color)";
|
|
1385
|
+
/** One detail line of a hover card: a leading icon and its content. With
|
|
1386
|
+
* `onClick` the line is a button. */
|
|
1387
|
+
function HoverCardRow({ icon, children, title, align = "center", truncate = false, onClick }) {
|
|
1388
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
1389
|
+
"aria-hidden": "true",
|
|
1390
|
+
className: cx("flex shrink-0 items-center [&>svg]:h-3.5 [&>svg]:w-3.5", align === "start" && "mt-0.5"),
|
|
1391
|
+
children: icon
|
|
1392
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
1393
|
+
className: cx("min-w-0", truncate && "truncate"),
|
|
1394
|
+
children
|
|
1395
|
+
})] });
|
|
1396
|
+
const alignClass = align === "start" ? "items-start" : "items-center";
|
|
1397
|
+
if (onClick) return /* @__PURE__ */ jsx("button", {
|
|
1398
|
+
type: "button",
|
|
1399
|
+
title,
|
|
1400
|
+
onClick,
|
|
1401
|
+
className: cx(rowClasses, alignClass, "-mx-1 max-w-full rounded px-1 py-0.5 text-left transition-colors hover:bg-(--theme-muted-panel-bg) hover:text-(--theme-app)"),
|
|
1402
|
+
children: content
|
|
1403
|
+
});
|
|
1404
|
+
return /* @__PURE__ */ jsx("div", {
|
|
1405
|
+
title,
|
|
1406
|
+
className: cx(rowClasses, alignClass),
|
|
1407
|
+
children: content
|
|
1408
|
+
});
|
|
1409
|
+
}
|
|
1410
|
+
//#endregion
|
|
1411
|
+
export { actionsColumnWidth as A, GroupRow as C, NAME_MIN_WIDTH_PX as D, ListSkeleton as E, stickyTabsClasses as F, stickyTabsUnderHeaderClasses as I, stickyToolbarClasses as L, listTableProps as M, ActionToolbar as N, NameCell as O, ToolbarButton as P, useListNavigate as S, ListError as T, useListView as _, useHoverCard as a, ListRow as b, ListCount as c, ListDisplayMenu as d, ListFilterMenu as f, FAVORITE_ORDER as g, DEFAULT_ORDER as h, HoverCardSurface as i, listTableFixedProps as j, RowSelectCheckbox as k, ListSearchControl as l, isTextEntryContext as m, HoverCardTrigger as n, LIST_PAGE_SIZES as o, listControlButtonClasses as p, UserHoverCard as r, ListPager as s, HoverCardRow as t, useListSearch as u, ListColumns as v, ListActionsHeader as w, ListRowActionsProvider as x, ListPage as y };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type AvatarSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
2
|
+
export type AvatarStatus = 'online' | 'offline' | 'busy' | 'away';
|
|
3
|
+
export interface AvatarProps {
|
|
4
|
+
/** Image URL; absent or failing to load shows the initials of `name`. */
|
|
5
|
+
src?: string | null | undefined;
|
|
6
|
+
name?: string | undefined;
|
|
7
|
+
size?: AvatarSize | undefined;
|
|
8
|
+
status?: AvatarStatus | undefined;
|
|
9
|
+
className?: string | undefined;
|
|
10
|
+
}
|
|
11
|
+
/** Up to two initials: the first and last word of a name split on spaces and dots. */
|
|
12
|
+
export declare function avatarInitials(name: string | undefined): string;
|
|
13
|
+
export declare function Avatar({ src, name, size, status, className, }: AvatarProps): import("react").JSX.Element;
|
|
@@ -24,5 +24,7 @@ export interface IProps {
|
|
|
24
24
|
/** Label for the toggle row hiding a category's collapsible options. */
|
|
25
25
|
collapsedLabel?: (count: number) => string;
|
|
26
26
|
portalEl?: HTMLElement;
|
|
27
|
+
/** Smaller option rows and text, for dense toolbars. */
|
|
28
|
+
compact?: boolean | undefined;
|
|
27
29
|
}
|
|
28
30
|
export default function Dropdown(props: IProps): import("react").JSX.Element;
|
|
@@ -55,6 +55,7 @@ export interface UIStrings {
|
|
|
55
55
|
create: string;
|
|
56
56
|
remove: string;
|
|
57
57
|
sort: string;
|
|
58
|
+
userAvatar: string;
|
|
58
59
|
};
|
|
59
60
|
dropdown: {
|
|
60
61
|
select: (type: string) => string;
|
|
@@ -330,6 +331,7 @@ export interface UIStrings {
|
|
|
330
331
|
years: (n: number) => string;
|
|
331
332
|
};
|
|
332
333
|
list: {
|
|
334
|
+
copyMenu: string;
|
|
333
335
|
copy: (label: string) => string;
|
|
334
336
|
copied: (label: string) => string;
|
|
335
337
|
couldntCopy: (label: string) => string;
|
package/dist/editor/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as EditorField, i as FormCodePanel, n as defineEditorThemes, o as Editor, r as getThemeName, t as setupMonacoWorkers } from "../chunks/editor-
|
|
1
|
+
import { a as EditorField, i as FormCodePanel, n as defineEditorThemes, o as Editor, r as getThemeName, t as setupMonacoWorkers } from "../chunks/editor-9_uVtUyy.js";
|
|
2
2
|
export { Editor, EditorField, FormCodePanel, defineEditorThemes, getThemeName, setupMonacoWorkers };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import { i as useNotify, l as useSlots, o as useProvisionCorsRules, u as useStrings } from "../chunks/Provider-Ghua9PkN.js";
|
|
2
|
+
import { _ as useRowMenuActive, d as assembleRowMenu, g as useRowMenu, h as useCopySubmenu, u as MoreButton } from "../chunks/PageHeader-l49p1nM9.js";
|
|
1
3
|
import { AccessIcon, AlertIcon, AngleDownIcon, AngleRightIcon, AngleUpIcon, ChevronLeftIcon, ChevronRightIcon, ClipboardIcon, CloseIcon, CloudUploadIcon, CollapseIcon, CustomizeIcon, DiskIcon, DocumentIcon, DownloadFileIcon, ExpandIcon, ExpandVerticalIcon, EyeIcon, FileIcon, FileTextIcon, FolderIcon, FolderOpenIcon, ImageIcon, LinkIcon, LockIcon, MinimizeIcon, MusicIcon, PdfIcon, RefreshIcon, ShareIcon, SpreadsheetIcon, SuccessIcon, TrashIcon, UploadIcon, UserIcon, VideoIcon, ZipIcon, ZoomInIcon, ZoomOutIcon } from "../icons.js";
|
|
2
|
-
import { c as ConfirmModal, f as Markdown, h as Callout, m as CopyToClipboard, n as CreateModal, p as CopyCodeBlock } from "../chunks/CreateModal-
|
|
3
|
-
import {
|
|
4
|
-
import { n as TOOLTIP_ID, r as TooltipInfo } from "../chunks/Tooltip-n9w7Tkt1.js";
|
|
4
|
+
import { c as ConfirmModal, f as Markdown, h as Callout, m as CopyToClipboard, n as CreateModal, p as CopyCodeBlock } from "../chunks/CreateModal-BY6DLmur.js";
|
|
5
|
+
import { n as TOOLTIP_ID, r as TooltipInfo } from "../chunks/Tooltip-Crxo_eU_.js";
|
|
5
6
|
import { t as StatusBadge } from "../chunks/StatusBadge-C1Blx_cW.js";
|
|
6
7
|
import { t as Loader } from "../chunks/Loader-BXoXTZGc.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { C as ListSkeleton, E as RowSelectCheckbox, O as listTableFixedProps, k as listTableProps, x as ListActionsHeader } from "../chunks/list-7k0eaI5N.js";
|
|
8
|
+
import { n as Table } from "../chunks/Table-4OHjdKdO.js";
|
|
9
|
+
import { E as ListSkeleton, M as listTableProps, j as listTableFixedProps, k as RowSelectCheckbox, w as ListActionsHeader } from "../chunks/list-qrojZZNv.js";
|
|
10
10
|
import cx from "classnames";
|
|
11
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
12
11
|
import { Suspense, createContext, lazy, memo, use, useCallback, useEffect, useEffectEvent, useId, useLayoutEffect, useMemo, useRef, useState, useTransition } from "react";
|
|
13
12
|
import { useLocalStorage } from "usehooks-ts";
|
|
13
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
import { createPortal } from "react-dom";
|
|
15
15
|
import { Menu, MenuButton, MenuItem, MenuItems, MenuSeparator } from "@headlessui/react";
|
|
16
16
|
import Skeleton from "react-loading-skeleton";
|
|
@@ -451,7 +451,7 @@ function FileProgressBar({ fileProgress, fileName, progressBarColorScheme, onCan
|
|
|
451
451
|
children: [/* @__PURE__ */ jsx("div", {
|
|
452
452
|
className: cx("h-full transition-all duration-300 relative flex items-center justify-center", barColor, isHovered && "opacity-80"),
|
|
453
453
|
style: { width: `${percentage}%` }
|
|
454
|
-
}), isHovered && !isCompleted && totalBytes > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
|
|
454
|
+
}), isHovered && !isCompleted && totalBytes > 0 && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
|
|
455
455
|
className: "absolute inset-0 flex items-center justify-center text-xs whitespace-nowrap p-0.5 z-10",
|
|
456
456
|
style: {
|
|
457
457
|
WebkitClipPath: `inset(0 ${100 - percentage}% 0 0)`,
|
|
@@ -625,7 +625,7 @@ function UploadSessionToast({ session, queueLength, onCancel, onCancelFile }) {
|
|
|
625
625
|
})
|
|
626
626
|
]
|
|
627
627
|
})]
|
|
628
|
-
}), isToastExpanded && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
628
|
+
}), isToastExpanded && /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
629
629
|
/* @__PURE__ */ jsxs("div", {
|
|
630
630
|
className: "flex items-center justify-between",
|
|
631
631
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
@@ -1493,7 +1493,7 @@ function PropagationStage({ status, label }) {
|
|
|
1493
1493
|
"aria-hidden": "true",
|
|
1494
1494
|
children: /* @__PURE__ */ jsx("polyline", { points: "3.5 8.5 6.5 11.5 12.5 5" })
|
|
1495
1495
|
}),
|
|
1496
|
-
status === "active" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", { className: "absolute inline-flex h-full w-full animate-ping rounded-full bg-blue-400/60" }), /* @__PURE__ */ jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-blue-500" })] }),
|
|
1496
|
+
status === "active" && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", { className: "absolute inline-flex h-full w-full animate-ping rounded-full bg-blue-400/60" }), /* @__PURE__ */ jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-blue-500" })] }),
|
|
1497
1497
|
status === "pending" && /* @__PURE__ */ jsx("span", { className: "inline-flex h-1.5 w-1.5 rounded-full theme-muted-text opacity-60" })
|
|
1498
1498
|
]
|
|
1499
1499
|
}), /* @__PURE__ */ jsx("span", {
|
|
@@ -2557,7 +2557,7 @@ function useObjectText(url, { enabled, maxBytes, maxLines, knownSize, cacheKey,
|
|
|
2557
2557
|
}
|
|
2558
2558
|
//#endregion
|
|
2559
2559
|
//#region src/file-explorer/FilePreview/Viewer.tsx
|
|
2560
|
-
var CodePreviewEditor = lazy(() => import("../chunks/CodePreviewEditor-
|
|
2560
|
+
var CodePreviewEditor = lazy(() => import("../chunks/CodePreviewEditor-4lx3kE-w.js"));
|
|
2561
2561
|
var PREVIEW_MARKDOWN_CONTROLS = {
|
|
2562
2562
|
table: { fullscreen: false },
|
|
2563
2563
|
mermaid: { fullscreen: false }
|
|
@@ -2998,7 +2998,7 @@ function PreviewFetchState({ loading, tooLarge, error, corsError, storage, onCor
|
|
|
2998
2998
|
});
|
|
2999
2999
|
if (tooLarge) return /* @__PURE__ */ jsx(TooLargeInline, { onDownload });
|
|
3000
3000
|
if (error) return /* @__PURE__ */ jsx(PreviewError, { onDownload });
|
|
3001
|
-
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
3001
|
+
return /* @__PURE__ */ jsx(Fragment$1, { children });
|
|
3002
3002
|
}
|
|
3003
3003
|
function NotPreviewable({ icon, title, message, onDownload }) {
|
|
3004
3004
|
const t = useStrings().fileExplorer;
|
|
@@ -3247,7 +3247,7 @@ function FilePreview({ open, node, siblings, storage, getPresignedUrl, onNavigat
|
|
|
3247
3247
|
onClick: (e) => {
|
|
3248
3248
|
if (e.target === e.currentTarget) onClose();
|
|
3249
3249
|
},
|
|
3250
|
-
children: [isOverlay && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(EdgeButton, {
|
|
3250
|
+
children: [isOverlay && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(EdgeButton, {
|
|
3251
3251
|
side: "left",
|
|
3252
3252
|
label: t.preview.previousFile,
|
|
3253
3253
|
disabled: !hasPrev,
|
|
@@ -3592,7 +3592,7 @@ function FileRowsWindow({ items, padTop, padBottom, nodes, checkedItems, activeI
|
|
|
3592
3592
|
const storageIconAlt = useStrings().fileExplorer.chrome.storageIconAlt;
|
|
3593
3593
|
useNestedScrollerWarning(scrollEl, nodes.length);
|
|
3594
3594
|
useRowPitchAudit(scrollEl, nodes, items);
|
|
3595
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3595
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
3596
3596
|
padTop > 0 && /* @__PURE__ */ jsx(Spacer, { height: padTop }, "pad-top"),
|
|
3597
3597
|
items.map((item) => {
|
|
3598
3598
|
const node = nodes[item.index];
|
|
@@ -3625,7 +3625,7 @@ function FileRowsWindow({ items, padTop, padBottom, nodes, checkedItems, activeI
|
|
|
3625
3625
|
] });
|
|
3626
3626
|
}
|
|
3627
3627
|
function Spacer({ height }) {
|
|
3628
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("tr", {
|
|
3628
|
+
return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("tr", {
|
|
3629
3629
|
"aria-hidden": "true",
|
|
3630
3630
|
className: "border-0",
|
|
3631
3631
|
children: /* @__PURE__ */ jsx("td", {
|
|
@@ -3658,7 +3658,7 @@ function useRowPitchAudit(scrollEl, nodes, items) {
|
|
|
3658
3658
|
* would land in `<tbody>`, since Children.toArray only flattens arrays. */
|
|
3659
3659
|
function FileTableHeaders({ allSelected, someSelected, onSelectAll }) {
|
|
3660
3660
|
const t = useStrings().fileExplorer;
|
|
3661
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3661
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
3662
3662
|
/* @__PURE__ */ jsx(Table.Header, {
|
|
3663
3663
|
caps: false,
|
|
3664
3664
|
className: "py-2",
|
|
@@ -4100,7 +4100,7 @@ function indentStyle(depth, isDirectory) {
|
|
|
4100
4100
|
}
|
|
4101
4101
|
function IndentGuides({ depth }) {
|
|
4102
4102
|
if (depth === 0) return null;
|
|
4103
|
-
return /* @__PURE__ */ jsx(Fragment, { children: Array.from({ length: depth }, (_, level) => /* @__PURE__ */ jsx("span", {
|
|
4103
|
+
return /* @__PURE__ */ jsx(Fragment$1, { children: Array.from({ length: depth }, (_, level) => /* @__PURE__ */ jsx("span", {
|
|
4104
4104
|
"aria-hidden": "true",
|
|
4105
4105
|
className: "pointer-events-none absolute inset-y-0 w-px bg-(--theme-border)/60",
|
|
4106
4106
|
style: { left: GUIDE_OFFSET + level * INDENT_PER_LEVEL }
|
|
@@ -4112,7 +4112,7 @@ function RowIcons({ isDirectory, isExpanded, customIcon }) {
|
|
|
4112
4112
|
children: customIcon
|
|
4113
4113
|
});
|
|
4114
4114
|
const folder = isExpanded ? /* @__PURE__ */ jsx(FolderOpenIcon, { className: "h-4 w-4 mr-1 text-sky-500" }) : /* @__PURE__ */ jsx(FolderIcon, { className: "h-4 w-4 mr-1 text-sky-500/80" });
|
|
4115
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(AngleRightIcon, { className: cx("h-3.5 w-3.5 shrink-0 theme-muted-text transition-transform duration-150", isExpanded && "rotate-90") }), customIcon ?? folder] });
|
|
4115
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(AngleRightIcon, { className: cx("h-3.5 w-3.5 shrink-0 theme-muted-text transition-transform duration-150", isExpanded && "rotate-90") }), customIcon ?? folder] });
|
|
4116
4116
|
}
|
|
4117
4117
|
/** Sized by the slot, not by its contents: react-loading-skeleton wraps each bar
|
|
4118
4118
|
* in an inline span, so a bar occupies a line box taller than its `height` and
|
|
@@ -4364,6 +4364,7 @@ function TreeFrame({ treeOnly, sidebarWidth, onWidthChange, children }) {
|
|
|
4364
4364
|
});
|
|
4365
4365
|
}
|
|
4366
4366
|
function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHierarchy = false, groups = [], groupsLoading = false, selectedPath, onPathChange, getProviderAndClient, treeOnly = false, initialExpandedPaths, onExpandedPathsChange }) {
|
|
4367
|
+
const copySubmenu = useCopySubmenu();
|
|
4367
4368
|
const t = useStrings().fileExplorer;
|
|
4368
4369
|
const notify = useNotify();
|
|
4369
4370
|
const slots = useSlots();
|
|
@@ -5228,7 +5229,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
|
|
|
5228
5229
|
selectedStorage: null,
|
|
5229
5230
|
onRefresh: handleRefresh
|
|
5230
5231
|
})]
|
|
5231
|
-
}) : !selectedNode ? /* @__PURE__ */ jsx(NoFileSelectedPreview, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5232
|
+
}) : !selectedNode ? /* @__PURE__ */ jsx(NoFileSelectedPreview, {}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
5232
5233
|
/* @__PURE__ */ jsxs("div", {
|
|
5233
5234
|
className: "flex items-center justify-between gap-3 px-4 h-12 shrink-0 border-b theme-border",
|
|
5234
5235
|
children: [renderBreadcrumb(), /* @__PURE__ */ jsxs("div", {
|
|
@@ -5320,7 +5321,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
|
|
|
5320
5321
|
className: "text-sm rounded-sm hover:theme-hover cursor-pointer w-full items-center px-2 py-1.5",
|
|
5321
5322
|
onClick: handleDownload,
|
|
5322
5323
|
children: "From browser"
|
|
5323
|
-
}) }), selectedNodeSupportsPwUri && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(MenuSeparator, { className: "my-0.5 h-px theme-border" }), /* @__PURE__ */ jsx(MenuItem, { children: /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
|
|
5324
|
+
}) }), selectedNodeSupportsPwUri && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(MenuSeparator, { className: "my-0.5 h-px theme-border" }), /* @__PURE__ */ jsx(MenuItem, { children: /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
|
|
5324
5325
|
className: "text-sm w-full text-center pointer-events-none px-2 py-1.5",
|
|
5325
5326
|
children: "Using PW CLI"
|
|
5326
5327
|
}), (() => {
|
|
@@ -5456,7 +5457,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
|
|
|
5456
5457
|
className: "tabular-nums",
|
|
5457
5458
|
children: formatFileSize(selectedNode.size)
|
|
5458
5459
|
}),
|
|
5459
|
-
modifiedDt && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
|
|
5460
|
+
modifiedDt && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
5460
5461
|
"aria-hidden": true,
|
|
5461
5462
|
children: "·"
|
|
5462
5463
|
}), /* @__PURE__ */ jsxs("span", { children: ["Modified ", modifiedDt.toRelative()] })] })
|
|
@@ -5486,21 +5487,21 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
|
|
|
5486
5487
|
}), /* @__PURE__ */ jsxs("dl", {
|
|
5487
5488
|
className: "grid grid-cols-[minmax(0,140px)_1fr] gap-x-6 gap-y-2 text-sm",
|
|
5488
5489
|
children: [
|
|
5489
|
-
typeof selectedNode.size === "number" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5490
|
+
typeof selectedNode.size === "number" && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5490
5491
|
className: "theme-muted-text",
|
|
5491
5492
|
children: t.chrome.size
|
|
5492
5493
|
}), /* @__PURE__ */ jsx("dd", {
|
|
5493
5494
|
className: "tabular-nums",
|
|
5494
5495
|
children: formatFileSize(selectedNode.size)
|
|
5495
5496
|
})] }),
|
|
5496
|
-
selectedNode.contentType && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5497
|
+
selectedNode.contentType && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5497
5498
|
className: "theme-muted-text",
|
|
5498
5499
|
children: "Content Type"
|
|
5499
5500
|
}), /* @__PURE__ */ jsx("dd", {
|
|
5500
5501
|
className: "font-mono text-xs",
|
|
5501
5502
|
children: selectedNode.contentType
|
|
5502
5503
|
})] }),
|
|
5503
|
-
createdDt && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5504
|
+
createdDt && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5504
5505
|
className: "theme-muted-text",
|
|
5505
5506
|
children: t.chrome.created
|
|
5506
5507
|
}), /* @__PURE__ */ jsxs("dd", { children: [
|
|
@@ -5511,7 +5512,7 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
|
|
|
5511
5512
|
children: ["· ", createdDt.toRelative()]
|
|
5512
5513
|
})
|
|
5513
5514
|
] })] }),
|
|
5514
|
-
modifiedDt && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5515
|
+
modifiedDt && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5515
5516
|
className: "theme-muted-text",
|
|
5516
5517
|
children: "Last Modified"
|
|
5517
5518
|
}), /* @__PURE__ */ jsxs("dd", { children: [
|
|
@@ -5522,14 +5523,14 @@ function FileExplorer({ storages, onRefresh, refreshKey, onOpenFile, showUserHie
|
|
|
5522
5523
|
children: ["· ", modifiedDt.toRelative()]
|
|
5523
5524
|
})
|
|
5524
5525
|
] })] }),
|
|
5525
|
-
selectedNode.hash && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5526
|
+
selectedNode.hash && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5526
5527
|
className: "theme-muted-text",
|
|
5527
5528
|
children: t.chrome.hash
|
|
5528
5529
|
}), /* @__PURE__ */ jsx("dd", {
|
|
5529
5530
|
className: "font-mono text-xs break-all",
|
|
5530
5531
|
children: selectedNode.hash.replace(/^"|"$/g, "")
|
|
5531
5532
|
})] }),
|
|
5532
|
-
selectedNode.storageClass && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5533
|
+
selectedNode.storageClass && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("dt", {
|
|
5533
5534
|
className: "theme-muted-text",
|
|
5534
5535
|
children: "Storage Class"
|
|
5535
5536
|
}), /* @__PURE__ */ jsx("dd", {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
+
import type { Optional } from './types/workflow-schema.js';
|
|
2
3
|
export interface FieldLabelBinding {
|
|
3
4
|
id: string;
|
|
4
5
|
labelId: string;
|
|
@@ -10,6 +11,6 @@ export declare function FieldWrapper({ label, tooltipComponent, description, lab
|
|
|
10
11
|
description?: string | undefined;
|
|
11
12
|
labelPosition?: 'left' | 'top' | undefined;
|
|
12
13
|
spaceCompact?: boolean | undefined;
|
|
13
|
-
optional?:
|
|
14
|
+
optional?: Optional | undefined;
|
|
14
15
|
children: React.ReactNode | ((binding: FieldLabelBinding) => React.ReactNode);
|
|
15
16
|
}): React.JSX.Element;
|
package/dist/form/Form.d.ts
CHANGED
|
@@ -105,6 +105,8 @@ export interface DynamicFormProps {
|
|
|
105
105
|
missingFields?: string[] | undefined;
|
|
106
106
|
spaceCompact?: boolean;
|
|
107
107
|
organizationVariables?: WorkflowVariables | undefined;
|
|
108
|
+
/** A remote workflow's repo/branch/yaml, so `${{ remote.* }}` resolves the same here as it does on the run. */
|
|
109
|
+
remoteVars?: Record<string, string | undefined> | undefined;
|
|
108
110
|
needsOrganizationVariables?: boolean;
|
|
109
111
|
onSubmit?: ((values: Record<string, unknown>) => void) | undefined;
|
|
110
112
|
submitLabel?: string;
|
|
@@ -120,5 +122,5 @@ export interface DynamicFormProps {
|
|
|
120
122
|
/** Host-supplied field components, merged over the core registry by type. */
|
|
121
123
|
fields?: Record<string, FieldComponent>;
|
|
122
124
|
}
|
|
123
|
-
export declare function DynamicForm({ formJSONs: options, reinitialize, initialValues, setValues, setFormDirty, formikRef, labelPosition, missingFields, spaceCompact, organizationVariables, needsOrganizationVariables, onSubmit, submitLabel, className, workflowForm, contextKey, skipValueParse, fields, }: DynamicFormProps): React.JSX.Element;
|
|
125
|
+
export declare function DynamicForm({ formJSONs: options, reinitialize, initialValues, setValues, setFormDirty, formikRef, labelPosition, missingFields, spaceCompact, organizationVariables, remoteVars, needsOrganizationVariables, onSubmit, submitLabel, className, workflowForm, contextKey, skipValueParse, fields, }: DynamicFormProps): React.JSX.Element;
|
|
124
126
|
export {};
|