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
@@ -2959,12 +2959,35 @@ var COLOR_MAP = {
2959
2959
  };
2960
2960
  var clamp = (v) => Number.isFinite(v) ? Math.max(0, Math.min(100, v)) : 0;
2961
2961
  var SCircleProgress = react.forwardRef(
2962
- function SCircleProgress2({ value = 0, type = "primary", indeterminate = false, label, className, style }, ref) {
2962
+ function SCircleProgress2({
2963
+ value = 0,
2964
+ type = "primary",
2965
+ indeterminate = false,
2966
+ label,
2967
+ innerValue = false,
2968
+ className,
2969
+ style
2970
+ }, ref) {
2963
2971
  const v = clamp(value);
2964
2972
  const colors = COLOR_MAP[type];
2965
2973
  const c = VIEWBOX / 2;
2966
2974
  const percentColor = v === 0 ? "var(--sys-color-fg-tertiary, #888888)" : colors.arc;
2967
2975
  const filled = v / 100 * CIRCUMFERENCE;
2976
+ const showPercent = !indeterminate;
2977
+ const percentNode = /* @__PURE__ */ jsxRuntime.jsxs(
2978
+ "span",
2979
+ {
2980
+ className: cn(
2981
+ "text-center text-[16px] font-bold leading-[26px]",
2982
+ innerValue && "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"
2983
+ ),
2984
+ style: { color: percentColor },
2985
+ children: [
2986
+ Math.round(v),
2987
+ "%"
2988
+ ]
2989
+ }
2990
+ );
2968
2991
  return /* @__PURE__ */ jsxRuntime.jsxs(
2969
2992
  "div",
2970
2993
  {
@@ -2975,57 +2998,53 @@ var SCircleProgress = react.forwardRef(
2975
2998
  ),
2976
2999
  style,
2977
3000
  children: [
2978
- /* @__PURE__ */ jsxRuntime.jsxs(
2979
- "svg",
2980
- {
2981
- viewBox: `0 0 ${VIEWBOX} ${VIEWBOX}`,
2982
- xmlns: "http://www.w3.org/2000/svg",
2983
- className: cn("h-[80px] w-[80px]", indeterminate && "origin-center animate-circle-spin"),
2984
- children: [
2985
- /* @__PURE__ */ jsxRuntime.jsx(
2986
- "circle",
2987
- {
2988
- cx: c,
2989
- cy: c,
2990
- r: RADIUS,
2991
- fill: "none",
2992
- strokeWidth: STROKE,
2993
- style: { stroke: colors.track }
2994
- }
3001
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(innerValue && "relative"), children: [
3002
+ /* @__PURE__ */ jsxRuntime.jsxs(
3003
+ "svg",
3004
+ {
3005
+ viewBox: `0 0 ${VIEWBOX} ${VIEWBOX}`,
3006
+ xmlns: "http://www.w3.org/2000/svg",
3007
+ className: cn(
3008
+ "h-[80px] w-[80px]",
3009
+ indeterminate && "origin-center animate-circle-spin"
2995
3010
  ),
2996
- /* @__PURE__ */ jsxRuntime.jsx(
2997
- "circle",
2998
- {
2999
- cx: c,
3000
- cy: c,
3001
- r: RADIUS,
3002
- fill: "none",
3003
- strokeWidth: STROKE,
3004
- strokeLinecap: "round",
3005
- className: cn(
3006
- "origin-center",
3007
- indeterminate ? "animate-circle-arc" : "-rotate-90 transition-[stroke-dasharray] duration-[400ms] ease-linear"
3008
- ),
3009
- style: {
3010
- stroke: colors.arc,
3011
- ...indeterminate ? {} : { strokeDasharray: `${filled} ${CIRCUMFERENCE}`, strokeDashoffset: 0 }
3011
+ children: [
3012
+ /* @__PURE__ */ jsxRuntime.jsx(
3013
+ "circle",
3014
+ {
3015
+ cx: c,
3016
+ cy: c,
3017
+ r: RADIUS,
3018
+ fill: "none",
3019
+ strokeWidth: STROKE,
3020
+ style: { stroke: colors.track }
3012
3021
  }
3013
- }
3014
- )
3015
- ]
3016
- }
3017
- ),
3018
- !indeterminate && /* @__PURE__ */ jsxRuntime.jsxs(
3019
- "span",
3020
- {
3021
- className: "text-center text-[16px] font-bold leading-[26px]",
3022
- style: { color: percentColor },
3023
- children: [
3024
- Math.round(v),
3025
- "%"
3026
- ]
3027
- }
3028
- ),
3022
+ ),
3023
+ /* @__PURE__ */ jsxRuntime.jsx(
3024
+ "circle",
3025
+ {
3026
+ cx: c,
3027
+ cy: c,
3028
+ r: RADIUS,
3029
+ fill: "none",
3030
+ strokeWidth: STROKE,
3031
+ strokeLinecap: "round",
3032
+ className: cn(
3033
+ "origin-center",
3034
+ indeterminate ? "animate-circle-arc" : "-rotate-90 transition-[stroke-dasharray] duration-[400ms] ease-linear"
3035
+ ),
3036
+ style: {
3037
+ stroke: colors.arc,
3038
+ ...indeterminate ? {} : { strokeDasharray: `${filled} ${CIRCUMFERENCE}`, strokeDashoffset: 0 }
3039
+ }
3040
+ }
3041
+ )
3042
+ ]
3043
+ }
3044
+ ),
3045
+ showPercent && innerValue && percentNode
3046
+ ] }),
3047
+ showPercent && !innerValue && percentNode,
3029
3048
  label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-center text-[12px] font-normal leading-[20px] text-[color:var(--cmp-progress-color-label)]", children: label })
3030
3049
  ]
3031
3050
  }
@@ -3391,7 +3410,7 @@ var STooltip = react.forwardRef(function STooltip2({
3391
3410
  if (disabled || body == null) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: triggerNode });
3392
3411
  const isHover = trigger === "hover";
3393
3412
  const contentClass = cn(
3394
- "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)]",
3413
+ "z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]",
3395
3414
  FLOATING_SLIDE_ANIM,
3396
3415
  className
3397
3416
  );
@@ -3993,7 +4012,7 @@ function ItemList({
3993
4012
  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",
3994
4013
  // 하위가 전부 비활성이면(select.config 에서 bubble-up) 어미 그룹도 비활성 처리:
3995
4014
  // 텍스트는 회색(#888), depth1 그룹은 파란 배경 대신 회색(#EEE)으로 (depth2 는 #F6F6F6 유지)
3996
- o.disabled && "text-[color:var(--cmp-listItem-content-disabled)]",
4015
+ o.disabled && "cursor-not-allowed text-[color:var(--cmp-listItem-content-disabled)]",
3997
4016
  o.disabled && isDepth1 && "bg-[var(--cmp-listItem-depth1-bg-disabled)]"
3998
4017
  ),
3999
4018
  style: { paddingLeft: padLeft },
@@ -4008,10 +4027,14 @@ function ItemList({
4008
4027
  {
4009
4028
  value: o.value,
4010
4029
  disabled: o.disabled,
4030
+ accessibleWhenDisabled: true,
4011
4031
  className: cn(
4012
4032
  itemBase,
4013
4033
  isSelected && !multi && "font-bold text-[color:var(--cmp-listItem-content-selected)]",
4014
- activeClass
4034
+ // Ariakit은 disabled 항목도 hover 시 active(data-active-item) 처리하므로,
4035
+ // 비활성 항목에는 hover 하이라이트를 적용하지 않아 회색 비활성 스타일을 유지한다.
4036
+ // (원본 Stencil의 `--focused...:not(--disabled)` 규칙과 동일한 의도)
4037
+ !o.disabled && activeClass
4015
4038
  ),
4016
4039
  style: { paddingTop: 4, paddingBottom: 4, paddingRight: 12, paddingLeft: padLeft },
4017
4040
  render: useSearch ? /* @__PURE__ */ jsxRuntime.jsx(Ariakit__namespace.ComboboxItem, {}) : void 0,
@@ -4024,7 +4047,7 @@ function ItemList({
4024
4047
  "flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid",
4025
4048
  o.disabled ? (
4026
4049
  // 비활성: 회색 채움(#E1E1E1) + 회색 테두리(#CCCCCC)
4027
- "border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
4050
+ "cursor-not-allowed border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
4028
4051
  ) : cn(
4029
4052
  "group-data-[active-item]:border-[color:var(--cmp-checkbox-checked-border-inverse)]",
4030
4053
  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"
@@ -4326,7 +4349,8 @@ var STable = react.forwardRef(function STable2({
4326
4349
  else onSelectedChange?.([...selected, row]);
4327
4350
  };
4328
4351
  const radiusClass = radius === "full" ? "rounded-none" : radius === "useTop" ? "rounded-b-[var(--cmp-table-radius)] rounded-t-none" : "rounded-[var(--cmp-table-radius)]";
4329
- const cellPadY = dense ? "var(--cmp-table-body-dense-paddingY)" : "var(--cmp-table-body-default-paddingY)";
4352
+ const cellPadY = dense ? "var(--cmp-table-body-paddingY-dense)" : "var(--cmp-table-body-paddingY-default)";
4353
+ const cellPadX = dense ? "var(--cmp-table-body-paddingX-default)" : "var(--cmp-table-body-paddingX-wide)";
4330
4354
  const rowH = dense ? "var(--cmp-table-body-dense-height)" : "var(--cmp-table-body-default-height)";
4331
4355
  const totalColSpan = visibleCols.length + (selectable ? 1 : 0);
4332
4356
  const stickyInfo = (i) => {
@@ -4501,13 +4525,15 @@ var STable = react.forwardRef(function STable2({
4501
4525
  className: cn(
4502
4526
  // 원본 .td: 컬럼 폭에 맞춰 내용 말줄임(overflow hidden + ellipsis) + 행 구분선(border-b)
4503
4527
  // 셀 배경은 흰색으로 채워 뒤 배경이 비치지 않게 하고, hover 시 행 배경(grey_05)을 따른다.
4504
- "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)]",
4528
+ "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)]",
4505
4529
  rowBg,
4506
4530
  "group-hover:bg-[var(--color-grey-05)]",
4507
4531
  stickyShadowClass(i),
4508
4532
  col.tdClass
4509
4533
  ),
4510
4534
  style: {
4535
+ paddingLeft: cellPadX,
4536
+ paddingRight: cellPadX,
4511
4537
  paddingTop: cellPadY,
4512
4538
  paddingBottom: cellPadY,
4513
4539
  textAlign: col.align ?? "left",