@x-plat/design-system 0.5.22 → 0.5.23

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.
@@ -2038,68 +2038,10 @@ Calendar.displayName = "Calendar";
2038
2038
  var Calendar_default = Calendar;
2039
2039
 
2040
2040
  // src/components/ChatInput/ChatInput.tsx
2041
- var import_react5 = __toESM(require("react"), 1);
2042
-
2043
- // src/components/TextArea/TextArea.tsx
2044
2041
  var import_react4 = __toESM(require("react"), 1);
2045
2042
  var import_jsx_runtime302 = require("react/jsx-runtime");
2046
- var TextArea = import_react4.default.forwardRef(
2047
- (props, ref) => {
2048
- const { value, onChange, disabled, ...textareaProps } = props;
2049
- const localRef = import_react4.default.useRef(null);
2050
- const setRefs = (el) => {
2051
- localRef.current = el;
2052
- if (!ref) return;
2053
- if (typeof ref === "function") {
2054
- ref(el);
2055
- } else if (ref && typeof ref === "object" && "current" in ref) {
2056
- ref.current = el;
2057
- }
2058
- };
2059
- const handleOnChange = (e) => {
2060
- const val = e.target.value;
2061
- if (onChange) {
2062
- const event = {
2063
- ...e,
2064
- target: { value: val }
2065
- };
2066
- onChange(event);
2067
- }
2068
- };
2069
- import_react4.default.useEffect(() => {
2070
- const el = localRef.current;
2071
- if (!el) return;
2072
- el.style.height = "0px";
2073
- const nextHeight = Math.min(el.scrollHeight, 400);
2074
- el.style.height = `${nextHeight}px`;
2075
- }, [value]);
2076
- return /* @__PURE__ */ (0, import_jsx_runtime302.jsx)("div", { className: "lib-xplat-textarea-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime302.jsx)(
2077
- "div",
2078
- {
2079
- className: clsx_default(
2080
- "lib-xplat-textarea",
2081
- disabled ? "disabled" : void 0
2082
- ),
2083
- children: /* @__PURE__ */ (0, import_jsx_runtime302.jsx)(
2084
- "textarea",
2085
- {
2086
- ...textareaProps,
2087
- ref: setRefs,
2088
- disabled,
2089
- value,
2090
- onChange: handleOnChange
2091
- }
2092
- )
2093
- }
2094
- ) });
2095
- }
2096
- );
2097
- TextArea.displayName = "TextArea";
2098
- var TextArea_default = TextArea;
2099
-
2100
- // src/components/ChatInput/ChatInput.tsx
2101
- var import_jsx_runtime303 = require("react/jsx-runtime");
2102
- var ChatInput = import_react5.default.forwardRef(
2043
+ var MAX_HEIGHT = 200;
2044
+ var ChatInput = import_react4.default.forwardRef(
2103
2045
  (props, ref) => {
2104
2046
  const {
2105
2047
  placeholder,
@@ -2110,9 +2052,24 @@ var ChatInput = import_react5.default.forwardRef(
2110
2052
  onChange
2111
2053
  } = props;
2112
2054
  const isControlled = valueProp !== void 0;
2113
- const [internalValue, setInternalValue] = import_react5.default.useState("");
2055
+ const [internalValue, setInternalValue] = import_react4.default.useState("");
2114
2056
  const value = isControlled ? valueProp : internalValue;
2115
2057
  const hasText = value.trim().length > 0;
2058
+ const textareaRef = import_react4.default.useRef(null);
2059
+ const setRefs = import_react4.default.useCallback(
2060
+ (el) => {
2061
+ textareaRef.current = el;
2062
+ if (typeof ref === "function") ref(el);
2063
+ else if (ref) ref.current = el;
2064
+ },
2065
+ [ref]
2066
+ );
2067
+ const updateHeight = import_react4.default.useCallback(() => {
2068
+ const el = textareaRef.current;
2069
+ if (!el) return;
2070
+ el.style.height = "0px";
2071
+ el.style.height = `${Math.min(el.scrollHeight, MAX_HEIGHT)}px`;
2072
+ }, []);
2116
2073
  const handleChange = (e) => {
2117
2074
  const val = e.target.value;
2118
2075
  if (!isControlled) setInternalValue(val);
@@ -2122,6 +2079,7 @@ var ChatInput = import_react5.default.forwardRef(
2122
2079
  if (!hasText || disabled) return;
2123
2080
  onSubmit?.(value);
2124
2081
  if (!isControlled) setInternalValue("");
2082
+ requestAnimationFrame(updateHeight);
2125
2083
  };
2126
2084
  const handleKeyDown = (e) => {
2127
2085
  if (e.key === "Enter" && !e.shiftKey) {
@@ -2129,19 +2087,24 @@ var ChatInput = import_react5.default.forwardRef(
2129
2087
  handleSubmit();
2130
2088
  }
2131
2089
  };
2132
- return /* @__PURE__ */ (0, import_jsx_runtime303.jsxs)("div", { className: clsx_default("lib-xplat-chat-input", disabled && "disabled"), children: [
2133
- /* @__PURE__ */ (0, import_jsx_runtime303.jsx)(
2134
- TextArea_default,
2090
+ import_react4.default.useEffect(() => {
2091
+ updateHeight();
2092
+ }, [value, updateHeight]);
2093
+ return /* @__PURE__ */ (0, import_jsx_runtime302.jsxs)("div", { className: clsx_default("lib-xplat-chat-input", disabled && "disabled"), children: [
2094
+ /* @__PURE__ */ (0, import_jsx_runtime302.jsx)(
2095
+ "textarea",
2135
2096
  {
2136
- ref,
2097
+ ref: setRefs,
2098
+ className: "chat-input-textarea",
2137
2099
  placeholder,
2138
2100
  value,
2139
2101
  disabled,
2102
+ rows: 1,
2140
2103
  onChange: handleChange,
2141
2104
  onKeyDown: handleKeyDown
2142
2105
  }
2143
2106
  ),
2144
- /* @__PURE__ */ (0, import_jsx_runtime303.jsx)(
2107
+ /* @__PURE__ */ (0, import_jsx_runtime302.jsx)(
2145
2108
  "button",
2146
2109
  {
2147
2110
  type: "button",
@@ -2149,7 +2112,7 @@ var ChatInput = import_react5.default.forwardRef(
2149
2112
  disabled: !hasText || disabled,
2150
2113
  onClick: handleSubmit,
2151
2114
  "aria-label": "\uC804\uC1A1",
2152
- children: /* @__PURE__ */ (0, import_jsx_runtime303.jsx)(SendIcon_default, {})
2115
+ children: /* @__PURE__ */ (0, import_jsx_runtime302.jsx)(SendIcon_default, {})
2153
2116
  }
2154
2117
  )
2155
2118
  ] });
@@ -2159,29 +2122,29 @@ ChatInput.displayName = "ChatInput";
2159
2122
  var ChatInput_default = ChatInput;
2160
2123
 
2161
2124
  // src/components/Box/Box.tsx
2162
- var import_jsx_runtime304 = require("react/jsx-runtime");
2125
+ var import_jsx_runtime303 = require("react/jsx-runtime");
2163
2126
  var Box = ({
2164
2127
  children,
2165
2128
  title,
2166
2129
  variant = "outlined",
2167
2130
  padding = "md"
2168
2131
  }) => {
2169
- return /* @__PURE__ */ (0, import_jsx_runtime304.jsxs)("div", { className: clsx_default("lib-xplat-box", variant, `pad-${padding}`), children: [
2170
- title && /* @__PURE__ */ (0, import_jsx_runtime304.jsx)("div", { className: "box-title", children: title }),
2171
- /* @__PURE__ */ (0, import_jsx_runtime304.jsx)("div", { className: "box-content", children })
2132
+ return /* @__PURE__ */ (0, import_jsx_runtime303.jsxs)("div", { className: clsx_default("lib-xplat-box", variant, `pad-${padding}`), children: [
2133
+ title && /* @__PURE__ */ (0, import_jsx_runtime303.jsx)("div", { className: "box-title", children: title }),
2134
+ /* @__PURE__ */ (0, import_jsx_runtime303.jsx)("div", { className: "box-content", children })
2172
2135
  ] });
2173
2136
  };
2174
2137
  Box.displayName = "Box";
2175
2138
  var Box_default = Box;
2176
2139
 
2177
2140
  // src/components/CardTab/CardTab.tsx
2178
- var import_react6 = __toESM(require("react"), 1);
2141
+ var import_react5 = __toESM(require("react"), 1);
2179
2142
 
2180
2143
  // src/components/CardTab/CardTabPanel.tsx
2181
- var import_jsx_runtime305 = require("react/jsx-runtime");
2144
+ var import_jsx_runtime304 = require("react/jsx-runtime");
2182
2145
  var CardTabPanel = (props) => {
2183
2146
  const { children, columns = 3 } = props;
2184
- return /* @__PURE__ */ (0, import_jsx_runtime305.jsx)(
2147
+ return /* @__PURE__ */ (0, import_jsx_runtime304.jsx)(
2185
2148
  "div",
2186
2149
  {
2187
2150
  className: "card-tab-panel",
@@ -2194,7 +2157,7 @@ CardTabPanel.displayName = "CardTab.Panel";
2194
2157
  var CardTabPanel_default = CardTabPanel;
2195
2158
 
2196
2159
  // src/components/CardTab/CardTab.tsx
2197
- var import_jsx_runtime306 = require("react/jsx-runtime");
2160
+ var import_jsx_runtime305 = require("react/jsx-runtime");
2198
2161
  var CardTabRoot = (props) => {
2199
2162
  const {
2200
2163
  tabs,
@@ -2204,7 +2167,7 @@ var CardTabRoot = (props) => {
2204
2167
  children
2205
2168
  } = props;
2206
2169
  const isControlled = activeValueProp !== void 0;
2207
- const [uncontrolledValue, setUncontrolledValue] = import_react6.default.useState(tabs[0]?.value ?? "");
2170
+ const [uncontrolledValue, setUncontrolledValue] = import_react5.default.useState(tabs[0]?.value ?? "");
2208
2171
  const activeValue = isControlled ? activeValueProp : uncontrolledValue;
2209
2172
  const handleTabClick = (tab) => {
2210
2173
  if (!isControlled) {
@@ -2212,16 +2175,16 @@ var CardTabRoot = (props) => {
2212
2175
  }
2213
2176
  onChange?.(tab);
2214
2177
  };
2215
- const panels = import_react6.default.Children.toArray(children).filter(
2216
- (child) => import_react6.default.isValidElement(child) && child.type === CardTabPanel_default
2178
+ const panels = import_react5.default.Children.toArray(children).filter(
2179
+ (child) => import_react5.default.isValidElement(child) && child.type === CardTabPanel_default
2217
2180
  );
2218
2181
  const activePanel = panels.find(
2219
2182
  (panel) => panel.props.value === activeValue
2220
2183
  );
2221
- return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("div", { className: clsx_default("lib-xplat-card-tab", size), children: [
2222
- /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("div", { className: "card-tab-bar", children: tabs.map((tab) => {
2184
+ return /* @__PURE__ */ (0, import_jsx_runtime305.jsxs)("div", { className: clsx_default("lib-xplat-card-tab", size), children: [
2185
+ /* @__PURE__ */ (0, import_jsx_runtime305.jsx)("div", { className: "card-tab-bar", children: tabs.map((tab) => {
2223
2186
  const isActive = tab.value === activeValue;
2224
- return /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2187
+ return /* @__PURE__ */ (0, import_jsx_runtime305.jsx)(
2225
2188
  "button",
2226
2189
  {
2227
2190
  className: clsx_default("card-tab-trigger", isActive && "active"),
@@ -2233,7 +2196,7 @@ var CardTabRoot = (props) => {
2233
2196
  tab.value
2234
2197
  );
2235
2198
  }) }),
2236
- /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("div", { className: "card-tab-body", children: activePanel })
2199
+ /* @__PURE__ */ (0, import_jsx_runtime305.jsx)("div", { className: "card-tab-body", children: activePanel })
2237
2200
  ] });
2238
2201
  };
2239
2202
  CardTabRoot.displayName = "CardTab";
@@ -2243,8 +2206,8 @@ var CardTab = Object.assign(CardTabRoot, {
2243
2206
  var CardTab_default = CardTab;
2244
2207
 
2245
2208
  // src/components/Chart/Chart.tsx
2246
- var import_react7 = __toESM(require("react"), 1);
2247
- var import_jsx_runtime307 = require("react/jsx-runtime");
2209
+ var import_react6 = __toESM(require("react"), 1);
2210
+ var import_jsx_runtime306 = require("react/jsx-runtime");
2248
2211
  var CATEGORICAL_COUNT2 = 8;
2249
2212
  var LINE_BAR_PALETTES = Array.from({ length: CATEGORICAL_COUNT2 }, (_, i) => {
2250
2213
  const n = i + 1;
@@ -2290,11 +2253,11 @@ var toSmoothPath = (points) => {
2290
2253
  };
2291
2254
  var RESIZE_SETTLE_MS = 150;
2292
2255
  var useChartSize = (ref) => {
2293
- const [size, setSize] = import_react7.default.useState({ width: 0, height: 0 });
2294
- const settleTimer = import_react7.default.useRef(0);
2295
- const committedSize = import_react7.default.useRef({ width: 0, height: 0 });
2296
- const initialRef = import_react7.default.useRef(true);
2297
- import_react7.default.useEffect(() => {
2256
+ const [size, setSize] = import_react6.default.useState({ width: 0, height: 0 });
2257
+ const settleTimer = import_react6.default.useRef(0);
2258
+ const committedSize = import_react6.default.useRef({ width: 0, height: 0 });
2259
+ const initialRef = import_react6.default.useRef(true);
2260
+ import_react6.default.useEffect(() => {
2298
2261
  const el = ref.current;
2299
2262
  if (!el) return;
2300
2263
  const observer = new ResizeObserver((entries) => {
@@ -2336,10 +2299,10 @@ var useChartSize = (ref) => {
2336
2299
  };
2337
2300
  var prefersReducedMotion = () => typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
2338
2301
  var useChartAnimation = (containerRef, dataKey) => {
2339
- const [animate, setAnimate] = import_react7.default.useState(false);
2340
- const prevDataKey = import_react7.default.useRef(dataKey);
2341
- const hasAnimated = import_react7.default.useRef(false);
2342
- import_react7.default.useEffect(() => {
2302
+ const [animate, setAnimate] = import_react6.default.useState(false);
2303
+ const prevDataKey = import_react6.default.useRef(dataKey);
2304
+ const hasAnimated = import_react6.default.useRef(false);
2305
+ import_react6.default.useEffect(() => {
2343
2306
  if (prefersReducedMotion()) return;
2344
2307
  const el = containerRef.current;
2345
2308
  if (!el) return;
@@ -2355,7 +2318,7 @@ var useChartAnimation = (containerRef, dataKey) => {
2355
2318
  observer.observe(el);
2356
2319
  return () => observer.disconnect();
2357
2320
  }, [containerRef]);
2358
- import_react7.default.useEffect(() => {
2321
+ import_react6.default.useEffect(() => {
2359
2322
  if (dataKey !== prevDataKey.current) {
2360
2323
  prevDataKey.current = dataKey;
2361
2324
  if (prefersReducedMotion()) return;
@@ -2366,15 +2329,15 @@ var useChartAnimation = (containerRef, dataKey) => {
2366
2329
  return animate || prefersReducedMotion();
2367
2330
  };
2368
2331
  var useChartTooltip = (enabled) => {
2369
- const [tooltip, setTooltip] = import_react7.default.useState({
2332
+ const [tooltip, setTooltip] = import_react6.default.useState({
2370
2333
  visible: false,
2371
2334
  x: 0,
2372
2335
  y: 0,
2373
2336
  content: ""
2374
2337
  });
2375
- const containerRef = import_react7.default.useRef(null);
2376
- const rafRef = import_react7.default.useRef(0);
2377
- const move = import_react7.default.useCallback((e) => {
2338
+ const containerRef = import_react6.default.useRef(null);
2339
+ const rafRef = import_react6.default.useRef(0);
2340
+ const move = import_react6.default.useCallback((e) => {
2378
2341
  if (!enabled) return;
2379
2342
  const clientX = e.clientX;
2380
2343
  const clientY = e.clientY;
@@ -2389,7 +2352,7 @@ var useChartTooltip = (enabled) => {
2389
2352
  }));
2390
2353
  });
2391
2354
  }, [enabled]);
2392
- const show = import_react7.default.useCallback((e, content) => {
2355
+ const show = import_react6.default.useCallback((e, content) => {
2393
2356
  if (!enabled) return;
2394
2357
  const rect = containerRef.current?.getBoundingClientRect();
2395
2358
  if (!rect) return;
@@ -2400,18 +2363,18 @@ var useChartTooltip = (enabled) => {
2400
2363
  content
2401
2364
  });
2402
2365
  }, [enabled]);
2403
- const hide = import_react7.default.useCallback(() => {
2366
+ const hide = import_react6.default.useCallback(() => {
2404
2367
  cancelAnimationFrame(rafRef.current);
2405
2368
  setTooltip((prev) => ({ ...prev, visible: false }));
2406
2369
  }, []);
2407
2370
  return { tooltip, show, hide, move, containerRef };
2408
2371
  };
2409
- var GridLines = import_react7.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) => {
2372
+ var GridLines = import_react6.default.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(import_jsx_runtime306.Fragment, { children: [0, 0.25, 0.5, 0.75, 1].map((ratio) => {
2410
2373
  const y = PADDING.top + (1 - ratio) * chartH;
2411
2374
  const val = Math.round(maxVal * ratio);
2412
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("g", { children: [
2413
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("line", { x1: PADDING.left, y1: y, x2: width - PADDING.right, y2: y, className: "chart-grid" }),
2414
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("text", { x: PADDING.left - 8, y: y + 4, className: "chart-axis-label", textAnchor: "end", children: val })
2375
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("g", { children: [
2376
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("line", { x1: PADDING.left, y1: y, x2: width - PADDING.right, y2: y, className: "chart-grid" }),
2377
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("text", { x: PADDING.left - 8, y: y + 4, className: "chart-axis-label", textAnchor: "end", children: val })
2415
2378
  ] }, ratio);
2416
2379
  }) }));
2417
2380
  GridLines.displayName = "GridLines";
@@ -2421,25 +2384,25 @@ var getLabelStep = (count, chartW) => {
2421
2384
  if (count <= maxLabels) return 1;
2422
2385
  return Math.ceil(count / maxLabels);
2423
2386
  };
2424
- var AxisLabels = import_react7.default.memo(({ labels, count, chartW, height }) => {
2387
+ var AxisLabels = import_react6.default.memo(({ labels, count, chartW, height }) => {
2425
2388
  const step = getLabelStep(count, chartW);
2426
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(import_jsx_runtime307.Fragment, { children: labels.map((label, i) => {
2389
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(import_jsx_runtime306.Fragment, { children: labels.map((label, i) => {
2427
2390
  if (i % step !== 0) return null;
2428
2391
  const x = PADDING.left + i / (count - 1 || 1) * chartW;
2429
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
2392
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
2430
2393
  }) });
2431
2394
  });
2432
2395
  AxisLabels.displayName = "AxisLabels";
2433
- var LineChart = import_react7.default.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2434
- const entries = import_react7.default.useMemo(() => Object.entries(data), [data]);
2435
- const maxVal = import_react7.default.useMemo(() => {
2396
+ var LineChart = import_react6.default.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2397
+ const entries = import_react6.default.useMemo(() => Object.entries(data), [data]);
2398
+ const maxVal = import_react6.default.useMemo(() => {
2436
2399
  const allValues = entries.flatMap(([, v]) => v);
2437
2400
  return Math.max(...allValues) * 1.2 || 1;
2438
2401
  }, [entries]);
2439
2402
  const count = labels.length;
2440
2403
  const chartW = width - PADDING.left - PADDING.right;
2441
2404
  const chartH = height - PADDING.top - PADDING.bottom;
2442
- const seriesPoints = import_react7.default.useMemo(
2405
+ const seriesPoints = import_react6.default.useMemo(
2443
2406
  () => entries.map(
2444
2407
  ([, values]) => values.map((v, i) => ({
2445
2408
  x: PADDING.left + i / (count - 1 || 1) * chartW,
@@ -2450,8 +2413,8 @@ var LineChart = import_react7.default.memo(({ data, labels, width, height, anima
2450
2413
  [entries, count, chartW, chartH, maxVal]
2451
2414
  );
2452
2415
  const showPoints = count <= 100;
2453
- const lineRefs = import_react7.default.useRef([]);
2454
- import_react7.default.useEffect(() => {
2416
+ const lineRefs = import_react6.default.useRef([]);
2417
+ import_react6.default.useEffect(() => {
2455
2418
  if (!animate) return;
2456
2419
  lineRefs.current.forEach((el) => {
2457
2420
  if (!el) return;
@@ -2464,9 +2427,9 @@ var LineChart = import_react7.default.memo(({ data, labels, width, height, anima
2464
2427
  });
2465
2428
  });
2466
2429
  }, [animate, seriesPoints]);
2467
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2468
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(GridLines, { width, height, chartH, maxVal }),
2469
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(AxisLabels, { labels, count, chartW, height }),
2430
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2431
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(GridLines, { width, height, chartH, maxVal }),
2432
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(AxisLabels, { labels, count, chartW, height }),
2470
2433
  entries.map(([key], di) => {
2471
2434
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
2472
2435
  const color = palette[2];
@@ -2475,12 +2438,12 @@ var LineChart = import_react7.default.memo(({ data, labels, width, height, anima
2475
2438
  const gradientId = `line-gradient-${di}`;
2476
2439
  const polyPoints = points.map((p) => `${p.x},${p.y}`).join(" ");
2477
2440
  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`;
2478
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("g", { children: [
2479
- /* @__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: [
2480
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.2" }),
2481
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0" })
2441
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("g", { children: [
2442
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
2443
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.2" }),
2444
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0" })
2482
2445
  ] }) }),
2483
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2446
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2484
2447
  "path",
2485
2448
  {
2486
2449
  d: areaD,
@@ -2489,7 +2452,7 @@ var LineChart = import_react7.default.memo(({ data, labels, width, height, anima
2489
2452
  style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
2490
2453
  }
2491
2454
  ),
2492
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2455
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2493
2456
  "polyline",
2494
2457
  {
2495
2458
  ref: (el) => {
@@ -2501,7 +2464,7 @@ var LineChart = import_react7.default.memo(({ data, labels, width, height, anima
2501
2464
  strokeWidth: "2"
2502
2465
  }
2503
2466
  ),
2504
- showPoints && points.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2467
+ showPoints && points.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2505
2468
  "circle",
2506
2469
  {
2507
2470
  cx: p.x,
@@ -2520,16 +2483,16 @@ var LineChart = import_react7.default.memo(({ data, labels, width, height, anima
2520
2483
  ] });
2521
2484
  });
2522
2485
  LineChart.displayName = "LineChart";
2523
- var CurveChart = import_react7.default.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2524
- const entries = import_react7.default.useMemo(() => Object.entries(data), [data]);
2525
- const maxVal = import_react7.default.useMemo(() => {
2486
+ var CurveChart = import_react6.default.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2487
+ const entries = import_react6.default.useMemo(() => Object.entries(data), [data]);
2488
+ const maxVal = import_react6.default.useMemo(() => {
2526
2489
  const allValues = entries.flatMap(([, v]) => v);
2527
2490
  return Math.max(...allValues) * 1.2 || 1;
2528
2491
  }, [entries]);
2529
2492
  const count = labels.length;
2530
2493
  const chartW = width - PADDING.left - PADDING.right;
2531
2494
  const chartH = height - PADDING.top - PADDING.bottom;
2532
- const seriesPoints = import_react7.default.useMemo(
2495
+ const seriesPoints = import_react6.default.useMemo(
2533
2496
  () => entries.map(
2534
2497
  ([, values]) => values.map((v, i) => ({
2535
2498
  x: PADDING.left + i / (count - 1 || 1) * chartW,
@@ -2540,8 +2503,8 @@ var CurveChart = import_react7.default.memo(({ data, labels, width, height, anim
2540
2503
  [entries, count, chartW, chartH, maxVal]
2541
2504
  );
2542
2505
  const showPoints = count <= 100;
2543
- const lineRefs = import_react7.default.useRef([]);
2544
- import_react7.default.useEffect(() => {
2506
+ const lineRefs = import_react6.default.useRef([]);
2507
+ import_react6.default.useEffect(() => {
2545
2508
  if (!animate) return;
2546
2509
  lineRefs.current.forEach((el) => {
2547
2510
  if (!el) return;
@@ -2554,9 +2517,9 @@ var CurveChart = import_react7.default.memo(({ data, labels, width, height, anim
2554
2517
  });
2555
2518
  });
2556
2519
  }, [animate, seriesPoints]);
2557
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2558
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(GridLines, { width, height, chartH, maxVal }),
2559
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(AxisLabels, { labels, count, chartW, height }),
2520
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2521
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(GridLines, { width, height, chartH, maxVal }),
2522
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(AxisLabels, { labels, count, chartW, height }),
2560
2523
  entries.map(([key], di) => {
2561
2524
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
2562
2525
  const color = palette[2];
@@ -2565,12 +2528,12 @@ var CurveChart = import_react7.default.memo(({ data, labels, width, height, anim
2565
2528
  const gradientId = `curve-gradient-${di}`;
2566
2529
  const linePath = toSmoothPath(points);
2567
2530
  const areaPath = linePath + ` L ${points[points.length - 1].x} ${PADDING.top + chartH} L ${points[0].x} ${PADDING.top + chartH} Z`;
2568
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("g", { children: [
2569
- /* @__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: [
2570
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.4" }),
2571
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0.02" })
2531
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("g", { children: [
2532
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
2533
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.4" }),
2534
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0.02" })
2572
2535
  ] }) }),
2573
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2536
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2574
2537
  "path",
2575
2538
  {
2576
2539
  d: areaPath,
@@ -2579,7 +2542,7 @@ var CurveChart = import_react7.default.memo(({ data, labels, width, height, anim
2579
2542
  style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
2580
2543
  }
2581
2544
  ),
2582
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2545
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2583
2546
  "path",
2584
2547
  {
2585
2548
  ref: (el) => {
@@ -2591,7 +2554,7 @@ var CurveChart = import_react7.default.memo(({ data, labels, width, height, anim
2591
2554
  strokeWidth: "2"
2592
2555
  }
2593
2556
  ),
2594
- showPoints && points.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2557
+ showPoints && points.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2595
2558
  "circle",
2596
2559
  {
2597
2560
  cx: p.x,
@@ -2610,9 +2573,9 @@ var CurveChart = import_react7.default.memo(({ data, labels, width, height, anim
2610
2573
  ] });
2611
2574
  });
2612
2575
  CurveChart.displayName = "CurveChart";
2613
- var BarChart = import_react7.default.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2614
- const entries = import_react7.default.useMemo(() => Object.entries(data), [data]);
2615
- const maxVal = import_react7.default.useMemo(() => {
2576
+ var BarChart = import_react6.default.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2577
+ const entries = import_react6.default.useMemo(() => Object.entries(data), [data]);
2578
+ const maxVal = import_react6.default.useMemo(() => {
2616
2579
  const allValues = entries.flatMap(([, v]) => v);
2617
2580
  return Math.max(...allValues) * 1.2 || 1;
2618
2581
  }, [entries]);
@@ -2624,7 +2587,7 @@ var BarChart = import_react7.default.memo(({ data, labels, width, height, animat
2624
2587
  const barGap = groupCount > 1 ? 2 : 0;
2625
2588
  const barW = Math.max(1, Math.min(32, (groupW * 0.7 - barGap * (groupCount - 1)) / groupCount));
2626
2589
  const baseline = PADDING.top + chartH;
2627
- const bars = import_react7.default.useMemo(
2590
+ const bars = import_react6.default.useMemo(
2628
2591
  () => entries.map(
2629
2592
  ([, values], di) => values.map((v, i) => {
2630
2593
  const totalBarsW = barW * groupCount + barGap * (groupCount - 1);
@@ -2637,11 +2600,11 @@ var BarChart = import_react7.default.memo(({ data, labels, width, height, animat
2637
2600
  [entries, maxVal, chartH, groupW, barW, barGap, groupCount]
2638
2601
  );
2639
2602
  const barLabelStep = getLabelStep(count, chartW);
2640
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2641
- /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(GridLines, { width, height, chartH, maxVal }),
2603
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2604
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(GridLines, { width, height, chartH, maxVal }),
2642
2605
  labels.map((label, i) => {
2643
2606
  if (i % barLabelStep !== 0) return null;
2644
- 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);
2607
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("text", { x: PADDING.left + groupW * i + groupW / 2, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
2645
2608
  }),
2646
2609
  entries.map(([key], di) => {
2647
2610
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
@@ -2650,7 +2613,7 @@ var BarChart = import_react7.default.memo(({ data, labels, width, height, animat
2650
2613
  const r2 = Math.min(4, b.w / 2);
2651
2614
  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`;
2652
2615
  const delay = 100 + i * 80;
2653
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2616
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2654
2617
  "path",
2655
2618
  {
2656
2619
  d,
@@ -2671,11 +2634,11 @@ var BarChart = import_react7.default.memo(({ data, labels, width, height, animat
2671
2634
  ] });
2672
2635
  });
2673
2636
  BarChart.displayName = "BarChart";
2674
- var PieDonutChart = import_react7.default.memo(
2637
+ var PieDonutChart = import_react6.default.memo(
2675
2638
  ({ data, labels, width, height, animate, isDoughnut, onHover, onMove, onLeave }) => {
2676
- const entries = import_react7.default.useMemo(() => Object.entries(data), [data]);
2677
- const values = import_react7.default.useMemo(() => entries.flatMap(([, v]) => v), [entries]);
2678
- const total = import_react7.default.useMemo(() => values.reduce((a, b) => a + b, 0) || 1, [values]);
2639
+ const entries = import_react6.default.useMemo(() => Object.entries(data), [data]);
2640
+ const values = import_react6.default.useMemo(() => entries.flatMap(([, v]) => v), [entries]);
2641
+ const total = import_react6.default.useMemo(() => values.reduce((a, b) => a + b, 0) || 1, [values]);
2679
2642
  const size = Math.min(width, height);
2680
2643
  const cx = size / 2;
2681
2644
  const cy = size / 2;
@@ -2683,10 +2646,10 @@ var PieDonutChart = import_react7.default.memo(
2683
2646
  const innerR = isDoughnut ? r2 * 0.5 : 0;
2684
2647
  const firstKey = entries[0]?.[0] ?? "";
2685
2648
  const colorOffset = hashString(firstKey);
2686
- const maskRef = import_react7.default.useRef(null);
2649
+ const maskRef = import_react6.default.useRef(null);
2687
2650
  const maskR = r2 + 10;
2688
2651
  const maskCircumference = 2 * Math.PI * maskR;
2689
- import_react7.default.useEffect(() => {
2652
+ import_react6.default.useEffect(() => {
2690
2653
  if (!animate || !maskRef.current) return;
2691
2654
  const el = maskRef.current;
2692
2655
  el.style.strokeDasharray = `${maskCircumference}`;
@@ -2696,7 +2659,7 @@ var PieDonutChart = import_react7.default.memo(
2696
2659
  el.style.strokeDashoffset = "0";
2697
2660
  });
2698
2661
  }, [animate, maskCircumference]);
2699
- const sliceData = import_react7.default.useMemo(() => {
2662
+ const sliceData = import_react6.default.useMemo(() => {
2700
2663
  let angle0 = -Math.PI / 2;
2701
2664
  let cumulativeAngle = 0;
2702
2665
  return values.map((v, i) => {
@@ -2730,8 +2693,8 @@ var PieDonutChart = import_react7.default.memo(
2730
2693
  });
2731
2694
  }, [values, total, cx, cy, r2, innerR, labels]);
2732
2695
  const maskId = `pie-mask-${isDoughnut ? "d" : "p"}`;
2733
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("svg", { viewBox: `0 0 ${size} ${size}`, className: "chart-svg chart-pie", children: [
2734
- 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)(
2696
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("svg", { viewBox: `0 0 ${size} ${size}`, className: "chart-svg chart-pie", children: [
2697
+ animate && /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("mask", { id: maskId, children: /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2735
2698
  "circle",
2736
2699
  {
2737
2700
  ref: maskRef,
@@ -2744,7 +2707,7 @@ var PieDonutChart = import_react7.default.memo(
2744
2707
  transform: `rotate(-90 ${cx} ${cy})`
2745
2708
  }
2746
2709
  ) }) }),
2747
- /* @__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)(
2710
+ /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("g", { mask: animate ? `url(#${maskId})` : void 0, children: sliceData.map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime306.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2748
2711
  "path",
2749
2712
  {
2750
2713
  d: s.d,
@@ -2755,7 +2718,7 @@ var PieDonutChart = import_react7.default.memo(
2755
2718
  onMouseLeave: onLeave
2756
2719
  }
2757
2720
  ) }, i)) }),
2758
- sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2721
+ sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2759
2722
  "text",
2760
2723
  {
2761
2724
  x: s.lx,
@@ -2773,9 +2736,9 @@ var PieDonutChart = import_react7.default.memo(
2773
2736
  );
2774
2737
  PieDonutChart.displayName = "PieDonutChart";
2775
2738
  var TooltipBubble = ({ x, y, containerWidth, children }) => {
2776
- const ref = import_react7.default.useRef(null);
2777
- const [adjustedX, setAdjustedX] = import_react7.default.useState(x);
2778
- import_react7.default.useEffect(() => {
2739
+ const ref = import_react6.default.useRef(null);
2740
+ const [adjustedX, setAdjustedX] = import_react6.default.useState(x);
2741
+ import_react6.default.useEffect(() => {
2779
2742
  const el = ref.current;
2780
2743
  if (!el) return;
2781
2744
  const w = el.offsetWidth;
@@ -2786,7 +2749,7 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
2786
2749
  else if (x + half > containerWidth - margin) nx = containerWidth - half - margin;
2787
2750
  setAdjustedX(nx);
2788
2751
  }, [x, containerWidth]);
2789
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2752
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(
2790
2753
  "div",
2791
2754
  {
2792
2755
  ref,
@@ -2796,22 +2759,22 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
2796
2759
  }
2797
2760
  );
2798
2761
  };
2799
- var Chart = import_react7.default.memo((props) => {
2762
+ var Chart = import_react6.default.memo((props) => {
2800
2763
  const { type, data, labels, tooltip: showTooltip = true } = props;
2801
2764
  const { tooltip, show, hide, move, containerRef } = useChartTooltip(showTooltip);
2802
2765
  const { width, height } = useChartSize(containerRef);
2803
- const stableData = import_react7.default.useMemo(() => data, [JSON.stringify(data)]);
2804
- const stableLabels = import_react7.default.useMemo(() => labels, [JSON.stringify(labels)]);
2805
- const dataKey = import_react7.default.useMemo(() => JSON.stringify(labels), [labels]);
2766
+ const stableData = import_react6.default.useMemo(() => data, [JSON.stringify(data)]);
2767
+ const stableLabels = import_react6.default.useMemo(() => labels, [JSON.stringify(labels)]);
2768
+ const dataKey = import_react6.default.useMemo(() => JSON.stringify(labels), [labels]);
2806
2769
  const animate = useChartAnimation(containerRef, dataKey);
2807
2770
  const ready = width > 0 && height > 0;
2808
- return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("div", { className: "lib-xplat-chart", ref: containerRef, children: [
2809
- ready && type === "line" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(LineChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2810
- ready && type === "curve" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(CurveChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2811
- ready && type === "bar" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(BarChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2812
- ready && type === "pie" && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2813
- 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 }),
2814
- tooltip.visible && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(TooltipBubble, { x: tooltip.x, y: tooltip.y, containerWidth: width, children: tooltip.content })
2771
+ return /* @__PURE__ */ (0, import_jsx_runtime306.jsxs)("div", { className: "lib-xplat-chart", ref: containerRef, children: [
2772
+ ready && type === "line" && /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(LineChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2773
+ ready && type === "curve" && /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(CurveChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2774
+ ready && type === "bar" && /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(BarChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2775
+ ready && type === "pie" && /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2776
+ ready && type === "doughnut" && /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, isDoughnut: true, onHover: show, onMove: move, onLeave: hide }),
2777
+ tooltip.visible && /* @__PURE__ */ (0, import_jsx_runtime306.jsx)(TooltipBubble, { x: tooltip.x, y: tooltip.y, containerWidth: width, children: tooltip.content })
2815
2778
  ] });
2816
2779
  });
2817
2780
  Chart.displayName = "Chart";
@@ -2824,7 +2787,7 @@ var import_tokens_core = require("@x-plat/tokens-core");
2824
2787
  var import_tokens_core2 = require("@x-plat/tokens-core");
2825
2788
 
2826
2789
  // src/components/CheckBox/CheckBox.tsx
2827
- var import_jsx_runtime308 = require("react/jsx-runtime");
2790
+ var import_jsx_runtime307 = require("react/jsx-runtime");
2828
2791
  var CheckBox = (props) => {
2829
2792
  const {
2830
2793
  checked,
@@ -2842,8 +2805,8 @@ var CheckBox = (props) => {
2842
2805
  const checkedClasses = `checked`;
2843
2806
  const disabledClasses = "disabled";
2844
2807
  const boxClasses = disabled ? disabledClasses : checked ? checkedClasses : uncheckedClasses;
2845
- return /* @__PURE__ */ (0, import_jsx_runtime308.jsxs)("label", { className: clsx_default("lib-xplat-checkbox", size, type), children: [
2846
- /* @__PURE__ */ (0, import_jsx_runtime308.jsx)(
2808
+ return /* @__PURE__ */ (0, import_jsx_runtime307.jsxs)("label", { className: clsx_default("lib-xplat-checkbox", size, type), children: [
2809
+ /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(
2847
2810
  "input",
2848
2811
  {
2849
2812
  type: "checkbox",
@@ -2853,44 +2816,44 @@ var CheckBox = (props) => {
2853
2816
  ...rest
2854
2817
  }
2855
2818
  ),
2856
- /* @__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, {}) }) }),
2857
- label && /* @__PURE__ */ (0, import_jsx_runtime308.jsx)("span", { className: "label", children: label })
2819
+ /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("span", { className: clsx_default("checkbox", boxClasses), children: /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("span", { className: clsx_default("check-icon", { visible: checked }), children: /* @__PURE__ */ (0, import_jsx_runtime307.jsx)(CheckIcon_default, {}) }) }),
2820
+ label && /* @__PURE__ */ (0, import_jsx_runtime307.jsx)("span", { className: "label", children: label })
2858
2821
  ] });
2859
2822
  };
2860
2823
  CheckBox.displayName = "CheckBox";
2861
2824
  var CheckBox_default = CheckBox;
2862
2825
 
2863
2826
  // src/components/Chip/Chip.tsx
2864
- var import_jsx_runtime309 = require("react/jsx-runtime");
2827
+ var import_jsx_runtime308 = require("react/jsx-runtime");
2865
2828
  var Chip = (props) => {
2866
2829
  const {
2867
2830
  children,
2868
2831
  type = "primary",
2869
2832
  size = "md"
2870
2833
  } = props;
2871
- return /* @__PURE__ */ (0, import_jsx_runtime309.jsx)("div", { className: clsx_default("lib-xplat-chip", type, size), children });
2834
+ return /* @__PURE__ */ (0, import_jsx_runtime308.jsx)("div", { className: clsx_default("lib-xplat-chip", type, size), children });
2872
2835
  };
2873
2836
  Chip.displayName = "Chip";
2874
2837
  var Chip_default = Chip;
2875
2838
 
2876
2839
  // src/components/DatePicker/InputDatePicker/index.tsx
2877
- var import_react14 = __toESM(require("react"), 1);
2840
+ var import_react13 = __toESM(require("react"), 1);
2878
2841
 
2879
2842
  // src/components/Input/Input.tsx
2880
- var import_react8 = __toESM(require("react"), 1);
2843
+ var import_react7 = __toESM(require("react"), 1);
2881
2844
 
2882
2845
  // src/components/Input/InputValidations.tsx
2883
- var import_jsx_runtime310 = require("react/jsx-runtime");
2846
+ var import_jsx_runtime309 = require("react/jsx-runtime");
2884
2847
  var InputValidations = (props) => {
2885
2848
  const { message, status = "default" } = props;
2886
- return /* @__PURE__ */ (0, import_jsx_runtime310.jsxs)("div", { className: clsx_default("lib-xplat-input-validation", status), children: [
2887
- /* @__PURE__ */ (0, import_jsx_runtime310.jsxs)("div", { className: "icon", children: [
2888
- status === "default" && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(InfoIcon_default, {}),
2889
- status === "success" && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(SuccessIcon_default, {}),
2890
- status === "warning" && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(InfoIcon_default, {}),
2891
- status === "error" && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(ErrorIcon_default, {})
2849
+ return /* @__PURE__ */ (0, import_jsx_runtime309.jsxs)("div", { className: clsx_default("lib-xplat-input-validation", status), children: [
2850
+ /* @__PURE__ */ (0, import_jsx_runtime309.jsxs)("div", { className: "icon", children: [
2851
+ status === "default" && /* @__PURE__ */ (0, import_jsx_runtime309.jsx)(InfoIcon_default, {}),
2852
+ status === "success" && /* @__PURE__ */ (0, import_jsx_runtime309.jsx)(SuccessIcon_default, {}),
2853
+ status === "warning" && /* @__PURE__ */ (0, import_jsx_runtime309.jsx)(InfoIcon_default, {}),
2854
+ status === "error" && /* @__PURE__ */ (0, import_jsx_runtime309.jsx)(ErrorIcon_default, {})
2892
2855
  ] }),
2893
- /* @__PURE__ */ (0, import_jsx_runtime310.jsx)("div", { className: "message", children: message })
2856
+ /* @__PURE__ */ (0, import_jsx_runtime309.jsx)("div", { className: "message", children: message })
2894
2857
  ] });
2895
2858
  };
2896
2859
  InputValidations.displayName = "InputValidations";
@@ -2931,8 +2894,8 @@ var handleTelBackspace = (prevValue, currValue) => {
2931
2894
  };
2932
2895
 
2933
2896
  // src/components/Input/Input.tsx
2934
- var import_jsx_runtime311 = require("react/jsx-runtime");
2935
- var import_react9 = require("react");
2897
+ var import_jsx_runtime310 = require("react/jsx-runtime");
2898
+ var import_react8 = require("react");
2936
2899
  var formatValue = (type, value) => {
2937
2900
  if (value === null || value === void 0) return "";
2938
2901
  const strValue = Array.isArray(value) ? String(value[0] ?? "") : String(value);
@@ -2980,7 +2943,7 @@ var parseValue = (type, value) => {
2980
2943
  return value;
2981
2944
  }
2982
2945
  };
2983
- var Input = import_react8.default.forwardRef((props, ref) => {
2946
+ var Input = import_react7.default.forwardRef((props, ref) => {
2984
2947
  const {
2985
2948
  value,
2986
2949
  onChange,
@@ -3006,13 +2969,13 @@ var Input = import_react8.default.forwardRef((props, ref) => {
3006
2969
  onChange(event);
3007
2970
  }
3008
2971
  };
3009
- return /* @__PURE__ */ (0, import_jsx_runtime311.jsxs)("div", { className: "lib-xplat-input-wrap", children: [
3010
- /* @__PURE__ */ (0, import_jsx_runtime311.jsxs)(
2972
+ return /* @__PURE__ */ (0, import_jsx_runtime310.jsxs)("div", { className: "lib-xplat-input-wrap", children: [
2973
+ /* @__PURE__ */ (0, import_jsx_runtime310.jsxs)(
3011
2974
  "div",
3012
2975
  {
3013
2976
  className: clsx_default("lib-xplat-input", size, disabled ? "disabled" : void 0),
3014
2977
  children: [
3015
- /* @__PURE__ */ (0, import_jsx_runtime311.jsx)(
2978
+ /* @__PURE__ */ (0, import_jsx_runtime310.jsx)(
3016
2979
  "input",
3017
2980
  {
3018
2981
  ...inputProps,
@@ -3023,11 +2986,11 @@ var Input = import_react8.default.forwardRef((props, ref) => {
3023
2986
  onChange: handleChange
3024
2987
  }
3025
2988
  ),
3026
- suffix && /* @__PURE__ */ (0, import_jsx_runtime311.jsx)("div", { className: "suffix", children: suffix })
2989
+ suffix && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)("div", { className: "suffix", children: suffix })
3027
2990
  ]
3028
2991
  }
3029
2992
  ),
3030
- validations && /* @__PURE__ */ (0, import_jsx_runtime311.jsx)("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ (0, import_react9.createElement)(
2993
+ validations && /* @__PURE__ */ (0, import_jsx_runtime310.jsx)("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ (0, import_react8.createElement)(
3031
2994
  InputValidations_default,
3032
2995
  {
3033
2996
  ...validation,
@@ -3040,20 +3003,20 @@ Input.displayName = "Input";
3040
3003
  var Input_default = Input;
3041
3004
 
3042
3005
  // src/components/Input/PasswordInput/PasswordInput.tsx
3043
- var import_react10 = __toESM(require("react"), 1);
3044
- var import_jsx_runtime312 = require("react/jsx-runtime");
3045
- var PasswordInput = import_react10.default.forwardRef(
3006
+ var import_react9 = __toESM(require("react"), 1);
3007
+ var import_jsx_runtime311 = require("react/jsx-runtime");
3008
+ var PasswordInput = import_react9.default.forwardRef(
3046
3009
  (props, ref) => {
3047
3010
  const { reg: _reg, ...inputProps } = props;
3048
- const [isView, setIsView] = import_react10.default.useState(false);
3011
+ const [isView, setIsView] = import_react9.default.useState(false);
3049
3012
  const handleChangeView = () => {
3050
3013
  setIsView((prev) => !prev);
3051
3014
  };
3052
- return /* @__PURE__ */ (0, import_jsx_runtime312.jsx)(
3015
+ return /* @__PURE__ */ (0, import_jsx_runtime311.jsx)(
3053
3016
  Input_default,
3054
3017
  {
3055
3018
  ...inputProps,
3056
- 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, {}) }),
3019
+ suffix: /* @__PURE__ */ (0, import_jsx_runtime311.jsx)("div", { className: "wrapper pointer", onClick: handleChangeView, children: isView ? /* @__PURE__ */ (0, import_jsx_runtime311.jsx)(OpenEyeIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime311.jsx)(CloseEyeIcon_default, {}) }),
3057
3020
  type: isView ? "text" : "password",
3058
3021
  ref
3059
3022
  }
@@ -3064,17 +3027,17 @@ PasswordInput.displayName = "PasswordInput";
3064
3027
  var PasswordInput_default = PasswordInput;
3065
3028
 
3066
3029
  // src/components/Modal/Modal.tsx
3067
- var import_react12 = __toESM(require("react"), 1);
3030
+ var import_react11 = __toESM(require("react"), 1);
3068
3031
  var import_react_dom2 = require("react-dom");
3069
3032
 
3070
3033
  // src/tokens/hooks/Portal.tsx
3071
- var import_react11 = __toESM(require("react"), 1);
3034
+ var import_react10 = __toESM(require("react"), 1);
3072
3035
  var import_react_dom = __toESM(require("react-dom"), 1);
3073
- var import_jsx_runtime313 = require("react/jsx-runtime");
3074
- var PortalContainerContext = import_react11.default.createContext(null);
3075
- var PortalProvider = ({ container, children }) => /* @__PURE__ */ (0, import_jsx_runtime313.jsx)(PortalContainerContext.Provider, { value: container, children });
3036
+ var import_jsx_runtime312 = require("react/jsx-runtime");
3037
+ var PortalContainerContext = import_react10.default.createContext(null);
3038
+ var PortalProvider = ({ container, children }) => /* @__PURE__ */ (0, import_jsx_runtime312.jsx)(PortalContainerContext.Provider, { value: container, children });
3076
3039
  var Portal = ({ children }) => {
3077
- const contextContainer = import_react11.default.useContext(PortalContainerContext);
3040
+ const contextContainer = import_react10.default.useContext(PortalContainerContext);
3078
3041
  if (typeof document === "undefined") return null;
3079
3042
  const container = contextContainer ?? document.body;
3080
3043
  return import_react_dom.default.createPortal(children, container);
@@ -3083,14 +3046,14 @@ Portal.displayName = "Portal";
3083
3046
  var Portal_default = Portal;
3084
3047
 
3085
3048
  // src/components/Modal/Modal.tsx
3086
- var import_jsx_runtime314 = require("react/jsx-runtime");
3049
+ var import_jsx_runtime313 = require("react/jsx-runtime");
3087
3050
  var ANIMATION_DURATION_MS = 200;
3088
3051
  var Modal = (props) => {
3089
3052
  const { isOpen, onClose, children } = props;
3090
- const [mounted, setMounted] = import_react12.default.useState(false);
3091
- const [visible, setVisible] = import_react12.default.useState(false);
3092
- const boxRef = import_react12.default.useRef(null);
3093
- import_react12.default.useEffect(() => {
3053
+ const [mounted, setMounted] = import_react11.default.useState(false);
3054
+ const [visible, setVisible] = import_react11.default.useState(false);
3055
+ const boxRef = import_react11.default.useRef(null);
3056
+ import_react11.default.useEffect(() => {
3094
3057
  if (isOpen) {
3095
3058
  setMounted(true);
3096
3059
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -3104,12 +3067,12 @@ var Modal = (props) => {
3104
3067
  if (!mounted) return null;
3105
3068
  const stateClass = visible ? "enter" : "exit";
3106
3069
  return (0, import_react_dom2.createPortal)(
3107
- /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
3070
+ /* @__PURE__ */ (0, import_jsx_runtime313.jsx)(
3108
3071
  "div",
3109
3072
  {
3110
3073
  className: clsx_default("lib-xplat-modal", "dim", stateClass),
3111
3074
  onClick: onClose,
3112
- children: /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
3075
+ children: /* @__PURE__ */ (0, import_jsx_runtime313.jsx)(
3113
3076
  "div",
3114
3077
  {
3115
3078
  ref: boxRef,
@@ -3117,7 +3080,7 @@ var Modal = (props) => {
3117
3080
  role: "dialog",
3118
3081
  "aria-modal": "true",
3119
3082
  onClick: (e) => e.stopPropagation(),
3120
- children: /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(PortalProvider, { container: boxRef.current, children })
3083
+ children: /* @__PURE__ */ (0, import_jsx_runtime313.jsx)(PortalProvider, { container: boxRef.current, children })
3121
3084
  }
3122
3085
  )
3123
3086
  }
@@ -3129,9 +3092,9 @@ Modal.displayName = "Modal";
3129
3092
  var Modal_default = Modal;
3130
3093
 
3131
3094
  // src/components/DatePicker/SingleDatePicker/index.tsx
3132
- var import_react13 = __toESM(require("react"), 1);
3133
- var import_jsx_runtime315 = require("react/jsx-runtime");
3134
- var DayCell2 = import_react13.default.memo(
3095
+ var import_react12 = __toESM(require("react"), 1);
3096
+ var import_jsx_runtime314 = require("react/jsx-runtime");
3097
+ var DayCell2 = import_react12.default.memo(
3135
3098
  ({
3136
3099
  day,
3137
3100
  disabled,
@@ -3141,7 +3104,7 @@ var DayCell2 = import_react13.default.memo(
3141
3104
  isEnd,
3142
3105
  inRange,
3143
3106
  onSelect
3144
- }) => /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
3107
+ }) => /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
3145
3108
  "button",
3146
3109
  {
3147
3110
  type: "button",
@@ -3183,26 +3146,26 @@ var SingleDatePicker = (props) => {
3183
3146
  initialYear,
3184
3147
  initialMonth
3185
3148
  );
3186
- const [pickerMode, setPickerMode] = import_react13.default.useState("days");
3187
- const [yearRangeStart, setYearRangeStart] = import_react13.default.useState(
3149
+ const [pickerMode, setPickerMode] = import_react12.default.useState("days");
3150
+ const [yearRangeStart, setYearRangeStart] = import_react12.default.useState(
3188
3151
  Math.floor((initialYear ?? (/* @__PURE__ */ new Date()).getFullYear()) / 12) * 12
3189
3152
  );
3190
- const minTime = import_react13.default.useMemo(
3153
+ const minTime = import_react12.default.useMemo(
3191
3154
  () => minDate ? new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()).getTime() : -Infinity,
3192
3155
  [minDate]
3193
3156
  );
3194
- const maxTime = import_react13.default.useMemo(
3157
+ const maxTime = import_react12.default.useMemo(
3195
3158
  () => maxDate ? new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()).getTime() : Infinity,
3196
3159
  [maxDate]
3197
3160
  );
3198
- const highlightSet = import_react13.default.useMemo(() => {
3161
+ const highlightSet = import_react12.default.useMemo(() => {
3199
3162
  const set = /* @__PURE__ */ new Set();
3200
3163
  for (const h of highlightDates) {
3201
3164
  set.add(`${h.getFullYear()}-${h.getMonth()}-${h.getDate()}`);
3202
3165
  }
3203
3166
  return set;
3204
3167
  }, [highlightDates]);
3205
- const handleSelect = import_react13.default.useCallback(
3168
+ const handleSelect = import_react12.default.useCallback(
3206
3169
  (date) => {
3207
3170
  onChange?.(date);
3208
3171
  },
@@ -3239,20 +3202,20 @@ var SingleDatePicker = (props) => {
3239
3202
  const monthLabels = MONTH_LABELS[locale];
3240
3203
  const titleText = pickerMode === "days" ? locale === "ko" ? `${year}\uB144 ${monthLabels[month]}` : `${monthLabels[month]} ${year}` : pickerMode === "months" ? `${year}` : `${yearRangeStart} - ${yearRangeStart + 11}`;
3241
3204
  const hasRange = rangeStart != null && rangeEnd != null;
3242
- return /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)(
3205
+ return /* @__PURE__ */ (0, import_jsx_runtime314.jsxs)(
3243
3206
  "div",
3244
3207
  {
3245
3208
  className: clsx_default("lib-xplat-datepicker", "single"),
3246
3209
  children: [
3247
- /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)("div", { className: "datepicker-header", children: [
3248
- /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(ChevronLeftIcon_default, {}) }),
3249
- /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("button", { className: "datepicker-title", onClick: handleTitleClick, type: "button", children: titleText }),
3250
- /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("button", { className: "datepicker-nav", onClick: handleNext, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(ChevronRightIcon_default, {}) })
3210
+ /* @__PURE__ */ (0, import_jsx_runtime314.jsxs)("div", { className: "datepicker-header", children: [
3211
+ /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(ChevronLeftIcon_default, {}) }),
3212
+ /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("button", { className: "datepicker-title", onClick: handleTitleClick, type: "button", children: titleText }),
3213
+ /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("button", { className: "datepicker-nav", onClick: handleNext, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(ChevronRightIcon_default, {}) })
3251
3214
  ] }),
3252
- /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)("div", { className: "datepicker-body", children: [
3253
- pickerMode === "years" && /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
3215
+ /* @__PURE__ */ (0, import_jsx_runtime314.jsxs)("div", { className: "datepicker-body", children: [
3216
+ pickerMode === "years" && /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
3254
3217
  const y = yearRangeStart + i;
3255
- return /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
3218
+ return /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
3256
3219
  "button",
3257
3220
  {
3258
3221
  type: "button",
@@ -3263,7 +3226,7 @@ var SingleDatePicker = (props) => {
3263
3226
  y
3264
3227
  );
3265
3228
  }) }),
3266
- pickerMode === "months" && /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
3229
+ pickerMode === "months" && /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
3267
3230
  "button",
3268
3231
  {
3269
3232
  type: "button",
@@ -3273,8 +3236,8 @@ var SingleDatePicker = (props) => {
3273
3236
  },
3274
3237
  i
3275
3238
  )) }),
3276
- pickerMode === "days" && /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)(import_jsx_runtime315.Fragment, { children: [
3277
- /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
3239
+ pickerMode === "days" && /* @__PURE__ */ (0, import_jsx_runtime314.jsxs)(import_jsx_runtime314.Fragment, { children: [
3240
+ /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
3278
3241
  "div",
3279
3242
  {
3280
3243
  className: clsx_default(
@@ -3286,7 +3249,7 @@ var SingleDatePicker = (props) => {
3286
3249
  },
3287
3250
  label
3288
3251
  )) }),
3289
- /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "datepicker-grid", children: days.map((day, idx) => {
3252
+ /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-grid", children: days.map((day, idx) => {
3290
3253
  const t = day.date.getTime();
3291
3254
  const disabled = t < minTime || t > maxTime;
3292
3255
  const selected = value ? isSameDay(day.date, value) : false;
@@ -3296,7 +3259,7 @@ var SingleDatePicker = (props) => {
3296
3259
  const isStart = hasRange ? isSameDay(day.date, rangeStart) : false;
3297
3260
  const isEnd = hasRange ? isSameDay(day.date, rangeEnd) : false;
3298
3261
  const inRangeVal = hasRange ? isInRange(day.date, rangeStart, rangeEnd) : false;
3299
- return /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
3262
+ return /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
3300
3263
  DayCell2,
3301
3264
  {
3302
3265
  day,
@@ -3321,7 +3284,7 @@ SingleDatePicker.displayName = "SingleDatePicker";
3321
3284
  var SingleDatePicker_default = SingleDatePicker;
3322
3285
 
3323
3286
  // src/components/DatePicker/InputDatePicker/index.tsx
3324
- var import_jsx_runtime316 = require("react/jsx-runtime");
3287
+ var import_jsx_runtime315 = require("react/jsx-runtime");
3325
3288
  var formatDate = (date) => {
3326
3289
  if (!date || !(date instanceof Date) || isNaN(date.getTime())) return "";
3327
3290
  const y = date.getFullYear();
@@ -3331,8 +3294,8 @@ var formatDate = (date) => {
3331
3294
  };
3332
3295
  var InputDatePicker = (props) => {
3333
3296
  const { value, onChange, minDate, maxDate, disabled, locale = "ko", placeholder } = props;
3334
- const [isOpen, setIsOpen] = import_react14.default.useState(false);
3335
- const [tempDate, setTempDate] = import_react14.default.useState(value ?? /* @__PURE__ */ new Date());
3297
+ const [isOpen, setIsOpen] = import_react13.default.useState(false);
3298
+ const [tempDate, setTempDate] = import_react13.default.useState(value ?? /* @__PURE__ */ new Date());
3336
3299
  const handleOpen = () => {
3337
3300
  if (disabled) return;
3338
3301
  setTempDate(value ?? /* @__PURE__ */ new Date());
@@ -3348,19 +3311,19 @@ var InputDatePicker = (props) => {
3348
3311
  const handleClose = () => {
3349
3312
  setIsOpen(false);
3350
3313
  };
3351
- return /* @__PURE__ */ (0, import_jsx_runtime316.jsxs)("div", { className: clsx_default("lib-xplat-datepicker input-datepicker", disabled && "disabled"), children: [
3352
- /* @__PURE__ */ (0, import_jsx_runtime316.jsx)("div", { className: "input-datepicker-trigger", onClick: handleOpen, children: /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(
3314
+ return /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)("div", { className: clsx_default("lib-xplat-datepicker input-datepicker", disabled && "disabled"), children: [
3315
+ /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "input-datepicker-trigger", onClick: handleOpen, children: /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
3353
3316
  Input_default,
3354
3317
  {
3355
3318
  value: formatDate(value),
3356
3319
  placeholder,
3357
- suffix: /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(CalenderIcon_default, {}),
3320
+ suffix: /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(CalenderIcon_default, {}),
3358
3321
  disabled,
3359
3322
  readOnly: true
3360
3323
  }
3361
3324
  ) }),
3362
- /* @__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: [
3363
- /* @__PURE__ */ (0, import_jsx_runtime316.jsx)("div", { className: "popup-datepicker-content", children: /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(
3325
+ /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)("div", { className: "lib-xplat-popup-datepicker-card", children: [
3326
+ /* @__PURE__ */ (0, import_jsx_runtime315.jsx)("div", { className: "popup-datepicker-content", children: /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(
3364
3327
  SingleDatePicker_default,
3365
3328
  {
3366
3329
  value: tempDate,
@@ -3370,9 +3333,9 @@ var InputDatePicker = (props) => {
3370
3333
  locale
3371
3334
  }
3372
3335
  ) }),
3373
- /* @__PURE__ */ (0, import_jsx_runtime316.jsxs)("div", { className: "popup-datepicker-footer", children: [
3374
- /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(Button_default, { type: "secondary", onClick: handleClose, children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel" }),
3375
- /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(Button_default, { type: "primary", onClick: handleApply, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
3336
+ /* @__PURE__ */ (0, import_jsx_runtime315.jsxs)("div", { className: "popup-datepicker-footer", children: [
3337
+ /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(Button_default, { type: "secondary", onClick: handleClose, children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel" }),
3338
+ /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(Button_default, { type: "primary", onClick: handleApply, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
3376
3339
  ] })
3377
3340
  ] }) })
3378
3341
  ] });
@@ -3381,20 +3344,20 @@ InputDatePicker.displayName = "InputDatePicker";
3381
3344
  var InputDatePicker_default = InputDatePicker;
3382
3345
 
3383
3346
  // src/components/DatePicker/PopupPicker/index.tsx
3384
- var import_react18 = __toESM(require("react"), 1);
3347
+ var import_react17 = __toESM(require("react"), 1);
3385
3348
 
3386
3349
  // src/components/DatePicker/RangePicker/index.tsx
3387
- var import_react17 = __toESM(require("react"), 1);
3350
+ var import_react16 = __toESM(require("react"), 1);
3388
3351
 
3389
3352
  // src/components/Tab/Tab.tsx
3390
- var import_react16 = __toESM(require("react"), 1);
3353
+ var import_react15 = __toESM(require("react"), 1);
3391
3354
 
3392
3355
  // src/components/Tab/TabItem.tsx
3393
- var import_react15 = __toESM(require("react"), 1);
3394
- var import_jsx_runtime317 = require("react/jsx-runtime");
3395
- var TabItem = import_react15.default.forwardRef((props, ref) => {
3356
+ var import_react14 = __toESM(require("react"), 1);
3357
+ var import_jsx_runtime316 = require("react/jsx-runtime");
3358
+ var TabItem = import_react14.default.forwardRef((props, ref) => {
3396
3359
  const { isActive, title, onClick } = props;
3397
- return /* @__PURE__ */ (0, import_jsx_runtime317.jsx)(
3360
+ return /* @__PURE__ */ (0, import_jsx_runtime316.jsx)(
3398
3361
  "div",
3399
3362
  {
3400
3363
  ref,
@@ -3408,25 +3371,25 @@ TabItem.displayName = "TabItem";
3408
3371
  var TabItem_default = TabItem;
3409
3372
 
3410
3373
  // src/components/Tab/Tab.tsx
3411
- var import_jsx_runtime318 = require("react/jsx-runtime");
3374
+ var import_jsx_runtime317 = require("react/jsx-runtime");
3412
3375
  var Tab = (props) => {
3413
3376
  const { activeIndex, onChange, tabs, type, size = "md" } = props;
3414
- const [underlineStyle, setUnderlineStyle] = import_react16.default.useState({
3377
+ const [underlineStyle, setUnderlineStyle] = import_react15.default.useState({
3415
3378
  left: 0,
3416
3379
  width: 0
3417
3380
  });
3418
- const itemRefs = import_react16.default.useRef([]);
3381
+ const itemRefs = import_react15.default.useRef([]);
3419
3382
  const handleChangeActiveTab = (tabItem, tabIdx) => {
3420
3383
  onChange(tabItem, tabIdx);
3421
3384
  };
3422
- import_react16.default.useEffect(() => {
3385
+ import_react15.default.useEffect(() => {
3423
3386
  const el = itemRefs.current[activeIndex];
3424
3387
  if (el) {
3425
3388
  setUnderlineStyle({ left: el.offsetLeft, width: el.offsetWidth });
3426
3389
  }
3427
3390
  }, [activeIndex, tabs.length]);
3428
- return /* @__PURE__ */ (0, import_jsx_runtime318.jsxs)("div", { className: clsx_default("lib-xplat-tab", `type-${type}`, size), children: [
3429
- tabs.map((tab, idx) => /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
3391
+ return /* @__PURE__ */ (0, import_jsx_runtime317.jsxs)("div", { className: clsx_default("lib-xplat-tab", `type-${type}`, size), children: [
3392
+ tabs.map((tab, idx) => /* @__PURE__ */ (0, import_jsx_runtime317.jsx)(
3430
3393
  TabItem_default,
3431
3394
  {
3432
3395
  onClick: () => handleChangeActiveTab(tab, idx),
@@ -3438,7 +3401,7 @@ var Tab = (props) => {
3438
3401
  },
3439
3402
  `${tab.value}_${idx}`
3440
3403
  )),
3441
- type === "toggle" && /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
3404
+ type === "toggle" && /* @__PURE__ */ (0, import_jsx_runtime317.jsx)(
3442
3405
  "div",
3443
3406
  {
3444
3407
  className: "tab-toggle-underline",
@@ -3454,7 +3417,7 @@ Tab.displayName = "Tab";
3454
3417
  var Tab_default = Tab;
3455
3418
 
3456
3419
  // src/components/DatePicker/RangePicker/index.tsx
3457
- var import_jsx_runtime319 = require("react/jsx-runtime");
3420
+ var import_jsx_runtime318 = require("react/jsx-runtime");
3458
3421
  var RangePicker = (props) => {
3459
3422
  const {
3460
3423
  startDate,
@@ -3464,7 +3427,7 @@ var RangePicker = (props) => {
3464
3427
  maxDate,
3465
3428
  locale = "ko"
3466
3429
  } = props;
3467
- const [activeTab, setActiveTab] = import_react17.default.useState("start");
3430
+ const [activeTab, setActiveTab] = import_react16.default.useState("start");
3468
3431
  const handleStartChange = (date) => {
3469
3432
  if (!date) return;
3470
3433
  const newStart = date > endDate ? endDate : date;
@@ -3477,8 +3440,8 @@ var RangePicker = (props) => {
3477
3440
  };
3478
3441
  const startMaxDate = maxDate && endDate < maxDate ? endDate : endDate;
3479
3442
  const endMinDate = minDate && startDate > minDate ? startDate : startDate;
3480
- return /* @__PURE__ */ (0, import_jsx_runtime319.jsxs)("div", { className: clsx_default("lib-xplat-datepicker", "range"), children: [
3481
- /* @__PURE__ */ (0, import_jsx_runtime319.jsx)("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
3443
+ return /* @__PURE__ */ (0, import_jsx_runtime318.jsxs)("div", { className: clsx_default("lib-xplat-datepicker", "range"), children: [
3444
+ /* @__PURE__ */ (0, import_jsx_runtime318.jsx)("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
3482
3445
  Tab_default,
3483
3446
  {
3484
3447
  activeIndex: activeTab === "start" ? 0 : 1,
@@ -3491,8 +3454,8 @@ var RangePicker = (props) => {
3491
3454
  size: "sm"
3492
3455
  }
3493
3456
  ) }),
3494
- /* @__PURE__ */ (0, import_jsx_runtime319.jsxs)("div", { className: "datepicker-range-panels", children: [
3495
- /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
3457
+ /* @__PURE__ */ (0, import_jsx_runtime318.jsxs)("div", { className: "datepicker-range-panels", children: [
3458
+ /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
3496
3459
  SingleDatePicker_default,
3497
3460
  {
3498
3461
  value: startDate,
@@ -3504,7 +3467,7 @@ var RangePicker = (props) => {
3504
3467
  locale
3505
3468
  }
3506
3469
  ),
3507
- /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
3470
+ /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
3508
3471
  SingleDatePicker_default,
3509
3472
  {
3510
3473
  value: endDate,
@@ -3517,7 +3480,7 @@ var RangePicker = (props) => {
3517
3480
  }
3518
3481
  )
3519
3482
  ] }),
3520
- /* @__PURE__ */ (0, import_jsx_runtime319.jsx)("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
3483
+ /* @__PURE__ */ (0, import_jsx_runtime318.jsx)("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
3521
3484
  SingleDatePicker_default,
3522
3485
  {
3523
3486
  value: startDate,
@@ -3528,7 +3491,7 @@ var RangePicker = (props) => {
3528
3491
  rangeEnd: endDate,
3529
3492
  locale
3530
3493
  }
3531
- ) : /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
3494
+ ) : /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
3532
3495
  SingleDatePicker_default,
3533
3496
  {
3534
3497
  value: endDate,
@@ -3546,10 +3509,10 @@ RangePicker.displayName = "RangePicker";
3546
3509
  var RangePicker_default = RangePicker;
3547
3510
 
3548
3511
  // src/components/DatePicker/PopupPicker/index.tsx
3549
- var import_jsx_runtime320 = require("react/jsx-runtime");
3512
+ var import_jsx_runtime319 = require("react/jsx-runtime");
3550
3513
  var PopupPicker = (props) => {
3551
3514
  const { component, type, locale } = props;
3552
- const [isOpen, setIsOpen] = import_react18.default.useState(false);
3515
+ const [isOpen, setIsOpen] = import_react17.default.useState(false);
3553
3516
  const handleClick = () => setIsOpen(true);
3554
3517
  const handleClose = () => setIsOpen(false);
3555
3518
  const handleSingleChange = (date) => {
@@ -3557,11 +3520,11 @@ var PopupPicker = (props) => {
3557
3520
  props.onChange?.(date);
3558
3521
  handleClose();
3559
3522
  };
3560
- return /* @__PURE__ */ (0, import_jsx_runtime320.jsxs)("div", { className: "lib-xplat-popup-datepicker", children: [
3561
- import_react18.default.cloneElement(component, { onClick: handleClick }),
3562
- /* @__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: [
3563
- /* @__PURE__ */ (0, import_jsx_runtime320.jsxs)("div", { className: "popup-datepicker-content", children: [
3564
- type === "single" && /* @__PURE__ */ (0, import_jsx_runtime320.jsx)(
3523
+ return /* @__PURE__ */ (0, import_jsx_runtime319.jsxs)("div", { className: "lib-xplat-popup-datepicker", children: [
3524
+ import_react17.default.cloneElement(component, { onClick: handleClick }),
3525
+ /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime319.jsxs)("div", { className: clsx_default("lib-xplat-popup-datepicker-card", type === "range" && "range-mode"), children: [
3526
+ /* @__PURE__ */ (0, import_jsx_runtime319.jsxs)("div", { className: "popup-datepicker-content", children: [
3527
+ type === "single" && /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
3565
3528
  SingleDatePicker_default,
3566
3529
  {
3567
3530
  value: props.value,
@@ -3571,7 +3534,7 @@ var PopupPicker = (props) => {
3571
3534
  locale
3572
3535
  }
3573
3536
  ),
3574
- type === "range" && /* @__PURE__ */ (0, import_jsx_runtime320.jsx)(
3537
+ type === "range" && /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
3575
3538
  RangePicker_default,
3576
3539
  {
3577
3540
  startDate: props.startDate,
@@ -3583,8 +3546,8 @@ var PopupPicker = (props) => {
3583
3546
  }
3584
3547
  )
3585
3548
  ] }),
3586
- /* @__PURE__ */ (0, import_jsx_runtime320.jsxs)("div", { className: "popup-datepicker-footer", children: [
3587
- /* @__PURE__ */ (0, import_jsx_runtime320.jsx)(
3549
+ /* @__PURE__ */ (0, import_jsx_runtime319.jsxs)("div", { className: "popup-datepicker-footer", children: [
3550
+ /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(
3588
3551
  Button_default,
3589
3552
  {
3590
3553
  type: "secondary",
@@ -3592,7 +3555,7 @@ var PopupPicker = (props) => {
3592
3555
  children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel"
3593
3556
  }
3594
3557
  ),
3595
- /* @__PURE__ */ (0, import_jsx_runtime320.jsx)(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
3558
+ /* @__PURE__ */ (0, import_jsx_runtime319.jsx)(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
3596
3559
  ] })
3597
3560
  ] }) })
3598
3561
  ] });
@@ -3601,10 +3564,10 @@ PopupPicker.displayName = "PopupPicker";
3601
3564
  var PopupPicker_default = PopupPicker;
3602
3565
 
3603
3566
  // src/components/Divider/Divider.tsx
3604
- var import_jsx_runtime321 = require("react/jsx-runtime");
3567
+ var import_jsx_runtime320 = require("react/jsx-runtime");
3605
3568
  var Divider = (props) => {
3606
3569
  const { orientation = "horizontal" } = props;
3607
- return /* @__PURE__ */ (0, import_jsx_runtime321.jsx)(
3570
+ return /* @__PURE__ */ (0, import_jsx_runtime320.jsx)(
3608
3571
  "div",
3609
3572
  {
3610
3573
  className: clsx_default("lib-xplat-divider", orientation),
@@ -3617,15 +3580,15 @@ Divider.displayName = "Divider";
3617
3580
  var Divider_default = Divider;
3618
3581
 
3619
3582
  // src/components/Drawer/Drawer.tsx
3620
- var import_react19 = __toESM(require("react"), 1);
3583
+ var import_react18 = __toESM(require("react"), 1);
3621
3584
  var import_react_dom3 = require("react-dom");
3622
- var import_jsx_runtime322 = require("react/jsx-runtime");
3585
+ var import_jsx_runtime321 = require("react/jsx-runtime");
3623
3586
  var ANIMATION_DURATION_MS2 = 250;
3624
3587
  var Drawer = (props) => {
3625
3588
  const { isOpen, onClose, placement = "right", size = "md", title, children } = props;
3626
- const [mounted, setMounted] = import_react19.default.useState(false);
3627
- const [visible, setVisible] = import_react19.default.useState(false);
3628
- import_react19.default.useEffect(() => {
3589
+ const [mounted, setMounted] = import_react18.default.useState(false);
3590
+ const [visible, setVisible] = import_react18.default.useState(false);
3591
+ import_react18.default.useEffect(() => {
3629
3592
  if (isOpen) {
3630
3593
  setMounted(true);
3631
3594
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -3639,12 +3602,12 @@ var Drawer = (props) => {
3639
3602
  if (!mounted) return null;
3640
3603
  const stateClass = visible ? "enter" : "exit";
3641
3604
  return (0, import_react_dom3.createPortal)(
3642
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
3605
+ /* @__PURE__ */ (0, import_jsx_runtime321.jsx)(
3643
3606
  "div",
3644
3607
  {
3645
3608
  className: clsx_default("lib-xplat-drawer-overlay", stateClass),
3646
3609
  onClick: onClose,
3647
- children: /* @__PURE__ */ (0, import_jsx_runtime322.jsxs)(
3610
+ children: /* @__PURE__ */ (0, import_jsx_runtime321.jsxs)(
3648
3611
  "div",
3649
3612
  {
3650
3613
  className: clsx_default("lib-xplat-drawer", placement, size, stateClass),
@@ -3652,11 +3615,11 @@ var Drawer = (props) => {
3652
3615
  "aria-modal": "true",
3653
3616
  onClick: (e) => e.stopPropagation(),
3654
3617
  children: [
3655
- title && /* @__PURE__ */ (0, import_jsx_runtime322.jsxs)("div", { className: "drawer-header", children: [
3656
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)("span", { className: "drawer-title", children: title }),
3657
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
3618
+ title && /* @__PURE__ */ (0, import_jsx_runtime321.jsxs)("div", { className: "drawer-header", children: [
3619
+ /* @__PURE__ */ (0, import_jsx_runtime321.jsx)("span", { className: "drawer-title", children: title }),
3620
+ /* @__PURE__ */ (0, import_jsx_runtime321.jsx)("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
3658
3621
  ] }),
3659
- /* @__PURE__ */ (0, import_jsx_runtime322.jsx)("div", { className: "drawer-body", children })
3622
+ /* @__PURE__ */ (0, import_jsx_runtime321.jsx)("div", { className: "drawer-body", children })
3660
3623
  ]
3661
3624
  }
3662
3625
  )
@@ -3669,16 +3632,16 @@ Drawer.displayName = "Drawer";
3669
3632
  var Drawer_default = Drawer;
3670
3633
 
3671
3634
  // src/components/Dropdown/Dropdown.tsx
3672
- var import_react22 = __toESM(require("react"), 1);
3635
+ var import_react21 = __toESM(require("react"), 1);
3673
3636
 
3674
3637
  // src/tokens/hooks/useAutoPosition.ts
3675
- var import_react20 = __toESM(require("react"), 1);
3638
+ var import_react19 = __toESM(require("react"), 1);
3676
3639
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3677
- const [position, setPosition] = import_react20.default.useState({
3640
+ const [position, setPosition] = import_react19.default.useState({
3678
3641
  position: {},
3679
3642
  direction: "bottom"
3680
3643
  });
3681
- const calculatePosition = import_react20.default.useCallback(() => {
3644
+ const calculatePosition = import_react19.default.useCallback(() => {
3682
3645
  if (!triggerRef.current || !popRef.current) return;
3683
3646
  const triggerRect = triggerRef.current.getBoundingClientRect();
3684
3647
  const popW = popRef.current.offsetWidth;
@@ -3705,13 +3668,13 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3705
3668
  direction
3706
3669
  });
3707
3670
  }, [triggerRef, popRef]);
3708
- import_react20.default.useLayoutEffect(() => {
3671
+ import_react19.default.useLayoutEffect(() => {
3709
3672
  if (!enabled) return;
3710
3673
  calculatePosition();
3711
3674
  const raf = requestAnimationFrame(calculatePosition);
3712
3675
  return () => cancelAnimationFrame(raf);
3713
3676
  }, [calculatePosition, enabled]);
3714
- import_react20.default.useEffect(() => {
3677
+ import_react19.default.useEffect(() => {
3715
3678
  if (!enabled || !popRef.current) return;
3716
3679
  const observer = new ResizeObserver(() => {
3717
3680
  calculatePosition();
@@ -3719,7 +3682,7 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3719
3682
  observer.observe(popRef.current);
3720
3683
  return () => observer.disconnect();
3721
3684
  }, [calculatePosition, enabled, popRef]);
3722
- import_react20.default.useEffect(() => {
3685
+ import_react19.default.useEffect(() => {
3723
3686
  if (!enabled) return;
3724
3687
  window.addEventListener("resize", calculatePosition);
3725
3688
  window.addEventListener("scroll", calculatePosition, true);
@@ -3733,9 +3696,9 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3733
3696
  var useAutoPosition_default = useAutoPosition;
3734
3697
 
3735
3698
  // src/tokens/hooks/useClickOutside.ts
3736
- var import_react21 = __toESM(require("react"), 1);
3699
+ var import_react20 = __toESM(require("react"), 1);
3737
3700
  var useClickOutside = (refs, handler, enabled = true) => {
3738
- import_react21.default.useEffect(() => {
3701
+ import_react20.default.useEffect(() => {
3739
3702
  if (!enabled) return;
3740
3703
  const refArray = Array.isArray(refs) ? refs : [refs];
3741
3704
  const listener = (event) => {
@@ -3758,17 +3721,17 @@ var useClickOutside = (refs, handler, enabled = true) => {
3758
3721
  var useClickOutside_default = useClickOutside;
3759
3722
 
3760
3723
  // src/components/Dropdown/Dropdown.tsx
3761
- var import_jsx_runtime323 = require("react/jsx-runtime");
3724
+ var import_jsx_runtime322 = require("react/jsx-runtime");
3762
3725
  var Dropdown = (props) => {
3763
3726
  const { items, children } = props;
3764
- const [isOpen, setIsOpen] = import_react22.default.useState(false);
3765
- const [mounted, setMounted] = import_react22.default.useState(false);
3766
- const [visible, setVisible] = import_react22.default.useState(false);
3767
- const triggerRef = import_react22.default.useRef(null);
3768
- const menuRef = import_react22.default.useRef(null);
3727
+ const [isOpen, setIsOpen] = import_react21.default.useState(false);
3728
+ const [mounted, setMounted] = import_react21.default.useState(false);
3729
+ const [visible, setVisible] = import_react21.default.useState(false);
3730
+ const triggerRef = import_react21.default.useRef(null);
3731
+ const menuRef = import_react21.default.useRef(null);
3769
3732
  const { position, direction } = useAutoPosition_default(triggerRef, menuRef, mounted);
3770
3733
  useClickOutside_default([triggerRef, menuRef], () => setIsOpen(false), isOpen);
3771
- import_react22.default.useEffect(() => {
3734
+ import_react21.default.useEffect(() => {
3772
3735
  if (isOpen) {
3773
3736
  setMounted(true);
3774
3737
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -3783,8 +3746,8 @@ var Dropdown = (props) => {
3783
3746
  item.onClick?.();
3784
3747
  setIsOpen(false);
3785
3748
  };
3786
- return /* @__PURE__ */ (0, import_jsx_runtime323.jsxs)("div", { className: "lib-xplat-dropdown", children: [
3787
- /* @__PURE__ */ (0, import_jsx_runtime323.jsx)(
3749
+ return /* @__PURE__ */ (0, import_jsx_runtime322.jsxs)("div", { className: "lib-xplat-dropdown", children: [
3750
+ /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
3788
3751
  "div",
3789
3752
  {
3790
3753
  ref: triggerRef,
@@ -3793,14 +3756,14 @@ var Dropdown = (props) => {
3793
3756
  children
3794
3757
  }
3795
3758
  ),
3796
- mounted && /* @__PURE__ */ (0, import_jsx_runtime323.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime323.jsx)(
3759
+ mounted && /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
3797
3760
  "div",
3798
3761
  {
3799
3762
  ref: menuRef,
3800
3763
  className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }),
3801
3764
  style: { top: position.top, left: position.left },
3802
3765
  role: "menu",
3803
- children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime323.jsx)(
3766
+ children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
3804
3767
  "button",
3805
3768
  {
3806
3769
  className: clsx_default("dropdown-item", {
@@ -3822,23 +3785,23 @@ Dropdown.displayName = "Dropdown";
3822
3785
  var Dropdown_default = Dropdown;
3823
3786
 
3824
3787
  // src/components/EmptyState/EmptyState.tsx
3825
- var import_jsx_runtime324 = require("react/jsx-runtime");
3788
+ var import_jsx_runtime323 = require("react/jsx-runtime");
3826
3789
  var EmptyState = (props) => {
3827
3790
  const { icon, title = "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4", description, action } = props;
3828
- return /* @__PURE__ */ (0, import_jsx_runtime324.jsxs)("div", { className: "lib-xplat-empty-state", children: [
3829
- icon && /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("div", { className: "empty-icon", children: icon }),
3830
- !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" }) }) }),
3831
- /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("p", { className: "empty-title", children: title }),
3832
- description && /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("p", { className: "empty-description", children: description }),
3833
- action && /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("div", { className: "empty-action", children: action })
3791
+ return /* @__PURE__ */ (0, import_jsx_runtime323.jsxs)("div", { className: "lib-xplat-empty-state", children: [
3792
+ icon && /* @__PURE__ */ (0, import_jsx_runtime323.jsx)("div", { className: "empty-icon", children: icon }),
3793
+ !icon && /* @__PURE__ */ (0, import_jsx_runtime323.jsx)("div", { className: "empty-icon", children: /* @__PURE__ */ (0, import_jsx_runtime323.jsx)("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime323.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" }) }) }),
3794
+ /* @__PURE__ */ (0, import_jsx_runtime323.jsx)("p", { className: "empty-title", children: title }),
3795
+ description && /* @__PURE__ */ (0, import_jsx_runtime323.jsx)("p", { className: "empty-description", children: description }),
3796
+ action && /* @__PURE__ */ (0, import_jsx_runtime323.jsx)("div", { className: "empty-action", children: action })
3834
3797
  ] });
3835
3798
  };
3836
3799
  EmptyState.displayName = "EmptyState";
3837
3800
  var EmptyState_default = EmptyState;
3838
3801
 
3839
3802
  // src/components/FileUpload/FileUpload.tsx
3840
- var import_react23 = __toESM(require("react"), 1);
3841
- var import_jsx_runtime325 = require("react/jsx-runtime");
3803
+ var import_react22 = __toESM(require("react"), 1);
3804
+ var import_jsx_runtime324 = require("react/jsx-runtime");
3842
3805
  var FileUpload = (props) => {
3843
3806
  const {
3844
3807
  accept,
@@ -3848,8 +3811,8 @@ var FileUpload = (props) => {
3848
3811
  label = "\uD30C\uC77C\uC744 \uB4DC\uB798\uADF8\uD558\uAC70\uB098 \uD074\uB9AD\uD558\uC5EC \uC5C5\uB85C\uB4DC",
3849
3812
  description
3850
3813
  } = props;
3851
- const [isDragOver, setIsDragOver] = import_react23.default.useState(false);
3852
- const inputRef = import_react23.default.useRef(null);
3814
+ const [isDragOver, setIsDragOver] = import_react22.default.useState(false);
3815
+ const inputRef = import_react22.default.useRef(null);
3853
3816
  const handleFiles = (fileList) => {
3854
3817
  let files = Array.from(fileList);
3855
3818
  if (maxSize) {
@@ -3879,7 +3842,7 @@ var FileUpload = (props) => {
3879
3842
  handleFiles(e.target.files);
3880
3843
  }
3881
3844
  };
3882
- return /* @__PURE__ */ (0, import_jsx_runtime325.jsxs)(
3845
+ return /* @__PURE__ */ (0, import_jsx_runtime324.jsxs)(
3883
3846
  "div",
3884
3847
  {
3885
3848
  className: clsx_default("lib-xplat-file-upload", { "drag-over": isDragOver }),
@@ -3888,7 +3851,7 @@ var FileUpload = (props) => {
3888
3851
  onDragLeave: handleDragLeave,
3889
3852
  onClick: () => inputRef.current?.click(),
3890
3853
  children: [
3891
- /* @__PURE__ */ (0, import_jsx_runtime325.jsx)(
3854
+ /* @__PURE__ */ (0, import_jsx_runtime324.jsx)(
3892
3855
  "input",
3893
3856
  {
3894
3857
  ref: inputRef,
@@ -3898,9 +3861,9 @@ var FileUpload = (props) => {
3898
3861
  onChange: handleChange
3899
3862
  }
3900
3863
  ),
3901
- /* @__PURE__ */ (0, import_jsx_runtime325.jsx)("div", { className: "upload-icon", children: /* @__PURE__ */ (0, import_jsx_runtime325.jsx)(UploadIcon_default, {}) }),
3902
- /* @__PURE__ */ (0, import_jsx_runtime325.jsx)("p", { className: "upload-label", children: label }),
3903
- description && /* @__PURE__ */ (0, import_jsx_runtime325.jsx)("p", { className: "upload-description", children: description })
3864
+ /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("div", { className: "upload-icon", children: /* @__PURE__ */ (0, import_jsx_runtime324.jsx)(UploadIcon_default, {}) }),
3865
+ /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("p", { className: "upload-label", children: label }),
3866
+ description && /* @__PURE__ */ (0, import_jsx_runtime324.jsx)("p", { className: "upload-description", children: description })
3904
3867
  ]
3905
3868
  }
3906
3869
  );
@@ -3909,10 +3872,10 @@ FileUpload.displayName = "FileUpload";
3909
3872
  var FileUpload_default = FileUpload;
3910
3873
 
3911
3874
  // src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
3912
- var import_react25 = __toESM(require("react"), 1);
3875
+ var import_react24 = __toESM(require("react"), 1);
3913
3876
 
3914
3877
  // src/components/HtmlTypeWriter/utils.ts
3915
- var import_react24 = __toESM(require("react"), 1);
3878
+ var import_react23 = __toESM(require("react"), 1);
3916
3879
  var voidTags = /* @__PURE__ */ new Set([
3917
3880
  "br",
3918
3881
  "img",
@@ -3980,41 +3943,41 @@ var convertNodeToReactWithRange = (node, typedLen, rangeMap) => {
3980
3943
  props[attr.name] = attr.value;
3981
3944
  });
3982
3945
  if (voidTags.has(tag)) {
3983
- return import_react24.default.createElement(tag, props);
3946
+ return import_react23.default.createElement(tag, props);
3984
3947
  }
3985
3948
  const children = Array.from(element.childNodes).map((child) => convertNodeToReactWithRange(child, typedLen, rangeMap)).filter((n) => n != null);
3986
- return import_react24.default.createElement(tag, props, ...children);
3949
+ return import_react23.default.createElement(tag, props, ...children);
3987
3950
  };
3988
3951
  var htmlToReactProgressive = (root, typedLen, rangeMap) => {
3989
3952
  const nodes = Array.from(root.childNodes).map((child, idx) => {
3990
3953
  const node = convertNodeToReactWithRange(child, typedLen, rangeMap);
3991
- return node == null ? null : import_react24.default.createElement(import_react24.default.Fragment, { key: idx }, node);
3954
+ return node == null ? null : import_react23.default.createElement(import_react23.default.Fragment, { key: idx }, node);
3992
3955
  }).filter(Boolean);
3993
3956
  return nodes.length === 0 ? null : nodes;
3994
3957
  };
3995
3958
 
3996
3959
  // src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
3997
- var import_jsx_runtime326 = require("react/jsx-runtime");
3960
+ var import_jsx_runtime325 = require("react/jsx-runtime");
3998
3961
  var HtmlTypeWriter = ({
3999
3962
  html,
4000
3963
  duration = 20,
4001
3964
  onDone,
4002
3965
  onChange
4003
3966
  }) => {
4004
- const [typedLen, setTypedLen] = import_react25.default.useState(0);
4005
- const doneCalledRef = import_react25.default.useRef(false);
4006
- const { doc, rangeMap, totalLength } = import_react25.default.useMemo(() => {
3967
+ const [typedLen, setTypedLen] = import_react24.default.useState(0);
3968
+ const doneCalledRef = import_react24.default.useRef(false);
3969
+ const { doc, rangeMap, totalLength } = import_react24.default.useMemo(() => {
4007
3970
  if (typeof window === "undefined") return { doc: null, rangeMap: /* @__PURE__ */ new Map(), totalLength: 0 };
4008
3971
  const decoded = decodeHtmlEntities(html);
4009
3972
  const doc2 = new DOMParser().parseFromString(decoded, "text/html");
4010
3973
  const { rangeMap: rangeMap2, totalLength: totalLength2 } = buildRangeMap(doc2.body);
4011
3974
  return { doc: doc2, rangeMap: rangeMap2, totalLength: totalLength2 };
4012
3975
  }, [html]);
4013
- import_react25.default.useEffect(() => {
3976
+ import_react24.default.useEffect(() => {
4014
3977
  setTypedLen(0);
4015
3978
  doneCalledRef.current = false;
4016
3979
  }, [html]);
4017
- import_react25.default.useEffect(() => {
3980
+ import_react24.default.useEffect(() => {
4018
3981
  if (!totalLength) return;
4019
3982
  if (typedLen >= totalLength) return;
4020
3983
  const timer = window.setInterval(() => {
@@ -4022,33 +3985,33 @@ var HtmlTypeWriter = ({
4022
3985
  }, duration);
4023
3986
  return () => window.clearInterval(timer);
4024
3987
  }, [typedLen, totalLength, duration]);
4025
- import_react25.default.useEffect(() => {
3988
+ import_react24.default.useEffect(() => {
4026
3989
  if (typedLen > 0 && typedLen < totalLength) {
4027
3990
  onChange?.();
4028
3991
  }
4029
3992
  }, [typedLen, totalLength, onChange]);
4030
- import_react25.default.useEffect(() => {
3993
+ import_react24.default.useEffect(() => {
4031
3994
  if (typedLen === totalLength && totalLength > 0 && !doneCalledRef.current) {
4032
3995
  doneCalledRef.current = true;
4033
3996
  onDone?.();
4034
3997
  }
4035
3998
  }, [typedLen, totalLength, onDone]);
4036
- const parsed = import_react25.default.useMemo(
3999
+ const parsed = import_react24.default.useMemo(
4037
4000
  () => doc ? htmlToReactProgressive(doc.body, typedLen, rangeMap) : null,
4038
4001
  [doc, typedLen, rangeMap]
4039
4002
  );
4040
- return /* @__PURE__ */ (0, import_jsx_runtime326.jsx)("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
4003
+ return /* @__PURE__ */ (0, import_jsx_runtime325.jsx)("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
4041
4004
  };
4042
4005
  HtmlTypeWriter.displayName = "HtmlTypeWriter";
4043
4006
  var HtmlTypeWriter_default = HtmlTypeWriter;
4044
4007
 
4045
4008
  // src/components/ImageSelector/ImageSelector.tsx
4046
- var import_react26 = __toESM(require("react"), 1);
4047
- var import_jsx_runtime327 = require("react/jsx-runtime");
4009
+ var import_react25 = __toESM(require("react"), 1);
4010
+ var import_jsx_runtime326 = require("react/jsx-runtime");
4048
4011
  var ImageSelector = (props) => {
4049
4012
  const { value, label, onChange } = props;
4050
- const [previewUrl, setPreviewUrl] = import_react26.default.useState();
4051
- import_react26.default.useEffect(() => {
4013
+ const [previewUrl, setPreviewUrl] = import_react25.default.useState();
4014
+ import_react25.default.useEffect(() => {
4052
4015
  if (!value) {
4053
4016
  setPreviewUrl(void 0);
4054
4017
  return;
@@ -4057,7 +4020,7 @@ var ImageSelector = (props) => {
4057
4020
  setPreviewUrl(url);
4058
4021
  return () => URL.revokeObjectURL(url);
4059
4022
  }, [value]);
4060
- const inputRef = import_react26.default.useRef(null);
4023
+ const inputRef = import_react25.default.useRef(null);
4061
4024
  const handleFileChange = (e) => {
4062
4025
  const selectedFile = e.target.files?.[0];
4063
4026
  if (selectedFile) {
@@ -4070,8 +4033,8 @@ var ImageSelector = (props) => {
4070
4033
  const handleOpenFileDialog = () => {
4071
4034
  inputRef.current?.click();
4072
4035
  };
4073
- return /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)("div", { className: `lib-xplat-imageselector${value ? "" : " none-value"}`, children: [
4074
- /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(
4036
+ return /* @__PURE__ */ (0, import_jsx_runtime326.jsxs)("div", { className: `lib-xplat-imageselector${value ? "" : " none-value"}`, children: [
4037
+ /* @__PURE__ */ (0, import_jsx_runtime326.jsx)(
4075
4038
  "input",
4076
4039
  {
4077
4040
  type: "file",
@@ -4081,13 +4044,13 @@ var ImageSelector = (props) => {
4081
4044
  ref: inputRef
4082
4045
  }
4083
4046
  ),
4084
- value && /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)("div", { className: "action-bar", children: [
4085
- /* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "icon-wrapper", onClick: handleOpenFileDialog, children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(UploadIcon_default, {}) }),
4086
- /* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "icon-wrapper", onClick: handleDeleteFile, children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(DeleteIcon_default, {}) })
4047
+ value && /* @__PURE__ */ (0, import_jsx_runtime326.jsxs)("div", { className: "action-bar", children: [
4048
+ /* @__PURE__ */ (0, import_jsx_runtime326.jsx)("div", { className: "icon-wrapper", onClick: handleOpenFileDialog, children: /* @__PURE__ */ (0, import_jsx_runtime326.jsx)(UploadIcon_default, {}) }),
4049
+ /* @__PURE__ */ (0, import_jsx_runtime326.jsx)("div", { className: "icon-wrapper", onClick: handleDeleteFile, children: /* @__PURE__ */ (0, import_jsx_runtime326.jsx)(DeleteIcon_default, {}) })
4087
4050
  ] }),
4088
- /* @__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: [
4089
- /* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "icon-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(ImageIcon_default, {}) }),
4090
- /* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "label", children: label || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
4051
+ /* @__PURE__ */ (0, import_jsx_runtime326.jsx)("div", { className: "content", children: previewUrl ? /* @__PURE__ */ (0, import_jsx_runtime326.jsx)("img", { src: previewUrl, alt: "preview" }) : /* @__PURE__ */ (0, import_jsx_runtime326.jsxs)("div", { className: "skeleton", onClick: handleOpenFileDialog, children: [
4052
+ /* @__PURE__ */ (0, import_jsx_runtime326.jsx)("div", { className: "icon-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime326.jsx)(ImageIcon_default, {}) }),
4053
+ /* @__PURE__ */ (0, import_jsx_runtime326.jsx)("div", { className: "label", children: label || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
4091
4054
  ] }) })
4092
4055
  ] });
4093
4056
  };
@@ -4095,7 +4058,7 @@ ImageSelector.displayName = "ImageSelector";
4095
4058
  var ImageSelector_default = ImageSelector;
4096
4059
 
4097
4060
  // src/components/Pagination/Pagination.tsx
4098
- var import_jsx_runtime328 = require("react/jsx-runtime");
4061
+ var import_jsx_runtime327 = require("react/jsx-runtime");
4099
4062
  var getPageRange = (current, totalPages, siblingCount) => {
4100
4063
  const totalNumbers = siblingCount * 2 + 5;
4101
4064
  if (totalPages <= totalNumbers) {
@@ -4138,19 +4101,19 @@ var Pagination = (props) => {
4138
4101
  onChange?.(page);
4139
4102
  }
4140
4103
  };
4141
- 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: [
4142
- /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
4104
+ return /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)("nav", { className: clsx_default("lib-xplat-pagination", size, type), "aria-label": "\uD398\uC774\uC9C0 \uB124\uBE44\uAC8C\uC774\uC158", children: [
4105
+ /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(
4143
4106
  "button",
4144
4107
  {
4145
4108
  className: "page-btn prev",
4146
4109
  disabled: current <= 1,
4147
4110
  onClick: () => handleClick(current - 1),
4148
4111
  "aria-label": "\uC774\uC804 \uD398\uC774\uC9C0",
4149
- children: /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(ChevronLeftIcon_default, {})
4112
+ children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(ChevronLeftIcon_default, {})
4150
4113
  }
4151
4114
  ),
4152
4115
  pages.map(
4153
- (page, i) => page === "..." ? /* @__PURE__ */ (0, import_jsx_runtime328.jsx)("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
4116
+ (page, i) => page === "..." ? /* @__PURE__ */ (0, import_jsx_runtime327.jsx)("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(
4154
4117
  "button",
4155
4118
  {
4156
4119
  className: clsx_default("page-btn", { active: page === current }),
@@ -4161,14 +4124,14 @@ var Pagination = (props) => {
4161
4124
  page
4162
4125
  )
4163
4126
  ),
4164
- /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
4127
+ /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(
4165
4128
  "button",
4166
4129
  {
4167
4130
  className: "page-btn next",
4168
4131
  disabled: current >= totalPages,
4169
4132
  onClick: () => handleClick(current + 1),
4170
4133
  "aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0",
4171
- children: /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(ChevronRightIcon_default, {})
4134
+ children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(ChevronRightIcon_default, {})
4172
4135
  }
4173
4136
  )
4174
4137
  ] });
@@ -4177,17 +4140,17 @@ Pagination.displayName = "Pagination";
4177
4140
  var Pagination_default = Pagination;
4178
4141
 
4179
4142
  // src/components/PopOver/PopOver.tsx
4180
- var import_react27 = __toESM(require("react"), 1);
4181
- var import_jsx_runtime329 = require("react/jsx-runtime");
4143
+ var import_react26 = __toESM(require("react"), 1);
4144
+ var import_jsx_runtime328 = require("react/jsx-runtime");
4182
4145
  var PopOver = (props) => {
4183
4146
  const { children, isOpen, onClose, PopOverEl } = props;
4184
- const popRef = import_react27.default.useRef(null);
4185
- const triggerRef = import_react27.default.useRef(null);
4186
- const [localOpen, setLocalOpen] = import_react27.default.useState(false);
4187
- const [eventTrigger, setEventTrigger] = import_react27.default.useState(false);
4147
+ const popRef = import_react26.default.useRef(null);
4148
+ const triggerRef = import_react26.default.useRef(null);
4149
+ const [localOpen, setLocalOpen] = import_react26.default.useState(false);
4150
+ const [eventTrigger, setEventTrigger] = import_react26.default.useState(false);
4188
4151
  useClickOutside_default([popRef, triggerRef], onClose, isOpen);
4189
4152
  const position = useAutoPosition_default(triggerRef, popRef, localOpen);
4190
- import_react27.default.useEffect(() => {
4153
+ import_react26.default.useEffect(() => {
4191
4154
  if (isOpen) {
4192
4155
  setLocalOpen(isOpen);
4193
4156
  setTimeout(() => {
@@ -4200,7 +4163,7 @@ var PopOver = (props) => {
4200
4163
  }, 200);
4201
4164
  }
4202
4165
  }, [isOpen]);
4203
- return /* @__PURE__ */ (0, import_jsx_runtime329.jsxs)(
4166
+ return /* @__PURE__ */ (0, import_jsx_runtime328.jsxs)(
4204
4167
  "div",
4205
4168
  {
4206
4169
  className: "lib-xplat-pop-over",
@@ -4210,7 +4173,7 @@ var PopOver = (props) => {
4210
4173
  },
4211
4174
  children: [
4212
4175
  children,
4213
- localOpen && /* @__PURE__ */ (0, import_jsx_runtime329.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime329.jsx)(
4176
+ localOpen && /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
4214
4177
  "div",
4215
4178
  {
4216
4179
  className: clsx_default(
@@ -4233,7 +4196,7 @@ PopOver.displayName = "PopOver";
4233
4196
  var PopOver_default = PopOver;
4234
4197
 
4235
4198
  // src/components/Progress/Progress.tsx
4236
- var import_jsx_runtime330 = require("react/jsx-runtime");
4199
+ var import_jsx_runtime329 = require("react/jsx-runtime");
4237
4200
  var Progress = (props) => {
4238
4201
  const {
4239
4202
  value,
@@ -4243,8 +4206,8 @@ var Progress = (props) => {
4243
4206
  showLabel = false
4244
4207
  } = props;
4245
4208
  const percentage = Math.min(100, Math.max(0, value / max * 100));
4246
- return /* @__PURE__ */ (0, import_jsx_runtime330.jsxs)("div", { className: clsx_default("lib-xplat-progress", size, type), children: [
4247
- /* @__PURE__ */ (0, import_jsx_runtime330.jsx)(
4209
+ return /* @__PURE__ */ (0, import_jsx_runtime329.jsxs)("div", { className: clsx_default("lib-xplat-progress", size, type), children: [
4210
+ /* @__PURE__ */ (0, import_jsx_runtime329.jsx)(
4248
4211
  "div",
4249
4212
  {
4250
4213
  className: "track",
@@ -4252,7 +4215,7 @@ var Progress = (props) => {
4252
4215
  "aria-valuenow": value,
4253
4216
  "aria-valuemin": 0,
4254
4217
  "aria-valuemax": max,
4255
- children: /* @__PURE__ */ (0, import_jsx_runtime330.jsx)(
4218
+ children: /* @__PURE__ */ (0, import_jsx_runtime329.jsx)(
4256
4219
  "div",
4257
4220
  {
4258
4221
  className: "bar",
@@ -4261,7 +4224,7 @@ var Progress = (props) => {
4261
4224
  )
4262
4225
  }
4263
4226
  ),
4264
- showLabel && /* @__PURE__ */ (0, import_jsx_runtime330.jsxs)("span", { className: "label", children: [
4227
+ showLabel && /* @__PURE__ */ (0, import_jsx_runtime329.jsxs)("span", { className: "label", children: [
4265
4228
  Math.round(percentage),
4266
4229
  "%"
4267
4230
  ] })
@@ -4271,17 +4234,17 @@ Progress.displayName = "Progress";
4271
4234
  var Progress_default = Progress;
4272
4235
 
4273
4236
  // src/components/Radio/RadioGroupContext.tsx
4274
- var import_react28 = __toESM(require("react"), 1);
4275
- var RadioGroupContext = import_react28.default.createContext(
4237
+ var import_react27 = __toESM(require("react"), 1);
4238
+ var RadioGroupContext = import_react27.default.createContext(
4276
4239
  null
4277
4240
  );
4278
4241
  var useRadioGroupContext = () => {
4279
- return import_react28.default.useContext(RadioGroupContext);
4242
+ return import_react27.default.useContext(RadioGroupContext);
4280
4243
  };
4281
4244
  var RadioGroupContext_default = RadioGroupContext;
4282
4245
 
4283
4246
  // src/components/Radio/Radio.tsx
4284
- var import_jsx_runtime331 = require("react/jsx-runtime");
4247
+ var import_jsx_runtime330 = require("react/jsx-runtime");
4285
4248
  var Radio = (props) => {
4286
4249
  const {
4287
4250
  label,
@@ -4299,7 +4262,7 @@ var Radio = (props) => {
4299
4262
  value,
4300
4263
  onChange: rest.onChange
4301
4264
  };
4302
- return /* @__PURE__ */ (0, import_jsx_runtime331.jsxs)(
4265
+ return /* @__PURE__ */ (0, import_jsx_runtime330.jsxs)(
4303
4266
  "label",
4304
4267
  {
4305
4268
  className: clsx_default(
@@ -4309,18 +4272,18 @@ var Radio = (props) => {
4309
4272
  localChecked ? "checked" : void 0
4310
4273
  ),
4311
4274
  children: [
4312
- /* @__PURE__ */ (0, import_jsx_runtime331.jsx)("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
4313
- /* @__PURE__ */ (0, import_jsx_runtime331.jsx)(
4275
+ /* @__PURE__ */ (0, import_jsx_runtime330.jsx)("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
4276
+ /* @__PURE__ */ (0, import_jsx_runtime330.jsx)(
4314
4277
  "div",
4315
4278
  {
4316
4279
  className: clsx_default(
4317
4280
  "circle",
4318
4281
  localChecked ? "checked" : void 0
4319
4282
  ),
4320
- children: localChecked && /* @__PURE__ */ (0, import_jsx_runtime331.jsx)("div", { className: "inner-circle" })
4283
+ children: localChecked && /* @__PURE__ */ (0, import_jsx_runtime330.jsx)("div", { className: "inner-circle" })
4321
4284
  }
4322
4285
  ),
4323
- label && /* @__PURE__ */ (0, import_jsx_runtime331.jsx)("span", { children: label })
4286
+ label && /* @__PURE__ */ (0, import_jsx_runtime330.jsx)("span", { children: label })
4324
4287
  ]
4325
4288
  }
4326
4289
  );
@@ -4329,28 +4292,28 @@ Radio.displayName = "Radio";
4329
4292
  var Radio_default = Radio;
4330
4293
 
4331
4294
  // src/components/Radio/RadioGroup.tsx
4332
- var import_jsx_runtime332 = require("react/jsx-runtime");
4295
+ var import_jsx_runtime331 = require("react/jsx-runtime");
4333
4296
  var RadioGroup = (props) => {
4334
4297
  const { children, ...rest } = props;
4335
- return /* @__PURE__ */ (0, import_jsx_runtime332.jsx)(import_jsx_runtime332.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime332.jsx)(RadioGroupContext_default.Provider, { value: rest, children }) });
4298
+ return /* @__PURE__ */ (0, import_jsx_runtime331.jsx)(import_jsx_runtime331.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime331.jsx)(RadioGroupContext_default.Provider, { value: rest, children }) });
4336
4299
  };
4337
4300
  RadioGroup.displayName = "RadioGroup";
4338
4301
  var RadioGroup_default = RadioGroup;
4339
4302
 
4340
4303
  // src/components/Select/Select.tsx
4341
- var import_react31 = __toESM(require("react"), 1);
4304
+ var import_react30 = __toESM(require("react"), 1);
4342
4305
 
4343
4306
  // src/components/Select/context.ts
4344
- var import_react29 = __toESM(require("react"), 1);
4345
- var SelectContext = import_react29.default.createContext(null);
4307
+ var import_react28 = __toESM(require("react"), 1);
4308
+ var SelectContext = import_react28.default.createContext(null);
4346
4309
  var context_default = SelectContext;
4347
4310
 
4348
4311
  // src/components/Select/SelectItem.tsx
4349
- var import_react30 = __toESM(require("react"), 1);
4350
- var import_jsx_runtime333 = require("react/jsx-runtime");
4312
+ var import_react29 = __toESM(require("react"), 1);
4313
+ var import_jsx_runtime332 = require("react/jsx-runtime");
4351
4314
  var SelectItem = (props) => {
4352
4315
  const { children, value, onClick, disabled = false } = props;
4353
- const ctx = import_react30.default.useContext(context_default);
4316
+ const ctx = import_react29.default.useContext(context_default);
4354
4317
  const handleClick = (e) => {
4355
4318
  e.preventDefault();
4356
4319
  e.stopPropagation();
@@ -4359,7 +4322,7 @@ var SelectItem = (props) => {
4359
4322
  ctx?.close();
4360
4323
  onClick?.();
4361
4324
  };
4362
- return /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(
4325
+ return /* @__PURE__ */ (0, import_jsx_runtime332.jsx)(
4363
4326
  "div",
4364
4327
  {
4365
4328
  className: clsx_default("select-item", disabled && "disabled"),
@@ -4380,7 +4343,7 @@ SelectItem.displayName = "Select.Item";
4380
4343
  var SelectItem_default = SelectItem;
4381
4344
 
4382
4345
  // src/components/Select/Select.tsx
4383
- var import_jsx_runtime334 = require("react/jsx-runtime");
4346
+ var import_jsx_runtime333 = require("react/jsx-runtime");
4384
4347
  var ANIMATION_DURATION_MS3 = 200;
4385
4348
  var SelectRoot = (props) => {
4386
4349
  const {
@@ -4392,26 +4355,26 @@ var SelectRoot = (props) => {
4392
4355
  error = false,
4393
4356
  size = "md"
4394
4357
  } = props;
4395
- const itemChildren = import_react31.default.Children.toArray(children).filter(
4396
- (child) => import_react31.default.isValidElement(child) && child.type === SelectItem_default
4358
+ const itemChildren = import_react30.default.Children.toArray(children).filter(
4359
+ (child) => import_react30.default.isValidElement(child) && child.type === SelectItem_default
4397
4360
  );
4398
4361
  const isControlled = valueProp !== void 0;
4399
- const [isOpen, setOpen] = import_react31.default.useState(false);
4400
- const [uncontrolledLabel, setUncontrolledLabel] = import_react31.default.useState(null);
4401
- const controlledLabel = import_react31.default.useMemo(() => {
4362
+ const [isOpen, setOpen] = import_react30.default.useState(false);
4363
+ const [uncontrolledLabel, setUncontrolledLabel] = import_react30.default.useState(null);
4364
+ const controlledLabel = import_react30.default.useMemo(() => {
4402
4365
  if (!isControlled) return null;
4403
4366
  const match = itemChildren.find((child) => child.props.value === valueProp);
4404
4367
  return match ? match.props.children : null;
4405
4368
  }, [isControlled, valueProp, itemChildren]);
4406
4369
  const selectedLabel = isControlled ? controlledLabel : uncontrolledLabel;
4407
- const triggerRef = import_react31.default.useRef(null);
4408
- const contentRef = import_react31.default.useRef(null);
4409
- const [mounted, setMounted] = import_react31.default.useState(false);
4410
- const [visible, setVisible] = import_react31.default.useState(false);
4411
- import_react31.default.useEffect(() => {
4370
+ const triggerRef = import_react30.default.useRef(null);
4371
+ const contentRef = import_react30.default.useRef(null);
4372
+ const [mounted, setMounted] = import_react30.default.useState(false);
4373
+ const [visible, setVisible] = import_react30.default.useState(false);
4374
+ import_react30.default.useEffect(() => {
4412
4375
  if (disabled && isOpen) setOpen(false);
4413
4376
  }, [disabled, isOpen]);
4414
- import_react31.default.useEffect(() => {
4377
+ import_react30.default.useEffect(() => {
4415
4378
  if (isOpen) {
4416
4379
  setMounted(true);
4417
4380
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -4421,12 +4384,12 @@ var SelectRoot = (props) => {
4421
4384
  const t = setTimeout(() => setMounted(false), ANIMATION_DURATION_MS3);
4422
4385
  return () => clearTimeout(t);
4423
4386
  }, [isOpen]);
4424
- const open = import_react31.default.useCallback(() => setOpen(true), []);
4425
- const close = import_react31.default.useCallback(() => setOpen(false), []);
4426
- const toggle = import_react31.default.useCallback(() => setOpen((prev) => !prev), []);
4387
+ const open = import_react30.default.useCallback(() => setOpen(true), []);
4388
+ const close = import_react30.default.useCallback(() => setOpen(false), []);
4389
+ const toggle = import_react30.default.useCallback(() => setOpen((prev) => !prev), []);
4427
4390
  useClickOutside_default([contentRef, triggerRef], close, isOpen);
4428
4391
  const position = useAutoPosition_default(triggerRef, contentRef, mounted);
4429
- const setSelected = import_react31.default.useCallback(
4392
+ const setSelected = import_react30.default.useCallback(
4430
4393
  (label, itemValue) => {
4431
4394
  if (!isControlled) {
4432
4395
  setUncontrolledLabel(label);
@@ -4435,7 +4398,7 @@ var SelectRoot = (props) => {
4435
4398
  },
4436
4399
  [isControlled, onChange]
4437
4400
  );
4438
- const ctxValue = import_react31.default.useMemo(
4401
+ const ctxValue = import_react30.default.useMemo(
4439
4402
  () => ({
4440
4403
  isOpen,
4441
4404
  mounted,
@@ -4456,7 +4419,7 @@ var SelectRoot = (props) => {
4456
4419
  if (disabled) return;
4457
4420
  toggle();
4458
4421
  };
4459
- return /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ (0, import_jsx_runtime334.jsxs)(
4422
+ return /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ (0, import_jsx_runtime333.jsxs)(
4460
4423
  "div",
4461
4424
  {
4462
4425
  className: clsx_default(
@@ -4467,7 +4430,7 @@ var SelectRoot = (props) => {
4467
4430
  mounted && "is-open"
4468
4431
  ),
4469
4432
  children: [
4470
- /* @__PURE__ */ (0, import_jsx_runtime334.jsxs)(
4433
+ /* @__PURE__ */ (0, import_jsx_runtime333.jsxs)(
4471
4434
  "div",
4472
4435
  {
4473
4436
  ref: triggerRef,
@@ -4491,7 +4454,7 @@ var SelectRoot = (props) => {
4491
4454
  }
4492
4455
  },
4493
4456
  children: [
4494
- /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(
4457
+ /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(
4495
4458
  "span",
4496
4459
  {
4497
4460
  className: clsx_default(
@@ -4501,25 +4464,25 @@ var SelectRoot = (props) => {
4501
4464
  children: selectedLabel ?? placeholder
4502
4465
  }
4503
4466
  ),
4504
- /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(
4467
+ /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(
4505
4468
  "span",
4506
4469
  {
4507
4470
  className: clsx_default("select-trigger-icon", isOpen && "open"),
4508
4471
  "aria-hidden": true,
4509
- children: /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(ChevronDownIcon_default, {})
4472
+ children: /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(ChevronDownIcon_default, {})
4510
4473
  }
4511
4474
  )
4512
4475
  ]
4513
4476
  }
4514
4477
  ),
4515
- mounted && /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(
4478
+ mounted && /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(
4516
4479
  "div",
4517
4480
  {
4518
4481
  className: clsx_default("lib-xplat-select-content", position.direction, stateClass),
4519
4482
  ref: contentRef,
4520
4483
  style: { ...position.position, width: triggerRef.current?.offsetWidth },
4521
4484
  role: "listbox",
4522
- children: /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(context_default.Provider, { value: ctxValue, children: itemChildren })
4485
+ children: /* @__PURE__ */ (0, import_jsx_runtime333.jsx)(context_default.Provider, { value: ctxValue, children: itemChildren })
4523
4486
  }
4524
4487
  ) })
4525
4488
  ]
@@ -4533,7 +4496,7 @@ var Select = Object.assign(SelectRoot, {
4533
4496
  var Select_default = Select;
4534
4497
 
4535
4498
  // src/components/Skeleton/Skeleton.tsx
4536
- var import_jsx_runtime335 = require("react/jsx-runtime");
4499
+ var import_jsx_runtime334 = require("react/jsx-runtime");
4537
4500
  var SIZE_MAP = {
4538
4501
  xs: "var(--spacing-size-1)",
4539
4502
  sm: "var(--spacing-size-2)",
@@ -4549,7 +4512,7 @@ var Skeleton = (props) => {
4549
4512
  ...width != null && { width: SIZE_MAP[width] },
4550
4513
  ...height != null && { height: SIZE_MAP[height] }
4551
4514
  };
4552
- return /* @__PURE__ */ (0, import_jsx_runtime335.jsx)(
4515
+ return /* @__PURE__ */ (0, import_jsx_runtime334.jsx)(
4553
4516
  "div",
4554
4517
  {
4555
4518
  className: clsx_default("lib-xplat-skeleton", variant),
@@ -4562,20 +4525,20 @@ Skeleton.displayName = "Skeleton";
4562
4525
  var Skeleton_default = Skeleton;
4563
4526
 
4564
4527
  // src/components/Spinner/Spinner.tsx
4565
- var import_jsx_runtime336 = require("react/jsx-runtime");
4528
+ var import_jsx_runtime335 = require("react/jsx-runtime");
4566
4529
  var Spinner = (props) => {
4567
4530
  const {
4568
4531
  size = "md",
4569
4532
  type = "brand"
4570
4533
  } = props;
4571
- return /* @__PURE__ */ (0, import_jsx_runtime336.jsx)(
4534
+ return /* @__PURE__ */ (0, import_jsx_runtime335.jsx)(
4572
4535
  "div",
4573
4536
  {
4574
4537
  className: clsx_default("lib-xplat-spinner", size, type),
4575
4538
  role: "status",
4576
4539
  "aria-label": "\uB85C\uB529 \uC911",
4577
- children: /* @__PURE__ */ (0, import_jsx_runtime336.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
4578
- /* @__PURE__ */ (0, import_jsx_runtime336.jsx)(
4540
+ children: /* @__PURE__ */ (0, import_jsx_runtime335.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
4541
+ /* @__PURE__ */ (0, import_jsx_runtime335.jsx)(
4579
4542
  "circle",
4580
4543
  {
4581
4544
  className: "track",
@@ -4585,7 +4548,7 @@ var Spinner = (props) => {
4585
4548
  strokeWidth: "3"
4586
4549
  }
4587
4550
  ),
4588
- /* @__PURE__ */ (0, import_jsx_runtime336.jsx)(
4551
+ /* @__PURE__ */ (0, import_jsx_runtime335.jsx)(
4589
4552
  "circle",
4590
4553
  {
4591
4554
  className: "indicator",
@@ -4604,20 +4567,20 @@ Spinner.displayName = "Spinner";
4604
4567
  var Spinner_default = Spinner;
4605
4568
 
4606
4569
  // src/components/Steps/Steps.tsx
4607
- var import_jsx_runtime337 = require("react/jsx-runtime");
4570
+ var import_jsx_runtime336 = require("react/jsx-runtime");
4608
4571
  var Steps = (props) => {
4609
4572
  const {
4610
4573
  items,
4611
4574
  current,
4612
4575
  type = "brand"
4613
4576
  } = props;
4614
- return /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
4577
+ return /* @__PURE__ */ (0, import_jsx_runtime336.jsx)("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
4615
4578
  const status = index < current ? "completed" : index === current ? "active" : "pending";
4616
- return /* @__PURE__ */ (0, import_jsx_runtime337.jsxs)("div", { className: clsx_default("step-item", status), children: [
4617
- /* @__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 }) }),
4618
- /* @__PURE__ */ (0, import_jsx_runtime337.jsxs)("div", { className: "step-content", children: [
4619
- /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("span", { className: "step-title", children: item.title }),
4620
- item.description && /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("span", { className: "step-description", children: item.description })
4579
+ return /* @__PURE__ */ (0, import_jsx_runtime336.jsxs)("div", { className: clsx_default("step-item", status), children: [
4580
+ /* @__PURE__ */ (0, import_jsx_runtime336.jsx)("div", { className: "step-circle", children: status === "completed" ? /* @__PURE__ */ (0, import_jsx_runtime336.jsx)(CheckIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime336.jsx)("span", { children: index + 1 }) }),
4581
+ /* @__PURE__ */ (0, import_jsx_runtime336.jsxs)("div", { className: "step-content", children: [
4582
+ /* @__PURE__ */ (0, import_jsx_runtime336.jsx)("span", { className: "step-title", children: item.title }),
4583
+ item.description && /* @__PURE__ */ (0, import_jsx_runtime336.jsx)("span", { className: "step-description", children: item.description })
4621
4584
  ] })
4622
4585
  ] }, index);
4623
4586
  }) });
@@ -4626,8 +4589,8 @@ Steps.displayName = "Steps";
4626
4589
  var Steps_default = Steps;
4627
4590
 
4628
4591
  // src/components/Swiper/Swiper.tsx
4629
- var import_react32 = __toESM(require("react"), 1);
4630
- var import_jsx_runtime338 = require("react/jsx-runtime");
4592
+ var import_react31 = __toESM(require("react"), 1);
4593
+ var import_jsx_runtime337 = require("react/jsx-runtime");
4631
4594
  var Swiper = (props) => {
4632
4595
  const {
4633
4596
  auto = false,
@@ -4650,23 +4613,23 @@ var Swiper = (props) => {
4650
4613
  const maxIndex = Math.max(0, totalSlides - viewItemCount);
4651
4614
  const useLoop = loop && canSlide;
4652
4615
  const cloneCount = useLoop ? totalSlides : 0;
4653
- const extendedItems = import_react32.default.useMemo(() => {
4616
+ const extendedItems = import_react31.default.useMemo(() => {
4654
4617
  if (!useLoop) return items;
4655
4618
  return [...items, ...items, ...items];
4656
4619
  }, [items, useLoop]);
4657
4620
  const initialIdx = Math.max(0, Math.min(indexProp ?? 0, maxIndex));
4658
- const [innerIndex, setInnerIndex] = import_react32.default.useState(
4621
+ const [innerIndex, setInnerIndex] = import_react31.default.useState(
4659
4622
  useLoop ? cloneCount + initialIdx : initialIdx
4660
4623
  );
4661
- const [isDragging, setIsDragging] = import_react32.default.useState(false);
4662
- const [dragOffset, setDragOffset] = import_react32.default.useState(0);
4663
- const [animated, setAnimated] = import_react32.default.useState(true);
4664
- const [containerWidth, setContainerWidth] = import_react32.default.useState(0);
4665
- const containerRef = import_react32.default.useRef(null);
4666
- const startXRef = import_react32.default.useRef(0);
4667
- const startTimeRef = import_react32.default.useRef(0);
4668
- const autoplayTimerRef = import_react32.default.useRef(null);
4669
- import_react32.default.useEffect(() => {
4624
+ const [isDragging, setIsDragging] = import_react31.default.useState(false);
4625
+ const [dragOffset, setDragOffset] = import_react31.default.useState(0);
4626
+ const [animated, setAnimated] = import_react31.default.useState(true);
4627
+ const [containerWidth, setContainerWidth] = import_react31.default.useState(0);
4628
+ const containerRef = import_react31.default.useRef(null);
4629
+ const startXRef = import_react31.default.useRef(0);
4630
+ const startTimeRef = import_react31.default.useRef(0);
4631
+ const autoplayTimerRef = import_react31.default.useRef(null);
4632
+ import_react31.default.useEffect(() => {
4670
4633
  const el = containerRef.current;
4671
4634
  if (!el) return;
4672
4635
  const ro = new ResizeObserver((entries) => {
@@ -4685,7 +4648,7 @@ var Swiper = (props) => {
4685
4648
  return ((inner - cloneCount) % totalSlides + totalSlides) % totalSlides;
4686
4649
  };
4687
4650
  const realIndex = getRealIndex(innerIndex);
4688
- const moveToInner = import_react32.default.useCallback(
4651
+ const moveToInner = import_react31.default.useCallback(
4689
4652
  (idx, withAnim = true) => {
4690
4653
  if (!useLoop) {
4691
4654
  setAnimated(withAnim);
@@ -4713,7 +4676,7 @@ var Swiper = (props) => {
4713
4676
  },
4714
4677
  [useLoop, cloneCount, totalSlides]
4715
4678
  );
4716
- const handleTransitionEnd = import_react32.default.useCallback(() => {
4679
+ const handleTransitionEnd = import_react31.default.useCallback(() => {
4717
4680
  if (!useLoop) return;
4718
4681
  const real = getRealIndex(innerIndex);
4719
4682
  const canonical = cloneCount + real;
@@ -4723,7 +4686,7 @@ var Swiper = (props) => {
4723
4686
  }
4724
4687
  onChange?.(Math.min(real, maxIndex));
4725
4688
  }, [useLoop, innerIndex, cloneCount, totalSlides, maxIndex, onChange]);
4726
- const slideTo = import_react32.default.useCallback(
4689
+ const slideTo = import_react31.default.useCallback(
4727
4690
  (logicalIndex) => {
4728
4691
  if (!canSlide) return;
4729
4692
  const clamped = useLoop ? logicalIndex : Math.max(0, Math.min(logicalIndex, maxIndex));
@@ -4733,7 +4696,7 @@ var Swiper = (props) => {
4733
4696
  },
4734
4697
  [canSlide, useLoop, cloneCount, maxIndex, onChange, moveToInner]
4735
4698
  );
4736
- const slideNext = import_react32.default.useCallback(() => {
4699
+ const slideNext = import_react31.default.useCallback(() => {
4737
4700
  if (!canSlide) return;
4738
4701
  const nextInner = innerIndex + slideBy;
4739
4702
  if (useLoop) {
@@ -4742,7 +4705,7 @@ var Swiper = (props) => {
4742
4705
  moveToInner(Math.min(nextInner, maxIndex), true);
4743
4706
  }
4744
4707
  }, [canSlide, useLoop, innerIndex, slideBy, maxIndex, moveToInner]);
4745
- const slidePrev = import_react32.default.useCallback(() => {
4708
+ const slidePrev = import_react31.default.useCallback(() => {
4746
4709
  if (!canSlide) return;
4747
4710
  const prevInner = innerIndex - slideBy;
4748
4711
  if (useLoop) {
@@ -4751,7 +4714,7 @@ var Swiper = (props) => {
4751
4714
  moveToInner(Math.max(prevInner, 0), true);
4752
4715
  }
4753
4716
  }, [canSlide, useLoop, innerIndex, slideBy, moveToInner]);
4754
- import_react32.default.useEffect(() => {
4717
+ import_react31.default.useEffect(() => {
4755
4718
  if (indexProp === void 0) return;
4756
4719
  const clamped = Math.max(0, Math.min(indexProp, maxIndex));
4757
4720
  const target = useLoop ? cloneCount + clamped : clamped;
@@ -4759,12 +4722,12 @@ var Swiper = (props) => {
4759
4722
  moveToInner(target, true);
4760
4723
  }
4761
4724
  }, [indexProp]);
4762
- import_react32.default.useImperativeHandle(swiperRef, () => ({
4725
+ import_react31.default.useImperativeHandle(swiperRef, () => ({
4763
4726
  slidePrev,
4764
4727
  slideNext,
4765
4728
  slideTo
4766
4729
  }));
4767
- import_react32.default.useEffect(() => {
4730
+ import_react31.default.useEffect(() => {
4768
4731
  if (!auto || !canSlide) return;
4769
4732
  autoplayTimerRef.current = setInterval(slideNext, autoplayDelay);
4770
4733
  return () => {
@@ -4787,7 +4750,7 @@ var Swiper = (props) => {
4787
4750
  startXRef.current = getClientX(e);
4788
4751
  startTimeRef.current = Date.now();
4789
4752
  };
4790
- import_react32.default.useEffect(() => {
4753
+ import_react31.default.useEffect(() => {
4791
4754
  if (!isDragging) return;
4792
4755
  const handleMove = (e) => {
4793
4756
  setDragOffset(getClientX(e) - startXRef.current);
@@ -4825,8 +4788,8 @@ var Swiper = (props) => {
4825
4788
  }, [isDragging, dragOffset, innerIndex, useLoop, maxIndex, slideStep, moveToInner]);
4826
4789
  const slideWidthPercent = 100 / viewItemCount;
4827
4790
  const gapAdjust = spaceBetween * (viewItemCount - 1) / viewItemCount;
4828
- const slideElements = import_react32.default.useMemo(
4829
- () => extendedItems.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
4791
+ const slideElements = import_react31.default.useMemo(
4792
+ () => extendedItems.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime337.jsx)(
4830
4793
  "div",
4831
4794
  {
4832
4795
  className: "lib-xplat-swiper__slide",
@@ -4845,14 +4808,14 @@ var Swiper = (props) => {
4845
4808
  Math.floor(realIndex / slideBy),
4846
4809
  totalSteps - 1
4847
4810
  );
4848
- return /* @__PURE__ */ (0, import_jsx_runtime338.jsxs)("div", { className: "lib-xplat-swiper", ref: containerRef, children: [
4849
- /* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
4811
+ return /* @__PURE__ */ (0, import_jsx_runtime337.jsxs)("div", { className: "lib-xplat-swiper", ref: containerRef, children: [
4812
+ /* @__PURE__ */ (0, import_jsx_runtime337.jsx)(
4850
4813
  "div",
4851
4814
  {
4852
4815
  className: "lib-xplat-swiper__viewport",
4853
4816
  onMouseDown: handleDragStart,
4854
4817
  onTouchStart: handleDragStart,
4855
- children: /* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
4818
+ children: /* @__PURE__ */ (0, import_jsx_runtime337.jsx)(
4856
4819
  "div",
4857
4820
  {
4858
4821
  className: clsx_default(
@@ -4870,7 +4833,7 @@ var Swiper = (props) => {
4870
4833
  )
4871
4834
  }
4872
4835
  ),
4873
- 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)(
4836
+ showProgress && canSlide && /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("div", { className: "lib-xplat-swiper__progress", children: /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("div", { className: "lib-xplat-swiper__progress-track", children: /* @__PURE__ */ (0, import_jsx_runtime337.jsx)(
4874
4837
  "span",
4875
4838
  {
4876
4839
  className: "lib-xplat-swiper__progress-fill",
@@ -4880,7 +4843,7 @@ var Swiper = (props) => {
4880
4843
  }
4881
4844
  }
4882
4845
  ) }) }),
4883
- 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)(
4846
+ canSlide && /* @__PURE__ */ (0, import_jsx_runtime337.jsx)("div", { className: "lib-xplat-swiper__dots", children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime337.jsx)(
4884
4847
  "button",
4885
4848
  {
4886
4849
  className: clsx_default(
@@ -4898,8 +4861,8 @@ Swiper.displayName = "Swiper";
4898
4861
  var Swiper_default = Swiper;
4899
4862
 
4900
4863
  // src/components/Switch/Switch.tsx
4901
- var import_react33 = __toESM(require("react"), 1);
4902
- var import_jsx_runtime339 = require("react/jsx-runtime");
4864
+ var import_react32 = __toESM(require("react"), 1);
4865
+ var import_jsx_runtime338 = require("react/jsx-runtime");
4903
4866
  var KNOB_TRANSITION_MS = 250;
4904
4867
  var Switch = (props) => {
4905
4868
  const {
@@ -4909,9 +4872,9 @@ var Switch = (props) => {
4909
4872
  disabled,
4910
4873
  onChange
4911
4874
  } = props;
4912
- const [isAnimating, setIsAnimating] = import_react33.default.useState(false);
4913
- const timeoutRef = import_react33.default.useRef(null);
4914
- import_react33.default.useEffect(() => {
4875
+ const [isAnimating, setIsAnimating] = import_react32.default.useState(false);
4876
+ const timeoutRef = import_react32.default.useRef(null);
4877
+ import_react32.default.useEffect(() => {
4915
4878
  return () => {
4916
4879
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
4917
4880
  };
@@ -4926,7 +4889,7 @@ var Switch = (props) => {
4926
4889
  timeoutRef.current = null;
4927
4890
  }, KNOB_TRANSITION_MS);
4928
4891
  };
4929
- return /* @__PURE__ */ (0, import_jsx_runtime339.jsx)(
4892
+ return /* @__PURE__ */ (0, import_jsx_runtime338.jsx)(
4930
4893
  "div",
4931
4894
  {
4932
4895
  className: clsx_default(
@@ -4939,7 +4902,7 @@ var Switch = (props) => {
4939
4902
  ),
4940
4903
  onClick: handleClick,
4941
4904
  "aria-disabled": disabled || isAnimating,
4942
- children: /* @__PURE__ */ (0, import_jsx_runtime339.jsx)("div", { className: clsx_default("knob", value ? "checked" : void 0) })
4905
+ children: /* @__PURE__ */ (0, import_jsx_runtime338.jsx)("div", { className: clsx_default("knob", value ? "checked" : void 0) })
4943
4906
  }
4944
4907
  );
4945
4908
  };
@@ -4947,17 +4910,17 @@ Switch.displayName = "Switch";
4947
4910
  var Switch_default = Switch;
4948
4911
 
4949
4912
  // src/components/Table/TableContext.tsx
4950
- var import_react34 = __toESM(require("react"), 1);
4951
- var TableContext = import_react34.default.createContext(null);
4913
+ var import_react33 = __toESM(require("react"), 1);
4914
+ var TableContext = import_react33.default.createContext(null);
4952
4915
  var useTableContext = () => {
4953
- const ctx = import_react34.default.useContext(TableContext);
4916
+ const ctx = import_react33.default.useContext(TableContext);
4954
4917
  if (!ctx) throw new Error("Table components must be used inside <Table>");
4955
4918
  return ctx;
4956
4919
  };
4957
4920
  var TableContext_default = TableContext;
4958
4921
 
4959
4922
  // src/components/Table/Table.tsx
4960
- var import_jsx_runtime340 = require("react/jsx-runtime");
4923
+ var import_jsx_runtime339 = require("react/jsx-runtime");
4961
4924
  var Table = (props) => {
4962
4925
  const {
4963
4926
  children,
@@ -4967,7 +4930,7 @@ var Table = (props) => {
4967
4930
  headerSticky = false,
4968
4931
  stickyShadow = true
4969
4932
  } = props;
4970
- return /* @__PURE__ */ (0, import_jsx_runtime340.jsx)("div", { className: `lib-xplat-table-wrapper ${size}`, children: /* @__PURE__ */ (0, import_jsx_runtime340.jsx)(
4933
+ return /* @__PURE__ */ (0, import_jsx_runtime339.jsx)("div", { className: `lib-xplat-table-wrapper ${size}`, children: /* @__PURE__ */ (0, import_jsx_runtime339.jsx)(
4971
4934
  TableContext_default.Provider,
4972
4935
  {
4973
4936
  value: {
@@ -4976,7 +4939,7 @@ var Table = (props) => {
4976
4939
  headerSticky,
4977
4940
  stickyShadow
4978
4941
  },
4979
- children: /* @__PURE__ */ (0, import_jsx_runtime340.jsx)("table", { className: "lib-xplat-table", children })
4942
+ children: /* @__PURE__ */ (0, import_jsx_runtime339.jsx)("table", { className: "lib-xplat-table", children })
4980
4943
  }
4981
4944
  ) });
4982
4945
  };
@@ -4984,41 +4947,41 @@ Table.displayName = "Table";
4984
4947
  var Table_default = Table;
4985
4948
 
4986
4949
  // src/components/Table/TableBody.tsx
4987
- var import_jsx_runtime341 = require("react/jsx-runtime");
4950
+ var import_jsx_runtime340 = require("react/jsx-runtime");
4988
4951
  var TableBody = (props) => {
4989
4952
  const { children } = props;
4990
- return /* @__PURE__ */ (0, import_jsx_runtime341.jsx)("tbody", { children });
4953
+ return /* @__PURE__ */ (0, import_jsx_runtime340.jsx)("tbody", { children });
4991
4954
  };
4992
4955
  TableBody.displayName = "TableBody";
4993
4956
  var TableBody_default = TableBody;
4994
4957
 
4995
4958
  // src/components/Table/TableCell.tsx
4996
- var import_react37 = __toESM(require("react"), 1);
4959
+ var import_react36 = __toESM(require("react"), 1);
4997
4960
 
4998
4961
  // src/components/Table/TableHeadContext.tsx
4999
- var import_react35 = __toESM(require("react"), 1);
5000
- var TableHeadContext = import_react35.default.createContext(
4962
+ var import_react34 = __toESM(require("react"), 1);
4963
+ var TableHeadContext = import_react34.default.createContext(
5001
4964
  null
5002
4965
  );
5003
4966
  var useTableHeadContext = () => {
5004
- const ctx = import_react35.default.useContext(TableHeadContext);
4967
+ const ctx = import_react34.default.useContext(TableHeadContext);
5005
4968
  return ctx;
5006
4969
  };
5007
4970
  var TableHeadContext_default = TableHeadContext;
5008
4971
 
5009
4972
  // src/components/Table/TableRowContext.tsx
5010
- var import_react36 = __toESM(require("react"), 1);
5011
- var TableRowContext = import_react36.default.createContext(null);
4973
+ var import_react35 = __toESM(require("react"), 1);
4974
+ var TableRowContext = import_react35.default.createContext(null);
5012
4975
  var useTableRowContext = () => {
5013
- const ctx = import_react36.default.useContext(TableRowContext);
4976
+ const ctx = import_react35.default.useContext(TableRowContext);
5014
4977
  if (!ctx) throw new Error("Table components must be used inside <Table>");
5015
4978
  return ctx;
5016
4979
  };
5017
4980
  var TableRowContext_default = TableRowContext;
5018
4981
 
5019
4982
  // src/components/Table/TableCell.tsx
5020
- var import_jsx_runtime342 = require("react/jsx-runtime");
5021
- var TableCell = import_react37.default.memo((props) => {
4983
+ var import_jsx_runtime341 = require("react/jsx-runtime");
4984
+ var TableCell = import_react36.default.memo((props) => {
5022
4985
  const {
5023
4986
  children,
5024
4987
  align = "center",
@@ -5030,9 +4993,9 @@ var TableCell = import_react37.default.memo((props) => {
5030
4993
  const { registerStickyCell, stickyCells } = useTableRowContext();
5031
4994
  const { stickyShadow } = useTableContext();
5032
4995
  const headContext = useTableHeadContext();
5033
- const [left, setLeft] = import_react37.default.useState(0);
5034
- const cellRef = import_react37.default.useRef(null);
5035
- const calculateLeft = import_react37.default.useCallback(() => {
4996
+ const [left, setLeft] = import_react36.default.useState(0);
4997
+ const cellRef = import_react36.default.useRef(null);
4998
+ const calculateLeft = import_react36.default.useCallback(() => {
5036
4999
  if (!cellRef.current) return 0;
5037
5000
  let totalLeft = 0;
5038
5001
  for (const ref of stickyCells) {
@@ -5041,7 +5004,7 @@ var TableCell = import_react37.default.memo((props) => {
5041
5004
  }
5042
5005
  return totalLeft;
5043
5006
  }, [stickyCells]);
5044
- import_react37.default.useEffect(() => {
5007
+ import_react36.default.useEffect(() => {
5045
5008
  if (!isSticky || !cellRef.current) return;
5046
5009
  registerStickyCell(cellRef);
5047
5010
  setLeft(calculateLeft());
@@ -5059,7 +5022,7 @@ var TableCell = import_react37.default.memo((props) => {
5059
5022
  const CellTag = cellRef.current?.tagName === "TH" ? "th" : "td";
5060
5023
  const isLastSticky = isSticky && stickyCells[stickyCells.length - 1] === cellRef;
5061
5024
  const enableHover = headContext && headContext.cellHover;
5062
- return /* @__PURE__ */ (0, import_jsx_runtime342.jsx)(
5025
+ return /* @__PURE__ */ (0, import_jsx_runtime341.jsx)(
5063
5026
  CellTag,
5064
5027
  {
5065
5028
  ref: cellRef,
@@ -5084,21 +5047,21 @@ TableCell.displayName = "TableCell";
5084
5047
  var TableCell_default = TableCell;
5085
5048
 
5086
5049
  // src/components/Table/TableHead.tsx
5087
- var import_jsx_runtime343 = require("react/jsx-runtime");
5050
+ var import_jsx_runtime342 = require("react/jsx-runtime");
5088
5051
  var TableHead = ({
5089
5052
  children,
5090
5053
  cellHover = false
5091
5054
  }) => {
5092
5055
  const { headerSticky } = useTableContext();
5093
- 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 }) });
5056
+ return /* @__PURE__ */ (0, import_jsx_runtime342.jsx)(TableHeadContext_default.Provider, { value: { cellHover }, children: /* @__PURE__ */ (0, import_jsx_runtime342.jsx)("thead", { className: clsx_default(headerSticky ? "table-sticky" : null), children }) });
5094
5057
  };
5095
5058
  TableHead.displayName = "TableHead";
5096
5059
  var TableHead_default = TableHead;
5097
5060
 
5098
5061
  // src/components/Table/TableRow.tsx
5099
- var import_react38 = __toESM(require("react"), 1);
5100
- var import_jsx_runtime344 = require("react/jsx-runtime");
5101
- var TableRow = import_react38.default.memo((props) => {
5062
+ var import_react37 = __toESM(require("react"), 1);
5063
+ var import_jsx_runtime343 = require("react/jsx-runtime");
5064
+ var TableRow = import_react37.default.memo((props) => {
5102
5065
  const {
5103
5066
  children,
5104
5067
  type = "secondary",
@@ -5106,14 +5069,14 @@ var TableRow = import_react38.default.memo((props) => {
5106
5069
  onClick
5107
5070
  } = props;
5108
5071
  const { rowBorderUse } = useTableContext();
5109
- const [stickyCells, setStickyCells] = import_react38.default.useState([]);
5072
+ const [stickyCells, setStickyCells] = import_react37.default.useState([]);
5110
5073
  const registerStickyCell = (ref) => {
5111
5074
  setStickyCells((prev) => {
5112
5075
  if (prev.includes(ref)) return prev;
5113
5076
  return [...prev, ref];
5114
5077
  });
5115
5078
  };
5116
- return /* @__PURE__ */ (0, import_jsx_runtime344.jsx)(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ (0, import_jsx_runtime344.jsx)(
5079
+ return /* @__PURE__ */ (0, import_jsx_runtime343.jsx)(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ (0, import_jsx_runtime343.jsx)(
5117
5080
  "tr",
5118
5081
  {
5119
5082
  className: clsx_default(
@@ -5131,7 +5094,7 @@ TableRow.displayName = "TableRow";
5131
5094
  var TableRow_default = TableRow;
5132
5095
 
5133
5096
  // src/components/Tag/Tag.tsx
5134
- var import_jsx_runtime345 = require("react/jsx-runtime");
5097
+ var import_jsx_runtime344 = require("react/jsx-runtime");
5135
5098
  var Tag = (props) => {
5136
5099
  const {
5137
5100
  children,
@@ -5141,7 +5104,7 @@ var Tag = (props) => {
5141
5104
  disabled = false,
5142
5105
  colorIndex
5143
5106
  } = props;
5144
- return /* @__PURE__ */ (0, import_jsx_runtime345.jsxs)(
5107
+ return /* @__PURE__ */ (0, import_jsx_runtime344.jsxs)(
5145
5108
  "span",
5146
5109
  {
5147
5110
  className: clsx_default(
@@ -5152,8 +5115,8 @@ var Tag = (props) => {
5152
5115
  disabled && "disabled"
5153
5116
  ),
5154
5117
  children: [
5155
- /* @__PURE__ */ (0, import_jsx_runtime345.jsx)("span", { className: "tag-label", children }),
5156
- 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, {}) })
5118
+ /* @__PURE__ */ (0, import_jsx_runtime344.jsx)("span", { className: "tag-label", children }),
5119
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime344.jsx)("button", { className: "tag-close", onClick: onClose, "aria-label": "\uC0AD\uC81C", disabled, children: /* @__PURE__ */ (0, import_jsx_runtime344.jsx)(XIcon_default, {}) })
5157
5120
  ]
5158
5121
  }
5159
5122
  );
@@ -5161,6 +5124,63 @@ var Tag = (props) => {
5161
5124
  Tag.displayName = "Tag";
5162
5125
  var Tag_default = Tag;
5163
5126
 
5127
+ // src/components/TextArea/TextArea.tsx
5128
+ var import_react38 = __toESM(require("react"), 1);
5129
+ var import_jsx_runtime345 = require("react/jsx-runtime");
5130
+ var TextArea = import_react38.default.forwardRef(
5131
+ (props, ref) => {
5132
+ const { value, onChange, disabled, ...textareaProps } = props;
5133
+ const localRef = import_react38.default.useRef(null);
5134
+ const setRefs = (el) => {
5135
+ localRef.current = el;
5136
+ if (!ref) return;
5137
+ if (typeof ref === "function") {
5138
+ ref(el);
5139
+ } else if (ref && typeof ref === "object" && "current" in ref) {
5140
+ ref.current = el;
5141
+ }
5142
+ };
5143
+ const handleOnChange = (e) => {
5144
+ const val = e.target.value;
5145
+ if (onChange) {
5146
+ const event = {
5147
+ ...e,
5148
+ target: { value: val }
5149
+ };
5150
+ onChange(event);
5151
+ }
5152
+ };
5153
+ import_react38.default.useEffect(() => {
5154
+ const el = localRef.current;
5155
+ if (!el) return;
5156
+ el.style.height = "0px";
5157
+ const nextHeight = Math.min(el.scrollHeight, 400);
5158
+ el.style.height = `${nextHeight}px`;
5159
+ }, [value]);
5160
+ return /* @__PURE__ */ (0, import_jsx_runtime345.jsx)("div", { className: "lib-xplat-textarea-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime345.jsx)(
5161
+ "div",
5162
+ {
5163
+ className: clsx_default(
5164
+ "lib-xplat-textarea",
5165
+ disabled ? "disabled" : void 0
5166
+ ),
5167
+ children: /* @__PURE__ */ (0, import_jsx_runtime345.jsx)(
5168
+ "textarea",
5169
+ {
5170
+ ...textareaProps,
5171
+ ref: setRefs,
5172
+ disabled,
5173
+ value,
5174
+ onChange: handleOnChange
5175
+ }
5176
+ )
5177
+ }
5178
+ ) });
5179
+ }
5180
+ );
5181
+ TextArea.displayName = "TextArea";
5182
+ var TextArea_default = TextArea;
5183
+
5164
5184
  // src/components/Toast/Toast.tsx
5165
5185
  var import_react39 = __toESM(require("react"), 1);
5166
5186
  var import_react_dom4 = require("react-dom");