@x-plat/design-system 0.5.21 → 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.
@@ -387,6 +387,21 @@ import { jsx as jsx88 } from "react/jsx-runtime";
387
387
 
388
388
  // src/tokens/svg/communication/SendIcon.tsx
389
389
  import { jsx as jsx89, jsxs as jsxs47 } from "react/jsx-runtime";
390
+ var SendIcon = () => /* @__PURE__ */ jsxs47(
391
+ "svg",
392
+ {
393
+ xmlns: "http://www.w3.org/2000/svg",
394
+ width: "1em",
395
+ height: "1em",
396
+ viewBox: "0 0 20 20",
397
+ fill: "none",
398
+ children: [
399
+ /* @__PURE__ */ jsx89("g", { clipPath: "url(#send-clip)", children: /* @__PURE__ */ jsx89("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M18.3558 0.918873C18.3887 0.919879 18.4212 0.9224 18.4535 0.927663C18.4642 0.929393 18.4751 0.930348 18.4857 0.932545C18.527 0.941123 18.5675 0.953269 18.6068 0.968678C18.6178 0.972968 18.6282 0.978499 18.639 0.983327C18.6672 0.995914 18.6945 1.01021 18.7211 1.0263C18.7403 1.03794 18.7594 1.04988 18.7777 1.0634C18.7803 1.06534 18.7829 1.0673 18.7855 1.06926C18.8126 1.08979 18.839 1.11195 18.8637 1.13665C18.8872 1.16018 18.9084 1.18517 18.9281 1.21087C18.9322 1.21625 18.9359 1.22198 18.9398 1.22747C18.9501 1.24168 18.959 1.25667 18.9681 1.27141C18.9866 1.30108 19.0029 1.33154 19.017 1.36321C19.0214 1.37309 19.0267 1.38248 19.0306 1.39251C19.0461 1.43186 19.0581 1.47231 19.0668 1.5136C19.069 1.52426 19.0699 1.5351 19.0717 1.54583C19.077 1.57815 19.0794 1.61062 19.0805 1.64348C19.0808 1.65621 19.0817 1.66884 19.0814 1.68157C19.0799 1.75981 19.0681 1.83872 19.0414 1.91497L13.2074 18.581C13.1058 18.871 12.8377 19.0703 12.5306 19.0829C12.2237 19.0954 11.9398 18.9192 11.8148 18.6386L8.59706 11.4003L1.3617 8.18547C1.08085 8.06057 0.90492 7.77678 0.917368 7.46965C0.929915 7.16252 1.12827 6.89358 1.41834 6.79192L18.0853 0.958913C18.1613 0.932334 18.2398 0.919479 18.3178 0.917897C18.3305 0.91763 18.3431 0.918498 18.3558 0.918873ZM10.0609 10.999L12.4164 16.2997L16.5375 4.52239L10.0609 10.999ZM3.69862 7.58294L9.00038 9.93841L15.4808 3.45794L3.69862 7.58294Z", fill: "currentColor" }) }),
400
+ /* @__PURE__ */ jsx89("defs", { children: /* @__PURE__ */ jsx89("clipPath", { id: "send-clip", children: /* @__PURE__ */ jsx89("rect", { width: "20", height: "20", fill: "currentColor" }) }) })
401
+ ]
402
+ }
403
+ );
404
+ var SendIcon_default = SendIcon;
390
405
 
391
406
  // src/tokens/svg/date/CalendarIcon.tsx
392
407
  import { jsx as jsx90 } from "react/jsx-runtime";
