sellmate-design-system-react 0.7.0 → 0.8.0

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 (80) hide show
  1. package/dist/components/SBarcodeInput/SBarcodeInput.cjs +61 -49
  2. package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
  3. package/dist/components/SBarcodeInput/SBarcodeInput.js +61 -49
  4. package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
  5. package/dist/components/SChipInput/SChipInput.cjs +61 -49
  6. package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
  7. package/dist/components/SChipInput/SChipInput.js +61 -49
  8. package/dist/components/SChipInput/SChipInput.js.map +1 -1
  9. package/dist/components/SDatePicker/SDatePicker.cjs +61 -49
  10. package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
  11. package/dist/components/SDatePicker/SDatePicker.js +61 -49
  12. package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
  13. package/dist/components/SDateRangePicker/SDateRangePicker.cjs +61 -49
  14. package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
  15. package/dist/components/SDateRangePicker/SDateRangePicker.js +61 -49
  16. package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
  17. package/dist/components/SField/SField.cjs +61 -49
  18. package/dist/components/SField/SField.cjs.map +1 -1
  19. package/dist/components/SField/SField.d.ts +5 -2
  20. package/dist/components/SField/SField.js +61 -49
  21. package/dist/components/SField/SField.js.map +1 -1
  22. package/dist/components/SFilePicker/SFilePicker.cjs +61 -49
  23. package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
  24. package/dist/components/SFilePicker/SFilePicker.js +61 -49
  25. package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
  26. package/dist/components/SInput/SInput.cjs +61 -49
  27. package/dist/components/SInput/SInput.cjs.map +1 -1
  28. package/dist/components/SInput/SInput.js +61 -49
  29. package/dist/components/SInput/SInput.js.map +1 -1
  30. package/dist/components/SKeyValueTable/SKeyValueTable.cjs +61 -49
  31. package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
  32. package/dist/components/SKeyValueTable/SKeyValueTable.js +61 -49
  33. package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
  34. package/dist/components/SNumberInput/SNumberInput.cjs +61 -49
  35. package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
  36. package/dist/components/SNumberInput/SNumberInput.js +61 -49
  37. package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
  38. package/dist/components/SPage/SPage.cjs +19 -2
  39. package/dist/components/SPage/SPage.cjs.map +1 -1
  40. package/dist/components/SPage/SPage.d.ts +7 -1
  41. package/dist/components/SPage/SPage.js +19 -2
  42. package/dist/components/SPage/SPage.js.map +1 -1
  43. package/dist/components/SPage/index.d.ts +1 -0
  44. package/dist/components/SPage/page.config.d.ts +8 -0
  45. package/dist/components/SPopup/SPopup.cjs.map +1 -1
  46. package/dist/components/SPopup/SPopup.js.map +1 -1
  47. package/dist/components/SScrollArea/SScrollArea.cjs.map +1 -1
  48. package/dist/components/SScrollArea/SScrollArea.js.map +1 -1
  49. package/dist/components/SSelect/SSelect.cjs +61 -49
  50. package/dist/components/SSelect/SSelect.cjs.map +1 -1
  51. package/dist/components/SSelect/SSelect.js +61 -49
  52. package/dist/components/SSelect/SSelect.js.map +1 -1
  53. package/dist/components/STable/STable.cjs +67 -55
  54. package/dist/components/STable/STable.cjs.map +1 -1
  55. package/dist/components/STable/STable.d.ts +2 -0
  56. package/dist/components/STable/STable.js +67 -55
  57. package/dist/components/STable/STable.js.map +1 -1
  58. package/dist/components/STextarea/STextarea.cjs +61 -49
  59. package/dist/components/STextarea/STextarea.cjs.map +1 -1
  60. package/dist/components/STextarea/STextarea.js +61 -49
  61. package/dist/components/STextarea/STextarea.js.map +1 -1
  62. package/dist/components/STimePicker/STimePicker.cjs +61 -49
  63. package/dist/components/STimePicker/STimePicker.cjs.map +1 -1
  64. package/dist/components/STimePicker/STimePicker.js +61 -49
  65. package/dist/components/STimePicker/STimePicker.js.map +1 -1
  66. package/dist/components/STimeRangePicker/STimeRangePicker.cjs +61 -49
  67. package/dist/components/STimeRangePicker/STimeRangePicker.cjs.map +1 -1
  68. package/dist/components/STimeRangePicker/STimeRangePicker.js +61 -49
  69. package/dist/components/STimeRangePicker/STimeRangePicker.js.map +1 -1
  70. package/dist/index.cjs +84 -57
  71. package/dist/index.cjs.map +1 -1
  72. package/dist/index.js +84 -58
  73. package/dist/index.js.map +1 -1
  74. package/dist/lib/scrollbar.cjs +2 -0
  75. package/dist/lib/scrollbar.cjs.map +1 -1
  76. package/dist/lib/scrollbar.d.ts +13 -1
  77. package/dist/lib/scrollbar.js +2 -1
  78. package/dist/lib/scrollbar.js.map +1 -1
  79. package/dist/styles.css +53 -3
  80. package/package.json +1 -1
