@sarunyu/system-one 4.9.39 → 4.9.40

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.cjs CHANGED
@@ -6011,7 +6011,7 @@ const avatarPlaceholder = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAB
6011
6011
  const TEXT_GRADIENT = "linear-gradient(to top right, #B5D3F8, #E6F6FB)";
6012
6012
  const TEXT_COLOR = "#00A2D9";
6013
6013
  const SIZE_CONFIG$1 = {
6014
- xxs: { container: "size-4", fontSize: "text-[11px]", dotSize: "size-[5px]", dotRing: "ring-[1.5px]" },
6014
+ xxs: { container: "size-4", fontSize: "text-[11px]", dotSize: "size-1", dotRing: "ring-[1.5px]" },
6015
6015
  xs: { container: "size-5", fontSize: "text-sm", dotSize: "size-[5px]", dotRing: "ring-[1.5px]" },
6016
6016
  s: { container: "size-6", fontSize: "text-base", dotSize: "size-[6px]", dotRing: "ring-[1.5px]" },
6017
6017
  m: { container: "size-8", fontSize: "text-xl", dotSize: "size-[7px]", dotRing: "ring-2" },
@@ -6068,7 +6068,7 @@ function Avatar({
6068
6068
  )
6069
6069
  }
6070
6070
  ),
