sellmate-design-system-react 0.6.1 → 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.
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs +62 -48
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js +62 -48
- package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
- package/dist/components/SChipInput/SChipInput.cjs +62 -48
- package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
- package/dist/components/SChipInput/SChipInput.js +62 -48
- package/dist/components/SChipInput/SChipInput.js.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs +62 -48
- package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.js +62 -48
- package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs +62 -48
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js +62 -48
- package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
- package/dist/components/SField/SField.cjs +62 -48
- package/dist/components/SField/SField.cjs.map +1 -1
- package/dist/components/SField/SField.d.ts +6 -1
- package/dist/components/SField/SField.js +62 -48
- package/dist/components/SField/SField.js.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs +62 -48
- package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.js +62 -48
- package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
- package/dist/components/SInput/SInput.cjs +62 -48
- package/dist/components/SInput/SInput.cjs.map +1 -1
- package/dist/components/SInput/SInput.js +62 -48
- package/dist/components/SInput/SInput.js.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs +74 -49
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.js +74 -49
- package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs +62 -48
- package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.js +62 -48
- package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
- package/dist/components/SPage/SPage.cjs +19 -2
- package/dist/components/SPage/SPage.cjs.map +1 -1
- package/dist/components/SPage/SPage.d.ts +7 -1
- package/dist/components/SPage/SPage.js +19 -2
- package/dist/components/SPage/SPage.js.map +1 -1
- package/dist/components/SPage/index.d.ts +1 -0
- package/dist/components/SPage/page.config.d.ts +8 -0
- package/dist/components/SPopup/SPopup.cjs +18 -1
- package/dist/components/SPopup/SPopup.cjs.map +1 -1
- package/dist/components/SPopup/SPopup.js +18 -1
- package/dist/components/SPopup/SPopup.js.map +1 -1
- package/dist/components/SScrollArea/SScrollArea.cjs +64 -0
- package/dist/components/SScrollArea/SScrollArea.cjs.map +1 -0
- package/dist/components/SScrollArea/SScrollArea.d.ts +21 -0
- package/dist/components/SScrollArea/SScrollArea.js +62 -0
- package/dist/components/SScrollArea/SScrollArea.js.map +1 -0
- package/dist/components/SScrollArea/index.d.ts +2 -0
- package/dist/components/SScrollArea/scrollArea.config.d.ts +2 -0
- package/dist/components/SSelect/SSelect.cjs +74 -49
- package/dist/components/SSelect/SSelect.cjs.map +1 -1
- package/dist/components/SSelect/SSelect.js +74 -49
- package/dist/components/SSelect/SSelect.js.map +1 -1
- package/dist/components/SStepper/SStepper.cjs +7 -11
- package/dist/components/SStepper/SStepper.cjs.map +1 -1
- package/dist/components/SStepper/SStepper.js +7 -11
- package/dist/components/SStepper/SStepper.js.map +1 -1
- package/dist/components/STable/STable.cjs +83 -55
- package/dist/components/STable/STable.cjs.map +1 -1
- package/dist/components/STable/STable.d.ts +2 -0
- package/dist/components/STable/STable.js +83 -55
- package/dist/components/STable/STable.js.map +1 -1
- package/dist/components/STextarea/STextarea.cjs +62 -48
- package/dist/components/STextarea/STextarea.cjs.map +1 -1
- package/dist/components/STextarea/STextarea.js +62 -48
- package/dist/components/STextarea/STextarea.js.map +1 -1
- package/dist/components/STimePicker/STimePicker.cjs +91 -54
- package/dist/components/STimePicker/STimePicker.cjs.map +1 -1
- package/dist/components/STimePicker/STimePicker.js +91 -54
- package/dist/components/STimePicker/STimePicker.js.map +1 -1
- package/dist/components/STimeRangePicker/STimeRangePicker.cjs +93 -54
- package/dist/components/STimeRangePicker/STimeRangePicker.cjs.map +1 -1
- package/dist/components/STimeRangePicker/STimeRangePicker.js +93 -54
- package/dist/components/STimeRangePicker/STimeRangePicker.js.map +1 -1
- package/dist/index.cjs +220 -81
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +218 -82
- package/dist/index.js.map +1 -1
- package/dist/lib/scrollbar.cjs +15 -0
- package/dist/lib/scrollbar.cjs.map +1 -0
- package/dist/lib/scrollbar.d.ts +32 -0
- package/dist/lib/scrollbar.js +10 -0
- package/dist/lib/scrollbar.js.map +1 -0
- package/dist/styles.css +168 -17
- package/package.json +1 -1
|
@@ -3453,6 +3453,7 @@ var SField = react.forwardRef(function SField2({
|
|
|
3453
3453
|
disabled = false,
|
|
3454
3454
|
readOnly = false,
|
|
3455
3455
|
width,
|
|
3456
|
+
minWidth,
|
|
3456
3457
|
multiline = false,
|
|
3457
3458
|
borderless = false,
|
|
3458
3459
|
children,
|
|
@@ -3488,6 +3489,7 @@ var SField = react.forwardRef(function SField2({
|
|
|
3488
3489
|
const resolvedSuccess = status === "pass";
|
|
3489
3490
|
const showError = resolvedError && errorMessage !== "";
|
|
3490
3491
|
const interactive = !disabled && !readOnly;
|
|
3492
|
+
const hug = cssLen(width) !== void 0;
|
|
3491
3493
|
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)";
|
|
3492
3494
|
const bgColor = borderless ? "transparent" : disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
|
|
3493
3495
|
const textColor = disabled ? "var(--color-grey-65)" : readOnly ? "var(--sys-color-field-text-readOnly)" : "var(--sys-color-field-text-default)";
|
|
@@ -3496,7 +3498,13 @@ var SField = react.forwardRef(function SField2({
|
|
|
3496
3498
|
{
|
|
3497
3499
|
ref: rootRef,
|
|
3498
3500
|
"data-name": name || void 0,
|
|
3499
|
-
className: cn(
|
|
3501
|
+
className: cn(
|
|
3502
|
+
"h-fit flex-col",
|
|
3503
|
+
// hug 시 inline-flex 를 유지하면 기존에 세로로 쌓여 있던 필드들이 한 줄에 붙어버리므로
|
|
3504
|
+
// 블록 레벨(flex)로 두어 쌓임은 그대로 유지한다. 나란히 놓으려면 부모를 flex 로.
|
|
3505
|
+
hug ? "flex w-fit max-w-full" : "inline-flex w-full",
|
|
3506
|
+
className
|
|
3507
|
+
),
|
|
3500
3508
|
style,
|
|
3501
3509
|
onMouseEnter,
|
|
3502
3510
|
onMouseLeave,
|
|
@@ -3534,54 +3542,60 @@ var SField = react.forwardRef(function SField2({
|
|
|
3534
3542
|
]
|
|
3535
3543
|
}
|
|
3536
3544
|
),
|
|
3537
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3546
|
+
"div",
|
|
3547
|
+
{
|
|
3548
|
+
className: cn("flex min-w-0 flex-col", !hug && "flex-1"),
|
|
3549
|
+
style: { width: cssLen(width), minWidth: cssLen(minWidth) },
|
|
3550
|
+
children: [
|
|
3551
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3552
|
+
"div",
|
|
3553
|
+
{
|
|
3554
|
+
className: cn(
|
|
3555
|
+
"relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
|
|
3556
|
+
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]",
|
|
3557
|
+
disabled && "cursor-not-allowed"
|
|
3558
|
+
),
|
|
3559
|
+
style: {
|
|
3560
|
+
// @ts-expect-error CSS 변수
|
|
3561
|
+
"--field-bc": borderColor,
|
|
3562
|
+
// focused/hovered prop이 명시된 경우 강조를 즉시 반영
|
|
3563
|
+
...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3564
|
+
...multiline ? { minHeight: s.height } : { height: s.height },
|
|
3565
|
+
"borderRadius": s.radius,
|
|
3566
|
+
"background": bgColor,
|
|
3567
|
+
"color": textColor
|
|
3568
|
+
},
|
|
3569
|
+
"data-focused": focused || void 0,
|
|
3570
|
+
"data-hovered": hovered || void 0,
|
|
3571
|
+
children: [
|
|
3572
|
+
effectiveAddonLabel !== "" && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3573
|
+
"div",
|
|
3574
|
+
{
|
|
3575
|
+
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",
|
|
3576
|
+
style: {
|
|
3577
|
+
// 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
|
|
3578
|
+
width: cssLen(labelWidth),
|
|
3579
|
+
justifyContent: ALIGN[addonAlign],
|
|
3580
|
+
background: "var(--cmp-field-addonLabel-bg)",
|
|
3581
|
+
borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
|
|
3582
|
+
borderTopLeftRadius: s.radius - 1,
|
|
3583
|
+
borderBottomLeftRadius: s.radius - 1
|
|
3584
|
+
},
|
|
3585
|
+
children: [
|
|
3586
|
+
icon && !label && /* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
|
|
3587
|
+
effectiveAddonLabel
|
|
3588
|
+
]
|
|
3589
|
+
}
|
|
3590
|
+
),
|
|
3591
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 flex-1", children })
|
|
3592
|
+
]
|
|
3593
|
+
}
|
|
3545
3594
|
),
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3551
|
-
...multiline ? { minHeight: s.height } : { height: s.height },
|
|
3552
|
-
"width": cssLen(width),
|
|
3553
|
-
"borderRadius": s.radius,
|
|
3554
|
-
"background": bgColor,
|
|
3555
|
-
"color": textColor
|
|
3556
|
-
},
|
|
3557
|
-
"data-focused": focused || void 0,
|
|
3558
|
-
"data-hovered": hovered || void 0,
|
|
3559
|
-
children: [
|
|
3560
|
-
effectiveAddonLabel !== "" && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3561
|
-
"div",
|
|
3562
|
-
{
|
|
3563
|
-
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",
|
|
3564
|
-
style: {
|
|
3565
|
-
// 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
|
|
3566
|
-
width: cssLen(labelWidth),
|
|
3567
|
-
justifyContent: ALIGN[addonAlign],
|
|
3568
|
-
background: "var(--cmp-field-addonLabel-bg)",
|
|
3569
|
-
borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
|
|
3570
|
-
borderTopLeftRadius: s.radius - 1,
|
|
3571
|
-
borderBottomLeftRadius: s.radius - 1
|
|
3572
|
-
},
|
|
3573
|
-
children: [
|
|
3574
|
-
icon && !label && /* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
|
|
3575
|
-
effectiveAddonLabel
|
|
3576
|
-
]
|
|
3577
|
-
}
|
|
3578
|
-
),
|
|
3579
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 flex-1", children })
|
|
3580
|
-
]
|
|
3581
|
-
}
|
|
3582
|
-
),
|
|
3583
|
-
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
|
|
3584
|
-
] })
|
|
3595
|
+
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
|
|
3596
|
+
]
|
|
3597
|
+
}
|
|
3598
|
+
)
|
|
3585
3599
|
] })
|
|
3586
3600
|
}
|
|
3587
3601
|
);
|
|
@@ -4168,6 +4182,12 @@ var SNumberInput = react.forwardRef(function SNumberInput2({
|
|
|
4168
4182
|
);
|
|
4169
4183
|
});
|
|
4170
4184
|
|
|
4185
|
+
// src/lib/scrollbar.ts
|
|
4186
|
+
var FIREFOX_SCROLLBAR_CLASS = "supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-width:thin] supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-color:var(--color-grey-45)_transparent]";
|
|
4187
|
+
var SCROLLBAR_CLASS = `${FIREFOX_SCROLLBAR_CLASS} [&::-webkit-scrollbar]:h-[12px] [&::-webkit-scrollbar]:w-[12px] [&::-webkit-scrollbar]:bg-transparent [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:border-2 [&::-webkit-scrollbar-thumb]:border-solid [&::-webkit-scrollbar-thumb]:border-transparent [&::-webkit-scrollbar-thumb]:bg-[var(--color-grey-45)] [&::-webkit-scrollbar-thumb]:bg-clip-padding`;
|
|
4188
|
+
var SCROLLBAR_TRACK_BG_CLASS = "supports-[not_selector(::-webkit-scrollbar)]:[scrollbar-color:var(--color-grey-45)_var(--color-grey-10)] [&::-webkit-scrollbar]:bg-[var(--color-grey-10)] [&::-webkit-scrollbar-track]:bg-[var(--color-grey-10)]";
|
|
4189
|
+
var SCROLLBAR_TRACK_BORDER_CLASS = "[&::-webkit-scrollbar-track:vertical]:[border-left:1px_solid_var(--sys-color-border-default)] [&::-webkit-scrollbar-track:horizontal]:[border-top:1px_solid_var(--sys-color-border-default)] [&::-webkit-scrollbar-thumb:vertical]:[border-left-width:3px] [&::-webkit-scrollbar-thumb:horizontal]:[border-top-width:3px]";
|
|
4190
|
+
|
|
4171
4191
|
// src/lib/sanitize-inline-html.ts
|
|
4172
4192
|
var ALLOWED_INLINE_TAGS = /* @__PURE__ */ new Set(["A", "B", "STRONG", "I", "EM", "BR", "SPAN"]);
|
|
4173
4193
|
var ALLOWED_ATTRS_BY_TAG = {
|
|
@@ -4651,7 +4671,12 @@ var SSelect = react.forwardRef(function SSelect2({
|
|
|
4651
4671
|
"div",
|
|
4652
4672
|
{
|
|
4653
4673
|
ref: listRef,
|
|
4654
|
-
className:
|
|
4674
|
+
className: cn(
|
|
4675
|
+
"overflow-auto",
|
|
4676
|
+
SCROLLBAR_CLASS,
|
|
4677
|
+
SCROLLBAR_TRACK_BG_CLASS,
|
|
4678
|
+
SCROLLBAR_TRACK_BORDER_CLASS
|
|
4679
|
+
),
|
|
4655
4680
|
style: { maxHeight: dropdownHeight },
|
|
4656
4681
|
onMouseLeave: () => setFocusedIndex(-1),
|
|
4657
4682
|
children: [
|