sellmate-design-system-react 0.7.0 → 0.8.1

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 (85) 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 +64 -49
  6. package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
  7. package/dist/components/SChipInput/SChipInput.js +64 -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 +72 -50
  31. package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
  32. package/dist/components/SKeyValueTable/SKeyValueTable.js +72 -50
  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/SPortal/SPortal.cjs +3 -0
  48. package/dist/components/SPortal/SPortal.cjs.map +1 -1
  49. package/dist/components/SPortal/SPortal.d.ts +3 -1
  50. package/dist/components/SPortal/SPortal.js +3 -0
  51. package/dist/components/SPortal/SPortal.js.map +1 -1
  52. package/dist/components/SScrollArea/SScrollArea.cjs.map +1 -1
  53. package/dist/components/SScrollArea/SScrollArea.js.map +1 -1
  54. package/dist/components/SSelect/SSelect.cjs +72 -50
  55. package/dist/components/SSelect/SSelect.cjs.map +1 -1
  56. package/dist/components/SSelect/SSelect.js +72 -50
  57. package/dist/components/SSelect/SSelect.js.map +1 -1
  58. package/dist/components/STable/STable.cjs +78 -56
  59. package/dist/components/STable/STable.cjs.map +1 -1
  60. package/dist/components/STable/STable.d.ts +2 -0
  61. package/dist/components/STable/STable.js +78 -56
  62. package/dist/components/STable/STable.js.map +1 -1
  63. package/dist/components/STextarea/STextarea.cjs +61 -49
  64. package/dist/components/STextarea/STextarea.cjs.map +1 -1
  65. package/dist/components/STextarea/STextarea.js +61 -49
  66. package/dist/components/STextarea/STextarea.js.map +1 -1
  67. package/dist/components/STimePicker/STimePicker.cjs +61 -49
  68. package/dist/components/STimePicker/STimePicker.cjs.map +1 -1
  69. package/dist/components/STimePicker/STimePicker.js +61 -49
  70. package/dist/components/STimePicker/STimePicker.js.map +1 -1
  71. package/dist/components/STimeRangePicker/STimeRangePicker.cjs +61 -49
  72. package/dist/components/STimeRangePicker/STimeRangePicker.cjs.map +1 -1
  73. package/dist/components/STimeRangePicker/STimeRangePicker.js +61 -49
  74. package/dist/components/STimeRangePicker/STimeRangePicker.js.map +1 -1
  75. package/dist/index.cjs +95 -58
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.js +95 -59
  78. package/dist/index.js.map +1 -1
  79. package/dist/lib/scrollbar.cjs +2 -0
  80. package/dist/lib/scrollbar.cjs.map +1 -1
  81. package/dist/lib/scrollbar.d.ts +13 -1
  82. package/dist/lib/scrollbar.js +2 -1
  83. package/dist/lib/scrollbar.js.map +1 -1
  84. package/dist/styles.css +53 -3
  85. package/package.json +1 -1
