@x-plat/design-system 0.5.25 → 0.5.28
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/components/ChatInput/index.cjs +59 -39
- package/dist/components/ChatInput/index.css +80 -45
- package/dist/components/ChatInput/index.d.cts +1 -1
- package/dist/components/ChatInput/index.d.ts +1 -1
- package/dist/components/ChatInput/index.js +59 -39
- package/dist/components/IconButton/index.cjs +68 -0
- package/dist/components/IconButton/index.css +77 -0
- package/dist/components/IconButton/index.d.cts +18 -0
- package/dist/components/IconButton/index.d.ts +18 -0
- package/dist/components/IconButton/index.js +41 -0
- package/dist/components/Table/index.css +4 -10
- package/dist/components/index.cjs +329 -305
- package/dist/components/index.css +84 -55
- package/dist/components/index.d.cts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +272 -249
- package/dist/index.cjs +339 -312
- package/dist/index.css +84 -55
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +280 -254
- package/package.json +1 -1
|
@@ -49,6 +49,7 @@ __export(components_exports, {
|
|
|
49
49
|
EmptyState: () => EmptyState_default,
|
|
50
50
|
FileUpload: () => FileUpload_default,
|
|
51
51
|
HtmlTypewriter: () => HtmlTypeWriter_default,
|
|
52
|
+
IconButton: () => IconButton_default,
|
|
52
53
|
ImageSelector: () => ImageSelector_default,
|
|
53
54
|
Input: () => Input_default,
|
|
54
55
|
InputDatePicker: () => InputDatePicker_default,
|
|
@@ -470,13 +471,7 @@ var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
|
470
471
|
|
|
471
472
|
// src/tokens/svg/communication/MessageSquareIcon.tsx
|
|
472
473
|
var import_jsx_runtime87 = require("react/jsx-runtime");
|
|
473
|
-
|
|
474
|
-
// src/tokens/svg/communication/PaperclipIcon.tsx
|
|
475
|
-
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
476
|
-
|
|
477
|
-
// src/tokens/svg/communication/SendIcon.tsx
|
|
478
|
-
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
479
|
-
var SendIcon = () => /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
|
|
474
|
+
var MessageSquareIcon = () => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
480
475
|
"svg",
|
|
481
476
|
{
|
|
482
477
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -484,13 +479,16 @@ var SendIcon = () => /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
|
|
|
484
479
|
height: "1em",
|
|
485
480
|
viewBox: "0 0 20 20",
|
|
486
481
|
fill: "none",
|
|
487
|
-
children:
|
|
488
|
-
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("g", { clipPath: "url(#send-clip)", children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M18.3558 0.918873C18.3887 0.919879 18.4212 0.9224 18.4535 0.927663C18.4642 0.929393 18.4751 0.930348 18.4857 0.932545C18.527 0.941123 18.5675 0.953269 18.6068 0.968678C18.6178 0.972968 18.6282 0.978499 18.639 0.983327C18.6672 0.995914 18.6945 1.01021 18.7211 1.0263C18.7403 1.03794 18.7594 1.04988 18.7777 1.0634C18.7803 1.06534 18.7829 1.0673 18.7855 1.06926C18.8126 1.08979 18.839 1.11195 18.8637 1.13665C18.8872 1.16018 18.9084 1.18517 18.9281 1.21087C18.9322 1.21625 18.9359 1.22198 18.9398 1.22747C18.9501 1.24168 18.959 1.25667 18.9681 1.27141C18.9866 1.30108 19.0029 1.33154 19.017 1.36321C19.0214 1.37309 19.0267 1.38248 19.0306 1.39251C19.0461 1.43186 19.0581 1.47231 19.0668 1.5136C19.069 1.52426 19.0699 1.5351 19.0717 1.54583C19.077 1.57815 19.0794 1.61062 19.0805 1.64348C19.0808 1.65621 19.0817 1.66884 19.0814 1.68157C19.0799 1.75981 19.0681 1.83872 19.0414 1.91497L13.2074 18.581C13.1058 18.871 12.8377 19.0703 12.5306 19.0829C12.2237 19.0954 11.9398 18.9192 11.8148 18.6386L8.59706 11.4003L1.3617 8.18547C1.08085 8.06057 0.90492 7.77678 0.917368 7.46965C0.929915 7.16252 1.12827 6.89358 1.41834 6.79192L18.0853 0.958913C18.1613 0.932334 18.2398 0.919479 18.3178 0.917897C18.3305 0.91763 18.3431 0.918498 18.3558 0.918873ZM10.0609 10.999L12.4164 16.2997L16.5375 4.52239L10.0609 10.999ZM3.69862 7.58294L9.00038 9.93841L15.4808 3.45794L3.69862 7.58294Z", fill: "currentColor" }) }),
|
|
489
|
-
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("clipPath", { id: "send-clip", children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("rect", { width: "20", height: "20", fill: "currentColor" }) }) })
|
|
490
|
-
]
|
|
482
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M15.833 1.75C16.4739 1.75 17.0888 2.00479 17.542 2.45801C17.9952 2.91122 18.25 3.52605 18.25 4.16699V12.5C18.25 13.1409 17.9952 13.7558 17.542 14.209C17.0888 14.6621 16.4739 14.917 15.833 14.917H6.14355L3.03027 18.0303C2.81579 18.2448 2.49313 18.3094 2.21289 18.1934C1.93263 18.0773 1.75 17.8033 1.75 17.5V4.16699C1.75 3.52605 2.00479 2.91122 2.45801 2.45801C2.91122 2.00479 3.52605 1.75 4.16699 1.75H15.833ZM4.16699 3.25C3.92388 3.25 3.69046 3.34665 3.51855 3.51855C3.34665 3.69046 3.25 3.92388 3.25 4.16699V15.6895L5.30273 13.6367L5.41699 13.543C5.53928 13.4613 5.68382 13.4171 5.83301 13.417H15.833C16.076 13.417 16.3096 13.3202 16.4814 13.1484C16.6534 12.9765 16.75 12.7431 16.75 12.5V4.16699C16.75 3.92388 16.6534 3.69046 16.4814 3.51855C16.3095 3.34665 16.0761 3.25 15.833 3.25H4.16699Z", fill: "currentColor" })
|
|
491
483
|
}
|
|
492
484
|
);
|
|
493
|
-
var
|
|
485
|
+
var MessageSquareIcon_default = MessageSquareIcon;
|
|
486
|
+
|
|
487
|
+
// src/tokens/svg/communication/PaperclipIcon.tsx
|
|
488
|
+
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
489
|
+
|
|
490
|
+
// src/tokens/svg/communication/SendIcon.tsx
|
|
491
|
+
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
494
492
|
|
|
495
493
|
// src/tokens/svg/date/CalendarIcon.tsx
|
|
496
494
|
var import_jsx_runtime90 = require("react/jsx-runtime");
|
|
@@ -2039,7 +2037,32 @@ var Calendar_default = Calendar;
|
|
|
2039
2037
|
|
|
2040
2038
|
// src/components/ChatInput/ChatInput.tsx
|
|
2041
2039
|
var import_react4 = __toESM(require("react"), 1);
|
|
2040
|
+
|
|
2041
|
+
// src/components/IconButton/IconButton.tsx
|
|
2042
2042
|
var import_jsx_runtime302 = require("react/jsx-runtime");
|
|
2043
|
+
var IconButton = (props) => {
|
|
2044
|
+
const {
|
|
2045
|
+
icon,
|
|
2046
|
+
type = "primary",
|
|
2047
|
+
size = "md",
|
|
2048
|
+
disabled,
|
|
2049
|
+
...rest
|
|
2050
|
+
} = props;
|
|
2051
|
+
return /* @__PURE__ */ (0, import_jsx_runtime302.jsx)(
|
|
2052
|
+
"button",
|
|
2053
|
+
{
|
|
2054
|
+
className: clsx_default("lib-xplat-icon-button", type, size),
|
|
2055
|
+
disabled,
|
|
2056
|
+
...rest,
|
|
2057
|
+
children: icon
|
|
2058
|
+
}
|
|
2059
|
+
);
|
|
2060
|
+
};
|
|
2061
|
+
IconButton.displayName = "IconButton";
|
|
2062
|
+
var IconButton_default = IconButton;
|
|
2063
|
+
|
|
2064
|
+
// src/components/ChatInput/ChatInput.tsx
|
|
2065
|
+
var import_jsx_runtime303 = require("react/jsx-runtime");
|
|
2043
2066
|
var MAX_HEIGHT = 200;
|
|
2044
2067
|
var ChatInput = import_react4.default.forwardRef(
|
|
2045
2068
|
(props, ref) => {
|
|
@@ -2090,8 +2113,8 @@ var ChatInput = import_react4.default.forwardRef(
|
|
|
2090
2113
|
import_react4.default.useEffect(() => {
|
|
2091
2114
|
updateHeight();
|
|
2092
2115
|
}, [value, updateHeight]);
|
|
2093
|
-
return /* @__PURE__ */ (0,
|
|
2094
|
-
/* @__PURE__ */ (0,
|
|
2116
|
+
return /* @__PURE__ */ (0, import_jsx_runtime303.jsxs)("div", { className: clsx_default("lib-xplat-chat-input", disabled && "disabled"), children: [
|
|
2117
|
+
/* @__PURE__ */ (0, import_jsx_runtime303.jsx)(
|
|
2095
2118
|
"textarea",
|
|
2096
2119
|
{
|
|
2097
2120
|
ref: setRefs,
|
|
@@ -2104,15 +2127,15 @@ var ChatInput = import_react4.default.forwardRef(
|
|
|
2104
2127
|
onKeyDown: handleKeyDown
|
|
2105
2128
|
}
|
|
2106
2129
|
),
|
|
2107
|
-
/* @__PURE__ */ (0,
|
|
2108
|
-
|
|
2130
|
+
/* @__PURE__ */ (0, import_jsx_runtime303.jsx)(
|
|
2131
|
+
IconButton_default,
|
|
2109
2132
|
{
|
|
2110
|
-
|
|
2111
|
-
|
|
2133
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime303.jsx)(MessageSquareIcon_default, {}),
|
|
2134
|
+
type: buttonType,
|
|
2135
|
+
size: "sm",
|
|
2112
2136
|
disabled: !hasText || disabled,
|
|
2113
2137
|
onClick: handleSubmit,
|
|
2114
|
-
"aria-label": "\uC804\uC1A1"
|
|
2115
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime302.jsx)(SendIcon_default, {})
|
|
2138
|
+
"aria-label": "\uC804\uC1A1"
|
|
2116
2139
|
}
|
|
2117
2140
|
)
|
|
2118
2141
|
] });
|
|
@@ -2122,16 +2145,16 @@ ChatInput.displayName = "ChatInput";
|
|
|
2122
2145
|
var ChatInput_default = ChatInput;
|
|
2123
2146
|
|
|
2124
2147
|
// src/components/Box/Box.tsx
|
|
2125
|
-
var
|
|
2148
|
+
var import_jsx_runtime304 = require("react/jsx-runtime");
|
|
2126
2149
|
var Box = ({
|
|
2127
2150
|
children,
|
|
2128
2151
|
title,
|
|
2129
2152
|
variant = "outlined",
|
|
2130
2153
|
padding = "md"
|
|
2131
2154
|
}) => {
|
|
2132
|
-
return /* @__PURE__ */ (0,
|
|
2133
|
-
title && /* @__PURE__ */ (0,
|
|
2134
|
-
/* @__PURE__ */ (0,
|
|
2155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime304.jsxs)("div", { className: clsx_default("lib-xplat-box", variant, `pad-${padding}`), children: [
|
|
2156
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime304.jsx)("div", { className: "box-title", children: title }),
|
|
2157
|
+
/* @__PURE__ */ (0, import_jsx_runtime304.jsx)("div", { className: "box-content", children })
|
|
2135
2158
|
] });
|
|
2136
2159
|
};
|
|
2137
2160
|
Box.displayName = "Box";
|
|
@@ -2141,10 +2164,10 @@ var Box_default = Box;
|
|
|
2141
2164
|
var import_react5 = __toESM(require("react"), 1);
|
|
2142
2165
|
|
|
2143
2166
|
// src/components/CardTab/CardTabPanel.tsx
|
|
2144
|
-
var
|
|
2167
|
+
var import_jsx_runtime305 = require("react/jsx-runtime");
|
|
2145
2168
|
var CardTabPanel = (props) => {
|
|
2146
2169
|
const { children, columns = 3 } = props;
|
|
2147
|
-
return /* @__PURE__ */ (0,
|
|
2170
|
+
return /* @__PURE__ */ (0, import_jsx_runtime305.jsx)(
|
|
2148
2171
|
"div",
|
|
2149
2172
|
{
|
|
2150
2173
|
className: "card-tab-panel",
|
|
@@ -2157,7 +2180,7 @@ CardTabPanel.displayName = "CardTab.Panel";
|
|
|
2157
2180
|
var CardTabPanel_default = CardTabPanel;
|
|
2158
2181
|
|
|
2159
2182
|
// src/components/CardTab/CardTab.tsx
|
|
2160
|
-
var
|
|
2183
|
+
var import_jsx_runtime306 = require("react/jsx-runtime");
|
|
2161
2184
|
var CardTabRoot = (props) => {
|
|
2162
2185
|
const {
|
|
2163
2186
|
tabs,
|
|
@@ -2181,10 +2204,10 @@ var CardTabRoot = (props) => {
|
|
|
2181
2204
|
const activePanel = panels.find(
|
|
2182
2205
|
(panel) => panel.props.value === activeValue
|
|
2183
2206
|
);
|
|
2184
|
-
return /* @__PURE__ */ (0,
|
|
2185
|
-
/* @__PURE__ */ (0,
|
|
2207
|
+
return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("div", { className: clsx_default("lib-xplat-card-tab", size), children: [
|
|
2208
|
+
/* @__PURE__ */ (0, import_jsx_runtime306.jsx)("div", { className: "card-tab-bar", children: tabs.map((tab) => {
|
|
2186
2209
|
const isActive = tab.value === activeValue;
|
|
2187
|
-
return /* @__PURE__ */ (0,
|
|
2210
|
+
return /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
|
|
2188
2211
|
"button",
|
|
2189
2212
|
{
|
|
2190
2213
|
className: clsx_default("card-tab-trigger", isActive && "active"),
|
|
@@ -2196,7 +2219,7 @@ var CardTabRoot = (props) => {
|
|
|
2196
2219
|
tab.value
|
|
2197
2220
|
);
|
|
2198
2221
|
}) }),
|
|
2199
|
-
/* @__PURE__ */ (0,
|
|
2222
|
+
/* @__PURE__ */ (0, import_jsx_runtime306.jsx)("div", { className: "card-tab-body", children: activePanel })
|
|
2200
2223
|
] });
|
|
2201
2224
|
};
|
|
2202
2225
|
CardTabRoot.displayName = "CardTab";
|
|
@@ -2207,7 +2230,7 @@ var CardTab_default = CardTab;
|
|
|
2207
2230
|
|
|
2208
2231
|
// src/components/Chart/Chart.tsx
|
|
2209
2232
|
var import_react6 = __toESM(require("react"), 1);
|
|
2210
|
-
var
|
|
2233
|
+
var import_jsx_runtime307 = require("react/jsx-runtime");
|
|
2211
2234
|
var CATEGORICAL_COUNT2 = 8;
|
|
2212
2235
|
var LINE_BAR_PALETTES = Array.from({ length: CATEGORICAL_COUNT2 }, (_, i) => {
|
|
2213
2236
|
const n = i + 1;
|
|
@@ -2369,12 +2392,12 @@ var useChartTooltip = (enabled) => {
|
|
|
2369
2392
|
}, []);
|
|
2370
2393
|
return { tooltip, show, hide, move, containerRef };
|
|
2371
2394
|
};
|
|
2372
|
-
var GridLines = import_react6.default.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ (0,
|
|
2395
|
+
var GridLines = import_react6.default.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(import_jsx_runtime307.Fragment, { children: [0, 0.25, 0.5, 0.75, 1].map((ratio) => {
|
|
2373
2396
|
const y = PADDING.top + (1 - ratio) * chartH;
|
|
2374
2397
|
const val = Math.round(maxVal * ratio);
|
|
2375
|
-
return /* @__PURE__ */ (0,
|
|
2376
|
-
/* @__PURE__ */ (0,
|
|
2377
|
-
/* @__PURE__ */ (0,
|
|
2398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("g", { children: [
|
|
2399
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("line", { x1: PADDING.left, y1: y, x2: width - PADDING.right, y2: y, className: "chart-grid" }),
|
|
2400
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("text", { x: PADDING.left - 8, y: y + 4, className: "chart-axis-label", textAnchor: "end", children: val })
|
|
2378
2401
|
] }, ratio);
|
|
2379
2402
|
}) }));
|
|
2380
2403
|
GridLines.displayName = "GridLines";
|
|
@@ -2386,10 +2409,10 @@ var getLabelStep = (count, chartW) => {
|
|
|
2386
2409
|
};
|
|
2387
2410
|
var AxisLabels = import_react6.default.memo(({ labels, count, chartW, height }) => {
|
|
2388
2411
|
const step = getLabelStep(count, chartW);
|
|
2389
|
-
return /* @__PURE__ */ (0,
|
|
2412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(import_jsx_runtime307.Fragment, { children: labels.map((label, i) => {
|
|
2390
2413
|
if (i % step !== 0) return null;
|
|
2391
2414
|
const x = PADDING.left + i / (count - 1 || 1) * chartW;
|
|
2392
|
-
return /* @__PURE__ */ (0,
|
|
2415
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
|
|
2393
2416
|
}) });
|
|
2394
2417
|
});
|
|
2395
2418
|
AxisLabels.displayName = "AxisLabels";
|
|
@@ -2427,9 +2450,9 @@ var LineChart = import_react6.default.memo(({ data, labels, width, height, anima
|
|
|
2427
2450
|
});
|
|
2428
2451
|
});
|
|
2429
2452
|
}, [animate, seriesPoints]);
|
|
2430
|
-
return /* @__PURE__ */ (0,
|
|
2431
|
-
/* @__PURE__ */ (0,
|
|
2432
|
-
/* @__PURE__ */ (0,
|
|
2453
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
|
|
2454
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(GridLines, { width, height, chartH, maxVal }),
|
|
2455
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(AxisLabels, { labels, count, chartW, height }),
|
|
2433
2456
|
entries.map(([key], di) => {
|
|
2434
2457
|
const palette = getPalette(LINE_BAR_PALETTES, di, key);
|
|
2435
2458
|
const color = palette[2];
|
|
@@ -2438,12 +2461,12 @@ var LineChart = import_react6.default.memo(({ data, labels, width, height, anima
|
|
|
2438
2461
|
const gradientId = `line-gradient-${di}`;
|
|
2439
2462
|
const polyPoints = points.map((p) => `${p.x},${p.y}`).join(" ");
|
|
2440
2463
|
const areaD = `M ${points[0].x},${points[0].y} ${points.map((p) => `L ${p.x},${p.y}`).join(" ")} L ${points[points.length - 1].x},${PADDING.top + chartH} L ${points[0].x},${PADDING.top + chartH} Z`;
|
|
2441
|
-
return /* @__PURE__ */ (0,
|
|
2442
|
-
/* @__PURE__ */ (0,
|
|
2443
|
-
/* @__PURE__ */ (0,
|
|
2444
|
-
/* @__PURE__ */ (0,
|
|
2464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("g", { children: [
|
|
2465
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
2466
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.2" }),
|
|
2467
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0" })
|
|
2445
2468
|
] }) }),
|
|
2446
|
-
/* @__PURE__ */ (0,
|
|
2469
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2447
2470
|
"path",
|
|
2448
2471
|
{
|
|
2449
2472
|
d: areaD,
|
|
@@ -2452,7 +2475,7 @@ var LineChart = import_react6.default.memo(({ data, labels, width, height, anima
|
|
|
2452
2475
|
style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
|
|
2453
2476
|
}
|
|
2454
2477
|
),
|
|
2455
|
-
/* @__PURE__ */ (0,
|
|
2478
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2456
2479
|
"polyline",
|
|
2457
2480
|
{
|
|
2458
2481
|
ref: (el) => {
|
|
@@ -2464,7 +2487,7 @@ var LineChart = import_react6.default.memo(({ data, labels, width, height, anima
|
|
|
2464
2487
|
strokeWidth: "2"
|
|
2465
2488
|
}
|
|
2466
2489
|
),
|
|
2467
|
-
showPoints && points.map((p, i) => /* @__PURE__ */ (0,
|
|
2490
|
+
showPoints && points.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2468
2491
|
"circle",
|
|
2469
2492
|
{
|
|
2470
2493
|
cx: p.x,
|
|
@@ -2517,9 +2540,9 @@ var CurveChart = import_react6.default.memo(({ data, labels, width, height, anim
|
|
|
2517
2540
|
});
|
|
2518
2541
|
});
|
|
2519
2542
|
}, [animate, seriesPoints]);
|
|
2520
|
-
return /* @__PURE__ */ (0,
|
|
2521
|
-
/* @__PURE__ */ (0,
|
|
2522
|
-
/* @__PURE__ */ (0,
|
|
2543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
|
|
2544
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(GridLines, { width, height, chartH, maxVal }),
|
|
2545
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(AxisLabels, { labels, count, chartW, height }),
|
|
2523
2546
|
entries.map(([key], di) => {
|
|
2524
2547
|
const palette = getPalette(LINE_BAR_PALETTES, di, key);
|
|
2525
2548
|
const color = palette[2];
|
|
@@ -2528,12 +2551,12 @@ var CurveChart = import_react6.default.memo(({ data, labels, width, height, anim
|
|
|
2528
2551
|
const gradientId = `curve-gradient-${di}`;
|
|
2529
2552
|
const linePath = toSmoothPath(points);
|
|
2530
2553
|
const areaPath = linePath + ` L ${points[points.length - 1].x} ${PADDING.top + chartH} L ${points[0].x} ${PADDING.top + chartH} Z`;
|
|
2531
|
-
return /* @__PURE__ */ (0,
|
|
2532
|
-
/* @__PURE__ */ (0,
|
|
2533
|
-
/* @__PURE__ */ (0,
|
|
2534
|
-
/* @__PURE__ */ (0,
|
|
2554
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("g", { children: [
|
|
2555
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
2556
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.4" }),
|
|
2557
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0.02" })
|
|
2535
2558
|
] }) }),
|
|
2536
|
-
/* @__PURE__ */ (0,
|
|
2559
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2537
2560
|
"path",
|
|
2538
2561
|
{
|
|
2539
2562
|
d: areaPath,
|
|
@@ -2542,7 +2565,7 @@ var CurveChart = import_react6.default.memo(({ data, labels, width, height, anim
|
|
|
2542
2565
|
style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
|
|
2543
2566
|
}
|
|
2544
2567
|
),
|
|
2545
|
-
/* @__PURE__ */ (0,
|
|
2568
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2546
2569
|
"path",
|
|
2547
2570
|
{
|
|
2548
2571
|
ref: (el) => {
|
|
@@ -2554,7 +2577,7 @@ var CurveChart = import_react6.default.memo(({ data, labels, width, height, anim
|
|
|
2554
2577
|
strokeWidth: "2"
|
|
2555
2578
|
}
|
|
2556
2579
|
),
|
|
2557
|
-
showPoints && points.map((p, i) => /* @__PURE__ */ (0,
|
|
2580
|
+
showPoints && points.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2558
2581
|
"circle",
|
|
2559
2582
|
{
|
|
2560
2583
|
cx: p.x,
|
|
@@ -2600,11 +2623,11 @@ var BarChart = import_react6.default.memo(({ data, labels, width, height, animat
|
|
|
2600
2623
|
[entries, maxVal, chartH, groupW, barW, barGap, groupCount]
|
|
2601
2624
|
);
|
|
2602
2625
|
const barLabelStep = getLabelStep(count, chartW);
|
|
2603
|
-
return /* @__PURE__ */ (0,
|
|
2604
|
-
/* @__PURE__ */ (0,
|
|
2626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
|
|
2627
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)(GridLines, { width, height, chartH, maxVal }),
|
|
2605
2628
|
labels.map((label, i) => {
|
|
2606
2629
|
if (i % barLabelStep !== 0) return null;
|
|
2607
|
-
return /* @__PURE__ */ (0,
|
|
2630
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("text", { x: PADDING.left + groupW * i + groupW / 2, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
|
|
2608
2631
|
}),
|
|
2609
2632
|
entries.map(([key], di) => {
|
|
2610
2633
|
const palette = getPalette(LINE_BAR_PALETTES, di, key);
|
|
@@ -2613,7 +2636,7 @@ var BarChart = import_react6.default.memo(({ data, labels, width, height, animat
|
|
|
2613
2636
|
const r2 = Math.min(4, b.w / 2);
|
|
2614
2637
|
const d = b.h <= r2 ? `M ${b.x} ${b.y + b.h} V ${b.y} H ${b.x + b.w} V ${b.y + b.h} Z` : `M ${b.x} ${b.y + b.h} V ${b.y + r2} Q ${b.x} ${b.y} ${b.x + r2} ${b.y} H ${b.x + b.w - r2} Q ${b.x + b.w} ${b.y} ${b.x + b.w} ${b.y + r2} V ${b.y + b.h} Z`;
|
|
2615
2638
|
const delay = 100 + i * 80;
|
|
2616
|
-
return /* @__PURE__ */ (0,
|
|
2639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2617
2640
|
"path",
|
|
2618
2641
|
{
|
|
2619
2642
|
d,
|
|
@@ -2693,8 +2716,8 @@ var PieDonutChart = import_react6.default.memo(
|
|
|
2693
2716
|
});
|
|
2694
2717
|
}, [values, total, cx, cy, r2, innerR, labels]);
|
|
2695
2718
|
const maskId = `pie-mask-${isDoughnut ? "d" : "p"}`;
|
|
2696
|
-
return /* @__PURE__ */ (0,
|
|
2697
|
-
animate && /* @__PURE__ */ (0,
|
|
2719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("svg", { viewBox: `0 0 ${size} ${size}`, className: "chart-svg chart-pie", children: [
|
|
2720
|
+
animate && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("mask", { id: maskId, children: /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2698
2721
|
"circle",
|
|
2699
2722
|
{
|
|
2700
2723
|
ref: maskRef,
|
|
@@ -2707,7 +2730,7 @@ var PieDonutChart = import_react6.default.memo(
|
|
|
2707
2730
|
transform: `rotate(-90 ${cx} ${cy})`
|
|
2708
2731
|
}
|
|
2709
2732
|
) }) }),
|
|
2710
|
-
/* @__PURE__ */ (0,
|
|
2733
|
+
/* @__PURE__ */ (0, import_jsx_runtime307.jsx)("g", { mask: animate ? `url(#${maskId})` : void 0, children: sliceData.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2711
2734
|
"path",
|
|
2712
2735
|
{
|
|
2713
2736
|
d: s.d,
|
|
@@ -2718,7 +2741,7 @@ var PieDonutChart = import_react6.default.memo(
|
|
|
2718
2741
|
onMouseLeave: onLeave
|
|
2719
2742
|
}
|
|
2720
2743
|
) }, i)) }),
|
|
2721
|
-
sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ (0,
|
|
2744
|
+
sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2722
2745
|
"text",
|
|
2723
2746
|
{
|
|
2724
2747
|
x: s.lx,
|
|
@@ -2749,7 +2772,7 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
|
|
|
2749
2772
|
else if (x + half > containerWidth - margin) nx = containerWidth - half - margin;
|
|
2750
2773
|
setAdjustedX(nx);
|
|
2751
2774
|
}, [x, containerWidth]);
|
|
2752
|
-
return /* @__PURE__ */ (0,
|
|
2775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
|
|
2753
2776
|
"div",
|
|
2754
2777
|
{
|
|
2755
2778
|
ref,
|
|
@@ -2768,13 +2791,13 @@ var Chart = import_react6.default.memo((props) => {
|
|
|
2768
2791
|
const dataKey = import_react6.default.useMemo(() => JSON.stringify(labels), [labels]);
|
|
2769
2792
|
const animate = useChartAnimation(containerRef, dataKey);
|
|
2770
2793
|
const ready = width > 0 && height > 0;
|
|
2771
|
-
return /* @__PURE__ */ (0,
|
|
2772
|
-
ready && type === "line" && /* @__PURE__ */ (0,
|
|
2773
|
-
ready && type === "curve" && /* @__PURE__ */ (0,
|
|
2774
|
-
ready && type === "bar" && /* @__PURE__ */ (0,
|
|
2775
|
-
ready && type === "pie" && /* @__PURE__ */ (0,
|
|
2776
|
-
ready && type === "doughnut" && /* @__PURE__ */ (0,
|
|
2777
|
-
tooltip.visible && /* @__PURE__ */ (0,
|
|
2794
|
+
return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("div", { className: "lib-xplat-chart", ref: containerRef, children: [
|
|
2795
|
+
ready && type === "line" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(LineChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
|
|
2796
|
+
ready && type === "curve" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(CurveChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
|
|
2797
|
+
ready && type === "bar" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(BarChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
|
|
2798
|
+
ready && type === "pie" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
|
|
2799
|
+
ready && type === "doughnut" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, isDoughnut: true, onHover: show, onMove: move, onLeave: hide }),
|
|
2800
|
+
tooltip.visible && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(TooltipBubble, { x: tooltip.x, y: tooltip.y, containerWidth: width, children: tooltip.content })
|
|
2778
2801
|
] });
|
|
2779
2802
|
});
|
|
2780
2803
|
Chart.displayName = "Chart";
|
|
@@ -2787,7 +2810,7 @@ var import_tokens_core = require("@x-plat/tokens-core");
|
|
|
2787
2810
|
var import_tokens_core2 = require("@x-plat/tokens-core");
|
|
2788
2811
|
|
|
2789
2812
|
// src/components/CheckBox/CheckBox.tsx
|
|
2790
|
-
var
|
|
2813
|
+
var import_jsx_runtime308 = require("react/jsx-runtime");
|
|
2791
2814
|
var CheckBox = (props) => {
|
|
2792
2815
|
const {
|
|
2793
2816
|
checked,
|
|
@@ -2805,8 +2828,8 @@ var CheckBox = (props) => {
|
|
|
2805
2828
|
const checkedClasses = `checked`;
|
|
2806
2829
|
const disabledClasses = "disabled";
|
|
2807
2830
|
const boxClasses = disabled ? disabledClasses : checked ? checkedClasses : uncheckedClasses;
|
|
2808
|
-
return /* @__PURE__ */ (0,
|
|
2809
|
-
/* @__PURE__ */ (0,
|
|
2831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime308.jsxs)("label", { className: clsx_default("lib-xplat-checkbox", size, type), children: [
|
|
2832
|
+
/* @__PURE__ */ (0, import_jsx_runtime308.jsx)(
|
|
2810
2833
|
"input",
|
|
2811
2834
|
{
|
|
2812
2835
|
type: "checkbox",
|
|
@@ -2816,22 +2839,22 @@ var CheckBox = (props) => {
|
|
|
2816
2839
|
...rest
|
|
2817
2840
|
}
|
|
2818
2841
|
),
|
|
2819
|
-
/* @__PURE__ */ (0,
|
|
2820
|
-
label && /* @__PURE__ */ (0,
|
|
2842
|
+
/* @__PURE__ */ (0, import_jsx_runtime308.jsx)("span", { className: clsx_default("checkbox", boxClasses), children: /* @__PURE__ */ (0, import_jsx_runtime308.jsx)("span", { className: clsx_default("check-icon", { visible: checked }), children: /* @__PURE__ */ (0, import_jsx_runtime308.jsx)(CheckIcon_default, {}) }) }),
|
|
2843
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime308.jsx)("span", { className: "label", children: label })
|
|
2821
2844
|
] });
|
|
2822
2845
|
};
|
|
2823
2846
|
CheckBox.displayName = "CheckBox";
|
|
2824
2847
|
var CheckBox_default = CheckBox;
|
|
2825
2848
|
|
|
2826
2849
|
// src/components/Chip/Chip.tsx
|
|
2827
|
-
var
|
|
2850
|
+
var import_jsx_runtime309 = require("react/jsx-runtime");
|
|
2828
2851
|
var Chip = (props) => {
|
|
2829
2852
|
const {
|
|
2830
2853
|
children,
|
|
2831
2854
|
type = "primary",
|
|
2832
2855
|
size = "md"
|
|
2833
2856
|
} = props;
|
|
2834
|
-
return /* @__PURE__ */ (0,
|
|
2857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime309.jsx)("div", { className: clsx_default("lib-xplat-chip", type, size), children });
|
|
2835
2858
|
};
|
|
2836
2859
|
Chip.displayName = "Chip";
|
|
2837
2860
|
var Chip_default = Chip;
|
|
@@ -2843,17 +2866,17 @@ var import_react13 = __toESM(require("react"), 1);
|
|
|
2843
2866
|
var import_react7 = __toESM(require("react"), 1);
|
|
2844
2867
|
|
|
2845
2868
|
// src/components/Input/InputValidations.tsx
|
|
2846
|
-
var
|
|
2869
|
+
var import_jsx_runtime310 = require("react/jsx-runtime");
|
|
2847
2870
|
var InputValidations = (props) => {
|
|
2848
2871
|
const { message, status = "default" } = props;
|
|
2849
|
-
return /* @__PURE__ */ (0,
|
|
2850
|
-
/* @__PURE__ */ (0,
|
|
2851
|
-
status === "default" && /* @__PURE__ */ (0,
|
|
2852
|
-
status === "success" && /* @__PURE__ */ (0,
|
|
2853
|
-
status === "warning" && /* @__PURE__ */ (0,
|
|
2854
|
-
status === "error" && /* @__PURE__ */ (0,
|
|
2872
|
+
return /* @__PURE__ */ (0, import_jsx_runtime310.jsxs)("div", { className: clsx_default("lib-xplat-input-validation", status), children: [
|
|
2873
|
+
/* @__PURE__ */ (0, import_jsx_runtime310.jsxs)("div", { className: "icon", children: [
|
|
2874
|
+
status === "default" && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(InfoIcon_default, {}),
|
|
2875
|
+
status === "success" && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(SuccessIcon_default, {}),
|
|
2876
|
+
status === "warning" && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(InfoIcon_default, {}),
|
|
2877
|
+
status === "error" && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(ErrorIcon_default, {})
|
|
2855
2878
|
] }),
|
|
2856
|
-
/* @__PURE__ */ (0,
|
|
2879
|
+
/* @__PURE__ */ (0, import_jsx_runtime310.jsx)("div", { className: "message", children: message })
|
|
2857
2880
|
] });
|
|
2858
2881
|
};
|
|
2859
2882
|
InputValidations.displayName = "InputValidations";
|
|
@@ -2894,7 +2917,7 @@ var handleTelBackspace = (prevValue, currValue) => {
|
|
|
2894
2917
|
};
|
|
2895
2918
|
|
|
2896
2919
|
// src/components/Input/Input.tsx
|
|
2897
|
-
var
|
|
2920
|
+
var import_jsx_runtime311 = require("react/jsx-runtime");
|
|
2898
2921
|
var import_react8 = require("react");
|
|
2899
2922
|
var formatValue = (type, value) => {
|
|
2900
2923
|
if (value === null || value === void 0) return "";
|
|
@@ -2969,13 +2992,13 @@ var Input = import_react7.default.forwardRef((props, ref) => {
|
|
|
2969
2992
|
onChange(event);
|
|
2970
2993
|
}
|
|
2971
2994
|
};
|
|
2972
|
-
return /* @__PURE__ */ (0,
|
|
2973
|
-
/* @__PURE__ */ (0,
|
|
2995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime311.jsxs)("div", { className: "lib-xplat-input-wrap", children: [
|
|
2996
|
+
/* @__PURE__ */ (0, import_jsx_runtime311.jsxs)(
|
|
2974
2997
|
"div",
|
|
2975
2998
|
{
|
|
2976
2999
|
className: clsx_default("lib-xplat-input", size, disabled ? "disabled" : void 0),
|
|
2977
3000
|
children: [
|
|
2978
|
-
/* @__PURE__ */ (0,
|
|
3001
|
+
/* @__PURE__ */ (0, import_jsx_runtime311.jsx)(
|
|
2979
3002
|
"input",
|
|
2980
3003
|
{
|
|
2981
3004
|
...inputProps,
|
|
@@ -2986,11 +3009,11 @@ var Input = import_react7.default.forwardRef((props, ref) => {
|
|
|
2986
3009
|
onChange: handleChange
|
|
2987
3010
|
}
|
|
2988
3011
|
),
|
|
2989
|
-
suffix && /* @__PURE__ */ (0,
|
|
3012
|
+
suffix && /* @__PURE__ */ (0, import_jsx_runtime311.jsx)("div", { className: "suffix", children: suffix })
|
|
2990
3013
|
]
|
|
2991
3014
|
}
|
|
2992
3015
|
),
|
|
2993
|
-
validations && /* @__PURE__ */ (0,
|
|
3016
|
+
validations && /* @__PURE__ */ (0, import_jsx_runtime311.jsx)("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ (0, import_react8.createElement)(
|
|
2994
3017
|
InputValidations_default,
|
|
2995
3018
|
{
|
|
2996
3019
|
...validation,
|
|
@@ -3004,7 +3027,7 @@ var Input_default = Input;
|
|
|
3004
3027
|
|
|
3005
3028
|
// src/components/Input/PasswordInput/PasswordInput.tsx
|
|
3006
3029
|
var import_react9 = __toESM(require("react"), 1);
|
|
3007
|
-
var
|
|
3030
|
+
var import_jsx_runtime312 = require("react/jsx-runtime");
|
|
3008
3031
|
var PasswordInput = import_react9.default.forwardRef(
|
|
3009
3032
|
(props, ref) => {
|
|
3010
3033
|
const { reg: _reg, ...inputProps } = props;
|
|
@@ -3012,11 +3035,11 @@ var PasswordInput = import_react9.default.forwardRef(
|
|
|
3012
3035
|
const handleChangeView = () => {
|
|
3013
3036
|
setIsView((prev) => !prev);
|
|
3014
3037
|
};
|
|
3015
|
-
return /* @__PURE__ */ (0,
|
|
3038
|
+
return /* @__PURE__ */ (0, import_jsx_runtime312.jsx)(
|
|
3016
3039
|
Input_default,
|
|
3017
3040
|
{
|
|
3018
3041
|
...inputProps,
|
|
3019
|
-
suffix: /* @__PURE__ */ (0,
|
|
3042
|
+
suffix: /* @__PURE__ */ (0, import_jsx_runtime312.jsx)("div", { className: "wrapper pointer", onClick: handleChangeView, children: isView ? /* @__PURE__ */ (0, import_jsx_runtime312.jsx)(OpenEyeIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime312.jsx)(CloseEyeIcon_default, {}) }),
|
|
3020
3043
|
type: isView ? "text" : "password",
|
|
3021
3044
|
ref
|
|
3022
3045
|
}
|
|
@@ -3033,9 +3056,9 @@ var import_react_dom2 = require("react-dom");
|
|
|
3033
3056
|
// src/tokens/hooks/Portal.tsx
|
|
3034
3057
|
var import_react10 = __toESM(require("react"), 1);
|
|
3035
3058
|
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
3036
|
-
var
|
|
3059
|
+
var import_jsx_runtime313 = require("react/jsx-runtime");
|
|
3037
3060
|
var PortalContainerContext = import_react10.default.createContext(null);
|
|
3038
|
-
var PortalProvider = ({ container, children }) => /* @__PURE__ */ (0,
|
|
3061
|
+
var PortalProvider = ({ container, children }) => /* @__PURE__ */ (0, import_jsx_runtime313.jsx)(PortalContainerContext.Provider, { value: container, children });
|
|
3039
3062
|
var Portal = ({ children }) => {
|
|
3040
3063
|
const contextContainer = import_react10.default.useContext(PortalContainerContext);
|
|
3041
3064
|
if (typeof document === "undefined") return null;
|
|
@@ -3046,7 +3069,7 @@ Portal.displayName = "Portal";
|
|
|
3046
3069
|
var Portal_default = Portal;
|
|
3047
3070
|
|
|
3048
3071
|
// src/components/Modal/Modal.tsx
|
|
3049
|
-
var
|
|
3072
|
+
var import_jsx_runtime314 = require("react/jsx-runtime");
|
|
3050
3073
|
var ANIMATION_DURATION_MS = 200;
|
|
3051
3074
|
var Modal = (props) => {
|
|
3052
3075
|
const { isOpen, onClose, children } = props;
|
|
@@ -3067,12 +3090,12 @@ var Modal = (props) => {
|
|
|
3067
3090
|
if (!mounted) return null;
|
|
3068
3091
|
const stateClass = visible ? "enter" : "exit";
|
|
3069
3092
|
return (0, import_react_dom2.createPortal)(
|
|
3070
|
-
/* @__PURE__ */ (0,
|
|
3093
|
+
/* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
|
|
3071
3094
|
"div",
|
|
3072
3095
|
{
|
|
3073
3096
|
className: clsx_default("lib-xplat-modal", "dim", stateClass),
|
|
3074
3097
|
onClick: onClose,
|
|
3075
|
-
children: /* @__PURE__ */ (0,
|
|
3098
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
|
|
3076
3099
|
"div",
|
|
3077
3100
|
{
|
|
3078
3101
|
ref: boxRef,
|
|
@@ -3080,7 +3103,7 @@ var Modal = (props) => {
|
|
|
3080
3103
|
role: "dialog",
|
|
3081
3104
|
"aria-modal": "true",
|
|
3082
3105
|
onClick: (e) => e.stopPropagation(),
|
|
3083
|
-
children: /* @__PURE__ */ (0,
|
|
3106
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(PortalProvider, { container: boxRef.current, children })
|
|
3084
3107
|
}
|
|
3085
3108
|
)
|
|
3086
3109
|
}
|
|
@@ -3093,7 +3116,7 @@ var Modal_default = Modal;
|
|
|
3093
3116
|
|
|
3094
3117
|
// src/components/DatePicker/SingleDatePicker/index.tsx
|
|
3095
3118
|
var import_react12 = __toESM(require("react"), 1);
|
|
3096
|
-
var
|
|
3119
|
+
var import_jsx_runtime315 = require("react/jsx-runtime");
|
|
3097
3120
|
var DayCell2 = import_react12.default.memo(
|
|
3098
3121
|
({
|
|
3099
3122
|
day,
|
|
@@ -3104,7 +3127,7 @@ var DayCell2 = import_react12.default.memo(
|
|
|
3104
3127
|
isEnd,
|
|
3105
3128
|
inRange,
|
|
3106
3129
|
onSelect
|
|
3107
|
-
}) => /* @__PURE__ */ (0,
|
|
3130
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
|
|
3108
3131
|
"button",
|
|
3109
3132
|
{
|
|
3110
3133
|
type: "button",
|
|
@@ -3202,20 +3225,20 @@ var SingleDatePicker = (props) => {
|
|
|
3202
3225
|
const monthLabels = MONTH_LABELS[locale];
|
|
3203
3226
|
const titleText = pickerMode === "days" ? locale === "ko" ? `${year}\uB144 ${monthLabels[month]}` : `${monthLabels[month]} ${year}` : pickerMode === "months" ? `${year}` : `${yearRangeStart} - ${yearRangeStart + 11}`;
|
|
3204
3227
|
const hasRange = rangeStart != null && rangeEnd != null;
|
|
3205
|
-
return /* @__PURE__ */ (0,
|
|
3228
|
+
return /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)(
|
|
3206
3229
|
"div",
|
|
3207
3230
|
{
|
|
3208
3231
|
className: clsx_default("lib-xplat-datepicker", "single"),
|
|
3209
3232
|
children: [
|
|
3210
|
-
/* @__PURE__ */ (0,
|
|
3211
|
-
/* @__PURE__ */ (0,
|
|
3212
|
-
/* @__PURE__ */ (0,
|
|
3213
|
-
/* @__PURE__ */ (0,
|
|
3233
|
+
/* @__PURE__ */ (0, import_jsx_runtime315.jsxs)("div", { className: "datepicker-header", children: [
|
|
3234
|
+
/* @__PURE__ */ (0, import_jsx_runtime315.jsx)("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(ChevronLeftIcon_default, {}) }),
|
|
3235
|
+
/* @__PURE__ */ (0, import_jsx_runtime315.jsx)("button", { className: "datepicker-title", onClick: handleTitleClick, type: "button", children: titleText }),
|
|
3236
|
+
/* @__PURE__ */ (0, import_jsx_runtime315.jsx)("button", { className: "datepicker-nav", onClick: handleNext, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(ChevronRightIcon_default, {}) })
|
|
3214
3237
|
] }),
|
|
3215
|
-
/* @__PURE__ */ (0,
|
|
3216
|
-
pickerMode === "years" && /* @__PURE__ */ (0,
|
|
3238
|
+
/* @__PURE__ */ (0, import_jsx_runtime315.jsxs)("div", { className: "datepicker-body", children: [
|
|
3239
|
+
pickerMode === "years" && /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
|
|
3217
3240
|
const y = yearRangeStart + i;
|
|
3218
|
-
return /* @__PURE__ */ (0,
|
|
3241
|
+
return /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
|
|
3219
3242
|
"button",
|
|
3220
3243
|
{
|
|
3221
3244
|
type: "button",
|
|
@@ -3226,7 +3249,7 @@ var SingleDatePicker = (props) => {
|
|
|
3226
3249
|
y
|
|
3227
3250
|
);
|
|
3228
3251
|
}) }),
|
|
3229
|
-
pickerMode === "months" && /* @__PURE__ */ (0,
|
|
3252
|
+
pickerMode === "months" && /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
|
|
3230
3253
|
"button",
|
|
3231
3254
|
{
|
|
3232
3255
|
type: "button",
|
|
@@ -3236,8 +3259,8 @@ var SingleDatePicker = (props) => {
|
|
|
3236
3259
|
},
|
|
3237
3260
|
i
|
|
3238
3261
|
)) }),
|
|
3239
|
-
pickerMode === "days" && /* @__PURE__ */ (0,
|
|
3240
|
-
/* @__PURE__ */ (0,
|
|
3262
|
+
pickerMode === "days" && /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)(import_jsx_runtime315.Fragment, { children: [
|
|
3263
|
+
/* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
|
|
3241
3264
|
"div",
|
|
3242
3265
|
{
|
|
3243
3266
|
className: clsx_default(
|
|
@@ -3249,7 +3272,7 @@ var SingleDatePicker = (props) => {
|
|
|
3249
3272
|
},
|
|
3250
3273
|
label
|
|
3251
3274
|
)) }),
|
|
3252
|
-
/* @__PURE__ */ (0,
|
|
3275
|
+
/* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "datepicker-grid", children: days.map((day, idx) => {
|
|
3253
3276
|
const t = day.date.getTime();
|
|
3254
3277
|
const disabled = t < minTime || t > maxTime;
|
|
3255
3278
|
const selected = value ? isSameDay(day.date, value) : false;
|
|
@@ -3259,7 +3282,7 @@ var SingleDatePicker = (props) => {
|
|
|
3259
3282
|
const isStart = hasRange ? isSameDay(day.date, rangeStart) : false;
|
|
3260
3283
|
const isEnd = hasRange ? isSameDay(day.date, rangeEnd) : false;
|
|
3261
3284
|
const inRangeVal = hasRange ? isInRange(day.date, rangeStart, rangeEnd) : false;
|
|
3262
|
-
return /* @__PURE__ */ (0,
|
|
3285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
|
|
3263
3286
|
DayCell2,
|
|
3264
3287
|
{
|
|
3265
3288
|
day,
|
|
@@ -3284,7 +3307,7 @@ SingleDatePicker.displayName = "SingleDatePicker";
|
|
|
3284
3307
|
var SingleDatePicker_default = SingleDatePicker;
|
|
3285
3308
|
|
|
3286
3309
|
// src/components/DatePicker/InputDatePicker/index.tsx
|
|
3287
|
-
var
|
|
3310
|
+
var import_jsx_runtime316 = require("react/jsx-runtime");
|
|
3288
3311
|
var formatDate = (date) => {
|
|
3289
3312
|
if (!date || !(date instanceof Date) || isNaN(date.getTime())) return "";
|
|
3290
3313
|
const y = date.getFullYear();
|
|
@@ -3311,19 +3334,19 @@ var InputDatePicker = (props) => {
|
|
|
3311
3334
|
const handleClose = () => {
|
|
3312
3335
|
setIsOpen(false);
|
|
3313
3336
|
};
|
|
3314
|
-
return /* @__PURE__ */ (0,
|
|
3315
|
-
/* @__PURE__ */ (0,
|
|
3337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime316.jsxs)("div", { className: clsx_default("lib-xplat-datepicker input-datepicker", disabled && "disabled"), children: [
|
|
3338
|
+
/* @__PURE__ */ (0, import_jsx_runtime316.jsx)("div", { className: "input-datepicker-trigger", onClick: handleOpen, children: /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(
|
|
3316
3339
|
Input_default,
|
|
3317
3340
|
{
|
|
3318
3341
|
value: formatDate(value),
|
|
3319
3342
|
placeholder,
|
|
3320
|
-
suffix: /* @__PURE__ */ (0,
|
|
3343
|
+
suffix: /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(CalenderIcon_default, {}),
|
|
3321
3344
|
disabled,
|
|
3322
3345
|
readOnly: true
|
|
3323
3346
|
}
|
|
3324
3347
|
) }),
|
|
3325
|
-
/* @__PURE__ */ (0,
|
|
3326
|
-
/* @__PURE__ */ (0,
|
|
3348
|
+
/* @__PURE__ */ (0, import_jsx_runtime316.jsx)(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime316.jsxs)("div", { className: "lib-xplat-popup-datepicker-card", children: [
|
|
3349
|
+
/* @__PURE__ */ (0, import_jsx_runtime316.jsx)("div", { className: "popup-datepicker-content", children: /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(
|
|
3327
3350
|
SingleDatePicker_default,
|
|
3328
3351
|
{
|
|
3329
3352
|
value: tempDate,
|
|
@@ -3333,9 +3356,9 @@ var InputDatePicker = (props) => {
|
|
|
3333
3356
|
locale
|
|
3334
3357
|
}
|
|
3335
3358
|
) }),
|
|
3336
|
-
/* @__PURE__ */ (0,
|
|
3337
|
-
/* @__PURE__ */ (0,
|
|
3338
|
-
/* @__PURE__ */ (0,
|
|
3359
|
+
/* @__PURE__ */ (0, import_jsx_runtime316.jsxs)("div", { className: "popup-datepicker-footer", children: [
|
|
3360
|
+
/* @__PURE__ */ (0, import_jsx_runtime316.jsx)(Button_default, { type: "secondary", onClick: handleClose, children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel" }),
|
|
3361
|
+
/* @__PURE__ */ (0, import_jsx_runtime316.jsx)(Button_default, { type: "primary", onClick: handleApply, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
|
|
3339
3362
|
] })
|
|
3340
3363
|
] }) })
|
|
3341
3364
|
] });
|
|
@@ -3354,10 +3377,10 @@ var import_react15 = __toESM(require("react"), 1);
|
|
|
3354
3377
|
|
|
3355
3378
|
// src/components/Tab/TabItem.tsx
|
|
3356
3379
|
var import_react14 = __toESM(require("react"), 1);
|
|
3357
|
-
var
|
|
3380
|
+
var import_jsx_runtime317 = require("react/jsx-runtime");
|
|
3358
3381
|
var TabItem = import_react14.default.forwardRef((props, ref) => {
|
|
3359
3382
|
const { isActive, title, onClick } = props;
|
|
3360
|
-
return /* @__PURE__ */ (0,
|
|
3383
|
+
return /* @__PURE__ */ (0, import_jsx_runtime317.jsx)(
|
|
3361
3384
|
"div",
|
|
3362
3385
|
{
|
|
3363
3386
|
ref,
|
|
@@ -3371,7 +3394,7 @@ TabItem.displayName = "TabItem";
|
|
|
3371
3394
|
var TabItem_default = TabItem;
|
|
3372
3395
|
|
|
3373
3396
|
// src/components/Tab/Tab.tsx
|
|
3374
|
-
var
|
|
3397
|
+
var import_jsx_runtime318 = require("react/jsx-runtime");
|
|
3375
3398
|
var Tab = (props) => {
|
|
3376
3399
|
const { activeIndex, onChange, tabs, type, size = "md" } = props;
|
|
3377
3400
|
const [underlineStyle, setUnderlineStyle] = import_react15.default.useState({
|
|
@@ -3388,8 +3411,8 @@ var Tab = (props) => {
|
|
|
3388
3411
|
setUnderlineStyle({ left: el.offsetLeft, width: el.offsetWidth });
|
|
3389
3412
|
}
|
|
3390
3413
|
}, [activeIndex, tabs.length]);
|
|
3391
|
-
return /* @__PURE__ */ (0,
|
|
3392
|
-
tabs.map((tab, idx) => /* @__PURE__ */ (0,
|
|
3414
|
+
return /* @__PURE__ */ (0, import_jsx_runtime318.jsxs)("div", { className: clsx_default("lib-xplat-tab", `type-${type}`, size), children: [
|
|
3415
|
+
tabs.map((tab, idx) => /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
|
|
3393
3416
|
TabItem_default,
|
|
3394
3417
|
{
|
|
3395
3418
|
onClick: () => handleChangeActiveTab(tab, idx),
|
|
@@ -3401,7 +3424,7 @@ var Tab = (props) => {
|
|
|
3401
3424
|
},
|
|
3402
3425
|
`${tab.value}_${idx}`
|
|
3403
3426
|
)),
|
|
3404
|
-
type === "toggle" && /* @__PURE__ */ (0,
|
|
3427
|
+
type === "toggle" && /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
|
|
3405
3428
|
"div",
|
|
3406
3429
|
{
|
|
3407
3430
|
className: "tab-toggle-underline",
|
|
@@ -3417,7 +3440,7 @@ Tab.displayName = "Tab";
|
|
|
3417
3440
|
var Tab_default = Tab;
|
|
3418
3441
|
|
|
3419
3442
|
// src/components/DatePicker/RangePicker/index.tsx
|
|
3420
|
-
var
|
|
3443
|
+
var import_jsx_runtime319 = require("react/jsx-runtime");
|
|
3421
3444
|
var RangePicker = (props) => {
|
|
3422
3445
|
const {
|
|
3423
3446
|
startDate,
|
|
@@ -3440,8 +3463,8 @@ var RangePicker = (props) => {
|
|
|
3440
3463
|
};
|
|
3441
3464
|
const startMaxDate = maxDate && endDate < maxDate ? endDate : endDate;
|
|
3442
3465
|
const endMinDate = minDate && startDate > minDate ? startDate : startDate;
|
|
3443
|
-
return /* @__PURE__ */ (0,
|
|
3444
|
-
/* @__PURE__ */ (0,
|
|
3466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime319.jsxs)("div", { className: clsx_default("lib-xplat-datepicker", "range"), children: [
|
|
3467
|
+
/* @__PURE__ */ (0, import_jsx_runtime319.jsx)("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
|
|
3445
3468
|
Tab_default,
|
|
3446
3469
|
{
|
|
3447
3470
|
activeIndex: activeTab === "start" ? 0 : 1,
|
|
@@ -3454,8 +3477,8 @@ var RangePicker = (props) => {
|
|
|
3454
3477
|
size: "sm"
|
|
3455
3478
|
}
|
|
3456
3479
|
) }),
|
|
3457
|
-
/* @__PURE__ */ (0,
|
|
3458
|
-
/* @__PURE__ */ (0,
|
|
3480
|
+
/* @__PURE__ */ (0, import_jsx_runtime319.jsxs)("div", { className: "datepicker-range-panels", children: [
|
|
3481
|
+
/* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
|
|
3459
3482
|
SingleDatePicker_default,
|
|
3460
3483
|
{
|
|
3461
3484
|
value: startDate,
|
|
@@ -3467,7 +3490,7 @@ var RangePicker = (props) => {
|
|
|
3467
3490
|
locale
|
|
3468
3491
|
}
|
|
3469
3492
|
),
|
|
3470
|
-
/* @__PURE__ */ (0,
|
|
3493
|
+
/* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
|
|
3471
3494
|
SingleDatePicker_default,
|
|
3472
3495
|
{
|
|
3473
3496
|
value: endDate,
|
|
@@ -3480,7 +3503,7 @@ var RangePicker = (props) => {
|
|
|
3480
3503
|
}
|
|
3481
3504
|
)
|
|
3482
3505
|
] }),
|
|
3483
|
-
/* @__PURE__ */ (0,
|
|
3506
|
+
/* @__PURE__ */ (0, import_jsx_runtime319.jsx)("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
|
|
3484
3507
|
SingleDatePicker_default,
|
|
3485
3508
|
{
|
|
3486
3509
|
value: startDate,
|
|
@@ -3491,7 +3514,7 @@ var RangePicker = (props) => {
|
|
|
3491
3514
|
rangeEnd: endDate,
|
|
3492
3515
|
locale
|
|
3493
3516
|
}
|
|
3494
|
-
) : /* @__PURE__ */ (0,
|
|
3517
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
|
|
3495
3518
|
SingleDatePicker_default,
|
|
3496
3519
|
{
|
|
3497
3520
|
value: endDate,
|
|
@@ -3509,7 +3532,7 @@ RangePicker.displayName = "RangePicker";
|
|
|
3509
3532
|
var RangePicker_default = RangePicker;
|
|
3510
3533
|
|
|
3511
3534
|
// src/components/DatePicker/PopupPicker/index.tsx
|
|
3512
|
-
var
|
|
3535
|
+
var import_jsx_runtime320 = require("react/jsx-runtime");
|
|
3513
3536
|
var PopupPicker = (props) => {
|
|
3514
3537
|
const { component, type, locale } = props;
|
|
3515
3538
|
const [isOpen, setIsOpen] = import_react17.default.useState(false);
|
|
@@ -3520,11 +3543,11 @@ var PopupPicker = (props) => {
|
|
|
3520
3543
|
props.onChange?.(date);
|
|
3521
3544
|
handleClose();
|
|
3522
3545
|
};
|
|
3523
|
-
return /* @__PURE__ */ (0,
|
|
3546
|
+
return /* @__PURE__ */ (0, import_jsx_runtime320.jsxs)("div", { className: "lib-xplat-popup-datepicker", children: [
|
|
3524
3547
|
import_react17.default.cloneElement(component, { onClick: handleClick }),
|
|
3525
|
-
/* @__PURE__ */ (0,
|
|
3526
|
-
/* @__PURE__ */ (0,
|
|
3527
|
-
type === "single" && /* @__PURE__ */ (0,
|
|
3548
|
+
/* @__PURE__ */ (0, import_jsx_runtime320.jsx)(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime320.jsxs)("div", { className: clsx_default("lib-xplat-popup-datepicker-card", type === "range" && "range-mode"), children: [
|
|
3549
|
+
/* @__PURE__ */ (0, import_jsx_runtime320.jsxs)("div", { className: "popup-datepicker-content", children: [
|
|
3550
|
+
type === "single" && /* @__PURE__ */ (0, import_jsx_runtime320.jsx)(
|
|
3528
3551
|
SingleDatePicker_default,
|
|
3529
3552
|
{
|
|
3530
3553
|
value: props.value,
|
|
@@ -3534,7 +3557,7 @@ var PopupPicker = (props) => {
|
|
|
3534
3557
|
locale
|
|
3535
3558
|
}
|
|
3536
3559
|
),
|
|
3537
|
-
type === "range" && /* @__PURE__ */ (0,
|
|
3560
|
+
type === "range" && /* @__PURE__ */ (0, import_jsx_runtime320.jsx)(
|
|
3538
3561
|
RangePicker_default,
|
|
3539
3562
|
{
|
|
3540
3563
|
startDate: props.startDate,
|
|
@@ -3546,8 +3569,8 @@ var PopupPicker = (props) => {
|
|
|
3546
3569
|
}
|
|
3547
3570
|
)
|
|
3548
3571
|
] }),
|
|
3549
|
-
/* @__PURE__ */ (0,
|
|
3550
|
-
/* @__PURE__ */ (0,
|
|
3572
|
+
/* @__PURE__ */ (0, import_jsx_runtime320.jsxs)("div", { className: "popup-datepicker-footer", children: [
|
|
3573
|
+
/* @__PURE__ */ (0, import_jsx_runtime320.jsx)(
|
|
3551
3574
|
Button_default,
|
|
3552
3575
|
{
|
|
3553
3576
|
type: "secondary",
|
|
@@ -3555,7 +3578,7 @@ var PopupPicker = (props) => {
|
|
|
3555
3578
|
children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel"
|
|
3556
3579
|
}
|
|
3557
3580
|
),
|
|
3558
|
-
/* @__PURE__ */ (0,
|
|
3581
|
+
/* @__PURE__ */ (0, import_jsx_runtime320.jsx)(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
|
|
3559
3582
|
] })
|
|
3560
3583
|
] }) })
|
|
3561
3584
|
] });
|
|
@@ -3564,10 +3587,10 @@ PopupPicker.displayName = "PopupPicker";
|
|
|
3564
3587
|
var PopupPicker_default = PopupPicker;
|
|
3565
3588
|
|
|
3566
3589
|
// src/components/Divider/Divider.tsx
|
|
3567
|
-
var
|
|
3590
|
+
var import_jsx_runtime321 = require("react/jsx-runtime");
|
|
3568
3591
|
var Divider = (props) => {
|
|
3569
3592
|
const { orientation = "horizontal" } = props;
|
|
3570
|
-
return /* @__PURE__ */ (0,
|
|
3593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime321.jsx)(
|
|
3571
3594
|
"div",
|
|
3572
3595
|
{
|
|
3573
3596
|
className: clsx_default("lib-xplat-divider", orientation),
|
|
@@ -3582,7 +3605,7 @@ var Divider_default = Divider;
|
|
|
3582
3605
|
// src/components/Drawer/Drawer.tsx
|
|
3583
3606
|
var import_react18 = __toESM(require("react"), 1);
|
|
3584
3607
|
var import_react_dom3 = require("react-dom");
|
|
3585
|
-
var
|
|
3608
|
+
var import_jsx_runtime322 = require("react/jsx-runtime");
|
|
3586
3609
|
var ANIMATION_DURATION_MS2 = 250;
|
|
3587
3610
|
var Drawer = (props) => {
|
|
3588
3611
|
const { isOpen, onClose, placement = "right", size = "md", title, children } = props;
|
|
@@ -3602,12 +3625,12 @@ var Drawer = (props) => {
|
|
|
3602
3625
|
if (!mounted) return null;
|
|
3603
3626
|
const stateClass = visible ? "enter" : "exit";
|
|
3604
3627
|
return (0, import_react_dom3.createPortal)(
|
|
3605
|
-
/* @__PURE__ */ (0,
|
|
3628
|
+
/* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
|
|
3606
3629
|
"div",
|
|
3607
3630
|
{
|
|
3608
3631
|
className: clsx_default("lib-xplat-drawer-overlay", stateClass),
|
|
3609
3632
|
onClick: onClose,
|
|
3610
|
-
children: /* @__PURE__ */ (0,
|
|
3633
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime322.jsxs)(
|
|
3611
3634
|
"div",
|
|
3612
3635
|
{
|
|
3613
3636
|
className: clsx_default("lib-xplat-drawer", placement, size, stateClass),
|
|
@@ -3615,11 +3638,11 @@ var Drawer = (props) => {
|
|
|
3615
3638
|
"aria-modal": "true",
|
|
3616
3639
|
onClick: (e) => e.stopPropagation(),
|
|
3617
3640
|
children: [
|
|
3618
|
-
title && /* @__PURE__ */ (0,
|
|
3619
|
-
/* @__PURE__ */ (0,
|
|
3620
|
-
/* @__PURE__ */ (0,
|
|
3641
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime322.jsxs)("div", { className: "drawer-header", children: [
|
|
3642
|
+
/* @__PURE__ */ (0, import_jsx_runtime322.jsx)("span", { className: "drawer-title", children: title }),
|
|
3643
|
+
/* @__PURE__ */ (0, import_jsx_runtime322.jsx)("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
|
|
3621
3644
|
] }),
|
|
3622
|
-
/* @__PURE__ */ (0,
|
|
3645
|
+
/* @__PURE__ */ (0, import_jsx_runtime322.jsx)("div", { className: "drawer-body", children })
|
|
3623
3646
|
]
|
|
3624
3647
|
}
|
|
3625
3648
|
)
|
|
@@ -3721,7 +3744,7 @@ var useClickOutside = (refs, handler, enabled = true) => {
|
|
|
3721
3744
|
var useClickOutside_default = useClickOutside;
|
|
3722
3745
|
|
|
3723
3746
|
// src/components/Dropdown/Dropdown.tsx
|
|
3724
|
-
var
|
|
3747
|
+
var import_jsx_runtime323 = require("react/jsx-runtime");
|
|
3725
3748
|
var Dropdown = (props) => {
|
|
3726
3749
|
const { items, children } = props;
|
|
3727
3750
|
const [isOpen, setIsOpen] = import_react21.default.useState(false);
|
|
@@ -3746,8 +3769,8 @@ var Dropdown = (props) => {
|
|
|
3746
3769
|
item.onClick?.();
|
|
3747
3770
|
setIsOpen(false);
|
|
3748
3771
|
};
|
|
3749
|
-
return /* @__PURE__ */ (0,
|
|
3750
|
-
/* @__PURE__ */ (0,
|
|
3772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime323.jsxs)("div", { className: "lib-xplat-dropdown", children: [
|
|
3773
|
+
/* @__PURE__ */ (0, import_jsx_runtime323.jsx)(
|
|
3751
3774
|
"div",
|
|
3752
3775
|
{
|
|
3753
3776
|
ref: triggerRef,
|
|
@@ -3756,14 +3779,14 @@ var Dropdown = (props) => {
|
|
|
3756
3779
|
children
|
|
3757
3780
|
}
|
|
3758
3781
|
),
|
|
3759
|
-
mounted && /* @__PURE__ */ (0,
|
|
3782
|
+
mounted && /* @__PURE__ */ (0, import_jsx_runtime323.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime323.jsx)(
|
|
3760
3783
|
"div",
|
|
3761
3784
|
{
|
|
3762
3785
|
ref: menuRef,
|
|
3763
3786
|
className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }),
|
|
3764
3787
|
style: { top: position.top, left: position.left },
|
|
3765
3788
|
role: "menu",
|
|
3766
|
-
children: items.map((item) => /* @__PURE__ */ (0,
|
|
3789
|
+
children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime323.jsx)(
|
|
3767
3790
|
"button",
|
|
3768
3791
|
{
|
|
3769
3792
|
className: clsx_default("dropdown-item", {
|
|
@@ -3785,15 +3808,15 @@ Dropdown.displayName = "Dropdown";
|
|
|
3785
3808
|
var Dropdown_default = Dropdown;
|
|
3786
3809
|
|
|
3787
3810
|
// src/components/EmptyState/EmptyState.tsx
|
|
3788
|
-
var
|
|
3811
|
+
var import_jsx_runtime324 = require("react/jsx-runtime");
|
|
3789
3812
|
var EmptyState = (props) => {
|
|
3790
3813
|
const { icon, title = "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4", description, action } = props;
|
|
3791
|
-
return /* @__PURE__ */ (0,
|
|
3792
|
-
icon && /* @__PURE__ */ (0,
|
|
3793
|
-
!icon && /* @__PURE__ */ (0,
|
|
3794
|
-
/* @__PURE__ */ (0,
|
|
3795
|
-
description && /* @__PURE__ */ (0,
|
|
3796
|
-
action && /* @__PURE__ */ (0,
|
|
3814
|
+
return /* @__PURE__ */ (0, import_jsx_runtime324.jsxs)("div", { className: "lib-xplat-empty-state", children: [
|
|
3815
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("div", { className: "empty-icon", children: icon }),
|
|
3816
|
+
!icon && /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("div", { className: "empty-icon", children: /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("path", { d: "M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z" }) }) }),
|
|
3817
|
+
/* @__PURE__ */ (0, import_jsx_runtime324.jsx)("p", { className: "empty-title", children: title }),
|
|
3818
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("p", { className: "empty-description", children: description }),
|
|
3819
|
+
action && /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("div", { className: "empty-action", children: action })
|
|
3797
3820
|
] });
|
|
3798
3821
|
};
|
|
3799
3822
|
EmptyState.displayName = "EmptyState";
|
|
@@ -3801,7 +3824,7 @@ var EmptyState_default = EmptyState;
|
|
|
3801
3824
|
|
|
3802
3825
|
// src/components/FileUpload/FileUpload.tsx
|
|
3803
3826
|
var import_react22 = __toESM(require("react"), 1);
|
|
3804
|
-
var
|
|
3827
|
+
var import_jsx_runtime325 = require("react/jsx-runtime");
|
|
3805
3828
|
var FileUpload = (props) => {
|
|
3806
3829
|
const {
|
|
3807
3830
|
accept,
|
|
@@ -3842,7 +3865,7 @@ var FileUpload = (props) => {
|
|
|
3842
3865
|
handleFiles(e.target.files);
|
|
3843
3866
|
}
|
|
3844
3867
|
};
|
|
3845
|
-
return /* @__PURE__ */ (0,
|
|
3868
|
+
return /* @__PURE__ */ (0, import_jsx_runtime325.jsxs)(
|
|
3846
3869
|
"div",
|
|
3847
3870
|
{
|
|
3848
3871
|
className: clsx_default("lib-xplat-file-upload", { "drag-over": isDragOver }),
|
|
@@ -3851,7 +3874,7 @@ var FileUpload = (props) => {
|
|
|
3851
3874
|
onDragLeave: handleDragLeave,
|
|
3852
3875
|
onClick: () => inputRef.current?.click(),
|
|
3853
3876
|
children: [
|
|
3854
|
-
/* @__PURE__ */ (0,
|
|
3877
|
+
/* @__PURE__ */ (0, import_jsx_runtime325.jsx)(
|
|
3855
3878
|
"input",
|
|
3856
3879
|
{
|
|
3857
3880
|
ref: inputRef,
|
|
@@ -3861,9 +3884,9 @@ var FileUpload = (props) => {
|
|
|
3861
3884
|
onChange: handleChange
|
|
3862
3885
|
}
|
|
3863
3886
|
),
|
|
3864
|
-
/* @__PURE__ */ (0,
|
|
3865
|
-
/* @__PURE__ */ (0,
|
|
3866
|
-
description && /* @__PURE__ */ (0,
|
|
3887
|
+
/* @__PURE__ */ (0, import_jsx_runtime325.jsx)("div", { className: "upload-icon", children: /* @__PURE__ */ (0, import_jsx_runtime325.jsx)(UploadIcon_default, {}) }),
|
|
3888
|
+
/* @__PURE__ */ (0, import_jsx_runtime325.jsx)("p", { className: "upload-label", children: label }),
|
|
3889
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime325.jsx)("p", { className: "upload-description", children: description })
|
|
3867
3890
|
]
|
|
3868
3891
|
}
|
|
3869
3892
|
);
|
|
@@ -3957,7 +3980,7 @@ var htmlToReactProgressive = (root, typedLen, rangeMap) => {
|
|
|
3957
3980
|
};
|
|
3958
3981
|
|
|
3959
3982
|
// src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
|
|
3960
|
-
var
|
|
3983
|
+
var import_jsx_runtime326 = require("react/jsx-runtime");
|
|
3961
3984
|
var HtmlTypeWriter = ({
|
|
3962
3985
|
html,
|
|
3963
3986
|
duration = 20,
|
|
@@ -4000,14 +4023,14 @@ var HtmlTypeWriter = ({
|
|
|
4000
4023
|
() => doc ? htmlToReactProgressive(doc.body, typedLen, rangeMap) : null,
|
|
4001
4024
|
[doc, typedLen, rangeMap]
|
|
4002
4025
|
);
|
|
4003
|
-
return /* @__PURE__ */ (0,
|
|
4026
|
+
return /* @__PURE__ */ (0, import_jsx_runtime326.jsx)("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
|
|
4004
4027
|
};
|
|
4005
4028
|
HtmlTypeWriter.displayName = "HtmlTypeWriter";
|
|
4006
4029
|
var HtmlTypeWriter_default = HtmlTypeWriter;
|
|
4007
4030
|
|
|
4008
4031
|
// src/components/ImageSelector/ImageSelector.tsx
|
|
4009
4032
|
var import_react25 = __toESM(require("react"), 1);
|
|
4010
|
-
var
|
|
4033
|
+
var import_jsx_runtime327 = require("react/jsx-runtime");
|
|
4011
4034
|
var ImageSelector = (props) => {
|
|
4012
4035
|
const { value, label, onChange } = props;
|
|
4013
4036
|
const [previewUrl, setPreviewUrl] = import_react25.default.useState();
|
|
@@ -4033,8 +4056,8 @@ var ImageSelector = (props) => {
|
|
|
4033
4056
|
const handleOpenFileDialog = () => {
|
|
4034
4057
|
inputRef.current?.click();
|
|
4035
4058
|
};
|
|
4036
|
-
return /* @__PURE__ */ (0,
|
|
4037
|
-
/* @__PURE__ */ (0,
|
|
4059
|
+
return /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)("div", { className: `lib-xplat-imageselector${value ? "" : " none-value"}`, children: [
|
|
4060
|
+
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)(
|
|
4038
4061
|
"input",
|
|
4039
4062
|
{
|
|
4040
4063
|
type: "file",
|
|
@@ -4044,13 +4067,13 @@ var ImageSelector = (props) => {
|
|
|
4044
4067
|
ref: inputRef
|
|
4045
4068
|
}
|
|
4046
4069
|
),
|
|
4047
|
-
value && /* @__PURE__ */ (0,
|
|
4048
|
-
/* @__PURE__ */ (0,
|
|
4049
|
-
/* @__PURE__ */ (0,
|
|
4070
|
+
value && /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)("div", { className: "action-bar", children: [
|
|
4071
|
+
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "icon-wrapper", onClick: handleOpenFileDialog, children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(UploadIcon_default, {}) }),
|
|
4072
|
+
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "icon-wrapper", onClick: handleDeleteFile, children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(DeleteIcon_default, {}) })
|
|
4050
4073
|
] }),
|
|
4051
|
-
/* @__PURE__ */ (0,
|
|
4052
|
-
/* @__PURE__ */ (0,
|
|
4053
|
-
/* @__PURE__ */ (0,
|
|
4074
|
+
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "content", children: previewUrl ? /* @__PURE__ */ (0, import_jsx_runtime327.jsx)("img", { src: previewUrl, alt: "preview" }) : /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)("div", { className: "skeleton", onClick: handleOpenFileDialog, children: [
|
|
4075
|
+
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "icon-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(ImageIcon_default, {}) }),
|
|
4076
|
+
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "label", children: label || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
|
|
4054
4077
|
] }) })
|
|
4055
4078
|
] });
|
|
4056
4079
|
};
|
|
@@ -4058,7 +4081,7 @@ ImageSelector.displayName = "ImageSelector";
|
|
|
4058
4081
|
var ImageSelector_default = ImageSelector;
|
|
4059
4082
|
|
|
4060
4083
|
// src/components/Pagination/Pagination.tsx
|
|
4061
|
-
var
|
|
4084
|
+
var import_jsx_runtime328 = require("react/jsx-runtime");
|
|
4062
4085
|
var getPageRange = (current, totalPages, siblingCount) => {
|
|
4063
4086
|
const totalNumbers = siblingCount * 2 + 5;
|
|
4064
4087
|
if (totalPages <= totalNumbers) {
|
|
@@ -4101,19 +4124,19 @@ var Pagination = (props) => {
|
|
|
4101
4124
|
onChange?.(page);
|
|
4102
4125
|
}
|
|
4103
4126
|
};
|
|
4104
|
-
return /* @__PURE__ */ (0,
|
|
4105
|
-
/* @__PURE__ */ (0,
|
|
4127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime328.jsxs)("nav", { className: clsx_default("lib-xplat-pagination", size, type), "aria-label": "\uD398\uC774\uC9C0 \uB124\uBE44\uAC8C\uC774\uC158", children: [
|
|
4128
|
+
/* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
|
|
4106
4129
|
"button",
|
|
4107
4130
|
{
|
|
4108
4131
|
className: "page-btn prev",
|
|
4109
4132
|
disabled: current <= 1,
|
|
4110
4133
|
onClick: () => handleClick(current - 1),
|
|
4111
4134
|
"aria-label": "\uC774\uC804 \uD398\uC774\uC9C0",
|
|
4112
|
-
children: /* @__PURE__ */ (0,
|
|
4135
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(ChevronLeftIcon_default, {})
|
|
4113
4136
|
}
|
|
4114
4137
|
),
|
|
4115
4138
|
pages.map(
|
|
4116
|
-
(page, i) => page === "..." ? /* @__PURE__ */ (0,
|
|
4139
|
+
(page, i) => page === "..." ? /* @__PURE__ */ (0, import_jsx_runtime328.jsx)("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
|
|
4117
4140
|
"button",
|
|
4118
4141
|
{
|
|
4119
4142
|
className: clsx_default("page-btn", { active: page === current }),
|
|
@@ -4124,14 +4147,14 @@ var Pagination = (props) => {
|
|
|
4124
4147
|
page
|
|
4125
4148
|
)
|
|
4126
4149
|
),
|
|
4127
|
-
/* @__PURE__ */ (0,
|
|
4150
|
+
/* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
|
|
4128
4151
|
"button",
|
|
4129
4152
|
{
|
|
4130
4153
|
className: "page-btn next",
|
|
4131
4154
|
disabled: current >= totalPages,
|
|
4132
4155
|
onClick: () => handleClick(current + 1),
|
|
4133
4156
|
"aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0",
|
|
4134
|
-
children: /* @__PURE__ */ (0,
|
|
4157
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(ChevronRightIcon_default, {})
|
|
4135
4158
|
}
|
|
4136
4159
|
)
|
|
4137
4160
|
] });
|
|
@@ -4141,7 +4164,7 @@ var Pagination_default = Pagination;
|
|
|
4141
4164
|
|
|
4142
4165
|
// src/components/PopOver/PopOver.tsx
|
|
4143
4166
|
var import_react26 = __toESM(require("react"), 1);
|
|
4144
|
-
var
|
|
4167
|
+
var import_jsx_runtime329 = require("react/jsx-runtime");
|
|
4145
4168
|
var PopOver = (props) => {
|
|
4146
4169
|
const { children, isOpen, onClose, PopOverEl } = props;
|
|
4147
4170
|
const popRef = import_react26.default.useRef(null);
|
|
@@ -4163,7 +4186,7 @@ var PopOver = (props) => {
|
|
|
4163
4186
|
}, 200);
|
|
4164
4187
|
}
|
|
4165
4188
|
}, [isOpen]);
|
|
4166
|
-
return /* @__PURE__ */ (0,
|
|
4189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime329.jsxs)(
|
|
4167
4190
|
"div",
|
|
4168
4191
|
{
|
|
4169
4192
|
className: "lib-xplat-pop-over",
|
|
@@ -4173,7 +4196,7 @@ var PopOver = (props) => {
|
|
|
4173
4196
|
},
|
|
4174
4197
|
children: [
|
|
4175
4198
|
children,
|
|
4176
|
-
localOpen && /* @__PURE__ */ (0,
|
|
4199
|
+
localOpen && /* @__PURE__ */ (0, import_jsx_runtime329.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime329.jsx)(
|
|
4177
4200
|
"div",
|
|
4178
4201
|
{
|
|
4179
4202
|
className: clsx_default(
|
|
@@ -4196,7 +4219,7 @@ PopOver.displayName = "PopOver";
|
|
|
4196
4219
|
var PopOver_default = PopOver;
|
|
4197
4220
|
|
|
4198
4221
|
// src/components/Progress/Progress.tsx
|
|
4199
|
-
var
|
|
4222
|
+
var import_jsx_runtime330 = require("react/jsx-runtime");
|
|
4200
4223
|
var Progress = (props) => {
|
|
4201
4224
|
const {
|
|
4202
4225
|
value,
|
|
@@ -4206,8 +4229,8 @@ var Progress = (props) => {
|
|
|
4206
4229
|
showLabel = false
|
|
4207
4230
|
} = props;
|
|
4208
4231
|
const percentage = Math.min(100, Math.max(0, value / max * 100));
|
|
4209
|
-
return /* @__PURE__ */ (0,
|
|
4210
|
-
/* @__PURE__ */ (0,
|
|
4232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime330.jsxs)("div", { className: clsx_default("lib-xplat-progress", size, type), children: [
|
|
4233
|
+
/* @__PURE__ */ (0, import_jsx_runtime330.jsx)(
|
|
4211
4234
|
"div",
|
|
4212
4235
|
{
|
|
4213
4236
|
className: "track",
|
|
@@ -4215,7 +4238,7 @@ var Progress = (props) => {
|
|
|
4215
4238
|
"aria-valuenow": value,
|
|
4216
4239
|
"aria-valuemin": 0,
|
|
4217
4240
|
"aria-valuemax": max,
|
|
4218
|
-
children: /* @__PURE__ */ (0,
|
|
4241
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime330.jsx)(
|
|
4219
4242
|
"div",
|
|
4220
4243
|
{
|
|
4221
4244
|
className: "bar",
|
|
@@ -4224,7 +4247,7 @@ var Progress = (props) => {
|
|
|
4224
4247
|
)
|
|
4225
4248
|
}
|
|
4226
4249
|
),
|
|
4227
|
-
showLabel && /* @__PURE__ */ (0,
|
|
4250
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime330.jsxs)("span", { className: "label", children: [
|
|
4228
4251
|
Math.round(percentage),
|
|
4229
4252
|
"%"
|
|
4230
4253
|
] })
|
|
@@ -4244,7 +4267,7 @@ var useRadioGroupContext = () => {
|
|
|
4244
4267
|
var RadioGroupContext_default = RadioGroupContext;
|
|
4245
4268
|
|
|
4246
4269
|
// src/components/Radio/Radio.tsx
|
|
4247
|
-
var
|
|
4270
|
+
var import_jsx_runtime331 = require("react/jsx-runtime");
|
|
4248
4271
|
var Radio = (props) => {
|
|
4249
4272
|
const {
|
|
4250
4273
|
label,
|
|
@@ -4262,7 +4285,7 @@ var Radio = (props) => {
|
|
|
4262
4285
|
value,
|
|
4263
4286
|
onChange: rest.onChange
|
|
4264
4287
|
};
|
|
4265
|
-
return /* @__PURE__ */ (0,
|
|
4288
|
+
return /* @__PURE__ */ (0, import_jsx_runtime331.jsxs)(
|
|
4266
4289
|
"label",
|
|
4267
4290
|
{
|
|
4268
4291
|
className: clsx_default(
|
|
@@ -4272,18 +4295,18 @@ var Radio = (props) => {
|
|
|
4272
4295
|
localChecked ? "checked" : void 0
|
|
4273
4296
|
),
|
|
4274
4297
|
children: [
|
|
4275
|
-
/* @__PURE__ */ (0,
|
|
4276
|
-
/* @__PURE__ */ (0,
|
|
4298
|
+
/* @__PURE__ */ (0, import_jsx_runtime331.jsx)("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
|
|
4299
|
+
/* @__PURE__ */ (0, import_jsx_runtime331.jsx)(
|
|
4277
4300
|
"div",
|
|
4278
4301
|
{
|
|
4279
4302
|
className: clsx_default(
|
|
4280
4303
|
"circle",
|
|
4281
4304
|
localChecked ? "checked" : void 0
|
|
4282
4305
|
),
|
|
4283
|
-
children: localChecked && /* @__PURE__ */ (0,
|
|
4306
|
+
children: localChecked && /* @__PURE__ */ (0, import_jsx_runtime331.jsx)("div", { className: "inner-circle" })
|
|
4284
4307
|
}
|
|
4285
4308
|
),
|
|
4286
|
-
label && /* @__PURE__ */ (0,
|
|
4309
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime331.jsx)("span", { children: label })
|
|
4287
4310
|
]
|
|
4288
4311
|
}
|
|
4289
4312
|
);
|
|
@@ -4292,10 +4315,10 @@ Radio.displayName = "Radio";
|
|
|
4292
4315
|
var Radio_default = Radio;
|
|
4293
4316
|
|
|
4294
4317
|
// src/components/Radio/RadioGroup.tsx
|
|
4295
|
-
var
|
|
4318
|
+
var import_jsx_runtime332 = require("react/jsx-runtime");
|
|
4296
4319
|
var RadioGroup = (props) => {
|
|
4297
4320
|
const { children, ...rest } = props;
|
|
4298
|
-
return /* @__PURE__ */ (0,
|
|
4321
|
+
return /* @__PURE__ */ (0, import_jsx_runtime332.jsx)(import_jsx_runtime332.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime332.jsx)(RadioGroupContext_default.Provider, { value: rest, children }) });
|
|
4299
4322
|
};
|
|
4300
4323
|
RadioGroup.displayName = "RadioGroup";
|
|
4301
4324
|
var RadioGroup_default = RadioGroup;
|
|
@@ -4310,7 +4333,7 @@ var context_default = SelectContext;
|
|
|
4310
4333
|
|
|
4311
4334
|
// src/components/Select/SelectItem.tsx
|
|
4312
4335
|
var import_react29 = __toESM(require("react"), 1);
|
|
4313
|
-
var
|
|
4336
|
+
var import_jsx_runtime333 = require("react/jsx-runtime");
|
|
4314
4337
|
var SelectItem = (props) => {
|
|
4315
4338
|
const { children, value, onClick, disabled = false } = props;
|
|
4316
4339
|
const ctx = import_react29.default.useContext(context_default);
|
|
@@ -4322,7 +4345,7 @@ var SelectItem = (props) => {
|
|
|
4322
4345
|
ctx?.close();
|
|
4323
4346
|
onClick?.();
|
|
4324
4347
|
};
|
|
4325
|
-
return /* @__PURE__ */ (0,
|
|
4348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(
|
|
4326
4349
|
"div",
|
|
4327
4350
|
{
|
|
4328
4351
|
className: clsx_default("select-item", disabled && "disabled"),
|
|
@@ -4343,7 +4366,7 @@ SelectItem.displayName = "Select.Item";
|
|
|
4343
4366
|
var SelectItem_default = SelectItem;
|
|
4344
4367
|
|
|
4345
4368
|
// src/components/Select/Select.tsx
|
|
4346
|
-
var
|
|
4369
|
+
var import_jsx_runtime334 = require("react/jsx-runtime");
|
|
4347
4370
|
var ANIMATION_DURATION_MS3 = 200;
|
|
4348
4371
|
var SelectRoot = (props) => {
|
|
4349
4372
|
const {
|
|
@@ -4419,7 +4442,7 @@ var SelectRoot = (props) => {
|
|
|
4419
4442
|
if (disabled) return;
|
|
4420
4443
|
toggle();
|
|
4421
4444
|
};
|
|
4422
|
-
return /* @__PURE__ */ (0,
|
|
4445
|
+
return /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ (0, import_jsx_runtime334.jsxs)(
|
|
4423
4446
|
"div",
|
|
4424
4447
|
{
|
|
4425
4448
|
className: clsx_default(
|
|
@@ -4430,7 +4453,7 @@ var SelectRoot = (props) => {
|
|
|
4430
4453
|
mounted && "is-open"
|
|
4431
4454
|
),
|
|
4432
4455
|
children: [
|
|
4433
|
-
/* @__PURE__ */ (0,
|
|
4456
|
+
/* @__PURE__ */ (0, import_jsx_runtime334.jsxs)(
|
|
4434
4457
|
"div",
|
|
4435
4458
|
{
|
|
4436
4459
|
ref: triggerRef,
|
|
@@ -4454,7 +4477,7 @@ var SelectRoot = (props) => {
|
|
|
4454
4477
|
}
|
|
4455
4478
|
},
|
|
4456
4479
|
children: [
|
|
4457
|
-
/* @__PURE__ */ (0,
|
|
4480
|
+
/* @__PURE__ */ (0, import_jsx_runtime334.jsx)(
|
|
4458
4481
|
"span",
|
|
4459
4482
|
{
|
|
4460
4483
|
className: clsx_default(
|
|
@@ -4464,25 +4487,25 @@ var SelectRoot = (props) => {
|
|
|
4464
4487
|
children: selectedLabel ?? placeholder
|
|
4465
4488
|
}
|
|
4466
4489
|
),
|
|
4467
|
-
/* @__PURE__ */ (0,
|
|
4490
|
+
/* @__PURE__ */ (0, import_jsx_runtime334.jsx)(
|
|
4468
4491
|
"span",
|
|
4469
4492
|
{
|
|
4470
4493
|
className: clsx_default("select-trigger-icon", isOpen && "open"),
|
|
4471
4494
|
"aria-hidden": true,
|
|
4472
|
-
children: /* @__PURE__ */ (0,
|
|
4495
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(ChevronDownIcon_default, {})
|
|
4473
4496
|
}
|
|
4474
4497
|
)
|
|
4475
4498
|
]
|
|
4476
4499
|
}
|
|
4477
4500
|
),
|
|
4478
|
-
mounted && /* @__PURE__ */ (0,
|
|
4501
|
+
mounted && /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(
|
|
4479
4502
|
"div",
|
|
4480
4503
|
{
|
|
4481
4504
|
className: clsx_default("lib-xplat-select-content", position.direction, stateClass),
|
|
4482
4505
|
ref: contentRef,
|
|
4483
4506
|
style: { ...position.position, width: triggerRef.current?.offsetWidth },
|
|
4484
4507
|
role: "listbox",
|
|
4485
|
-
children: /* @__PURE__ */ (0,
|
|
4508
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(context_default.Provider, { value: ctxValue, children: itemChildren })
|
|
4486
4509
|
}
|
|
4487
4510
|
) })
|
|
4488
4511
|
]
|
|
@@ -4496,7 +4519,7 @@ var Select = Object.assign(SelectRoot, {
|
|
|
4496
4519
|
var Select_default = Select;
|
|
4497
4520
|
|
|
4498
4521
|
// src/components/Skeleton/Skeleton.tsx
|
|
4499
|
-
var
|
|
4522
|
+
var import_jsx_runtime335 = require("react/jsx-runtime");
|
|
4500
4523
|
var SIZE_MAP = {
|
|
4501
4524
|
xs: "var(--spacing-size-1)",
|
|
4502
4525
|
sm: "var(--spacing-size-2)",
|
|
@@ -4512,7 +4535,7 @@ var Skeleton = (props) => {
|
|
|
4512
4535
|
...width != null && { width: SIZE_MAP[width] },
|
|
4513
4536
|
...height != null && { height: SIZE_MAP[height] }
|
|
4514
4537
|
};
|
|
4515
|
-
return /* @__PURE__ */ (0,
|
|
4538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime335.jsx)(
|
|
4516
4539
|
"div",
|
|
4517
4540
|
{
|
|
4518
4541
|
className: clsx_default("lib-xplat-skeleton", variant),
|
|
@@ -4525,20 +4548,20 @@ Skeleton.displayName = "Skeleton";
|
|
|
4525
4548
|
var Skeleton_default = Skeleton;
|
|
4526
4549
|
|
|
4527
4550
|
// src/components/Spinner/Spinner.tsx
|
|
4528
|
-
var
|
|
4551
|
+
var import_jsx_runtime336 = require("react/jsx-runtime");
|
|
4529
4552
|
var Spinner = (props) => {
|
|
4530
4553
|
const {
|
|
4531
4554
|
size = "md",
|
|
4532
4555
|
type = "brand"
|
|
4533
4556
|
} = props;
|
|
4534
|
-
return /* @__PURE__ */ (0,
|
|
4557
|
+
return /* @__PURE__ */ (0, import_jsx_runtime336.jsx)(
|
|
4535
4558
|
"div",
|
|
4536
4559
|
{
|
|
4537
4560
|
className: clsx_default("lib-xplat-spinner", size, type),
|
|
4538
4561
|
role: "status",
|
|
4539
4562
|
"aria-label": "\uB85C\uB529 \uC911",
|
|
4540
|
-
children: /* @__PURE__ */ (0,
|
|
4541
|
-
/* @__PURE__ */ (0,
|
|
4563
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime336.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
4564
|
+
/* @__PURE__ */ (0, import_jsx_runtime336.jsx)(
|
|
4542
4565
|
"circle",
|
|
4543
4566
|
{
|
|
4544
4567
|
className: "track",
|
|
@@ -4548,7 +4571,7 @@ var Spinner = (props) => {
|
|
|
4548
4571
|
strokeWidth: "3"
|
|
4549
4572
|
}
|
|
4550
4573
|
),
|
|
4551
|
-
/* @__PURE__ */ (0,
|
|
4574
|
+
/* @__PURE__ */ (0, import_jsx_runtime336.jsx)(
|
|
4552
4575
|
"circle",
|
|
4553
4576
|
{
|
|
4554
4577
|
className: "indicator",
|
|
@@ -4567,20 +4590,20 @@ Spinner.displayName = "Spinner";
|
|
|
4567
4590
|
var Spinner_default = Spinner;
|
|
4568
4591
|
|
|
4569
4592
|
// src/components/Steps/Steps.tsx
|
|
4570
|
-
var
|
|
4593
|
+
var import_jsx_runtime337 = require("react/jsx-runtime");
|
|
4571
4594
|
var Steps = (props) => {
|
|
4572
4595
|
const {
|
|
4573
4596
|
items,
|
|
4574
4597
|
current,
|
|
4575
4598
|
type = "brand"
|
|
4576
4599
|
} = props;
|
|
4577
|
-
return /* @__PURE__ */ (0,
|
|
4600
|
+
return /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
|
|
4578
4601
|
const status = index < current ? "completed" : index === current ? "active" : "pending";
|
|
4579
|
-
return /* @__PURE__ */ (0,
|
|
4580
|
-
/* @__PURE__ */ (0,
|
|
4581
|
-
/* @__PURE__ */ (0,
|
|
4582
|
-
/* @__PURE__ */ (0,
|
|
4583
|
-
item.description && /* @__PURE__ */ (0,
|
|
4602
|
+
return /* @__PURE__ */ (0, import_jsx_runtime337.jsxs)("div", { className: clsx_default("step-item", status), children: [
|
|
4603
|
+
/* @__PURE__ */ (0, import_jsx_runtime337.jsx)("div", { className: "step-circle", children: status === "completed" ? /* @__PURE__ */ (0, import_jsx_runtime337.jsx)(CheckIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("span", { children: index + 1 }) }),
|
|
4604
|
+
/* @__PURE__ */ (0, import_jsx_runtime337.jsxs)("div", { className: "step-content", children: [
|
|
4605
|
+
/* @__PURE__ */ (0, import_jsx_runtime337.jsx)("span", { className: "step-title", children: item.title }),
|
|
4606
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("span", { className: "step-description", children: item.description })
|
|
4584
4607
|
] })
|
|
4585
4608
|
] }, index);
|
|
4586
4609
|
}) });
|
|
@@ -4590,7 +4613,7 @@ var Steps_default = Steps;
|
|
|
4590
4613
|
|
|
4591
4614
|
// src/components/Swiper/Swiper.tsx
|
|
4592
4615
|
var import_react31 = __toESM(require("react"), 1);
|
|
4593
|
-
var
|
|
4616
|
+
var import_jsx_runtime338 = require("react/jsx-runtime");
|
|
4594
4617
|
var Swiper = (props) => {
|
|
4595
4618
|
const {
|
|
4596
4619
|
auto = false,
|
|
@@ -4789,7 +4812,7 @@ var Swiper = (props) => {
|
|
|
4789
4812
|
const slideWidthPercent = 100 / viewItemCount;
|
|
4790
4813
|
const gapAdjust = spaceBetween * (viewItemCount - 1) / viewItemCount;
|
|
4791
4814
|
const slideElements = import_react31.default.useMemo(
|
|
4792
|
-
() => extendedItems.map((item, idx) => /* @__PURE__ */ (0,
|
|
4815
|
+
() => extendedItems.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
|
|
4793
4816
|
"div",
|
|
4794
4817
|
{
|
|
4795
4818
|
className: "lib-xplat-swiper__slide",
|
|
@@ -4808,14 +4831,14 @@ var Swiper = (props) => {
|
|
|
4808
4831
|
Math.floor(realIndex / slideBy),
|
|
4809
4832
|
totalSteps - 1
|
|
4810
4833
|
);
|
|
4811
|
-
return /* @__PURE__ */ (0,
|
|
4812
|
-
/* @__PURE__ */ (0,
|
|
4834
|
+
return /* @__PURE__ */ (0, import_jsx_runtime338.jsxs)("div", { className: "lib-xplat-swiper", ref: containerRef, children: [
|
|
4835
|
+
/* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
|
|
4813
4836
|
"div",
|
|
4814
4837
|
{
|
|
4815
4838
|
className: "lib-xplat-swiper__viewport",
|
|
4816
4839
|
onMouseDown: handleDragStart,
|
|
4817
4840
|
onTouchStart: handleDragStart,
|
|
4818
|
-
children: /* @__PURE__ */ (0,
|
|
4841
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
|
|
4819
4842
|
"div",
|
|
4820
4843
|
{
|
|
4821
4844
|
className: clsx_default(
|
|
@@ -4833,7 +4856,7 @@ var Swiper = (props) => {
|
|
|
4833
4856
|
)
|
|
4834
4857
|
}
|
|
4835
4858
|
),
|
|
4836
|
-
showProgress && canSlide && /* @__PURE__ */ (0,
|
|
4859
|
+
showProgress && canSlide && /* @__PURE__ */ (0, import_jsx_runtime338.jsx)("div", { className: "lib-xplat-swiper__progress", children: /* @__PURE__ */ (0, import_jsx_runtime338.jsx)("div", { className: "lib-xplat-swiper__progress-track", children: /* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
|
|
4837
4860
|
"span",
|
|
4838
4861
|
{
|
|
4839
4862
|
className: "lib-xplat-swiper__progress-fill",
|
|
@@ -4843,7 +4866,7 @@ var Swiper = (props) => {
|
|
|
4843
4866
|
}
|
|
4844
4867
|
}
|
|
4845
4868
|
) }) }),
|
|
4846
|
-
canSlide && /* @__PURE__ */ (0,
|
|
4869
|
+
canSlide && /* @__PURE__ */ (0, import_jsx_runtime338.jsx)("div", { className: "lib-xplat-swiper__dots", children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
|
|
4847
4870
|
"button",
|
|
4848
4871
|
{
|
|
4849
4872
|
className: clsx_default(
|
|
@@ -4862,7 +4885,7 @@ var Swiper_default = Swiper;
|
|
|
4862
4885
|
|
|
4863
4886
|
// src/components/Switch/Switch.tsx
|
|
4864
4887
|
var import_react32 = __toESM(require("react"), 1);
|
|
4865
|
-
var
|
|
4888
|
+
var import_jsx_runtime339 = require("react/jsx-runtime");
|
|
4866
4889
|
var KNOB_TRANSITION_MS = 250;
|
|
4867
4890
|
var Switch = (props) => {
|
|
4868
4891
|
const {
|
|
@@ -4889,7 +4912,7 @@ var Switch = (props) => {
|
|
|
4889
4912
|
timeoutRef.current = null;
|
|
4890
4913
|
}, KNOB_TRANSITION_MS);
|
|
4891
4914
|
};
|
|
4892
|
-
return /* @__PURE__ */ (0,
|
|
4915
|
+
return /* @__PURE__ */ (0, import_jsx_runtime339.jsx)(
|
|
4893
4916
|
"div",
|
|
4894
4917
|
{
|
|
4895
4918
|
className: clsx_default(
|
|
@@ -4902,7 +4925,7 @@ var Switch = (props) => {
|
|
|
4902
4925
|
),
|
|
4903
4926
|
onClick: handleClick,
|
|
4904
4927
|
"aria-disabled": disabled || isAnimating,
|
|
4905
|
-
children: /* @__PURE__ */ (0,
|
|
4928
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime339.jsx)("div", { className: clsx_default("knob", value ? "checked" : void 0) })
|
|
4906
4929
|
}
|
|
4907
4930
|
);
|
|
4908
4931
|
};
|
|
@@ -4920,7 +4943,7 @@ var useTableContext = () => {
|
|
|
4920
4943
|
var TableContext_default = TableContext;
|
|
4921
4944
|
|
|
4922
4945
|
// src/components/Table/Table.tsx
|
|
4923
|
-
var
|
|
4946
|
+
var import_jsx_runtime340 = require("react/jsx-runtime");
|
|
4924
4947
|
var Table = (props) => {
|
|
4925
4948
|
const {
|
|
4926
4949
|
children,
|
|
@@ -4930,7 +4953,7 @@ var Table = (props) => {
|
|
|
4930
4953
|
headerSticky = false,
|
|
4931
4954
|
stickyShadow = true
|
|
4932
4955
|
} = props;
|
|
4933
|
-
return /* @__PURE__ */ (0,
|
|
4956
|
+
return /* @__PURE__ */ (0, import_jsx_runtime340.jsx)("div", { className: `lib-xplat-table-wrapper ${size}`, children: /* @__PURE__ */ (0, import_jsx_runtime340.jsx)(
|
|
4934
4957
|
TableContext_default.Provider,
|
|
4935
4958
|
{
|
|
4936
4959
|
value: {
|
|
@@ -4939,7 +4962,7 @@ var Table = (props) => {
|
|
|
4939
4962
|
headerSticky,
|
|
4940
4963
|
stickyShadow
|
|
4941
4964
|
},
|
|
4942
|
-
children: /* @__PURE__ */ (0,
|
|
4965
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime340.jsx)("table", { className: "lib-xplat-table", children })
|
|
4943
4966
|
}
|
|
4944
4967
|
) });
|
|
4945
4968
|
};
|
|
@@ -4947,10 +4970,10 @@ Table.displayName = "Table";
|
|
|
4947
4970
|
var Table_default = Table;
|
|
4948
4971
|
|
|
4949
4972
|
// src/components/Table/TableBody.tsx
|
|
4950
|
-
var
|
|
4973
|
+
var import_jsx_runtime341 = require("react/jsx-runtime");
|
|
4951
4974
|
var TableBody = (props) => {
|
|
4952
4975
|
const { children } = props;
|
|
4953
|
-
return /* @__PURE__ */ (0,
|
|
4976
|
+
return /* @__PURE__ */ (0, import_jsx_runtime341.jsx)("tbody", { children });
|
|
4954
4977
|
};
|
|
4955
4978
|
TableBody.displayName = "TableBody";
|
|
4956
4979
|
var TableBody_default = TableBody;
|
|
@@ -4980,7 +5003,7 @@ var useTableRowContext = () => {
|
|
|
4980
5003
|
var TableRowContext_default = TableRowContext;
|
|
4981
5004
|
|
|
4982
5005
|
// src/components/Table/TableCell.tsx
|
|
4983
|
-
var
|
|
5006
|
+
var import_jsx_runtime342 = require("react/jsx-runtime");
|
|
4984
5007
|
var TableCell = import_react36.default.memo((props) => {
|
|
4985
5008
|
const {
|
|
4986
5009
|
children,
|
|
@@ -5022,7 +5045,7 @@ var TableCell = import_react36.default.memo((props) => {
|
|
|
5022
5045
|
const CellTag = cellRef.current?.tagName === "TH" ? "th" : "td";
|
|
5023
5046
|
const isLastSticky = isSticky && stickyCells[stickyCells.length - 1] === cellRef;
|
|
5024
5047
|
const enableHover = headContext && headContext.cellHover;
|
|
5025
|
-
return /* @__PURE__ */ (0,
|
|
5048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime342.jsx)(
|
|
5026
5049
|
CellTag,
|
|
5027
5050
|
{
|
|
5028
5051
|
ref: cellRef,
|
|
@@ -5047,20 +5070,20 @@ TableCell.displayName = "TableCell";
|
|
|
5047
5070
|
var TableCell_default = TableCell;
|
|
5048
5071
|
|
|
5049
5072
|
// src/components/Table/TableHead.tsx
|
|
5050
|
-
var
|
|
5073
|
+
var import_jsx_runtime343 = require("react/jsx-runtime");
|
|
5051
5074
|
var TableHead = ({
|
|
5052
5075
|
children,
|
|
5053
5076
|
cellHover = false
|
|
5054
5077
|
}) => {
|
|
5055
5078
|
const { headerSticky } = useTableContext();
|
|
5056
|
-
return /* @__PURE__ */ (0,
|
|
5079
|
+
return /* @__PURE__ */ (0, import_jsx_runtime343.jsx)(TableHeadContext_default.Provider, { value: { cellHover }, children: /* @__PURE__ */ (0, import_jsx_runtime343.jsx)("thead", { className: clsx_default(headerSticky ? "table-sticky" : null), children }) });
|
|
5057
5080
|
};
|
|
5058
5081
|
TableHead.displayName = "TableHead";
|
|
5059
5082
|
var TableHead_default = TableHead;
|
|
5060
5083
|
|
|
5061
5084
|
// src/components/Table/TableRow.tsx
|
|
5062
5085
|
var import_react37 = __toESM(require("react"), 1);
|
|
5063
|
-
var
|
|
5086
|
+
var import_jsx_runtime344 = require("react/jsx-runtime");
|
|
5064
5087
|
var TableRow = import_react37.default.memo((props) => {
|
|
5065
5088
|
const {
|
|
5066
5089
|
children,
|
|
@@ -5076,7 +5099,7 @@ var TableRow = import_react37.default.memo((props) => {
|
|
|
5076
5099
|
return [...prev, ref];
|
|
5077
5100
|
});
|
|
5078
5101
|
};
|
|
5079
|
-
return /* @__PURE__ */ (0,
|
|
5102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime344.jsx)(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ (0, import_jsx_runtime344.jsx)(
|
|
5080
5103
|
"tr",
|
|
5081
5104
|
{
|
|
5082
5105
|
className: clsx_default(
|
|
@@ -5094,7 +5117,7 @@ TableRow.displayName = "TableRow";
|
|
|
5094
5117
|
var TableRow_default = TableRow;
|
|
5095
5118
|
|
|
5096
5119
|
// src/components/Tag/Tag.tsx
|
|
5097
|
-
var
|
|
5120
|
+
var import_jsx_runtime345 = require("react/jsx-runtime");
|
|
5098
5121
|
var Tag = (props) => {
|
|
5099
5122
|
const {
|
|
5100
5123
|
children,
|
|
@@ -5104,7 +5127,7 @@ var Tag = (props) => {
|
|
|
5104
5127
|
disabled = false,
|
|
5105
5128
|
colorIndex
|
|
5106
5129
|
} = props;
|
|
5107
|
-
return /* @__PURE__ */ (0,
|
|
5130
|
+
return /* @__PURE__ */ (0, import_jsx_runtime345.jsxs)(
|
|
5108
5131
|
"span",
|
|
5109
5132
|
{
|
|
5110
5133
|
className: clsx_default(
|
|
@@ -5115,8 +5138,8 @@ var Tag = (props) => {
|
|
|
5115
5138
|
disabled && "disabled"
|
|
5116
5139
|
),
|
|
5117
5140
|
children: [
|
|
5118
|
-
/* @__PURE__ */ (0,
|
|
5119
|
-
onClose && /* @__PURE__ */ (0,
|
|
5141
|
+
/* @__PURE__ */ (0, import_jsx_runtime345.jsx)("span", { className: "tag-label", children }),
|
|
5142
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime345.jsx)("button", { className: "tag-close", onClick: onClose, "aria-label": "\uC0AD\uC81C", disabled, children: /* @__PURE__ */ (0, import_jsx_runtime345.jsx)(XIcon_default, {}) })
|
|
5120
5143
|
]
|
|
5121
5144
|
}
|
|
5122
5145
|
);
|
|
@@ -5126,7 +5149,7 @@ var Tag_default = Tag;
|
|
|
5126
5149
|
|
|
5127
5150
|
// src/components/TextArea/TextArea.tsx
|
|
5128
5151
|
var import_react38 = __toESM(require("react"), 1);
|
|
5129
|
-
var
|
|
5152
|
+
var import_jsx_runtime346 = require("react/jsx-runtime");
|
|
5130
5153
|
var TextArea = import_react38.default.forwardRef(
|
|
5131
5154
|
(props, ref) => {
|
|
5132
5155
|
const { value, onChange, disabled, ...textareaProps } = props;
|
|
@@ -5157,14 +5180,14 @@ var TextArea = import_react38.default.forwardRef(
|
|
|
5157
5180
|
const nextHeight = Math.min(el.scrollHeight, 400);
|
|
5158
5181
|
el.style.height = `${nextHeight}px`;
|
|
5159
5182
|
}, [value]);
|
|
5160
|
-
return /* @__PURE__ */ (0,
|
|
5183
|
+
return /* @__PURE__ */ (0, import_jsx_runtime346.jsx)("div", { className: "lib-xplat-textarea-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime346.jsx)(
|
|
5161
5184
|
"div",
|
|
5162
5185
|
{
|
|
5163
5186
|
className: clsx_default(
|
|
5164
5187
|
"lib-xplat-textarea",
|
|
5165
5188
|
disabled ? "disabled" : void 0
|
|
5166
5189
|
),
|
|
5167
|
-
children: /* @__PURE__ */ (0,
|
|
5190
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime346.jsx)(
|
|
5168
5191
|
"textarea",
|
|
5169
5192
|
{
|
|
5170
5193
|
...textareaProps,
|
|
@@ -5184,7 +5207,7 @@ var TextArea_default = TextArea;
|
|
|
5184
5207
|
// src/components/Toast/Toast.tsx
|
|
5185
5208
|
var import_react39 = __toESM(require("react"), 1);
|
|
5186
5209
|
var import_react_dom4 = require("react-dom");
|
|
5187
|
-
var
|
|
5210
|
+
var import_jsx_runtime347 = require("react/jsx-runtime");
|
|
5188
5211
|
var ToastContext = import_react39.default.createContext(null);
|
|
5189
5212
|
var useToast = () => {
|
|
5190
5213
|
const ctx = import_react39.default.useContext(ToastContext);
|
|
@@ -5200,7 +5223,7 @@ var ToastItemComponent = ({ item, isExiting, onClose }) => {
|
|
|
5200
5223
|
setHeight(ref.current.offsetHeight);
|
|
5201
5224
|
}
|
|
5202
5225
|
}, [isExiting]);
|
|
5203
|
-
return /* @__PURE__ */ (0,
|
|
5226
|
+
return /* @__PURE__ */ (0, import_jsx_runtime347.jsx)(
|
|
5204
5227
|
"div",
|
|
5205
5228
|
{
|
|
5206
5229
|
className: clsx_default("lib-xplat-toast-wrapper", { exit: isExiting }),
|
|
@@ -5208,15 +5231,15 @@ var ToastItemComponent = ({ item, isExiting, onClose }) => {
|
|
|
5208
5231
|
maxHeight: isExiting ? 0 : height ?? "none",
|
|
5209
5232
|
marginBottom: isExiting ? 0 : void 0
|
|
5210
5233
|
},
|
|
5211
|
-
children: /* @__PURE__ */ (0,
|
|
5234
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime347.jsxs)(
|
|
5212
5235
|
"div",
|
|
5213
5236
|
{
|
|
5214
5237
|
ref,
|
|
5215
5238
|
className: clsx_default("lib-xplat-toast", item.type, { exit: isExiting }),
|
|
5216
5239
|
role: "alert",
|
|
5217
5240
|
children: [
|
|
5218
|
-
/* @__PURE__ */ (0,
|
|
5219
|
-
/* @__PURE__ */ (0,
|
|
5241
|
+
/* @__PURE__ */ (0, import_jsx_runtime347.jsx)("span", { className: "message", children: item.message }),
|
|
5242
|
+
/* @__PURE__ */ (0, import_jsx_runtime347.jsx)("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
|
|
5220
5243
|
]
|
|
5221
5244
|
}
|
|
5222
5245
|
)
|
|
@@ -5254,10 +5277,10 @@ var ToastProvider = ({
|
|
|
5254
5277
|
},
|
|
5255
5278
|
[remove]
|
|
5256
5279
|
);
|
|
5257
|
-
return /* @__PURE__ */ (0,
|
|
5280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime347.jsxs)(ToastContext.Provider, { value: { toast }, children: [
|
|
5258
5281
|
children,
|
|
5259
5282
|
mounted && (0, import_react_dom4.createPortal)(
|
|
5260
|
-
/* @__PURE__ */ (0,
|
|
5283
|
+
/* @__PURE__ */ (0, import_jsx_runtime347.jsx)("div", { className: clsx_default("lib-xplat-toast-container", position), children: toasts.map((t) => /* @__PURE__ */ (0, import_jsx_runtime347.jsx)(
|
|
5261
5284
|
ToastItemComponent,
|
|
5262
5285
|
{
|
|
5263
5286
|
item: t,
|
|
@@ -5274,7 +5297,7 @@ ToastProvider.displayName = "ToastProvider";
|
|
|
5274
5297
|
|
|
5275
5298
|
// src/components/Tooltip/Tooltip.tsx
|
|
5276
5299
|
var import_react40 = __toESM(require("react"), 1);
|
|
5277
|
-
var
|
|
5300
|
+
var import_jsx_runtime348 = require("react/jsx-runtime");
|
|
5278
5301
|
var Tooltip = (props) => {
|
|
5279
5302
|
const {
|
|
5280
5303
|
type = "primary",
|
|
@@ -5282,9 +5305,9 @@ var Tooltip = (props) => {
|
|
|
5282
5305
|
children
|
|
5283
5306
|
} = props;
|
|
5284
5307
|
const iconRef = import_react40.default.useRef(null);
|
|
5285
|
-
return /* @__PURE__ */ (0,
|
|
5286
|
-
/* @__PURE__ */ (0,
|
|
5287
|
-
/* @__PURE__ */ (0,
|
|
5308
|
+
return /* @__PURE__ */ (0, import_jsx_runtime348.jsxs)("div", { className: "lib-xplat-tooltip", children: [
|
|
5309
|
+
/* @__PURE__ */ (0, import_jsx_runtime348.jsx)("div", { className: "tooltip-content", ref: iconRef, children: children || "Tooltip" }),
|
|
5310
|
+
/* @__PURE__ */ (0, import_jsx_runtime348.jsx)("div", { className: clsx_default("tooltip-wrapper", type), children: description })
|
|
5288
5311
|
] });
|
|
5289
5312
|
};
|
|
5290
5313
|
Tooltip.displayName = "Tooltip";
|
|
@@ -5292,10 +5315,10 @@ var Tooltip_default = Tooltip;
|
|
|
5292
5315
|
|
|
5293
5316
|
// src/components/Video/Video.tsx
|
|
5294
5317
|
var import_react41 = __toESM(require("react"), 1);
|
|
5295
|
-
var
|
|
5296
|
-
var PipIcon = () => /* @__PURE__ */ (0,
|
|
5297
|
-
/* @__PURE__ */ (0,
|
|
5298
|
-
/* @__PURE__ */ (0,
|
|
5318
|
+
var import_jsx_runtime349 = require("react/jsx-runtime");
|
|
5319
|
+
var PipIcon = () => /* @__PURE__ */ (0, import_jsx_runtime349.jsxs)("svg", { viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
5320
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
|
|
5321
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
|
|
5299
5322
|
] });
|
|
5300
5323
|
var formatTime = (sec) => {
|
|
5301
5324
|
if (!Number.isFinite(sec) || sec < 0) return "0:00";
|
|
@@ -5470,13 +5493,13 @@ var Video = import_react41.default.forwardRef((props, ref) => {
|
|
|
5470
5493
|
const volumePct = (isMuted ? 0 : volume) * 100;
|
|
5471
5494
|
const VolumeGlyph = isMuted || volume === 0 ? VolumeXIcon_default : volume < 0.5 ? VolumeIcon_default : Volume2Icon_default;
|
|
5472
5495
|
const pipSupported = typeof document !== "undefined" && "pictureInPictureEnabled" in document && document.pictureInPictureEnabled;
|
|
5473
|
-
return /* @__PURE__ */ (0,
|
|
5496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime349.jsxs)(
|
|
5474
5497
|
"div",
|
|
5475
5498
|
{
|
|
5476
5499
|
ref: containerRef,
|
|
5477
5500
|
className: clsx_default("lib-xplat-video", showControls && "has-controls"),
|
|
5478
5501
|
children: [
|
|
5479
|
-
/* @__PURE__ */ (0,
|
|
5502
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5480
5503
|
"video",
|
|
5481
5504
|
{
|
|
5482
5505
|
ref: setRefs,
|
|
@@ -5497,7 +5520,7 @@ var Video = import_react41.default.forwardRef((props, ref) => {
|
|
|
5497
5520
|
children
|
|
5498
5521
|
}
|
|
5499
5522
|
),
|
|
5500
|
-
showCenterPlay && /* @__PURE__ */ (0,
|
|
5523
|
+
showCenterPlay && /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5501
5524
|
"button",
|
|
5502
5525
|
{
|
|
5503
5526
|
type: "button",
|
|
@@ -5509,11 +5532,11 @@ var Video = import_react41.default.forwardRef((props, ref) => {
|
|
|
5509
5532
|
onClick: togglePlay,
|
|
5510
5533
|
"aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
|
|
5511
5534
|
tabIndex: -1,
|
|
5512
|
-
children: /* @__PURE__ */ (0,
|
|
5535
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime349.jsx)("span", { className: "center-play-icon", children: /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(PlayCircleIcon_default, {}) })
|
|
5513
5536
|
}
|
|
5514
5537
|
),
|
|
5515
|
-
showControls && /* @__PURE__ */ (0,
|
|
5516
|
-
/* @__PURE__ */ (0,
|
|
5538
|
+
showControls && /* @__PURE__ */ (0, import_jsx_runtime349.jsxs)("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
|
|
5539
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5517
5540
|
"input",
|
|
5518
5541
|
{
|
|
5519
5542
|
type: "range",
|
|
@@ -5530,29 +5553,29 @@ var Video = import_react41.default.forwardRef((props, ref) => {
|
|
|
5530
5553
|
}
|
|
5531
5554
|
}
|
|
5532
5555
|
),
|
|
5533
|
-
/* @__PURE__ */ (0,
|
|
5534
|
-
/* @__PURE__ */ (0,
|
|
5556
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsxs)("div", { className: "controls-row", children: [
|
|
5557
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5535
5558
|
"button",
|
|
5536
5559
|
{
|
|
5537
5560
|
type: "button",
|
|
5538
5561
|
className: "control-btn",
|
|
5539
5562
|
onClick: togglePlay,
|
|
5540
5563
|
"aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
|
|
5541
|
-
children: isPlaying ? /* @__PURE__ */ (0,
|
|
5564
|
+
children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(PauseIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(PlayIcon_default, {})
|
|
5542
5565
|
}
|
|
5543
5566
|
),
|
|
5544
|
-
/* @__PURE__ */ (0,
|
|
5545
|
-
/* @__PURE__ */ (0,
|
|
5567
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsxs)("div", { className: "volume-group", children: [
|
|
5568
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5546
5569
|
"button",
|
|
5547
5570
|
{
|
|
5548
5571
|
type: "button",
|
|
5549
5572
|
className: "control-btn",
|
|
5550
5573
|
onClick: toggleMute,
|
|
5551
5574
|
"aria-label": isMuted ? "\uC74C\uC18C\uAC70 \uD574\uC81C" : "\uC74C\uC18C\uAC70",
|
|
5552
|
-
children: /* @__PURE__ */ (0,
|
|
5575
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(VolumeGlyph, {})
|
|
5553
5576
|
}
|
|
5554
5577
|
),
|
|
5555
|
-
/* @__PURE__ */ (0,
|
|
5578
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5556
5579
|
"input",
|
|
5557
5580
|
{
|
|
5558
5581
|
type: "range",
|
|
@@ -5567,14 +5590,14 @@ var Video = import_react41.default.forwardRef((props, ref) => {
|
|
|
5567
5590
|
}
|
|
5568
5591
|
)
|
|
5569
5592
|
] }),
|
|
5570
|
-
/* @__PURE__ */ (0,
|
|
5593
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsxs)("span", { className: "time", children: [
|
|
5571
5594
|
formatTime(currentTime),
|
|
5572
5595
|
" / ",
|
|
5573
5596
|
formatTime(duration)
|
|
5574
5597
|
] }),
|
|
5575
|
-
/* @__PURE__ */ (0,
|
|
5576
|
-
playbackRates && playbackRates.length > 0 && /* @__PURE__ */ (0,
|
|
5577
|
-
/* @__PURE__ */ (0,
|
|
5598
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)("div", { className: "controls-spacer" }),
|
|
5599
|
+
playbackRates && playbackRates.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime349.jsxs)("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
|
|
5600
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsxs)(
|
|
5578
5601
|
"button",
|
|
5579
5602
|
{
|
|
5580
5603
|
type: "button",
|
|
@@ -5588,7 +5611,7 @@ var Video = import_react41.default.forwardRef((props, ref) => {
|
|
|
5588
5611
|
]
|
|
5589
5612
|
}
|
|
5590
5613
|
),
|
|
5591
|
-
rateMenuOpen && /* @__PURE__ */ (0,
|
|
5614
|
+
rateMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime349.jsx)("ul", { className: "rate-menu", role: "menu", children: playbackRates.map((r2) => /* @__PURE__ */ (0, import_jsx_runtime349.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime349.jsxs)(
|
|
5592
5615
|
"button",
|
|
5593
5616
|
{
|
|
5594
5617
|
type: "button",
|
|
@@ -5602,7 +5625,7 @@ var Video = import_react41.default.forwardRef((props, ref) => {
|
|
|
5602
5625
|
}
|
|
5603
5626
|
) }, r2)) })
|
|
5604
5627
|
] }),
|
|
5605
|
-
showCaptions && /* @__PURE__ */ (0,
|
|
5628
|
+
showCaptions && /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5606
5629
|
"button",
|
|
5607
5630
|
{
|
|
5608
5631
|
type: "button",
|
|
@@ -5610,37 +5633,37 @@ var Video = import_react41.default.forwardRef((props, ref) => {
|
|
|
5610
5633
|
onClick: toggleCaptions,
|
|
5611
5634
|
"aria-label": captionsOn ? "\uC790\uB9C9 \uB044\uAE30" : "\uC790\uB9C9 \uCF1C\uAE30",
|
|
5612
5635
|
"aria-pressed": captionsOn,
|
|
5613
|
-
children: /* @__PURE__ */ (0,
|
|
5636
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(TypeIcon_default, {})
|
|
5614
5637
|
}
|
|
5615
5638
|
),
|
|
5616
|
-
showPip && pipSupported && /* @__PURE__ */ (0,
|
|
5639
|
+
showPip && pipSupported && /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5617
5640
|
"button",
|
|
5618
5641
|
{
|
|
5619
5642
|
type: "button",
|
|
5620
5643
|
className: clsx_default("control-btn", isPip && "is-active"),
|
|
5621
5644
|
onClick: togglePip,
|
|
5622
5645
|
"aria-label": isPip ? "PIP \uC885\uB8CC" : "PIP",
|
|
5623
|
-
children: /* @__PURE__ */ (0,
|
|
5646
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(PipIcon, {})
|
|
5624
5647
|
}
|
|
5625
5648
|
),
|
|
5626
|
-
showDownload && /* @__PURE__ */ (0,
|
|
5649
|
+
showDownload && /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5627
5650
|
"a",
|
|
5628
5651
|
{
|
|
5629
5652
|
className: "control-btn",
|
|
5630
5653
|
href: src,
|
|
5631
5654
|
download: downloadFileName ?? true,
|
|
5632
5655
|
"aria-label": "\uB2E4\uC6B4\uB85C\uB4DC",
|
|
5633
|
-
children: /* @__PURE__ */ (0,
|
|
5656
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(DownloadIcon_default, {})
|
|
5634
5657
|
}
|
|
5635
5658
|
),
|
|
5636
|
-
/* @__PURE__ */ (0,
|
|
5659
|
+
/* @__PURE__ */ (0, import_jsx_runtime349.jsx)(
|
|
5637
5660
|
"button",
|
|
5638
5661
|
{
|
|
5639
5662
|
type: "button",
|
|
5640
5663
|
className: "control-btn",
|
|
5641
5664
|
onClick: toggleFullscreen,
|
|
5642
5665
|
"aria-label": isFullscreen ? "\uC804\uCCB4\uD654\uBA74 \uC885\uB8CC" : "\uC804\uCCB4\uD654\uBA74",
|
|
5643
|
-
children: isFullscreen ? /* @__PURE__ */ (0,
|
|
5666
|
+
children: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(MinimizeIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime349.jsx)(MaximizeIcon_default, {})
|
|
5644
5667
|
}
|
|
5645
5668
|
)
|
|
5646
5669
|
] })
|
|
@@ -5672,6 +5695,7 @@ var Video_default = Video;
|
|
|
5672
5695
|
EmptyState,
|
|
5673
5696
|
FileUpload,
|
|
5674
5697
|
HtmlTypewriter,
|
|
5698
|
+
IconButton,
|
|
5675
5699
|
ImageSelector,
|
|
5676
5700
|
Input,
|
|
5677
5701
|
InputDatePicker,
|