@@ -1933,30 +1948,114 @@ var Calendar = (props) => {
1933
1948
  Calendar.displayName = "Calendar";
1934
1949
  var Calendar_default = Calendar;
1935
1950
 
1936
- // src/components/Box/Box.tsx
1951
+ // src/components/ChatInput/ChatInput.tsx
1952
+ import React4 from "react";
1937
1953
  import { jsx as jsx302, jsxs as jsxs194 } from "react/jsx-runtime";
1954
+ var MAX_HEIGHT = 200;
1955
+ var ChatInput = React4.forwardRef(
1956
+ (props, ref) => {
1957
+ const {
1958
+ placeholder,
1959
+ value: valueProp,
1960
+ disabled = false,
1961
+ buttonType = "primary",
1962
+ onSubmit,
1963
+ onChange
1964
+ } = props;
1965
+ const isControlled = valueProp !== void 0;
1966
+ const [internalValue, setInternalValue] = React4.useState("");
1967
+ const value = isControlled ? valueProp : internalValue;
1968
+ const hasText = value.trim().length > 0;
1969
+ const textareaRef = React4.useRef(null);
1970
+ const setRefs = React4.useCallback(
1971
+ (el) => {
1972
+ textareaRef.current = el;
1973
+ if (typeof ref === "function") ref(el);
1974
+ else if (ref) ref.current = el;
1975
+ },
1976
+ [ref]
1977
+ );
1978
+ const updateHeight = React4.useCallback(() => {
1979
+ const el = textareaRef.current;
1980
+ if (!el) return;
1981
+ el.style.height = "0px";
1982
+ el.style.height = `${Math.min(el.scrollHeight, MAX_HEIGHT)}px`;
1983
+ }, []);
1984
+ const handleChange = (e) => {
1985
+ const val = e.target.value;
1986
+ if (!isControlled) setInternalValue(val);
1987
+ onChange?.(val);
1988
+ };
1989
+ const handleSubmit = () => {
1990
+ if (!hasText || disabled) return;
1991
+ onSubmit?.(value);
1992
+ if (!isControlled) setInternalValue("");
1993
+ requestAnimationFrame(updateHeight);
1994
+ };
1995
+ const handleKeyDown = (e) => {
1996
+ if (e.key === "Enter" && !e.shiftKey) {
1997
+ e.preventDefault();
1998
+ handleSubmit();
1999
+ }
2000
+ };
2001
+ React4.useEffect(() => {
2002
+ updateHeight();
2003
+ }, [value, updateHeight]);
2004
+ return /* @__PURE__ */ jsxs194("div", { className: clsx_default("lib-xplat-chat-input", disabled && "disabled"), children: [
2005
+ /* @__PURE__ */ jsx302(
2006
+ "textarea",
2007
+ {
2008
+ ref: setRefs,
2009
+ className: "chat-input-textarea",
2010
+ placeholder,
2011
+ value,
2012
+ disabled,
2013
+ rows: 1,
2014
+ onChange: handleChange,
2015
+ onKeyDown: handleKeyDown
2016
+ }
2017
+ ),
2018
+ /* @__PURE__ */ jsx302(
2019
+ "button",
2020
+ {
2021
+ type: "button",
2022
+ className: clsx_default("chat-input-send", `btn-${buttonType}`),
2023
+ disabled: !hasText || disabled,
2024
+ onClick: handleSubmit,
2025
+ "aria-label": "\uC804\uC1A1",
2026
+ children: /* @__PURE__ */ jsx302(SendIcon_default, {})
2027
+ }
2028
+ )
2029
+ ] });
2030
+ }
2031
+ );
2032
+ ChatInput.displayName = "ChatInput";
2033
+ var ChatInput_default = ChatInput;
2034
+
2035
+ // src/components/Box/Box.tsx
2036
+ import { jsx as jsx303, jsxs as jsxs195 } from "react/jsx-runtime";
1938
2037
  var Box = ({
1939
2038
  children,
1940
2039
  title,
1941
2040
  variant = "outlined",
1942
2041
  padding = "md"
1943
2042
  }) => {
1944
- return /* @__PURE__ */ jsxs194("div", { className: clsx_default("lib-xplat-box", variant, `pad-${padding}`), children: [
1945
- title && /* @__PURE__ */ jsx302("div", { className: "box-title", children: title }),
1946
- /* @__PURE__ */ jsx302("div", { className: "box-content", children })
2043
+ return /* @__PURE__ */ jsxs195("div", { className: clsx_default("lib-xplat-box", variant, `pad-${padding}`), children: [
2044
+ title && /* @__PURE__ */ jsx303("div", { className: "box-title", children: title }),
2045
+ /* @__PURE__ */ jsx303("div", { className: "box-content", children })
1947
2046
  ] });
1948
2047
  };
1949
2048
  Box.displayName = "Box";
1950
2049
  var Box_default = Box;
1951
2050
 
1952
2051
  // src/components/CardTab/CardTab.tsx
1953
- import React4 from "react";
2052
+ import React5 from "react";
1954
2053
 
1955
2054
  // src/components/CardTab/CardTabPanel.tsx
1956
- import { jsx as jsx303 } from "react/jsx-runtime";
2055
+ import { jsx as jsx304 } from "react/jsx-runtime";
1957
2056
  var CardTabPanel = (props) => {
1958
2057
  const { children, columns = 3 } = props;
1959
- return /* @__PURE__ */ jsx303(
2058
+ return /* @__PURE__ */ jsx304(
1960
2059
  "div",
1961
2060
  {
1962
2061
  className: "card-tab-panel",
@@ -1969,7 +2068,7 @@ CardTabPanel.displayName = "CardTab.Panel";
1969
2068
  var CardTabPanel_default = CardTabPanel;
1970
2069
 
1971
2070
  // src/components/CardTab/CardTab.tsx
1972
- import { jsx as jsx304, jsxs as jsxs195 } from "react/jsx-runtime";
2071
+ import { jsx as jsx305, jsxs as jsxs196 } from "react/jsx-runtime";
1973
2072
  var CardTabRoot = (props) => {
1974
2073
  const {
1975
2074
  tabs,
@@ -1979,7 +2078,7 @@ var CardTabRoot = (props) => {
1979
2078
  children
1980
2079
  } = props;
1981
2080
  const isControlled = activeValueProp !== void 0;
1982
- const [uncontrolledValue, setUncontrolledValue] = React4.useState(tabs[0]?.value ?? "");
2081
+ const [uncontrolledValue, setUncontrolledValue] = React5.useState(tabs[0]?.value ?? "");
1983
2082
  const activeValue = isControlled ? activeValueProp : uncontrolledValue;
1984
2083
  const handleTabClick = (tab) => {
1985
2084
  if (!isControlled) {
@@ -1987,16 +2086,16 @@ var CardTabRoot = (props) => {
1987
2086
  }
1988
2087
  onChange?.(tab);
1989
2088
  };
1990
- const panels = React4.Children.toArray(children).filter(
1991
- (child) => React4.isValidElement(child) && child.type === CardTabPanel_default
2089
+ const panels = React5.Children.toArray(children).filter(
2090
+ (child) => React5.isValidElement(child) && child.type === CardTabPanel_default
1992
2091
  );
1993
2092
  const activePanel = panels.find(
1994
2093
  (panel) => panel.props.value === activeValue
1995
2094
  );
1996
- return /* @__PURE__ */ jsxs195("div", { className: clsx_default("lib-xplat-card-tab", size), children: [
1997
- /* @__PURE__ */ jsx304("div", { className: "card-tab-bar", children: tabs.map((tab) => {
2095
+ return /* @__PURE__ */ jsxs196("div", { className: clsx_default("lib-xplat-card-tab", size), children: [
2096
+ /* @__PURE__ */ jsx305("div", { className: "card-tab-bar", children: tabs.map((tab) => {
1998
2097
  const isActive = tab.value === activeValue;
1999
- return /* @__PURE__ */ jsx304(
2098
+ return /* @__PURE__ */ jsx305(
2000
2099
  "button",
2001
2100
  {
2002
2101
  className: clsx_default("card-tab-trigger", isActive && "active"),
@@ -2008,7 +2107,7 @@ var CardTabRoot = (props) => {
2008
2107
  tab.value
2009
2108
  );
2010
2109
  }) }),
2011
- /* @__PURE__ */ jsx304("div", { className: "card-tab-body", children: activePanel })
2110
+ /* @__PURE__ */ jsx305("div", { className: "card-tab-body", children: activePanel })
2012
2111
  ] });
2013
2112
  };
2014
2113
  CardTabRoot.displayName = "CardTab";
@@ -2018,8 +2117,8 @@ var CardTab = Object.assign(CardTabRoot, {
2018
2117
  var CardTab_default = CardTab;
2019
2118
 
2020
2119
  // src/components/Chart/Chart.tsx
2021
- import React5 from "react";
2022
- import { Fragment as Fragment2, jsx as jsx305, jsxs as jsxs196 } from "react/jsx-runtime";
2120
+ import React6 from "react";
2121
+ import { Fragment as Fragment2, jsx as jsx306, jsxs as jsxs197 } from "react/jsx-runtime";
2023
2122
  var CATEGORICAL_COUNT2 = 8;
2024
2123
  var LINE_BAR_PALETTES = Array.from({ length: CATEGORICAL_COUNT2 }, (_, i) => {
2025
2124
  const n = i + 1;
@@ -2065,11 +2164,11 @@ var toSmoothPath = (points) => {
2065
2164
  };
2066
2165
  var RESIZE_SETTLE_MS = 150;
2067
2166
  var useChartSize = (ref) => {
2068
- const [size, setSize] = React5.useState({ width: 0, height: 0 });
2069
- const settleTimer = React5.useRef(0);
2070
- const committedSize = React5.useRef({ width: 0, height: 0 });
2071
- const initialRef = React5.useRef(true);
2072
- React5.useEffect(() => {
2167
+ const [size, setSize] = React6.useState({ width: 0, height: 0 });
2168
+ const settleTimer = React6.useRef(0);
2169
+ const committedSize = React6.useRef({ width: 0, height: 0 });
2170
+ const initialRef = React6.useRef(true);
2171
+ React6.useEffect(() => {
2073
2172
  const el = ref.current;
2074
2173
  if (!el) return;
2075
2174
  const observer = new ResizeObserver((entries) => {
@@ -2111,10 +2210,10 @@ var useChartSize = (ref) => {
2111
2210
  };
2112
2211
  var prefersReducedMotion = () => typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
2113
2212
  var useChartAnimation = (containerRef, dataKey) => {
2114
- const [animate, setAnimate] = React5.useState(false);
2115
- const prevDataKey = React5.useRef(dataKey);
2116
- const hasAnimated = React5.useRef(false);
2117
- React5.useEffect(() => {
2213
+ const [animate, setAnimate] = React6.useState(false);
2214
+ const prevDataKey = React6.useRef(dataKey);
2215
+ const hasAnimated = React6.useRef(false);
2216
+ React6.useEffect(() => {
2118
2217
  if (prefersReducedMotion()) return;
2119
2218
  const el = containerRef.current;
2120
2219
  if (!el) return;
@@ -2130,7 +2229,7 @@ var useChartAnimation = (containerRef, dataKey) => {
2130
2229
  observer.observe(el);
2131
2230
  return () => observer.disconnect();
2132
2231
  }, [containerRef]);
2133
- React5.useEffect(() => {
2232
+ React6.useEffect(() => {
2134
2233
  if (dataKey !== prevDataKey.current) {
2135
2234
  prevDataKey.current = dataKey;
2136
2235
  if (prefersReducedMotion()) return;
@@ -2141,15 +2240,15 @@ var useChartAnimation = (containerRef, dataKey) => {
2141
2240
  return animate || prefersReducedMotion();
2142
2241
  };
2143
2242
  var useChartTooltip = (enabled) => {
2144
- const [tooltip, setTooltip] = React5.useState({
2243
+ const [tooltip, setTooltip] = React6.useState({
2145
2244
  visible: false,
2146
2245
  x: 0,
2147
2246
  y: 0,
2148
2247
  content: ""
2149
2248
  });
2150
- const containerRef = React5.useRef(null);
2151
- const rafRef = React5.useRef(0);
2152
- const move = React5.useCallback((e) => {
2249
+ const containerRef = React6.useRef(null);
2250
+ const rafRef = React6.useRef(0);
2251
+ const move = React6.useCallback((e) => {
2153
2252
  if (!enabled) return;
2154
2253
  const clientX = e.clientX;
2155
2254
  const clientY = e.clientY;
@@ -2164,7 +2263,7 @@ var useChartTooltip = (enabled) => {
2164
2263
  }));
2165
2264
  });
2166
2265
  }, [enabled]);
2167
- const show = React5.useCallback((e, content) => {
2266
+ const show = React6.useCallback((e, content) => {
2168
2267
  if (!enabled) return;
2169
2268
  const rect = containerRef.current?.getBoundingClientRect();
2170
2269
  if (!rect) return;
@@ -2175,18 +2274,18 @@ var useChartTooltip = (enabled) => {
2175
2274
  content
2176
2275
  });
2177
2276
  }, [enabled]);
2178
- const hide = React5.useCallback(() => {
2277
+ const hide = React6.useCallback(() => {
2179
2278
  cancelAnimationFrame(rafRef.current);
2180
2279
  setTooltip((prev) => ({ ...prev, visible: false }));
2181
2280
  }, []);
2182
2281
  return { tooltip, show, hide, move, containerRef };
2183
2282
  };
2184
- var GridLines = React5.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ jsx305(Fragment2, { children: [0, 0.25, 0.5, 0.75, 1].map((ratio) => {
2283
+ var GridLines = React6.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ jsx306(Fragment2, { children: [0, 0.25, 0.5, 0.75, 1].map((ratio) => {
2185
2284
  const y = PADDING.top + (1 - ratio) * chartH;
2186
2285
  const val = Math.round(maxVal * ratio);
2187
- return /* @__PURE__ */ jsxs196("g", { children: [
2188
- /* @__PURE__ */ jsx305("line", { x1: PADDING.left, y1: y, x2: width - PADDING.right, y2: y, className: "chart-grid" }),
2189
- /* @__PURE__ */ jsx305("text", { x: PADDING.left - 8, y: y + 4, className: "chart-axis-label", textAnchor: "end", children: val })
2286
+ return /* @__PURE__ */ jsxs197("g", { children: [
2287
+ /* @__PURE__ */ jsx306("line", { x1: PADDING.left, y1: y, x2: width - PADDING.right, y2: y, className: "chart-grid" }),
2288
+ /* @__PURE__ */ jsx306("text", { x: PADDING.left - 8, y: y + 4, className: "chart-axis-label", textAnchor: "end", children: val })
2190
2289
  ] }, ratio);
2191
2290
  }) }));
2192
2291
  GridLines.displayName = "GridLines";
@@ -2196,25 +2295,25 @@ var getLabelStep = (count, chartW) => {
2196
2295
  if (count <= maxLabels) return 1;
2197
2296
  return Math.ceil(count / maxLabels);
2198
2297
  };
2199
- var AxisLabels = React5.memo(({ labels, count, chartW, height }) => {
2298
+ var AxisLabels = React6.memo(({ labels, count, chartW, height }) => {
2200
2299
  const step = getLabelStep(count, chartW);
2201
- return /* @__PURE__ */ jsx305(Fragment2, { children: labels.map((label, i) => {
2300
+ return /* @__PURE__ */ jsx306(Fragment2, { children: labels.map((label, i) => {
2202
2301
  if (i % step !== 0) return null;
2203
2302
  const x = PADDING.left + i / (count - 1 || 1) * chartW;
2204
- return /* @__PURE__ */ jsx305("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
2303
+ return /* @__PURE__ */ jsx306("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
2205
2304
  }) });
2206
2305
  });
2207
2306
  AxisLabels.displayName = "AxisLabels";
2208
- var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2209
- const entries = React5.useMemo(() => Object.entries(data), [data]);
2210
- const maxVal = React5.useMemo(() => {
2307
+ var LineChart = React6.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2308
+ const entries = React6.useMemo(() => Object.entries(data), [data]);
2309
+ const maxVal = React6.useMemo(() => {
2211
2310
  const allValues = entries.flatMap(([, v]) => v);
2212
2311
  return Math.max(...allValues) * 1.2 || 1;
2213
2312
  }, [entries]);
2214
2313
  const count = labels.length;
2215
2314
  const chartW = width - PADDING.left - PADDING.right;
2216
2315
  const chartH = height - PADDING.top - PADDING.bottom;
2217
- const seriesPoints = React5.useMemo(
2316
+ const seriesPoints = React6.useMemo(
2218
2317
  () => entries.map(
2219
2318
  ([, values]) => values.map((v, i) => ({
2220
2319
  x: PADDING.left + i / (count - 1 || 1) * chartW,
@@ -2225,8 +2324,8 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
2225
2324
  [entries, count, chartW, chartH, maxVal]
2226
2325
  );
2227
2326
  const showPoints = count <= 100;
2228
- const lineRefs = React5.useRef([]);
2229
- React5.useEffect(() => {
2327
+ const lineRefs = React6.useRef([]);
2328
+ React6.useEffect(() => {
2230
2329
  if (!animate) return;
2231
2330
  lineRefs.current.forEach((el) => {
2232
2331
  if (!el) return;
@@ -2239,9 +2338,9 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
2239
2338
  });
2240
2339
  });
2241
2340
  }, [animate, seriesPoints]);
2242
- return /* @__PURE__ */ jsxs196("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2243
- /* @__PURE__ */ jsx305(GridLines, { width, height, chartH, maxVal }),
2244
- /* @__PURE__ */ jsx305(AxisLabels, { labels, count, chartW, height }),
2341
+ return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2342
+ /* @__PURE__ */ jsx306(GridLines, { width, height, chartH, maxVal }),
2343
+ /* @__PURE__ */ jsx306(AxisLabels, { labels, count, chartW, height }),
2245
2344
  entries.map(([key], di) => {
2246
2345
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
2247
2346
  const color = palette[2];
@@ -2250,12 +2349,12 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
2250
2349
  const gradientId = `line-gradient-${di}`;
2251
2350
  const polyPoints = points.map((p) => `${p.x},${p.y}`).join(" ");
2252
2351
  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`;
2253
- return /* @__PURE__ */ jsxs196("g", { children: [
2254
- /* @__PURE__ */ jsx305("defs", { children: /* @__PURE__ */ jsxs196("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
2255
- /* @__PURE__ */ jsx305("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.2" }),
2256
- /* @__PURE__ */ jsx305("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0" })
2352
+ return /* @__PURE__ */ jsxs197("g", { children: [
2353
+ /* @__PURE__ */ jsx306("defs", { children: /* @__PURE__ */ jsxs197("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
2354
+ /* @__PURE__ */ jsx306("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.2" }),
2355
+ /* @__PURE__ */ jsx306("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0" })
2257
2356
  ] }) }),
2258
- /* @__PURE__ */ jsx305(
2357
+ /* @__PURE__ */ jsx306(
2259
2358
  "path",
2260
2359
  {
2261
2360
  d: areaD,
@@ -2264,7 +2363,7 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
2264
2363
  style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
2265
2364
  }
2266
2365
  ),
2267
- /* @__PURE__ */ jsx305(
2366
+ /* @__PURE__ */ jsx306(
2268
2367
  "polyline",
2269
2368
  {
2270
2369
  ref: (el) => {
@@ -2276,7 +2375,7 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
2276
2375
  strokeWidth: "2"
2277
2376
  }
2278
2377
  ),
2279
- showPoints && points.map((p, i) => /* @__PURE__ */ jsx305(
2378
+ showPoints && points.map((p, i) => /* @__PURE__ */ jsx306(
2280
2379
  "circle",
2281
2380
  {
2282
2381
  cx: p.x,
@@ -2295,16 +2394,16 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
2295
2394
  ] });
2296
2395
  });
2297
2396
  LineChart.displayName = "LineChart";
2298
- var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2299
- const entries = React5.useMemo(() => Object.entries(data), [data]);
2300
- const maxVal = React5.useMemo(() => {
2397
+ var CurveChart = React6.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2398
+ const entries = React6.useMemo(() => Object.entries(data), [data]);
2399
+ const maxVal = React6.useMemo(() => {
2301
2400
  const allValues = entries.flatMap(([, v]) => v);
2302
2401
  return Math.max(...allValues) * 1.2 || 1;
2303
2402
  }, [entries]);
2304
2403
  const count = labels.length;
2305
2404
  const chartW = width - PADDING.left - PADDING.right;
2306
2405
  const chartH = height - PADDING.top - PADDING.bottom;
2307
- const seriesPoints = React5.useMemo(
2406
+ const seriesPoints = React6.useMemo(
2308
2407
  () => entries.map(
2309
2408
  ([, values]) => values.map((v, i) => ({
2310
2409
  x: PADDING.left + i / (count - 1 || 1) * chartW,
@@ -2315,8 +2414,8 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
2315
2414
  [entries, count, chartW, chartH, maxVal]
2316
2415
  );
2317
2416
  const showPoints = count <= 100;
2318
- const lineRefs = React5.useRef([]);
2319
- React5.useEffect(() => {
2417
+ const lineRefs = React6.useRef([]);
2418
+ React6.useEffect(() => {
2320
2419
  if (!animate) return;
2321
2420
  lineRefs.current.forEach((el) => {
2322
2421
  if (!el) return;
@@ -2329,9 +2428,9 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
2329
2428
  });
2330
2429
  });
2331
2430
  }, [animate, seriesPoints]);
2332
- return /* @__PURE__ */ jsxs196("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2333
- /* @__PURE__ */ jsx305(GridLines, { width, height, chartH, maxVal }),
2334
- /* @__PURE__ */ jsx305(AxisLabels, { labels, count, chartW, height }),
2431
+ return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2432
+ /* @__PURE__ */ jsx306(GridLines, { width, height, chartH, maxVal }),
2433
+ /* @__PURE__ */ jsx306(AxisLabels, { labels, count, chartW, height }),
2335
2434
  entries.map(([key], di) => {
2336
2435
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
2337
2436
  const color = palette[2];
@@ -2340,12 +2439,12 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
2340
2439
  const gradientId = `curve-gradient-${di}`;
2341
2440
  const linePath = toSmoothPath(points);
2342
2441
  const areaPath = linePath + ` L ${points[points.length - 1].x} ${PADDING.top + chartH} L ${points[0].x} ${PADDING.top + chartH} Z`;
2343
- return /* @__PURE__ */ jsxs196("g", { children: [
2344
- /* @__PURE__ */ jsx305("defs", { children: /* @__PURE__ */ jsxs196("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
2345
- /* @__PURE__ */ jsx305("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.4" }),
2346
- /* @__PURE__ */ jsx305("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0.02" })
2442
+ return /* @__PURE__ */ jsxs197("g", { children: [
2443
+ /* @__PURE__ */ jsx306("defs", { children: /* @__PURE__ */ jsxs197("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
2444
+ /* @__PURE__ */ jsx306("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.4" }),
2445
+ /* @__PURE__ */ jsx306("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0.02" })
2347
2446
  ] }) }),
2348
- /* @__PURE__ */ jsx305(
2447
+ /* @__PURE__ */ jsx306(
2349
2448
  "path",
2350
2449
  {
2351
2450
  d: areaPath,
@@ -2354,7 +2453,7 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
2354
2453
  style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
2355
2454
  }
2356
2455
  ),
2357
- /* @__PURE__ */ jsx305(
2456
+ /* @__PURE__ */ jsx306(
2358
2457
  "path",
2359
2458
  {
2360
2459
  ref: (el) => {
@@ -2366,7 +2465,7 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
2366
2465
  strokeWidth: "2"
2367
2466
  }
2368
2467
  ),
2369
- showPoints && points.map((p, i) => /* @__PURE__ */ jsx305(
2468
+ showPoints && points.map((p, i) => /* @__PURE__ */ jsx306(
2370
2469
  "circle",
2371
2470
  {
2372
2471
  cx: p.x,
@@ -2385,9 +2484,9 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
2385
2484
  ] });
2386
2485
  });
2387
2486
  CurveChart.displayName = "CurveChart";
2388
- var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2389
- const entries = React5.useMemo(() => Object.entries(data), [data]);
2390
- const maxVal = React5.useMemo(() => {
2487
+ var BarChart = React6.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
2488
+ const entries = React6.useMemo(() => Object.entries(data), [data]);
2489
+ const maxVal = React6.useMemo(() => {
2391
2490
  const allValues = entries.flatMap(([, v]) => v);
2392
2491
  return Math.max(...allValues) * 1.2 || 1;
2393
2492
  }, [entries]);
@@ -2399,7 +2498,7 @@ var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onM
2399
2498
  const barGap = groupCount > 1 ? 2 : 0;
2400
2499
  const barW = Math.max(1, Math.min(32, (groupW * 0.7 - barGap * (groupCount - 1)) / groupCount));
2401
2500
  const baseline = PADDING.top + chartH;
2402
- const bars = React5.useMemo(
2501
+ const bars = React6.useMemo(
2403
2502
  () => entries.map(
2404
2503
  ([, values], di) => values.map((v, i) => {
2405
2504
  const totalBarsW = barW * groupCount + barGap * (groupCount - 1);
@@ -2412,11 +2511,11 @@ var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onM
2412
2511
  [entries, maxVal, chartH, groupW, barW, barGap, groupCount]
2413
2512
  );
2414
2513
  const barLabelStep = getLabelStep(count, chartW);
2415
- return /* @__PURE__ */ jsxs196("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2416
- /* @__PURE__ */ jsx305(GridLines, { width, height, chartH, maxVal }),
2514
+ return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
2515
+ /* @__PURE__ */ jsx306(GridLines, { width, height, chartH, maxVal }),
2417
2516
  labels.map((label, i) => {
2418
2517
  if (i % barLabelStep !== 0) return null;
2419
- return /* @__PURE__ */ jsx305("text", { x: PADDING.left + groupW * i + groupW / 2, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
2518
+ return /* @__PURE__ */ jsx306("text", { x: PADDING.left + groupW * i + groupW / 2, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
2420
2519
  }),
2421
2520
  entries.map(([key], di) => {
2422
2521
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
@@ -2425,7 +2524,7 @@ var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onM
2425
2524
  const r2 = Math.min(4, b.w / 2);
2426
2525
  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`;
2427
2526
  const delay = 100 + i * 80;
2428
- return /* @__PURE__ */ jsx305(
2527
+ return /* @__PURE__ */ jsx306(
2429
2528
  "path",
2430
2529
  {
2431
2530
  d,
@@ -2446,11 +2545,11 @@ var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onM
2446
2545
  ] });
2447
2546
  });
2448
2547
  BarChart.displayName = "BarChart";
2449
- var PieDonutChart = React5.memo(
2548
+ var PieDonutChart = React6.memo(
2450
2549
  ({ data, labels, width, height, animate, isDoughnut, onHover, onMove, onLeave }) => {
2451
- const entries = React5.useMemo(() => Object.entries(data), [data]);
2452
- const values = React5.useMemo(() => entries.flatMap(([, v]) => v), [entries]);
2453
- const total = React5.useMemo(() => values.reduce((a, b) => a + b, 0) || 1, [values]);
2550
+ const entries = React6.useMemo(() => Object.entries(data), [data]);
2551
+ const values = React6.useMemo(() => entries.flatMap(([, v]) => v), [entries]);
2552
+ const total = React6.useMemo(() => values.reduce((a, b) => a + b, 0) || 1, [values]);
2454
2553
  const size = Math.min(width, height);
2455
2554
  const cx = size / 2;
2456
2555
  const cy = size / 2;
@@ -2458,10 +2557,10 @@ var PieDonutChart = React5.memo(
2458
2557
  const innerR = isDoughnut ? r2 * 0.5 : 0;
2459
2558
  const firstKey = entries[0]?.[0] ?? "";
2460
2559
  const colorOffset = hashString(firstKey);
2461
- const maskRef = React5.useRef(null);
2560
+ const maskRef = React6.useRef(null);
2462
2561
  const maskR = r2 + 10;
2463
2562
  const maskCircumference = 2 * Math.PI * maskR;
2464
- React5.useEffect(() => {
2563
+ React6.useEffect(() => {
2465
2564
  if (!animate || !maskRef.current) return;
2466
2565
  const el = maskRef.current;
2467
2566
  el.style.strokeDasharray = `${maskCircumference}`;
@@ -2471,7 +2570,7 @@ var PieDonutChart = React5.memo(
2471
2570
  el.style.strokeDashoffset = "0";
2472
2571
  });
2473
2572
  }, [animate, maskCircumference]);
2474
- const sliceData = React5.useMemo(() => {
2573
+ const sliceData = React6.useMemo(() => {
2475
2574
  let angle0 = -Math.PI / 2;
2476
2575
  let cumulativeAngle = 0;
2477
2576
  return values.map((v, i) => {
@@ -2505,8 +2604,8 @@ var PieDonutChart = React5.memo(
2505
2604
  });
2506
2605
  }, [values, total, cx, cy, r2, innerR, labels]);
2507
2606
  const maskId = `pie-mask-${isDoughnut ? "d" : "p"}`;
2508
- return /* @__PURE__ */ jsxs196("svg", { viewBox: `0 0 ${size} ${size}`, className: "chart-svg chart-pie", children: [
2509
- animate && /* @__PURE__ */ jsx305("defs", { children: /* @__PURE__ */ jsx305("mask", { id: maskId, children: /* @__PURE__ */ jsx305(
2607
+ return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${size} ${size}`, className: "chart-svg chart-pie", children: [
2608
+ animate && /* @__PURE__ */ jsx306("defs", { children: /* @__PURE__ */ jsx306("mask", { id: maskId, children: /* @__PURE__ */ jsx306(
2510
2609
  "circle",
2511
2610
  {
2512
2611
  ref: maskRef,
@@ -2519,7 +2618,7 @@ var PieDonutChart = React5.memo(
2519
2618
  transform: `rotate(-90 ${cx} ${cy})`
2520
2619
  }
2521
2620
  ) }) }),
2522
- /* @__PURE__ */ jsx305("g", { mask: animate ? `url(#${maskId})` : void 0, children: sliceData.map((s, i) => /* @__PURE__ */ jsx305("g", { children: /* @__PURE__ */ jsx305(
2621
+ /* @__PURE__ */ jsx306("g", { mask: animate ? `url(#${maskId})` : void 0, children: sliceData.map((s, i) => /* @__PURE__ */ jsx306("g", { children: /* @__PURE__ */ jsx306(
2523
2622
  "path",
2524
2623
  {
2525
2624
  d: s.d,
@@ -2530,7 +2629,7 @@ var PieDonutChart = React5.memo(
2530
2629
  onMouseLeave: onLeave
2531
2630
  }
2532
2631
  ) }, i)) }),
2533
- sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ jsx305(
2632
+ sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ jsx306(
2534
2633
  "text",
2535
2634
  {
2536
2635
  x: s.lx,
@@ -2548,9 +2647,9 @@ var PieDonutChart = React5.memo(
2548
2647
  );
2549
2648
  PieDonutChart.displayName = "PieDonutChart";
2550
2649
  var TooltipBubble = ({ x, y, containerWidth, children }) => {
2551
- const ref = React5.useRef(null);
2552
- const [adjustedX, setAdjustedX] = React5.useState(x);
2553
- React5.useEffect(() => {
2650
+ const ref = React6.useRef(null);
2651
+ const [adjustedX, setAdjustedX] = React6.useState(x);
2652
+ React6.useEffect(() => {
2554
2653
  const el = ref.current;
2555
2654
  if (!el) return;
2556
2655
  const w = el.offsetWidth;
@@ -2561,7 +2660,7 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
2561
2660
  else if (x + half > containerWidth - margin) nx = containerWidth - half - margin;
2562
2661
  setAdjustedX(nx);
2563
2662
  }, [x, containerWidth]);
2564
- return /* @__PURE__ */ jsx305(
2663
+ return /* @__PURE__ */ jsx306(
2565
2664
  "div",
2566
2665
  {
2567
2666
  ref,
@@ -2571,22 +2670,22 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
2571
2670
  }
2572
2671
  );
2573
2672
  };
2574
- var Chart = React5.memo((props) => {
2673
+ var Chart = React6.memo((props) => {
2575
2674
  const { type, data, labels, tooltip: showTooltip = true } = props;
2576
2675
  const { tooltip, show, hide, move, containerRef } = useChartTooltip(showTooltip);
2577
2676
  const { width, height } = useChartSize(containerRef);
2578
- const stableData = React5.useMemo(() => data, [JSON.stringify(data)]);
2579
- const stableLabels = React5.useMemo(() => labels, [JSON.stringify(labels)]);
2580
- const dataKey = React5.useMemo(() => JSON.stringify(labels), [labels]);
2677
+ const stableData = React6.useMemo(() => data, [JSON.stringify(data)]);
2678
+ const stableLabels = React6.useMemo(() => labels, [JSON.stringify(labels)]);
2679
+ const dataKey = React6.useMemo(() => JSON.stringify(labels), [labels]);
2581
2680
  const animate = useChartAnimation(containerRef, dataKey);
2582
2681
  const ready = width > 0 && height > 0;
2583
- return /* @__PURE__ */ jsxs196("div", { className: "lib-xplat-chart", ref: containerRef, children: [
2584
- ready && type === "line" && /* @__PURE__ */ jsx305(LineChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2585
- ready && type === "curve" && /* @__PURE__ */ jsx305(CurveChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2586
- ready && type === "bar" && /* @__PURE__ */ jsx305(BarChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2587
- ready && type === "pie" && /* @__PURE__ */ jsx305(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2588
- ready && type === "doughnut" && /* @__PURE__ */ jsx305(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, isDoughnut: true, onHover: show, onMove: move, onLeave: hide }),
2589
- tooltip.visible && /* @__PURE__ */ jsx305(TooltipBubble, { x: tooltip.x, y: tooltip.y, containerWidth: width, children: tooltip.content })
2682
+ return /* @__PURE__ */ jsxs197("div", { className: "lib-xplat-chart", ref: containerRef, children: [
2683
+ ready && type === "line" && /* @__PURE__ */ jsx306(LineChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2684
+ ready && type === "curve" && /* @__PURE__ */ jsx306(CurveChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2685
+ ready && type === "bar" && /* @__PURE__ */ jsx306(BarChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2686
+ ready && type === "pie" && /* @__PURE__ */ jsx306(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
2687
+ ready && type === "doughnut" && /* @__PURE__ */ jsx306(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, isDoughnut: true, onHover: show, onMove: move, onLeave: hide }),
2688
+ tooltip.visible && /* @__PURE__ */ jsx306(TooltipBubble, { x: tooltip.x, y: tooltip.y, containerWidth: width, children: tooltip.content })
2590
2689
  ] });
2591
2690
  });
2592
2691
  Chart.displayName = "Chart";
@@ -2599,7 +2698,7 @@ import { primitive, semantic } from "@x-plat/tokens-core";
2599
2698
  import { cssVar } from "@x-plat/tokens-core";
2600
2699
 
2601
2700
  // src/components/CheckBox/CheckBox.tsx
2602
- import { jsx as jsx306, jsxs as jsxs197 } from "react/jsx-runtime";
2701
+ import { jsx as jsx307, jsxs as jsxs198 } from "react/jsx-runtime";
2603
2702
  var CheckBox = (props) => {
2604
2703
  const {
2605
2704
  checked,
@@ -2617,8 +2716,8 @@ var CheckBox = (props) => {
2617
2716
  const checkedClasses = `checked`;
2618
2717
  const disabledClasses = "disabled";
2619
2718
  const boxClasses = disabled ? disabledClasses : checked ? checkedClasses : uncheckedClasses;
2620
- return /* @__PURE__ */ jsxs197("label", { className: clsx_default("lib-xplat-checkbox", size, type), children: [
2621
- /* @__PURE__ */ jsx306(
2719
+ return /* @__PURE__ */ jsxs198("label", { className: clsx_default("lib-xplat-checkbox", size, type), children: [
2720
+ /* @__PURE__ */ jsx307(
2622
2721
  "input",
2623
2722
  {
2624
2723
  type: "checkbox",
@@ -2628,44 +2727,44 @@ var CheckBox = (props) => {
2628
2727
  ...rest
2629
2728
  }
2630
2729
  ),
2631
- /* @__PURE__ */ jsx306("span", { className: clsx_default("checkbox", boxClasses), children: /* @__PURE__ */ jsx306("span", { className: clsx_default("check-icon", { visible: checked }), children: /* @__PURE__ */ jsx306(CheckIcon_default, {}) }) }),
2632
- label && /* @__PURE__ */ jsx306("span", { className: "label", children: label })
2730
+ /* @__PURE__ */ jsx307("span", { className: clsx_default("checkbox", boxClasses), children: /* @__PURE__ */ jsx307("span", { className: clsx_default("check-icon", { visible: checked }), children: /* @__PURE__ */ jsx307(CheckIcon_default, {}) }) }),
2731
+ label && /* @__PURE__ */ jsx307("span", { className: "label", children: label })
2633
2732
  ] });
2634
2733
  };
2635
2734
  CheckBox.displayName = "CheckBox";
2636
2735
  var CheckBox_default = CheckBox;
2637
2736
 
2638
2737
  // src/components/Chip/Chip.tsx
2639
- import { jsx as jsx307 } from "react/jsx-runtime";
2738
+ import { jsx as jsx308 } from "react/jsx-runtime";
2640
2739
  var Chip = (props) => {
2641
2740
  const {
2642
2741
  children,
2643
2742
  type = "primary",
2644
2743
  size = "md"
2645
2744
  } = props;
2646
- return /* @__PURE__ */ jsx307("div", { className: clsx_default("lib-xplat-chip", type, size), children });
2745
+ return /* @__PURE__ */ jsx308("div", { className: clsx_default("lib-xplat-chip", type, size), children });
2647
2746
  };
2648
2747
  Chip.displayName = "Chip";
2649
2748
  var Chip_default = Chip;
2650
2749
 
2651
2750
  // src/components/DatePicker/InputDatePicker/index.tsx
2652
- import React11 from "react";
2751
+ import React12 from "react";
2653
2752
 
2654
2753
  // src/components/Input/Input.tsx
2655
- import React6 from "react";
2754
+ import React7 from "react";
2656
2755
 
2657
2756
  // src/components/Input/InputValidations.tsx
2658
- import { jsx as jsx308, jsxs as jsxs198 } from "react/jsx-runtime";
2757
+ import { jsx as jsx309, jsxs as jsxs199 } from "react/jsx-runtime";
2659
2758
  var InputValidations = (props) => {
2660
2759
  const { message, status = "default" } = props;
2661
- return /* @__PURE__ */ jsxs198("div", { className: clsx_default("lib-xplat-input-validation", status), children: [
2662
- /* @__PURE__ */ jsxs198("div", { className: "icon", children: [
2663
- status === "default" && /* @__PURE__ */ jsx308(InfoIcon_default, {}),
2664
- status === "success" && /* @__PURE__ */ jsx308(SuccessIcon_default, {}),
2665
- status === "warning" && /* @__PURE__ */ jsx308(InfoIcon_default, {}),
2666
- status === "error" && /* @__PURE__ */ jsx308(ErrorIcon_default, {})
2760
+ return /* @__PURE__ */ jsxs199("div", { className: clsx_default("lib-xplat-input-validation", status), children: [
2761
+ /* @__PURE__ */ jsxs199("div", { className: "icon", children: [
2762
+ status === "default" && /* @__PURE__ */ jsx309(InfoIcon_default, {}),
2763
+ status === "success" && /* @__PURE__ */ jsx309(SuccessIcon_default, {}),
2764
+ status === "warning" && /* @__PURE__ */ jsx309(InfoIcon_default, {}),
2765
+ status === "error" && /* @__PURE__ */ jsx309(ErrorIcon_default, {})
2667
2766
  ] }),
2668
- /* @__PURE__ */ jsx308("div", { className: "message", children: message })
2767
+ /* @__PURE__ */ jsx309("div", { className: "message", children: message })
2669
2768
  ] });
2670
2769
  };
2671
2770
  InputValidations.displayName = "InputValidations";
@@ -2706,7 +2805,7 @@ var handleTelBackspace = (prevValue, currValue) => {
2706
2805
  };
2707
2806
 
2708
2807
  // src/components/Input/Input.tsx
2709
- import { jsx as jsx309, jsxs as jsxs199 } from "react/jsx-runtime";
2808
+ import { jsx as jsx310, jsxs as jsxs200 } from "react/jsx-runtime";
2710
2809
  import { createElement } from "react";
2711
2810
  var formatValue = (type, value) => {
2712
2811
  if (value === null || value === void 0) return "";
@@ -2755,7 +2854,7 @@ var parseValue = (type, value) => {
2755
2854
  return value;
2756
2855
  }
2757
2856
  };
2758
- var Input = React6.forwardRef((props, ref) => {
2857
+ var Input = React7.forwardRef((props, ref) => {
2759
2858
  const {
2760
2859
  value,
2761
2860
  onChange,
@@ -2781,13 +2880,13 @@ var Input = React6.forwardRef((props, ref) => {
2781
2880
  onChange(event);
2782
2881
  }
2783
2882
  };
2784
- return /* @__PURE__ */ jsxs199("div", { className: "lib-xplat-input-wrap", children: [
2785
- /* @__PURE__ */ jsxs199(
2883
+ return /* @__PURE__ */ jsxs200("div", { className: "lib-xplat-input-wrap", children: [
2884
+ /* @__PURE__ */ jsxs200(
2786
2885
  "div",
2787
2886
  {
2788
2887
  className: clsx_default("lib-xplat-input", size, disabled ? "disabled" : void 0),
2789
2888
  children: [
2790
- /* @__PURE__ */ jsx309(
2889
+ /* @__PURE__ */ jsx310(
2791
2890
  "input",
2792
2891
  {
2793
2892
  ...inputProps,
@@ -2798,11 +2897,11 @@ var Input = React6.forwardRef((props, ref) => {
2798
2897
  onChange: handleChange
2799
2898
  }
2800
2899
  ),
2801
- suffix && /* @__PURE__ */ jsx309("div", { className: "suffix", children: suffix })
2900
+ suffix && /* @__PURE__ */ jsx310("div", { className: "suffix", children: suffix })
2802
2901
  ]
2803
2902
  }
2804
2903
  ),
2805
- validations && /* @__PURE__ */ jsx309("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ createElement(
2904
+ validations && /* @__PURE__ */ jsx310("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ createElement(
2806
2905
  InputValidations_default,
2807
2906
  {
2808
2907
  ...validation,
@@ -2815,20 +2914,20 @@ Input.displayName = "Input";
2815
2914
  var Input_default = Input;
2816
2915
 
2817
2916
  // src/components/Input/PasswordInput/PasswordInput.tsx
2818
- import React7 from "react";
2819
- import { jsx as jsx310 } from "react/jsx-runtime";
2820
- var PasswordInput = React7.forwardRef(
2917
+ import React8 from "react";
2918
+ import { jsx as jsx311 } from "react/jsx-runtime";
2919
+ var PasswordInput = React8.forwardRef(
2821
2920
  (props, ref) => {
2822
2921
  const { reg: _reg, ...inputProps } = props;
2823
- const [isView, setIsView] = React7.useState(false);
2922
+ const [isView, setIsView] = React8.useState(false);
2824
2923
  const handleChangeView = () => {
2825
2924
  setIsView((prev) => !prev);
2826
2925
  };
2827
- return /* @__PURE__ */ jsx310(
2926
+ return /* @__PURE__ */ jsx311(
2828
2927
  Input_default,
2829
2928
  {
2830
2929
  ...inputProps,
2831
- suffix: /* @__PURE__ */ jsx310("div", { className: "wrapper pointer", onClick: handleChangeView, children: isView ? /* @__PURE__ */ jsx310(OpenEyeIcon_default, {}) : /* @__PURE__ */ jsx310(CloseEyeIcon_default, {}) }),
2930
+ suffix: /* @__PURE__ */ jsx311("div", { className: "wrapper pointer", onClick: handleChangeView, children: isView ? /* @__PURE__ */ jsx311(OpenEyeIcon_default, {}) : /* @__PURE__ */ jsx311(CloseEyeIcon_default, {}) }),
2832
2931
  type: isView ? "text" : "password",
2833
2932
  ref
2834
2933
  }
@@ -2839,17 +2938,17 @@ PasswordInput.displayName = "PasswordInput";
2839
2938
  var PasswordInput_default = PasswordInput;
2840
2939
 
2841
2940
  // src/components/Modal/Modal.tsx
2842
- import React9 from "react";
2941
+ import React10 from "react";
2843
2942
  import { createPortal } from "react-dom";
2844
2943
 
2845
2944
  // src/tokens/hooks/Portal.tsx
2846
- import React8 from "react";
2945
+ import React9 from "react";
2847
2946
  import ReactDOM from "react-dom";
2848
- import { jsx as jsx311 } from "react/jsx-runtime";
2849
- var PortalContainerContext = React8.createContext(null);
2850
- var PortalProvider = ({ container, children }) => /* @__PURE__ */ jsx311(PortalContainerContext.Provider, { value: container, children });
2947
+ import { jsx as jsx312 } from "react/jsx-runtime";
2948
+ var PortalContainerContext = React9.createContext(null);
2949
+ var PortalProvider = ({ container, children }) => /* @__PURE__ */ jsx312(PortalContainerContext.Provider, { value: container, children });
2851
2950
  var Portal = ({ children }) => {
2852
- const contextContainer = React8.useContext(PortalContainerContext);
2951
+ const contextContainer = React9.useContext(PortalContainerContext);
2853
2952
  if (typeof document === "undefined") return null;
2854
2953
  const container = contextContainer ?? document.body;
2855
2954
  return ReactDOM.createPortal(children, container);
@@ -2858,14 +2957,14 @@ Portal.displayName = "Portal";
2858
2957
  var Portal_default = Portal;
2859
2958
 
2860
2959
  // src/components/Modal/Modal.tsx
2861
- import { jsx as jsx312 } from "react/jsx-runtime";
2960
+ import { jsx as jsx313 } from "react/jsx-runtime";
2862
2961
  var ANIMATION_DURATION_MS = 200;
2863
2962
  var Modal = (props) => {
2864
2963
  const { isOpen, onClose, children } = props;
2865
- const [mounted, setMounted] = React9.useState(false);
2866
- const [visible, setVisible] = React9.useState(false);
2867
- const boxRef = React9.useRef(null);
2868
- React9.useEffect(() => {
2964
+ const [mounted, setMounted] = React10.useState(false);
2965
+ const [visible, setVisible] = React10.useState(false);
2966
+ const boxRef = React10.useRef(null);
2967
+ React10.useEffect(() => {
2869
2968
  if (isOpen) {
2870
2969
  setMounted(true);
2871
2970
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -2879,12 +2978,12 @@ var Modal = (props) => {
2879
2978
  if (!mounted) return null;
2880
2979
  const stateClass = visible ? "enter" : "exit";
2881
2980
  return createPortal(
2882
- /* @__PURE__ */ jsx312(
2981
+ /* @__PURE__ */ jsx313(
2883
2982
  "div",
2884
2983
  {
2885
2984
  className: clsx_default("lib-xplat-modal", "dim", stateClass),
2886
2985
  onClick: onClose,
2887
- children: /* @__PURE__ */ jsx312(
2986
+ children: /* @__PURE__ */ jsx313(
2888
2987
  "div",
2889
2988
  {
2890
2989
  ref: boxRef,
@@ -2892,7 +2991,7 @@ var Modal = (props) => {
2892
2991
  role: "dialog",
2893
2992
  "aria-modal": "true",
2894
2993
  onClick: (e) => e.stopPropagation(),
2895
- children: /* @__PURE__ */ jsx312(PortalProvider, { container: boxRef.current, children })
2994
+ children: /* @__PURE__ */ jsx313(PortalProvider, { container: boxRef.current, children })
2896
2995
  }
2897
2996
  )
2898
2997
  }
@@ -2904,9 +3003,9 @@ Modal.displayName = "Modal";
2904
3003
  var Modal_default = Modal;
2905
3004
 
2906
3005
  // src/components/DatePicker/SingleDatePicker/index.tsx
2907
- import React10 from "react";
2908
- import { Fragment as Fragment3, jsx as jsx313, jsxs as jsxs200 } from "react/jsx-runtime";
2909
- var DayCell2 = React10.memo(
3006
+ import React11 from "react";
3007
+ import { Fragment as Fragment3, jsx as jsx314, jsxs as jsxs201 } from "react/jsx-runtime";
3008
+ var DayCell2 = React11.memo(
2910
3009
  ({
2911
3010
  day,
2912
3011
  disabled,
@@ -2916,7 +3015,7 @@ var DayCell2 = React10.memo(
2916
3015
  isEnd,
2917
3016
  inRange,
2918
3017
  onSelect
2919
- }) => /* @__PURE__ */ jsx313(
3018
+ }) => /* @__PURE__ */ jsx314(
2920
3019
  "button",
2921
3020
  {
2922
3021
  type: "button",
@@ -2958,26 +3057,26 @@ var SingleDatePicker = (props) => {
2958
3057
  initialYear,
2959
3058
  initialMonth
2960
3059
  );
2961
- const [pickerMode, setPickerMode] = React10.useState("days");
2962
- const [yearRangeStart, setYearRangeStart] = React10.useState(
3060
+ const [pickerMode, setPickerMode] = React11.useState("days");
3061
+ const [yearRangeStart, setYearRangeStart] = React11.useState(
2963
3062
  Math.floor((initialYear ?? (/* @__PURE__ */ new Date()).getFullYear()) / 12) * 12
2964
3063
  );
2965
- const minTime = React10.useMemo(
3064
+ const minTime = React11.useMemo(
2966
3065
  () => minDate ? new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()).getTime() : -Infinity,
2967
3066
  [minDate]
2968
3067
  );
2969
- const maxTime = React10.useMemo(
3068
+ const maxTime = React11.useMemo(
2970
3069
  () => maxDate ? new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()).getTime() : Infinity,
2971
3070
  [maxDate]
2972
3071
  );
2973
- const highlightSet = React10.useMemo(() => {
3072
+ const highlightSet = React11.useMemo(() => {
2974
3073
  const set = /* @__PURE__ */ new Set();
2975
3074
  for (const h of highlightDates) {
2976
3075
  set.add(`${h.getFullYear()}-${h.getMonth()}-${h.getDate()}`);
2977
3076
  }
2978
3077
  return set;
2979
3078
  }, [highlightDates]);
2980
- const handleSelect = React10.useCallback(
3079
+ const handleSelect = React11.useCallback(
2981
3080
  (date) => {
2982
3081
  onChange?.(date);
2983
3082
  },
@@ -3014,20 +3113,20 @@ var SingleDatePicker = (props) => {
3014
3113
  const monthLabels = MONTH_LABELS[locale];
3015
3114
  const titleText = pickerMode === "days" ? locale === "ko" ? `${year}\uB144 ${monthLabels[month]}` : `${monthLabels[month]} ${year}` : pickerMode === "months" ? `${year}` : `${yearRangeStart} - ${yearRangeStart + 11}`;
3016
3115
  const hasRange = rangeStart != null && rangeEnd != null;
3017
- return /* @__PURE__ */ jsxs200(
3116
+ return /* @__PURE__ */ jsxs201(
3018
3117
  "div",
3019
3118
  {
3020
3119
  className: clsx_default("lib-xplat-datepicker", "single"),
3021
3120
  children: [
3022
- /* @__PURE__ */ jsxs200("div", { className: "datepicker-header", children: [
3023
- /* @__PURE__ */ jsx313("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ jsx313(ChevronLeftIcon_default, {}) }),
3024
- /* @__PURE__ */ jsx313("button", { className: "datepicker-title", onClick: handleTitleClick, type: "button", children: titleText }),
3025
- /* @__PURE__ */ jsx313("button", { className: "datepicker-nav", onClick: handleNext, type: "button", children: /* @__PURE__ */ jsx313(ChevronRightIcon_default, {}) })
3121
+ /* @__PURE__ */ jsxs201("div", { className: "datepicker-header", children: [
3122
+ /* @__PURE__ */ jsx314("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ jsx314(ChevronLeftIcon_default, {}) }),
3123
+ /* @__PURE__ */ jsx314("button", { className: "datepicker-title", onClick: handleTitleClick, type: "button", children: titleText }),
3124
+ /* @__PURE__ */ jsx314("button", { className: "datepicker-nav", onClick: handleNext, type: "button", children: /* @__PURE__ */ jsx314(ChevronRightIcon_default, {}) })
3026
3125
  ] }),
3027
- /* @__PURE__ */ jsxs200("div", { className: "datepicker-body", children: [
3028
- pickerMode === "years" && /* @__PURE__ */ jsx313("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
3126
+ /* @__PURE__ */ jsxs201("div", { className: "datepicker-body", children: [
3127
+ pickerMode === "years" && /* @__PURE__ */ jsx314("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
3029
3128
  const y = yearRangeStart + i;
3030
- return /* @__PURE__ */ jsx313(
3129
+ return /* @__PURE__ */ jsx314(
3031
3130
  "button",
3032
3131
  {
3033
3132
  type: "button",
@@ -3038,7 +3137,7 @@ var SingleDatePicker = (props) => {
3038
3137
  y
3039
3138
  );
3040
3139
  }) }),
3041
- pickerMode === "months" && /* @__PURE__ */ jsx313("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ jsx313(
3140
+ pickerMode === "months" && /* @__PURE__ */ jsx314("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ jsx314(
3042
3141
  "button",
3043
3142
  {
3044
3143
  type: "button",
@@ -3048,8 +3147,8 @@ var SingleDatePicker = (props) => {
3048
3147
  },
3049
3148
  i
3050
3149
  )) }),
3051
- pickerMode === "days" && /* @__PURE__ */ jsxs200(Fragment3, { children: [
3052
- /* @__PURE__ */ jsx313("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ jsx313(
3150
+ pickerMode === "days" && /* @__PURE__ */ jsxs201(Fragment3, { children: [
3151
+ /* @__PURE__ */ jsx314("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ jsx314(
3053
3152
  "div",
3054
3153
  {
3055
3154
  className: clsx_default(
@@ -3061,7 +3160,7 @@ var SingleDatePicker = (props) => {
3061
3160
  },
3062
3161
  label
3063
3162
  )) }),
3064
- /* @__PURE__ */ jsx313("div", { className: "datepicker-grid", children: days.map((day, idx) => {
3163
+ /* @__PURE__ */ jsx314("div", { className: "datepicker-grid", children: days.map((day, idx) => {
3065
3164
  const t = day.date.getTime();
3066
3165
  const disabled = t < minTime || t > maxTime;
3067
3166
  const selected = value ? isSameDay(day.date, value) : false;
@@ -3071,7 +3170,7 @@ var SingleDatePicker = (props) => {
3071
3170
  const isStart = hasRange ? isSameDay(day.date, rangeStart) : false;
3072
3171
  const isEnd = hasRange ? isSameDay(day.date, rangeEnd) : false;
3073
3172
  const inRangeVal = hasRange ? isInRange(day.date, rangeStart, rangeEnd) : false;
3074
- return /* @__PURE__ */ jsx313(
3173
+ return /* @__PURE__ */ jsx314(
3075
3174
  DayCell2,
3076
3175
  {
3077
3176
  day,
@@ -3096,7 +3195,7 @@ SingleDatePicker.displayName = "SingleDatePicker";
3096
3195
  var SingleDatePicker_default = SingleDatePicker;
3097
3196
 
3098
3197
  // src/components/DatePicker/InputDatePicker/index.tsx
3099
- import { jsx as jsx314, jsxs as jsxs201 } from "react/jsx-runtime";
3198
+ import { jsx as jsx315, jsxs as jsxs202 } from "react/jsx-runtime";
3100
3199
  var formatDate = (date) => {
3101
3200
  if (!date || !(date instanceof Date) || isNaN(date.getTime())) return "";
3102
3201
  const y = date.getFullYear();
@@ -3106,8 +3205,8 @@ var formatDate = (date) => {
3106
3205
  };
3107
3206
  var InputDatePicker = (props) => {
3108
3207
  const { value, onChange, minDate, maxDate, disabled, locale = "ko", placeholder } = props;
3109
- const [isOpen, setIsOpen] = React11.useState(false);
3110
- const [tempDate, setTempDate] = React11.useState(value ?? /* @__PURE__ */ new Date());
3208
+ const [isOpen, setIsOpen] = React12.useState(false);
3209
+ const [tempDate, setTempDate] = React12.useState(value ?? /* @__PURE__ */ new Date());
3111
3210
  const handleOpen = () => {
3112
3211
  if (disabled) return;
3113
3212
  setTempDate(value ?? /* @__PURE__ */ new Date());
@@ -3123,19 +3222,19 @@ var InputDatePicker = (props) => {
3123
3222
  const handleClose = () => {
3124
3223
  setIsOpen(false);
3125
3224
  };
3126
- return /* @__PURE__ */ jsxs201("div", { className: clsx_default("lib-xplat-datepicker input-datepicker", disabled && "disabled"), children: [
3127
- /* @__PURE__ */ jsx314("div", { className: "input-datepicker-trigger", onClick: handleOpen, children: /* @__PURE__ */ jsx314(
3225
+ return /* @__PURE__ */ jsxs202("div", { className: clsx_default("lib-xplat-datepicker input-datepicker", disabled && "disabled"), children: [
3226
+ /* @__PURE__ */ jsx315("div", { className: "input-datepicker-trigger", onClick: handleOpen, children: /* @__PURE__ */ jsx315(
3128
3227
  Input_default,
3129
3228
  {
3130
3229
  value: formatDate(value),
3131
3230
  placeholder,
3132
- suffix: /* @__PURE__ */ jsx314(CalenderIcon_default, {}),
3231
+ suffix: /* @__PURE__ */ jsx315(CalenderIcon_default, {}),
3133
3232
  disabled,
3134
3233
  readOnly: true
3135
3234
  }
3136
3235
  ) }),
3137
- /* @__PURE__ */ jsx314(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs201("div", { className: "lib-xplat-popup-datepicker-card", children: [
3138
- /* @__PURE__ */ jsx314("div", { className: "popup-datepicker-content", children: /* @__PURE__ */ jsx314(
3236
+ /* @__PURE__ */ jsx315(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs202("div", { className: "lib-xplat-popup-datepicker-card", children: [
3237
+ /* @__PURE__ */ jsx315("div", { className: "popup-datepicker-content", children: /* @__PURE__ */ jsx315(
3139
3238
  SingleDatePicker_default,
3140
3239
  {
3141
3240
  value: tempDate,
@@ -3145,9 +3244,9 @@ var InputDatePicker = (props) => {
3145
3244
  locale
3146
3245
  }
3147
3246
  ) }),
3148
- /* @__PURE__ */ jsxs201("div", { className: "popup-datepicker-footer", children: [
3149
- /* @__PURE__ */ jsx314(Button_default, { type: "secondary", onClick: handleClose, children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel" }),
3150
- /* @__PURE__ */ jsx314(Button_default, { type: "primary", onClick: handleApply, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
3247
+ /* @__PURE__ */ jsxs202("div", { className: "popup-datepicker-footer", children: [
3248
+ /* @__PURE__ */ jsx315(Button_default, { type: "secondary", onClick: handleClose, children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel" }),
3249
+ /* @__PURE__ */ jsx315(Button_default, { type: "primary", onClick: handleApply, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
3151
3250
  ] })
3152
3251
  ] }) })
3153
3252
  ] });
@@ -3156,20 +3255,20 @@ InputDatePicker.displayName = "InputDatePicker";
3156
3255
  var InputDatePicker_default = InputDatePicker;
3157
3256
 
3158
3257
  // src/components/DatePicker/PopupPicker/index.tsx
3159
- import React15 from "react";
3258
+ import React16 from "react";
3160
3259
 
3161
3260
  // src/components/DatePicker/RangePicker/index.tsx
3162
- import React14 from "react";
3261
+ import React15 from "react";
3163
3262
 
3164
3263
  // src/components/Tab/Tab.tsx
3165
- import React13 from "react";
3264
+ import React14 from "react";
3166
3265
 
3167
3266
  // src/components/Tab/TabItem.tsx
3168
- import React12 from "react";
3169
- import { jsx as jsx315 } from "react/jsx-runtime";
3170
- var TabItem = React12.forwardRef((props, ref) => {
3267
+ import React13 from "react";
3268
+ import { jsx as jsx316 } from "react/jsx-runtime";
3269
+ var TabItem = React13.forwardRef((props, ref) => {
3171
3270
  const { isActive, title, onClick } = props;
3172
- return /* @__PURE__ */ jsx315(
3271
+ return /* @__PURE__ */ jsx316(
3173
3272
  "div",
3174
3273
  {
3175
3274
  ref,
@@ -3183,25 +3282,25 @@ TabItem.displayName = "TabItem";
3183
3282
  var TabItem_default = TabItem;
3184
3283
 
3185
3284
  // src/components/Tab/Tab.tsx
3186
- import { jsx as jsx316, jsxs as jsxs202 } from "react/jsx-runtime";
3285
+ import { jsx as jsx317, jsxs as jsxs203 } from "react/jsx-runtime";
3187
3286
  var Tab = (props) => {
3188
3287
  const { activeIndex, onChange, tabs, type, size = "md" } = props;
3189
- const [underlineStyle, setUnderlineStyle] = React13.useState({
3288
+ const [underlineStyle, setUnderlineStyle] = React14.useState({
3190
3289
  left: 0,
3191
3290
  width: 0
3192
3291
  });
3193
- const itemRefs = React13.useRef([]);
3292
+ const itemRefs = React14.useRef([]);
3194
3293
  const handleChangeActiveTab = (tabItem, tabIdx) => {
3195
3294
  onChange(tabItem, tabIdx);
3196
3295
  };
3197
- React13.useEffect(() => {
3296
+ React14.useEffect(() => {
3198
3297
  const el = itemRefs.current[activeIndex];
3199
3298
  if (el) {
3200
3299
  setUnderlineStyle({ left: el.offsetLeft, width: el.offsetWidth });
3201
3300
  }
3202
3301
  }, [activeIndex, tabs.length]);
3203
- return /* @__PURE__ */ jsxs202("div", { className: clsx_default("lib-xplat-tab", `type-${type}`, size), children: [
3204
- tabs.map((tab, idx) => /* @__PURE__ */ jsx316(
3302
+ return /* @__PURE__ */ jsxs203("div", { className: clsx_default("lib-xplat-tab", `type-${type}`, size), children: [
3303
+ tabs.map((tab, idx) => /* @__PURE__ */ jsx317(
3205
3304
  TabItem_default,
3206
3305
  {
3207
3306
  onClick: () => handleChangeActiveTab(tab, idx),
@@ -3213,7 +3312,7 @@ var Tab = (props) => {
3213
3312
  },
3214
3313
  `${tab.value}_${idx}`
3215
3314
  )),
3216
- type === "toggle" && /* @__PURE__ */ jsx316(
3315
+ type === "toggle" && /* @__PURE__ */ jsx317(
3217
3316
  "div",
3218
3317
  {
3219
3318
  className: "tab-toggle-underline",
@@ -3229,7 +3328,7 @@ Tab.displayName = "Tab";
3229
3328
  var Tab_default = Tab;
3230
3329
 
3231
3330
  // src/components/DatePicker/RangePicker/index.tsx
3232
- import { jsx as jsx317, jsxs as jsxs203 } from "react/jsx-runtime";
3331
+ import { jsx as jsx318, jsxs as jsxs204 } from "react/jsx-runtime";
3233
3332
  var RangePicker = (props) => {
3234
3333
  const {
3235
3334
  startDate,
@@ -3239,7 +3338,7 @@ var RangePicker = (props) => {
3239
3338
  maxDate,
3240
3339
  locale = "ko"
3241
3340
  } = props;
3242
- const [activeTab, setActiveTab] = React14.useState("start");
3341
+ const [activeTab, setActiveTab] = React15.useState("start");
3243
3342
  const handleStartChange = (date) => {
3244
3343
  if (!date) return;
3245
3344
  const newStart = date > endDate ? endDate : date;
@@ -3252,8 +3351,8 @@ var RangePicker = (props) => {
3252
3351
  };
3253
3352
  const startMaxDate = maxDate && endDate < maxDate ? endDate : endDate;
3254
3353
  const endMinDate = minDate && startDate > minDate ? startDate : startDate;
3255
- return /* @__PURE__ */ jsxs203("div", { className: clsx_default("lib-xplat-datepicker", "range"), children: [
3256
- /* @__PURE__ */ jsx317("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ jsx317(
3354
+ return /* @__PURE__ */ jsxs204("div", { className: clsx_default("lib-xplat-datepicker", "range"), children: [
3355
+ /* @__PURE__ */ jsx318("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ jsx318(
3257
3356
  Tab_default,
3258
3357
  {
3259
3358
  activeIndex: activeTab === "start" ? 0 : 1,
@@ -3266,8 +3365,8 @@ var RangePicker = (props) => {
3266
3365
  size: "sm"
3267
3366
  }
3268
3367
  ) }),
3269
- /* @__PURE__ */ jsxs203("div", { className: "datepicker-range-panels", children: [
3270
- /* @__PURE__ */ jsx317(
3368
+ /* @__PURE__ */ jsxs204("div", { className: "datepicker-range-panels", children: [
3369
+ /* @__PURE__ */ jsx318(
3271
3370
  SingleDatePicker_default,
3272
3371
  {
3273
3372
  value: startDate,
@@ -3279,7 +3378,7 @@ var RangePicker = (props) => {
3279
3378
  locale
3280
3379
  }
3281
3380
  ),
3282
- /* @__PURE__ */ jsx317(
3381
+ /* @__PURE__ */ jsx318(
3283
3382
  SingleDatePicker_default,
3284
3383
  {
3285
3384
  value: endDate,
@@ -3292,7 +3391,7 @@ var RangePicker = (props) => {
3292
3391
  }
3293
3392
  )
3294
3393
  ] }),
3295
- /* @__PURE__ */ jsx317("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ jsx317(
3394
+ /* @__PURE__ */ jsx318("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ jsx318(
3296
3395
  SingleDatePicker_default,
3297
3396
  {
3298
3397
  value: startDate,
@@ -3303,7 +3402,7 @@ var RangePicker = (props) => {
3303
3402
  rangeEnd: endDate,
3304
3403
  locale
3305
3404
  }
3306
- ) : /* @__PURE__ */ jsx317(
3405
+ ) : /* @__PURE__ */ jsx318(
3307
3406
  SingleDatePicker_default,
3308
3407
  {
3309
3408
  value: endDate,
@@ -3321,10 +3420,10 @@ RangePicker.displayName = "RangePicker";
3321
3420
  var RangePicker_default = RangePicker;
3322
3421
 
3323
3422
  // src/components/DatePicker/PopupPicker/index.tsx
3324
- import { jsx as jsx318, jsxs as jsxs204 } from "react/jsx-runtime";
3423
+ import { jsx as jsx319, jsxs as jsxs205 } from "react/jsx-runtime";
3325
3424
  var PopupPicker = (props) => {
3326
3425
  const { component, type, locale } = props;
3327
- const [isOpen, setIsOpen] = React15.useState(false);
3426
+ const [isOpen, setIsOpen] = React16.useState(false);
3328
3427
  const handleClick = () => setIsOpen(true);
3329
3428
  const handleClose = () => setIsOpen(false);
3330
3429
  const handleSingleChange = (date) => {
@@ -3332,11 +3431,11 @@ var PopupPicker = (props) => {
3332
3431
  props.onChange?.(date);
3333
3432
  handleClose();
3334
3433
  };
3335
- return /* @__PURE__ */ jsxs204("div", { className: "lib-xplat-popup-datepicker", children: [
3336
- React15.cloneElement(component, { onClick: handleClick }),
3337
- /* @__PURE__ */ jsx318(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs204("div", { className: clsx_default("lib-xplat-popup-datepicker-card", type === "range" && "range-mode"), children: [
3338
- /* @__PURE__ */ jsxs204("div", { className: "popup-datepicker-content", children: [
3339
- type === "single" && /* @__PURE__ */ jsx318(
3434
+ return /* @__PURE__ */ jsxs205("div", { className: "lib-xplat-popup-datepicker", children: [
3435
+ React16.cloneElement(component, { onClick: handleClick }),
3436
+ /* @__PURE__ */ jsx319(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs205("div", { className: clsx_default("lib-xplat-popup-datepicker-card", type === "range" && "range-mode"), children: [
3437
+ /* @__PURE__ */ jsxs205("div", { className: "popup-datepicker-content", children: [
3438
+ type === "single" && /* @__PURE__ */ jsx319(
3340
3439
  SingleDatePicker_default,
3341
3440
  {
3342
3441
  value: props.value,
@@ -3346,7 +3445,7 @@ var PopupPicker = (props) => {
3346
3445
  locale
3347
3446
  }
3348
3447
  ),
3349
- type === "range" && /* @__PURE__ */ jsx318(
3448
+ type === "range" && /* @__PURE__ */ jsx319(
3350
3449
  RangePicker_default,
3351
3450
  {
3352
3451
  startDate: props.startDate,
@@ -3358,8 +3457,8 @@ var PopupPicker = (props) => {
3358
3457
  }
3359
3458
  )
3360
3459
  ] }),
3361
- /* @__PURE__ */ jsxs204("div", { className: "popup-datepicker-footer", children: [
3362
- /* @__PURE__ */ jsx318(
3460
+ /* @__PURE__ */ jsxs205("div", { className: "popup-datepicker-footer", children: [
3461
+ /* @__PURE__ */ jsx319(
3363
3462
  Button_default,
3364
3463
  {
3365
3464
  type: "secondary",
@@ -3367,7 +3466,7 @@ var PopupPicker = (props) => {
3367
3466
  children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel"
3368
3467
  }
3369
3468
  ),
3370
- /* @__PURE__ */ jsx318(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
3469
+ /* @__PURE__ */ jsx319(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
3371
3470
  ] })
3372
3471
  ] }) })
3373
3472
  ] });
@@ -3376,10 +3475,10 @@ PopupPicker.displayName = "PopupPicker";
3376
3475
  var PopupPicker_default = PopupPicker;
3377
3476
 
3378
3477
  // src/components/Divider/Divider.tsx
3379
- import { jsx as jsx319 } from "react/jsx-runtime";
3478
+ import { jsx as jsx320 } from "react/jsx-runtime";
3380
3479
  var Divider = (props) => {
3381
3480
  const { orientation = "horizontal" } = props;
3382
- return /* @__PURE__ */ jsx319(
3481
+ return /* @__PURE__ */ jsx320(
3383
3482
  "div",
3384
3483
  {
3385
3484
  className: clsx_default("lib-xplat-divider", orientation),
@@ -3392,15 +3491,15 @@ Divider.displayName = "Divider";
3392
3491
  var Divider_default = Divider;
3393
3492
 
3394
3493
  // src/components/Drawer/Drawer.tsx
3395
- import React16 from "react";
3494
+ import React17 from "react";
3396
3495
  import { createPortal as createPortal2 } from "react-dom";
3397
- import { jsx as jsx320, jsxs as jsxs205 } from "react/jsx-runtime";
3496
+ import { jsx as jsx321, jsxs as jsxs206 } from "react/jsx-runtime";
3398
3497
  var ANIMATION_DURATION_MS2 = 250;
3399
3498
  var Drawer = (props) => {
3400
3499
  const { isOpen, onClose, placement = "right", size = "md", title, children } = props;
3401
- const [mounted, setMounted] = React16.useState(false);
3402
- const [visible, setVisible] = React16.useState(false);
3403
- React16.useEffect(() => {
3500
+ const [mounted, setMounted] = React17.useState(false);
3501
+ const [visible, setVisible] = React17.useState(false);
3502
+ React17.useEffect(() => {
3404
3503
  if (isOpen) {
3405
3504
  setMounted(true);
3406
3505
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -3414,12 +3513,12 @@ var Drawer = (props) => {
3414
3513
  if (!mounted) return null;
3415
3514
  const stateClass = visible ? "enter" : "exit";
3416
3515
  return createPortal2(
3417
- /* @__PURE__ */ jsx320(
3516
+ /* @__PURE__ */ jsx321(
3418
3517
  "div",
3419
3518
  {
3420
3519
  className: clsx_default("lib-xplat-drawer-overlay", stateClass),
3421
3520
  onClick: onClose,
3422
- children: /* @__PURE__ */ jsxs205(
3521
+ children: /* @__PURE__ */ jsxs206(
3423
3522
  "div",
3424
3523
  {
3425
3524
  className: clsx_default("lib-xplat-drawer", placement, size, stateClass),
@@ -3427,11 +3526,11 @@ var Drawer = (props) => {
3427
3526
  "aria-modal": "true",
3428
3527
  onClick: (e) => e.stopPropagation(),
3429
3528
  children: [
3430
- title && /* @__PURE__ */ jsxs205("div", { className: "drawer-header", children: [
3431
- /* @__PURE__ */ jsx320("span", { className: "drawer-title", children: title }),
3432
- /* @__PURE__ */ jsx320("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
3529
+ title && /* @__PURE__ */ jsxs206("div", { className: "drawer-header", children: [
3530
+ /* @__PURE__ */ jsx321("span", { className: "drawer-title", children: title }),
3531
+ /* @__PURE__ */ jsx321("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
3433
3532
  ] }),
3434
- /* @__PURE__ */ jsx320("div", { className: "drawer-body", children })
3533
+ /* @__PURE__ */ jsx321("div", { className: "drawer-body", children })
3435
3534
  ]
3436
3535
  }
3437
3536
  )
@@ -3444,16 +3543,16 @@ Drawer.displayName = "Drawer";
3444
3543
  var Drawer_default = Drawer;
3445
3544
 
3446
3545
  // src/components/Dropdown/Dropdown.tsx
3447
- import React19 from "react";
3546
+ import React20 from "react";
3448
3547
 
3449
3548
  // src/tokens/hooks/useAutoPosition.ts
3450
- import React17 from "react";
3549
+ import React18 from "react";
3451
3550
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3452
- const [position, setPosition] = React17.useState({
3551
+ const [position, setPosition] = React18.useState({
3453
3552
  position: {},
3454
3553
  direction: "bottom"
3455
3554
  });
3456
- const calculatePosition = React17.useCallback(() => {
3555
+ const calculatePosition = React18.useCallback(() => {
3457
3556
  if (!triggerRef.current || !popRef.current) return;
3458
3557
  const triggerRect = triggerRef.current.getBoundingClientRect();
3459
3558
  const popW = popRef.current.offsetWidth;
@@ -3480,13 +3579,13 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3480
3579
  direction
3481
3580
  });
3482
3581
  }, [triggerRef, popRef]);
3483
- React17.useLayoutEffect(() => {
3582
+ React18.useLayoutEffect(() => {
3484
3583
  if (!enabled) return;
3485
3584
  calculatePosition();
3486
3585
  const raf = requestAnimationFrame(calculatePosition);
3487
3586
  return () => cancelAnimationFrame(raf);
3488
3587
  }, [calculatePosition, enabled]);
3489
- React17.useEffect(() => {
3588
+ React18.useEffect(() => {
3490
3589
  if (!enabled || !popRef.current) return;
3491
3590
  const observer = new ResizeObserver(() => {
3492
3591
  calculatePosition();
@@ -3494,7 +3593,7 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3494
3593
  observer.observe(popRef.current);
3495
3594
  return () => observer.disconnect();
3496
3595
  }, [calculatePosition, enabled, popRef]);
3497
- React17.useEffect(() => {
3596
+ React18.useEffect(() => {
3498
3597
  if (!enabled) return;
3499
3598
  window.addEventListener("resize", calculatePosition);
3500
3599
  window.addEventListener("scroll", calculatePosition, true);
@@ -3508,9 +3607,9 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3508
3607
  var useAutoPosition_default = useAutoPosition;
3509
3608
 
3510
3609
  // src/tokens/hooks/useClickOutside.ts
3511
- import React18 from "react";
3610
+ import React19 from "react";
3512
3611
  var useClickOutside = (refs, handler, enabled = true) => {
3513
- React18.useEffect(() => {
3612
+ React19.useEffect(() => {
3514
3613
  if (!enabled) return;
3515
3614
  const refArray = Array.isArray(refs) ? refs : [refs];
3516
3615
  const listener = (event) => {
@@ -3533,17 +3632,17 @@ var useClickOutside = (refs, handler, enabled = true) => {
3533
3632
  var useClickOutside_default = useClickOutside;
3534
3633
 
3535
3634
  // src/components/Dropdown/Dropdown.tsx
3536
- import { jsx as jsx321, jsxs as jsxs206 } from "react/jsx-runtime";
3635
+ import { jsx as jsx322, jsxs as jsxs207 } from "react/jsx-runtime";
3537
3636
  var Dropdown = (props) => {
3538
3637
  const { items, children } = props;
3539
- const [isOpen, setIsOpen] = React19.useState(false);
3540
- const [mounted, setMounted] = React19.useState(false);
3541
- const [visible, setVisible] = React19.useState(false);
3542
- const triggerRef = React19.useRef(null);
3543
- const menuRef = React19.useRef(null);
3638
+ const [isOpen, setIsOpen] = React20.useState(false);
3639
+ const [mounted, setMounted] = React20.useState(false);
3640
+ const [visible, setVisible] = React20.useState(false);
3641
+ const triggerRef = React20.useRef(null);
3642
+ const menuRef = React20.useRef(null);
3544
3643
  const { position, direction } = useAutoPosition_default(triggerRef, menuRef, mounted);
3545
3644
  useClickOutside_default([triggerRef, menuRef], () => setIsOpen(false), isOpen);
3546
- React19.useEffect(() => {
3645
+ React20.useEffect(() => {
3547
3646
  if (isOpen) {
3548
3647
  setMounted(true);
3549
3648
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -3558,8 +3657,8 @@ var Dropdown = (props) => {
3558
3657
  item.onClick?.();
3559
3658
  setIsOpen(false);
3560
3659
  };
3561
- return /* @__PURE__ */ jsxs206("div", { className: "lib-xplat-dropdown", children: [
3562
- /* @__PURE__ */ jsx321(
3660
+ return /* @__PURE__ */ jsxs207("div", { className: "lib-xplat-dropdown", children: [
3661
+ /* @__PURE__ */ jsx322(
3563
3662
  "div",
3564
3663
  {
3565
3664
  ref: triggerRef,
@@ -3568,14 +3667,14 @@ var Dropdown = (props) => {
3568
3667
  children
3569
3668
  }
3570
3669
  ),
3571
- mounted && /* @__PURE__ */ jsx321(Portal_default, { children: /* @__PURE__ */ jsx321(
3670
+ mounted && /* @__PURE__ */ jsx322(Portal_default, { children: /* @__PURE__ */ jsx322(
3572
3671
  "div",
3573
3672
  {
3574
3673
  ref: menuRef,
3575
3674
  className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }),
3576
3675
  style: { top: position.top, left: position.left },
3577
3676
  role: "menu",
3578
- children: items.map((item) => /* @__PURE__ */ jsx321(
3677
+ children: items.map((item) => /* @__PURE__ */ jsx322(
3579
3678
  "button",
3580
3679
  {
3581
3680
  className: clsx_default("dropdown-item", {
@@ -3597,23 +3696,23 @@ Dropdown.displayName = "Dropdown";
3597
3696
  var Dropdown_default = Dropdown;
3598
3697
 
3599
3698
  // src/components/EmptyState/EmptyState.tsx
3600
- import { jsx as jsx322, jsxs as jsxs207 } from "react/jsx-runtime";
3699
+ import { jsx as jsx323, jsxs as jsxs208 } from "react/jsx-runtime";
3601
3700
  var EmptyState = (props) => {
3602
3701
  const { icon, title = "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4", description, action } = props;
3603
- return /* @__PURE__ */ jsxs207("div", { className: "lib-xplat-empty-state", children: [
3604
- icon && /* @__PURE__ */ jsx322("div", { className: "empty-icon", children: icon }),
3605
- !icon && /* @__PURE__ */ jsx322("div", { className: "empty-icon", children: /* @__PURE__ */ jsx322("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx322("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" }) }) }),
3606
- /* @__PURE__ */ jsx322("p", { className: "empty-title", children: title }),
3607
- description && /* @__PURE__ */ jsx322("p", { className: "empty-description", children: description }),
3608
- action && /* @__PURE__ */ jsx322("div", { className: "empty-action", children: action })
3702
+ return /* @__PURE__ */ jsxs208("div", { className: "lib-xplat-empty-state", children: [
3703
+ icon && /* @__PURE__ */ jsx323("div", { className: "empty-icon", children: icon }),
3704
+ !icon && /* @__PURE__ */ jsx323("div", { className: "empty-icon", children: /* @__PURE__ */ jsx323("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx323("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" }) }) }),
3705
+ /* @__PURE__ */ jsx323("p", { className: "empty-title", children: title }),
3706
+ description && /* @__PURE__ */ jsx323("p", { className: "empty-description", children: description }),
3707
+ action && /* @__PURE__ */ jsx323("div", { className: "empty-action", children: action })
3609
3708
  ] });
3610
3709
  };
3611
3710
  EmptyState.displayName = "EmptyState";
3612
3711
  var EmptyState_default = EmptyState;
3613
3712
 
3614
3713
  // src/components/FileUpload/FileUpload.tsx
3615
- import React20 from "react";
3616
- import { jsx as jsx323, jsxs as jsxs208 } from "react/jsx-runtime";
3714
+ import React21 from "react";
3715
+ import { jsx as jsx324, jsxs as jsxs209 } from "react/jsx-runtime";
3617
3716
  var FileUpload = (props) => {
3618
3717
  const {
3619
3718
  accept,
@@ -3623,8 +3722,8 @@ var FileUpload = (props) => {
3623
3722
  label = "\uD30C\uC77C\uC744 \uB4DC\uB798\uADF8\uD558\uAC70\uB098 \uD074\uB9AD\uD558\uC5EC \uC5C5\uB85C\uB4DC",
3624
3723
  description
3625
3724
  } = props;
3626
- const [isDragOver, setIsDragOver] = React20.useState(false);
3627
- const inputRef = React20.useRef(null);
3725
+ const [isDragOver, setIsDragOver] = React21.useState(false);
3726
+ const inputRef = React21.useRef(null);
3628
3727
  const handleFiles = (fileList) => {
3629
3728
  let files = Array.from(fileList);
3630
3729
  if (maxSize) {
@@ -3654,7 +3753,7 @@ var FileUpload = (props) => {
3654
3753
  handleFiles(e.target.files);
3655
3754
  }
3656
3755
  };
3657
- return /* @__PURE__ */ jsxs208(
3756
+ return /* @__PURE__ */ jsxs209(
3658
3757
  "div",
3659
3758
  {
3660
3759
  className: clsx_default("lib-xplat-file-upload", { "drag-over": isDragOver }),
@@ -3663,7 +3762,7 @@ var FileUpload = (props) => {
3663
3762
  onDragLeave: handleDragLeave,
3664
3763
  onClick: () => inputRef.current?.click(),
3665
3764
  children: [
3666
- /* @__PURE__ */ jsx323(
3765
+ /* @__PURE__ */ jsx324(
3667
3766
  "input",
3668
3767
  {
3669
3768
  ref: inputRef,
@@ -3673,9 +3772,9 @@ var FileUpload = (props) => {
3673
3772
  onChange: handleChange
3674
3773
  }
3675
3774
  ),
3676
- /* @__PURE__ */ jsx323("div", { className: "upload-icon", children: /* @__PURE__ */ jsx323(UploadIcon_default, {}) }),
3677
- /* @__PURE__ */ jsx323("p", { className: "upload-label", children: label }),
3678
- description && /* @__PURE__ */ jsx323("p", { className: "upload-description", children: description })
3775
+ /* @__PURE__ */ jsx324("div", { className: "upload-icon", children: /* @__PURE__ */ jsx324(UploadIcon_default, {}) }),
3776
+ /* @__PURE__ */ jsx324("p", { className: "upload-label", children: label }),
3777
+ description && /* @__PURE__ */ jsx324("p", { className: "upload-description", children: description })
3679
3778
  ]
3680
3779
  }
3681
3780
  );
@@ -3684,10 +3783,10 @@ FileUpload.displayName = "FileUpload";
3684
3783
  var FileUpload_default = FileUpload;
3685
3784
 
3686
3785
  // src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
3687
- import React22 from "react";
3786
+ import React23 from "react";
3688
3787
 
3689
3788
  // src/components/HtmlTypeWriter/utils.ts
3690
- import React21 from "react";
3789
+ import React22 from "react";
3691
3790
  var voidTags = /* @__PURE__ */ new Set([
3692
3791
  "br",
3693
3792
  "img",
@@ -3755,41 +3854,41 @@ var convertNodeToReactWithRange = (node, typedLen, rangeMap) => {
3755
3854
  props[attr.name] = attr.value;
3756
3855
  });
3757
3856
  if (voidTags.has(tag)) {
3758
- return React21.createElement(tag, props);
3857
+ return React22.createElement(tag, props);
3759
3858
  }
3760
3859
  const children = Array.from(element.childNodes).map((child) => convertNodeToReactWithRange(child, typedLen, rangeMap)).filter((n) => n != null);
3761
- return React21.createElement(tag, props, ...children);
3860
+ return React22.createElement(tag, props, ...children);
3762
3861
  };
3763
3862
  var htmlToReactProgressive = (root, typedLen, rangeMap) => {
3764
3863
  const nodes = Array.from(root.childNodes).map((child, idx) => {
3765
3864
  const node = convertNodeToReactWithRange(child, typedLen, rangeMap);
3766
- return node == null ? null : React21.createElement(React21.Fragment, { key: idx }, node);
3865
+ return node == null ? null : React22.createElement(React22.Fragment, { key: idx }, node);
3767
3866
  }).filter(Boolean);
3768
3867
  return nodes.length === 0 ? null : nodes;
3769
3868
  };
3770
3869
 
3771
3870
  // src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
3772
- import { jsx as jsx324 } from "react/jsx-runtime";
3871
+ import { jsx as jsx325 } from "react/jsx-runtime";
3773
3872
  var HtmlTypeWriter = ({
3774
3873
  html,
3775
3874
  duration = 20,
3776
3875
  onDone,
3777
3876
  onChange
3778
3877
  }) => {
3779
- const [typedLen, setTypedLen] = React22.useState(0);
3780
- const doneCalledRef = React22.useRef(false);
3781
- const { doc, rangeMap, totalLength } = React22.useMemo(() => {
3878
+ const [typedLen, setTypedLen] = React23.useState(0);
3879
+ const doneCalledRef = React23.useRef(false);
3880
+ const { doc, rangeMap, totalLength } = React23.useMemo(() => {
3782
3881
  if (typeof window === "undefined") return { doc: null, rangeMap: /* @__PURE__ */ new Map(), totalLength: 0 };
3783
3882
  const decoded = decodeHtmlEntities(html);
3784
3883
  const doc2 = new DOMParser().parseFromString(decoded, "text/html");
3785
3884
  const { rangeMap: rangeMap2, totalLength: totalLength2 } = buildRangeMap(doc2.body);
3786
3885
  return { doc: doc2, rangeMap: rangeMap2, totalLength: totalLength2 };
3787
3886
  }, [html]);
3788
- React22.useEffect(() => {
3887
+ React23.useEffect(() => {
3789
3888
  setTypedLen(0);
3790
3889
  doneCalledRef.current = false;
3791
3890
  }, [html]);
3792
- React22.useEffect(() => {
3891
+ React23.useEffect(() => {
3793
3892
  if (!totalLength) return;
3794
3893
  if (typedLen >= totalLength) return;
3795
3894
  const timer = window.setInterval(() => {
@@ -3797,33 +3896,33 @@ var HtmlTypeWriter = ({
3797
3896
  }, duration);
3798
3897
  return () => window.clearInterval(timer);
3799
3898
  }, [typedLen, totalLength, duration]);
3800
- React22.useEffect(() => {
3899
+ React23.useEffect(() => {
3801
3900
  if (typedLen > 0 && typedLen < totalLength) {
3802
3901
  onChange?.();
3803
3902
  }
3804
3903
  }, [typedLen, totalLength, onChange]);
3805
- React22.useEffect(() => {
3904
+ React23.useEffect(() => {
3806
3905
  if (typedLen === totalLength && totalLength > 0 && !doneCalledRef.current) {
3807
3906
  doneCalledRef.current = true;
3808
3907
  onDone?.();
3809
3908
  }
3810
3909
  }, [typedLen, totalLength, onDone]);
3811
- const parsed = React22.useMemo(
3910
+ const parsed = React23.useMemo(
3812
3911
  () => doc ? htmlToReactProgressive(doc.body, typedLen, rangeMap) : null,
3813
3912
  [doc, typedLen, rangeMap]
3814
3913
  );
3815
- return /* @__PURE__ */ jsx324("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
3914
+ return /* @__PURE__ */ jsx325("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
3816
3915
  };
3817
3916
  HtmlTypeWriter.displayName = "HtmlTypeWriter";
3818
3917
  var HtmlTypeWriter_default = HtmlTypeWriter;
3819
3918
 
3820
3919
  // src/components/ImageSelector/ImageSelector.tsx
3821
- import React23 from "react";
3822
- import { jsx as jsx325, jsxs as jsxs209 } from "react/jsx-runtime";
3920
+ import React24 from "react";
3921
+ import { jsx as jsx326, jsxs as jsxs210 } from "react/jsx-runtime";
3823
3922
  var ImageSelector = (props) => {
3824
3923
  const { value, label, onChange } = props;
3825
- const [previewUrl, setPreviewUrl] = React23.useState();
3826
- React23.useEffect(() => {
3924
+ const [previewUrl, setPreviewUrl] = React24.useState();
3925
+ React24.useEffect(() => {
3827
3926
  if (!value) {
3828
3927
  setPreviewUrl(void 0);
3829
3928
  return;
@@ -3832,7 +3931,7 @@ var ImageSelector = (props) => {
3832
3931
  setPreviewUrl(url);
3833
3932
  return () => URL.revokeObjectURL(url);
3834
3933
  }, [value]);
3835
- const inputRef = React23.useRef(null);
3934
+ const inputRef = React24.useRef(null);
3836
3935
  const handleFileChange = (e) => {
3837
3936
  const selectedFile = e.target.files?.[0];
3838
3937
  if (selectedFile) {
@@ -3845,8 +3944,8 @@ var ImageSelector = (props) => {
3845
3944
  const handleOpenFileDialog = () => {
3846
3945
  inputRef.current?.click();
3847
3946
  };
3848
- return /* @__PURE__ */ jsxs209("div", { className: `lib-xplat-imageselector${value ? "" : " none-value"}`, children: [
3849
- /* @__PURE__ */ jsx325(
3947
+ return /* @__PURE__ */ jsxs210("div", { className: `lib-xplat-imageselector${value ? "" : " none-value"}`, children: [
3948
+ /* @__PURE__ */ jsx326(
3850
3949
  "input",
3851
3950
  {
3852
3951
  type: "file",
@@ -3856,13 +3955,13 @@ var ImageSelector = (props) => {
3856
3955
  ref: inputRef
3857
3956
  }
3858
3957
  ),
3859
- value && /* @__PURE__ */ jsxs209("div", { className: "action-bar", children: [
3860
- /* @__PURE__ */ jsx325("div", { className: "icon-wrapper", onClick: handleOpenFileDialog, children: /* @__PURE__ */ jsx325(UploadIcon_default, {}) }),
3861
- /* @__PURE__ */ jsx325("div", { className: "icon-wrapper", onClick: handleDeleteFile, children: /* @__PURE__ */ jsx325(DeleteIcon_default, {}) })
3958
+ value && /* @__PURE__ */ jsxs210("div", { className: "action-bar", children: [
3959
+ /* @__PURE__ */ jsx326("div", { className: "icon-wrapper", onClick: handleOpenFileDialog, children: /* @__PURE__ */ jsx326(UploadIcon_default, {}) }),
3960
+ /* @__PURE__ */ jsx326("div", { className: "icon-wrapper", onClick: handleDeleteFile, children: /* @__PURE__ */ jsx326(DeleteIcon_default, {}) })
3862
3961
  ] }),
3863
- /* @__PURE__ */ jsx325("div", { className: "content", children: previewUrl ? /* @__PURE__ */ jsx325("img", { src: previewUrl, alt: "preview" }) : /* @__PURE__ */ jsxs209("div", { className: "skeleton", onClick: handleOpenFileDialog, children: [
3864
- /* @__PURE__ */ jsx325("div", { className: "icon-wrapper", children: /* @__PURE__ */ jsx325(ImageIcon_default, {}) }),
3865
- /* @__PURE__ */ jsx325("div", { className: "label", children: label || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
3962
+ /* @__PURE__ */ jsx326("div", { className: "content", children: previewUrl ? /* @__PURE__ */ jsx326("img", { src: previewUrl, alt: "preview" }) : /* @__PURE__ */ jsxs210("div", { className: "skeleton", onClick: handleOpenFileDialog, children: [
3963
+ /* @__PURE__ */ jsx326("div", { className: "icon-wrapper", children: /* @__PURE__ */ jsx326(ImageIcon_default, {}) }),
3964
+ /* @__PURE__ */ jsx326("div", { className: "label", children: label || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
3866
3965
  ] }) })
3867
3966
  ] });
3868
3967
  };
@@ -3870,7 +3969,7 @@ ImageSelector.displayName = "ImageSelector";
3870
3969
  var ImageSelector_default = ImageSelector;
3871
3970
 
3872
3971
  // src/components/Pagination/Pagination.tsx
3873
- import { jsx as jsx326, jsxs as jsxs210 } from "react/jsx-runtime";
3972
+ import { jsx as jsx327, jsxs as jsxs211 } from "react/jsx-runtime";
3874
3973
  var getPageRange = (current, totalPages, siblingCount) => {
3875
3974
  const totalNumbers = siblingCount * 2 + 5;
3876
3975
  if (totalPages <= totalNumbers) {
@@ -3913,19 +4012,19 @@ var Pagination = (props) => {
3913
4012
  onChange?.(page);
3914
4013
  }
3915
4014
  };
3916
- return /* @__PURE__ */ jsxs210("nav", { className: clsx_default("lib-xplat-pagination", size, type), "aria-label": "\uD398\uC774\uC9C0 \uB124\uBE44\uAC8C\uC774\uC158", children: [
3917
- /* @__PURE__ */ jsx326(
4015
+ return /* @__PURE__ */ jsxs211("nav", { className: clsx_default("lib-xplat-pagination", size, type), "aria-label": "\uD398\uC774\uC9C0 \uB124\uBE44\uAC8C\uC774\uC158", children: [
4016
+ /* @__PURE__ */ jsx327(
3918
4017
  "button",
3919
4018
  {
3920
4019
  className: "page-btn prev",
3921
4020
  disabled: current <= 1,
3922
4021
  onClick: () => handleClick(current - 1),
3923
4022
  "aria-label": "\uC774\uC804 \uD398\uC774\uC9C0",
3924
- children: /* @__PURE__ */ jsx326(ChevronLeftIcon_default, {})
4023
+ children: /* @__PURE__ */ jsx327(ChevronLeftIcon_default, {})
3925
4024
  }
3926
4025
  ),
3927
4026
  pages.map(
3928
- (page, i) => page === "..." ? /* @__PURE__ */ jsx326("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ jsx326(
4027
+ (page, i) => page === "..." ? /* @__PURE__ */ jsx327("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ jsx327(
3929
4028
  "button",
3930
4029
  {
3931
4030
  className: clsx_default("page-btn", { active: page === current }),
@@ -3936,14 +4035,14 @@ var Pagination = (props) => {
3936
4035
  page
3937
4036
  )
3938
4037
  ),
3939
- /* @__PURE__ */ jsx326(
4038
+ /* @__PURE__ */ jsx327(
3940
4039
  "button",
3941
4040
  {
3942
4041
  className: "page-btn next",
3943
4042
  disabled: current >= totalPages,
3944
4043
  onClick: () => handleClick(current + 1),
3945
4044
  "aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0",
3946
- children: /* @__PURE__ */ jsx326(ChevronRightIcon_default, {})
4045
+ children: /* @__PURE__ */ jsx327(ChevronRightIcon_default, {})
3947
4046
  }
3948
4047
  )
3949
4048
  ] });
@@ -3952,17 +4051,17 @@ Pagination.displayName = "Pagination";
3952
4051
  var Pagination_default = Pagination;
3953
4052
 
3954
4053
  // src/components/PopOver/PopOver.tsx
3955
- import React24 from "react";
3956
- import { jsx as jsx327, jsxs as jsxs211 } from "react/jsx-runtime";
4054
+ import React25 from "react";
4055
+ import { jsx as jsx328, jsxs as jsxs212 } from "react/jsx-runtime";
3957
4056
  var PopOver = (props) => {
3958
4057
  const { children, isOpen, onClose, PopOverEl } = props;
3959
- const popRef = React24.useRef(null);
3960
- const triggerRef = React24.useRef(null);
3961
- const [localOpen, setLocalOpen] = React24.useState(false);
3962
- const [eventTrigger, setEventTrigger] = React24.useState(false);
4058
+ const popRef = React25.useRef(null);
4059
+ const triggerRef = React25.useRef(null);
4060
+ const [localOpen, setLocalOpen] = React25.useState(false);
4061
+ const [eventTrigger, setEventTrigger] = React25.useState(false);
3963
4062
  useClickOutside_default([popRef, triggerRef], onClose, isOpen);
3964
4063
  const position = useAutoPosition_default(triggerRef, popRef, localOpen);
3965
- React24.useEffect(() => {
4064
+ React25.useEffect(() => {
3966
4065
  if (isOpen) {
3967
4066
  setLocalOpen(isOpen);
3968
4067
  setTimeout(() => {
@@ -3975,7 +4074,7 @@ var PopOver = (props) => {
3975
4074
  }, 200);
3976
4075
  }
3977
4076
  }, [isOpen]);
3978
- return /* @__PURE__ */ jsxs211(
4077
+ return /* @__PURE__ */ jsxs212(
3979
4078
  "div",
3980
4079
  {
3981
4080
  className: "lib-xplat-pop-over",
@@ -3985,7 +4084,7 @@ var PopOver = (props) => {
3985
4084
  },
3986
4085
  children: [
3987
4086
  children,
3988
- localOpen && /* @__PURE__ */ jsx327(Portal_default, { children: /* @__PURE__ */ jsx327(
4087
+ localOpen && /* @__PURE__ */ jsx328(Portal_default, { children: /* @__PURE__ */ jsx328(
3989
4088
  "div",
3990
4089
  {
3991
4090
  className: clsx_default(
@@ -4008,7 +4107,7 @@ PopOver.displayName = "PopOver";
4008
4107
  var PopOver_default = PopOver;
4009
4108
 
4010
4109
  // src/components/Progress/Progress.tsx
4011
- import { jsx as jsx328, jsxs as jsxs212 } from "react/jsx-runtime";
4110
+ import { jsx as jsx329, jsxs as jsxs213 } from "react/jsx-runtime";
4012
4111
  var Progress = (props) => {
4013
4112
  const {
4014
4113
  value,
@@ -4018,8 +4117,8 @@ var Progress = (props) => {
4018
4117
  showLabel = false
4019
4118
  } = props;
4020
4119
  const percentage = Math.min(100, Math.max(0, value / max * 100));
4021
- return /* @__PURE__ */ jsxs212("div", { className: clsx_default("lib-xplat-progress", size, type), children: [
4022
- /* @__PURE__ */ jsx328(
4120
+ return /* @__PURE__ */ jsxs213("div", { className: clsx_default("lib-xplat-progress", size, type), children: [
4121
+ /* @__PURE__ */ jsx329(
4023
4122
  "div",
4024
4123
  {
4025
4124
  className: "track",
@@ -4027,7 +4126,7 @@ var Progress = (props) => {
4027
4126
  "aria-valuenow": value,
4028
4127
  "aria-valuemin": 0,
4029
4128
  "aria-valuemax": max,
4030
- children: /* @__PURE__ */ jsx328(
4129
+ children: /* @__PURE__ */ jsx329(
4031
4130
  "div",
4032
4131
  {
4033
4132
  className: "bar",
@@ -4036,7 +4135,7 @@ var Progress = (props) => {
4036
4135
  )
4037
4136
  }
4038
4137
  ),
4039
- showLabel && /* @__PURE__ */ jsxs212("span", { className: "label", children: [
4138
+ showLabel && /* @__PURE__ */ jsxs213("span", { className: "label", children: [
4040
4139
  Math.round(percentage),
4041
4140
  "%"
4042
4141
  ] })
@@ -4046,17 +4145,17 @@ Progress.displayName = "Progress";
4046
4145
  var Progress_default = Progress;
4047
4146
 
4048
4147
  // src/components/Radio/RadioGroupContext.tsx
4049
- import React25 from "react";
4050
- var RadioGroupContext = React25.createContext(
4148
+ import React26 from "react";
4149
+ var RadioGroupContext = React26.createContext(
4051
4150
  null
4052
4151
  );
4053
4152
  var useRadioGroupContext = () => {
4054
- return React25.useContext(RadioGroupContext);
4153
+ return React26.useContext(RadioGroupContext);
4055
4154
  };
4056
4155
  var RadioGroupContext_default = RadioGroupContext;
4057
4156
 
4058
4157
  // src/components/Radio/Radio.tsx
4059
- import { jsx as jsx329, jsxs as jsxs213 } from "react/jsx-runtime";
4158
+ import { jsx as jsx330, jsxs as jsxs214 } from "react/jsx-runtime";
4060
4159
  var Radio = (props) => {
4061
4160
  const {
4062
4161
  label,
@@ -4074,7 +4173,7 @@ var Radio = (props) => {
4074
4173
  value,
4075
4174
  onChange: rest.onChange
4076
4175
  };
4077
- return /* @__PURE__ */ jsxs213(
4176
+ return /* @__PURE__ */ jsxs214(
4078
4177
  "label",
4079
4178
  {
4080
4179
  className: clsx_default(
@@ -4084,18 +4183,18 @@ var Radio = (props) => {
4084
4183
  localChecked ? "checked" : void 0
4085
4184
  ),
4086
4185
  children: [
4087
- /* @__PURE__ */ jsx329("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
4088
- /* @__PURE__ */ jsx329(
4186
+ /* @__PURE__ */ jsx330("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
4187
+ /* @__PURE__ */ jsx330(
4089
4188
  "div",
4090
4189
  {
4091
4190
  className: clsx_default(
4092
4191
  "circle",
4093
4192
  localChecked ? "checked" : void 0
4094
4193
  ),
4095
- children: localChecked && /* @__PURE__ */ jsx329("div", { className: "inner-circle" })
4194
+ children: localChecked && /* @__PURE__ */ jsx330("div", { className: "inner-circle" })
4096
4195
  }
4097
4196
  ),
4098
- label && /* @__PURE__ */ jsx329("span", { children: label })
4197
+ label && /* @__PURE__ */ jsx330("span", { children: label })
4099
4198
  ]
4100
4199
  }
4101
4200
  );
@@ -4104,28 +4203,28 @@ Radio.displayName = "Radio";
4104
4203
  var Radio_default = Radio;
4105
4204
 
4106
4205
  // src/components/Radio/RadioGroup.tsx
4107
- import { Fragment as Fragment4, jsx as jsx330 } from "react/jsx-runtime";
4206
+ import { Fragment as Fragment4, jsx as jsx331 } from "react/jsx-runtime";
4108
4207
  var RadioGroup = (props) => {
4109
4208
  const { children, ...rest } = props;
4110
- return /* @__PURE__ */ jsx330(Fragment4, { children: /* @__PURE__ */ jsx330(RadioGroupContext_default.Provider, { value: rest, children }) });
4209
+ return /* @__PURE__ */ jsx331(Fragment4, { children: /* @__PURE__ */ jsx331(RadioGroupContext_default.Provider, { value: rest, children }) });
4111
4210
  };
4112
4211
  RadioGroup.displayName = "RadioGroup";
4113
4212
  var RadioGroup_default = RadioGroup;
4114
4213
 
4115
4214
  // src/components/Select/Select.tsx
4116
- import React28 from "react";
4215
+ import React29 from "react";
4117
4216
 
4118
4217
  // src/components/Select/context.ts
4119
- import React26 from "react";
4120
- var SelectContext = React26.createContext(null);
4218
+ import React27 from "react";
4219
+ var SelectContext = React27.createContext(null);
4121
4220
  var context_default = SelectContext;
4122
4221
 
4123
4222
  // src/components/Select/SelectItem.tsx
4124
- import React27 from "react";
4125
- import { jsx as jsx331 } from "react/jsx-runtime";
4223
+ import React28 from "react";
4224
+ import { jsx as jsx332 } from "react/jsx-runtime";
4126
4225
  var SelectItem = (props) => {
4127
4226
  const { children, value, onClick, disabled = false } = props;
4128
- const ctx = React27.useContext(context_default);
4227
+ const ctx = React28.useContext(context_default);
4129
4228
  const handleClick = (e) => {
4130
4229
  e.preventDefault();
4131
4230
  e.stopPropagation();
@@ -4134,7 +4233,7 @@ var SelectItem = (props) => {
4134
4233
  ctx?.close();
4135
4234
  onClick?.();
4136
4235
  };
4137
- return /* @__PURE__ */ jsx331(
4236
+ return /* @__PURE__ */ jsx332(
4138
4237
  "div",
4139
4238
  {
4140
4239
  className: clsx_default("select-item", disabled && "disabled"),
@@ -4155,7 +4254,7 @@ SelectItem.displayName = "Select.Item";
4155
4254
  var SelectItem_default = SelectItem;
4156
4255
 
4157
4256
  // src/components/Select/Select.tsx
4158
- import { jsx as jsx332, jsxs as jsxs214 } from "react/jsx-runtime";
4257
+ import { jsx as jsx333, jsxs as jsxs215 } from "react/jsx-runtime";
4159
4258
  var ANIMATION_DURATION_MS3 = 200;
4160
4259
  var SelectRoot = (props) => {
4161
4260
  const {
@@ -4167,26 +4266,26 @@ var SelectRoot = (props) => {
4167
4266
  error = false,
4168
4267
  size = "md"
4169
4268
  } = props;
4170
- const itemChildren = React28.Children.toArray(children).filter(
4171
- (child) => React28.isValidElement(child) && child.type === SelectItem_default
4269
+ const itemChildren = React29.Children.toArray(children).filter(
4270
+ (child) => React29.isValidElement(child) && child.type === SelectItem_default
4172
4271
  );
4173
4272
  const isControlled = valueProp !== void 0;
4174
- const [isOpen, setOpen] = React28.useState(false);
4175
- const [uncontrolledLabel, setUncontrolledLabel] = React28.useState(null);
4176
- const controlledLabel = React28.useMemo(() => {
4273
+ const [isOpen, setOpen] = React29.useState(false);
4274
+ const [uncontrolledLabel, setUncontrolledLabel] = React29.useState(null);
4275
+ const controlledLabel = React29.useMemo(() => {
4177
4276
  if (!isControlled) return null;
4178
4277
  const match = itemChildren.find((child) => child.props.value === valueProp);
4179
4278
  return match ? match.props.children : null;
4180
4279
  }, [isControlled, valueProp, itemChildren]);
4181
4280
  const selectedLabel = isControlled ? controlledLabel : uncontrolledLabel;
4182
- const triggerRef = React28.useRef(null);
4183
- const contentRef = React28.useRef(null);
4184
- const [mounted, setMounted] = React28.useState(false);
4185
- const [visible, setVisible] = React28.useState(false);
4186
- React28.useEffect(() => {
4281
+ const triggerRef = React29.useRef(null);
4282
+ const contentRef = React29.useRef(null);
4283
+ const [mounted, setMounted] = React29.useState(false);
4284
+ const [visible, setVisible] = React29.useState(false);
4285
+ React29.useEffect(() => {
4187
4286
  if (disabled && isOpen) setOpen(false);
4188
4287
  }, [disabled, isOpen]);
4189
- React28.useEffect(() => {
4288
+ React29.useEffect(() => {
4190
4289
  if (isOpen) {
4191
4290
  setMounted(true);
4192
4291
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -4196,12 +4295,12 @@ var SelectRoot = (props) => {
4196
4295
  const t = setTimeout(() => setMounted(false), ANIMATION_DURATION_MS3);
4197
4296
  return () => clearTimeout(t);
4198
4297
  }, [isOpen]);
4199
- const open = React28.useCallback(() => setOpen(true), []);
4200
- const close = React28.useCallback(() => setOpen(false), []);
4201
- const toggle = React28.useCallback(() => setOpen((prev) => !prev), []);
4298
+ const open = React29.useCallback(() => setOpen(true), []);
4299
+ const close = React29.useCallback(() => setOpen(false), []);
4300
+ const toggle = React29.useCallback(() => setOpen((prev) => !prev), []);
4202
4301
  useClickOutside_default([contentRef, triggerRef], close, isOpen);
4203
4302
  const position = useAutoPosition_default(triggerRef, contentRef, mounted);
4204
- const setSelected = React28.useCallback(
4303
+ const setSelected = React29.useCallback(
4205
4304
  (label, itemValue) => {
4206
4305
  if (!isControlled) {
4207
4306
  setUncontrolledLabel(label);
@@ -4210,7 +4309,7 @@ var SelectRoot = (props) => {
4210
4309
  },
4211
4310
  [isControlled, onChange]
4212
4311
  );
4213
- const ctxValue = React28.useMemo(
4312
+ const ctxValue = React29.useMemo(
4214
4313
  () => ({
4215
4314
  isOpen,
4216
4315
  mounted,
@@ -4231,7 +4330,7 @@ var SelectRoot = (props) => {
4231
4330
  if (disabled) return;
4232
4331
  toggle();
4233
4332
  };
4234
- return /* @__PURE__ */ jsx332(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ jsxs214(
4333
+ return /* @__PURE__ */ jsx333(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ jsxs215(
4235
4334
  "div",
4236
4335
  {
4237
4336
  className: clsx_default(
@@ -4242,7 +4341,7 @@ var SelectRoot = (props) => {
4242
4341
  mounted && "is-open"
4243
4342
  ),
4244
4343
  children: [
4245
- /* @__PURE__ */ jsxs214(
4344
+ /* @__PURE__ */ jsxs215(
4246
4345
  "div",
4247
4346
  {
4248
4347
  ref: triggerRef,
@@ -4266,7 +4365,7 @@ var SelectRoot = (props) => {
4266
4365
  }
4267
4366
  },
4268
4367
  children: [
4269
- /* @__PURE__ */ jsx332(
4368
+ /* @__PURE__ */ jsx333(
4270
4369
  "span",
4271
4370
  {
4272
4371
  className: clsx_default(
@@ -4276,25 +4375,25 @@ var SelectRoot = (props) => {
4276
4375
  children: selectedLabel ?? placeholder
4277
4376
  }
4278
4377
  ),
4279
- /* @__PURE__ */ jsx332(
4378
+ /* @__PURE__ */ jsx333(
4280
4379
  "span",
4281
4380
  {
4282
4381
  className: clsx_default("select-trigger-icon", isOpen && "open"),
4283
4382
  "aria-hidden": true,
4284
- children: /* @__PURE__ */ jsx332(ChevronDownIcon_default, {})
4383
+ children: /* @__PURE__ */ jsx333(ChevronDownIcon_default, {})
4285
4384
  }
4286
4385
  )
4287
4386
  ]
4288
4387
  }
4289
4388
  ),
4290
- mounted && /* @__PURE__ */ jsx332(Portal_default, { children: /* @__PURE__ */ jsx332(
4389
+ mounted && /* @__PURE__ */ jsx333(Portal_default, { children: /* @__PURE__ */ jsx333(
4291
4390
  "div",
4292
4391
  {
4293
4392
  className: clsx_default("lib-xplat-select-content", position.direction, stateClass),
4294
4393
  ref: contentRef,
4295
4394
  style: { ...position.position, width: triggerRef.current?.offsetWidth },
4296
4395
  role: "listbox",
4297
- children: /* @__PURE__ */ jsx332(context_default.Provider, { value: ctxValue, children: itemChildren })
4396
+ children: /* @__PURE__ */ jsx333(context_default.Provider, { value: ctxValue, children: itemChildren })
4298
4397
  }
4299
4398
  ) })
4300
4399
  ]
@@ -4308,7 +4407,7 @@ var Select = Object.assign(SelectRoot, {
4308
4407
  var Select_default = Select;
4309
4408
 
4310
4409
  // src/components/Skeleton/Skeleton.tsx
4311
- import { jsx as jsx333 } from "react/jsx-runtime";
4410
+ import { jsx as jsx334 } from "react/jsx-runtime";
4312
4411
  var SIZE_MAP = {
4313
4412
  xs: "var(--spacing-size-1)",
4314
4413
  sm: "var(--spacing-size-2)",
@@ -4324,7 +4423,7 @@ var Skeleton = (props) => {
4324
4423
  ...width != null && { width: SIZE_MAP[width] },
4325
4424
  ...height != null && { height: SIZE_MAP[height] }
4326
4425
  };
4327
- return /* @__PURE__ */ jsx333(
4426
+ return /* @__PURE__ */ jsx334(
4328
4427
  "div",
4329
4428
  {
4330
4429
  className: clsx_default("lib-xplat-skeleton", variant),
@@ -4337,20 +4436,20 @@ Skeleton.displayName = "Skeleton";
4337
4436
  var Skeleton_default = Skeleton;
4338
4437
 
4339
4438
  // src/components/Spinner/Spinner.tsx
4340
- import { jsx as jsx334, jsxs as jsxs215 } from "react/jsx-runtime";
4439
+ import { jsx as jsx335, jsxs as jsxs216 } from "react/jsx-runtime";
4341
4440
  var Spinner = (props) => {
4342
4441
  const {
4343
4442
  size = "md",
4344
4443
  type = "brand"
4345
4444
  } = props;
4346
- return /* @__PURE__ */ jsx334(
4445
+ return /* @__PURE__ */ jsx335(
4347
4446
  "div",
4348
4447
  {
4349
4448
  className: clsx_default("lib-xplat-spinner", size, type),
4350
4449
  role: "status",
4351
4450
  "aria-label": "\uB85C\uB529 \uC911",
4352
- children: /* @__PURE__ */ jsxs215("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
4353
- /* @__PURE__ */ jsx334(
4451
+ children: /* @__PURE__ */ jsxs216("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
4452
+ /* @__PURE__ */ jsx335(
4354
4453
  "circle",
4355
4454
  {
4356
4455
  className: "track",
@@ -4360,7 +4459,7 @@ var Spinner = (props) => {
4360
4459
  strokeWidth: "3"
4361
4460
  }
4362
4461
  ),
4363
- /* @__PURE__ */ jsx334(
4462
+ /* @__PURE__ */ jsx335(
4364
4463
  "circle",
4365
4464
  {
4366
4465
  className: "indicator",
@@ -4379,20 +4478,20 @@ Spinner.displayName = "Spinner";
4379
4478
  var Spinner_default = Spinner;
4380
4479
 
4381
4480
  // src/components/Steps/Steps.tsx
4382
- import { jsx as jsx335, jsxs as jsxs216 } from "react/jsx-runtime";
4481
+ import { jsx as jsx336, jsxs as jsxs217 } from "react/jsx-runtime";
4383
4482
  var Steps = (props) => {
4384
4483
  const {
4385
4484
  items,
4386
4485
  current,
4387
4486
  type = "brand"
4388
4487
  } = props;
4389
- return /* @__PURE__ */ jsx335("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
4488
+ return /* @__PURE__ */ jsx336("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
4390
4489
  const status = index < current ? "completed" : index === current ? "active" : "pending";
4391
- return /* @__PURE__ */ jsxs216("div", { className: clsx_default("step-item", status), children: [
4392
- /* @__PURE__ */ jsx335("div", { className: "step-circle", children: status === "completed" ? /* @__PURE__ */ jsx335(CheckIcon_default, {}) : /* @__PURE__ */ jsx335("span", { children: index + 1 }) }),
4393
- /* @__PURE__ */ jsxs216("div", { className: "step-content", children: [
4394
- /* @__PURE__ */ jsx335("span", { className: "step-title", children: item.title }),
4395
- item.description && /* @__PURE__ */ jsx335("span", { className: "step-description", children: item.description })
4490
+ return /* @__PURE__ */ jsxs217("div", { className: clsx_default("step-item", status), children: [
4491
+ /* @__PURE__ */ jsx336("div", { className: "step-circle", children: status === "completed" ? /* @__PURE__ */ jsx336(CheckIcon_default, {}) : /* @__PURE__ */ jsx336("span", { children: index + 1 }) }),
4492
+ /* @__PURE__ */ jsxs217("div", { className: "step-content", children: [
4493
+ /* @__PURE__ */ jsx336("span", { className: "step-title", children: item.title }),
4494
+ item.description && /* @__PURE__ */ jsx336("span", { className: "step-description", children: item.description })
4396
4495
  ] })
4397
4496
  ] }, index);
4398
4497
  }) });
@@ -4401,8 +4500,8 @@ Steps.displayName = "Steps";
4401
4500
  var Steps_default = Steps;
4402
4501
 
4403
4502
  // src/components/Swiper/Swiper.tsx
4404
- import React29 from "react";
4405
- import { jsx as jsx336, jsxs as jsxs217 } from "react/jsx-runtime";
4503
+ import React30 from "react";
4504
+ import { jsx as jsx337, jsxs as jsxs218 } from "react/jsx-runtime";
4406
4505
  var Swiper = (props) => {
4407
4506
  const {
4408
4507
  auto = false,
@@ -4425,23 +4524,23 @@ var Swiper = (props) => {
4425
4524
  const maxIndex = Math.max(0, totalSlides - viewItemCount);
4426
4525
  const useLoop = loop && canSlide;
4427
4526
  const cloneCount = useLoop ? totalSlides : 0;
4428
- const extendedItems = React29.useMemo(() => {
4527
+ const extendedItems = React30.useMemo(() => {
4429
4528
  if (!useLoop) return items;
4430
4529
  return [...items, ...items, ...items];
4431
4530
  }, [items, useLoop]);
4432
4531
  const initialIdx = Math.max(0, Math.min(indexProp ?? 0, maxIndex));
4433
- const [innerIndex, setInnerIndex] = React29.useState(
4532
+ const [innerIndex, setInnerIndex] = React30.useState(
4434
4533
  useLoop ? cloneCount + initialIdx : initialIdx
4435
4534
  );
4436
- const [isDragging, setIsDragging] = React29.useState(false);
4437
- const [dragOffset, setDragOffset] = React29.useState(0);
4438
- const [animated, setAnimated] = React29.useState(true);
4439
- const [containerWidth, setContainerWidth] = React29.useState(0);
4440
- const containerRef = React29.useRef(null);
4441
- const startXRef = React29.useRef(0);
4442
- const startTimeRef = React29.useRef(0);
4443
- const autoplayTimerRef = React29.useRef(null);
4444
- React29.useEffect(() => {
4535
+ const [isDragging, setIsDragging] = React30.useState(false);
4536
+ const [dragOffset, setDragOffset] = React30.useState(0);
4537
+ const [animated, setAnimated] = React30.useState(true);
4538
+ const [containerWidth, setContainerWidth] = React30.useState(0);
4539
+ const containerRef = React30.useRef(null);
4540
+ const startXRef = React30.useRef(0);
4541
+ const startTimeRef = React30.useRef(0);
4542
+ const autoplayTimerRef = React30.useRef(null);
4543
+ React30.useEffect(() => {
4445
4544
  const el = containerRef.current;
4446
4545
  if (!el) return;
4447
4546
  const ro = new ResizeObserver((entries) => {
@@ -4460,7 +4559,7 @@ var Swiper = (props) => {
4460
4559
  return ((inner - cloneCount) % totalSlides + totalSlides) % totalSlides;
4461
4560
  };
4462
4561
  const realIndex = getRealIndex(innerIndex);
4463
- const moveToInner = React29.useCallback(
4562
+ const moveToInner = React30.useCallback(
4464
4563
  (idx, withAnim = true) => {
4465
4564
  if (!useLoop) {
4466
4565
  setAnimated(withAnim);
@@ -4488,7 +4587,7 @@ var Swiper = (props) => {
4488
4587
  },
4489
4588
  [useLoop, cloneCount, totalSlides]
4490
4589
  );
4491
- const handleTransitionEnd = React29.useCallback(() => {
4590
+ const handleTransitionEnd = React30.useCallback(() => {
4492
4591
  if (!useLoop) return;
4493
4592
  const real = getRealIndex(innerIndex);
4494
4593
  const canonical = cloneCount + real;
@@ -4498,7 +4597,7 @@ var Swiper = (props) => {
4498
4597
  }
4499
4598
  onChange?.(Math.min(real, maxIndex));
4500
4599
  }, [useLoop, innerIndex, cloneCount, totalSlides, maxIndex, onChange]);
4501
- const slideTo = React29.useCallback(
4600
+ const slideTo = React30.useCallback(
4502
4601
  (logicalIndex) => {
4503
4602
  if (!canSlide) return;
4504
4603
  const clamped = useLoop ? logicalIndex : Math.max(0, Math.min(logicalIndex, maxIndex));
@@ -4508,7 +4607,7 @@ var Swiper = (props) => {
4508
4607
  },
4509
4608
  [canSlide, useLoop, cloneCount, maxIndex, onChange, moveToInner]
4510
4609
  );
4511
- const slideNext = React29.useCallback(() => {
4610
+ const slideNext = React30.useCallback(() => {
4512
4611
  if (!canSlide) return;
4513
4612
  const nextInner = innerIndex + slideBy;
4514
4613
  if (useLoop) {
@@ -4517,7 +4616,7 @@ var Swiper = (props) => {
4517
4616
  moveToInner(Math.min(nextInner, maxIndex), true);
4518
4617
  }
4519
4618
  }, [canSlide, useLoop, innerIndex, slideBy, maxIndex, moveToInner]);
4520
- const slidePrev = React29.useCallback(() => {
4619
+ const slidePrev = React30.useCallback(() => {
4521
4620
  if (!canSlide) return;
4522
4621
  const prevInner = innerIndex - slideBy;
4523
4622
  if (useLoop) {
@@ -4526,7 +4625,7 @@ var Swiper = (props) => {
4526
4625
  moveToInner(Math.max(prevInner, 0), true);
4527
4626
  }
4528
4627
  }, [canSlide, useLoop, innerIndex, slideBy, moveToInner]);
4529
- React29.useEffect(() => {
4628
+ React30.useEffect(() => {
4530
4629
  if (indexProp === void 0) return;
4531
4630
  const clamped = Math.max(0, Math.min(indexProp, maxIndex));
4532
4631
  const target = useLoop ? cloneCount + clamped : clamped;
@@ -4534,12 +4633,12 @@ var Swiper = (props) => {
4534
4633
  moveToInner(target, true);
4535
4634
  }
4536
4635
  }, [indexProp]);
4537
- React29.useImperativeHandle(swiperRef, () => ({
4636
+ React30.useImperativeHandle(swiperRef, () => ({
4538
4637
  slidePrev,
4539
4638
  slideNext,
4540
4639
  slideTo
4541
4640
  }));
4542
- React29.useEffect(() => {
4641
+ React30.useEffect(() => {
4543
4642
  if (!auto || !canSlide) return;
4544
4643
  autoplayTimerRef.current = setInterval(slideNext, autoplayDelay);
4545
4644
  return () => {
@@ -4562,7 +4661,7 @@ var Swiper = (props) => {
4562
4661
  startXRef.current = getClientX(e);
4563
4662
  startTimeRef.current = Date.now();
4564
4663
  };
4565
- React29.useEffect(() => {
4664
+ React30.useEffect(() => {
4566
4665
  if (!isDragging) return;
4567
4666
  const handleMove = (e) => {
4568
4667
  setDragOffset(getClientX(e) - startXRef.current);
@@ -4600,8 +4699,8 @@ var Swiper = (props) => {
4600
4699
  }, [isDragging, dragOffset, innerIndex, useLoop, maxIndex, slideStep, moveToInner]);
4601
4700
  const slideWidthPercent = 100 / viewItemCount;
4602
4701
  const gapAdjust = spaceBetween * (viewItemCount - 1) / viewItemCount;
4603
- const slideElements = React29.useMemo(
4604
- () => extendedItems.map((item, idx) => /* @__PURE__ */ jsx336(
4702
+ const slideElements = React30.useMemo(
4703
+ () => extendedItems.map((item, idx) => /* @__PURE__ */ jsx337(
4605
4704
  "div",
4606
4705
  {
4607
4706
  className: "lib-xplat-swiper__slide",
@@ -4620,14 +4719,14 @@ var Swiper = (props) => {
4620
4719
  Math.floor(realIndex / slideBy),
4621
4720
  totalSteps - 1
4622
4721
  );
4623
- return /* @__PURE__ */ jsxs217("div", { className: "lib-xplat-swiper", ref: containerRef, children: [
4624
- /* @__PURE__ */ jsx336(
4722
+ return /* @__PURE__ */ jsxs218("div", { className: "lib-xplat-swiper", ref: containerRef, children: [
4723
+ /* @__PURE__ */ jsx337(
4625
4724
  "div",
4626
4725
  {
4627
4726
  className: "lib-xplat-swiper__viewport",
4628
4727
  onMouseDown: handleDragStart,
4629
4728
  onTouchStart: handleDragStart,
4630
- children: /* @__PURE__ */ jsx336(
4729
+ children: /* @__PURE__ */ jsx337(
4631
4730
  "div",
4632
4731
  {
4633
4732
  className: clsx_default(
@@ -4645,7 +4744,7 @@ var Swiper = (props) => {
4645
4744
  )
4646
4745
  }
4647
4746
  ),
4648
- showProgress && canSlide && /* @__PURE__ */ jsx336("div", { className: "lib-xplat-swiper__progress", children: /* @__PURE__ */ jsx336("div", { className: "lib-xplat-swiper__progress-track", children: /* @__PURE__ */ jsx336(
4747
+ showProgress && canSlide && /* @__PURE__ */ jsx337("div", { className: "lib-xplat-swiper__progress", children: /* @__PURE__ */ jsx337("div", { className: "lib-xplat-swiper__progress-track", children: /* @__PURE__ */ jsx337(
4649
4748
  "span",
4650
4749
  {
4651
4750
  className: "lib-xplat-swiper__progress-fill",
@@ -4655,7 +4754,7 @@ var Swiper = (props) => {
4655
4754
  }
4656
4755
  }
4657
4756
  ) }) }),
4658
- canSlide && /* @__PURE__ */ jsx336("div", { className: "lib-xplat-swiper__dots", children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ jsx336(
4757
+ canSlide && /* @__PURE__ */ jsx337("div", { className: "lib-xplat-swiper__dots", children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ jsx337(
4659
4758
  "button",
4660
4759
  {
4661
4760
  className: clsx_default(
@@ -4673,8 +4772,8 @@ Swiper.displayName = "Swiper";
4673
4772
  var Swiper_default = Swiper;
4674
4773
 
4675
4774
  // src/components/Switch/Switch.tsx
4676
- import React30 from "react";
4677
- import { jsx as jsx337 } from "react/jsx-runtime";
4775
+ import React31 from "react";
4776
+ import { jsx as jsx338 } from "react/jsx-runtime";
4678
4777
  var KNOB_TRANSITION_MS = 250;
4679
4778
  var Switch = (props) => {
4680
4779
  const {
@@ -4684,9 +4783,9 @@ var Switch = (props) => {
4684
4783
  disabled,
4685
4784
  onChange
4686
4785
  } = props;
4687
- const [isAnimating, setIsAnimating] = React30.useState(false);
4688
- const timeoutRef = React30.useRef(null);
4689
- React30.useEffect(() => {
4786
+ const [isAnimating, setIsAnimating] = React31.useState(false);
4787
+ const timeoutRef = React31.useRef(null);
4788
+ React31.useEffect(() => {
4690
4789
  return () => {
4691
4790
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
4692
4791
  };
@@ -4701,7 +4800,7 @@ var Switch = (props) => {
4701
4800
  timeoutRef.current = null;
4702
4801
  }, KNOB_TRANSITION_MS);
4703
4802
  };
4704
- return /* @__PURE__ */ jsx337(
4803
+ return /* @__PURE__ */ jsx338(
4705
4804
  "div",
4706
4805
  {
4707
4806
  className: clsx_default(
@@ -4714,7 +4813,7 @@ var Switch = (props) => {
4714
4813
  ),
4715
4814
  onClick: handleClick,
4716
4815
  "aria-disabled": disabled || isAnimating,
4717
- children: /* @__PURE__ */ jsx337("div", { className: clsx_default("knob", value ? "checked" : void 0) })
4816
+ children: /* @__PURE__ */ jsx338("div", { className: clsx_default("knob", value ? "checked" : void 0) })
4718
4817
  }
4719
4818
  );
4720
4819
  };
@@ -4722,26 +4821,27 @@ Switch.displayName = "Switch";
4722
4821
  var Switch_default = Switch;
4723
4822
 
4724
4823
  // src/components/Table/TableContext.tsx
4725
- import React31 from "react";
4726
- var TableContext = React31.createContext(null);
4824
+ import React32 from "react";
4825
+ var TableContext = React32.createContext(null);
4727
4826
  var useTableContext = () => {
4728
- const ctx = React31.useContext(TableContext);
4827
+ const ctx = React32.useContext(TableContext);
4729
4828
  if (!ctx) throw new Error("Table components must be used inside <Table>");
4730
4829
  return ctx;
4731
4830
  };
4732
4831
  var TableContext_default = TableContext;
4733
4832
 
4734
4833
  // src/components/Table/Table.tsx
4735
- import { jsx as jsx338 } from "react/jsx-runtime";
4834
+ import { jsx as jsx339 } from "react/jsx-runtime";
4736
4835
  var Table = (props) => {
4737
4836
  const {
4738
4837
  children,
4838
+ size = "md",
4739
4839
  rowBorderUse = true,
4740
4840
  colBorderUse = true,
4741
4841
  headerSticky = false,
4742
4842
  stickyShadow = true
4743
4843
  } = props;
4744
- return /* @__PURE__ */ jsx338("div", { className: "lib-xplat-table-wrapper", children: /* @__PURE__ */ jsx338(
4844
+ return /* @__PURE__ */ jsx339("div", { className: `lib-xplat-table-wrapper ${size}`, children: /* @__PURE__ */ jsx339(
4745
4845
  TableContext_default.Provider,
4746
4846
  {
4747
4847
  value: {
@@ -4750,7 +4850,7 @@ var Table = (props) => {
4750
4850
  headerSticky,
4751
4851
  stickyShadow
4752
4852
  },
4753
- children: /* @__PURE__ */ jsx338("table", { className: "lib-xplat-table", children })
4853
+ children: /* @__PURE__ */ jsx339("table", { className: "lib-xplat-table", children })
4754
4854
  }
4755
4855
  ) });
4756
4856
  };
@@ -4758,41 +4858,41 @@ Table.displayName = "Table";
4758
4858
  var Table_default = Table;
4759
4859
 
4760
4860
  // src/components/Table/TableBody.tsx
4761
- import { jsx as jsx339 } from "react/jsx-runtime";
4861
+ import { jsx as jsx340 } from "react/jsx-runtime";
4762
4862
  var TableBody = (props) => {
4763
4863
  const { children } = props;
4764
- return /* @__PURE__ */ jsx339("tbody", { children });
4864
+ return /* @__PURE__ */ jsx340("tbody", { children });
4765
4865
  };
4766
4866
  TableBody.displayName = "TableBody";
4767
4867
  var TableBody_default = TableBody;
4768
4868
 
4769
4869
  // src/components/Table/TableCell.tsx
4770
- import React34 from "react";
4870
+ import React35 from "react";
4771
4871
 
4772
4872
  // src/components/Table/TableHeadContext.tsx
4773
- import React32 from "react";
4774
- var TableHeadContext = React32.createContext(
4873
+ import React33 from "react";
4874
+ var TableHeadContext = React33.createContext(
4775
4875
  null
4776
4876
  );
4777
4877
  var useTableHeadContext = () => {
4778
- const ctx = React32.useContext(TableHeadContext);
4878
+ const ctx = React33.useContext(TableHeadContext);
4779
4879
  return ctx;
4780
4880
  };
4781
4881
  var TableHeadContext_default = TableHeadContext;
4782
4882
 
4783
4883
  // src/components/Table/TableRowContext.tsx
4784
- import React33 from "react";
4785
- var TableRowContext = React33.createContext(null);
4884
+ import React34 from "react";
4885
+ var TableRowContext = React34.createContext(null);
4786
4886
  var useTableRowContext = () => {
4787
- const ctx = React33.useContext(TableRowContext);
4887
+ const ctx = React34.useContext(TableRowContext);
4788
4888
  if (!ctx) throw new Error("Table components must be used inside <Table>");
4789
4889
  return ctx;
4790
4890
  };
4791
4891
  var TableRowContext_default = TableRowContext;
4792
4892
 
4793
4893
  // src/components/Table/TableCell.tsx
4794
- import { jsx as jsx340 } from "react/jsx-runtime";
4795
- var TableCell = React34.memo((props) => {
4894
+ import { jsx as jsx341 } from "react/jsx-runtime";
4895
+ var TableCell = React35.memo((props) => {
4796
4896
  const {
4797
4897
  children,
4798
4898
  align = "center",
@@ -4804,9 +4904,9 @@ var TableCell = React34.memo((props) => {
4804
4904
  const { registerStickyCell, stickyCells } = useTableRowContext();
4805
4905
  const { stickyShadow } = useTableContext();
4806
4906
  const headContext = useTableHeadContext();
4807
- const [left, setLeft] = React34.useState(0);
4808
- const cellRef = React34.useRef(null);
4809
- const calculateLeft = React34.useCallback(() => {
4907
+ const [left, setLeft] = React35.useState(0);
4908
+ const cellRef = React35.useRef(null);
4909
+ const calculateLeft = React35.useCallback(() => {
4810
4910
  if (!cellRef.current) return 0;
4811
4911
  let totalLeft = 0;
4812
4912
  for (const ref of stickyCells) {
@@ -4815,7 +4915,7 @@ var TableCell = React34.memo((props) => {
4815
4915
  }
4816
4916
  return totalLeft;
4817
4917
  }, [stickyCells]);
4818
- React34.useEffect(() => {
4918
+ React35.useEffect(() => {
4819
4919
  if (!isSticky || !cellRef.current) return;
4820
4920
  registerStickyCell(cellRef);
4821
4921
  setLeft(calculateLeft());
@@ -4833,7 +4933,7 @@ var TableCell = React34.memo((props) => {
4833
4933
  const CellTag = cellRef.current?.tagName === "TH" ? "th" : "td";
4834
4934
  const isLastSticky = isSticky && stickyCells[stickyCells.length - 1] === cellRef;
4835
4935
  const enableHover = headContext && headContext.cellHover;
4836
- return /* @__PURE__ */ jsx340(
4936
+ return /* @__PURE__ */ jsx341(
4837
4937
  CellTag,
4838
4938
  {
4839
4939
  ref: cellRef,
@@ -4858,21 +4958,21 @@ TableCell.displayName = "TableCell";
4858
4958
  var TableCell_default = TableCell;
4859
4959
 
4860
4960
  // src/components/Table/TableHead.tsx
4861
- import { jsx as jsx341 } from "react/jsx-runtime";
4961
+ import { jsx as jsx342 } from "react/jsx-runtime";
4862
4962
  var TableHead = ({
4863
4963
  children,
4864
4964
  cellHover = false
4865
4965
  }) => {
4866
4966
  const { headerSticky } = useTableContext();
4867
- return /* @__PURE__ */ jsx341(TableHeadContext_default.Provider, { value: { cellHover }, children: /* @__PURE__ */ jsx341("thead", { className: clsx_default(headerSticky ? "table-sticky" : null), children }) });
4967
+ return /* @__PURE__ */ jsx342(TableHeadContext_default.Provider, { value: { cellHover }, children: /* @__PURE__ */ jsx342("thead", { className: clsx_default(headerSticky ? "table-sticky" : null), children }) });
4868
4968
  };
4869
4969
  TableHead.displayName = "TableHead";
4870
4970
  var TableHead_default = TableHead;
4871
4971
 
4872
4972
  // src/components/Table/TableRow.tsx
4873
- import React35 from "react";
4874
- import { jsx as jsx342 } from "react/jsx-runtime";
4875
- var TableRow = React35.memo((props) => {
4973
+ import React36 from "react";
4974
+ import { jsx as jsx343 } from "react/jsx-runtime";
4975
+ var TableRow = React36.memo((props) => {
4876
4976
  const {
4877
4977
  children,
4878
4978
  type = "secondary",
@@ -4880,14 +4980,14 @@ var TableRow = React35.memo((props) => {
4880
4980
  onClick
4881
4981
  } = props;
4882
4982
  const { rowBorderUse } = useTableContext();
4883
- const [stickyCells, setStickyCells] = React35.useState([]);
4983
+ const [stickyCells, setStickyCells] = React36.useState([]);
4884
4984
  const registerStickyCell = (ref) => {
4885
4985
  setStickyCells((prev) => {
4886
4986
  if (prev.includes(ref)) return prev;
4887
4987
  return [...prev, ref];
4888
4988
  });
4889
4989
  };
4890
- return /* @__PURE__ */ jsx342(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ jsx342(
4990
+ return /* @__PURE__ */ jsx343(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ jsx343(
4891
4991
  "tr",
4892
4992
  {
4893
4993
  className: clsx_default(
@@ -4905,7 +5005,7 @@ TableRow.displayName = "TableRow";
4905
5005
  var TableRow_default = TableRow;
4906
5006
 
4907
5007
  // src/components/Tag/Tag.tsx
4908
- import { jsx as jsx343, jsxs as jsxs218 } from "react/jsx-runtime";
5008
+ import { jsx as jsx344, jsxs as jsxs219 } from "react/jsx-runtime";
4909
5009
  var Tag = (props) => {
4910
5010
  const {
4911
5011
  children,
@@ -4915,7 +5015,7 @@ var Tag = (props) => {
4915
5015
  disabled = false,
4916
5016
  colorIndex
4917
5017
  } = props;
4918
- return /* @__PURE__ */ jsxs218(
5018
+ return /* @__PURE__ */ jsxs219(
4919
5019
  "span",
4920
5020
  {
4921
5021
  className: clsx_default(
@@ -4926,8 +5026,8 @@ var Tag = (props) => {
4926
5026
  disabled && "disabled"
4927
5027
  ),
4928
5028
  children: [
4929
- /* @__PURE__ */ jsx343("span", { className: "tag-label", children }),
4930
- onClose && /* @__PURE__ */ jsx343("button", { className: "tag-close", onClick: onClose, "aria-label": "\uC0AD\uC81C", disabled, children: /* @__PURE__ */ jsx343(XIcon_default, {}) })
5029
+ /* @__PURE__ */ jsx344("span", { className: "tag-label", children }),
5030
+ onClose && /* @__PURE__ */ jsx344("button", { className: "tag-close", onClick: onClose, "aria-label": "\uC0AD\uC81C", disabled, children: /* @__PURE__ */ jsx344(XIcon_default, {}) })
4931
5031
  ]
4932
5032
  }
4933
5033
  );
@@ -4936,12 +5036,12 @@ Tag.displayName = "Tag";
4936
5036
  var Tag_default = Tag;
4937
5037
 
4938
5038
  // src/components/TextArea/TextArea.tsx
4939
- import React36 from "react";
4940
- import { jsx as jsx344 } from "react/jsx-runtime";
4941
- var TextArea = React36.forwardRef(
5039
+ import React37 from "react";
5040
+ import { jsx as jsx345 } from "react/jsx-runtime";
5041
+ var TextArea = React37.forwardRef(
4942
5042
  (props, ref) => {
4943
5043
  const { value, onChange, disabled, ...textareaProps } = props;
4944
- const localRef = React36.useRef(null);
5044
+ const localRef = React37.useRef(null);
4945
5045
  const setRefs = (el) => {
4946
5046
  localRef.current = el;
4947
5047
  if (!ref) return;
@@ -4961,21 +5061,21 @@ var TextArea = React36.forwardRef(
4961
5061
  onChange(event);
4962
5062
  }
4963
5063
  };
4964
- React36.useEffect(() => {
5064
+ React37.useEffect(() => {
4965
5065
  const el = localRef.current;
4966
5066
  if (!el) return;
4967
5067
  el.style.height = "0px";
4968
5068
  const nextHeight = Math.min(el.scrollHeight, 400);
4969
5069
  el.style.height = `${nextHeight}px`;
4970
5070
  }, [value]);
4971
- return /* @__PURE__ */ jsx344("div", { className: "lib-xplat-textarea-wrapper", children: /* @__PURE__ */ jsx344(
5071
+ return /* @__PURE__ */ jsx345("div", { className: "lib-xplat-textarea-wrapper", children: /* @__PURE__ */ jsx345(
4972
5072
  "div",
4973
5073
  {
4974
5074
  className: clsx_default(
4975
5075
  "lib-xplat-textarea",
4976
5076
  disabled ? "disabled" : void 0
4977
5077
  ),
4978
- children: /* @__PURE__ */ jsx344(
5078
+ children: /* @__PURE__ */ jsx345(
4979
5079
  "textarea",
4980
5080
  {
4981
5081
  ...textareaProps,
@@ -4993,25 +5093,25 @@ TextArea.displayName = "TextArea";
4993
5093
  var TextArea_default = TextArea;
4994
5094
 
4995
5095
  // src/components/Toast/Toast.tsx
4996
- import React37 from "react";
5096
+ import React38 from "react";
4997
5097
  import { createPortal as createPortal3 } from "react-dom";
4998
- import { jsx as jsx345, jsxs as jsxs219 } from "react/jsx-runtime";
4999
- var ToastContext = React37.createContext(null);
5098
+ import { jsx as jsx346, jsxs as jsxs220 } from "react/jsx-runtime";
5099
+ var ToastContext = React38.createContext(null);
5000
5100
  var useToast = () => {
5001
- const ctx = React37.useContext(ToastContext);
5101
+ const ctx = React38.useContext(ToastContext);
5002
5102
  if (!ctx) throw new Error("useToast must be used within ToastProvider");
5003
5103
  return ctx;
5004
5104
  };
5005
5105
  var EXIT_DURATION = 300;
5006
5106
  var ToastItemComponent = ({ item, isExiting, onClose }) => {
5007
- const ref = React37.useRef(null);
5008
- const [height, setHeight] = React37.useState(void 0);
5009
- React37.useEffect(() => {
5107
+ const ref = React38.useRef(null);
5108
+ const [height, setHeight] = React38.useState(void 0);
5109
+ React38.useEffect(() => {
5010
5110
  if (ref.current && !isExiting) {
5011
5111
  setHeight(ref.current.offsetHeight);
5012
5112
  }
5013
5113
  }, [isExiting]);
5014
- return /* @__PURE__ */ jsx345(
5114
+ return /* @__PURE__ */ jsx346(
5015
5115
  "div",
5016
5116
  {
5017
5117
  className: clsx_default("lib-xplat-toast-wrapper", { exit: isExiting }),
@@ -5019,15 +5119,15 @@ var ToastItemComponent = ({ item, isExiting, onClose }) => {
5019
5119
  maxHeight: isExiting ? 0 : height ?? "none",
5020
5120
  marginBottom: isExiting ? 0 : void 0
5021
5121
  },
5022
- children: /* @__PURE__ */ jsxs219(
5122
+ children: /* @__PURE__ */ jsxs220(
5023
5123
  "div",
5024
5124
  {
5025
5125
  ref,
5026
5126
  className: clsx_default("lib-xplat-toast", item.type, { exit: isExiting }),
5027
5127
  role: "alert",
5028
5128
  children: [
5029
- /* @__PURE__ */ jsx345("span", { className: "message", children: item.message }),
5030
- /* @__PURE__ */ jsx345("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
5129
+ /* @__PURE__ */ jsx346("span", { className: "message", children: item.message }),
5130
+ /* @__PURE__ */ jsx346("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
5031
5131
  ]
5032
5132
  }
5033
5133
  )
@@ -5038,13 +5138,13 @@ var ToastProvider = ({
5038
5138
  children,
5039
5139
  position = "top-right"
5040
5140
  }) => {
5041
- const [toasts, setToasts] = React37.useState([]);
5042
- const [removing, setRemoving] = React37.useState(/* @__PURE__ */ new Set());
5043
- const [mounted, setMounted] = React37.useState(false);
5044
- React37.useEffect(() => {
5141
+ const [toasts, setToasts] = React38.useState([]);
5142
+ const [removing, setRemoving] = React38.useState(/* @__PURE__ */ new Set());
5143
+ const [mounted, setMounted] = React38.useState(false);
5144
+ React38.useEffect(() => {
5045
5145
  setMounted(true);
5046
5146
  }, []);
5047
- const remove = React37.useCallback((id) => {
5147
+ const remove = React38.useCallback((id) => {
5048
5148
  setRemoving((prev) => new Set(prev).add(id));
5049
5149
  setTimeout(() => {
5050
5150
  setToasts((prev) => prev.filter((t) => t.id !== id));
@@ -5055,7 +5155,7 @@ var ToastProvider = ({
5055
5155
  });
5056
5156
  }, EXIT_DURATION);
5057
5157
  }, []);
5058
- const toast = React37.useCallback(
5158
+ const toast = React38.useCallback(
5059
5159
  (type, message, duration = 3e3) => {
5060
5160
  const id = `${Date.now()}-${Math.random()}`;
5061
5161
  setToasts((prev) => [...prev, { id, type, message }]);
@@ -5065,10 +5165,10 @@ var ToastProvider = ({
5065
5165
  },
5066
5166
  [remove]
5067
5167
  );
5068
- return /* @__PURE__ */ jsxs219(ToastContext.Provider, { value: { toast }, children: [
5168
+ return /* @__PURE__ */ jsxs220(ToastContext.Provider, { value: { toast }, children: [
5069
5169
  children,
5070
5170
  mounted && createPortal3(
5071
- /* @__PURE__ */ jsx345("div", { className: clsx_default("lib-xplat-toast-container", position), children: toasts.map((t) => /* @__PURE__ */ jsx345(
5171
+ /* @__PURE__ */ jsx346("div", { className: clsx_default("lib-xplat-toast-container", position), children: toasts.map((t) => /* @__PURE__ */ jsx346(
5072
5172
  ToastItemComponent,
5073
5173
  {
5074
5174
  item: t,
@@ -5084,29 +5184,29 @@ var ToastProvider = ({
5084
5184
  ToastProvider.displayName = "ToastProvider";
5085
5185
 
5086
5186
  // src/components/Tooltip/Tooltip.tsx
5087
- import React38 from "react";
5088
- import { jsx as jsx346, jsxs as jsxs220 } from "react/jsx-runtime";
5187
+ import React39 from "react";
5188
+ import { jsx as jsx347, jsxs as jsxs221 } from "react/jsx-runtime";
5089
5189
  var Tooltip = (props) => {
5090
5190
  const {
5091
5191
  type = "primary",
5092
5192
  description,
5093
5193
  children
5094
5194
  } = props;
5095
- const iconRef = React38.useRef(null);
5096
- return /* @__PURE__ */ jsxs220("div", { className: "lib-xplat-tooltip", children: [
5097
- /* @__PURE__ */ jsx346("div", { className: "tooltip-content", ref: iconRef, children: children || "Tooltip" }),
5098
- /* @__PURE__ */ jsx346("div", { className: clsx_default("tooltip-wrapper", type), children: description })
5195
+ const iconRef = React39.useRef(null);
5196
+ return /* @__PURE__ */ jsxs221("div", { className: "lib-xplat-tooltip", children: [
5197
+ /* @__PURE__ */ jsx347("div", { className: "tooltip-content", ref: iconRef, children: children || "Tooltip" }),
5198
+ /* @__PURE__ */ jsx347("div", { className: clsx_default("tooltip-wrapper", type), children: description })
5099
5199
  ] });
5100
5200
  };
5101
5201
  Tooltip.displayName = "Tooltip";
5102
5202
  var Tooltip_default = Tooltip;
5103
5203
 
5104
5204
  // src/components/Video/Video.tsx
5105
- import React39 from "react";
5106
- import { jsx as jsx347, jsxs as jsxs221 } from "react/jsx-runtime";
5107
- var PipIcon = () => /* @__PURE__ */ jsxs221("svg", { viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
5108
- /* @__PURE__ */ jsx347("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
5109
- /* @__PURE__ */ jsx347("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
5205
+ import React40 from "react";
5206
+ import { jsx as jsx348, jsxs as jsxs222 } from "react/jsx-runtime";
5207
+ var PipIcon = () => /* @__PURE__ */ jsxs222("svg", { viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
5208
+ /* @__PURE__ */ jsx348("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
5209
+ /* @__PURE__ */ jsx348("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
5110
5210
  ] });
5111
5211
  var formatTime = (sec) => {
5112
5212
  if (!Number.isFinite(sec) || sec < 0) return "0:00";
@@ -5114,7 +5214,7 @@ var formatTime = (sec) => {
5114
5214
  const s = Math.floor(sec % 60);
5115
5215
  return `${m}:${s.toString().padStart(2, "0")}`;
5116
5216
  };
5117
- var Video = React39.forwardRef((props, ref) => {
5217
+ var Video = React40.forwardRef((props, ref) => {
5118
5218
  const {
5119
5219
  src,
5120
5220
  poster,
@@ -5138,21 +5238,21 @@ var Video = React39.forwardRef((props, ref) => {
5138
5238
  children,
5139
5239
  ...rest
5140
5240
  } = props;
5141
- const containerRef = React39.useRef(null);
5142
- const videoRef = React39.useRef(null);
5143
- const [isPlaying, setIsPlaying] = React39.useState(Boolean(autoPlay));
5144
- const [isLoaded, setIsLoaded] = React39.useState(false);
5145
- const [currentTime, setCurrentTime] = React39.useState(0);
5146
- const [duration, setDuration] = React39.useState(0);
5147
- const [buffered, setBuffered] = React39.useState(0);
5148
- const [volume, setVolume] = React39.useState(1);
5149
- const [isMuted, setIsMuted] = React39.useState(Boolean(muted));
5150
- const [isFullscreen, setIsFullscreen] = React39.useState(false);
5151
- const [playbackRate, setPlaybackRate] = React39.useState(1);
5152
- const [rateMenuOpen, setRateMenuOpen] = React39.useState(false);
5153
- const [captionsOn, setCaptionsOn] = React39.useState(false);
5154
- const [isPip, setIsPip] = React39.useState(false);
5155
- const setRefs = React39.useCallback(
5241
+ const containerRef = React40.useRef(null);
5242
+ const videoRef = React40.useRef(null);
5243
+ const [isPlaying, setIsPlaying] = React40.useState(Boolean(autoPlay));
5244
+ const [isLoaded, setIsLoaded] = React40.useState(false);
5245
+ const [currentTime, setCurrentTime] = React40.useState(0);
5246
+ const [duration, setDuration] = React40.useState(0);
5247
+ const [buffered, setBuffered] = React40.useState(0);
5248
+ const [volume, setVolume] = React40.useState(1);
5249
+ const [isMuted, setIsMuted] = React40.useState(Boolean(muted));
5250
+ const [isFullscreen, setIsFullscreen] = React40.useState(false);
5251
+ const [playbackRate, setPlaybackRate] = React40.useState(1);
5252
+ const [rateMenuOpen, setRateMenuOpen] = React40.useState(false);
5253
+ const [captionsOn, setCaptionsOn] = React40.useState(false);
5254
+ const [isPip, setIsPip] = React40.useState(false);
5255
+ const setRefs = React40.useCallback(
5156
5256
  (el) => {
5157
5257
  videoRef.current = el;
5158
5258
  if (typeof ref === "function") ref(el);
@@ -5160,14 +5260,14 @@ var Video = React39.forwardRef((props, ref) => {
5160
5260
  },
5161
5261
  [ref]
5162
5262
  );
5163
- React39.useEffect(() => {
5263
+ React40.useEffect(() => {
5164
5264
  const onFsChange = () => {
5165
5265
  setIsFullscreen(document.fullscreenElement === containerRef.current);
5166
5266
  };
5167
5267
  document.addEventListener("fullscreenchange", onFsChange);
5168
5268
  return () => document.removeEventListener("fullscreenchange", onFsChange);
5169
5269
  }, []);
5170
- React39.useEffect(() => {
5270
+ React40.useEffect(() => {
5171
5271
  const v = videoRef.current;
5172
5272
  if (!v) return;
5173
5273
  const onEnter = () => setIsPip(true);
@@ -5281,13 +5381,13 @@ var Video = React39.forwardRef((props, ref) => {
5281
5381
  const volumePct = (isMuted ? 0 : volume) * 100;
5282
5382
  const VolumeGlyph = isMuted || volume === 0 ? VolumeXIcon_default : volume < 0.5 ? VolumeIcon_default : Volume2Icon_default;
5283
5383
  const pipSupported = typeof document !== "undefined" && "pictureInPictureEnabled" in document && document.pictureInPictureEnabled;
5284
- return /* @__PURE__ */ jsxs221(
5384
+ return /* @__PURE__ */ jsxs222(
5285
5385
  "div",
5286
5386
  {
5287
5387
  ref: containerRef,
5288
5388
  className: clsx_default("lib-xplat-video", showControls && "has-controls"),
5289
5389
  children: [
5290
- /* @__PURE__ */ jsx347(
5390
+ /* @__PURE__ */ jsx348(
5291
5391
  "video",
5292
5392
  {
5293
5393
  ref: setRefs,
@@ -5308,7 +5408,7 @@ var Video = React39.forwardRef((props, ref) => {
5308
5408
  children
5309
5409
  }
5310
5410
  ),
5311
- showCenterPlay && /* @__PURE__ */ jsx347(
5411
+ showCenterPlay && /* @__PURE__ */ jsx348(
5312
5412
  "button",
5313
5413
  {
5314
5414
  type: "button",
@@ -5320,11 +5420,11 @@ var Video = React39.forwardRef((props, ref) => {
5320
5420
  onClick: togglePlay,
5321
5421
  "aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
5322
5422
  tabIndex: -1,
5323
- children: /* @__PURE__ */ jsx347("span", { className: "center-play-icon", children: /* @__PURE__ */ jsx347(PlayCircleIcon_default, {}) })
5423
+ children: /* @__PURE__ */ jsx348("span", { className: "center-play-icon", children: /* @__PURE__ */ jsx348(PlayCircleIcon_default, {}) })
5324
5424
  }
5325
5425
  ),
5326
- showControls && /* @__PURE__ */ jsxs221("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
5327
- /* @__PURE__ */ jsx347(
5426
+ showControls && /* @__PURE__ */ jsxs222("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
5427
+ /* @__PURE__ */ jsx348(
5328
5428
  "input",
5329
5429
  {
5330
5430
  type: "range",
@@ -5341,29 +5441,29 @@ var Video = React39.forwardRef((props, ref) => {
5341
5441
  }
5342
5442
  }
5343
5443
  ),
5344
- /* @__PURE__ */ jsxs221("div", { className: "controls-row", children: [
5345
- /* @__PURE__ */ jsx347(
5444
+ /* @__PURE__ */ jsxs222("div", { className: "controls-row", children: [
5445
+ /* @__PURE__ */ jsx348(
5346
5446
  "button",
5347
5447
  {
5348
5448
  type: "button",
5349
5449
  className: "control-btn",
5350
5450
  onClick: togglePlay,
5351
5451
  "aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
5352
- children: isPlaying ? /* @__PURE__ */ jsx347(PauseIcon_default, {}) : /* @__PURE__ */ jsx347(PlayIcon_default, {})
5452
+ children: isPlaying ? /* @__PURE__ */ jsx348(PauseIcon_default, {}) : /* @__PURE__ */ jsx348(PlayIcon_default, {})
5353
5453
  }
5354
5454
  ),
5355
- /* @__PURE__ */ jsxs221("div", { className: "volume-group", children: [
5356
- /* @__PURE__ */ jsx347(
5455
+ /* @__PURE__ */ jsxs222("div", { className: "volume-group", children: [
5456
+ /* @__PURE__ */ jsx348(
5357
5457
  "button",
5358
5458
  {
5359
5459
  type: "button",
5360
5460
  className: "control-btn",
5361
5461
  onClick: toggleMute,
5362
5462
  "aria-label": isMuted ? "\uC74C\uC18C\uAC70 \uD574\uC81C" : "\uC74C\uC18C\uAC70",
5363
- children: /* @__PURE__ */ jsx347(VolumeGlyph, {})
5463
+ children: /* @__PURE__ */ jsx348(VolumeGlyph, {})
5364
5464
  }
5365
5465
  ),
5366
- /* @__PURE__ */ jsx347(
5466
+ /* @__PURE__ */ jsx348(
5367
5467
  "input",
5368
5468
  {
5369
5469
  type: "range",
@@ -5378,14 +5478,14 @@ var Video = React39.forwardRef((props, ref) => {
5378
5478
  }
5379
5479
  )
5380
5480
  ] }),
5381
- /* @__PURE__ */ jsxs221("span", { className: "time", children: [
5481
+ /* @__PURE__ */ jsxs222("span", { className: "time", children: [
5382
5482
  formatTime(currentTime),
5383
5483
  " / ",
5384
5484
  formatTime(duration)
5385
5485
  ] }),
5386
- /* @__PURE__ */ jsx347("div", { className: "controls-spacer" }),
5387
- playbackRates && playbackRates.length > 0 && /* @__PURE__ */ jsxs221("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
5388
- /* @__PURE__ */ jsxs221(
5486
+ /* @__PURE__ */ jsx348("div", { className: "controls-spacer" }),
5487
+ playbackRates && playbackRates.length > 0 && /* @__PURE__ */ jsxs222("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
5488
+ /* @__PURE__ */ jsxs222(
5389
5489
  "button",
5390
5490
  {
5391
5491
  type: "button",
@@ -5399,7 +5499,7 @@ var Video = React39.forwardRef((props, ref) => {
5399
5499
  ]
5400
5500
  }
5401
5501
  ),
5402
- rateMenuOpen && /* @__PURE__ */ jsx347("ul", { className: "rate-menu", role: "menu", children: playbackRates.map((r2) => /* @__PURE__ */ jsx347("li", { children: /* @__PURE__ */ jsxs221(
5502
+ rateMenuOpen && /* @__PURE__ */ jsx348("ul", { className: "rate-menu", role: "menu", children: playbackRates.map((r2) => /* @__PURE__ */ jsx348("li", { children: /* @__PURE__ */ jsxs222(
5403
5503
  "button",
5404
5504
  {
5405
5505
  type: "button",
@@ -5413,7 +5513,7 @@ var Video = React39.forwardRef((props, ref) => {
5413
5513
  }
5414
5514
  ) }, r2)) })
5415
5515
  ] }),
5416
- showCaptions && /* @__PURE__ */ jsx347(
5516
+ showCaptions && /* @__PURE__ */ jsx348(
5417
5517
  "button",
5418
5518
  {
5419
5519
  type: "button",
@@ -5421,37 +5521,37 @@ var Video = React39.forwardRef((props, ref) => {
5421
5521
  onClick: toggleCaptions,
5422
5522
  "aria-label": captionsOn ? "\uC790\uB9C9 \uB044\uAE30" : "\uC790\uB9C9 \uCF1C\uAE30",
5423
5523
  "aria-pressed": captionsOn,
5424
- children: /* @__PURE__ */ jsx347(TypeIcon_default, {})
5524
+ children: /* @__PURE__ */ jsx348(TypeIcon_default, {})
5425
5525
  }
5426
5526
  ),
5427
- showPip && pipSupported && /* @__PURE__ */ jsx347(
5527
+ showPip && pipSupported && /* @__PURE__ */ jsx348(
5428
5528
  "button",
5429
5529
  {
5430
5530
  type: "button",
5431
5531
  className: clsx_default("control-btn", isPip && "is-active"),
5432
5532
  onClick: togglePip,
5433
5533
  "aria-label": isPip ? "PIP \uC885\uB8CC" : "PIP",
5434
- children: /* @__PURE__ */ jsx347(PipIcon, {})
5534
+ children: /* @__PURE__ */ jsx348(PipIcon, {})
5435
5535
  }
5436
5536
  ),
5437
- showDownload && /* @__PURE__ */ jsx347(
5537
+ showDownload && /* @__PURE__ */ jsx348(
5438
5538
  "a",
5439
5539
  {
5440
5540
  className: "control-btn",
5441
5541
  href: src,
5442
5542
  download: downloadFileName ?? true,
5443
5543
  "aria-label": "\uB2E4\uC6B4\uB85C\uB4DC",
5444
- children: /* @__PURE__ */ jsx347(DownloadIcon_default, {})
5544
+ children: /* @__PURE__ */ jsx348(DownloadIcon_default, {})
5445
5545
  }
5446
5546
  ),
5447
- /* @__PURE__ */ jsx347(
5547
+ /* @__PURE__ */ jsx348(
5448
5548
  "button",
5449
5549
  {
5450
5550
  type: "button",
5451
5551
  className: "control-btn",
5452
5552
  onClick: toggleFullscreen,
5453
5553
  "aria-label": isFullscreen ? "\uC804\uCCB4\uD654\uBA74 \uC885\uB8CC" : "\uC804\uCCB4\uD654\uBA74",
5454
- children: isFullscreen ? /* @__PURE__ */ jsx347(MinimizeIcon_default, {}) : /* @__PURE__ */ jsx347(MaximizeIcon_default, {})
5554
+ children: isFullscreen ? /* @__PURE__ */ jsx348(MinimizeIcon_default, {}) : /* @__PURE__ */ jsx348(MaximizeIcon_default, {})
5455
5555
  }
5456
5556
  )
5457
5557
  ] })
@@ -5473,6 +5573,7 @@ export {
5473
5573
  Calendar_default as Calendar,
5474
5574
  CardTab_default as CardTab,
5475
5575
  Chart_default as Chart,
5576
+ ChatInput_default as ChatInput,
5476
5577
  CheckBox_default as CheckBox,
5477
5578
  Chip_default as Chip,
5478
5579
  Divider_default as Divider,