@farmzone/fz-react-ui 1.0.19 → 1.0.21
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/dist/index.cjs +299 -240
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +300 -241
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import clsx from 'clsx';
|
|
|
3
3
|
import { twMerge } from 'tailwind-merge';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import * as React6 from 'react';
|
|
6
|
-
import React6__default, { forwardRef, useState, useRef, useEffect, useImperativeHandle, useCallback, memo, createContext, useMemo, useContext, useId, useLayoutEffect, useDeferredValue } from 'react';
|
|
6
|
+
import React6__default, { forwardRef, useState, useRef, useEffect, useImperativeHandle, useCallback, memo, createContext, useMemo, useContext, useId, useLayoutEffect, useDeferredValue, Fragment as Fragment$1 } from 'react';
|
|
7
7
|
import { Slot } from '@radix-ui/react-slot';
|
|
8
8
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
9
9
|
import { ChevronLeft, ChevronRight, FileText, ZoomIn, ZoomOut, RotateCcw, RotateCw, Download, X, Trash2, Plus, EyeOff, Eye, Minus, Check, CircleX, ChevronDown, Calendar, CircleIcon, ChevronUp, Search, TriangleAlert, Info, Pencil, BadgePlus, FileSearch2, Upload, FileUp, PanelRightClose, PanelLeftClose, ChevronFirst, ChevronLast } from 'lucide-react';
|
|
@@ -2429,6 +2429,8 @@ function DatePickerRange(props) {
|
|
|
2429
2429
|
endValue = "",
|
|
2430
2430
|
onRangeChange,
|
|
2431
2431
|
className = "",
|
|
2432
|
+
width,
|
|
2433
|
+
height,
|
|
2432
2434
|
editDateSelect = true,
|
|
2433
2435
|
onKeyDownEnter,
|
|
2434
2436
|
datePosition = "bottom",
|
|
@@ -2539,7 +2541,7 @@ function DatePickerRange(props) {
|
|
|
2539
2541
|
}
|
|
2540
2542
|
};
|
|
2541
2543
|
const inputClassName = cn(
|
|
2542
|
-
"w-full px-2 py-1.25 border border-gray-300 shadow-xs outline-none text-sm rounded-sm pr-7 transition-colors",
|
|
2544
|
+
"w-full h-full px-2 py-1.25 border border-gray-300 shadow-xs outline-none text-sm rounded-sm pr-7 transition-colors",
|
|
2543
2545
|
disabled ? DATE_PICKER_FIELD_DISABLED_CLASS : "bg-white text-gray-900 focus:border-blue-600"
|
|
2544
2546
|
);
|
|
2545
2547
|
const iconWrapperClassName = cn(
|
|
@@ -2582,72 +2584,84 @@ function DatePickerRange(props) {
|
|
|
2582
2584
|
)
|
|
2583
2585
|
}
|
|
2584
2586
|
);
|
|
2585
|
-
return /* @__PURE__ */ jsxs(
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2587
|
+
return /* @__PURE__ */ jsxs(
|
|
2588
|
+
"div",
|
|
2589
|
+
{
|
|
2590
|
+
ref: containerRef,
|
|
2591
|
+
className: cn("relative w-64 h-8", className),
|
|
2592
|
+
style: {
|
|
2593
|
+
width: typeof width === "number" ? `${width}px` : width,
|
|
2594
|
+
height: typeof height === "number" ? `${height}px` : height
|
|
2595
|
+
},
|
|
2596
|
+
"aria-disabled": disabled,
|
|
2597
|
+
children: [
|
|
2598
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-1 h-full", children: [
|
|
2599
|
+
/* @__PURE__ */ jsxs("div", { ref: startAnchorRef, className: "relative flex-1 h-full", children: [
|
|
2600
|
+
/* @__PURE__ */ jsx(
|
|
2601
|
+
"input",
|
|
2602
|
+
{
|
|
2603
|
+
type: "text",
|
|
2604
|
+
value: startInputValue,
|
|
2605
|
+
onChange: (e) => handleRangeInputChange(e, true),
|
|
2606
|
+
placeholder: "\uC2DC\uC791 \uB0A0\uC9DC",
|
|
2607
|
+
disabled,
|
|
2608
|
+
className: inputClassName,
|
|
2609
|
+
maxLength: 10,
|
|
2610
|
+
onKeyDown: (e) => {
|
|
2611
|
+
if (e.key === "Enter") {
|
|
2612
|
+
e.preventDefault();
|
|
2613
|
+
handleFieldEnter(startInputValue);
|
|
2614
|
+
}
|
|
2615
|
+
}
|
|
2602
2616
|
}
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
className: iconWrapperClassName,
|
|
2613
|
-
children: /* @__PURE__ */ jsx(Calendar, { size: 15, className: iconClassName })
|
|
2614
|
-
}
|
|
2615
|
-
)
|
|
2616
|
-
] }),
|
|
2617
|
-
/* @__PURE__ */ jsx("div", { className: cn("text-sm w-2 text-center", disabled && "text-neutral-400 opacity-50"), children: "~" }),
|
|
2618
|
-
/* @__PURE__ */ jsxs("div", { ref: endAnchorRef, className: "relative flex-1", children: [
|
|
2619
|
-
/* @__PURE__ */ jsx(
|
|
2620
|
-
"input",
|
|
2621
|
-
{
|
|
2622
|
-
type: "text",
|
|
2623
|
-
value: endInputValue,
|
|
2624
|
-
onChange: (e) => handleRangeInputChange(e, false),
|
|
2625
|
-
placeholder: "\uC885\uB8CC \uB0A0\uC9DC",
|
|
2626
|
-
disabled,
|
|
2627
|
-
className: inputClassName,
|
|
2628
|
-
maxLength: 10,
|
|
2629
|
-
onKeyDown: (e) => {
|
|
2630
|
-
if (e.key === "Enter") {
|
|
2631
|
-
e.preventDefault();
|
|
2632
|
-
handleFieldEnter(endInputValue);
|
|
2617
|
+
),
|
|
2618
|
+
/* @__PURE__ */ jsx(
|
|
2619
|
+
"div",
|
|
2620
|
+
{
|
|
2621
|
+
onClick: () => {
|
|
2622
|
+
if (!disabled) handleCalendarIconClick("start");
|
|
2623
|
+
},
|
|
2624
|
+
className: iconWrapperClassName,
|
|
2625
|
+
children: /* @__PURE__ */ jsx(Calendar, { size: 15, className: iconClassName })
|
|
2633
2626
|
}
|
|
2634
|
-
|
|
2635
|
-
}
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2627
|
+
)
|
|
2628
|
+
] }),
|
|
2629
|
+
/* @__PURE__ */ jsx("div", { className: cn("text-sm w-2 text-center", disabled && "text-neutral-400 opacity-50"), children: "~" }),
|
|
2630
|
+
/* @__PURE__ */ jsxs("div", { ref: endAnchorRef, className: "relative flex-1 h-full", children: [
|
|
2631
|
+
/* @__PURE__ */ jsx(
|
|
2632
|
+
"input",
|
|
2633
|
+
{
|
|
2634
|
+
type: "text",
|
|
2635
|
+
value: endInputValue,
|
|
2636
|
+
onChange: (e) => handleRangeInputChange(e, false),
|
|
2637
|
+
placeholder: "\uC885\uB8CC \uB0A0\uC9DC",
|
|
2638
|
+
disabled,
|
|
2639
|
+
className: inputClassName,
|
|
2640
|
+
maxLength: 10,
|
|
2641
|
+
onKeyDown: (e) => {
|
|
2642
|
+
if (e.key === "Enter") {
|
|
2643
|
+
e.preventDefault();
|
|
2644
|
+
handleFieldEnter(endInputValue);
|
|
2645
|
+
}
|
|
2646
|
+
}
|
|
2647
|
+
}
|
|
2648
|
+
),
|
|
2649
|
+
/* @__PURE__ */ jsx(
|
|
2650
|
+
"div",
|
|
2651
|
+
{
|
|
2652
|
+
onClick: () => {
|
|
2653
|
+
if (!disabled) handleCalendarIconClick("end");
|
|
2654
|
+
},
|
|
2655
|
+
className: iconWrapperClassName,
|
|
2656
|
+
children: /* @__PURE__ */ jsx(Calendar, { size: 15, className: iconClassName })
|
|
2657
|
+
}
|
|
2658
|
+
)
|
|
2659
|
+
] })
|
|
2660
|
+
] }),
|
|
2661
|
+
calendarNode
|
|
2662
|
+
]
|
|
2663
|
+
}
|
|
2664
|
+
);
|
|
2651
2665
|
}
|
|
2652
2666
|
function DatePickerSingle(props) {
|
|
2653
2667
|
const {
|
|
@@ -2655,6 +2669,8 @@ function DatePickerSingle(props) {
|
|
|
2655
2669
|
onChange,
|
|
2656
2670
|
placeholder = "\uB0A0\uC9DC \uC120\uD0DD",
|
|
2657
2671
|
className = "",
|
|
2672
|
+
width,
|
|
2673
|
+
height,
|
|
2658
2674
|
editDateSelect = true,
|
|
2659
2675
|
onKeyDownEnter,
|
|
2660
2676
|
datePosition = "bottom",
|
|
@@ -2765,56 +2781,70 @@ function DatePickerSingle(props) {
|
|
|
2765
2781
|
)
|
|
2766
2782
|
}
|
|
2767
2783
|
);
|
|
2768
|
-
return /* @__PURE__ */ jsxs(
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2784
|
+
return /* @__PURE__ */ jsxs(
|
|
2785
|
+
"div",
|
|
2786
|
+
{
|
|
2787
|
+
ref: containerRef,
|
|
2788
|
+
className: cn("relative w-30 h-8", className),
|
|
2789
|
+
style: {
|
|
2790
|
+
width: typeof width === "number" ? `${width}px` : width,
|
|
2791
|
+
height: typeof height === "number" ? `${height}px` : height
|
|
2792
|
+
},
|
|
2793
|
+
"aria-disabled": disabled,
|
|
2794
|
+
children: [
|
|
2795
|
+
/* @__PURE__ */ jsxs("div", { className: "relative h-full", children: [
|
|
2796
|
+
/* @__PURE__ */ jsx(
|
|
2797
|
+
"input",
|
|
2798
|
+
{
|
|
2799
|
+
type: "text",
|
|
2800
|
+
value: inputValue,
|
|
2801
|
+
onChange: handleInputChange,
|
|
2802
|
+
onBlur: () => onBlur && handleInputBlur(),
|
|
2803
|
+
placeholder,
|
|
2804
|
+
disabled,
|
|
2805
|
+
className: cn(
|
|
2806
|
+
"w-full h-full px-2 py-1.25 border text-sm rounded-sm outline-none shadow-xs transition-colors",
|
|
2807
|
+
validation ? "border-red-600 focus:border-blue-600 focus-visible:border-blue-600 focus-visible:ring-1 focus-visible:ring-blue-600/30 focus-visible:outline-none" : "border-gray-300 focus:border-blue-600 focus-visible:border-blue-600 focus-visible:ring-1 focus-visible:ring-blue-600/30 focus-visible:outline-none",
|
|
2808
|
+
disabled ? DATE_PICKER_FIELD_DISABLED_CLASS : "bg-white text-gray-900"
|
|
2809
|
+
),
|
|
2810
|
+
maxLength: 10,
|
|
2811
|
+
onKeyDown: (e) => {
|
|
2812
|
+
if (e.key === "Enter") {
|
|
2813
|
+
e.preventDefault();
|
|
2814
|
+
handleFieldEnter(inputValue);
|
|
2815
|
+
}
|
|
2816
|
+
},
|
|
2817
|
+
"data-date-input": "true"
|
|
2789
2818
|
}
|
|
2790
|
-
},
|
|
2791
|
-
"data-date-input": "true"
|
|
2792
|
-
}
|
|
2793
|
-
),
|
|
2794
|
-
/* @__PURE__ */ jsx(
|
|
2795
|
-
"div",
|
|
2796
|
-
{
|
|
2797
|
-
role: "button",
|
|
2798
|
-
tabIndex: -1,
|
|
2799
|
-
"aria-hidden": disabled,
|
|
2800
|
-
onClick: () => {
|
|
2801
|
-
if (!disabled) toggleCalendar(inputValue);
|
|
2802
|
-
},
|
|
2803
|
-
className: cn(
|
|
2804
|
-
"absolute right-1 top-1/2 -translate-y-1/2 rounded-full p-1",
|
|
2805
|
-
disabled ? DATE_PICKER_ICON_DISABLED_CLASS : DATE_PICKER_ICON_ENABLED_CLASS
|
|
2806
2819
|
),
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2820
|
+
/* @__PURE__ */ jsx(
|
|
2821
|
+
"div",
|
|
2822
|
+
{
|
|
2823
|
+
role: "button",
|
|
2824
|
+
tabIndex: -1,
|
|
2825
|
+
"aria-hidden": disabled,
|
|
2826
|
+
onClick: () => {
|
|
2827
|
+
if (!disabled) toggleCalendar(inputValue);
|
|
2828
|
+
},
|
|
2829
|
+
className: cn(
|
|
2830
|
+
"absolute right-1 top-1/2 -translate-y-1/2 rounded-full p-1",
|
|
2831
|
+
disabled ? DATE_PICKER_ICON_DISABLED_CLASS : DATE_PICKER_ICON_ENABLED_CLASS
|
|
2832
|
+
),
|
|
2833
|
+
children: /* @__PURE__ */ jsx(Calendar, { size: 15, className: cn(disabled ? "text-neutral-400 opacity-50" : "text-gray-600") })
|
|
2834
|
+
}
|
|
2835
|
+
)
|
|
2836
|
+
] }),
|
|
2837
|
+
calendarNode
|
|
2838
|
+
]
|
|
2839
|
+
}
|
|
2840
|
+
);
|
|
2813
2841
|
}
|
|
2814
2842
|
function DatePicker(props) {
|
|
2815
2843
|
const {
|
|
2816
2844
|
isRange,
|
|
2817
2845
|
className,
|
|
2846
|
+
width,
|
|
2847
|
+
height,
|
|
2818
2848
|
editDateSelect,
|
|
2819
2849
|
onKeyDownEnter,
|
|
2820
2850
|
datePosition,
|
|
@@ -2833,6 +2863,8 @@ function DatePicker(props) {
|
|
|
2833
2863
|
endValue,
|
|
2834
2864
|
onRangeChange,
|
|
2835
2865
|
className,
|
|
2866
|
+
width,
|
|
2867
|
+
height,
|
|
2836
2868
|
editDateSelect,
|
|
2837
2869
|
onKeyDownEnter,
|
|
2838
2870
|
datePosition,
|
|
@@ -2852,6 +2884,8 @@ function DatePicker(props) {
|
|
|
2852
2884
|
onChange,
|
|
2853
2885
|
placeholder,
|
|
2854
2886
|
className,
|
|
2887
|
+
width,
|
|
2888
|
+
height,
|
|
2855
2889
|
editDateSelect,
|
|
2856
2890
|
onKeyDownEnter,
|
|
2857
2891
|
datePosition,
|
|
@@ -4106,13 +4140,25 @@ function TableHeader(props) {
|
|
|
4106
4140
|
};
|
|
4107
4141
|
};
|
|
4108
4142
|
const renderColumnTitle = (column, isClickableHead) => {
|
|
4109
|
-
const
|
|
4143
|
+
const hasWrapParts = column.isWrap && column.wrapParts && column.wrapParts.length > 0;
|
|
4144
|
+
const baseClasses = hasWrapParts ? "pt-0.5 select-none whitespace-normal" : column.isWrap ? "pt-0.5 select-none whitespace-normal break-words" : "pt-0.5 select-none truncate";
|
|
4110
4145
|
const subTitleClasses = column.key === "subTitle" ? "inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800" : "";
|
|
4111
4146
|
const hasSortIcon = column.sortable;
|
|
4112
4147
|
const textAlignClass = column.align === "center" ? "text-center" : column.align === "right" ? "text-right" : "text-left";
|
|
4148
|
+
const titleContent = hasWrapParts ? column.wrapParts.map((part, idx) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
4149
|
+
idx > 0 && /* @__PURE__ */ jsx("wbr", {}),
|
|
4150
|
+
part
|
|
4151
|
+
] }, idx)) : column.title;
|
|
4113
4152
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center w-full", children: [
|
|
4114
4153
|
hasSortIcon && column.align === "center" && /* @__PURE__ */ jsx("div", { className: "w-5 shrink-0" }),
|
|
4115
|
-
/* @__PURE__ */ jsx(
|
|
4154
|
+
/* @__PURE__ */ jsx(
|
|
4155
|
+
"span",
|
|
4156
|
+
{
|
|
4157
|
+
className: `flex-1 px-3 ${textAlignClass} ${baseClasses} ${isClickableHead} ${subTitleClasses}`,
|
|
4158
|
+
style: hasWrapParts ? { wordBreak: "keep-all" } : void 0,
|
|
4159
|
+
children: titleContent
|
|
4160
|
+
}
|
|
4161
|
+
),
|
|
4116
4162
|
hasSortIcon && /* @__PURE__ */ jsx("div", { className: `w-6 shrink-0 flex items-center justify-center cursor-pointer ${isClickableHead}`, children: renderSortIcon(column.key) })
|
|
4117
4163
|
] });
|
|
4118
4164
|
};
|
|
@@ -4151,7 +4197,7 @@ function TableHeader(props) {
|
|
|
4151
4197
|
const hasMainGroups = Object.keys(mainGroups).length > 0;
|
|
4152
4198
|
const hasSubGroups = Object.keys(subGroups).length > 0;
|
|
4153
4199
|
if (!hasMainGroups && !hasSubGroups) {
|
|
4154
|
-
return /* @__PURE__ */ jsx("thead", { className: "w-full sticky top-0 z-10", children: /* @__PURE__ */ jsx("tr", { className: "w-full h-10", children: columns.map((column, idx) => {
|
|
4200
|
+
return /* @__PURE__ */ jsx("thead", { className: "w-full sticky top-0 z-10", children: /* @__PURE__ */ jsx("tr", { className: "w-full min-h-10", children: columns.map((column, idx) => {
|
|
4155
4201
|
const width = column.width;
|
|
4156
4202
|
const minWidth = column.minWidth;
|
|
4157
4203
|
const maxWidth = column.maxWidth;
|
|
@@ -4162,7 +4208,7 @@ function TableHeader(props) {
|
|
|
4162
4208
|
{
|
|
4163
4209
|
id: `${column.key}-header`,
|
|
4164
4210
|
...getDragProps(column),
|
|
4165
|
-
className: `bg-gray-200 border-b border-r border-gray-300 py-2 text-left font-semibold text-gray-700 text-sm tracking-wider
|
|
4211
|
+
className: `bg-gray-200 border-b border-r border-gray-300 py-2 text-left font-semibold text-gray-700 text-sm tracking-wider last:border-r-0 transition-all ${column.isWrap ? "" : "overflow-hidden"} ${isClickableHead}`,
|
|
4166
4212
|
onClick: () => {
|
|
4167
4213
|
if (column.sortable) {
|
|
4168
4214
|
handleSort(column.key);
|
|
@@ -4195,7 +4241,7 @@ function TableHeader(props) {
|
|
|
4195
4241
|
}
|
|
4196
4242
|
if (hasMainGroups) {
|
|
4197
4243
|
return /* @__PURE__ */ jsxs("thead", { className: "w-full sticky top-0 z-10", children: [
|
|
4198
|
-
/* @__PURE__ */ jsx("tr", { className: "w-full h-8", children: columns.map((column, idx) => {
|
|
4244
|
+
/* @__PURE__ */ jsx("tr", { className: "w-full min-h-8", children: columns.map((column, idx) => {
|
|
4199
4245
|
const width = column.width;
|
|
4200
4246
|
const minWidth = column.minWidth;
|
|
4201
4247
|
const maxWidth = column.maxWidth;
|
|
@@ -4276,7 +4322,7 @@ function TableHeader(props) {
|
|
|
4276
4322
|
width,
|
|
4277
4323
|
minWidth: minWidth || width,
|
|
4278
4324
|
maxWidth: maxWidth || width,
|
|
4279
|
-
whiteSpace: "nowrap",
|
|
4325
|
+
whiteSpace: column.isWrap ? "normal" : "nowrap",
|
|
4280
4326
|
...fixedStyle
|
|
4281
4327
|
},
|
|
4282
4328
|
children: renderColumnTitle(column, column.sortable ? "cursor-pointer" : "")
|
|
@@ -4284,7 +4330,7 @@ function TableHeader(props) {
|
|
|
4284
4330
|
`${column.key}-${idx}`
|
|
4285
4331
|
);
|
|
4286
4332
|
}) }),
|
|
4287
|
-
/* @__PURE__ */ jsx("tr", { className: "w-full h-8", children: columns.map((column, idx) => {
|
|
4333
|
+
/* @__PURE__ */ jsx("tr", { className: "w-full min-h-8", children: columns.map((column, idx) => {
|
|
4288
4334
|
const width = column.width;
|
|
4289
4335
|
const minWidth = column.minWidth;
|
|
4290
4336
|
const maxWidth = column.maxWidth;
|
|
@@ -4328,7 +4374,7 @@ function TableHeader(props) {
|
|
|
4328
4374
|
}
|
|
4329
4375
|
return null;
|
|
4330
4376
|
}) }),
|
|
4331
|
-
/* @__PURE__ */ jsx("tr", { className: "w-full h-8", children: columns.map((column, idx) => {
|
|
4377
|
+
/* @__PURE__ */ jsx("tr", { className: "w-full min-h-8", children: columns.map((column, idx) => {
|
|
4332
4378
|
const width = column.width;
|
|
4333
4379
|
const minWidth = column.minWidth;
|
|
4334
4380
|
const maxWidth = column.maxWidth;
|
|
@@ -4342,7 +4388,7 @@ function TableHeader(props) {
|
|
|
4342
4388
|
{
|
|
4343
4389
|
id: `${column.key}-header`,
|
|
4344
4390
|
...getDragProps(column),
|
|
4345
|
-
className: `bg-gray-200 border-b border-r border-gray-300 py-1 text-left font-semibold text-gray-700 text-sm tracking-wider
|
|
4391
|
+
className: `bg-gray-200 border-b border-r border-gray-300 py-1 text-left font-semibold text-gray-700 text-sm tracking-wider transition-all ${column.isWrap ? "" : "overflow-hidden"} ${isClickableHead}`,
|
|
4346
4392
|
onClick: () => {
|
|
4347
4393
|
if (column.sortable) {
|
|
4348
4394
|
handleSort(column.key);
|
|
@@ -4352,7 +4398,7 @@ function TableHeader(props) {
|
|
|
4352
4398
|
width,
|
|
4353
4399
|
minWidth: minWidth || width,
|
|
4354
4400
|
maxWidth: maxWidth || width,
|
|
4355
|
-
whiteSpace: "nowrap",
|
|
4401
|
+
whiteSpace: column.isWrap ? "normal" : "nowrap",
|
|
4356
4402
|
...fixedStyle
|
|
4357
4403
|
},
|
|
4358
4404
|
children: /* @__PURE__ */ jsx(
|
|
@@ -4374,7 +4420,7 @@ function TableHeader(props) {
|
|
|
4374
4420
|
] });
|
|
4375
4421
|
}
|
|
4376
4422
|
return /* @__PURE__ */ jsxs("thead", { className: "w-full sticky top-0 z-10", children: [
|
|
4377
|
-
/* @__PURE__ */ jsx("tr", { className: "w-full h-8 ", children: columns.map((column) => {
|
|
4423
|
+
/* @__PURE__ */ jsx("tr", { className: "w-full min-h-8 ", children: columns.map((column) => {
|
|
4378
4424
|
const width = column.width;
|
|
4379
4425
|
const minWidth = column.minWidth;
|
|
4380
4426
|
const maxWidth = column.maxWidth;
|
|
@@ -4424,7 +4470,7 @@ function TableHeader(props) {
|
|
|
4424
4470
|
width,
|
|
4425
4471
|
minWidth: minWidth || width,
|
|
4426
4472
|
maxWidth: maxWidth || width,
|
|
4427
|
-
whiteSpace: "nowrap",
|
|
4473
|
+
whiteSpace: column.isWrap ? "normal" : "nowrap",
|
|
4428
4474
|
...fixedStyle
|
|
4429
4475
|
},
|
|
4430
4476
|
children: renderColumnTitle(column, isClickableHead)
|
|
@@ -4432,7 +4478,7 @@ function TableHeader(props) {
|
|
|
4432
4478
|
column.key
|
|
4433
4479
|
);
|
|
4434
4480
|
}) }),
|
|
4435
|
-
/* @__PURE__ */ jsx("tr", { className: "w-full h-8", children: columns.map((column) => {
|
|
4481
|
+
/* @__PURE__ */ jsx("tr", { className: "w-full min-h-8", children: columns.map((column) => {
|
|
4436
4482
|
const width = column.width;
|
|
4437
4483
|
const minWidth = column.minWidth;
|
|
4438
4484
|
const maxWidth = column.maxWidth;
|
|
@@ -4446,7 +4492,7 @@ function TableHeader(props) {
|
|
|
4446
4492
|
{
|
|
4447
4493
|
id: `${column.key}-header`,
|
|
4448
4494
|
...getDragProps(column),
|
|
4449
|
-
className: `bg-gray-200 border-b border-r border-gray-300 py-1 text-left font-semibold text-gray-700 text-sm tracking-wider
|
|
4495
|
+
className: `bg-gray-200 border-b border-r border-gray-300 py-1 text-left font-semibold text-gray-700 text-sm tracking-wider transition-all ${column.isWrap ? "" : "overflow-hidden"} ${isClickableHead}`,
|
|
4450
4496
|
onClick: () => {
|
|
4451
4497
|
if (column.sortable) {
|
|
4452
4498
|
handleSort(column.key);
|
|
@@ -4456,7 +4502,7 @@ function TableHeader(props) {
|
|
|
4456
4502
|
width,
|
|
4457
4503
|
minWidth: minWidth || width,
|
|
4458
4504
|
maxWidth: maxWidth || width,
|
|
4459
|
-
whiteSpace: "nowrap",
|
|
4505
|
+
whiteSpace: column.isWrap ? "normal" : "nowrap",
|
|
4460
4506
|
...fixedStyle
|
|
4461
4507
|
},
|
|
4462
4508
|
children: /* @__PURE__ */ jsx(
|
|
@@ -8589,7 +8635,9 @@ function BaseUploader(props) {
|
|
|
8589
8635
|
maxSize,
|
|
8590
8636
|
disabled = false,
|
|
8591
8637
|
placeholder,
|
|
8592
|
-
className
|
|
8638
|
+
className,
|
|
8639
|
+
width,
|
|
8640
|
+
height
|
|
8593
8641
|
} = props;
|
|
8594
8642
|
const inputRef = useRef(null);
|
|
8595
8643
|
const inputId = useId();
|
|
@@ -8632,7 +8680,7 @@ function BaseUploader(props) {
|
|
|
8632
8680
|
};
|
|
8633
8681
|
const showZone = multiple || files.length === 0;
|
|
8634
8682
|
const acceptLabel = accept ? accept.split(",").map((s) => s.trim().toUpperCase()).join(", ") : "\uBAA8\uB4E0 \uD615\uC2DD";
|
|
8635
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-3", className), children: [
|
|
8683
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-3", className), style: { width: typeof width === "number" ? `${width}px` : width }, children: [
|
|
8636
8684
|
/* @__PURE__ */ jsx(
|
|
8637
8685
|
"input",
|
|
8638
8686
|
{
|
|
@@ -8666,6 +8714,7 @@ function BaseUploader(props) {
|
|
|
8666
8714
|
setIsDragging(false);
|
|
8667
8715
|
},
|
|
8668
8716
|
onDrop: handleDrop,
|
|
8717
|
+
style: { minHeight: typeof height === "number" ? `${height}px` : height ?? "7rem" },
|
|
8669
8718
|
className: cn(
|
|
8670
8719
|
"flex flex-col items-center justify-center gap-2 min-h-28 w-full rounded-lg bg-gray-50/50 border-[1.5px] border-dashed",
|
|
8671
8720
|
disabled ? "cursor-not-allowed border-gray-200 bg-gray-100 opacity-60" : "cursor-pointer hover:bg-gray-50",
|
|
@@ -8711,7 +8760,7 @@ function BaseUploader(props) {
|
|
|
8711
8760
|
var EXCEL_ACCEPT = ".xlsx,.xls,.csv";
|
|
8712
8761
|
var MAX_EXCEL_BYTES = 10 * 1024 * 1024;
|
|
8713
8762
|
function ExcelUploader(props) {
|
|
8714
|
-
const { files, onChange, disabled, className } = props;
|
|
8763
|
+
const { files, onChange, disabled, className, width, height } = props;
|
|
8715
8764
|
return /* @__PURE__ */ jsx(
|
|
8716
8765
|
BaseUploader,
|
|
8717
8766
|
{
|
|
@@ -8722,7 +8771,9 @@ function ExcelUploader(props) {
|
|
|
8722
8771
|
maxSize: MAX_EXCEL_BYTES,
|
|
8723
8772
|
disabled,
|
|
8724
8773
|
placeholder: "\uC5D1\uC140 \uD30C\uC77C\uC744 \uD074\uB9AD\uD558\uAC70\uB098 \uB4DC\uB798\uADF8\uD558\uC138\uC694",
|
|
8725
|
-
className
|
|
8774
|
+
className,
|
|
8775
|
+
width,
|
|
8776
|
+
height
|
|
8726
8777
|
}
|
|
8727
8778
|
);
|
|
8728
8779
|
}
|
|
@@ -8819,7 +8870,7 @@ var compressImage = (file) => {
|
|
|
8819
8870
|
}).catch(() => file);
|
|
8820
8871
|
};
|
|
8821
8872
|
function FileUploader(props) {
|
|
8822
|
-
const { files, onChange, multiple = true, disabled = false, className } = props;
|
|
8873
|
+
const { files, onChange, multiple = true, disabled = false, className, width, height } = props;
|
|
8823
8874
|
const inputRef = useRef(null);
|
|
8824
8875
|
const containerRef = useRef(null);
|
|
8825
8876
|
const [isDragging, setIsDragging] = useState(false);
|
|
@@ -8926,121 +8977,129 @@ function FileUploader(props) {
|
|
|
8926
8977
|
setError("");
|
|
8927
8978
|
};
|
|
8928
8979
|
const isProcessing = processingCount > 0;
|
|
8929
|
-
return /* @__PURE__ */ jsxs(
|
|
8930
|
-
|
|
8931
|
-
|
|
8932
|
-
|
|
8933
|
-
|
|
8934
|
-
|
|
8935
|
-
|
|
8936
|
-
|
|
8937
|
-
|
|
8938
|
-
|
|
8939
|
-
|
|
8940
|
-
|
|
8941
|
-
|
|
8942
|
-
|
|
8943
|
-
|
|
8944
|
-
|
|
8945
|
-
|
|
8946
|
-
|
|
8947
|
-
|
|
8948
|
-
|
|
8949
|
-
onClick: isProcessing || disabled ? void 0 : () => inputRef.current?.click(),
|
|
8950
|
-
onDragOver: handleDragOver,
|
|
8951
|
-
onDragEnter: handleDragOver,
|
|
8952
|
-
onDragLeave: handleDragLeave,
|
|
8953
|
-
onDrop: handleDrop,
|
|
8954
|
-
className: cn(
|
|
8955
|
-
"relative w-full rounded-lg bg-gray-50/50 border-[1.5px] border-dashed",
|
|
8956
|
-
disabled ? "cursor-not-allowed border-gray-200 bg-gray-100 opacity-60" : isProcessing ? "cursor-default border-gray-300" : "cursor-pointer hover:bg-gray-50",
|
|
8957
|
-
isDragging ? "border-blue-500 bg-blue-50" : "border-gray-300",
|
|
8958
|
-
error && !isDragging ? "border-red-300 bg-red-50" : "",
|
|
8959
|
-
files.length > 0 ? "p-3" : "flex flex-col items-center justify-center gap-1 min-h-32"
|
|
8980
|
+
return /* @__PURE__ */ jsxs(
|
|
8981
|
+
"div",
|
|
8982
|
+
{
|
|
8983
|
+
className: cn("space-y-3", className),
|
|
8984
|
+
style: { width: typeof width === "number" ? `${width}px` : width },
|
|
8985
|
+
children: [
|
|
8986
|
+
/* @__PURE__ */ jsx(
|
|
8987
|
+
"input",
|
|
8988
|
+
{
|
|
8989
|
+
ref: inputRef,
|
|
8990
|
+
type: "file",
|
|
8991
|
+
multiple,
|
|
8992
|
+
accept: "image/jpeg,image/png,image/webp,image/heic,image/heif,application/pdf,.heic,.heif",
|
|
8993
|
+
disabled,
|
|
8994
|
+
className: "hidden",
|
|
8995
|
+
onChange: (e) => {
|
|
8996
|
+
handleFiles(e.target.files);
|
|
8997
|
+
if (inputRef.current) inputRef.current.value = "";
|
|
8998
|
+
}
|
|
8999
|
+
}
|
|
8960
9000
|
),
|
|
8961
|
-
|
|
8962
|
-
|
|
8963
|
-
|
|
8964
|
-
|
|
8965
|
-
|
|
8966
|
-
|
|
8967
|
-
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
|
|
8971
|
-
|
|
8972
|
-
|
|
8973
|
-
|
|
8974
|
-
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
},
|
|
8983
|
-
className: "block w-full aspect-square cursor-pointer",
|
|
8984
|
-
"aria-label": `${file.name} \uBBF8\uB9AC\uBCF4\uAE30`,
|
|
8985
|
-
children: isImage && url ? /* @__PURE__ */ jsx("img", { src: url, alt: file.name, className: "h-full w-full object-cover" }) : /* @__PURE__ */ jsxs("div", { className: "flex h-full w-full flex-col items-center justify-center bg-gray-50 text-gray-400", children: [
|
|
8986
|
-
/* @__PURE__ */ jsx(FileText, { className: "w-8 h-8" }),
|
|
8987
|
-
/* @__PURE__ */ jsx("span", { className: "mt-1 max-w-full truncate px-1 text-center text-[10px]", children: file.name })
|
|
8988
|
-
] })
|
|
8989
|
-
}
|
|
8990
|
-
),
|
|
8991
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-1 border-t border-gray-100 px-1.5 py-1", children: [
|
|
8992
|
-
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-[10px] text-gray-600", title: file.name, children: file.name }),
|
|
8993
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0 text-[10px] text-gray-400", children: formatFileSize(file.size) })
|
|
8994
|
-
] }),
|
|
8995
|
-
!disabled && /* @__PURE__ */ jsx(
|
|
8996
|
-
"button",
|
|
8997
|
-
{
|
|
8998
|
-
type: "button",
|
|
8999
|
-
onClick: (e) => {
|
|
9000
|
-
e.stopPropagation();
|
|
9001
|
-
removeFile(idx);
|
|
9002
|
-
},
|
|
9003
|
-
className: "absolute right-1 top-1 flex h-5 w-5 items-center justify-center rounded-full bg-black/60 text-white opacity-0 transition-opacity group-hover:opacity-100 cursor-pointer",
|
|
9004
|
-
"aria-label": "\uD30C\uC77C \uC81C\uAC70",
|
|
9005
|
-
children: /* @__PURE__ */ jsx(X, { className: "w-3 h-3" })
|
|
9006
|
-
}
|
|
9007
|
-
)
|
|
9008
|
-
]
|
|
9009
|
-
},
|
|
9010
|
-
`${file.name}-${idx}`
|
|
9011
|
-
);
|
|
9012
|
-
}) }),
|
|
9013
|
-
/* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center justify-between text-xs text-gray-500", children: [
|
|
9014
|
-
/* @__PURE__ */ jsxs("span", { children: [
|
|
9015
|
-
files.length,
|
|
9016
|
-
"\uAC1C \uD30C\uC77C \uC120\uD0DD\uB428",
|
|
9017
|
-
!disabled && " \xB7 \uD074\uB9AD\uD558\uC5EC \uCD94\uAC00"
|
|
9001
|
+
/* @__PURE__ */ jsxs(
|
|
9002
|
+
"div",
|
|
9003
|
+
{
|
|
9004
|
+
ref: containerRef,
|
|
9005
|
+
onClick: isProcessing || disabled ? void 0 : () => inputRef.current?.click(),
|
|
9006
|
+
onDragOver: handleDragOver,
|
|
9007
|
+
onDragEnter: handleDragOver,
|
|
9008
|
+
onDragLeave: handleDragLeave,
|
|
9009
|
+
onDrop: handleDrop,
|
|
9010
|
+
className: cn(
|
|
9011
|
+
"relative w-full rounded-lg bg-gray-50/50 border-[1.5px] border-dashed",
|
|
9012
|
+
disabled ? "cursor-not-allowed border-gray-200 bg-gray-100 opacity-60" : isProcessing ? "cursor-default border-gray-300" : "cursor-pointer hover:bg-gray-50",
|
|
9013
|
+
isDragging ? "border-blue-500 bg-blue-50" : "border-gray-300",
|
|
9014
|
+
error && !isDragging ? "border-red-300 bg-red-50" : "",
|
|
9015
|
+
files.length > 0 ? "p-3" : "flex flex-col items-center justify-center gap-1"
|
|
9016
|
+
),
|
|
9017
|
+
style: files.length === 0 ? { minHeight: typeof height === "number" ? `${height}px` : height ?? "8rem" } : void 0,
|
|
9018
|
+
children: [
|
|
9019
|
+
isProcessing && /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 rounded-lg bg-white/80", children: [
|
|
9020
|
+
/* @__PURE__ */ jsx("div", { className: "h-8 w-8 animate-spin rounded-full border-4 border-blue-400 border-t-transparent" }),
|
|
9021
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-600", children: "\uCC98\uB9AC \uC911..." })
|
|
9018
9022
|
] }),
|
|
9019
|
-
/* @__PURE__ */ jsxs(
|
|
9020
|
-
"
|
|
9021
|
-
|
|
9023
|
+
files.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9024
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3", children: files.map((file, idx) => {
|
|
9025
|
+
const url = previewUrls[idx];
|
|
9026
|
+
const isImage = file.type.startsWith("image/");
|
|
9027
|
+
return /* @__PURE__ */ jsxs(
|
|
9028
|
+
"div",
|
|
9029
|
+
{
|
|
9030
|
+
className: "group relative overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm transition-shadow hover:shadow-md",
|
|
9031
|
+
children: [
|
|
9032
|
+
/* @__PURE__ */ jsx(
|
|
9033
|
+
"button",
|
|
9034
|
+
{
|
|
9035
|
+
type: "button",
|
|
9036
|
+
onClick: (e) => {
|
|
9037
|
+
e.stopPropagation();
|
|
9038
|
+
viewer.open(idx);
|
|
9039
|
+
},
|
|
9040
|
+
className: "block w-full aspect-square cursor-pointer",
|
|
9041
|
+
"aria-label": `${file.name} \uBBF8\uB9AC\uBCF4\uAE30`,
|
|
9042
|
+
children: isImage && url ? /* @__PURE__ */ jsx("img", { src: url, alt: file.name, className: "h-full w-full object-cover" }) : /* @__PURE__ */ jsxs("div", { className: "flex h-full w-full flex-col items-center justify-center bg-gray-50 text-gray-400", children: [
|
|
9043
|
+
/* @__PURE__ */ jsx(FileText, { className: "w-8 h-8" }),
|
|
9044
|
+
/* @__PURE__ */ jsx("span", { className: "mt-1 max-w-full truncate px-1 text-center text-[10px]", children: file.name })
|
|
9045
|
+
] })
|
|
9046
|
+
}
|
|
9047
|
+
),
|
|
9048
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-1 border-t border-gray-100 px-1.5 py-1", children: [
|
|
9049
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-[10px] text-gray-600", title: file.name, children: file.name }),
|
|
9050
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0 text-[10px] text-gray-400", children: formatFileSize(file.size) })
|
|
9051
|
+
] }),
|
|
9052
|
+
!disabled && /* @__PURE__ */ jsx(
|
|
9053
|
+
"button",
|
|
9054
|
+
{
|
|
9055
|
+
type: "button",
|
|
9056
|
+
onClick: (e) => {
|
|
9057
|
+
e.stopPropagation();
|
|
9058
|
+
removeFile(idx);
|
|
9059
|
+
},
|
|
9060
|
+
className: "absolute right-1 top-1 flex h-5 w-5 items-center justify-center rounded-full bg-black/60 text-white opacity-0 transition-opacity group-hover:opacity-100 cursor-pointer",
|
|
9061
|
+
"aria-label": "\uD30C\uC77C \uC81C\uAC70",
|
|
9062
|
+
children: /* @__PURE__ */ jsx(X, { className: "w-3 h-3" })
|
|
9063
|
+
}
|
|
9064
|
+
)
|
|
9065
|
+
]
|
|
9066
|
+
},
|
|
9067
|
+
`${file.name}-${idx}`
|
|
9068
|
+
);
|
|
9069
|
+
}) }),
|
|
9070
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center justify-between text-xs text-gray-500", children: [
|
|
9071
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
9072
|
+
files.length,
|
|
9073
|
+
"\uAC1C \uD30C\uC77C \uC120\uD0DD\uB428",
|
|
9074
|
+
!disabled && " \xB7 \uD074\uB9AD\uD558\uC5EC \uCD94\uAC00"
|
|
9075
|
+
] }),
|
|
9076
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
9077
|
+
"\uCD1D ",
|
|
9078
|
+
formatFileSize(files.reduce((sum, f) => sum + f.size, 0))
|
|
9079
|
+
] })
|
|
9080
|
+
] })
|
|
9081
|
+
] }) : isDragging ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-1 text-blue-500", children: [
|
|
9082
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm font-semibold flex gap-1", children: [
|
|
9083
|
+
/* @__PURE__ */ jsx(FileUp, { size: 15, className: "mt-[1px]" }),
|
|
9084
|
+
"\uD30C\uC77C\uC744 \uC5EC\uAE30\uC5D0 \uB193\uC544\uC8FC\uC138\uC694"
|
|
9085
|
+
] }),
|
|
9086
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium", children: "\uB4DC\uB86D\uD558\uBA74 \uC790\uB3D9\uC73C\uB85C \uC5C5\uB85C\uB4DC\uB429\uB2C8\uB2E4." })
|
|
9087
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9088
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm text-gray-600 flex gap-1", children: [
|
|
9089
|
+
/* @__PURE__ */ jsx(FileUp, { size: 15, className: "text-gray-400 mt-[1px]" }),
|
|
9090
|
+
" \uD074\uB9AD\uD558\uC5EC \uD30C\uC77C\uC744 \uC120\uD0DD\uD558\uAC70\uB098 \uB4DC\uB798\uADF8\uD558\uC138\uC694"
|
|
9091
|
+
] }),
|
|
9092
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400", children: "\uC774\uBBF8\uC9C0(JPG \xB7 PNG \xB7 WEBP \xB7 HEIC, \uCD5C\uB300 50MB) \xB7 PDF(\uCD5C\uB300 10MB)" }),
|
|
9093
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400", children: multiple ? `\uCD5C\uB300 ${MAX_FILES}\uAC1C \xB7 \uC804\uCCB4 20MB \uC774\uD558` : "\uB2E8\uC77C \uD30C\uC77C" })
|
|
9022
9094
|
] })
|
|
9023
|
-
]
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
/* @__PURE__ */ jsxs("p", { className: "text-sm text-gray-600 flex gap-1", children: [
|
|
9032
|
-
/* @__PURE__ */ jsx(FileUp, { size: 15, className: "text-gray-400 mt-[1px]" }),
|
|
9033
|
-
" \uD074\uB9AD\uD558\uC5EC \uD30C\uC77C\uC744 \uC120\uD0DD\uD558\uAC70\uB098 \uB4DC\uB798\uADF8\uD558\uC138\uC694"
|
|
9034
|
-
] }),
|
|
9035
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400", children: "\uC774\uBBF8\uC9C0(JPG \xB7 PNG \xB7 WEBP \xB7 HEIC, \uCD5C\uB300 50MB) \xB7 PDF(\uCD5C\uB300 10MB)" }),
|
|
9036
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400", children: multiple ? `\uCD5C\uB300 ${MAX_FILES}\uAC1C \xB7 \uC804\uCCB4 20MB \uC774\uD558` : "\uB2E8\uC77C \uD30C\uC77C" })
|
|
9037
|
-
] })
|
|
9038
|
-
]
|
|
9039
|
-
}
|
|
9040
|
-
),
|
|
9041
|
-
error && /* @__PURE__ */ jsx("p", { className: "whitespace-pre-line text-xs text-red-500 bg-red-50 border border-red-200 rounded px-3 py-2", children: error }),
|
|
9042
|
-
/* @__PURE__ */ jsx(FilePreviewViewer, { ...viewer.viewerProps, fileTypes, fileNames: files.map((f) => f.name) })
|
|
9043
|
-
] });
|
|
9095
|
+
]
|
|
9096
|
+
}
|
|
9097
|
+
),
|
|
9098
|
+
error && /* @__PURE__ */ jsx("p", { className: "whitespace-pre-line text-xs text-red-500 bg-red-50 border border-red-200 rounded px-3 py-2", children: error }),
|
|
9099
|
+
/* @__PURE__ */ jsx(FilePreviewViewer, { ...viewer.viewerProps, fileTypes, fileNames: files.map((f) => f.name) })
|
|
9100
|
+
]
|
|
9101
|
+
}
|
|
9102
|
+
);
|
|
9044
9103
|
}
|
|
9045
9104
|
var VARIANT_STYLES2 = {
|
|
9046
9105
|
light: {
|