react-ui-suite 1.1.1 → 1.1.3
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 +5 -4
- package/dist/FilePicker-N72M7PZO.css +155 -0
- package/dist/index.d.ts +19 -1
- package/dist/index.js +465 -280
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2790,30 +2790,214 @@ var Disclosure = React14.forwardRef(function Disclosure2({ title, children, clas
|
|
|
2790
2790
|
);
|
|
2791
2791
|
});
|
|
2792
2792
|
|
|
2793
|
-
// components/
|
|
2793
|
+
// components/FilePicker/FilePicker.tsx
|
|
2794
2794
|
import * as React15 from "react";
|
|
2795
2795
|
import clsx16 from "clsx";
|
|
2796
|
-
import "./
|
|
2796
|
+
import "./FilePicker-N72M7PZO.css";
|
|
2797
2797
|
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2798
|
-
|
|
2798
|
+
function matchesAcceptToken(file, token) {
|
|
2799
|
+
const normalizedToken = token.trim().toLowerCase();
|
|
2800
|
+
if (!normalizedToken) return true;
|
|
2801
|
+
const fileName = file.name.toLowerCase();
|
|
2802
|
+
const fileType = file.type.toLowerCase();
|
|
2803
|
+
if (normalizedToken.startsWith(".")) {
|
|
2804
|
+
return fileName.endsWith(normalizedToken);
|
|
2805
|
+
}
|
|
2806
|
+
if (normalizedToken.endsWith("/*")) {
|
|
2807
|
+
const prefix = normalizedToken.slice(0, -1);
|
|
2808
|
+
return fileType.startsWith(prefix);
|
|
2809
|
+
}
|
|
2810
|
+
return fileType === normalizedToken;
|
|
2811
|
+
}
|
|
2812
|
+
function filterFilesByAccept(files, accept) {
|
|
2813
|
+
if (!(accept == null ? void 0 : accept.trim())) return files;
|
|
2814
|
+
const tokens = accept.split(",").map((token) => token.trim()).filter(Boolean);
|
|
2815
|
+
if (!tokens.length) return files;
|
|
2816
|
+
return files.filter((file) => tokens.some((token) => matchesAcceptToken(file, token)));
|
|
2817
|
+
}
|
|
2818
|
+
function formatBytes(bytes) {
|
|
2819
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
2820
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
2821
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
2822
|
+
}
|
|
2823
|
+
var FilePicker = React15.forwardRef(function FilePicker2({
|
|
2824
|
+
label,
|
|
2825
|
+
description,
|
|
2826
|
+
error,
|
|
2827
|
+
dropzoneLabel = "Drop files here or click to browse",
|
|
2828
|
+
maxFiles,
|
|
2829
|
+
id,
|
|
2830
|
+
className,
|
|
2831
|
+
accept,
|
|
2832
|
+
disabled,
|
|
2833
|
+
multiple,
|
|
2834
|
+
onFilesChange,
|
|
2835
|
+
onChange,
|
|
2836
|
+
...rest
|
|
2837
|
+
}, forwardedRef) {
|
|
2799
2838
|
const generatedId = React15.useId();
|
|
2800
2839
|
const inputId = id != null ? id : generatedId;
|
|
2801
2840
|
const descriptionId = React15.useId();
|
|
2802
2841
|
const errorId = React15.useId();
|
|
2842
|
+
const [isDragActive, setIsDragActive] = React15.useState(false);
|
|
2843
|
+
const [selectedFiles, setSelectedFiles] = React15.useState([]);
|
|
2844
|
+
const [restrictedCount, setRestrictedCount] = React15.useState(0);
|
|
2845
|
+
const inputRef = React15.useRef(null);
|
|
2846
|
+
const setRefs = React15.useCallback(
|
|
2847
|
+
(node) => {
|
|
2848
|
+
inputRef.current = node;
|
|
2849
|
+
if (typeof forwardedRef === "function") {
|
|
2850
|
+
forwardedRef(node);
|
|
2851
|
+
} else if (forwardedRef) {
|
|
2852
|
+
forwardedRef.current = node;
|
|
2853
|
+
}
|
|
2854
|
+
},
|
|
2855
|
+
[forwardedRef]
|
|
2856
|
+
);
|
|
2857
|
+
const hintIds = [description ? descriptionId : null, error ? errorId : null].filter(Boolean);
|
|
2858
|
+
const resolvedAriaDescribedBy = hintIds.length ? hintIds.join(" ") : void 0;
|
|
2859
|
+
const resolvedMaxFiles = React15.useMemo(() => {
|
|
2860
|
+
if (typeof maxFiles !== "number" || !Number.isFinite(maxFiles)) return void 0;
|
|
2861
|
+
return Math.max(1, Math.floor(maxFiles));
|
|
2862
|
+
}, [maxFiles]);
|
|
2863
|
+
const applySelectedFiles = React15.useCallback(
|
|
2864
|
+
(files) => {
|
|
2865
|
+
const acceptedFiles = filterFilesByAccept(files, accept);
|
|
2866
|
+
const selectionLimit = multiple ? resolvedMaxFiles != null ? resolvedMaxFiles : Infinity : 1;
|
|
2867
|
+
const nextFiles = acceptedFiles.slice(0, selectionLimit);
|
|
2868
|
+
const nextRestrictedCount = files.length - nextFiles.length;
|
|
2869
|
+
setSelectedFiles(nextFiles);
|
|
2870
|
+
setRestrictedCount(nextRestrictedCount);
|
|
2871
|
+
onFilesChange == null ? void 0 : onFilesChange(nextFiles);
|
|
2872
|
+
return nextFiles;
|
|
2873
|
+
},
|
|
2874
|
+
[accept, multiple, onFilesChange, resolvedMaxFiles]
|
|
2875
|
+
);
|
|
2876
|
+
const handleInputChange = (event) => {
|
|
2877
|
+
var _a;
|
|
2878
|
+
const incomingFiles = Array.from((_a = event.target.files) != null ? _a : []);
|
|
2879
|
+
applySelectedFiles(incomingFiles);
|
|
2880
|
+
onChange == null ? void 0 : onChange(event);
|
|
2881
|
+
};
|
|
2882
|
+
const openFileDialog = () => {
|
|
2883
|
+
if (disabled) return;
|
|
2884
|
+
if (inputRef.current) {
|
|
2885
|
+
inputRef.current.value = "";
|
|
2886
|
+
inputRef.current.click();
|
|
2887
|
+
}
|
|
2888
|
+
};
|
|
2889
|
+
const handleDrop = (event) => {
|
|
2890
|
+
var _a;
|
|
2891
|
+
event.preventDefault();
|
|
2892
|
+
if (disabled) return;
|
|
2893
|
+
setIsDragActive(false);
|
|
2894
|
+
const files = Array.from((_a = event.dataTransfer.files) != null ? _a : []);
|
|
2895
|
+
applySelectedFiles(files);
|
|
2896
|
+
};
|
|
2897
|
+
const hasSelection = selectedFiles.length > 0;
|
|
2898
|
+
return /* @__PURE__ */ jsxs15("div", { className: "rui-file-picker rui-root", children: [
|
|
2899
|
+
label ? /* @__PURE__ */ jsx17("label", { htmlFor: inputId, className: "rui-file-picker__label rui-text-wrap", children: label }) : null,
|
|
2900
|
+
/* @__PURE__ */ jsxs15(
|
|
2901
|
+
"div",
|
|
2902
|
+
{
|
|
2903
|
+
className: clsx16(
|
|
2904
|
+
"rui-file-picker__dropzone",
|
|
2905
|
+
isDragActive && "rui-file-picker__dropzone--active",
|
|
2906
|
+
disabled && "rui-file-picker__dropzone--disabled",
|
|
2907
|
+
error && "rui-file-picker__dropzone--error"
|
|
2908
|
+
),
|
|
2909
|
+
role: "button",
|
|
2910
|
+
tabIndex: disabled ? -1 : 0,
|
|
2911
|
+
"aria-label": label ? `${label} file picker` : "File picker",
|
|
2912
|
+
"aria-disabled": disabled ? true : void 0,
|
|
2913
|
+
onClick: openFileDialog,
|
|
2914
|
+
onKeyDown: (event) => {
|
|
2915
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
2916
|
+
event.preventDefault();
|
|
2917
|
+
openFileDialog();
|
|
2918
|
+
}
|
|
2919
|
+
},
|
|
2920
|
+
onDragEnter: (event) => {
|
|
2921
|
+
event.preventDefault();
|
|
2922
|
+
if (!disabled) setIsDragActive(true);
|
|
2923
|
+
},
|
|
2924
|
+
onDragOver: (event) => {
|
|
2925
|
+
event.preventDefault();
|
|
2926
|
+
if (!disabled) setIsDragActive(true);
|
|
2927
|
+
},
|
|
2928
|
+
onDragLeave: (event) => {
|
|
2929
|
+
event.preventDefault();
|
|
2930
|
+
if (event.currentTarget.contains(event.relatedTarget)) return;
|
|
2931
|
+
setIsDragActive(false);
|
|
2932
|
+
},
|
|
2933
|
+
onDrop: handleDrop,
|
|
2934
|
+
children: [
|
|
2935
|
+
/* @__PURE__ */ jsx17(
|
|
2936
|
+
"input",
|
|
2937
|
+
{
|
|
2938
|
+
...rest,
|
|
2939
|
+
id: inputId,
|
|
2940
|
+
ref: setRefs,
|
|
2941
|
+
type: "file",
|
|
2942
|
+
className: clsx16("rui-file-picker__input", className),
|
|
2943
|
+
accept,
|
|
2944
|
+
disabled,
|
|
2945
|
+
multiple,
|
|
2946
|
+
onChange: handleInputChange,
|
|
2947
|
+
"aria-invalid": error ? true : void 0,
|
|
2948
|
+
"aria-describedby": resolvedAriaDescribedBy
|
|
2949
|
+
}
|
|
2950
|
+
),
|
|
2951
|
+
/* @__PURE__ */ jsx17("p", { className: "rui-file-picker__prompt rui-text-wrap", children: dropzoneLabel }),
|
|
2952
|
+
/* @__PURE__ */ jsx17("p", { className: "rui-file-picker__hint rui-text-wrap", children: (accept == null ? void 0 : accept.trim()) ? `Accepted: ${accept}` : "Accepted: all file types" }),
|
|
2953
|
+
resolvedMaxFiles ? /* @__PURE__ */ jsxs15("p", { className: "rui-file-picker__hint rui-text-wrap", children: [
|
|
2954
|
+
"Maximum files: ",
|
|
2955
|
+
resolvedMaxFiles
|
|
2956
|
+
] }) : null,
|
|
2957
|
+
hasSelection ? /* @__PURE__ */ jsx17("ul", { className: "rui-file-picker__list", "aria-label": "Selected files", children: selectedFiles.map((file) => /* @__PURE__ */ jsxs15("li", { className: "rui-file-picker__item", children: [
|
|
2958
|
+
/* @__PURE__ */ jsx17("span", { className: "rui-file-picker__file-name rui-text-wrap", children: file.name }),
|
|
2959
|
+
/* @__PURE__ */ jsx17("span", { className: "rui-file-picker__file-meta", children: formatBytes(file.size) })
|
|
2960
|
+
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null
|
|
2961
|
+
]
|
|
2962
|
+
}
|
|
2963
|
+
),
|
|
2964
|
+
description ? /* @__PURE__ */ jsx17("p", { id: descriptionId, className: "rui-file-picker__description rui-text-wrap", children: description }) : null,
|
|
2965
|
+
restrictedCount > 0 ? /* @__PURE__ */ jsxs15("p", { className: "rui-file-picker__warning rui-text-wrap", children: [
|
|
2966
|
+
restrictedCount,
|
|
2967
|
+
" file",
|
|
2968
|
+
restrictedCount === 1 ? "" : "s",
|
|
2969
|
+
" ",
|
|
2970
|
+
restrictedCount === 1 ? "was" : "were",
|
|
2971
|
+
" ignored due to selection restrictions."
|
|
2972
|
+
] }) : null,
|
|
2973
|
+
error ? /* @__PURE__ */ jsx17("p", { id: errorId, className: "rui-file-picker__error rui-text-wrap", children: error }) : null
|
|
2974
|
+
] });
|
|
2975
|
+
});
|
|
2976
|
+
|
|
2977
|
+
// components/InputField/InputField.tsx
|
|
2978
|
+
import * as React16 from "react";
|
|
2979
|
+
import clsx17 from "clsx";
|
|
2980
|
+
import "./InputField-TKTNGOH3.css";
|
|
2981
|
+
import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2982
|
+
var InputField = React16.forwardRef(function InputField2({ label, description, error, leadingIcon, trailingLabel, className, id, disabled, ...rest }, ref) {
|
|
2983
|
+
const generatedId = React16.useId();
|
|
2984
|
+
const inputId = id != null ? id : generatedId;
|
|
2985
|
+
const descriptionId = React16.useId();
|
|
2986
|
+
const errorId = React16.useId();
|
|
2803
2987
|
const hintIds = [description ? descriptionId : null, error ? errorId : null].filter(Boolean);
|
|
2804
2988
|
const resolvedAriaDescribedBy = hintIds.length ? hintIds.join(" ") : void 0;
|
|
2805
|
-
const containerClasses =
|
|
2989
|
+
const containerClasses = clsx17(
|
|
2806
2990
|
disabled && "rui-input-field__shell--disabled",
|
|
2807
2991
|
error && "rui-input-field__shell--error"
|
|
2808
2992
|
);
|
|
2809
|
-
const inputClasses =
|
|
2993
|
+
const inputClasses = clsx17(
|
|
2810
2994
|
"rui-input-field__input",
|
|
2811
2995
|
className
|
|
2812
2996
|
);
|
|
2813
|
-
const leadingElm = leadingIcon ? /* @__PURE__ */
|
|
2814
|
-
const trailingElm = trailingLabel ? /* @__PURE__ */
|
|
2815
|
-
return /* @__PURE__ */
|
|
2816
|
-
label ? /* @__PURE__ */
|
|
2997
|
+
const leadingElm = leadingIcon ? /* @__PURE__ */ jsx18("span", { className: "rui-input-field__leading", "aria-hidden": "true", children: leadingIcon }) : null;
|
|
2998
|
+
const trailingElm = trailingLabel ? /* @__PURE__ */ jsx18("span", { className: "rui-input-field__trailing rui-text-wrap", children: trailingLabel }) : null;
|
|
2999
|
+
return /* @__PURE__ */ jsxs16("div", { className: "rui-input-field rui-root", children: [
|
|
3000
|
+
label ? /* @__PURE__ */ jsx18(
|
|
2817
3001
|
"label",
|
|
2818
3002
|
{
|
|
2819
3003
|
htmlFor: inputId,
|
|
@@ -2821,9 +3005,9 @@ var InputField = React15.forwardRef(function InputField2({ label, description, e
|
|
|
2821
3005
|
children: label
|
|
2822
3006
|
}
|
|
2823
3007
|
) : null,
|
|
2824
|
-
/* @__PURE__ */
|
|
3008
|
+
/* @__PURE__ */ jsxs16("div", { className: clsx17("rui-input-field__shell", containerClasses), children: [
|
|
2825
3009
|
leadingElm,
|
|
2826
|
-
/* @__PURE__ */
|
|
3010
|
+
/* @__PURE__ */ jsx18(
|
|
2827
3011
|
"input",
|
|
2828
3012
|
{
|
|
2829
3013
|
...rest,
|
|
@@ -2837,17 +3021,17 @@ var InputField = React15.forwardRef(function InputField2({ label, description, e
|
|
|
2837
3021
|
),
|
|
2838
3022
|
trailingElm
|
|
2839
3023
|
] }),
|
|
2840
|
-
description ? /* @__PURE__ */
|
|
2841
|
-
error ? /* @__PURE__ */
|
|
3024
|
+
description ? /* @__PURE__ */ jsx18("p", { id: descriptionId, className: "rui-input-field__description rui-text-wrap", children: description }) : null,
|
|
3025
|
+
error ? /* @__PURE__ */ jsx18("p", { id: errorId, className: "rui-input-field__error rui-text-wrap", children: error }) : null
|
|
2842
3026
|
] });
|
|
2843
3027
|
});
|
|
2844
3028
|
|
|
2845
3029
|
// components/NumberInput/NumberInput.tsx
|
|
2846
|
-
import * as
|
|
2847
|
-
import
|
|
3030
|
+
import * as React17 from "react";
|
|
3031
|
+
import clsx18 from "clsx";
|
|
2848
3032
|
import "./NumberInput-KTYVXS7K.css";
|
|
2849
|
-
import { jsx as
|
|
2850
|
-
var NumberInput =
|
|
3033
|
+
import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3034
|
+
var NumberInput = React17.forwardRef(
|
|
2851
3035
|
function NumberInput2({
|
|
2852
3036
|
label,
|
|
2853
3037
|
description,
|
|
@@ -2864,7 +3048,7 @@ var NumberInput = React16.forwardRef(
|
|
|
2864
3048
|
max,
|
|
2865
3049
|
scale = 1
|
|
2866
3050
|
}, ref) {
|
|
2867
|
-
const [internal, setInternal] =
|
|
3051
|
+
const [internal, setInternal] = React17.useState(defaultValue);
|
|
2868
3052
|
const isControlled = typeof value === "number";
|
|
2869
3053
|
const resolved = isControlled ? value != null ? value : 0 : internal;
|
|
2870
3054
|
const update = (next) => {
|
|
@@ -2874,7 +3058,7 @@ var NumberInput = React16.forwardRef(
|
|
|
2874
3058
|
};
|
|
2875
3059
|
const resolvedText = `${resolved}`;
|
|
2876
3060
|
const valueChars = Math.max(resolvedText.length, 1);
|
|
2877
|
-
const rootStyle =
|
|
3061
|
+
const rootStyle = React17.useMemo(
|
|
2878
3062
|
() => ({
|
|
2879
3063
|
"--rui-number-input-scale": scale,
|
|
2880
3064
|
"--rui-number-input-value-ch": valueChars,
|
|
@@ -2882,19 +3066,19 @@ var NumberInput = React16.forwardRef(
|
|
|
2882
3066
|
}),
|
|
2883
3067
|
[scale, style, valueChars]
|
|
2884
3068
|
);
|
|
2885
|
-
return /* @__PURE__ */
|
|
2886
|
-
label ? /* @__PURE__ */
|
|
2887
|
-
/* @__PURE__ */
|
|
3069
|
+
return /* @__PURE__ */ jsxs17("div", { className: "rui-number-input rui-root", style: rootStyle, children: [
|
|
3070
|
+
label ? /* @__PURE__ */ jsx19("p", { className: "rui-number-input__label rui-text-wrap", children: label }) : null,
|
|
3071
|
+
/* @__PURE__ */ jsxs17(
|
|
2888
3072
|
"div",
|
|
2889
3073
|
{
|
|
2890
|
-
className:
|
|
3074
|
+
className: clsx18(
|
|
2891
3075
|
"rui-number-input__shell",
|
|
2892
3076
|
disabled && "rui-number-input__shell--disabled",
|
|
2893
3077
|
error && "rui-number-input__shell--error"
|
|
2894
3078
|
),
|
|
2895
3079
|
children: [
|
|
2896
|
-
/* @__PURE__ */
|
|
2897
|
-
/* @__PURE__ */
|
|
3080
|
+
/* @__PURE__ */ jsxs17("div", { className: "rui-number-input__stepper", children: [
|
|
3081
|
+
/* @__PURE__ */ jsx19(
|
|
2898
3082
|
Button,
|
|
2899
3083
|
{
|
|
2900
3084
|
type: "button",
|
|
@@ -2902,7 +3086,7 @@ var NumberInput = React16.forwardRef(
|
|
|
2902
3086
|
onClick: () => update(resolved + step),
|
|
2903
3087
|
className: "rui-number-input__step-button",
|
|
2904
3088
|
disabled,
|
|
2905
|
-
children: /* @__PURE__ */
|
|
3089
|
+
children: /* @__PURE__ */ jsx19(
|
|
2906
3090
|
"svg",
|
|
2907
3091
|
{
|
|
2908
3092
|
viewBox: "0 0 20 20",
|
|
@@ -2910,7 +3094,7 @@ var NumberInput = React16.forwardRef(
|
|
|
2910
3094
|
"aria-hidden": "true",
|
|
2911
3095
|
width: "1.1em",
|
|
2912
3096
|
height: "1.1em",
|
|
2913
|
-
children: /* @__PURE__ */
|
|
3097
|
+
children: /* @__PURE__ */ jsx19(
|
|
2914
3098
|
"path",
|
|
2915
3099
|
{
|
|
2916
3100
|
fillRule: "evenodd",
|
|
@@ -2922,7 +3106,7 @@ var NumberInput = React16.forwardRef(
|
|
|
2922
3106
|
)
|
|
2923
3107
|
}
|
|
2924
3108
|
),
|
|
2925
|
-
/* @__PURE__ */
|
|
3109
|
+
/* @__PURE__ */ jsx19(
|
|
2926
3110
|
Button,
|
|
2927
3111
|
{
|
|
2928
3112
|
type: "button",
|
|
@@ -2930,7 +3114,7 @@ var NumberInput = React16.forwardRef(
|
|
|
2930
3114
|
onClick: () => update(resolved - step),
|
|
2931
3115
|
className: "rui-number-input__step-button",
|
|
2932
3116
|
disabled,
|
|
2933
|
-
children: /* @__PURE__ */
|
|
3117
|
+
children: /* @__PURE__ */ jsx19(
|
|
2934
3118
|
"svg",
|
|
2935
3119
|
{
|
|
2936
3120
|
viewBox: "0 0 20 20",
|
|
@@ -2938,7 +3122,7 @@ var NumberInput = React16.forwardRef(
|
|
|
2938
3122
|
"aria-hidden": "true",
|
|
2939
3123
|
width: "1.1em",
|
|
2940
3124
|
height: "1.1em",
|
|
2941
|
-
children: /* @__PURE__ */
|
|
3125
|
+
children: /* @__PURE__ */ jsx19(
|
|
2942
3126
|
"path",
|
|
2943
3127
|
{
|
|
2944
3128
|
fillRule: "evenodd",
|
|
@@ -2951,7 +3135,7 @@ var NumberInput = React16.forwardRef(
|
|
|
2951
3135
|
}
|
|
2952
3136
|
)
|
|
2953
3137
|
] }),
|
|
2954
|
-
/* @__PURE__ */
|
|
3138
|
+
/* @__PURE__ */ jsx19(
|
|
2955
3139
|
"input",
|
|
2956
3140
|
{
|
|
2957
3141
|
ref,
|
|
@@ -2962,47 +3146,47 @@ var NumberInput = React16.forwardRef(
|
|
|
2962
3146
|
max,
|
|
2963
3147
|
step,
|
|
2964
3148
|
disabled,
|
|
2965
|
-
className:
|
|
3149
|
+
className: clsx18(
|
|
2966
3150
|
"rui-number-input__input",
|
|
2967
3151
|
className
|
|
2968
3152
|
)
|
|
2969
3153
|
}
|
|
2970
3154
|
),
|
|
2971
|
-
suffix ? /* @__PURE__ */
|
|
3155
|
+
suffix ? /* @__PURE__ */ jsx19("span", { className: "rui-number-input__suffix rui-text-wrap", children: suffix }) : null
|
|
2972
3156
|
]
|
|
2973
3157
|
}
|
|
2974
3158
|
),
|
|
2975
|
-
description ? /* @__PURE__ */
|
|
2976
|
-
error ? /* @__PURE__ */
|
|
3159
|
+
description ? /* @__PURE__ */ jsx19("p", { className: "rui-number-input__helper rui-number-input__helper--description rui-text-wrap", children: description }) : null,
|
|
3160
|
+
error ? /* @__PURE__ */ jsx19("p", { className: "rui-number-input__helper rui-number-input__helper--error rui-text-wrap", children: error }) : null
|
|
2977
3161
|
] });
|
|
2978
3162
|
}
|
|
2979
3163
|
);
|
|
2980
3164
|
|
|
2981
3165
|
// components/OutputChip/OutputChip.tsx
|
|
2982
|
-
import * as
|
|
2983
|
-
import
|
|
3166
|
+
import * as React18 from "react";
|
|
3167
|
+
import clsx19 from "clsx";
|
|
2984
3168
|
import "./OutputChip-CN7R243G.css";
|
|
2985
|
-
import { jsx as
|
|
2986
|
-
var OutputChip =
|
|
2987
|
-
return /* @__PURE__ */
|
|
3169
|
+
import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3170
|
+
var OutputChip = React18.forwardRef(function OutputChip2({ children, className, tone = "neutral", label, ...rest }, ref) {
|
|
3171
|
+
return /* @__PURE__ */ jsxs18(
|
|
2988
3172
|
"output",
|
|
2989
3173
|
{
|
|
2990
3174
|
...rest,
|
|
2991
3175
|
ref,
|
|
2992
3176
|
"data-tone": tone,
|
|
2993
|
-
className:
|
|
3177
|
+
className: clsx19("rui-root", "rui-output-chip", className),
|
|
2994
3178
|
children: [
|
|
2995
|
-
label ? /* @__PURE__ */
|
|
2996
|
-
/* @__PURE__ */
|
|
3179
|
+
label ? /* @__PURE__ */ jsx20("span", { className: "rui-output-chip__label rui-text-wrap", children: label }) : null,
|
|
3180
|
+
/* @__PURE__ */ jsx20("span", { className: "rui-output-chip__value rui-text-wrap", children })
|
|
2997
3181
|
]
|
|
2998
3182
|
}
|
|
2999
3183
|
);
|
|
3000
3184
|
});
|
|
3001
3185
|
|
|
3002
3186
|
// components/ProgressMeter/ProgressMeter.tsx
|
|
3003
|
-
import
|
|
3187
|
+
import clsx20 from "clsx";
|
|
3004
3188
|
import "./ProgressMeter-6EOIFB3Y.css";
|
|
3005
|
-
import { jsx as
|
|
3189
|
+
import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3006
3190
|
function Progress({
|
|
3007
3191
|
label,
|
|
3008
3192
|
description,
|
|
@@ -3013,17 +3197,17 @@ function Progress({
|
|
|
3013
3197
|
}) {
|
|
3014
3198
|
const clamped = Math.min(max, Math.max(0, value));
|
|
3015
3199
|
const percent = max === 0 ? 0 : Math.round(clamped / max * 100);
|
|
3016
|
-
return /* @__PURE__ */
|
|
3017
|
-
label ? /* @__PURE__ */
|
|
3018
|
-
/* @__PURE__ */
|
|
3019
|
-
showValue ? /* @__PURE__ */
|
|
3200
|
+
return /* @__PURE__ */ jsxs19("div", { className: clsx20("rui-progress-meter rui-root", className), children: [
|
|
3201
|
+
label ? /* @__PURE__ */ jsxs19("div", { className: "rui-progress-meter__header", children: [
|
|
3202
|
+
/* @__PURE__ */ jsx21("p", { className: "rui-progress-meter__label rui-text-wrap", children: label }),
|
|
3203
|
+
showValue ? /* @__PURE__ */ jsxs19("span", { className: "rui-progress-meter__value", children: [
|
|
3020
3204
|
percent,
|
|
3021
3205
|
"%"
|
|
3022
3206
|
] }) : null
|
|
3023
3207
|
] }) : null,
|
|
3024
|
-
description ? /* @__PURE__ */
|
|
3025
|
-
/* @__PURE__ */
|
|
3026
|
-
/* @__PURE__ */
|
|
3208
|
+
description ? /* @__PURE__ */ jsx21("p", { className: "rui-progress-meter__description rui-text-wrap", children: description }) : null,
|
|
3209
|
+
/* @__PURE__ */ jsxs19("div", { className: "rui-progress-meter__track", children: [
|
|
3210
|
+
/* @__PURE__ */ jsx21(
|
|
3027
3211
|
"progress",
|
|
3028
3212
|
{
|
|
3029
3213
|
value: clamped,
|
|
@@ -3032,7 +3216,7 @@ function Progress({
|
|
|
3032
3216
|
"aria-label": label
|
|
3033
3217
|
}
|
|
3034
3218
|
),
|
|
3035
|
-
/* @__PURE__ */
|
|
3219
|
+
/* @__PURE__ */ jsx21(
|
|
3036
3220
|
"div",
|
|
3037
3221
|
{
|
|
3038
3222
|
className: "rui-progress-meter__fill rui-progress-meter__fill--gradient",
|
|
@@ -3058,14 +3242,14 @@ function Meter({
|
|
|
3058
3242
|
(acc, t) => clamped >= t.value ? t.color : acc,
|
|
3059
3243
|
(_b = (_a = thresholds[0]) == null ? void 0 : _a.color) != null ? _b : "linear-gradient(90deg, #22c55e, #0ea5e9)"
|
|
3060
3244
|
) : "linear-gradient(90deg, #22c55e, #0ea5e9)";
|
|
3061
|
-
return /* @__PURE__ */
|
|
3062
|
-
label ? /* @__PURE__ */
|
|
3063
|
-
/* @__PURE__ */
|
|
3064
|
-
/* @__PURE__ */
|
|
3245
|
+
return /* @__PURE__ */ jsxs19("div", { className: clsx20("rui-progress-meter rui-root", className), children: [
|
|
3246
|
+
label ? /* @__PURE__ */ jsxs19("div", { className: "rui-progress-meter__header", children: [
|
|
3247
|
+
/* @__PURE__ */ jsx21("p", { className: "rui-progress-meter__label rui-text-wrap", children: label }),
|
|
3248
|
+
/* @__PURE__ */ jsx21("span", { className: "rui-progress-meter__value", children: clamped })
|
|
3065
3249
|
] }) : null,
|
|
3066
|
-
description ? /* @__PURE__ */
|
|
3067
|
-
/* @__PURE__ */
|
|
3068
|
-
/* @__PURE__ */
|
|
3250
|
+
description ? /* @__PURE__ */ jsx21("p", { className: "rui-progress-meter__description rui-text-wrap", children: description }) : null,
|
|
3251
|
+
/* @__PURE__ */ jsxs19("div", { className: "rui-progress-meter__track", children: [
|
|
3252
|
+
/* @__PURE__ */ jsx21(
|
|
3069
3253
|
"meter",
|
|
3070
3254
|
{
|
|
3071
3255
|
value: clamped,
|
|
@@ -3075,7 +3259,7 @@ function Meter({
|
|
|
3075
3259
|
"aria-label": label
|
|
3076
3260
|
}
|
|
3077
3261
|
),
|
|
3078
|
-
/* @__PURE__ */
|
|
3262
|
+
/* @__PURE__ */ jsx21(
|
|
3079
3263
|
"div",
|
|
3080
3264
|
{
|
|
3081
3265
|
className: "rui-progress-meter__fill",
|
|
@@ -3087,11 +3271,11 @@ function Meter({
|
|
|
3087
3271
|
}
|
|
3088
3272
|
|
|
3089
3273
|
// components/Radio/Radio.tsx
|
|
3090
|
-
import * as
|
|
3091
|
-
import
|
|
3274
|
+
import * as React19 from "react";
|
|
3275
|
+
import clsx21 from "clsx";
|
|
3092
3276
|
import "./Radio-K6CDDBCQ.css";
|
|
3093
|
-
import { jsx as
|
|
3094
|
-
var Radio =
|
|
3277
|
+
import { jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3278
|
+
var Radio = React19.forwardRef(function Radio2({
|
|
3095
3279
|
label,
|
|
3096
3280
|
description,
|
|
3097
3281
|
color,
|
|
@@ -3104,11 +3288,11 @@ var Radio = React18.forwardRef(function Radio2({
|
|
|
3104
3288
|
id,
|
|
3105
3289
|
...rest
|
|
3106
3290
|
}, forwardedRef) {
|
|
3107
|
-
const generatedId =
|
|
3291
|
+
const generatedId = React19.useId();
|
|
3108
3292
|
const radioId = id != null ? id : generatedId;
|
|
3109
|
-
const descriptionId =
|
|
3293
|
+
const descriptionId = React19.useId();
|
|
3110
3294
|
const isControlled = typeof checked === "boolean";
|
|
3111
|
-
const [internalChecked, setInternalChecked] =
|
|
3295
|
+
const [internalChecked, setInternalChecked] = React19.useState(defaultChecked);
|
|
3112
3296
|
const resolvedChecked = isControlled ? !!checked : internalChecked;
|
|
3113
3297
|
const handleChange = (event) => {
|
|
3114
3298
|
const next = event.target.checked;
|
|
@@ -3117,20 +3301,20 @@ var Radio = React18.forwardRef(function Radio2({
|
|
|
3117
3301
|
}
|
|
3118
3302
|
onChange == null ? void 0 : onChange(next);
|
|
3119
3303
|
};
|
|
3120
|
-
return /* @__PURE__ */
|
|
3304
|
+
return /* @__PURE__ */ jsxs20(
|
|
3121
3305
|
"label",
|
|
3122
3306
|
{
|
|
3123
3307
|
htmlFor: radioId,
|
|
3124
|
-
className:
|
|
3308
|
+
className: clsx21(
|
|
3125
3309
|
"rui-radio rui-root",
|
|
3126
3310
|
color && `rui-radio--color-${color}`,
|
|
3127
3311
|
disabled && "rui-radio--disabled",
|
|
3128
3312
|
className
|
|
3129
3313
|
),
|
|
3130
3314
|
children: [
|
|
3131
|
-
/* @__PURE__ */
|
|
3132
|
-
/* @__PURE__ */
|
|
3133
|
-
/* @__PURE__ */
|
|
3315
|
+
/* @__PURE__ */ jsxs20("span", { className: "rui-radio__content", children: [
|
|
3316
|
+
/* @__PURE__ */ jsxs20("span", { className: "rui-radio__indicator", children: [
|
|
3317
|
+
/* @__PURE__ */ jsx22(
|
|
3134
3318
|
"input",
|
|
3135
3319
|
{
|
|
3136
3320
|
...rest,
|
|
@@ -3144,7 +3328,7 @@ var Radio = React18.forwardRef(function Radio2({
|
|
|
3144
3328
|
disabled
|
|
3145
3329
|
}
|
|
3146
3330
|
),
|
|
3147
|
-
/* @__PURE__ */
|
|
3331
|
+
/* @__PURE__ */ jsx22(
|
|
3148
3332
|
"span",
|
|
3149
3333
|
{
|
|
3150
3334
|
className: "rui-radio__control",
|
|
@@ -3152,22 +3336,22 @@ var Radio = React18.forwardRef(function Radio2({
|
|
|
3152
3336
|
}
|
|
3153
3337
|
)
|
|
3154
3338
|
] }),
|
|
3155
|
-
/* @__PURE__ */
|
|
3156
|
-
/* @__PURE__ */
|
|
3157
|
-
description ? /* @__PURE__ */
|
|
3339
|
+
/* @__PURE__ */ jsxs20("span", { className: "rui-radio__meta", children: [
|
|
3340
|
+
/* @__PURE__ */ jsx22("span", { className: "rui-radio__label rui-text-wrap", children: label }),
|
|
3341
|
+
description ? /* @__PURE__ */ jsx22("span", { id: descriptionId, className: "rui-radio__description rui-text-wrap", children: description }) : null
|
|
3158
3342
|
] })
|
|
3159
3343
|
] }),
|
|
3160
|
-
extra ? /* @__PURE__ */
|
|
3344
|
+
extra ? /* @__PURE__ */ jsx22("span", { className: "rui-radio__extra rui-text-wrap", children: extra }) : null
|
|
3161
3345
|
]
|
|
3162
3346
|
}
|
|
3163
3347
|
);
|
|
3164
3348
|
});
|
|
3165
3349
|
|
|
3166
3350
|
// components/Slider/Slider.tsx
|
|
3167
|
-
import * as
|
|
3168
|
-
import
|
|
3351
|
+
import * as React20 from "react";
|
|
3352
|
+
import clsx22 from "clsx";
|
|
3169
3353
|
import "./Slider-KHMHINU4.css";
|
|
3170
|
-
import { jsx as
|
|
3354
|
+
import { jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3171
3355
|
function clampValue(value, min, max) {
|
|
3172
3356
|
return Math.min(max, Math.max(min, value));
|
|
3173
3357
|
}
|
|
@@ -3181,7 +3365,7 @@ function snapToStep(value, min, max, step) {
|
|
|
3181
3365
|
const stepped = Math.round((limited - min) / safeStep) * safeStep + min;
|
|
3182
3366
|
return clampValue(Number(stepped.toFixed(6)), min, max);
|
|
3183
3367
|
}
|
|
3184
|
-
var Slider =
|
|
3368
|
+
var Slider = React20.forwardRef(function Slider2({
|
|
3185
3369
|
label,
|
|
3186
3370
|
value,
|
|
3187
3371
|
defaultValue,
|
|
@@ -3206,31 +3390,31 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3206
3390
|
}, forwardedRef) {
|
|
3207
3391
|
const isControlled = typeof value === "number";
|
|
3208
3392
|
const initialValue = typeof defaultValue === "number" ? defaultValue : min;
|
|
3209
|
-
const [internalValue, setInternalValue] =
|
|
3393
|
+
const [internalValue, setInternalValue] = React20.useState(
|
|
3210
3394
|
() => snapToStep(initialValue, min, max, step)
|
|
3211
3395
|
);
|
|
3212
|
-
const [focused, setFocused] =
|
|
3213
|
-
const [dragging, setDragging] =
|
|
3214
|
-
const [trackMetrics, setTrackMetrics] =
|
|
3396
|
+
const [focused, setFocused] = React20.useState(false);
|
|
3397
|
+
const [dragging, setDragging] = React20.useState(false);
|
|
3398
|
+
const [trackMetrics, setTrackMetrics] = React20.useState({
|
|
3215
3399
|
length: 0,
|
|
3216
3400
|
mainOffset: 0,
|
|
3217
3401
|
crossOffset: 0,
|
|
3218
3402
|
thickness: 0
|
|
3219
3403
|
});
|
|
3220
|
-
const generatedId =
|
|
3404
|
+
const generatedId = React20.useId();
|
|
3221
3405
|
const inputId = id != null ? id : generatedId;
|
|
3222
|
-
const inputRef =
|
|
3223
|
-
const interactionRef =
|
|
3224
|
-
const trackContainerRef =
|
|
3225
|
-
const trackRef =
|
|
3226
|
-
const mergedRef =
|
|
3406
|
+
const inputRef = React20.useRef(null);
|
|
3407
|
+
const interactionRef = React20.useRef(null);
|
|
3408
|
+
const trackContainerRef = React20.useRef(null);
|
|
3409
|
+
const trackRef = React20.useRef(null);
|
|
3410
|
+
const mergedRef = React20.useCallback(
|
|
3227
3411
|
(node) => {
|
|
3228
3412
|
inputRef.current = node;
|
|
3229
3413
|
assignRef(forwardedRef, node);
|
|
3230
3414
|
},
|
|
3231
3415
|
[forwardedRef]
|
|
3232
3416
|
);
|
|
3233
|
-
|
|
3417
|
+
React20.useEffect(() => {
|
|
3234
3418
|
setInternalValue((prev) => snapToStep(prev, min, max, step));
|
|
3235
3419
|
}, [min, max, step]);
|
|
3236
3420
|
const resolvedValue = snapToStep(
|
|
@@ -3243,7 +3427,7 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3243
3427
|
const isVertical = orientation === "vertical";
|
|
3244
3428
|
const thumbDiameter = Math.max(thumbSize, 2);
|
|
3245
3429
|
const thumbRadius = thumbDiameter / 2;
|
|
3246
|
-
|
|
3430
|
+
React20.useLayoutEffect(() => {
|
|
3247
3431
|
const track = trackRef.current;
|
|
3248
3432
|
const container = trackContainerRef.current;
|
|
3249
3433
|
if (!track || !container) return;
|
|
@@ -3279,17 +3463,17 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3279
3463
|
return reversed ? 1 - logicalRatio : logicalRatio;
|
|
3280
3464
|
})();
|
|
3281
3465
|
const positionPx = minCenter + usableLength * positionRatio;
|
|
3282
|
-
const gradientSize =
|
|
3466
|
+
const gradientSize = React20.useMemo(() => {
|
|
3283
3467
|
if (fillMode === "stretch" || trackLength === 0) return "100% 100%";
|
|
3284
3468
|
return isVertical ? `100% ${trackLength}px` : `${trackLength}px 100%`;
|
|
3285
3469
|
}, [fillMode, isVertical, trackLength]);
|
|
3286
|
-
const gradientPosition =
|
|
3470
|
+
const gradientPosition = React20.useMemo(() => {
|
|
3287
3471
|
if (fillMode === "stretch") return void 0;
|
|
3288
3472
|
if (!isVertical && reversed) return "right center";
|
|
3289
3473
|
if (isVertical && !reversed) return "center bottom";
|
|
3290
3474
|
return "left top";
|
|
3291
3475
|
}, [fillMode, isVertical, reversed]);
|
|
3292
|
-
const progressStyle =
|
|
3476
|
+
const progressStyle = React20.useMemo(() => {
|
|
3293
3477
|
if (trackLength === 0) return {};
|
|
3294
3478
|
const half = thumbRadius;
|
|
3295
3479
|
if (!isVertical && !reversed) {
|
|
@@ -3309,25 +3493,25 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3309
3493
|
const height = Math.max(Math.min(trackLength - start, trackLength), 0);
|
|
3310
3494
|
return { bottom: 0, height, left: 0, right: 0 };
|
|
3311
3495
|
}, [isVertical, reversed, positionPx, trackLength, thumbRadius]);
|
|
3312
|
-
const trackGradient =
|
|
3496
|
+
const trackGradient = React20.useMemo(() => {
|
|
3313
3497
|
if (!isVertical && !reversed) return "linear-gradient(90deg, #e2e8f0, #fff, #e2e8f0)";
|
|
3314
3498
|
if (!isVertical && reversed) return "linear-gradient(270deg, #e2e8f0, #fff, #e2e8f0)";
|
|
3315
3499
|
if (isVertical && reversed) return "linear-gradient(180deg, #e2e8f0, #fff, #e2e8f0)";
|
|
3316
3500
|
return "linear-gradient(0deg, #e2e8f0, #fff, #e2e8f0)";
|
|
3317
3501
|
}, [isVertical, reversed]);
|
|
3318
|
-
const fillGradient =
|
|
3502
|
+
const fillGradient = React20.useMemo(() => {
|
|
3319
3503
|
if (!isVertical && !reversed) return "linear-gradient(90deg, #38bdf8, #6366f1)";
|
|
3320
3504
|
if (!isVertical && reversed) return "linear-gradient(270deg, #38bdf8, #6366f1)";
|
|
3321
3505
|
if (isVertical && reversed) return "linear-gradient(180deg, #38bdf8, #6366f1)";
|
|
3322
3506
|
return "linear-gradient(0deg, #38bdf8, #6366f1)";
|
|
3323
3507
|
}, [isVertical, reversed]);
|
|
3324
|
-
const thumbStyle =
|
|
3508
|
+
const thumbStyle = React20.useMemo(() => {
|
|
3325
3509
|
if (isVertical) {
|
|
3326
3510
|
return { top: trackOffset + positionPx, left: trackCrossOffset + trackThickness / 2 };
|
|
3327
3511
|
}
|
|
3328
3512
|
return { left: trackOffset + positionPx, top: trackCrossOffset + trackThickness / 2 };
|
|
3329
3513
|
}, [isVertical, positionPx, trackOffset, trackCrossOffset, trackThickness]);
|
|
3330
|
-
const renderProps =
|
|
3514
|
+
const renderProps = React20.useMemo(
|
|
3331
3515
|
() => ({
|
|
3332
3516
|
value: resolvedValue,
|
|
3333
3517
|
min,
|
|
@@ -3361,7 +3545,7 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3361
3545
|
trackThickness
|
|
3362
3546
|
]
|
|
3363
3547
|
);
|
|
3364
|
-
const commitValue =
|
|
3548
|
+
const commitValue = React20.useCallback(
|
|
3365
3549
|
(next) => {
|
|
3366
3550
|
const snapped = snapToStep(next, min, max, step);
|
|
3367
3551
|
if (!isControlled) {
|
|
@@ -3383,7 +3567,7 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3383
3567
|
applyInputValue(event.currentTarget.value);
|
|
3384
3568
|
};
|
|
3385
3569
|
const formattedValue = formatValue(resolvedValue);
|
|
3386
|
-
const setValueFromPointer =
|
|
3570
|
+
const setValueFromPointer = React20.useCallback(
|
|
3387
3571
|
(clientX, clientY) => {
|
|
3388
3572
|
var _a;
|
|
3389
3573
|
const rect = (_a = trackRef.current) == null ? void 0 : _a.getBoundingClientRect();
|
|
@@ -3409,7 +3593,7 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3409
3593
|
},
|
|
3410
3594
|
[commitValue, isVertical, max, min, overlap, reversed, thumbRadius]
|
|
3411
3595
|
);
|
|
3412
|
-
const handlePointerDown =
|
|
3596
|
+
const handlePointerDown = React20.useCallback(
|
|
3413
3597
|
(event) => {
|
|
3414
3598
|
var _a, _b;
|
|
3415
3599
|
event.preventDefault();
|
|
@@ -3436,11 +3620,11 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3436
3620
|
},
|
|
3437
3621
|
[setValueFromPointer]
|
|
3438
3622
|
);
|
|
3439
|
-
const defaultTrack = /* @__PURE__ */
|
|
3623
|
+
const defaultTrack = /* @__PURE__ */ jsxs21(
|
|
3440
3624
|
"div",
|
|
3441
3625
|
{
|
|
3442
3626
|
ref: trackRef,
|
|
3443
|
-
className:
|
|
3627
|
+
className: clsx22(
|
|
3444
3628
|
"rui-slider__track",
|
|
3445
3629
|
isVertical && "rui-slider__track--vertical",
|
|
3446
3630
|
disabled && "rui-slider__track--disabled",
|
|
@@ -3449,10 +3633,10 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3449
3633
|
style: { backgroundImage: trackGradient },
|
|
3450
3634
|
"aria-hidden": "true",
|
|
3451
3635
|
children: [
|
|
3452
|
-
/* @__PURE__ */
|
|
3636
|
+
/* @__PURE__ */ jsx23(
|
|
3453
3637
|
"div",
|
|
3454
3638
|
{
|
|
3455
|
-
className:
|
|
3639
|
+
className: clsx22(
|
|
3456
3640
|
"rui-slider__track-fill",
|
|
3457
3641
|
dragging && "rui-slider__track-fill--dragging",
|
|
3458
3642
|
isVertical ? "rui-slider__track-fill--vertical" : "rui-slider__track-fill--horizontal"
|
|
@@ -3465,14 +3649,14 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3465
3649
|
}
|
|
3466
3650
|
}
|
|
3467
3651
|
),
|
|
3468
|
-
/* @__PURE__ */
|
|
3652
|
+
/* @__PURE__ */ jsx23("div", { className: "rui-slider__track-overlay" })
|
|
3469
3653
|
]
|
|
3470
3654
|
}
|
|
3471
3655
|
);
|
|
3472
|
-
const defaultThumb = /* @__PURE__ */
|
|
3656
|
+
const defaultThumb = /* @__PURE__ */ jsx23(
|
|
3473
3657
|
"span",
|
|
3474
3658
|
{
|
|
3475
|
-
className:
|
|
3659
|
+
className: clsx22(
|
|
3476
3660
|
"rui-slider__thumb",
|
|
3477
3661
|
focused && "rui-slider__thumb--focused",
|
|
3478
3662
|
disabled && "rui-slider__thumb--disabled",
|
|
@@ -3480,23 +3664,23 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3480
3664
|
),
|
|
3481
3665
|
style: { ...thumbStyle, width: thumbDiameter, height: thumbDiameter },
|
|
3482
3666
|
"aria-hidden": "true",
|
|
3483
|
-
children: /* @__PURE__ */
|
|
3484
|
-
/* @__PURE__ */
|
|
3485
|
-
/* @__PURE__ */
|
|
3667
|
+
children: /* @__PURE__ */ jsxs21("span", { className: "rui-slider__thumb-core", children: [
|
|
3668
|
+
/* @__PURE__ */ jsx23("span", { className: "rui-slider__thumb-gradient" }),
|
|
3669
|
+
/* @__PURE__ */ jsx23("span", { className: "rui-slider__thumb-overlay" })
|
|
3486
3670
|
] })
|
|
3487
3671
|
}
|
|
3488
3672
|
);
|
|
3489
|
-
return /* @__PURE__ */
|
|
3673
|
+
return /* @__PURE__ */ jsxs21(
|
|
3490
3674
|
"div",
|
|
3491
3675
|
{
|
|
3492
|
-
className:
|
|
3676
|
+
className: clsx22(
|
|
3493
3677
|
"rui-root rui-slider",
|
|
3494
3678
|
isVertical && "rui-slider--vertical",
|
|
3495
3679
|
className
|
|
3496
3680
|
),
|
|
3497
3681
|
children: [
|
|
3498
|
-
label ? /* @__PURE__ */
|
|
3499
|
-
/* @__PURE__ */
|
|
3682
|
+
label ? /* @__PURE__ */ jsxs21("div", { className: "rui-slider__header", children: [
|
|
3683
|
+
/* @__PURE__ */ jsx23(
|
|
3500
3684
|
"label",
|
|
3501
3685
|
{
|
|
3502
3686
|
htmlFor: inputId,
|
|
@@ -3504,13 +3688,13 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3504
3688
|
children: label
|
|
3505
3689
|
}
|
|
3506
3690
|
),
|
|
3507
|
-
/* @__PURE__ */
|
|
3691
|
+
/* @__PURE__ */ jsx23("span", { className: "rui-slider__value", children: formattedValue })
|
|
3508
3692
|
] }) : null,
|
|
3509
|
-
/* @__PURE__ */
|
|
3693
|
+
/* @__PURE__ */ jsxs21(
|
|
3510
3694
|
"div",
|
|
3511
3695
|
{
|
|
3512
3696
|
ref: trackContainerRef,
|
|
3513
|
-
className:
|
|
3697
|
+
className: clsx22(
|
|
3514
3698
|
"rui-slider__track-container",
|
|
3515
3699
|
isVertical && "rui-slider__track-container--vertical"
|
|
3516
3700
|
),
|
|
@@ -3518,7 +3702,7 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3518
3702
|
children: [
|
|
3519
3703
|
renderTrack ? renderTrack({ ...renderProps, children: defaultTrack }) : defaultTrack,
|
|
3520
3704
|
renderThumb ? renderThumb(renderProps) : defaultThumb,
|
|
3521
|
-
/* @__PURE__ */
|
|
3705
|
+
/* @__PURE__ */ jsx23(
|
|
3522
3706
|
"input",
|
|
3523
3707
|
{
|
|
3524
3708
|
...rest,
|
|
@@ -3540,13 +3724,13 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3540
3724
|
className: "rui-slider__input"
|
|
3541
3725
|
}
|
|
3542
3726
|
),
|
|
3543
|
-
/* @__PURE__ */
|
|
3727
|
+
/* @__PURE__ */ jsx23(
|
|
3544
3728
|
"div",
|
|
3545
3729
|
{
|
|
3546
3730
|
ref: interactionRef,
|
|
3547
3731
|
"aria-hidden": "true",
|
|
3548
3732
|
onPointerDown: handlePointerDown,
|
|
3549
|
-
className:
|
|
3733
|
+
className: clsx22(
|
|
3550
3734
|
"rui-slider__interaction",
|
|
3551
3735
|
isVertical ? "rui-slider__interaction--vertical" : "rui-slider__interaction--horizontal"
|
|
3552
3736
|
)
|
|
@@ -3561,24 +3745,24 @@ var Slider = React19.forwardRef(function Slider2({
|
|
|
3561
3745
|
});
|
|
3562
3746
|
|
|
3563
3747
|
// components/StackedList/StackedList.tsx
|
|
3564
|
-
import
|
|
3748
|
+
import clsx23 from "clsx";
|
|
3565
3749
|
import "./StackedList-QF5242GF.css";
|
|
3566
|
-
import { jsx as
|
|
3750
|
+
import { jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3567
3751
|
function StackedList({ items, dense, className, ...rest }) {
|
|
3568
|
-
return /* @__PURE__ */
|
|
3752
|
+
return /* @__PURE__ */ jsx24(
|
|
3569
3753
|
"div",
|
|
3570
3754
|
{
|
|
3571
3755
|
...rest,
|
|
3572
|
-
className:
|
|
3756
|
+
className: clsx23(
|
|
3573
3757
|
"rui-stacked-list rui-root rui-surface",
|
|
3574
3758
|
className
|
|
3575
3759
|
),
|
|
3576
|
-
children: /* @__PURE__ */
|
|
3760
|
+
children: /* @__PURE__ */ jsx24("ul", { role: "list", className: "rui-stacked-list__list", children: items.map((item) => /* @__PURE__ */ jsxs22(
|
|
3577
3761
|
"li",
|
|
3578
3762
|
{
|
|
3579
|
-
className:
|
|
3763
|
+
className: clsx23("rui-stacked-list__item", dense && "rui-stacked-list__item--dense"),
|
|
3580
3764
|
children: [
|
|
3581
|
-
item.icon ? /* @__PURE__ */
|
|
3765
|
+
item.icon ? /* @__PURE__ */ jsx24(
|
|
3582
3766
|
"div",
|
|
3583
3767
|
{
|
|
3584
3768
|
className: "rui-stacked-list__icon",
|
|
@@ -3586,12 +3770,12 @@ function StackedList({ items, dense, className, ...rest }) {
|
|
|
3586
3770
|
children: item.icon
|
|
3587
3771
|
}
|
|
3588
3772
|
) : null,
|
|
3589
|
-
/* @__PURE__ */
|
|
3590
|
-
/* @__PURE__ */
|
|
3591
|
-
item.description ? /* @__PURE__ */
|
|
3773
|
+
/* @__PURE__ */ jsxs22("div", { className: "rui-stacked-list__content", children: [
|
|
3774
|
+
/* @__PURE__ */ jsx24("p", { className: "rui-stacked-list__title rui-text-wrap", children: item.title }),
|
|
3775
|
+
item.description ? /* @__PURE__ */ jsx24("p", { className: "rui-stacked-list__description rui-text-wrap", children: item.description }) : null
|
|
3592
3776
|
] }),
|
|
3593
|
-
/* @__PURE__ */
|
|
3594
|
-
item.meta ? /* @__PURE__ */
|
|
3777
|
+
/* @__PURE__ */ jsxs22("div", { className: "rui-stacked-list__meta", children: [
|
|
3778
|
+
item.meta ? /* @__PURE__ */ jsx24("span", { className: "rui-stacked-list__meta-text rui-text-wrap", children: item.meta }) : null,
|
|
3595
3779
|
item.action
|
|
3596
3780
|
] })
|
|
3597
3781
|
]
|
|
@@ -3603,9 +3787,9 @@ function StackedList({ items, dense, className, ...rest }) {
|
|
|
3603
3787
|
}
|
|
3604
3788
|
|
|
3605
3789
|
// components/TabGroup/TabGroup.tsx
|
|
3606
|
-
import
|
|
3790
|
+
import React21 from "react";
|
|
3607
3791
|
import "./TabGroup-CV2AC3EO.css";
|
|
3608
|
-
import { Fragment as Fragment2, jsx as
|
|
3792
|
+
import { Fragment as Fragment2, jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3609
3793
|
function TabGroup({
|
|
3610
3794
|
align = "start",
|
|
3611
3795
|
position = "top",
|
|
@@ -3618,14 +3802,14 @@ function TabGroup({
|
|
|
3618
3802
|
onActiveChange
|
|
3619
3803
|
}) {
|
|
3620
3804
|
var _a, _b;
|
|
3621
|
-
const rootRef =
|
|
3622
|
-
const tabStripRef =
|
|
3623
|
-
const idBase =
|
|
3624
|
-
const [effectiveFill, setEffectiveFill] =
|
|
3625
|
-
const [availableMain, setAvailableMain] =
|
|
3626
|
-
const [minMain, setMinMain] =
|
|
3805
|
+
const rootRef = React21.useRef(null);
|
|
3806
|
+
const tabStripRef = React21.useRef(null);
|
|
3807
|
+
const idBase = React21.useId();
|
|
3808
|
+
const [effectiveFill, setEffectiveFill] = React21.useState(fill);
|
|
3809
|
+
const [availableMain, setAvailableMain] = React21.useState(0);
|
|
3810
|
+
const [minMain, setMinMain] = React21.useState(32);
|
|
3627
3811
|
const count = tabs.length;
|
|
3628
|
-
const clampIndex =
|
|
3812
|
+
const clampIndex = React21.useCallback(
|
|
3629
3813
|
(i) => {
|
|
3630
3814
|
if (count <= 0) {
|
|
3631
3815
|
return 0;
|
|
@@ -3638,14 +3822,14 @@ function TabGroup({
|
|
|
3638
3822
|
[count]
|
|
3639
3823
|
);
|
|
3640
3824
|
const isControlled = active !== void 0;
|
|
3641
|
-
const [activeInternal, setActiveInternal] =
|
|
3642
|
-
|
|
3825
|
+
const [activeInternal, setActiveInternal] = React21.useState(() => clampIndex(defaultActive));
|
|
3826
|
+
React21.useEffect(() => {
|
|
3643
3827
|
if (!isControlled) {
|
|
3644
3828
|
setActiveInternal((i) => clampIndex(i));
|
|
3645
3829
|
}
|
|
3646
3830
|
}, [clampIndex, isControlled]);
|
|
3647
3831
|
const currentActive = clampIndex(isControlled ? active : activeInternal);
|
|
3648
|
-
const setActive =
|
|
3832
|
+
const setActive = React21.useCallback(
|
|
3649
3833
|
(next) => {
|
|
3650
3834
|
const i = clampIndex(next);
|
|
3651
3835
|
if (!isControlled) {
|
|
@@ -3656,7 +3840,7 @@ function TabGroup({
|
|
|
3656
3840
|
[clampIndex, isControlled, onActiveChange]
|
|
3657
3841
|
);
|
|
3658
3842
|
const tabsFirst = position === "top" || position === "left";
|
|
3659
|
-
const updateEffectiveFill =
|
|
3843
|
+
const updateEffectiveFill = React21.useCallback(() => {
|
|
3660
3844
|
const root = rootRef.current;
|
|
3661
3845
|
if (!root) {
|
|
3662
3846
|
setEffectiveFill(fill);
|
|
@@ -3675,7 +3859,7 @@ function TabGroup({
|
|
|
3675
3859
|
const shouldFill = available - 2 * radius - wiggle <= required;
|
|
3676
3860
|
setEffectiveFill(shouldFill || hasOverflowControls ? "full" : "partial");
|
|
3677
3861
|
}, [fill, position, size, tabs.length]);
|
|
3678
|
-
|
|
3862
|
+
React21.useLayoutEffect(() => {
|
|
3679
3863
|
if (fill === "full") {
|
|
3680
3864
|
setEffectiveFill("full");
|
|
3681
3865
|
return;
|
|
@@ -3690,14 +3874,14 @@ function TabGroup({
|
|
|
3690
3874
|
return () => observer.disconnect();
|
|
3691
3875
|
}, [fill, updateEffectiveFill]);
|
|
3692
3876
|
const isVertical = position === "left" || position === "right";
|
|
3693
|
-
|
|
3877
|
+
React21.useLayoutEffect(() => {
|
|
3694
3878
|
const root = rootRef.current;
|
|
3695
3879
|
if (!root) return;
|
|
3696
3880
|
const computed = getComputedStyle(root);
|
|
3697
3881
|
const cssMin = parseFloat(computed.getPropertyValue("--rui-tab-min-main"));
|
|
3698
3882
|
setMinMain(Number.isFinite(cssMin) && cssMin > 0 ? cssMin : 32);
|
|
3699
3883
|
}, [position]);
|
|
3700
|
-
|
|
3884
|
+
React21.useLayoutEffect(() => {
|
|
3701
3885
|
const node = tabStripRef.current;
|
|
3702
3886
|
if (!node) return;
|
|
3703
3887
|
const measure = () => {
|
|
@@ -3714,15 +3898,15 @@ function TabGroup({
|
|
|
3714
3898
|
const overflow = slots < count;
|
|
3715
3899
|
const windowSize = overflow ? Math.max(1, slots - 2) : count;
|
|
3716
3900
|
const maxStart = Math.max(0, count - windowSize);
|
|
3717
|
-
const [startIndex, setStartIndex] =
|
|
3718
|
-
|
|
3901
|
+
const [startIndex, setStartIndex] = React21.useState(0);
|
|
3902
|
+
React21.useEffect(() => {
|
|
3719
3903
|
if (!overflow) {
|
|
3720
3904
|
setStartIndex(0);
|
|
3721
3905
|
return;
|
|
3722
3906
|
}
|
|
3723
3907
|
setStartIndex((prev) => Math.min(Math.max(0, prev), maxStart));
|
|
3724
3908
|
}, [overflow, maxStart]);
|
|
3725
|
-
|
|
3909
|
+
React21.useEffect(() => {
|
|
3726
3910
|
if (!overflow) return;
|
|
3727
3911
|
setStartIndex((prev) => {
|
|
3728
3912
|
if (currentActive < prev) return currentActive;
|
|
@@ -3738,16 +3922,16 @@ function TabGroup({
|
|
|
3738
3922
|
const scrollLabels = isVertical ? { back: "Scroll tabs up", forward: "Scroll tabs down" } : { back: "Scroll tabs left", forward: "Scroll tabs right" };
|
|
3739
3923
|
const scrollMainStyle = overflowMainStyle;
|
|
3740
3924
|
const panelId = `${idBase}-panel`;
|
|
3741
|
-
const getTabId =
|
|
3925
|
+
const getTabId = React21.useCallback(
|
|
3742
3926
|
(index) => `${idBase}-tab-${index}`,
|
|
3743
3927
|
[idBase]
|
|
3744
3928
|
);
|
|
3745
|
-
const focusTabAt =
|
|
3929
|
+
const focusTabAt = React21.useCallback((index) => {
|
|
3746
3930
|
var _a2;
|
|
3747
3931
|
const node = (_a2 = rootRef.current) == null ? void 0 : _a2.querySelector(`[data-tab-index="${index}"]`);
|
|
3748
3932
|
node == null ? void 0 : node.focus();
|
|
3749
3933
|
}, []);
|
|
3750
|
-
const moveActiveBy =
|
|
3934
|
+
const moveActiveBy = React21.useCallback(
|
|
3751
3935
|
(direction) => {
|
|
3752
3936
|
var _a2;
|
|
3753
3937
|
if (count === 0) return;
|
|
@@ -3762,7 +3946,7 @@ function TabGroup({
|
|
|
3762
3946
|
},
|
|
3763
3947
|
[count, currentActive, focusTabAt, setActive, tabs]
|
|
3764
3948
|
);
|
|
3765
|
-
const moveToEdge =
|
|
3949
|
+
const moveToEdge = React21.useCallback(
|
|
3766
3950
|
(edge) => {
|
|
3767
3951
|
var _a2;
|
|
3768
3952
|
if (count === 0) return;
|
|
@@ -3777,7 +3961,7 @@ function TabGroup({
|
|
|
3777
3961
|
},
|
|
3778
3962
|
[count, focusTabAt, setActive, tabs]
|
|
3779
3963
|
);
|
|
3780
|
-
const handleTabListKeyDown =
|
|
3964
|
+
const handleTabListKeyDown = React21.useCallback(
|
|
3781
3965
|
(event) => {
|
|
3782
3966
|
const key = event.key;
|
|
3783
3967
|
const prevKey = isVertical ? "ArrowUp" : "ArrowLeft";
|
|
@@ -3802,8 +3986,8 @@ function TabGroup({
|
|
|
3802
3986
|
},
|
|
3803
3987
|
[isVertical, moveActiveBy, moveToEdge]
|
|
3804
3988
|
);
|
|
3805
|
-
const tabList = /* @__PURE__ */
|
|
3806
|
-
overflow && /* @__PURE__ */
|
|
3989
|
+
const tabList = /* @__PURE__ */ jsxs23("div", { className: "rui-tab-group__tabstrip", ref: tabStripRef, children: [
|
|
3990
|
+
overflow && /* @__PURE__ */ jsx25(
|
|
3807
3991
|
"button",
|
|
3808
3992
|
{
|
|
3809
3993
|
type: "button",
|
|
@@ -3812,10 +3996,10 @@ function TabGroup({
|
|
|
3812
3996
|
disabled: startIndex === 0,
|
|
3813
3997
|
onClick: () => setStartIndex((i) => Math.max(0, i - 1)),
|
|
3814
3998
|
style: scrollMainStyle,
|
|
3815
|
-
children: /* @__PURE__ */
|
|
3999
|
+
children: /* @__PURE__ */ jsx25("span", { "aria-hidden": "true", className: "rui-tab-group__scrollIcon", children: isVertical ? "\u25B2" : "\u25C0" })
|
|
3816
4000
|
}
|
|
3817
4001
|
),
|
|
3818
|
-
/* @__PURE__ */
|
|
4002
|
+
/* @__PURE__ */ jsx25(
|
|
3819
4003
|
"div",
|
|
3820
4004
|
{
|
|
3821
4005
|
className: "rui-tab-group__tablist",
|
|
@@ -3824,7 +4008,7 @@ function TabGroup({
|
|
|
3824
4008
|
onKeyDown: handleTabListKeyDown,
|
|
3825
4009
|
children: visibleTabs.map((tab, localIndex) => {
|
|
3826
4010
|
const index = overflow ? startIndex + localIndex : localIndex;
|
|
3827
|
-
return /* @__PURE__ */
|
|
4011
|
+
return /* @__PURE__ */ jsx25(
|
|
3828
4012
|
"button",
|
|
3829
4013
|
{
|
|
3830
4014
|
type: "button",
|
|
@@ -3838,14 +4022,14 @@ function TabGroup({
|
|
|
3838
4022
|
"data-tab-index": index,
|
|
3839
4023
|
tabIndex: index === currentActive ? 0 : -1,
|
|
3840
4024
|
onClick: () => !tab.disabled && setActive(index),
|
|
3841
|
-
children: /* @__PURE__ */
|
|
4025
|
+
children: /* @__PURE__ */ jsx25("span", { className: "rui-tab-group__label", children: tab.label })
|
|
3842
4026
|
},
|
|
3843
4027
|
index
|
|
3844
4028
|
);
|
|
3845
4029
|
})
|
|
3846
4030
|
}
|
|
3847
4031
|
),
|
|
3848
|
-
overflow && /* @__PURE__ */
|
|
4032
|
+
overflow && /* @__PURE__ */ jsx25(
|
|
3849
4033
|
"button",
|
|
3850
4034
|
{
|
|
3851
4035
|
type: "button",
|
|
@@ -3854,11 +4038,11 @@ function TabGroup({
|
|
|
3854
4038
|
disabled: startIndex === maxStart,
|
|
3855
4039
|
onClick: () => setStartIndex((i) => Math.min(maxStart, i + 1)),
|
|
3856
4040
|
style: scrollMainStyle,
|
|
3857
|
-
children: /* @__PURE__ */
|
|
4041
|
+
children: /* @__PURE__ */ jsx25("span", { "aria-hidden": "true", className: "rui-tab-group__scrollIcon", children: isVertical ? "\u25BC" : "\u25B6" })
|
|
3858
4042
|
}
|
|
3859
4043
|
)
|
|
3860
4044
|
] });
|
|
3861
|
-
const panel = /* @__PURE__ */
|
|
4045
|
+
const panel = /* @__PURE__ */ jsx25(
|
|
3862
4046
|
"div",
|
|
3863
4047
|
{
|
|
3864
4048
|
className: "rui-tab-group__panel",
|
|
@@ -3869,7 +4053,7 @@ function TabGroup({
|
|
|
3869
4053
|
children: (_b = (_a = tabs[currentActive]) == null ? void 0 : _a.content) != null ? _b : null
|
|
3870
4054
|
}
|
|
3871
4055
|
);
|
|
3872
|
-
return /* @__PURE__ */
|
|
4056
|
+
return /* @__PURE__ */ jsx25(
|
|
3873
4057
|
"div",
|
|
3874
4058
|
{
|
|
3875
4059
|
ref: rootRef,
|
|
@@ -3880,10 +4064,10 @@ function TabGroup({
|
|
|
3880
4064
|
"data-requested-fill": fill,
|
|
3881
4065
|
"data-rotation": rotation,
|
|
3882
4066
|
"data-overflow": overflow ? "true" : "false",
|
|
3883
|
-
children: tabsFirst ? /* @__PURE__ */
|
|
4067
|
+
children: tabsFirst ? /* @__PURE__ */ jsxs23(Fragment2, { children: [
|
|
3884
4068
|
tabList,
|
|
3885
4069
|
panel
|
|
3886
|
-
] }) : /* @__PURE__ */
|
|
4070
|
+
] }) : /* @__PURE__ */ jsxs23(Fragment2, { children: [
|
|
3887
4071
|
panel,
|
|
3888
4072
|
tabList
|
|
3889
4073
|
] })
|
|
@@ -3892,22 +4076,22 @@ function TabGroup({
|
|
|
3892
4076
|
}
|
|
3893
4077
|
|
|
3894
4078
|
// components/Table/Table.tsx
|
|
3895
|
-
import * as
|
|
3896
|
-
import
|
|
4079
|
+
import * as React22 from "react";
|
|
4080
|
+
import clsx24 from "clsx";
|
|
3897
4081
|
import "./Table-GHEVUAUZ.css";
|
|
3898
|
-
import { jsx as
|
|
4082
|
+
import { jsx as jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3899
4083
|
var MIN_THUMB = 24;
|
|
3900
4084
|
var TRACK_PADDING2 = 6;
|
|
3901
4085
|
var TRACK_THICKNESS = 6;
|
|
3902
4086
|
var TRACK_INSET = 8;
|
|
3903
4087
|
var V_TRACK_INSET = 10;
|
|
3904
4088
|
function useScrollbarMetrics(ref, axis, extraSpace) {
|
|
3905
|
-
const [state, setState] =
|
|
4089
|
+
const [state, setState] = React22.useState({
|
|
3906
4090
|
visible: false,
|
|
3907
4091
|
size: MIN_THUMB,
|
|
3908
4092
|
offset: 0
|
|
3909
4093
|
});
|
|
3910
|
-
|
|
4094
|
+
React22.useLayoutEffect(() => {
|
|
3911
4095
|
const el = ref.current;
|
|
3912
4096
|
if (!el) return;
|
|
3913
4097
|
let raf = 0;
|
|
@@ -3943,7 +4127,7 @@ function useScrollbarMetrics(ref, axis, extraSpace) {
|
|
|
3943
4127
|
return state;
|
|
3944
4128
|
}
|
|
3945
4129
|
function useThumbDrag(ref, axis, thumbState, extraSpace) {
|
|
3946
|
-
const startDrag =
|
|
4130
|
+
const startDrag = React22.useCallback(
|
|
3947
4131
|
(event, startScrollOverride) => {
|
|
3948
4132
|
var _a, _b;
|
|
3949
4133
|
const el = ref.current;
|
|
@@ -3974,7 +4158,7 @@ function useThumbDrag(ref, axis, thumbState, extraSpace) {
|
|
|
3974
4158
|
},
|
|
3975
4159
|
[axis, ref, thumbState.size, extraSpace]
|
|
3976
4160
|
);
|
|
3977
|
-
const onThumbPointerDown =
|
|
4161
|
+
const onThumbPointerDown = React22.useCallback(
|
|
3978
4162
|
(event) => {
|
|
3979
4163
|
event.stopPropagation();
|
|
3980
4164
|
startDrag(event);
|
|
@@ -3991,15 +4175,15 @@ function Table({
|
|
|
3991
4175
|
scrollAreaStyle,
|
|
3992
4176
|
style
|
|
3993
4177
|
}) {
|
|
3994
|
-
const scrollRef =
|
|
3995
|
-
const [padRight, setPadRight] =
|
|
3996
|
-
const [padBottom, setPadBottom] =
|
|
4178
|
+
const scrollRef = React22.useRef(null);
|
|
4179
|
+
const [padRight, setPadRight] = React22.useState(0);
|
|
4180
|
+
const [padBottom, setPadBottom] = React22.useState(0);
|
|
3997
4181
|
const vThumb = useScrollbarMetrics(scrollRef, "vertical", padBottom);
|
|
3998
4182
|
const hThumb = useScrollbarMetrics(scrollRef, "horizontal", padRight);
|
|
3999
|
-
|
|
4183
|
+
React22.useEffect(() => {
|
|
4000
4184
|
setPadRight(vThumb.visible ? TRACK_PADDING2 + 10 : 0);
|
|
4001
4185
|
}, [vThumb.visible]);
|
|
4002
|
-
|
|
4186
|
+
React22.useEffect(() => {
|
|
4003
4187
|
setPadBottom(hThumb.visible ? TRACK_PADDING2 + 10 : 0);
|
|
4004
4188
|
}, [hThumb.visible]);
|
|
4005
4189
|
const { onThumbPointerDown: handleVThumbDown, startDrag: startVDrag } = useThumbDrag(
|
|
@@ -4014,7 +4198,7 @@ function Table({
|
|
|
4014
4198
|
hThumb,
|
|
4015
4199
|
padRight
|
|
4016
4200
|
);
|
|
4017
|
-
const handleTrackPointerDown =
|
|
4201
|
+
const handleTrackPointerDown = React22.useCallback(
|
|
4018
4202
|
(axis, thumb, startDrag, event) => {
|
|
4019
4203
|
const el = scrollRef.current;
|
|
4020
4204
|
if (!el) return;
|
|
@@ -4039,33 +4223,33 @@ function Table({
|
|
|
4039
4223
|
const vOffset = Math.max(TRACK_PADDING2, (vSlot - TRACK_THICKNESS) / 2);
|
|
4040
4224
|
const hOffset = Math.max(TRACK_PADDING2, (hSlot - TRACK_THICKNESS) / 2);
|
|
4041
4225
|
const hBottom = Math.max(TRACK_PADDING2 / 2, (hSlot - TRACK_THICKNESS) / 2);
|
|
4042
|
-
return /* @__PURE__ */
|
|
4226
|
+
return /* @__PURE__ */ jsx26(
|
|
4043
4227
|
"div",
|
|
4044
4228
|
{
|
|
4045
|
-
className:
|
|
4229
|
+
className: clsx24(
|
|
4046
4230
|
"rui-table",
|
|
4047
4231
|
className
|
|
4048
4232
|
),
|
|
4049
4233
|
style,
|
|
4050
|
-
children: /* @__PURE__ */
|
|
4234
|
+
children: /* @__PURE__ */ jsxs24(
|
|
4051
4235
|
"div",
|
|
4052
4236
|
{
|
|
4053
4237
|
className: "rui-table__container",
|
|
4054
4238
|
style: { paddingRight: padRight, paddingBottom: padBottom },
|
|
4055
4239
|
children: [
|
|
4056
|
-
/* @__PURE__ */
|
|
4240
|
+
/* @__PURE__ */ jsx26(
|
|
4057
4241
|
"div",
|
|
4058
4242
|
{
|
|
4059
4243
|
ref: scrollRef,
|
|
4060
4244
|
className: "rui-table__scroll",
|
|
4061
4245
|
style: { ...scrollAreaStyle },
|
|
4062
|
-
children: /* @__PURE__ */
|
|
4063
|
-
caption ? /* @__PURE__ */
|
|
4064
|
-
/* @__PURE__ */
|
|
4246
|
+
children: /* @__PURE__ */ jsxs24("table", { className: "rui-table__table", children: [
|
|
4247
|
+
caption ? /* @__PURE__ */ jsx26("caption", { className: "rui-table__caption rui-text-wrap", children: caption }) : null,
|
|
4248
|
+
/* @__PURE__ */ jsx26("thead", { className: "rui-table__head", children: /* @__PURE__ */ jsx26("tr", { children: columns.map((col) => /* @__PURE__ */ jsx26(
|
|
4065
4249
|
"th",
|
|
4066
4250
|
{
|
|
4067
4251
|
scope: "col",
|
|
4068
|
-
className:
|
|
4252
|
+
className: clsx24(
|
|
4069
4253
|
"rui-table__header-cell",
|
|
4070
4254
|
col.align === "right" && "rui-table__header-cell--align-right",
|
|
4071
4255
|
col.align === "center" && "rui-table__header-cell--align-center"
|
|
@@ -4074,17 +4258,17 @@ function Table({
|
|
|
4074
4258
|
},
|
|
4075
4259
|
String(col.key)
|
|
4076
4260
|
)) }) }),
|
|
4077
|
-
/* @__PURE__ */
|
|
4261
|
+
/* @__PURE__ */ jsx26("tbody", { children: data.map((row, rowIndex) => /* @__PURE__ */ jsx26(
|
|
4078
4262
|
"tr",
|
|
4079
4263
|
{
|
|
4080
|
-
className:
|
|
4264
|
+
className: clsx24(
|
|
4081
4265
|
"rui-table__row",
|
|
4082
4266
|
rowIndex % 2 === 0 && "rui-table__row--alt"
|
|
4083
4267
|
),
|
|
4084
|
-
children: columns.map((col) => /* @__PURE__ */
|
|
4268
|
+
children: columns.map((col) => /* @__PURE__ */ jsx26(
|
|
4085
4269
|
"td",
|
|
4086
4270
|
{
|
|
4087
|
-
className:
|
|
4271
|
+
className: clsx24(
|
|
4088
4272
|
"rui-table__cell",
|
|
4089
4273
|
col.align === "right" && "rui-table__cell--align-right",
|
|
4090
4274
|
col.align === "center" && "rui-table__cell--align-center"
|
|
@@ -4099,7 +4283,7 @@ function Table({
|
|
|
4099
4283
|
] })
|
|
4100
4284
|
}
|
|
4101
4285
|
),
|
|
4102
|
-
vThumb.visible ? /* @__PURE__ */
|
|
4286
|
+
vThumb.visible ? /* @__PURE__ */ jsx26(
|
|
4103
4287
|
"div",
|
|
4104
4288
|
{
|
|
4105
4289
|
className: "rui-table__track rui-table__track--vertical",
|
|
@@ -4110,10 +4294,10 @@ function Table({
|
|
|
4110
4294
|
width: TRACK_THICKNESS
|
|
4111
4295
|
},
|
|
4112
4296
|
onPointerDown: (e) => handleTrackPointerDown("vertical", vThumb, startVDrag, e),
|
|
4113
|
-
children: /* @__PURE__ */
|
|
4297
|
+
children: /* @__PURE__ */ jsx26("div", { className: "rui-table__track-inner", children: /* @__PURE__ */ jsx26(
|
|
4114
4298
|
"div",
|
|
4115
4299
|
{
|
|
4116
|
-
className:
|
|
4300
|
+
className: clsx24(
|
|
4117
4301
|
"rui-table__thumb rui-table__thumb--vertical"
|
|
4118
4302
|
),
|
|
4119
4303
|
style: { height: `${vThumb.size}px`, top: `${vThumb.offset}px` },
|
|
@@ -4122,7 +4306,7 @@ function Table({
|
|
|
4122
4306
|
) })
|
|
4123
4307
|
}
|
|
4124
4308
|
) : null,
|
|
4125
|
-
hThumb.visible ? /* @__PURE__ */
|
|
4309
|
+
hThumb.visible ? /* @__PURE__ */ jsx26(
|
|
4126
4310
|
"div",
|
|
4127
4311
|
{
|
|
4128
4312
|
className: "rui-table__track rui-table__track--horizontal",
|
|
@@ -4133,10 +4317,10 @@ function Table({
|
|
|
4133
4317
|
height: TRACK_THICKNESS
|
|
4134
4318
|
},
|
|
4135
4319
|
onPointerDown: (e) => handleTrackPointerDown("horizontal", hThumb, startHDrag, e),
|
|
4136
|
-
children: /* @__PURE__ */
|
|
4320
|
+
children: /* @__PURE__ */ jsx26("div", { className: "rui-table__track-inner", children: /* @__PURE__ */ jsx26(
|
|
4137
4321
|
"div",
|
|
4138
4322
|
{
|
|
4139
|
-
className:
|
|
4323
|
+
className: clsx24(
|
|
4140
4324
|
"rui-table__thumb rui-table__thumb--horizontal"
|
|
4141
4325
|
),
|
|
4142
4326
|
style: { width: `${hThumb.size}px`, left: `${hThumb.offset}px` },
|
|
@@ -4153,17 +4337,17 @@ function Table({
|
|
|
4153
4337
|
}
|
|
4154
4338
|
|
|
4155
4339
|
// components/Textarea/Textarea.tsx
|
|
4156
|
-
import * as
|
|
4157
|
-
import
|
|
4340
|
+
import * as React23 from "react";
|
|
4341
|
+
import clsx25 from "clsx";
|
|
4158
4342
|
import "./Textarea-ETXFJO7T.css";
|
|
4159
|
-
import { jsx as
|
|
4343
|
+
import { jsx as jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4160
4344
|
var MIN_THUMB2 = 24;
|
|
4161
4345
|
var TRACK_THICKNESS2 = 6;
|
|
4162
4346
|
var TRACK_TOP = 8;
|
|
4163
4347
|
var TRACK_BOTTOM = 22;
|
|
4164
4348
|
var TRACK_REDUCTION = 20;
|
|
4165
4349
|
var TRACK_REDUCTION_HALF = TRACK_REDUCTION / 2;
|
|
4166
|
-
var Textarea =
|
|
4350
|
+
var Textarea = React23.forwardRef(function Textarea2({
|
|
4167
4351
|
label,
|
|
4168
4352
|
description,
|
|
4169
4353
|
error,
|
|
@@ -4176,24 +4360,24 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4176
4360
|
...rest
|
|
4177
4361
|
}, ref) {
|
|
4178
4362
|
var _a, _b;
|
|
4179
|
-
const generatedId =
|
|
4363
|
+
const generatedId = React23.useId();
|
|
4180
4364
|
const textareaId = id != null ? id : generatedId;
|
|
4181
|
-
const descriptionId =
|
|
4182
|
-
const errorId =
|
|
4183
|
-
const textareaRef =
|
|
4184
|
-
const shellRef =
|
|
4185
|
-
const resizeListenersRef =
|
|
4186
|
-
const [thumb, setThumb] =
|
|
4365
|
+
const descriptionId = React23.useId();
|
|
4366
|
+
const errorId = React23.useId();
|
|
4367
|
+
const textareaRef = React23.useRef(null);
|
|
4368
|
+
const shellRef = React23.useRef(null);
|
|
4369
|
+
const resizeListenersRef = React23.useRef({});
|
|
4370
|
+
const [thumb, setThumb] = React23.useState({
|
|
4187
4371
|
visible: false,
|
|
4188
4372
|
size: MIN_THUMB2,
|
|
4189
4373
|
offset: 0
|
|
4190
4374
|
});
|
|
4191
4375
|
const hintIds = [description ? descriptionId : null, error ? errorId : null].filter(Boolean);
|
|
4192
4376
|
const resolvedAriaDescribedBy = hintIds.length ? hintIds.join(" ") : void 0;
|
|
4193
|
-
const [value, setValue] =
|
|
4194
|
-
const [height, setHeight] =
|
|
4195
|
-
const [width, setWidth] =
|
|
4196
|
-
const setRefs =
|
|
4377
|
+
const [value, setValue] = React23.useState((_b = (_a = rest.defaultValue) == null ? void 0 : _a.toString()) != null ? _b : "");
|
|
4378
|
+
const [height, setHeight] = React23.useState(void 0);
|
|
4379
|
+
const [width, setWidth] = React23.useState(void 0);
|
|
4380
|
+
const setRefs = React23.useCallback(
|
|
4197
4381
|
(node) => {
|
|
4198
4382
|
textareaRef.current = node;
|
|
4199
4383
|
if (typeof ref === "function") {
|
|
@@ -4204,17 +4388,17 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4204
4388
|
},
|
|
4205
4389
|
[ref]
|
|
4206
4390
|
);
|
|
4207
|
-
|
|
4391
|
+
React23.useEffect(() => {
|
|
4208
4392
|
if (typeof rest.value === "string") {
|
|
4209
4393
|
setValue(rest.value);
|
|
4210
4394
|
}
|
|
4211
4395
|
}, [rest.value]);
|
|
4212
|
-
|
|
4396
|
+
React23.useLayoutEffect(() => {
|
|
4213
4397
|
if (textareaRef.current && height === void 0) {
|
|
4214
4398
|
setHeight(textareaRef.current.offsetHeight);
|
|
4215
4399
|
}
|
|
4216
4400
|
}, [height]);
|
|
4217
|
-
|
|
4401
|
+
React23.useLayoutEffect(() => {
|
|
4218
4402
|
const el = textareaRef.current;
|
|
4219
4403
|
if (!el) return;
|
|
4220
4404
|
let raf = 0;
|
|
@@ -4249,7 +4433,7 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4249
4433
|
cancelAnimationFrame(raf);
|
|
4250
4434
|
};
|
|
4251
4435
|
}, [height]);
|
|
4252
|
-
|
|
4436
|
+
React23.useEffect(() => {
|
|
4253
4437
|
return () => {
|
|
4254
4438
|
if (resizeListenersRef.current.move) {
|
|
4255
4439
|
window.removeEventListener("pointermove", resizeListenersRef.current.move);
|
|
@@ -4297,7 +4481,7 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4297
4481
|
window.addEventListener("pointerup", onUp);
|
|
4298
4482
|
window.addEventListener("pointercancel", onUp);
|
|
4299
4483
|
};
|
|
4300
|
-
const handleThumbDrag =
|
|
4484
|
+
const handleThumbDrag = React23.useCallback(
|
|
4301
4485
|
(event, startScrollOverride) => {
|
|
4302
4486
|
var _a2, _b2;
|
|
4303
4487
|
const el = textareaRef.current;
|
|
@@ -4328,13 +4512,13 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4328
4512
|
},
|
|
4329
4513
|
[thumb.size]
|
|
4330
4514
|
);
|
|
4331
|
-
const rootClasses =
|
|
4332
|
-
const shellClasses =
|
|
4515
|
+
const rootClasses = clsx25("rui-textarea", "rui-root", disabled && "rui-textarea--disabled");
|
|
4516
|
+
const shellClasses = clsx25(
|
|
4333
4517
|
"rui-textarea__shell",
|
|
4334
4518
|
disabled && "rui-textarea__shell--disabled",
|
|
4335
4519
|
error && "rui-textarea__shell--error"
|
|
4336
4520
|
);
|
|
4337
|
-
const textareaClasses =
|
|
4521
|
+
const textareaClasses = clsx25(
|
|
4338
4522
|
"rui-textarea__control",
|
|
4339
4523
|
`rui-textarea__control--resize-${resizeDirection}`,
|
|
4340
4524
|
className
|
|
@@ -4348,8 +4532,8 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4348
4532
|
};
|
|
4349
4533
|
const allowX = resizeDirection === "horizontal" || resizeDirection === "both";
|
|
4350
4534
|
const shellStyle = width !== void 0 && allowX ? { width } : void 0;
|
|
4351
|
-
return /* @__PURE__ */
|
|
4352
|
-
label ? /* @__PURE__ */
|
|
4535
|
+
return /* @__PURE__ */ jsxs25("div", { className: rootClasses, children: [
|
|
4536
|
+
label ? /* @__PURE__ */ jsx27(
|
|
4353
4537
|
"label",
|
|
4354
4538
|
{
|
|
4355
4539
|
htmlFor: textareaId,
|
|
@@ -4357,8 +4541,8 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4357
4541
|
children: label
|
|
4358
4542
|
}
|
|
4359
4543
|
) : null,
|
|
4360
|
-
/* @__PURE__ */
|
|
4361
|
-
/* @__PURE__ */
|
|
4544
|
+
/* @__PURE__ */ jsxs25("div", { className: shellClasses, ref: shellRef, style: shellStyle, children: [
|
|
4545
|
+
/* @__PURE__ */ jsx27(
|
|
4362
4546
|
"textarea",
|
|
4363
4547
|
{
|
|
4364
4548
|
...restProps,
|
|
@@ -4377,7 +4561,7 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4377
4561
|
}
|
|
4378
4562
|
}
|
|
4379
4563
|
),
|
|
4380
|
-
thumb.visible ? /* @__PURE__ */
|
|
4564
|
+
thumb.visible ? /* @__PURE__ */ jsx27(
|
|
4381
4565
|
"div",
|
|
4382
4566
|
{
|
|
4383
4567
|
className: "rui-textarea__scrollbar",
|
|
@@ -4403,7 +4587,7 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4403
4587
|
el.scrollTop = target;
|
|
4404
4588
|
handleThumbDrag(event, target);
|
|
4405
4589
|
},
|
|
4406
|
-
children: /* @__PURE__ */
|
|
4590
|
+
children: /* @__PURE__ */ jsx27("div", { className: "rui-textarea__scrollbar-track", children: /* @__PURE__ */ jsx27(
|
|
4407
4591
|
"div",
|
|
4408
4592
|
{
|
|
4409
4593
|
className: "rui-textarea__scrollbar-thumb",
|
|
@@ -4416,13 +4600,13 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4416
4600
|
) })
|
|
4417
4601
|
}
|
|
4418
4602
|
) : null,
|
|
4419
|
-
resizeDirection !== "none" ? /* @__PURE__ */
|
|
4420
|
-
showCount && limit ? /* @__PURE__ */
|
|
4603
|
+
resizeDirection !== "none" ? /* @__PURE__ */ jsxs25("div", { className: "rui-textarea__footer", children: [
|
|
4604
|
+
showCount && limit ? /* @__PURE__ */ jsxs25("div", { className: "rui-textarea__footer-count", children: [
|
|
4421
4605
|
count,
|
|
4422
4606
|
"/",
|
|
4423
4607
|
limit
|
|
4424
4608
|
] }) : null,
|
|
4425
|
-
/* @__PURE__ */
|
|
4609
|
+
/* @__PURE__ */ jsx27(
|
|
4426
4610
|
"button",
|
|
4427
4611
|
{
|
|
4428
4612
|
type: "button",
|
|
@@ -4435,7 +4619,7 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4435
4619
|
appearance: "none",
|
|
4436
4620
|
background: "transparent"
|
|
4437
4621
|
},
|
|
4438
|
-
children: /* @__PURE__ */
|
|
4622
|
+
children: /* @__PURE__ */ jsx27(
|
|
4439
4623
|
"svg",
|
|
4440
4624
|
{
|
|
4441
4625
|
viewBox: "0 0 16 16",
|
|
@@ -4445,23 +4629,23 @@ var Textarea = React22.forwardRef(function Textarea2({
|
|
|
4445
4629
|
stroke: "currentColor",
|
|
4446
4630
|
strokeWidth: "1.5",
|
|
4447
4631
|
strokeLinecap: "round",
|
|
4448
|
-
children: /* @__PURE__ */
|
|
4632
|
+
children: /* @__PURE__ */ jsx27("path", { d: "M7 15 L15 7 M11 15 L15 11 M3 15 L15 3" })
|
|
4449
4633
|
}
|
|
4450
4634
|
)
|
|
4451
4635
|
}
|
|
4452
4636
|
)
|
|
4453
4637
|
] }) : null
|
|
4454
4638
|
] }),
|
|
4455
|
-
description ? /* @__PURE__ */
|
|
4456
|
-
error ? /* @__PURE__ */
|
|
4639
|
+
description ? /* @__PURE__ */ jsx27("p", { id: descriptionId, className: "rui-textarea__description rui-text-wrap", children: description }) : null,
|
|
4640
|
+
error ? /* @__PURE__ */ jsx27("p", { id: errorId, className: "rui-textarea__error rui-text-wrap", children: error }) : null
|
|
4457
4641
|
] });
|
|
4458
4642
|
});
|
|
4459
4643
|
|
|
4460
4644
|
// components/ResizableContainer/ResizableContainer.tsx
|
|
4461
|
-
import * as
|
|
4462
|
-
import
|
|
4645
|
+
import * as React24 from "react";
|
|
4646
|
+
import clsx26 from "clsx";
|
|
4463
4647
|
import "./ResizableContainer-KIX7YKZJ.css";
|
|
4464
|
-
import { jsx as
|
|
4648
|
+
import { jsx as jsx28, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4465
4649
|
var DEFAULT_MIN_WIDTH = 240;
|
|
4466
4650
|
var DEFAULT_MIN_HEIGHT = 120;
|
|
4467
4651
|
var DEFAULT_STEP = 8;
|
|
@@ -4471,12 +4655,12 @@ var TRACK_THICKNESS3 = 6;
|
|
|
4471
4655
|
var TRACK_INSET2 = 8;
|
|
4472
4656
|
var V_TRACK_INSET2 = 10;
|
|
4473
4657
|
function useScrollbarMetrics2(ref, axis, extraSpace) {
|
|
4474
|
-
const [state, setState] =
|
|
4658
|
+
const [state, setState] = React24.useState({
|
|
4475
4659
|
visible: false,
|
|
4476
4660
|
size: MIN_THUMB3,
|
|
4477
4661
|
offset: 0
|
|
4478
4662
|
});
|
|
4479
|
-
|
|
4663
|
+
React24.useLayoutEffect(() => {
|
|
4480
4664
|
const el = ref.current;
|
|
4481
4665
|
if (!el) return;
|
|
4482
4666
|
let raf = 0;
|
|
@@ -4512,7 +4696,7 @@ function useScrollbarMetrics2(ref, axis, extraSpace) {
|
|
|
4512
4696
|
return state;
|
|
4513
4697
|
}
|
|
4514
4698
|
function useThumbDrag2(ref, axis, thumbState, extraSpace) {
|
|
4515
|
-
const startDrag =
|
|
4699
|
+
const startDrag = React24.useCallback(
|
|
4516
4700
|
(event, startScrollOverride) => {
|
|
4517
4701
|
var _a, _b;
|
|
4518
4702
|
const el = ref.current;
|
|
@@ -4543,7 +4727,7 @@ function useThumbDrag2(ref, axis, thumbState, extraSpace) {
|
|
|
4543
4727
|
},
|
|
4544
4728
|
[axis, ref, thumbState.size, extraSpace]
|
|
4545
4729
|
);
|
|
4546
|
-
const onThumbPointerDown =
|
|
4730
|
+
const onThumbPointerDown = React24.useCallback(
|
|
4547
4731
|
(event) => {
|
|
4548
4732
|
event.stopPropagation();
|
|
4549
4733
|
startDrag(event);
|
|
@@ -4552,7 +4736,7 @@ function useThumbDrag2(ref, axis, thumbState, extraSpace) {
|
|
|
4552
4736
|
);
|
|
4553
4737
|
return { onThumbPointerDown, startDrag };
|
|
4554
4738
|
}
|
|
4555
|
-
var ResizableContainer =
|
|
4739
|
+
var ResizableContainer = React24.forwardRef(
|
|
4556
4740
|
function ResizableContainer2({
|
|
4557
4741
|
axis = "both",
|
|
4558
4742
|
minWidth = DEFAULT_MIN_WIDTH,
|
|
@@ -4570,14 +4754,14 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4570
4754
|
onSizeChange,
|
|
4571
4755
|
...rest
|
|
4572
4756
|
}, ref) {
|
|
4573
|
-
const rootRef =
|
|
4574
|
-
const contentRef =
|
|
4575
|
-
const [internalWidth, setInternalWidth] =
|
|
4576
|
-
const [internalHeight, setInternalHeight] =
|
|
4577
|
-
const [isResizing, setIsResizing] =
|
|
4578
|
-
const [padRight, setPadRight] =
|
|
4579
|
-
const [padBottom, setPadBottom] =
|
|
4580
|
-
const resizeStateRef =
|
|
4757
|
+
const rootRef = React24.useRef(null);
|
|
4758
|
+
const contentRef = React24.useRef(null);
|
|
4759
|
+
const [internalWidth, setInternalWidth] = React24.useState(defaultWidth);
|
|
4760
|
+
const [internalHeight, setInternalHeight] = React24.useState(defaultHeight);
|
|
4761
|
+
const [isResizing, setIsResizing] = React24.useState(false);
|
|
4762
|
+
const [padRight, setPadRight] = React24.useState(0);
|
|
4763
|
+
const [padBottom, setPadBottom] = React24.useState(0);
|
|
4764
|
+
const resizeStateRef = React24.useRef({
|
|
4581
4765
|
startX: 0,
|
|
4582
4766
|
startY: 0,
|
|
4583
4767
|
startWidth: 0,
|
|
@@ -4592,10 +4776,10 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4592
4776
|
const maxHeightLimit = maxHeight;
|
|
4593
4777
|
const vThumb = useScrollbarMetrics2(contentRef, "vertical", padBottom);
|
|
4594
4778
|
const hThumb = useScrollbarMetrics2(contentRef, "horizontal", padRight);
|
|
4595
|
-
|
|
4779
|
+
React24.useEffect(() => {
|
|
4596
4780
|
setPadRight(vThumb.visible ? TRACK_PADDING3 + 10 : 0);
|
|
4597
4781
|
}, [vThumb.visible]);
|
|
4598
|
-
|
|
4782
|
+
React24.useEffect(() => {
|
|
4599
4783
|
setPadBottom(hThumb.visible ? TRACK_PADDING3 + 10 : 0);
|
|
4600
4784
|
}, [hThumb.visible]);
|
|
4601
4785
|
const { onThumbPointerDown: handleVThumbDown, startDrag: startVDrag } = useThumbDrag2(
|
|
@@ -4610,7 +4794,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4610
4794
|
hThumb,
|
|
4611
4795
|
padRight
|
|
4612
4796
|
);
|
|
4613
|
-
const handleTrackPointerDown =
|
|
4797
|
+
const handleTrackPointerDown = React24.useCallback(
|
|
4614
4798
|
(axis2, thumb, startDrag, event) => {
|
|
4615
4799
|
const el = contentRef.current;
|
|
4616
4800
|
if (!el) return;
|
|
@@ -4630,7 +4814,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4630
4814
|
},
|
|
4631
4815
|
[]
|
|
4632
4816
|
);
|
|
4633
|
-
const setRefs =
|
|
4817
|
+
const setRefs = React24.useCallback(
|
|
4634
4818
|
(node) => {
|
|
4635
4819
|
rootRef.current = node;
|
|
4636
4820
|
if (typeof ref === "function") {
|
|
@@ -4641,7 +4825,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4641
4825
|
},
|
|
4642
4826
|
[ref]
|
|
4643
4827
|
);
|
|
4644
|
-
const clamp2 =
|
|
4828
|
+
const clamp2 = React24.useCallback((value, min, max) => {
|
|
4645
4829
|
return Math.max(min != null ? min : -Infinity, Math.min(max != null ? max : Infinity, value));
|
|
4646
4830
|
}, []);
|
|
4647
4831
|
const handlePointerDown = (event) => {
|
|
@@ -4664,7 +4848,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4664
4848
|
setIsResizing(true);
|
|
4665
4849
|
(_b = (_a = event.currentTarget).setPointerCapture) == null ? void 0 : _b.call(_a, event.pointerId);
|
|
4666
4850
|
};
|
|
4667
|
-
const applySize =
|
|
4851
|
+
const applySize = React24.useCallback(
|
|
4668
4852
|
(nextWidth, nextHeight) => {
|
|
4669
4853
|
if (allowX && !widthControlled) {
|
|
4670
4854
|
setInternalWidth(nextWidth);
|
|
@@ -4746,19 +4930,19 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4746
4930
|
const vOffset = Math.max(TRACK_PADDING3, (vSlot - TRACK_THICKNESS3) / 2);
|
|
4747
4931
|
const hOffset = Math.max(TRACK_PADDING3, (hSlot - TRACK_THICKNESS3) / 2);
|
|
4748
4932
|
const hBottom = Math.max(TRACK_PADDING3 / 2, (hSlot - TRACK_THICKNESS3) / 2);
|
|
4749
|
-
return /* @__PURE__ */
|
|
4933
|
+
return /* @__PURE__ */ jsxs26(
|
|
4750
4934
|
"div",
|
|
4751
4935
|
{
|
|
4752
4936
|
...rest,
|
|
4753
4937
|
ref: setRefs,
|
|
4754
|
-
className:
|
|
4938
|
+
className: clsx26("rui-resizable", "rui-root", className),
|
|
4755
4939
|
style: { ...style, ...sizeStyle },
|
|
4756
4940
|
"data-axis": axis,
|
|
4757
4941
|
"data-resizing": isResizing ? "true" : void 0,
|
|
4758
4942
|
"data-scrollbar-x": hThumb.visible ? "true" : void 0,
|
|
4759
4943
|
"data-scrollbar-y": vThumb.visible ? "true" : void 0,
|
|
4760
4944
|
children: [
|
|
4761
|
-
/* @__PURE__ */
|
|
4945
|
+
/* @__PURE__ */ jsx28(
|
|
4762
4946
|
"div",
|
|
4763
4947
|
{
|
|
4764
4948
|
ref: contentRef,
|
|
@@ -4770,7 +4954,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4770
4954
|
children
|
|
4771
4955
|
}
|
|
4772
4956
|
),
|
|
4773
|
-
vThumb.visible ? /* @__PURE__ */
|
|
4957
|
+
vThumb.visible ? /* @__PURE__ */ jsx28(
|
|
4774
4958
|
"div",
|
|
4775
4959
|
{
|
|
4776
4960
|
className: "rui-resizable__scrollbar rui-resizable__scrollbar--vertical",
|
|
@@ -4781,7 +4965,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4781
4965
|
width: TRACK_THICKNESS3
|
|
4782
4966
|
},
|
|
4783
4967
|
onPointerDown: (e) => handleTrackPointerDown("vertical", vThumb, startVDrag, e),
|
|
4784
|
-
children: /* @__PURE__ */
|
|
4968
|
+
children: /* @__PURE__ */ jsx28("div", { className: "rui-resizable__scrollbar-track", children: /* @__PURE__ */ jsx28(
|
|
4785
4969
|
"div",
|
|
4786
4970
|
{
|
|
4787
4971
|
className: "rui-resizable__scrollbar-thumb",
|
|
@@ -4791,7 +4975,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4791
4975
|
) })
|
|
4792
4976
|
}
|
|
4793
4977
|
) : null,
|
|
4794
|
-
hThumb.visible ? /* @__PURE__ */
|
|
4978
|
+
hThumb.visible ? /* @__PURE__ */ jsx28(
|
|
4795
4979
|
"div",
|
|
4796
4980
|
{
|
|
4797
4981
|
className: "rui-resizable__scrollbar rui-resizable__scrollbar--horizontal",
|
|
@@ -4802,7 +4986,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4802
4986
|
height: TRACK_THICKNESS3
|
|
4803
4987
|
},
|
|
4804
4988
|
onPointerDown: (e) => handleTrackPointerDown("horizontal", hThumb, startHDrag, e),
|
|
4805
|
-
children: /* @__PURE__ */
|
|
4989
|
+
children: /* @__PURE__ */ jsx28("div", { className: "rui-resizable__scrollbar-track", children: /* @__PURE__ */ jsx28(
|
|
4806
4990
|
"div",
|
|
4807
4991
|
{
|
|
4808
4992
|
className: "rui-resizable__scrollbar-thumb",
|
|
@@ -4812,7 +4996,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4812
4996
|
) })
|
|
4813
4997
|
}
|
|
4814
4998
|
) : null,
|
|
4815
|
-
/* @__PURE__ */
|
|
4999
|
+
/* @__PURE__ */ jsx28(
|
|
4816
5000
|
"button",
|
|
4817
5001
|
{
|
|
4818
5002
|
type: "button",
|
|
@@ -4823,7 +5007,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4823
5007
|
onPointerUp: handlePointerUp,
|
|
4824
5008
|
onPointerCancel: handlePointerUp,
|
|
4825
5009
|
onKeyDown: handleKeyDown,
|
|
4826
|
-
children: /* @__PURE__ */
|
|
5010
|
+
children: /* @__PURE__ */ jsx28(
|
|
4827
5011
|
"svg",
|
|
4828
5012
|
{
|
|
4829
5013
|
viewBox: "0 0 16 16",
|
|
@@ -4833,7 +5017,7 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4833
5017
|
stroke: "currentColor",
|
|
4834
5018
|
strokeWidth: "1.5",
|
|
4835
5019
|
strokeLinecap: "round",
|
|
4836
|
-
children: /* @__PURE__ */
|
|
5020
|
+
children: /* @__PURE__ */ jsx28("path", { d: "M7 15 L15 7 M11 15 L15 11 M3 15 L15 3" })
|
|
4837
5021
|
}
|
|
4838
5022
|
)
|
|
4839
5023
|
}
|
|
@@ -4845,13 +5029,13 @@ var ResizableContainer = React23.forwardRef(
|
|
|
4845
5029
|
);
|
|
4846
5030
|
|
|
4847
5031
|
// components/Toggle/Toggle.tsx
|
|
4848
|
-
import * as
|
|
4849
|
-
import
|
|
5032
|
+
import * as React25 from "react";
|
|
5033
|
+
import clsx27 from "clsx";
|
|
4850
5034
|
import "./Toggle-H2VEMC4W.css";
|
|
4851
|
-
import { jsx as
|
|
4852
|
-
var Toggle =
|
|
5035
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
5036
|
+
var Toggle = React25.forwardRef(function Toggle2({ checked, defaultChecked = false, onChange, disabled, className, onClick, ...rest }, ref) {
|
|
4853
5037
|
const isControlled = typeof checked === "boolean";
|
|
4854
|
-
const [internalChecked, setInternalChecked] =
|
|
5038
|
+
const [internalChecked, setInternalChecked] = React25.useState(defaultChecked);
|
|
4855
5039
|
const resolvedChecked = isControlled ? !!checked : internalChecked;
|
|
4856
5040
|
const handleClick = (event) => {
|
|
4857
5041
|
if (disabled) {
|
|
@@ -4865,18 +5049,18 @@ var Toggle = React24.forwardRef(function Toggle2({ checked, defaultChecked = fal
|
|
|
4865
5049
|
onChange == null ? void 0 : onChange(next);
|
|
4866
5050
|
onClick == null ? void 0 : onClick(event);
|
|
4867
5051
|
};
|
|
4868
|
-
const buttonClasses =
|
|
5052
|
+
const buttonClasses = clsx27(
|
|
4869
5053
|
"rui-toggle__button rui-root",
|
|
4870
5054
|
resolvedChecked && "rui-toggle__button--checked",
|
|
4871
5055
|
disabled && "rui-toggle__button--disabled rui-toggle__is-disabled",
|
|
4872
5056
|
className
|
|
4873
5057
|
);
|
|
4874
|
-
const thumbClasses =
|
|
5058
|
+
const thumbClasses = clsx27(
|
|
4875
5059
|
"rui-toggle__thumb",
|
|
4876
5060
|
resolvedChecked ? "rui-toggle__thumb--checked" : "rui-toggle__thumb--unchecked",
|
|
4877
5061
|
disabled && "rui-toggle__thumb--disabled"
|
|
4878
5062
|
);
|
|
4879
|
-
return /* @__PURE__ */
|
|
5063
|
+
return /* @__PURE__ */ jsx29(
|
|
4880
5064
|
"button",
|
|
4881
5065
|
{
|
|
4882
5066
|
...rest,
|
|
@@ -4888,7 +5072,7 @@ var Toggle = React24.forwardRef(function Toggle2({ checked, defaultChecked = fal
|
|
|
4888
5072
|
"data-state": resolvedChecked ? "on" : "off",
|
|
4889
5073
|
className: buttonClasses,
|
|
4890
5074
|
onClick: handleClick,
|
|
4891
|
-
children: /* @__PURE__ */
|
|
5075
|
+
children: /* @__PURE__ */ jsx29("span", { "aria-hidden": "true", className: thumbClasses })
|
|
4892
5076
|
}
|
|
4893
5077
|
);
|
|
4894
5078
|
});
|
|
@@ -4906,6 +5090,7 @@ export {
|
|
|
4906
5090
|
Dialog,
|
|
4907
5091
|
Disclosure,
|
|
4908
5092
|
Dropdown,
|
|
5093
|
+
FilePicker,
|
|
4909
5094
|
InputField,
|
|
4910
5095
|
Meter,
|
|
4911
5096
|
NumberInput,
|