sellmate-design-system-react 0.1.8 → 0.1.9
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/SActionModal/SActionModal.cjs +1 -1
- package/dist/components/SActionModal/SActionModal.cjs.map +1 -1
- package/dist/components/SActionModal/SActionModal.js +1 -1
- package/dist/components/SActionModal/SActionModal.js.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs +218 -209
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js +218 -209
- package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
- package/dist/components/SCalendar/SCalendar.cjs +1 -1
- package/dist/components/SCalendar/SCalendar.cjs.map +1 -1
- package/dist/components/SCalendar/SCalendar.js +1 -1
- package/dist/components/SCalendar/SCalendar.js.map +1 -1
- package/dist/components/SChip/SChip.cjs +1 -1
- package/dist/components/SChip/SChip.cjs.map +1 -1
- package/dist/components/SChip/SChip.d.ts +1 -1
- package/dist/components/SChip/SChip.js +1 -1
- package/dist/components/SChip/SChip.js.map +1 -1
- package/dist/components/SChipInput/SChipInput.cjs +235 -221
- package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
- package/dist/components/SChipInput/SChipInput.js +235 -221
- package/dist/components/SChipInput/SChipInput.js.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.cjs +53 -55
- package/dist/components/SCircleProgress/SCircleProgress.cjs.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.js +53 -55
- package/dist/components/SCircleProgress/SCircleProgress.js.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs +223 -214
- package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.js +223 -214
- package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs +298 -263
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js +298 -263
- package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
- package/dist/components/SDropdownButton/SDropdownButton.cjs +4 -4
- package/dist/components/SDropdownButton/SDropdownButton.cjs.map +1 -1
- package/dist/components/SDropdownButton/SDropdownButton.js +4 -4
- package/dist/components/SDropdownButton/SDropdownButton.js.map +1 -1
- package/dist/components/SField/SField.cjs +218 -21
- package/dist/components/SField/SField.cjs.map +1 -1
- package/dist/components/SField/SField.d.ts +11 -0
- package/dist/components/SField/SField.js +218 -21
- package/dist/components/SField/SField.js.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs +298 -278
- package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.d.ts +4 -2
- package/dist/components/SFilePicker/SFilePicker.js +298 -278
- package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
- package/dist/components/SInput/SInput.cjs +218 -209
- package/dist/components/SInput/SInput.cjs.map +1 -1
- package/dist/components/SInput/SInput.js +218 -209
- package/dist/components/SInput/SInput.js.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs +610 -450
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +3 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.js +610 -450
- package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs +61 -55
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.js +61 -55
- package/dist/components/SLoadingContainer/SLoadingContainer.js.map +1 -1
- package/dist/components/SLoadingContainer/loading.cjs +61 -55
- package/dist/components/SLoadingContainer/loading.cjs.map +1 -1
- package/dist/components/SLoadingContainer/loading.js +61 -55
- package/dist/components/SLoadingContainer/loading.js.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.cjs +56 -57
- package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.js +56 -57
- package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs +326 -50
- package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.d.ts +2 -0
- package/dist/components/SNumberInput/SNumberInput.js +326 -50
- package/dist/components/SNumberInput/SNumberInput.js.map +1 -1
- package/dist/components/SPagination/SPagination.cjs +1 -1
- package/dist/components/SPagination/SPagination.cjs.map +1 -1
- package/dist/components/SPagination/SPagination.js +1 -1
- package/dist/components/SPagination/SPagination.js.map +1 -1
- package/dist/components/SSelect/SSelect.cjs +67 -32
- package/dist/components/SSelect/SSelect.cjs.map +1 -1
- package/dist/components/SSelect/SSelect.js +67 -32
- package/dist/components/SSelect/SSelect.js.map +1 -1
- package/dist/components/STable/STable.cjs +121 -88
- package/dist/components/STable/STable.cjs.map +1 -1
- package/dist/components/STable/STable.js +121 -88
- package/dist/components/STable/STable.js.map +1 -1
- package/dist/components/STextarea/STextarea.cjs +218 -21
- package/dist/components/STextarea/STextarea.cjs.map +1 -1
- package/dist/components/STextarea/STextarea.js +218 -21
- package/dist/components/STextarea/STextarea.js.map +1 -1
- package/dist/components/SToast/SToastContainer.cjs +3 -3
- package/dist/components/SToast/SToastContainer.cjs.map +1 -1
- package/dist/components/SToast/SToastContainer.js +3 -3
- package/dist/components/SToast/SToastContainer.js.map +1 -1
- package/dist/components/STooltip/STooltip.cjs +209 -14
- package/dist/components/STooltip/STooltip.cjs.map +1 -1
- package/dist/components/STooltip/STooltip.js +209 -14
- package/dist/components/STooltip/STooltip.js.map +1 -1
- package/dist/index.cjs +432 -260
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +432 -260
- package/dist/index.js.map +1 -1
- package/dist/styles.css +51 -27
- package/dist/theme.css +4 -2
- package/package.json +1 -1
|
@@ -3091,7 +3091,8 @@ var HIDE_DELAY_MS = 100;
|
|
|
3091
3091
|
function useBody(content, message = []) {
|
|
3092
3092
|
if (content != null) return content;
|
|
3093
3093
|
if (message.length === 0) return null;
|
|
3094
|
-
|
|
3094
|
+
const singleLine = message.length === 1;
|
|
3095
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: message.map((line, i) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: singleLine ? "leading-[24px]" : void 0, children: line }, i)) });
|
|
3095
3096
|
}
|
|
3096
3097
|
var STooltip = react.forwardRef(function STooltip2({
|
|
3097
3098
|
content,
|
|
@@ -3149,7 +3150,7 @@ var STooltip = react.forwardRef(function STooltip2({
|
|
|
3149
3150
|
if (disabled || body == null) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: triggerNode });
|
|
3150
3151
|
const isHover = trigger === "hover";
|
|
3151
3152
|
const contentClass = cn(
|
|
3152
|
-
"z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]",
|
|
3153
|
+
"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)]",
|
|
3153
3154
|
FLOATING_SLIDE_ANIM,
|
|
3154
3155
|
className
|
|
3155
3156
|
);
|
|
@@ -3194,11 +3195,17 @@ var STooltip = react.forwardRef(function STooltip2({
|
|
|
3194
3195
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-[12px]", children: [
|
|
3195
3196
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1", children: body }),
|
|
3196
3197
|
useClose && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3197
|
-
|
|
3198
|
+
SGhostButton,
|
|
3198
3199
|
{
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3200
|
+
icon: "close",
|
|
3201
|
+
size: "xs",
|
|
3202
|
+
intent: tooltipType === "default" ? "inverse" : "default",
|
|
3203
|
+
ariaLabel: "\uB2EB\uAE30",
|
|
3204
|
+
className: "shrink-0",
|
|
3205
|
+
onClick: () => {
|
|
3206
|
+
cancelHide();
|
|
3207
|
+
setOpen(false);
|
|
3208
|
+
}
|
|
3202
3209
|
}
|
|
3203
3210
|
)
|
|
3204
3211
|
] }),
|
|
@@ -3236,8 +3243,8 @@ function useFormField(field) {
|
|
|
3236
3243
|
}, [ctx, name]);
|
|
3237
3244
|
}
|
|
3238
3245
|
var FIELD_SIZE = {
|
|
3239
|
-
sm: { height: 28, radius: 4, fieldGap: 12, labelGap: 6, fontSize: 12, lineHeight: 20, icon:
|
|
3240
|
-
md: { height: 36, radius: 6, fieldGap: 16, labelGap: 8, fontSize: 14, lineHeight: 24, icon:
|
|
3246
|
+
sm: { height: 28, radius: 4, fieldGap: 12, labelGap: 6, fontSize: 12, lineHeight: 20, icon: 16 },
|
|
3247
|
+
md: { height: 36, radius: 6, fieldGap: 16, labelGap: 8, fontSize: 14, lineHeight: 24, icon: 16 }
|
|
3241
3248
|
};
|
|
3242
3249
|
var ALIGN = {
|
|
3243
3250
|
start: "flex-start",
|
|
@@ -3252,6 +3259,7 @@ var SField = react.forwardRef(function SField2({
|
|
|
3252
3259
|
labelTooltip = "",
|
|
3253
3260
|
labelTooltipProps,
|
|
3254
3261
|
labelWidth,
|
|
3262
|
+
labelHeight,
|
|
3255
3263
|
size = "sm",
|
|
3256
3264
|
addonLabel = "",
|
|
3257
3265
|
addonAlign = "start",
|
|
@@ -3266,6 +3274,7 @@ var SField = react.forwardRef(function SField2({
|
|
|
3266
3274
|
readOnly = false,
|
|
3267
3275
|
width,
|
|
3268
3276
|
multiline = false,
|
|
3277
|
+
borderless = false,
|
|
3269
3278
|
children,
|
|
3270
3279
|
className,
|
|
3271
3280
|
style,
|
|
@@ -3299,8 +3308,8 @@ var SField = react.forwardRef(function SField2({
|
|
|
3299
3308
|
const resolvedSuccess = status === "pass";
|
|
3300
3309
|
const showError = resolvedError && errorMessage !== "";
|
|
3301
3310
|
const interactive = !disabled && !readOnly;
|
|
3302
|
-
const borderColor = 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)";
|
|
3303
|
-
const bgColor = disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
|
|
3311
|
+
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)";
|
|
3312
|
+
const bgColor = borderless ? "transparent" : disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
|
|
3304
3313
|
const textColor = disabled ? "var(--color-grey-65)" : readOnly ? "var(--sys-color-field-text-readOnly)" : "var(--sys-color-field-text-default)";
|
|
3305
3314
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3306
3315
|
"div",
|
|
@@ -3317,7 +3326,7 @@ var SField = react.forwardRef(function SField2({
|
|
|
3317
3326
|
{
|
|
3318
3327
|
className: "flex shrink-0 items-center font-bold text-(--sys-color-field-text-default)",
|
|
3319
3328
|
style: {
|
|
3320
|
-
height: s.height,
|
|
3329
|
+
height: cssLen(labelHeight) ?? s.height,
|
|
3321
3330
|
marginRight: s.fieldGap,
|
|
3322
3331
|
width: cssLen(labelWidth),
|
|
3323
3332
|
fontSize: s.fontSize,
|
|
@@ -3343,14 +3352,14 @@ var SField = react.forwardRef(function SField2({
|
|
|
3343
3352
|
{
|
|
3344
3353
|
className: cn(
|
|
3345
3354
|
"relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
|
|
3346
|
-
interactive && "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]",
|
|
3355
|
+
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]",
|
|
3347
3356
|
disabled && "cursor-not-allowed"
|
|
3348
3357
|
),
|
|
3349
3358
|
style: {
|
|
3350
3359
|
// @ts-expect-error CSS 변수
|
|
3351
3360
|
"--field-bc": borderColor,
|
|
3352
3361
|
// focused/hovered prop이 명시된 경우 강조를 즉시 반영
|
|
3353
|
-
...interactive && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3362
|
+
...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3354
3363
|
...multiline ? { minHeight: s.height } : { height: s.height },
|
|
3355
3364
|
"width": cssLen(width),
|
|
3356
3365
|
"borderRadius": s.radius,
|
|
@@ -3395,15 +3404,28 @@ function flattenOptions(options, depth = 1) {
|
|
|
3395
3404
|
const out = [];
|
|
3396
3405
|
for (const o of options) {
|
|
3397
3406
|
const hasChildren = Array.isArray(o.children) && o.children.length > 0;
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
+
if (hasChildren) {
|
|
3408
|
+
const childFlat = flattenOptions(o.children, depth + 1);
|
|
3409
|
+
const allChildrenDisabled = childFlat.every((c) => c.disabled);
|
|
3410
|
+
out.push({
|
|
3411
|
+
value: String(o.value),
|
|
3412
|
+
label: o.label,
|
|
3413
|
+
disabled: !!o.disabled || allChildrenDisabled,
|
|
3414
|
+
depth,
|
|
3415
|
+
isGroup: true,
|
|
3416
|
+
raw: o.value
|
|
3417
|
+
});
|
|
3418
|
+
out.push(...childFlat);
|
|
3419
|
+
} else {
|
|
3420
|
+
out.push({
|
|
3421
|
+
value: String(o.value),
|
|
3422
|
+
label: o.label,
|
|
3423
|
+
disabled: !!o.disabled,
|
|
3424
|
+
depth,
|
|
3425
|
+
isGroup: false,
|
|
3426
|
+
raw: o.value
|
|
3427
|
+
});
|
|
3428
|
+
}
|
|
3407
3429
|
}
|
|
3408
3430
|
return out;
|
|
3409
3431
|
}
|
|
@@ -3527,6 +3549,9 @@ var SSelect = react.forwardRef(function SSelect2({
|
|
|
3527
3549
|
);
|
|
3528
3550
|
const flat = react.useMemo(() => flattenOptions(options), [options]);
|
|
3529
3551
|
const selectable = react.useMemo(() => selectableOptions(flat), [flat]);
|
|
3552
|
+
const hasLeaf = react.useMemo(() => flat.some((o) => !o.isGroup), [flat]);
|
|
3553
|
+
const allOptionsDisabled = hasLeaf && selectable.length === 0;
|
|
3554
|
+
const effectiveDisabled = disabled || allOptionsDisabled;
|
|
3530
3555
|
const showSearch = useSearch && selectable.length >= SEARCH_THRESHOLD;
|
|
3531
3556
|
const labelByValue = react.useMemo(() => new Map(flat.map((o) => [o.value, o.label])), [flat]);
|
|
3532
3557
|
const rawByValue = react.useMemo(() => new Map(flat.map((o) => [o.value, o.raw])), [flat]);
|
|
@@ -3593,10 +3618,10 @@ var SSelect = react.forwardRef(function SSelect2({
|
|
|
3593
3618
|
Ariakit__namespace.Select,
|
|
3594
3619
|
{
|
|
3595
3620
|
ref: triggerRef,
|
|
3596
|
-
disabled,
|
|
3621
|
+
disabled: effectiveDisabled,
|
|
3597
3622
|
className: "flex h-full w-full cursor-pointer items-center justify-between gap-[8px] bg-transparent px-[12px] text-left text-[12px] leading-[20px] outline-none disabled:cursor-not-allowed",
|
|
3598
3623
|
style: {
|
|
3599
|
-
color:
|
|
3624
|
+
color: effectiveDisabled ? "var(--cmp-select-text-disabled)" : isPlaceholder ? "var(--cmp-select-icon-default)" : "var(--cmp-select-text-default)"
|
|
3600
3625
|
},
|
|
3601
3626
|
children: [
|
|
3602
3627
|
isHtmlLabel(triggerText) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3611,7 +3636,7 @@ var SSelect = react.forwardRef(function SSelect2({
|
|
|
3611
3636
|
{
|
|
3612
3637
|
name: "chevronDown",
|
|
3613
3638
|
size: 12,
|
|
3614
|
-
color:
|
|
3639
|
+
color: effectiveDisabled ? "var(--cmp-select-icon-disabled)" : "var(--cmp-select-icon-default)",
|
|
3615
3640
|
className: cn("shrink-0 transition-transform duration-200", open && "rotate-180")
|
|
3616
3641
|
}
|
|
3617
3642
|
)
|
|
@@ -3625,7 +3650,7 @@ var SSelect = react.forwardRef(function SSelect2({
|
|
|
3625
3650
|
portalElement: portalContainer,
|
|
3626
3651
|
gutter: 4,
|
|
3627
3652
|
sameWidth: !dropdownWidth,
|
|
3628
|
-
className: "z-50 overflow-auto rounded-[var(--cmp-listBox-radius)] bg-[var(--cmp-listBox-bg)]
|
|
3653
|
+
className: "z-50 overflow-auto rounded-[var(--cmp-listBox-radius)] bg-[var(--cmp-listBox-bg)] shadow-[2px_2px_12px_2px_rgba(0,0,0,0.1)] data-[enter]:animate-floating-in-bottom data-[leave]:animate-floating-out-bottom",
|
|
3629
3654
|
style: {
|
|
3630
3655
|
maxHeight: dropdownHeight,
|
|
3631
3656
|
...dropdownWidth ? { width: dropdownWidth } : {},
|
|
@@ -3666,7 +3691,7 @@ var SSelect = react.forwardRef(function SSelect2({
|
|
|
3666
3691
|
),
|
|
3667
3692
|
hasItems ? /* @__PURE__ */ jsxRuntime.jsx(ItemList, { items: filtered, multi, selected, useSearch: showSearch }) : (
|
|
3668
3693
|
// 원본 sd-select-listbox__empty (표시할 항목이 없을 때)
|
|
3669
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-[12px] py-[12px] text-
|
|
3694
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-[12px] py-[12px] text-left text-[12px] leading-[20px] text-[color:var(--cmp-listItem-content-disabled)]", children: "\uD45C\uC2DC\uD560 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4." })
|
|
3670
3695
|
)
|
|
3671
3696
|
]
|
|
3672
3697
|
}
|
|
@@ -3689,7 +3714,7 @@ var SSelect = react.forwardRef(function SSelect2({
|
|
|
3689
3714
|
error: error || ruleError !== "",
|
|
3690
3715
|
status: rules && rules.length > 0 ? ruleError !== "" ? "error" : void 0 : void 0,
|
|
3691
3716
|
errorMessage: ruleError !== "" ? ruleError : errorMessage,
|
|
3692
|
-
disabled,
|
|
3717
|
+
disabled: effectiveDisabled,
|
|
3693
3718
|
width,
|
|
3694
3719
|
className,
|
|
3695
3720
|
style,
|
|
@@ -3724,7 +3749,11 @@ function ItemList({
|
|
|
3724
3749
|
{
|
|
3725
3750
|
className: cn(
|
|
3726
3751
|
"select-none py-[4px] pr-[12px] text-[12px] leading-[20px] text-[color:var(--cmp-listItem-content-default)]",
|
|
3727
|
-
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"
|
|
3752
|
+
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",
|
|
3753
|
+
// 하위가 전부 비활성이면(select.config 에서 bubble-up) 어미 그룹도 비활성 처리:
|
|
3754
|
+
// 텍스트는 회색(#888), depth1 그룹은 파란 배경 대신 회색(#EEE)으로 (depth2 는 #F6F6F6 유지)
|
|
3755
|
+
o.disabled && "text-[color:var(--cmp-listItem-content-disabled)]",
|
|
3756
|
+
o.disabled && isDepth1 && "bg-[var(--cmp-listItem-depth1-bg-disabled)]"
|
|
3728
3757
|
),
|
|
3729
3758
|
style: { paddingLeft: padLeft },
|
|
3730
3759
|
children: o.label
|
|
@@ -3751,15 +3780,21 @@ function ItemList({
|
|
|
3751
3780
|
"span",
|
|
3752
3781
|
{
|
|
3753
3782
|
className: cn(
|
|
3754
|
-
"flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid
|
|
3755
|
-
|
|
3783
|
+
"flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid",
|
|
3784
|
+
o.disabled ? (
|
|
3785
|
+
// 비활성: 회색 채움(#E1E1E1) + 회색 테두리(#CCCCCC)
|
|
3786
|
+
"border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
|
|
3787
|
+
) : cn(
|
|
3788
|
+
"group-data-[active-item]:border-[color:var(--cmp-checkbox-checked-border-inverse)]",
|
|
3789
|
+
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"
|
|
3790
|
+
)
|
|
3756
3791
|
),
|
|
3757
3792
|
children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3758
3793
|
SIcon,
|
|
3759
3794
|
{
|
|
3760
3795
|
name: "checkboxCheck",
|
|
3761
3796
|
size: 12,
|
|
3762
|
-
color: "var(--cmp-checkbox-checked-icon-default)"
|
|
3797
|
+
color: o.disabled ? "var(--cmp-checkbox-checked-icon-disabled)" : "var(--cmp-checkbox-checked-icon-default)"
|
|
3763
3798
|
}
|
|
3764
3799
|
)
|
|
3765
3800
|
}
|