6071
- status && type === "photo" && /* @__PURE__ */ jsxRuntime.jsx(
6071
+ status && /* @__PURE__ */ jsxRuntime.jsx(
6072
6072
  "span",
6073
6073
  {
6074
6074
  "aria-label": "Online",
@@ -6189,33 +6189,71 @@ function PaginationBanner({
6189
6189
  );
6190
6190
  }
6191
6191
  function PaginationCarousel({
6192
- progress,
6193
- trackWidth = 40,
6192
+ count: count2,
6193
+ activeIndex,
6194
+ viewRatio,
6195
+ scrollProgress,
6196
+ onIndexChange,
6194
6197
  className
6195
6198
  }) {
6196
- const clamped = Math.min(1, Math.max(0, progress));
6197
- return /* @__PURE__ */ jsxRuntime.jsx(
6199
+ const clampedCount = Math.max(1, count2);
6200
+ const clampedIndex = Math.min(clampedCount - 1, Math.max(0, activeIndex));
6201
+ const trackWidth = 40;
6202
+ const pillWidth = Math.max(4, Math.round(trackWidth * (viewRatio ?? 1 / clampedCount)));
6203
+ const maxSlide = trackWidth - pillWidth;
6204
+ const pillLeft = scrollProgress !== void 0 ? Math.round(scrollProgress * maxSlide) : clampedCount > 1 ? Math.round(clampedIndex / (clampedCount - 1) * maxSlide) : 0;
6205
+ const goTo = (index2) => {
6206
+ const next = Math.min(clampedCount - 1, Math.max(0, index2));
6207
+ if (next !== clampedIndex) onIndexChange == null ? void 0 : onIndexChange(next);
6208
+ };
6209
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6198
6210
  "div",
6199
6211
  {
6200
- className: cn("flex items-center", className),
6201
- role: "progressbar",
6202
- "aria-valuenow": Math.round(clamped * 100),
6203
- "aria-valuemin": 0,
6204
- "aria-valuemax": 100,
6205
- children: /* @__PURE__ */ jsxRuntime.jsx(
6206
- "div",
6207
- {
6208
- className: "relative h-1.5 overflow-hidden rounded-[48px] bg-black/10 dark:bg-white/10",
6209
- style: { width: trackWidth },
6210
- children: /* @__PURE__ */ jsxRuntime.jsx(
6211
- "div",
6212
- {
6213
- className: "absolute left-0 top-0 h-full rounded-[12px] bg-bg-brand transition-all duration-200",
6214
- style: { width: Math.round(clamped * trackWidth) }
6215
- }
6216
- )
6217
- }
6218
- )
6212
+ className: cn("flex items-center gap-2", className),
6213
+ role: "group",
6214
+ "aria-label": "Carousel pagination",
6215
+ children: [
6216
+ /* @__PURE__ */ jsxRuntime.jsx(
6217
+ "button",
6218
+ {
6219
+ type: "button",
6220
+ "aria-label": "Previous slide",
6221
+ onClick: () => goTo(clampedIndex - 1),
6222
+ disabled: clampedIndex <= 0,
6223
+ className: "inline-flex h-6 w-6 items-center justify-center rounded-md text-icon-default transition-colors hover:bg-bg-default-hover disabled:cursor-not-allowed disabled:opacity-40",
6224
+ children: /* @__PURE__ */ jsxRuntime.jsx(react.CaretLeft, { size: 16, weight: "regular" })
6225
+ }
6226
+ ),
6227
+ /* @__PURE__ */ jsxRuntime.jsx(
6228
+ "div",
6229
+ {
6230
+ className: "relative h-1.5 overflow-hidden rounded-[48px] bg-black/10 dark:bg-white/10",
6231
+ style: { width: trackWidth },
6232
+ role: "progressbar",
6233
+ "aria-valuenow": clampedIndex + 1,
6234
+ "aria-valuemin": 1,
6235
+ "aria-valuemax": clampedCount,
6236
+ children: /* @__PURE__ */ jsxRuntime.jsx(
6237
+ "div",
6238
+ {
6239
+ className: "absolute top-0 h-full rounded-[12px] bg-bg-brand transition-all duration-200",
6240
+ style: { width: pillWidth, left: pillLeft }
6241
+ }
6242
+ )
6243
+ }
6244
+ ),
6245
+ /* @__PURE__ */ jsxRuntime.jsx(
6246
+ "button",
6247
+ {
6248
+ type: "button",
6249
+ "aria-label": "Next slide",
6250
+ onClick: () => goTo(clampedIndex + 1),
6251
+ disabled: clampedIndex >= clampedCount - 1,
6252
+ className: "inline-flex h-6 w-6 items-center justify-center rounded-md text-icon-default transition-colors hover:bg-bg-default-hover disabled:cursor-not-allowed disabled:opacity-40",
6253
+ children: /* @__PURE__ */ jsxRuntime.jsx(react.CaretRight, { size: 16, weight: "regular" })
6254
+ }
6255
+ )
6256
+ ]
6219
6257
  }
6220
6258
  );
6221
6259
  }
@@ -6255,7 +6293,8 @@ function Pagination({
6255
6293
  setDropdownOpen(false);
6256
6294
  }
6257
6295
  };
6258
- const cell = "flex h-8 w-[39px] shrink-0 items-center justify-center text-sm leading-5 transition-colors select-none";
6296
+ const cellPage = "box-border flex h-full min-h-0 shrink-0 items-center justify-center px-4 py-1 text-sm font-normal leading-5 text-text-default transition-colors select-none";
6297
+ const cellNav = "box-border inline-flex h-full min-h-0 w-[39px] shrink-0 items-center justify-center p-0 leading-none text-icon-default transition-colors select-none [&_svg]:block [&_svg]:shrink-0";
6259
6298
  const divider = "border-l border-border";
6260
6299
  const ellipsisLeft = ellipsisRef.current ? ellipsisRef.current.offsetLeft + ellipsisRef.current.offsetWidth / 2 : void 0;
6261
6300
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: cn("relative inline-flex w-fit", className), children: [
@@ -6263,7 +6302,7 @@ function Pagination({
6263
6302
  "nav",
6264
6303
  {
6265
6304
  "aria-label": "Pagination",
6266
- className: "inline-flex w-fit overflow-hidden rounded-lg border border-border",
6305
+ className: "box-border inline-flex h-8 w-fit items-stretch overflow-hidden rounded-lg border border-border",
6267
6306
  children: [
6268
6307
  /* @__PURE__ */ jsxRuntime.jsx(
6269
6308
  "button",
@@ -6273,8 +6312,8 @@ function Pagination({
6273
6312
  disabled: currentPage <= 1,
6274
6313
  onClick: () => goTo(currentPage - 1),
6275
6314
  className: cn(
6276
- cell,
6277
- "bg-bg-default text-icon-default hover:bg-bg-default-hover disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer"
6315
+ cellNav,
6316
+ "bg-bg-default hover:bg-bg-default-hover disabled:cursor-not-allowed disabled:opacity-40 cursor-pointer"
6278
6317
  ),
6279
6318
  children: /* @__PURE__ */ jsxRuntime.jsx(react.CaretLeft, { size: 16, weight: "regular" })
6280
6319
  }
@@ -6290,9 +6329,9 @@ function Pagination({
6290
6329
  "aria-haspopup": "listbox",
6291
6330
  onClick: () => setDropdownOpen((v) => !v),
6292
6331
  className: cn(
6293
- cell,
6332
+ cellPage,
6294
6333
  divider,
6295
- "bg-bg-default text-text-default cursor-pointer hover:bg-bg-default-hover"
6334
+ "bg-bg-default cursor-pointer hover:bg-bg-default-hover"
6296
6335
  ),
6297
6336
  children: "..."
6298
6337
  },
@@ -6305,10 +6344,10 @@ function Pagination({
6305
6344
  "aria-current": item === currentPage ? "page" : void 0,
6306
6345
  onClick: () => goTo(item),
6307
6346
  className: cn(
6308
- cell,
6347
+ cellPage,
6309
6348
  divider,
6310
6349
  "cursor-pointer",
6311
- item === currentPage ? "bg-bg-brand font-bold text-text-default-white" : "bg-bg-default font-normal text-text-default hover:bg-bg-default-hover"
6350
+ item === currentPage ? "bg-bg-default font-bold text-text-brand hover:bg-bg-default-hover" : "bg-bg-default hover:bg-bg-default-hover"
6312
6351
  ),
6313
6352
  children: item
6314
6353
  },
@@ -6323,9 +6362,9 @@ function Pagination({
6323
6362
  disabled: currentPage >= totalPages,
6324
6363
  onClick: () => goTo(currentPage + 1),
6325
6364
  className: cn(
6326
- cell,
6365
+ cellNav,
6327
6366
  divider,
6328
- "bg-bg-default text-icon-default hover:bg-bg-default-hover disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer"
6367
+ "bg-bg-default hover:bg-bg-default-hover disabled:cursor-not-allowed disabled:opacity-40 cursor-pointer"
6329
6368
  ),
6330
6369
  children: /* @__PURE__ */ jsxRuntime.jsx(react.CaretRight, { size: 16, weight: "regular" })
6331
6370
  }
@@ -6338,7 +6377,7 @@ function Pagination({
6338
6377
  {
6339
6378
  role: "listbox",
6340
6379
  "aria-label": "Select page",
6341
- className: "absolute bottom-full mb-1 z-50 flex w-[39px] flex-col overflow-y-auto rounded-lg border border-border bg-bg-default shadow-md [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
6380
+ className: "absolute bottom-full z-50 mb-1 flex min-w-[39px] w-max flex-col overflow-y-auto rounded-lg border border-border bg-bg-default shadow-md [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
6342
6381
  style: { left: ellipsisLeft, transform: "translateX(-50%)", maxHeight: 160 },
6343
6382
  children: hiddenPages.map((page) => /* @__PURE__ */ jsxRuntime.jsx(
6344
6383
  "button",
@@ -6348,8 +6387,8 @@ function Pagination({
6348
6387
  "aria-selected": page === currentPage,
6349
6388
  onClick: () => goTo(page),
6350
6389
  className: cn(
6351
- "flex h-8 w-full shrink-0 cursor-pointer items-center justify-center text-sm leading-5 transition-colors select-none",
6352
- page === currentPage ? "bg-bg-brand font-bold text-text-default-white" : "bg-bg-default font-normal text-text-default hover:bg-bg-default-hover"
6390
+ "box-border flex h-8 w-full min-w-full shrink-0 cursor-pointer items-center justify-center px-4 py-1 text-sm leading-5 transition-colors select-none",
6391
+ page === currentPage ? "bg-bg-default font-bold text-text-brand hover:bg-bg-default-hover" : "bg-bg-default font-normal text-text-default hover:bg-bg-default-hover"
6353
6392
  ),
6354
6393
  children: page
6355
6394
  },
@@ -9766,13 +9805,14 @@ function clamp(v, lo, hi) {
9766
9805
  function snapToStep(raw, min2, max2, step) {
9767
9806
  return clamp(Math.round((raw - min2) / step) * step + min2, min2, max2);
9768
9807
  }
9769
- function pctToValue(pct, min2, max2, step) {
9770
- return snapToStep(min2 + pct / 100 * (max2 - min2), min2, max2, step);
9771
- }
9772
9808
  function valueToPct(value, min2, max2) {
9773
9809
  if (max2 <= min2) return 0;
9774
9810
  return clamp((value - min2) / (max2 - min2) * 100, 0, 100);
9775
9811
  }
9812
+ function getStepLabels(min2, max2, step) {
9813
+ const n = step > 0 ? Math.round((max2 - min2) / step) : 0;
9814
+ return n > 0 && n <= 10 ? Array.from({ length: n + 1 }, (_, i) => clamp(min2 + i * step, min2, max2)) : [0, 0.25, 0.5, 0.75, 1].map((f) => Math.round(min2 + (max2 - min2) * f));
9815
+ }
9776
9816
  const Slider = React.forwardRef(function Slider2({
9777
9817
  size: size2 = "md",
9778
9818
  type = "single",
@@ -9803,15 +9843,19 @@ const Slider = React.forwardRef(function Slider2({
9803
9843
  const isSingle = type === "single";
9804
9844
  const value = valueProp !== void 0 ? valueProp : internalValue;
9805
9845
  const range = rangeProp !== void 0 ? rangeProp : internalRange;
9846
+ const stepLabels = React.useMemo(() => getStepLabels(min2, max2, step), [min2, max2, step]);
9806
9847
  const getValueFromClientX = React.useCallback(
9807
9848
  (clientX) => {
9808
9849
  const track = trackRef.current;
9809
9850
  if (!track) return min2;
9810
9851
  const { left, width } = track.getBoundingClientRect();
9811
- const pct = clamp((clientX - left) / width * 100, 0, 100);
9812
- return pctToValue(pct, min2, max2, step);
9852
+ const raw = min2 + clamp((clientX - left) / width, 0, 1) * (max2 - min2);
9853
+ if (showSteps) {
9854
+ return stepLabels.reduce((best, l) => Math.abs(l - raw) < Math.abs(best - raw) ? l : best);
9855
+ }
9856
+ return snapToStep(raw, min2, max2, step);
9813
9857
  },
9814
- [min2, max2, step]
9858
+ [min2, max2, step, showSteps, stepLabels]
9815
9859
  );
9816
9860
  const commitSingle = React.useCallback(
9817
9861
  (newValue) => {
@@ -9871,6 +9915,23 @@ const Slider = React.forwardRef(function Slider2({
9871
9915
  const handleKeyDown = React.useCallback(
9872
9916
  (e, thumb) => {
9873
9917
  if (disabled) return;
9918
+ if (showSteps) {
9919
+ const currentVal = isSingle ? value : range[thumb === "start" ? 0 : 1];
9920
+ const idx = stepLabels.reduce(
9921
+ (best, _, i) => Math.abs(stepLabels[i] - currentVal) < Math.abs(stepLabels[best] - currentVal) ? i : best,
9922
+ 0
9923
+ );
9924
+ let nextVal;
9925
+ if (e.key === "ArrowRight" || e.key === "ArrowUp") nextVal = stepLabels[Math.min(idx + 1, stepLabels.length - 1)];
9926
+ else if (e.key === "ArrowLeft" || e.key === "ArrowDown") nextVal = stepLabels[Math.max(idx - 1, 0)];
9927
+ else if (e.key === "Home") nextVal = stepLabels[0];
9928
+ else if (e.key === "End") nextVal = stepLabels[stepLabels.length - 1];
9929
+ if (nextVal === void 0) return;
9930
+ e.preventDefault();
9931
+ if (isSingle) commitSingle(nextVal);
9932
+ else commitRange(nextVal, thumb);
9933
+ return;
9934
+ }
9874
9935
  let delta = 0;
9875
9936
  if (e.key === "ArrowRight" || e.key === "ArrowUp") delta = step;
9876
9937
  else if (e.key === "ArrowLeft" || e.key === "ArrowDown") delta = -step;
@@ -9885,20 +9946,17 @@ const Slider = React.forwardRef(function Slider2({
9885
9946
  commitRange(clamp(thumbVal + delta, min2, max2), thumb);
9886
9947
  }
9887
9948
  },
9888
- [disabled, step, min2, max2, isSingle, value, range, commitSingle, commitRange]
9949
+ [disabled, showSteps, stepLabels, min2, max2, isSingle, value, range, commitSingle, commitRange]
9889
9950
  );
9890
9951
  const startPct = isSingle ? 0 : valueToPct(range[0], min2, max2);
9891
9952
  const endPct = isSingle ? valueToPct(value, min2, max2) : valueToPct(range[1], min2, max2);
9892
9953
  const thumbInteractive = cn(
9893
- "absolute rounded-full",
9954
+ "absolute rounded-full bg-[var(--fill-white-1000)]",
9894
9955
  "shadow-[0px_1px_3px_0px_rgba(0,0,0,0.10),0px_1px_2px_-1px_rgba(0,0,0,0.10)]",
9895
9956
  THUMB_SIZE_CLASS[size2],
9896
- disabled ? "bg-[var(--bg-default-secondary)] cursor-not-allowed" : "bg-[var(--fill-white-1000)] cursor-grab active:cursor-grabbing",
9957
+ disabled ? "cursor-not-allowed" : "cursor-grab active:cursor-grabbing",
9897
9958
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--bg-brand-primary)] focus-visible:ring-offset-2"
9898
9959
  );
9899
- const stepLabels = [0, 0.25, 0.5, 0.75, 1].map(
9900
- (f) => Math.round(min2 + (max2 - min2) * f)
9901
- );
9902
9960
  return /* @__PURE__ */ jsxRuntime.jsxs(
9903
9961
  "div",
9904
9962
  {
@@ -9913,8 +9971,7 @@ const Slider = React.forwardRef(function Slider2({
9913
9971
  className: cn(
9914
9972
  "relative w-full rounded-full",
9915
9973
  TRACK_HEIGHT[size2],
9916
- "bg-[var(--fill-gray-200)]",
9917
- disabled ? "cursor-not-allowed" : "cursor-pointer"
9974
+ disabled ? "bg-[var(--fill-gray-200)] dark:bg-[var(--fill-gray-700)] cursor-not-allowed" : "bg-[var(--fill-gray-200)] cursor-pointer"
9918
9975
  ),
9919
9976
  onPointerDown: handlePointerDown,
9920
9977
  onPointerMove: handlePointerMove,
@@ -9993,25 +10050,32 @@ const Slider = React.forwardRef(function Slider2({
9993
10050
  ]
9994
10051
  }
9995
10052
  ),
9996
- showSteps && /* @__PURE__ */ jsxRuntime.jsx(
9997
- "div",
9998
- {
9999
- "aria-hidden": "true",
10000
- className: "relative w-full h-4",
10001
- children: stepLabels.map((label) => {
10002
- const pct = valueToPct(label, min2, max2);
10003
- return /* @__PURE__ */ jsxRuntime.jsx(
10004
- "span",
10005
- {
10006
- className: "absolute text-xs leading-4 text-[var(--text-default-primary)] whitespace-nowrap",
10007
- style: { left: `${pct}%`, transform: "translateX(-50%)" },
10008
- children: label
10009
- },
10010
- label
10011
- );
10012
- })
10013
- }
10014
- )
10053
+ showSteps && /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "relative w-full h-4", children: stepLabels.map((label) => {
10054
+ const pct = valueToPct(label, min2, max2);
10055
+ return /* @__PURE__ */ jsxRuntime.jsx(
10056
+ "button",
10057
+ {
10058
+ type: "button",
10059
+ tabIndex: -1,
10060
+ disabled,
10061
+ onClick: () => {
10062
+ if (isSingle) {
10063
+ commitSingle(label);
10064
+ } else {
10065
+ const thumb = Math.abs(label - range[0]) <= Math.abs(label - range[1]) ? "start" : "end";
10066
+ commitRange(label, thumb);
10067
+ }
10068
+ },
10069
+ className: cn(
10070
+ "absolute text-xs leading-4 whitespace-nowrap",
10071
+ disabled ? "cursor-not-allowed text-[var(--text-default-disabled)]" : "cursor-pointer text-[var(--text-default-primary)]"
10072
+ ),
10073
+ style: { left: `${pct}%`, transform: "translateX(-50%)" },
10074
+ children: label
10075
+ },
10076
+ label
10077
+ );
10078
+ }) })
10015
10079
  ]
10016
10080
  }
10017
10081
  );
@@ -10047,7 +10111,7 @@ LinearProgress.displayName = "LinearProgress";
10047
10111
  const SIZE_CONFIG = {
10048
10112
  lg: { dimension: 128, r: 60, strokeWidth: 8, trackColor: "var(--bg-default-tertiary)", fontSize: 24, lineHeight: 36, showLabel: true },
10049
10113
  md: { dimension: 48, r: 22, strokeWidth: 3, trackColor: "var(--bg-default-tertiary)", fontSize: 14, lineHeight: 20, showLabel: true },
10050
- sm: { dimension: 24, r: 8, strokeWidth: 2, trackColor: "var(--fill-black-200)", fontSize: 0, lineHeight: 0, showLabel: false }
10114
+ sm: { dimension: 18, r: 8, strokeWidth: 2, trackColor: "var(--fill-black-200)", fontSize: 0, lineHeight: 0, showLabel: false }
10051
10115
  };
10052
10116
  const CircleProgress = React.forwardRef(
10053
10117
  function CircleProgress2({ value, size: size2 = "lg", className }, ref) {
@@ -10158,7 +10222,7 @@ const UploadArea = React.forwardRef(
10158
10222
  }
10159
10223
  },
10160
10224
  className: cn(
10161
- "flex items-center justify-center gap-2 min-h-12 py-3.5 rounded-lg",
10225
+ "flex h-12 items-center justify-center gap-2 rounded-lg",
10162
10226
  "border border-dashed border-border-default",
10163
10227
  disabled ? "bg-bg-default-secondary cursor-not-allowed" : "bg-background cursor-pointer hover:bg-bg-default-secondary transition-colors",
10164
10228
  className
@@ -10230,7 +10294,7 @@ const UploadItem = React.forwardRef(
10230
10294
  /* @__PURE__ */ jsxRuntime.jsx(TrashButton, { onDelete })
10231
10295
  ] }),
10232
10296
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-0.5 px-0.5 text-text-danger", children: [
10233
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[7.74px] leading-none", children: "*" }),
10297
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs leading-4", children: "*" }),
10234
10298
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs leading-4", children: errorText })
10235
10299
  ] })
10236
10300
  ] })
@@ -10238,7 +10302,7 @@ const UploadItem = React.forwardRef(
10238
10302
  }
10239
10303
  );
10240
10304
  }
10241
- const cardBase = "flex-1 min-w-0 flex items-center gap-2 p-3.5 bg-background border border-border-default rounded-lg text-base leading-6 whitespace-nowrap";
10305
+ const cardBase = "flex-1 min-w-0 flex h-[52px] items-center gap-2 px-3.5 bg-background border border-border-default rounded-lg text-base leading-6 whitespace-nowrap";
10242
10306
  return /* @__PURE__ */ jsxRuntime.jsxs(
10243
10307
  "div",
10244
10308
  {
@@ -10248,7 +10312,7 @@ const UploadItem = React.forwardRef(
10248
10312
  className
10249
10313
  ),
10250
10314
  children: [
10251
- isLoading && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full flex flex-col gap-1 px-3.5 py-2.5 bg-background border border-border-default rounded-lg", children: [
10315
+ isLoading && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full flex h-12 flex-col justify-center gap-1 px-3.5 bg-background border border-border-default rounded-lg", children: [
10252
10316
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 items-center h-5 text-sm leading-5 text-text-default-placeholder", children: [
10253
10317
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "flex-1 min-w-0 truncate", children: fileName }),
10254
10318
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "shrink-0 text-right w-[46px]", children: fileSize })
@@ -10297,7 +10361,7 @@ function TrashButton({ onDelete }) {
10297
10361
  {
10298
10362
  type: "button",
10299
10363
  onClick: onDelete,
10300
- className: "flex items-center justify-center w-5 h-5 shrink-0 text-text-danger cursor-pointer",
10364
+ className: "flex items-center justify-center w-5 h-5 shrink-0 text-icon-danger cursor-pointer",
10301
10365
  "aria-label": "ลบไฟล์",
10302
10366
  children: /* @__PURE__ */ jsxRuntime.jsx(react.TrashIcon, { size: 20 })
10303
10367
  }
@@ -10327,9 +10391,9 @@ const ListItem = React.forwardRef(
10327
10391
  onPointerUp: () => setPressed(false),
10328
10392
  onPointerLeave: () => setPressed(false),
10329
10393
  className: cn(
10330
- "flex items-center gap-3 p-4 border-b border-border",
10394
+ "flex items-center gap-3 p-4 h-[52px] border-b border-border",
10331
10395
  isHighlighted ? "bg-bg-default-pressed" : "bg-background",
10332
- onClick && "cursor-pointer select-none",
10396
+ onClick && "cursor-pointer select-none hover:bg-bg-default-pressed",
10333
10397
  className
10334
10398
  ),
10335
10399
  children: [