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
|
@@ -56,8 +56,13 @@ export interface SFieldProps {
|
|
|
56
56
|
disabled?: boolean;
|
|
57
57
|
/** 읽기 전용 (회색 배경) */
|
|
58
58
|
readOnly?: boolean;
|
|
59
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* 컨트롤 너비 (숫자=px). 지정하면 필드가 부모 폭을 다 먹지 않고 (레이블 + width) 만큼만 차지한다.
|
|
61
|
+
* 다른 요소와 나란히 놓으려면 부모를 flex 로 두면 된다.
|
|
62
|
+
*/
|
|
60
63
|
width?: number | string;
|
|
64
|
+
/** 컨트롤 최소 너비 (숫자=px). 하한선만 지정하며 필드는 계속 부모 폭을 채운다 */
|
|
65
|
+
minWidth?: number | string;
|
|
61
66
|
/** 멀티라인(textarea) — 컨트롤 높이를 고정하지 않고 min-height만 적용 */
|
|
62
67
|
multiline?: boolean;
|
|
63
68
|
/**
|
|
@@ -3232,6 +3232,7 @@ var SField = forwardRef(function SField2({
|
|
|
3232
3232
|
disabled = false,
|
|
3233
3233
|
readOnly = false,
|
|
3234
3234
|
width,
|
|
3235
|
+
minWidth,
|
|
3235
3236
|
multiline = false,
|
|
3236
3237
|
borderless = false,
|
|
3237
3238
|
children,
|
|
@@ -3267,6 +3268,7 @@ var SField = forwardRef(function SField2({
|
|
|
3267
3268
|
const resolvedSuccess = status === "pass";
|
|
3268
3269
|
const showError = resolvedError && errorMessage !== "";
|
|
3269
3270
|
const interactive = !disabled && !readOnly;
|
|
3271
|
+
const hug = cssLen(width) !== void 0;
|
|
3270
3272
|
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)";
|
|
3271
3273
|
const bgColor = borderless ? "transparent" : disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
|
|
3272
3274
|
const textColor = disabled ? "var(--color-grey-65)" : readOnly ? "var(--sys-color-field-text-readOnly)" : "var(--sys-color-field-text-default)";
|
|
@@ -3275,7 +3277,13 @@ var SField = forwardRef(function SField2({
|
|
|
3275
3277
|
{
|
|
3276
3278
|
ref: rootRef,
|
|
3277
3279
|
"data-name": name || void 0,
|
|
3278
|
-
className: cn(
|
|
3280
|
+
className: cn(
|
|
3281
|
+
"h-fit flex-col",
|
|
3282
|
+
// hug 시 inline-flex 를 유지하면 기존에 세로로 쌓여 있던 필드들이 한 줄에 붙어버리므로
|
|
3283
|
+
// 블록 레벨(flex)로 두어 쌓임은 그대로 유지한다. 나란히 놓으려면 부모를 flex 로.
|
|
3284
|
+
hug ? "flex w-fit max-w-full" : "inline-flex w-full",
|
|
3285
|
+
className
|
|
3286
|
+
),
|
|
3279
3287
|
style,
|
|
3280
3288
|
onMouseEnter,
|
|
3281
3289
|
onMouseLeave,
|
|
@@ -3313,54 +3321,60 @@ var SField = forwardRef(function SField2({
|
|
|
3313
3321
|
]
|
|
3314
3322
|
}
|
|
3315
3323
|
),
|
|
3316
|
-
/* @__PURE__ */ jsxs(
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
+
/* @__PURE__ */ jsxs(
|
|
3325
|
+
"div",
|
|
3326
|
+
{
|
|
3327
|
+
className: cn("flex min-w-0 flex-col", !hug && "flex-1"),
|
|
3328
|
+
style: { width: cssLen(width), minWidth: cssLen(minWidth) },
|
|
3329
|
+
children: [
|
|
3330
|
+
/* @__PURE__ */ jsxs(
|
|
3331
|
+
"div",
|
|
3332
|
+
{
|
|
3333
|
+
className: cn(
|
|
3334
|
+
"relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
|
|
3335
|
+
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]",
|
|
3336
|
+
disabled && "cursor-not-allowed"
|
|
3337
|
+
),
|
|
3338
|
+
style: {
|
|
3339
|
+
// @ts-expect-error CSS 변수
|
|
3340
|
+
"--field-bc": borderColor,
|
|
3341
|
+
// focused/hovered prop이 명시된 경우 강조를 즉시 반영
|
|
3342
|
+
...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3343
|
+
...multiline ? { minHeight: s.height } : { height: s.height },
|
|
3344
|
+
"borderRadius": s.radius,
|
|
3345
|
+
"background": bgColor,
|
|
3346
|
+
"color": textColor
|
|
3347
|
+
},
|
|
3348
|
+
"data-focused": focused || void 0,
|
|
3349
|
+
"data-hovered": hovered || void 0,
|
|
3350
|
+
children: [
|
|
3351
|
+
effectiveAddonLabel !== "" && /* @__PURE__ */ jsxs(
|
|
3352
|
+
"div",
|
|
3353
|
+
{
|
|
3354
|
+
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",
|
|
3355
|
+
style: {
|
|
3356
|
+
// 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
|
|
3357
|
+
width: cssLen(labelWidth),
|
|
3358
|
+
justifyContent: ALIGN[addonAlign],
|
|
3359
|
+
background: "var(--cmp-field-addonLabel-bg)",
|
|
3360
|
+
borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
|
|
3361
|
+
borderTopLeftRadius: s.radius - 1,
|
|
3362
|
+
borderBottomLeftRadius: s.radius - 1
|
|
3363
|
+
},
|
|
3364
|
+
children: [
|
|
3365
|
+
icon && !label && /* @__PURE__ */ jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
|
|
3366
|
+
effectiveAddonLabel
|
|
3367
|
+
]
|
|
3368
|
+
}
|
|
3369
|
+
),
|
|
3370
|
+
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1", children })
|
|
3371
|
+
]
|
|
3372
|
+
}
|
|
3324
3373
|
),
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3330
|
-
...multiline ? { minHeight: s.height } : { height: s.height },
|
|
3331
|
-
"width": cssLen(width),
|
|
3332
|
-
"borderRadius": s.radius,
|
|
3333
|
-
"background": bgColor,
|
|
3334
|
-
"color": textColor
|
|
3335
|
-
},
|
|
3336
|
-
"data-focused": focused || void 0,
|
|
3337
|
-
"data-hovered": hovered || void 0,
|
|
3338
|
-
children: [
|
|
3339
|
-
effectiveAddonLabel !== "" && /* @__PURE__ */ jsxs(
|
|
3340
|
-
"div",
|
|
3341
|
-
{
|
|
3342
|
-
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",
|
|
3343
|
-
style: {
|
|
3344
|
-
// 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
|
|
3345
|
-
width: cssLen(labelWidth),
|
|
3346
|
-
justifyContent: ALIGN[addonAlign],
|
|
3347
|
-
background: "var(--cmp-field-addonLabel-bg)",
|
|
3348
|
-
borderRightColor: disabled ? "var(--cmp-field-addonLabel-border-disabled)" : "var(--cmp-field-addonLabel-border-default)",
|
|
3349
|
-
borderTopLeftRadius: s.radius - 1,
|
|
3350
|
-
borderBottomLeftRadius: s.radius - 1
|
|
3351
|
-
},
|
|
3352
|
-
children: [
|
|
3353
|
-
icon && !label && /* @__PURE__ */ jsx(SIcon, { name: icon, size: s.icon, color: iconColor }),
|
|
3354
|
-
effectiveAddonLabel
|
|
3355
|
-
]
|
|
3356
|
-
}
|
|
3357
|
-
),
|
|
3358
|
-
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1", children })
|
|
3359
|
-
]
|
|
3360
|
-
}
|
|
3361
|
-
),
|
|
3362
|
-
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
|
|
3363
|
-
] })
|
|
3374
|
+
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
|
|
3375
|
+
]
|
|
3376
|
+
}
|
|
3377
|
+
)
|
|
3364
3378
|
] })
|
|
3365
3379
|
}
|
|
3366
3380
|
);
|