sellmate-design-system-react 0.1.9 → 0.1.10

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.
Files changed (82) hide show
  1. package/dist/components/SBarcodeInput/SBarcodeInput.cjs +1 -1
  2. package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
  3. package/dist/components/SBarcodeInput/SBarcodeInput.js +1 -1
  4. package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
  5. package/dist/components/SChipInput/SChipInput.cjs +1 -1
  6. package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
  7. package/dist/components/SChipInput/SChipInput.js +1 -1
  8. package/dist/components/SChipInput/SChipInput.js.map +1 -1
  9. package/dist/components/SCircleProgress/SCircleProgress.cjs +69 -50
  10. package/dist/components/SCircleProgress/SCircleProgress.cjs.map +1 -1
  11. package/dist/components/SCircleProgress/SCircleProgress.d.ts +2 -0
  12. package/dist/components/SCircleProgress/SCircleProgress.js +69 -50
  13. package/dist/components/SCircleProgress/SCircleProgress.js.map +1 -1
  14. package/dist/components/SDatePicker/SDatePicker.cjs +1 -1
  15. package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
  16. package/dist/components/SDatePicker/SDatePicker.js +1 -1
  17. package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
  18. package/dist/components/SDateRangePicker/SDateRangePicker.cjs +1 -1
  19. package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
  20. package/dist/components/SDateRangePicker/SDateRangePicker.js +1 -1
  21. package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
  22. package/dist/components/SField/SField.cjs +1 -1
  23. package/dist/components/SField/SField.cjs.map +1 -1
  24. package/dist/components/SField/SField.js +1 -1
  25. package/dist/components/SField/SField.js.map +1 -1
  26. package/dist/components/SFilePicker/SFilePicker.cjs +36 -17
  27. package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
  28. package/dist/components/SFilePicker/SFilePicker.d.ts +1 -1
  29. package/dist/components/SFilePicker/SFilePicker.js +35 -17
  30. package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
  31. package/dist/components/SInput/SInput.cjs +1 -1
  32. package/dist/components/SInput/SInput.cjs.map +1 -1
  33. package/dist/components/SInput/SInput.js +1 -1
  34. package/dist/components/SInput/SInput.js.map +1 -1
  35. package/dist/components/SKeyValueTable/SKeyValueTable.cjs +43 -22
  36. package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
  37. package/dist/components/SKeyValueTable/SKeyValueTable.js +43 -22
  38. package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
  39. package/dist/components/SLoadingContainer/SLoadingContainer.cjs +69 -50
  40. package/dist/components/SLoadingContainer/SLoadingContainer.cjs.map +1 -1
  41. package/dist/components/SLoadingContainer/SLoadingContainer.js +69 -50
  42. package/dist/components/SLoadingContainer/SLoadingContainer.js.map +1 -1
  43. package/dist/components/SLoadingContainer/loading.cjs +69 -50
  44. package/dist/components/SLoadingContainer/loading.cjs.map +1 -1
  45. package/dist/components/SLoadingContainer/loading.js +69 -50
  46. package/dist/components/SLoadingContainer/loading.js.map +1 -1
  47. package/dist/components/SLoadingModal/SLoadingModal.cjs +72 -50
  48. package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
  49. package/dist/components/SLoadingModal/SLoadingModal.d.ts +3 -1
  50. package/dist/components/SLoadingModal/SLoadingModal.js +72 -50
  51. package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
  52. package/dist/components/SNumberInput/SNumberInput.cjs +1 -1
  53. package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
  54. package/dist/components/SNumberInput/SNumberInput.js +1 -1
  55. package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
  56. package/dist/components/SRadio/SRadioGroup.cjs +1 -1
  57. package/dist/components/SRadio/SRadioGroup.cjs.map +1 -1
  58. package/dist/components/SRadio/SRadioGroup.js +1 -1
  59. package/dist/components/SRadio/SRadioGroup.js.map +1 -1
  60. package/dist/components/SSelect/SSelect.cjs +8 -4
  61. package/dist/components/SSelect/SSelect.cjs.map +1 -1
  62. package/dist/components/SSelect/SSelect.js +8 -4
  63. package/dist/components/SSelect/SSelect.js.map +1 -1
  64. package/dist/components/STable/STable.cjs +82 -56
  65. package/dist/components/STable/STable.cjs.map +1 -1
  66. package/dist/components/STable/STable.js +82 -56
  67. package/dist/components/STable/STable.js.map +1 -1
  68. package/dist/components/STextarea/STextarea.cjs +1 -1
  69. package/dist/components/STextarea/STextarea.cjs.map +1 -1
  70. package/dist/components/STextarea/STextarea.js +1 -1
  71. package/dist/components/STextarea/STextarea.js.map +1 -1
  72. package/dist/components/STooltip/STooltip.cjs +1 -1
  73. package/dist/components/STooltip/STooltip.cjs.map +1 -1
  74. package/dist/components/STooltip/STooltip.js +1 -1
  75. package/dist/components/STooltip/STooltip.js.map +1 -1
  76. package/dist/index.cjs +120 -74
  77. package/dist/index.cjs.map +1 -1
  78. package/dist/index.js +120 -74
  79. package/dist/index.js.map +1 -1
  80. package/dist/styles.css +62 -21
  81. package/dist/theme.css +45 -21
  82. package/package.json +1 -1
