sellmate-design-system-react 0.1.8 → 0.1.10
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 +217 -208
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js +217 -208
- 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 +234 -220
- package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
- package/dist/components/SChipInput/SChipInput.js +234 -220
- package/dist/components/SChipInput/SChipInput.js.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.cjs +31 -14
- package/dist/components/SCircleProgress/SCircleProgress.cjs.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.d.ts +2 -0
- package/dist/components/SCircleProgress/SCircleProgress.js +31 -14
- package/dist/components/SCircleProgress/SCircleProgress.js.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs +222 -213
- package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.js +222 -213
- package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs +297 -262
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js +297 -262
- 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 +217 -20
- package/dist/components/SField/SField.cjs.map +1 -1
- package/dist/components/SField/SField.d.ts +11 -0
- package/dist/components/SField/SField.js +217 -20
- package/dist/components/SField/SField.js.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs +315 -276
- package/dist/components/SFilePicker/SFilePicker.cjs.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.d.ts +4 -2
- package/dist/components/SFilePicker/SFilePicker.js +314 -276
- package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
- package/dist/components/SInput/SInput.cjs +217 -208
- package/dist/components/SInput/SInput.cjs.map +1 -1
- package/dist/components/SInput/SInput.js +217 -208
- package/dist/components/SInput/SInput.js.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs +631 -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 +631 -450
- package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs +39 -14
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.js +39 -14
- package/dist/components/SLoadingContainer/SLoadingContainer.js.map +1 -1
- package/dist/components/SLoadingContainer/loading.cjs +39 -14
- package/dist/components/SLoadingContainer/loading.cjs.map +1 -1
- package/dist/components/SLoadingContainer/loading.js +39 -14
- package/dist/components/SLoadingContainer/loading.js.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.cjs +37 -16
- package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.d.ts +3 -1
- package/dist/components/SLoadingModal/SLoadingModal.js +37 -16
- package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs +325 -49
- package/dist/components/SNumberInput/SNumberInput.cjs.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.d.ts +2 -0
- package/dist/components/SNumberInput/SNumberInput.js +325 -49
- 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/SRadio/SRadioGroup.cjs +1 -1
- package/dist/components/SRadio/SRadioGroup.cjs.map +1 -1
- package/dist/components/SRadio/SRadioGroup.js +1 -1
- package/dist/components/SRadio/SRadioGroup.js.map +1 -1
- package/dist/components/SSelect/SSelect.cjs +71 -32
- package/dist/components/SSelect/SSelect.cjs.map +1 -1
- package/dist/components/SSelect/SSelect.js +71 -32
- package/dist/components/SSelect/SSelect.js.map +1 -1
- package/dist/components/STable/STable.cjs +108 -49
- package/dist/components/STable/STable.cjs.map +1 -1
- package/dist/components/STable/STable.js +108 -49
- package/dist/components/STable/STable.js.map +1 -1
- package/dist/components/STextarea/STextarea.cjs +217 -20
- package/dist/components/STextarea/STextarea.cjs.map +1 -1
- package/dist/components/STextarea/STextarea.js +217 -20
- 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 +208 -13
- package/dist/components/STooltip/STooltip.cjs.map +1 -1
- package/dist/components/STooltip/STooltip.js +208 -13
- package/dist/components/STooltip/STooltip.js.map +1 -1
- package/dist/index.cjs +439 -221
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +439 -221
- package/dist/index.js.map +1 -1
- package/dist/styles.css +113 -48
- package/dist/theme.css +49 -23
- package/package.json +1 -1
|
@@ -3068,7 +3068,8 @@ var HIDE_DELAY_MS = 100;
|
|
|
3068
3068
|
function useBody(content, message = []) {
|
|
3069
3069
|
if (content != null) return content;
|
|
3070
3070
|
if (message.length === 0) return null;
|
|
3071
|
-
|
|
3071
|
+
const singleLine = message.length === 1;
|
|
3072
|
+
return /* @__PURE__ */ jsx(Fragment, { children: message.map((line, i) => /* @__PURE__ */ jsx("div", { className: singleLine ? "leading-[24px]" : void 0, children: line }, i)) });
|
|
3072
3073
|
}
|
|
3073
3074
|
var STooltip = forwardRef(function STooltip2({
|
|
3074
3075
|
content,
|
|
@@ -3171,11 +3172,17 @@ var STooltip = forwardRef(function STooltip2({
|
|
|
3171
3172
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-[12px]", children: [
|
|
3172
3173
|
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: body }),
|
|
3173
3174
|
useClose && /* @__PURE__ */ jsx(
|
|
3174
|
-
|
|
3175
|
+
SGhostButton,
|
|
3175
3176
|
{
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3177
|
+
icon: "close",
|
|
3178
|
+
size: "xs",
|
|
3179
|
+
intent: tooltipType === "default" ? "inverse" : "default",
|
|
3180
|
+
ariaLabel: "\uB2EB\uAE30",
|
|
3181
|
+
className: "shrink-0",
|
|
3182
|
+
onClick: () => {
|
|
3183
|
+
cancelHide();
|
|
3184
|
+
setOpen(false);
|
|
3185
|
+
}
|
|
3179
3186
|
}
|
|
3180
3187
|
)
|
|
3181
3188
|
] }),
|
|
@@ -3213,8 +3220,8 @@ function useFormField(field) {
|
|
|
3213
3220
|
}, [ctx, name]);
|
|
3214
3221
|
}
|
|
3215
3222
|
var FIELD_SIZE = {
|
|
3216
|
-
sm: { height: 28, radius: 4, fieldGap: 12, labelGap: 6, fontSize: 12, lineHeight: 20, icon:
|
|
3217
|
-
md: { height: 36, radius: 6, fieldGap: 16, labelGap: 8, fontSize: 14, lineHeight: 24, icon:
|
|
3223
|
+
sm: { height: 28, radius: 4, fieldGap: 12, labelGap: 6, fontSize: 12, lineHeight: 20, icon: 16 },
|
|
3224
|
+
md: { height: 36, radius: 6, fieldGap: 16, labelGap: 8, fontSize: 14, lineHeight: 24, icon: 16 }
|
|
3218
3225
|
};
|
|
3219
3226
|
var ALIGN = {
|
|
3220
3227
|
start: "flex-start",
|
|
@@ -3229,6 +3236,7 @@ var SField = forwardRef(function SField2({
|
|
|
3229
3236
|
labelTooltip = "",
|
|
3230
3237
|
labelTooltipProps,
|
|
3231
3238
|
labelWidth,
|
|
3239
|
+
labelHeight,
|
|
3232
3240
|
size = "sm",
|
|
3233
3241
|
addonLabel = "",
|
|
3234
3242
|
addonAlign = "start",
|
|
@@ -3243,6 +3251,7 @@ var SField = forwardRef(function SField2({
|
|
|
3243
3251
|
readOnly = false,
|
|
3244
3252
|
width,
|
|
3245
3253
|
multiline = false,
|
|
3254
|
+
borderless = false,
|
|
3246
3255
|
children,
|
|
3247
3256
|
className,
|
|
3248
3257
|
style,
|
|
@@ -3276,8 +3285,8 @@ var SField = forwardRef(function SField2({
|
|
|
3276
3285
|
const resolvedSuccess = status === "pass";
|
|
3277
3286
|
const showError = resolvedError && errorMessage !== "";
|
|
3278
3287
|
const interactive = !disabled && !readOnly;
|
|
3279
|
-
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)";
|
|
3280
|
-
const bgColor = disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
|
|
3288
|
+
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)";
|
|
3289
|
+
const bgColor = borderless ? "transparent" : disabled ? "var(--color-grey-30)" : readOnly ? "var(--sys-color-field-bg-readOnly)" : "var(--sys-color-field-bg-default)";
|
|
3281
3290
|
const textColor = disabled ? "var(--color-grey-65)" : readOnly ? "var(--sys-color-field-text-readOnly)" : "var(--sys-color-field-text-default)";
|
|
3282
3291
|
return /* @__PURE__ */ jsx(
|
|
3283
3292
|
"div",
|
|
@@ -3294,7 +3303,7 @@ var SField = forwardRef(function SField2({
|
|
|
3294
3303
|
{
|
|
3295
3304
|
className: "flex shrink-0 items-center font-bold text-(--sys-color-field-text-default)",
|
|
3296
3305
|
style: {
|
|
3297
|
-
height: s.height,
|
|
3306
|
+
height: cssLen(labelHeight) ?? s.height,
|
|
3298
3307
|
marginRight: s.fieldGap,
|
|
3299
3308
|
width: cssLen(labelWidth),
|
|
3300
3309
|
fontSize: s.fontSize,
|
|
@@ -3320,14 +3329,14 @@ var SField = forwardRef(function SField2({
|
|
|
3320
3329
|
{
|
|
3321
3330
|
className: cn(
|
|
3322
3331
|
"relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
|
|
3323
|
-
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]",
|
|
3332
|
+
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]",
|
|
3324
3333
|
disabled && "cursor-not-allowed"
|
|
3325
3334
|
),
|
|
3326
3335
|
style: {
|
|
3327
3336
|
// @ts-expect-error CSS 변수
|
|
3328
3337
|
"--field-bc": borderColor,
|
|
3329
3338
|
// focused/hovered prop이 명시된 경우 강조를 즉시 반영
|
|
3330
|
-
...interactive && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3339
|
+
...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3331
3340
|
...multiline ? { minHeight: s.height } : { height: s.height },
|
|
3332
3341
|
"width": cssLen(width),
|
|
3333
3342
|
"borderRadius": s.radius,
|
|
@@ -3372,15 +3381,28 @@ function flattenOptions(options, depth = 1) {
|
|
|
3372
3381
|
const out = [];
|
|
3373
3382
|
for (const o of options) {
|
|
3374
3383
|
const hasChildren = Array.isArray(o.children) && o.children.length > 0;
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
+
if (hasChildren) {
|
|
3385
|
+
const childFlat = flattenOptions(o.children, depth + 1);
|
|
3386
|
+
const allChildrenDisabled = childFlat.every((c) => c.disabled);
|
|
3387
|
+
out.push({
|
|
3388
|
+
value: String(o.value),
|
|
3389
|
+
label: o.label,
|
|
3390
|
+
disabled: !!o.disabled || allChildrenDisabled,
|
|
3391
|
+
depth,
|
|
3392
|
+
isGroup: true,
|
|
3393
|
+
raw: o.value
|
|
3394
|
+
});
|
|
3395
|
+
out.push(...childFlat);
|
|
3396
|
+
} else {
|
|
3397
|
+
out.push({
|
|
3398
|
+
value: String(o.value),
|
|
3399
|
+
label: o.label,
|
|
3400
|
+
disabled: !!o.disabled,
|
|
3401
|
+
depth,
|
|
3402
|
+
isGroup: false,
|
|
3403
|
+
raw: o.value
|
|
3404
|
+
});
|
|
3405
|
+
}
|
|
3384
3406
|
}
|
|
3385
3407
|
return out;
|
|
3386
3408
|
}
|
|
@@ -3504,6 +3526,9 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3504
3526
|
);
|
|
3505
3527
|
const flat = useMemo(() => flattenOptions(options), [options]);
|
|
3506
3528
|
const selectable = useMemo(() => selectableOptions(flat), [flat]);
|
|
3529
|
+
const hasLeaf = useMemo(() => flat.some((o) => !o.isGroup), [flat]);
|
|
3530
|
+
const allOptionsDisabled = hasLeaf && selectable.length === 0;
|
|
3531
|
+
const effectiveDisabled = disabled || allOptionsDisabled;
|
|
3507
3532
|
const showSearch = useSearch && selectable.length >= SEARCH_THRESHOLD;
|
|
3508
3533
|
const labelByValue = useMemo(() => new Map(flat.map((o) => [o.value, o.label])), [flat]);
|
|
3509
3534
|
const rawByValue = useMemo(() => new Map(flat.map((o) => [o.value, o.raw])), [flat]);
|
|
@@ -3570,10 +3595,10 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3570
3595
|
Ariakit.Select,
|
|
3571
3596
|
{
|
|
3572
3597
|
ref: triggerRef,
|
|
3573
|
-
disabled,
|
|
3598
|
+
disabled: effectiveDisabled,
|
|
3574
3599
|
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",
|
|
3575
3600
|
style: {
|
|
3576
|
-
color:
|
|
3601
|
+
color: effectiveDisabled ? "var(--cmp-select-text-disabled)" : isPlaceholder ? "var(--cmp-select-icon-default)" : "var(--cmp-select-text-default)"
|
|
3577
3602
|
},
|
|
3578
3603
|
children: [
|
|
3579
3604
|
isHtmlLabel(triggerText) ? /* @__PURE__ */ jsx(
|
|
@@ -3588,7 +3613,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3588
3613
|
{
|
|
3589
3614
|
name: "chevronDown",
|
|
3590
3615
|
size: 12,
|
|
3591
|
-
color:
|
|
3616
|
+
color: effectiveDisabled ? "var(--cmp-select-icon-disabled)" : "var(--cmp-select-icon-default)",
|
|
3592
3617
|
className: cn("shrink-0 transition-transform duration-200", open && "rotate-180")
|
|
3593
3618
|
}
|
|
3594
3619
|
)
|
|
@@ -3602,7 +3627,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3602
3627
|
portalElement: portalContainer,
|
|
3603
3628
|
gutter: 4,
|
|
3604
3629
|
sameWidth: !dropdownWidth,
|
|
3605
|
-
className: "z-50 overflow-auto rounded-[var(--cmp-listBox-radius)] bg-[var(--cmp-listBox-bg)]
|
|
3630
|
+
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",
|
|
3606
3631
|
style: {
|
|
3607
3632
|
maxHeight: dropdownHeight,
|
|
3608
3633
|
...dropdownWidth ? { width: dropdownWidth } : {},
|
|
@@ -3643,7 +3668,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3643
3668
|
),
|
|
3644
3669
|
hasItems ? /* @__PURE__ */ jsx(ItemList, { items: filtered, multi, selected, useSearch: showSearch }) : (
|
|
3645
3670
|
// 원본 sd-select-listbox__empty (표시할 항목이 없을 때)
|
|
3646
|
-
/* @__PURE__ */ jsx("div", { className: "px-[12px] py-[12px] text-
|
|
3671
|
+
/* @__PURE__ */ 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." })
|
|
3647
3672
|
)
|
|
3648
3673
|
]
|
|
3649
3674
|
}
|
|
@@ -3666,7 +3691,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3666
3691
|
error: error || ruleError !== "",
|
|
3667
3692
|
status: rules && rules.length > 0 ? ruleError !== "" ? "error" : void 0 : void 0,
|
|
3668
3693
|
errorMessage: ruleError !== "" ? ruleError : errorMessage,
|
|
3669
|
-
disabled,
|
|
3694
|
+
disabled: effectiveDisabled,
|
|
3670
3695
|
width,
|
|
3671
3696
|
className,
|
|
3672
3697
|
style,
|
|
@@ -3701,7 +3726,11 @@ function ItemList({
|
|
|
3701
3726
|
{
|
|
3702
3727
|
className: cn(
|
|
3703
3728
|
"select-none py-[4px] pr-[12px] text-[12px] leading-[20px] text-[color:var(--cmp-listItem-content-default)]",
|
|
3704
|
-
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"
|
|
3729
|
+
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",
|
|
3730
|
+
// 하위가 전부 비활성이면(select.config 에서 bubble-up) 어미 그룹도 비활성 처리:
|
|
3731
|
+
// 텍스트는 회색(#888), depth1 그룹은 파란 배경 대신 회색(#EEE)으로 (depth2 는 #F6F6F6 유지)
|
|
3732
|
+
o.disabled && "cursor-not-allowed text-[color:var(--cmp-listItem-content-disabled)]",
|
|
3733
|
+
o.disabled && isDepth1 && "bg-[var(--cmp-listItem-depth1-bg-disabled)]"
|
|
3705
3734
|
),
|
|
3706
3735
|
style: { paddingLeft: padLeft },
|
|
3707
3736
|
children: o.label
|
|
@@ -3715,10 +3744,14 @@ function ItemList({
|
|
|
3715
3744
|
{
|
|
3716
3745
|
value: o.value,
|
|
3717
3746
|
disabled: o.disabled,
|
|
3747
|
+
accessibleWhenDisabled: true,
|
|
3718
3748
|
className: cn(
|
|
3719
3749
|
itemBase,
|
|
3720
3750
|
isSelected && !multi && "font-bold text-[color:var(--cmp-listItem-content-selected)]",
|
|
3721
|
-
|
|
3751
|
+
// Ariakit은 disabled 항목도 hover 시 active(data-active-item) 처리하므로,
|
|
3752
|
+
// 비활성 항목에는 hover 하이라이트를 적용하지 않아 회색 비활성 스타일을 유지한다.
|
|
3753
|
+
// (원본 Stencil의 `--focused...:not(--disabled)` 규칙과 동일한 의도)
|
|
3754
|
+
!o.disabled && activeClass
|
|
3722
3755
|
),
|
|
3723
3756
|
style: { paddingTop: 4, paddingBottom: 4, paddingRight: 12, paddingLeft: padLeft },
|
|
3724
3757
|
render: useSearch ? /* @__PURE__ */ jsx(Ariakit.ComboboxItem, {}) : void 0,
|
|
@@ -3728,15 +3761,21 @@ function ItemList({
|
|
|
3728
3761
|
"span",
|
|
3729
3762
|
{
|
|
3730
3763
|
className: cn(
|
|
3731
|
-
"flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid
|
|
3732
|
-
|
|
3764
|
+
"flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid",
|
|
3765
|
+
o.disabled ? (
|
|
3766
|
+
// 비활성: 회색 채움(#E1E1E1) + 회색 테두리(#CCCCCC)
|
|
3767
|
+
"cursor-not-allowed border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
|
|
3768
|
+
) : cn(
|
|
3769
|
+
"group-data-[active-item]:border-[color:var(--cmp-checkbox-checked-border-inverse)]",
|
|
3770
|
+
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"
|
|
3771
|
+
)
|
|
3733
3772
|
),
|
|
3734
3773
|
children: isSelected && /* @__PURE__ */ jsx(
|
|
3735
3774
|
SIcon,
|
|
3736
3775
|
{
|
|
3737
3776
|
name: "checkboxCheck",
|
|
3738
3777
|
size: 12,
|
|
3739
|
-
color: "var(--cmp-checkbox-checked-icon-default)"
|
|
3778
|
+
color: o.disabled ? "var(--cmp-checkbox-checked-icon-disabled)" : "var(--cmp-checkbox-checked-icon-default)"
|
|
3740
3779
|
}
|
|
3741
3780
|
)
|
|
3742
3781
|
}
|