@@ -3295,6 +3295,7 @@ var SField = forwardRef(function SField2({
3295
3295
  const resolvedSuccess = status === "pass";
3296
3296
  const showError = resolvedError && errorMessage !== "";
3297
3297
  const interactive = !disabled && !readOnly;
3298
+ const hug = cssLen(width) !== void 0;
3298
3299
  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)";
3299
3300
  const bgColor = borderless ? "transparent" : disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
3300
3301
  const textColor = disabled ? "var(--color-grey-65)" : readOnly ? "var(--sys-color-field-text-readOnly)" : "var(--sys-color-field-text-default)";
@@ -3303,7 +3304,13 @@ var SField = forwardRef(function SField2({
3303
3304
  {
3304
3305
  ref: rootRef,
3305
3306
  "data-name": name || void 0,
3306
- className: cn("inline-flex h-fit w-full flex-col", className),
3307
+ className: cn(
3308
+ "h-fit flex-col",
3309
+ // hug 시 inline-flex 를 유지하면 기존에 세로로 쌓여 있던 필드들이 한 줄에 붙어버리므로
3310
+ // 블록 레벨(flex)로 두어 쌓임은 그대로 유지한다. 나란히 놓으려면 부모를 flex 로.
3311
+ hug ? "flex w-fit max-w-full" : "inline-flex w-full",
3312
+ className
3313
+ ),
3307
3314
  style,
3308
3315
  onMouseEnter,
3309
3316
  onMouseLeave,
@@ -3341,55 +3348,60 @@ var SField = forwardRef(function SField2({
3341
3348
  ]
3342
3349
  }
3343
3350
  ),
3344
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
3345
- /* @__PURE__ */ jsxs(
3346
- "div",
3347
- {
3348
- className: cn(
3349
- "relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
3350
- 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]",
3351
- disabled && "cursor-not-allowed"
3351
+ /* @__PURE__ */ jsxs(
3352
+ "div",
3353
+ {
3354
+ className: cn("flex min-w-0 flex-col", !hug && "flex-1"),
3355
+ style: { width: cssLen(width), minWidth: cssLen(minWidth) },
3356
+ children: [
3357
+ /* @__PURE__ */ jsxs(
3358
+ "div",
3359
+ {
3360
+ className: cn(
3361
+ "relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
3362
+ 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]",
3363
+ disabled && "cursor-not-allowed"
3364
+ ),
3365
+ style: {
3366
+ // @ts-expect-error CSS 변수
3367
+ "--field-bc": borderColor,
3368
+ // focused/hovered prop이 명시된 경우 강조를 즉시 반영
3369
+ ...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
3370
+ ...multiline ? { minHeight: s.height } : { height: s.height },
3371
+ "borderRadius": s.radius,
3372
+ "background": bgColor,
3373
+ "color": textColor
3374
+ },
3375
+ "data-focused": focused || void 0,
3376
+ "data-hovered": hovered || void 0,
3377
+ children: [
3378
+ effectiveAddonLabel !== "" && /* @__PURE__ */ jsxs(
3379
+ "div",
3380
+ {
3381
+ 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",
3382
+ style: {
3383
+ // 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
3384
+ width: cssLen(labelWidth),
3385
+ justifyContent: ALIGN[addonAlign],
3386
+ background: "var(--cmp-field-addonLabel-bg)",
3387
+ borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
3388
+ borderTopLeftRadius: s.radius - 1,
3389
+ borderBottomLeftRadius: s.radius - 1
3390
+ },
3391
+ children: [
3392
+ icon && !label && /* @__PURE__ */ jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
3393
+ effectiveAddonLabel
3394
+ ]
3395
+ }
3396
+ ),
3397
+ /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1", children })
3398
+ ]
3399
+ }
3352
3400
  ),
3353
- style: {
3354
- // @ts-expect-error CSS 변수
3355
- "--field-bc": borderColor,
3356
- // focused/hovered prop이 명시된 경우 강조를 즉시 반영
3357
- ...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
3358
- ...multiline ? { minHeight: s.height } : { height: s.height },
3359
- "minWidth": cssLen(minWidth),
3360
- "width": cssLen(width),
3361
- "borderRadius": s.radius,
3362
- "background": bgColor,
3363
- "color": textColor
3364
- },
3365
- "data-focused": focused || void 0,
3366
- "data-hovered": hovered || void 0,
3367
- children: [
3368
- effectiveAddonLabel !== "" && /* @__PURE__ */ jsxs(
3369
- "div",
3370
- {
3371
- 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",
3372
- style: {
3373
- // 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
3374
- width: cssLen(labelWidth),
3375
- justifyContent: ALIGN[addonAlign],
3376
- background: "var(--cmp-field-addonLabel-bg)",
3377
- borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
3378
- borderTopLeftRadius: s.radius - 1,
3379
- borderBottomLeftRadius: s.radius - 1
3380
- },
3381
- children: [
3382
- icon && !label && /* @__PURE__ */ jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
3383
- effectiveAddonLabel
3384
- ]
3385
- }
3386
- ),
3387
- /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1", children })
3388
- ]
3389
- }
3390
- ),
3391
- showError ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-errorMessage-color)", children: errorMessage }) : hint !== "" ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-hint-color)", children: hint }) : null
3392
- ] })
3401
+ showError ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-errorMessage-color)", children: errorMessage }) : hint !== "" ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) text-12 font-normal leading-20 text-(--cmp-field-hint-color)", children: hint }) : null
3402
+ ]
3403
+ }
3404
+ )
3393
3405
  ] })
3394
3406
  }
3395
3407
  );
@@ -3650,6 +3662,7 @@ function SPortal({
3650
3662
  viewportPadding = 0,
3651
3663
  onOpenAutoFocus,
3652
3664
  onCloseAutoFocus,
3665
+ onPointerDownOutside,
3653
3666
  children,
3654
3667
  className,
3655
3668
  style,
@@ -3678,7 +3691,9 @@ function SPortal({
3678
3691
  onPointerDownOutside: (e) => {
3679
3692
  if (persistent || anchorRef.current?.contains(e.target)) {
3680
3693
  e.preventDefault();
3694
+ return;
3681
3695
  }
3696
+ onPointerDownOutside?.(e);
3682
3697
  },
3683
3698
  onFocusOutside: (e) => {
3684
3699
  if (persistent || anchorRef.current?.contains(e.target)) {