@@ -2935,12 +2935,35 @@ var COLOR_MAP = {
2935
2935
  };
2936
2936
  var clamp = (v) => Number.isFinite(v) ? Math.max(0, Math.min(100, v)) : 0;
2937
2937
  var SCircleProgress = forwardRef(
2938
- function SCircleProgress2({ value = 0, type = "primary", indeterminate = false, label, className, style }, ref) {
2938
+ function SCircleProgress2({
2939
+ value = 0,
2940
+ type = "primary",
2941
+ indeterminate = false,
2942
+ label,
2943
+ innerValue = false,
2944
+ className,
2945
+ style
2946
+ }, ref) {
2939
2947
  const v = clamp(value);
2940
2948
  const colors = COLOR_MAP[type];
2941
2949
  const c = VIEWBOX / 2;
2942
2950
  const percentColor = v === 0 ? "var(--sys-color-fg-tertiary, #888888)" : colors.arc;
2943
2951
  const filled = v / 100 * CIRCUMFERENCE;
2952
+ const showPercent = !indeterminate;
2953
+ const percentNode = /* @__PURE__ */ jsxs(
2954
+ "span",
2955
+ {
2956
+ className: cn(
2957
+ "text-center text-[16px] font-bold leading-[26px]",
2958
+ innerValue && "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"
2959
+ ),
2960
+ style: { color: percentColor },
2961
+ children: [
2962
+ Math.round(v),
2963
+ "%"
2964
+ ]
2965
+ }
2966
+ );
2944
2967
  return /* @__PURE__ */ jsxs(
2945
2968
  "div",
2946
2969
  {
@@ -2951,57 +2974,53 @@ var SCircleProgress = forwardRef(
2951
2974
  ),
2952
2975
  style,
2953
2976
  children: [
2954
- /* @__PURE__ */ jsxs(
2955
- "svg",
2956
- {
2957
- viewBox: `0 0 ${VIEWBOX} ${VIEWBOX}`,
2958
- xmlns: "http://www.w3.org/2000/svg",
2959
- className: cn("h-[80px] w-[80px]", indeterminate && "origin-center animate-circle-spin"),
2960
- children: [
2961
- /* @__PURE__ */ jsx(
2962
- "circle",
2963
- {
2964
- cx: c,
2965
- cy: c,
2966
- r: RADIUS,
2967
- fill: "none",
2968
- strokeWidth: STROKE,
2969
- style: { stroke: colors.track }
2970
- }
2977
+ /* @__PURE__ */ jsxs("div", { className: cn(innerValue && "relative"), children: [
2978
+ /* @__PURE__ */ jsxs(
2979
+ "svg",
2980
+ {
2981
+ viewBox: `0 0 ${VIEWBOX} ${VIEWBOX}`,
2982
+ xmlns: "http://www.w3.org/2000/svg",
2983
+ className: cn(
2984
+ "h-[80px] w-[80px]",
2985
+ indeterminate && "origin-center animate-circle-spin"
2971
2986
  ),
2972
- /* @__PURE__ */ jsx(
2973
- "circle",
2974
- {
2975
- cx: c,
2976
- cy: c,
2977
- r: RADIUS,
2978
- fill: "none",
2979
- strokeWidth: STROKE,
2980
- strokeLinecap: "round",
2981
- className: cn(
2982
- "origin-center",
2983
- indeterminate ? "animate-circle-arc" : "-rotate-90 transition-[stroke-dasharray] duration-[400ms] ease-linear"
2984
- ),
2985
- style: {
2986
- stroke: colors.arc,
2987
- ...indeterminate ? {} : { strokeDasharray: `${filled} ${CIRCUMFERENCE}`, strokeDashoffset: 0 }
2987
+ children: [
2988
+ /* @__PURE__ */ jsx(
2989
+ "circle",
2990
+ {
2991
+ cx: c,
2992
+ cy: c,
2993
+ r: RADIUS,
2994
+ fill: "none",
2995
+ strokeWidth: STROKE,
2996
+ style: { stroke: colors.track }
2988
2997
  }
2989
- }
2990
- )
2991
- ]
2992
- }
2993
- ),
2994
- !indeterminate && /* @__PURE__ */ jsxs(
2995
- "span",
2996
- {
2997
- className: "text-center text-[16px] font-bold leading-[26px]",
2998
- style: { color: percentColor },
2999
- children: [
3000
- Math.round(v),
3001
- "%"
3002
- ]
3003
- }
3004
- ),
2998
+ ),
2999
+ /* @__PURE__ */ jsx(
3000
+ "circle",
3001
+ {
3002
+ cx: c,
3003
+ cy: c,
3004
+ r: RADIUS,
3005
+ fill: "none",
3006
+ strokeWidth: STROKE,
3007
+ strokeLinecap: "round",
3008
+ className: cn(
3009
+ "origin-center",
3010
+ indeterminate ? "animate-circle-arc" : "-rotate-90 transition-[stroke-dasharray] duration-[400ms] ease-linear"
3011
+ ),
3012
+ style: {
3013
+ stroke: colors.arc,
3014
+ ...indeterminate ? {} : { strokeDasharray: `${filled} ${CIRCUMFERENCE}`, strokeDashoffset: 0 }
3015
+ }
3016
+ }
3017
+ )
3018
+ ]
3019
+ }
3020
+ ),
3021
+ showPercent && innerValue && percentNode
3022
+ ] }),
3023
+ showPercent && !innerValue && percentNode,
3005
3024
  label && /* @__PURE__ */ jsx("span", { className: "text-center text-[12px] font-normal leading-[20px] text-[color:var(--cmp-progress-color-label)]", children: label })
3006
3025
  ]
3007
3026
  }
@@ -3367,7 +3386,7 @@ var STooltip = forwardRef(function STooltip2({
3367
3386
  if (disabled || body == null) return /* @__PURE__ */ jsx(Fragment, { children: triggerNode });
3368
3387
  const isHover = trigger === "hover";
3369
3388
  const contentClass = cn(
3370
- "z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px] shadow-[2px_2px_12px_2px_rgba(0,0,0,0.1)]",
3389
+ "z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]",
3371
3390
  FLOATING_SLIDE_ANIM,
3372
3391
  className
3373
3392
  );
@@ -3969,7 +3988,7 @@ function ItemList({
3969
3988
  isDepth1 ? "border-t border-solid border-[color:var(--cmp-listItem-depth1-border-color)] bg-[var(--cmp-listItem-depth1-bg-default)] font-bold" : "bg-[var(--cmp-listItem-depth2-middle-bg)] font-medium",
3970
3989
  // 하위가 전부 비활성이면(select.config 에서 bubble-up) 어미 그룹도 비활성 처리:
3971
3990
  // 텍스트는 회색(#888), depth1 그룹은 파란 배경 대신 회색(#EEE)으로 (depth2 는 #F6F6F6 유지)
3972
- o.disabled && "text-[color:var(--cmp-listItem-content-disabled)]",
3991
+ o.disabled && "cursor-not-allowed text-[color:var(--cmp-listItem-content-disabled)]",
3973
3992
  o.disabled && isDepth1 && "bg-[var(--cmp-listItem-depth1-bg-disabled)]"
3974
3993
  ),
3975
3994
  style: { paddingLeft: padLeft },
@@ -3984,10 +4003,14 @@ function ItemList({
3984
4003
  {
3985
4004
  value: o.value,
3986
4005
  disabled: o.disabled,
4006
+ accessibleWhenDisabled: true,
3987
4007
  className: cn(
3988
4008
  itemBase,
3989
4009
  isSelected && !multi && "font-bold text-[color:var(--cmp-listItem-content-selected)]",
3990
- activeClass
4010
+ // Ariakit은 disabled 항목도 hover 시 active(data-active-item) 처리하므로,
4011
+ // 비활성 항목에는 hover 하이라이트를 적용하지 않아 회색 비활성 스타일을 유지한다.
4012
+ // (원본 Stencil의 `--focused...:not(--disabled)` 규칙과 동일한 의도)
4013
+ !o.disabled && activeClass
3991
4014
  ),
3992
4015
  style: { paddingTop: 4, paddingBottom: 4, paddingRight: 12, paddingLeft: padLeft },
3993
4016
  render: useSearch ? /* @__PURE__ */ jsx(Ariakit.ComboboxItem, {}) : void 0,
@@ -4000,7 +4023,7 @@ function ItemList({
4000
4023
  "flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid",
4001
4024
  o.disabled ? (
4002
4025
  // 비활성: 회색 채움(#E1E1E1) + 회색 테두리(#CCCCCC)
4003
- "border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
4026
+ "cursor-not-allowed border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
4004
4027
  ) : cn(
4005
4028
  "group-data-[active-item]:border-[color:var(--cmp-checkbox-checked-border-inverse)]",
4006
4029
  isSelected ? "border-[color:var(--cmp-checkbox-checked-bg-default)] bg-[var(--cmp-checkbox-checked-bg-default)] group-data-[active-item]:bg-transparent" : "border-[color:var(--cmp-checkbox-unchecked-border-default)] bg-transparent"
@@ -4302,7 +4325,8 @@ var STable = forwardRef(function STable2({
4302
4325
  else onSelectedChange?.([...selected, row]);
4303
4326
  };
4304
4327
  const radiusClass = radius === "full" ? "rounded-none" : radius === "useTop" ? "rounded-b-[var(--cmp-table-radius)] rounded-t-none" : "rounded-[var(--cmp-table-radius)]";
4305
- const cellPadY = dense ? "var(--cmp-table-body-dense-paddingY)" : "var(--cmp-table-body-default-paddingY)";
4328
+ const cellPadY = dense ? "var(--cmp-table-body-paddingY-dense)" : "var(--cmp-table-body-paddingY-default)";
4329
+ const cellPadX = dense ? "var(--cmp-table-body-paddingX-default)" : "var(--cmp-table-body-paddingX-wide)";
4306
4330
  const rowH = dense ? "var(--cmp-table-body-dense-height)" : "var(--cmp-table-body-default-height)";
4307
4331
  const totalColSpan = visibleCols.length + (selectable ? 1 : 0);
4308
4332
  const stickyInfo = (i) => {
@@ -4477,13 +4501,15 @@ var STable = forwardRef(function STable2({
4477
4501
  className: cn(
4478
4502
  // 원본 .td: 컬럼 폭에 맞춰 내용 말줄임(overflow hidden + ellipsis) + 행 구분선(border-b)
4479
4503
  // 셀 배경은 흰색으로 채워 뒤 배경이 비치지 않게 하고, hover 시 행 배경(grey_05)을 따른다.
4480
- "overflow-hidden text-ellipsis whitespace-nowrap border-b border-solid border-[color:var(--cmp-table-border-color)] px-[16px] text-[12px] leading-[20px] text-[color:var(--sys-color-fg-primary)]",
4504
+ "overflow-hidden text-ellipsis whitespace-nowrap border-b border-solid border-[color:var(--cmp-table-border-color)] text-[12px] leading-[20px] text-[color:var(--sys-color-fg-primary)]",
4481
4505
  rowBg,
4482
4506
  "group-hover:bg-[var(--color-grey-05)]",
4483
4507
  stickyShadowClass(i),
4484
4508
  col.tdClass
4485
4509
  ),
4486
4510
  style: {
4511
+ paddingLeft: cellPadX,
4512
+ paddingRight: cellPadX,
4487
4513
  paddingTop: cellPadY,
4488
4514
  paddingBottom: cellPadY,
4489
4515
  textAlign: col.align ?? "left",