@parallelworks/ui 0.50.0 → 0.52.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/README.md +204 -18
- package/dist/ai/agent/toolStrings.d.ts +2 -0
- package/dist/ai/agent/toolStrings.js +20 -18
- package/dist/ai/ai.css +12 -0
- package/dist/ai/components/AllocationSelector.js +5 -1
- package/dist/ai/components/AttachmentManager.js +51 -42
- package/dist/ai/components/AttachmentUpload.d.ts +4 -2
- package/dist/ai/components/AttachmentUpload.js +9 -9
- package/dist/ai/components/BlockedGroupBanner.js +8 -14
- package/dist/ai/components/BranchNavigator.js +11 -12
- package/dist/ai/components/ChatEmptyState.js +12 -19
- package/dist/ai/components/ChatInput.d.ts +4 -3
- package/dist/ai/components/ChatInput.js +27 -13
- package/dist/ai/components/ChatMessage.js +45 -121
- package/dist/ai/components/ChatMessageList.d.ts +5 -2
- package/dist/ai/components/ChatMessageList.js +89 -51
- package/dist/ai/components/ChatSidebar.js +11 -7
- package/dist/ai/components/ChatThread.js +1 -13
- package/dist/ai/components/DragOverlay.js +3 -3
- package/dist/ai/components/MessageAttachments.d.ts +10 -0
- package/dist/ai/components/MessageAttachments.js +78 -0
- package/dist/ai/components/ModelSelector.js +4 -4
- package/dist/ai/components/PastedText.js +2 -2
- package/dist/ai/components/ProviderIssueBanner.js +19 -23
- package/dist/ai/components/ShareDialog.js +2 -2
- package/dist/ai/components/agent/ActivityLine.d.ts +0 -2
- package/dist/ai/components/agent/ActivityLine.js +8 -51
- package/dist/ai/components/agent/AgentMessageParts.js +117 -56
- package/dist/ai/core/ChatProvider.d.ts +16 -5
- package/dist/ai/core/ChatProvider.js +41 -8
- package/dist/ai/core/config.js +4 -3
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.js +3 -3
- package/dist/ai/strings.d.ts +29 -3
- package/dist/ai/strings.js +81 -26
- package/dist/ai/types.d.ts +4 -0
- package/dist/ai/ui/Notice.d.ts +2 -2
- package/dist/ai/ui/Notice.js +29 -62
- package/dist/ai/ui/sidebar.d.ts +5 -3
- package/dist/ai/ui/sidebar.js +21 -9
- package/dist/components/ActionMenu.d.ts +1 -0
- package/dist/components/ActionMenu.js +6 -1
- package/dist/components/AppLink.d.ts +26 -0
- package/dist/components/AppLink.js +51 -0
- package/dist/components/Avatar.d.ts +2 -1
- package/dist/components/Avatar.js +4 -2
- package/dist/components/Button.d.ts +15 -5
- package/dist/components/Button.js +47 -40
- package/dist/components/Callout.d.ts +31 -7
- package/dist/components/Callout.js +51 -24
- package/dist/components/Card.d.ts +11 -6
- package/dist/components/Card.js +14 -8
- package/dist/components/Checkbox.js +2 -1
- package/dist/components/ColorInput.js +5 -3
- package/dist/components/Combobox.js +49 -19
- package/dist/components/ConfirmModal.d.ts +19 -8
- package/dist/components/ConfirmModal.js +31 -53
- package/dist/components/CopyButton.d.ts +38 -0
- package/dist/components/CopyButton.js +68 -0
- package/dist/components/CreateModal.js +118 -111
- package/dist/components/DatePicker.js +12 -8
- package/dist/components/DescriptionList.d.ts +51 -17
- package/dist/components/DescriptionList.js +117 -31
- package/dist/components/Disclosure.js +1 -1
- package/dist/components/Drawer.js +10 -16
- package/dist/components/Field.d.ts +15 -5
- package/dist/components/Field.js +41 -9
- package/dist/components/IconButton.d.ts +14 -5
- package/dist/components/IconButton.js +25 -14
- package/dist/components/InfoTip.d.ts +4 -1
- package/dist/components/InfoTip.js +2 -1
- package/dist/components/Input.d.ts +14 -8
- package/dist/components/Input.js +46 -31
- package/dist/components/Loader.js +1 -1
- package/dist/components/MenuEntries.d.ts +43 -12
- package/dist/components/MenuEntries.js +34 -19
- package/dist/components/Meter.js +5 -4
- package/dist/components/Modal.d.ts +28 -4
- package/dist/components/Modal.js +37 -14
- package/dist/components/Overview.d.ts +20 -12
- package/dist/components/Overview.js +14 -9
- package/dist/components/PageHeader.d.ts +47 -65
- package/dist/components/PageHeader.js +275 -153
- package/dist/components/PageHeaderAction.d.ts +67 -0
- package/dist/components/PageHeaderAction.js +107 -0
- package/dist/components/Pagination.js +6 -16
- package/dist/components/Popover.js +3 -2
- package/dist/components/Provider.d.ts +79 -19
- package/dist/components/Provider.js +140 -130
- package/dist/components/Radio.js +2 -1
- package/dist/components/RefreshButton.js +7 -8
- package/dist/components/RequiredMark.js +1 -1
- package/dist/components/RunStatusIcon.js +2 -2
- package/dist/components/Section.js +1 -1
- package/dist/components/Select.d.ts +4 -9
- package/dist/components/Select.js +24 -11
- package/dist/components/SettingModeOption.d.ts +1 -1
- package/dist/components/SettingModeOption.js +7 -1
- package/dist/components/SettingsCard.d.ts +5 -3
- package/dist/components/SettingsCard.js +27 -20
- package/dist/components/Slider.js +1 -1
- package/dist/components/StatusBadge.js +2 -2
- package/dist/components/StatusIcons.js +2 -2
- package/dist/components/Switch.js +5 -4
- package/dist/components/Table.d.ts +30 -20
- package/dist/components/Table.js +50 -73
- package/dist/components/Tabs.d.ts +3 -7
- package/dist/components/Tabs.js +6 -10
- package/dist/components/ThemeEditor.js +24 -14
- package/dist/components/Toast.d.ts +11 -3
- package/dist/components/Toast.js +47 -22
- package/dist/components/buttonClasses.js +2 -2
- package/dist/components/comboboxItems.d.ts +4 -0
- package/dist/components/comboboxItems.js +6 -1
- package/dist/components/dismiss.d.ts +12 -0
- package/dist/components/dismiss.js +19 -0
- package/dist/components/fieldBox.d.ts +4 -0
- package/dist/components/fieldBox.js +7 -3
- package/dist/components/floating.d.ts +3 -3
- package/dist/components/floating.js +1 -1
- package/dist/components/markdownCodeBreaks.js +3 -4
- package/dist/components/pageHeaderStore.d.ts +41 -0
- package/dist/components/pageHeaderStore.js +67 -0
- package/dist/components/pathBreaks.d.ts +8 -0
- package/dist/components/pathBreaks.js +28 -0
- package/dist/components/segmented.js +1 -1
- package/dist/components/shortcutKey.d.ts +2 -1
- package/dist/components/shortcutKey.js +19 -2
- package/dist/components/splitter.js +1 -1
- package/dist/components/tone.d.ts +5 -2
- package/dist/components/tone.js +15 -6
- package/dist/components/useCssIsDark.js +40 -18
- package/dist/components/useTheme.js +9 -10
- package/dist/dev.d.ts +9 -0
- package/dist/dev.js +14 -0
- package/dist/editor/Editor.d.ts +3 -2
- package/dist/editor/Editor.js +11 -2
- package/dist/editor/EditorField.d.ts +2 -1
- package/dist/editor/EditorField.js +11 -29
- package/dist/editor/FormCodePanel.d.ts +7 -3
- package/dist/editor/FormCodePanel.js +14 -7
- package/dist/editor/Monaco.d.ts +14 -5
- package/dist/editor/Monaco.js +163 -112
- package/dist/editor/index.d.ts +5 -5
- package/dist/editor/index.js +3 -3
- package/dist/editor/themes.d.ts +8 -5
- package/dist/editor/themes.js +58 -30
- package/dist/editor/yaml.d.ts +6 -2
- package/dist/editor/yaml.js +11 -2
- package/dist/file-explorer/FileExplorer.js +143 -124
- package/dist/file-explorer/FileExplorerContext.js +1 -1
- package/dist/file-explorer/FilePreview/StreamedBadge.js +3 -1
- package/dist/file-explorer/FilePreview/Viewer.js +2 -2
- package/dist/file-explorer/FilePreview/index.js +4 -4
- package/dist/file-explorer/FileRow.js +1 -1
- package/dist/file-explorer/FileRowsWindow.js +34 -3
- package/dist/file-explorer/FileTable.js +3 -1
- package/dist/file-explorer/TreeView.js +37 -14
- package/dist/file-explorer/helpers.d.ts +2 -1
- package/dist/file-explorer/helpers.js +21 -20
- package/dist/file-explorer/toasts.js +27 -19
- package/dist/file-explorer/treeRows.d.ts +6 -0
- package/dist/file-explorer/treeRows.js +19 -1
- package/dist/file-explorer/useNearEnd.js +3 -6
- package/dist/form/Fields/CheckboxGroupField.js +12 -5
- package/dist/form/Fields/DurationField.js +1 -1
- package/dist/form/Fields/LabelField.js +1 -1
- package/dist/form/Fields/ObjectField.d.ts +1 -1
- package/dist/form/Fields/ObjectField.js +3 -2
- package/dist/form/Fields/StringField.js +16 -29
- package/dist/form/Fields/TextAreaField.js +3 -4
- package/dist/form/Form.js +3 -8
- package/dist/form/Wizard/WizardNavigation.js +1 -4
- package/dist/form/Wizard/WizardStepIndicator.js +1 -1
- package/dist/form/Wizard/utils.js +1 -1
- package/dist/form/fieldFrame.d.ts +1 -1
- package/dist/form/fieldFrame.js +2 -2
- package/dist/form/types/fieldComponentTypes.d.ts +2 -1
- package/dist/graph/AnnotationBanner.d.ts +1 -2
- package/dist/graph/AnnotationBanner.js +30 -32
- package/dist/graph/Connectors.js +4 -1
- package/dist/graph/DependencyGraph.js +2 -2
- package/dist/graph/GraphEditor.js +12 -10
- package/dist/graph/GraphEditorDialogs.js +2 -2
- package/dist/graph/GraphNode.js +7 -4
- package/dist/graph/InputDialog.js +1 -1
- package/dist/graph/InputsEditor.js +14 -11
- package/dist/graph/MatrixGroup.js +9 -3
- package/dist/graph/ProblemsButton.js +2 -2
- package/dist/graph/Reveal.js +18 -10
- package/dist/graph/ShortcutsButton.d.ts +11 -2
- package/dist/graph/ShortcutsButton.js +15 -4
- package/dist/graph/TreeView.js +35 -18
- package/dist/graph/WorkflowSettingsDialog.js +1 -1
- package/dist/graph/editorChrome.js +1 -1
- package/dist/graph/editorFields.js +1 -1
- package/dist/graph/editorRows.js +16 -10
- package/dist/graph/editorStrings.d.ts +7 -0
- package/dist/graph/editorStrings.js +8 -1
- package/dist/graph/fieldProblems.js +1 -1
- package/dist/graph/inputRefs.js +1 -1
- package/dist/graph/settingsViews.js +11 -18
- package/dist/graph/stepWith.js +2 -2
- package/dist/icons.d.ts +2 -0
- package/dist/icons.js +4 -2
- package/dist/index.d.ts +12 -12
- package/dist/index.js +16 -16
- package/dist/list/ActionToolbar.d.ts +44 -8
- package/dist/list/ActionToolbar.js +301 -102
- package/dist/list/ListPage.d.ts +15 -23
- package/dist/list/ListPage.js +46 -45
- package/dist/list/ListTable.d.ts +32 -7
- package/dist/list/ListTable.js +48 -12
- package/dist/list/ListViewControls.js +2 -2
- package/dist/list/UserHoverCard.js +7 -15
- package/dist/list/index.d.ts +2 -2
- package/dist/list/index.js +2 -2
- package/dist/list/listSearch.js +12 -10
- package/dist/list/listView.d.ts +10 -1
- package/dist/list/listView.js +15 -1
- package/dist/list/rowMenu.d.ts +2 -2
- package/dist/logviewer/LogViewer.d.ts +4 -2
- package/dist/logviewer/LogViewer.js +88 -70
- package/dist/logviewer/logviewer.css +3 -2
- package/dist/reducedMotion.d.ts +5 -0
- package/dist/reducedMotion.js +20 -0
- package/dist/safeUrl.d.ts +1 -1
- package/dist/safeUrl.js +4 -2
- package/dist/styles/theme.css +24 -10
- package/dist/styles.css +1 -1
- package/dist/theme/derive.d.ts +1 -1
- package/dist/theme/derive.js +46 -21
- package/dist/theme/fit.js +10 -4
- package/package.json +1 -1
- package/dist/components/Breadcrumbs.d.ts +0 -37
- package/dist/components/Breadcrumbs.js +0 -90
- package/dist/components/CopyToClipboard.d.ts +0 -17
- package/dist/components/CopyToClipboard.js +0 -66
- package/dist/components/Sort.d.ts +0 -9
- package/dist/components/Sort.js +0 -42
package/dist/graph/Reveal.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useReducedMotion } from "../reducedMotion.js";
|
|
1
2
|
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
import { useLayoutEffect, useRef, useState } from "react";
|
|
3
4
|
//#region src/graph/Reveal.tsx
|
|
@@ -11,12 +12,26 @@ function Reveal({ open, children, growWidth = false, onSettled }) {
|
|
|
11
12
|
const [clipped, setClipped] = useState(!open);
|
|
12
13
|
const [toggling, setToggling] = useState(false);
|
|
13
14
|
const [renderChildren, setRenderChildren] = useState(open);
|
|
15
|
+
const still = useReducedMotion();
|
|
14
16
|
if (open && !renderChildren) setRenderChildren(true);
|
|
15
17
|
if (prevOpen !== open) {
|
|
16
18
|
setPrevOpen(open);
|
|
17
19
|
setToggling(true);
|
|
18
20
|
setClipped(true);
|
|
19
21
|
}
|
|
22
|
+
const settle = () => {
|
|
23
|
+
setToggling(false);
|
|
24
|
+
setClipped(!open);
|
|
25
|
+
if (!open) setRenderChildren(false);
|
|
26
|
+
onSettled?.();
|
|
27
|
+
};
|
|
28
|
+
useLayoutEffect(() => {
|
|
29
|
+
if (still && toggling) settle();
|
|
30
|
+
}, [
|
|
31
|
+
still,
|
|
32
|
+
toggling,
|
|
33
|
+
open
|
|
34
|
+
]);
|
|
20
35
|
useLayoutEffect(() => {
|
|
21
36
|
if (!growWidth || !renderChildren) return;
|
|
22
37
|
const el = contentRef.current;
|
|
@@ -32,18 +47,11 @@ function Reveal({ open, children, growWidth = false, onSettled }) {
|
|
|
32
47
|
style: {
|
|
33
48
|
gridTemplateRows: open ? "1fr" : "0fr",
|
|
34
49
|
overflow: clipped ? "hidden" : "visible",
|
|
35
|
-
...growWidth ? {
|
|
36
|
-
|
|
37
|
-
transition: toggling ? FULL_TRANSITION : ROWS_TRANSITION
|
|
38
|
-
} : { transition: ROWS_TRANSITION }
|
|
50
|
+
...growWidth ? { width: open ? width : 0 } : {},
|
|
51
|
+
transition: still ? "none" : growWidth && toggling ? FULL_TRANSITION : ROWS_TRANSITION
|
|
39
52
|
},
|
|
40
53
|
onTransitionEnd: (e) => {
|
|
41
|
-
if (e.target === e.currentTarget && e.propertyName === "grid-template-rows")
|
|
42
|
-
setToggling(false);
|
|
43
|
-
setClipped(!open);
|
|
44
|
-
if (!open) setRenderChildren(false);
|
|
45
|
-
onSettled?.();
|
|
46
|
-
}
|
|
54
|
+
if (e.target === e.currentTarget && e.propertyName === "grid-template-rows") settle();
|
|
47
55
|
},
|
|
48
56
|
children: /* @__PURE__ */ jsx("div", {
|
|
49
57
|
ref: contentRef,
|
|
@@ -7,8 +7,17 @@ export interface ShortcutGroup {
|
|
|
7
7
|
title: string;
|
|
8
8
|
shortcuts: Shortcut[];
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
export declare const
|
|
10
|
+
/** Whether the keyboard is an Apple one, whose Command key does what Control does elsewhere. */
|
|
11
|
+
export declare const IS_MAC: boolean;
|
|
12
|
+
/** Copy, paste and undo take Command on a Mac and Control elsewhere, as the handlers do. A Mac
|
|
13
|
+
* shows its symbols; elsewhere the keys go by the names their keycaps carry in the strings. */
|
|
14
|
+
export declare function modifierKeys(key: {
|
|
15
|
+
ctrl: string;
|
|
16
|
+
alt: string;
|
|
17
|
+
}): {
|
|
18
|
+
mod: string;
|
|
19
|
+
alt: string;
|
|
20
|
+
};
|
|
12
21
|
/** A toolbar button that opens the list of gestures and keys a pane takes. */
|
|
13
22
|
export declare function ShortcutsButton({ groups }: {
|
|
14
23
|
groups: ShortcutGroup[];
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
import { KeyboardIcon } from "../icons.js";
|
|
2
|
-
import { Popover } from "../components/Popover.js";
|
|
3
2
|
import { IconButton } from "../components/IconButton.js";
|
|
3
|
+
import { Popover } from "../components/Popover.js";
|
|
4
4
|
import { useGraphEditorStrings } from "./editorStrings.js";
|
|
5
5
|
import { toolbarPanel } from "./toolbarPanel.js";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { Fragment as Fragment$1 } from "react";
|
|
8
8
|
//#region src/graph/ShortcutsButton.tsx
|
|
9
|
-
|
|
10
|
-
var
|
|
9
|
+
/** Whether the keyboard is an Apple one, whose Command key does what Control does elsewhere. */
|
|
10
|
+
var IS_MAC = typeof navigator !== "undefined" && /Mac|iPhone|iPad/.test(navigator.platform);
|
|
11
|
+
/** Copy, paste and undo take Command on a Mac and Control elsewhere, as the handlers do. A Mac
|
|
12
|
+
* shows its symbols; elsewhere the keys go by the names their keycaps carry in the strings. */
|
|
13
|
+
function modifierKeys(key) {
|
|
14
|
+
return IS_MAC ? {
|
|
15
|
+
mod: "⌘",
|
|
16
|
+
alt: "⌥"
|
|
17
|
+
} : {
|
|
18
|
+
mod: key.ctrl,
|
|
19
|
+
alt: key.alt
|
|
20
|
+
};
|
|
21
|
+
}
|
|
11
22
|
/** A toolbar button that opens the list of gestures and keys a pane takes. */
|
|
12
23
|
function ShortcutsButton({ groups }) {
|
|
13
24
|
const t = useGraphEditorStrings();
|
|
@@ -45,4 +56,4 @@ function ShortcutsButton({ groups }) {
|
|
|
45
56
|
});
|
|
46
57
|
}
|
|
47
58
|
//#endregion
|
|
48
|
-
export {
|
|
59
|
+
export { IS_MAC, ShortcutsButton, modifierKeys };
|
package/dist/graph/TreeView.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { cx } from "../cx.js";
|
|
2
2
|
import { ChevronRightIcon } from "../icons.js";
|
|
3
|
-
import { EmptyState } from "../components/EmptyState.js";
|
|
4
3
|
import { Loader } from "../components/Loader.js";
|
|
5
4
|
import { useRunFile, useSlots, useStrings, useWorkflowEngine } from "../components/Provider.js";
|
|
5
|
+
import { EmptyState } from "../components/EmptyState.js";
|
|
6
|
+
import { Button } from "../components/Button.js";
|
|
6
7
|
import { DisclosurePanel } from "../components/Disclosure.js";
|
|
7
8
|
import { Elapsed } from "../components/relativeTime.js";
|
|
8
9
|
import { RunStatusIcon } from "../components/RunStatusIcon.js";
|
|
@@ -13,13 +14,14 @@ import { useCallback, useId, useMemo, useState } from "react";
|
|
|
13
14
|
//#region src/graph/TreeView.tsx
|
|
14
15
|
function Chevron({ open, hidden = false }) {
|
|
15
16
|
return /* @__PURE__ */ jsx("div", {
|
|
16
|
-
className: cx("flex-shrink-0 transition-transform duration-150", open && "rotate-90", hidden ? "invisible" : "text-[var(--theme-muted-text-color)]"),
|
|
17
|
+
className: cx("flex-shrink-0 transition-transform duration-150 motion-reduce:transition-none", open && "rotate-90", hidden ? "invisible" : "text-[var(--theme-muted-text-color)]"),
|
|
17
18
|
children: /* @__PURE__ */ jsx(ChevronRightIcon, { className: cx("w-4 h-4", open && "text-[var(--theme-accent)]") })
|
|
18
19
|
});
|
|
19
20
|
}
|
|
20
|
-
function StepLogs({ slug, prefix, jobName, stepIndex }) {
|
|
21
|
-
const
|
|
22
|
-
const
|
|
21
|
+
function StepLogs({ slug, prefix, jobName, stepIndex, status }) {
|
|
22
|
+
const engine = useWorkflowEngine();
|
|
23
|
+
const logPath = engine.stepLogPath(prefix, jobName, stepIndex);
|
|
24
|
+
const { data: logs, isLoading, error } = useRunFile(slug, logPath, { refreshInterval: engine.isRunActive(status) ? 2e3 : 0 });
|
|
23
25
|
const { dag: t } = useStrings();
|
|
24
26
|
if (isLoading && !logs) return /* @__PURE__ */ jsx("div", {
|
|
25
27
|
className: "px-5 py-4",
|
|
@@ -50,13 +52,15 @@ function JobRow({ jobName, job, isExpanded, onToggle, prefix, state }) {
|
|
|
50
52
|
const dependencies = Array.isArray(job.needs) ? job.needs : [];
|
|
51
53
|
const panelId = useId();
|
|
52
54
|
const { dag: t } = useStrings();
|
|
55
|
+
const skipped = job.status === "skipped" || job.status === "skipped-failed";
|
|
53
56
|
return /* @__PURE__ */ jsxs("div", {
|
|
54
57
|
className: "border-b border-[var(--theme-border)] last:border-b-0",
|
|
55
58
|
children: [/* @__PURE__ */ jsxs("button", {
|
|
56
59
|
type: "button",
|
|
57
|
-
"aria-expanded": isExpanded,
|
|
60
|
+
"aria-expanded": skipped ? void 0 : isExpanded,
|
|
58
61
|
"aria-controls": hasSteps ? panelId : void 0,
|
|
59
|
-
|
|
62
|
+
"aria-disabled": skipped || void 0,
|
|
63
|
+
className: cx("flex items-center gap-3 px-5 py-3 transition-colors w-full text-left", skipped ? "cursor-default" : "cursor-pointer", isExpanded && "bg-[var(--theme-panel-bg)]"),
|
|
60
64
|
onClick: onToggle,
|
|
61
65
|
children: [
|
|
62
66
|
/* @__PURE__ */ jsx(Chevron, {
|
|
@@ -114,6 +118,7 @@ function StepRow({ step, index, isExpanded, onToggle, prefix, jobName, state })
|
|
|
114
118
|
const label = engine.stepLabel(step, index);
|
|
115
119
|
const subworkflow = step.subworkflow;
|
|
116
120
|
const panelId = useId();
|
|
121
|
+
const subworkflowPanelId = useId();
|
|
117
122
|
const { dag: t } = useStrings();
|
|
118
123
|
const subworkflowJobs = subworkflow?.jobs ?? {};
|
|
119
124
|
const subworkflowJobNames = Object.keys(subworkflowJobs).filter((name) => subworkflowJobs[name]?.if !== false);
|
|
@@ -122,7 +127,7 @@ function StepRow({ step, index, isExpanded, onToggle, prefix, jobName, state })
|
|
|
122
127
|
/* @__PURE__ */ jsxs("button", {
|
|
123
128
|
type: "button",
|
|
124
129
|
"aria-expanded": isExpanded,
|
|
125
|
-
"aria-controls": panelId,
|
|
130
|
+
"aria-controls": subworkflow ? subworkflowPanelId : panelId,
|
|
126
131
|
className: cx("flex items-center gap-3 px-5 py-2.5 cursor-pointer transition-colors w-full text-left", isExpanded ? "" : "hover:bg-[var(--theme-hover)]"),
|
|
127
132
|
onClick: onToggle,
|
|
128
133
|
children: [
|
|
@@ -154,12 +159,13 @@ function StepRow({ step, index, isExpanded, onToggle, prefix, jobName, state })
|
|
|
154
159
|
slug: state.slug,
|
|
155
160
|
prefix,
|
|
156
161
|
jobName,
|
|
157
|
-
stepIndex: index
|
|
162
|
+
stepIndex: index,
|
|
163
|
+
status: step.status
|
|
158
164
|
})
|
|
159
165
|
}),
|
|
160
166
|
/* @__PURE__ */ jsx(DisclosurePanel, {
|
|
161
167
|
open: isExpanded && !!subworkflow && subworkflowJobNames.length > 0,
|
|
162
|
-
id:
|
|
168
|
+
id: subworkflowPanelId,
|
|
163
169
|
children: /* @__PURE__ */ jsx("div", {
|
|
164
170
|
className: "ml-[38px] border-l-2 border-[var(--theme-border)]",
|
|
165
171
|
children: subworkflowJobNames.map((subJobName) => {
|
|
@@ -181,6 +187,7 @@ function StepRow({ step, index, isExpanded, onToggle, prefix, jobName, state })
|
|
|
181
187
|
}
|
|
182
188
|
function TreeView({ jobs, slug, expandedJobs, setExpandedJobs }) {
|
|
183
189
|
const engine = useWorkflowEngine();
|
|
190
|
+
const matrixPanelId = useId();
|
|
184
191
|
const { common, dag } = useStrings();
|
|
185
192
|
const visibleJobNames = useMemo(() => {
|
|
186
193
|
return Object.keys(jobs).filter((jobName) => jobs[jobName]?.if !== false);
|
|
@@ -208,23 +215,33 @@ function TreeView({ jobs, slug, expandedJobs, setExpandedJobs }) {
|
|
|
208
215
|
expandedSteps,
|
|
209
216
|
onStepToggle: (stepKey) => setExpandedSteps((prev) => toggled(prev, stepKey))
|
|
210
217
|
};
|
|
218
|
+
const expandable = useMemo(() => {
|
|
219
|
+
const keys = [];
|
|
220
|
+
for (const jobName of visibleJobNames) {
|
|
221
|
+
const job = jobs[jobName];
|
|
222
|
+
if (job?.status === "skipped" || job?.status === "skipped-failed") continue;
|
|
223
|
+
keys.push(jobName);
|
|
224
|
+
const origin = job?._matrix?.originaljob;
|
|
225
|
+
if (origin) keys.push(`matrix:${origin}`);
|
|
226
|
+
}
|
|
227
|
+
return [...new Set(keys)];
|
|
228
|
+
}, [visibleJobNames, jobs]);
|
|
211
229
|
const expandAll = useCallback(() => {
|
|
212
|
-
setExpandedJobs(new Set(
|
|
213
|
-
}, [
|
|
230
|
+
setExpandedJobs(new Set(expandable));
|
|
231
|
+
}, [expandable, setExpandedJobs]);
|
|
214
232
|
const collapseAll = useCallback(() => {
|
|
215
233
|
setExpandedJobs(/* @__PURE__ */ new Set());
|
|
216
234
|
setExpandedSteps(/* @__PURE__ */ new Set());
|
|
217
235
|
setExpandedSubworkflowJobs(/* @__PURE__ */ new Set());
|
|
218
236
|
}, [setExpandedJobs]);
|
|
219
|
-
const allExpanded =
|
|
237
|
+
const allExpanded = expandable.length > 0 && expandable.every((key) => expandedJobs.has(key));
|
|
220
238
|
return /* @__PURE__ */ jsxs("div", {
|
|
221
239
|
className: "flex flex-col",
|
|
222
240
|
children: [/* @__PURE__ */ jsx("div", {
|
|
223
241
|
className: "flex justify-end px-4 py-2 border-b border-[var(--theme-border)]",
|
|
224
|
-
children: /* @__PURE__ */ jsx(
|
|
225
|
-
|
|
242
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
243
|
+
size: "sm",
|
|
226
244
|
onClick: allExpanded ? collapseAll : expandAll,
|
|
227
|
-
className: "text-xs font-mono text-[var(--theme-muted-text-color)] hover:text-[var(--theme-app)] transition-colors px-3 py-1.5 border border-[var(--theme-border)] rounded",
|
|
228
245
|
children: allExpanded ? common.collapseAll : common.expandAll
|
|
229
246
|
})
|
|
230
247
|
}), /* @__PURE__ */ jsx("div", { children: (() => {
|
|
@@ -262,7 +279,7 @@ function TreeView({ jobs, slug, expandedJobs, setExpandedJobs }) {
|
|
|
262
279
|
children: [/* @__PURE__ */ jsxs("button", {
|
|
263
280
|
type: "button",
|
|
264
281
|
"aria-expanded": isGroupExpanded,
|
|
265
|
-
"aria-controls":
|
|
282
|
+
"aria-controls": `${matrixPanelId}-${matrixOrigin}`,
|
|
266
283
|
className: "flex items-center gap-3 px-5 py-3 cursor-pointer transition-colors w-full text-left",
|
|
267
284
|
onClick: () => toggleJob(`matrix:${matrixOrigin}`),
|
|
268
285
|
children: [
|
|
@@ -280,7 +297,7 @@ function TreeView({ jobs, slug, expandedJobs, setExpandedJobs }) {
|
|
|
280
297
|
]
|
|
281
298
|
}), /* @__PURE__ */ jsx(DisclosurePanel, {
|
|
282
299
|
open: isGroupExpanded,
|
|
283
|
-
id:
|
|
300
|
+
id: `${matrixPanelId}-${matrixOrigin}`,
|
|
284
301
|
children: /* @__PURE__ */ jsx("div", {
|
|
285
302
|
className: "pl-4",
|
|
286
303
|
children: group.members.map((memberName) => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RemoveIcon } from "../icons.js";
|
|
2
2
|
import { useWorkflowEditing } from "../components/Provider.js";
|
|
3
|
+
import { IconButton } from "../components/IconButton.js";
|
|
3
4
|
import { ErrorText } from "../components/Field.js";
|
|
4
5
|
import { Input } from "../components/Input.js";
|
|
5
|
-
import { IconButton } from "../components/IconButton.js";
|
|
6
6
|
import { useGraphEditorStrings, useInputsEditorStrings } from "./editorStrings.js";
|
|
7
7
|
import { asRecord } from "./records.js";
|
|
8
8
|
import { SETTINGS_YAML_PATH } from "../editor/settingsYaml.js";
|
|
@@ -10,7 +10,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
10
10
|
/** What a drag carries, beside the pointer at `at` in its layer's coordinates. */
|
|
11
11
|
function DragLabel({ at, text, refused = false }) {
|
|
12
12
|
return /* @__PURE__ */ jsx("div", {
|
|
13
|
-
className: cx("pointer-events-none absolute z-30 rounded-md border bg-(--theme-panel-bg) px-2 py-1 text-xs shadow", refused ? "border-(--theme-error) text-(--theme-error)" : "theme-border"),
|
|
13
|
+
className: cx("pointer-events-none absolute z-30 rounded-md border bg-(--theme-panel-bg) px-2 py-1 text-xs shadow", refused ? "border-(--theme-error) text-(--theme-error-text)" : "theme-border"),
|
|
14
14
|
style: {
|
|
15
15
|
left: at.x + 12,
|
|
16
16
|
top: at.y + 12
|
|
@@ -2,12 +2,12 @@ import { AddIcon, ExpressionIcon, RemoveIcon } from "../icons.js";
|
|
|
2
2
|
import { withPositionKeys } from "../components/keys.js";
|
|
3
3
|
import { Tooltip } from "../components/Tooltip.js";
|
|
4
4
|
import { Button } from "../components/Button.js";
|
|
5
|
+
import { IconButton } from "../components/IconButton.js";
|
|
5
6
|
import { Checkbox } from "../components/Checkbox.js";
|
|
6
7
|
import { ErrorText, Field } from "../components/Field.js";
|
|
7
8
|
import { Input, Textarea } from "../components/Input.js";
|
|
8
9
|
import { Modal, ModalTitle } from "../components/Modal.js";
|
|
9
10
|
import { Switch } from "../components/Switch.js";
|
|
10
|
-
import { IconButton } from "../components/IconButton.js";
|
|
11
11
|
import { Section } from "../components/Section.js";
|
|
12
12
|
import { SegmentedControl } from "../components/SegmentedControl.js";
|
|
13
13
|
import { useGraphEditorStrings } from "./editorStrings.js";
|
package/dist/graph/editorRows.js
CHANGED
|
@@ -4,7 +4,7 @@ import { Tooltip } from "../components/Tooltip.js";
|
|
|
4
4
|
import { MarqueeBox, place } from "./editorPrimitives.js";
|
|
5
5
|
import { EDITOR_HANDLE_CLASS, NO_SELECTION, labelsOf, problemsIn, sameEdge, sameStep, selectionBounds, useGraphEditor, useSelectedEdges, useUi } from "./graphEditorState.js";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
import { useEffect, useRef } from "react";
|
|
7
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
8
8
|
//#region src/graph/editorRows.tsx
|
|
9
9
|
/** Drop indicators, the connection line and the selection, drawn in the graph's own coordinates. */
|
|
10
10
|
function GraphEditorCanvas() {
|
|
@@ -141,18 +141,24 @@ function BoxGrip({ jobs }) {
|
|
|
141
141
|
}
|
|
142
142
|
var onBadge = (target) => target instanceof Element && !!target.closest("[data-problem-badge]");
|
|
143
143
|
/** A step's problems, or a job's with its steps', listed on hover; a click shows the first one's line. */
|
|
144
|
+
var NO_PROBLEMS = [];
|
|
144
145
|
function ProblemBadge({ api, job, step }) {
|
|
145
146
|
const t = api.t;
|
|
146
|
-
const
|
|
147
|
-
const
|
|
148
|
-
|
|
147
|
+
const problems = useUi(api, (state) => state.problems, NO_PROBLEMS);
|
|
148
|
+
const mine = useMemo(() => step === void 0 ? problems.filter((problem) => problem.job === job) : problemsIn(problems, job, step), [
|
|
149
|
+
problems,
|
|
150
|
+
job,
|
|
151
|
+
step
|
|
152
|
+
]);
|
|
153
|
+
const messages = mine.map((problem) => problem.message).join("\n");
|
|
154
|
+
const line = mine[0]?.line ?? 0;
|
|
149
155
|
if (!messages) return null;
|
|
150
156
|
return /* @__PURE__ */ jsx(Tooltip, {
|
|
151
157
|
content: messages,
|
|
152
158
|
children: /* @__PURE__ */ jsx("button", {
|
|
153
159
|
type: "button",
|
|
154
160
|
"data-problem-badge": "",
|
|
155
|
-
"aria-label": t.problemCount(
|
|
161
|
+
"aria-label": t.problemCount(mine.length),
|
|
156
162
|
className: "cursor-pointer rounded p-0.5 text-(--theme-error) hover:bg-(--theme-muted-panel-bg)",
|
|
157
163
|
onPointerDown: (e) => e.stopPropagation(),
|
|
158
164
|
onClick: (e) => {
|
|
@@ -253,12 +259,12 @@ function EditableJobRow({ job, label, badge = true, children }) {
|
|
|
253
259
|
/** One connector circle: dragging it connects `jobs`, dropping on it connects to them. */
|
|
254
260
|
function PortCircle({ side, at, draw, jobs, port, hint, zIndex }) {
|
|
255
261
|
const api = useGraphEditor();
|
|
256
|
-
const
|
|
262
|
+
const anyDrag = useUi(api, (state) => state.drag !== null, false);
|
|
263
|
+
const dragging = useUi(api, ({ drag }) => drag?.payload.kind === "connect" && drag.payload.port === port && drag.payload.side === side, false);
|
|
257
264
|
if (!api) return null;
|
|
258
|
-
const dragging = drag?.payload.kind === "connect" && drag.payload.port === port && drag.payload.side === side;
|
|
259
265
|
return /* @__PURE__ */ jsx(Tooltip, {
|
|
260
266
|
content: hint,
|
|
261
|
-
disabled:
|
|
267
|
+
disabled: anyDrag,
|
|
262
268
|
children: /* @__PURE__ */ jsxs("span", {
|
|
263
269
|
role: "none",
|
|
264
270
|
"data-dag-port": side,
|
|
@@ -417,13 +423,13 @@ function EdgeHitPath({ d, edge }) {
|
|
|
417
423
|
/** A selected connector's two ends; dragging one onto another job or node moves that end there. */
|
|
418
424
|
function EdgeEnds({ edge, start, end, zIndex }) {
|
|
419
425
|
const api = useGraphEditor();
|
|
420
|
-
const
|
|
426
|
+
const anyDrag = useUi(api, (state) => state.drag !== null, false);
|
|
421
427
|
if (!api) return null;
|
|
422
428
|
const t = api.t;
|
|
423
429
|
const inUse = api.edgeInUse(edge);
|
|
424
430
|
const handle = (side, at, fixed) => /* @__PURE__ */ jsx(Tooltip, {
|
|
425
431
|
content: inUse ? t.dependencyInUse : t.moveDependencyEnd,
|
|
426
|
-
disabled:
|
|
432
|
+
disabled: anyDrag,
|
|
427
433
|
children: /* @__PURE__ */ jsx("span", {
|
|
428
434
|
role: "none",
|
|
429
435
|
"data-dag-edge-end": side,
|
|
@@ -51,6 +51,11 @@ export declare const GRAPH_EDITOR_STRINGS: {
|
|
|
51
51
|
shift: string;
|
|
52
52
|
enter: string;
|
|
53
53
|
delete: string;
|
|
54
|
+
tab: string;
|
|
55
|
+
escape: string;
|
|
56
|
+
/** Control and Alt off a Mac; a Mac shows ⌘ and ⌥. */
|
|
57
|
+
ctrl: string;
|
|
58
|
+
alt: string;
|
|
54
59
|
};
|
|
55
60
|
shortcutDoes: {
|
|
56
61
|
select: string;
|
|
@@ -396,6 +401,8 @@ export declare const INPUTS_EDITOR_STRINGS: {
|
|
|
396
401
|
addPage: string;
|
|
397
402
|
page: string;
|
|
398
403
|
pageNumber: string;
|
|
404
|
+
/** After the page number field: how many pages there are. */
|
|
405
|
+
pageTotal: (count: number) => string;
|
|
399
406
|
/** The title of a wizard's `count`th page when the editor adds it. */
|
|
400
407
|
stepTitle: (count: number) => string;
|
|
401
408
|
/** The submit button label of a form the editor splits into pages. */
|
|
@@ -51,7 +51,12 @@ var GRAPH_EDITOR_STRINGS = {
|
|
|
51
51
|
scroll: "Scroll",
|
|
52
52
|
shift: "Shift",
|
|
53
53
|
enter: "Enter",
|
|
54
|
-
delete: "Delete"
|
|
54
|
+
delete: "Delete",
|
|
55
|
+
tab: "Tab",
|
|
56
|
+
escape: "Esc",
|
|
57
|
+
/** Control and Alt off a Mac; a Mac shows ⌘ and ⌥. */
|
|
58
|
+
ctrl: "Ctrl",
|
|
59
|
+
alt: "Alt"
|
|
55
60
|
},
|
|
56
61
|
shortcutDoes: {
|
|
57
62
|
select: "Add a job, step or dependency to the selection, one kind at a time",
|
|
@@ -391,6 +396,8 @@ var INPUTS_EDITOR_STRINGS = {
|
|
|
391
396
|
addPage: "Add a page after the last",
|
|
392
397
|
page: "Page",
|
|
393
398
|
pageNumber: "Page shown",
|
|
399
|
+
/** After the page number field: how many pages there are. */
|
|
400
|
+
pageTotal: (count) => `/ ${count}`,
|
|
394
401
|
/** The title of a wizard's `count`th page when the editor adds it. */
|
|
395
402
|
stepTitle: (count) => `Step ${count}`,
|
|
396
403
|
/** The submit button label of a form the editor splits into pages. */
|
|
@@ -92,7 +92,7 @@ function ProblemList({ problems }) {
|
|
|
92
92
|
if (problems.length === 0) return null;
|
|
93
93
|
const fieldOf = (problem) => [...fields ?? []].filter(([key]) => within(problem, key)).sort(([a], [b]) => b.length - a.length)[0]?.[1];
|
|
94
94
|
return /* @__PURE__ */ jsx("ul", {
|
|
95
|
-
className: "flex flex-col gap-1 text-sm text-(--theme-error)",
|
|
95
|
+
className: "flex flex-col gap-1 text-sm text-(--theme-error-text)",
|
|
96
96
|
children: keyedByContent(problems, (problem) => `${problem.at.join(".")}:${problem.message}`).map(({ key, item: problem }) => {
|
|
97
97
|
const field = fieldOf(problem);
|
|
98
98
|
return /* @__PURE__ */ jsxs("li", {
|
package/dist/graph/inputRefs.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AddIcon } from "../icons.js";
|
|
2
2
|
import { useStrings } from "../components/Provider.js";
|
|
3
3
|
import { ActionMenu } from "../components/ActionMenu.js";
|
|
4
|
+
import { IconButton } from "../components/IconButton.js";
|
|
4
5
|
import { Textarea } from "../components/Input.js";
|
|
5
6
|
import { Switch } from "../components/Switch.js";
|
|
6
|
-
import { IconButton } from "../components/IconButton.js";
|
|
7
7
|
import { Select } from "../components/Select.js";
|
|
8
8
|
import { useGraphEditorStrings, useInputsEditorStrings } from "./editorStrings.js";
|
|
9
9
|
import { asRecord } from "./records.js";
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { Loader } from "../components/Loader.js";
|
|
2
1
|
import { Tooltip } from "../components/Tooltip.js";
|
|
3
2
|
import { ErrorText } from "../components/Field.js";
|
|
4
3
|
import { useGraphEditorStrings } from "./editorStrings.js";
|
|
5
4
|
import { ProblemList } from "./fieldProblems.js";
|
|
6
5
|
import { ChoiceButtons } from "./editorFields.js";
|
|
6
|
+
import { Editor } from "../editor/Editor.js";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import { Suspense, lazy } from "react";
|
|
9
8
|
//#region src/graph/settingsViews.tsx
|
|
10
|
-
var MonacoEditor = lazy(() => import("../editor/Monaco.js"));
|
|
11
9
|
function yamlProblem(yaml, t, editing) {
|
|
12
10
|
const problem = editing.settingsYamlProblem(yaml);
|
|
13
11
|
return !problem ? void 0 : problem.kind === "syntax" ? t.yamlSyntax(problem.message) : t.yamlNotMap;
|
|
@@ -38,21 +36,16 @@ function YamlPane({ path, value, onChange, problem, scoped, nested }) {
|
|
|
38
36
|
return /* @__PURE__ */ jsxs("div", {
|
|
39
37
|
className: "flex flex-col gap-1.5",
|
|
40
38
|
children: [
|
|
41
|
-
/* @__PURE__ */ jsx(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
onChange,
|
|
52
|
-
markers: scoped.markers,
|
|
53
|
-
...nested ? { nested } : {}
|
|
54
|
-
})
|
|
55
|
-
})
|
|
39
|
+
/* @__PURE__ */ jsx(Editor, {
|
|
40
|
+
path,
|
|
41
|
+
language: "yaml",
|
|
42
|
+
value,
|
|
43
|
+
height: "50vh",
|
|
44
|
+
className: "overflow-hidden rounded-md",
|
|
45
|
+
scrollBeyondLastLine: false,
|
|
46
|
+
onChange,
|
|
47
|
+
markers: scoped.markers,
|
|
48
|
+
...nested ? { nested } : {}
|
|
56
49
|
}),
|
|
57
50
|
/* @__PURE__ */ jsx(ErrorText, { children: problem }),
|
|
58
51
|
/* @__PURE__ */ jsx(ProblemList, { problems: scoped.problems })
|
package/dist/graph/stepWith.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { RemoveIcon } from "../icons.js";
|
|
2
2
|
import { useRepoSuggestions, useWorkflowActions, useWorkflowEditing, useWorkflowJsonResolver } from "../components/Provider.js";
|
|
3
|
+
import { IconButton } from "../components/IconButton.js";
|
|
3
4
|
import { ErrorText } from "../components/Field.js";
|
|
4
5
|
import { Input, Textarea } from "../components/Input.js";
|
|
5
|
-
import { IconButton } from "../components/IconButton.js";
|
|
6
6
|
import { useGraphEditorStrings, useInputsEditorStrings } from "./editorStrings.js";
|
|
7
7
|
import { asRecord } from "./records.js";
|
|
8
8
|
import { loadUsesInputs, splitAtRef } from "./usesInputs.js";
|
|
@@ -515,7 +515,7 @@ function ExtraKey({ name, uses, draft, original, onChange }) {
|
|
|
515
515
|
children: name
|
|
516
516
|
}),
|
|
517
517
|
/* @__PURE__ */ jsx("span", {
|
|
518
|
-
className: "text-xs text-(--theme-error)",
|
|
518
|
+
className: "text-xs text-(--theme-error-text)",
|
|
519
519
|
children: t.notActionInput
|
|
520
520
|
}),
|
|
521
521
|
/* @__PURE__ */ jsx(IconButton, {
|
package/dist/icons.d.ts
CHANGED
|
@@ -128,6 +128,7 @@ export declare const KeyIcon: IconType;
|
|
|
128
128
|
export declare const KubernetesNamespaceIcon: IconType;
|
|
129
129
|
export declare const LanguageIcon: IconType;
|
|
130
130
|
export declare const LegalIcon: IconType;
|
|
131
|
+
export declare const LibraryIcon: IconType;
|
|
131
132
|
export declare const LicenseIcon: IconType;
|
|
132
133
|
export declare const LinkIcon: IconType;
|
|
133
134
|
export declare const ListViewIcon: IconType;
|
|
@@ -173,6 +174,7 @@ export declare const PowerIcon: IconType;
|
|
|
173
174
|
export declare const PowershellIcon: IconType;
|
|
174
175
|
export declare const PreviewIcon: IconType;
|
|
175
176
|
export declare const PrintIcon: IconType;
|
|
177
|
+
export declare const ProjectIcon: IconType;
|
|
176
178
|
export declare const PublishIcon: IconType;
|
|
177
179
|
export declare const PullRequestIcon: IconType;
|
|
178
180
|
export declare const QRCodeIcon: IconType;
|
package/dist/icons.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ErrorCheckmark, SuccessCheckmark } from "./components/StatusIcons.js";
|
|
2
|
-
import { Activity, Archive, ArrowDown, ArrowDownWideNarrow, ArrowLeft, ArrowLeftRight, ArrowRight, ArrowUp, ArrowUpDown, ArrowUpNarrowWide, AtSign, BadgeCheck, Ban, BanknoteX, Bell, BellOff, BellRing, BookUser, Bot, Boxes, Braces, Brain, BrainCircuit, Briefcase, Building2, Calendar, CalendarClock, CalendarSync, CalendarX, Camera, ChartLine, ChartPie, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ChevronsDown, ChevronsDownUp, ChevronsUp, ChevronsUpDown, Circle, CircleAlert, CircleCheck, CircleDollarSign, CircleDot, CircleHelp, CircleMinus, CirclePlay, CircleSlash, CircleX, ClipboardCheck, ClipboardPen, Clock, Cloud, CloudCog, CloudOff, Code, CodeXml, Cog, Columns3, Copy, CopyPlus, CornerUpRight, Cpu, CreditCard, Database, DatabaseSearch, DatabaseZap, Disc3, DollarSign, Download, Earth, Ellipsis, EthernetPort, ExternalLink, Eye, EyeOff, File, FileArchive, FileCode, FileImage, FileJson, FileKey, FilePenLine, FileText, FileType, Files, Fingerprint, Flag, FlaskConical, Folder, FolderOpen, FolderPlus, FolderTree, Folders, Funnel, FunnelX, Gauge, GitCommitHorizontal, GitFork, GitPullRequest, Globe, GraduationCap, Grid3x3, GripHorizontal, Group, Handshake, HardDrive, HatGlasses, Headset, Heart, HeartOff, History, Hourglass, House, IdCard, Inbox, Info, Key, KeyRound, Keyboard, Landmark, Languages, Layers, LayoutGrid, Link, List, ListOrdered, ListTodo, ListVideo, LoaderCircle, Lock, LogIn, LogOut, Logs, Mail, MailCheck, MailX, MapPin, MapPinned, Maximize, Megaphone, MemoryStick, Menu, MessageSquare, MessageSquareWarning, MessagesSquare, Minimize, Minimize2, Minus, Monitor, MonitorDown, MonitorPlay, MonitorSmartphone, Moon, Music, Network, NotebookText, PaintBucket, PanelLeft, PanelLeftClose, PanelLeftOpen, Paperclip, PartyPopper, Pause, PcCase, Pencil, PencilLine, Phone, Pin, Play, PlugZap, Plus, Power, Printer, QrCode, Redo2, RefreshCw, Rocket, RotateCcw, RotateCcwSquare, Route, Save, Scale, ScanEye, Search, Send, Server, Settings, Settings2, Share2, Sheet, Shield, ShieldOff, ShieldUser, Smartphone, Sparkles, Square, SquareChevronRight, SquareCode, SquareDashed, SquarePen, SquareSplitHorizontal, SquareTerminal, Star, Store, Sun, Tag, Terminal, TextCursorInput, Trash2, TriangleAlert, Undo2, UndoDot, Unlink, Unplug, Upload, User, UserCheck, UserLock, UserMinus, UserPlus, UserX, Users, Video, Wallet, WandSparkles, Waypoints, Webhook, Wrench, X, Zap, ZoomIn, ZoomOut } from "lucide-react";
|
|
2
|
+
import { Activity, Archive, ArrowDown, ArrowDownWideNarrow, ArrowLeft, ArrowLeftRight, ArrowRight, ArrowUp, ArrowUpDown, ArrowUpNarrowWide, AtSign, BadgeCheck, Ban, BanknoteX, Bell, BellOff, BellRing, BookUser, Bot, Boxes, Braces, Brain, BrainCircuit, Briefcase, Building2, Calendar, CalendarClock, CalendarSync, CalendarX, Camera, ChartLine, ChartPie, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ChevronsDown, ChevronsDownUp, ChevronsUp, ChevronsUpDown, Circle, CircleAlert, CircleCheck, CircleDollarSign, CircleDot, CircleHelp, CircleMinus, CirclePlay, CircleSlash, CircleX, ClipboardCheck, ClipboardPen, Clock, Cloud, CloudCog, CloudOff, Code, CodeXml, Cog, Columns3, Copy, CopyPlus, CornerUpRight, Cpu, CreditCard, Database, DatabaseSearch, DatabaseZap, Disc3, DollarSign, Download, Earth, Ellipsis, EthernetPort, ExternalLink, Eye, EyeOff, File, FileArchive, FileCode, FileImage, FileJson, FileKey, FilePenLine, FileText, FileType, Files, Fingerprint, Flag, FlaskConical, Folder, FolderKanban, FolderOpen, FolderPlus, FolderTree, Folders, Funnel, FunnelX, Gauge, GitCommitHorizontal, GitFork, GitPullRequest, Globe, GraduationCap, Grid3x3, GripHorizontal, Group, Handshake, HardDrive, HatGlasses, Headset, Heart, HeartOff, History, Hourglass, House, IdCard, Inbox, Info, Key, KeyRound, Keyboard, Landmark, Languages, Layers, LayoutGrid, LibraryBig, Link, List, ListOrdered, ListTodo, ListVideo, LoaderCircle, Lock, LogIn, LogOut, Logs, Mail, MailCheck, MailX, MapPin, MapPinned, Maximize, Megaphone, MemoryStick, Menu, MessageSquare, MessageSquareWarning, MessagesSquare, Minimize, Minimize2, Minus, Monitor, MonitorDown, MonitorPlay, MonitorSmartphone, Moon, Music, Network, NotebookText, PaintBucket, PanelLeft, PanelLeftClose, PanelLeftOpen, Paperclip, PartyPopper, Pause, PcCase, Pencil, PencilLine, Phone, Pin, Play, PlugZap, Plus, Power, Printer, QrCode, Redo2, RefreshCw, Rocket, RotateCcw, RotateCcwSquare, Route, Save, Scale, ScanEye, Search, Send, Server, Settings, Settings2, Share2, Sheet, Shield, ShieldOff, ShieldUser, Smartphone, Sparkles, Square, SquareChevronRight, SquareCode, SquareDashed, SquarePen, SquareSplitHorizontal, SquareTerminal, Star, Store, Sun, Tag, Terminal, TextCursorInput, Trash2, TriangleAlert, Undo2, UndoDot, Unlink, Unplug, Upload, User, UserCheck, UserLock, UserMinus, UserPlus, UserX, Users, Video, Wallet, WandSparkles, Waypoints, Webhook, Wrench, X, Zap, ZoomIn, ZoomOut } from "lucide-react";
|
|
3
3
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
//#region src/icons.tsx
|
|
5
5
|
var STROKE_WIDTH = 2;
|
|
@@ -142,6 +142,7 @@ var KeyIcon = /* @__PURE__ */ icon(Key);
|
|
|
142
142
|
var KubernetesNamespaceIcon = /* @__PURE__ */ icon(SquareDashed);
|
|
143
143
|
var LanguageIcon = /* @__PURE__ */ icon(Languages);
|
|
144
144
|
var LegalIcon = /* @__PURE__ */ icon(Scale);
|
|
145
|
+
var LibraryIcon = /* @__PURE__ */ icon(LibraryBig);
|
|
145
146
|
var LicenseIcon = /* @__PURE__ */ icon(BadgeCheck);
|
|
146
147
|
var LinkIcon = /* @__PURE__ */ icon(Link);
|
|
147
148
|
var ListViewIcon = /* @__PURE__ */ icon(List);
|
|
@@ -187,6 +188,7 @@ var PowerIcon = /* @__PURE__ */ icon(Power);
|
|
|
187
188
|
var PowershellIcon = /* @__PURE__ */ icon(SquareChevronRight);
|
|
188
189
|
var PreviewIcon = /* @__PURE__ */ icon(ScanEye);
|
|
189
190
|
var PrintIcon = /* @__PURE__ */ icon(Printer);
|
|
191
|
+
var ProjectIcon = /* @__PURE__ */ icon(FolderKanban);
|
|
190
192
|
var PublishIcon = /* @__PURE__ */ icon(Rocket);
|
|
191
193
|
var PullRequestIcon = /* @__PURE__ */ icon(GitPullRequest);
|
|
192
194
|
var QRCodeIcon = /* @__PURE__ */ icon(QrCode);
|
|
@@ -262,4 +264,4 @@ var ZipIcon = /* @__PURE__ */ icon(FileArchive);
|
|
|
262
264
|
var ZoomInIcon = /* @__PURE__ */ icon(ZoomIn);
|
|
263
265
|
var ZoomOutIcon = /* @__PURE__ */ icon(ZoomOut);
|
|
264
266
|
//#endregion
|
|
265
|
-
export { APIIcon, AccessIcon, AddIcon, AddProjectIcon, AddUserIcon, AgentIcon, AllocationIcon, ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, AttachmentIcon, AuthenticationIcon, BillingIcon, BriefcaseIcon, BucketIcon, BuildWorkflowIcon, CalendarIcon, CancelIcon, CelebrateIcon, CertificateIcon, ChangesRequestedIcon, ChartIcon, ChatIcon, CheckIcon, ChevronDoubleDownIcon, ChevronDoubleUpIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClipboardCheckIcon, ClockIcon, CloseIcon, CloudIcon, ClusterIcon, CodeIcon, CollapseIcon, ColumnsIcon, CommentIcon, CommitIcon, ComputeIcon, ConnectIcon, ContractIcon, CopyIcon, CustomizeIcon, DesktopIcon, DestroyIcon, DeviceIcon, DirectoryIcon, DisableCostIcon, DisableUserIcon, DisconnectIcon, DiskIcon, DisplayIcon, DownloadIcon, DragHandleIcon, DuplicateIcon, EditIcon, EditorIcon, EducationIcon, EnableCostIcon, EnableUserIcon, EndpointIcon, ErrorCheckmark, ErrorIcon, EventsIcon, ExpandIcon, ExpandVerticalIcon, ExpiredIcon, ExpiringIcon, ExpressionIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FailIcon, FavoriteIcon, FavoriteOutlineIcon, FeaturedIcon, FileIcon, FileTextIcon, FilesIcon, FilesystemIcon, FilterClearIcon, FilterIcon, FlaggedIcon, FlaskIcon, FolderIcon, FolderOpenIcon, FolderTreeIcon, ForbiddenIcon, ForkIcon, GearsIcon, GlobeIcon, GovernmentIcon, GraphIcon, GridIcon, HealthMonitoringIcon, HelpIcon, HistoryIcon, HomeIcon, IdCardIcon, ImageIcon, ImpersonateIcon, InboxIcon, IndexIcon, InfoIcon, InfrastructureLayersIcon, InputFormIcon, InstallIcon, InstanceIcon, InstanceTypeIcon, IpAddressIcon, IssueIcon, JobIcon, JsonIcon, KeyIcon, KeyboardIcon, KubernetesNamespaceIcon, LanguageIcon, LegalIcon, LicenseIcon, LinkIcon, ListViewIcon, LockIcon, MFAIcon, MachineImageIcon, MailFailedIcon, MailIcon, MailVerifiedIcon, MapPinIcon, MarketplaceIcon, MatrixIcon, MegaphoneIcon, MigrationIcon, MinimizeIcon, MinusIcon, MlIcon, MoneyIcon, MoonIcon, MoreIcon, MusicIcon, MuteIcon, NavigationIcon, NetworkInterfaceIcon, NewChatIcon, NodeIcon, NotRunningIcon, NotebookIcon, NotificationIcon, OnboardingIcon, OpenInNewGraphIcon, OrganizationIcon, PartnerIcon, PasswordIcon, PauseIcon, PdfIcon, PendingIcon, PhoneIcon, PieChartIcon, PinFilledIcon, PinIcon, PowerIcon, PowershellIcon, PreviewIcon, PrintIcon, PublishIcon, PullRequestIcon, QRCodeIcon, QueueIcon, QuotaIcon, RedoIcon, RefreshIcon, RemoveIcon, RemoveUserIcon, RenameIcon, RenewIcon, ResetLayoutIcon, ResourceGroupIcon, ResourceIcon, RetryIcon, RoleIcon, RollbackIcon, RunWorkflowIcon, RunningIcon, RunsIcon, SaveIcon, SchedulerIcon, ScriptIcon, SearchIcon, SendIcon, ServiceIcon, SessionIcon, SettingsIcon, ShareIcon, ShieldIcon, ShieldOffIcon, ShrinkIcon, SidebarCloseIcon, SidebarIcon, SidebarOpenIcon, SignInIcon, SignOutIcon, SkipIcon, SnapshotIcon, SortDownIcon, SortUnsortedIcon, SortUpIcon, SparklesIcon, SplitIcon, SpreadsheetIcon, StartIcon, StopIcon, StorageIcon, SubdomainIcon, SuccessCheckmark, SuccessIcon, SunIcon, SupportIcon, SwapIcon, TagIcon, TerminalIcon, ThinkingIcon, TodoIcon, TrashIcon, TunnelIcon, UndoIcon, UnfavoriteIcon, UnlinkIcon, UnmuteIcon, UploadIcon, UserIcon, UserWorkspaceIcon, UsersIcon, VideoIcon, WarningIcon, WebhookIcon, ZapIcon, ZipIcon, ZoomInIcon, ZoomOutIcon };
|
|
267
|
+
export { APIIcon, AccessIcon, AddIcon, AddProjectIcon, AddUserIcon, AgentIcon, AllocationIcon, ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, AttachmentIcon, AuthenticationIcon, BillingIcon, BriefcaseIcon, BucketIcon, BuildWorkflowIcon, CalendarIcon, CancelIcon, CelebrateIcon, CertificateIcon, ChangesRequestedIcon, ChartIcon, ChatIcon, CheckIcon, ChevronDoubleDownIcon, ChevronDoubleUpIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ClipboardCheckIcon, ClockIcon, CloseIcon, CloudIcon, ClusterIcon, CodeIcon, CollapseIcon, ColumnsIcon, CommentIcon, CommitIcon, ComputeIcon, ConnectIcon, ContractIcon, CopyIcon, CustomizeIcon, DesktopIcon, DestroyIcon, DeviceIcon, DirectoryIcon, DisableCostIcon, DisableUserIcon, DisconnectIcon, DiskIcon, DisplayIcon, DownloadIcon, DragHandleIcon, DuplicateIcon, EditIcon, EditorIcon, EducationIcon, EnableCostIcon, EnableUserIcon, EndpointIcon, ErrorCheckmark, ErrorIcon, EventsIcon, ExpandIcon, ExpandVerticalIcon, ExpiredIcon, ExpiringIcon, ExpressionIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FailIcon, FavoriteIcon, FavoriteOutlineIcon, FeaturedIcon, FileIcon, FileTextIcon, FilesIcon, FilesystemIcon, FilterClearIcon, FilterIcon, FlaggedIcon, FlaskIcon, FolderIcon, FolderOpenIcon, FolderTreeIcon, ForbiddenIcon, ForkIcon, GearsIcon, GlobeIcon, GovernmentIcon, GraphIcon, GridIcon, HealthMonitoringIcon, HelpIcon, HistoryIcon, HomeIcon, IdCardIcon, ImageIcon, ImpersonateIcon, InboxIcon, IndexIcon, InfoIcon, InfrastructureLayersIcon, InputFormIcon, InstallIcon, InstanceIcon, InstanceTypeIcon, IpAddressIcon, IssueIcon, JobIcon, JsonIcon, KeyIcon, KeyboardIcon, KubernetesNamespaceIcon, LanguageIcon, LegalIcon, LibraryIcon, LicenseIcon, LinkIcon, ListViewIcon, LockIcon, MFAIcon, MachineImageIcon, MailFailedIcon, MailIcon, MailVerifiedIcon, MapPinIcon, MarketplaceIcon, MatrixIcon, MegaphoneIcon, MigrationIcon, MinimizeIcon, MinusIcon, MlIcon, MoneyIcon, MoonIcon, MoreIcon, MusicIcon, MuteIcon, NavigationIcon, NetworkInterfaceIcon, NewChatIcon, NodeIcon, NotRunningIcon, NotebookIcon, NotificationIcon, OnboardingIcon, OpenInNewGraphIcon, OrganizationIcon, PartnerIcon, PasswordIcon, PauseIcon, PdfIcon, PendingIcon, PhoneIcon, PieChartIcon, PinFilledIcon, PinIcon, PowerIcon, PowershellIcon, PreviewIcon, PrintIcon, ProjectIcon, PublishIcon, PullRequestIcon, QRCodeIcon, QueueIcon, QuotaIcon, RedoIcon, RefreshIcon, RemoveIcon, RemoveUserIcon, RenameIcon, RenewIcon, ResetLayoutIcon, ResourceGroupIcon, ResourceIcon, RetryIcon, RoleIcon, RollbackIcon, RunWorkflowIcon, RunningIcon, RunsIcon, SaveIcon, SchedulerIcon, ScriptIcon, SearchIcon, SendIcon, ServiceIcon, SessionIcon, SettingsIcon, ShareIcon, ShieldIcon, ShieldOffIcon, ShrinkIcon, SidebarCloseIcon, SidebarIcon, SidebarOpenIcon, SignInIcon, SignOutIcon, SkipIcon, SnapshotIcon, SortDownIcon, SortUnsortedIcon, SortUpIcon, SparklesIcon, SplitIcon, SpreadsheetIcon, StartIcon, StopIcon, StorageIcon, SubdomainIcon, SuccessCheckmark, SuccessIcon, SunIcon, SupportIcon, SwapIcon, TagIcon, TerminalIcon, ThinkingIcon, TodoIcon, TrashIcon, TunnelIcon, UndoIcon, UnfavoriteIcon, UnlinkIcon, UnmuteIcon, UploadIcon, UserIcon, UserWorkspaceIcon, UsersIcon, VideoIcon, WarningIcon, WebhookIcon, ZapIcon, ZipIcon, ZoomInIcon, ZoomOutIcon };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
export { ActionMenu } from './components/ActionMenu.js';
|
|
2
|
+
export { AppLink, type AppLinkProps, isPlainClick, type LinkTarget, } from './components/AppLink.js';
|
|
2
3
|
export { Avatar, type AvatarProps, type AvatarSize, type AvatarStatus, avatarInitials, } from './components/Avatar.js';
|
|
3
|
-
export { BreadcrumbProvider, type IBreadcrumbItem, useBreadcrumb, useClearBreadcrumbs, useHideBreadcrumbs, useSetBreadcrumbs, useSetDefaultBreadcrumbs, } from './components/Breadcrumbs.js';
|
|
4
4
|
export { Button, type ButtonProps, MethodButton } from './components/Button.js';
|
|
5
5
|
export { type ButtonSize, type ButtonStyle, type ButtonVariant, buttonClasses, } from './components/buttonClasses.js';
|
|
6
|
-
export {
|
|
7
|
-
export { Card, CardHeader, type CardProps } from './components/Card.js';
|
|
6
|
+
export { Callout, type CalloutProps, type CalloutTone } from './components/Callout.js';
|
|
7
|
+
export { Card, CardHeader, type CardHeaderProps, type CardProps } from './components/Card.js';
|
|
8
8
|
export { Checkbox, CheckboxGroup, type CheckboxProps } from './components/Checkbox.js';
|
|
9
9
|
export { ColorInput, type ColorInputProps } from './components/ColorInput.js';
|
|
10
10
|
export { Autocomplete, type AutocompleteProps, Combobox, type ComboboxGroup, type ComboboxItem, type ComboboxItems, type ComboboxProps, } from './components/Combobox.js';
|
|
11
|
-
export { ConfirmModal } from './components/ConfirmModal.js';
|
|
11
|
+
export { ConfirmModal, type ConfirmModalProps } from './components/ConfirmModal.js';
|
|
12
12
|
export { type OpenMenu, type OpenMenuOptions, useContextMenu, } from './components/ContextMenu.js';
|
|
13
|
-
export { CopyCodeBlock,
|
|
13
|
+
export { CopyButton, type CopyButtonProps, CopyCodeBlock, type CopyCodeBlockProps, } from './components/CopyButton.js';
|
|
14
14
|
export { CreateModal, CreateModalSelect, CreateModalSwitch, } from './components/CreateModal.js';
|
|
15
15
|
export { DatePicker, type DatePickerProps } from './components/DatePicker.js';
|
|
16
|
-
export { DescriptionListItem, default as DescriptionList } from './components/DescriptionList.js';
|
|
16
|
+
export { DescriptionListGroup, DescriptionListItem, type DescriptionListItemProps, type DescriptionListProps, type DescriptionListVariant, default as DescriptionList, } from './components/DescriptionList.js';
|
|
17
17
|
export { Disclosure, DisclosurePanel, type DisclosureProps } from './components/Disclosure.js';
|
|
18
18
|
export { Drawer, type DrawerProps } from './components/Drawer.js';
|
|
19
19
|
export { EmptyState, type EmptyStateProps } from './components/EmptyState.js';
|
|
@@ -32,14 +32,15 @@ export { default as Markdown } from './components/Markdown.js';
|
|
|
32
32
|
export { MenuCheckboxItem, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPopup, type MenuPopupProps, MenuRadioItem, MenuSeparator, MenuSubmenuTrigger, } from './components/Menu.js';
|
|
33
33
|
export { type MenuAction, type MenuDivider, MenuEntries, type MenuEntry, MenuFilter, type MenuSearch, type MenuSubmenu, menuDivider, } from './components/MenuEntries.js';
|
|
34
34
|
export { type BarSize, type BarTone, levelTone, Meter, ProgressBar, } from './components/Meter.js';
|
|
35
|
-
export { Modal, ModalDescription, type ModalProps, ModalTitle, modalPanelClassName, } from './components/Modal.js';
|
|
35
|
+
export { Modal, ModalDescription, type ModalProps, type ModalSize, ModalTitle, modalPanelClassName, } from './components/Modal.js';
|
|
36
36
|
export { NumberInput, type NumberInputProps } from './components/NumberInput.js';
|
|
37
37
|
export { OneTimeCodeInput, type OneTimeCodeInputProps } from './components/OneTimeCodeInput.js';
|
|
38
|
-
export { Overview } from './components/Overview.js';
|
|
39
|
-
export {
|
|
38
|
+
export { Overview, type OverviewProps } from './components/Overview.js';
|
|
39
|
+
export { type Breadcrumb, PageHeader, PageHeaderBar, type PageHeaderBarProps, type PageHeaderProps, PageHeaderProvider, } from './components/PageHeader.js';
|
|
40
|
+
export { PageHeaderAction, type PageHeaderActionProps, PageHeaderAddButton, type PageHeaderAddButtonProps, PageHeaderMenu, } from './components/PageHeaderAction.js';
|
|
40
41
|
export { PAGE_SIZES, Pagination, type PaginationProps } from './components/Pagination.js';
|
|
41
42
|
export { Popover, PopoverClose, type PopoverProps, useClosePopover, } from './components/Popover.js';
|
|
42
|
-
export { type PersistedStateHook, type RunFileResult, type UIData, type UILinkComponent, type UINavigation, UIProvider, type UISlots, type UIStrings, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRunFile, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader, type WorkflowEngineSource, type WorkflowJsonRef, } from './components/Provider.js';
|
|
43
|
+
export { type PersistedStateHook, type RunFileResult, type UIData, type UILinkComponent, type UINavigation, UIProvider, type UIProviderProps, type UISlots, type UIStringOverrides, type UIStrings, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRunFile, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader, type WorkflowEngineSource, type WorkflowJsonRef, } from './components/Provider.js';
|
|
43
44
|
export { Radio, RadioGroup, type RadioProps } from './components/Radio.js';
|
|
44
45
|
export { RefreshButton, type RefreshButtonProps } from './components/RefreshButton.js';
|
|
45
46
|
export { RequiredMark } from './components/RequiredMark.js';
|
|
@@ -53,11 +54,10 @@ export { SettingModeOption } from './components/SettingModeOption.js';
|
|
|
53
54
|
export { SettingRow, SettingsCard, type SettingsCardProps, SettingsHeading, } from './components/SettingsCard.js';
|
|
54
55
|
export { LoadingRegion, Skeleton, type SkeletonProps } from './components/Skeleton.js';
|
|
55
56
|
export { Slider, type SliderProps } from './components/Slider.js';
|
|
56
|
-
export { default as Sort, type TDirection } from './components/Sort.js';
|
|
57
57
|
export { type BadgeVariant, StatusBadge, StatusDot, statusTextClass, } from './components/StatusBadge.js';
|
|
58
58
|
export { Switch, type SwitchProps } from './components/Switch.js';
|
|
59
59
|
export { isTextEntryContext, useShortcutKey } from './components/shortcutKey.js';
|
|
60
|
-
export {
|
|
60
|
+
export { type SortDirection, Table, type TableDensity } from './components/Table.js';
|
|
61
61
|
export { type TabItem, TabPanel, Tabs, type TabsProps } from './components/Tabs.js';
|
|
62
62
|
export { ThemeEditor, type ThemeEditorProps, ThemePreview } from './components/ThemeEditor.js';
|
|
63
63
|
export { type ToastAction, type Toaster, type ToastOptions, type ToastTone, type ToastUpdate, toast, } from './components/Toast.js';
|