@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.js CHANGED
@@ -5992,7 +5992,7 @@ const avatarPlaceholder = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAB
5992
5992
  const TEXT_GRADIENT = "linear-gradient(to top right, #B5D3F8, #E6F6FB)";
5993
5993
  const TEXT_COLOR = "#00A2D9";
5994
5994
  const SIZE_CONFIG$1 = {
5995
- xxs: { container: "size-4", fontSize: "text-[11px]", dotSize: "size-[5px]", dotRing: "ring-[1.5px]" },
5995
+ xxs: { container: "size-4", fontSize: "text-[11px]", dotSize: "size-1", dotRing: "ring-[1.5px]" },
5996
5996
  xs: { container: "size-5", fontSize: "text-sm", dotSize: "size-[5px]", dotRing: "ring-[1.5px]" },
5997
5997
  s: { container: "size-6", fontSize: "text-base", dotSize: "size-[6px]", dotRing: "ring-[1.5px]" },
5998
5998
  m: { container: "size-8", fontSize: "text-xl", dotSize: "size-[7px]", dotRing: "ring-2" },
@@ -6049,7 +6049,7 @@ function Avatar({
6049
6049
  )
6050
6050
  }
6051
6051
  ),
6052
- status && type === "photo" && /* @__PURE__ */ jsx(
6052
+ status && /* @__PURE__ */ jsx(
6053
6053
  "span",
6054
6054
  {
6055
6055
  "aria-label": "Online",
@@ -6170,33 +6170,71 @@ function PaginationBanner({
6170
6170
  );
6171
6171
  }
6172
6172
  function PaginationCarousel({
6173
- progress,
6174
- trackWidth = 40,
6173
+ count: count2,
6174
+ activeIndex,
6175
+ viewRatio,
6176
+ scrollProgress,
6177
+ onIndexChange,
6175
6178
  className
6176
6179
  }) {
6177
- const clamped = Math.min(1, Math.max(0, progress));
6178
- return /* @__PURE__ */ jsx(
6180
+ const clampedCount = Math.max(1, count2);
6181
+ const clampedIndex = Math.min(clampedCount - 1, Math.max(0, activeIndex));
6182
+ const trackWidth = 40;
6183
+ const pillWidth = Math.max(4, Math.round(trackWidth * (viewRatio ?? 1 / clampedCount)));
6184
+ const maxSlide = trackWidth - pillWidth;
6185
+ const pillLeft = scrollProgress !== void 0 ? Math.round(scrollProgress * maxSlide) : clampedCount > 1 ? Math.round(clampedIndex / (clampedCount - 1) * maxSlide) : 0;
6186
+ const goTo = (index2) => {
6187
+ const next = Math.min(clampedCount - 1, Math.max(0, index2));
6188
+ if (next !== clampedIndex) onIndexChange == null ? void 0 : onIndexChange(next);
6189
+ };
6190
+ return /* @__PURE__ */ jsxs(
6179
6191
  "div",
6180
6192
  {
6181
- className: cn("flex items-center", className),
6182
- role: "progressbar",
6183
- "aria-valuenow": Math.round(clamped * 100),
6184
- "aria-valuemin": 0,
6185
- "aria-valuemax": 100,
6186
- children: /* @__PURE__ */ jsx(
6187
- "div",
6188
- {
6189
- className: "relative h-1.5 overflow-hidden rounded-[48px] bg-black/10 dark:bg-white/10",
6190
- style: { width: trackWidth },
6191
- children: /* @__PURE__ */ jsx(
6192
- "div",
6193
- {
6194
- className: "absolute left-0 top-0 h-full rounded-[12px] bg-bg-brand transition-all duration-200",
6195
- style: { width: Math.round(clamped * trackWidth) }
6196
- }
6197
- )
6198
- }
6199
- )
6193
+ className: cn("flex items-center gap-2", className),
6194
+ role: "group",
6195
+ "aria-label": "Carousel pagination",
6196
+ children: [
6197
+ /* @__PURE__ */ jsx(
6198
+ "button",
6199
+ {
6200
+ type: "button",
6201
+ "aria-label": "Previous slide",
6202
+ onClick: () => goTo(clampedIndex - 1),
6203
+ disabled: clampedIndex <= 0,
6204
+ 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",
6205
+ children: /* @__PURE__ */ jsx(CaretLeft, { size: 16, weight: "regular" })
6206
+ }
6207
+ ),
6208
+ /* @__PURE__ */ jsx(
6209
+ "div",
6210
+ {
6211
+ className: "relative h-1.5 overflow-hidden rounded-[48px] bg-black/10 dark:bg-white/10",
6212
+ style: { width: trackWidth },
6213
+ role: "progressbar",
6214
+ "aria-valuenow": clampedIndex + 1,
6215
+ "aria-valuemin": 1,
6216
+ "aria-valuemax": clampedCount,
6217
+ children: /* @__PURE__ */ jsx(
6218
+ "div",
6219
+ {
6220
+ className: "absolute top-0 h-full rounded-[12px] bg-bg-brand transition-all duration-200",
6221
+ style: { width: pillWidth, left: pillLeft }
6222
+ }
6223
+ )
6224
+ }
6225
+ ),
6226
+ /* @__PURE__ */ jsx(
6227
+ "button",
6228
+ {
6229
+ type: "button",
6230
+ "aria-label": "Next slide",
6231
+ onClick: () => goTo(clampedIndex + 1),
6232
+ disabled: clampedIndex >= clampedCount - 1,
6233
+ 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",
6234
+ children: /* @__PURE__ */ jsx(CaretRight, { size: 16, weight: "regular" })
6235
+ }
6236
+ )
6237
+ ]
6200
6238
  }
6201
6239
  );
6202
6240
  }
@@ -6236,7 +6274,8 @@ function Pagination({
6236
6274
  setDropdownOpen(false);
6237
6275
  }
6238
6276
  };
6239
- const cell = "flex h-8 w-[39px] shrink-0 items-center justify-center text-sm leading-5 transition-colors select-none";
6277
+ 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";
6278
+ 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";
6240
6279
  const divider = "border-l border-border";
6241
6280
  const ellipsisLeft = ellipsisRef.current ? ellipsisRef.current.offsetLeft + ellipsisRef.current.offsetWidth / 2 : void 0;
6242
6281
  return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: cn("relative inline-flex w-fit", className), children: [
@@ -6244,7 +6283,7 @@ function Pagination({
6244
6283
  "nav",
6245
6284
  {
6246
6285
  "aria-label": "Pagination",
6247
- className: "inline-flex w-fit overflow-hidden rounded-lg border border-border",
6286
+ className: "box-border inline-flex h-8 w-fit items-stretch overflow-hidden rounded-lg border border-border",
6248
6287
  children: [
6249
6288
  /* @__PURE__ */ jsx(
6250
6289
  "button",
@@ -6254,8 +6293,8 @@ function Pagination({
6254
6293
  disabled: currentPage <= 1,
6255
6294
  onClick: () => goTo(currentPage - 1),
6256
6295
  className: cn(
6257
- cell,
6258
- "bg-bg-default text-icon-default hover:bg-bg-default-hover disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer"
6296
+ cellNav,
6297
+ "bg-bg-default hover:bg-bg-default-hover disabled:cursor-not-allowed disabled:opacity-40 cursor-pointer"
6259
6298
  ),
6260
6299
  children: /* @__PURE__ */ jsx(CaretLeft, { size: 16, weight: "regular" })
6261
6300
  }
@@ -6271,9 +6310,9 @@ function Pagination({
6271
6310
  "aria-haspopup": "listbox",
6272
6311
  onClick: () => setDropdownOpen((v) => !v),
6273
6312
  className: cn(
6274
- cell,
6313
+ cellPage,
6275
6314
  divider,
6276
- "bg-bg-default text-text-default cursor-pointer hover:bg-bg-default-hover"
6315
+ "bg-bg-default cursor-pointer hover:bg-bg-default-hover"
6277
6316
  ),
6278
6317
  children: "..."
6279
6318
  },
@@ -6286,10 +6325,10 @@ function Pagination({
6286
6325
  "aria-current": item === currentPage ? "page" : void 0,
6287
6326
  onClick: () => goTo(item),
6288
6327
  className: cn(
6289
- cell,
6328
+ cellPage,
6290
6329
  divider,
6291
6330
  "cursor-pointer",
6292
- item === currentPage ? "bg-bg-brand font-bold text-text-default-white" : "bg-bg-default font-normal text-text-default hover:bg-bg-default-hover"
6331
+ item === currentPage ? "bg-bg-default font-bold text-text-brand hover:bg-bg-default-hover" : "bg-bg-default hover:bg-bg-default-hover"
6293
6332
  ),
6294
6333
  children: item
6295
6334
  },
@@ -6304,9 +6343,9 @@ function Pagination({
6304
6343
  disabled: currentPage >= totalPages,
6305
6344
  onClick: () => goTo(currentPage + 1),
6306
6345
  className: cn(
6307
- cell,
6346
+ cellNav,
6308
6347
  divider,
6309
- "bg-bg-default text-icon-default hover:bg-bg-default-hover disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer"
6348
+ "bg-bg-default hover:bg-bg-default-hover disabled:cursor-not-allowed disabled:opacity-40 cursor-pointer"
6310
6349
  ),
6311
6350
  children: /* @__PURE__ */ jsx(CaretRight, { size: 16, weight: "regular" })
6312
6351
  }
@@ -6319,7 +6358,7 @@ function Pagination({
6319
6358
  {
6320
6359
  role: "listbox",
6321
6360
  "aria-label": "Select page",
6322
- 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",
6361
+ 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",
6323
6362
  style: { left: ellipsisLeft, transform: "translateX(-50%)", maxHeight: 160 },
6324
6363
  children: hiddenPages.map((page) => /* @__PURE__ */ jsx(
6325
6364
  "button",
@@ -6329,8 +6368,8 @@ function Pagination({
6329
6368
  "aria-selected": page === currentPage,
6330
6369
  onClick: () => goTo(page),
6331
6370
  className: cn(
6332
- "flex h-8 w-full shrink-0 cursor-pointer items-center justify-center text-sm leading-5 transition-colors select-none",
6333
- page === currentPage ? "bg-bg-brand font-bold text-text-default-white" : "bg-bg-default font-normal text-text-default hover:bg-bg-default-hover"
6371
+ "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",
6372
+ 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"
6334
6373
  ),
6335
6374
  children: page
6336
6375
  },
@@ -9747,13 +9786,14 @@ function clamp(v, lo, hi) {
9747
9786
  function snapToStep(raw, min2, max2, step) {
9748
9787
  return clamp(Math.round((raw - min2) / step) * step + min2, min2, max2);
9749
9788
  }
9750
- function pctToValue(pct, min2, max2, step) {
9751
- return snapToStep(min2 + pct / 100 * (max2 - min2), min2, max2, step);
9752
- }
9753
9789
  function valueToPct(value, min2, max2) {
9754
9790
  if (max2 <= min2) return 0;
9755
9791
  return clamp((value - min2) / (max2 - min2) * 100, 0, 100);
9756
9792
  }
9793
+ function getStepLabels(min2, max2, step) {
9794
+ const n = step > 0 ? Math.round((max2 - min2) / step) : 0;
9795
+ 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));
9796
+ }
9757
9797
  const Slider = forwardRef(function Slider2({
9758
9798
  size: size2 = "md",
9759
9799
  type = "single",
@@ -9784,15 +9824,19 @@ const Slider = forwardRef(function Slider2({
9784
9824
  const isSingle = type === "single";
9785
9825
  const value = valueProp !== void 0 ? valueProp : internalValue;
9786
9826
  const range = rangeProp !== void 0 ? rangeProp : internalRange;
9827
+ const stepLabels = useMemo(() => getStepLabels(min2, max2, step), [min2, max2, step]);
9787
9828
  const getValueFromClientX = useCallback(
9788
9829
  (clientX) => {
9789
9830
  const track = trackRef.current;
9790
9831
  if (!track) return min2;
9791
9832
  const { left, width } = track.getBoundingClientRect();
9792
- const pct = clamp((clientX - left) / width * 100, 0, 100);
9793
- return pctToValue(pct, min2, max2, step);
9833
+ const raw = min2 + clamp((clientX - left) / width, 0, 1) * (max2 - min2);
9834
+ if (showSteps) {
9835
+ return stepLabels.reduce((best, l) => Math.abs(l - raw) < Math.abs(best - raw) ? l : best);
9836
+ }
9837
+ return snapToStep(raw, min2, max2, step);
9794
9838
  },
9795
- [min2, max2, step]
9839
+ [min2, max2, step, showSteps, stepLabels]
9796
9840
  );
9797
9841
  const commitSingle = useCallback(
9798
9842
  (newValue) => {
@@ -9852,6 +9896,23 @@ const Slider = forwardRef(function Slider2({
9852
9896
  const handleKeyDown = useCallback(
9853
9897
  (e, thumb) => {
9854
9898
  if (disabled) return;
9899
+ if (showSteps) {
9900
+ const currentVal = isSingle ? value : range[thumb === "start" ? 0 : 1];
9901
+ const idx = stepLabels.reduce(
9902
+ (best, _, i) => Math.abs(stepLabels[i] - currentVal) < Math.abs(stepLabels[best] - currentVal) ? i : best,
9903
+ 0
9904
+ );
9905
+ let nextVal;
9906
+ if (e.key === "ArrowRight" || e.key === "ArrowUp") nextVal = stepLabels[Math.min(idx + 1, stepLabels.length - 1)];
9907
+ else if (e.key === "ArrowLeft" || e.key === "ArrowDown") nextVal = stepLabels[Math.max(idx - 1, 0)];
9908
+ else if (e.key === "Home") nextVal = stepLabels[0];
9909
+ else if (e.key === "End") nextVal = stepLabels[stepLabels.length - 1];
9910
+ if (nextVal === void 0) return;
9911
+ e.preventDefault();
9912
+ if (isSingle) commitSingle(nextVal);
9913
+ else commitRange(nextVal, thumb);
9914
+ return;
9915
+ }
9855
9916
  let delta = 0;
9856
9917
  if (e.key === "ArrowRight" || e.key === "ArrowUp") delta = step;
9857
9918
  else if (e.key === "ArrowLeft" || e.key === "ArrowDown") delta = -step;
@@ -9866,20 +9927,17 @@ const Slider = forwardRef(function Slider2({
9866
9927
  commitRange(clamp(thumbVal + delta, min2, max2), thumb);
9867
9928
  }
9868
9929
  },
9869
- [disabled, step, min2, max2, isSingle, value, range, commitSingle, commitRange]
9930
+ [disabled, showSteps, stepLabels, min2, max2, isSingle, value, range, commitSingle, commitRange]
9870
9931
  );
9871
9932
  const startPct = isSingle ? 0 : valueToPct(range[0], min2, max2);
9872
9933
  const endPct = isSingle ? valueToPct(value, min2, max2) : valueToPct(range[1], min2, max2);
9873
9934
  const thumbInteractive = cn(
9874
- "absolute rounded-full",
9935
+ "absolute rounded-full bg-[var(--fill-white-1000)]",
9875
9936
  "shadow-[0px_1px_3px_0px_rgba(0,0,0,0.10),0px_1px_2px_-1px_rgba(0,0,0,0.10)]",
9876
9937
  THUMB_SIZE_CLASS[size2],
9877
- disabled ? "bg-[var(--bg-default-secondary)] cursor-not-allowed" : "bg-[var(--fill-white-1000)] cursor-grab active:cursor-grabbing",
9938
+ disabled ? "cursor-not-allowed" : "cursor-grab active:cursor-grabbing",
9878
9939
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--bg-brand-primary)] focus-visible:ring-offset-2"
9879
9940
  );
9880
- const stepLabels = [0, 0.25, 0.5, 0.75, 1].map(
9881
- (f) => Math.round(min2 + (max2 - min2) * f)
9882
- );
9883
9941
  return /* @__PURE__ */ jsxs(
9884
9942
  "div",
9885
9943
  {
@@ -9894,8 +9952,7 @@ const Slider = forwardRef(function Slider2({
9894
9952
  className: cn(
9895
9953
  "relative w-full rounded-full",
9896
9954
  TRACK_HEIGHT[size2],
9897
- "bg-[var(--fill-gray-200)]",
9898
- disabled ? "cursor-not-allowed" : "cursor-pointer"
9955
+ disabled ? "bg-[var(--fill-gray-200)] dark:bg-[var(--fill-gray-700)] cursor-not-allowed" : "bg-[var(--fill-gray-200)] cursor-pointer"
9899
9956
  ),
9900
9957
  onPointerDown: handlePointerDown,
9901
9958
  onPointerMove: handlePointerMove,
@@ -9974,25 +10031,32 @@ const Slider = forwardRef(function Slider2({
9974
10031
  ]
9975
10032
  }
9976
10033
  ),
9977
- showSteps && /* @__PURE__ */ jsx(
9978
- "div",
9979
- {
9980
- "aria-hidden": "true",
9981
- className: "relative w-full h-4",
9982
- children: stepLabels.map((label) => {
9983
- const pct = valueToPct(label, min2, max2);
9984
- return /* @__PURE__ */ jsx(
9985
- "span",
9986
- {
9987
- className: "absolute text-xs leading-4 text-[var(--text-default-primary)] whitespace-nowrap",
9988
- style: { left: `${pct}%`, transform: "translateX(-50%)" },
9989
- children: label
9990
- },
9991
- label
9992
- );
9993
- })
9994
- }
9995
- )
10034
+ showSteps && /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "relative w-full h-4", children: stepLabels.map((label) => {
10035
+ const pct = valueToPct(label, min2, max2);
10036
+ return /* @__PURE__ */ jsx(
10037
+ "button",
10038
+ {
10039
+ type: "button",
10040
+ tabIndex: -1,
10041
+ disabled,
10042
+ onClick: () => {
10043
+ if (isSingle) {
10044
+ commitSingle(label);
10045
+ } else {
10046
+ const thumb = Math.abs(label - range[0]) <= Math.abs(label - range[1]) ? "start" : "end";
10047
+ commitRange(label, thumb);
10048
+ }
10049
+ },
10050
+ className: cn(
10051
+ "absolute text-xs leading-4 whitespace-nowrap",
10052
+ disabled ? "cursor-not-allowed text-[var(--text-default-disabled)]" : "cursor-pointer text-[var(--text-default-primary)]"
10053
+ ),
10054
+ style: { left: `${pct}%`, transform: "translateX(-50%)" },
10055
+ children: label
10056
+ },
10057
+ label
10058
+ );
10059
+ }) })
9996
10060
  ]
9997
10061
  }
9998
10062
  );
@@ -10028,7 +10092,7 @@ LinearProgress.displayName = "LinearProgress";
10028
10092
  const SIZE_CONFIG = {
10029
10093
  lg: { dimension: 128, r: 60, strokeWidth: 8, trackColor: "var(--bg-default-tertiary)", fontSize: 24, lineHeight: 36, showLabel: true },
10030
10094
  md: { dimension: 48, r: 22, strokeWidth: 3, trackColor: "var(--bg-default-tertiary)", fontSize: 14, lineHeight: 20, showLabel: true },
10031
- sm: { dimension: 24, r: 8, strokeWidth: 2, trackColor: "var(--fill-black-200)", fontSize: 0, lineHeight: 0, showLabel: false }
10095
+ sm: { dimension: 18, r: 8, strokeWidth: 2, trackColor: "var(--fill-black-200)", fontSize: 0, lineHeight: 0, showLabel: false }
10032
10096
  };
10033
10097
  const CircleProgress = forwardRef(
10034
10098
  function CircleProgress2({ value, size: size2 = "lg", className }, ref) {
@@ -10139,7 +10203,7 @@ const UploadArea = forwardRef(
10139
10203
  }
10140
10204
  },
10141
10205
  className: cn(
10142
- "flex items-center justify-center gap-2 min-h-12 py-3.5 rounded-lg",
10206
+ "flex h-12 items-center justify-center gap-2 rounded-lg",
10143
10207
  "border border-dashed border-border-default",
10144
10208
  disabled ? "bg-bg-default-secondary cursor-not-allowed" : "bg-background cursor-pointer hover:bg-bg-default-secondary transition-colors",
10145
10209
  className
@@ -10211,7 +10275,7 @@ const UploadItem = forwardRef(
10211
10275
  /* @__PURE__ */ jsx(TrashButton, { onDelete })
10212
10276
  ] }),
10213
10277
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-0.5 px-0.5 text-text-danger", children: [
10214
- /* @__PURE__ */ jsx("span", { className: "text-[7.74px] leading-none", children: "*" }),
10278
+ /* @__PURE__ */ jsx("span", { className: "text-xs leading-4", children: "*" }),
10215
10279
  /* @__PURE__ */ jsx("p", { className: "text-xs leading-4", children: errorText })
10216
10280
  ] })
10217
10281
  ] })
@@ -10219,7 +10283,7 @@ const UploadItem = forwardRef(
10219
10283
  }
10220
10284
  );
10221
10285
  }
10222
- 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";
10286
+ 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";
10223
10287
  return /* @__PURE__ */ jsxs(
10224
10288
  "div",
10225
10289
  {
@@ -10229,7 +10293,7 @@ const UploadItem = forwardRef(
10229
10293
  className
10230
10294
  ),
10231
10295
  children: [
10232
- isLoading && /* @__PURE__ */ 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: [
10296
+ isLoading && /* @__PURE__ */ 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: [
10233
10297
  /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center h-5 text-sm leading-5 text-text-default-placeholder", children: [
10234
10298
  /* @__PURE__ */ jsx("p", { className: "flex-1 min-w-0 truncate", children: fileName }),
10235
10299
  /* @__PURE__ */ jsx("p", { className: "shrink-0 text-right w-[46px]", children: fileSize })
@@ -10278,7 +10342,7 @@ function TrashButton({ onDelete }) {
10278
10342
  {
10279
10343
  type: "button",
10280
10344
  onClick: onDelete,
10281
- className: "flex items-center justify-center w-5 h-5 shrink-0 text-text-danger cursor-pointer",
10345
+ className: "flex items-center justify-center w-5 h-5 shrink-0 text-icon-danger cursor-pointer",
10282
10346
  "aria-label": "ลบไฟล์",
10283
10347
  children: /* @__PURE__ */ jsx(TrashIcon, { size: 20 })
10284
10348
  }
@@ -10308,9 +10372,9 @@ const ListItem = forwardRef(
10308
10372
  onPointerUp: () => setPressed(false),
10309
10373
  onPointerLeave: () => setPressed(false),
10310
10374
  className: cn(
10311
- "flex items-center gap-3 p-4 border-b border-border",
10375
+ "flex items-center gap-3 p-4 h-[52px] border-b border-border",
10312
10376
  isHighlighted ? "bg-bg-default-pressed" : "bg-background",
10313
- onClick && "cursor-pointer select-none",
10377
+ onClick && "cursor-pointer select-none hover:bg-bg-default-pressed",
10314
10378
  className
10315
10379
  ),
10316
10380
  children: [