@underverse-ui/underverse 2.0.6 → 2.0.8
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/api-reference.json +1 -1
- package/dist/{chunk-OZH3EDGZ.js → chunk-JINSMREP.js} +2 -2
- package/dist/{chunk-JXE7JBQV.js → chunk-TETMVVUP.js} +3 -1
- package/dist/chunk-TETMVVUP.js.map +1 -0
- package/dist/{chunk-2UQ7H5GR.js → chunk-XE3RJHVX.js} +3 -3
- package/dist/index.cjs +229 -91
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +254 -121
- package/dist/index.js.map +1 -1
- package/dist/{menu-bar-6HZDCX44.js → menu-bar-NFEW4FOJ.js} +3 -3
- package/dist/ueditor.js +2 -2
- package/package.json +3 -1
- package/dist/chunk-JXE7JBQV.js.map +0 -1
- /package/dist/{chunk-OZH3EDGZ.js.map → chunk-JINSMREP.js.map} +0 -0
- /package/dist/{chunk-2UQ7H5GR.js.map → chunk-XE3RJHVX.js.map} +0 -0
- /package/dist/{menu-bar-6HZDCX44.js.map → menu-bar-NFEW4FOJ.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
extractImageSrcsFromHtml,
|
|
5
5
|
normalizeImageUrl,
|
|
6
6
|
prepareUEditorContentForSave
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XE3RJHVX.js";
|
|
8
8
|
import {
|
|
9
9
|
EmojiPicker_default
|
|
10
10
|
} from "./chunk-A7XL4RDV.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
import "./chunk-4TYW5K4J.js";
|
|
17
17
|
import {
|
|
18
18
|
Modal_default
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-JINSMREP.js";
|
|
20
20
|
import {
|
|
21
21
|
DropdownMenuItem,
|
|
22
22
|
DropdownMenuSeparator,
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
SelectDropdown,
|
|
26
26
|
UnderverseConfigProvider,
|
|
27
27
|
formControlFixedClass,
|
|
28
|
+
formControlLabelClass,
|
|
28
29
|
formControlSizeStyles,
|
|
29
30
|
formControlValueClass,
|
|
30
31
|
getAnimationStyles,
|
|
@@ -34,7 +35,7 @@ import {
|
|
|
34
35
|
shadcnAnimationStyles,
|
|
35
36
|
useShadCNAnimations,
|
|
36
37
|
useUnderverseUIConfig
|
|
37
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-TETMVVUP.js";
|
|
38
39
|
import {
|
|
39
40
|
ForceInternalTranslationsProvider,
|
|
40
41
|
NextIntlAdapter,
|
|
@@ -591,7 +592,7 @@ var Checkbox = React3.forwardRef(
|
|
|
591
592
|
children: isChecked && /* @__PURE__ */ jsx4(Check, { className: "w-4 h-4" })
|
|
592
593
|
}
|
|
593
594
|
),
|
|
594
|
-
label && /* @__PURE__ */ jsx4("span", { className: cn("text-sm text-foreground", labelClassName), children: label })
|
|
595
|
+
label && /* @__PURE__ */ jsx4("span", { className: cn("text-sm text-foreground", formControlLabelClass, labelClassName), children: label })
|
|
595
596
|
] });
|
|
596
597
|
}
|
|
597
598
|
);
|
|
@@ -853,7 +854,7 @@ function useOverlayScrollbarTarget(targetRef, options = {}) {
|
|
|
853
854
|
var OverlayScrollbarProvider_default = OverlayScrollbarProvider;
|
|
854
855
|
|
|
855
856
|
// src/components/Input.tsx
|
|
856
|
-
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
857
|
+
import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
857
858
|
var Input = forwardRef3(
|
|
858
859
|
({
|
|
859
860
|
label,
|
|
@@ -876,6 +877,7 @@ var Input = forwardRef3(
|
|
|
876
877
|
value,
|
|
877
878
|
maxLength,
|
|
878
879
|
rightAddon,
|
|
880
|
+
rightSection,
|
|
879
881
|
borderMode,
|
|
880
882
|
...rest
|
|
881
883
|
}, ref) => {
|
|
@@ -975,7 +977,8 @@ var Input = forwardRef3(
|
|
|
975
977
|
className: cn(
|
|
976
978
|
// Label size follows input size
|
|
977
979
|
sizeStyles7[size].label,
|
|
978
|
-
|
|
980
|
+
formControlLabelClass,
|
|
981
|
+
"transition-colors duration-200",
|
|
979
982
|
// default color and highlight while any descendant focused
|
|
980
983
|
disabled ? "text-muted-foreground" : cn("text-foreground group-focus-within:text-primary", success && "text-primary"),
|
|
981
984
|
errMsg && "text-destructive",
|
|
@@ -1046,7 +1049,7 @@ var Input = forwardRef3(
|
|
|
1046
1049
|
radiusClass,
|
|
1047
1050
|
// Icon padding adjustments
|
|
1048
1051
|
LeftIcon && "pl-10",
|
|
1049
|
-
(RightIcon || showPasswordToggle || clearable || loading2 || success || errMsg) && "pr-10",
|
|
1052
|
+
(RightIcon || showPasswordToggle || clearable || loading2 || success || errMsg || rightSection) && "pr-10",
|
|
1050
1053
|
// Variant styles
|
|
1051
1054
|
variantStyles5[variant].container,
|
|
1052
1055
|
errMsg ? variantStyles5[variant].error : variantStyles5[variant].focus,
|
|
@@ -1059,45 +1062,57 @@ var Input = forwardRef3(
|
|
|
1059
1062
|
...restInput
|
|
1060
1063
|
}
|
|
1061
1064
|
),
|
|
1062
|
-
/* @__PURE__ */ jsxs5(
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1065
|
+
/* @__PURE__ */ jsxs5(
|
|
1066
|
+
"div",
|
|
1067
|
+
{
|
|
1068
|
+
className: cn(
|
|
1069
|
+
"absolute z-10 flex items-center gap-1",
|
|
1070
|
+
rightSection ? "inset-y-0 right-0" : "right-3 top-1/2 -translate-y-1/2"
|
|
1071
|
+
),
|
|
1072
|
+
children: [
|
|
1073
|
+
/* @__PURE__ */ jsxs5("div", { className: cn("flex items-center gap-1", rightSection && "px-1"), children: [
|
|
1074
|
+
getStatusIcon(),
|
|
1075
|
+
RightIcon && !loading2 && !success && !errMsg && /* @__PURE__ */ jsx6(RightIcon, { className: cn("text-muted-foreground", sizeStyles7[size].icon) }),
|
|
1076
|
+
clearable && hasValue && !loading2 && /* @__PURE__ */ jsx6(
|
|
1077
|
+
"button",
|
|
1078
|
+
{
|
|
1079
|
+
type: "button",
|
|
1080
|
+
onClick: () => {
|
|
1081
|
+
if (onClear) return onClear();
|
|
1082
|
+
rest.onChange?.({ target: { value: "" } });
|
|
1083
|
+
},
|
|
1084
|
+
className: cn(
|
|
1085
|
+
"flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors rounded-md",
|
|
1086
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
|
|
1087
|
+
"active:bg-accent active:text-accent-foreground",
|
|
1088
|
+
sizeStyles7[size].iconButton
|
|
1089
|
+
),
|
|
1090
|
+
tabIndex: 0,
|
|
1091
|
+
"aria-label": gi18n.clearInput ?? "Clear input",
|
|
1092
|
+
children: /* @__PURE__ */ jsx6(X, { className: sizeStyles7[size].icon })
|
|
1093
|
+
}
|
|
1094
|
+
),
|
|
1095
|
+
showPasswordToggle && /* @__PURE__ */ jsx6(
|
|
1096
|
+
"button",
|
|
1097
|
+
{
|
|
1098
|
+
type: "button",
|
|
1099
|
+
onClick: () => setShowPassword(!showPassword),
|
|
1100
|
+
className: cn(
|
|
1101
|
+
"flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors rounded-full",
|
|
1102
|
+
"focus:outline-none focus-visible:ring-1 focus-visible:ring-ring/40",
|
|
1103
|
+
"active:bg-accent/50 active:text-accent-foreground",
|
|
1104
|
+
sizeStyles7[size].iconButton
|
|
1105
|
+
),
|
|
1106
|
+
tabIndex: 0,
|
|
1107
|
+
"aria-label": showPassword ? gi18n.hidePassword ?? "Hide password" : gi18n.showPassword ?? "Show password",
|
|
1108
|
+
children: showPassword ? /* @__PURE__ */ jsx6(EyeOff, { className: sizeStyles7[size].icon }) : /* @__PURE__ */ jsx6(Eye, { className: sizeStyles7[size].icon })
|
|
1109
|
+
}
|
|
1110
|
+
)
|
|
1111
|
+
] }),
|
|
1112
|
+
rightSection
|
|
1113
|
+
]
|
|
1114
|
+
}
|
|
1115
|
+
),
|
|
1101
1116
|
rightAddon,
|
|
1102
1117
|
variant === "minimal" && /* @__PURE__ */ jsx6(
|
|
1103
1118
|
"div",
|
|
@@ -1132,27 +1147,128 @@ var Input = forwardRef3(
|
|
|
1132
1147
|
}
|
|
1133
1148
|
);
|
|
1134
1149
|
Input.displayName = "Input";
|
|
1150
|
+
var searchButtonWidthStyles = {
|
|
1151
|
+
xs: "w-6",
|
|
1152
|
+
sm: "w-8",
|
|
1153
|
+
md: "w-10",
|
|
1154
|
+
lg: "w-12",
|
|
1155
|
+
xl: "w-14"
|
|
1156
|
+
};
|
|
1157
|
+
var searchButtonPaddingStyles = {
|
|
1158
|
+
xs: "pr-14",
|
|
1159
|
+
sm: "pr-18",
|
|
1160
|
+
md: "pr-20",
|
|
1161
|
+
lg: "pr-24",
|
|
1162
|
+
xl: "pr-28"
|
|
1163
|
+
};
|
|
1164
|
+
var searchButtonRadiusStyles = {
|
|
1165
|
+
none: "rounded-r-none",
|
|
1166
|
+
sm: "rounded-r-sm",
|
|
1167
|
+
md: "rounded-r-md",
|
|
1168
|
+
lg: "rounded-r-lg",
|
|
1169
|
+
xl: "rounded-r-xl",
|
|
1170
|
+
"2xl": "rounded-r-2xl",
|
|
1171
|
+
"3xl": "rounded-r-3xl",
|
|
1172
|
+
full: "rounded-r-full",
|
|
1173
|
+
daewoo: "rounded-r",
|
|
1174
|
+
infiniq: "rounded-r-full"
|
|
1175
|
+
};
|
|
1135
1176
|
var SearchInput = forwardRef3(
|
|
1136
|
-
({
|
|
1137
|
-
|
|
1177
|
+
({
|
|
1178
|
+
mode = "default",
|
|
1179
|
+
onSearch,
|
|
1180
|
+
searchDelay = 300,
|
|
1181
|
+
searchButtonLabel = "Search",
|
|
1182
|
+
placeholder = "Search\u2026",
|
|
1183
|
+
value,
|
|
1184
|
+
defaultValue,
|
|
1185
|
+
onChange,
|
|
1186
|
+
onClear,
|
|
1187
|
+
onKeyDown,
|
|
1188
|
+
clearable = true,
|
|
1189
|
+
size = "md",
|
|
1190
|
+
className,
|
|
1191
|
+
disabled,
|
|
1192
|
+
loading: loading2 = false,
|
|
1193
|
+
rightSection,
|
|
1194
|
+
borderMode,
|
|
1195
|
+
...props
|
|
1196
|
+
}, ref) => {
|
|
1197
|
+
const [uncontrolledValue, setUncontrolledValue] = useState3(defaultValue ?? "");
|
|
1198
|
+
const isControlled = value !== void 0;
|
|
1199
|
+
const searchValue = isControlled ? value : uncontrolledValue;
|
|
1200
|
+
const searchText = String(searchValue ?? "");
|
|
1201
|
+
const globalConfig = useUnderverseUIConfig();
|
|
1202
|
+
const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
|
|
1203
|
+
const searchButtonRadiusClass = searchButtonRadiusStyles[resolvedBorderMode] ?? getBorderRadiusClass(resolvedBorderMode);
|
|
1204
|
+
const triggerSearch = useCallback2(() => {
|
|
1205
|
+
onSearch?.(searchText);
|
|
1206
|
+
}, [onSearch, searchText]);
|
|
1138
1207
|
React5.useEffect(() => {
|
|
1139
|
-
if (!onSearch) return;
|
|
1208
|
+
if (!onSearch || mode !== "default") return;
|
|
1140
1209
|
const timer = setTimeout(() => {
|
|
1141
|
-
onSearch(
|
|
1210
|
+
onSearch(searchText);
|
|
1142
1211
|
}, searchDelay);
|
|
1143
1212
|
return () => clearTimeout(timer);
|
|
1144
|
-
}, [
|
|
1213
|
+
}, [mode, onSearch, searchDelay, searchText]);
|
|
1214
|
+
const searchButton = mode === "button" ? /* @__PURE__ */ jsx6(
|
|
1215
|
+
"button",
|
|
1216
|
+
{
|
|
1217
|
+
type: "button",
|
|
1218
|
+
onClick: triggerSearch,
|
|
1219
|
+
disabled: disabled || loading2,
|
|
1220
|
+
className: cn(
|
|
1221
|
+
"flex h-full shrink-0 cursor-pointer items-center justify-center border-l border-border bg-transparent text-foreground",
|
|
1222
|
+
"transition-colors hover:bg-accent hover:text-accent-foreground",
|
|
1223
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
|
|
1224
|
+
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent",
|
|
1225
|
+
searchButtonWidthStyles[size],
|
|
1226
|
+
searchButtonRadiusClass
|
|
1227
|
+
),
|
|
1228
|
+
"aria-label": searchButtonLabel,
|
|
1229
|
+
children: /* @__PURE__ */ jsx6(Search, { className: formControlSizeStyles[size].icon, "aria-hidden": "true" })
|
|
1230
|
+
}
|
|
1231
|
+
) : null;
|
|
1145
1232
|
return /* @__PURE__ */ jsx6(
|
|
1146
1233
|
Input,
|
|
1147
1234
|
{
|
|
1148
1235
|
ref,
|
|
1149
1236
|
type: "search",
|
|
1150
|
-
leftIcon: Search,
|
|
1237
|
+
leftIcon: mode === "default" ? Search : void 0,
|
|
1151
1238
|
placeholder,
|
|
1152
|
-
clearable
|
|
1239
|
+
clearable,
|
|
1153
1240
|
value: searchValue,
|
|
1154
|
-
onChange: (
|
|
1155
|
-
|
|
1241
|
+
onChange: (event) => {
|
|
1242
|
+
if (!isControlled) setUncontrolledValue(event.target.value);
|
|
1243
|
+
onChange?.(event);
|
|
1244
|
+
},
|
|
1245
|
+
onClear: () => {
|
|
1246
|
+
if (!isControlled) {
|
|
1247
|
+
setUncontrolledValue("");
|
|
1248
|
+
} else if (!onClear && onChange) {
|
|
1249
|
+
onChange({ target: { value: "" }, currentTarget: { value: "" } });
|
|
1250
|
+
}
|
|
1251
|
+
onClear?.();
|
|
1252
|
+
},
|
|
1253
|
+
onKeyDown: (event) => {
|
|
1254
|
+
onKeyDown?.(event);
|
|
1255
|
+
if (mode === "button" && event.key === "Enter" && !event.defaultPrevented && !event.nativeEvent.isComposing) {
|
|
1256
|
+
triggerSearch();
|
|
1257
|
+
}
|
|
1258
|
+
},
|
|
1259
|
+
size,
|
|
1260
|
+
className: cn(
|
|
1261
|
+
"[&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none",
|
|
1262
|
+
mode === "button" && searchButtonPaddingStyles[size],
|
|
1263
|
+
className
|
|
1264
|
+
),
|
|
1265
|
+
disabled,
|
|
1266
|
+
loading: loading2,
|
|
1267
|
+
rightSection: mode === "button" ? /* @__PURE__ */ jsxs5(Fragment2, { children: [
|
|
1268
|
+
rightSection,
|
|
1269
|
+
searchButton
|
|
1270
|
+
] }) : rightSection,
|
|
1271
|
+
borderMode,
|
|
1156
1272
|
...props
|
|
1157
1273
|
}
|
|
1158
1274
|
);
|
|
@@ -1393,7 +1509,8 @@ var Textarea = forwardRef3(
|
|
|
1393
1509
|
"label",
|
|
1394
1510
|
{
|
|
1395
1511
|
className: cn(
|
|
1396
|
-
"text-sm
|
|
1512
|
+
"text-sm transition-colors duration-200",
|
|
1513
|
+
formControlLabelClass,
|
|
1397
1514
|
isFocused ? "text-primary" : "text-foreground",
|
|
1398
1515
|
error && "text-destructive",
|
|
1399
1516
|
labelClassName
|
|
@@ -2344,7 +2461,8 @@ var TagInput = forwardRef4(
|
|
|
2344
2461
|
{
|
|
2345
2462
|
htmlFor: inputId,
|
|
2346
2463
|
className: cn(
|
|
2347
|
-
"block
|
|
2464
|
+
"block transition-colors duration-200",
|
|
2465
|
+
formControlLabelClass,
|
|
2348
2466
|
formControlSizeStyles[size].label,
|
|
2349
2467
|
disabled ? "text-muted-foreground" : isFocused ? "text-primary" : "text-foreground",
|
|
2350
2468
|
labelClassName
|
|
@@ -2618,7 +2736,7 @@ var Switch = ({
|
|
|
2618
2736
|
]
|
|
2619
2737
|
}
|
|
2620
2738
|
),
|
|
2621
|
-
label && /* @__PURE__ */ jsx10("span", { className: cn("text-sm
|
|
2739
|
+
label && /* @__PURE__ */ jsx10("span", { className: cn("text-sm text-foreground transition-colors", formControlLabelClass, disabled && "text-muted-foreground", labelClassName), children: label })
|
|
2622
2740
|
] });
|
|
2623
2741
|
};
|
|
2624
2742
|
Switch.displayName = "Switch";
|
|
@@ -2629,7 +2747,7 @@ import * as React10 from "react";
|
|
|
2629
2747
|
import { cva } from "class-variance-authority";
|
|
2630
2748
|
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
2631
2749
|
var labelVariants = cva(
|
|
2632
|
-
|
|
2750
|
+
`text-sm ${formControlLabelClass} leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`
|
|
2633
2751
|
);
|
|
2634
2752
|
var Label = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
2635
2753
|
"label",
|
|
@@ -2992,7 +3110,7 @@ var Skeleton_default = Skeleton;
|
|
|
2992
3110
|
// src/components/Progress.tsx
|
|
2993
3111
|
import React13 from "react";
|
|
2994
3112
|
import { Check as Check2, X as X4, Clock } from "lucide-react";
|
|
2995
|
-
import { Fragment as
|
|
3113
|
+
import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2996
3114
|
var variantStyles2 = {
|
|
2997
3115
|
default: "bg-muted-foreground",
|
|
2998
3116
|
primary: "bg-linear-to-r from-primary via-primary/90 to-primary",
|
|
@@ -3153,7 +3271,7 @@ var CircularProgress = ({
|
|
|
3153
3271
|
]
|
|
3154
3272
|
}
|
|
3155
3273
|
),
|
|
3156
|
-
/* @__PURE__ */ jsx15("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-center", children: children ? children : /* @__PURE__ */ jsxs11(
|
|
3274
|
+
/* @__PURE__ */ jsx15("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-center", children: children ? children : /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
3157
3275
|
getContentIcon(),
|
|
3158
3276
|
showValue && !indeterminate && /* @__PURE__ */ jsx15("span", { className: cn("text-sm font-semibold", isComplete ? "text-success" : isError ? "text-destructive" : "text-foreground"), children: isComplete ? "\u2713" : isError ? "\u2717" : `${Math.round(percentage)}%` }),
|
|
3159
3277
|
indeterminate && /* @__PURE__ */ jsx15(Clock, { className: "w-4 h-4 text-muted-foreground animate-pulse" })
|
|
@@ -4469,7 +4587,7 @@ import * as React19 from "react";
|
|
|
4469
4587
|
import { useId as useId4 } from "react";
|
|
4470
4588
|
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
4471
4589
|
import { ChevronDown, Search as Search4, SearchX, Check as Check3, X as X8 } from "lucide-react";
|
|
4472
|
-
import { Fragment as
|
|
4590
|
+
import { Fragment as Fragment4, jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4473
4591
|
var getOptionLabel = (option) => {
|
|
4474
4592
|
return typeof option === "string" ? option : option.label;
|
|
4475
4593
|
};
|
|
@@ -4962,7 +5080,7 @@ var Combobox = ({
|
|
|
4962
5080
|
className
|
|
4963
5081
|
)
|
|
4964
5082
|
};
|
|
4965
|
-
const triggerContents = /* @__PURE__ */ jsxs18(
|
|
5083
|
+
const triggerContents = /* @__PURE__ */ jsxs18(Fragment4, { children: [
|
|
4966
5084
|
selectedIcon && /* @__PURE__ */ jsx22("span", { className: cn("mr-2 flex shrink-0 items-center justify-center overflow-hidden text-primary", formControlSizeStyles[size].icon), children: selectedIcon }),
|
|
4967
5085
|
/* @__PURE__ */ jsx22("span", { className: cn(formControlValueClass, "text-left", !displayValue && "text-muted-foreground", fontBold && "font-semibold"), children: renderValue && selectedOption ? renderValue(selectedOption) : displayValue || placeholder }),
|
|
4968
5086
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1.5 ml-2 shrink-0", children: [
|
|
@@ -5021,7 +5139,8 @@ var Combobox = ({
|
|
|
5021
5139
|
onClick: () => triggerRef.current?.focus(),
|
|
5022
5140
|
className: cn(
|
|
5023
5141
|
labelSize,
|
|
5024
|
-
|
|
5142
|
+
formControlLabelClass,
|
|
5143
|
+
"transition-colors duration-200",
|
|
5025
5144
|
disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
|
|
5026
5145
|
effectiveError && "text-destructive",
|
|
5027
5146
|
labelClassName
|
|
@@ -5809,7 +5928,7 @@ function parseDateString(str, locale = "en") {
|
|
|
5809
5928
|
import { Calendar, ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight3, Sparkles, X as XIcon } from "lucide-react";
|
|
5810
5929
|
import * as React23 from "react";
|
|
5811
5930
|
import { useId as useId5 } from "react";
|
|
5812
|
-
import { Fragment as
|
|
5931
|
+
import { Fragment as Fragment5, jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5813
5932
|
function normalizeToLocalDate(date) {
|
|
5814
5933
|
if (!date) return null;
|
|
5815
5934
|
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
@@ -6200,7 +6319,7 @@ var DatePicker = ({
|
|
|
6200
6319
|
}
|
|
6201
6320
|
)
|
|
6202
6321
|
] }),
|
|
6203
|
-
viewMode === "calendar" && /* @__PURE__ */ jsxs20(
|
|
6322
|
+
viewMode === "calendar" && /* @__PURE__ */ jsxs20(Fragment5, { children: [
|
|
6204
6323
|
/* @__PURE__ */ jsx27("div", { className: cn("grid grid-cols-7 gap-1 mb-2 px-0.5"), children: (weekdayLabels || (locale === "vi" ? ["CN", "T2", "T3", "T4", "T5", "T6", "T7"] : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"])).map(
|
|
6205
6324
|
(day, idx) => /* @__PURE__ */ jsx27(
|
|
6206
6325
|
"div",
|
|
@@ -6289,7 +6408,8 @@ var DatePicker = ({
|
|
|
6289
6408
|
onClick: () => inputRef.current?.focus(),
|
|
6290
6409
|
className: cn(
|
|
6291
6410
|
labelSize,
|
|
6292
|
-
|
|
6411
|
+
formControlLabelClass,
|
|
6412
|
+
"transition-colors duration-300 cursor-pointer",
|
|
6293
6413
|
disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary hover:text-primary",
|
|
6294
6414
|
effectiveError && "text-destructive",
|
|
6295
6415
|
labelClassName
|
|
@@ -6970,7 +7090,7 @@ var DateRangePicker = ({
|
|
|
6970
7090
|
}
|
|
6971
7091
|
)
|
|
6972
7092
|
] }),
|
|
6973
|
-
viewMode === "calendar" && /* @__PURE__ */ jsxs20(
|
|
7093
|
+
viewMode === "calendar" && /* @__PURE__ */ jsxs20(Fragment5, { children: [
|
|
6974
7094
|
/* @__PURE__ */ jsx27("div", { className: cn("grid grid-cols-7 gap-1 px-0.5", size === "sm" ? "mb-1" : size === "lg" ? "mb-3" : "mb-2"), children: (locale === "vi" ? ["CN", "T2", "T3", "T4", "T5", "T6", "T7"] : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]).map((d, idx) => /* @__PURE__ */ jsx27(
|
|
6975
7095
|
"div",
|
|
6976
7096
|
{
|
|
@@ -7048,7 +7168,8 @@ var DateRangePicker = ({
|
|
|
7048
7168
|
onClick: () => inputRef.current?.focus(),
|
|
7049
7169
|
className: cn(
|
|
7050
7170
|
size === "sm" ? "text-xs" : size === "lg" ? "text-base" : "text-sm",
|
|
7051
|
-
|
|
7171
|
+
formControlLabelClass,
|
|
7172
|
+
"transition-colors duration-300",
|
|
7052
7173
|
disabled ? "text-muted-foreground cursor-not-allowed" : "text-foreground group-focus-within:text-primary hover:text-primary cursor-pointer",
|
|
7053
7174
|
effectiveError && "text-destructive",
|
|
7054
7175
|
labelClassName
|
|
@@ -7393,7 +7514,7 @@ function getLeapMonthOffset(a11, timeZone) {
|
|
|
7393
7514
|
}
|
|
7394
7515
|
|
|
7395
7516
|
// src/components/LunarDatePicker.tsx
|
|
7396
|
-
import { Fragment as
|
|
7517
|
+
import { Fragment as Fragment6, jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
7397
7518
|
function toSolarDate(value) {
|
|
7398
7519
|
if (!value) return null;
|
|
7399
7520
|
const solar = lunarToSolar({
|
|
@@ -7897,7 +8018,7 @@ var LunarDatePicker = ({
|
|
|
7897
8018
|
}
|
|
7898
8019
|
)
|
|
7899
8020
|
] }),
|
|
7900
|
-
viewMode === "calendar" && /* @__PURE__ */ jsxs21(
|
|
8021
|
+
viewMode === "calendar" && /* @__PURE__ */ jsxs21(Fragment6, { children: [
|
|
7901
8022
|
/* @__PURE__ */ jsx28("div", { className: cn("grid grid-cols-7 gap-1 mb-2 px-0.5"), children: (weekdayLabels || (locale === "vi" ? ["CN", "T2", "T3", "T4", "T5", "T6", "T7"] : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"])).map(
|
|
7902
8023
|
(day, idx) => /* @__PURE__ */ jsx28(
|
|
7903
8024
|
"div",
|
|
@@ -7986,7 +8107,8 @@ var LunarDatePicker = ({
|
|
|
7986
8107
|
onClick: () => inputRef.current?.focus(),
|
|
7987
8108
|
className: cn(
|
|
7988
8109
|
labelSize,
|
|
7989
|
-
|
|
8110
|
+
formControlLabelClass,
|
|
8111
|
+
"transition-colors duration-300 cursor-pointer",
|
|
7990
8112
|
disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary hover:text-primary",
|
|
7991
8113
|
effectiveError && "text-destructive",
|
|
7992
8114
|
labelClassName
|
|
@@ -8536,7 +8658,7 @@ var LunarDateRangePicker = ({
|
|
|
8536
8658
|
}
|
|
8537
8659
|
)
|
|
8538
8660
|
] }),
|
|
8539
|
-
viewMode === "calendar" && /* @__PURE__ */ jsxs21(
|
|
8661
|
+
viewMode === "calendar" && /* @__PURE__ */ jsxs21(Fragment6, { children: [
|
|
8540
8662
|
/* @__PURE__ */ jsx28("div", { className: cn("grid grid-cols-7 gap-1 px-0.5", size === "sm" ? "mb-1" : size === "lg" ? "mb-3" : "mb-2"), children: (locale === "vi" ? ["CN", "T2", "T3", "T4", "T5", "T6", "T7"] : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]).map((d, idx) => /* @__PURE__ */ jsx28(
|
|
8541
8663
|
"div",
|
|
8542
8664
|
{
|
|
@@ -8615,7 +8737,8 @@ var LunarDateRangePicker = ({
|
|
|
8615
8737
|
onClick: () => setIsOpen(true),
|
|
8616
8738
|
className: cn(
|
|
8617
8739
|
size === "sm" ? "text-xs" : size === "lg" ? "text-base" : "text-sm",
|
|
8618
|
-
|
|
8740
|
+
formControlLabelClass,
|
|
8741
|
+
"transition-colors duration-300",
|
|
8619
8742
|
disabled ? "text-muted-foreground cursor-not-allowed" : "text-foreground group-focus-within:text-primary hover:text-primary cursor-pointer",
|
|
8620
8743
|
effectiveError && "text-destructive",
|
|
8621
8744
|
labelClassName
|
|
@@ -9523,7 +9646,7 @@ function MonthYearPicker({
|
|
|
9523
9646
|
] });
|
|
9524
9647
|
if (variant === "inline") {
|
|
9525
9648
|
return /* @__PURE__ */ jsxs22("div", { className: cn("w-full", className), ...rest, children: [
|
|
9526
|
-
label && /* @__PURE__ */ jsxs22("label", { className: cn(sz.label, "block mb-1.5
|
|
9649
|
+
label && /* @__PURE__ */ jsxs22("label", { className: cn(sz.label, "block mb-1.5 text-foreground/80", formControlLabelClass, effectiveError && "text-destructive", labelClassName), children: [
|
|
9527
9650
|
label,
|
|
9528
9651
|
required && /* @__PURE__ */ jsx29("span", { className: "text-destructive ml-0.5", children: "*" })
|
|
9529
9652
|
] }),
|
|
@@ -9560,7 +9683,7 @@ function MonthYearPicker({
|
|
|
9560
9683
|
] });
|
|
9561
9684
|
}
|
|
9562
9685
|
return /* @__PURE__ */ jsxs22("div", { className: cn("w-full", className), ...rest, children: [
|
|
9563
|
-
label && /* @__PURE__ */ jsxs22("label", { className: cn(sz.label, "block mb-1.5
|
|
9686
|
+
label && /* @__PURE__ */ jsxs22("label", { className: cn(sz.label, "block mb-1.5 text-foreground/80", formControlLabelClass, effectiveError && "text-destructive", labelClassName), children: [
|
|
9564
9687
|
label,
|
|
9565
9688
|
required && /* @__PURE__ */ jsx29("span", { className: "text-destructive ml-0.5", children: "*" })
|
|
9566
9689
|
] }),
|
|
@@ -9602,7 +9725,7 @@ function MonthYearPicker({
|
|
|
9602
9725
|
}
|
|
9603
9726
|
|
|
9604
9727
|
// src/components/Calendar.tsx
|
|
9605
|
-
import { Fragment as
|
|
9728
|
+
import { Fragment as Fragment8, jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
9606
9729
|
var VIETNAM_HOLIDAYS = [
|
|
9607
9730
|
{ date: "01-01", name: "T\u1EBFt D\u01B0\u01A1ng l\u1ECBch", recurring: true },
|
|
9608
9731
|
{ date: "04-30", name: "Gi\u1EA3i ph\xF3ng mi\u1EC1n Nam", recurring: true },
|
|
@@ -10097,7 +10220,7 @@ function Calendar4({
|
|
|
10097
10220
|
}
|
|
10098
10221
|
)
|
|
10099
10222
|
] }),
|
|
10100
|
-
display === "week" ? /* @__PURE__ */ jsxs23(
|
|
10223
|
+
display === "week" ? /* @__PURE__ */ jsxs23(Fragment8, { children: [
|
|
10101
10224
|
showWeekdays && /* @__PURE__ */ jsx30("div", { className: cn("grid grid-cols-7", sz.grid, "mb-1 text-center text-muted-foreground font-medium"), children: weekdays.map((w) => /* @__PURE__ */ jsx30("div", { className: cn(sz.head), children: w }, `w-${w}`)) }),
|
|
10102
10225
|
/* @__PURE__ */ jsx30("div", { className: cn("grid grid-cols-7", sz.grid), children: weekDays.map((d, idx) => {
|
|
10103
10226
|
const inMonth = true;
|
|
@@ -10253,7 +10376,7 @@ function Calendar4({
|
|
|
10253
10376
|
// src/components/TimePicker.tsx
|
|
10254
10377
|
import * as React27 from "react";
|
|
10255
10378
|
import { Clock as Clock2, X as X10, Check as Check5, Sun, Moon, Sunset, Coffee } from "lucide-react";
|
|
10256
|
-
import { Fragment as
|
|
10379
|
+
import { Fragment as Fragment9, jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
10257
10380
|
var pad = (n) => n.toString().padStart(2, "0");
|
|
10258
10381
|
var clamp2 = (n, min, max) => Math.min(max, Math.max(min, n));
|
|
10259
10382
|
var WHEEL_ITEM_HEIGHT2 = {
|
|
@@ -11290,7 +11413,7 @@ function TimePicker({
|
|
|
11290
11413
|
}
|
|
11291
11414
|
);
|
|
11292
11415
|
})(),
|
|
11293
|
-
includeSeconds && /* @__PURE__ */ jsxs24(
|
|
11416
|
+
includeSeconds && /* @__PURE__ */ jsxs24(Fragment9, { children: [
|
|
11294
11417
|
/* @__PURE__ */ jsx31("div", { className: cn("flex flex-col items-center justify-center", panelSz.separatorPad, compactPanel && "pt-6"), children: /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-2", children: [
|
|
11295
11418
|
/* @__PURE__ */ jsx31("div", { className: "w-1.5 h-1.5 rounded-full bg-primary/60" }),
|
|
11296
11419
|
/* @__PURE__ */ jsx31("div", { className: "w-1.5 h-1.5 rounded-full bg-primary/60" })
|
|
@@ -11435,7 +11558,7 @@ function TimePicker({
|
|
|
11435
11558
|
"label",
|
|
11436
11559
|
{
|
|
11437
11560
|
id: labelId,
|
|
11438
|
-
className: cn(sz.label,
|
|
11561
|
+
className: cn(sz.label, formControlLabelClass, disabled ? "text-muted-foreground" : "text-foreground", effectiveError && "text-destructive"),
|
|
11439
11562
|
children: [
|
|
11440
11563
|
label,
|
|
11441
11564
|
required && /* @__PURE__ */ jsx31("span", { className: "text-destructive ml-1", children: "*" })
|
|
@@ -11483,7 +11606,7 @@ function TimePicker({
|
|
|
11483
11606
|
htmlFor: triggerId,
|
|
11484
11607
|
className: cn(
|
|
11485
11608
|
sz.label,
|
|
11486
|
-
|
|
11609
|
+
formControlLabelClass,
|
|
11487
11610
|
disabled ? "text-muted-foreground" : "text-foreground",
|
|
11488
11611
|
effectiveError && "text-destructive",
|
|
11489
11612
|
"cursor-pointer transition-colors hover:text-primary"
|
|
@@ -11724,7 +11847,13 @@ var DateTimePicker = ({
|
|
|
11724
11847
|
{
|
|
11725
11848
|
id: labelId,
|
|
11726
11849
|
htmlFor: triggerId,
|
|
11727
|
-
className: cn(
|
|
11850
|
+
className: cn(
|
|
11851
|
+
sizeStyles7[size].label,
|
|
11852
|
+
formControlLabelClass,
|
|
11853
|
+
"text-foreground flex items-center gap-1",
|
|
11854
|
+
effectiveError && "text-destructive",
|
|
11855
|
+
labelClassName
|
|
11856
|
+
),
|
|
11728
11857
|
children: [
|
|
11729
11858
|
label,
|
|
11730
11859
|
" ",
|
|
@@ -13271,7 +13400,7 @@ function useVisibleSlotRange(args) {
|
|
|
13271
13400
|
}
|
|
13272
13401
|
|
|
13273
13402
|
// src/components/CalendarTimeline/CalendarTimeline.tsx
|
|
13274
|
-
import { Fragment as
|
|
13403
|
+
import { Fragment as Fragment11, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
13275
13404
|
function CalendarTimeline({
|
|
13276
13405
|
resources,
|
|
13277
13406
|
events,
|
|
@@ -14597,7 +14726,7 @@ function CalendarTimeline({
|
|
|
14597
14726
|
]
|
|
14598
14727
|
}
|
|
14599
14728
|
),
|
|
14600
|
-
!isViewOnly && (interactions?.resizableEvents ?? true) && ev.resizable !== false ? /* @__PURE__ */ jsxs31(
|
|
14729
|
+
!isViewOnly && (interactions?.resizableEvents ?? true) && ev.resizable !== false ? /* @__PURE__ */ jsxs31(Fragment11, { children: [
|
|
14601
14730
|
/* @__PURE__ */ jsx38(
|
|
14602
14731
|
"div",
|
|
14603
14732
|
{
|
|
@@ -14777,7 +14906,7 @@ import * as React35 from "react";
|
|
|
14777
14906
|
import { useId as useId10 } from "react";
|
|
14778
14907
|
import { useVirtualizer as useVirtualizer2 } from "@tanstack/react-virtual";
|
|
14779
14908
|
import { ChevronDown as ChevronDown4, Search as Search5, Check as Check6, SearchX as SearchX2, Loader2 as Loader23, X as X12, Sparkles as Sparkles3 } from "lucide-react";
|
|
14780
|
-
import { Fragment as
|
|
14909
|
+
import { Fragment as Fragment12, jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
14781
14910
|
var comboboxScrollClassName2 = [
|
|
14782
14911
|
"scrollbar-thin",
|
|
14783
14912
|
"[scrollbar-width:thin]",
|
|
@@ -15256,7 +15385,7 @@ var MultiCombobox = ({
|
|
|
15256
15385
|
!!effectiveError && "border-destructive focus-visible:ring-destructive/30"
|
|
15257
15386
|
),
|
|
15258
15387
|
children: [
|
|
15259
|
-
/* @__PURE__ */ jsx39("div", { className: "flex min-h-0 min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: value.length > 0 ? showTags ? /* @__PURE__ */ jsxs32(
|
|
15388
|
+
/* @__PURE__ */ jsx39("div", { className: "flex min-h-0 min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: value.length > 0 ? showTags ? /* @__PURE__ */ jsxs32(Fragment12, { children: [
|
|
15260
15389
|
visibleTags.map((option) => {
|
|
15261
15390
|
if (renderTag) {
|
|
15262
15391
|
return /* @__PURE__ */ jsx39("span", { className: "inline-flex max-h-full min-w-0 shrink overflow-hidden", children: renderTag(option, () => handleRemove(option.value)) }, option.value);
|
|
@@ -15338,7 +15467,8 @@ var MultiCombobox = ({
|
|
|
15338
15467
|
{
|
|
15339
15468
|
className: cn(
|
|
15340
15469
|
size === "sm" ? "text-xs" : size === "lg" ? "text-base" : "text-sm",
|
|
15341
|
-
|
|
15470
|
+
formControlLabelClass,
|
|
15471
|
+
"transition-colors duration-200",
|
|
15342
15472
|
disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
|
|
15343
15473
|
effectiveError && "text-destructive",
|
|
15344
15474
|
labelClassName
|
|
@@ -15356,7 +15486,8 @@ var MultiCombobox = ({
|
|
|
15356
15486
|
onClick: () => triggerRef.current?.focus(),
|
|
15357
15487
|
className: cn(
|
|
15358
15488
|
labelSize,
|
|
15359
|
-
|
|
15489
|
+
formControlLabelClass,
|
|
15490
|
+
"transition-colors duration-200",
|
|
15360
15491
|
disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
|
|
15361
15492
|
effectiveError && "text-destructive",
|
|
15362
15493
|
labelClassName
|
|
@@ -15574,7 +15705,7 @@ var RadioGroupItem = React36.forwardRef(
|
|
|
15574
15705
|
/* @__PURE__ */ jsxs33("div", { className: "flex-1 min-w-0", children: [
|
|
15575
15706
|
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
15576
15707
|
Icon && /* @__PURE__ */ jsx40(Icon, { className: "h-4 w-4 text-foreground" }),
|
|
15577
|
-
/* @__PURE__ */ jsx40("label", { htmlFor: radioId, className: cn("
|
|
15708
|
+
/* @__PURE__ */ jsx40("label", { htmlFor: radioId, className: cn(formControlLabelClass, "text-foreground cursor-pointer", sizeStyles6[size].text, labelClassName), children: label || children })
|
|
15578
15709
|
] }),
|
|
15579
15710
|
description && /* @__PURE__ */ jsx40("p", { className: "text-muted-foreground mt-1 text-xs", children: description })
|
|
15580
15711
|
] })
|
|
@@ -15609,7 +15740,8 @@ var RadioGroupItem = React36.forwardRef(
|
|
|
15609
15740
|
id: radioId,
|
|
15610
15741
|
disabled: isDisabled,
|
|
15611
15742
|
className: cn(
|
|
15612
|
-
"inline-flex items-center justify-center gap-2 border
|
|
15743
|
+
"inline-flex items-center justify-center gap-2 border transition-all duration-200",
|
|
15744
|
+
formControlLabelClass,
|
|
15613
15745
|
getBorderRadiusClass(borderMode ?? "lg"),
|
|
15614
15746
|
"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
15615
15747
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -15667,7 +15799,8 @@ var RadioGroupItem = React36.forwardRef(
|
|
|
15667
15799
|
{
|
|
15668
15800
|
htmlFor: radioId,
|
|
15669
15801
|
className: cn(
|
|
15670
|
-
|
|
15802
|
+
formControlLabelClass,
|
|
15803
|
+
"text-foreground cursor-pointer flex-1",
|
|
15671
15804
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
15672
15805
|
sizeStyles6[size].text,
|
|
15673
15806
|
isDisabled && "cursor-not-allowed opacity-50",
|
|
@@ -15854,7 +15987,7 @@ var ToggleGroup = (props) => {
|
|
|
15854
15987
|
|
|
15855
15988
|
// src/components/Slider.tsx
|
|
15856
15989
|
import * as React37 from "react";
|
|
15857
|
-
import { Fragment as
|
|
15990
|
+
import { Fragment as Fragment13, jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
15858
15991
|
var SIZE_STYLES = {
|
|
15859
15992
|
sm: {
|
|
15860
15993
|
track: "h-1",
|
|
@@ -16072,7 +16205,7 @@ var Slider = React37.forwardRef(
|
|
|
16072
16205
|
}
|
|
16073
16206
|
return /* @__PURE__ */ jsxs34("div", { className: cn("w-full space-y-2", containerClassName), children: [
|
|
16074
16207
|
(label || showValue) && /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between", children: [
|
|
16075
|
-
label && /* @__PURE__ */ jsx41("label", { className: cn("text-sm
|
|
16208
|
+
label && /* @__PURE__ */ jsx41("label", { className: cn("text-sm text-foreground", formControlLabelClass, labelClassName), children: label }),
|
|
16076
16209
|
showValue && /* @__PURE__ */ jsx41("span", { className: cn("text-xs font-mono text-muted-foreground min-w-8 text-right", valueClassName), children: displayValue })
|
|
16077
16210
|
] }),
|
|
16078
16211
|
/* @__PURE__ */ jsxs34(
|
|
@@ -16112,7 +16245,7 @@ var Slider = React37.forwardRef(
|
|
|
16112
16245
|
tooltipClassName
|
|
16113
16246
|
}
|
|
16114
16247
|
),
|
|
16115
|
-
isRange && /* @__PURE__ */ jsxs34(
|
|
16248
|
+
isRange && /* @__PURE__ */ jsxs34(Fragment13, { children: [
|
|
16116
16249
|
/* @__PURE__ */ jsx41(
|
|
16117
16250
|
SliderTooltip,
|
|
16118
16251
|
{
|
|
@@ -16208,7 +16341,7 @@ var Slider = React37.forwardRef(
|
|
|
16208
16341
|
}
|
|
16209
16342
|
const minZ = activeThumb === "min" ? "z-20" : "z-10";
|
|
16210
16343
|
const maxZ = activeThumb === "max" ? "z-20" : "z-10";
|
|
16211
|
-
return /* @__PURE__ */ jsxs34(
|
|
16344
|
+
return /* @__PURE__ */ jsxs34(Fragment13, { children: [
|
|
16212
16345
|
/* @__PURE__ */ jsx41(
|
|
16213
16346
|
"div",
|
|
16214
16347
|
{
|
|
@@ -16271,7 +16404,7 @@ Slider.displayName = "Slider";
|
|
|
16271
16404
|
// src/components/OverlayControls.tsx
|
|
16272
16405
|
import { Dot as Dot2, Maximize2, Pause, Play, RotateCcw, RotateCw, Volume2, VolumeX } from "lucide-react";
|
|
16273
16406
|
import React38 from "react";
|
|
16274
|
-
import { Fragment as
|
|
16407
|
+
import { Fragment as Fragment14, jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
16275
16408
|
function resolveKeyboardEventElement(target) {
|
|
16276
16409
|
if (target instanceof Element) return target;
|
|
16277
16410
|
if (target instanceof Node) return target.parentElement;
|
|
@@ -16516,7 +16649,7 @@ function OverlayControls({
|
|
|
16516
16649
|
const handleSliderMouseLeave = () => {
|
|
16517
16650
|
setPreviewData(null);
|
|
16518
16651
|
};
|
|
16519
|
-
return /* @__PURE__ */ jsxs35(
|
|
16652
|
+
return /* @__PURE__ */ jsxs35(Fragment14, { children: [
|
|
16520
16653
|
keyboardFeedback && /* @__PURE__ */ jsx42(
|
|
16521
16654
|
"div",
|
|
16522
16655
|
{
|
|
@@ -17940,7 +18073,7 @@ import {
|
|
|
17940
18073
|
Upload as Upload2
|
|
17941
18074
|
} from "lucide-react";
|
|
17942
18075
|
import { useCallback as useCallback16, useMemo as useMemo19, useRef as useRef19, useState as useState29 } from "react";
|
|
17943
|
-
import { Fragment as
|
|
18076
|
+
import { Fragment as Fragment15, jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
17944
18077
|
var formatFileSize = (bytes) => {
|
|
17945
18078
|
if (bytes === 0) return "0 Bytes";
|
|
17946
18079
|
const k = 1024;
|
|
@@ -18371,7 +18504,7 @@ function FileUpload({
|
|
|
18371
18504
|
] }),
|
|
18372
18505
|
/* @__PURE__ */ jsx45("p", { className: cn("text-muted-foreground", size === "lg" ? "text-sm" : "text-xs"), children: supportedFormatsText || t("supportedFormats") || `Max ${maxSize}MB per file \u2022 Up to ${maxFiles} files` })
|
|
18373
18506
|
] }),
|
|
18374
|
-
variant === "compact" && /* @__PURE__ */ jsxs38(
|
|
18507
|
+
variant === "compact" && /* @__PURE__ */ jsxs38(Fragment15, { children: [
|
|
18375
18508
|
/* @__PURE__ */ jsx45("div", { className: cn("shrink-0 rounded-lg flex items-center justify-center", "bg-primary/10", currentSize.iconSize), children: /* @__PURE__ */ jsx45(Upload2, { className: cn("text-primary", size === "sm" ? "w-4 h-4" : "w-5 h-5") }) }),
|
|
18376
18509
|
/* @__PURE__ */ jsxs38("div", { className: "flex-1 min-w-0", children: [
|
|
18377
18510
|
/* @__PURE__ */ jsx45("p", { className: cn("font-medium truncate", currentSize.text), children: dragDropText || t("dragDropText") || "Drop files here or" }),
|
|
@@ -18438,7 +18571,7 @@ function FileUpload({
|
|
|
18438
18571
|
// src/components/Carousel.tsx
|
|
18439
18572
|
import * as React40 from "react";
|
|
18440
18573
|
import { ChevronLeft as ChevronLeft6, ChevronRight as ChevronRight8 } from "lucide-react";
|
|
18441
|
-
import { Fragment as
|
|
18574
|
+
import { Fragment as Fragment16, jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
18442
18575
|
function Carousel({
|
|
18443
18576
|
children,
|
|
18444
18577
|
autoScroll = true,
|
|
@@ -18868,7 +19001,7 @@ function Carousel({
|
|
|
18868
19001
|
})
|
|
18869
19002
|
}
|
|
18870
19003
|
),
|
|
18871
|
-
shouldShowArrows && totalSlides > effectiveSlidesToShow && /* @__PURE__ */ jsxs39(
|
|
19004
|
+
shouldShowArrows && totalSlides > effectiveSlidesToShow && /* @__PURE__ */ jsxs39(Fragment16, { children: [
|
|
18872
19005
|
/* @__PURE__ */ jsx46(
|
|
18873
19006
|
Button_default,
|
|
18874
19007
|
{
|
|
@@ -19239,7 +19372,7 @@ function FallingIcons({
|
|
|
19239
19372
|
// src/components/List.tsx
|
|
19240
19373
|
import * as React42 from "react";
|
|
19241
19374
|
import { ChevronRight as ChevronRight9 } from "lucide-react";
|
|
19242
|
-
import { Fragment as
|
|
19375
|
+
import { Fragment as Fragment17, jsx as jsx48, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
19243
19376
|
var SIZE_STYLES2 = {
|
|
19244
19377
|
xs: { label: "text-xs", desc: "text-[11px]", icon: "h-3.5 w-3.5", avatar: "h-6 w-6" },
|
|
19245
19378
|
sm: { label: "text-[13px]", desc: "text-xs", icon: "h-4 w-4", avatar: "h-8 w-8" },
|
|
@@ -19408,7 +19541,7 @@ var ListItem = React42.forwardRef(
|
|
|
19408
19541
|
}
|
|
19409
19542
|
}
|
|
19410
19543
|
} : {};
|
|
19411
|
-
const inner = /* @__PURE__ */ jsxs41(
|
|
19544
|
+
const inner = /* @__PURE__ */ jsxs41(Fragment17, { children: [
|
|
19412
19545
|
/* @__PURE__ */ jsxs41("div", { className: cn("flex items-center gap-3 group/item relative max-md:gap-2.5", contentClassName), ...headerProps, children: [
|
|
19413
19546
|
avatar && /* @__PURE__ */ jsx48("div", { className: cn("shrink-0", sz.avatar), children: typeof avatar === "string" ? /* @__PURE__ */ jsx48("img", { src: avatar, alt: "", className: cn("rounded-full object-cover", sz.avatar) }) : avatar }),
|
|
19414
19547
|
Left && !avatar && /* @__PURE__ */ jsx48("span", { className: cn("text-muted-foreground shrink-0", sz.icon), children: /* @__PURE__ */ jsx48(Left, { className: cn(sz.icon) }) }),
|
|
@@ -19453,7 +19586,7 @@ var List_default = List;
|
|
|
19453
19586
|
// src/components/Watermark.tsx
|
|
19454
19587
|
import * as React43 from "react";
|
|
19455
19588
|
import { createPortal as createPortal2 } from "react-dom";
|
|
19456
|
-
import { Fragment as
|
|
19589
|
+
import { Fragment as Fragment18, jsx as jsx49, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
19457
19590
|
var PRESETS2 = {
|
|
19458
19591
|
confidential: { text: "CONFIDENTIAL", color: "rgba(220, 38, 38, 0.15)", rotate: -22, fontSize: 16, fontWeight: "bold" },
|
|
19459
19592
|
draft: { text: "DRAFT", color: "rgba(59, 130, 246, 0.15)", rotate: -22, fontSize: 18, fontWeight: "bold" },
|
|
@@ -19732,7 +19865,7 @@ var Watermark = ({
|
|
|
19732
19865
|
}
|
|
19733
19866
|
);
|
|
19734
19867
|
if (fullPage) {
|
|
19735
|
-
return /* @__PURE__ */ jsxs42(
|
|
19868
|
+
return /* @__PURE__ */ jsxs42(Fragment18, { children: [
|
|
19736
19869
|
children,
|
|
19737
19870
|
typeof window !== "undefined" ? createPortal2(overlay, document.body) : null
|
|
19738
19871
|
] });
|
|
@@ -20919,7 +21052,7 @@ var MusicPlayer_default = MusicPlayer;
|
|
|
20919
21052
|
|
|
20920
21053
|
// src/components/Grid.tsx
|
|
20921
21054
|
import React47, { useId as useId13 } from "react";
|
|
20922
|
-
import { Fragment as
|
|
21055
|
+
import { Fragment as Fragment19, jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
20923
21056
|
var BP_MIN = {
|
|
20924
21057
|
sm: 640,
|
|
20925
21058
|
md: 768,
|
|
@@ -21076,7 +21209,7 @@ var GridItem = React47.forwardRef(
|
|
|
21076
21209
|
st.opacity = 0;
|
|
21077
21210
|
st.animation = `uvGridItemFadeIn 0.5s ease-out forwards`;
|
|
21078
21211
|
}
|
|
21079
|
-
return /* @__PURE__ */ jsxs46(
|
|
21212
|
+
return /* @__PURE__ */ jsxs46(Fragment19, { children: [
|
|
21080
21213
|
animationDelay != null && /* @__PURE__ */ jsx53(
|
|
21081
21214
|
"style",
|
|
21082
21215
|
{
|
|
@@ -21106,13 +21239,13 @@ var Grid = Object.assign(GridRoot, { Item: GridItem });
|
|
|
21106
21239
|
var Grid_default = Grid;
|
|
21107
21240
|
|
|
21108
21241
|
// src/components/ClientOnly.tsx
|
|
21109
|
-
import { Fragment as
|
|
21242
|
+
import { Fragment as Fragment20, jsx as jsx54 } from "react/jsx-runtime";
|
|
21110
21243
|
function ClientOnly({ children, fallback = null }) {
|
|
21111
21244
|
const hasMounted = useHydrated();
|
|
21112
21245
|
if (!hasMounted) {
|
|
21113
|
-
return /* @__PURE__ */ jsx54(
|
|
21246
|
+
return /* @__PURE__ */ jsx54(Fragment20, { children: fallback });
|
|
21114
21247
|
}
|
|
21115
|
-
return /* @__PURE__ */ jsx54(
|
|
21248
|
+
return /* @__PURE__ */ jsx54(Fragment20, { children });
|
|
21116
21249
|
}
|
|
21117
21250
|
|
|
21118
21251
|
// src/components/Loading.tsx
|
|
@@ -21294,7 +21427,7 @@ import React58 from "react";
|
|
|
21294
21427
|
|
|
21295
21428
|
// src/components/DataTable/components/DataTableBody.tsx
|
|
21296
21429
|
import React49 from "react";
|
|
21297
|
-
import { Fragment as
|
|
21430
|
+
import { Fragment as Fragment21, jsx as jsx57, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
21298
21431
|
function DataTableOverflowText({
|
|
21299
21432
|
text,
|
|
21300
21433
|
align
|
|
@@ -21389,7 +21522,7 @@ function DataTableBodyRows({
|
|
|
21389
21522
|
t("loading"),
|
|
21390
21523
|
"\u2026"
|
|
21391
21524
|
] })
|
|
21392
|
-
] }) }) }) : displayedData.length === 0 ? /* @__PURE__ */ jsx57(TableRow, { className: "!border-border/10", children: /* @__PURE__ */ jsx57(TableCell, { colSpan: leafColumns.length, className: "text-center py-6 text-muted-foreground", children: labels?.noData || t("noData") }) }) : /* @__PURE__ */ jsxs49(
|
|
21525
|
+
] }) }) }) : displayedData.length === 0 ? /* @__PURE__ */ jsx57(TableRow, { className: "!border-border/10", children: /* @__PURE__ */ jsx57(TableCell, { colSpan: leafColumns.length, className: "text-center py-6 text-muted-foreground", children: labels?.noData || t("noData") }) }) : /* @__PURE__ */ jsxs49(Fragment21, { children: [
|
|
21393
21526
|
virtualPaddingTop > 0 && /* @__PURE__ */ jsx57(TableRow, { "aria-hidden": "true", className: "border-0 hover:bg-transparent hover:shadow-none", children: /* @__PURE__ */ jsx57(TableCell, { colSpan: leafColumns.length, className: "p-0", style: { height: virtualPaddingTop } }) }),
|
|
21394
21527
|
rowsToRender.map(({ row, idx, virtualRow }) => {
|
|
21395
21528
|
const isStripedRow = striped && idx % 2 === 0;
|
|
@@ -21523,7 +21656,7 @@ function groupColumnsByColorTag(leafCols, colorGroups) {
|
|
|
21523
21656
|
}
|
|
21524
21657
|
|
|
21525
21658
|
// src/components/DataTable/components/DataTableHeader.tsx
|
|
21526
|
-
import { Fragment as
|
|
21659
|
+
import { Fragment as Fragment22, jsx as jsx58, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
21527
21660
|
function getColumnLabel(title) {
|
|
21528
21661
|
if (typeof title === "string" || typeof title === "number") {
|
|
21529
21662
|
return String(title).replace(/\s+/g, " ").trim();
|
|
@@ -21767,10 +21900,10 @@ function DataTableHeader({
|
|
|
21767
21900
|
!isRightAlign && !isCenterAlign && "justify-start",
|
|
21768
21901
|
useEndIcon && "w-full"
|
|
21769
21902
|
),
|
|
21770
|
-
children: isRightAlign ? /* @__PURE__ */ jsxs50(
|
|
21903
|
+
children: isRightAlign ? /* @__PURE__ */ jsxs50(Fragment22, { children: [
|
|
21771
21904
|
filterContent,
|
|
21772
21905
|
titleContent
|
|
21773
|
-
] }) : /* @__PURE__ */ jsxs50(
|
|
21906
|
+
] }) : /* @__PURE__ */ jsxs50(Fragment22, { children: [
|
|
21774
21907
|
titleContent,
|
|
21775
21908
|
filterContent
|
|
21776
21909
|
] })
|
|
@@ -21793,7 +21926,7 @@ function DataTableHeader({
|
|
|
21793
21926
|
t
|
|
21794
21927
|
]
|
|
21795
21928
|
);
|
|
21796
|
-
return /* @__PURE__ */ jsx58(
|
|
21929
|
+
return /* @__PURE__ */ jsx58(Fragment22, { children: headerRows.map((row, rowIndex) => /* @__PURE__ */ jsx58(TableRow, { className: "!border-border/10", children: row.map((headerCell, cellIndex) => {
|
|
21797
21930
|
const { column: col, colSpan, rowSpan, isLeaf } = headerCell;
|
|
21798
21931
|
const prevCell = cellIndex > 0 ? row[cellIndex - 1] : null;
|
|
21799
21932
|
const prevCol = prevCell?.column;
|
|
@@ -23436,7 +23569,7 @@ function AccessDenied({
|
|
|
23436
23569
|
import { Moon as Moon2, Sun as Sun2, Monitor } from "lucide-react";
|
|
23437
23570
|
import { useRef as useRef23, useState as useState37 } from "react";
|
|
23438
23571
|
import { createPortal as createPortal3 } from "react-dom";
|
|
23439
|
-
import { Fragment as
|
|
23572
|
+
import { Fragment as Fragment23, jsx as jsx65, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
23440
23573
|
function ThemeToggleHeadless({
|
|
23441
23574
|
theme,
|
|
23442
23575
|
onChange,
|
|
@@ -23486,7 +23619,7 @@ function ThemeToggleHeadless({
|
|
|
23486
23619
|
children: /* @__PURE__ */ jsx65(CurrentIcon, { className: "h-5 w-5" })
|
|
23487
23620
|
}
|
|
23488
23621
|
),
|
|
23489
|
-
isOpen && /* @__PURE__ */ jsxs57(
|
|
23622
|
+
isOpen && /* @__PURE__ */ jsxs57(Fragment23, { children: [
|
|
23490
23623
|
typeof window !== "undefined" && createPortal3(/* @__PURE__ */ jsx65("div", { className: "fixed inset-0 z-[99998]", onClick: () => setIsOpen(false) }), document.body),
|
|
23491
23624
|
typeof window !== "undefined" && dropdownPosition && createPortal3(
|
|
23492
23625
|
/* @__PURE__ */ jsx65(
|
|
@@ -23538,7 +23671,7 @@ function ThemeToggleHeadless({
|
|
|
23538
23671
|
import { useRef as useRef24, useState as useState38 } from "react";
|
|
23539
23672
|
import { createPortal as createPortal4 } from "react-dom";
|
|
23540
23673
|
import { Globe } from "lucide-react";
|
|
23541
|
-
import { Fragment as
|
|
23674
|
+
import { Fragment as Fragment24, jsx as jsx66, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
23542
23675
|
function LanguageSwitcherHeadless({
|
|
23543
23676
|
locales,
|
|
23544
23677
|
currentLocale,
|
|
@@ -23583,7 +23716,7 @@ function LanguageSwitcherHeadless({
|
|
|
23583
23716
|
children: /* @__PURE__ */ jsx66(Globe, { className: "h-5 w-5" })
|
|
23584
23717
|
}
|
|
23585
23718
|
),
|
|
23586
|
-
isOpen && /* @__PURE__ */ jsxs58(
|
|
23719
|
+
isOpen && /* @__PURE__ */ jsxs58(Fragment24, { children: [
|
|
23587
23720
|
typeof window !== "undefined" && createPortal4(/* @__PURE__ */ jsx66("div", { className: "fixed inset-0 z-[99998]", onClick: () => setIsOpen(false) }), document.body),
|
|
23588
23721
|
typeof window !== "undefined" && dropdownPosition && createPortal4(
|
|
23589
23722
|
/* @__PURE__ */ jsx66(
|