@deepnoid/ui 0.1.109 → 0.1.111
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/.turbo/turbo-build.log +446 -466
- package/dist/chunk-CV6IVDL6.mjs +356 -0
- package/dist/{chunk-2EECKYM4.mjs → chunk-YCLB7ZNK.mjs} +1 -1
- package/dist/{chunk-7VS6YXNB.mjs → chunk-ZWLRSZTC.mjs} +2 -2
- package/dist/components/charts/circularProgress.js +2 -2
- package/dist/components/charts/circularProgress.mjs +1 -1
- package/dist/components/charts/index.js +2 -2
- package/dist/components/charts/index.mjs +1 -1
- package/dist/components/picker/index.d.mts +4 -0
- package/dist/components/picker/index.d.ts +4 -0
- package/dist/components/{dateTimePicker/calendar.js → picker/index.js} +716 -173
- package/dist/components/{dateTimePicker/calendar.mjs → picker/index.mjs} +7 -6
- package/dist/components/picker/timePicker.d.mts +251 -0
- package/dist/components/picker/timePicker.d.ts +251 -0
- package/dist/components/{dateTimePicker/dateTimePicker.js → picker/timePicker.js} +617 -904
- package/dist/components/{dateTimePicker → picker}/timePicker.mjs +7 -6
- package/dist/components/select/index.js +1 -1
- package/dist/components/select/index.mjs +1 -1
- package/dist/components/select/select.js +1 -1
- package/dist/components/select/select.mjs +1 -1
- package/dist/components/table/index.mjs +3 -3
- package/dist/components/table/table-body.mjs +3 -3
- package/dist/components/table/table-head.mjs +3 -3
- package/dist/components/table/table.mjs +3 -3
- package/dist/components/toast/index.mjs +2 -2
- package/dist/components/toast/use-toast.mjs +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +383 -777
- package/dist/index.mjs +41 -45
- package/package.json +1 -1
- package/dist/chunk-FWJ2ZKH6.mjs +0 -87
- package/dist/chunk-P732YGHO.mjs +0 -18
- package/dist/chunk-X5XJWJSO.mjs +0 -122
- package/dist/chunk-Y4W76B42.mjs +0 -210
- package/dist/chunk-ZSQQFMEC.mjs +0 -366
- package/dist/components/dateTimePicker/calendar.d.mts +0 -68
- package/dist/components/dateTimePicker/calendar.d.ts +0 -68
- package/dist/components/dateTimePicker/dateTimePicker.d.mts +0 -288
- package/dist/components/dateTimePicker/dateTimePicker.d.ts +0 -288
- package/dist/components/dateTimePicker/dateTimePicker.mjs +0 -23
- package/dist/components/dateTimePicker/index.d.mts +0 -4
- package/dist/components/dateTimePicker/index.d.ts +0 -4
- package/dist/components/dateTimePicker/index.js +0 -6040
- package/dist/components/dateTimePicker/index.mjs +0 -22
- package/dist/components/dateTimePicker/timePicker.d.mts +0 -11
- package/dist/components/dateTimePicker/timePicker.d.ts +0 -11
- package/dist/components/dateTimePicker/timePicker.js +0 -5417
- package/dist/components/dateTimePicker/useDateTimePicker.d.mts +0 -34
- package/dist/components/dateTimePicker/useDateTimePicker.d.ts +0 -34
- package/dist/components/dateTimePicker/useDateTimePicker.js +0 -117
- package/dist/components/dateTimePicker/useDateTimePicker.mjs +0 -9
- package/dist/components/dateTimePicker/util.d.mts +0 -4
- package/dist/components/dateTimePicker/util.d.ts +0 -4
- package/dist/components/dateTimePicker/util.js +0 -42
- package/dist/components/dateTimePicker/util.mjs +0 -10
- package/dist/{chunk-75HLCORR.mjs → chunk-BG7VAVOX.mjs} +0 -0
- package/dist/{chunk-2OK3VF75.mjs → chunk-U3O7RIXM.mjs} +3 -3
- package/dist/{chunk-IQYWSATB.mjs → chunk-X67ELNP6.mjs} +3 -3
package/dist/index.js
CHANGED
|
@@ -114,7 +114,6 @@ __export(index_exports, {
|
|
|
114
114
|
CheckBox: () => checkbox_default,
|
|
115
115
|
Chip: () => chip_default,
|
|
116
116
|
CircularProgress: () => circularProgress_default,
|
|
117
|
-
DateTimePicker: () => dateTimePicker_default,
|
|
118
117
|
DefinitionTable: () => definition_table_default,
|
|
119
118
|
Drawer: () => drawer_default,
|
|
120
119
|
FileUpload: () => fileUpload_default,
|
|
@@ -136,6 +135,7 @@ __export(index_exports, {
|
|
|
136
135
|
Tabs: () => tabs_default,
|
|
137
136
|
TextButton: () => text_button_default,
|
|
138
137
|
Textarea: () => textarea_default,
|
|
138
|
+
TimePicker: () => timePicker_default,
|
|
139
139
|
Toast: () => toast_default,
|
|
140
140
|
ToastProvider: () => ToastProvider,
|
|
141
141
|
Tooltip: () => tooltip_default,
|
|
@@ -9197,7 +9197,7 @@ var select = tv({
|
|
|
9197
9197
|
"group-has-[p.error]/select:text-danger-main",
|
|
9198
9198
|
"group-has-[p.error]/select:placeholder:text-danger-main"
|
|
9199
9199
|
],
|
|
9200
|
-
optionsWrapper: ["border", "rounded", "bg-
|
|
9200
|
+
optionsWrapper: ["border", "rounded", "bg-body-background", "shadow", "overflow-auto"],
|
|
9201
9201
|
option: ["flex", "justify-between", "items-center", "cursor-pointer"],
|
|
9202
9202
|
helperMessage: ["text-neutral-main"],
|
|
9203
9203
|
errorMessage: ["text-danger-main"],
|
|
@@ -10844,752 +10844,358 @@ var ToastProvider = ({
|
|
|
10844
10844
|
] });
|
|
10845
10845
|
};
|
|
10846
10846
|
|
|
10847
|
-
// src/components/
|
|
10848
|
-
var import_react34 = __toESM(require("react"));
|
|
10849
|
-
var import_react_dom5 = require("react-dom");
|
|
10850
|
-
|
|
10851
|
-
// src/components/dateTimePicker/useDateTimePicker.tsx
|
|
10847
|
+
// src/components/picker/timePicker.tsx
|
|
10852
10848
|
var import_react31 = require("react");
|
|
10853
|
-
|
|
10854
|
-
|
|
10855
|
-
var
|
|
10856
|
-
const
|
|
10857
|
-
const
|
|
10858
|
-
|
|
10859
|
-
|
|
10860
|
-
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
|
|
10864
|
-
|
|
10865
|
-
|
|
10866
|
-
|
|
10867
|
-
|
|
10868
|
-
const [
|
|
10869
|
-
|
|
10849
|
+
var import_react_dom5 = require("react-dom");
|
|
10850
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
10851
|
+
var TimePicker = (0, import_react31.forwardRef)((originalProps, ref) => {
|
|
10852
|
+
const [props, variantProps] = mapPropsVariants(originalProps, timePickerStyle.variantKeys);
|
|
10853
|
+
const {
|
|
10854
|
+
classNames,
|
|
10855
|
+
label,
|
|
10856
|
+
errorMessage,
|
|
10857
|
+
valueRange,
|
|
10858
|
+
onChangeRange,
|
|
10859
|
+
size,
|
|
10860
|
+
selectClassNames,
|
|
10861
|
+
placeholder = "",
|
|
10862
|
+
...inputProps
|
|
10863
|
+
} = props;
|
|
10864
|
+
const [selectedRange, setSelectedRange] = (0, import_react31.useState)(
|
|
10865
|
+
valueRange || { start: "", end: "" }
|
|
10870
10866
|
);
|
|
10871
|
-
const [
|
|
10872
|
-
const
|
|
10873
|
-
const
|
|
10874
|
-
const [
|
|
10875
|
-
const
|
|
10876
|
-
|
|
10877
|
-
|
|
10878
|
-
|
|
10879
|
-
|
|
10880
|
-
|
|
10881
|
-
|
|
10882
|
-
|
|
10883
|
-
const
|
|
10884
|
-
|
|
10885
|
-
const spaceAbove = targetRect2.y - DATE_PICKER_GAP;
|
|
10886
|
-
const top = spaceBelow < popupHeight && spaceAbove > popupHeight ? targetRect2.y - popupHeight - DATE_PICKER_GAP : targetRect2.y + targetRect2.height + DATE_PICKER_GAP;
|
|
10887
|
-
return {
|
|
10888
|
-
top: top + scrollTop,
|
|
10889
|
-
left: targetRect2.x + targetRect2.width - popupWidth + scrollLeft
|
|
10890
|
-
};
|
|
10867
|
+
const [isPanelOpen, setIsPanelOpen] = (0, import_react31.useState)(false);
|
|
10868
|
+
const inputWrapperRef = (0, import_react31.useRef)(null);
|
|
10869
|
+
const panelWrapperRef = (0, import_react31.useRef)(null);
|
|
10870
|
+
const [panelPos, setPanelPos] = (0, import_react31.useState)({ top: -9999, left: -9999 });
|
|
10871
|
+
const displayValue = (0, import_react31.useMemo)(() => {
|
|
10872
|
+
if (selectedRange.start && selectedRange.end) {
|
|
10873
|
+
return `${selectedRange.start} ~ ${selectedRange.end}`;
|
|
10874
|
+
}
|
|
10875
|
+
return "";
|
|
10876
|
+
}, [selectedRange]);
|
|
10877
|
+
const calculatePosition = (0, import_react31.useCallback)(() => {
|
|
10878
|
+
if (inputWrapperRef.current) {
|
|
10879
|
+
const rect = inputWrapperRef.current.getBoundingClientRect();
|
|
10880
|
+
setPanelPos({ top: rect.bottom + window.scrollY + 6, left: rect.left + window.scrollX });
|
|
10891
10881
|
}
|
|
10892
|
-
};
|
|
10893
|
-
const handleToggleDatePicker = () => {
|
|
10894
|
-
if (datePickerRef.current) {
|
|
10895
|
-
const rect = datePickerRef.current.getBoundingClientRect();
|
|
10896
|
-
setTargetRect((prevRect) => prevRect ? null : { x: rect.x, y: rect.y, width: rect.width, height: rect.height });
|
|
10897
|
-
}
|
|
10898
|
-
};
|
|
10899
|
-
const handleChangeDate = (date) => {
|
|
10900
|
-
setSelectedDate(date);
|
|
10901
|
-
};
|
|
10902
|
-
const handleChangeTime = (time) => {
|
|
10903
|
-
setSelectedTime(time);
|
|
10904
|
-
};
|
|
10882
|
+
}, []);
|
|
10905
10883
|
const handleFocusInput = () => {
|
|
10906
|
-
|
|
10884
|
+
calculatePosition();
|
|
10885
|
+
setIsPanelOpen(true);
|
|
10907
10886
|
};
|
|
10908
|
-
const
|
|
10909
|
-
|
|
10887
|
+
const handleInputBlur = () => {
|
|
10888
|
+
setTimeout(() => setIsPanelOpen(false), 150);
|
|
10910
10889
|
};
|
|
10911
|
-
|
|
10912
|
-
|
|
10913
|
-
|
|
10914
|
-
|
|
10915
|
-
|
|
10916
|
-
}
|
|
10917
|
-
|
|
10918
|
-
return () => window.removeEventListener("mousedown", onClickOutside);
|
|
10919
|
-
}, []);
|
|
10920
|
-
(0, import_react31.useEffect)(() => {
|
|
10921
|
-
if (datePickerWrapperRef.current) {
|
|
10922
|
-
setPopupHeight(datePickerWrapperRef.current.getBoundingClientRect().height);
|
|
10923
|
-
setPopupWidth(datePickerWrapperRef.current.getBoundingClientRect().width);
|
|
10890
|
+
const handleInputKeyDown = (e) => {
|
|
10891
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
10892
|
+
e.preventDefault();
|
|
10893
|
+
calculatePosition();
|
|
10894
|
+
setIsPanelOpen((prev) => !prev);
|
|
10895
|
+
} else if (e.key === "Escape") {
|
|
10896
|
+
setIsPanelOpen(false);
|
|
10924
10897
|
}
|
|
10925
|
-
}, [targetRect]);
|
|
10926
|
-
return {
|
|
10927
|
-
selectedDate,
|
|
10928
|
-
selectedTime,
|
|
10929
|
-
targetRect,
|
|
10930
|
-
popupHeight,
|
|
10931
|
-
isFocusInput,
|
|
10932
|
-
dateInputRef,
|
|
10933
|
-
datePickerWrapperRef,
|
|
10934
|
-
datePickerRef,
|
|
10935
|
-
handleToggleDatePicker,
|
|
10936
|
-
handleChangeDate,
|
|
10937
|
-
handleChangeTime,
|
|
10938
|
-
handleFocusInput,
|
|
10939
|
-
handleBlueInput,
|
|
10940
|
-
calculatePositionWithScroll
|
|
10941
10898
|
};
|
|
10942
|
-
};
|
|
10943
|
-
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
const [props, variantProps] = mapPropsVariants(originalProps, calendarStyle.variantKeys);
|
|
10949
|
-
const { selectedDate, classNames, highlightWeekend = true, onChangeDate, ...inputProps } = props;
|
|
10950
|
-
const [currentDate, setCurrentDate] = (0, import_react32.useState)(selectedDate ? new Date(selectedDate) : /* @__PURE__ */ new Date());
|
|
10951
|
-
const daysOfWeek = ["S", "M", "T", "W", "T", "F", "S"];
|
|
10952
|
-
(0, import_react32.useEffect)(() => {
|
|
10953
|
-
if (selectedDate) {
|
|
10954
|
-
setCurrentDate(new Date(selectedDate));
|
|
10955
|
-
}
|
|
10956
|
-
}, [selectedDate]);
|
|
10957
|
-
const getCalendarDates = (0, import_react32.useCallback)(() => {
|
|
10958
|
-
const year = currentDate.getFullYear();
|
|
10959
|
-
const month = currentDate.getMonth();
|
|
10960
|
-
const firstDayOfMonth = new Date(year, month, 1).getDay();
|
|
10961
|
-
const lastDateOfMonth = new Date(year, month + 1, 0).getDate();
|
|
10962
|
-
const lastDateOfPrevMonth = new Date(year, month, 0).getDate();
|
|
10963
|
-
let dates = [];
|
|
10964
|
-
for (let i = firstDayOfMonth - 1; i >= 0; i--) {
|
|
10965
|
-
dates.push({
|
|
10966
|
-
date: lastDateOfPrevMonth - i,
|
|
10967
|
-
currentMonth: false
|
|
10968
|
-
});
|
|
10969
|
-
}
|
|
10970
|
-
for (let date = 1; date <= lastDateOfMonth; date++) {
|
|
10971
|
-
dates.push({
|
|
10972
|
-
date,
|
|
10973
|
-
currentMonth: true
|
|
10974
|
-
});
|
|
10975
|
-
}
|
|
10976
|
-
const remainingDays = 42 - dates.length;
|
|
10977
|
-
for (let i = 1; i <= remainingDays; i++) {
|
|
10978
|
-
dates.push({
|
|
10979
|
-
date: i,
|
|
10980
|
-
currentMonth: false
|
|
10981
|
-
});
|
|
10982
|
-
}
|
|
10983
|
-
const weeks = [];
|
|
10984
|
-
for (let i = 0; i < dates.length; i += 7) {
|
|
10985
|
-
weeks.push(dates.slice(i, i + 7));
|
|
10986
|
-
}
|
|
10987
|
-
return weeks;
|
|
10988
|
-
}, [currentDate]);
|
|
10989
|
-
const handlePrevMonth = () => {
|
|
10990
|
-
setCurrentDate(new Date(currentDate.getFullYear(), currentDate.getMonth() - 1));
|
|
10899
|
+
const slots = (0, import_react31.useMemo)(() => timePickerStyle({ ...variantProps }), [variantProps]);
|
|
10900
|
+
const renderHourOptions = () => {
|
|
10901
|
+
return Array.from({ length: 24 }, (_, i) => {
|
|
10902
|
+
const value = String(i).padStart(2, "0");
|
|
10903
|
+
return { label: value, value };
|
|
10904
|
+
});
|
|
10991
10905
|
};
|
|
10992
|
-
const
|
|
10993
|
-
|
|
10906
|
+
const renderMinuteOptions = () => {
|
|
10907
|
+
return Array.from({ length: 60 }, (_, i) => {
|
|
10908
|
+
const value = String(i).padStart(2, "0");
|
|
10909
|
+
return { label: value, value };
|
|
10910
|
+
});
|
|
10994
10911
|
};
|
|
10995
|
-
const
|
|
10996
|
-
|
|
10997
|
-
|
|
10998
|
-
const selected = new Date(currentDate.getFullYear(), currentDate.getMonth(), date);
|
|
10999
|
-
const formatted = formatDateToString(selected);
|
|
11000
|
-
onChangeDate(formatted);
|
|
11001
|
-
}
|
|
10912
|
+
const defaultSelectClassNames = {
|
|
10913
|
+
selectWrapper: "!w-[80px]",
|
|
10914
|
+
optionsWrapper: "max-h-[300px]"
|
|
11002
10915
|
};
|
|
11003
|
-
|
|
11004
|
-
|
|
11005
|
-
|
|
11006
|
-
|
|
11007
|
-
|
|
11008
|
-
(
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
|
|
11012
|
-
|
|
11013
|
-
|
|
11014
|
-
(
|
|
11015
|
-
|
|
11016
|
-
className: `${slots.dateTitle({
|
|
11017
|
-
class: classNames == null ? void 0 : classNames.date
|
|
11018
|
-
})}`,
|
|
11019
|
-
"data-saturday": highlightWeekend && index === 6,
|
|
11020
|
-
"data-sunday": highlightWeekend && index === 0
|
|
11021
|
-
};
|
|
11022
|
-
},
|
|
11023
|
-
[slots, classNames, highlightWeekend]
|
|
11024
|
-
);
|
|
11025
|
-
const getDateProps = (0, import_react32.useCallback)(
|
|
11026
|
-
(dateObj) => {
|
|
11027
|
-
const today = /* @__PURE__ */ new Date();
|
|
11028
|
-
const isToday = today.getDate() === dateObj.date && today.getMonth() === currentDate.getMonth() && today.getFullYear() === currentDate.getFullYear();
|
|
11029
|
-
const formatted = selectedDate ? formatStringToDate(selectedDate) : "";
|
|
11030
|
-
const isSelected = formatted ? formatted.getDate() === dateObj.date && formatted.getMonth() === currentDate.getMonth() && formatted.getFullYear() === currentDate.getFullYear() : false;
|
|
11031
|
-
const dayOfWeek = new Date(currentDate.getFullYear(), currentDate.getMonth(), dateObj.date).getDay();
|
|
11032
|
-
return {
|
|
11033
|
-
className: `${slots.date({
|
|
11034
|
-
class: classNames == null ? void 0 : classNames.date
|
|
11035
|
-
})}`,
|
|
11036
|
-
"data-today": dateObj.currentMonth && isToday,
|
|
11037
|
-
"data-selected": dateObj.currentMonth && isSelected,
|
|
11038
|
-
"data-disabled": !dateObj.currentMonth,
|
|
11039
|
-
"data-saturday": highlightWeekend && dayOfWeek === 6,
|
|
11040
|
-
"data-sunday": highlightWeekend && dayOfWeek === 0,
|
|
11041
|
-
onClick: () => handleDateSelect(dateObj.date, dateObj.currentMonth)
|
|
11042
|
-
};
|
|
11043
|
-
},
|
|
11044
|
-
[slots, classNames, selectedDate, currentDate, highlightWeekend]
|
|
11045
|
-
);
|
|
11046
|
-
const calendarDates = getCalendarDates();
|
|
11047
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { ...getBaseProps(), children: [
|
|
11048
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "calendar-header mb-4 flex items-center justify-between", children: [
|
|
11049
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icon_default, { name: "brace-left", size: "md", className: "cursor-pointer", onClick: handlePrevMonth }),
|
|
11050
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-h6 font-semibold", children: currentDate.toLocaleString("default", { year: "numeric", month: "2-digit" }) }),
|
|
11051
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icon_default, { name: "brace-right", size: "md", className: "cursor-pointer", onClick: handleNextMonth })
|
|
11052
|
-
] }),
|
|
11053
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "grid grid-cols-7 gap-2 text-center", children: daysOfWeek.map((day, index) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { ...getDateTitleProps(index), children: day }, `${day}-${index}`)) }),
|
|
11054
|
-
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "mt-2 grid grid-cols-7 gap-[5px] text-center", children: calendarDates.map((week, weekIndex) => {
|
|
11055
|
-
const hasCurrentMonthDates = week.some((dateObj) => dateObj.currentMonth);
|
|
11056
|
-
if (!hasCurrentMonthDates) return null;
|
|
11057
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react32.default.Fragment, { children: week.map((dateObj, index) => {
|
|
11058
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { ...getDateProps(dateObj), children: dateObj.date }, index);
|
|
11059
|
-
}) }, weekIndex);
|
|
11060
|
-
}) })
|
|
11061
|
-
] }) });
|
|
11062
|
-
});
|
|
11063
|
-
Calendar.displayName = "Calendar";
|
|
11064
|
-
var calendar_default = Calendar;
|
|
11065
|
-
var calendarStyle = tv({
|
|
11066
|
-
slots: {
|
|
11067
|
-
base: [
|
|
11068
|
-
"flex",
|
|
11069
|
-
"flex-col",
|
|
11070
|
-
"w-[240px]",
|
|
11071
|
-
"border",
|
|
11072
|
-
"border-neutral-main",
|
|
11073
|
-
"bg-background",
|
|
11074
|
-
"rounded-md",
|
|
11075
|
-
"p-4",
|
|
11076
|
-
"shadow-lg",
|
|
11077
|
-
"select-none"
|
|
11078
|
-
],
|
|
11079
|
-
dateTitle: ["text-sm", "font-[500]", "data-[saturday=true]:text-[#1E7EEE]", "data-[sunday=true]:text-[#FF4684]"],
|
|
11080
|
-
date: [
|
|
11081
|
-
"flex",
|
|
11082
|
-
"justify-center",
|
|
11083
|
-
"items-center",
|
|
11084
|
-
"h-[25px]",
|
|
11085
|
-
"text-sm",
|
|
11086
|
-
"rounded-full",
|
|
11087
|
-
"cursor-pointer",
|
|
11088
|
-
"hover:bg-neutral-soft",
|
|
11089
|
-
"data-[today=true]:border",
|
|
11090
|
-
"data-[today=true]:border-foreground",
|
|
11091
|
-
"data-[saturday=true]:text-[#1E7EEE]",
|
|
11092
|
-
"data-[saturday=true]:!border-[#1E7EEE]",
|
|
11093
|
-
"data-[sunday=true]:text-[#FF4684]",
|
|
11094
|
-
"data-[sunday=true]:!border-[#FF4684]",
|
|
11095
|
-
"data-[selected=true]:!text-white",
|
|
11096
|
-
"data-[selected=true]:border-none",
|
|
11097
|
-
"data-[disabled=true]:!text-neutral-main",
|
|
11098
|
-
"data-[disabled=true]:cursor-default",
|
|
11099
|
-
"data-[disabled=true]:hover:bg-transparent"
|
|
11100
|
-
]
|
|
11101
|
-
},
|
|
11102
|
-
variants: {
|
|
11103
|
-
variant: {
|
|
11104
|
-
solid: {}
|
|
11105
|
-
},
|
|
11106
|
-
color: {
|
|
11107
|
-
primary: {
|
|
11108
|
-
date: ["data-[selected=true]:!border-primary-main", "data-[selected=true]:bg-primary-main"]
|
|
11109
|
-
},
|
|
11110
|
-
secondary: {
|
|
11111
|
-
date: ["data-[selected=true]:!border-secondary-main", "data-[selected=true]:bg-secondary-main"]
|
|
11112
|
-
}
|
|
11113
|
-
}
|
|
11114
|
-
},
|
|
11115
|
-
defaultVariants: {
|
|
11116
|
-
variant: "solid",
|
|
11117
|
-
color: "primary"
|
|
11118
|
-
},
|
|
11119
|
-
compoundVariants: [
|
|
11120
|
-
{
|
|
11121
|
-
disabled: true,
|
|
11122
|
-
isRequired: true,
|
|
11123
|
-
class: {}
|
|
11124
|
-
}
|
|
11125
|
-
]
|
|
11126
|
-
});
|
|
11127
|
-
|
|
11128
|
-
// src/components/dateTimePicker/timePicker.tsx
|
|
11129
|
-
var import_react33 = require("react");
|
|
11130
|
-
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
11131
|
-
var TimePicker = ({ color = "primary", selectedTime, isFocusInput, onChangeTime }) => {
|
|
11132
|
-
const TOTAL_HOURS = 12;
|
|
11133
|
-
const TOTAL_MINUTES = 60;
|
|
11134
|
-
const ITEM_HEIGHT = 30;
|
|
11135
|
-
const PERIODS = ["AM", "PM"];
|
|
11136
|
-
const [selectedHour, setSelectedHour] = (0, import_react33.useState)("01");
|
|
11137
|
-
const [selectedMinute, setSelectedMinute] = (0, import_react33.useState)("00");
|
|
11138
|
-
const [selectedPeriod, setSelectedPeriod] = (0, import_react33.useState)("AM");
|
|
11139
|
-
const hourRef = (0, import_react33.useRef)(null);
|
|
11140
|
-
const minuteRef = (0, import_react33.useRef)(null);
|
|
11141
|
-
const periodRef = (0, import_react33.useRef)(null);
|
|
11142
|
-
const hoursArray = [...Array(TOTAL_HOURS).keys()].map((i) => (i + 1).toString().padStart(2, "0"));
|
|
11143
|
-
const minutesArray = [...Array(TOTAL_MINUTES).keys()].map((i) => i.toString().padStart(2, "0"));
|
|
11144
|
-
(0, import_react33.useEffect)(() => {
|
|
11145
|
-
if (selectedTime) {
|
|
11146
|
-
const { formattedHour, minute, period } = parseAndFormatTime(selectedTime);
|
|
11147
|
-
setSelectedHour(formattedHour);
|
|
11148
|
-
setSelectedMinute(minute);
|
|
11149
|
-
setSelectedPeriod(period);
|
|
11150
|
-
}
|
|
11151
|
-
if (isFocusInput) {
|
|
11152
|
-
scrollToSelectedTime();
|
|
11153
|
-
}
|
|
11154
|
-
}, [selectedTime, isFocusInput]);
|
|
11155
|
-
(0, import_react33.useEffect)(() => {
|
|
11156
|
-
scrollToSelectedTime();
|
|
11157
|
-
}, []);
|
|
11158
|
-
const parseAndFormatTime = (time) => {
|
|
11159
|
-
const [hour, minute] = time.split(":").map((part) => part.padStart(2, "0"));
|
|
11160
|
-
const parsedHour = parseInt(hour, 10);
|
|
11161
|
-
const period = parsedHour >= 12 ? "PM" : "AM";
|
|
11162
|
-
const formattedHour = parsedHour % 12 === 0 ? "12" : (parsedHour % 12).toString().padStart(2, "0");
|
|
11163
|
-
return { formattedHour, minute, period };
|
|
10916
|
+
const handleRangeChange = (type, option) => {
|
|
10917
|
+
const [shRaw, smRaw] = selectedRange.start.split(":");
|
|
10918
|
+
const [ehRaw, emRaw] = selectedRange.end.split(":");
|
|
10919
|
+
const sh = (shRaw != null ? shRaw : "00").padStart(2, "0");
|
|
10920
|
+
const sm = (smRaw != null ? smRaw : "00").padStart(2, "0");
|
|
10921
|
+
const eh = (ehRaw != null ? ehRaw : "00").padStart(2, "0");
|
|
10922
|
+
const em = (emRaw != null ? emRaw : "00").padStart(2, "0");
|
|
10923
|
+
const range = {
|
|
10924
|
+
start: `${type === "startHour" ? option.value : sh}:${type === "startMinute" ? option.value : sm}`,
|
|
10925
|
+
end: `${type === "endHour" ? option.value : eh}:${type === "endMinute" ? option.value : em}`
|
|
10926
|
+
};
|
|
10927
|
+
setSelectedRange(range);
|
|
10928
|
+
onChangeRange == null ? void 0 : onChangeRange(range);
|
|
11164
10929
|
};
|
|
11165
|
-
const
|
|
11166
|
-
|
|
11167
|
-
|
|
11168
|
-
if (hourRef.current) {
|
|
11169
|
-
hourRef.current.scrollTop = (parseInt(formattedHour) - 1) * ITEM_HEIGHT;
|
|
11170
|
-
}
|
|
11171
|
-
if (minuteRef.current) {
|
|
11172
|
-
minuteRef.current.scrollTop = parseInt(minute) * ITEM_HEIGHT;
|
|
11173
|
-
}
|
|
11174
|
-
if (periodRef.current) {
|
|
11175
|
-
periodRef.current.scrollTop = period === "AM" ? 0 : ITEM_HEIGHT;
|
|
11176
|
-
}
|
|
11177
|
-
}
|
|
10930
|
+
const mergedSelectClassNames = {
|
|
10931
|
+
selectWrapper: (selectClassNames == null ? void 0 : selectClassNames.selectWrapper) || defaultSelectClassNames.selectWrapper,
|
|
10932
|
+
optionsWrapper: (selectClassNames == null ? void 0 : selectClassNames.optionsWrapper) || defaultSelectClassNames.optionsWrapper
|
|
11178
10933
|
};
|
|
11179
|
-
const
|
|
11180
|
-
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
hour24 = parsedHour + 12;
|
|
11184
|
-
} else if (period === "AM" && parsedHour === 12) {
|
|
11185
|
-
hour24 = 0;
|
|
11186
|
-
}
|
|
11187
|
-
const formattedTime = `${hour24.toString().padStart(2, "0")}:${minute}`;
|
|
11188
|
-
if (onChangeTime) {
|
|
11189
|
-
onChangeTime(formattedTime);
|
|
11190
|
-
}
|
|
10934
|
+
const getSelectValue = (timeString, part) => {
|
|
10935
|
+
if (!timeString) return "00";
|
|
10936
|
+
const [hour, minute] = timeString.split(":");
|
|
10937
|
+
return part === "hour" ? hour || "00" : minute || "00";
|
|
11191
10938
|
};
|
|
11192
|
-
|
|
11193
|
-
|
|
11194
|
-
|
|
11195
|
-
|
|
11196
|
-
color,
|
|
11197
|
-
selected: period === selectedPeriod,
|
|
11198
|
-
title: period,
|
|
11199
|
-
size: "sm",
|
|
11200
|
-
classNames: { base: "w-[50px] min-h-[30px]", titleWrapper: "flex justify-center" },
|
|
11201
|
-
onClick: () => {
|
|
11202
|
-
handleTimeChange(selectedHour, selectedMinute, period);
|
|
11203
|
-
}
|
|
11204
|
-
},
|
|
11205
|
-
`${period}-${index}`
|
|
11206
|
-
)) }),
|
|
11207
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(list_default, { ref: hourRef, classNames: { base: "overflow-y-auto scrollbar-hide" }, children: hoursArray.map((hour, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
11208
|
-
listItem_default,
|
|
11209
|
-
{
|
|
11210
|
-
color,
|
|
11211
|
-
selected: hour === selectedHour,
|
|
11212
|
-
title: hour,
|
|
11213
|
-
size: "sm",
|
|
11214
|
-
classNames: { base: "w-[50px] min-h-[30px]", titleWrapper: "flex justify-center" },
|
|
11215
|
-
onClick: () => {
|
|
11216
|
-
handleTimeChange(hour, selectedMinute, selectedPeriod);
|
|
11217
|
-
}
|
|
11218
|
-
},
|
|
11219
|
-
`${hour}-${index}`
|
|
11220
|
-
)) }),
|
|
11221
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(list_default, { ref: minuteRef, classNames: { base: "overflow-y-auto scrollbar-hide" }, children: minutesArray.map((minute, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
11222
|
-
listItem_default,
|
|
11223
|
-
{
|
|
11224
|
-
color,
|
|
11225
|
-
selected: minute === selectedMinute,
|
|
11226
|
-
title: minute,
|
|
11227
|
-
size: "sm",
|
|
11228
|
-
classNames: { base: "w-[50px] min-h-[30px]", titleWrapper: "flex justify-center" },
|
|
11229
|
-
onClick: () => {
|
|
11230
|
-
handleTimeChange(selectedHour, minute, selectedPeriod);
|
|
11231
|
-
}
|
|
11232
|
-
},
|
|
11233
|
-
`${minute}-${index}`
|
|
11234
|
-
)) })
|
|
11235
|
-
] });
|
|
11236
|
-
};
|
|
11237
|
-
var timePicker_default = TimePicker;
|
|
11238
|
-
|
|
11239
|
-
// src/components/dateTimePicker/dateTimePicker.tsx
|
|
11240
|
-
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
11241
|
-
var DatePicker = (0, import_react34.forwardRef)((originalProps, ref) => {
|
|
11242
|
-
const [props, variantProps] = mapPropsVariants(originalProps, dateTimePickerStyle.variantKeys);
|
|
11243
|
-
const {
|
|
11244
|
-
classNames,
|
|
11245
|
-
label,
|
|
11246
|
-
errorMessage,
|
|
11247
|
-
startContent,
|
|
11248
|
-
endContent,
|
|
11249
|
-
type = "date",
|
|
11250
|
-
value,
|
|
11251
|
-
onChangeDate,
|
|
11252
|
-
onChangeTime,
|
|
11253
|
-
...inputProps
|
|
11254
|
-
} = props;
|
|
11255
|
-
const slots = (0, import_react34.useMemo)(() => dateTimePickerStyle({ ...variantProps }), [variantProps]);
|
|
11256
|
-
const {
|
|
11257
|
-
selectedDate,
|
|
11258
|
-
selectedTime,
|
|
11259
|
-
targetRect,
|
|
11260
|
-
popupHeight,
|
|
11261
|
-
isFocusInput,
|
|
11262
|
-
datePickerRef,
|
|
11263
|
-
dateInputRef,
|
|
11264
|
-
datePickerWrapperRef,
|
|
11265
|
-
handleToggleDatePicker,
|
|
11266
|
-
handleChangeDate,
|
|
11267
|
-
handleChangeTime,
|
|
11268
|
-
handleFocusInput,
|
|
11269
|
-
handleBlueInput,
|
|
11270
|
-
calculatePositionWithScroll
|
|
11271
|
-
} = useDatePicker({
|
|
11272
|
-
initialDate: typeof value === "string" ? new Date(value) : void 0,
|
|
11273
|
-
initialTime: typeof value === "string" ? value : void 0
|
|
11274
|
-
});
|
|
11275
|
-
const position = targetRect ? calculatePositionWithScroll(targetRect) : null;
|
|
11276
|
-
const getBaseProps = (0, import_react34.useCallback)(
|
|
11277
|
-
() => ({
|
|
11278
|
-
className: slots.base({ class: classNames == null ? void 0 : classNames.base })
|
|
11279
|
-
}),
|
|
11280
|
-
[slots, classNames]
|
|
11281
|
-
);
|
|
11282
|
-
const getLabelProps = (0, import_react34.useCallback)(
|
|
11283
|
-
() => ({
|
|
11284
|
-
className: slots.label({ class: classNames == null ? void 0 : classNames.label })
|
|
11285
|
-
}),
|
|
11286
|
-
[slots, classNames]
|
|
11287
|
-
);
|
|
11288
|
-
const getInnerWrapperProps = (0, import_react34.useCallback)(
|
|
11289
|
-
() => ({
|
|
11290
|
-
className: slots.innerWrapper({ class: classNames == null ? void 0 : classNames.innerWrapper })
|
|
11291
|
-
}),
|
|
11292
|
-
[slots, classNames]
|
|
11293
|
-
);
|
|
11294
|
-
const getInputWrapperProps = (0, import_react34.useCallback)(
|
|
11295
|
-
() => ({
|
|
11296
|
-
className: slots.inputWrapper({ class: classNames == null ? void 0 : classNames.inputWrapper }),
|
|
11297
|
-
ref: datePickerRef
|
|
11298
|
-
}),
|
|
11299
|
-
[slots, classNames]
|
|
11300
|
-
);
|
|
11301
|
-
const getInputProps = (0, import_react34.useCallback)(
|
|
11302
|
-
() => ({
|
|
11303
|
-
...inputProps,
|
|
11304
|
-
ref: ref || dateInputRef,
|
|
11305
|
-
className: slots.input({ class: classNames == null ? void 0 : classNames.input }),
|
|
11306
|
-
size: 0,
|
|
11307
|
-
type,
|
|
11308
|
-
value: value !== void 0 ? value : type === "date" ? selectedDate || "" : type === "time" ? selectedTime || "" : "",
|
|
11309
|
-
onChange: (e) => {
|
|
11310
|
-
if (type === "date") {
|
|
11311
|
-
handleChangeDate(e.target.value);
|
|
11312
|
-
if (onChangeDate) {
|
|
11313
|
-
onChangeDate(e.target.value);
|
|
11314
|
-
}
|
|
11315
|
-
} else if (type === "time") {
|
|
11316
|
-
handleChangeTime(e.target.value);
|
|
11317
|
-
if (onChangeTime) {
|
|
11318
|
-
onChangeTime(e.target.value);
|
|
11319
|
-
}
|
|
11320
|
-
}
|
|
11321
|
-
},
|
|
11322
|
-
onFocus: (e) => {
|
|
11323
|
-
handleFocusInput();
|
|
11324
|
-
},
|
|
11325
|
-
onBlur: (e) => {
|
|
11326
|
-
handleBlueInput();
|
|
11327
|
-
},
|
|
11328
|
-
max: "9999-12-31"
|
|
11329
|
-
}),
|
|
11330
|
-
[inputProps, ref, dateInputRef, slots, classNames == null ? void 0 : classNames.input, selectedDate, selectedTime, type, value]
|
|
11331
|
-
);
|
|
11332
|
-
const getContentProps = (0, import_react34.useCallback)(
|
|
11333
|
-
() => ({
|
|
11334
|
-
className: slots.content({ class: classNames == null ? void 0 : classNames.content }),
|
|
11335
|
-
size: originalProps.size
|
|
11336
|
-
}),
|
|
11337
|
-
[slots, classNames, originalProps.size]
|
|
11338
|
-
);
|
|
11339
|
-
const getErrorMessageProps = (0, import_react34.useCallback)(
|
|
11340
|
-
() => ({
|
|
11341
|
-
className: slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage })
|
|
11342
|
-
}),
|
|
11343
|
-
[slots, classNames]
|
|
11344
|
-
);
|
|
11345
|
-
const renderStartContent = () => {
|
|
11346
|
-
if (import_react34.default.isValidElement(startContent)) {
|
|
11347
|
-
const existingProps = startContent.props;
|
|
11348
|
-
const mergedProps = {
|
|
11349
|
-
...getContentProps(),
|
|
11350
|
-
className: `${getContentProps().className || ""} ${existingProps.className || ""}`.trim()
|
|
11351
|
-
};
|
|
11352
|
-
return import_react34.default.cloneElement(startContent, mergedProps);
|
|
11353
|
-
} else {
|
|
11354
|
-
const contentProps = getContentProps();
|
|
11355
|
-
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { ...contentProps, children: startContent });
|
|
11356
|
-
}
|
|
10939
|
+
const handleClearRange = () => {
|
|
10940
|
+
const emptyRange = { start: "", end: "" };
|
|
10941
|
+
setSelectedRange(emptyRange);
|
|
10942
|
+
onChangeRange == null ? void 0 : onChangeRange(emptyRange);
|
|
11357
10943
|
};
|
|
11358
|
-
|
|
11359
|
-
|
|
11360
|
-
|
|
11361
|
-
|
|
11362
|
-
|
|
11363
|
-
|
|
11364
|
-
|
|
11365
|
-
|
|
11366
|
-
|
|
11367
|
-
|
|
11368
|
-
|
|
11369
|
-
|
|
11370
|
-
|
|
11371
|
-
|
|
11372
|
-
|
|
11373
|
-
|
|
11374
|
-
|
|
11375
|
-
|
|
11376
|
-
|
|
11377
|
-
|
|
11378
|
-
|
|
11379
|
-
|
|
11380
|
-
|
|
11381
|
-
|
|
11382
|
-
|
|
11383
|
-
|
|
11384
|
-
|
|
11385
|
-
|
|
11386
|
-
|
|
11387
|
-
|
|
11388
|
-
|
|
11389
|
-
|
|
11390
|
-
|
|
11391
|
-
|
|
11392
|
-
|
|
11393
|
-
|
|
11394
|
-
|
|
11395
|
-
|
|
11396
|
-
|
|
11397
|
-
|
|
11398
|
-
|
|
11399
|
-
|
|
11400
|
-
|
|
11401
|
-
|
|
10944
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
10945
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
|
|
10946
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("label", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label }),
|
|
10947
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
|
|
10948
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { ref: inputWrapperRef, className: slots.inputWrapper({ class: classNames == null ? void 0 : classNames.inputWrapper }), children: [
|
|
10949
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
10950
|
+
"input",
|
|
10951
|
+
{
|
|
10952
|
+
...inputProps,
|
|
10953
|
+
ref,
|
|
10954
|
+
className: slots.input({ class: classNames == null ? void 0 : classNames.input }),
|
|
10955
|
+
type: "text",
|
|
10956
|
+
value: displayValue,
|
|
10957
|
+
placeholder,
|
|
10958
|
+
readOnly: true,
|
|
10959
|
+
onFocus: handleFocusInput,
|
|
10960
|
+
onBlur: handleInputBlur,
|
|
10961
|
+
onKeyDown: handleInputKeyDown
|
|
10962
|
+
}
|
|
10963
|
+
),
|
|
10964
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }), children: [
|
|
10965
|
+
displayValue && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
10966
|
+
Icon_default,
|
|
10967
|
+
{
|
|
10968
|
+
name: "close",
|
|
10969
|
+
className: "text-neutral-light hover:text-neutral-main mr-[5px] cursor-pointer",
|
|
10970
|
+
onClick: (e) => {
|
|
10971
|
+
e.stopPropagation();
|
|
10972
|
+
handleClearRange();
|
|
10973
|
+
}
|
|
10974
|
+
}
|
|
10975
|
+
),
|
|
10976
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
10977
|
+
Icon_default,
|
|
10978
|
+
{
|
|
10979
|
+
name: "clock",
|
|
10980
|
+
className: "cursor-pointer",
|
|
10981
|
+
onClick: () => {
|
|
10982
|
+
calculatePosition();
|
|
10983
|
+
setIsPanelOpen((v) => !v);
|
|
10984
|
+
}
|
|
10985
|
+
}
|
|
10986
|
+
)
|
|
10987
|
+
] })
|
|
11402
10988
|
] }),
|
|
11403
|
-
errorMessage && /* @__PURE__ */ (0,
|
|
10989
|
+
errorMessage && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage }), children: errorMessage })
|
|
11404
10990
|
] })
|
|
11405
10991
|
] }),
|
|
11406
|
-
|
|
11407
|
-
/* @__PURE__ */ (0,
|
|
10992
|
+
isPanelOpen && (0, import_react_dom5.createPortal)(
|
|
10993
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
11408
10994
|
"div",
|
|
11409
10995
|
{
|
|
11410
|
-
ref:
|
|
10996
|
+
ref: panelWrapperRef,
|
|
10997
|
+
className: slots.optionsWrapper({ class: classNames == null ? void 0 : classNames.optionsWrapper }),
|
|
11411
10998
|
style: {
|
|
11412
10999
|
position: "absolute",
|
|
11413
|
-
top:
|
|
11414
|
-
left:
|
|
11000
|
+
top: panelPos.top,
|
|
11001
|
+
left: panelPos.left,
|
|
11415
11002
|
zIndex: 1e3
|
|
11416
11003
|
},
|
|
11417
|
-
|
|
11418
|
-
|
|
11419
|
-
|
|
11420
|
-
|
|
11421
|
-
|
|
11422
|
-
|
|
11423
|
-
|
|
11424
|
-
|
|
11425
|
-
|
|
11426
|
-
|
|
11004
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
11005
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "bg-body-background text-neutral-main flex items-center gap-[5px] p-[10px]", children: [
|
|
11006
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[5px]", children: [
|
|
11007
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
11008
|
+
select_default,
|
|
11009
|
+
{
|
|
11010
|
+
options: renderHourOptions(),
|
|
11011
|
+
value: getSelectValue(selectedRange.start, "hour"),
|
|
11012
|
+
onChange: (options) => {
|
|
11013
|
+
if (options[0]) handleRangeChange("startHour", options[0]);
|
|
11014
|
+
},
|
|
11015
|
+
classNames: mergedSelectClassNames
|
|
11427
11016
|
}
|
|
11428
|
-
|
|
11429
|
-
|
|
11430
|
-
|
|
11431
|
-
|
|
11432
|
-
|
|
11433
|
-
|
|
11434
|
-
|
|
11435
|
-
|
|
11436
|
-
|
|
11437
|
-
|
|
11438
|
-
|
|
11017
|
+
),
|
|
11018
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: ":" }),
|
|
11019
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
11020
|
+
select_default,
|
|
11021
|
+
{
|
|
11022
|
+
options: renderMinuteOptions(),
|
|
11023
|
+
value: getSelectValue(selectedRange.start, "minute"),
|
|
11024
|
+
onChange: (options) => {
|
|
11025
|
+
if (options[0]) handleRangeChange("startMinute", options[0]);
|
|
11026
|
+
},
|
|
11027
|
+
classNames: mergedSelectClassNames
|
|
11439
11028
|
}
|
|
11440
|
-
|
|
11441
|
-
)
|
|
11442
|
-
|
|
11029
|
+
)
|
|
11030
|
+
] }),
|
|
11031
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: "~" }),
|
|
11032
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-[5px]", children: [
|
|
11033
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
11034
|
+
select_default,
|
|
11035
|
+
{
|
|
11036
|
+
options: renderHourOptions(),
|
|
11037
|
+
value: getSelectValue(selectedRange.end, "hour"),
|
|
11038
|
+
onChange: (options) => {
|
|
11039
|
+
if (options[0]) handleRangeChange("endHour", options[0]);
|
|
11040
|
+
},
|
|
11041
|
+
classNames: mergedSelectClassNames
|
|
11042
|
+
}
|
|
11043
|
+
),
|
|
11044
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: ":" }),
|
|
11045
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
11046
|
+
select_default,
|
|
11047
|
+
{
|
|
11048
|
+
options: renderMinuteOptions(),
|
|
11049
|
+
value: getSelectValue(selectedRange.end, "minute"),
|
|
11050
|
+
onChange: (options) => {
|
|
11051
|
+
if (options[0]) handleRangeChange("endMinute", options[0]);
|
|
11052
|
+
},
|
|
11053
|
+
classNames: mergedSelectClassNames
|
|
11054
|
+
}
|
|
11055
|
+
)
|
|
11056
|
+
] })
|
|
11057
|
+
] })
|
|
11443
11058
|
}
|
|
11444
11059
|
),
|
|
11445
11060
|
document.body
|
|
11446
|
-
)
|
|
11061
|
+
)
|
|
11447
11062
|
] });
|
|
11448
11063
|
});
|
|
11449
|
-
|
|
11450
|
-
var
|
|
11451
|
-
var
|
|
11064
|
+
TimePicker.displayName = "TimePicker";
|
|
11065
|
+
var timePicker_default = TimePicker;
|
|
11066
|
+
var timePickerStyle = tv({
|
|
11452
11067
|
slots: {
|
|
11453
|
-
base: ["group/
|
|
11454
|
-
label: ["flex", "items-center"],
|
|
11455
|
-
|
|
11068
|
+
base: ["group/timepicker", "flex", "flex-col"],
|
|
11069
|
+
label: ["flex", "items-center", "font-bold", "text-body-foreground", "min-w-[80px]"],
|
|
11070
|
+
wrapper: ["flex", "flex-col"],
|
|
11456
11071
|
inputWrapper: [
|
|
11457
11072
|
"flex",
|
|
11458
11073
|
"items-center",
|
|
11459
|
-
"
|
|
11460
|
-
"
|
|
11461
|
-
"
|
|
11462
|
-
"
|
|
11074
|
+
"justify-between",
|
|
11075
|
+
"border",
|
|
11076
|
+
"cursor-pointer",
|
|
11077
|
+
"text-neutral-main",
|
|
11078
|
+
"hover:bg-trans-soft",
|
|
11079
|
+
"group-has-[p.error]/input:border-danger-main",
|
|
11080
|
+
"group-has-[p.error]/input:bg-danger-soft",
|
|
11081
|
+
"group-has-[p.error]/input:text-danger-main",
|
|
11082
|
+
"group-has-[p.error]/input:hover:bg-danger-soft"
|
|
11083
|
+
],
|
|
11084
|
+
input: [
|
|
11085
|
+
"bg-transparent",
|
|
11086
|
+
"w-full",
|
|
11087
|
+
"outline-none",
|
|
11088
|
+
"placeholder:text-neutral-main",
|
|
11089
|
+
"text-body-foreground",
|
|
11090
|
+
"group-has-[p.error]/input:text-danger-main",
|
|
11091
|
+
"group-has-[p.error]/input:placeholder:text-danger-main",
|
|
11092
|
+
"cursor-pointer"
|
|
11463
11093
|
],
|
|
11464
|
-
|
|
11465
|
-
|
|
11466
|
-
errorMessage: ["text-danger-main"]
|
|
11094
|
+
icon: ["flex", "items-center", "select-none", "text-body-foreground", "group-has-[p.error]/input:text-danger-main"],
|
|
11095
|
+
optionsWrapper: ["border", "rounded", "bg-body-background", "shadow", "overflow-auto"],
|
|
11096
|
+
errorMessage: ["text-danger-main", "mt-1", "text-sm"],
|
|
11097
|
+
selectWrapper: []
|
|
11467
11098
|
},
|
|
11468
11099
|
variants: {
|
|
11469
|
-
variant: {
|
|
11470
|
-
solid: {
|
|
11471
|
-
inputWrapper: ["bg-trans-soft", "hover:bg-trans-light", "has-[:focus]:bg-trans-light"]
|
|
11472
|
-
},
|
|
11473
|
-
normal: {
|
|
11474
|
-
inputWrapper: [
|
|
11475
|
-
"bg-transparent",
|
|
11476
|
-
"border",
|
|
11477
|
-
"border-neutral-main",
|
|
11478
|
-
"hover:bg-trans-soft",
|
|
11479
|
-
"has-[:focus]:bg-trans-soft"
|
|
11480
|
-
]
|
|
11481
|
-
},
|
|
11482
|
-
line: {
|
|
11483
|
-
inputWrapper: [
|
|
11484
|
-
"bg-transparent",
|
|
11485
|
-
"border-b",
|
|
11486
|
-
"border-neutral-main",
|
|
11487
|
-
"!rounded-none",
|
|
11488
|
-
"hover:bg-trans-soft",
|
|
11489
|
-
"has-[:focus]:bg-trans-soft"
|
|
11490
|
-
]
|
|
11491
|
-
}
|
|
11492
|
-
},
|
|
11493
11100
|
color: {
|
|
11494
11101
|
primary: {
|
|
11495
|
-
|
|
11496
|
-
content: ["text-primary-main"]
|
|
11102
|
+
icon: ["text-primary-main"]
|
|
11497
11103
|
},
|
|
11498
11104
|
secondary: {
|
|
11499
|
-
|
|
11500
|
-
content: ["text-secondary-main"]
|
|
11105
|
+
icon: ["text-secondary-main"]
|
|
11501
11106
|
}
|
|
11502
11107
|
},
|
|
11503
11108
|
size: {
|
|
11504
11109
|
sm: {
|
|
11505
|
-
base: ["text-sm", "gap-[
|
|
11506
|
-
|
|
11507
|
-
|
|
11110
|
+
base: ["text-sm", "gap-[4px]"],
|
|
11111
|
+
label: ["text-sm"],
|
|
11112
|
+
wrapper: ["gap-[4px]"],
|
|
11113
|
+
inputWrapper: ["w-[240px]", "h-[24px]", "rounded-sm", "px-[4px]"],
|
|
11114
|
+
input: ["text-sm"],
|
|
11115
|
+
icon: ["text-sm"],
|
|
11508
11116
|
errorMessage: ["text-sm"]
|
|
11509
11117
|
},
|
|
11510
11118
|
md: {
|
|
11511
|
-
base: ["text-md", "gap-[
|
|
11512
|
-
|
|
11513
|
-
|
|
11514
|
-
|
|
11119
|
+
base: ["text-md", "gap-[6px]"],
|
|
11120
|
+
label: ["text-md"],
|
|
11121
|
+
wrapper: ["gap-[6px]"],
|
|
11122
|
+
inputWrapper: ["w-[240px]", "h-[32px]", "rounded-md", "px-[6px]"],
|
|
11123
|
+
input: ["text-md"],
|
|
11124
|
+
icon: ["text-md"],
|
|
11125
|
+
errorMessage: ["text-sm"]
|
|
11515
11126
|
},
|
|
11516
11127
|
lg: {
|
|
11517
|
-
base: ["text-lg", "gap-[
|
|
11518
|
-
|
|
11519
|
-
|
|
11520
|
-
|
|
11128
|
+
base: ["text-lg", "gap-[8px]"],
|
|
11129
|
+
label: ["text-lg"],
|
|
11130
|
+
wrapper: ["gap-[8px]"],
|
|
11131
|
+
inputWrapper: ["w-[240px]", "h-[40px]", "rounded-lg", "px-[8px]"],
|
|
11132
|
+
input: ["text-lg"],
|
|
11133
|
+
icon: ["text-lg"],
|
|
11134
|
+
errorMessage: ["text-md"]
|
|
11521
11135
|
},
|
|
11522
11136
|
xl: {
|
|
11523
11137
|
base: ["text-xl", "gap-[10px]"],
|
|
11524
|
-
|
|
11525
|
-
|
|
11526
|
-
|
|
11527
|
-
|
|
11528
|
-
|
|
11529
|
-
|
|
11530
|
-
default: "",
|
|
11531
|
-
none: {
|
|
11532
|
-
inputWrapper: ["rounded-none"]
|
|
11533
|
-
},
|
|
11534
|
-
full: {
|
|
11535
|
-
inputWrapper: ["rounded-full"]
|
|
11138
|
+
label: ["text-xl"],
|
|
11139
|
+
wrapper: ["gap-[10px]"],
|
|
11140
|
+
inputWrapper: ["w-[240px]", "h-[50px]", "rounded-lg", "px-[10px]"],
|
|
11141
|
+
input: ["text-xl"],
|
|
11142
|
+
icon: ["text-xl"],
|
|
11143
|
+
errorMessage: ["text-md"]
|
|
11536
11144
|
}
|
|
11537
11145
|
},
|
|
11538
11146
|
full: {
|
|
11539
11147
|
true: {
|
|
11540
11148
|
base: ["w-full"],
|
|
11541
|
-
|
|
11149
|
+
wrapper: ["w-full"],
|
|
11542
11150
|
inputWrapper: ["w-full"]
|
|
11543
11151
|
}
|
|
11544
11152
|
},
|
|
11545
11153
|
disabled: {
|
|
11546
11154
|
true: {
|
|
11155
|
+
base: ["pointer-events-none"],
|
|
11547
11156
|
label: ["text-neutral-light"],
|
|
11548
|
-
inputWrapper: [
|
|
11549
|
-
|
|
11550
|
-
|
|
11157
|
+
inputWrapper: [
|
|
11158
|
+
"bg-neutral-soft",
|
|
11159
|
+
"border-neutral-light",
|
|
11160
|
+
"group-has-[p.error]/input:text-danger-light",
|
|
11161
|
+
"group-has-[p.error]/input:bg-danger-soft",
|
|
11162
|
+
"group-has-[p.error]/input:border-danger-light",
|
|
11163
|
+
"cursor-not-allowed"
|
|
11164
|
+
],
|
|
11165
|
+
input: [
|
|
11166
|
+
"text-neutral-light",
|
|
11167
|
+
"placeholder:text-neutral-light",
|
|
11168
|
+
"group-has-[p.error]/input:text-danger-light",
|
|
11169
|
+
"group-has-[p.error]/input:placeholder:text-danger-light",
|
|
11170
|
+
"cursor-not-allowed"
|
|
11171
|
+
],
|
|
11172
|
+
icon: ["text-neutral-light"],
|
|
11551
11173
|
errorMessage: ["text-danger-light"]
|
|
11552
11174
|
}
|
|
11553
|
-
},
|
|
11554
|
-
isRequired: {
|
|
11555
|
-
true: {
|
|
11556
|
-
label: ["after:content-['*']", "after:text-danger-main", "after:ml-0.5"]
|
|
11557
|
-
}
|
|
11558
11175
|
}
|
|
11559
11176
|
},
|
|
11560
11177
|
defaultVariants: {
|
|
11561
|
-
variant: "solid",
|
|
11562
11178
|
color: "primary",
|
|
11563
11179
|
size: "md",
|
|
11564
11180
|
full: false,
|
|
11565
|
-
disabled: false
|
|
11566
|
-
|
|
11567
|
-
},
|
|
11568
|
-
compoundVariants: [
|
|
11569
|
-
{
|
|
11570
|
-
disabled: true,
|
|
11571
|
-
isRequired: true,
|
|
11572
|
-
class: {
|
|
11573
|
-
label: ["after:text-danger-light"]
|
|
11574
|
-
}
|
|
11575
|
-
}
|
|
11576
|
-
]
|
|
11181
|
+
disabled: false
|
|
11182
|
+
}
|
|
11577
11183
|
});
|
|
11578
11184
|
|
|
11579
11185
|
// src/components/tree/tree.tsx
|
|
11580
|
-
var
|
|
11581
|
-
var
|
|
11582
|
-
var TreeNodeItem = (0,
|
|
11186
|
+
var import_react32 = require("react");
|
|
11187
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
11188
|
+
var TreeNodeItem = (0, import_react32.forwardRef)(
|
|
11583
11189
|
({ node, depth, fileIcon, selectedName, classNames, onExpand }, ref) => {
|
|
11584
|
-
const [isOpen, setIsOpen] = (0,
|
|
11585
|
-
const [children, setChildren] = (0,
|
|
11586
|
-
const slots = (0,
|
|
11587
|
-
const hasMore = (0,
|
|
11190
|
+
const [isOpen, setIsOpen] = (0, import_react32.useState)(false);
|
|
11191
|
+
const [children, setChildren] = (0, import_react32.useState)(node.children);
|
|
11192
|
+
const slots = (0, import_react32.useMemo)(() => treeStyle(), []);
|
|
11193
|
+
const hasMore = (0, import_react32.useMemo)(() => {
|
|
11588
11194
|
if (node.isLeaf) return false;
|
|
11589
11195
|
if (Array.isArray(children)) return children.length > 0;
|
|
11590
11196
|
return typeof onExpand === "function";
|
|
11591
11197
|
}, [node.isLeaf, children, onExpand]);
|
|
11592
|
-
const toggleOpen = (0,
|
|
11198
|
+
const toggleOpen = (0, import_react32.useCallback)(async () => {
|
|
11593
11199
|
if (!isOpen && !children && onExpand && !node.isLeaf) {
|
|
11594
11200
|
try {
|
|
11595
11201
|
const result = await onExpand(node);
|
|
@@ -11611,7 +11217,7 @@ var TreeNodeItem = (0, import_react35.forwardRef)(
|
|
|
11611
11217
|
e.preventDefault();
|
|
11612
11218
|
(_a = node.onRightClick) == null ? void 0 : _a.call(node, e);
|
|
11613
11219
|
};
|
|
11614
|
-
return /* @__PURE__ */ (0,
|
|
11220
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
11615
11221
|
"div",
|
|
11616
11222
|
{
|
|
11617
11223
|
ref,
|
|
@@ -11620,7 +11226,7 @@ var TreeNodeItem = (0, import_react35.forwardRef)(
|
|
|
11620
11226
|
slots.gap({ class: classNames == null ? void 0 : classNames.gap })
|
|
11621
11227
|
),
|
|
11622
11228
|
children: [
|
|
11623
|
-
/* @__PURE__ */ (0,
|
|
11229
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
11624
11230
|
"div",
|
|
11625
11231
|
{
|
|
11626
11232
|
className: clsx(
|
|
@@ -11631,7 +11237,7 @@ var TreeNodeItem = (0, import_react35.forwardRef)(
|
|
|
11631
11237
|
onClick: handleClick,
|
|
11632
11238
|
onContextMenu: handleRightClick,
|
|
11633
11239
|
children: [
|
|
11634
|
-
hasMore && /* @__PURE__ */ (0,
|
|
11240
|
+
hasMore && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
11635
11241
|
Icon_default,
|
|
11636
11242
|
{
|
|
11637
11243
|
name: "right-chevron",
|
|
@@ -11646,7 +11252,7 @@ var TreeNodeItem = (0, import_react35.forwardRef)(
|
|
|
11646
11252
|
]
|
|
11647
11253
|
}
|
|
11648
11254
|
),
|
|
11649
|
-
isOpen && hasMore && /* @__PURE__ */ (0,
|
|
11255
|
+
isOpen && hasMore && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: slots.gap({ class: classNames == null ? void 0 : classNames.gap }), children: children == null ? void 0 : children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
11650
11256
|
TreeNodeItem,
|
|
11651
11257
|
{
|
|
11652
11258
|
node: child,
|
|
@@ -11665,7 +11271,7 @@ var TreeNodeItem = (0, import_react35.forwardRef)(
|
|
|
11665
11271
|
);
|
|
11666
11272
|
TreeNodeItem.displayName = "TreeNodeItem";
|
|
11667
11273
|
var Tree = ({ headerContent, group, groupIcon, fileIcon, selectedName, classNames, onExpand }) => {
|
|
11668
|
-
const slots = (0,
|
|
11274
|
+
const slots = (0, import_react32.useMemo)(() => treeStyle(), []);
|
|
11669
11275
|
const handleClick = (e) => {
|
|
11670
11276
|
var _a;
|
|
11671
11277
|
(_a = group.onClick) == null ? void 0 : _a.call(group, e);
|
|
@@ -11675,10 +11281,10 @@ var Tree = ({ headerContent, group, groupIcon, fileIcon, selectedName, className
|
|
|
11675
11281
|
e.preventDefault();
|
|
11676
11282
|
(_a = group.onRightClick) == null ? void 0 : _a.call(group, e);
|
|
11677
11283
|
};
|
|
11678
|
-
return /* @__PURE__ */ (0,
|
|
11679
|
-
headerContent && /* @__PURE__ */ (0,
|
|
11680
|
-
/* @__PURE__ */ (0,
|
|
11681
|
-
/* @__PURE__ */ (0,
|
|
11284
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
|
|
11285
|
+
headerContent && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { children: headerContent }),
|
|
11286
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
|
|
11287
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
11682
11288
|
"div",
|
|
11683
11289
|
{
|
|
11684
11290
|
className: clsx(
|
|
@@ -11694,7 +11300,7 @@ var Tree = ({ headerContent, group, groupIcon, fileIcon, selectedName, className
|
|
|
11694
11300
|
]
|
|
11695
11301
|
}
|
|
11696
11302
|
),
|
|
11697
|
-
/* @__PURE__ */ (0,
|
|
11303
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: slots.itemWrapper({ class: classNames == null ? void 0 : classNames.itemWrapper }), children: group.data.map((node) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
11698
11304
|
TreeNodeItem,
|
|
11699
11305
|
{
|
|
11700
11306
|
node,
|
|
@@ -11733,19 +11339,19 @@ var treeStyle = tv({
|
|
|
11733
11339
|
});
|
|
11734
11340
|
|
|
11735
11341
|
// src/components/fileUpload/fileUpload.tsx
|
|
11736
|
-
var
|
|
11737
|
-
var
|
|
11342
|
+
var import_react35 = require("react");
|
|
11343
|
+
var import_tailwind_variants33 = require("tailwind-variants");
|
|
11738
11344
|
|
|
11739
11345
|
// src/components/progress/progress.tsx
|
|
11740
|
-
var
|
|
11346
|
+
var import_react34 = require("react");
|
|
11741
11347
|
|
|
11742
11348
|
// src/hooks/useIsMounted.ts
|
|
11743
|
-
var
|
|
11349
|
+
var import_react33 = require("react");
|
|
11744
11350
|
function useIsMounted(props = {}) {
|
|
11745
11351
|
const { rerender = false, delay = 0 } = props;
|
|
11746
|
-
const isMountedRef = (0,
|
|
11747
|
-
const [isMounted, setIsMounted] = (0,
|
|
11748
|
-
(0,
|
|
11352
|
+
const isMountedRef = (0, import_react33.useRef)(false);
|
|
11353
|
+
const [isMounted, setIsMounted] = (0, import_react33.useState)(false);
|
|
11354
|
+
(0, import_react33.useEffect)(() => {
|
|
11749
11355
|
isMountedRef.current = true;
|
|
11750
11356
|
let timer = null;
|
|
11751
11357
|
if (rerender) {
|
|
@@ -11767,11 +11373,11 @@ function useIsMounted(props = {}) {
|
|
|
11767
11373
|
}
|
|
11768
11374
|
};
|
|
11769
11375
|
}, [rerender]);
|
|
11770
|
-
return [(0,
|
|
11376
|
+
return [(0, import_react33.useCallback)(() => isMountedRef.current, []), isMounted];
|
|
11771
11377
|
}
|
|
11772
11378
|
|
|
11773
11379
|
// src/components/progress/progress.tsx
|
|
11774
|
-
var
|
|
11380
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
11775
11381
|
var Progress = (originalProps) => {
|
|
11776
11382
|
const [props, variantProps] = mapPropsVariants(originalProps, progressStyle.variantKeys);
|
|
11777
11383
|
const { children, classNames, value = 0, minValue = 0, maxValue = 100, ...progressProps } = props;
|
|
@@ -11781,12 +11387,12 @@ var Progress = (originalProps) => {
|
|
|
11781
11387
|
delay: 100
|
|
11782
11388
|
});
|
|
11783
11389
|
const selfMounted = variantProps.disableAnimation ? true : isMounted;
|
|
11784
|
-
const percentage = (0,
|
|
11390
|
+
const percentage = (0, import_react34.useMemo)(
|
|
11785
11391
|
() => isIndeterminate || !selfMounted ? void 0 : clampPercentage((value - minValue) / (maxValue - minValue) * 100),
|
|
11786
11392
|
[selfMounted, isIndeterminate, value, minValue, maxValue]
|
|
11787
11393
|
);
|
|
11788
|
-
const slots = (0,
|
|
11789
|
-
return /* @__PURE__ */ (0,
|
|
11394
|
+
const slots = (0, import_react34.useMemo)(() => progressStyle({ ...variantProps }), [variantProps]);
|
|
11395
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: slots.track({ class: classNames == null ? void 0 : classNames.track }), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
11790
11396
|
"div",
|
|
11791
11397
|
{
|
|
11792
11398
|
className: slots.indicator({ class: classNames == null ? void 0 : classNames.indicator }),
|
|
@@ -11885,7 +11491,7 @@ var clampPercentage = (value) => {
|
|
|
11885
11491
|
};
|
|
11886
11492
|
|
|
11887
11493
|
// src/components/fileUpload/fileUpload.tsx
|
|
11888
|
-
var
|
|
11494
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
11889
11495
|
function FileUpload({
|
|
11890
11496
|
buttonText,
|
|
11891
11497
|
maxSizeMB = 10,
|
|
@@ -11901,11 +11507,11 @@ function FileUpload({
|
|
|
11901
11507
|
name,
|
|
11902
11508
|
classNames
|
|
11903
11509
|
}) {
|
|
11904
|
-
const fileInputRef = (0,
|
|
11905
|
-
const uploadIntervalRef = (0,
|
|
11906
|
-
const [file, setFile] = (0,
|
|
11907
|
-
const [uploadProgress, setUploadProgress] = (0,
|
|
11908
|
-
const [message, setMessage] = (0,
|
|
11510
|
+
const fileInputRef = (0, import_react35.useRef)(null);
|
|
11511
|
+
const uploadIntervalRef = (0, import_react35.useRef)(null);
|
|
11512
|
+
const [file, setFile] = (0, import_react35.useState)(null);
|
|
11513
|
+
const [uploadProgress, setUploadProgress] = (0, import_react35.useState)(0);
|
|
11514
|
+
const [message, setMessage] = (0, import_react35.useState)(errorMessage);
|
|
11909
11515
|
const slots = fileUploadStyle();
|
|
11910
11516
|
const handleButtonClick = () => {
|
|
11911
11517
|
var _a;
|
|
@@ -11956,20 +11562,20 @@ function FileUpload({
|
|
|
11956
11562
|
setMessage("");
|
|
11957
11563
|
if (onCancelUpload) onCancelUpload();
|
|
11958
11564
|
};
|
|
11959
|
-
(0,
|
|
11565
|
+
(0, import_react35.useEffect)(() => {
|
|
11960
11566
|
return () => {
|
|
11961
11567
|
if (uploadIntervalRef.current) {
|
|
11962
11568
|
clearInterval(uploadIntervalRef.current);
|
|
11963
11569
|
}
|
|
11964
11570
|
};
|
|
11965
11571
|
}, []);
|
|
11966
|
-
(0,
|
|
11572
|
+
(0, import_react35.useEffect)(() => {
|
|
11967
11573
|
setMessage(errorMessage);
|
|
11968
11574
|
}, [setMessage, errorMessage]);
|
|
11969
|
-
return /* @__PURE__ */ (0,
|
|
11970
|
-
/* @__PURE__ */ (0,
|
|
11971
|
-
/* @__PURE__ */ (0,
|
|
11972
|
-
/* @__PURE__ */ (0,
|
|
11575
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
|
|
11576
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: slots.container({ class: classNames == null ? void 0 : classNames.container }), children: [
|
|
11577
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: slots.inputWrapper(), children: [
|
|
11578
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
11973
11579
|
input_default,
|
|
11974
11580
|
{
|
|
11975
11581
|
name,
|
|
@@ -11981,7 +11587,7 @@ function FileUpload({
|
|
|
11981
11587
|
errorMessage: message
|
|
11982
11588
|
}
|
|
11983
11589
|
),
|
|
11984
|
-
file && /* @__PURE__ */ (0,
|
|
11590
|
+
file && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
11985
11591
|
icon_button_default,
|
|
11986
11592
|
{
|
|
11987
11593
|
name: "close",
|
|
@@ -11993,16 +11599,16 @@ function FileUpload({
|
|
|
11993
11599
|
}
|
|
11994
11600
|
)
|
|
11995
11601
|
] }),
|
|
11996
|
-
/* @__PURE__ */ (0,
|
|
11997
|
-
/* @__PURE__ */ (0,
|
|
11602
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(button_default, { type: "button", variant: "outline", onClick: handleButtonClick, disabled: !!file, children: buttonText }),
|
|
11603
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("input", { ref: fileInputRef, type: "file", hidden: true, accept: accept.join(","), onChange: handleFileChange })
|
|
11998
11604
|
] }),
|
|
11999
|
-
showProgress && file && uploadProgress < 100 && /* @__PURE__ */ (0,
|
|
12000
|
-
!message && helperMessage && /* @__PURE__ */ (0,
|
|
11605
|
+
showProgress && file && uploadProgress < 100 && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(progress_default, { value: uploadProgress }),
|
|
11606
|
+
!message && helperMessage && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: slots.helperMessage(), children: helperMessage })
|
|
12001
11607
|
] });
|
|
12002
11608
|
}
|
|
12003
11609
|
FileUpload.displayName = "FileUpload";
|
|
12004
11610
|
var fileUpload_default = FileUpload;
|
|
12005
|
-
var fileUploadStyle = (0,
|
|
11611
|
+
var fileUploadStyle = (0, import_tailwind_variants33.tv)({
|
|
12006
11612
|
slots: {
|
|
12007
11613
|
base: ["flex", "flex-col", "gap-[5px]"],
|
|
12008
11614
|
container: ["flex", "gap-[10px]"],
|
|
@@ -12015,12 +11621,12 @@ var fileUploadStyle = (0, import_tailwind_variants34.tv)({
|
|
|
12015
11621
|
|
|
12016
11622
|
// src/components/charts/circularProgress.tsx
|
|
12017
11623
|
var import_recharts = require("recharts");
|
|
12018
|
-
var
|
|
12019
|
-
var
|
|
12020
|
-
var CircularProgress = (0,
|
|
11624
|
+
var import_react36 = require("react");
|
|
11625
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
11626
|
+
var CircularProgress = (0, import_react36.forwardRef)((originalProps, ref) => {
|
|
12021
11627
|
const [props, variantProps] = mapPropsVariants(originalProps, circularProgressStyle.variantKeys);
|
|
12022
11628
|
const { label, size = 150, percentage, unit, classNames } = { ...props, ...variantProps };
|
|
12023
|
-
const slots = (0,
|
|
11629
|
+
const slots = (0, import_react36.useMemo)(() => circularProgressStyle({ ...variantProps }), [variantProps]);
|
|
12024
11630
|
const data = [
|
|
12025
11631
|
{
|
|
12026
11632
|
name: label,
|
|
@@ -12028,11 +11634,11 @@ var CircularProgress = (0, import_react39.forwardRef)((originalProps, ref) => {
|
|
|
12028
11634
|
}
|
|
12029
11635
|
];
|
|
12030
11636
|
const BAR_SIZE = 24;
|
|
12031
|
-
const OUTER_RADIUS =
|
|
11637
|
+
const OUTER_RADIUS = 75;
|
|
12032
11638
|
const INNER_RADIUS = OUTER_RADIUS - BAR_SIZE;
|
|
12033
|
-
return /* @__PURE__ */ (0,
|
|
12034
|
-
/* @__PURE__ */ (0,
|
|
12035
|
-
/* @__PURE__ */ (0,
|
|
11639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
|
|
11640
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "relative", style: { width: size, height: size }, children: [
|
|
11641
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
12036
11642
|
import_recharts.RadialBarChart,
|
|
12037
11643
|
{
|
|
12038
11644
|
width: size,
|
|
@@ -12044,18 +11650,18 @@ var CircularProgress = (0, import_react39.forwardRef)((originalProps, ref) => {
|
|
|
12044
11650
|
startAngle: 90,
|
|
12045
11651
|
endAngle: -270,
|
|
12046
11652
|
children: [
|
|
12047
|
-
/* @__PURE__ */ (0,
|
|
11653
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
12048
11654
|
"circle",
|
|
12049
11655
|
{
|
|
12050
11656
|
cx: size / 2,
|
|
12051
11657
|
cy: size / 2,
|
|
12052
|
-
r:
|
|
11658
|
+
r: OUTER_RADIUS,
|
|
12053
11659
|
className: slots.background({ class: classNames == null ? void 0 : classNames.background }),
|
|
12054
11660
|
fill: "currentColor"
|
|
12055
11661
|
}
|
|
12056
11662
|
),
|
|
12057
|
-
/* @__PURE__ */ (0,
|
|
12058
|
-
/* @__PURE__ */ (0,
|
|
11663
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_recharts.PolarAngleAxis, { type: "number", domain: [0, 100], angleAxisId: 0, tick: false }),
|
|
11664
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
12059
11665
|
import_recharts.RadialBar,
|
|
12060
11666
|
{
|
|
12061
11667
|
dataKey: "value",
|
|
@@ -12067,12 +11673,12 @@ var CircularProgress = (0, import_react39.forwardRef)((originalProps, ref) => {
|
|
|
12067
11673
|
]
|
|
12068
11674
|
}
|
|
12069
11675
|
),
|
|
12070
|
-
/* @__PURE__ */ (0,
|
|
11676
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: slots.text({ class: classNames == null ? void 0 : classNames.text }), children: [
|
|
12071
11677
|
percentage,
|
|
12072
11678
|
unit
|
|
12073
11679
|
] }) })
|
|
12074
11680
|
] }),
|
|
12075
|
-
label && /* @__PURE__ */ (0,
|
|
11681
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label })
|
|
12076
11682
|
] });
|
|
12077
11683
|
});
|
|
12078
11684
|
CircularProgress.displayName = "CircularProgress";
|
|
@@ -12110,26 +11716,26 @@ var circularProgressStyle = tv({
|
|
|
12110
11716
|
});
|
|
12111
11717
|
|
|
12112
11718
|
// src/components/charts/areaChart.tsx
|
|
12113
|
-
var
|
|
11719
|
+
var import_react37 = require("react");
|
|
12114
11720
|
var import_recharts2 = require("recharts");
|
|
12115
|
-
var
|
|
12116
|
-
var AreaChartComponent = (0,
|
|
12117
|
-
const uniqueId = (0,
|
|
11721
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
11722
|
+
var AreaChartComponent = (0, import_react37.forwardRef)((originalProps, ref) => {
|
|
11723
|
+
const uniqueId = (0, import_react37.useId)();
|
|
12118
11724
|
const [props, variantProps] = mapPropsVariants(originalProps, areaChartStyle.variantKeys);
|
|
12119
11725
|
const { data, label, color = "primary", classNames } = { ...props, ...variantProps };
|
|
12120
|
-
const slots = (0,
|
|
11726
|
+
const slots = (0, import_react37.useMemo)(() => areaChartStyle({ ...variantProps }), [variantProps]);
|
|
12121
11727
|
const COLOR_MAP = {
|
|
12122
11728
|
primary: "#3F9CF2",
|
|
12123
11729
|
danger: "#FF4684"
|
|
12124
11730
|
};
|
|
12125
|
-
const colorHex = (0,
|
|
12126
|
-
const [tickPositions, setTickPositions] = (0,
|
|
12127
|
-
const tickRef = (0,
|
|
11731
|
+
const colorHex = (0, import_react37.useMemo)(() => COLOR_MAP[color], [color]);
|
|
11732
|
+
const [tickPositions, setTickPositions] = (0, import_react37.useState)([]);
|
|
11733
|
+
const tickRef = (0, import_react37.useRef)([]);
|
|
12128
11734
|
const CustomTick = ({ x, y, payload }) => {
|
|
12129
11735
|
if (x !== void 0) {
|
|
12130
11736
|
tickRef.current.push(x);
|
|
12131
11737
|
}
|
|
12132
|
-
return /* @__PURE__ */ (0,
|
|
11738
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
12133
11739
|
"text",
|
|
12134
11740
|
{
|
|
12135
11741
|
x,
|
|
@@ -12143,7 +11749,7 @@ var AreaChartComponent = (0, import_react40.forwardRef)((originalProps, ref) =>
|
|
|
12143
11749
|
}
|
|
12144
11750
|
);
|
|
12145
11751
|
};
|
|
12146
|
-
(0,
|
|
11752
|
+
(0, import_react37.useEffect)(() => {
|
|
12147
11753
|
const raf = requestAnimationFrame(() => {
|
|
12148
11754
|
const unique = [...new Set(tickRef.current)].sort((a, b) => a - b);
|
|
12149
11755
|
const mids = [];
|
|
@@ -12158,19 +11764,19 @@ var AreaChartComponent = (0, import_react40.forwardRef)((originalProps, ref) =>
|
|
|
12158
11764
|
const CustomDotWithShadow = (props2) => {
|
|
12159
11765
|
const { cx, cy, fill, stroke } = props2;
|
|
12160
11766
|
if (cx === void 0 || cy === void 0) return null;
|
|
12161
|
-
return /* @__PURE__ */ (0,
|
|
12162
|
-
/* @__PURE__ */ (0,
|
|
12163
|
-
/* @__PURE__ */ (0,
|
|
11767
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
|
|
11768
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("circle", { cx, cy, r: 8, fill, opacity: 0.2 }),
|
|
11769
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("circle", { cx, cy, r: 3.5, fill, stroke, strokeWidth: 2 })
|
|
12164
11770
|
] });
|
|
12165
11771
|
};
|
|
12166
|
-
return /* @__PURE__ */ (0,
|
|
12167
|
-
label && /* @__PURE__ */ (0,
|
|
12168
|
-
/* @__PURE__ */ (0,
|
|
12169
|
-
/* @__PURE__ */ (0,
|
|
12170
|
-
/* @__PURE__ */ (0,
|
|
12171
|
-
/* @__PURE__ */ (0,
|
|
11772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
|
|
11773
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label }),
|
|
11774
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_recharts2.ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_recharts2.AreaChart, { data, margin: { left: -30 }, children: [
|
|
11775
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("linearGradient", { id: `colorGradient-${uniqueId}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
11776
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("stop", { offset: "5%", stopColor: colorHex, stopOpacity: 0.3 }),
|
|
11777
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("stop", { offset: "95%", stopColor: colorHex, stopOpacity: 0 })
|
|
12172
11778
|
] }) }),
|
|
12173
|
-
/* @__PURE__ */ (0,
|
|
11779
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
12174
11780
|
import_recharts2.CartesianGrid,
|
|
12175
11781
|
{
|
|
12176
11782
|
vertical: true,
|
|
@@ -12180,7 +11786,7 @@ var AreaChartComponent = (0, import_react40.forwardRef)((originalProps, ref) =>
|
|
|
12180
11786
|
verticalPoints: tickPositions
|
|
12181
11787
|
}
|
|
12182
11788
|
),
|
|
12183
|
-
/* @__PURE__ */ (0,
|
|
11789
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
12184
11790
|
import_recharts2.XAxis,
|
|
12185
11791
|
{
|
|
12186
11792
|
dataKey: "name",
|
|
@@ -12190,7 +11796,7 @@ var AreaChartComponent = (0, import_react40.forwardRef)((originalProps, ref) =>
|
|
|
12190
11796
|
padding: { left: 35.5, right: 35.5 }
|
|
12191
11797
|
}
|
|
12192
11798
|
),
|
|
12193
|
-
/* @__PURE__ */ (0,
|
|
11799
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
12194
11800
|
import_recharts2.YAxis,
|
|
12195
11801
|
{
|
|
12196
11802
|
axisLine: { stroke: "#DFE2E7", strokeWidth: 1 },
|
|
@@ -12206,7 +11812,7 @@ var AreaChartComponent = (0, import_react40.forwardRef)((originalProps, ref) =>
|
|
|
12206
11812
|
domain: [-6, 110]
|
|
12207
11813
|
}
|
|
12208
11814
|
),
|
|
12209
|
-
/* @__PURE__ */ (0,
|
|
11815
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
12210
11816
|
import_recharts2.Area,
|
|
12211
11817
|
{
|
|
12212
11818
|
type: "monotone",
|
|
@@ -12214,7 +11820,7 @@ var AreaChartComponent = (0, import_react40.forwardRef)((originalProps, ref) =>
|
|
|
12214
11820
|
stroke: colorHex,
|
|
12215
11821
|
strokeWidth: 2,
|
|
12216
11822
|
fill: `url(#colorGradient-${uniqueId})`,
|
|
12217
|
-
dot: /* @__PURE__ */ (0,
|
|
11823
|
+
dot: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(CustomDotWithShadow, { stroke: colorHex, fill: colorHex }),
|
|
12218
11824
|
activeDot: { r: 7, fill: colorHex }
|
|
12219
11825
|
}
|
|
12220
11826
|
)
|
|
@@ -12246,20 +11852,20 @@ var areaChartStyle = tv({
|
|
|
12246
11852
|
});
|
|
12247
11853
|
|
|
12248
11854
|
// src/components/charts/barChart.tsx
|
|
12249
|
-
var
|
|
11855
|
+
var import_react38 = require("react");
|
|
12250
11856
|
var import_recharts3 = require("recharts");
|
|
12251
|
-
var
|
|
12252
|
-
var BarChartComponent = (0,
|
|
11857
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
11858
|
+
var BarChartComponent = (0, import_react38.forwardRef)((originalProps, ref) => {
|
|
12253
11859
|
const [props, variantProps] = mapPropsVariants(originalProps, barChartStyle.variantKeys);
|
|
12254
11860
|
const { data, label, classNames } = { ...props, ...variantProps };
|
|
12255
|
-
const slots = (0,
|
|
11861
|
+
const slots = (0, import_react38.useMemo)(() => barChartStyle({ ...variantProps }), [variantProps]);
|
|
12256
11862
|
const COLOR_MAP = {
|
|
12257
11863
|
primary: "#C7E5FA",
|
|
12258
11864
|
secondary: "#DEC1FA",
|
|
12259
11865
|
warning: "#F9C967"
|
|
12260
11866
|
};
|
|
12261
|
-
const [tickPositions, setTickPositions] = (0,
|
|
12262
|
-
const tickRef = (0,
|
|
11867
|
+
const [tickPositions, setTickPositions] = (0, import_react38.useState)([]);
|
|
11868
|
+
const tickRef = (0, import_react38.useRef)([]);
|
|
12263
11869
|
const CustomBarShape = (barProps) => {
|
|
12264
11870
|
const { x, y, width, height, fill } = barProps;
|
|
12265
11871
|
const radius = 5;
|
|
@@ -12267,19 +11873,19 @@ var BarChartComponent = (0, import_react41.forwardRef)((originalProps, ref) => {
|
|
|
12267
11873
|
const adjustedHeight = height + extraHeight;
|
|
12268
11874
|
const adjustedY = y;
|
|
12269
11875
|
const bottomY = adjustedY + adjustedHeight;
|
|
12270
|
-
return height ? /* @__PURE__ */ (0,
|
|
11876
|
+
return height ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
12271
11877
|
"path",
|
|
12272
11878
|
{
|
|
12273
11879
|
d: `M${x},${bottomY} L${x},${adjustedY + radius} Q${x},${adjustedY} ${x + radius},${adjustedY} L${x + width - radius},${adjustedY} Q${x + width},${adjustedY} ${x + width},${adjustedY + radius} L${x + width},${bottomY} Z`,
|
|
12274
11880
|
fill
|
|
12275
11881
|
}
|
|
12276
|
-
) : /* @__PURE__ */ (0,
|
|
11882
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("rect", { x, y, width, height: 0, fill });
|
|
12277
11883
|
};
|
|
12278
11884
|
const CustomTick = ({ x, y, payload }) => {
|
|
12279
11885
|
if (x !== void 0) {
|
|
12280
11886
|
tickRef.current.push(x);
|
|
12281
11887
|
}
|
|
12282
|
-
return /* @__PURE__ */ (0,
|
|
11888
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
12283
11889
|
"text",
|
|
12284
11890
|
{
|
|
12285
11891
|
x,
|
|
@@ -12293,7 +11899,7 @@ var BarChartComponent = (0, import_react41.forwardRef)((originalProps, ref) => {
|
|
|
12293
11899
|
}
|
|
12294
11900
|
);
|
|
12295
11901
|
};
|
|
12296
|
-
(0,
|
|
11902
|
+
(0, import_react38.useEffect)(() => {
|
|
12297
11903
|
const raf = requestAnimationFrame(() => {
|
|
12298
11904
|
const unique = [...new Set(tickRef.current)].sort((a, b) => a - b);
|
|
12299
11905
|
const mids = [];
|
|
@@ -12305,10 +11911,10 @@ var BarChartComponent = (0, import_react41.forwardRef)((originalProps, ref) => {
|
|
|
12305
11911
|
});
|
|
12306
11912
|
return () => cancelAnimationFrame(raf);
|
|
12307
11913
|
}, [data]);
|
|
12308
|
-
return /* @__PURE__ */ (0,
|
|
12309
|
-
label && /* @__PURE__ */ (0,
|
|
12310
|
-
/* @__PURE__ */ (0,
|
|
12311
|
-
/* @__PURE__ */ (0,
|
|
11914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
|
|
11915
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label }),
|
|
11916
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_recharts3.ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_recharts3.BarChart, { data, margin: { left: -30 }, barSize: 20, barGap: 10, children: [
|
|
11917
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
12312
11918
|
import_recharts3.CartesianGrid,
|
|
12313
11919
|
{
|
|
12314
11920
|
vertical: true,
|
|
@@ -12318,7 +11924,7 @@ var BarChartComponent = (0, import_react41.forwardRef)((originalProps, ref) => {
|
|
|
12318
11924
|
verticalPoints: tickPositions
|
|
12319
11925
|
}
|
|
12320
11926
|
),
|
|
12321
|
-
/* @__PURE__ */ (0,
|
|
11927
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
12322
11928
|
import_recharts3.XAxis,
|
|
12323
11929
|
{
|
|
12324
11930
|
dataKey: "name",
|
|
@@ -12328,7 +11934,7 @@ var BarChartComponent = (0, import_react41.forwardRef)((originalProps, ref) => {
|
|
|
12328
11934
|
padding: { left: 32, right: 32 }
|
|
12329
11935
|
}
|
|
12330
11936
|
),
|
|
12331
|
-
/* @__PURE__ */ (0,
|
|
11937
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
12332
11938
|
import_recharts3.YAxis,
|
|
12333
11939
|
{
|
|
12334
11940
|
axisLine: { stroke: "#DFE2E7", strokeWidth: 1 },
|
|
@@ -12344,9 +11950,9 @@ var BarChartComponent = (0, import_react41.forwardRef)((originalProps, ref) => {
|
|
|
12344
11950
|
domain: [-6, 110]
|
|
12345
11951
|
}
|
|
12346
11952
|
),
|
|
12347
|
-
/* @__PURE__ */ (0,
|
|
12348
|
-
/* @__PURE__ */ (0,
|
|
12349
|
-
/* @__PURE__ */ (0,
|
|
11953
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_recharts3.Bar, { dataKey: "avg", fill: COLOR_MAP.primary, width: 20, shape: CustomBarShape }),
|
|
11954
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_recharts3.Bar, { dataKey: "high", fill: COLOR_MAP.secondary, width: 20, shape: CustomBarShape }),
|
|
11955
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_recharts3.Bar, { dataKey: "low", fill: COLOR_MAP.warning, width: 20, shape: CustomBarShape })
|
|
12350
11956
|
] }) })
|
|
12351
11957
|
] });
|
|
12352
11958
|
});
|
|
@@ -12365,20 +11971,20 @@ var barChartStyle = tv({
|
|
|
12365
11971
|
|
|
12366
11972
|
// src/components/charts/radarChart.tsx
|
|
12367
11973
|
var import_recharts4 = require("recharts");
|
|
12368
|
-
var
|
|
12369
|
-
var
|
|
12370
|
-
var RadarChart = (0,
|
|
11974
|
+
var import_react39 = require("react");
|
|
11975
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
11976
|
+
var RadarChart = (0, import_react39.forwardRef)((originalProps, ref) => {
|
|
12371
11977
|
const [props, variantProps] = mapPropsVariants(originalProps, radarChartStyle.variantKeys);
|
|
12372
11978
|
const { data, label, classNames } = { ...props, ...variantProps };
|
|
12373
|
-
const slots = (0,
|
|
12374
|
-
const maxFullMark = (0,
|
|
11979
|
+
const slots = (0, import_react39.useMemo)(() => radarChartStyle({ ...variantProps }), [variantProps]);
|
|
11980
|
+
const maxFullMark = (0, import_react39.useMemo)(() => {
|
|
12375
11981
|
if (!data || data.length === 0) return 100;
|
|
12376
11982
|
return Math.max(...data.map((item) => item.fullMark || 100));
|
|
12377
11983
|
}, [data]);
|
|
12378
|
-
return /* @__PURE__ */ (0,
|
|
12379
|
-
/* @__PURE__ */ (0,
|
|
12380
|
-
/* @__PURE__ */ (0,
|
|
12381
|
-
/* @__PURE__ */ (0,
|
|
11984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
|
|
11985
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_recharts4.ResponsiveContainer, { width: 580, height: 330, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_recharts4.RadarChart, { data, outerRadius: "80%", children: [
|
|
11986
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_recharts4.PolarGrid, { stroke: "#DFE2E7", strokeWidth: 1.75 }),
|
|
11987
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
12382
11988
|
import_recharts4.PolarAngleAxis,
|
|
12383
11989
|
{
|
|
12384
11990
|
dataKey: "name",
|
|
@@ -12387,8 +11993,8 @@ var RadarChart = (0, import_react42.forwardRef)((originalProps, ref) => {
|
|
|
12387
11993
|
tickSize: 15
|
|
12388
11994
|
}
|
|
12389
11995
|
),
|
|
12390
|
-
/* @__PURE__ */ (0,
|
|
12391
|
-
/* @__PURE__ */ (0,
|
|
11996
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_recharts4.PolarRadiusAxis, { domain: [0, maxFullMark], tick: false, tickCount: 6, axisLine: false }),
|
|
11997
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
12392
11998
|
import_recharts4.Radar,
|
|
12393
11999
|
{
|
|
12394
12000
|
name: label,
|
|
@@ -12401,7 +12007,7 @@ var RadarChart = (0, import_react42.forwardRef)((originalProps, ref) => {
|
|
|
12401
12007
|
}
|
|
12402
12008
|
)
|
|
12403
12009
|
] }) }),
|
|
12404
|
-
label && /* @__PURE__ */ (0,
|
|
12010
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label })
|
|
12405
12011
|
] });
|
|
12406
12012
|
});
|
|
12407
12013
|
RadarChart.displayName = "RadarChart";
|
|
@@ -12430,7 +12036,6 @@ var radarChartStyle = tv({
|
|
|
12430
12036
|
CheckBox,
|
|
12431
12037
|
Chip,
|
|
12432
12038
|
CircularProgress,
|
|
12433
|
-
DateTimePicker,
|
|
12434
12039
|
DefinitionTable,
|
|
12435
12040
|
Drawer,
|
|
12436
12041
|
FileUpload,
|
|
@@ -12452,6 +12057,7 @@ var radarChartStyle = tv({
|
|
|
12452
12057
|
Tabs,
|
|
12453
12058
|
TextButton,
|
|
12454
12059
|
Textarea,
|
|
12060
|
+
TimePicker,
|
|
12455
12061
|
Toast,
|
|
12456
12062
|
ToastProvider,
|
|
12457
12063
|
Tooltip,
|