@x-plat/design-system 0.5.22 → 0.5.24

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
@@ -6036,68 +6036,10 @@ Calendar.displayName = "Calendar";
6036
6036
  var Calendar_default = Calendar;
6037
6037
 
6038
6038
  // src/components/ChatInput/ChatInput.tsx
6039
- import React5 from "react";
6040
-
6041
- // src/components/TextArea/TextArea.tsx
6042
6039
  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(
6040
+ import { jsx as jsx302, jsxs as jsxs194 } from "react/jsx-runtime";
6041
+ var MAX_HEIGHT = 200;
6042
+ var ChatInput = React4.forwardRef(
6101
6043
  (props, ref) => {
6102
6044
  const {
6103
6045
  placeholder,
@@ -6108,9 +6050,24 @@ var ChatInput = React5.forwardRef(
6108
6050
  onChange
6109
6051
  } = props;
6110
6052
  const isControlled = valueProp !== void 0;
6111
- const [internalValue, setInternalValue] = React5.useState("");
6053
+ const [internalValue, setInternalValue] = React4.useState("");
6112
6054
  const value = isControlled ? valueProp : internalValue;
6113
6055
  const hasText = value.trim().length > 0;
6056
+ const textareaRef = React4.useRef(null);
6057
+ const setRefs = React4.useCallback(
6058
+ (el) => {
6059
+ textareaRef.current = el;
6060
+ if (typeof ref === "function") ref(el);
6061
+ else if (ref) ref.current = el;
6062
+ },
6063
+ [ref]
6064
+ );
6065
+ const updateHeight = React4.useCallback(() => {
6066
+ const el = textareaRef.current;
6067
+ if (!el) return;
6068
+ el.style.height = "0px";
6069
+ el.style.height = `${Math.min(el.scrollHeight, MAX_HEIGHT)}px`;
6070
+ }, []);
6114
6071
  const handleChange = (e) => {
6115
6072
  const val = e.target.value;
6116
6073
  if (!isControlled) setInternalValue(val);
@@ -6120,6 +6077,7 @@ var ChatInput = React5.forwardRef(
6120
6077
  if (!hasText || disabled) return;
6121
6078
  onSubmit?.(value);
6122
6079
  if (!isControlled) setInternalValue("");
6080
+ requestAnimationFrame(updateHeight);
6123
6081
  };
6124
6082
  const handleKeyDown = (e) => {
6125
6083
  if (e.key === "Enter" && !e.shiftKey) {
@@ -6127,19 +6085,24 @@ var ChatInput = React5.forwardRef(
6127
6085
  handleSubmit();
6128
6086
  }
6129
6087
  };
6088
+ React4.useEffect(() => {
6089
+ updateHeight();
6090
+ }, [value, updateHeight]);
6130
6091
  return /* @__PURE__ */ jsxs194("div", { className: clsx_default("lib-xplat-chat-input", disabled && "disabled"), children: [
6131
- /* @__PURE__ */ jsx303(
6132
- TextArea_default,
6092
+ /* @__PURE__ */ jsx302(
6093
+ "textarea",
6133
6094
  {
6134
- ref,
6095
+ ref: setRefs,
6096
+ className: "chat-input-textarea",
6135
6097
  placeholder,
6136
6098
  value,
6137
6099
  disabled,
6100
+ rows: 1,
6138
6101
  onChange: handleChange,
6139
6102
  onKeyDown: handleKeyDown
6140
6103
  }
6141
6104
  ),
6142
- /* @__PURE__ */ jsx303(
6105
+ /* @__PURE__ */ jsx302(
6143
6106
  "button",
6144
6107
  {
6145
6108
  type: "button",
@@ -6147,7 +6110,7 @@ var ChatInput = React5.forwardRef(
6147
6110
  disabled: !hasText || disabled,
6148
6111
  onClick: handleSubmit,
6149
6112
  "aria-label": "\uC804\uC1A1",
6150
- children: /* @__PURE__ */ jsx303(SendIcon_default, {})
6113
+ children: /* @__PURE__ */ jsx302(SendIcon_default, {})
6151
6114
  }
6152
6115
  )
6153
6116
  ] });
@@ -6157,7 +6120,7 @@ ChatInput.displayName = "ChatInput";
6157
6120
  var ChatInput_default = ChatInput;
6158
6121
 
6159
6122
  // src/components/Box/Box.tsx
6160
- import { jsx as jsx304, jsxs as jsxs195 } from "react/jsx-runtime";
6123
+ import { jsx as jsx303, jsxs as jsxs195 } from "react/jsx-runtime";
6161
6124
  var Box = ({
6162
6125
  children,
6163
6126
  title,
@@ -6165,21 +6128,21 @@ var Box = ({
6165
6128
  padding = "md"
6166
6129
  }) => {
6167
6130
  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 })
6131
+ title && /* @__PURE__ */ jsx303("div", { className: "box-title", children: title }),
6132
+ /* @__PURE__ */ jsx303("div", { className: "box-content", children })
6170
6133
  ] });
6171
6134
  };
6172
6135
  Box.displayName = "Box";
6173
6136
  var Box_default = Box;
6174
6137
 
6175
6138
  // src/components/CardTab/CardTab.tsx
6176
- import React6 from "react";
6139
+ import React5 from "react";
6177
6140
 
6178
6141
  // src/components/CardTab/CardTabPanel.tsx
6179
- import { jsx as jsx305 } from "react/jsx-runtime";
6142
+ import { jsx as jsx304 } from "react/jsx-runtime";
6180
6143
  var CardTabPanel = (props) => {
6181
6144
  const { children, columns = 3 } = props;
6182
- return /* @__PURE__ */ jsx305(
6145
+ return /* @__PURE__ */ jsx304(
6183
6146
  "div",
6184
6147
  {
6185
6148
  className: "card-tab-panel",
@@ -6192,7 +6155,7 @@ CardTabPanel.displayName = "CardTab.Panel";
6192
6155
  var CardTabPanel_default = CardTabPanel;
6193
6156
 
6194
6157
  // src/components/CardTab/CardTab.tsx
6195
- import { jsx as jsx306, jsxs as jsxs196 } from "react/jsx-runtime";
6158
+ import { jsx as jsx305, jsxs as jsxs196 } from "react/jsx-runtime";
6196
6159
  var CardTabRoot = (props) => {
6197
6160
  const {
6198
6161
  tabs,
@@ -6202,7 +6165,7 @@ var CardTabRoot = (props) => {
6202
6165
  children
6203
6166
  } = props;
6204
6167
  const isControlled = activeValueProp !== void 0;
6205
- const [uncontrolledValue, setUncontrolledValue] = React6.useState(tabs[0]?.value ?? "");
6168
+ const [uncontrolledValue, setUncontrolledValue] = React5.useState(tabs[0]?.value ?? "");
6206
6169
  const activeValue = isControlled ? activeValueProp : uncontrolledValue;
6207
6170
  const handleTabClick = (tab) => {
6208
6171
  if (!isControlled) {
@@ -6210,16 +6173,16 @@ var CardTabRoot = (props) => {
6210
6173
  }
6211
6174
  onChange?.(tab);
6212
6175
  };
6213
- const panels = React6.Children.toArray(children).filter(
6214
- (child) => React6.isValidElement(child) && child.type === CardTabPanel_default
6176
+ const panels = React5.Children.toArray(children).filter(
6177
+ (child) => React5.isValidElement(child) && child.type === CardTabPanel_default
6215
6178
  );
6216
6179
  const activePanel = panels.find(
6217
6180
  (panel) => panel.props.value === activeValue
6218
6181
  );
6219
6182
  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) => {
6183
+ /* @__PURE__ */ jsx305("div", { className: "card-tab-bar", children: tabs.map((tab) => {
6221
6184
  const isActive = tab.value === activeValue;
6222
- return /* @__PURE__ */ jsx306(
6185
+ return /* @__PURE__ */ jsx305(
6223
6186
  "button",
6224
6187
  {
6225
6188
  className: clsx_default("card-tab-trigger", isActive && "active"),
@@ -6231,7 +6194,7 @@ var CardTabRoot = (props) => {
6231
6194
  tab.value
6232
6195
  );
6233
6196
  }) }),
6234
- /* @__PURE__ */ jsx306("div", { className: "card-tab-body", children: activePanel })
6197
+ /* @__PURE__ */ jsx305("div", { className: "card-tab-body", children: activePanel })
6235
6198
  ] });
6236
6199
  };
6237
6200
  CardTabRoot.displayName = "CardTab";
@@ -6241,8 +6204,8 @@ var CardTab = Object.assign(CardTabRoot, {
6241
6204
  var CardTab_default = CardTab;
6242
6205
 
6243
6206
  // src/components/Chart/Chart.tsx
6244
- import React7 from "react";
6245
- import { Fragment as Fragment2, jsx as jsx307, jsxs as jsxs197 } from "react/jsx-runtime";
6207
+ import React6 from "react";
6208
+ import { Fragment as Fragment2, jsx as jsx306, jsxs as jsxs197 } from "react/jsx-runtime";
6246
6209
  var CATEGORICAL_COUNT2 = 8;
6247
6210
  var LINE_BAR_PALETTES = Array.from({ length: CATEGORICAL_COUNT2 }, (_, i) => {
6248
6211
  const n = i + 1;
@@ -6288,11 +6251,11 @@ var toSmoothPath = (points) => {
6288
6251
  };
6289
6252
  var RESIZE_SETTLE_MS = 150;
6290
6253
  var useChartSize = (ref) => {
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(() => {
6254
+ const [size, setSize] = React6.useState({ width: 0, height: 0 });
6255
+ const settleTimer = React6.useRef(0);
6256
+ const committedSize = React6.useRef({ width: 0, height: 0 });
6257
+ const initialRef = React6.useRef(true);
6258
+ React6.useEffect(() => {
6296
6259
  const el = ref.current;
6297
6260
  if (!el) return;
6298
6261
  const observer = new ResizeObserver((entries) => {
@@ -6334,10 +6297,10 @@ var useChartSize = (ref) => {
6334
6297
  };
6335
6298
  var prefersReducedMotion = () => typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
6336
6299
  var useChartAnimation = (containerRef, dataKey) => {
6337
- const [animate, setAnimate] = React7.useState(false);
6338
- const prevDataKey = React7.useRef(dataKey);
6339
- const hasAnimated = React7.useRef(false);
6340
- React7.useEffect(() => {
6300
+ const [animate, setAnimate] = React6.useState(false);
6301
+ const prevDataKey = React6.useRef(dataKey);
6302
+ const hasAnimated = React6.useRef(false);
6303
+ React6.useEffect(() => {
6341
6304
  if (prefersReducedMotion()) return;
6342
6305
  const el = containerRef.current;
6343
6306
  if (!el) return;
@@ -6353,7 +6316,7 @@ var useChartAnimation = (containerRef, dataKey) => {
6353
6316
  observer.observe(el);
6354
6317
  return () => observer.disconnect();
6355
6318
  }, [containerRef]);
6356
- React7.useEffect(() => {
6319
+ React6.useEffect(() => {
6357
6320
  if (dataKey !== prevDataKey.current) {
6358
6321
  prevDataKey.current = dataKey;
6359
6322
  if (prefersReducedMotion()) return;
@@ -6364,15 +6327,15 @@ var useChartAnimation = (containerRef, dataKey) => {
6364
6327
  return animate || prefersReducedMotion();
6365
6328
  };
6366
6329
  var useChartTooltip = (enabled) => {
6367
- const [tooltip, setTooltip] = React7.useState({
6330
+ const [tooltip, setTooltip] = React6.useState({
6368
6331
  visible: false,
6369
6332
  x: 0,
6370
6333
  y: 0,
6371
6334
  content: ""
6372
6335
  });
6373
- const containerRef = React7.useRef(null);
6374
- const rafRef = React7.useRef(0);
6375
- const move = React7.useCallback((e) => {
6336
+ const containerRef = React6.useRef(null);
6337
+ const rafRef = React6.useRef(0);
6338
+ const move = React6.useCallback((e) => {
6376
6339
  if (!enabled) return;
6377
6340
  const clientX = e.clientX;
6378
6341
  const clientY = e.clientY;
@@ -6387,7 +6350,7 @@ var useChartTooltip = (enabled) => {
6387
6350
  }));
6388
6351
  });
6389
6352
  }, [enabled]);
6390
- const show = React7.useCallback((e, content) => {
6353
+ const show = React6.useCallback((e, content) => {
6391
6354
  if (!enabled) return;
6392
6355
  const rect = containerRef.current?.getBoundingClientRect();
6393
6356
  if (!rect) return;
@@ -6398,18 +6361,18 @@ var useChartTooltip = (enabled) => {
6398
6361
  content
6399
6362
  });
6400
6363
  }, [enabled]);
6401
- const hide = React7.useCallback(() => {
6364
+ const hide = React6.useCallback(() => {
6402
6365
  cancelAnimationFrame(rafRef.current);
6403
6366
  setTooltip((prev) => ({ ...prev, visible: false }));
6404
6367
  }, []);
6405
6368
  return { tooltip, show, hide, move, containerRef };
6406
6369
  };
6407
- var GridLines = React7.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ jsx307(Fragment2, { children: [0, 0.25, 0.5, 0.75, 1].map((ratio) => {
6370
+ var GridLines = React6.memo(({ width, height, chartH, maxVal }) => /* @__PURE__ */ jsx306(Fragment2, { children: [0, 0.25, 0.5, 0.75, 1].map((ratio) => {
6408
6371
  const y = PADDING.top + (1 - ratio) * chartH;
6409
6372
  const val = Math.round(maxVal * ratio);
6410
6373
  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 })
6374
+ /* @__PURE__ */ jsx306("line", { x1: PADDING.left, y1: y, x2: width - PADDING.right, y2: y, className: "chart-grid" }),
6375
+ /* @__PURE__ */ jsx306("text", { x: PADDING.left - 8, y: y + 4, className: "chart-axis-label", textAnchor: "end", children: val })
6413
6376
  ] }, ratio);
6414
6377
  }) }));
6415
6378
  GridLines.displayName = "GridLines";
@@ -6419,25 +6382,25 @@ var getLabelStep = (count, chartW) => {
6419
6382
  if (count <= maxLabels) return 1;
6420
6383
  return Math.ceil(count / maxLabels);
6421
6384
  };
6422
- var AxisLabels = React7.memo(({ labels, count, chartW, height }) => {
6385
+ var AxisLabels = React6.memo(({ labels, count, chartW, height }) => {
6423
6386
  const step = getLabelStep(count, chartW);
6424
- return /* @__PURE__ */ jsx307(Fragment2, { children: labels.map((label, i) => {
6387
+ return /* @__PURE__ */ jsx306(Fragment2, { children: labels.map((label, i) => {
6425
6388
  if (i % step !== 0) return null;
6426
6389
  const x = PADDING.left + i / (count - 1 || 1) * chartW;
6427
- return /* @__PURE__ */ jsx307("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
6390
+ return /* @__PURE__ */ jsx306("text", { x, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
6428
6391
  }) });
6429
6392
  });
6430
6393
  AxisLabels.displayName = "AxisLabels";
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(() => {
6394
+ var LineChart = React6.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6395
+ const entries = React6.useMemo(() => Object.entries(data), [data]);
6396
+ const maxVal = React6.useMemo(() => {
6434
6397
  const allValues = entries.flatMap(([, v]) => v);
6435
6398
  return Math.max(...allValues) * 1.2 || 1;
6436
6399
  }, [entries]);
6437
6400
  const count = labels.length;
6438
6401
  const chartW = width - PADDING.left - PADDING.right;
6439
6402
  const chartH = height - PADDING.top - PADDING.bottom;
6440
- const seriesPoints = React7.useMemo(
6403
+ const seriesPoints = React6.useMemo(
6441
6404
  () => entries.map(
6442
6405
  ([, values]) => values.map((v, i) => ({
6443
6406
  x: PADDING.left + i / (count - 1 || 1) * chartW,
@@ -6448,8 +6411,8 @@ var LineChart = React7.memo(({ data, labels, width, height, animate, onHover, on
6448
6411
  [entries, count, chartW, chartH, maxVal]
6449
6412
  );
6450
6413
  const showPoints = count <= 100;
6451
- const lineRefs = React7.useRef([]);
6452
- React7.useEffect(() => {
6414
+ const lineRefs = React6.useRef([]);
6415
+ React6.useEffect(() => {
6453
6416
  if (!animate) return;
6454
6417
  lineRefs.current.forEach((el) => {
6455
6418
  if (!el) return;
@@ -6463,8 +6426,8 @@ var LineChart = React7.memo(({ data, labels, width, height, animate, onHover, on
6463
6426
  });
6464
6427
  }, [animate, seriesPoints]);
6465
6428
  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 }),
6429
+ /* @__PURE__ */ jsx306(GridLines, { width, height, chartH, maxVal }),
6430
+ /* @__PURE__ */ jsx306(AxisLabels, { labels, count, chartW, height }),
6468
6431
  entries.map(([key], di) => {
6469
6432
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
6470
6433
  const color = palette[2];
@@ -6474,11 +6437,11 @@ var LineChart = React7.memo(({ data, labels, width, height, animate, onHover, on
6474
6437
  const polyPoints = points.map((p) => `${p.x},${p.y}`).join(" ");
6475
6438
  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`;
6476
6439
  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" })
6440
+ /* @__PURE__ */ jsx306("defs", { children: /* @__PURE__ */ jsxs197("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
6441
+ /* @__PURE__ */ jsx306("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.2" }),
6442
+ /* @__PURE__ */ jsx306("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0" })
6480
6443
  ] }) }),
6481
- /* @__PURE__ */ jsx307(
6444
+ /* @__PURE__ */ jsx306(
6482
6445
  "path",
6483
6446
  {
6484
6447
  d: areaD,
@@ -6487,7 +6450,7 @@ var LineChart = React7.memo(({ data, labels, width, height, animate, onHover, on
6487
6450
  style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
6488
6451
  }
6489
6452
  ),
6490
- /* @__PURE__ */ jsx307(
6453
+ /* @__PURE__ */ jsx306(
6491
6454
  "polyline",
6492
6455
  {
6493
6456
  ref: (el) => {
@@ -6499,7 +6462,7 @@ var LineChart = React7.memo(({ data, labels, width, height, animate, onHover, on
6499
6462
  strokeWidth: "2"
6500
6463
  }
6501
6464
  ),
6502
- showPoints && points.map((p, i) => /* @__PURE__ */ jsx307(
6465
+ showPoints && points.map((p, i) => /* @__PURE__ */ jsx306(
6503
6466
  "circle",
6504
6467
  {
6505
6468
  cx: p.x,
@@ -6518,16 +6481,16 @@ var LineChart = React7.memo(({ data, labels, width, height, animate, onHover, on
6518
6481
  ] });
6519
6482
  });
6520
6483
  LineChart.displayName = "LineChart";
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(() => {
6484
+ var CurveChart = React6.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6485
+ const entries = React6.useMemo(() => Object.entries(data), [data]);
6486
+ const maxVal = React6.useMemo(() => {
6524
6487
  const allValues = entries.flatMap(([, v]) => v);
6525
6488
  return Math.max(...allValues) * 1.2 || 1;
6526
6489
  }, [entries]);
6527
6490
  const count = labels.length;
6528
6491
  const chartW = width - PADDING.left - PADDING.right;
6529
6492
  const chartH = height - PADDING.top - PADDING.bottom;
6530
- const seriesPoints = React7.useMemo(
6493
+ const seriesPoints = React6.useMemo(
6531
6494
  () => entries.map(
6532
6495
  ([, values]) => values.map((v, i) => ({
6533
6496
  x: PADDING.left + i / (count - 1 || 1) * chartW,
@@ -6538,8 +6501,8 @@ var CurveChart = React7.memo(({ data, labels, width, height, animate, onHover, o
6538
6501
  [entries, count, chartW, chartH, maxVal]
6539
6502
  );
6540
6503
  const showPoints = count <= 100;
6541
- const lineRefs = React7.useRef([]);
6542
- React7.useEffect(() => {
6504
+ const lineRefs = React6.useRef([]);
6505
+ React6.useEffect(() => {
6543
6506
  if (!animate) return;
6544
6507
  lineRefs.current.forEach((el) => {
6545
6508
  if (!el) return;
@@ -6553,8 +6516,8 @@ var CurveChart = React7.memo(({ data, labels, width, height, animate, onHover, o
6553
6516
  });
6554
6517
  }, [animate, seriesPoints]);
6555
6518
  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 }),
6519
+ /* @__PURE__ */ jsx306(GridLines, { width, height, chartH, maxVal }),
6520
+ /* @__PURE__ */ jsx306(AxisLabels, { labels, count, chartW, height }),
6558
6521
  entries.map(([key], di) => {
6559
6522
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
6560
6523
  const color = palette[2];
@@ -6564,11 +6527,11 @@ var CurveChart = React7.memo(({ data, labels, width, height, animate, onHover, o
6564
6527
  const linePath = toSmoothPath(points);
6565
6528
  const areaPath = linePath + ` L ${points[points.length - 1].x} ${PADDING.top + chartH} L ${points[0].x} ${PADDING.top + chartH} Z`;
6566
6529
  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" })
6530
+ /* @__PURE__ */ jsx306("defs", { children: /* @__PURE__ */ jsxs197("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1", children: [
6531
+ /* @__PURE__ */ jsx306("stop", { offset: "0%", stopColor: areaColor, stopOpacity: "0.4" }),
6532
+ /* @__PURE__ */ jsx306("stop", { offset: "100%", stopColor: areaColor, stopOpacity: "0.02" })
6570
6533
  ] }) }),
6571
- /* @__PURE__ */ jsx307(
6534
+ /* @__PURE__ */ jsx306(
6572
6535
  "path",
6573
6536
  {
6574
6537
  d: areaPath,
@@ -6577,7 +6540,7 @@ var CurveChart = React7.memo(({ data, labels, width, height, animate, onHover, o
6577
6540
  style: animate ? { animationDelay: "600ms" } : { opacity: 1 }
6578
6541
  }
6579
6542
  ),
6580
- /* @__PURE__ */ jsx307(
6543
+ /* @__PURE__ */ jsx306(
6581
6544
  "path",
6582
6545
  {
6583
6546
  ref: (el) => {
@@ -6589,7 +6552,7 @@ var CurveChart = React7.memo(({ data, labels, width, height, animate, onHover, o
6589
6552
  strokeWidth: "2"
6590
6553
  }
6591
6554
  ),
6592
- showPoints && points.map((p, i) => /* @__PURE__ */ jsx307(
6555
+ showPoints && points.map((p, i) => /* @__PURE__ */ jsx306(
6593
6556
  "circle",
6594
6557
  {
6595
6558
  cx: p.x,
@@ -6608,9 +6571,9 @@ var CurveChart = React7.memo(({ data, labels, width, height, animate, onHover, o
6608
6571
  ] });
6609
6572
  });
6610
6573
  CurveChart.displayName = "CurveChart";
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(() => {
6574
+ var BarChart = React6.memo(({ data, labels, width, height, animate, onHover, onMove, onLeave }) => {
6575
+ const entries = React6.useMemo(() => Object.entries(data), [data]);
6576
+ const maxVal = React6.useMemo(() => {
6614
6577
  const allValues = entries.flatMap(([, v]) => v);
6615
6578
  return Math.max(...allValues) * 1.2 || 1;
6616
6579
  }, [entries]);
@@ -6622,7 +6585,7 @@ var BarChart = React7.memo(({ data, labels, width, height, animate, onHover, onM
6622
6585
  const barGap = groupCount > 1 ? 2 : 0;
6623
6586
  const barW = Math.max(1, Math.min(32, (groupW * 0.7 - barGap * (groupCount - 1)) / groupCount));
6624
6587
  const baseline = PADDING.top + chartH;
6625
- const bars = React7.useMemo(
6588
+ const bars = React6.useMemo(
6626
6589
  () => entries.map(
6627
6590
  ([, values], di) => values.map((v, i) => {
6628
6591
  const totalBarsW = barW * groupCount + barGap * (groupCount - 1);
@@ -6636,10 +6599,10 @@ var BarChart = React7.memo(({ data, labels, width, height, animate, onHover, onM
6636
6599
  );
6637
6600
  const barLabelStep = getLabelStep(count, chartW);
6638
6601
  return /* @__PURE__ */ jsxs197("svg", { viewBox: `0 0 ${width} ${height}`, className: "chart-svg", children: [
6639
- /* @__PURE__ */ jsx307(GridLines, { width, height, chartH, maxVal }),
6602
+ /* @__PURE__ */ jsx306(GridLines, { width, height, chartH, maxVal }),
6640
6603
  labels.map((label, i) => {
6641
6604
  if (i % barLabelStep !== 0) return null;
6642
- return /* @__PURE__ */ jsx307("text", { x: PADDING.left + groupW * i + groupW / 2, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
6605
+ return /* @__PURE__ */ jsx306("text", { x: PADDING.left + groupW * i + groupW / 2, y: height - 8, className: "chart-axis-label", textAnchor: "middle", children: label }, i);
6643
6606
  }),
6644
6607
  entries.map(([key], di) => {
6645
6608
  const palette = getPalette(LINE_BAR_PALETTES, di, key);
@@ -6648,7 +6611,7 @@ var BarChart = React7.memo(({ data, labels, width, height, animate, onHover, onM
6648
6611
  const r2 = Math.min(4, b.w / 2);
6649
6612
  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`;
6650
6613
  const delay = 100 + i * 80;
6651
- return /* @__PURE__ */ jsx307(
6614
+ return /* @__PURE__ */ jsx306(
6652
6615
  "path",
6653
6616
  {
6654
6617
  d,
@@ -6669,11 +6632,11 @@ var BarChart = React7.memo(({ data, labels, width, height, animate, onHover, onM
6669
6632
  ] });
6670
6633
  });
6671
6634
  BarChart.displayName = "BarChart";
6672
- var PieDonutChart = React7.memo(
6635
+ var PieDonutChart = React6.memo(
6673
6636
  ({ data, labels, width, height, animate, isDoughnut, onHover, onMove, onLeave }) => {
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]);
6637
+ const entries = React6.useMemo(() => Object.entries(data), [data]);
6638
+ const values = React6.useMemo(() => entries.flatMap(([, v]) => v), [entries]);
6639
+ const total = React6.useMemo(() => values.reduce((a, b) => a + b, 0) || 1, [values]);
6677
6640
  const size = Math.min(width, height);
6678
6641
  const cx = size / 2;
6679
6642
  const cy = size / 2;
@@ -6681,10 +6644,10 @@ var PieDonutChart = React7.memo(
6681
6644
  const innerR = isDoughnut ? r2 * 0.5 : 0;
6682
6645
  const firstKey = entries[0]?.[0] ?? "";
6683
6646
  const colorOffset = hashString(firstKey);
6684
- const maskRef = React7.useRef(null);
6647
+ const maskRef = React6.useRef(null);
6685
6648
  const maskR = r2 + 10;
6686
6649
  const maskCircumference = 2 * Math.PI * maskR;
6687
- React7.useEffect(() => {
6650
+ React6.useEffect(() => {
6688
6651
  if (!animate || !maskRef.current) return;
6689
6652
  const el = maskRef.current;
6690
6653
  el.style.strokeDasharray = `${maskCircumference}`;
@@ -6694,7 +6657,7 @@ var PieDonutChart = React7.memo(
6694
6657
  el.style.strokeDashoffset = "0";
6695
6658
  });
6696
6659
  }, [animate, maskCircumference]);
6697
- const sliceData = React7.useMemo(() => {
6660
+ const sliceData = React6.useMemo(() => {
6698
6661
  let angle0 = -Math.PI / 2;
6699
6662
  let cumulativeAngle = 0;
6700
6663
  return values.map((v, i) => {
@@ -6729,7 +6692,7 @@ var PieDonutChart = React7.memo(
6729
6692
  }, [values, total, cx, cy, r2, innerR, labels]);
6730
6693
  const maskId = `pie-mask-${isDoughnut ? "d" : "p"}`;
6731
6694
  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(
6695
+ animate && /* @__PURE__ */ jsx306("defs", { children: /* @__PURE__ */ jsx306("mask", { id: maskId, children: /* @__PURE__ */ jsx306(
6733
6696
  "circle",
6734
6697
  {
6735
6698
  ref: maskRef,
@@ -6742,7 +6705,7 @@ var PieDonutChart = React7.memo(
6742
6705
  transform: `rotate(-90 ${cx} ${cy})`
6743
6706
  }
6744
6707
  ) }) }),
6745
- /* @__PURE__ */ jsx307("g", { mask: animate ? `url(#${maskId})` : void 0, children: sliceData.map((s, i) => /* @__PURE__ */ jsx307("g", { children: /* @__PURE__ */ jsx307(
6708
+ /* @__PURE__ */ jsx306("g", { mask: animate ? `url(#${maskId})` : void 0, children: sliceData.map((s, i) => /* @__PURE__ */ jsx306("g", { children: /* @__PURE__ */ jsx306(
6746
6709
  "path",
6747
6710
  {
6748
6711
  d: s.d,
@@ -6753,7 +6716,7 @@ var PieDonutChart = React7.memo(
6753
6716
  onMouseLeave: onLeave
6754
6717
  }
6755
6718
  ) }, i)) }),
6756
- sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ jsx307(
6719
+ sliceData.map((s, i) => s.angle > 0.2 && /* @__PURE__ */ jsx306(
6757
6720
  "text",
6758
6721
  {
6759
6722
  x: s.lx,
@@ -6771,9 +6734,9 @@ var PieDonutChart = React7.memo(
6771
6734
  );
6772
6735
  PieDonutChart.displayName = "PieDonutChart";
6773
6736
  var TooltipBubble = ({ x, y, containerWidth, children }) => {
6774
- const ref = React7.useRef(null);
6775
- const [adjustedX, setAdjustedX] = React7.useState(x);
6776
- React7.useEffect(() => {
6737
+ const ref = React6.useRef(null);
6738
+ const [adjustedX, setAdjustedX] = React6.useState(x);
6739
+ React6.useEffect(() => {
6777
6740
  const el = ref.current;
6778
6741
  if (!el) return;
6779
6742
  const w = el.offsetWidth;
@@ -6784,7 +6747,7 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
6784
6747
  else if (x + half > containerWidth - margin) nx = containerWidth - half - margin;
6785
6748
  setAdjustedX(nx);
6786
6749
  }, [x, containerWidth]);
6787
- return /* @__PURE__ */ jsx307(
6750
+ return /* @__PURE__ */ jsx306(
6788
6751
  "div",
6789
6752
  {
6790
6753
  ref,
@@ -6794,22 +6757,22 @@ var TooltipBubble = ({ x, y, containerWidth, children }) => {
6794
6757
  }
6795
6758
  );
6796
6759
  };
6797
- var Chart = React7.memo((props) => {
6760
+ var Chart = React6.memo((props) => {
6798
6761
  const { type, data, labels, tooltip: showTooltip = true } = props;
6799
6762
  const { tooltip, show, hide, move, containerRef } = useChartTooltip(showTooltip);
6800
6763
  const { width, height } = useChartSize(containerRef);
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]);
6764
+ const stableData = React6.useMemo(() => data, [JSON.stringify(data)]);
6765
+ const stableLabels = React6.useMemo(() => labels, [JSON.stringify(labels)]);
6766
+ const dataKey = React6.useMemo(() => JSON.stringify(labels), [labels]);
6804
6767
  const animate = useChartAnimation(containerRef, dataKey);
6805
6768
  const ready = width > 0 && height > 0;
6806
6769
  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 })
6770
+ ready && type === "line" && /* @__PURE__ */ jsx306(LineChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6771
+ ready && type === "curve" && /* @__PURE__ */ jsx306(CurveChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6772
+ ready && type === "bar" && /* @__PURE__ */ jsx306(BarChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6773
+ ready && type === "pie" && /* @__PURE__ */ jsx306(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, onHover: show, onMove: move, onLeave: hide }),
6774
+ ready && type === "doughnut" && /* @__PURE__ */ jsx306(PieDonutChart, { data: stableData, labels: stableLabels, width, height, animate, isDoughnut: true, onHover: show, onMove: move, onLeave: hide }),
6775
+ tooltip.visible && /* @__PURE__ */ jsx306(TooltipBubble, { x: tooltip.x, y: tooltip.y, containerWidth: width, children: tooltip.content })
6813
6776
  ] });
6814
6777
  });
6815
6778
  Chart.displayName = "Chart";
@@ -6835,7 +6798,7 @@ import { primitive, semantic } from "@x-plat/tokens-core";
6835
6798
  import { cssVar } from "@x-plat/tokens-core";
6836
6799
 
6837
6800
  // src/components/CheckBox/CheckBox.tsx
6838
- import { jsx as jsx308, jsxs as jsxs198 } from "react/jsx-runtime";
6801
+ import { jsx as jsx307, jsxs as jsxs198 } from "react/jsx-runtime";
6839
6802
  var CheckBox = (props) => {
6840
6803
  const {
6841
6804
  checked,
@@ -6854,7 +6817,7 @@ var CheckBox = (props) => {
6854
6817
  const disabledClasses = "disabled";
6855
6818
  const boxClasses = disabled ? disabledClasses : checked ? checkedClasses : uncheckedClasses;
6856
6819
  return /* @__PURE__ */ jsxs198("label", { className: clsx_default("lib-xplat-checkbox", size, type), children: [
6857
- /* @__PURE__ */ jsx308(
6820
+ /* @__PURE__ */ jsx307(
6858
6821
  "input",
6859
6822
  {
6860
6823
  type: "checkbox",
@@ -6864,44 +6827,44 @@ var CheckBox = (props) => {
6864
6827
  ...rest
6865
6828
  }
6866
6829
  ),
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 })
6830
+ /* @__PURE__ */ jsx307("span", { className: clsx_default("checkbox", boxClasses), children: /* @__PURE__ */ jsx307("span", { className: clsx_default("check-icon", { visible: checked }), children: /* @__PURE__ */ jsx307(CheckIcon_default, {}) }) }),
6831
+ label && /* @__PURE__ */ jsx307("span", { className: "label", children: label })
6869
6832
  ] });
6870
6833
  };
6871
6834
  CheckBox.displayName = "CheckBox";
6872
6835
  var CheckBox_default = CheckBox;
6873
6836
 
6874
6837
  // src/components/Chip/Chip.tsx
6875
- import { jsx as jsx309 } from "react/jsx-runtime";
6838
+ import { jsx as jsx308 } from "react/jsx-runtime";
6876
6839
  var Chip = (props) => {
6877
6840
  const {
6878
6841
  children,
6879
6842
  type = "primary",
6880
6843
  size = "md"
6881
6844
  } = props;
6882
- return /* @__PURE__ */ jsx309("div", { className: clsx_default("lib-xplat-chip", type, size), children });
6845
+ return /* @__PURE__ */ jsx308("div", { className: clsx_default("lib-xplat-chip", type, size), children });
6883
6846
  };
6884
6847
  Chip.displayName = "Chip";
6885
6848
  var Chip_default = Chip;
6886
6849
 
6887
6850
  // src/components/DatePicker/InputDatePicker/index.tsx
6888
- import React13 from "react";
6851
+ import React12 from "react";
6889
6852
 
6890
6853
  // src/components/Input/Input.tsx
6891
- import React8 from "react";
6854
+ import React7 from "react";
6892
6855
 
6893
6856
  // src/components/Input/InputValidations.tsx
6894
- import { jsx as jsx310, jsxs as jsxs199 } from "react/jsx-runtime";
6857
+ import { jsx as jsx309, jsxs as jsxs199 } from "react/jsx-runtime";
6895
6858
  var InputValidations = (props) => {
6896
6859
  const { message, status = "default" } = props;
6897
6860
  return /* @__PURE__ */ jsxs199("div", { className: clsx_default("lib-xplat-input-validation", status), children: [
6898
6861
  /* @__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, {})
6862
+ status === "default" && /* @__PURE__ */ jsx309(InfoIcon_default, {}),
6863
+ status === "success" && /* @__PURE__ */ jsx309(SuccessIcon_default, {}),
6864
+ status === "warning" && /* @__PURE__ */ jsx309(InfoIcon_default, {}),
6865
+ status === "error" && /* @__PURE__ */ jsx309(ErrorIcon_default, {})
6903
6866
  ] }),
6904
- /* @__PURE__ */ jsx310("div", { className: "message", children: message })
6867
+ /* @__PURE__ */ jsx309("div", { className: "message", children: message })
6905
6868
  ] });
6906
6869
  };
6907
6870
  InputValidations.displayName = "InputValidations";
@@ -6942,7 +6905,7 @@ var handleTelBackspace = (prevValue, currValue) => {
6942
6905
  };
6943
6906
 
6944
6907
  // src/components/Input/Input.tsx
6945
- import { jsx as jsx311, jsxs as jsxs200 } from "react/jsx-runtime";
6908
+ import { jsx as jsx310, jsxs as jsxs200 } from "react/jsx-runtime";
6946
6909
  import { createElement } from "react";
6947
6910
  var formatValue = (type, value) => {
6948
6911
  if (value === null || value === void 0) return "";
@@ -6991,7 +6954,7 @@ var parseValue = (type, value) => {
6991
6954
  return value;
6992
6955
  }
6993
6956
  };
6994
- var Input = React8.forwardRef((props, ref) => {
6957
+ var Input = React7.forwardRef((props, ref) => {
6995
6958
  const {
6996
6959
  value,
6997
6960
  onChange,
@@ -7023,7 +6986,7 @@ var Input = React8.forwardRef((props, ref) => {
7023
6986
  {
7024
6987
  className: clsx_default("lib-xplat-input", size, disabled ? "disabled" : void 0),
7025
6988
  children: [
7026
- /* @__PURE__ */ jsx311(
6989
+ /* @__PURE__ */ jsx310(
7027
6990
  "input",
7028
6991
  {
7029
6992
  ...inputProps,
@@ -7034,11 +6997,11 @@ var Input = React8.forwardRef((props, ref) => {
7034
6997
  onChange: handleChange
7035
6998
  }
7036
6999
  ),
7037
- suffix && /* @__PURE__ */ jsx311("div", { className: "suffix", children: suffix })
7000
+ suffix && /* @__PURE__ */ jsx310("div", { className: "suffix", children: suffix })
7038
7001
  ]
7039
7002
  }
7040
7003
  ),
7041
- validations && /* @__PURE__ */ jsx311("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ createElement(
7004
+ validations && /* @__PURE__ */ jsx310("div", { className: "lib-xplat-input-validation-wrap", children: validations?.map((validation, idx) => /* @__PURE__ */ createElement(
7042
7005
  InputValidations_default,
7043
7006
  {
7044
7007
  ...validation,
@@ -7051,20 +7014,20 @@ Input.displayName = "Input";
7051
7014
  var Input_default = Input;
7052
7015
 
7053
7016
  // src/components/Input/PasswordInput/PasswordInput.tsx
7054
- import React9 from "react";
7055
- import { jsx as jsx312 } from "react/jsx-runtime";
7056
- var PasswordInput = React9.forwardRef(
7017
+ import React8 from "react";
7018
+ import { jsx as jsx311 } from "react/jsx-runtime";
7019
+ var PasswordInput = React8.forwardRef(
7057
7020
  (props, ref) => {
7058
7021
  const { reg: _reg, ...inputProps } = props;
7059
- const [isView, setIsView] = React9.useState(false);
7022
+ const [isView, setIsView] = React8.useState(false);
7060
7023
  const handleChangeView = () => {
7061
7024
  setIsView((prev) => !prev);
7062
7025
  };
7063
- return /* @__PURE__ */ jsx312(
7026
+ return /* @__PURE__ */ jsx311(
7064
7027
  Input_default,
7065
7028
  {
7066
7029
  ...inputProps,
7067
- suffix: /* @__PURE__ */ jsx312("div", { className: "wrapper pointer", onClick: handleChangeView, children: isView ? /* @__PURE__ */ jsx312(OpenEyeIcon_default, {}) : /* @__PURE__ */ jsx312(CloseEyeIcon_default, {}) }),
7030
+ suffix: /* @__PURE__ */ jsx311("div", { className: "wrapper pointer", onClick: handleChangeView, children: isView ? /* @__PURE__ */ jsx311(OpenEyeIcon_default, {}) : /* @__PURE__ */ jsx311(CloseEyeIcon_default, {}) }),
7068
7031
  type: isView ? "text" : "password",
7069
7032
  ref
7070
7033
  }
@@ -7075,17 +7038,17 @@ PasswordInput.displayName = "PasswordInput";
7075
7038
  var PasswordInput_default = PasswordInput;
7076
7039
 
7077
7040
  // src/components/Modal/Modal.tsx
7078
- import React11 from "react";
7041
+ import React10 from "react";
7079
7042
  import { createPortal } from "react-dom";
7080
7043
 
7081
7044
  // src/tokens/hooks/Portal.tsx
7082
- import React10 from "react";
7045
+ import React9 from "react";
7083
7046
  import ReactDOM from "react-dom";
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 });
7047
+ import { jsx as jsx312 } from "react/jsx-runtime";
7048
+ var PortalContainerContext = React9.createContext(null);
7049
+ var PortalProvider = ({ container, children }) => /* @__PURE__ */ jsx312(PortalContainerContext.Provider, { value: container, children });
7087
7050
  var Portal = ({ children }) => {
7088
- const contextContainer = React10.useContext(PortalContainerContext);
7051
+ const contextContainer = React9.useContext(PortalContainerContext);
7089
7052
  if (typeof document === "undefined") return null;
7090
7053
  const container = contextContainer ?? document.body;
7091
7054
  return ReactDOM.createPortal(children, container);
@@ -7094,14 +7057,14 @@ Portal.displayName = "Portal";
7094
7057
  var Portal_default = Portal;
7095
7058
 
7096
7059
  // src/components/Modal/Modal.tsx
7097
- import { jsx as jsx314 } from "react/jsx-runtime";
7060
+ import { jsx as jsx313 } from "react/jsx-runtime";
7098
7061
  var ANIMATION_DURATION_MS = 200;
7099
7062
  var Modal = (props) => {
7100
7063
  const { isOpen, onClose, children } = props;
7101
- const [mounted, setMounted] = React11.useState(false);
7102
- const [visible, setVisible] = React11.useState(false);
7103
- const boxRef = React11.useRef(null);
7104
- React11.useEffect(() => {
7064
+ const [mounted, setMounted] = React10.useState(false);
7065
+ const [visible, setVisible] = React10.useState(false);
7066
+ const boxRef = React10.useRef(null);
7067
+ React10.useEffect(() => {
7105
7068
  if (isOpen) {
7106
7069
  setMounted(true);
7107
7070
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -7115,12 +7078,12 @@ var Modal = (props) => {
7115
7078
  if (!mounted) return null;
7116
7079
  const stateClass = visible ? "enter" : "exit";
7117
7080
  return createPortal(
7118
- /* @__PURE__ */ jsx314(
7081
+ /* @__PURE__ */ jsx313(
7119
7082
  "div",
7120
7083
  {
7121
7084
  className: clsx_default("lib-xplat-modal", "dim", stateClass),
7122
7085
  onClick: onClose,
7123
- children: /* @__PURE__ */ jsx314(
7086
+ children: /* @__PURE__ */ jsx313(
7124
7087
  "div",
7125
7088
  {
7126
7089
  ref: boxRef,
@@ -7128,7 +7091,7 @@ var Modal = (props) => {
7128
7091
  role: "dialog",
7129
7092
  "aria-modal": "true",
7130
7093
  onClick: (e) => e.stopPropagation(),
7131
- children: /* @__PURE__ */ jsx314(PortalProvider, { container: boxRef.current, children })
7094
+ children: /* @__PURE__ */ jsx313(PortalProvider, { container: boxRef.current, children })
7132
7095
  }
7133
7096
  )
7134
7097
  }
@@ -7140,9 +7103,9 @@ Modal.displayName = "Modal";
7140
7103
  var Modal_default = Modal;
7141
7104
 
7142
7105
  // src/components/DatePicker/SingleDatePicker/index.tsx
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(
7106
+ import React11 from "react";
7107
+ import { Fragment as Fragment3, jsx as jsx314, jsxs as jsxs201 } from "react/jsx-runtime";
7108
+ var DayCell2 = React11.memo(
7146
7109
  ({
7147
7110
  day,
7148
7111
  disabled,
@@ -7152,7 +7115,7 @@ var DayCell2 = React12.memo(
7152
7115
  isEnd,
7153
7116
  inRange,
7154
7117
  onSelect
7155
- }) => /* @__PURE__ */ jsx315(
7118
+ }) => /* @__PURE__ */ jsx314(
7156
7119
  "button",
7157
7120
  {
7158
7121
  type: "button",
@@ -7194,26 +7157,26 @@ var SingleDatePicker = (props) => {
7194
7157
  initialYear,
7195
7158
  initialMonth
7196
7159
  );
7197
- const [pickerMode, setPickerMode] = React12.useState("days");
7198
- const [yearRangeStart, setYearRangeStart] = React12.useState(
7160
+ const [pickerMode, setPickerMode] = React11.useState("days");
7161
+ const [yearRangeStart, setYearRangeStart] = React11.useState(
7199
7162
  Math.floor((initialYear ?? (/* @__PURE__ */ new Date()).getFullYear()) / 12) * 12
7200
7163
  );
7201
- const minTime = React12.useMemo(
7164
+ const minTime = React11.useMemo(
7202
7165
  () => minDate ? new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()).getTime() : -Infinity,
7203
7166
  [minDate]
7204
7167
  );
7205
- const maxTime = React12.useMemo(
7168
+ const maxTime = React11.useMemo(
7206
7169
  () => maxDate ? new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()).getTime() : Infinity,
7207
7170
  [maxDate]
7208
7171
  );
7209
- const highlightSet = React12.useMemo(() => {
7172
+ const highlightSet = React11.useMemo(() => {
7210
7173
  const set = /* @__PURE__ */ new Set();
7211
7174
  for (const h of highlightDates) {
7212
7175
  set.add(`${h.getFullYear()}-${h.getMonth()}-${h.getDate()}`);
7213
7176
  }
7214
7177
  return set;
7215
7178
  }, [highlightDates]);
7216
- const handleSelect = React12.useCallback(
7179
+ const handleSelect = React11.useCallback(
7217
7180
  (date) => {
7218
7181
  onChange?.(date);
7219
7182
  },
@@ -7256,14 +7219,14 @@ var SingleDatePicker = (props) => {
7256
7219
  className: clsx_default("lib-xplat-datepicker", "single"),
7257
7220
  children: [
7258
7221
  /* @__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, {}) })
7222
+ /* @__PURE__ */ jsx314("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ jsx314(ChevronLeftIcon_default, {}) }),
7223
+ /* @__PURE__ */ jsx314("button", { className: "datepicker-title", onClick: handleTitleClick, type: "button", children: titleText }),
7224
+ /* @__PURE__ */ jsx314("button", { className: "datepicker-nav", onClick: handleNext, type: "button", children: /* @__PURE__ */ jsx314(ChevronRightIcon_default, {}) })
7262
7225
  ] }),
7263
7226
  /* @__PURE__ */ jsxs201("div", { className: "datepicker-body", children: [
7264
- pickerMode === "years" && /* @__PURE__ */ jsx315("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
7227
+ pickerMode === "years" && /* @__PURE__ */ jsx314("div", { className: "datepicker-picker-grid", children: Array.from({ length: 12 }, (_, i) => {
7265
7228
  const y = yearRangeStart + i;
7266
- return /* @__PURE__ */ jsx315(
7229
+ return /* @__PURE__ */ jsx314(
7267
7230
  "button",
7268
7231
  {
7269
7232
  type: "button",
@@ -7274,7 +7237,7 @@ var SingleDatePicker = (props) => {
7274
7237
  y
7275
7238
  );
7276
7239
  }) }),
7277
- pickerMode === "months" && /* @__PURE__ */ jsx315("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ jsx315(
7240
+ pickerMode === "months" && /* @__PURE__ */ jsx314("div", { className: "datepicker-picker-grid", children: monthLabels.map((label, i) => /* @__PURE__ */ jsx314(
7278
7241
  "button",
7279
7242
  {
7280
7243
  type: "button",
@@ -7285,7 +7248,7 @@ var SingleDatePicker = (props) => {
7285
7248
  i
7286
7249
  )) }),
7287
7250
  pickerMode === "days" && /* @__PURE__ */ jsxs201(Fragment3, { children: [
7288
- /* @__PURE__ */ jsx315("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ jsx315(
7251
+ /* @__PURE__ */ jsx314("div", { className: "datepicker-weekdays", children: weekdays.map((label, i) => /* @__PURE__ */ jsx314(
7289
7252
  "div",
7290
7253
  {
7291
7254
  className: clsx_default(
@@ -7297,7 +7260,7 @@ var SingleDatePicker = (props) => {
7297
7260
  },
7298
7261
  label
7299
7262
  )) }),
7300
- /* @__PURE__ */ jsx315("div", { className: "datepicker-grid", children: days.map((day, idx) => {
7263
+ /* @__PURE__ */ jsx314("div", { className: "datepicker-grid", children: days.map((day, idx) => {
7301
7264
  const t = day.date.getTime();
7302
7265
  const disabled = t < minTime || t > maxTime;
7303
7266
  const selected = value ? isSameDay(day.date, value) : false;
@@ -7307,7 +7270,7 @@ var SingleDatePicker = (props) => {
7307
7270
  const isStart = hasRange ? isSameDay(day.date, rangeStart) : false;
7308
7271
  const isEnd = hasRange ? isSameDay(day.date, rangeEnd) : false;
7309
7272
  const inRangeVal = hasRange ? isInRange(day.date, rangeStart, rangeEnd) : false;
7310
- return /* @__PURE__ */ jsx315(
7273
+ return /* @__PURE__ */ jsx314(
7311
7274
  DayCell2,
7312
7275
  {
7313
7276
  day,
@@ -7332,7 +7295,7 @@ SingleDatePicker.displayName = "SingleDatePicker";
7332
7295
  var SingleDatePicker_default = SingleDatePicker;
7333
7296
 
7334
7297
  // src/components/DatePicker/InputDatePicker/index.tsx
7335
- import { jsx as jsx316, jsxs as jsxs202 } from "react/jsx-runtime";
7298
+ import { jsx as jsx315, jsxs as jsxs202 } from "react/jsx-runtime";
7336
7299
  var formatDate = (date) => {
7337
7300
  if (!date || !(date instanceof Date) || isNaN(date.getTime())) return "";
7338
7301
  const y = date.getFullYear();
@@ -7342,8 +7305,8 @@ var formatDate = (date) => {
7342
7305
  };
7343
7306
  var InputDatePicker = (props) => {
7344
7307
  const { value, onChange, minDate, maxDate, disabled, locale = "ko", placeholder } = props;
7345
- const [isOpen, setIsOpen] = React13.useState(false);
7346
- const [tempDate, setTempDate] = React13.useState(value ?? /* @__PURE__ */ new Date());
7308
+ const [isOpen, setIsOpen] = React12.useState(false);
7309
+ const [tempDate, setTempDate] = React12.useState(value ?? /* @__PURE__ */ new Date());
7347
7310
  const handleOpen = () => {
7348
7311
  if (disabled) return;
7349
7312
  setTempDate(value ?? /* @__PURE__ */ new Date());
@@ -7360,18 +7323,18 @@ var InputDatePicker = (props) => {
7360
7323
  setIsOpen(false);
7361
7324
  };
7362
7325
  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(
7326
+ /* @__PURE__ */ jsx315("div", { className: "input-datepicker-trigger", onClick: handleOpen, children: /* @__PURE__ */ jsx315(
7364
7327
  Input_default,
7365
7328
  {
7366
7329
  value: formatDate(value),
7367
7330
  placeholder,
7368
- suffix: /* @__PURE__ */ jsx316(CalenderIcon_default, {}),
7331
+ suffix: /* @__PURE__ */ jsx315(CalenderIcon_default, {}),
7369
7332
  disabled,
7370
7333
  readOnly: true
7371
7334
  }
7372
7335
  ) }),
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(
7336
+ /* @__PURE__ */ jsx315(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs202("div", { className: "lib-xplat-popup-datepicker-card", children: [
7337
+ /* @__PURE__ */ jsx315("div", { className: "popup-datepicker-content", children: /* @__PURE__ */ jsx315(
7375
7338
  SingleDatePicker_default,
7376
7339
  {
7377
7340
  value: tempDate,
@@ -7382,8 +7345,8 @@ var InputDatePicker = (props) => {
7382
7345
  }
7383
7346
  ) }),
7384
7347
  /* @__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" })
7348
+ /* @__PURE__ */ jsx315(Button_default, { type: "secondary", onClick: handleClose, children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel" }),
7349
+ /* @__PURE__ */ jsx315(Button_default, { type: "primary", onClick: handleApply, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
7387
7350
  ] })
7388
7351
  ] }) })
7389
7352
  ] });
@@ -7392,20 +7355,20 @@ InputDatePicker.displayName = "InputDatePicker";
7392
7355
  var InputDatePicker_default = InputDatePicker;
7393
7356
 
7394
7357
  // src/components/DatePicker/PopupPicker/index.tsx
7395
- import React17 from "react";
7358
+ import React16 from "react";
7396
7359
 
7397
7360
  // src/components/DatePicker/RangePicker/index.tsx
7398
- import React16 from "react";
7361
+ import React15 from "react";
7399
7362
 
7400
7363
  // src/components/Tab/Tab.tsx
7401
- import React15 from "react";
7364
+ import React14 from "react";
7402
7365
 
7403
7366
  // src/components/Tab/TabItem.tsx
7404
- import React14 from "react";
7405
- import { jsx as jsx317 } from "react/jsx-runtime";
7406
- var TabItem = React14.forwardRef((props, ref) => {
7367
+ import React13 from "react";
7368
+ import { jsx as jsx316 } from "react/jsx-runtime";
7369
+ var TabItem = React13.forwardRef((props, ref) => {
7407
7370
  const { isActive, title, onClick } = props;
7408
- return /* @__PURE__ */ jsx317(
7371
+ return /* @__PURE__ */ jsx316(
7409
7372
  "div",
7410
7373
  {
7411
7374
  ref,
@@ -7419,25 +7382,25 @@ TabItem.displayName = "TabItem";
7419
7382
  var TabItem_default = TabItem;
7420
7383
 
7421
7384
  // src/components/Tab/Tab.tsx
7422
- import { jsx as jsx318, jsxs as jsxs203 } from "react/jsx-runtime";
7385
+ import { jsx as jsx317, jsxs as jsxs203 } from "react/jsx-runtime";
7423
7386
  var Tab = (props) => {
7424
7387
  const { activeIndex, onChange, tabs, type, size = "md" } = props;
7425
- const [underlineStyle, setUnderlineStyle] = React15.useState({
7388
+ const [underlineStyle, setUnderlineStyle] = React14.useState({
7426
7389
  left: 0,
7427
7390
  width: 0
7428
7391
  });
7429
- const itemRefs = React15.useRef([]);
7392
+ const itemRefs = React14.useRef([]);
7430
7393
  const handleChangeActiveTab = (tabItem, tabIdx) => {
7431
7394
  onChange(tabItem, tabIdx);
7432
7395
  };
7433
- React15.useEffect(() => {
7396
+ React14.useEffect(() => {
7434
7397
  const el = itemRefs.current[activeIndex];
7435
7398
  if (el) {
7436
7399
  setUnderlineStyle({ left: el.offsetLeft, width: el.offsetWidth });
7437
7400
  }
7438
7401
  }, [activeIndex, tabs.length]);
7439
7402
  return /* @__PURE__ */ jsxs203("div", { className: clsx_default("lib-xplat-tab", `type-${type}`, size), children: [
7440
- tabs.map((tab, idx) => /* @__PURE__ */ jsx318(
7403
+ tabs.map((tab, idx) => /* @__PURE__ */ jsx317(
7441
7404
  TabItem_default,
7442
7405
  {
7443
7406
  onClick: () => handleChangeActiveTab(tab, idx),
@@ -7449,7 +7412,7 @@ var Tab = (props) => {
7449
7412
  },
7450
7413
  `${tab.value}_${idx}`
7451
7414
  )),
7452
- type === "toggle" && /* @__PURE__ */ jsx318(
7415
+ type === "toggle" && /* @__PURE__ */ jsx317(
7453
7416
  "div",
7454
7417
  {
7455
7418
  className: "tab-toggle-underline",
@@ -7465,7 +7428,7 @@ Tab.displayName = "Tab";
7465
7428
  var Tab_default = Tab;
7466
7429
 
7467
7430
  // src/components/DatePicker/RangePicker/index.tsx
7468
- import { jsx as jsx319, jsxs as jsxs204 } from "react/jsx-runtime";
7431
+ import { jsx as jsx318, jsxs as jsxs204 } from "react/jsx-runtime";
7469
7432
  var RangePicker = (props) => {
7470
7433
  const {
7471
7434
  startDate,
@@ -7475,7 +7438,7 @@ var RangePicker = (props) => {
7475
7438
  maxDate,
7476
7439
  locale = "ko"
7477
7440
  } = props;
7478
- const [activeTab, setActiveTab] = React16.useState("start");
7441
+ const [activeTab, setActiveTab] = React15.useState("start");
7479
7442
  const handleStartChange = (date) => {
7480
7443
  if (!date) return;
7481
7444
  const newStart = date > endDate ? endDate : date;
@@ -7489,7 +7452,7 @@ var RangePicker = (props) => {
7489
7452
  const startMaxDate = maxDate && endDate < maxDate ? endDate : endDate;
7490
7453
  const endMinDate = minDate && startDate > minDate ? startDate : startDate;
7491
7454
  return /* @__PURE__ */ jsxs204("div", { className: clsx_default("lib-xplat-datepicker", "range"), children: [
7492
- /* @__PURE__ */ jsx319("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ jsx319(
7455
+ /* @__PURE__ */ jsx318("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ jsx318(
7493
7456
  Tab_default,
7494
7457
  {
7495
7458
  activeIndex: activeTab === "start" ? 0 : 1,
@@ -7503,7 +7466,7 @@ var RangePicker = (props) => {
7503
7466
  }
7504
7467
  ) }),
7505
7468
  /* @__PURE__ */ jsxs204("div", { className: "datepicker-range-panels", children: [
7506
- /* @__PURE__ */ jsx319(
7469
+ /* @__PURE__ */ jsx318(
7507
7470
  SingleDatePicker_default,
7508
7471
  {
7509
7472
  value: startDate,
@@ -7515,7 +7478,7 @@ var RangePicker = (props) => {
7515
7478
  locale
7516
7479
  }
7517
7480
  ),
7518
- /* @__PURE__ */ jsx319(
7481
+ /* @__PURE__ */ jsx318(
7519
7482
  SingleDatePicker_default,
7520
7483
  {
7521
7484
  value: endDate,
@@ -7528,7 +7491,7 @@ var RangePicker = (props) => {
7528
7491
  }
7529
7492
  )
7530
7493
  ] }),
7531
- /* @__PURE__ */ jsx319("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ jsx319(
7494
+ /* @__PURE__ */ jsx318("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ jsx318(
7532
7495
  SingleDatePicker_default,
7533
7496
  {
7534
7497
  value: startDate,
@@ -7539,7 +7502,7 @@ var RangePicker = (props) => {
7539
7502
  rangeEnd: endDate,
7540
7503
  locale
7541
7504
  }
7542
- ) : /* @__PURE__ */ jsx319(
7505
+ ) : /* @__PURE__ */ jsx318(
7543
7506
  SingleDatePicker_default,
7544
7507
  {
7545
7508
  value: endDate,
@@ -7557,10 +7520,10 @@ RangePicker.displayName = "RangePicker";
7557
7520
  var RangePicker_default = RangePicker;
7558
7521
 
7559
7522
  // src/components/DatePicker/PopupPicker/index.tsx
7560
- import { jsx as jsx320, jsxs as jsxs205 } from "react/jsx-runtime";
7523
+ import { jsx as jsx319, jsxs as jsxs205 } from "react/jsx-runtime";
7561
7524
  var PopupPicker = (props) => {
7562
7525
  const { component, type, locale } = props;
7563
- const [isOpen, setIsOpen] = React17.useState(false);
7526
+ const [isOpen, setIsOpen] = React16.useState(false);
7564
7527
  const handleClick = () => setIsOpen(true);
7565
7528
  const handleClose = () => setIsOpen(false);
7566
7529
  const handleSingleChange = (date) => {
@@ -7569,10 +7532,10 @@ var PopupPicker = (props) => {
7569
7532
  handleClose();
7570
7533
  };
7571
7534
  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: [
7535
+ React16.cloneElement(component, { onClick: handleClick }),
7536
+ /* @__PURE__ */ jsx319(Modal_default, { isOpen, onClose: handleClose, children: /* @__PURE__ */ jsxs205("div", { className: clsx_default("lib-xplat-popup-datepicker-card", type === "range" && "range-mode"), children: [
7574
7537
  /* @__PURE__ */ jsxs205("div", { className: "popup-datepicker-content", children: [
7575
- type === "single" && /* @__PURE__ */ jsx320(
7538
+ type === "single" && /* @__PURE__ */ jsx319(
7576
7539
  SingleDatePicker_default,
7577
7540
  {
7578
7541
  value: props.value,
@@ -7582,7 +7545,7 @@ var PopupPicker = (props) => {
7582
7545
  locale
7583
7546
  }
7584
7547
  ),
7585
- type === "range" && /* @__PURE__ */ jsx320(
7548
+ type === "range" && /* @__PURE__ */ jsx319(
7586
7549
  RangePicker_default,
7587
7550
  {
7588
7551
  startDate: props.startDate,
@@ -7595,7 +7558,7 @@ var PopupPicker = (props) => {
7595
7558
  )
7596
7559
  ] }),
7597
7560
  /* @__PURE__ */ jsxs205("div", { className: "popup-datepicker-footer", children: [
7598
- /* @__PURE__ */ jsx320(
7561
+ /* @__PURE__ */ jsx319(
7599
7562
  Button_default,
7600
7563
  {
7601
7564
  type: "secondary",
@@ -7603,7 +7566,7 @@ var PopupPicker = (props) => {
7603
7566
  children: locale === "ko" ? "\uCDE8\uC18C" : "Cancel"
7604
7567
  }
7605
7568
  ),
7606
- /* @__PURE__ */ jsx320(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
7569
+ /* @__PURE__ */ jsx319(Button_default, { type: "primary", onClick: handleClose, children: locale === "ko" ? "\uC801\uC6A9" : "Apply" })
7607
7570
  ] })
7608
7571
  ] }) })
7609
7572
  ] });
@@ -7612,10 +7575,10 @@ PopupPicker.displayName = "PopupPicker";
7612
7575
  var PopupPicker_default = PopupPicker;
7613
7576
 
7614
7577
  // src/components/Divider/Divider.tsx
7615
- import { jsx as jsx321 } from "react/jsx-runtime";
7578
+ import { jsx as jsx320 } from "react/jsx-runtime";
7616
7579
  var Divider = (props) => {
7617
7580
  const { orientation = "horizontal" } = props;
7618
- return /* @__PURE__ */ jsx321(
7581
+ return /* @__PURE__ */ jsx320(
7619
7582
  "div",
7620
7583
  {
7621
7584
  className: clsx_default("lib-xplat-divider", orientation),
@@ -7628,15 +7591,15 @@ Divider.displayName = "Divider";
7628
7591
  var Divider_default = Divider;
7629
7592
 
7630
7593
  // src/components/Drawer/Drawer.tsx
7631
- import React18 from "react";
7594
+ import React17 from "react";
7632
7595
  import { createPortal as createPortal2 } from "react-dom";
7633
- import { jsx as jsx322, jsxs as jsxs206 } from "react/jsx-runtime";
7596
+ import { jsx as jsx321, jsxs as jsxs206 } from "react/jsx-runtime";
7634
7597
  var ANIMATION_DURATION_MS2 = 250;
7635
7598
  var Drawer = (props) => {
7636
7599
  const { isOpen, onClose, placement = "right", size = "md", title, children } = props;
7637
- const [mounted, setMounted] = React18.useState(false);
7638
- const [visible, setVisible] = React18.useState(false);
7639
- React18.useEffect(() => {
7600
+ const [mounted, setMounted] = React17.useState(false);
7601
+ const [visible, setVisible] = React17.useState(false);
7602
+ React17.useEffect(() => {
7640
7603
  if (isOpen) {
7641
7604
  setMounted(true);
7642
7605
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -7650,7 +7613,7 @@ var Drawer = (props) => {
7650
7613
  if (!mounted) return null;
7651
7614
  const stateClass = visible ? "enter" : "exit";
7652
7615
  return createPortal2(
7653
- /* @__PURE__ */ jsx322(
7616
+ /* @__PURE__ */ jsx321(
7654
7617
  "div",
7655
7618
  {
7656
7619
  className: clsx_default("lib-xplat-drawer-overlay", stateClass),
@@ -7664,10 +7627,10 @@ var Drawer = (props) => {
7664
7627
  onClick: (e) => e.stopPropagation(),
7665
7628
  children: [
7666
7629
  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" })
7630
+ /* @__PURE__ */ jsx321("span", { className: "drawer-title", children: title }),
7631
+ /* @__PURE__ */ jsx321("button", { className: "close-btn", onClick: onClose, "aria-label": "\uB2EB\uAE30", children: "\xD7" })
7669
7632
  ] }),
7670
- /* @__PURE__ */ jsx322("div", { className: "drawer-body", children })
7633
+ /* @__PURE__ */ jsx321("div", { className: "drawer-body", children })
7671
7634
  ]
7672
7635
  }
7673
7636
  )
@@ -7680,16 +7643,16 @@ Drawer.displayName = "Drawer";
7680
7643
  var Drawer_default = Drawer;
7681
7644
 
7682
7645
  // src/components/Dropdown/Dropdown.tsx
7683
- import React21 from "react";
7646
+ import React20 from "react";
7684
7647
 
7685
7648
  // src/tokens/hooks/useAutoPosition.ts
7686
- import React19 from "react";
7649
+ import React18 from "react";
7687
7650
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
7688
- const [position, setPosition] = React19.useState({
7651
+ const [position, setPosition] = React18.useState({
7689
7652
  position: {},
7690
7653
  direction: "bottom"
7691
7654
  });
7692
- const calculatePosition = React19.useCallback(() => {
7655
+ const calculatePosition = React18.useCallback(() => {
7693
7656
  if (!triggerRef.current || !popRef.current) return;
7694
7657
  const triggerRect = triggerRef.current.getBoundingClientRect();
7695
7658
  const popW = popRef.current.offsetWidth;
@@ -7716,13 +7679,13 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
7716
7679
  direction
7717
7680
  });
7718
7681
  }, [triggerRef, popRef]);
7719
- React19.useLayoutEffect(() => {
7682
+ React18.useLayoutEffect(() => {
7720
7683
  if (!enabled) return;
7721
7684
  calculatePosition();
7722
7685
  const raf = requestAnimationFrame(calculatePosition);
7723
7686
  return () => cancelAnimationFrame(raf);
7724
7687
  }, [calculatePosition, enabled]);
7725
- React19.useEffect(() => {
7688
+ React18.useEffect(() => {
7726
7689
  if (!enabled || !popRef.current) return;
7727
7690
  const observer = new ResizeObserver(() => {
7728
7691
  calculatePosition();
@@ -7730,7 +7693,7 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
7730
7693
  observer.observe(popRef.current);
7731
7694
  return () => observer.disconnect();
7732
7695
  }, [calculatePosition, enabled, popRef]);
7733
- React19.useEffect(() => {
7696
+ React18.useEffect(() => {
7734
7697
  if (!enabled) return;
7735
7698
  window.addEventListener("resize", calculatePosition);
7736
7699
  window.addEventListener("scroll", calculatePosition, true);
@@ -7744,9 +7707,9 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
7744
7707
  var useAutoPosition_default = useAutoPosition;
7745
7708
 
7746
7709
  // src/tokens/hooks/useClickOutside.ts
7747
- import React20 from "react";
7710
+ import React19 from "react";
7748
7711
  var useClickOutside = (refs, handler, enabled = true) => {
7749
- React20.useEffect(() => {
7712
+ React19.useEffect(() => {
7750
7713
  if (!enabled) return;
7751
7714
  const refArray = Array.isArray(refs) ? refs : [refs];
7752
7715
  const listener = (event) => {
@@ -7769,17 +7732,17 @@ var useClickOutside = (refs, handler, enabled = true) => {
7769
7732
  var useClickOutside_default = useClickOutside;
7770
7733
 
7771
7734
  // src/components/Dropdown/Dropdown.tsx
7772
- import { jsx as jsx323, jsxs as jsxs207 } from "react/jsx-runtime";
7735
+ import { jsx as jsx322, jsxs as jsxs207 } from "react/jsx-runtime";
7773
7736
  var Dropdown = (props) => {
7774
7737
  const { items, children } = props;
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);
7738
+ const [isOpen, setIsOpen] = React20.useState(false);
7739
+ const [mounted, setMounted] = React20.useState(false);
7740
+ const [visible, setVisible] = React20.useState(false);
7741
+ const triggerRef = React20.useRef(null);
7742
+ const menuRef = React20.useRef(null);
7780
7743
  const { position, direction } = useAutoPosition_default(triggerRef, menuRef, mounted);
7781
7744
  useClickOutside_default([triggerRef, menuRef], () => setIsOpen(false), isOpen);
7782
- React21.useEffect(() => {
7745
+ React20.useEffect(() => {
7783
7746
  if (isOpen) {
7784
7747
  setMounted(true);
7785
7748
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -7795,7 +7758,7 @@ var Dropdown = (props) => {
7795
7758
  setIsOpen(false);
7796
7759
  };
7797
7760
  return /* @__PURE__ */ jsxs207("div", { className: "lib-xplat-dropdown", children: [
7798
- /* @__PURE__ */ jsx323(
7761
+ /* @__PURE__ */ jsx322(
7799
7762
  "div",
7800
7763
  {
7801
7764
  ref: triggerRef,
@@ -7804,14 +7767,14 @@ var Dropdown = (props) => {
7804
7767
  children
7805
7768
  }
7806
7769
  ),
7807
- mounted && /* @__PURE__ */ jsx323(Portal_default, { children: /* @__PURE__ */ jsx323(
7770
+ mounted && /* @__PURE__ */ jsx322(Portal_default, { children: /* @__PURE__ */ jsx322(
7808
7771
  "div",
7809
7772
  {
7810
7773
  ref: menuRef,
7811
7774
  className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }),
7812
7775
  style: { top: position.top, left: position.left },
7813
7776
  role: "menu",
7814
- children: items.map((item) => /* @__PURE__ */ jsx323(
7777
+ children: items.map((item) => /* @__PURE__ */ jsx322(
7815
7778
  "button",
7816
7779
  {
7817
7780
  className: clsx_default("dropdown-item", {
@@ -7833,23 +7796,23 @@ Dropdown.displayName = "Dropdown";
7833
7796
  var Dropdown_default = Dropdown;
7834
7797
 
7835
7798
  // src/components/EmptyState/EmptyState.tsx
7836
- import { jsx as jsx324, jsxs as jsxs208 } from "react/jsx-runtime";
7799
+ import { jsx as jsx323, jsxs as jsxs208 } from "react/jsx-runtime";
7837
7800
  var EmptyState = (props) => {
7838
7801
  const { icon, title = "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4", description, action } = props;
7839
7802
  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 })
7803
+ icon && /* @__PURE__ */ jsx323("div", { className: "empty-icon", children: icon }),
7804
+ !icon && /* @__PURE__ */ jsx323("div", { className: "empty-icon", children: /* @__PURE__ */ jsx323("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx323("path", { d: "M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z" }) }) }),
7805
+ /* @__PURE__ */ jsx323("p", { className: "empty-title", children: title }),
7806
+ description && /* @__PURE__ */ jsx323("p", { className: "empty-description", children: description }),
7807
+ action && /* @__PURE__ */ jsx323("div", { className: "empty-action", children: action })
7845
7808
  ] });
7846
7809
  };
7847
7810
  EmptyState.displayName = "EmptyState";
7848
7811
  var EmptyState_default = EmptyState;
7849
7812
 
7850
7813
  // src/components/FileUpload/FileUpload.tsx
7851
- import React22 from "react";
7852
- import { jsx as jsx325, jsxs as jsxs209 } from "react/jsx-runtime";
7814
+ import React21 from "react";
7815
+ import { jsx as jsx324, jsxs as jsxs209 } from "react/jsx-runtime";
7853
7816
  var FileUpload = (props) => {
7854
7817
  const {
7855
7818
  accept,
@@ -7859,8 +7822,8 @@ var FileUpload = (props) => {
7859
7822
  label = "\uD30C\uC77C\uC744 \uB4DC\uB798\uADF8\uD558\uAC70\uB098 \uD074\uB9AD\uD558\uC5EC \uC5C5\uB85C\uB4DC",
7860
7823
  description
7861
7824
  } = props;
7862
- const [isDragOver, setIsDragOver] = React22.useState(false);
7863
- const inputRef = React22.useRef(null);
7825
+ const [isDragOver, setIsDragOver] = React21.useState(false);
7826
+ const inputRef = React21.useRef(null);
7864
7827
  const handleFiles = (fileList) => {
7865
7828
  let files = Array.from(fileList);
7866
7829
  if (maxSize) {
@@ -7899,7 +7862,7 @@ var FileUpload = (props) => {
7899
7862
  onDragLeave: handleDragLeave,
7900
7863
  onClick: () => inputRef.current?.click(),
7901
7864
  children: [
7902
- /* @__PURE__ */ jsx325(
7865
+ /* @__PURE__ */ jsx324(
7903
7866
  "input",
7904
7867
  {
7905
7868
  ref: inputRef,
@@ -7909,9 +7872,9 @@ var FileUpload = (props) => {
7909
7872
  onChange: handleChange
7910
7873
  }
7911
7874
  ),
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 })
7875
+ /* @__PURE__ */ jsx324("div", { className: "upload-icon", children: /* @__PURE__ */ jsx324(UploadIcon_default, {}) }),
7876
+ /* @__PURE__ */ jsx324("p", { className: "upload-label", children: label }),
7877
+ description && /* @__PURE__ */ jsx324("p", { className: "upload-description", children: description })
7915
7878
  ]
7916
7879
  }
7917
7880
  );
@@ -7920,10 +7883,10 @@ FileUpload.displayName = "FileUpload";
7920
7883
  var FileUpload_default = FileUpload;
7921
7884
 
7922
7885
  // src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
7923
- import React24 from "react";
7886
+ import React23 from "react";
7924
7887
 
7925
7888
  // src/components/HtmlTypeWriter/utils.ts
7926
- import React23 from "react";
7889
+ import React22 from "react";
7927
7890
  var voidTags = /* @__PURE__ */ new Set([
7928
7891
  "br",
7929
7892
  "img",
@@ -7991,41 +7954,41 @@ var convertNodeToReactWithRange = (node, typedLen, rangeMap) => {
7991
7954
  props[attr.name] = attr.value;
7992
7955
  });
7993
7956
  if (voidTags.has(tag)) {
7994
- return React23.createElement(tag, props);
7957
+ return React22.createElement(tag, props);
7995
7958
  }
7996
7959
  const children = Array.from(element.childNodes).map((child) => convertNodeToReactWithRange(child, typedLen, rangeMap)).filter((n) => n != null);
7997
- return React23.createElement(tag, props, ...children);
7960
+ return React22.createElement(tag, props, ...children);
7998
7961
  };
7999
7962
  var htmlToReactProgressive = (root, typedLen, rangeMap) => {
8000
7963
  const nodes = Array.from(root.childNodes).map((child, idx) => {
8001
7964
  const node = convertNodeToReactWithRange(child, typedLen, rangeMap);
8002
- return node == null ? null : React23.createElement(React23.Fragment, { key: idx }, node);
7965
+ return node == null ? null : React22.createElement(React22.Fragment, { key: idx }, node);
8003
7966
  }).filter(Boolean);
8004
7967
  return nodes.length === 0 ? null : nodes;
8005
7968
  };
8006
7969
 
8007
7970
  // src/components/HtmlTypeWriter/HtmlTypeWriter.tsx
8008
- import { jsx as jsx326 } from "react/jsx-runtime";
7971
+ import { jsx as jsx325 } from "react/jsx-runtime";
8009
7972
  var HtmlTypeWriter = ({
8010
7973
  html,
8011
7974
  duration = 20,
8012
7975
  onDone,
8013
7976
  onChange
8014
7977
  }) => {
8015
- const [typedLen, setTypedLen] = React24.useState(0);
8016
- const doneCalledRef = React24.useRef(false);
8017
- const { doc, rangeMap, totalLength } = React24.useMemo(() => {
7978
+ const [typedLen, setTypedLen] = React23.useState(0);
7979
+ const doneCalledRef = React23.useRef(false);
7980
+ const { doc, rangeMap, totalLength } = React23.useMemo(() => {
8018
7981
  if (typeof window === "undefined") return { doc: null, rangeMap: /* @__PURE__ */ new Map(), totalLength: 0 };
8019
7982
  const decoded = decodeHtmlEntities(html);
8020
7983
  const doc2 = new DOMParser().parseFromString(decoded, "text/html");
8021
7984
  const { rangeMap: rangeMap2, totalLength: totalLength2 } = buildRangeMap(doc2.body);
8022
7985
  return { doc: doc2, rangeMap: rangeMap2, totalLength: totalLength2 };
8023
7986
  }, [html]);
8024
- React24.useEffect(() => {
7987
+ React23.useEffect(() => {
8025
7988
  setTypedLen(0);
8026
7989
  doneCalledRef.current = false;
8027
7990
  }, [html]);
8028
- React24.useEffect(() => {
7991
+ React23.useEffect(() => {
8029
7992
  if (!totalLength) return;
8030
7993
  if (typedLen >= totalLength) return;
8031
7994
  const timer = window.setInterval(() => {
@@ -8033,33 +7996,33 @@ var HtmlTypeWriter = ({
8033
7996
  }, duration);
8034
7997
  return () => window.clearInterval(timer);
8035
7998
  }, [typedLen, totalLength, duration]);
8036
- React24.useEffect(() => {
7999
+ React23.useEffect(() => {
8037
8000
  if (typedLen > 0 && typedLen < totalLength) {
8038
8001
  onChange?.();
8039
8002
  }
8040
8003
  }, [typedLen, totalLength, onChange]);
8041
- React24.useEffect(() => {
8004
+ React23.useEffect(() => {
8042
8005
  if (typedLen === totalLength && totalLength > 0 && !doneCalledRef.current) {
8043
8006
  doneCalledRef.current = true;
8044
8007
  onDone?.();
8045
8008
  }
8046
8009
  }, [typedLen, totalLength, onDone]);
8047
- const parsed = React24.useMemo(
8010
+ const parsed = React23.useMemo(
8048
8011
  () => doc ? htmlToReactProgressive(doc.body, typedLen, rangeMap) : null,
8049
8012
  [doc, typedLen, rangeMap]
8050
8013
  );
8051
- return /* @__PURE__ */ jsx326("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
8014
+ return /* @__PURE__ */ jsx325("div", { className: "lib-xplat-htmlTypewriter", children: parsed });
8052
8015
  };
8053
8016
  HtmlTypeWriter.displayName = "HtmlTypeWriter";
8054
8017
  var HtmlTypeWriter_default = HtmlTypeWriter;
8055
8018
 
8056
8019
  // src/components/ImageSelector/ImageSelector.tsx
8057
- import React25 from "react";
8058
- import { jsx as jsx327, jsxs as jsxs210 } from "react/jsx-runtime";
8020
+ import React24 from "react";
8021
+ import { jsx as jsx326, jsxs as jsxs210 } from "react/jsx-runtime";
8059
8022
  var ImageSelector = (props) => {
8060
8023
  const { value, label, onChange } = props;
8061
- const [previewUrl, setPreviewUrl] = React25.useState();
8062
- React25.useEffect(() => {
8024
+ const [previewUrl, setPreviewUrl] = React24.useState();
8025
+ React24.useEffect(() => {
8063
8026
  if (!value) {
8064
8027
  setPreviewUrl(void 0);
8065
8028
  return;
@@ -8068,7 +8031,7 @@ var ImageSelector = (props) => {
8068
8031
  setPreviewUrl(url);
8069
8032
  return () => URL.revokeObjectURL(url);
8070
8033
  }, [value]);
8071
- const inputRef = React25.useRef(null);
8034
+ const inputRef = React24.useRef(null);
8072
8035
  const handleFileChange = (e) => {
8073
8036
  const selectedFile = e.target.files?.[0];
8074
8037
  if (selectedFile) {
@@ -8082,7 +8045,7 @@ var ImageSelector = (props) => {
8082
8045
  inputRef.current?.click();
8083
8046
  };
8084
8047
  return /* @__PURE__ */ jsxs210("div", { className: `lib-xplat-imageselector${value ? "" : " none-value"}`, children: [
8085
- /* @__PURE__ */ jsx327(
8048
+ /* @__PURE__ */ jsx326(
8086
8049
  "input",
8087
8050
  {
8088
8051
  type: "file",
@@ -8093,12 +8056,12 @@ var ImageSelector = (props) => {
8093
8056
  }
8094
8057
  ),
8095
8058
  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, {}) })
8059
+ /* @__PURE__ */ jsx326("div", { className: "icon-wrapper", onClick: handleOpenFileDialog, children: /* @__PURE__ */ jsx326(UploadIcon_default, {}) }),
8060
+ /* @__PURE__ */ jsx326("div", { className: "icon-wrapper", onClick: handleDeleteFile, children: /* @__PURE__ */ jsx326(DeleteIcon_default, {}) })
8098
8061
  ] }),
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" })
8062
+ /* @__PURE__ */ jsx326("div", { className: "content", children: previewUrl ? /* @__PURE__ */ jsx326("img", { src: previewUrl, alt: "preview" }) : /* @__PURE__ */ jsxs210("div", { className: "skeleton", onClick: handleOpenFileDialog, children: [
8063
+ /* @__PURE__ */ jsx326("div", { className: "icon-wrapper", children: /* @__PURE__ */ jsx326(ImageIcon_default, {}) }),
8064
+ /* @__PURE__ */ jsx326("div", { className: "label", children: label || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
8102
8065
  ] }) })
8103
8066
  ] });
8104
8067
  };
@@ -8106,7 +8069,7 @@ ImageSelector.displayName = "ImageSelector";
8106
8069
  var ImageSelector_default = ImageSelector;
8107
8070
 
8108
8071
  // src/components/Pagination/Pagination.tsx
8109
- import { jsx as jsx328, jsxs as jsxs211 } from "react/jsx-runtime";
8072
+ import { jsx as jsx327, jsxs as jsxs211 } from "react/jsx-runtime";
8110
8073
  var getPageRange = (current, totalPages, siblingCount) => {
8111
8074
  const totalNumbers = siblingCount * 2 + 5;
8112
8075
  if (totalPages <= totalNumbers) {
@@ -8150,18 +8113,18 @@ var Pagination = (props) => {
8150
8113
  }
8151
8114
  };
8152
8115
  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(
8116
+ /* @__PURE__ */ jsx327(
8154
8117
  "button",
8155
8118
  {
8156
8119
  className: "page-btn prev",
8157
8120
  disabled: current <= 1,
8158
8121
  onClick: () => handleClick(current - 1),
8159
8122
  "aria-label": "\uC774\uC804 \uD398\uC774\uC9C0",
8160
- children: /* @__PURE__ */ jsx328(ChevronLeftIcon_default, {})
8123
+ children: /* @__PURE__ */ jsx327(ChevronLeftIcon_default, {})
8161
8124
  }
8162
8125
  ),
8163
8126
  pages.map(
8164
- (page, i) => page === "..." ? /* @__PURE__ */ jsx328("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ jsx328(
8127
+ (page, i) => page === "..." ? /* @__PURE__ */ jsx327("span", { className: "dots", children: "..." }, `dots-${i}`) : /* @__PURE__ */ jsx327(
8165
8128
  "button",
8166
8129
  {
8167
8130
  className: clsx_default("page-btn", { active: page === current }),
@@ -8172,14 +8135,14 @@ var Pagination = (props) => {
8172
8135
  page
8173
8136
  )
8174
8137
  ),
8175
- /* @__PURE__ */ jsx328(
8138
+ /* @__PURE__ */ jsx327(
8176
8139
  "button",
8177
8140
  {
8178
8141
  className: "page-btn next",
8179
8142
  disabled: current >= totalPages,
8180
8143
  onClick: () => handleClick(current + 1),
8181
8144
  "aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0",
8182
- children: /* @__PURE__ */ jsx328(ChevronRightIcon_default, {})
8145
+ children: /* @__PURE__ */ jsx327(ChevronRightIcon_default, {})
8183
8146
  }
8184
8147
  )
8185
8148
  ] });
@@ -8188,17 +8151,17 @@ Pagination.displayName = "Pagination";
8188
8151
  var Pagination_default = Pagination;
8189
8152
 
8190
8153
  // src/components/PopOver/PopOver.tsx
8191
- import React26 from "react";
8192
- import { jsx as jsx329, jsxs as jsxs212 } from "react/jsx-runtime";
8154
+ import React25 from "react";
8155
+ import { jsx as jsx328, jsxs as jsxs212 } from "react/jsx-runtime";
8193
8156
  var PopOver = (props) => {
8194
8157
  const { children, isOpen, onClose, PopOverEl } = props;
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);
8158
+ const popRef = React25.useRef(null);
8159
+ const triggerRef = React25.useRef(null);
8160
+ const [localOpen, setLocalOpen] = React25.useState(false);
8161
+ const [eventTrigger, setEventTrigger] = React25.useState(false);
8199
8162
  useClickOutside_default([popRef, triggerRef], onClose, isOpen);
8200
8163
  const position = useAutoPosition_default(triggerRef, popRef, localOpen);
8201
- React26.useEffect(() => {
8164
+ React25.useEffect(() => {
8202
8165
  if (isOpen) {
8203
8166
  setLocalOpen(isOpen);
8204
8167
  setTimeout(() => {
@@ -8221,7 +8184,7 @@ var PopOver = (props) => {
8221
8184
  },
8222
8185
  children: [
8223
8186
  children,
8224
- localOpen && /* @__PURE__ */ jsx329(Portal_default, { children: /* @__PURE__ */ jsx329(
8187
+ localOpen && /* @__PURE__ */ jsx328(Portal_default, { children: /* @__PURE__ */ jsx328(
8225
8188
  "div",
8226
8189
  {
8227
8190
  className: clsx_default(
@@ -8244,7 +8207,7 @@ PopOver.displayName = "PopOver";
8244
8207
  var PopOver_default = PopOver;
8245
8208
 
8246
8209
  // src/components/Progress/Progress.tsx
8247
- import { jsx as jsx330, jsxs as jsxs213 } from "react/jsx-runtime";
8210
+ import { jsx as jsx329, jsxs as jsxs213 } from "react/jsx-runtime";
8248
8211
  var Progress = (props) => {
8249
8212
  const {
8250
8213
  value,
@@ -8255,7 +8218,7 @@ var Progress = (props) => {
8255
8218
  } = props;
8256
8219
  const percentage = Math.min(100, Math.max(0, value / max * 100));
8257
8220
  return /* @__PURE__ */ jsxs213("div", { className: clsx_default("lib-xplat-progress", size, type), children: [
8258
- /* @__PURE__ */ jsx330(
8221
+ /* @__PURE__ */ jsx329(
8259
8222
  "div",
8260
8223
  {
8261
8224
  className: "track",
@@ -8263,7 +8226,7 @@ var Progress = (props) => {
8263
8226
  "aria-valuenow": value,
8264
8227
  "aria-valuemin": 0,
8265
8228
  "aria-valuemax": max,
8266
- children: /* @__PURE__ */ jsx330(
8229
+ children: /* @__PURE__ */ jsx329(
8267
8230
  "div",
8268
8231
  {
8269
8232
  className: "bar",
@@ -8282,17 +8245,17 @@ Progress.displayName = "Progress";
8282
8245
  var Progress_default = Progress;
8283
8246
 
8284
8247
  // src/components/Radio/RadioGroupContext.tsx
8285
- import React27 from "react";
8286
- var RadioGroupContext = React27.createContext(
8248
+ import React26 from "react";
8249
+ var RadioGroupContext = React26.createContext(
8287
8250
  null
8288
8251
  );
8289
8252
  var useRadioGroupContext = () => {
8290
- return React27.useContext(RadioGroupContext);
8253
+ return React26.useContext(RadioGroupContext);
8291
8254
  };
8292
8255
  var RadioGroupContext_default = RadioGroupContext;
8293
8256
 
8294
8257
  // src/components/Radio/Radio.tsx
8295
- import { jsx as jsx331, jsxs as jsxs214 } from "react/jsx-runtime";
8258
+ import { jsx as jsx330, jsxs as jsxs214 } from "react/jsx-runtime";
8296
8259
  var Radio = (props) => {
8297
8260
  const {
8298
8261
  label,
@@ -8320,18 +8283,18 @@ var Radio = (props) => {
8320
8283
  localChecked ? "checked" : void 0
8321
8284
  ),
8322
8285
  children: [
8323
- /* @__PURE__ */ jsx331("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
8324
- /* @__PURE__ */ jsx331(
8286
+ /* @__PURE__ */ jsx330("input", { ...rest, ...inputProps, checked: localChecked, type: "radio" }),
8287
+ /* @__PURE__ */ jsx330(
8325
8288
  "div",
8326
8289
  {
8327
8290
  className: clsx_default(
8328
8291
  "circle",
8329
8292
  localChecked ? "checked" : void 0
8330
8293
  ),
8331
- children: localChecked && /* @__PURE__ */ jsx331("div", { className: "inner-circle" })
8294
+ children: localChecked && /* @__PURE__ */ jsx330("div", { className: "inner-circle" })
8332
8295
  }
8333
8296
  ),
8334
- label && /* @__PURE__ */ jsx331("span", { children: label })
8297
+ label && /* @__PURE__ */ jsx330("span", { children: label })
8335
8298
  ]
8336
8299
  }
8337
8300
  );
@@ -8340,28 +8303,28 @@ Radio.displayName = "Radio";
8340
8303
  var Radio_default = Radio;
8341
8304
 
8342
8305
  // src/components/Radio/RadioGroup.tsx
8343
- import { Fragment as Fragment4, jsx as jsx332 } from "react/jsx-runtime";
8306
+ import { Fragment as Fragment4, jsx as jsx331 } from "react/jsx-runtime";
8344
8307
  var RadioGroup = (props) => {
8345
8308
  const { children, ...rest } = props;
8346
- return /* @__PURE__ */ jsx332(Fragment4, { children: /* @__PURE__ */ jsx332(RadioGroupContext_default.Provider, { value: rest, children }) });
8309
+ return /* @__PURE__ */ jsx331(Fragment4, { children: /* @__PURE__ */ jsx331(RadioGroupContext_default.Provider, { value: rest, children }) });
8347
8310
  };
8348
8311
  RadioGroup.displayName = "RadioGroup";
8349
8312
  var RadioGroup_default = RadioGroup;
8350
8313
 
8351
8314
  // src/components/Select/Select.tsx
8352
- import React30 from "react";
8315
+ import React29 from "react";
8353
8316
 
8354
8317
  // src/components/Select/context.ts
8355
- import React28 from "react";
8356
- var SelectContext = React28.createContext(null);
8318
+ import React27 from "react";
8319
+ var SelectContext = React27.createContext(null);
8357
8320
  var context_default = SelectContext;
8358
8321
 
8359
8322
  // src/components/Select/SelectItem.tsx
8360
- import React29 from "react";
8361
- import { jsx as jsx333 } from "react/jsx-runtime";
8323
+ import React28 from "react";
8324
+ import { jsx as jsx332 } from "react/jsx-runtime";
8362
8325
  var SelectItem = (props) => {
8363
8326
  const { children, value, onClick, disabled = false } = props;
8364
- const ctx = React29.useContext(context_default);
8327
+ const ctx = React28.useContext(context_default);
8365
8328
  const handleClick = (e) => {
8366
8329
  e.preventDefault();
8367
8330
  e.stopPropagation();
@@ -8370,7 +8333,7 @@ var SelectItem = (props) => {
8370
8333
  ctx?.close();
8371
8334
  onClick?.();
8372
8335
  };
8373
- return /* @__PURE__ */ jsx333(
8336
+ return /* @__PURE__ */ jsx332(
8374
8337
  "div",
8375
8338
  {
8376
8339
  className: clsx_default("select-item", disabled && "disabled"),
@@ -8391,7 +8354,7 @@ SelectItem.displayName = "Select.Item";
8391
8354
  var SelectItem_default = SelectItem;
8392
8355
 
8393
8356
  // src/components/Select/Select.tsx
8394
- import { jsx as jsx334, jsxs as jsxs215 } from "react/jsx-runtime";
8357
+ import { jsx as jsx333, jsxs as jsxs215 } from "react/jsx-runtime";
8395
8358
  var ANIMATION_DURATION_MS3 = 200;
8396
8359
  var SelectRoot = (props) => {
8397
8360
  const {
@@ -8403,26 +8366,26 @@ var SelectRoot = (props) => {
8403
8366
  error = false,
8404
8367
  size = "md"
8405
8368
  } = props;
8406
- const itemChildren = React30.Children.toArray(children).filter(
8407
- (child) => React30.isValidElement(child) && child.type === SelectItem_default
8369
+ const itemChildren = React29.Children.toArray(children).filter(
8370
+ (child) => React29.isValidElement(child) && child.type === SelectItem_default
8408
8371
  );
8409
8372
  const isControlled = valueProp !== void 0;
8410
- const [isOpen, setOpen] = React30.useState(false);
8411
- const [uncontrolledLabel, setUncontrolledLabel] = React30.useState(null);
8412
- const controlledLabel = React30.useMemo(() => {
8373
+ const [isOpen, setOpen] = React29.useState(false);
8374
+ const [uncontrolledLabel, setUncontrolledLabel] = React29.useState(null);
8375
+ const controlledLabel = React29.useMemo(() => {
8413
8376
  if (!isControlled) return null;
8414
8377
  const match = itemChildren.find((child) => child.props.value === valueProp);
8415
8378
  return match ? match.props.children : null;
8416
8379
  }, [isControlled, valueProp, itemChildren]);
8417
8380
  const selectedLabel = isControlled ? controlledLabel : uncontrolledLabel;
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(() => {
8381
+ const triggerRef = React29.useRef(null);
8382
+ const contentRef = React29.useRef(null);
8383
+ const [mounted, setMounted] = React29.useState(false);
8384
+ const [visible, setVisible] = React29.useState(false);
8385
+ React29.useEffect(() => {
8423
8386
  if (disabled && isOpen) setOpen(false);
8424
8387
  }, [disabled, isOpen]);
8425
- React30.useEffect(() => {
8388
+ React29.useEffect(() => {
8426
8389
  if (isOpen) {
8427
8390
  setMounted(true);
8428
8391
  const t2 = setTimeout(() => setVisible(true), 1);
@@ -8432,12 +8395,12 @@ var SelectRoot = (props) => {
8432
8395
  const t = setTimeout(() => setMounted(false), ANIMATION_DURATION_MS3);
8433
8396
  return () => clearTimeout(t);
8434
8397
  }, [isOpen]);
8435
- const open = React30.useCallback(() => setOpen(true), []);
8436
- const close = React30.useCallback(() => setOpen(false), []);
8437
- const toggle = React30.useCallback(() => setOpen((prev) => !prev), []);
8398
+ const open = React29.useCallback(() => setOpen(true), []);
8399
+ const close = React29.useCallback(() => setOpen(false), []);
8400
+ const toggle = React29.useCallback(() => setOpen((prev) => !prev), []);
8438
8401
  useClickOutside_default([contentRef, triggerRef], close, isOpen);
8439
8402
  const position = useAutoPosition_default(triggerRef, contentRef, mounted);
8440
- const setSelected = React30.useCallback(
8403
+ const setSelected = React29.useCallback(
8441
8404
  (label, itemValue) => {
8442
8405
  if (!isControlled) {
8443
8406
  setUncontrolledLabel(label);
@@ -8446,7 +8409,7 @@ var SelectRoot = (props) => {
8446
8409
  },
8447
8410
  [isControlled, onChange]
8448
8411
  );
8449
- const ctxValue = React30.useMemo(
8412
+ const ctxValue = React29.useMemo(
8450
8413
  () => ({
8451
8414
  isOpen,
8452
8415
  mounted,
@@ -8467,7 +8430,7 @@ var SelectRoot = (props) => {
8467
8430
  if (disabled) return;
8468
8431
  toggle();
8469
8432
  };
8470
- return /* @__PURE__ */ jsx334(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ jsxs215(
8433
+ return /* @__PURE__ */ jsx333(context_default.Provider, { value: ctxValue, children: /* @__PURE__ */ jsxs215(
8471
8434
  "div",
8472
8435
  {
8473
8436
  className: clsx_default(
@@ -8502,7 +8465,7 @@ var SelectRoot = (props) => {
8502
8465
  }
8503
8466
  },
8504
8467
  children: [
8505
- /* @__PURE__ */ jsx334(
8468
+ /* @__PURE__ */ jsx333(
8506
8469
  "span",
8507
8470
  {
8508
8471
  className: clsx_default(
@@ -8512,25 +8475,25 @@ var SelectRoot = (props) => {
8512
8475
  children: selectedLabel ?? placeholder
8513
8476
  }
8514
8477
  ),
8515
- /* @__PURE__ */ jsx334(
8478
+ /* @__PURE__ */ jsx333(
8516
8479
  "span",
8517
8480
  {
8518
8481
  className: clsx_default("select-trigger-icon", isOpen && "open"),
8519
8482
  "aria-hidden": true,
8520
- children: /* @__PURE__ */ jsx334(ChevronDownIcon_default, {})
8483
+ children: /* @__PURE__ */ jsx333(ChevronDownIcon_default, {})
8521
8484
  }
8522
8485
  )
8523
8486
  ]
8524
8487
  }
8525
8488
  ),
8526
- mounted && /* @__PURE__ */ jsx334(Portal_default, { children: /* @__PURE__ */ jsx334(
8489
+ mounted && /* @__PURE__ */ jsx333(Portal_default, { children: /* @__PURE__ */ jsx333(
8527
8490
  "div",
8528
8491
  {
8529
8492
  className: clsx_default("lib-xplat-select-content", position.direction, stateClass),
8530
8493
  ref: contentRef,
8531
8494
  style: { ...position.position, width: triggerRef.current?.offsetWidth },
8532
8495
  role: "listbox",
8533
- children: /* @__PURE__ */ jsx334(context_default.Provider, { value: ctxValue, children: itemChildren })
8496
+ children: /* @__PURE__ */ jsx333(context_default.Provider, { value: ctxValue, children: itemChildren })
8534
8497
  }
8535
8498
  ) })
8536
8499
  ]
@@ -8544,7 +8507,7 @@ var Select = Object.assign(SelectRoot, {
8544
8507
  var Select_default = Select;
8545
8508
 
8546
8509
  // src/components/Skeleton/Skeleton.tsx
8547
- import { jsx as jsx335 } from "react/jsx-runtime";
8510
+ import { jsx as jsx334 } from "react/jsx-runtime";
8548
8511
  var SIZE_MAP = {
8549
8512
  xs: "var(--spacing-size-1)",
8550
8513
  sm: "var(--spacing-size-2)",
@@ -8560,7 +8523,7 @@ var Skeleton = (props) => {
8560
8523
  ...width != null && { width: SIZE_MAP[width] },
8561
8524
  ...height != null && { height: SIZE_MAP[height] }
8562
8525
  };
8563
- return /* @__PURE__ */ jsx335(
8526
+ return /* @__PURE__ */ jsx334(
8564
8527
  "div",
8565
8528
  {
8566
8529
  className: clsx_default("lib-xplat-skeleton", variant),
@@ -8573,20 +8536,20 @@ Skeleton.displayName = "Skeleton";
8573
8536
  var Skeleton_default = Skeleton;
8574
8537
 
8575
8538
  // src/components/Spinner/Spinner.tsx
8576
- import { jsx as jsx336, jsxs as jsxs216 } from "react/jsx-runtime";
8539
+ import { jsx as jsx335, jsxs as jsxs216 } from "react/jsx-runtime";
8577
8540
  var Spinner = (props) => {
8578
8541
  const {
8579
8542
  size = "md",
8580
8543
  type = "brand"
8581
8544
  } = props;
8582
- return /* @__PURE__ */ jsx336(
8545
+ return /* @__PURE__ */ jsx335(
8583
8546
  "div",
8584
8547
  {
8585
8548
  className: clsx_default("lib-xplat-spinner", size, type),
8586
8549
  role: "status",
8587
8550
  "aria-label": "\uB85C\uB529 \uC911",
8588
8551
  children: /* @__PURE__ */ jsxs216("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
8589
- /* @__PURE__ */ jsx336(
8552
+ /* @__PURE__ */ jsx335(
8590
8553
  "circle",
8591
8554
  {
8592
8555
  className: "track",
@@ -8596,7 +8559,7 @@ var Spinner = (props) => {
8596
8559
  strokeWidth: "3"
8597
8560
  }
8598
8561
  ),
8599
- /* @__PURE__ */ jsx336(
8562
+ /* @__PURE__ */ jsx335(
8600
8563
  "circle",
8601
8564
  {
8602
8565
  className: "indicator",
@@ -8615,20 +8578,20 @@ Spinner.displayName = "Spinner";
8615
8578
  var Spinner_default = Spinner;
8616
8579
 
8617
8580
  // src/components/Steps/Steps.tsx
8618
- import { jsx as jsx337, jsxs as jsxs217 } from "react/jsx-runtime";
8581
+ import { jsx as jsx336, jsxs as jsxs217 } from "react/jsx-runtime";
8619
8582
  var Steps = (props) => {
8620
8583
  const {
8621
8584
  items,
8622
8585
  current,
8623
8586
  type = "brand"
8624
8587
  } = props;
8625
- return /* @__PURE__ */ jsx337("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
8588
+ return /* @__PURE__ */ jsx336("div", { className: clsx_default("lib-xplat-steps", type), children: items.map((item, index) => {
8626
8589
  const status = index < current ? "completed" : index === current ? "active" : "pending";
8627
8590
  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 }) }),
8591
+ /* @__PURE__ */ jsx336("div", { className: "step-circle", children: status === "completed" ? /* @__PURE__ */ jsx336(CheckIcon_default, {}) : /* @__PURE__ */ jsx336("span", { children: index + 1 }) }),
8629
8592
  /* @__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 })
8593
+ /* @__PURE__ */ jsx336("span", { className: "step-title", children: item.title }),
8594
+ item.description && /* @__PURE__ */ jsx336("span", { className: "step-description", children: item.description })
8632
8595
  ] })
8633
8596
  ] }, index);
8634
8597
  }) });
@@ -8637,8 +8600,8 @@ Steps.displayName = "Steps";
8637
8600
  var Steps_default = Steps;
8638
8601
 
8639
8602
  // src/components/Swiper/Swiper.tsx
8640
- import React31 from "react";
8641
- import { jsx as jsx338, jsxs as jsxs218 } from "react/jsx-runtime";
8603
+ import React30 from "react";
8604
+ import { jsx as jsx337, jsxs as jsxs218 } from "react/jsx-runtime";
8642
8605
  var Swiper = (props) => {
8643
8606
  const {
8644
8607
  auto = false,
@@ -8661,23 +8624,23 @@ var Swiper = (props) => {
8661
8624
  const maxIndex = Math.max(0, totalSlides - viewItemCount);
8662
8625
  const useLoop = loop && canSlide;
8663
8626
  const cloneCount = useLoop ? totalSlides : 0;
8664
- const extendedItems = React31.useMemo(() => {
8627
+ const extendedItems = React30.useMemo(() => {
8665
8628
  if (!useLoop) return items;
8666
8629
  return [...items, ...items, ...items];
8667
8630
  }, [items, useLoop]);
8668
8631
  const initialIdx = Math.max(0, Math.min(indexProp ?? 0, maxIndex));
8669
- const [innerIndex, setInnerIndex] = React31.useState(
8632
+ const [innerIndex, setInnerIndex] = React30.useState(
8670
8633
  useLoop ? cloneCount + initialIdx : initialIdx
8671
8634
  );
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(() => {
8635
+ const [isDragging, setIsDragging] = React30.useState(false);
8636
+ const [dragOffset, setDragOffset] = React30.useState(0);
8637
+ const [animated, setAnimated] = React30.useState(true);
8638
+ const [containerWidth, setContainerWidth] = React30.useState(0);
8639
+ const containerRef = React30.useRef(null);
8640
+ const startXRef = React30.useRef(0);
8641
+ const startTimeRef = React30.useRef(0);
8642
+ const autoplayTimerRef = React30.useRef(null);
8643
+ React30.useEffect(() => {
8681
8644
  const el = containerRef.current;
8682
8645
  if (!el) return;
8683
8646
  const ro = new ResizeObserver((entries) => {
@@ -8696,7 +8659,7 @@ var Swiper = (props) => {
8696
8659
  return ((inner - cloneCount) % totalSlides + totalSlides) % totalSlides;
8697
8660
  };
8698
8661
  const realIndex = getRealIndex(innerIndex);
8699
- const moveToInner = React31.useCallback(
8662
+ const moveToInner = React30.useCallback(
8700
8663
  (idx, withAnim = true) => {
8701
8664
  if (!useLoop) {
8702
8665
  setAnimated(withAnim);
@@ -8724,7 +8687,7 @@ var Swiper = (props) => {
8724
8687
  },
8725
8688
  [useLoop, cloneCount, totalSlides]
8726
8689
  );
8727
- const handleTransitionEnd = React31.useCallback(() => {
8690
+ const handleTransitionEnd = React30.useCallback(() => {
8728
8691
  if (!useLoop) return;
8729
8692
  const real = getRealIndex(innerIndex);
8730
8693
  const canonical = cloneCount + real;
@@ -8734,7 +8697,7 @@ var Swiper = (props) => {
8734
8697
  }
8735
8698
  onChange?.(Math.min(real, maxIndex));
8736
8699
  }, [useLoop, innerIndex, cloneCount, totalSlides, maxIndex, onChange]);
8737
- const slideTo = React31.useCallback(
8700
+ const slideTo = React30.useCallback(
8738
8701
  (logicalIndex) => {
8739
8702
  if (!canSlide) return;
8740
8703
  const clamped = useLoop ? logicalIndex : Math.max(0, Math.min(logicalIndex, maxIndex));
@@ -8744,7 +8707,7 @@ var Swiper = (props) => {
8744
8707
  },
8745
8708
  [canSlide, useLoop, cloneCount, maxIndex, onChange, moveToInner]
8746
8709
  );
8747
- const slideNext = React31.useCallback(() => {
8710
+ const slideNext = React30.useCallback(() => {
8748
8711
  if (!canSlide) return;
8749
8712
  const nextInner = innerIndex + slideBy;
8750
8713
  if (useLoop) {
@@ -8753,7 +8716,7 @@ var Swiper = (props) => {
8753
8716
  moveToInner(Math.min(nextInner, maxIndex), true);
8754
8717
  }
8755
8718
  }, [canSlide, useLoop, innerIndex, slideBy, maxIndex, moveToInner]);
8756
- const slidePrev = React31.useCallback(() => {
8719
+ const slidePrev = React30.useCallback(() => {
8757
8720
  if (!canSlide) return;
8758
8721
  const prevInner = innerIndex - slideBy;
8759
8722
  if (useLoop) {
@@ -8762,7 +8725,7 @@ var Swiper = (props) => {
8762
8725
  moveToInner(Math.max(prevInner, 0), true);
8763
8726
  }
8764
8727
  }, [canSlide, useLoop, innerIndex, slideBy, moveToInner]);
8765
- React31.useEffect(() => {
8728
+ React30.useEffect(() => {
8766
8729
  if (indexProp === void 0) return;
8767
8730
  const clamped = Math.max(0, Math.min(indexProp, maxIndex));
8768
8731
  const target = useLoop ? cloneCount + clamped : clamped;
@@ -8770,12 +8733,12 @@ var Swiper = (props) => {
8770
8733
  moveToInner(target, true);
8771
8734
  }
8772
8735
  }, [indexProp]);
8773
- React31.useImperativeHandle(swiperRef, () => ({
8736
+ React30.useImperativeHandle(swiperRef, () => ({
8774
8737
  slidePrev,
8775
8738
  slideNext,
8776
8739
  slideTo
8777
8740
  }));
8778
- React31.useEffect(() => {
8741
+ React30.useEffect(() => {
8779
8742
  if (!auto || !canSlide) return;
8780
8743
  autoplayTimerRef.current = setInterval(slideNext, autoplayDelay);
8781
8744
  return () => {
@@ -8798,7 +8761,7 @@ var Swiper = (props) => {
8798
8761
  startXRef.current = getClientX(e);
8799
8762
  startTimeRef.current = Date.now();
8800
8763
  };
8801
- React31.useEffect(() => {
8764
+ React30.useEffect(() => {
8802
8765
  if (!isDragging) return;
8803
8766
  const handleMove = (e) => {
8804
8767
  setDragOffset(getClientX(e) - startXRef.current);
@@ -8836,8 +8799,8 @@ var Swiper = (props) => {
8836
8799
  }, [isDragging, dragOffset, innerIndex, useLoop, maxIndex, slideStep, moveToInner]);
8837
8800
  const slideWidthPercent = 100 / viewItemCount;
8838
8801
  const gapAdjust = spaceBetween * (viewItemCount - 1) / viewItemCount;
8839
- const slideElements = React31.useMemo(
8840
- () => extendedItems.map((item, idx) => /* @__PURE__ */ jsx338(
8802
+ const slideElements = React30.useMemo(
8803
+ () => extendedItems.map((item, idx) => /* @__PURE__ */ jsx337(
8841
8804
  "div",
8842
8805
  {
8843
8806
  className: "lib-xplat-swiper__slide",
@@ -8857,13 +8820,13 @@ var Swiper = (props) => {
8857
8820
  totalSteps - 1
8858
8821
  );
8859
8822
  return /* @__PURE__ */ jsxs218("div", { className: "lib-xplat-swiper", ref: containerRef, children: [
8860
- /* @__PURE__ */ jsx338(
8823
+ /* @__PURE__ */ jsx337(
8861
8824
  "div",
8862
8825
  {
8863
8826
  className: "lib-xplat-swiper__viewport",
8864
8827
  onMouseDown: handleDragStart,
8865
8828
  onTouchStart: handleDragStart,
8866
- children: /* @__PURE__ */ jsx338(
8829
+ children: /* @__PURE__ */ jsx337(
8867
8830
  "div",
8868
8831
  {
8869
8832
  className: clsx_default(
@@ -8881,7 +8844,7 @@ var Swiper = (props) => {
8881
8844
  )
8882
8845
  }
8883
8846
  ),
8884
- showProgress && canSlide && /* @__PURE__ */ jsx338("div", { className: "lib-xplat-swiper__progress", children: /* @__PURE__ */ jsx338("div", { className: "lib-xplat-swiper__progress-track", children: /* @__PURE__ */ jsx338(
8847
+ showProgress && canSlide && /* @__PURE__ */ jsx337("div", { className: "lib-xplat-swiper__progress", children: /* @__PURE__ */ jsx337("div", { className: "lib-xplat-swiper__progress-track", children: /* @__PURE__ */ jsx337(
8885
8848
  "span",
8886
8849
  {
8887
8850
  className: "lib-xplat-swiper__progress-fill",
@@ -8891,7 +8854,7 @@ var Swiper = (props) => {
8891
8854
  }
8892
8855
  }
8893
8856
  ) }) }),
8894
- canSlide && /* @__PURE__ */ jsx338("div", { className: "lib-xplat-swiper__dots", children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ jsx338(
8857
+ canSlide && /* @__PURE__ */ jsx337("div", { className: "lib-xplat-swiper__dots", children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ jsx337(
8895
8858
  "button",
8896
8859
  {
8897
8860
  className: clsx_default(
@@ -8909,8 +8872,8 @@ Swiper.displayName = "Swiper";
8909
8872
  var Swiper_default = Swiper;
8910
8873
 
8911
8874
  // src/components/Switch/Switch.tsx
8912
- import React32 from "react";
8913
- import { jsx as jsx339 } from "react/jsx-runtime";
8875
+ import React31 from "react";
8876
+ import { jsx as jsx338 } from "react/jsx-runtime";
8914
8877
  var KNOB_TRANSITION_MS = 250;
8915
8878
  var Switch = (props) => {
8916
8879
  const {
@@ -8920,9 +8883,9 @@ var Switch = (props) => {
8920
8883
  disabled,
8921
8884
  onChange
8922
8885
  } = props;
8923
- const [isAnimating, setIsAnimating] = React32.useState(false);
8924
- const timeoutRef = React32.useRef(null);
8925
- React32.useEffect(() => {
8886
+ const [isAnimating, setIsAnimating] = React31.useState(false);
8887
+ const timeoutRef = React31.useRef(null);
8888
+ React31.useEffect(() => {
8926
8889
  return () => {
8927
8890
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
8928
8891
  };
@@ -8937,7 +8900,7 @@ var Switch = (props) => {
8937
8900
  timeoutRef.current = null;
8938
8901
  }, KNOB_TRANSITION_MS);
8939
8902
  };
8940
- return /* @__PURE__ */ jsx339(
8903
+ return /* @__PURE__ */ jsx338(
8941
8904
  "div",
8942
8905
  {
8943
8906
  className: clsx_default(
@@ -8950,7 +8913,7 @@ var Switch = (props) => {
8950
8913
  ),
8951
8914
  onClick: handleClick,
8952
8915
  "aria-disabled": disabled || isAnimating,
8953
- children: /* @__PURE__ */ jsx339("div", { className: clsx_default("knob", value ? "checked" : void 0) })
8916
+ children: /* @__PURE__ */ jsx338("div", { className: clsx_default("knob", value ? "checked" : void 0) })
8954
8917
  }
8955
8918
  );
8956
8919
  };
@@ -8958,17 +8921,17 @@ Switch.displayName = "Switch";
8958
8921
  var Switch_default = Switch;
8959
8922
 
8960
8923
  // src/components/Table/TableContext.tsx
8961
- import React33 from "react";
8962
- var TableContext = React33.createContext(null);
8924
+ import React32 from "react";
8925
+ var TableContext = React32.createContext(null);
8963
8926
  var useTableContext = () => {
8964
- const ctx = React33.useContext(TableContext);
8927
+ const ctx = React32.useContext(TableContext);
8965
8928
  if (!ctx) throw new Error("Table components must be used inside <Table>");
8966
8929
  return ctx;
8967
8930
  };
8968
8931
  var TableContext_default = TableContext;
8969
8932
 
8970
8933
  // src/components/Table/Table.tsx
8971
- import { jsx as jsx340 } from "react/jsx-runtime";
8934
+ import { jsx as jsx339 } from "react/jsx-runtime";
8972
8935
  var Table = (props) => {
8973
8936
  const {
8974
8937
  children,
@@ -8978,7 +8941,7 @@ var Table = (props) => {
8978
8941
  headerSticky = false,
8979
8942
  stickyShadow = true
8980
8943
  } = props;
8981
- return /* @__PURE__ */ jsx340("div", { className: `lib-xplat-table-wrapper ${size}`, children: /* @__PURE__ */ jsx340(
8944
+ return /* @__PURE__ */ jsx339("div", { className: `lib-xplat-table-wrapper ${size}`, children: /* @__PURE__ */ jsx339(
8982
8945
  TableContext_default.Provider,
8983
8946
  {
8984
8947
  value: {
@@ -8987,7 +8950,7 @@ var Table = (props) => {
8987
8950
  headerSticky,
8988
8951
  stickyShadow
8989
8952
  },
8990
- children: /* @__PURE__ */ jsx340("table", { className: "lib-xplat-table", children })
8953
+ children: /* @__PURE__ */ jsx339("table", { className: "lib-xplat-table", children })
8991
8954
  }
8992
8955
  ) });
8993
8956
  };
@@ -8995,41 +8958,41 @@ Table.displayName = "Table";
8995
8958
  var Table_default = Table;
8996
8959
 
8997
8960
  // src/components/Table/TableBody.tsx
8998
- import { jsx as jsx341 } from "react/jsx-runtime";
8961
+ import { jsx as jsx340 } from "react/jsx-runtime";
8999
8962
  var TableBody = (props) => {
9000
8963
  const { children } = props;
9001
- return /* @__PURE__ */ jsx341("tbody", { children });
8964
+ return /* @__PURE__ */ jsx340("tbody", { children });
9002
8965
  };
9003
8966
  TableBody.displayName = "TableBody";
9004
8967
  var TableBody_default = TableBody;
9005
8968
 
9006
8969
  // src/components/Table/TableCell.tsx
9007
- import React36 from "react";
8970
+ import React35 from "react";
9008
8971
 
9009
8972
  // src/components/Table/TableHeadContext.tsx
9010
- import React34 from "react";
9011
- var TableHeadContext = React34.createContext(
8973
+ import React33 from "react";
8974
+ var TableHeadContext = React33.createContext(
9012
8975
  null
9013
8976
  );
9014
8977
  var useTableHeadContext = () => {
9015
- const ctx = React34.useContext(TableHeadContext);
8978
+ const ctx = React33.useContext(TableHeadContext);
9016
8979
  return ctx;
9017
8980
  };
9018
8981
  var TableHeadContext_default = TableHeadContext;
9019
8982
 
9020
8983
  // src/components/Table/TableRowContext.tsx
9021
- import React35 from "react";
9022
- var TableRowContext = React35.createContext(null);
8984
+ import React34 from "react";
8985
+ var TableRowContext = React34.createContext(null);
9023
8986
  var useTableRowContext = () => {
9024
- const ctx = React35.useContext(TableRowContext);
8987
+ const ctx = React34.useContext(TableRowContext);
9025
8988
  if (!ctx) throw new Error("Table components must be used inside <Table>");
9026
8989
  return ctx;
9027
8990
  };
9028
8991
  var TableRowContext_default = TableRowContext;
9029
8992
 
9030
8993
  // src/components/Table/TableCell.tsx
9031
- import { jsx as jsx342 } from "react/jsx-runtime";
9032
- var TableCell = React36.memo((props) => {
8994
+ import { jsx as jsx341 } from "react/jsx-runtime";
8995
+ var TableCell = React35.memo((props) => {
9033
8996
  const {
9034
8997
  children,
9035
8998
  align = "center",
@@ -9041,9 +9004,9 @@ var TableCell = React36.memo((props) => {
9041
9004
  const { registerStickyCell, stickyCells } = useTableRowContext();
9042
9005
  const { stickyShadow } = useTableContext();
9043
9006
  const headContext = useTableHeadContext();
9044
- const [left, setLeft] = React36.useState(0);
9045
- const cellRef = React36.useRef(null);
9046
- const calculateLeft = React36.useCallback(() => {
9007
+ const [left, setLeft] = React35.useState(0);
9008
+ const cellRef = React35.useRef(null);
9009
+ const calculateLeft = React35.useCallback(() => {
9047
9010
  if (!cellRef.current) return 0;
9048
9011
  let totalLeft = 0;
9049
9012
  for (const ref of stickyCells) {
@@ -9052,7 +9015,7 @@ var TableCell = React36.memo((props) => {
9052
9015
  }
9053
9016
  return totalLeft;
9054
9017
  }, [stickyCells]);
9055
- React36.useEffect(() => {
9018
+ React35.useEffect(() => {
9056
9019
  if (!isSticky || !cellRef.current) return;
9057
9020
  registerStickyCell(cellRef);
9058
9021
  setLeft(calculateLeft());
@@ -9070,7 +9033,7 @@ var TableCell = React36.memo((props) => {
9070
9033
  const CellTag = cellRef.current?.tagName === "TH" ? "th" : "td";
9071
9034
  const isLastSticky = isSticky && stickyCells[stickyCells.length - 1] === cellRef;
9072
9035
  const enableHover = headContext && headContext.cellHover;
9073
- return /* @__PURE__ */ jsx342(
9036
+ return /* @__PURE__ */ jsx341(
9074
9037
  CellTag,
9075
9038
  {
9076
9039
  ref: cellRef,
@@ -9095,21 +9058,21 @@ TableCell.displayName = "TableCell";
9095
9058
  var TableCell_default = TableCell;
9096
9059
 
9097
9060
  // src/components/Table/TableHead.tsx
9098
- import { jsx as jsx343 } from "react/jsx-runtime";
9061
+ import { jsx as jsx342 } from "react/jsx-runtime";
9099
9062
  var TableHead = ({
9100
9063
  children,
9101
9064
  cellHover = false
9102
9065
  }) => {
9103
9066
  const { headerSticky } = useTableContext();
9104
- return /* @__PURE__ */ jsx343(TableHeadContext_default.Provider, { value: { cellHover }, children: /* @__PURE__ */ jsx343("thead", { className: clsx_default(headerSticky ? "table-sticky" : null), children }) });
9067
+ return /* @__PURE__ */ jsx342(TableHeadContext_default.Provider, { value: { cellHover }, children: /* @__PURE__ */ jsx342("thead", { className: clsx_default(headerSticky ? "table-sticky" : null), children }) });
9105
9068
  };
9106
9069
  TableHead.displayName = "TableHead";
9107
9070
  var TableHead_default = TableHead;
9108
9071
 
9109
9072
  // src/components/Table/TableRow.tsx
9110
- import React37 from "react";
9111
- import { jsx as jsx344 } from "react/jsx-runtime";
9112
- var TableRow = React37.memo((props) => {
9073
+ import React36 from "react";
9074
+ import { jsx as jsx343 } from "react/jsx-runtime";
9075
+ var TableRow = React36.memo((props) => {
9113
9076
  const {
9114
9077
  children,
9115
9078
  type = "secondary",
@@ -9117,14 +9080,14 @@ var TableRow = React37.memo((props) => {
9117
9080
  onClick
9118
9081
  } = props;
9119
9082
  const { rowBorderUse } = useTableContext();
9120
- const [stickyCells, setStickyCells] = React37.useState([]);
9083
+ const [stickyCells, setStickyCells] = React36.useState([]);
9121
9084
  const registerStickyCell = (ref) => {
9122
9085
  setStickyCells((prev) => {
9123
9086
  if (prev.includes(ref)) return prev;
9124
9087
  return [...prev, ref];
9125
9088
  });
9126
9089
  };
9127
- return /* @__PURE__ */ jsx344(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ jsx344(
9090
+ return /* @__PURE__ */ jsx343(TableRowContext_default.Provider, { value: { stickyCells, registerStickyCell }, children: /* @__PURE__ */ jsx343(
9128
9091
  "tr",
9129
9092
  {
9130
9093
  className: clsx_default(
@@ -9142,7 +9105,7 @@ TableRow.displayName = "TableRow";
9142
9105
  var TableRow_default = TableRow;
9143
9106
 
9144
9107
  // src/components/Tag/Tag.tsx
9145
- import { jsx as jsx345, jsxs as jsxs219 } from "react/jsx-runtime";
9108
+ import { jsx as jsx344, jsxs as jsxs219 } from "react/jsx-runtime";
9146
9109
  var Tag = (props) => {
9147
9110
  const {
9148
9111
  children,
@@ -9163,8 +9126,8 @@ var Tag = (props) => {
9163
9126
  disabled && "disabled"
9164
9127
  ),
9165
9128
  children: [
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, {}) })
9129
+ /* @__PURE__ */ jsx344("span", { className: "tag-label", children }),
9130
+ onClose && /* @__PURE__ */ jsx344("button", { className: "tag-close", onClick: onClose, "aria-label": "\uC0AD\uC81C", disabled, children: /* @__PURE__ */ jsx344(XIcon_default, {}) })
9168
9131
  ]
9169
9132
  }
9170
9133
  );
@@ -9172,6 +9135,63 @@ var Tag = (props) => {
9172
9135
  Tag.displayName = "Tag";
9173
9136
  var Tag_default = Tag;
9174
9137
 
9138
+ // src/components/TextArea/TextArea.tsx
9139
+ import React37 from "react";
9140
+ import { jsx as jsx345 } from "react/jsx-runtime";
9141
+ var TextArea = React37.forwardRef(
9142
+ (props, ref) => {
9143
+ const { value, onChange, disabled, ...textareaProps } = props;
9144
+ const localRef = React37.useRef(null);
9145
+ const setRefs = (el) => {
9146
+ localRef.current = el;
9147
+ if (!ref) return;
9148
+ if (typeof ref === "function") {
9149
+ ref(el);
9150
+ } else if (ref && typeof ref === "object" && "current" in ref) {
9151
+ ref.current = el;
9152
+ }
9153
+ };
9154
+ const handleOnChange = (e) => {
9155
+ const val = e.target.value;
9156
+ if (onChange) {
9157
+ const event = {
9158
+ ...e,
9159
+ target: { value: val }
9160
+ };
9161
+ onChange(event);
9162
+ }
9163
+ };
9164
+ React37.useEffect(() => {
9165
+ const el = localRef.current;
9166
+ if (!el) return;
9167
+ el.style.height = "0px";
9168
+ const nextHeight = Math.min(el.scrollHeight, 400);
9169
+ el.style.height = `${nextHeight}px`;
9170
+ }, [value]);
9171
+ return /* @__PURE__ */ jsx345("div", { className: "lib-xplat-textarea-wrapper", children: /* @__PURE__ */ jsx345(
9172
+ "div",
9173
+ {
9174
+ className: clsx_default(
9175
+ "lib-xplat-textarea",
9176
+ disabled ? "disabled" : void 0
9177
+ ),
9178
+ children: /* @__PURE__ */ jsx345(
9179
+ "textarea",
9180
+ {
9181
+ ...textareaProps,
9182
+ ref: setRefs,
9183
+ disabled,
9184
+ value,
9185
+ onChange: handleOnChange
9186
+ }
9187
+ )
9188
+ }
9189
+ ) });
9190
+ }
9191
+ );
9192
+ TextArea.displayName = "TextArea";
9193
+ var TextArea_default = TextArea;
9194
+
9175
9195
  // src/components/Toast/Toast.tsx
9176
9196
  import React38 from "react";
9177
9197
  import { createPortal as createPortal3 } from "react-dom";