@keboola/design 6.0.0 → 6.2.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/COMPONENT-API.md +4 -2
- package/dist/editors.cjs +19 -14
- package/dist/editors.cjs.map +1 -1
- package/dist/editors.js +19 -14
- package/dist/editors.js.map +1 -1
- package/dist/index.cjs +1152 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +539 -290
- package/dist/index.d.ts +539 -290
- package/dist/index.js +1141 -54
- package/dist/index.js.map +1 -1
- package/dist/markdown-editor.cjs +29 -24
- package/dist/markdown-editor.cjs.map +1 -1
- package/dist/markdown-editor.js +29 -24
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.cjs +19 -14
- package/dist/mermaid.cjs.map +1 -1
- package/dist/mermaid.js +19 -14
- package/dist/mermaid.js.map +1 -1
- package/dist/rjsf.cjs +35 -28
- package/dist/rjsf.cjs.map +1 -1
- package/dist/rjsf.js +35 -28
- package/dist/rjsf.js.map +1 -1
- package/dist/styles.css +2 -2
- package/dist/testing.cjs +12 -0
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.js +12 -0
- package/dist/testing.js.map +1 -1
- package/package.json +5 -5
- package/src/styles.css +24 -5
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { clsx } from 'clsx';
|
|
|
6
6
|
import { extendTailwindMerge } from 'tailwind-merge';
|
|
7
7
|
import { Root as Root$6, Trigger, Portal, Content, Provider } from '@radix-ui/react-tooltip';
|
|
8
8
|
import { cva } from 'class-variance-authority';
|
|
9
|
-
import { keboolaLegacySidebar, keboolaLegacyTopnav } from '@keboola/brand-registry';
|
|
9
|
+
import { keboolaLegacySidebar, keboolaLegacyTopnav, keboola } from '@keboola/brand-registry';
|
|
10
10
|
export { brandSchema, exampleCustomer, keboola, keboolaLegacySidebar, keboolaLegacyTopnav } from '@keboola/brand-registry';
|
|
11
11
|
import { jsxs, jsx, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
12
12
|
import * as DropdownMenuPrimitive3 from '@radix-ui/react-dropdown-menu';
|
|
@@ -14,6 +14,7 @@ import { Root, Group, Trigger as Trigger$4 } from '@radix-ui/react-dropdown-menu
|
|
|
14
14
|
import * as ScrollAreaPrimitive2 from '@radix-ui/react-scroll-area';
|
|
15
15
|
import { Root as Root$7 } from '@radix-ui/react-toggle';
|
|
16
16
|
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
17
|
+
import * as RLabel from '@radix-ui/react-label';
|
|
17
18
|
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
18
19
|
import { Root as Root$8, Trigger as Trigger$5, Portal as Portal$1, Content as Content$1, Cancel, Action, Overlay as Overlay$1, Title as Title$1 } from '@radix-ui/react-alert-dialog';
|
|
19
20
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
@@ -25,7 +26,6 @@ import { Root as Root$a, Trigger as Trigger$3, Portal as Portal$4, Content as Co
|
|
|
25
26
|
import { Command as Command$1, CommandInput as CommandInput$1, defaultFilter, useCommandState } from 'cmdk';
|
|
26
27
|
export { defaultFilter, useCommandState } from 'cmdk';
|
|
27
28
|
import TextareaAutosize from 'react-textarea-autosize';
|
|
28
|
-
import * as RLabel from '@radix-ui/react-label';
|
|
29
29
|
import { Root as Root$3, Thumb } from '@radix-ui/react-switch';
|
|
30
30
|
import * as RRadioGroup from '@radix-ui/react-radio-group';
|
|
31
31
|
import { Item, Indicator as Indicator$2 } from '@radix-ui/react-radio-group';
|
|
@@ -263,7 +263,7 @@ var require_react_is_development = __commonJS({
|
|
|
263
263
|
var ContextProvider = REACT_PROVIDER_TYPE;
|
|
264
264
|
var Element = REACT_ELEMENT_TYPE;
|
|
265
265
|
var ForwardRef = REACT_FORWARD_REF_TYPE;
|
|
266
|
-
var
|
|
266
|
+
var Fragment17 = REACT_FRAGMENT_TYPE;
|
|
267
267
|
var Lazy = REACT_LAZY_TYPE;
|
|
268
268
|
var Memo = REACT_MEMO_TYPE;
|
|
269
269
|
var Portal10 = REACT_PORTAL_TYPE;
|
|
@@ -322,7 +322,7 @@ var require_react_is_development = __commonJS({
|
|
|
322
322
|
exports$1.ContextProvider = ContextProvider;
|
|
323
323
|
exports$1.Element = Element;
|
|
324
324
|
exports$1.ForwardRef = ForwardRef;
|
|
325
|
-
exports$1.Fragment =
|
|
325
|
+
exports$1.Fragment = Fragment17;
|
|
326
326
|
exports$1.Lazy = Lazy;
|
|
327
327
|
exports$1.Memo = Memo;
|
|
328
328
|
exports$1.Portal = Portal10;
|
|
@@ -2768,6 +2768,7 @@ var Clipboard = ({
|
|
|
2768
2768
|
] });
|
|
2769
2769
|
};
|
|
2770
2770
|
var DEFAULT_ICON = /* @__PURE__ */ jsx(icons_exports.Copy, {});
|
|
2771
|
+
var DEFAULT_ARIA_LABEL = "Copy";
|
|
2771
2772
|
var ClipboardButton = ({
|
|
2772
2773
|
// clipboard props
|
|
2773
2774
|
text,
|
|
@@ -2779,20 +2780,24 @@ var ClipboardButton = ({
|
|
|
2779
2780
|
variant = "outline",
|
|
2780
2781
|
children,
|
|
2781
2782
|
...rest
|
|
2782
|
-
}) =>
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2783
|
+
}) => {
|
|
2784
|
+
const defaultAriaLabel = typeof tooltip === "string" && tooltip.trim() ? tooltip : DEFAULT_ARIA_LABEL;
|
|
2785
|
+
const ariaLabel = rest["aria-label"] ?? (children == null ? defaultAriaLabel : void 0);
|
|
2786
|
+
return /* @__PURE__ */ jsx(
|
|
2787
|
+
Clipboard,
|
|
2788
|
+
{
|
|
2789
|
+
asChild: true,
|
|
2790
|
+
tooltip,
|
|
2791
|
+
tooltipPlacement,
|
|
2792
|
+
tooltipVariant,
|
|
2793
|
+
text,
|
|
2794
|
+
children: /* @__PURE__ */ jsxs(Button, { ...rest, "aria-label": ariaLabel, variant, disabled: !text, children: [
|
|
2795
|
+
icon,
|
|
2796
|
+
children
|
|
2797
|
+
] })
|
|
2798
|
+
}
|
|
2799
|
+
);
|
|
2800
|
+
};
|
|
2796
2801
|
var ClipboardInline = ({
|
|
2797
2802
|
// clipboard props
|
|
2798
2803
|
text,
|
|
@@ -2817,6 +2822,264 @@ var ClipboardInline = ({
|
|
|
2817
2822
|
] })
|
|
2818
2823
|
}
|
|
2819
2824
|
);
|
|
2825
|
+
var CopyContext = createContext(null);
|
|
2826
|
+
var useCopyContext = () => {
|
|
2827
|
+
const ctx = use(CopyContext);
|
|
2828
|
+
if (!ctx) throw new Error("CopyField.* components must be used within a CopyField.Root");
|
|
2829
|
+
return ctx;
|
|
2830
|
+
};
|
|
2831
|
+
var LINE_HEIGHT_REM = 1.25;
|
|
2832
|
+
var VERTICAL_PADDING_REM = 1.25;
|
|
2833
|
+
var CopyBox = ({ className, children }) => {
|
|
2834
|
+
const { copied, handleCopy, mono, minLines, maxLines, boxId, labelId, hasLabel } = useCopyContext();
|
|
2835
|
+
const multiline = maxLines > 1;
|
|
2836
|
+
const multilineStyle = multiline ? {
|
|
2837
|
+
minHeight: `${minLines * LINE_HEIGHT_REM + VERTICAL_PADDING_REM}rem`,
|
|
2838
|
+
maxHeight: `${maxLines * LINE_HEIGHT_REM + VERTICAL_PADDING_REM}rem`
|
|
2839
|
+
} : void 0;
|
|
2840
|
+
const handleKeyDown2 = (event) => {
|
|
2841
|
+
if (event.target !== event.currentTarget) return;
|
|
2842
|
+
if (event.key !== "Enter" && event.key !== " ") return;
|
|
2843
|
+
event.preventDefault();
|
|
2844
|
+
handleCopy();
|
|
2845
|
+
};
|
|
2846
|
+
return /* @__PURE__ */ jsx(Tooltip, { triggerAsChild: true, placement: "top", tooltip: copied ? "Copied" : "Copy", forceShow: copied, children: /* @__PURE__ */ jsx(
|
|
2847
|
+
"div",
|
|
2848
|
+
{
|
|
2849
|
+
role: "button",
|
|
2850
|
+
tabIndex: 0,
|
|
2851
|
+
id: boxId,
|
|
2852
|
+
"aria-labelledby": hasLabel ? labelId : void 0,
|
|
2853
|
+
onClick: handleCopy,
|
|
2854
|
+
onKeyDown: handleKeyDown2,
|
|
2855
|
+
style: multilineStyle,
|
|
2856
|
+
className: cn(
|
|
2857
|
+
"tw-group tw-relative tw-flex tw-w-fit tw-max-w-full tw-cursor-pointer tw-gap-2 tw-rounded-2xl [corner-shape:superellipse(2)] tw-border tw-border-[#e4e4e4] tw-bg-[#fafafa] tw-px-3 tw-py-2.5 tw-text-left tw-shadow-sm tw-transition-colors hover:tw-bg-[#f2f2f2]",
|
|
2858
|
+
multiline ? "tw-items-start tw-overflow-auto" : "tw-items-center tw-overflow-hidden",
|
|
2859
|
+
mono && "tw-font-mono tw-text-[13px]",
|
|
2860
|
+
className
|
|
2861
|
+
),
|
|
2862
|
+
children
|
|
2863
|
+
}
|
|
2864
|
+
) });
|
|
2865
|
+
};
|
|
2866
|
+
var CopyButton = ({ className }) => {
|
|
2867
|
+
const { copied, maxLines } = useCopyContext();
|
|
2868
|
+
return /* @__PURE__ */ jsx(
|
|
2869
|
+
"span",
|
|
2870
|
+
{
|
|
2871
|
+
"aria-hidden": true,
|
|
2872
|
+
className: cn(
|
|
2873
|
+
"tw-pointer-events-none tw-flex tw-shrink-0 tw-items-center tw-text-[#8b8b8b] group-hover:tw-text-[#5c5c5c]",
|
|
2874
|
+
maxLines > 1 && "tw-self-start tw-pt-0.5",
|
|
2875
|
+
className
|
|
2876
|
+
),
|
|
2877
|
+
children: copied ? /* @__PURE__ */ jsx(icons_exports.Check, { className: "tw-size-4" }) : /* @__PURE__ */ jsx(icons_exports.Copy, { className: "tw-size-4" })
|
|
2878
|
+
}
|
|
2879
|
+
);
|
|
2880
|
+
};
|
|
2881
|
+
var CopyChildren = ({ children, className }) => {
|
|
2882
|
+
const { maxLines } = useCopyContext();
|
|
2883
|
+
const multiline = maxLines > 1;
|
|
2884
|
+
return /* @__PURE__ */ jsx(
|
|
2885
|
+
"span",
|
|
2886
|
+
{
|
|
2887
|
+
className: cn(
|
|
2888
|
+
"tw-min-w-0 tw-flex-1 tw-select-text tw-text-[#3f3f3f]",
|
|
2889
|
+
multiline ? "tw-whitespace-pre-wrap tw-break-words" : "tw-truncate",
|
|
2890
|
+
className
|
|
2891
|
+
),
|
|
2892
|
+
children
|
|
2893
|
+
}
|
|
2894
|
+
);
|
|
2895
|
+
};
|
|
2896
|
+
var CopyFooter = ({ children, className }) => {
|
|
2897
|
+
if (!children) return null;
|
|
2898
|
+
return /* @__PURE__ */ jsx("p", { className: cn("tw-m-0 tw-text-xs tw-text-muted-foreground", className), children });
|
|
2899
|
+
};
|
|
2900
|
+
var MASK = "*".repeat(12);
|
|
2901
|
+
var CopyHidden = ({ children, revealable = true, className }) => {
|
|
2902
|
+
const { hidden, registerRevealable } = useCopyContext();
|
|
2903
|
+
useEffect(() => {
|
|
2904
|
+
if (!revealable) return void 0;
|
|
2905
|
+
return registerRevealable();
|
|
2906
|
+
}, [revealable, registerRevealable]);
|
|
2907
|
+
const masked = revealable ? hidden : true;
|
|
2908
|
+
return /* @__PURE__ */ jsx("span", { className: cn("tw-select-none", className), children: masked ? MASK : children });
|
|
2909
|
+
};
|
|
2910
|
+
var Optional = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-muted-foreground", className), children: "(optional)" });
|
|
2911
|
+
var Required = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-primary", className), children: "*" });
|
|
2912
|
+
var Label2 = ({ className, children, id, htmlFor, ...rest }) => /* @__PURE__ */ jsx(
|
|
2913
|
+
RLabel.Root,
|
|
2914
|
+
{
|
|
2915
|
+
...rest,
|
|
2916
|
+
id: id?.toString(),
|
|
2917
|
+
htmlFor: htmlFor?.toString(),
|
|
2918
|
+
className: cn(
|
|
2919
|
+
"tw-m-0 tw-text-foreground tw-font-normal peer-disabled:tw-opacity-50",
|
|
2920
|
+
className
|
|
2921
|
+
),
|
|
2922
|
+
children
|
|
2923
|
+
}
|
|
2924
|
+
);
|
|
2925
|
+
Label2.Optional = Optional;
|
|
2926
|
+
Label2.Required = Required;
|
|
2927
|
+
var CopyLabel = ({ children, leading, trailing, className }) => {
|
|
2928
|
+
const { labelId, registerLabel } = useCopyContext();
|
|
2929
|
+
useEffect(() => registerLabel(), [registerLabel]);
|
|
2930
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("tw-flex tw-items-center tw-gap-1", className), children: [
|
|
2931
|
+
/* @__PURE__ */ jsx(Label2, { id: labelId, children }),
|
|
2932
|
+
leading,
|
|
2933
|
+
trailing != null && /* @__PURE__ */ jsx("span", { className: "tw-ml-auto tw-flex tw-items-center", children: trailing })
|
|
2934
|
+
] });
|
|
2935
|
+
};
|
|
2936
|
+
var CopyPrefix = ({ children, className }) => /* @__PURE__ */ jsx(
|
|
2937
|
+
"span",
|
|
2938
|
+
{
|
|
2939
|
+
"aria-hidden": true,
|
|
2940
|
+
className: cn(
|
|
2941
|
+
"tw-shrink-0 tw-select-none tw-self-stretch tw-border-r tw-border-[#e4e4e4] tw-pr-2 tw-text-[#6b6b6b]",
|
|
2942
|
+
className
|
|
2943
|
+
),
|
|
2944
|
+
children
|
|
2945
|
+
}
|
|
2946
|
+
);
|
|
2947
|
+
var CopyReveal = ({ className }) => {
|
|
2948
|
+
const { hidden, toggleHidden, hasRevealable, maxLines } = useCopyContext();
|
|
2949
|
+
if (!hasRevealable) return null;
|
|
2950
|
+
const handleClick = (event) => {
|
|
2951
|
+
event.stopPropagation();
|
|
2952
|
+
toggleHidden();
|
|
2953
|
+
};
|
|
2954
|
+
return /* @__PURE__ */ jsx(
|
|
2955
|
+
"button",
|
|
2956
|
+
{
|
|
2957
|
+
type: "button",
|
|
2958
|
+
onClick: handleClick,
|
|
2959
|
+
"aria-label": hidden ? "Show value" : "Hide value",
|
|
2960
|
+
className: cn(
|
|
2961
|
+
"tw-flex tw-shrink-0 tw-items-center tw-text-[#8b8b8b] hover:tw-text-[#5c5c5c]",
|
|
2962
|
+
maxLines > 1 && "tw-self-start tw-pt-0.5",
|
|
2963
|
+
className
|
|
2964
|
+
),
|
|
2965
|
+
children: hidden ? /* @__PURE__ */ jsx(icons_exports.Eye, { className: "tw-size-4" }) : /* @__PURE__ */ jsx(icons_exports.EyeOff, { className: "tw-size-4" })
|
|
2966
|
+
}
|
|
2967
|
+
);
|
|
2968
|
+
};
|
|
2969
|
+
var CopyRoot = ({
|
|
2970
|
+
value,
|
|
2971
|
+
mono = false,
|
|
2972
|
+
onCopy,
|
|
2973
|
+
hiddenByDefault = false,
|
|
2974
|
+
minLines = 1,
|
|
2975
|
+
maxLines,
|
|
2976
|
+
className,
|
|
2977
|
+
children
|
|
2978
|
+
}) => {
|
|
2979
|
+
const [copied, setCopied] = useState(false);
|
|
2980
|
+
const [hidden, setHidden] = useState(hiddenByDefault);
|
|
2981
|
+
const [revealableCount, setRevealableCount] = useState(0);
|
|
2982
|
+
const [labelCount, setLabelCount] = useState(0);
|
|
2983
|
+
const resetTimerRef = useRef(void 0);
|
|
2984
|
+
const generatedId = useId();
|
|
2985
|
+
const labelId = `${generatedId}-label`;
|
|
2986
|
+
const boxId = `${generatedId}-box`;
|
|
2987
|
+
useEffect(() => () => clearTimeout(resetTimerRef.current), []);
|
|
2988
|
+
const handleCopy = useCallback(() => {
|
|
2989
|
+
const selection = window.getSelection();
|
|
2990
|
+
const boxEl = document.getElementById(boxId);
|
|
2991
|
+
if (selection && !selection.isCollapsed && selection.anchorNode && boxEl?.contains(selection.anchorNode)) {
|
|
2992
|
+
return;
|
|
2993
|
+
}
|
|
2994
|
+
copyToClipboard(value).then(() => {
|
|
2995
|
+
onCopy?.();
|
|
2996
|
+
setCopied(true);
|
|
2997
|
+
clearTimeout(resetTimerRef.current);
|
|
2998
|
+
resetTimerRef.current = setTimeout(() => setCopied(false), 1500);
|
|
2999
|
+
}).catch((error) => {
|
|
3000
|
+
console.error("Copy to clipboard failed", error);
|
|
3001
|
+
});
|
|
3002
|
+
}, [value, onCopy, boxId]);
|
|
3003
|
+
const toggleHidden = useCallback(() => setHidden((prev) => !prev), []);
|
|
3004
|
+
const registerRevealable = useCallback(() => {
|
|
3005
|
+
setRevealableCount((count) => count + 1);
|
|
3006
|
+
return () => setRevealableCount((count) => count - 1);
|
|
3007
|
+
}, []);
|
|
3008
|
+
const registerLabel = useCallback(() => {
|
|
3009
|
+
setLabelCount((count) => count + 1);
|
|
3010
|
+
return () => setLabelCount((count) => count - 1);
|
|
3011
|
+
}, []);
|
|
3012
|
+
const contextValue = useMemo(
|
|
3013
|
+
() => ({
|
|
3014
|
+
copied,
|
|
3015
|
+
handleCopy,
|
|
3016
|
+
value,
|
|
3017
|
+
mono,
|
|
3018
|
+
hidden,
|
|
3019
|
+
toggleHidden,
|
|
3020
|
+
registerRevealable,
|
|
3021
|
+
hasRevealable: revealableCount > 0,
|
|
3022
|
+
registerLabel,
|
|
3023
|
+
hasLabel: labelCount > 0,
|
|
3024
|
+
minLines,
|
|
3025
|
+
maxLines: maxLines ?? minLines,
|
|
3026
|
+
labelId,
|
|
3027
|
+
boxId
|
|
3028
|
+
}),
|
|
3029
|
+
[
|
|
3030
|
+
copied,
|
|
3031
|
+
handleCopy,
|
|
3032
|
+
value,
|
|
3033
|
+
mono,
|
|
3034
|
+
hidden,
|
|
3035
|
+
toggleHidden,
|
|
3036
|
+
registerRevealable,
|
|
3037
|
+
revealableCount,
|
|
3038
|
+
registerLabel,
|
|
3039
|
+
labelCount,
|
|
3040
|
+
minLines,
|
|
3041
|
+
maxLines,
|
|
3042
|
+
labelId,
|
|
3043
|
+
boxId
|
|
3044
|
+
]
|
|
3045
|
+
);
|
|
3046
|
+
return /* @__PURE__ */ jsx(CopyContext, { value: contextValue, children: /* @__PURE__ */ jsx("div", { className: cn("tw-flex tw-w-fit tw-max-w-full tw-flex-col tw-gap-1", className), children }) });
|
|
3047
|
+
};
|
|
3048
|
+
var CopySuffix = ({ children, className }) => /* @__PURE__ */ jsx(
|
|
3049
|
+
"span",
|
|
3050
|
+
{
|
|
3051
|
+
"aria-hidden": true,
|
|
3052
|
+
className: cn(
|
|
3053
|
+
"tw-shrink-0 tw-select-none tw-self-stretch tw-border-l tw-border-[#e4e4e4] tw-pl-2 tw-text-[#6b6b6b]",
|
|
3054
|
+
className
|
|
3055
|
+
),
|
|
3056
|
+
children
|
|
3057
|
+
}
|
|
3058
|
+
);
|
|
3059
|
+
|
|
3060
|
+
// src/blocks/CopyField/CopyField.tsx
|
|
3061
|
+
var CopyField = {
|
|
3062
|
+
/** Container. Owns the copied `value`, mask state, and copy context. */
|
|
3063
|
+
Root: CopyRoot,
|
|
3064
|
+
/** Visible label above the box, with optional `leading`/`trailing` slots. */
|
|
3065
|
+
Label: CopyLabel,
|
|
3066
|
+
/** The clickable copy target row. */
|
|
3067
|
+
Box: CopyBox,
|
|
3068
|
+
/** Muted, non-selectable prefix addon (not copied). */
|
|
3069
|
+
Prefix: CopyPrefix,
|
|
3070
|
+
/** Displayed value (truncates single-line, wraps multi-line). */
|
|
3071
|
+
Children: CopyChildren,
|
|
3072
|
+
/** Muted, non-selectable suffix addon (not copied). */
|
|
3073
|
+
Suffix: CopySuffix,
|
|
3074
|
+
/** Masks its children with dots; copy still copies the real value. */
|
|
3075
|
+
Hidden: CopyHidden,
|
|
3076
|
+
/** Eye toggle that reveals/masks revealable `CopyField.Hidden` content. */
|
|
3077
|
+
Reveal: CopyReveal,
|
|
3078
|
+
/** Copy affordance icon — shows Copy/Check with feedback. */
|
|
3079
|
+
Button: CopyButton,
|
|
3080
|
+
/** Small helper text below the box. */
|
|
3081
|
+
Footer: CopyFooter
|
|
3082
|
+
};
|
|
2820
3083
|
var Link = ({
|
|
2821
3084
|
ref,
|
|
2822
3085
|
children,
|
|
@@ -3773,8 +4036,8 @@ var FullScreenModalHeader = ({
|
|
|
3773
4036
|
{
|
|
3774
4037
|
text: previousTitle,
|
|
3775
4038
|
className: cn(
|
|
3776
|
-
"tw-relative tw-top-0 tw-cursor-pointer tw-text-base tw-font-normal tw-text-
|
|
3777
|
-
"hover:tw-text-
|
|
4039
|
+
"tw-relative tw-top-0 tw-cursor-pointer tw-text-base tw-font-normal tw-text-muted-foreground tw-underline",
|
|
4040
|
+
"hover:tw-text-foreground hover:tw-no-underline",
|
|
3778
4041
|
isTitleWithIcon && "tw-ml-14"
|
|
3779
4042
|
)
|
|
3780
4043
|
}
|
|
@@ -6751,7 +7014,7 @@ __export(custom_components_exports, {
|
|
|
6751
7014
|
NextMonthButton: () => NextMonthButton,
|
|
6752
7015
|
Option: () => Option,
|
|
6753
7016
|
PreviousMonthButton: () => PreviousMonthButton,
|
|
6754
|
-
Root: () =>
|
|
7017
|
+
Root: () => Root17,
|
|
6755
7018
|
Select: () => Select,
|
|
6756
7019
|
Week: () => Week,
|
|
6757
7020
|
WeekNumber: () => WeekNumber,
|
|
@@ -6931,7 +7194,7 @@ function Option(props) {
|
|
|
6931
7194
|
function PreviousMonthButton(props) {
|
|
6932
7195
|
return React26.createElement("button", { ...props });
|
|
6933
7196
|
}
|
|
6934
|
-
function
|
|
7197
|
+
function Root17(props) {
|
|
6935
7198
|
const { rootRef, ...rest } = props;
|
|
6936
7199
|
return React26.createElement("div", { ...rest, ref: rootRef });
|
|
6937
7200
|
}
|
|
@@ -9999,23 +10262,6 @@ var TimePicker = ({
|
|
|
9999
10262
|
)
|
|
10000
10263
|
] });
|
|
10001
10264
|
};
|
|
10002
|
-
var Optional = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-muted-foreground", className), children: "(optional)" });
|
|
10003
|
-
var Required = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-primary", className), children: "*" });
|
|
10004
|
-
var Label2 = ({ className, children, id, htmlFor, ...rest }) => /* @__PURE__ */ jsx(
|
|
10005
|
-
RLabel.Root,
|
|
10006
|
-
{
|
|
10007
|
-
...rest,
|
|
10008
|
-
id: id?.toString(),
|
|
10009
|
-
htmlFor: htmlFor?.toString(),
|
|
10010
|
-
className: cn(
|
|
10011
|
-
"tw-m-0 tw-text-foreground tw-font-normal peer-disabled:tw-opacity-50",
|
|
10012
|
-
className
|
|
10013
|
-
),
|
|
10014
|
-
children
|
|
10015
|
-
}
|
|
10016
|
-
);
|
|
10017
|
-
Label2.Optional = Optional;
|
|
10018
|
-
Label2.Required = Required;
|
|
10019
10265
|
var FieldBoxDescription = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
10020
10266
|
"span",
|
|
10021
10267
|
{
|
|
@@ -10744,8 +10990,8 @@ var ClearButton = ({ onClick, testId }) => {
|
|
|
10744
10990
|
"tw-flex",
|
|
10745
10991
|
"tw-items-center",
|
|
10746
10992
|
"tw-cursor-pointer",
|
|
10747
|
-
"tw-text-
|
|
10748
|
-
"hover:tw-text-
|
|
10993
|
+
"tw-text-muted-foreground",
|
|
10994
|
+
"hover:tw-text-foreground"
|
|
10749
10995
|
),
|
|
10750
10996
|
"data-testid": testId,
|
|
10751
10997
|
children: /* @__PURE__ */ jsx(icons_exports.X, { className: "tw-size-4" })
|
|
@@ -11586,23 +11832,23 @@ var BadgeLabel = ({
|
|
|
11586
11832
|
var badgeColors = {
|
|
11587
11833
|
gray: "tw-bg-neutral-400 tw-text-white tw-decoration-neutral-400",
|
|
11588
11834
|
"gray-darker": "tw-bg-neutral-500 tw-text-white tw-decoration-neutral-500",
|
|
11589
|
-
"gray-inverse": "tw-bg-neutral-100 tw-text-neutral-400 tw-decoration-neutral-100",
|
|
11835
|
+
"gray-inverse": "tw-bg-neutral-100 tw-text-neutral-400 tw-decoration-neutral-100 [[data-theme=dark]_&]:tw-bg-neutral-800 [[data-theme=dark]_&]:tw-text-neutral-300 [[data-theme=dark]_&]:tw-decoration-neutral-800",
|
|
11590
11836
|
green: "tw-bg-green-500 tw-text-white tw-decoration-green-500",
|
|
11591
11837
|
"green-darker": "tw-bg-green-600 tw-text-white tw-decoration-green-600",
|
|
11592
|
-
"green-inverse": "tw-bg-green-100 tw-text-green-900 tw-decoration-green-100",
|
|
11838
|
+
"green-inverse": "tw-bg-green-100 tw-text-green-900 tw-decoration-green-100 [[data-theme=dark]_&]:tw-bg-green-900 [[data-theme=dark]_&]:tw-text-green-200 [[data-theme=dark]_&]:tw-decoration-green-900",
|
|
11593
11839
|
blue: "tw-bg-blue-500 tw-text-white tw-decoration-blue-500",
|
|
11594
|
-
"blue-inverse": "tw-bg-blue-100 tw-text-blue-600 tw-decoration-blue-100",
|
|
11840
|
+
"blue-inverse": "tw-bg-blue-100 tw-text-blue-600 tw-decoration-blue-100 [[data-theme=dark]_&]:tw-bg-blue-900 [[data-theme=dark]_&]:tw-text-blue-200 [[data-theme=dark]_&]:tw-decoration-blue-900",
|
|
11595
11841
|
red: "tw-bg-error-500 tw-text-white tw-decoration-error-500",
|
|
11596
11842
|
orange: "tw-bg-warning-500 tw-text-white tw-decoration-warning-500",
|
|
11597
|
-
"orange-inverse": "tw-bg-warning-100 tw-text-warning-500 tw-decoration-warning-100",
|
|
11843
|
+
"orange-inverse": "tw-bg-warning-100 tw-text-warning-500 tw-decoration-warning-100 [[data-theme=dark]_&]:tw-bg-warning-900 [[data-theme=dark]_&]:tw-text-warning-200 [[data-theme=dark]_&]:tw-decoration-warning-900",
|
|
11598
11844
|
amber: "tw-bg-warning-300 tw-text-warning-800 tw-decoration-warning-300",
|
|
11599
11845
|
"amber-inverse": "tw-bg-warning-100 tw-text-warning-700 tw-decoration-warning-100",
|
|
11600
11846
|
teal: "tw-bg-teal-500 tw-text-white tw-decoration-teal-500",
|
|
11601
|
-
"teal-inverse": "tw-bg-teal-100 tw-text-teal-800 tw-decoration-teal-100",
|
|
11847
|
+
"teal-inverse": "tw-bg-teal-100 tw-text-teal-800 tw-decoration-teal-100 [[data-theme=dark]_&]:tw-bg-teal-900 [[data-theme=dark]_&]:tw-text-teal-200 [[data-theme=dark]_&]:tw-decoration-teal-900",
|
|
11602
11848
|
purple: "tw-bg-purple-500 tw-text-white tw-decoration-purple-500",
|
|
11603
|
-
"purple-inverse": "tw-bg-purple-100 tw-text-purple-800 tw-decoration-purple-100",
|
|
11849
|
+
"purple-inverse": "tw-bg-purple-100 tw-text-purple-800 tw-decoration-purple-100 [[data-theme=dark]_&]:tw-bg-purple-900 [[data-theme=dark]_&]:tw-text-purple-200 [[data-theme=dark]_&]:tw-decoration-purple-900",
|
|
11604
11850
|
cyan: "tw-bg-cyan-500 tw-text-white tw-decoration-cyan-500",
|
|
11605
|
-
"cyan-inverse": "tw-bg-cyan-100 tw-text-cyan-800 tw-decoration-cyan-100",
|
|
11851
|
+
"cyan-inverse": "tw-bg-cyan-100 tw-text-cyan-800 tw-decoration-cyan-100 [[data-theme=dark]_&]:tw-bg-cyan-900 [[data-theme=dark]_&]:tw-text-cyan-200 [[data-theme=dark]_&]:tw-decoration-cyan-900",
|
|
11606
11852
|
"sidebar-primary": "tw-bg-sidebar-primary tw-text-white tw-decoration-sidebar-primary",
|
|
11607
11853
|
white: "tw-bg-white/90 tw-text-neutral-600 tw-decoration-white/90"
|
|
11608
11854
|
};
|
|
@@ -16368,6 +16614,12 @@ var PromptInputCommands = ({ items, open, onSelect, filterValue, children }) =>
|
|
|
16368
16614
|
children
|
|
16369
16615
|
] });
|
|
16370
16616
|
};
|
|
16617
|
+
var ARIA_LABEL_BY_STATUS = {
|
|
16618
|
+
ready: "Send message",
|
|
16619
|
+
streaming: "Stop",
|
|
16620
|
+
interrupted: "Continue",
|
|
16621
|
+
submitted: "Sending\u2026"
|
|
16622
|
+
};
|
|
16371
16623
|
var PromptInputSubmit = ({
|
|
16372
16624
|
ref,
|
|
16373
16625
|
disabled,
|
|
@@ -16390,6 +16642,7 @@ var PromptInputSubmit = ({
|
|
|
16390
16642
|
ref,
|
|
16391
16643
|
type: "submit",
|
|
16392
16644
|
disabled,
|
|
16645
|
+
"aria-label": ARIA_LABEL_BY_STATUS[status],
|
|
16393
16646
|
size: "icon-sm",
|
|
16394
16647
|
variant: "invisible",
|
|
16395
16648
|
isLoading: status === "submitted",
|
|
@@ -17836,7 +18089,7 @@ var cardTitleClassnames = cn(
|
|
|
17836
18089
|
"tw-text-base",
|
|
17837
18090
|
"tw-text-card-foreground"
|
|
17838
18091
|
);
|
|
17839
|
-
var CardTitle = ({ children, className, ...rest }) => /* @__PURE__ */ jsx(
|
|
18092
|
+
var CardTitle = ({ children, className, as: Tag = "h3", ...rest }) => /* @__PURE__ */ jsx(Tag, { className: cn(cardTitleClassnames, className), ...rest, children });
|
|
17840
18093
|
var Card = ({
|
|
17841
18094
|
children,
|
|
17842
18095
|
className,
|
|
@@ -18168,9 +18421,7 @@ var headerVariants = cva(
|
|
|
18168
18421
|
variants: {
|
|
18169
18422
|
variant: {
|
|
18170
18423
|
default: "tw-bg-muted",
|
|
18171
|
-
|
|
18172
|
-
// `background` is the page base, not an elevated panel surface.
|
|
18173
|
-
white: "tw-bg-white"
|
|
18424
|
+
white: "tw-bg-card"
|
|
18174
18425
|
},
|
|
18175
18426
|
isDisabled: {
|
|
18176
18427
|
true: "tw-cursor-not-allowed tw-opacity-50",
|
|
@@ -18235,7 +18486,7 @@ var CollapsiblePanel = ({
|
|
|
18235
18486
|
{
|
|
18236
18487
|
open,
|
|
18237
18488
|
className: cn(
|
|
18238
|
-
"tw-rounded !tw-border !tw-border-solid !tw-border-border tw-bg-
|
|
18489
|
+
"tw-rounded !tw-border !tw-border-solid !tw-border-border tw-bg-card",
|
|
18239
18490
|
className
|
|
18240
18491
|
),
|
|
18241
18492
|
header: /* @__PURE__ */ jsxs(
|
|
@@ -18443,6 +18694,18 @@ var tokensToCssVars = ({
|
|
|
18443
18694
|
vars.set("--font-weight-semibold", typography?.weight?.semibold);
|
|
18444
18695
|
vars.set("--font-weight-bold", typography?.weight?.bold);
|
|
18445
18696
|
vars.set("--letter-spacing-chrome", typography?.letterSpacing?.chrome);
|
|
18697
|
+
vars.set("--type-display-size", typography?.typeScale?.display?.size);
|
|
18698
|
+
vars.set("--type-display-weight", typography?.typeScale?.display?.weight);
|
|
18699
|
+
vars.set("--type-display-leading", typography?.typeScale?.display?.leading);
|
|
18700
|
+
vars.set("--type-display-tracking", typography?.typeScale?.display?.tracking);
|
|
18701
|
+
vars.set("--type-heading-size", typography?.typeScale?.heading?.size);
|
|
18702
|
+
vars.set("--type-heading-weight", typography?.typeScale?.heading?.weight);
|
|
18703
|
+
vars.set("--type-heading-leading", typography?.typeScale?.heading?.leading);
|
|
18704
|
+
vars.set("--type-heading-tracking", typography?.typeScale?.heading?.tracking);
|
|
18705
|
+
vars.set("--type-body-size", typography?.typeScale?.body?.size);
|
|
18706
|
+
vars.set("--type-body-weight", typography?.typeScale?.body?.weight);
|
|
18707
|
+
vars.set("--type-body-leading", typography?.typeScale?.body?.leading);
|
|
18708
|
+
vars.set("--type-body-tracking", typography?.typeScale?.body?.tracking);
|
|
18446
18709
|
vars.set("--radius-sm", radii?.sm);
|
|
18447
18710
|
vars.set("--radius-md", radii?.md);
|
|
18448
18711
|
vars.set("--radius-lg", radii?.lg);
|
|
@@ -22948,6 +23211,150 @@ var pairChunksIntoConflicts = (chunks) => {
|
|
|
22948
23211
|
}
|
|
22949
23212
|
return conflicts;
|
|
22950
23213
|
};
|
|
23214
|
+
var DashboardHeroRoot = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(
|
|
23215
|
+
"section",
|
|
23216
|
+
{
|
|
23217
|
+
className: cn(
|
|
23218
|
+
"tw-flex tw-flex-col tw-gap-6 tw-rounded-lg tw-border tw-border-solid tw-border-border tw-bg-card tw-p-8 tw-text-card-foreground",
|
|
23219
|
+
"md:tw-flex-row md:tw-items-center md:tw-justify-between",
|
|
23220
|
+
className
|
|
23221
|
+
),
|
|
23222
|
+
...rest,
|
|
23223
|
+
children
|
|
23224
|
+
}
|
|
23225
|
+
);
|
|
23226
|
+
var DashboardHeroBody = ({ className, children, ...rest }) => /* @__PURE__ */ jsx("div", { className: cn("tw-flex tw-flex-col tw-gap-3", className), ...rest, children });
|
|
23227
|
+
var DashboardHeroEyebrow = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(
|
|
23228
|
+
"p",
|
|
23229
|
+
{
|
|
23230
|
+
className: cn(
|
|
23231
|
+
"tw-m-0 tw-text-sm tw-font-semibold tw-uppercase tw-tracking-wide tw-text-primary",
|
|
23232
|
+
className
|
|
23233
|
+
),
|
|
23234
|
+
...rest,
|
|
23235
|
+
children
|
|
23236
|
+
}
|
|
23237
|
+
);
|
|
23238
|
+
var DashboardHeroTitle = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(
|
|
23239
|
+
"h1",
|
|
23240
|
+
{
|
|
23241
|
+
className: cn(
|
|
23242
|
+
"tw-m-0 tw-text-3xl tw-font-semibold tw-leading-tight tw-tracking-tight tw-text-foreground",
|
|
23243
|
+
className
|
|
23244
|
+
),
|
|
23245
|
+
...rest,
|
|
23246
|
+
children
|
|
23247
|
+
}
|
|
23248
|
+
);
|
|
23249
|
+
var DashboardHeroDescription = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(
|
|
23250
|
+
"p",
|
|
23251
|
+
{
|
|
23252
|
+
className: cn("tw-m-0 tw-max-w-prose tw-text-base tw-text-muted-foreground", className),
|
|
23253
|
+
...rest,
|
|
23254
|
+
children
|
|
23255
|
+
}
|
|
23256
|
+
);
|
|
23257
|
+
var DashboardHeroActions = ({ className, children, ...rest }) => /* @__PURE__ */ jsx("div", { className: cn("tw-mt-2 tw-flex tw-flex-wrap tw-items-center tw-gap-3", className), ...rest, children });
|
|
23258
|
+
var DashboardHeroAside = ({ className, children, ...rest }) => /* @__PURE__ */ jsx("div", { className: cn("tw-flex tw-shrink-0 tw-flex-col tw-gap-2", className), ...rest, children });
|
|
23259
|
+
var DashboardHero = DashboardHeroRoot;
|
|
23260
|
+
DashboardHero.Body = DashboardHeroBody;
|
|
23261
|
+
DashboardHero.Eyebrow = DashboardHeroEyebrow;
|
|
23262
|
+
DashboardHero.Title = DashboardHeroTitle;
|
|
23263
|
+
DashboardHero.Description = DashboardHeroDescription;
|
|
23264
|
+
DashboardHero.Actions = DashboardHeroActions;
|
|
23265
|
+
DashboardHero.Aside = DashboardHeroAside;
|
|
23266
|
+
var trendClassnames = cva(
|
|
23267
|
+
["tw-inline-flex", "tw-items-center", "tw-gap-1", "tw-text-sm", "tw-font-medium"],
|
|
23268
|
+
{
|
|
23269
|
+
variants: {
|
|
23270
|
+
direction: {
|
|
23271
|
+
up: "tw-text-success",
|
|
23272
|
+
down: "tw-text-destructive",
|
|
23273
|
+
flat: "tw-text-muted-foreground"
|
|
23274
|
+
}
|
|
23275
|
+
},
|
|
23276
|
+
defaultVariants: {
|
|
23277
|
+
direction: "flat"
|
|
23278
|
+
}
|
|
23279
|
+
}
|
|
23280
|
+
);
|
|
23281
|
+
var StatCardRoot = ({ className, children, bordered = true, ...rest }) => /* @__PURE__ */ jsx(Card, { bordered, className: cn("tw-gap-2", className), role: "group", ...rest, children });
|
|
23282
|
+
var StatCardIcon = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(
|
|
23283
|
+
"div",
|
|
23284
|
+
{
|
|
23285
|
+
className: cn(
|
|
23286
|
+
"tw-flex tw-size-9 tw-items-center tw-justify-center tw-rounded-md tw-bg-accent tw-text-accent-foreground",
|
|
23287
|
+
'[&_svg:not([class*="tw-size-"])]:tw-size-5',
|
|
23288
|
+
className
|
|
23289
|
+
),
|
|
23290
|
+
...rest,
|
|
23291
|
+
children
|
|
23292
|
+
}
|
|
23293
|
+
);
|
|
23294
|
+
var StatCardLabel = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(
|
|
23295
|
+
"p",
|
|
23296
|
+
{
|
|
23297
|
+
className: cn("tw-m-0 tw-text-sm tw-font-medium tw-text-muted-foreground", className),
|
|
23298
|
+
...rest,
|
|
23299
|
+
children
|
|
23300
|
+
}
|
|
23301
|
+
);
|
|
23302
|
+
var StatCardValue = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(
|
|
23303
|
+
"p",
|
|
23304
|
+
{
|
|
23305
|
+
className: cn(
|
|
23306
|
+
"tw-m-0 tw-text-3xl tw-font-semibold tw-leading-tight tw-tracking-tight tw-text-foreground",
|
|
23307
|
+
className
|
|
23308
|
+
),
|
|
23309
|
+
...rest,
|
|
23310
|
+
children
|
|
23311
|
+
}
|
|
23312
|
+
);
|
|
23313
|
+
var StatCardTrend = ({ className, direction = "flat", icon, children, ...rest }) => /* @__PURE__ */ jsxs("span", { className: trendClassnames({ direction, className }), ...rest, children: [
|
|
23314
|
+
icon,
|
|
23315
|
+
children
|
|
23316
|
+
] });
|
|
23317
|
+
var StatCardFootnote = ({ className, children, ...rest }) => /* @__PURE__ */ jsx("p", { className: cn("tw-m-0 tw-text-xs tw-text-muted-foreground", className), ...rest, children });
|
|
23318
|
+
var StatCard = StatCardRoot;
|
|
23319
|
+
StatCard.Icon = StatCardIcon;
|
|
23320
|
+
StatCard.Label = StatCardLabel;
|
|
23321
|
+
StatCard.Value = StatCardValue;
|
|
23322
|
+
StatCard.Trend = StatCardTrend;
|
|
23323
|
+
StatCard.Footnote = StatCardFootnote;
|
|
23324
|
+
var gridClassnames = cva(["tw-grid", "tw-gap-4"], {
|
|
23325
|
+
variants: {
|
|
23326
|
+
columns: {
|
|
23327
|
+
2: "tw-grid-cols-1 sm:tw-grid-cols-2",
|
|
23328
|
+
3: "tw-grid-cols-1 sm:tw-grid-cols-2 lg:tw-grid-cols-3",
|
|
23329
|
+
4: "tw-grid-cols-1 sm:tw-grid-cols-2 lg:tw-grid-cols-4"
|
|
23330
|
+
}
|
|
23331
|
+
},
|
|
23332
|
+
defaultVariants: {
|
|
23333
|
+
columns: 4
|
|
23334
|
+
}
|
|
23335
|
+
});
|
|
23336
|
+
var StatCardGrid = ({ className, columns = 4, children, ...rest }) => /* @__PURE__ */ jsx("div", { className: gridClassnames({ columns, className }), ...rest, children });
|
|
23337
|
+
var ChartPanel = ({
|
|
23338
|
+
title,
|
|
23339
|
+
description,
|
|
23340
|
+
titleAs = "h3",
|
|
23341
|
+
toolbar,
|
|
23342
|
+
footer,
|
|
23343
|
+
className,
|
|
23344
|
+
bordered = true,
|
|
23345
|
+
children,
|
|
23346
|
+
...rest
|
|
23347
|
+
}) => /* @__PURE__ */ jsxs(Card, { bordered, className: cn("tw-gap-4", className), ...rest, children: [
|
|
23348
|
+
/* @__PURE__ */ jsxs(Card.Header, { className: "tw-flex tw-items-start tw-justify-between tw-gap-4", children: [
|
|
23349
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
23350
|
+
/* @__PURE__ */ jsx(Card.Title, { as: titleAs, children: title }),
|
|
23351
|
+
description ? /* @__PURE__ */ jsx("p", { className: "tw-m-0 tw-text-sm tw-text-muted-foreground", children: description }) : null
|
|
23352
|
+
] }),
|
|
23353
|
+
toolbar ? /* @__PURE__ */ jsx("div", { className: "tw-flex tw-shrink-0 tw-items-center tw-gap-2", children: toolbar }) : null
|
|
23354
|
+
] }),
|
|
23355
|
+
/* @__PURE__ */ jsx(Card.Content, { children }),
|
|
23356
|
+
footer ? /* @__PURE__ */ jsx("div", { className: "tw-border-0 tw-border-t tw-border-solid tw-border-border tw-pt-3 tw-text-sm tw-text-muted-foreground", children: footer }) : null
|
|
23357
|
+
] });
|
|
22951
23358
|
var { fieldContext, useFieldContext, formContext, useFormContext } = createFormHookContexts();
|
|
22952
23359
|
var FormBody = ({ children, className, ...formProps }) => {
|
|
22953
23360
|
const form = useFormContext();
|
|
@@ -23387,6 +23794,686 @@ function useAutosizeInput({
|
|
|
23387
23794
|
] });
|
|
23388
23795
|
return { inputRef, inputStyle, sizerElement };
|
|
23389
23796
|
}
|
|
23797
|
+
|
|
23798
|
+
// src/blocks/BrandEditor/color.ts
|
|
23799
|
+
var hexToChannels = (hex) => {
|
|
23800
|
+
let h = hex.trim().replace(/^#/, "");
|
|
23801
|
+
if (h.length === 3 || h.length === 4) {
|
|
23802
|
+
h = h.slice(0, 3).split("").map((c) => c + c).join("");
|
|
23803
|
+
} else if (h.length === 8) {
|
|
23804
|
+
h = h.slice(0, 6);
|
|
23805
|
+
}
|
|
23806
|
+
if (!/^[0-9a-fA-F]{6}$/.test(h)) return "0 0 0";
|
|
23807
|
+
const n = parseInt(h, 16);
|
|
23808
|
+
return `${n >> 16 & 255} ${n >> 8 & 255} ${n & 255}`;
|
|
23809
|
+
};
|
|
23810
|
+
var channelsToHex = (channels) => {
|
|
23811
|
+
const [r = 0, g = 0, b = 0] = channels.trim().split(/\s+/).map((n) => Number(n) || 0);
|
|
23812
|
+
const to2 = (v) => Math.max(0, Math.min(255, v)).toString(16).padStart(2, "0");
|
|
23813
|
+
return `#${to2(r)}${to2(g)}${to2(b)}`;
|
|
23814
|
+
};
|
|
23815
|
+
var COMPLETE_HEX = /^([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;
|
|
23816
|
+
var ColorField = ({ id, label, channels, onChange }) => {
|
|
23817
|
+
const hex = channelsToHex(channels);
|
|
23818
|
+
return /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-items-center tw-justify-between tw-gap-2", children: [
|
|
23819
|
+
/* @__PURE__ */ jsx(Label2, { htmlFor: id, className: "tw-text-xs tw-font-normal tw-text-foreground", children: label }),
|
|
23820
|
+
/* @__PURE__ */ jsx(
|
|
23821
|
+
ColorInput,
|
|
23822
|
+
{
|
|
23823
|
+
id,
|
|
23824
|
+
sizing: "medium",
|
|
23825
|
+
value: hex,
|
|
23826
|
+
className: "tw-w-36",
|
|
23827
|
+
onValueChange: (next) => {
|
|
23828
|
+
const clean = next.trim().replace(/^#/, "");
|
|
23829
|
+
if (COMPLETE_HEX.test(clean)) onChange(hexToChannels(`#${clean}`));
|
|
23830
|
+
}
|
|
23831
|
+
}
|
|
23832
|
+
)
|
|
23833
|
+
] });
|
|
23834
|
+
};
|
|
23835
|
+
|
|
23836
|
+
// src/blocks/BrandEditor/contrast.ts
|
|
23837
|
+
var clampChannel = (n) => Number.isFinite(n) ? Math.min(255, Math.max(0, n)) : 0;
|
|
23838
|
+
var parseChannels = (channels) => {
|
|
23839
|
+
const [r = 0, g = 0, b = 0] = channels.trim().split(/\s+/).map((n) => clampChannel(Number(n)));
|
|
23840
|
+
return [r, g, b];
|
|
23841
|
+
};
|
|
23842
|
+
var relativeLuminance = (channels) => {
|
|
23843
|
+
const [r = 0, g = 0, b = 0] = parseChannels(channels).map((c) => {
|
|
23844
|
+
const s = c / 255;
|
|
23845
|
+
return s <= 0.03928 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;
|
|
23846
|
+
});
|
|
23847
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
23848
|
+
};
|
|
23849
|
+
var contrastRatio = (fg, bg) => {
|
|
23850
|
+
const l1 = relativeLuminance(fg);
|
|
23851
|
+
const l2 = relativeLuminance(bg);
|
|
23852
|
+
const [lighter, darker] = l1 >= l2 ? [l1, l2] : [l2, l1];
|
|
23853
|
+
return (lighter + 0.05) / (darker + 0.05);
|
|
23854
|
+
};
|
|
23855
|
+
var wcagLevel = (ratio) => ratio >= 7 ? "AAA" : ratio >= 4.5 ? "AA" : "fail";
|
|
23856
|
+
var ControlSection = ({ title, children }) => /* @__PURE__ */ jsxs("section", { className: "tw-flex tw-flex-col tw-gap-3 tw-border-b tw-border-border tw-p-4", children: [
|
|
23857
|
+
/* @__PURE__ */ jsx("h3", { className: "tw-m-0 tw-text-xs tw-font-semibold tw-uppercase tw-tracking-wide tw-text-muted-foreground", children: title }),
|
|
23858
|
+
children
|
|
23859
|
+
] });
|
|
23860
|
+
var LogoField = ({ id, label, value, onChange }) => /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
23861
|
+
/* @__PURE__ */ jsx(Label2, { htmlFor: id, className: "tw-text-xs tw-font-normal tw-text-foreground", children: label }),
|
|
23862
|
+
/* @__PURE__ */ jsx(
|
|
23863
|
+
Textarea,
|
|
23864
|
+
{
|
|
23865
|
+
id,
|
|
23866
|
+
value,
|
|
23867
|
+
onValueChange: onChange,
|
|
23868
|
+
maxRows: 4,
|
|
23869
|
+
placeholder: "<svg\u2026>, a data: URI, or an https:// URL",
|
|
23870
|
+
className: "tw-font-mono tw-text-xs"
|
|
23871
|
+
}
|
|
23872
|
+
)
|
|
23873
|
+
] });
|
|
23874
|
+
var TextField2 = ({ id, label, value, onChange, placeholder }) => /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
23875
|
+
/* @__PURE__ */ jsx(Label2, { htmlFor: id, className: "tw-text-xs tw-font-normal tw-text-foreground", children: label }),
|
|
23876
|
+
/* @__PURE__ */ jsx(
|
|
23877
|
+
TextInput,
|
|
23878
|
+
{
|
|
23879
|
+
id,
|
|
23880
|
+
sizing: "small",
|
|
23881
|
+
value,
|
|
23882
|
+
onValueChange: onChange,
|
|
23883
|
+
placeholder,
|
|
23884
|
+
className: "tw-font-mono tw-text-xs"
|
|
23885
|
+
}
|
|
23886
|
+
)
|
|
23887
|
+
] });
|
|
23888
|
+
var DEFAULT_FALLBACK_FONT = "'Inter', system-ui, sans-serif";
|
|
23889
|
+
var DEFAULT_FONT_OPTIONS = [
|
|
23890
|
+
{ value: DEFAULT_FALLBACK_FONT, label: "Inter (default)" },
|
|
23891
|
+
{ value: "'Space Grotesk', system-ui, sans-serif", label: "Space Grotesk" },
|
|
23892
|
+
{ value: "'Poppins', system-ui, sans-serif", label: "Poppins" },
|
|
23893
|
+
{ value: "'Manrope', system-ui, sans-serif", label: "Manrope" },
|
|
23894
|
+
{ value: "'Quicksand', system-ui, sans-serif", label: "Quicksand" },
|
|
23895
|
+
{ value: "'Baloo 2', system-ui, sans-serif", label: "Baloo 2" },
|
|
23896
|
+
{ value: "'Fraunces', Georgia, serif", label: "Fraunces (serif)" },
|
|
23897
|
+
{ value: "Georgia, 'Times New Roman', serif", label: "Georgia (serif)" },
|
|
23898
|
+
{ value: "'JetBrains Mono', ui-monospace, monospace", label: "JetBrains Mono" },
|
|
23899
|
+
{ value: "system-ui, sans-serif", label: "System UI" }
|
|
23900
|
+
];
|
|
23901
|
+
var COLOR_LABELS = {
|
|
23902
|
+
primary: "Primary",
|
|
23903
|
+
primaryForeground: "Primary foreground",
|
|
23904
|
+
background: "Background",
|
|
23905
|
+
foreground: "Foreground",
|
|
23906
|
+
card: "Card",
|
|
23907
|
+
cardForeground: "Card foreground",
|
|
23908
|
+
popover: "Popover",
|
|
23909
|
+
popoverForeground: "Popover foreground",
|
|
23910
|
+
secondary: "Secondary",
|
|
23911
|
+
secondaryForeground: "Secondary foreground",
|
|
23912
|
+
muted: "Muted",
|
|
23913
|
+
mutedForeground: "Muted foreground",
|
|
23914
|
+
accent: "Accent",
|
|
23915
|
+
accentForeground: "Accent foreground",
|
|
23916
|
+
border: "Border",
|
|
23917
|
+
input: "Input",
|
|
23918
|
+
ring: "Ring",
|
|
23919
|
+
ringOffset: "Ring offset",
|
|
23920
|
+
destructive: "Destructive",
|
|
23921
|
+
destructiveForeground: "Destructive foreground",
|
|
23922
|
+
success: "Success",
|
|
23923
|
+
successForeground: "Success foreground",
|
|
23924
|
+
warning: "Warning",
|
|
23925
|
+
warningForeground: "Warning foreground",
|
|
23926
|
+
info: "Info",
|
|
23927
|
+
infoForeground: "Info foreground"
|
|
23928
|
+
};
|
|
23929
|
+
var SIDEBAR_LABELS = {
|
|
23930
|
+
sidebar: "Sidebar",
|
|
23931
|
+
sidebarForeground: "Foreground",
|
|
23932
|
+
sidebarPrimary: "Primary",
|
|
23933
|
+
sidebarPrimaryForeground: "Primary foreground",
|
|
23934
|
+
sidebarAccent: "Accent",
|
|
23935
|
+
sidebarAccentForeground: "Accent foreground",
|
|
23936
|
+
sidebarBorder: "Border",
|
|
23937
|
+
sidebarRing: "Ring"
|
|
23938
|
+
};
|
|
23939
|
+
var CHART_LABELS = {
|
|
23940
|
+
chart1: "Chart 1",
|
|
23941
|
+
chart2: "Chart 2",
|
|
23942
|
+
chart3: "Chart 3",
|
|
23943
|
+
chart4: "Chart 4",
|
|
23944
|
+
chart5: "Chart 5"
|
|
23945
|
+
};
|
|
23946
|
+
var WEIGHT_LABELS = {
|
|
23947
|
+
normal: "Normal",
|
|
23948
|
+
medium: "Medium",
|
|
23949
|
+
semibold: "Semibold",
|
|
23950
|
+
bold: "Bold"
|
|
23951
|
+
};
|
|
23952
|
+
var SHADOW_LABELS = {
|
|
23953
|
+
sm: "Small",
|
|
23954
|
+
md: "Medium",
|
|
23955
|
+
lg: "Large",
|
|
23956
|
+
lift: "Lift (raised)"
|
|
23957
|
+
};
|
|
23958
|
+
var SPACING_LABELS = {
|
|
23959
|
+
gutter: "Gutter (between sections)",
|
|
23960
|
+
inset: "Inset (in-container)"
|
|
23961
|
+
};
|
|
23962
|
+
var MOTION_LABELS = {
|
|
23963
|
+
duration: "Duration",
|
|
23964
|
+
easing: "Easing"
|
|
23965
|
+
};
|
|
23966
|
+
var COLOR_SLOTS = Object.keys(COLOR_LABELS);
|
|
23967
|
+
var SIDEBAR_SLOTS = Object.keys(SIDEBAR_LABELS);
|
|
23968
|
+
var CHART_SLOTS = Object.keys(CHART_LABELS);
|
|
23969
|
+
var WEIGHT_SLOTS = Object.keys(WEIGHT_LABELS);
|
|
23970
|
+
var SHADOW_SLOTS = Object.keys(SHADOW_LABELS);
|
|
23971
|
+
var SPACING_SLOTS = Object.keys(SPACING_LABELS);
|
|
23972
|
+
var MOTION_SLOTS = Object.keys(MOTION_LABELS);
|
|
23973
|
+
var RADIUS_SIZES = ["sm", "md", "lg"];
|
|
23974
|
+
var A11Y_PAIRS = [
|
|
23975
|
+
{ label: "Text on background", fg: "foreground", bg: "background" },
|
|
23976
|
+
{ label: "Text on card", fg: "cardForeground", bg: "card" },
|
|
23977
|
+
{ label: "Primary button", fg: "primaryForeground", bg: "primary" },
|
|
23978
|
+
{ label: "Muted text", fg: "mutedForeground", bg: "muted" },
|
|
23979
|
+
{ label: "Accent", fg: "accentForeground", bg: "accent" }
|
|
23980
|
+
];
|
|
23981
|
+
var DEFAULT_SIDEBAR = {
|
|
23982
|
+
light: {
|
|
23983
|
+
sidebar: "255 255 255",
|
|
23984
|
+
sidebarForeground: "30 41 59",
|
|
23985
|
+
sidebarPrimary: "31 143 255",
|
|
23986
|
+
sidebarPrimaryForeground: "255 255 255",
|
|
23987
|
+
sidebarAccent: "219 234 254",
|
|
23988
|
+
sidebarAccentForeground: "30 41 59",
|
|
23989
|
+
sidebarBorder: "229 231 235",
|
|
23990
|
+
sidebarRing: "31 143 255"
|
|
23991
|
+
},
|
|
23992
|
+
dark: {
|
|
23993
|
+
sidebar: "14 14 18",
|
|
23994
|
+
sidebarForeground: "229 230 236",
|
|
23995
|
+
sidebarPrimary: "31 143 255",
|
|
23996
|
+
sidebarPrimaryForeground: "255 255 255",
|
|
23997
|
+
sidebarAccent: "38 38 45",
|
|
23998
|
+
sidebarAccentForeground: "229 230 236",
|
|
23999
|
+
sidebarBorder: "48 49 57",
|
|
24000
|
+
sidebarRing: "31 143 255"
|
|
24001
|
+
}
|
|
24002
|
+
};
|
|
24003
|
+
var DEFAULT_RADII = {
|
|
24004
|
+
sm: "0.25rem",
|
|
24005
|
+
md: "0.375rem",
|
|
24006
|
+
lg: "0.5rem"
|
|
24007
|
+
};
|
|
24008
|
+
var DEFAULT_CHART = {
|
|
24009
|
+
light: {
|
|
24010
|
+
chart1: "31 143 255",
|
|
24011
|
+
chart2: "0 194 135",
|
|
24012
|
+
chart3: "146 92 255",
|
|
24013
|
+
chart4: "245 147 0",
|
|
24014
|
+
chart5: "237 94 223"
|
|
24015
|
+
},
|
|
24016
|
+
dark: {
|
|
24017
|
+
chart1: "92 173 255",
|
|
24018
|
+
chart2: "0 230 161",
|
|
24019
|
+
chart3: "173 133 255",
|
|
24020
|
+
chart4: "255 190 92",
|
|
24021
|
+
chart5: "242 140 232"
|
|
24022
|
+
}
|
|
24023
|
+
};
|
|
24024
|
+
var DEFAULT_FONT_WEIGHTS = {
|
|
24025
|
+
normal: "400",
|
|
24026
|
+
medium: "500",
|
|
24027
|
+
semibold: "600",
|
|
24028
|
+
bold: "700"
|
|
24029
|
+
};
|
|
24030
|
+
var DEFAULT_LETTER_SPACING = "1px";
|
|
24031
|
+
var MONO_FALLBACK = "'JetBrains Mono', ui-monospace, monospace";
|
|
24032
|
+
var DEFAULT_SHADOWS = {
|
|
24033
|
+
sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
|
|
24034
|
+
md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
|
|
24035
|
+
lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
|
|
24036
|
+
lift: "0 10px 30px -12px rgb(0 0 0 / 0.28), 0 2px 6px rgb(0 0 0 / 0.06)"
|
|
24037
|
+
};
|
|
24038
|
+
var DEFAULT_SPACING = {
|
|
24039
|
+
gutter: "1.5rem",
|
|
24040
|
+
inset: "1.5rem"
|
|
24041
|
+
};
|
|
24042
|
+
var DEFAULT_MOTION = {
|
|
24043
|
+
duration: "200ms",
|
|
24044
|
+
easing: "cubic-bezier(0.2, 0.7, 0.2, 1)"
|
|
24045
|
+
};
|
|
24046
|
+
var DEFAULT_GRADIENT = "linear-gradient(135deg, rgb(var(--color-primary)), rgb(var(--color-accent, var(--color-primary))))";
|
|
24047
|
+
var numOf = (value, fallback) => {
|
|
24048
|
+
const n = Number.parseFloat(value);
|
|
24049
|
+
return Number.isFinite(n) ? n : fallback;
|
|
24050
|
+
};
|
|
24051
|
+
var letterSpacingToPx = (value) => {
|
|
24052
|
+
const n = Number.parseFloat(value);
|
|
24053
|
+
if (!Number.isFinite(n)) return 0;
|
|
24054
|
+
return value.trim().endsWith("em") ? n * 16 : n;
|
|
24055
|
+
};
|
|
24056
|
+
var pxToLetterSpacing = (px, currentValue) => currentValue.trim().endsWith("em") ? `${Number((px / 16).toFixed(3))}em` : `${px}px`;
|
|
24057
|
+
var lengthToPx = (value) => {
|
|
24058
|
+
const n = Number.parseFloat(value);
|
|
24059
|
+
if (!Number.isFinite(n)) return 0;
|
|
24060
|
+
return Math.round(value.trim().endsWith("rem") ? n * 16 : n);
|
|
24061
|
+
};
|
|
24062
|
+
var pxToLength = (px, currentValue) => {
|
|
24063
|
+
const trimmed = currentValue.trim();
|
|
24064
|
+
if (trimmed.endsWith("rem")) return `${px / 16}rem`;
|
|
24065
|
+
if (/^-?\d*\.?\d+$/.test(trimmed)) return `${px}`;
|
|
24066
|
+
return `${px}px`;
|
|
24067
|
+
};
|
|
24068
|
+
var isSvgMarkup = (source) => source.trimStart().startsWith("<");
|
|
24069
|
+
var isImageSource = (source) => /^(data:|https?:\/\/)/.test(source.trim());
|
|
24070
|
+
var LogoPreviewImage = ({ source, className }) => {
|
|
24071
|
+
const safeSvg = useMemo(
|
|
24072
|
+
() => isSvgMarkup(source) ? DOMPurify.sanitize(source, { USE_PROFILES: { svg: true, svgFilters: true } }) : null,
|
|
24073
|
+
[source]
|
|
24074
|
+
);
|
|
24075
|
+
if (safeSvg !== null) {
|
|
24076
|
+
return /* @__PURE__ */ jsx("span", { "aria-hidden": true, className, dangerouslySetInnerHTML: { __html: safeSvg } });
|
|
24077
|
+
}
|
|
24078
|
+
if (isImageSource(source)) {
|
|
24079
|
+
return /* @__PURE__ */ jsx("img", { src: source, alt: "", className });
|
|
24080
|
+
}
|
|
24081
|
+
return null;
|
|
24082
|
+
};
|
|
24083
|
+
var BrandEditor = ({
|
|
24084
|
+
value,
|
|
24085
|
+
onChange,
|
|
24086
|
+
colorScheme = "light",
|
|
24087
|
+
onColorSchemeChange,
|
|
24088
|
+
fontOptions = DEFAULT_FONT_OPTIONS
|
|
24089
|
+
}) => {
|
|
24090
|
+
const baseId = useId();
|
|
24091
|
+
const { theme } = value;
|
|
24092
|
+
const coreColors = colorScheme === "light" ? theme.colors : theme.colorsDark;
|
|
24093
|
+
const sidebarColors = colorScheme === "light" ? theme.colors?.sidebar : theme.colorsDark?.sidebar;
|
|
24094
|
+
const chartColors = colorScheme === "light" ? theme.colors?.chart : theme.colorsDark?.chart;
|
|
24095
|
+
const defaultColors = colorScheme === "light" ? keboola.theme.colors : keboola.theme.colorsDark;
|
|
24096
|
+
const radii = theme.radii ?? DEFAULT_RADII;
|
|
24097
|
+
const typography = theme.typography;
|
|
24098
|
+
const setColor = (slot, channels) => {
|
|
24099
|
+
if (colorScheme === "light") {
|
|
24100
|
+
onChange({ ...value, theme: { ...theme, colors: { ...theme.colors, [slot]: channels } } });
|
|
24101
|
+
return;
|
|
24102
|
+
}
|
|
24103
|
+
onChange({
|
|
24104
|
+
...value,
|
|
24105
|
+
theme: { ...theme, colorsDark: { ...theme.colorsDark, [slot]: channels } }
|
|
24106
|
+
});
|
|
24107
|
+
};
|
|
24108
|
+
const setSidebarColor = (slot, channels) => {
|
|
24109
|
+
if (colorScheme === "light") {
|
|
24110
|
+
const base = theme.colors?.sidebar ?? DEFAULT_SIDEBAR.light;
|
|
24111
|
+
onChange({
|
|
24112
|
+
...value,
|
|
24113
|
+
theme: { ...theme, colors: { ...theme.colors, sidebar: { ...base, [slot]: channels } } }
|
|
24114
|
+
});
|
|
24115
|
+
return;
|
|
24116
|
+
}
|
|
24117
|
+
const sidebarBase = theme.colorsDark?.sidebar ?? DEFAULT_SIDEBAR.dark;
|
|
24118
|
+
onChange({
|
|
24119
|
+
...value,
|
|
24120
|
+
theme: {
|
|
24121
|
+
...theme,
|
|
24122
|
+
colorsDark: { ...theme.colorsDark, sidebar: { ...sidebarBase, [slot]: channels } }
|
|
24123
|
+
}
|
|
24124
|
+
});
|
|
24125
|
+
};
|
|
24126
|
+
const setChart = (slot, channels) => {
|
|
24127
|
+
const base = chartColors ?? DEFAULT_CHART[colorScheme];
|
|
24128
|
+
const chart = { ...base, [slot]: channels };
|
|
24129
|
+
if (colorScheme === "light") {
|
|
24130
|
+
onChange({ ...value, theme: { ...theme, colors: { ...theme.colors, chart } } });
|
|
24131
|
+
return;
|
|
24132
|
+
}
|
|
24133
|
+
onChange({ ...value, theme: { ...theme, colorsDark: { ...theme.colorsDark, chart } } });
|
|
24134
|
+
};
|
|
24135
|
+
const setRadius = (size, radius) => onChange({
|
|
24136
|
+
...value,
|
|
24137
|
+
theme: { ...theme, radii: { ...theme.radii ?? DEFAULT_RADII, [size]: radius } }
|
|
24138
|
+
});
|
|
24139
|
+
const patchTypography = (patch) => onChange({ ...value, theme: { ...theme, typography: { ...theme.typography, ...patch } } });
|
|
24140
|
+
const setFontFace = (face, font) => patchTypography({ [face]: font.trim() || void 0 });
|
|
24141
|
+
const setFontWeight = (slot, weight) => patchTypography({ weight: { ...theme.typography?.weight, [slot]: weight || void 0 } });
|
|
24142
|
+
const setLetterSpacing = (chrome) => patchTypography({ letterSpacing: { chrome: chrome.trim() || void 0 } });
|
|
24143
|
+
const setShadow = (slot, shadow) => onChange({
|
|
24144
|
+
...value,
|
|
24145
|
+
theme: { ...theme, shadows: { ...theme.shadows, [slot]: shadow.trim() || void 0 } }
|
|
24146
|
+
});
|
|
24147
|
+
const setSpacing = (slot, length) => onChange({
|
|
24148
|
+
...value,
|
|
24149
|
+
theme: { ...theme, spacing: { ...theme.spacing, [slot]: length.trim() || void 0 } }
|
|
24150
|
+
});
|
|
24151
|
+
const setMotion = (slot, token) => onChange({
|
|
24152
|
+
...value,
|
|
24153
|
+
theme: { ...theme, motion: { ...theme.motion, [slot]: token.trim() || void 0 } }
|
|
24154
|
+
});
|
|
24155
|
+
const setGradient = (gradient) => onChange({
|
|
24156
|
+
...value,
|
|
24157
|
+
theme: { ...theme, gradient: { brand: gradient.trim() || void 0 } }
|
|
24158
|
+
});
|
|
24159
|
+
const setLogo = (slot, source) => {
|
|
24160
|
+
const trimmed = source.trim();
|
|
24161
|
+
const nextLogo = { ...value.logo };
|
|
24162
|
+
if (trimmed) nextLogo[slot] = trimmed;
|
|
24163
|
+
else delete nextLogo[slot];
|
|
24164
|
+
const { logo: _drop, ...rest } = value;
|
|
24165
|
+
onChange(Object.keys(nextLogo).length > 0 ? { ...value, logo: nextLogo } : rest);
|
|
24166
|
+
};
|
|
24167
|
+
return /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col", children: [
|
|
24168
|
+
/* @__PURE__ */ jsxs(ControlSection, { title: "Colors", children: [
|
|
24169
|
+
onColorSchemeChange ? /* @__PURE__ */ jsxs(
|
|
24170
|
+
ToggleGroup,
|
|
24171
|
+
{
|
|
24172
|
+
type: "single",
|
|
24173
|
+
value: colorScheme,
|
|
24174
|
+
onValueChange: (next) => {
|
|
24175
|
+
if (next === "light" || next === "dark") onColorSchemeChange(next);
|
|
24176
|
+
},
|
|
24177
|
+
"aria-label": "Color scheme",
|
|
24178
|
+
className: "tw-w-full",
|
|
24179
|
+
children: [
|
|
24180
|
+
/* @__PURE__ */ jsx(ToggleGroup.Item, { value: "light", className: "tw-flex-1", children: "Light" }),
|
|
24181
|
+
/* @__PURE__ */ jsx(ToggleGroup.Item, { value: "dark", className: "tw-flex-1", children: "Dark" })
|
|
24182
|
+
]
|
|
24183
|
+
}
|
|
24184
|
+
) : null,
|
|
24185
|
+
/* @__PURE__ */ jsx("div", { className: "tw-flex tw-flex-col tw-gap-2", children: COLOR_SLOTS.map((slot) => /* @__PURE__ */ jsx(
|
|
24186
|
+
ColorField,
|
|
24187
|
+
{
|
|
24188
|
+
id: `${baseId}color-${colorScheme}-${slot}`,
|
|
24189
|
+
label: COLOR_LABELS[slot],
|
|
24190
|
+
channels: coreColors?.[slot] ?? defaultColors?.[slot] ?? "0 0 0",
|
|
24191
|
+
onChange: (channels) => setColor(slot, channels)
|
|
24192
|
+
},
|
|
24193
|
+
slot
|
|
24194
|
+
)) })
|
|
24195
|
+
] }),
|
|
24196
|
+
/* @__PURE__ */ jsxs(ControlSection, { title: "Accessibility", children: [
|
|
24197
|
+
/* @__PURE__ */ jsxs("p", { className: "tw-m-0 tw-text-xs tw-text-muted-foreground", children: [
|
|
24198
|
+
"WCAG contrast for the ",
|
|
24199
|
+
colorScheme,
|
|
24200
|
+
" palette (AA needs 4.5:1)."
|
|
24201
|
+
] }),
|
|
24202
|
+
/* @__PURE__ */ jsx("div", { className: "tw-flex tw-flex-col tw-gap-1.5", children: A11Y_PAIRS.map((pair) => {
|
|
24203
|
+
const fg = coreColors?.[pair.fg] ?? defaultColors?.[pair.fg] ?? "0 0 0";
|
|
24204
|
+
const bg = coreColors?.[pair.bg] ?? defaultColors?.[pair.bg] ?? "255 255 255";
|
|
24205
|
+
const ratio = contrastRatio(fg, bg);
|
|
24206
|
+
const level = wcagLevel(ratio);
|
|
24207
|
+
return /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-items-center tw-justify-between tw-gap-2", children: [
|
|
24208
|
+
/* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-text-foreground", children: pair.label }),
|
|
24209
|
+
/* @__PURE__ */ jsxs("span", { className: "tw-flex tw-items-center tw-gap-1.5", children: [
|
|
24210
|
+
/* @__PURE__ */ jsxs("span", { className: "tw-text-xs tw-tabular-nums tw-text-muted-foreground", children: [
|
|
24211
|
+
ratio.toFixed(1),
|
|
24212
|
+
":1"
|
|
24213
|
+
] }),
|
|
24214
|
+
/* @__PURE__ */ jsx(Badge, { color: level === "fail" ? "red" : "green", children: level === "fail" ? "Fail" : level })
|
|
24215
|
+
] })
|
|
24216
|
+
] }, pair.label);
|
|
24217
|
+
}) })
|
|
24218
|
+
] }),
|
|
24219
|
+
/* @__PURE__ */ jsx(ControlSection, { title: "Sidebar colors", children: /* @__PURE__ */ jsxs(Collapsible, { className: "tw-flex tw-flex-col tw-gap-2", children: [
|
|
24220
|
+
/* @__PURE__ */ jsx(Collapsible.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", size: "small", className: "tw-w-full", children: [
|
|
24221
|
+
"Toggle sidebar tokens (",
|
|
24222
|
+
colorScheme,
|
|
24223
|
+
")"
|
|
24224
|
+
] }) }),
|
|
24225
|
+
/* @__PURE__ */ jsx(Collapsible.Content, { className: "tw-flex tw-flex-col tw-gap-2", children: SIDEBAR_SLOTS.map((slot) => /* @__PURE__ */ jsx(
|
|
24226
|
+
ColorField,
|
|
24227
|
+
{
|
|
24228
|
+
id: `${baseId}sidebar-${colorScheme}-${slot}`,
|
|
24229
|
+
label: SIDEBAR_LABELS[slot],
|
|
24230
|
+
channels: sidebarColors?.[slot] ?? DEFAULT_SIDEBAR[colorScheme][slot],
|
|
24231
|
+
onChange: (channels) => setSidebarColor(slot, channels)
|
|
24232
|
+
},
|
|
24233
|
+
slot
|
|
24234
|
+
)) })
|
|
24235
|
+
] }) }),
|
|
24236
|
+
/* @__PURE__ */ jsxs(ControlSection, { title: "Chart palette", children: [
|
|
24237
|
+
/* @__PURE__ */ jsxs("p", { className: "tw-m-0 tw-text-xs tw-text-muted-foreground", children: [
|
|
24238
|
+
"Categorical series colours for the ",
|
|
24239
|
+
colorScheme,
|
|
24240
|
+
" palette (`--color-chart-1\u20265`)."
|
|
24241
|
+
] }),
|
|
24242
|
+
/* @__PURE__ */ jsx("div", { className: "tw-flex tw-flex-col tw-gap-2", children: CHART_SLOTS.map((slot) => /* @__PURE__ */ jsx(
|
|
24243
|
+
ColorField,
|
|
24244
|
+
{
|
|
24245
|
+
id: `${baseId}chart-${colorScheme}-${slot}`,
|
|
24246
|
+
label: CHART_LABELS[slot],
|
|
24247
|
+
channels: chartColors?.[slot] ?? DEFAULT_CHART[colorScheme][slot],
|
|
24248
|
+
onChange: (channels) => setChart(slot, channels)
|
|
24249
|
+
},
|
|
24250
|
+
slot
|
|
24251
|
+
)) })
|
|
24252
|
+
] }),
|
|
24253
|
+
/* @__PURE__ */ jsx(ControlSection, { title: "Radius", children: RADIUS_SIZES.map((size) => {
|
|
24254
|
+
const current = radii[size];
|
|
24255
|
+
const px = lengthToPx(current);
|
|
24256
|
+
return /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
24257
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-items-center tw-justify-between", children: [
|
|
24258
|
+
/* @__PURE__ */ jsx(Label2, { className: "tw-text-xs tw-font-normal tw-uppercase tw-text-foreground", children: size }),
|
|
24259
|
+
/* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-tabular-nums tw-text-muted-foreground", children: radii[size] })
|
|
24260
|
+
] }),
|
|
24261
|
+
/* @__PURE__ */ jsx(
|
|
24262
|
+
Slider,
|
|
24263
|
+
{
|
|
24264
|
+
min: 0,
|
|
24265
|
+
max: 24,
|
|
24266
|
+
step: 1,
|
|
24267
|
+
value: [px],
|
|
24268
|
+
onValueChange: (values) => setRadius(size, pxToLength(values[0] ?? 0, current))
|
|
24269
|
+
}
|
|
24270
|
+
)
|
|
24271
|
+
] }, size);
|
|
24272
|
+
}) }),
|
|
24273
|
+
/* @__PURE__ */ jsxs(ControlSection, { title: "Typography", children: [
|
|
24274
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
24275
|
+
/* @__PURE__ */ jsx(
|
|
24276
|
+
Label2,
|
|
24277
|
+
{
|
|
24278
|
+
htmlFor: `${baseId}font-family`,
|
|
24279
|
+
className: "tw-text-xs tw-font-normal tw-text-foreground",
|
|
24280
|
+
children: "Font family"
|
|
24281
|
+
}
|
|
24282
|
+
),
|
|
24283
|
+
/* @__PURE__ */ jsx(
|
|
24284
|
+
Select2,
|
|
24285
|
+
{
|
|
24286
|
+
id: `${baseId}font-family`,
|
|
24287
|
+
value: typography?.fontFamily ?? DEFAULT_FALLBACK_FONT,
|
|
24288
|
+
onValueChange: (font) => setFontFace("fontFamily", font),
|
|
24289
|
+
items: fontOptions
|
|
24290
|
+
}
|
|
24291
|
+
)
|
|
24292
|
+
] }),
|
|
24293
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
24294
|
+
/* @__PURE__ */ jsx(
|
|
24295
|
+
Label2,
|
|
24296
|
+
{
|
|
24297
|
+
htmlFor: `${baseId}font-display`,
|
|
24298
|
+
className: "tw-text-xs tw-font-normal tw-text-foreground",
|
|
24299
|
+
children: "Display font (headings)"
|
|
24300
|
+
}
|
|
24301
|
+
),
|
|
24302
|
+
/* @__PURE__ */ jsx(
|
|
24303
|
+
Select2,
|
|
24304
|
+
{
|
|
24305
|
+
id: `${baseId}font-display`,
|
|
24306
|
+
value: typography?.fontDisplay ?? typography?.fontFamily ?? DEFAULT_FALLBACK_FONT,
|
|
24307
|
+
onValueChange: (font) => setFontFace("fontDisplay", font),
|
|
24308
|
+
items: fontOptions
|
|
24309
|
+
}
|
|
24310
|
+
)
|
|
24311
|
+
] }),
|
|
24312
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
24313
|
+
/* @__PURE__ */ jsx(
|
|
24314
|
+
Label2,
|
|
24315
|
+
{
|
|
24316
|
+
htmlFor: `${baseId}font-mono`,
|
|
24317
|
+
className: "tw-text-xs tw-font-normal tw-text-foreground",
|
|
24318
|
+
children: "Monospace font"
|
|
24319
|
+
}
|
|
24320
|
+
),
|
|
24321
|
+
/* @__PURE__ */ jsx(
|
|
24322
|
+
Select2,
|
|
24323
|
+
{
|
|
24324
|
+
id: `${baseId}font-mono`,
|
|
24325
|
+
value: typography?.fontMono ?? MONO_FALLBACK,
|
|
24326
|
+
onValueChange: (font) => setFontFace("fontMono", font),
|
|
24327
|
+
items: fontOptions
|
|
24328
|
+
}
|
|
24329
|
+
)
|
|
24330
|
+
] }),
|
|
24331
|
+
/* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-text-muted-foreground", children: "Chrome font weights" }),
|
|
24332
|
+
WEIGHT_SLOTS.map((slot) => {
|
|
24333
|
+
const current = typography?.weight?.[slot] ?? DEFAULT_FONT_WEIGHTS[slot];
|
|
24334
|
+
return /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
24335
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-items-center tw-justify-between", children: [
|
|
24336
|
+
/* @__PURE__ */ jsx(Label2, { className: "tw-text-xs tw-font-normal tw-text-foreground", children: WEIGHT_LABELS[slot] }),
|
|
24337
|
+
/* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-tabular-nums tw-text-muted-foreground", children: current })
|
|
24338
|
+
] }),
|
|
24339
|
+
/* @__PURE__ */ jsx(
|
|
24340
|
+
Slider,
|
|
24341
|
+
{
|
|
24342
|
+
min: 100,
|
|
24343
|
+
max: 900,
|
|
24344
|
+
step: 25,
|
|
24345
|
+
value: [numOf(current, 400)],
|
|
24346
|
+
onValueChange: (values) => setFontWeight(slot, String(values[0] ?? 400))
|
|
24347
|
+
}
|
|
24348
|
+
)
|
|
24349
|
+
] }, slot);
|
|
24350
|
+
}),
|
|
24351
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
24352
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-items-center tw-justify-between", children: [
|
|
24353
|
+
/* @__PURE__ */ jsx(Label2, { className: "tw-text-xs tw-font-normal tw-text-foreground", children: "Chrome letter spacing" }),
|
|
24354
|
+
/* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-tabular-nums tw-text-muted-foreground", children: typography?.letterSpacing?.chrome ?? DEFAULT_LETTER_SPACING })
|
|
24355
|
+
] }),
|
|
24356
|
+
/* @__PURE__ */ jsx(
|
|
24357
|
+
Slider,
|
|
24358
|
+
{
|
|
24359
|
+
min: -2,
|
|
24360
|
+
max: 4,
|
|
24361
|
+
step: 0.25,
|
|
24362
|
+
value: [letterSpacingToPx(typography?.letterSpacing?.chrome ?? DEFAULT_LETTER_SPACING)],
|
|
24363
|
+
onValueChange: (values) => setLetterSpacing(
|
|
24364
|
+
pxToLetterSpacing(
|
|
24365
|
+
values[0] ?? 0,
|
|
24366
|
+
typography?.letterSpacing?.chrome ?? DEFAULT_LETTER_SPACING
|
|
24367
|
+
)
|
|
24368
|
+
)
|
|
24369
|
+
}
|
|
24370
|
+
)
|
|
24371
|
+
] })
|
|
24372
|
+
] }),
|
|
24373
|
+
/* @__PURE__ */ jsxs(ControlSection, { title: "Elevation", children: [
|
|
24374
|
+
/* @__PURE__ */ jsx("p", { className: "tw-m-0 tw-text-xs tw-text-muted-foreground", children: "Box-shadow scale (`--shadow-*`), shared across light & dark. Empty inherits the default." }),
|
|
24375
|
+
SHADOW_SLOTS.map((slot) => /* @__PURE__ */ jsx(
|
|
24376
|
+
TextField2,
|
|
24377
|
+
{
|
|
24378
|
+
id: `${baseId}shadow-${slot}`,
|
|
24379
|
+
label: SHADOW_LABELS[slot],
|
|
24380
|
+
value: theme.shadows?.[slot] ?? "",
|
|
24381
|
+
placeholder: DEFAULT_SHADOWS[slot],
|
|
24382
|
+
onChange: (next) => setShadow(slot, next)
|
|
24383
|
+
},
|
|
24384
|
+
slot
|
|
24385
|
+
))
|
|
24386
|
+
] }),
|
|
24387
|
+
/* @__PURE__ */ jsxs(ControlSection, { title: "Density", children: [
|
|
24388
|
+
/* @__PURE__ */ jsx("p", { className: "tw-m-0 tw-text-xs tw-text-muted-foreground", children: "Semantic spacing (`--space-*`), as CSS lengths." }),
|
|
24389
|
+
SPACING_SLOTS.map((slot) => /* @__PURE__ */ jsx(
|
|
24390
|
+
TextField2,
|
|
24391
|
+
{
|
|
24392
|
+
id: `${baseId}spacing-${slot}`,
|
|
24393
|
+
label: SPACING_LABELS[slot],
|
|
24394
|
+
value: theme.spacing?.[slot] ?? "",
|
|
24395
|
+
placeholder: DEFAULT_SPACING[slot],
|
|
24396
|
+
onChange: (next) => setSpacing(slot, next)
|
|
24397
|
+
},
|
|
24398
|
+
slot
|
|
24399
|
+
))
|
|
24400
|
+
] }),
|
|
24401
|
+
/* @__PURE__ */ jsxs(ControlSection, { title: "Motion", children: [
|
|
24402
|
+
/* @__PURE__ */ jsx("p", { className: "tw-m-0 tw-text-xs tw-text-muted-foreground", children: "Base transition `duration` + `easing` (`--motion-*`)." }),
|
|
24403
|
+
MOTION_SLOTS.map((slot) => /* @__PURE__ */ jsx(
|
|
24404
|
+
TextField2,
|
|
24405
|
+
{
|
|
24406
|
+
id: `${baseId}motion-${slot}`,
|
|
24407
|
+
label: MOTION_LABELS[slot],
|
|
24408
|
+
value: theme.motion?.[slot] ?? "",
|
|
24409
|
+
placeholder: DEFAULT_MOTION[slot],
|
|
24410
|
+
onChange: (next) => setMotion(slot, next)
|
|
24411
|
+
},
|
|
24412
|
+
slot
|
|
24413
|
+
))
|
|
24414
|
+
] }),
|
|
24415
|
+
/* @__PURE__ */ jsx(ControlSection, { title: "Gradient", children: /* @__PURE__ */ jsx(
|
|
24416
|
+
TextField2,
|
|
24417
|
+
{
|
|
24418
|
+
id: `${baseId}gradient-brand`,
|
|
24419
|
+
label: "Brand gradient",
|
|
24420
|
+
value: theme.gradient?.brand ?? "",
|
|
24421
|
+
placeholder: DEFAULT_GRADIENT,
|
|
24422
|
+
onChange: setGradient
|
|
24423
|
+
}
|
|
24424
|
+
) }),
|
|
24425
|
+
/* @__PURE__ */ jsxs(ControlSection, { title: "Logo", children: [
|
|
24426
|
+
/* @__PURE__ */ jsx(
|
|
24427
|
+
LogoField,
|
|
24428
|
+
{
|
|
24429
|
+
id: `${baseId}logo-mark`,
|
|
24430
|
+
label: "Mark (icon)",
|
|
24431
|
+
value: value.logo?.mark ?? "",
|
|
24432
|
+
onChange: (source) => setLogo("mark", source)
|
|
24433
|
+
}
|
|
24434
|
+
),
|
|
24435
|
+
/* @__PURE__ */ jsx(
|
|
24436
|
+
LogoField,
|
|
24437
|
+
{
|
|
24438
|
+
id: `${baseId}logo-wordmark`,
|
|
24439
|
+
label: "Wordmark (full)",
|
|
24440
|
+
value: value.logo?.wordmark ?? "",
|
|
24441
|
+
onChange: (source) => setLogo("wordmark", source)
|
|
24442
|
+
}
|
|
24443
|
+
),
|
|
24444
|
+
/* @__PURE__ */ jsxs(Collapsible, { className: "tw-flex tw-flex-col tw-gap-2", children: [
|
|
24445
|
+
/* @__PURE__ */ jsx(Collapsible.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { variant: "outline", size: "small", className: "tw-w-full", children: "Toggle dark-mode logos" }) }),
|
|
24446
|
+
/* @__PURE__ */ jsxs(Collapsible.Content, { className: "tw-flex tw-flex-col tw-gap-2", children: [
|
|
24447
|
+
/* @__PURE__ */ jsx(
|
|
24448
|
+
LogoField,
|
|
24449
|
+
{
|
|
24450
|
+
id: `${baseId}logo-mark-dark`,
|
|
24451
|
+
label: "Mark (dark)",
|
|
24452
|
+
value: value.logo?.markDark ?? "",
|
|
24453
|
+
onChange: (source) => setLogo("markDark", source)
|
|
24454
|
+
}
|
|
24455
|
+
),
|
|
24456
|
+
/* @__PURE__ */ jsx(
|
|
24457
|
+
LogoField,
|
|
24458
|
+
{
|
|
24459
|
+
id: `${baseId}logo-wordmark-dark`,
|
|
24460
|
+
label: "Wordmark (dark)",
|
|
24461
|
+
value: value.logo?.wordmarkDark ?? "",
|
|
24462
|
+
onChange: (source) => setLogo("wordmarkDark", source)
|
|
24463
|
+
}
|
|
24464
|
+
)
|
|
24465
|
+
] })
|
|
24466
|
+
] }),
|
|
24467
|
+
/* @__PURE__ */ jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
|
|
24468
|
+
/* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-text-muted-foreground", children: "Preview" }),
|
|
24469
|
+
/* @__PURE__ */ jsx("div", { className: "tw-flex tw-min-h-12 tw-items-center tw-gap-4 tw-rounded-md tw-border tw-border-border tw-bg-background tw-p-3", children: value.logo?.mark || value.logo?.wordmark ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
24470
|
+
value.logo.mark ? /* @__PURE__ */ jsx(LogoPreviewImage, { source: value.logo.mark, className: "tw-h-8" }) : null,
|
|
24471
|
+
value.logo.wordmark ? /* @__PURE__ */ jsx(LogoPreviewImage, { source: value.logo.wordmark, className: "tw-h-8" }) : null
|
|
24472
|
+
] }) : /* @__PURE__ */ jsx("span", { className: "tw-text-xs tw-text-muted-foreground", children: "No logo set" }) })
|
|
24473
|
+
] })
|
|
24474
|
+
] })
|
|
24475
|
+
] });
|
|
24476
|
+
};
|
|
23390
24477
|
/*! Bundled license information:
|
|
23391
24478
|
|
|
23392
24479
|
react-is/cjs/react-is.production.min.js:
|
|
@@ -23417,6 +24504,6 @@ object-assign/index.js:
|
|
|
23417
24504
|
*)
|
|
23418
24505
|
*/
|
|
23419
24506
|
|
|
23420
|
-
export { Alert, AlertModal, AnswerSummary, AppShell, ArgoDesignContext, AutoSaveTextarea, Avatar, Badge, BrandLogo, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, Checkbox, Clipboard, ClipboardButton, ClipboardInline, Collapse, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, ColorModeSwitch, Combobox, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, DEFAULT_COLOR_SCHEME, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, DateInput, DatePicker, DateRangeInput, DateRangePicker, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, FileUpload, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, HelpBlock, HoverCard, InlineStepDetail, InlineStepLabel, InputGroup, Kbd, Label2 as Label, Link, Markdown, MarkedText, MessageBubble, Modal, MultiActionButtonGroup, MultiCombobox, Navbar, NumberInput, OtpInput, PageHeader, PageLayout, PageToolbar, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, RadioGroup2 as RadioGroup, ResizableHandle, ResizablePanelGroup, ScrollArea, ScrollBar, Search, SearchForm, SearchInput, SearchInputWithNavigation, Select2 as Select, Separator2 as Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, SplitButton, SpotlightBackdrop, Stepper, SuggestedPrompt, Switch, Table, Tabs2 as Tabs, TabsContent, Tagger, TextInput, Textarea, ThemeProvider, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, ToggleGroup, ToolCallApproval, ToolCallChip, Tooltip, TooltipProvider, Truncated, UsageStats, UsageStatsRing, ZoomableSvg, argoVariants, cn, computeDiffRows, computeLineInformation, copyToClipboard, isMac, kbdVariants, keys, mergeRefs, setServerFieldErrors, toast, useAppForm, useArgoDesign, useAutosizeInput, useMergeDiff, useNotification, useScrollbarPosition, useSidebar, useTargetRect, useTheme, withForm };
|
|
24507
|
+
export { Alert, AlertModal, AnswerSummary, AppShell, ArgoDesignContext, AutoSaveTextarea, Avatar, Badge, BrandEditor, BrandLogo, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, ChartPanel, Checkbox, Clipboard, ClipboardButton, ClipboardInline, Collapse, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, ColorModeSwitch, Combobox, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, CopyField, DEFAULT_COLOR_SCHEME, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, DashboardHero, DateInput, DatePicker, DateRangeInput, DateRangePicker, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, FileUpload, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, HelpBlock, HoverCard, InlineStepDetail, InlineStepLabel, InputGroup, Kbd, Label2 as Label, Link, Markdown, MarkedText, MessageBubble, Modal, MultiActionButtonGroup, MultiCombobox, Navbar, NumberInput, OtpInput, PageHeader, PageLayout, PageToolbar, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, RadioGroup2 as RadioGroup, ResizableHandle, ResizablePanelGroup, ScrollArea, ScrollBar, Search, SearchForm, SearchInput, SearchInputWithNavigation, Select2 as Select, Separator2 as Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, SplitButton, SpotlightBackdrop, StatCard, StatCardGrid, Stepper, SuggestedPrompt, Switch, Table, Tabs2 as Tabs, TabsContent, Tagger, TextInput, Textarea, ThemeProvider, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, ToggleGroup, ToolCallApproval, ToolCallChip, Tooltip, TooltipProvider, Truncated, UsageStats, UsageStatsRing, ZoomableSvg, argoVariants, channelsToHex, cn, computeDiffRows, computeLineInformation, contrastRatio, copyToClipboard, hexToChannels, isMac, kbdVariants, keys, mergeRefs, setServerFieldErrors, toast, useAppForm, useArgoDesign, useAutosizeInput, useMergeDiff, useNotification, useScrollbarPosition, useSidebar, useTargetRect, useTheme, wcagLevel, withForm };
|
|
23421
24508
|
//# sourceMappingURL=index.js.map
|
|
23422
24509
|
//# sourceMappingURL=index.js.map
|