@@ -3658,6 +3658,7 @@ var SField = react.forwardRef(function SField2({
3658
3658
  const resolvedSuccess = status === "pass";
3659
3659
  const showError = resolvedError && errorMessage !== "";
3660
3660
  const interactive = !disabled && !readOnly;
3661
+ const hug = cssLen(width) !== void 0;
3661
3662
  const borderColor = borderless ? "transparent" : disabled ? "var(--color-grey-45)" : interactive && focused ? "var(--sys-color-field-border-focus)" : resolvedSuccess ? "var(--sys-color-field-border-success)" : resolvedError ? "var(--sys-color-field-border-danger)" : "var(--sys-color-field-border-default)";
3662
3663
  const bgColor = borderless ? "transparent" : disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
3663
3664
  const textColor = disabled ? "var(--color-grey-65)" : readOnly ? "var(--sys-color-field-text-readOnly)" : "var(--sys-color-field-text-default)";
@@ -3666,7 +3667,13 @@ var SField = react.forwardRef(function SField2({
3666
3667
  {
3667
3668
  ref: rootRef,
3668
3669
  "data-name": name || void 0,
3669
- className: cn("inline-flex h-fit w-full flex-col", className),
3670
+ className: cn(
3671
+ "h-fit flex-col",
3672
+ // hug 시 inline-flex 를 유지하면 기존에 세로로 쌓여 있던 필드들이 한 줄에 붙어버리므로
3673
+ // 블록 레벨(flex)로 두어 쌓임은 그대로 유지한다. 나란히 놓으려면 부모를 flex 로.
3674
+ hug ? "flex w-fit max-w-full" : "inline-flex w-full",
3675
+ className
3676
+ ),
3670
3677
  style,
3671
3678
  onMouseEnter,
3672
3679
  onMouseLeave,
@@ -3704,55 +3711,60 @@ var SField = react.forwardRef(function SField2({
3704
3711
  ]
3705
3712
  }
3706
3713
  ),
3707
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
3708
- /* @__PURE__ */ jsxRuntime.jsxs(
3709
- "div",
3710
- {
3711
- className: cn(
3712
- "relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
3713
- interactive && !borderless && "hover:border-(--sys-color-field-border-focus) hover:shadow-[0px_0px_4px_0px_#0071ff66] focus-within:border-(--sys-color-field-border-focus) focus-within:shadow-[0px_0px_4px_0px_#0071ff66]",
3714
- disabled && "cursor-not-allowed"
3714
+ /* @__PURE__ */ jsxRuntime.jsxs(
3715
+ "div",
3716
+ {
3717
+ className: cn("flex min-w-0 flex-col", !hug && "flex-1"),
3718
+ style: { width: cssLen(width), minWidth: cssLen(minWidth) },
3719
+ children: [
3720
+ /* @__PURE__ */ jsxRuntime.jsxs(
3721
+ "div",
3722
+ {
3723
+ className: cn(
3724
+ "relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
3725
+ interactive && !borderless && "hover:border-(--sys-color-field-border-focus) hover:shadow-[0px_0px_4px_0px_#0071ff66] focus-within:border-(--sys-color-field-border-focus) focus-within:shadow-[0px_0px_4px_0px_#0071ff66]",
3726
+ disabled && "cursor-not-allowed"
3727
+ ),
3728
+ style: {
3729
+ // @ts-expect-error CSS 변수
3730
+ "--field-bc": borderColor,
3731
+ // focused/hovered prop이 명시된 경우 강조를 즉시 반영
3732
+ ...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
3733
+ ...multiline ? { minHeight: s.height } : { height: s.height },
3734
+ "borderRadius": s.radius,
3735
+ "background": bgColor,
3736
+ "color": textColor
3737
+ },
3738
+ "data-focused": focused || void 0,
3739
+ "data-hovered": hovered || void 0,
3740
+ children: [
3741
+ effectiveAddonLabel !== "" && /* @__PURE__ */ jsxRuntime.jsxs(
3742
+ "div",
3743
+ {
3744
+ className: "flex shrink-0 items-center gap-(--cmp-field-addonLabel-gap) whitespace-nowrap border-r border-solid px-(--cmp-field-addonLabel-paddingX) text-12 font-medium leading-20",
3745
+ style: {
3746
+ // 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
3747
+ width: cssLen(labelWidth),
3748
+ justifyContent: ALIGN[addonAlign],
3749
+ background: "var(--cmp-field-addonLabel-bg)",
3750
+ borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
3751
+ borderTopLeftRadius: s.radius - 1,
3752
+ borderBottomLeftRadius: s.radius - 1
3753
+ },
3754
+ children: [
3755
+ icon && !label && /* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
3756
+ effectiveAddonLabel
3757
+ ]
3758
+ }
3759
+ ),
3760
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 flex-1", children })
3761
+ ]
3762
+ }
3715
3763
  ),
3716
- style: {
3717
- // @ts-expect-error CSS 변수
3718
- "--field-bc": borderColor,
3719
- // focused/hovered prop이 명시된 경우 강조를 즉시 반영
3720
- ...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
3721
- ...multiline ? { minHeight: s.height } : { height: s.height },
3722
- "minWidth": cssLen(minWidth),
3723
- "width": cssLen(width),
3724
- "borderRadius": s.radius,
3725
- "background": bgColor,
3726
- "color": textColor
3727
- },
3728
- "data-focused": focused || void 0,
3729
- "data-hovered": hovered || void 0,
3730
- children: [
3731
- effectiveAddonLabel !== "" && /* @__PURE__ */ jsxRuntime.jsxs(
3732
- "div",
3733
- {
3734
- className: "flex shrink-0 items-center gap-(--cmp-field-addonLabel-gap) whitespace-nowrap border-r border-solid px-(--cmp-field-addonLabel-paddingX) text-12 font-medium leading-20",
3735
- style: {
3736
- // 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
3737
- width: cssLen(labelWidth),
3738
- justifyContent: ALIGN[addonAlign],
3739
- background: "var(--cmp-field-addonLabel-bg)",
3740
- borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
3741
- borderTopLeftRadius: s.radius - 1,
3742
- borderBottomLeftRadius: s.radius - 1
3743
- },
3744
- children: [
3745
- icon && !label && /* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
3746
- effectiveAddonLabel
3747
- ]
3748
- }
3749
- ),
3750
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 flex-1", children })
3751
- ]
3752
- }
3753
- ),
3754
- showError ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-errorMessage-color)", children: errorMessage }) : hint !== "" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-hint-color)", children: hint }) : null
3755
- ] })
3764
+ showError ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-errorMessage-color)", children: errorMessage }) : hint !== "" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-hint-color)", children: hint }) : null
3765
+ ]
3766
+ }
3767
+ )
3756
3768
  ] })
3757
3769
  }
3758
3770
  );
@@ -4666,7 +4678,7 @@ var STable = react.forwardRef(function STable2({
4666
4678
  position: "sticky",
4667
4679
  left: isLeft ? "var(--sticky-left-offset)" : void 0,
4668
4680
  right: isRight ? "var(--sticky-right-offset)" : void 0,
4669
- zIndex: 3
4681
+ zIndex: 6
4670
4682
  };
4671
4683
  };
4672
4684
  const stickyShadowClass = (i) => {
@@ -4723,7 +4735,7 @@ var STable = react.forwardRef(function STable2({
4723
4735
  {
4724
4736
  className: cn(
4725
4737
  // 원본 .th--selected: 48px 고정폭, 항상 left sticky, 체크박스 중앙정렬
4726
- "sticky left-0 z-[4] border-b border-solid border-[color:var(--cmp-table-border-color)] bg-[var(--cmp-table-header-bg)] text-center align-middle",
4738
+ "sticky left-0 z-[7] border-b border-solid border-[color:var(--cmp-table-border-color)] bg-[var(--cmp-table-header-bg)] text-center align-middle",
4727
4739
  stickyLeft === 0 && scrolledLeft && "shadow-[5px_0_8px_0_rgba(34,34,34,0.1)]"
4728
4740
  ),
4729
4741
  style: {
@@ -4748,13 +4760,13 @@ var STable = react.forwardRef(function STable2({
4748
4760
  {
4749
4761
  className: cn(
4750
4762
  "relative border-b border-solid border-[color:var(--cmp-table-border-color)] bg-[var(--cmp-table-header-bg)] px-[16px] text-[12px] font-medium leading-[20px] text-[color:var(--sys-color-fg-primary)]",
4751
- stickyInfo(i).isSticky && "z-[4]",
4763
+ stickyInfo(i).isSticky && "z-[6]",
4752
4764
  stickyShadowClass(i),
4753
4765
  col.thClass
4754
4766
  ),
4755
4767
  style: { textAlign: col.align ?? "left", ...cellStyle(i), ...col.thStyle },
4756
4768
  children: [
4757
- /* @__PURE__ */ jsxRuntime.jsxs(
4769
+ /* @__PURE__ */ jsxRuntime.jsx(
4758
4770
  "span",
4759
4771
  {
4760
4772
  className: cn(
@@ -4763,10 +4775,10 @@ var STable = react.forwardRef(function STable2({
4763
4775
  col.align === "center" && "justify-center",
4764
4776
  col.align === "right" && "justify-end"
4765
4777
  ),
4766
- children: [
4778
+ children: col.renderHeader ? col.renderHeader(col, i) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4767
4779
  col.icon && /* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: col.icon, size: 16, color: col.iconColor }),
4768
4780
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: col.label })
4769
- ]
4781
+ ] })
4770
4782
  }
4771
4783
  ),
4772
4784
  resizable && !col.autoWidth && i < visibleCols.length - 1 && // 원본 th__resizer: 셀 우측 경계 안쪽 4px 그립(좌우 1px #CCCCCC 라인, 세로 16px).