@x-plat/design-system 0.5.21 → 0.5.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6035,30 +6035,151 @@ var Calendar = (props) => {
6035
6035
  Calendar.displayName = "Calendar";
6036
6036
  var Calendar_default = Calendar;
6037
6037
 
6038
+ // src/components/ChatInput/ChatInput.tsx
6039
+ import React5 from "react";
6040
+
6041
+ // src/components/TextArea/TextArea.tsx
6042
+ import React4 from "react";
6043
+ import { jsx as jsx302 } from "react/jsx-runtime";
6044
+ var TextArea = React4.forwardRef(
6045
+ (props, ref) => {
6046
+ const { value, onChange, disabled, ...textareaProps } = props;
6047
+ const localRef = React4.useRef(null);
6048
+ const setRefs = (el) => {
6049
+ localRef.current = el;
6050
+ if (!ref) return;
6051
+ if (typeof ref === "function") {
6052
+ ref(el);
6053
+ } else if (ref && typeof ref === "object" && "current" in ref) {
6054
+ ref.current = el;
6055
+ }
6056
+ };
6057
+ const handleOnChange = (e) => {
6058
+ const val = e.target.value;
6059
+ if (onChange) {
6060
+ const event = {
6061
+ ...e,
6062
+ target: { value: val }
6063
+ };
6064
+ onChange(event);
6065
+ }
6066
+ };
6067
+ React4.useEffect(() => {
6068
+ const el = localRef.current;
6069
+ if (!el) return;
6070
+ el.style.height = "0px";
6071
+ const nextHeight = Math.min(el.scrollHeight, 400);
6072
+ el.style.height = `${nextHeight}px`;
6073
+ }, [value]);
6074
+ return /* @__PURE__ */ jsx302("div", { className: "lib-xplat-textarea-wrapper", children: /* @__PURE__ */ jsx302(
6075
+ "div",
6076
+ {
6077
+ className: clsx_default(
6078
+ "lib-xplat-textarea",
6079
+ disabled ? "disabled" : void 0
6080
+ ),
6081
+ children: /* @__PURE__ */ jsx302(
6082
+ "textarea",
6083
+ {
6084
+ ...textareaProps,
6085
+ ref: setRefs,
6086
+ disabled,
6087
+ value,
6088
+ onChange: handleOnChange
6089
+ }
6090
+ )
6091
+ }
6092
+ ) });
6093
+ }
6094
+ );
6095
+ TextArea.displayName = "TextArea";
6096
+ var TextArea_default = TextArea;
6097
+
6098
+ // src/components/ChatInput/ChatInput.tsx
6099
+ import { jsx as jsx303, jsxs as jsxs194 } from "react/jsx-runtime";
6100
+ var ChatInput = React5.forwardRef(
6101
+ (props, ref) => {
6102
+ const {
6103
+ placeholder,
6104
+ value: valueProp,
6105
+ disabled = false,
6106
+ buttonType = "primary",
6107
+ onSubmit,
6108
+ onChange
6109
+ } = props;
6110
+ const isControlled = valueProp !== void 0;
6111
+ const [internalValue, setInternalValue] = React5.useState("");
6112
+ const value = isControlled ? valueProp : internalValue;
6113
+ const hasText = value.trim().length > 0;
6114
+ const handleChange = (e) => {
6115
+ const val = e.target.value;
6116
+ if (!isControlled) setInternalValue(val);
6117
+ onChange?.(val);
6118
+ };
6119
+ const handleSubmit = () => {
6120
+ if (!hasText || disabled) return;
6121
+ onSubmit?.(value);
6122
+ if (!isControlled) setInternalValue("");
6123
+ };
6124
+ const handleKeyDown = (e) => {
6125
+ if (e.key === "Enter" && !e.shiftKey) {
6126
+ e.preventDefault();
6127
+ handleSubmit();
6128
+ }
6129
+ };
6130
+ return /* @__PURE__ */ jsxs194("div", { className: clsx_default("lib-xplat-chat-input", disabled && "disabled"), children: [
6131
+ /* @__PURE__ */ jsx303(
6132
+ TextArea_default,
6133
+ {
6134
+ ref,
6135
+ placeholder,
6136
+ value,
6137
+ disabled,
6138
+ onChange: handleChange,
6139
+ onKeyDown: handleKeyDown
6140
+ }
6141
+ ),
6142
+ /* @__PURE__ */ jsx303(
6143
+ "button",
6144
+ {
6145
+ type: "button",
6146
+ className: clsx_default("chat-input-send", `btn-${buttonType}`),
6147
+ disabled: !hasText || disabled,
6148
+ onClick: handleSubmit,
6149
+ "aria-label": "\uC804\uC1A1",
6150
+ children: /* @__PURE__ */ jsx303(SendIcon_default, {})
6151
+ }
6152
+ )
6153
+ ] });
6154
+ }
6155
+ );
6156
+ ChatInput.displayName = "ChatInput";
6157
+ var ChatInput_default = ChatInput;
6158
+
6038
6159
  // src/components/Box/Box.tsx
6039
- import { jsx as jsx302, jsxs as jsxs194 } from "react/jsx-runtime";
6160
+ import { jsx as jsx304, jsxs as jsxs195 } from "react/jsx-runtime";
6040
6161
  var Box = ({
6041
6162
  children,
6042
6163
  title,
6043
6164
  variant = "outlined",
6044
6165
  padding = "md"
6045
6166
  }) => {
6046
- return /* @__PURE__ */ jsxs194("div", { className: clsx_default("lib-xplat-box", variant, `pad-${padding}`), children: [
6047
- title && /* @__PURE__ */ jsx302("div", { className: "box-title", children: title }),
6048
- /* @__PURE__ */ jsx302("div", { className: "box-content", children })
6167
+ return /* @__PURE__ */ jsxs195("div", { className: clsx_default("lib-xplat-box", variant, `pad-${padding}`), children: [
6168
+ title && /* @__PURE__ */ jsx304("div", { className: "box-title", children: title }),
6169
+ /* @__PURE__ */ jsx304("div", { className: "box-content", children })
6049
6170
  ] });
6050
6171
  };
6051
6172
  Box.displayName = "Box";
6052
6173
  var Box_default = Box;
6053
6174
 
6054
6175
  // src/components/CardTab/CardTab.tsx
6055
- import React4 from "react";
6176
+ import React6 from "react";
6056
6177
 
6057
6178
  // src/components/CardTab/CardTabPanel.tsx
6058
- import { jsx as jsx303 } from "react/jsx-runtime";
6179
+ import { jsx as jsx305 } from "react/jsx-runtime";
6059
6180
  var CardTabPanel = (props) => {
6060
6181
  const { children, columns = 3 } = props;
6061
- return /* @__PURE__ */ jsx303(
6182
+ return /* @__PURE__ */ jsx305(
6062
6183
  "div",
6063
6184
  {
6064
6185
  className: "card-tab-panel",
@@ -6071,7 +6192,7 @@ CardTabPanel.displayName = "CardTab.Panel";
6071
6192
  var CardTabPanel_default = CardTabPanel;
6072
6193
 
6073
6194
  // src/components/CardTab/CardTab.tsx
6074
- import { jsx as jsx304, jsxs as jsxs195 } from "react/jsx-runtime";
6195
+ import { jsx as jsx306, jsxs as jsxs196 } from "react/jsx-runtime";
6075
6196
  var CardTabRoot = (props) => {
6076
6197
  const {
6077
6198
  tabs,
@@ -6081,7 +6202,7 @@ var CardTabRoot = (props) => {
6081
6202
  children
6082
6203
  } = props;
6083
6204
  const isControlled = activeValueProp !== void 0;
6084
- const [uncontrolledValue, setUncontrolledValue] = React4.useState(tabs[0]?.value ?? "");
6205
+ const [uncontrolledValue, setUncontrolledValue] = React6.useState(tabs[0]?.value ?? "");
6085
6206
  const activeValue = isControlled ? activeValueProp : uncontrolledValue;
6086
6207
  const handleTabClick = (tab) => {
6087
6208
  if (!isControlled) {
@@ -6089,16 +6210,16 @@ var CardTabRoot = (props) => {
6089
6210
  }
6090
6211
  onChange?.(tab);
6091
6212
  };
6092
- const panels = React4.Children.toArray(children).filter(
6093
- (child) => React4.isValidElement(child) && child.type === CardTabPanel_default
6213
+ const panels = React6.Children.toArray(children).filter(
6214
+ (child) => React6.isValidElement(child) && child.type === CardTabPanel_default
6094
6215
  );
6095
6216
  const activePanel = panels.find(
6096
6217
  (panel) => panel.props.value === activeValue
6097
6218
  );
6098
- return /* @__PURE__ */ jsxs195("div", { className: clsx_default("lib-xplat-card-tab", size), children: [
6099
- /* @__PURE__ */ jsx304("div", { className: "card-tab-bar", children: tabs.map((tab) => {
6219
+ return /* @__PURE__ */ jsxs196("div", { className: clsx_default("lib-xplat-card-tab", size), children: [
6220
+ /* @__PURE__ */ jsx306("div", { className: "card-tab-bar", children: tabs.map((tab) => {
6100
6221
  const isActive = tab.value === activeValue;
6101
- return /* @__PURE__ */ jsx304(
6222
+ return /* @__PURE__ */ jsx306(
6102
6223
  "button",
6103
6224
  {
6104
6225
  className: clsx_default("card-tab-trigger", isActive && "active"),
@@ -6110,7 +6231,7 @@ var CardTabRoot = (props) => {
6110
6231
  tab.value
6111
6232
  );
6112
6233
  }) }),
6113
- /* @__PURE__ */ jsx304("div", { className: "card-tab-body", children: activePanel })
6234
+ /* @__PURE__ */ jsx306("div", { className: "card-tab-body", children: activePanel })
6114
6235
  ] });
6115
6236
  };
6116
6237
  CardTabRoot.displayName = "CardTab";
@@ -6120,8 +6241,8 @@ var CardTab = Object.assign(CardTabRoot, {
6120
6241
  var CardTab_default = CardTab;
6121
6242
 
6122
6243
  // src/components/Chart/Chart.tsx
6123
- import React5 from "react";
6124
- import { Fragment as Fragment2, jsx as jsx305, jsxs as jsxs196 } from "react/jsx-runtime";
6244
+ import React7 from "react";
6245
+ import { Fragment as Fragment2, jsx as jsx307, jsxs as jsxs197 } from "react/jsx-runtime";
6125
6246
  var CATEGORICAL_COUNT2 = 8;
6126
6247
  var LINE_BAR_PALETTES = Array.from({ length: CATEGORICAL_COUNT2 }, (_, i) => {
6127
6248
  const n = i + 1;
@@ -6167,11 +6288,11 @@ var toSmoothPath = (points) => {
6167
6288
  };
6168
6289
  var RESIZE_SETTLE_MS = 150;
6169
6290
  var useChartSize = (ref) => {
6170
- const [size, setSize] = React5.useState({ width: 0, height: 0 });
6171
- const settleTimer = React5.useRef(0);
6172
- const committedSize = React5.useRef({ width: 0, height: 0 });
6173
- const initialRef = React5.useRef(true);
6174
- React5.useEffect(() => {
6291
+ const [size, setSize] = React7.useState({ width: 0, height: 0 });
6292
+ const settleTimer = React7.useRef(0);
6293
+ const committedSize = React7.useRef({ width: 0, height: 0 });
6294
+ const initialRef = React7.useRef(true);
6295
+ React7.useEffect(() => {
6175
6296
  const el = ref.current;
6176
6297
  if (!el) return;
6177
6298
  const observer = new ResizeObserver((entries) => {
@@ -6213,10 +6334,10 @@ var useChartSize = (ref) => {
6213
6334
  };
6214
6335
  var prefersReducedMotion = () => typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
6215
6336
  var useChartAnimation = (containerRef, dataKey) => {
6216
- const [animate, setAnimate] = React5.useState(false);
6217
- const prevDataKey = React5.useRef(dataKey);
6218
- const hasAnimated = React5.useRef(false);
6219
- React5.useEffect(() => {
6337
+ const [animate, setAnimate] = React7.useState(false);
6338
+ const prevDataKey = React7.useRef(dataKey);
6339
+ const hasAnimated = React7.useRef(false);
6340
+ React7.useEffect(() => {
6220
6341
  if (prefersReducedMotion()) return;
6221
6342
  const el = containerRef.current;
6222
6343
  if (!el) return;
@@ -6232,7 +6353,7 @@ var useChartAnimation = (containerRef, dataKey) => {
6232
6353
  observer.observe(el);
6233
6354
  return () => observer.disconnect();
6234
6355
  }, [containerRef]);
6235
- React5.useEffect(() => {
6356
+ React7.useEffect(() => {
6236
6357
  if (dataKey !== prevDataKey.current) {
6237
6358
  prevDataKey.current = dataKey;
6238
6359
  if (prefersReducedMotion()) return;
@@ -6243,15 +6364,15 @@ var useChartAnimation = (containerRef, dataKey) => {
6243
6364
  return animate || prefersReducedMotion();
6244
6365
  };
6245
6366
  var useChartTooltip = (enabled) => {
6246
- const [tooltip, setTooltip] = React5.useState({
6367
+ const [tooltip, setTooltip] = React7.useState({
6247
6368
  visible: false,
6248
6369
  x: 0,
6249
6370
  y: 0,
6250
6371
  content: ""
6251
6372
  });
6252
- const containerRef = React5.useRef(null);
6253
- const rafRef = React5.useRef(0);
6254
- const move = React5.useCallback((e) => {
6373
+ const containerRef = React7.useRef(null);
6374
+ const rafRef = React7.useRef(0);
6375
+ const move = React7.useCallback((e) => {
6255
6376
  if (!enabled) return;
6256
6377
  const clientX = e.clientX;
6257
6378
  const clientY = e.clientY;
@@ -6266,7 +6387,7 @@ var useChartTooltip = (enabled) => {
6266
6387
  }));
6267
6388
  });
6268
6389
  }, [enabled]);
6269
- const show = React5.useCallback((e, content) => {
6390
+ const show = React7.useCallback((e, content) => {
6270
6391
  if (!enabled) return;
6271
6392
  const rect = containerRef.current?.getBoundingClientRect();
6272
6393
  if (!rect) return;
@@ -6277,18 +6398,18 @@ var useChartTooltip = (enabled) => {
6277
6398
  content
6278
6399
  });
6279
6400
  }, [enabled]);
6280
- const hide = React5.useCallback(() => {
6401
+ const hide = React7.useCallback(() => {
6281
6402
  cancelAnimationFrame(rafRef.current);
6282
6403
  setTooltip((prev) => ({ ...prev, visible: false }));
6283
6404
  }, []);
6284
6405
  return { tooltip, show, hide, move, containerRef };
6285
6406
  };
6286
- var GridLines = React5.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ jsx305(Fragment2, { children: [0, 0.25, 0.5, 0.75, 1].map((ratio) => {
6407
+ var GridLines = React7.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ jsx307(Fragment2, { children: [0, 0.25, 0.5, 0.75, 1].map((ratio) => {
6287
6408
  const y = PADDING.top + (1 - ratio) * chartH;
6288
6409
  const val = Math.round(maxVal * ratio);
6289
- return /* @__PURE__ */ jsxs196("g", { children: [
6290
- /* @__PURE__ */ jsx305("line", { x1: PADDING.left, y1: y, x2: width - PADDING.right, y2: y, className: "chart-grid" }),
6291
- /* @__PURE__ */ jsx305("text", { x: PADDING.left - 8, y: y + 4, className: "chart-axis-label", textAnchor: "end", children: val })
6410
+ return /* @__PURE__ */ jsxs197("g", { children: [
6411
+ /* @__PURE__ */ jsx307("line", { x1: PADDING.left, y1: y, x2: width - PADDING.right, y2: y, className: "chart-grid" }),
6412
+ /* @__PURE__ */ jsx307("text", { x: PADDING.left - 8, y: y + 4, className: "chart-axis-label", textAnchor: "end", children: val })
6292
6413
  ] }, ratio);
6293
6414
  }) }));
6294
6415
  GridLines.displayName = "GridLines";
@@ -6298,25 +6419,25 @@ var getLabelStep = (count, chartW) => {
6298
6419
  if (count <= maxLabels) return 1;
6299
6420
  return Math.ceil(count / maxLabels);
6300
6421
  };
6301
- var AxisLabels = React5.memo(({ labels, count, chartW, height }) => {
6422
+ var AxisLabels = React7.memo(({ labels, count, chartW, height }) => {
6302
6423
  const step = getLabelStep(count, chartW);
6303
- return /* @__PURE__ */ jsx305(Fragment2, { children: labels.map((label, i) => {
6424
+ return /* @__PURE__ */ jsx307(Fragment2, { children: labels.map((label, i) => {
6304
6425
  if (i % step !== 0) return null;
6305
6426
  const x = PADDING.left + i / (count - 1 || 1) * chartW;
6306
- return /* @__PURE__ */ jsx305("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
6427
+ return /* @__PURE__ */ jsx307("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
6307
6428
  }) });
6308
6429
  });
6309
6430
  AxisLabels.displayName = "AxisLabels";
6310
- var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6311
- const entries = React5.useMemo(() => Object.entries(data), [data]);
6312
- const maxVal = React5.useMemo(() => {
6431
+ var LineChart = React7.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6432
+ const entries = React7.useMemo(() => Object.entries(data), [data]);
6433
+ const maxVal = React7.useMemo(() => {
6313
6434
  const allValues = entries.flatMap(([, v]) => v);
6314
6435
  return Math.max(...allValues) * 1.2 || 1;
6315
6436
  }, [entries]);
6316
6437
  const count = labels.length;
6317
6438
  const chartW = width - PADDING.left - PADDING.right;
6318
6439
  const chartH = height - PADDING.top - PADDING.bottom;
6319
- const seriesPoints = React5.useMemo(
6440
+ const seriesPoints = React7.useMemo(
6320
6441
  () => entries.map(
6321
6442
  ([, values]) => values.map((v, i) => ({
6322
6443
  x: PADDING.left + i / (count - 1 || 1) * chartW,
@@ -6327,8 +6448,8 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
6327
6448
  [entries, count, chartW, chartH, maxVal]
6328
6449
  );
6329
6450
  const showPoints = count <= 100;
6330
- const lineRefs = React5.useRef([]);
6331
- React5.useEffect(() => {
6451
+ const lineRefs = React7.useRef([]);
6452
+ React7.useEffect(() => {
6332
6453
  if (!animate) return;
6333
6454
  lineRefs.current.forEach((el) => {
6334
6455
  if (!el) return;
@@ -6341,9 +6462,9 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
6341
6462
  });
6342
6463
  });
6343
6464
  }, [animate, seriesPoints]);
6344
- return /* @__PURE__ */ jsxs196("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
6345
- /* @__PURE__ */ jsx305(GridLines, { width, height, chartH, maxVal }),
6346
- /* @__PURE__ */ jsx305(AxisLabels, { labels, count, chartW, height }),
6465
+ return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
6466
+ /* @__PURE__ */ jsx307(GridLines, { width, height, chartH, maxVal }),
6467
+ /* @__PURE__ */ jsx307(AxisLabels, { labels, count, chartW, height }),
6347
6468
  entries.map(([key], di) => {
6348
6469
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
6349
6470
  const color = palette[2];
@@ -6352,12 +6473,12 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
6352
6473
  const gradientId = `line-gradient-${di}`;
6353
6474
  const polyPoints = points.map((p) => `${p.x},${p.y}`).join(" ");
6354
6475
  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`;
6355
- return /* @__PURE__ */ jsxs196("g", { children: [
6356
- /* @__PURE__ */ jsx305("defs", { children: /* @__PURE__ */ jsxs196("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
6357
- /* @__PURE__ */ jsx305("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.2" }),
6358
- /* @__PURE__ */ jsx305("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0" })
6476
+ return /* @__PURE__ */ jsxs197("g", { children: [
6477
+ /* @__PURE__ */ jsx307("defs", { children: /* @__PURE__ */ jsxs197("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
6478
+ /* @__PURE__ */ jsx307("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.2" }),
6479
+ /* @__PURE__ */ jsx307("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0" })
6359
6480
  ] }) }),
6360
- /* @__PURE__ */ jsx305(
6481
+ /* @__PURE__ */ jsx307(
6361
6482
  "path",
6362
6483
  {
6363
6484
  d: areaD,
@@ -6366,7 +6487,7 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
6366
6487
  style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
6367
6488
  }
6368
6489
  ),
6369
- /* @__PURE__ */ jsx305(
6490
+ /* @__PURE__ */ jsx307(
6370
6491
  "polyline",
6371
6492
  {
6372
6493
  ref: (el) => {
@@ -6378,7 +6499,7 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
6378
6499
  strokeWidth: "2"
6379
6500
  }
6380
6501
  ),
6381
- showPoints && points.map((p, i) => /* @__PURE__ */ jsx305(
6502
+ showPoints && points.map((p, i) => /* @__PURE__ */ jsx307(
6382
6503
  "circle",
6383
6504
  {
6384
6505
  cx: p.x,
@@ -6397,16 +6518,16 @@ var LineChart = React5.memo(({ data, labels, width, height, animate, onHover, on
6397
6518
  ] });
6398
6519
  });
6399
6520
  LineChart.displayName = "LineChart";
6400
- var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6401
- const entries = React5.useMemo(() => Object.entries(data), [data]);
6402
- const maxVal = React5.useMemo(() => {
6521
+ var CurveChart = React7.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6522
+ const entries = React7.useMemo(() => Object.entries(data), [data]);
6523
+ const maxVal = React7.useMemo(() => {
6403
6524
  const allValues = entries.flatMap(([, v]) => v);
6404
6525
  return Math.max(...allValues) * 1.2 || 1;
6405
6526
  }, [entries]);
6406
6527
  const count = labels.length;
6407
6528
  const chartW = width - PADDING.left - PADDING.right;
6408
6529
  const chartH = height - PADDING.top - PADDING.bottom;
6409
- const seriesPoints = React5.useMemo(
6530
+ const seriesPoints = React7.useMemo(
6410
6531
  () => entries.map(
6411
6532
  ([, values]) => values.map((v, i) => ({
6412
6533
  x: PADDING.left + i / (count - 1 || 1) * chartW,
@@ -6417,8 +6538,8 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
6417
6538
  [entries, count, chartW, chartH, maxVal]
6418
6539
  );
6419
6540
  const showPoints = count <= 100;
6420
- const lineRefs = React5.useRef([]);
6421
- React5.useEffect(() => {
6541
+ const lineRefs = React7.useRef([]);
6542
+ React7.useEffect(() => {
6422
6543
  if (!animate) return;
6423
6544
  lineRefs.current.forEach((el) => {
6424
6545
  if (!el) return;
@@ -6431,9 +6552,9 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
6431
6552
  });
6432
6553
  });
6433
6554
  }, [animate, seriesPoints]);
6434
- return /* @__PURE__ */ jsxs196("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
6435
- /* @__PURE__ */ jsx305(GridLines, { width, height, chartH, maxVal }),
6436
- /* @__PURE__ */ jsx305(AxisLabels, { labels, count, chartW, height }),
6555
+ return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
6556
+ /* @__PURE__ */ jsx307(GridLines, { width, height, chartH, maxVal }),
6557
+ /* @__PURE__ */ jsx307(AxisLabels, { labels, count, chartW, height }),
6437
6558
  entries.map(([key], di) => {
6438
6559
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
6439
6560
  const color = palette[2];
@@ -6442,12 +6563,12 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
6442
6563
  const gradientId = `curve-gradient-${di}`;
6443
6564
  const linePath = toSmoothPath(points);
6444
6565
  const areaPath = linePath + ` L ${points[points.length - 1].x} ${PADDING.top + chartH} L ${points[0].x} ${PADDING.top + chartH} Z`;
6445
- return /* @__PURE__ */ jsxs196("g", { children: [
6446
- /* @__PURE__ */ jsx305("defs", { children: /* @__PURE__ */ jsxs196("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
6447
- /* @__PURE__ */ jsx305("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.4" }),
6448
- /* @__PURE__ */ jsx305("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0.02" })
6566
+ return /* @__PURE__ */ jsxs197("g", { children: [
6567
+ /* @__PURE__ */ jsx307("defs", { children: /* @__PURE__ */ jsxs197("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
6568
+ /* @__PURE__ */ jsx307("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.4" }),
6569
+ /* @__PURE__ */ jsx307("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0.02" })
6449
6570
  ] }) }),
6450
- /* @__PURE__ */ jsx305(
6571
+ /* @__PURE__ */ jsx307(
6451
6572
  "path",
6452
6573
  {
6453
6574
  d: areaPath,
@@ -6456,7 +6577,7 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
6456
6577
  style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
6457
6578
  }
6458
6579
  ),
6459
- /* @__PURE__ */ jsx305(
6580
+ /* @__PURE__ */ jsx307(
6460
6581
  "path",
6461
6582
  {
6462
6583
  ref: (el) => {
@@ -6468,7 +6589,7 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
6468
6589
  strokeWidth: "2"
6469
6590
  }
6470
6591
  ),
6471
- showPoints && points.map((p, i) => /* @__PURE__ */ jsx305(
6592
+ showPoints && points.map((p, i) => /* @__PURE__ */ jsx307(
6472
6593
  "circle",
6473
6594
  {
6474
6595
  cx: p.x,
@@ -6487,9 +6608,9 @@ var CurveChart = React5.memo(({ data, labels, width, height, animate, onHover, o
6487
6608
  ] });
6488
6609
  });
6489
6610
  CurveChart.displayName = "CurveChart";
6490
- var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6491
- const entries = React5.useMemo(() => Object.entries(data), [data]);
6492
- const maxVal = React5.useMemo(() => {
6611
+ var BarChart = React7.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6612
+ const entries = React7.useMemo(() => Object.entries(data), [data]);
6613
+ const maxVal = React7.useMemo(() => {
6493
6614
  const allValues = entries.flatMap(([, v]) => v);
6494
6615
  return Math.max(...allValues) * 1.2 || 1;
6495
6616
  }, [entries]);
@@ -6501,7 +6622,7 @@ var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onM
6501
6622
  const barGap = groupCount > 1 ? 2 : 0;
6502
6623
  const barW = Math.max(1, Math.min(32, (groupW * 0.7 - barGap * (groupCount - 1)) / groupCount));
6503
6624
  const baseline = PADDING.top + chartH;
6504
- const bars = React5.useMemo(
6625
+ const bars = React7.useMemo(
6505
6626
  () => entries.map(
6506
6627
  ([, values], di) => values.map((v, i) => {
6507
6628
  const totalBarsW = barW * groupCount + barGap * (groupCount - 1);
@@ -6514,11 +6635,11 @@ var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onM
6514
6635
  [entries, maxVal, chartH, groupW, barW, barGap, groupCount]
6515
6636
  );
6516
6637
  const barLabelStep = getLabelStep(count, chartW);
6517
- return /* @__PURE__ */ jsxs196("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
6518
- /* @__PURE__ */ jsx305(GridLines, { width, height, chartH, maxVal }),
6638
+ return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
6639
+ /* @__PURE__ */ jsx307(GridLines, { width, height, chartH, maxVal }),
6519
6640
  labels.map((label, i) => {
6520
6641
  if (i % barLabelStep !== 0) return null;
6521
- return /* @__PURE__ */ jsx305("text", { x: PADDING.left + groupW * i + groupW / 2, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
6642
+ return /* @__PURE__ */ jsx307("text", { x: PADDING.left + groupW * i + groupW / 2, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
6522
6643
  }),
6523
6644
  entries.map(([key], di) => {
6524
6645
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
@@ -6527,7 +6648,7 @@ var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onM
6527
6648
  const r2 = Math.min(4, b.w / 2);
6528
6649
  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`;
6529
6650
  const delay = 100 + i * 80;
6530
- return /* @__PURE__ */ jsx305(
6651
+ return /* @__PURE__ */ jsx307(
6531
6652
  "path",
6532
6653
  {
6533
6654
  d,
@@ -6548,11 +6669,11 @@ var BarChart = React5.memo(({ data, labels, width, height, animate, onHover, onM
6548
6669
  ] });
6549
6670
  });
6550
6671
  BarChart.displayName = "BarChart";
6551
- var PieDonutChart = React5.memo(
6672
+ var PieDonutChart = React7.memo(
6552
6673
  ({ data, labels, width, height, animate, isDoughnut, onHover, onMove, onLeave }) => {
6553
- const entries = React5.useMemo(() => Object.entries(data), [data]);
6554
- const values = React5.useMemo(() => entries.flatMap(([, v]) => v), [entries]);
6555
- const total = React5.useMemo(() => values.reduce((a, b) => a + b, 0) || 1, [values]);
6674
+ const entries = React7.useMemo(() => Object.entries(data), [data]);
6675
+ const values = React7.useMemo(() => entries.flatMap(([, v]) => v), [entries]);
6676
+ const total = React7.useMemo(() => values.reduce((a, b) => a + b, 0) || 1, [values]);
6556
6677
  const size = Math.min(width, height);
6557
6678
  const cx = size / 2;
6558
6679
  const cy = size / 2;
@@ -6560,10 +6681,10 @@ var PieDonutChart = React5.memo(
6560
6681
  const innerR = isDoughnut ? r2 * 0.5 : 0;
6561
6682
  const firstKey = entries[0]?.[0] ?? "";
6562
6683
  const colorOffset = hashString(firstKey);
6563
- const maskRef = React5.useRef(null);
6684
+ const maskRef = React7.useRef(null);
6564
6685
  const maskR = r2 + 10;
6565
6686
  const maskCircumference = 2 * Math.PI * maskR;
6566
- React5.useEffect(() => {
6687
+ React7.useEffect(() => {
6567
6688
  if (!animate || !maskRef.current) return;
6568
6689
  const el = maskRef.current;
6569
6690
  el.style.strokeDasharray = `${maskCircumference}`;
@@ -6573,7 +6694,7 @@ var PieDonutChart = React5.memo(
6573
6694
  el.style.strokeDashoffset = "0";
6574
6695
  });
6575
6696
  }, [animate, maskCircumference]);
6576
- const sliceData = React5.useMemo(() => {
6697
+ const sliceData = React7.useMemo(() => {
6577
6698
  let angle0 = -Math.PI / 2;
6578
6699
  let cumulativeAngle = 0;
6579
6700
  return values.map((v, i) => {
@@ -6607,8 +6728,8 @@ var PieDonutChart = React5.memo(
6607
6728
  });
6608
6729
  }, [values, total, cx, cy, r2, innerR, labels]);
6609
6730
  const maskId = `pie-mask-${isDoughnut ? "d" : "p"}`;
6610
- return /* @__PURE__ */ jsxs196("svg", { viewBox: `0 0 ${size} ${size}`, className: "chart-svg chart-pie", children: [
6611
- animate && /* @__PURE__ */ jsx305("defs", { children: /* @__PURE__ */ jsx305("mask", { id: maskId, children: /* @__PURE__ */ jsx305(
6731
+ return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${size} ${size}`, className: "chart-svg chart-pie", children: [
6732
+ animate && /* @__PURE__ */ jsx307("defs", { children: /* @__PURE__ */ jsx307("mask", { id: maskId, children: /* @__PURE__ */ jsx307(
6612
6733
  "circle",
6613
6734
  {
6614
6735
  ref: maskRef,
@@ -6621,7 +6742,7 @@ var PieDonutChart = React5.memo(
6621
6742
  transform: `rotate(-90 ${cx} ${cy})`
6622
6743
  }
6623
6744
  ) }) }),
6624
- /* @__PURE__ */ jsx305("g", { mask: animate ? `url(#${maskId})` : void 0, children: sliceData.map((s, i) => /* @__PURE__ */ jsx305("g", { children: /* @__PURE__ */ jsx305(
6745
+ /* @__PURE__ */ jsx307("g", { mask: animate ? `url(#${maskId})` : void 0, children: sliceData.map((s, i) => /* @__PURE__ */ jsx307("g", { children: /* @__PURE__ */ jsx307(
6625
6746
  "path",
6626
6747
  {
6627
6748
  d: s.d,
@@ -6632,7 +6753,7 @@ var PieDonutChart = React5.memo(
6632
6753
  onMouseLeave: onLeave
6633
6754
  }
6634
6755
  ) }, i)) }),
6635
- sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ jsx305(
6756
+ sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ jsx307(
6636
6757
  "text",
6637
6758
  {
6638
6759
  x: s.lx,
@@ -6650,9 +6771,9 @@ var PieDonutChart = React5.memo(
6650
6771
  );
6651
6772
  PieDonutChart.displayName = "PieDonutChart";
6652
6773
  var TooltipBubble = ({ x, y, containerWidth, children }) => {
6653
- const ref = React5.useRef(null);
6654
- const [adjustedX, setAdjustedX] = React5.useState(x);
6655
- React5.useEffect(() => {
6774
+ const ref = React7.useRef(null);
6775
+ const [adjustedX, setAdjustedX] = React7.useState(x);
6776
+ React7.useEffect(() => {
6656
6777
  const el = ref.current;
6657
6778
  if (!el) return;
6658
6779
  const w = el.offsetWidth;
@@ -6663,7 +6784,7 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
6663
6784
  else if (x + half > containerWidth - margin) nx = containerWidth - half - margin;
6664
6785
  setAdjustedX(nx);
6665
6786
  }, [x, containerWidth]);
6666
- return /* @__PURE__ */ jsx305(
6787
+ return /* @__PURE__ */ jsx307(
6667
6788
  "div",
6668
6789
  {
6669
6790
  ref,
@@ -6673,22 +6794,22 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
6673
6794
  }
6674
6795
  );
6675
6796
  };
6676
- var Chart = React5.memo((props) => {
6797
+ var Chart = React7.memo((props) => {
6677
6798
  const { type, data, labels, tooltip: showTooltip = true } = props;
6678
6799
  const { tooltip, show, hide, move, containerRef } = useChartTooltip(showTooltip);
6679
6800
  const { width, height } = useChartSize(containerRef);
6680
- const stableData = React5.useMemo(() => data, [JSON.stringify(data)]);
6681
- const stableLabels = React5.useMemo(() => labels, [JSON.stringify(labels)]);
6682
- const dataKey = React5.useMemo(() => JSON.stringify(labels), [labels]);
6801
+ const stableData = React7.useMemo(() => data, [JSON.stringify(data)]);
6802
+ const stableLabels = React7.useMemo(() => labels, [JSON.stringify(labels)]);
6803
+ const dataKey = React7.useMemo(() => JSON.stringify(labels), [labels]);
6683
6804
  const animate = useChartAnimation(containerRef, dataKey);
6684
6805
  const ready = width > 0 && height > 0;
6685
- return /* @__PURE__ */ jsxs196("div", { className: "lib-xplat-chart", ref: containerRef, children: [
6686
- ready && type === "line" && /* @__PURE__ */ jsx305(LineChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6687
- ready && type === "curve" && /* @__PURE__ */ jsx305(CurveChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6688
- ready && type === "bar" && /* @__PURE__ */ jsx305(BarChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6689
- ready && type === "pie" && /* @__PURE__ */ jsx305(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6690
- ready && type === "doughnut" && /* @__PURE__ */ jsx305(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, isDoughnut: true, onHover: show, onMove: move, onLeave: hide }),
6691
- tooltip.visible && /* @__PURE__ */ jsx305(TooltipBubble, { x: tooltip.x, y: tooltip.y, containerWidth: width, children: tooltip.content })
6806
+ return /* @__PURE__ */ jsxs197("div", { className: "lib-xplat-chart", ref: containerRef, children: [
6807
+ ready && type === "line" && /* @__PURE__ */ jsx307(LineChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6808
+ ready && type === "curve" && /* @__PURE__ */ jsx307(CurveChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6809
+ ready && type === "bar" && /* @__PURE__ */ jsx307(BarChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6810
+ ready && type === "pie" && /* @__PURE__ */ jsx307(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6811
+ ready && type === "doughnut" && /* @__PURE__ */ jsx307(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, isDoughnut: true, onHover: show, onMove: move, onLeave: hide }),
6812
+ tooltip.visible && /* @__PURE__ */ jsx307(TooltipBubble, { x: tooltip.x, y: tooltip.y, containerWidth: width, children: tooltip.content })
6692
6813
  ] });
6693
6814
  });
6694
6815
  Chart.displayName = "Chart";
@@ -6714,7 +6835,7 @@ import { primitive, semantic } from "@x-plat/tokens-core";
6714
6835
  import { cssVar } from "@x-plat/tokens-core";
6715
6836
 
6716
6837
  // src/components/CheckBox/CheckBox.tsx
6717
- import { jsx as jsx306, jsxs as jsxs197 } from "react/jsx-runtime";
6838
+ import { jsx as jsx308, jsxs as jsxs198 } from "react/jsx-runtime";
6718
6839
  var CheckBox = (props) => {
6719
6840
  const {
6720
6841
  checked,
@@ -6732,8 +6853,8 @@ var CheckBox = (props) => {
6732
6853
  const checkedClasses = `checked`;
6733
6854
  const disabledClasses = "disabled";
6734
6855
  const boxClasses = disabled ? disabledClasses : checked ? checkedClasses : uncheckedClasses;
6735
- return /* @__PURE__ */ jsxs197("label", { className: clsx_default("lib-xplat-checkbox", size, type), children: [
6736
- /* @__PURE__ */ jsx306(
6856
+ return /* @__PURE__ */ jsxs198("label", { className: clsx_default("lib-xplat-checkbox", size, type), children: [
6857
+ /* @__PURE__ */ jsx308(
6737
6858
  "input",
6738
6859
  {
6739
6860
  type: "checkbox",
@@ -6743,44 +6864,44 @@ var CheckBox = (props) => {
6743
6864
  ...rest
6744
6865
  }
6745
6866
  ),
6746
- /* @__PURE__ */ jsx306("span", { className: clsx_default("checkbox", boxClasses), children: /* @__PURE__ */ jsx306("span", { className: clsx_default("check-icon", { visible: checked }), children: /* @__PURE__ */ jsx306(CheckIcon_default, {}) }) }),
6747
- label && /* @__PURE__ */ jsx306("span", { className: "label", children: label })
6867
+ /* @__PURE__ */ jsx308("span", { className: clsx_default("checkbox", boxClasses), children: /* @__PURE__ */ jsx308("span", { className: clsx_default("check-icon", { visible: checked }), children: /* @__PURE__ */ jsx308(CheckIcon_default, {}) }) }),
6868
+ label && /* @__PURE__ */ jsx308("span", { className: "label", children: label })
6748
6869
  ] });
6749
6870
  };
6750
6871
  CheckBox.displayName = "CheckBox";
6751
6872
  var CheckBox_default = CheckBox;
6752
6873
 
6753
6874
  // src/components/Chip/Chip.tsx
6754
- import { jsx as jsx307 } from "react/jsx-runtime";
6875
+ import { jsx as jsx309 } from "react/jsx-runtime";
6755
6876
  var Chip = (props) => {
6756
6877
  const {
6757
6878
  children,
6758
6879
  type = "primary",
6759
6880
  size = "md"
6760
6881
  } = props;
6761
- return /* @__PURE__ */ jsx307("div", { className: clsx_default("lib-xplat-chip", type, size), children });
6882
+ return /* @__PURE__ */ jsx309("div", { className: clsx_default("lib-xplat-chip", type, size), children });
6762
6883
  };
6763
6884
  Chip.displayName = "Chip";
6764
6885
  var Chip_default = Chip;
6765
6886
 
6766
6887
  // src/components/DatePicker/InputDatePicker/index.tsx
6767
- import React11 from "react";
6888
+ import React13 from "react";
6768
6889
 
6769
6890
  // src/components/Input/Input.tsx
6770
- import React6 from "react";
6891
+ import React8 from "react";
6771
6892
 
6772
6893
  // src/components/Input/InputValidations.tsx
6773
- import { jsx as jsx308, jsxs as jsxs198 } from "react/jsx-runtime";
6894
+ import { jsx as jsx310, jsxs as jsxs199 } from "react/jsx-runtime";
6774
6895
  var InputValidations = (props) => {
6775
6896
  const { message, status = "default" } = props;
6776
- return /* @__PURE__ */ jsxs198("div", { className: clsx_default("lib-xplat-input-validation", status), children: [
6777
- /* @__PURE__ */ jsxs198("div", { className: "icon", children: [
6778
- status === "default" && /* @__PURE__ */ jsx308(InfoIcon_default, {}),
6779
- status === "success" && /* @__PURE__ */ jsx308(SuccessIcon_default, {}),
6780
- status === "warning" && /* @__PURE__ */ jsx308(InfoIcon_default, {}),
6781
- status === "error" && /* @__PURE__ */ jsx308(ErrorIcon_default, {})
6897
+ return /* @__PURE__ */ jsxs199("div", { className: clsx_default("lib-xplat-input-validation", status), children: [
6898
+ /* @__PURE__ */ jsxs199("div", { className: "icon", children: [
6899
+ status === "default" && /* @__PURE__ */ jsx310(InfoIcon_default, {}),
6900
+ status === "success" && /* @__PURE__ */ jsx310(SuccessIcon_default, {}),
6901
+ status === "warning" && /* @__PURE__ */ jsx310(InfoIcon_default, {}),
6902
+ status === "error" && /* @__PURE__ */ jsx310(ErrorIcon_default, {})
6782
6903
  ] }),
6783
- /* @__PURE__ */ jsx308("div", { className: "message", children: message })
6904
+ /* @__PURE__ */ jsx310("div", { className: "message", children: message })
6784
6905
  ] });
6785
6906
  };
6786
6907
  InputValidations.displayName = "InputValidations";
@@ -6821,7 +6942,7 @@ var handleTelBackspace = (prevValue, currValue) => {
6821
6942
  };
6822
6943
 
6823
6944
  // src/components/Input/Input.tsx
6824
- import { jsx as jsx309, jsxs as jsxs199 } from "react/jsx-runtime";
6945
+ import { jsx as jsx311, jsxs as jsxs200 } from "react/jsx-runtime";
6825
6946
  import { createElement } from "react";
6826
6947
  var formatValue = (type, value) => {
6827
6948
  if (value === null || value === void 0) return "";
@@ -6870,7 +6991,7 @@ var parseValue = (type, value) => {
6870
6991
  return value;
6871
6992
  }
6872
6993
  };
6873
- var Input = React6.forwardRef((props, ref) => {
6994
+ var Input = React8.forwardRef((props, ref) => {
6874
6995
  const {
6875
6996
  value,
6876
6997
  onChange,
@@ -6896,13 +7017,13 @@ var Input = React6.forwardRef((props, ref) => {
6896
7017
  onChange(event);
6897
7018
  }
6898
7019
  };
6899
- return /* @__PURE__ */ jsxs199("div", { className: "lib-xplat-input-wrap", children: [
6900
- /* @__PURE__ */ jsxs199(
7020
+ return /* @__PURE__ */ jsxs200("div", { className: "lib-xplat-input-wrap", children: [
7021
+ /* @__PURE__ */ jsxs200(
6901
7022
  "div",
6902
7023
  {
6903
7024
  className: clsx_default("lib-xplat-input", size, disabled ? "disabled" : void 0),
6904
7025
  children: [
6905
- /* @__PURE__ */ jsx309(
7026
+ /* @__PURE__ */ jsx311(
6906
7027
  "input",
6907
7028
  {
6908
7029
  ...inputProps,
@@ -6913,11 +7034,11 @@ var Input = React6.forwardRef((props, ref) => {
6913
7034
  onChange: handleChange
6914
7035
  }
6915
7036
  ),
6916
- suffix && /* @__PURE__ */ jsx309("div", { className: "suffix", children: suffix })
7037
+ suffix && /* @__PURE__ */ jsx311("div", { className: "suffix", children: suffix })
6917
7038
  ]
6918
7039
  }
6919
7040
  ),
6920
- validations && /* @__PURE__ */ jsx309("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ createElement(
7041
+ validations && /* @__PURE__ */ jsx311("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ createElement(
6921
7042
  InputValidations_default,
6922
7043
  {
6923
7044
  ...validation,
@@ -6930,20 +7051,20 @@ Input.displayName = "Input";
6930
7051
  var Input_default = Input;
6931
7052
 
6932
7053
  // src/components/Input/PasswordInput/PasswordInput.tsx
6933
- import React7 from "react";
6934
- import { jsx as jsx310 } from "react/jsx-runtime";
6935
- var PasswordInput = React7.forwardRef(
7054
+ import React9 from "react";
7055
+ import { jsx as jsx312 } from "react/jsx-runtime";
7056
+ var PasswordInput = React9.forwardRef(
6936
7057
  (props, ref) => {
6937
7058
  const { reg: _reg, ...inputProps } = props;
6938
- const [isView, setIsView] = React7.useState(false);
7059
+ const [isView, setIsView] = React9.useState(false);
6939
7060
  const handleChangeView = () => {
6940
7061
  setIsView((prev) => !prev);
6941
7062
  };
6942
- return /* @__PURE__ */ jsx310(
7063
+ return /* @__PURE__ */ jsx312(
6943
7064
  Input_default,
6944
7065
  {
6945
7066
  ...inputProps,
6946
- suffix: /* @__PURE__ */ jsx310("div", { className: "wrapper pointer", onClick: handleChangeView, children: isView ? /* @__PURE__ */ jsx310(OpenEyeIcon_default, {}) : /* @__PURE__ */ jsx310(CloseEyeIcon_default, {}) }),
7067
+ suffix: /* @__PURE__ */ jsx312("div", { className: "wrapper pointer", onClick: handleChangeView, children: isView ? /* @__PURE__ */ jsx312(OpenEyeIcon_default, {}) : /* @__PURE__ */ jsx312(CloseEyeIcon_default, {}) }),
6947
7068
  type: isView ? "text" : "password",
6948
7069
  ref
6949
7070
  }
@@ -6954,17 +7075,17 @@ PasswordInput.displayName = "PasswordInput";
6954
7075
  var PasswordInput_default = PasswordInput;
6955
7076
 
6956
7077
  // src/components/Modal/Modal.tsx
6957
- import React9 from "react";
7078
+ import React11 from "react";
6958
7079
  import { createPortal } from "react-dom";
6959
7080
 
6960
7081
  // src/tokens/hooks/Portal.tsx
6961
- import React8 from "react";
7082
+ import React10 from "react";
6962
7083
  import ReactDOM from "react-dom";
6963
- import { jsx as jsx311 } from "react/jsx-runtime";
6964
- var PortalContainerContext = React8.createContext(null);
6965
- var PortalProvider = ({ container, children }) => /* @__PURE__ */ jsx311(PortalContainerContext.Provider, { value: container, children });
7084
+ import { jsx as jsx313 } from "react/jsx-runtime";
7085
+ var PortalContainerContext = React10.createContext(null);
7086
+ var PortalProvider = ({ container, children }) => /* @__PURE__ */ jsx313(PortalContainerContext.Provider, { value: container, children });
6966
7087
  var Portal = ({ children }) => {
6967
- const contextContainer = React8.useContext(PortalContainerContext);
7088
+ const contextContainer = React10.useContext(PortalContainerContext);
6968
7089
  if (typeof document === "undefined") return null;
6969
7090
  const container = contextContainer ?? document.body;
6970
7091
  return ReactDOM.createPortal(children, container);
@@ -6973,14 +7094,14 @@ Portal.displayName = "Portal";
6973
7094
  var Portal_default = Portal;
6974
7095
 
6975
7096
  // src/components/Modal/Modal.tsx
6976
- import { jsx as jsx312 } from "react/jsx-runtime";
7097
+ import { jsx as jsx314 } from "react/jsx-runtime";
6977
7098
  var ANIMATION_DURATION_MS = 200;
6978
7099
  var Modal = (props) => {
6979
7100
  const { isOpen, onClose, children } = props;
6980
- const [mounted, setMounted] = React9.useState(false);
6981
- const [visible, setVisible] = React9.useState(false);
6982
- const boxRef = React9.useRef(null);
6983
- React9.useEffect(() => {
7101
+ const [mounted, setMounted] = React11.useState(false);
7102
+ const [visible, setVisible] = React11.useState(false);
7103
+ const boxRef = React11.useRef(null);
7104
+ React11.useEffect(() => {
6984
7105
  if (isOpen) {
6985
7106
  setMounted(true);
6986
7107
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -6994,12 +7115,12 @@ var Modal = (props) => {
6994
7115
  if (!mounted) return null;
6995
7116
  const stateClass = visible ? "enter" : "exit";
6996
7117
  return createPortal(
6997
- /* @__PURE__ */ jsx312(
7118
+ /* @__PURE__ */ jsx314(
6998
7119
  "div",
6999
7120
  {
7000
7121
  className: clsx_default("lib-xplat-modal", "dim", stateClass),
7001
7122
  onClick: onClose,
7002
- children: /* @__PURE__ */ jsx312(
7123
+ children: /* @__PURE__ */ jsx314(
7003
7124
  "div",
7004
7125
  {
7005
7126
  ref: boxRef,
@@ -7007,7 +7128,7 @@ var Modal = (props) => {
7007
7128
  role: "dialog",
7008
7129
  "aria-modal": "true",
7009
7130
  onClick: (e) => e.stopPropagation(),
7010
- children: /* @__PURE__ */ jsx312(PortalProvider, { container: boxRef.current, children })
7131
+ children: /* @__PURE__ */ jsx314(PortalProvider, { container: boxRef.current, children })
7011
7132
  }
7012
7133
  )
7013
7134
  }
@@ -7019,9 +7140,9 @@ Modal.displayName = "Modal";
7019
7140
  var Modal_default = Modal;
7020
7141
 
7021
7142
  // src/components/DatePicker/SingleDatePicker/index.tsx
7022
- import React10 from "react";
7023
- import { Fragment as Fragment3, jsx as jsx313, jsxs as jsxs200 } from "react/jsx-runtime";
7024
- var DayCell2 = React10.memo(
7143
+ import React12 from "react";
7144
+ import { Fragment as Fragment3, jsx as jsx315, jsxs as jsxs201 } from "react/jsx-runtime";
7145
+ var DayCell2 = React12.memo(
7025
7146
  ({
7026
7147
  day,
7027
7148
  disabled,
@@ -7031,7 +7152,7 @@ var DayCell2 = React10.memo(
7031
7152
  isEnd,
7032
7153
  inRange,
7033
7154
  onSelect
7034
- }) => /* @__PURE__ */ jsx313(
7155
+ }) => /* @__PURE__ */ jsx315(
7035
7156
  "button",
7036
7157
  {
7037
7158
  type: "button",
@@ -7073,26 +7194,26 @@ var SingleDatePicker = (props) => {
7073
7194
  initialYear,
7074
7195
  initialMonth
7075
7196
  );
7076
- const [pickerMode, setPickerMode] = React10.useState("days");
7077
- const [yearRangeStart, setYearRangeStart] = React10.useState(
7197
+ const [pickerMode, setPickerMode] = React12.useState("days");
7198
+ const [yearRangeStart, setYearRangeStart] = React12.useState(
7078
7199
  Math.floor((initialYear ?? (/* @__PURE__ */ new Date()).getFullYear()) / 12) * 12
7079
7200
  );
7080
- const minTime = React10.useMemo(
7201
+ const minTime = React12.useMemo(
7081
7202
  () => minDate ? new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()).getTime() : -Infinity,
7082
7203
  [minDate]
7083
7204
  );
7084
- const maxTime = React10.useMemo(
7205
+ const maxTime = React12.useMemo(
7085
7206
  () => maxDate ? new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()).getTime() : Infinity,
7086
7207
  [maxDate]
7087
7208
  );
7088
- const highlightSet = React10.useMemo(() => {
7209
+ const highlightSet = React12.useMemo(() => {
7089
7210
  const set = /* @__PURE__ */ new Set();
7090
7211
  for (const h of highlightDates) {
7091
7212
  set.add(`${h.getFullYear()}-${h.getMonth()}-${h.getDate()}`);
7092
7213
  }
7093
7214
  return set;
7094
7215
  }, [highlightDates]);
7095
- const handleSelect = React10.useCallback(
7216
+ const handleSelect = React12.useCallback(
7096
7217
  (date) => {
7097
7218
  onChange?.(date);
7098
7219
  },
@@ -7129,20 +7250,20 @@ var SingleDatePicker = (props) => {
7129
7250
  const monthLabels = MONTH_LABELS[locale];
7130
7251
  const titleText = pickerMode === "days" ? locale === "ko" ? `${year}\uB144 ${monthLabels[month]}` : `${monthLabels[month]} ${year}` : pickerMode === "months" ? `${year}` : `${yearRangeStart} - ${yearRangeStart + 11}`;
7131
7252
  const hasRange = rangeStart != null && rangeEnd != null;
7132
- return /* @__PURE__ */ jsxs200(
7253
+ return /* @__PURE__ */ jsxs201(
7133
7254
  "div",
7134
7255
  {
7135
7256
  className: clsx_default("lib-xplat-datepicker", "single"),
7136
7257
  children: [
7137
- /* @__PURE__ */ jsxs200("div", { className: "datepicker-header", children: [
7138
- /* @__PURE__ */ jsx313("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ jsx313(ChevronLeftIcon_default, {}) }),
7139
- /* @__PURE__ */ jsx313("button", { className: "datepicker-title", onClick: handleTitleClick, type: "button", children: titleText }),
7140
- /* @__PURE__ */ jsx313("button", { className: "datepicker-nav", onClick: handleNext, type: "button", children: /* @__PURE__ */ jsx313(ChevronRightIcon_default, {}) })
7258
+ /* @__PURE__ */ jsxs201("div", { className: "datepicker-header", children: [
7259
+ /* @__PURE__ */ jsx315("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ jsx315(ChevronLeftIcon_default, {}) }),
7260
+ /* @__PURE__ */ jsx315("button", { className: "datepicker-title", onClick: handleTitleClick, type: "button", children: titleText }),
7261
+ /* @__PURE__ */ jsx315("button", { className: "datepicker-nav", onClick: handleNext, type: "button", children: /* @__PURE__ */ jsx315(ChevronRightIcon_default, {}) })
7141
7262
  ] }),
7142
- /* @__PURE__ */ jsxs200("div", { className: "datepicker-body", children: [
7143
- pickerMode === "years" && /* @__PURE__ */ jsx313("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
7263
+ /* @__PURE__ */ jsxs201("div", { className: "datepicker-body", children: [
7264
+ pickerMode === "years" && /* @__PURE__ */ jsx315("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
7144
7265
  const y = yearRangeStart + i;
7145
- return /* @__PURE__ */ jsx313(
7266
+ return /* @__PURE__ */ jsx315(
7146
7267
  "button",
7147
7268
  {
7148
7269
  type: "button",
@@ -7153,7 +7274,7 @@ var SingleDatePicker = (props) => {
7153
7274
  y
7154
7275
  );
7155
7276
  }) }),
7156
- pickerMode === "months" && /* @__PURE__ */ jsx313("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ jsx313(
7277
+ pickerMode === "months" && /* @__PURE__ */ jsx315("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ jsx315(
7157
7278
  "button",
7158
7279
  {
7159
7280
  type: "button",
@@ -7163,8 +7284,8 @@ var SingleDatePicker = (props) => {
7163
7284
  },
7164
7285
  i
7165
7286
  )) }),
7166
- pickerMode === "days" && /* @__PURE__ */ jsxs200(Fragment3, { children: [
7167
- /* @__PURE__ */ jsx313("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ jsx313(
7287
+ pickerMode === "days" && /* @__PURE__ */ jsxs201(Fragment3, { children: [
7288
+ /* @__PURE__ */ jsx315("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ jsx315(
7168
7289
  "div",
7169
7290
  {
7170
7291
  className: clsx_default(
@@ -7176,7 +7297,7 @@ var SingleDatePicker = (props) => {
7176
7297
  },
7177
7298
  label
7178
7299
  )) }),
7179
- /* @__PURE__ */ jsx313("div", { className: "datepicker-grid", children: days.map((day, idx) => {
7300
+ /* @__PURE__ */ jsx315("div", { className: "datepicker-grid", children: days.map((day, idx) => {
7180
7301
  const t = day.date.getTime();
7181
7302
  const disabled = t < minTime || t > maxTime;
7182
7303
  const selected = value ? isSameDay(day.date, value) : false;
@@ -7186,7 +7307,7 @@ var SingleDatePicker = (props) => {
7186
7307
  const isStart = hasRange ? isSameDay(day.date, rangeStart) : false;
7187
7308
  const isEnd = hasRange ? isSameDay(day.date, rangeEnd) : false;
7188
7309
  const inRangeVal = hasRange ? isInRange(day.date, rangeStart, rangeEnd) : false;
7189
- return /* @__PURE__ */ jsx313(
7310
+ return /* @__PURE__ */ jsx315(
7190
7311
  DayCell2,
7191
7312
  {
7192
7313
  day,
@@ -7211,7 +7332,7 @@ SingleDatePicker.displayName = "SingleDatePicker";
7211
7332
  var SingleDatePicker_default = SingleDatePicker;
7212
7333
 
7213
7334
  // src/components/DatePicker/InputDatePicker/index.tsx
7214
- import { jsx as jsx314, jsxs as jsxs201 } from "react/jsx-runtime";
7335
+ import { jsx as jsx316, jsxs as jsxs202 } from "react/jsx-runtime";
7215
7336
  var formatDate = (date) => {
7216
7337
  if (!date || !(date instanceof Date) || isNaN(date.getTime())) return "";
7217
7338
  const y = date.getFullYear();
@@ -7221,8 +7342,8 @@ var formatDate = (date) => {
7221
7342
  };
7222
7343
  var InputDatePicker = (props) => {
7223
7344
  const { value, onChange, minDate, maxDate, disabled, locale = "ko", placeholder } = props;
7224
- const [isOpen, setIsOpen] = React11.useState(false);
7225
- const [tempDate, setTempDate] = React11.useState(value ?? /* @__PURE__ */ new Date());
7345
+ const [isOpen, setIsOpen] = React13.useState(false);
7346
+ const [tempDate, setTempDate] = React13.useState(value ?? /* @__PURE__ */ new Date());
7226
7347
  const handleOpen = () => {
7227
7348
  if (disabled) return;
7228
7349
  setTempDate(value ?? /* @__PURE__ */ new Date());
@@ -7238,19 +7359,19 @@ var InputDatePicker = (props) => {
7238
7359
  const handleClose = () => {
7239
7360
  setIsOpen(false);
7240
7361
  };
7241
- return /* @__PURE__ */ jsxs201("div", { className: clsx_default("lib-xplat-datepicker input-datepicker", disabled && "disabled"), children: [
7242
- /* @__PURE__ */ jsx314("div", { className: "input-datepicker-trigger", onClick: handleOpen, children: /* @__PURE__ */ jsx314(
7362
+ return /* @__PURE__ */ jsxs202("div", { className: clsx_default("lib-xplat-datepicker input-datepicker", disabled && "disabled"), children: [
7363
+ /* @__PURE__ */ jsx316("div", { className: "input-datepicker-trigger", onClick: handleOpen, children: /* @__PURE__ */ jsx316(
7243
7364
  Input_default,
7244
7365
  {
7245
7366
  value: formatDate(value),
7246
7367
  placeholder,
7247
- suffix: /* @__PURE__ */ jsx314(CalenderIcon_default, {}),
7368
+ suffix: /* @__PURE__ */ jsx316(CalenderIcon_default, {}),
7248
7369
  disabled,
7249
7370
  readOnly: true
7250
7371
  }
7251
7372
  ) }),
7252
- /* @__PURE__ */ jsx314(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs201("div", { className: "lib-xplat-popup-datepicker-card", children: [
7253
- /* @__PURE__ */ jsx314("div", { className: "popup-datepicker-content", children: /* @__PURE__ */ jsx314(
7373
+ /* @__PURE__ */ jsx316(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs202("div", { className: "lib-xplat-popup-datepicker-card", children: [
7374
+ /* @__PURE__ */ jsx316("div", { className: "popup-datepicker-content", children: /* @__PURE__ */ jsx316(
7254
7375
  SingleDatePicker_default,
7255
7376
  {
7256
7377
  value: tempDate,
@@ -7260,9 +7381,9 @@ var InputDatePicker = (props) => {
7260
7381
  locale
7261
7382
  }
7262
7383
  ) }),
7263
- /* @__PURE__ */ jsxs201("div", { className: "popup-datepicker-footer", children: [
7264
- /* @__PURE__ */ jsx314(Button_default, { type: "secondary", onClick: handleClose, children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel" }),
7265
- /* @__PURE__ */ jsx314(Button_default, { type: "primary", onClick: handleApply, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
7384
+ /* @__PURE__ */ jsxs202("div", { className: "popup-datepicker-footer", children: [
7385
+ /* @__PURE__ */ jsx316(Button_default, { type: "secondary", onClick: handleClose, children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel" }),
7386
+ /* @__PURE__ */ jsx316(Button_default, { type: "primary", onClick: handleApply, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
7266
7387
  ] })
7267
7388
  ] }) })
7268
7389
  ] });
@@ -7271,20 +7392,20 @@ InputDatePicker.displayName = "InputDatePicker";
7271
7392
  var InputDatePicker_default = InputDatePicker;
7272
7393
 
7273
7394
  // src/components/DatePicker/PopupPicker/index.tsx
7274
- import React15 from "react";
7395
+ import React17 from "react";
7275
7396
 
7276
7397
  // src/components/DatePicker/RangePicker/index.tsx
7277
- import React14 from "react";
7398
+ import React16 from "react";
7278
7399
 
7279
7400
  // src/components/Tab/Tab.tsx
7280
- import React13 from "react";
7401
+ import React15 from "react";
7281
7402
 
7282
7403
  // src/components/Tab/TabItem.tsx
7283
- import React12 from "react";
7284
- import { jsx as jsx315 } from "react/jsx-runtime";
7285
- var TabItem = React12.forwardRef((props, ref) => {
7404
+ import React14 from "react";
7405
+ import { jsx as jsx317 } from "react/jsx-runtime";
7406
+ var TabItem = React14.forwardRef((props, ref) => {
7286
7407
  const { isActive, title, onClick } = props;
7287
- return /* @__PURE__ */ jsx315(
7408
+ return /* @__PURE__ */ jsx317(
7288
7409
  "div",
7289
7410
  {
7290
7411
  ref,
@@ -7298,25 +7419,25 @@ TabItem.displayName = "TabItem";
7298
7419
  var TabItem_default = TabItem;
7299
7420
 
7300
7421
  // src/components/Tab/Tab.tsx
7301
- import { jsx as jsx316, jsxs as jsxs202 } from "react/jsx-runtime";
7422
+ import { jsx as jsx318, jsxs as jsxs203 } from "react/jsx-runtime";
7302
7423
  var Tab = (props) => {
7303
7424
  const { activeIndex, onChange, tabs, type, size = "md" } = props;
7304
- const [underlineStyle, setUnderlineStyle] = React13.useState({
7425
+ const [underlineStyle, setUnderlineStyle] = React15.useState({
7305
7426
  left: 0,
7306
7427
  width: 0
7307
7428
  });
7308
- const itemRefs = React13.useRef([]);
7429
+ const itemRefs = React15.useRef([]);
7309
7430
  const handleChangeActiveTab = (tabItem, tabIdx) => {
7310
7431
  onChange(tabItem, tabIdx);
7311
7432
  };
7312
- React13.useEffect(() => {
7433
+ React15.useEffect(() => {
7313
7434
  const el = itemRefs.current[activeIndex];
7314
7435
  if (el) {
7315
7436
  setUnderlineStyle({ left: el.offsetLeft, width: el.offsetWidth });
7316
7437
  }
7317
7438
  }, [activeIndex, tabs.length]);
7318
- return /* @__PURE__ */ jsxs202("div", { className: clsx_default("lib-xplat-tab", `type-${type}`, size), children: [
7319
- tabs.map((tab, idx) => /* @__PURE__ */ jsx316(
7439
+ return /* @__PURE__ */ jsxs203("div", { className: clsx_default("lib-xplat-tab", `type-${type}`, size), children: [
7440
+ tabs.map((tab, idx) => /* @__PURE__ */ jsx318(
7320
7441
  TabItem_default,
7321
7442
  {
7322
7443
  onClick: () => handleChangeActiveTab(tab, idx),
@@ -7328,7 +7449,7 @@ var Tab = (props) => {
7328
7449
  },
7329
7450
  `${tab.value}_${idx}`
7330
7451
  )),
7331
- type === "toggle" && /* @__PURE__ */ jsx316(
7452
+ type === "toggle" && /* @__PURE__ */ jsx318(
7332
7453
  "div",
7333
7454
  {
7334
7455
  className: "tab-toggle-underline",
@@ -7344,7 +7465,7 @@ Tab.displayName = "Tab";
7344
7465
  var Tab_default = Tab;
7345
7466
 
7346
7467
  // src/components/DatePicker/RangePicker/index.tsx
7347
- import { jsx as jsx317, jsxs as jsxs203 } from "react/jsx-runtime";
7468
+ import { jsx as jsx319, jsxs as jsxs204 } from "react/jsx-runtime";
7348
7469
  var RangePicker = (props) => {
7349
7470
  const {
7350
7471
  startDate,
@@ -7354,7 +7475,7 @@ var RangePicker = (props) => {
7354
7475
  maxDate,
7355
7476
  locale = "ko"
7356
7477
  } = props;
7357
- const [activeTab, setActiveTab] = React14.useState("start");
7478
+ const [activeTab, setActiveTab] = React16.useState("start");
7358
7479
  const handleStartChange = (date) => {
7359
7480
  if (!date) return;
7360
7481
  const newStart = date > endDate ? endDate : date;
@@ -7367,8 +7488,8 @@ var RangePicker = (props) => {
7367
7488
  };
7368
7489
  const startMaxDate = maxDate && endDate < maxDate ? endDate : endDate;
7369
7490
  const endMinDate = minDate && startDate > minDate ? startDate : startDate;
7370
- return /* @__PURE__ */ jsxs203("div", { className: clsx_default("lib-xplat-datepicker", "range"), children: [
7371
- /* @__PURE__ */ jsx317("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ jsx317(
7491
+ return /* @__PURE__ */ jsxs204("div", { className: clsx_default("lib-xplat-datepicker", "range"), children: [
7492
+ /* @__PURE__ */ jsx319("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ jsx319(
7372
7493
  Tab_default,
7373
7494
  {
7374
7495
  activeIndex: activeTab === "start" ? 0 : 1,
@@ -7381,8 +7502,8 @@ var RangePicker = (props) => {
7381
7502
  size: "sm"
7382
7503
  }
7383
7504
  ) }),
7384
- /* @__PURE__ */ jsxs203("div", { className: "datepicker-range-panels", children: [
7385
- /* @__PURE__ */ jsx317(
7505
+ /* @__PURE__ */ jsxs204("div", { className: "datepicker-range-panels", children: [
7506
+ /* @__PURE__ */ jsx319(
7386
7507
  SingleDatePicker_default,
7387
7508
  {
7388
7509
  value: startDate,
@@ -7394,7 +7515,7 @@ var RangePicker = (props) => {
7394
7515
  locale
7395
7516
  }
7396
7517
  ),
7397
- /* @__PURE__ */ jsx317(
7518
+ /* @__PURE__ */ jsx319(
7398
7519
  SingleDatePicker_default,
7399
7520
  {
7400
7521
  value: endDate,
@@ -7407,7 +7528,7 @@ var RangePicker = (props) => {
7407
7528
  }
7408
7529
  )
7409
7530
  ] }),
7410
- /* @__PURE__ */ jsx317("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ jsx317(
7531
+ /* @__PURE__ */ jsx319("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ jsx319(
7411
7532
  SingleDatePicker_default,
7412
7533
  {
7413
7534
  value: startDate,
@@ -7418,7 +7539,7 @@ var RangePicker = (props) => {
7418
7539
  rangeEnd: endDate,
7419
7540
  locale
7420
7541
  }
7421
- ) : /* @__PURE__ */ jsx317(
7542
+ ) : /* @__PURE__ */ jsx319(
7422
7543
  SingleDatePicker_default,
7423
7544
  {
7424
7545
  value: endDate,
@@ -7436,10 +7557,10 @@ RangePicker.displayName = "RangePicker";
7436
7557
  var RangePicker_default = RangePicker;
7437
7558
 
7438
7559
  // src/components/DatePicker/PopupPicker/index.tsx
7439
- import { jsx as jsx318, jsxs as jsxs204 } from "react/jsx-runtime";
7560
+ import { jsx as jsx320, jsxs as jsxs205 } from "react/jsx-runtime";
7440
7561
  var PopupPicker = (props) => {
7441
7562
  const { component, type, locale } = props;
7442
- const [isOpen, setIsOpen] = React15.useState(false);
7563
+ const [isOpen, setIsOpen] = React17.useState(false);
7443
7564
  const handleClick = () => setIsOpen(true);
7444
7565
  const handleClose = () => setIsOpen(false);
7445
7566
  const handleSingleChange = (date) => {
@@ -7447,11 +7568,11 @@ var PopupPicker = (props) => {
7447
7568
  props.onChange?.(date);
7448
7569
  handleClose();
7449
7570
  };
7450
- return /* @__PURE__ */ jsxs204("div", { className: "lib-xplat-popup-datepicker", children: [
7451
- React15.cloneElement(component, { onClick: handleClick }),
7452
- /* @__PURE__ */ jsx318(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs204("div", { className: clsx_default("lib-xplat-popup-datepicker-card", type === "range" && "range-mode"), children: [
7453
- /* @__PURE__ */ jsxs204("div", { className: "popup-datepicker-content", children: [
7454
- type === "single" && /* @__PURE__ */ jsx318(
7571
+ return /* @__PURE__ */ jsxs205("div", { className: "lib-xplat-popup-datepicker", children: [
7572
+ React17.cloneElement(component, { onClick: handleClick }),
7573
+ /* @__PURE__ */ jsx320(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs205("div", { className: clsx_default("lib-xplat-popup-datepicker-card", type === "range" && "range-mode"), children: [
7574
+ /* @__PURE__ */ jsxs205("div", { className: "popup-datepicker-content", children: [
7575
+ type === "single" && /* @__PURE__ */ jsx320(
7455
7576
  SingleDatePicker_default,
7456
7577
  {
7457
7578
  value: props.value,
@@ -7461,7 +7582,7 @@ var PopupPicker = (props) => {
7461
7582
  locale
7462
7583
  }
7463
7584
  ),
7464
- type === "range" && /* @__PURE__ */ jsx318(
7585
+ type === "range" && /* @__PURE__ */ jsx320(
7465
7586
  RangePicker_default,
7466
7587
  {
7467
7588
  startDate: props.startDate,
@@ -7473,8 +7594,8 @@ var PopupPicker = (props) => {
7473
7594
  }
7474
7595
  )
7475
7596
  ] }),
7476
- /* @__PURE__ */ jsxs204("div", { className: "popup-datepicker-footer", children: [
7477
- /* @__PURE__ */ jsx318(
7597
+ /* @__PURE__ */ jsxs205("div", { className: "popup-datepicker-footer", children: [
7598
+ /* @__PURE__ */ jsx320(
7478
7599
  Button_default,
7479
7600
  {
7480
7601
  type: "secondary",
@@ -7482,7 +7603,7 @@ var PopupPicker = (props) => {
7482
7603
  children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel"
7483
7604
  }
7484
7605
  ),
7485
- /* @__PURE__ */ jsx318(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
7606
+ /* @__PURE__ */ jsx320(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
7486
7607
  ] })
7487
7608
  ] }) })
7488
7609
  ] });
@@ -7491,10 +7612,10 @@ PopupPicker.displayName = "PopupPicker";
7491
7612
  var PopupPicker_default = PopupPicker;
7492
7613
 
7493
7614
  // src/components/Divider/Divider.tsx
7494
- import { jsx as jsx319 } from "react/jsx-runtime";
7615
+ import { jsx as jsx321 } from "react/jsx-runtime";
7495
7616
  var Divider = (props) => {
7496
7617
  const { orientation = "horizontal" } = props;
7497
- return /* @__PURE__ */ jsx319(
7618
+ return /* @__PURE__ */ jsx321(
7498
7619
  "div",
7499
7620
  {
7500
7621
  className: clsx_default("lib-xplat-divider", orientation),
@@ -7507,15 +7628,15 @@ Divider.displayName = "Divider";
7507
7628
  var Divider_default = Divider;
7508
7629
 
7509
7630
  // src/components/Drawer/Drawer.tsx
7510
- import React16 from "react";
7631
+ import React18 from "react";
7511
7632
  import { createPortal as createPortal2 } from "react-dom";
7512
- import { jsx as jsx320, jsxs as jsxs205 } from "react/jsx-runtime";
7633
+ import { jsx as jsx322, jsxs as jsxs206 } from "react/jsx-runtime";
7513
7634
  var ANIMATION_DURATION_MS2 = 250;
7514
7635
  var Drawer = (props) => {
7515
7636
  const { isOpen, onClose, placement = "right", size = "md", title, children } = props;
7516
- const [mounted, setMounted] = React16.useState(false);
7517
- const [visible, setVisible] = React16.useState(false);
7518
- React16.useEffect(() => {
7637
+ const [mounted, setMounted] = React18.useState(false);
7638
+ const [visible, setVisible] = React18.useState(false);
7639
+ React18.useEffect(() => {
7519
7640
  if (isOpen) {
7520
7641
  setMounted(true);
7521
7642
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -7529,12 +7650,12 @@ var Drawer = (props) => {
7529
7650
  if (!mounted) return null;
7530
7651
  const stateClass = visible ? "enter" : "exit";
7531
7652
  return createPortal2(
7532
- /* @__PURE__ */ jsx320(
7653
+ /* @__PURE__ */ jsx322(
7533
7654
  "div",
7534
7655
  {
7535
7656
  className: clsx_default("lib-xplat-drawer-overlay", stateClass),
7536
7657
  onClick: onClose,
7537
- children: /* @__PURE__ */ jsxs205(
7658
+ children: /* @__PURE__ */ jsxs206(
7538
7659
  "div",
7539
7660
  {
7540
7661
  className: clsx_default("lib-xplat-drawer", placement, size, stateClass),
@@ -7542,11 +7663,11 @@ var Drawer = (props) => {
7542
7663
  "aria-modal": "true",
7543
7664
  onClick: (e) => e.stopPropagation(),
7544
7665
  children: [
7545
- title && /* @__PURE__ */ jsxs205("div", { className: "drawer-header", children: [
7546
- /* @__PURE__ */ jsx320("span", { className: "drawer-title", children: title }),
7547
- /* @__PURE__ */ jsx320("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
7666
+ title && /* @__PURE__ */ jsxs206("div", { className: "drawer-header", children: [
7667
+ /* @__PURE__ */ jsx322("span", { className: "drawer-title", children: title }),
7668
+ /* @__PURE__ */ jsx322("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
7548
7669
  ] }),
7549
- /* @__PURE__ */ jsx320("div", { className: "drawer-body", children })
7670
+ /* @__PURE__ */ jsx322("div", { className: "drawer-body", children })
7550
7671
  ]
7551
7672
  }
7552
7673
  )
@@ -7559,16 +7680,16 @@ Drawer.displayName = "Drawer";
7559
7680
  var Drawer_default = Drawer;
7560
7681
 
7561
7682
  // src/components/Dropdown/Dropdown.tsx
7562
- import React19 from "react";
7683
+ import React21 from "react";
7563
7684
 
7564
7685
  // src/tokens/hooks/useAutoPosition.ts
7565
- import React17 from "react";
7686
+ import React19 from "react";
7566
7687
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
7567
- const [position, setPosition] = React17.useState({
7688
+ const [position, setPosition] = React19.useState({
7568
7689
  position: {},
7569
7690
  direction: "bottom"
7570
7691
  });
7571
- const calculatePosition = React17.useCallback(() => {
7692
+ const calculatePosition = React19.useCallback(() => {
7572
7693
  if (!triggerRef.current || !popRef.current) return;
7573
7694
  const triggerRect = triggerRef.current.getBoundingClientRect();
7574
7695
  const popW = popRef.current.offsetWidth;
@@ -7595,13 +7716,13 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
7595
7716
  direction
7596
7717
  });
7597
7718
  }, [triggerRef, popRef]);
7598
- React17.useLayoutEffect(() => {
7719
+ React19.useLayoutEffect(() => {
7599
7720
  if (!enabled) return;
7600
7721
  calculatePosition();
7601
7722
  const raf = requestAnimationFrame(calculatePosition);
7602
7723
  return () => cancelAnimationFrame(raf);
7603
7724
  }, [calculatePosition, enabled]);
7604
- React17.useEffect(() => {
7725
+ React19.useEffect(() => {
7605
7726
  if (!enabled || !popRef.current) return;
7606
7727
  const observer = new ResizeObserver(() => {
7607
7728
  calculatePosition();
@@ -7609,7 +7730,7 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
7609
7730
  observer.observe(popRef.current);
7610
7731
  return () => observer.disconnect();
7611
7732
  }, [calculatePosition, enabled, popRef]);
7612
- React17.useEffect(() => {
7733
+ React19.useEffect(() => {
7613
7734
  if (!enabled) return;
7614
7735
  window.addEventListener("resize", calculatePosition);
7615
7736
  window.addEventListener("scroll", calculatePosition, true);
@@ -7623,9 +7744,9 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
7623
7744
  var useAutoPosition_default = useAutoPosition;
7624
7745
 
7625
7746
  // src/tokens/hooks/useClickOutside.ts
7626
- import React18 from "react";
7747
+ import React20 from "react";
7627
7748
  var useClickOutside = (refs, handler, enabled = true) => {
7628
- React18.useEffect(() => {
7749
+ React20.useEffect(() => {
7629
7750
  if (!enabled) return;
7630
7751
  const refArray = Array.isArray(refs) ? refs : [refs];
7631
7752
  const listener = (event) => {
@@ -7648,17 +7769,17 @@ var useClickOutside = (refs, handler, enabled = true) => {
7648
7769
  var useClickOutside_default = useClickOutside;
7649
7770
 
7650
7771
  // src/components/Dropdown/Dropdown.tsx
7651
- import { jsx as jsx321, jsxs as jsxs206 } from "react/jsx-runtime";
7772
+ import { jsx as jsx323, jsxs as jsxs207 } from "react/jsx-runtime";
7652
7773
  var Dropdown = (props) => {
7653
7774
  const { items, children } = props;
7654
- const [isOpen, setIsOpen] = React19.useState(false);
7655
- const [mounted, setMounted] = React19.useState(false);
7656
- const [visible, setVisible] = React19.useState(false);
7657
- const triggerRef = React19.useRef(null);
7658
- const menuRef = React19.useRef(null);
7775
+ const [isOpen, setIsOpen] = React21.useState(false);
7776
+ const [mounted, setMounted] = React21.useState(false);
7777
+ const [visible, setVisible] = React21.useState(false);
7778
+ const triggerRef = React21.useRef(null);
7779
+ const menuRef = React21.useRef(null);
7659
7780
  const { position, direction } = useAutoPosition_default(triggerRef, menuRef, mounted);
7660
7781
  useClickOutside_default([triggerRef, menuRef], () => setIsOpen(false), isOpen);
7661
- React19.useEffect(() => {
7782
+ React21.useEffect(() => {
7662
7783
  if (isOpen) {
7663
7784
  setMounted(true);
7664
7785
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -7673,8 +7794,8 @@ var Dropdown = (props) => {
7673
7794
  item.onClick?.();
7674
7795
  setIsOpen(false);
7675
7796
  };
7676
- return /* @__PURE__ */ jsxs206("div", { className: "lib-xplat-dropdown", children: [
7677
- /* @__PURE__ */ jsx321(
7797
+ return /* @__PURE__ */ jsxs207("div", { className: "lib-xplat-dropdown", children: [
7798
+ /* @__PURE__ */ jsx323(
7678
7799
  "div",
7679
7800
  {
7680
7801
  ref: triggerRef,
@@ -7683,14 +7804,14 @@ var Dropdown = (props) => {
7683
7804
  children
7684
7805
  }
7685
7806
  ),
7686
- mounted && /* @__PURE__ */ jsx321(Portal_default, { children: /* @__PURE__ */ jsx321(
7807
+ mounted && /* @__PURE__ */ jsx323(Portal_default, { children: /* @__PURE__ */ jsx323(
7687
7808
  "div",
7688
7809
  {
7689
7810
  ref: menuRef,
7690
7811
  className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }),
7691
7812
  style: { top: position.top, left: position.left },
7692
7813
  role: "menu",
7693
- children: items.map((item) => /* @__PURE__ */ jsx321(
7814
+ children: items.map((item) => /* @__PURE__ */ jsx323(
7694
7815
  "button",
7695
7816
  {
7696
7817
  className: clsx_default("dropdown-item", {
@@ -7712,23 +7833,23 @@ Dropdown.displayName = "Dropdown";
7712
7833
  var Dropdown_default = Dropdown;
7713
7834
 
7714
7835
  // src/components/EmptyState/EmptyState.tsx
7715
- import { jsx as jsx322, jsxs as jsxs207 } from "react/jsx-runtime";
7836
+ import { jsx as jsx324, jsxs as jsxs208 } from "react/jsx-runtime";
7716
7837
  var EmptyState = (props) => {
7717
7838
  const { icon, title = "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4", description, action } = props;
7718
- return /* @__PURE__ */ jsxs207("div", { className: "lib-xplat-empty-state", children: [
7719
- icon && /* @__PURE__ */ jsx322("div", { className: "empty-icon", children: icon }),
7720
- !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" }) }) }),
7721
- /* @__PURE__ */ jsx322("p", { className: "empty-title", children: title }),
7722
- description && /* @__PURE__ */ jsx322("p", { className: "empty-description", children: description }),
7723
- action && /* @__PURE__ */ jsx322("div", { className: "empty-action", children: action })
7839
+ return /* @__PURE__ */ jsxs208("div", { className: "lib-xplat-empty-state", children: [
7840
+ icon && /* @__PURE__ */ jsx324("div", { className: "empty-icon", children: icon }),
7841
+ !icon && /* @__PURE__ */ jsx324("div", { className: "empty-icon", children: /* @__PURE__ */ jsx324("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx324("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" }) }) }),
7842
+ /* @__PURE__ */ jsx324("p", { className: "empty-title", children: title }),
7843
+ description && /* @__PURE__ */ jsx324("p", { className: "empty-description", children: description }),
7844
+ action && /* @__PURE__ */ jsx324("div", { className: "empty-action", children: action })
7724
7845
  ] });
7725
7846
  };
7726
7847
  EmptyState.displayName = "EmptyState";
7727
7848
  var EmptyState_default = EmptyState;
7728
7849
 
7729
7850
  // src/components/FileUpload/FileUpload.tsx
7730
- import React20 from "react";
7731
- import { jsx as jsx323, jsxs as jsxs208 } from "react/jsx-runtime";
7851
+ import React22 from "react";
7852
+ import { jsx as jsx325, jsxs as jsxs209 } from "react/jsx-runtime";
7732
7853
  var FileUpload = (props) => {
7733
7854
  const {
7734
7855
  accept,
@@ -7738,8 +7859,8 @@ var FileUpload = (props) => {
7738
7859
  label = "\uD30C\uC77C\uC744 \uB4DC\uB798\uADF8\uD558\uAC70\uB098 \uD074\uB9AD\uD558\uC5EC \uC5C5\uB85C\uB4DC",
7739
7860
  description
7740
7861
  } = props;
7741
- const [isDragOver, setIsDragOver] = React20.useState(false);
7742
- const inputRef = React20.useRef(null);
7862
+ const [isDragOver, setIsDragOver] = React22.useState(false);
7863
+ const inputRef = React22.useRef(null);
7743
7864
  const handleFiles = (fileList) => {
7744
7865
  let files = Array.from(fileList);
7745
7866
  if (maxSize) {
@@ -7769,7 +7890,7 @@ var FileUpload = (props) => {
7769
7890
  handleFiles(e.target.files);
7770
7891
  }
7771
7892
  };
7772
- return /* @__PURE__ */ jsxs208(
7893
+ return /* @__PURE__ */ jsxs209(
7773
7894
  "div",
7774
7895
  {
7775
7896
  className: clsx_default("lib-xplat-file-upload", { "drag-over": isDragOver }),
@@ -7778,7 +7899,7 @@ var FileUpload = (props) => {
7778
7899
  onDragLeave: handleDragLeave,
7779
7900
  onClick: () => inputRef.current?.click(),
7780
7901
  children: [
7781
- /* @__PURE__ */ jsx323(
7902
+ /* @__PURE__ */ jsx325(
7782
7903
  "input",
7783
7904
  {
7784
7905
  ref: inputRef,
@@ -7788,9 +7909,9 @@ var FileUpload = (props) => {
7788
7909
  onChange: handleChange
7789
7910
  }
7790
7911
  ),
7791
- /* @__PURE__ */ jsx323("div", { className: "upload-icon", children: /* @__PURE__ */ jsx323(UploadIcon_default, {}) }),
7792
- /* @__PURE__ */ jsx323("p", { className: "upload-label", children: label }),
7793
- description && /* @__PURE__ */ jsx323("p", { className: "upload-description", children: description })
7912
+ /* @__PURE__ */ jsx325("div", { className: "upload-icon", children: /* @__PURE__ */ jsx325(UploadIcon_default, {}) }),
7913
+ /* @__PURE__ */ jsx325("p", { className: "upload-label", children: label }),
7914
+ description && /* @__PURE__ */ jsx325("p", { className: "upload-description", children: description })
7794
7915
  ]
7795
7916
  }
7796
7917
  );
@@ -7799,10 +7920,10 @@ FileUpload.displayName = "FileUpload";
7799
7920
  var FileUpload_default = FileUpload;
7800
7921
 
7801
7922
  // src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
7802
- import React22 from "react";
7923
+ import React24 from "react";
7803
7924
 
7804
7925
  // src/components/HtmlTypeWriter/utils.ts
7805
- import React21 from "react";
7926
+ import React23 from "react";
7806
7927
  var voidTags = /* @__PURE__ */ new Set([
7807
7928
  "br",
7808
7929
  "img",
@@ -7870,41 +7991,41 @@ var convertNodeToReactWithRange = (node, typedLen, rangeMap) => {
7870
7991
  props[attr.name] = attr.value;
7871
7992
  });
7872
7993
  if (voidTags.has(tag)) {
7873
- return React21.createElement(tag, props);
7994
+ return React23.createElement(tag, props);
7874
7995
  }
7875
7996
  const children = Array.from(element.childNodes).map((child) => convertNodeToReactWithRange(child, typedLen, rangeMap)).filter((n) => n != null);
7876
- return React21.createElement(tag, props, ...children);
7997
+ return React23.createElement(tag, props, ...children);
7877
7998
  };
7878
7999
  var htmlToReactProgressive = (root, typedLen, rangeMap) => {
7879
8000
  const nodes = Array.from(root.childNodes).map((child, idx) => {
7880
8001
  const node = convertNodeToReactWithRange(child, typedLen, rangeMap);
7881
- return node == null ? null : React21.createElement(React21.Fragment, { key: idx }, node);
8002
+ return node == null ? null : React23.createElement(React23.Fragment, { key: idx }, node);
7882
8003
  }).filter(Boolean);
7883
8004
  return nodes.length === 0 ? null : nodes;
7884
8005
  };
7885
8006
 
7886
8007
  // src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
7887
- import { jsx as jsx324 } from "react/jsx-runtime";
8008
+ import { jsx as jsx326 } from "react/jsx-runtime";
7888
8009
  var HtmlTypeWriter = ({
7889
8010
  html,
7890
8011
  duration = 20,
7891
8012
  onDone,
7892
8013
  onChange
7893
8014
  }) => {
7894
- const [typedLen, setTypedLen] = React22.useState(0);
7895
- const doneCalledRef = React22.useRef(false);
7896
- const { doc, rangeMap, totalLength } = React22.useMemo(() => {
8015
+ const [typedLen, setTypedLen] = React24.useState(0);
8016
+ const doneCalledRef = React24.useRef(false);
8017
+ const { doc, rangeMap, totalLength } = React24.useMemo(() => {
7897
8018
  if (typeof window === "undefined") return { doc: null, rangeMap: /* @__PURE__ */ new Map(), totalLength: 0 };
7898
8019
  const decoded = decodeHtmlEntities(html);
7899
8020
  const doc2 = new DOMParser().parseFromString(decoded, "text/html");
7900
8021
  const { rangeMap: rangeMap2, totalLength: totalLength2 } = buildRangeMap(doc2.body);
7901
8022
  return { doc: doc2, rangeMap: rangeMap2, totalLength: totalLength2 };
7902
8023
  }, [html]);
7903
- React22.useEffect(() => {
8024
+ React24.useEffect(() => {
7904
8025
  setTypedLen(0);
7905
8026
  doneCalledRef.current = false;
7906
8027
  }, [html]);
7907
- React22.useEffect(() => {
8028
+ React24.useEffect(() => {
7908
8029
  if (!totalLength) return;
7909
8030
  if (typedLen >= totalLength) return;
7910
8031
  const timer = window.setInterval(() => {
@@ -7912,33 +8033,33 @@ var HtmlTypeWriter = ({
7912
8033
  }, duration);
7913
8034
  return () => window.clearInterval(timer);
7914
8035
  }, [typedLen, totalLength, duration]);
7915
- React22.useEffect(() => {
8036
+ React24.useEffect(() => {
7916
8037
  if (typedLen > 0 && typedLen < totalLength) {
7917
8038
  onChange?.();
7918
8039
  }
7919
8040
  }, [typedLen, totalLength, onChange]);
7920
- React22.useEffect(() => {
8041
+ React24.useEffect(() => {
7921
8042
  if (typedLen === totalLength && totalLength > 0 && !doneCalledRef.current) {
7922
8043
  doneCalledRef.current = true;
7923
8044
  onDone?.();
7924
8045
  }
7925
8046
  }, [typedLen, totalLength, onDone]);
7926
- const parsed = React22.useMemo(
8047
+ const parsed = React24.useMemo(
7927
8048
  () => doc ? htmlToReactProgressive(doc.body, typedLen, rangeMap) : null,
7928
8049
  [doc, typedLen, rangeMap]
7929
8050
  );
7930
- return /* @__PURE__ */ jsx324("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
8051
+ return /* @__PURE__ */ jsx326("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
7931
8052
  };
7932
8053
  HtmlTypeWriter.displayName = "HtmlTypeWriter";
7933
8054
  var HtmlTypeWriter_default = HtmlTypeWriter;
7934
8055
 
7935
8056
  // src/components/ImageSelector/ImageSelector.tsx
7936
- import React23 from "react";
7937
- import { jsx as jsx325, jsxs as jsxs209 } from "react/jsx-runtime";
8057
+ import React25 from "react";
8058
+ import { jsx as jsx327, jsxs as jsxs210 } from "react/jsx-runtime";
7938
8059
  var ImageSelector = (props) => {
7939
8060
  const { value, label, onChange } = props;
7940
- const [previewUrl, setPreviewUrl] = React23.useState();
7941
- React23.useEffect(() => {
8061
+ const [previewUrl, setPreviewUrl] = React25.useState();
8062
+ React25.useEffect(() => {
7942
8063
  if (!value) {
7943
8064
  setPreviewUrl(void 0);
7944
8065
  return;
@@ -7947,7 +8068,7 @@ var ImageSelector = (props) => {
7947
8068
  setPreviewUrl(url);
7948
8069
  return () => URL.revokeObjectURL(url);
7949
8070
  }, [value]);
7950
- const inputRef = React23.useRef(null);
8071
+ const inputRef = React25.useRef(null);
7951
8072
  const handleFileChange = (e) => {
7952
8073
  const selectedFile = e.target.files?.[0];
7953
8074
  if (selectedFile) {
@@ -7960,8 +8081,8 @@ var ImageSelector = (props) => {
7960
8081
  const handleOpenFileDialog = () => {
7961
8082
  inputRef.current?.click();
7962
8083
  };
7963
- return /* @__PURE__ */ jsxs209("div", { className: `lib-xplat-imageselector${value ? "" : " none-value"}`, children: [
7964
- /* @__PURE__ */ jsx325(
8084
+ return /* @__PURE__ */ jsxs210("div", { className: `lib-xplat-imageselector${value ? "" : " none-value"}`, children: [
8085
+ /* @__PURE__ */ jsx327(
7965
8086
  "input",
7966
8087
  {
7967
8088
  type: "file",
@@ -7971,13 +8092,13 @@ var ImageSelector = (props) => {
7971
8092
  ref: inputRef
7972
8093
  }
7973
8094
  ),
7974
- value && /* @__PURE__ */ jsxs209("div", { className: "action-bar", children: [
7975
- /* @__PURE__ */ jsx325("div", { className: "icon-wrapper", onClick: handleOpenFileDialog, children: /* @__PURE__ */ jsx325(UploadIcon_default, {}) }),
7976
- /* @__PURE__ */ jsx325("div", { className: "icon-wrapper", onClick: handleDeleteFile, children: /* @__PURE__ */ jsx325(DeleteIcon_default, {}) })
8095
+ value && /* @__PURE__ */ jsxs210("div", { className: "action-bar", children: [
8096
+ /* @__PURE__ */ jsx327("div", { className: "icon-wrapper", onClick: handleOpenFileDialog, children: /* @__PURE__ */ jsx327(UploadIcon_default, {}) }),
8097
+ /* @__PURE__ */ jsx327("div", { className: "icon-wrapper", onClick: handleDeleteFile, children: /* @__PURE__ */ jsx327(DeleteIcon_default, {}) })
7977
8098
  ] }),
7978
- /* @__PURE__ */ jsx325("div", { className: "content", children: previewUrl ? /* @__PURE__ */ jsx325("img", { src: previewUrl, alt: "preview" }) : /* @__PURE__ */ jsxs209("div", { className: "skeleton", onClick: handleOpenFileDialog, children: [
7979
- /* @__PURE__ */ jsx325("div", { className: "icon-wrapper", children: /* @__PURE__ */ jsx325(ImageIcon_default, {}) }),
7980
- /* @__PURE__ */ jsx325("div", { className: "label", children: label || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
8099
+ /* @__PURE__ */ jsx327("div", { className: "content", children: previewUrl ? /* @__PURE__ */ jsx327("img", { src: previewUrl, alt: "preview" }) : /* @__PURE__ */ jsxs210("div", { className: "skeleton", onClick: handleOpenFileDialog, children: [
8100
+ /* @__PURE__ */ jsx327("div", { className: "icon-wrapper", children: /* @__PURE__ */ jsx327(ImageIcon_default, {}) }),
8101
+ /* @__PURE__ */ jsx327("div", { className: "label", children: label || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
7981
8102
  ] }) })
7982
8103
  ] });
7983
8104
  };
@@ -7985,7 +8106,7 @@ ImageSelector.displayName = "ImageSelector";
7985
8106
  var ImageSelector_default = ImageSelector;
7986
8107
 
7987
8108
  // src/components/Pagination/Pagination.tsx
7988
- import { jsx as jsx326, jsxs as jsxs210 } from "react/jsx-runtime";
8109
+ import { jsx as jsx328, jsxs as jsxs211 } from "react/jsx-runtime";
7989
8110
  var getPageRange = (current, totalPages, siblingCount) => {
7990
8111
  const totalNumbers = siblingCount * 2 + 5;
7991
8112
  if (totalPages <= totalNumbers) {
@@ -8028,19 +8149,19 @@ var Pagination = (props) => {
8028
8149
  onChange?.(page);
8029
8150
  }
8030
8151
  };
8031
- return /* @__PURE__ */ jsxs210("nav", { className: clsx_default("lib-xplat-pagination", size, type), "aria-label": "\uD398\uC774\uC9C0 \uB124\uBE44\uAC8C\uC774\uC158", children: [
8032
- /* @__PURE__ */ jsx326(
8152
+ return /* @__PURE__ */ jsxs211("nav", { className: clsx_default("lib-xplat-pagination", size, type), "aria-label": "\uD398\uC774\uC9C0 \uB124\uBE44\uAC8C\uC774\uC158", children: [
8153
+ /* @__PURE__ */ jsx328(
8033
8154
  "button",
8034
8155
  {
8035
8156
  className: "page-btn prev",
8036
8157
  disabled: current <= 1,
8037
8158
  onClick: () => handleClick(current - 1),
8038
8159
  "aria-label": "\uC774\uC804 \uD398\uC774\uC9C0",
8039
- children: /* @__PURE__ */ jsx326(ChevronLeftIcon_default, {})
8160
+ children: /* @__PURE__ */ jsx328(ChevronLeftIcon_default, {})
8040
8161
  }
8041
8162
  ),
8042
8163
  pages.map(
8043
- (page, i) => page === "..." ? /* @__PURE__ */ jsx326("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ jsx326(
8164
+ (page, i) => page === "..." ? /* @__PURE__ */ jsx328("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ jsx328(
8044
8165
  "button",
8045
8166
  {
8046
8167
  className: clsx_default("page-btn", { active: page === current }),
@@ -8051,14 +8172,14 @@ var Pagination = (props) => {
8051
8172
  page
8052
8173
  )
8053
8174
  ),
8054
- /* @__PURE__ */ jsx326(
8175
+ /* @__PURE__ */ jsx328(
8055
8176
  "button",
8056
8177
  {
8057
8178
  className: "page-btn next",
8058
8179
  disabled: current >= totalPages,
8059
8180
  onClick: () => handleClick(current + 1),
8060
8181
  "aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0",
8061
- children: /* @__PURE__ */ jsx326(ChevronRightIcon_default, {})
8182
+ children: /* @__PURE__ */ jsx328(ChevronRightIcon_default, {})
8062
8183
  }
8063
8184
  )
8064
8185
  ] });
@@ -8067,17 +8188,17 @@ Pagination.displayName = "Pagination";
8067
8188
  var Pagination_default = Pagination;
8068
8189
 
8069
8190
  // src/components/PopOver/PopOver.tsx
8070
- import React24 from "react";
8071
- import { jsx as jsx327, jsxs as jsxs211 } from "react/jsx-runtime";
8191
+ import React26 from "react";
8192
+ import { jsx as jsx329, jsxs as jsxs212 } from "react/jsx-runtime";
8072
8193
  var PopOver = (props) => {
8073
8194
  const { children, isOpen, onClose, PopOverEl } = props;
8074
- const popRef = React24.useRef(null);
8075
- const triggerRef = React24.useRef(null);
8076
- const [localOpen, setLocalOpen] = React24.useState(false);
8077
- const [eventTrigger, setEventTrigger] = React24.useState(false);
8195
+ const popRef = React26.useRef(null);
8196
+ const triggerRef = React26.useRef(null);
8197
+ const [localOpen, setLocalOpen] = React26.useState(false);
8198
+ const [eventTrigger, setEventTrigger] = React26.useState(false);
8078
8199
  useClickOutside_default([popRef, triggerRef], onClose, isOpen);
8079
8200
  const position = useAutoPosition_default(triggerRef, popRef, localOpen);
8080
- React24.useEffect(() => {
8201
+ React26.useEffect(() => {
8081
8202
  if (isOpen) {
8082
8203
  setLocalOpen(isOpen);
8083
8204
  setTimeout(() => {
@@ -8090,7 +8211,7 @@ var PopOver = (props) => {
8090
8211
  }, 200);
8091
8212
  }
8092
8213
  }, [isOpen]);
8093
- return /* @__PURE__ */ jsxs211(
8214
+ return /* @__PURE__ */ jsxs212(
8094
8215
  "div",
8095
8216
  {
8096
8217
  className: "lib-xplat-pop-over",
@@ -8100,7 +8221,7 @@ var PopOver = (props) => {
8100
8221
  },
8101
8222
  children: [
8102
8223
  children,
8103
- localOpen && /* @__PURE__ */ jsx327(Portal_default, { children: /* @__PURE__ */ jsx327(
8224
+ localOpen && /* @__PURE__ */ jsx329(Portal_default, { children: /* @__PURE__ */ jsx329(
8104
8225
  "div",
8105
8226
  {
8106
8227
  className: clsx_default(
@@ -8123,7 +8244,7 @@ PopOver.displayName = "PopOver";
8123
8244
  var PopOver_default = PopOver;
8124
8245
 
8125
8246
  // src/components/Progress/Progress.tsx
8126
- import { jsx as jsx328, jsxs as jsxs212 } from "react/jsx-runtime";
8247
+ import { jsx as jsx330, jsxs as jsxs213 } from "react/jsx-runtime";
8127
8248
  var Progress = (props) => {
8128
8249
  const {
8129
8250
  value,
@@ -8133,8 +8254,8 @@ var Progress = (props) => {
8133
8254
  showLabel = false
8134
8255
  } = props;
8135
8256
  const percentage = Math.min(100, Math.max(0, value / max * 100));
8136
- return /* @__PURE__ */ jsxs212("div", { className: clsx_default("lib-xplat-progress", size, type), children: [
8137
- /* @__PURE__ */ jsx328(
8257
+ return /* @__PURE__ */ jsxs213("div", { className: clsx_default("lib-xplat-progress", size, type), children: [
8258
+ /* @__PURE__ */ jsx330(
8138
8259
  "div",
8139
8260
  {
8140
8261
  className: "track",
@@ -8142,7 +8263,7 @@ var Progress = (props) => {
8142
8263
  "aria-valuenow": value,
8143
8264
  "aria-valuemin": 0,
8144
8265
  "aria-valuemax": max,
8145
- children: /* @__PURE__ */ jsx328(
8266
+ children: /* @__PURE__ */ jsx330(
8146
8267
  "div",
8147
8268
  {
8148
8269
  className: "bar",
@@ -8151,7 +8272,7 @@ var Progress = (props) => {
8151
8272
  )
8152
8273
  }
8153
8274
  ),
8154
- showLabel && /* @__PURE__ */ jsxs212("span", { className: "label", children: [
8275
+ showLabel && /* @__PURE__ */ jsxs213("span", { className: "label", children: [
8155
8276
  Math.round(percentage),
8156
8277
  "%"
8157
8278
  ] })
@@ -8161,17 +8282,17 @@ Progress.displayName = "Progress";
8161
8282
  var Progress_default = Progress;
8162
8283
 
8163
8284
  // src/components/Radio/RadioGroupContext.tsx
8164
- import React25 from "react";
8165
- var RadioGroupContext = React25.createContext(
8285
+ import React27 from "react";
8286
+ var RadioGroupContext = React27.createContext(
8166
8287
  null
8167
8288
  );
8168
8289
  var useRadioGroupContext = () => {
8169
- return React25.useContext(RadioGroupContext);
8290
+ return React27.useContext(RadioGroupContext);
8170
8291
  };
8171
8292
  var RadioGroupContext_default = RadioGroupContext;
8172
8293
 
8173
8294
  // src/components/Radio/Radio.tsx
8174
- import { jsx as jsx329, jsxs as jsxs213 } from "react/jsx-runtime";
8295
+ import { jsx as jsx331, jsxs as jsxs214 } from "react/jsx-runtime";
8175
8296
  var Radio = (props) => {
8176
8297
  const {
8177
8298
  label,
@@ -8189,7 +8310,7 @@ var Radio = (props) => {
8189
8310
  value,
8190
8311
  onChange: rest.onChange
8191
8312
  };
8192
- return /* @__PURE__ */ jsxs213(
8313
+ return /* @__PURE__ */ jsxs214(
8193
8314
  "label",
8194
8315
  {
8195
8316
  className: clsx_default(
@@ -8199,18 +8320,18 @@ var Radio = (props) => {
8199
8320
  localChecked ? "checked" : void 0
8200
8321
  ),
8201
8322
  children: [
8202
- /* @__PURE__ */ jsx329("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
8203
- /* @__PURE__ */ jsx329(
8323
+ /* @__PURE__ */ jsx331("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
8324
+ /* @__PURE__ */ jsx331(
8204
8325
  "div",
8205
8326
  {
8206
8327
  className: clsx_default(
8207
8328
  "circle",
8208
8329
  localChecked ? "checked" : void 0
8209
8330
  ),
8210
- children: localChecked && /* @__PURE__ */ jsx329("div", { className: "inner-circle" })
8331
+ children: localChecked && /* @__PURE__ */ jsx331("div", { className: "inner-circle" })
8211
8332
  }
8212
8333
  ),
8213
- label && /* @__PURE__ */ jsx329("span", { children: label })
8334
+ label && /* @__PURE__ */ jsx331("span", { children: label })
8214
8335
  ]
8215
8336
  }
8216
8337
  );
@@ -8219,28 +8340,28 @@ Radio.displayName = "Radio";
8219
8340
  var Radio_default = Radio;
8220
8341
 
8221
8342
  // src/components/Radio/RadioGroup.tsx
8222
- import { Fragment as Fragment4, jsx as jsx330 } from "react/jsx-runtime";
8343
+ import { Fragment as Fragment4, jsx as jsx332 } from "react/jsx-runtime";
8223
8344
  var RadioGroup = (props) => {
8224
8345
  const { children, ...rest } = props;
8225
- return /* @__PURE__ */ jsx330(Fragment4, { children: /* @__PURE__ */ jsx330(RadioGroupContext_default.Provider, { value: rest, children }) });
8346
+ return /* @__PURE__ */ jsx332(Fragment4, { children: /* @__PURE__ */ jsx332(RadioGroupContext_default.Provider, { value: rest, children }) });
8226
8347
  };
8227
8348
  RadioGroup.displayName = "RadioGroup";
8228
8349
  var RadioGroup_default = RadioGroup;
8229
8350
 
8230
8351
  // src/components/Select/Select.tsx
8231
- import React28 from "react";
8352
+ import React30 from "react";
8232
8353
 
8233
8354
  // src/components/Select/context.ts
8234
- import React26 from "react";
8235
- var SelectContext = React26.createContext(null);
8355
+ import React28 from "react";
8356
+ var SelectContext = React28.createContext(null);
8236
8357
  var context_default = SelectContext;
8237
8358
 
8238
8359
  // src/components/Select/SelectItem.tsx
8239
- import React27 from "react";
8240
- import { jsx as jsx331 } from "react/jsx-runtime";
8360
+ import React29 from "react";
8361
+ import { jsx as jsx333 } from "react/jsx-runtime";
8241
8362
  var SelectItem = (props) => {
8242
8363
  const { children, value, onClick, disabled = false } = props;
8243
- const ctx = React27.useContext(context_default);
8364
+ const ctx = React29.useContext(context_default);
8244
8365
  const handleClick = (e) => {
8245
8366
  e.preventDefault();
8246
8367
  e.stopPropagation();
@@ -8249,7 +8370,7 @@ var SelectItem = (props) => {
8249
8370
  ctx?.close();
8250
8371
  onClick?.();
8251
8372
  };
8252
- return /* @__PURE__ */ jsx331(
8373
+ return /* @__PURE__ */ jsx333(
8253
8374
  "div",
8254
8375
  {
8255
8376
  className: clsx_default("select-item", disabled && "disabled"),
@@ -8270,7 +8391,7 @@ SelectItem.displayName = "Select.Item";
8270
8391
  var SelectItem_default = SelectItem;
8271
8392
 
8272
8393
  // src/components/Select/Select.tsx
8273
- import { jsx as jsx332, jsxs as jsxs214 } from "react/jsx-runtime";
8394
+ import { jsx as jsx334, jsxs as jsxs215 } from "react/jsx-runtime";
8274
8395
  var ANIMATION_DURATION_MS3 = 200;
8275
8396
  var SelectRoot = (props) => {
8276
8397
  const {
@@ -8282,26 +8403,26 @@ var SelectRoot = (props) => {
8282
8403
  error = false,
8283
8404
  size = "md"
8284
8405
  } = props;
8285
- const itemChildren = React28.Children.toArray(children).filter(
8286
- (child) => React28.isValidElement(child) && child.type === SelectItem_default
8406
+ const itemChildren = React30.Children.toArray(children).filter(
8407
+ (child) => React30.isValidElement(child) && child.type === SelectItem_default
8287
8408
  );
8288
8409
  const isControlled = valueProp !== void 0;
8289
- const [isOpen, setOpen] = React28.useState(false);
8290
- const [uncontrolledLabel, setUncontrolledLabel] = React28.useState(null);
8291
- const controlledLabel = React28.useMemo(() => {
8410
+ const [isOpen, setOpen] = React30.useState(false);
8411
+ const [uncontrolledLabel, setUncontrolledLabel] = React30.useState(null);
8412
+ const controlledLabel = React30.useMemo(() => {
8292
8413
  if (!isControlled) return null;
8293
8414
  const match = itemChildren.find((child) => child.props.value === valueProp);
8294
8415
  return match ? match.props.children : null;
8295
8416
  }, [isControlled, valueProp, itemChildren]);
8296
8417
  const selectedLabel = isControlled ? controlledLabel : uncontrolledLabel;
8297
- const triggerRef = React28.useRef(null);
8298
- const contentRef = React28.useRef(null);
8299
- const [mounted, setMounted] = React28.useState(false);
8300
- const [visible, setVisible] = React28.useState(false);
8301
- React28.useEffect(() => {
8418
+ const triggerRef = React30.useRef(null);
8419
+ const contentRef = React30.useRef(null);
8420
+ const [mounted, setMounted] = React30.useState(false);
8421
+ const [visible, setVisible] = React30.useState(false);
8422
+ React30.useEffect(() => {
8302
8423
  if (disabled && isOpen) setOpen(false);
8303
8424
  }, [disabled, isOpen]);
8304
- React28.useEffect(() => {
8425
+ React30.useEffect(() => {
8305
8426
  if (isOpen) {
8306
8427
  setMounted(true);
8307
8428
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -8311,12 +8432,12 @@ var SelectRoot = (props) => {
8311
8432
  const t = setTimeout(() => setMounted(false), ANIMATION_DURATION_MS3);
8312
8433
  return () => clearTimeout(t);
8313
8434
  }, [isOpen]);
8314
- const open = React28.useCallback(() => setOpen(true), []);
8315
- const close = React28.useCallback(() => setOpen(false), []);
8316
- const toggle = React28.useCallback(() => setOpen((prev) => !prev), []);
8435
+ const open = React30.useCallback(() => setOpen(true), []);
8436
+ const close = React30.useCallback(() => setOpen(false), []);
8437
+ const toggle = React30.useCallback(() => setOpen((prev) => !prev), []);
8317
8438
  useClickOutside_default([contentRef, triggerRef], close, isOpen);
8318
8439
  const position = useAutoPosition_default(triggerRef, contentRef, mounted);
8319
- const setSelected = React28.useCallback(
8440
+ const setSelected = React30.useCallback(
8320
8441
  (label, itemValue) => {
8321
8442
  if (!isControlled) {
8322
8443
  setUncontrolledLabel(label);
@@ -8325,7 +8446,7 @@ var SelectRoot = (props) => {
8325
8446
  },
8326
8447
  [isControlled, onChange]
8327
8448
  );
8328
- const ctxValue = React28.useMemo(
8449
+ const ctxValue = React30.useMemo(
8329
8450
  () => ({
8330
8451
  isOpen,
8331
8452
  mounted,
@@ -8346,7 +8467,7 @@ var SelectRoot = (props) => {
8346
8467
  if (disabled) return;
8347
8468
  toggle();
8348
8469
  };
8349
- return /* @__PURE__ */ jsx332(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ jsxs214(
8470
+ return /* @__PURE__ */ jsx334(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ jsxs215(
8350
8471
  "div",
8351
8472
  {
8352
8473
  className: clsx_default(
@@ -8357,7 +8478,7 @@ var SelectRoot = (props) => {
8357
8478
  mounted && "is-open"
8358
8479
  ),
8359
8480
  children: [
8360
- /* @__PURE__ */ jsxs214(
8481
+ /* @__PURE__ */ jsxs215(
8361
8482
  "div",
8362
8483
  {
8363
8484
  ref: triggerRef,
@@ -8381,7 +8502,7 @@ var SelectRoot = (props) => {
8381
8502
  }
8382
8503
  },
8383
8504
  children: [
8384
- /* @__PURE__ */ jsx332(
8505
+ /* @__PURE__ */ jsx334(
8385
8506
  "span",
8386
8507
  {
8387
8508
  className: clsx_default(
@@ -8391,25 +8512,25 @@ var SelectRoot = (props) => {
8391
8512
  children: selectedLabel ?? placeholder
8392
8513
  }
8393
8514
  ),
8394
- /* @__PURE__ */ jsx332(
8515
+ /* @__PURE__ */ jsx334(
8395
8516
  "span",
8396
8517
  {
8397
8518
  className: clsx_default("select-trigger-icon", isOpen && "open"),
8398
8519
  "aria-hidden": true,
8399
- children: /* @__PURE__ */ jsx332(ChevronDownIcon_default, {})
8520
+ children: /* @__PURE__ */ jsx334(ChevronDownIcon_default, {})
8400
8521
  }
8401
8522
  )
8402
8523
  ]
8403
8524
  }
8404
8525
  ),
8405
- mounted && /* @__PURE__ */ jsx332(Portal_default, { children: /* @__PURE__ */ jsx332(
8526
+ mounted && /* @__PURE__ */ jsx334(Portal_default, { children: /* @__PURE__ */ jsx334(
8406
8527
  "div",
8407
8528
  {
8408
8529
  className: clsx_default("lib-xplat-select-content", position.direction, stateClass),
8409
8530
  ref: contentRef,
8410
8531
  style: { ...position.position, width: triggerRef.current?.offsetWidth },
8411
8532
  role: "listbox",
8412
- children: /* @__PURE__ */ jsx332(context_default.Provider, { value: ctxValue, children: itemChildren })
8533
+ children: /* @__PURE__ */ jsx334(context_default.Provider, { value: ctxValue, children: itemChildren })
8413
8534
  }
8414
8535
  ) })
8415
8536
  ]
@@ -8423,7 +8544,7 @@ var Select = Object.assign(SelectRoot, {
8423
8544
  var Select_default = Select;
8424
8545
 
8425
8546
  // src/components/Skeleton/Skeleton.tsx
8426
- import { jsx as jsx333 } from "react/jsx-runtime";
8547
+ import { jsx as jsx335 } from "react/jsx-runtime";
8427
8548
  var SIZE_MAP = {
8428
8549
  xs: "var(--spacing-size-1)",
8429
8550
  sm: "var(--spacing-size-2)",
@@ -8439,7 +8560,7 @@ var Skeleton = (props) => {
8439
8560
  ...width != null && { width: SIZE_MAP[width] },
8440
8561
  ...height != null && { height: SIZE_MAP[height] }
8441
8562
  };
8442
- return /* @__PURE__ */ jsx333(
8563
+ return /* @__PURE__ */ jsx335(
8443
8564
  "div",
8444
8565
  {
8445
8566
  className: clsx_default("lib-xplat-skeleton", variant),
@@ -8452,20 +8573,20 @@ Skeleton.displayName = "Skeleton";
8452
8573
  var Skeleton_default = Skeleton;
8453
8574
 
8454
8575
  // src/components/Spinner/Spinner.tsx
8455
- import { jsx as jsx334, jsxs as jsxs215 } from "react/jsx-runtime";
8576
+ import { jsx as jsx336, jsxs as jsxs216 } from "react/jsx-runtime";
8456
8577
  var Spinner = (props) => {
8457
8578
  const {
8458
8579
  size = "md",
8459
8580
  type = "brand"
8460
8581
  } = props;
8461
- return /* @__PURE__ */ jsx334(
8582
+ return /* @__PURE__ */ jsx336(
8462
8583
  "div",
8463
8584
  {
8464
8585
  className: clsx_default("lib-xplat-spinner", size, type),
8465
8586
  role: "status",
8466
8587
  "aria-label": "\uB85C\uB529 \uC911",
8467
- children: /* @__PURE__ */ jsxs215("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
8468
- /* @__PURE__ */ jsx334(
8588
+ children: /* @__PURE__ */ jsxs216("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
8589
+ /* @__PURE__ */ jsx336(
8469
8590
  "circle",
8470
8591
  {
8471
8592
  className: "track",
@@ -8475,7 +8596,7 @@ var Spinner = (props) => {
8475
8596
  strokeWidth: "3"
8476
8597
  }
8477
8598
  ),
8478
- /* @__PURE__ */ jsx334(
8599
+ /* @__PURE__ */ jsx336(
8479
8600
  "circle",
8480
8601
  {
8481
8602
  className: "indicator",
@@ -8494,20 +8615,20 @@ Spinner.displayName = "Spinner";
8494
8615
  var Spinner_default = Spinner;
8495
8616
 
8496
8617
  // src/components/Steps/Steps.tsx
8497
- import { jsx as jsx335, jsxs as jsxs216 } from "react/jsx-runtime";
8618
+ import { jsx as jsx337, jsxs as jsxs217 } from "react/jsx-runtime";
8498
8619
  var Steps = (props) => {
8499
8620
  const {
8500
8621
  items,
8501
8622
  current,
8502
8623
  type = "brand"
8503
8624
  } = props;
8504
- return /* @__PURE__ */ jsx335("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
8625
+ return /* @__PURE__ */ jsx337("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
8505
8626
  const status = index < current ? "completed" : index === current ? "active" : "pending";
8506
- return /* @__PURE__ */ jsxs216("div", { className: clsx_default("step-item", status), children: [
8507
- /* @__PURE__ */ jsx335("div", { className: "step-circle", children: status === "completed" ? /* @__PURE__ */ jsx335(CheckIcon_default, {}) : /* @__PURE__ */ jsx335("span", { children: index + 1 }) }),
8508
- /* @__PURE__ */ jsxs216("div", { className: "step-content", children: [
8509
- /* @__PURE__ */ jsx335("span", { className: "step-title", children: item.title }),
8510
- item.description && /* @__PURE__ */ jsx335("span", { className: "step-description", children: item.description })
8627
+ return /* @__PURE__ */ jsxs217("div", { className: clsx_default("step-item", status), children: [
8628
+ /* @__PURE__ */ jsx337("div", { className: "step-circle", children: status === "completed" ? /* @__PURE__ */ jsx337(CheckIcon_default, {}) : /* @__PURE__ */ jsx337("span", { children: index + 1 }) }),
8629
+ /* @__PURE__ */ jsxs217("div", { className: "step-content", children: [
8630
+ /* @__PURE__ */ jsx337("span", { className: "step-title", children: item.title }),
8631
+ item.description && /* @__PURE__ */ jsx337("span", { className: "step-description", children: item.description })
8511
8632
  ] })
8512
8633
  ] }, index);
8513
8634
  }) });
@@ -8516,8 +8637,8 @@ Steps.displayName = "Steps";
8516
8637
  var Steps_default = Steps;
8517
8638
 
8518
8639
  // src/components/Swiper/Swiper.tsx
8519
- import React29 from "react";
8520
- import { jsx as jsx336, jsxs as jsxs217 } from "react/jsx-runtime";
8640
+ import React31 from "react";
8641
+ import { jsx as jsx338, jsxs as jsxs218 } from "react/jsx-runtime";
8521
8642
  var Swiper = (props) => {
8522
8643
  const {
8523
8644
  auto = false,
@@ -8540,23 +8661,23 @@ var Swiper = (props) => {
8540
8661
  const maxIndex = Math.max(0, totalSlides - viewItemCount);
8541
8662
  const useLoop = loop && canSlide;
8542
8663
  const cloneCount = useLoop ? totalSlides : 0;
8543
- const extendedItems = React29.useMemo(() => {
8664
+ const extendedItems = React31.useMemo(() => {
8544
8665
  if (!useLoop) return items;
8545
8666
  return [...items, ...items, ...items];
8546
8667
  }, [items, useLoop]);
8547
8668
  const initialIdx = Math.max(0, Math.min(indexProp ?? 0, maxIndex));
8548
- const [innerIndex, setInnerIndex] = React29.useState(
8669
+ const [innerIndex, setInnerIndex] = React31.useState(
8549
8670
  useLoop ? cloneCount + initialIdx : initialIdx
8550
8671
  );
8551
- const [isDragging, setIsDragging] = React29.useState(false);
8552
- const [dragOffset, setDragOffset] = React29.useState(0);
8553
- const [animated, setAnimated] = React29.useState(true);
8554
- const [containerWidth, setContainerWidth] = React29.useState(0);
8555
- const containerRef = React29.useRef(null);
8556
- const startXRef = React29.useRef(0);
8557
- const startTimeRef = React29.useRef(0);
8558
- const autoplayTimerRef = React29.useRef(null);
8559
- React29.useEffect(() => {
8672
+ const [isDragging, setIsDragging] = React31.useState(false);
8673
+ const [dragOffset, setDragOffset] = React31.useState(0);
8674
+ const [animated, setAnimated] = React31.useState(true);
8675
+ const [containerWidth, setContainerWidth] = React31.useState(0);
8676
+ const containerRef = React31.useRef(null);
8677
+ const startXRef = React31.useRef(0);
8678
+ const startTimeRef = React31.useRef(0);
8679
+ const autoplayTimerRef = React31.useRef(null);
8680
+ React31.useEffect(() => {
8560
8681
  const el = containerRef.current;
8561
8682
  if (!el) return;
8562
8683
  const ro = new ResizeObserver((entries) => {
@@ -8575,7 +8696,7 @@ var Swiper = (props) => {
8575
8696
  return ((inner - cloneCount) % totalSlides + totalSlides) % totalSlides;
8576
8697
  };
8577
8698
  const realIndex = getRealIndex(innerIndex);
8578
- const moveToInner = React29.useCallback(
8699
+ const moveToInner = React31.useCallback(
8579
8700
  (idx, withAnim = true) => {
8580
8701
  if (!useLoop) {
8581
8702
  setAnimated(withAnim);
@@ -8603,7 +8724,7 @@ var Swiper = (props) => {
8603
8724
  },
8604
8725
  [useLoop, cloneCount, totalSlides]
8605
8726
  );
8606
- const handleTransitionEnd = React29.useCallback(() => {
8727
+ const handleTransitionEnd = React31.useCallback(() => {
8607
8728
  if (!useLoop) return;
8608
8729
  const real = getRealIndex(innerIndex);
8609
8730
  const canonical = cloneCount + real;
@@ -8613,7 +8734,7 @@ var Swiper = (props) => {
8613
8734
  }
8614
8735
  onChange?.(Math.min(real, maxIndex));
8615
8736
  }, [useLoop, innerIndex, cloneCount, totalSlides, maxIndex, onChange]);
8616
- const slideTo = React29.useCallback(
8737
+ const slideTo = React31.useCallback(
8617
8738
  (logicalIndex) => {
8618
8739
  if (!canSlide) return;
8619
8740
  const clamped = useLoop ? logicalIndex : Math.max(0, Math.min(logicalIndex, maxIndex));
@@ -8623,7 +8744,7 @@ var Swiper = (props) => {
8623
8744
  },
8624
8745
  [canSlide, useLoop, cloneCount, maxIndex, onChange, moveToInner]
8625
8746
  );
8626
- const slideNext = React29.useCallback(() => {
8747
+ const slideNext = React31.useCallback(() => {
8627
8748
  if (!canSlide) return;
8628
8749
  const nextInner = innerIndex + slideBy;
8629
8750
  if (useLoop) {
@@ -8632,7 +8753,7 @@ var Swiper = (props) => {
8632
8753
  moveToInner(Math.min(nextInner, maxIndex), true);
8633
8754
  }
8634
8755
  }, [canSlide, useLoop, innerIndex, slideBy, maxIndex, moveToInner]);
8635
- const slidePrev = React29.useCallback(() => {
8756
+ const slidePrev = React31.useCallback(() => {
8636
8757
  if (!canSlide) return;
8637
8758
  const prevInner = innerIndex - slideBy;
8638
8759
  if (useLoop) {
@@ -8641,7 +8762,7 @@ var Swiper = (props) => {
8641
8762
  moveToInner(Math.max(prevInner, 0), true);
8642
8763
  }
8643
8764
  }, [canSlide, useLoop, innerIndex, slideBy, moveToInner]);
8644
- React29.useEffect(() => {
8765
+ React31.useEffect(() => {
8645
8766
  if (indexProp === void 0) return;
8646
8767
  const clamped = Math.max(0, Math.min(indexProp, maxIndex));
8647
8768
  const target = useLoop ? cloneCount + clamped : clamped;
@@ -8649,12 +8770,12 @@ var Swiper = (props) => {
8649
8770
  moveToInner(target, true);
8650
8771
  }
8651
8772
  }, [indexProp]);
8652
- React29.useImperativeHandle(swiperRef, () => ({
8773
+ React31.useImperativeHandle(swiperRef, () => ({
8653
8774
  slidePrev,
8654
8775
  slideNext,
8655
8776
  slideTo
8656
8777
  }));
8657
- React29.useEffect(() => {
8778
+ React31.useEffect(() => {
8658
8779
  if (!auto || !canSlide) return;
8659
8780
  autoplayTimerRef.current = setInterval(slideNext, autoplayDelay);
8660
8781
  return () => {
@@ -8677,7 +8798,7 @@ var Swiper = (props) => {
8677
8798
  startXRef.current = getClientX(e);
8678
8799
  startTimeRef.current = Date.now();
8679
8800
  };
8680
- React29.useEffect(() => {
8801
+ React31.useEffect(() => {
8681
8802
  if (!isDragging) return;
8682
8803
  const handleMove = (e) => {
8683
8804
  setDragOffset(getClientX(e) - startXRef.current);
@@ -8715,8 +8836,8 @@ var Swiper = (props) => {
8715
8836
  }, [isDragging, dragOffset, innerIndex, useLoop, maxIndex, slideStep, moveToInner]);
8716
8837
  const slideWidthPercent = 100 / viewItemCount;
8717
8838
  const gapAdjust = spaceBetween * (viewItemCount - 1) / viewItemCount;
8718
- const slideElements = React29.useMemo(
8719
- () => extendedItems.map((item, idx) => /* @__PURE__ */ jsx336(
8839
+ const slideElements = React31.useMemo(
8840
+ () => extendedItems.map((item, idx) => /* @__PURE__ */ jsx338(
8720
8841
  "div",
8721
8842
  {
8722
8843
  className: "lib-xplat-swiper__slide",
@@ -8735,14 +8856,14 @@ var Swiper = (props) => {
8735
8856
  Math.floor(realIndex / slideBy),
8736
8857
  totalSteps - 1
8737
8858
  );
8738
- return /* @__PURE__ */ jsxs217("div", { className: "lib-xplat-swiper", ref: containerRef, children: [
8739
- /* @__PURE__ */ jsx336(
8859
+ return /* @__PURE__ */ jsxs218("div", { className: "lib-xplat-swiper", ref: containerRef, children: [
8860
+ /* @__PURE__ */ jsx338(
8740
8861
  "div",
8741
8862
  {
8742
8863
  className: "lib-xplat-swiper__viewport",
8743
8864
  onMouseDown: handleDragStart,
8744
8865
  onTouchStart: handleDragStart,
8745
- children: /* @__PURE__ */ jsx336(
8866
+ children: /* @__PURE__ */ jsx338(
8746
8867
  "div",
8747
8868
  {
8748
8869
  className: clsx_default(
@@ -8760,7 +8881,7 @@ var Swiper = (props) => {
8760
8881
  )
8761
8882
  }
8762
8883
  ),
8763
- showProgress && canSlide && /* @__PURE__ */ jsx336("div", { className: "lib-xplat-swiper__progress", children: /* @__PURE__ */ jsx336("div", { className: "lib-xplat-swiper__progress-track", children: /* @__PURE__ */ jsx336(
8884
+ showProgress && canSlide && /* @__PURE__ */ jsx338("div", { className: "lib-xplat-swiper__progress", children: /* @__PURE__ */ jsx338("div", { className: "lib-xplat-swiper__progress-track", children: /* @__PURE__ */ jsx338(
8764
8885
  "span",
8765
8886
  {
8766
8887
  className: "lib-xplat-swiper__progress-fill",
@@ -8770,7 +8891,7 @@ var Swiper = (props) => {
8770
8891
  }
8771
8892
  }
8772
8893
  ) }) }),
8773
- canSlide && /* @__PURE__ */ jsx336("div", { className: "lib-xplat-swiper__dots", children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ jsx336(
8894
+ canSlide && /* @__PURE__ */ jsx338("div", { className: "lib-xplat-swiper__dots", children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ jsx338(
8774
8895
  "button",
8775
8896
  {
8776
8897
  className: clsx_default(
@@ -8788,8 +8909,8 @@ Swiper.displayName = "Swiper";
8788
8909
  var Swiper_default = Swiper;
8789
8910
 
8790
8911
  // src/components/Switch/Switch.tsx
8791
- import React30 from "react";
8792
- import { jsx as jsx337 } from "react/jsx-runtime";
8912
+ import React32 from "react";
8913
+ import { jsx as jsx339 } from "react/jsx-runtime";
8793
8914
  var KNOB_TRANSITION_MS = 250;
8794
8915
  var Switch = (props) => {
8795
8916
  const {
@@ -8799,9 +8920,9 @@ var Switch = (props) => {
8799
8920
  disabled,
8800
8921
  onChange
8801
8922
  } = props;
8802
- const [isAnimating, setIsAnimating] = React30.useState(false);
8803
- const timeoutRef = React30.useRef(null);
8804
- React30.useEffect(() => {
8923
+ const [isAnimating, setIsAnimating] = React32.useState(false);
8924
+ const timeoutRef = React32.useRef(null);
8925
+ React32.useEffect(() => {
8805
8926
  return () => {
8806
8927
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
8807
8928
  };
@@ -8816,7 +8937,7 @@ var Switch = (props) => {
8816
8937
  timeoutRef.current = null;
8817
8938
  }, KNOB_TRANSITION_MS);
8818
8939
  };
8819
- return /* @__PURE__ */ jsx337(
8940
+ return /* @__PURE__ */ jsx339(
8820
8941
  "div",
8821
8942
  {
8822
8943
  className: clsx_default(
@@ -8829,7 +8950,7 @@ var Switch = (props) => {
8829
8950
  ),
8830
8951
  onClick: handleClick,
8831
8952
  "aria-disabled": disabled || isAnimating,
8832
- children: /* @__PURE__ */ jsx337("div", { className: clsx_default("knob", value ? "checked" : void 0) })
8953
+ children: /* @__PURE__ */ jsx339("div", { className: clsx_default("knob", value ? "checked" : void 0) })
8833
8954
  }
8834
8955
  );
8835
8956
  };
@@ -8837,26 +8958,27 @@ Switch.displayName = "Switch";
8837
8958
  var Switch_default = Switch;
8838
8959
 
8839
8960
  // src/components/Table/TableContext.tsx
8840
- import React31 from "react";
8841
- var TableContext = React31.createContext(null);
8961
+ import React33 from "react";
8962
+ var TableContext = React33.createContext(null);
8842
8963
  var useTableContext = () => {
8843
- const ctx = React31.useContext(TableContext);
8964
+ const ctx = React33.useContext(TableContext);
8844
8965
  if (!ctx) throw new Error("Table components must be used inside <Table>");
8845
8966
  return ctx;
8846
8967
  };
8847
8968
  var TableContext_default = TableContext;
8848
8969
 
8849
8970
  // src/components/Table/Table.tsx
8850
- import { jsx as jsx338 } from "react/jsx-runtime";
8971
+ import { jsx as jsx340 } from "react/jsx-runtime";
8851
8972
  var Table = (props) => {
8852
8973
  const {
8853
8974
  children,
8975
+ size = "md",
8854
8976
  rowBorderUse = true,
8855
8977
  colBorderUse = true,
8856
8978
  headerSticky = false,
8857
8979
  stickyShadow = true
8858
8980
  } = props;
8859
- return /* @__PURE__ */ jsx338("div", { className: "lib-xplat-table-wrapper", children: /* @__PURE__ */ jsx338(
8981
+ return /* @__PURE__ */ jsx340("div", { className: `lib-xplat-table-wrapper ${size}`, children: /* @__PURE__ */ jsx340(
8860
8982
  TableContext_default.Provider,
8861
8983
  {
8862
8984
  value: {
@@ -8865,7 +8987,7 @@ var Table = (props) => {
8865
8987
  headerSticky,
8866
8988
  stickyShadow
8867
8989
  },
8868
- children: /* @__PURE__ */ jsx338("table", { className: "lib-xplat-table", children })
8990
+ children: /* @__PURE__ */ jsx340("table", { className: "lib-xplat-table", children })
8869
8991
  }
8870
8992
  ) });
8871
8993
  };
@@ -8873,41 +8995,41 @@ Table.displayName = "Table";
8873
8995
  var Table_default = Table;
8874
8996
 
8875
8997
  // src/components/Table/TableBody.tsx
8876
- import { jsx as jsx339 } from "react/jsx-runtime";
8998
+ import { jsx as jsx341 } from "react/jsx-runtime";
8877
8999
  var TableBody = (props) => {
8878
9000
  const { children } = props;
8879
- return /* @__PURE__ */ jsx339("tbody", { children });
9001
+ return /* @__PURE__ */ jsx341("tbody", { children });
8880
9002
  };
8881
9003
  TableBody.displayName = "TableBody";
8882
9004
  var TableBody_default = TableBody;
8883
9005
 
8884
9006
  // src/components/Table/TableCell.tsx
8885
- import React34 from "react";
9007
+ import React36 from "react";
8886
9008
 
8887
9009
  // src/components/Table/TableHeadContext.tsx
8888
- import React32 from "react";
8889
- var TableHeadContext = React32.createContext(
9010
+ import React34 from "react";
9011
+ var TableHeadContext = React34.createContext(
8890
9012
  null
8891
9013
  );
8892
9014
  var useTableHeadContext = () => {
8893
- const ctx = React32.useContext(TableHeadContext);
9015
+ const ctx = React34.useContext(TableHeadContext);
8894
9016
  return ctx;
8895
9017
  };
8896
9018
  var TableHeadContext_default = TableHeadContext;
8897
9019
 
8898
9020
  // src/components/Table/TableRowContext.tsx
8899
- import React33 from "react";
8900
- var TableRowContext = React33.createContext(null);
9021
+ import React35 from "react";
9022
+ var TableRowContext = React35.createContext(null);
8901
9023
  var useTableRowContext = () => {
8902
- const ctx = React33.useContext(TableRowContext);
9024
+ const ctx = React35.useContext(TableRowContext);
8903
9025
  if (!ctx) throw new Error("Table components must be used inside <Table>");
8904
9026
  return ctx;
8905
9027
  };
8906
9028
  var TableRowContext_default = TableRowContext;
8907
9029
 
8908
9030
  // src/components/Table/TableCell.tsx
8909
- import { jsx as jsx340 } from "react/jsx-runtime";
8910
- var TableCell = React34.memo((props) => {
9031
+ import { jsx as jsx342 } from "react/jsx-runtime";
9032
+ var TableCell = React36.memo((props) => {
8911
9033
  const {
8912
9034
  children,
8913
9035
  align = "center",
@@ -8919,9 +9041,9 @@ var TableCell = React34.memo((props) => {
8919
9041
  const { registerStickyCell, stickyCells } = useTableRowContext();
8920
9042
  const { stickyShadow } = useTableContext();
8921
9043
  const headContext = useTableHeadContext();
8922
- const [left, setLeft] = React34.useState(0);
8923
- const cellRef = React34.useRef(null);
8924
- const calculateLeft = React34.useCallback(() => {
9044
+ const [left, setLeft] = React36.useState(0);
9045
+ const cellRef = React36.useRef(null);
9046
+ const calculateLeft = React36.useCallback(() => {
8925
9047
  if (!cellRef.current) return 0;
8926
9048
  let totalLeft = 0;
8927
9049
  for (const ref of stickyCells) {
@@ -8930,7 +9052,7 @@ var TableCell = React34.memo((props) => {
8930
9052
  }
8931
9053
  return totalLeft;
8932
9054
  }, [stickyCells]);
8933
- React34.useEffect(() => {
9055
+ React36.useEffect(() => {
8934
9056
  if (!isSticky || !cellRef.current) return;
8935
9057
  registerStickyCell(cellRef);
8936
9058
  setLeft(calculateLeft());
@@ -8948,7 +9070,7 @@ var TableCell = React34.memo((props) => {
8948
9070
  const CellTag = cellRef.current?.tagName === "TH" ? "th" : "td";
8949
9071
  const isLastSticky = isSticky && stickyCells[stickyCells.length - 1] === cellRef;
8950
9072
  const enableHover = headContext && headContext.cellHover;
8951
- return /* @__PURE__ */ jsx340(
9073
+ return /* @__PURE__ */ jsx342(
8952
9074
  CellTag,
8953
9075
  {
8954
9076
  ref: cellRef,
@@ -8973,21 +9095,21 @@ TableCell.displayName = "TableCell";
8973
9095
  var TableCell_default = TableCell;
8974
9096
 
8975
9097
  // src/components/Table/TableHead.tsx
8976
- import { jsx as jsx341 } from "react/jsx-runtime";
9098
+ import { jsx as jsx343 } from "react/jsx-runtime";
8977
9099
  var TableHead = ({
8978
9100
  children,
8979
9101
  cellHover = false
8980
9102
  }) => {
8981
9103
  const { headerSticky } = useTableContext();
8982
- return /* @__PURE__ */ jsx341(TableHeadContext_default.Provider, { value: { cellHover }, children: /* @__PURE__ */ jsx341("thead", { className: clsx_default(headerSticky ? "table-sticky" : null), children }) });
9104
+ return /* @__PURE__ */ jsx343(TableHeadContext_default.Provider, { value: { cellHover }, children: /* @__PURE__ */ jsx343("thead", { className: clsx_default(headerSticky ? "table-sticky" : null), children }) });
8983
9105
  };
8984
9106
  TableHead.displayName = "TableHead";
8985
9107
  var TableHead_default = TableHead;
8986
9108
 
8987
9109
  // src/components/Table/TableRow.tsx
8988
- import React35 from "react";
8989
- import { jsx as jsx342 } from "react/jsx-runtime";
8990
- var TableRow = React35.memo((props) => {
9110
+ import React37 from "react";
9111
+ import { jsx as jsx344 } from "react/jsx-runtime";
9112
+ var TableRow = React37.memo((props) => {
8991
9113
  const {
8992
9114
  children,
8993
9115
  type = "secondary",
@@ -8995,14 +9117,14 @@ var TableRow = React35.memo((props) => {
8995
9117
  onClick
8996
9118
  } = props;
8997
9119
  const { rowBorderUse } = useTableContext();
8998
- const [stickyCells, setStickyCells] = React35.useState([]);
9120
+ const [stickyCells, setStickyCells] = React37.useState([]);
8999
9121
  const registerStickyCell = (ref) => {
9000
9122
  setStickyCells((prev) => {
9001
9123
  if (prev.includes(ref)) return prev;
9002
9124
  return [...prev, ref];
9003
9125
  });
9004
9126
  };
9005
- return /* @__PURE__ */ jsx342(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ jsx342(
9127
+ return /* @__PURE__ */ jsx344(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ jsx344(
9006
9128
  "tr",
9007
9129
  {
9008
9130
  className: clsx_default(
@@ -9020,7 +9142,7 @@ TableRow.displayName = "TableRow";
9020
9142
  var TableRow_default = TableRow;
9021
9143
 
9022
9144
  // src/components/Tag/Tag.tsx
9023
- import { jsx as jsx343, jsxs as jsxs218 } from "react/jsx-runtime";
9145
+ import { jsx as jsx345, jsxs as jsxs219 } from "react/jsx-runtime";
9024
9146
  var Tag = (props) => {
9025
9147
  const {
9026
9148
  children,
@@ -9030,7 +9152,7 @@ var Tag = (props) => {
9030
9152
  disabled = false,
9031
9153
  colorIndex
9032
9154
  } = props;
9033
- return /* @__PURE__ */ jsxs218(
9155
+ return /* @__PURE__ */ jsxs219(
9034
9156
  "span",
9035
9157
  {
9036
9158
  className: clsx_default(
@@ -9041,8 +9163,8 @@ var Tag = (props) => {
9041
9163
  disabled && "disabled"
9042
9164
  ),
9043
9165
  children: [
9044
- /* @__PURE__ */ jsx343("span", { className: "tag-label", children }),
9045
- onClose && /* @__PURE__ */ jsx343("button", { className: "tag-close", onClick: onClose, "aria-label": "\uC0AD\uC81C", disabled, children: /* @__PURE__ */ jsx343(XIcon_default, {}) })
9166
+ /* @__PURE__ */ jsx345("span", { className: "tag-label", children }),
9167
+ onClose && /* @__PURE__ */ jsx345("button", { className: "tag-close", onClick: onClose, "aria-label": "\uC0AD\uC81C", disabled, children: /* @__PURE__ */ jsx345(XIcon_default, {}) })
9046
9168
  ]
9047
9169
  }
9048
9170
  );
@@ -9050,83 +9172,26 @@ var Tag = (props) => {
9050
9172
  Tag.displayName = "Tag";
9051
9173
  var Tag_default = Tag;
9052
9174
 
9053
- // src/components/TextArea/TextArea.tsx
9054
- import React36 from "react";
9055
- import { jsx as jsx344 } from "react/jsx-runtime";
9056
- var TextArea = React36.forwardRef(
9057
- (props, ref) => {
9058
- const { value, onChange, disabled, ...textareaProps } = props;
9059
- const localRef = React36.useRef(null);
9060
- const setRefs = (el) => {
9061
- localRef.current = el;
9062
- if (!ref) return;
9063
- if (typeof ref === "function") {
9064
- ref(el);
9065
- } else if (ref && typeof ref === "object" && "current" in ref) {
9066
- ref.current = el;
9067
- }
9068
- };
9069
- const handleOnChange = (e) => {
9070
- const val = e.target.value;
9071
- if (onChange) {
9072
- const event = {
9073
- ...e,
9074
- target: { value: val }
9075
- };
9076
- onChange(event);
9077
- }
9078
- };
9079
- React36.useEffect(() => {
9080
- const el = localRef.current;
9081
- if (!el) return;
9082
- el.style.height = "0px";
9083
- const nextHeight = Math.min(el.scrollHeight, 400);
9084
- el.style.height = `${nextHeight}px`;
9085
- }, [value]);
9086
- return /* @__PURE__ */ jsx344("div", { className: "lib-xplat-textarea-wrapper", children: /* @__PURE__ */ jsx344(
9087
- "div",
9088
- {
9089
- className: clsx_default(
9090
- "lib-xplat-textarea",
9091
- disabled ? "disabled" : void 0
9092
- ),
9093
- children: /* @__PURE__ */ jsx344(
9094
- "textarea",
9095
- {
9096
- ...textareaProps,
9097
- ref: setRefs,
9098
- disabled,
9099
- value,
9100
- onChange: handleOnChange
9101
- }
9102
- )
9103
- }
9104
- ) });
9105
- }
9106
- );
9107
- TextArea.displayName = "TextArea";
9108
- var TextArea_default = TextArea;
9109
-
9110
9175
  // src/components/Toast/Toast.tsx
9111
- import React37 from "react";
9176
+ import React38 from "react";
9112
9177
  import { createPortal as createPortal3 } from "react-dom";
9113
- import { jsx as jsx345, jsxs as jsxs219 } from "react/jsx-runtime";
9114
- var ToastContext = React37.createContext(null);
9178
+ import { jsx as jsx346, jsxs as jsxs220 } from "react/jsx-runtime";
9179
+ var ToastContext = React38.createContext(null);
9115
9180
  var useToast = () => {
9116
- const ctx = React37.useContext(ToastContext);
9181
+ const ctx = React38.useContext(ToastContext);
9117
9182
  if (!ctx) throw new Error("useToast must be used within ToastProvider");
9118
9183
  return ctx;
9119
9184
  };
9120
9185
  var EXIT_DURATION = 300;
9121
9186
  var ToastItemComponent = ({ item, isExiting, onClose }) => {
9122
- const ref = React37.useRef(null);
9123
- const [height, setHeight] = React37.useState(void 0);
9124
- React37.useEffect(() => {
9187
+ const ref = React38.useRef(null);
9188
+ const [height, setHeight] = React38.useState(void 0);
9189
+ React38.useEffect(() => {
9125
9190
  if (ref.current && !isExiting) {
9126
9191
  setHeight(ref.current.offsetHeight);
9127
9192
  }
9128
9193
  }, [isExiting]);
9129
- return /* @__PURE__ */ jsx345(
9194
+ return /* @__PURE__ */ jsx346(
9130
9195
  "div",
9131
9196
  {
9132
9197
  className: clsx_default("lib-xplat-toast-wrapper", { exit: isExiting }),
@@ -9134,15 +9199,15 @@ var ToastItemComponent = ({ item, isExiting, onClose }) => {
9134
9199
  maxHeight: isExiting ? 0 : height ?? "none",
9135
9200
  marginBottom: isExiting ? 0 : void 0
9136
9201
  },
9137
- children: /* @__PURE__ */ jsxs219(
9202
+ children: /* @__PURE__ */ jsxs220(
9138
9203
  "div",
9139
9204
  {
9140
9205
  ref,
9141
9206
  className: clsx_default("lib-xplat-toast", item.type, { exit: isExiting }),
9142
9207
  role: "alert",
9143
9208
  children: [
9144
- /* @__PURE__ */ jsx345("span", { className: "message", children: item.message }),
9145
- /* @__PURE__ */ jsx345("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
9209
+ /* @__PURE__ */ jsx346("span", { className: "message", children: item.message }),
9210
+ /* @__PURE__ */ jsx346("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
9146
9211
  ]
9147
9212
  }
9148
9213
  )
@@ -9153,13 +9218,13 @@ var ToastProvider = ({
9153
9218
  children,
9154
9219
  position = "top-right"
9155
9220
  }) => {
9156
- const [toasts, setToasts] = React37.useState([]);
9157
- const [removing, setRemoving] = React37.useState(/* @__PURE__ */ new Set());
9158
- const [mounted, setMounted] = React37.useState(false);
9159
- React37.useEffect(() => {
9221
+ const [toasts, setToasts] = React38.useState([]);
9222
+ const [removing, setRemoving] = React38.useState(/* @__PURE__ */ new Set());
9223
+ const [mounted, setMounted] = React38.useState(false);
9224
+ React38.useEffect(() => {
9160
9225
  setMounted(true);
9161
9226
  }, []);
9162
- const remove = React37.useCallback((id) => {
9227
+ const remove = React38.useCallback((id) => {
9163
9228
  setRemoving((prev) => new Set(prev).add(id));
9164
9229
  setTimeout(() => {
9165
9230
  setToasts((prev) => prev.filter((t) => t.id !== id));
@@ -9170,7 +9235,7 @@ var ToastProvider = ({
9170
9235
  });
9171
9236
  }, EXIT_DURATION);
9172
9237
  }, []);
9173
- const toast = React37.useCallback(
9238
+ const toast = React38.useCallback(
9174
9239
  (type, message, duration = 3e3) => {
9175
9240
  const id = `${Date.now()}-${Math.random()}`;
9176
9241
  setToasts((prev) => [...prev, { id, type, message }]);
@@ -9180,10 +9245,10 @@ var ToastProvider = ({
9180
9245
  },
9181
9246
  [remove]
9182
9247
  );
9183
- return /* @__PURE__ */ jsxs219(ToastContext.Provider, { value: { toast }, children: [
9248
+ return /* @__PURE__ */ jsxs220(ToastContext.Provider, { value: { toast }, children: [
9184
9249
  children,
9185
9250
  mounted && createPortal3(
9186
- /* @__PURE__ */ jsx345("div", { className: clsx_default("lib-xplat-toast-container", position), children: toasts.map((t) => /* @__PURE__ */ jsx345(
9251
+ /* @__PURE__ */ jsx346("div", { className: clsx_default("lib-xplat-toast-container", position), children: toasts.map((t) => /* @__PURE__ */ jsx346(
9187
9252
  ToastItemComponent,
9188
9253
  {
9189
9254
  item: t,
@@ -9199,29 +9264,29 @@ var ToastProvider = ({
9199
9264
  ToastProvider.displayName = "ToastProvider";
9200
9265
 
9201
9266
  // src/components/Tooltip/Tooltip.tsx
9202
- import React38 from "react";
9203
- import { jsx as jsx346, jsxs as jsxs220 } from "react/jsx-runtime";
9267
+ import React39 from "react";
9268
+ import { jsx as jsx347, jsxs as jsxs221 } from "react/jsx-runtime";
9204
9269
  var Tooltip = (props) => {
9205
9270
  const {
9206
9271
  type = "primary",
9207
9272
  description,
9208
9273
  children
9209
9274
  } = props;
9210
- const iconRef = React38.useRef(null);
9211
- return /* @__PURE__ */ jsxs220("div", { className: "lib-xplat-tooltip", children: [
9212
- /* @__PURE__ */ jsx346("div", { className: "tooltip-content", ref: iconRef, children: children || "Tooltip" }),
9213
- /* @__PURE__ */ jsx346("div", { className: clsx_default("tooltip-wrapper", type), children: description })
9275
+ const iconRef = React39.useRef(null);
9276
+ return /* @__PURE__ */ jsxs221("div", { className: "lib-xplat-tooltip", children: [
9277
+ /* @__PURE__ */ jsx347("div", { className: "tooltip-content", ref: iconRef, children: children || "Tooltip" }),
9278
+ /* @__PURE__ */ jsx347("div", { className: clsx_default("tooltip-wrapper", type), children: description })
9214
9279
  ] });
9215
9280
  };
9216
9281
  Tooltip.displayName = "Tooltip";
9217
9282
  var Tooltip_default = Tooltip;
9218
9283
 
9219
9284
  // src/components/Video/Video.tsx
9220
- import React39 from "react";
9221
- import { jsx as jsx347, jsxs as jsxs221 } from "react/jsx-runtime";
9222
- 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: [
9223
- /* @__PURE__ */ jsx347("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
9224
- /* @__PURE__ */ jsx347("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
9285
+ import React40 from "react";
9286
+ import { jsx as jsx348, jsxs as jsxs222 } from "react/jsx-runtime";
9287
+ 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: [
9288
+ /* @__PURE__ */ jsx348("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
9289
+ /* @__PURE__ */ jsx348("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
9225
9290
  ] });
9226
9291
  var formatTime = (sec) => {
9227
9292
  if (!Number.isFinite(sec) || sec < 0) return "0:00";
@@ -9229,7 +9294,7 @@ var formatTime = (sec) => {
9229
9294
  const s = Math.floor(sec % 60);
9230
9295
  return `${m}:${s.toString().padStart(2, "0")}`;
9231
9296
  };
9232
- var Video = React39.forwardRef((props, ref) => {
9297
+ var Video = React40.forwardRef((props, ref) => {
9233
9298
  const {
9234
9299
  src,
9235
9300
  poster,
@@ -9253,21 +9318,21 @@ var Video = React39.forwardRef((props, ref) => {
9253
9318
  children,
9254
9319
  ...rest
9255
9320
  } = props;
9256
- const containerRef = React39.useRef(null);
9257
- const videoRef = React39.useRef(null);
9258
- const [isPlaying, setIsPlaying] = React39.useState(Boolean(autoPlay));
9259
- const [isLoaded, setIsLoaded] = React39.useState(false);
9260
- const [currentTime, setCurrentTime] = React39.useState(0);
9261
- const [duration, setDuration] = React39.useState(0);
9262
- const [buffered, setBuffered] = React39.useState(0);
9263
- const [volume, setVolume] = React39.useState(1);
9264
- const [isMuted, setIsMuted] = React39.useState(Boolean(muted));
9265
- const [isFullscreen, setIsFullscreen] = React39.useState(false);
9266
- const [playbackRate, setPlaybackRate] = React39.useState(1);
9267
- const [rateMenuOpen, setRateMenuOpen] = React39.useState(false);
9268
- const [captionsOn, setCaptionsOn] = React39.useState(false);
9269
- const [isPip, setIsPip] = React39.useState(false);
9270
- const setRefs = React39.useCallback(
9321
+ const containerRef = React40.useRef(null);
9322
+ const videoRef = React40.useRef(null);
9323
+ const [isPlaying, setIsPlaying] = React40.useState(Boolean(autoPlay));
9324
+ const [isLoaded, setIsLoaded] = React40.useState(false);
9325
+ const [currentTime, setCurrentTime] = React40.useState(0);
9326
+ const [duration, setDuration] = React40.useState(0);
9327
+ const [buffered, setBuffered] = React40.useState(0);
9328
+ const [volume, setVolume] = React40.useState(1);
9329
+ const [isMuted, setIsMuted] = React40.useState(Boolean(muted));
9330
+ const [isFullscreen, setIsFullscreen] = React40.useState(false);
9331
+ const [playbackRate, setPlaybackRate] = React40.useState(1);
9332
+ const [rateMenuOpen, setRateMenuOpen] = React40.useState(false);
9333
+ const [captionsOn, setCaptionsOn] = React40.useState(false);
9334
+ const [isPip, setIsPip] = React40.useState(false);
9335
+ const setRefs = React40.useCallback(
9271
9336
  (el) => {
9272
9337
  videoRef.current = el;
9273
9338
  if (typeof ref === "function") ref(el);
@@ -9275,14 +9340,14 @@ var Video = React39.forwardRef((props, ref) => {
9275
9340
  },
9276
9341
  [ref]
9277
9342
  );
9278
- React39.useEffect(() => {
9343
+ React40.useEffect(() => {
9279
9344
  const onFsChange = () => {
9280
9345
  setIsFullscreen(document.fullscreenElement === containerRef.current);
9281
9346
  };
9282
9347
  document.addEventListener("fullscreenchange", onFsChange);
9283
9348
  return () => document.removeEventListener("fullscreenchange", onFsChange);
9284
9349
  }, []);
9285
- React39.useEffect(() => {
9350
+ React40.useEffect(() => {
9286
9351
  const v = videoRef.current;
9287
9352
  if (!v) return;
9288
9353
  const onEnter = () => setIsPip(true);
@@ -9396,13 +9461,13 @@ var Video = React39.forwardRef((props, ref) => {
9396
9461
  const volumePct = (isMuted ? 0 : volume) * 100;
9397
9462
  const VolumeGlyph = isMuted || volume === 0 ? VolumeXIcon_default : volume < 0.5 ? VolumeIcon_default : Volume2Icon_default;
9398
9463
  const pipSupported = typeof document !== "undefined" && "pictureInPictureEnabled" in document && document.pictureInPictureEnabled;
9399
- return /* @__PURE__ */ jsxs221(
9464
+ return /* @__PURE__ */ jsxs222(
9400
9465
  "div",
9401
9466
  {
9402
9467
  ref: containerRef,
9403
9468
  className: clsx_default("lib-xplat-video", showControls && "has-controls"),
9404
9469
  children: [
9405
- /* @__PURE__ */ jsx347(
9470
+ /* @__PURE__ */ jsx348(
9406
9471
  "video",
9407
9472
  {
9408
9473
  ref: setRefs,
@@ -9423,7 +9488,7 @@ var Video = React39.forwardRef((props, ref) => {
9423
9488
  children
9424
9489
  }
9425
9490
  ),
9426
- showCenterPlay && /* @__PURE__ */ jsx347(
9491
+ showCenterPlay && /* @__PURE__ */ jsx348(
9427
9492
  "button",
9428
9493
  {
9429
9494
  type: "button",
@@ -9435,11 +9500,11 @@ var Video = React39.forwardRef((props, ref) => {
9435
9500
  onClick: togglePlay,
9436
9501
  "aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
9437
9502
  tabIndex: -1,
9438
- children: /* @__PURE__ */ jsx347("span", { className: "center-play-icon", children: /* @__PURE__ */ jsx347(PlayCircleIcon_default, {}) })
9503
+ children: /* @__PURE__ */ jsx348("span", { className: "center-play-icon", children: /* @__PURE__ */ jsx348(PlayCircleIcon_default, {}) })
9439
9504
  }
9440
9505
  ),
9441
- showControls && /* @__PURE__ */ jsxs221("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
9442
- /* @__PURE__ */ jsx347(
9506
+ showControls && /* @__PURE__ */ jsxs222("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
9507
+ /* @__PURE__ */ jsx348(
9443
9508
  "input",
9444
9509
  {
9445
9510
  type: "range",
@@ -9456,29 +9521,29 @@ var Video = React39.forwardRef((props, ref) => {
9456
9521
  }
9457
9522
  }
9458
9523
  ),
9459
- /* @__PURE__ */ jsxs221("div", { className: "controls-row", children: [
9460
- /* @__PURE__ */ jsx347(
9524
+ /* @__PURE__ */ jsxs222("div", { className: "controls-row", children: [
9525
+ /* @__PURE__ */ jsx348(
9461
9526
  "button",
9462
9527
  {
9463
9528
  type: "button",
9464
9529
  className: "control-btn",
9465
9530
  onClick: togglePlay,
9466
9531
  "aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
9467
- children: isPlaying ? /* @__PURE__ */ jsx347(PauseIcon_default, {}) : /* @__PURE__ */ jsx347(PlayIcon_default, {})
9532
+ children: isPlaying ? /* @__PURE__ */ jsx348(PauseIcon_default, {}) : /* @__PURE__ */ jsx348(PlayIcon_default, {})
9468
9533
  }
9469
9534
  ),
9470
- /* @__PURE__ */ jsxs221("div", { className: "volume-group", children: [
9471
- /* @__PURE__ */ jsx347(
9535
+ /* @__PURE__ */ jsxs222("div", { className: "volume-group", children: [
9536
+ /* @__PURE__ */ jsx348(
9472
9537
  "button",
9473
9538
  {
9474
9539
  type: "button",
9475
9540
  className: "control-btn",
9476
9541
  onClick: toggleMute,
9477
9542
  "aria-label": isMuted ? "\uC74C\uC18C\uAC70 \uD574\uC81C" : "\uC74C\uC18C\uAC70",
9478
- children: /* @__PURE__ */ jsx347(VolumeGlyph, {})
9543
+ children: /* @__PURE__ */ jsx348(VolumeGlyph, {})
9479
9544
  }
9480
9545
  ),
9481
- /* @__PURE__ */ jsx347(
9546
+ /* @__PURE__ */ jsx348(
9482
9547
  "input",
9483
9548
  {
9484
9549
  type: "range",
@@ -9493,14 +9558,14 @@ var Video = React39.forwardRef((props, ref) => {
9493
9558
  }
9494
9559
  )
9495
9560
  ] }),
9496
- /* @__PURE__ */ jsxs221("span", { className: "time", children: [
9561
+ /* @__PURE__ */ jsxs222("span", { className: "time", children: [
9497
9562
  formatTime(currentTime),
9498
9563
  " / ",
9499
9564
  formatTime(duration)
9500
9565
  ] }),
9501
- /* @__PURE__ */ jsx347("div", { className: "controls-spacer" }),
9502
- playbackRates && playbackRates.length > 0 && /* @__PURE__ */ jsxs221("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
9503
- /* @__PURE__ */ jsxs221(
9566
+ /* @__PURE__ */ jsx348("div", { className: "controls-spacer" }),
9567
+ playbackRates && playbackRates.length > 0 && /* @__PURE__ */ jsxs222("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
9568
+ /* @__PURE__ */ jsxs222(
9504
9569
  "button",
9505
9570
  {
9506
9571
  type: "button",
@@ -9514,7 +9579,7 @@ var Video = React39.forwardRef((props, ref) => {
9514
9579
  ]
9515
9580
  }
9516
9581
  ),
9517
- rateMenuOpen && /* @__PURE__ */ jsx347("ul", { className: "rate-menu", role: "menu", children: playbackRates.map((r2) => /* @__PURE__ */ jsx347("li", { children: /* @__PURE__ */ jsxs221(
9582
+ rateMenuOpen && /* @__PURE__ */ jsx348("ul", { className: "rate-menu", role: "menu", children: playbackRates.map((r2) => /* @__PURE__ */ jsx348("li", { children: /* @__PURE__ */ jsxs222(
9518
9583
  "button",
9519
9584
  {
9520
9585
  type: "button",
@@ -9528,7 +9593,7 @@ var Video = React39.forwardRef((props, ref) => {
9528
9593
  }
9529
9594
  ) }, r2)) })
9530
9595
  ] }),
9531
- showCaptions && /* @__PURE__ */ jsx347(
9596
+ showCaptions && /* @__PURE__ */ jsx348(
9532
9597
  "button",
9533
9598
  {
9534
9599
  type: "button",
@@ -9536,37 +9601,37 @@ var Video = React39.forwardRef((props, ref) => {
9536
9601
  onClick: toggleCaptions,
9537
9602
  "aria-label": captionsOn ? "\uC790\uB9C9 \uB044\uAE30" : "\uC790\uB9C9 \uCF1C\uAE30",
9538
9603
  "aria-pressed": captionsOn,
9539
- children: /* @__PURE__ */ jsx347(TypeIcon_default, {})
9604
+ children: /* @__PURE__ */ jsx348(TypeIcon_default, {})
9540
9605
  }
9541
9606
  ),
9542
- showPip && pipSupported && /* @__PURE__ */ jsx347(
9607
+ showPip && pipSupported && /* @__PURE__ */ jsx348(
9543
9608
  "button",
9544
9609
  {
9545
9610
  type: "button",
9546
9611
  className: clsx_default("control-btn", isPip && "is-active"),
9547
9612
  onClick: togglePip,
9548
9613
  "aria-label": isPip ? "PIP \uC885\uB8CC" : "PIP",
9549
- children: /* @__PURE__ */ jsx347(PipIcon, {})
9614
+ children: /* @__PURE__ */ jsx348(PipIcon, {})
9550
9615
  }
9551
9616
  ),
9552
- showDownload && /* @__PURE__ */ jsx347(
9617
+ showDownload && /* @__PURE__ */ jsx348(
9553
9618
  "a",
9554
9619
  {
9555
9620
  className: "control-btn",
9556
9621
  href: src,
9557
9622
  download: downloadFileName ?? true,
9558
9623
  "aria-label": "\uB2E4\uC6B4\uB85C\uB4DC",
9559
- children: /* @__PURE__ */ jsx347(DownloadIcon_default, {})
9624
+ children: /* @__PURE__ */ jsx348(DownloadIcon_default, {})
9560
9625
  }
9561
9626
  ),
9562
- /* @__PURE__ */ jsx347(
9627
+ /* @__PURE__ */ jsx348(
9563
9628
  "button",
9564
9629
  {
9565
9630
  type: "button",
9566
9631
  className: "control-btn",
9567
9632
  onClick: toggleFullscreen,
9568
9633
  "aria-label": isFullscreen ? "\uC804\uCCB4\uD654\uBA74 \uC885\uB8CC" : "\uC804\uCCB4\uD654\uBA74",
9569
- children: isFullscreen ? /* @__PURE__ */ jsx347(MinimizeIcon_default, {}) : /* @__PURE__ */ jsx347(MaximizeIcon_default, {})
9634
+ children: isFullscreen ? /* @__PURE__ */ jsx348(MinimizeIcon_default, {}) : /* @__PURE__ */ jsx348(MaximizeIcon_default, {})
9570
9635
  }
9571
9636
  )
9572
9637
  ] })
@@ -9579,7 +9644,7 @@ Video.displayName = "Video";
9579
9644
  var Video_default = Video;
9580
9645
 
9581
9646
  // src/layout/Grid/FullGrid/FullGrid.tsx
9582
- import { jsx as jsx348 } from "react/jsx-runtime";
9647
+ import { jsx as jsx349 } from "react/jsx-runtime";
9583
9648
  var GAP_MAP = {
9584
9649
  none: "var(--spacing-space-none)",
9585
9650
  xs: "var(--spacing-space-1)",
@@ -9592,13 +9657,13 @@ var GAP_MAP = {
9592
9657
  var FullGrid = (props) => {
9593
9658
  const { children, gap } = props;
9594
9659
  const style = gap != null ? { gap: GAP_MAP[gap] } : void 0;
9595
- return /* @__PURE__ */ jsx348("div", { className: "lib-xplat-full-grid", style, children });
9660
+ return /* @__PURE__ */ jsx349("div", { className: "lib-xplat-full-grid", style, children });
9596
9661
  };
9597
9662
  FullGrid.displayName = "FullGrid";
9598
9663
  var FullGrid_default = FullGrid;
9599
9664
 
9600
9665
  // src/layout/Grid/FullScreen/FullScreen.tsx
9601
- import { jsx as jsx349 } from "react/jsx-runtime";
9666
+ import { jsx as jsx350 } from "react/jsx-runtime";
9602
9667
  var GAP_MAP2 = {
9603
9668
  none: "var(--spacing-space-none)",
9604
9669
  xs: "var(--spacing-space-1)",
@@ -9611,13 +9676,13 @@ var GAP_MAP2 = {
9611
9676
  var FullScreen = (props) => {
9612
9677
  const { children, gap } = props;
9613
9678
  const style = gap != null ? { gap: GAP_MAP2[gap] } : void 0;
9614
- return /* @__PURE__ */ jsx349("div", { className: "lib-xplat-full-screen", style, children });
9679
+ return /* @__PURE__ */ jsx350("div", { className: "lib-xplat-full-screen", style, children });
9615
9680
  };
9616
9681
  FullScreen.displayName = "FullScreen";
9617
9682
  var FullScreen_default = FullScreen;
9618
9683
 
9619
9684
  // src/layout/Grid/Item/Item.tsx
9620
- import { jsx as jsx350 } from "react/jsx-runtime";
9685
+ import { jsx as jsx351 } from "react/jsx-runtime";
9621
9686
  var calculateSpans = (column) => {
9622
9687
  const spans = {};
9623
9688
  let inherited = column.default;
@@ -9634,35 +9699,35 @@ var GridItem = ({ column, children, className }) => {
9634
9699
  Object.entries(spans).forEach(([key, value]) => {
9635
9700
  style[`--column-${key}`] = value;
9636
9701
  });
9637
- return /* @__PURE__ */ jsx350("div", { className: clsx_default("lib-xplat-grid-item", className), style, children });
9702
+ return /* @__PURE__ */ jsx351("div", { className: clsx_default("lib-xplat-grid-item", className), style, children });
9638
9703
  };
9639
9704
  GridItem.displayName = "GridItem";
9640
9705
  var Item_default = GridItem;
9641
9706
 
9642
9707
  // src/layout/Header/Header.tsx
9643
- import { jsx as jsx351, jsxs as jsxs222 } from "react/jsx-runtime";
9708
+ import { jsx as jsx352, jsxs as jsxs223 } from "react/jsx-runtime";
9644
9709
  var Header = ({
9645
9710
  logo,
9646
9711
  centerContent,
9647
9712
  rightContent
9648
9713
  }) => {
9649
- return /* @__PURE__ */ jsxs222("div", { className: "lib-xplat-layout-header", children: [
9650
- /* @__PURE__ */ jsx351("div", { children: logo }),
9651
- /* @__PURE__ */ jsx351("div", { children: centerContent }),
9652
- /* @__PURE__ */ jsx351("div", { children: rightContent })
9714
+ return /* @__PURE__ */ jsxs223("div", { className: "lib-xplat-layout-header", children: [
9715
+ /* @__PURE__ */ jsx352("div", { children: logo }),
9716
+ /* @__PURE__ */ jsx352("div", { children: centerContent }),
9717
+ /* @__PURE__ */ jsx352("div", { children: rightContent })
9653
9718
  ] });
9654
9719
  };
9655
9720
  Header.displayName = "Header";
9656
9721
  var Header_default = Header;
9657
9722
 
9658
9723
  // src/layout/Layout/Layout.tsx
9659
- import { Fragment as Fragment5, jsx as jsx352, jsxs as jsxs223 } from "react/jsx-runtime";
9724
+ import { Fragment as Fragment5, jsx as jsx353, jsxs as jsxs224 } from "react/jsx-runtime";
9660
9725
  var Layout = (props) => {
9661
9726
  const { header, sideBar, children } = props;
9662
- return /* @__PURE__ */ jsx352("div", { className: "lib-xplat-layout", children: /* @__PURE__ */ jsxs223("div", { className: "lib-xplat-layout-content-wrapper", children: [
9663
- sideBar && /* @__PURE__ */ jsx352(Fragment5, { children: sideBar }),
9664
- /* @__PURE__ */ jsxs223("div", { className: "lib-xplat-layout-content", children: [
9665
- header && /* @__PURE__ */ jsx352("div", { className: "lib-xplat-layout-conent-header", children: header }),
9727
+ return /* @__PURE__ */ jsx353("div", { className: "lib-xplat-layout", children: /* @__PURE__ */ jsxs224("div", { className: "lib-xplat-layout-content-wrapper", children: [
9728
+ sideBar && /* @__PURE__ */ jsx353(Fragment5, { children: sideBar }),
9729
+ /* @__PURE__ */ jsxs224("div", { className: "lib-xplat-layout-content", children: [
9730
+ header && /* @__PURE__ */ jsx353("div", { className: "lib-xplat-layout-conent-header", children: header }),
9666
9731
  children
9667
9732
  ] })
9668
9733
  ] }) });
@@ -9671,31 +9736,31 @@ Layout.displayName = "Layout";
9671
9736
  var Layout_default = Layout;
9672
9737
 
9673
9738
  // src/layout/SideBar/SideBar.tsx
9674
- import React41 from "react";
9739
+ import React42 from "react";
9675
9740
 
9676
9741
  // src/layout/SideBar/SideBarContext.tsx
9677
- import React40 from "react";
9678
- var SideBarContext = React40.createContext(null);
9742
+ import React41 from "react";
9743
+ var SideBarContext = React41.createContext(null);
9679
9744
  var useSideBarContext = () => {
9680
- const ctx = React40.useContext(SideBarContext);
9745
+ const ctx = React41.useContext(SideBarContext);
9681
9746
  if (!ctx) throw new Error("Error");
9682
9747
  return ctx;
9683
9748
  };
9684
9749
  var SideBarContext_default = SideBarContext;
9685
9750
 
9686
9751
  // src/layout/SideBar/SideBar.tsx
9687
- import { jsx as jsx353 } from "react/jsx-runtime";
9752
+ import { jsx as jsx354 } from "react/jsx-runtime";
9688
9753
  var SideBar = (props) => {
9689
9754
  const { children, className } = props;
9690
- const [isOpen, setIsOpen] = React41.useState(true);
9755
+ const [isOpen, setIsOpen] = React42.useState(true);
9691
9756
  const handleSwitchSideBar = () => {
9692
9757
  setIsOpen((prev) => !prev);
9693
9758
  };
9694
- return /* @__PURE__ */ jsx353(
9759
+ return /* @__PURE__ */ jsx354(
9695
9760
  SideBarContext_default.Provider,
9696
9761
  {
9697
9762
  value: { isSidebarOpen: isOpen, handleSwitchSideBar },
9698
- children: /* @__PURE__ */ jsx353(
9763
+ children: /* @__PURE__ */ jsx354(
9699
9764
  "div",
9700
9765
  {
9701
9766
  className: clsx_default(
@@ -9774,6 +9839,7 @@ export {
9774
9839
  CardTab_default as CardTab,
9775
9840
  CastIcon_default as CastIcon,
9776
9841
  Chart_default as Chart,
9842
+ ChatInput_default as ChatInput,
9777
9843
  CheckBox_default as CheckBox,
9778
9844
  CheckCircleIcon_default as CheckCircleIcon,
9779
9845
  CheckIcon_default as CheckIcon,