sellmate-design-system-react 0.1.7 → 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 +11 -3
- package/dist/components/SActionModal/SActionModal.cjs.map +1 -1
- package/dist/components/SActionModal/SActionModal.js +11 -3
- package/dist/components/SActionModal/SActionModal.js.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs +226 -209
- package/dist/components/SBarcodeInput/SBarcodeInput.cjs.map +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.js +226 -209
- package/dist/components/SBarcodeInput/SBarcodeInput.js.map +1 -1
- package/dist/components/SCalendar/SCalendar.cjs +9 -1
- package/dist/components/SCalendar/SCalendar.cjs.map +1 -1
- package/dist/components/SCalendar/SCalendar.js +9 -1
- package/dist/components/SCalendar/SCalendar.js.map +1 -1
- package/dist/components/SChip/SChip.cjs +9 -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 +9 -1
- package/dist/components/SChip/SChip.js.map +1 -1
- package/dist/components/SChipInput/SChipInput.cjs +260 -235
- package/dist/components/SChipInput/SChipInput.cjs.map +1 -1
- package/dist/components/SChipInput/SChipInput.js +259 -235
- package/dist/components/SChipInput/SChipInput.js.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.cjs +56 -58
- package/dist/components/SCircleProgress/SCircleProgress.cjs.map +1 -1
- package/dist/components/SCircleProgress/SCircleProgress.js +56 -58
- package/dist/components/SCircleProgress/SCircleProgress.js.map +1 -1
- package/dist/components/SConfirmModal/SConfirmModal.cjs +9 -1
- package/dist/components/SConfirmModal/SConfirmModal.cjs.map +1 -1
- package/dist/components/SConfirmModal/SConfirmModal.js +9 -1
- package/dist/components/SConfirmModal/SConfirmModal.js.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.cjs +247 -221
- package/dist/components/SDatePicker/SDatePicker.cjs.map +1 -1
- package/dist/components/SDatePicker/SDatePicker.js +247 -221
- package/dist/components/SDatePicker/SDatePicker.js.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs +308 -256
- package/dist/components/SDateRangePicker/SDateRangePicker.cjs.map +1 -1
- package/dist/components/SDateRangePicker/SDateRangePicker.js +308 -256
- package/dist/components/SDateRangePicker/SDateRangePicker.js.map +1 -1
- package/dist/components/SDropdownButton/SDropdownButton.cjs +51 -4
- package/dist/components/SDropdownButton/SDropdownButton.cjs.map +1 -1
- package/dist/components/SDropdownButton/SDropdownButton.js +52 -5
- package/dist/components/SDropdownButton/SDropdownButton.js.map +1 -1
- package/dist/components/SField/SField.cjs +226 -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 +226 -21
- package/dist/components/SField/SField.js.map +1 -1
- package/dist/components/SFilePicker/SFilePicker.cjs +306 -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 +306 -278
- package/dist/components/SFilePicker/SFilePicker.js.map +1 -1
- package/dist/components/SGhostButton/SGhostButton.cjs +8 -0
- package/dist/components/SGhostButton/SGhostButton.cjs.map +1 -1
- package/dist/components/SGhostButton/SGhostButton.js +8 -0
- package/dist/components/SGhostButton/SGhostButton.js.map +1 -1
- package/dist/components/SGuide/SGuide.cjs +12 -1
- package/dist/components/SGuide/SGuide.cjs.map +1 -1
- package/dist/components/SGuide/SGuide.js +12 -1
- package/dist/components/SGuide/SGuide.js.map +1 -1
- package/dist/components/SInput/SInput.cjs +226 -209
- package/dist/components/SInput/SInput.cjs.map +1 -1
- package/dist/components/SInput/SInput.js +226 -209
- package/dist/components/SInput/SInput.js.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs +640 -453
- package/dist/components/SKeyValueTable/SKeyValueTable.cjs.map +1 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +3 -1
- package/dist/components/SKeyValueTable/SKeyValueTable.js +640 -453
- package/dist/components/SKeyValueTable/SKeyValueTable.js.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs +64 -58
- package/dist/components/SLoadingContainer/SLoadingContainer.cjs.map +1 -1
- package/dist/components/SLoadingContainer/SLoadingContainer.js +64 -58
- package/dist/components/SLoadingContainer/SLoadingContainer.js.map +1 -1
- package/dist/components/SLoadingContainer/loading.cjs +64 -58
- package/dist/components/SLoadingContainer/loading.cjs.map +1 -1
- package/dist/components/SLoadingContainer/loading.js +64 -58
- package/dist/components/SLoadingContainer/loading.js.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.cjs +68 -61
- package/dist/components/SLoadingModal/SLoadingModal.cjs.map +1 -1
- package/dist/components/SLoadingModal/SLoadingModal.js +68 -61
- package/dist/components/SLoadingModal/SLoadingModal.js.map +1 -1
- package/dist/components/SModalContainer/SModalContainer.cjs +9 -1
- package/dist/components/SModalContainer/SModalContainer.cjs.map +1 -1
- package/dist/components/SModalContainer/SModalContainer.js +9 -1
- package/dist/components/SModalContainer/SModalContainer.js.map +1 -1
- package/dist/components/SNumberInput/SNumberInput.cjs +334 -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 +334 -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/SPopover/SPopover.cjs +20 -3
- package/dist/components/SPopover/SPopover.cjs.map +1 -1
- package/dist/components/SPopover/SPopover.js +20 -4
- package/dist/components/SPopover/SPopover.js.map +1 -1
- package/dist/components/SPopup/SPopup.cjs +2 -2
- package/dist/components/SPopup/SPopup.cjs.map +1 -1
- package/dist/components/SPopup/SPopup.js +2 -2
- package/dist/components/SPopup/SPopup.js.map +1 -1
- package/dist/components/SPortal/SPortal.cjs +8 -0
- package/dist/components/SPortal/SPortal.cjs.map +1 -1
- package/dist/components/SPortal/SPortal.js +8 -0
- package/dist/components/SPortal/SPortal.js.map +1 -1
- package/dist/components/SSelect/SSelect.cjs +76 -32
- package/dist/components/SSelect/SSelect.cjs.map +1 -1
- package/dist/components/SSelect/SSelect.js +76 -32
- package/dist/components/SSelect/SSelect.js.map +1 -1
- package/dist/components/STable/STable.cjs +133 -91
- package/dist/components/STable/STable.cjs.map +1 -1
- package/dist/components/STable/STable.js +133 -91
- package/dist/components/STable/STable.js.map +1 -1
- package/dist/components/STextLink/STextLink.cjs +137 -3
- package/dist/components/STextLink/STextLink.cjs.map +1 -1
- package/dist/components/STextLink/STextLink.d.ts +1 -1
- package/dist/components/STextLink/STextLink.js +118 -4
- package/dist/components/STextLink/STextLink.js.map +1 -1
- package/dist/components/STextarea/STextarea.cjs +226 -21
- package/dist/components/STextarea/STextarea.cjs.map +1 -1
- package/dist/components/STextarea/STextarea.js +226 -21
- package/dist/components/STextarea/STextarea.js.map +1 -1
- package/dist/components/SToast/SToast.cjs +8 -0
- package/dist/components/SToast/SToast.cjs.map +1 -1
- package/dist/components/SToast/SToast.js +8 -0
- package/dist/components/SToast/SToast.js.map +1 -1
- package/dist/components/SToast/SToastContainer.cjs +11 -3
- package/dist/components/SToast/SToastContainer.cjs.map +1 -1
- package/dist/components/SToast/SToastContainer.js +11 -3
- package/dist/components/SToast/SToastContainer.js.map +1 -1
- package/dist/components/STooltip/STooltip.cjs +217 -14
- package/dist/components/STooltip/STooltip.cjs.map +1 -1
- package/dist/components/STooltip/STooltip.js +217 -14
- package/dist/components/STooltip/STooltip.js.map +1 -1
- package/dist/index.cjs +532 -300
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +531 -300
- package/dist/index.js.map +1 -1
- package/dist/lib/floating-anim.cjs +8 -0
- package/dist/lib/floating-anim.cjs.map +1 -1
- package/dist/lib/floating-anim.d.ts +5 -1
- package/dist/lib/floating-anim.js +8 -0
- package/dist/lib/floating-anim.js.map +1 -1
- package/dist/styles.css +175 -66
- package/dist/theme.css +49 -22
- package/package.json +1 -1
|
@@ -2860,12 +2860,20 @@ var SIcon = forwardRef(function SIcon2({ name, size = 24, color, rotate, label,
|
|
|
2860
2860
|
// src/lib/floating-anim.ts
|
|
2861
2861
|
var FLOATING_SLIDE_ANIM = [
|
|
2862
2862
|
"data-[state=open]:data-[side=top]:animate-floating-in-top",
|
|
2863
|
+
"data-[state=delayed-open]:data-[side=top]:animate-floating-in-top",
|
|
2864
|
+
"data-[state=instant-open]:data-[side=top]:animate-floating-in-top",
|
|
2863
2865
|
"data-[state=closed]:data-[side=top]:animate-floating-out-top",
|
|
2864
2866
|
"data-[state=open]:data-[side=bottom]:animate-floating-in-bottom",
|
|
2867
|
+
"data-[state=delayed-open]:data-[side=bottom]:animate-floating-in-bottom",
|
|
2868
|
+
"data-[state=instant-open]:data-[side=bottom]:animate-floating-in-bottom",
|
|
2865
2869
|
"data-[state=closed]:data-[side=bottom]:animate-floating-out-bottom",
|
|
2866
2870
|
"data-[state=open]:data-[side=left]:animate-floating-in-left",
|
|
2871
|
+
"data-[state=delayed-open]:data-[side=left]:animate-floating-in-left",
|
|
2872
|
+
"data-[state=instant-open]:data-[side=left]:animate-floating-in-left",
|
|
2867
2873
|
"data-[state=closed]:data-[side=left]:animate-floating-out-left",
|
|
2868
2874
|
"data-[state=open]:data-[side=right]:animate-floating-in-right",
|
|
2875
|
+
"data-[state=delayed-open]:data-[side=right]:animate-floating-in-right",
|
|
2876
|
+
"data-[state=instant-open]:data-[side=right]:animate-floating-in-right",
|
|
2869
2877
|
"data-[state=closed]:data-[side=right]:animate-floating-out-right"
|
|
2870
2878
|
].join(" ");
|
|
2871
2879
|
|
|
@@ -3060,7 +3068,8 @@ var HIDE_DELAY_MS = 100;
|
|
|
3060
3068
|
function useBody(content, message = []) {
|
|
3061
3069
|
if (content != null) return content;
|
|
3062
3070
|
if (message.length === 0) return null;
|
|
3063
|
-
|
|
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)) });
|
|
3064
3073
|
}
|
|
3065
3074
|
var STooltip = forwardRef(function STooltip2({
|
|
3066
3075
|
content,
|
|
@@ -3118,7 +3127,7 @@ var STooltip = forwardRef(function STooltip2({
|
|
|
3118
3127
|
if (disabled || body == null) return /* @__PURE__ */ jsx(Fragment, { children: triggerNode });
|
|
3119
3128
|
const isHover = trigger === "hover";
|
|
3120
3129
|
const contentClass = cn(
|
|
3121
|
-
"z-50 max-w-xs rounded-[6px] px-[16px] py-[12px] text-[12px] leading-[20px]",
|
|
3130
|
+
"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)]",
|
|
3122
3131
|
FLOATING_SLIDE_ANIM,
|
|
3123
3132
|
className
|
|
3124
3133
|
);
|
|
@@ -3163,11 +3172,17 @@ var STooltip = forwardRef(function STooltip2({
|
|
|
3163
3172
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-[12px]", children: [
|
|
3164
3173
|
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: body }),
|
|
3165
3174
|
useClose && /* @__PURE__ */ jsx(
|
|
3166
|
-
|
|
3175
|
+
SGhostButton,
|
|
3167
3176
|
{
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
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
|
+
}
|
|
3171
3186
|
}
|
|
3172
3187
|
)
|
|
3173
3188
|
] }),
|
|
@@ -3205,8 +3220,8 @@ function useFormField(field) {
|
|
|
3205
3220
|
}, [ctx, name]);
|
|
3206
3221
|
}
|
|
3207
3222
|
var FIELD_SIZE = {
|
|
3208
|
-
sm: { height: 28, radius: 4, fieldGap: 12, labelGap: 6, fontSize: 12, lineHeight: 20, icon:
|
|
3209
|
-
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 }
|
|
3210
3225
|
};
|
|
3211
3226
|
var ALIGN = {
|
|
3212
3227
|
start: "flex-start",
|
|
@@ -3221,6 +3236,7 @@ var SField = forwardRef(function SField2({
|
|
|
3221
3236
|
labelTooltip = "",
|
|
3222
3237
|
labelTooltipProps,
|
|
3223
3238
|
labelWidth,
|
|
3239
|
+
labelHeight,
|
|
3224
3240
|
size = "sm",
|
|
3225
3241
|
addonLabel = "",
|
|
3226
3242
|
addonAlign = "start",
|
|
@@ -3235,6 +3251,7 @@ var SField = forwardRef(function SField2({
|
|
|
3235
3251
|
readOnly = false,
|
|
3236
3252
|
width,
|
|
3237
3253
|
multiline = false,
|
|
3254
|
+
borderless = false,
|
|
3238
3255
|
children,
|
|
3239
3256
|
className,
|
|
3240
3257
|
style,
|
|
@@ -3268,8 +3285,8 @@ var SField = forwardRef(function SField2({
|
|
|
3268
3285
|
const resolvedSuccess = status === "pass";
|
|
3269
3286
|
const showError = resolvedError && errorMessage !== "";
|
|
3270
3287
|
const interactive = !disabled && !readOnly;
|
|
3271
|
-
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)";
|
|
3272
|
-
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)";
|
|
3273
3290
|
const textColor = disabled ? "var(--color-grey-65)" : readOnly ? "var(--sys-color-field-text-readOnly)" : "var(--sys-color-field-text-default)";
|
|
3274
3291
|
return /* @__PURE__ */ jsx(
|
|
3275
3292
|
"div",
|
|
@@ -3286,7 +3303,7 @@ var SField = forwardRef(function SField2({
|
|
|
3286
3303
|
{
|
|
3287
3304
|
className: "flex shrink-0 items-center font-bold text-(--sys-color-field-text-default)",
|
|
3288
3305
|
style: {
|
|
3289
|
-
height: s.height,
|
|
3306
|
+
height: cssLen(labelHeight) ?? s.height,
|
|
3290
3307
|
marginRight: s.fieldGap,
|
|
3291
3308
|
width: cssLen(labelWidth),
|
|
3292
3309
|
fontSize: s.fontSize,
|
|
@@ -3312,14 +3329,14 @@ var SField = forwardRef(function SField2({
|
|
|
3312
3329
|
{
|
|
3313
3330
|
className: cn(
|
|
3314
3331
|
"relative box-border flex min-w-0 items-stretch overflow-hidden border border-solid border-(--field-bc)",
|
|
3315
|
-
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]",
|
|
3316
3333
|
disabled && "cursor-not-allowed"
|
|
3317
3334
|
),
|
|
3318
3335
|
style: {
|
|
3319
3336
|
// @ts-expect-error CSS 변수
|
|
3320
3337
|
"--field-bc": borderColor,
|
|
3321
3338
|
// focused/hovered prop이 명시된 경우 강조를 즉시 반영
|
|
3322
|
-
...interactive && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3339
|
+
...interactive && !borderless && focused ? { boxShadow: "0px 0px 4px 0px #0071ff66" } : {},
|
|
3323
3340
|
...multiline ? { minHeight: s.height } : { height: s.height },
|
|
3324
3341
|
"width": cssLen(width),
|
|
3325
3342
|
"borderRadius": s.radius,
|
|
@@ -3364,15 +3381,28 @@ function flattenOptions(options, depth = 1) {
|
|
|
3364
3381
|
const out = [];
|
|
3365
3382
|
for (const o of options) {
|
|
3366
3383
|
const hasChildren = Array.isArray(o.children) && o.children.length > 0;
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
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
|
+
}
|
|
3376
3406
|
}
|
|
3377
3407
|
return out;
|
|
3378
3408
|
}
|
|
@@ -3496,6 +3526,9 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3496
3526
|
);
|
|
3497
3527
|
const flat = useMemo(() => flattenOptions(options), [options]);
|
|
3498
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;
|
|
3499
3532
|
const showSearch = useSearch && selectable.length >= SEARCH_THRESHOLD;
|
|
3500
3533
|
const labelByValue = useMemo(() => new Map(flat.map((o) => [o.value, o.label])), [flat]);
|
|
3501
3534
|
const rawByValue = useMemo(() => new Map(flat.map((o) => [o.value, o.raw])), [flat]);
|
|
@@ -3546,6 +3579,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3546
3579
|
const selectStore = /* @__PURE__ */ jsxs(
|
|
3547
3580
|
Ariakit.SelectProvider,
|
|
3548
3581
|
{
|
|
3582
|
+
animated: portalContainer == null ? 150 : false,
|
|
3549
3583
|
value: multi ? selected : selected[0] ?? "",
|
|
3550
3584
|
setValue: (v) => emit(Array.isArray(v) ? v : v === "" ? [] : [v]),
|
|
3551
3585
|
open,
|
|
@@ -3561,10 +3595,10 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3561
3595
|
Ariakit.Select,
|
|
3562
3596
|
{
|
|
3563
3597
|
ref: triggerRef,
|
|
3564
|
-
disabled,
|
|
3598
|
+
disabled: effectiveDisabled,
|
|
3565
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",
|
|
3566
3600
|
style: {
|
|
3567
|
-
color:
|
|
3601
|
+
color: effectiveDisabled ? "var(--cmp-select-text-disabled)" : isPlaceholder ? "var(--cmp-select-icon-default)" : "var(--cmp-select-text-default)"
|
|
3568
3602
|
},
|
|
3569
3603
|
children: [
|
|
3570
3604
|
isHtmlLabel(triggerText) ? /* @__PURE__ */ jsx(
|
|
@@ -3579,7 +3613,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3579
3613
|
{
|
|
3580
3614
|
name: "chevronDown",
|
|
3581
3615
|
size: 12,
|
|
3582
|
-
color:
|
|
3616
|
+
color: effectiveDisabled ? "var(--cmp-select-icon-disabled)" : "var(--cmp-select-icon-default)",
|
|
3583
3617
|
className: cn("shrink-0 transition-transform duration-200", open && "rotate-180")
|
|
3584
3618
|
}
|
|
3585
3619
|
)
|
|
@@ -3593,7 +3627,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3593
3627
|
portalElement: portalContainer,
|
|
3594
3628
|
gutter: 4,
|
|
3595
3629
|
sameWidth: !dropdownWidth,
|
|
3596
|
-
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",
|
|
3597
3631
|
style: {
|
|
3598
3632
|
maxHeight: dropdownHeight,
|
|
3599
3633
|
...dropdownWidth ? { width: dropdownWidth } : {},
|
|
@@ -3634,7 +3668,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3634
3668
|
),
|
|
3635
3669
|
hasItems ? /* @__PURE__ */ jsx(ItemList, { items: filtered, multi, selected, useSearch: showSearch }) : (
|
|
3636
3670
|
// 원본 sd-select-listbox__empty (표시할 항목이 없을 때)
|
|
3637
|
-
/* @__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." })
|
|
3638
3672
|
)
|
|
3639
3673
|
]
|
|
3640
3674
|
}
|
|
@@ -3657,7 +3691,7 @@ var SSelect = forwardRef(function SSelect2({
|
|
|
3657
3691
|
error: error || ruleError !== "",
|
|
3658
3692
|
status: rules && rules.length > 0 ? ruleError !== "" ? "error" : void 0 : void 0,
|
|
3659
3693
|
errorMessage: ruleError !== "" ? ruleError : errorMessage,
|
|
3660
|
-
disabled,
|
|
3694
|
+
disabled: effectiveDisabled,
|
|
3661
3695
|
width,
|
|
3662
3696
|
className,
|
|
3663
3697
|
style,
|
|
@@ -3692,7 +3726,11 @@ function ItemList({
|
|
|
3692
3726
|
{
|
|
3693
3727
|
className: cn(
|
|
3694
3728
|
"select-none py-[4px] pr-[12px] text-[12px] leading-[20px] text-[color:var(--cmp-listItem-content-default)]",
|
|
3695
|
-
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 && "text-[color:var(--cmp-listItem-content-disabled)]",
|
|
3733
|
+
o.disabled && isDepth1 && "bg-[var(--cmp-listItem-depth1-bg-disabled)]"
|
|
3696
3734
|
),
|
|
3697
3735
|
style: { paddingLeft: padLeft },
|
|
3698
3736
|
children: o.label
|
|
@@ -3719,15 +3757,21 @@ function ItemList({
|
|
|
3719
3757
|
"span",
|
|
3720
3758
|
{
|
|
3721
3759
|
className: cn(
|
|
3722
|
-
"flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid
|
|
3723
|
-
|
|
3760
|
+
"flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center rounded-[2px] border border-solid",
|
|
3761
|
+
o.disabled ? (
|
|
3762
|
+
// 비활성: 회색 채움(#E1E1E1) + 회색 테두리(#CCCCCC)
|
|
3763
|
+
"border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
|
|
3764
|
+
) : cn(
|
|
3765
|
+
"group-data-[active-item]:border-[color:var(--cmp-checkbox-checked-border-inverse)]",
|
|
3766
|
+
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"
|
|
3767
|
+
)
|
|
3724
3768
|
),
|
|
3725
3769
|
children: isSelected && /* @__PURE__ */ jsx(
|
|
3726
3770
|
SIcon,
|
|
3727
3771
|
{
|
|
3728
3772
|
name: "checkboxCheck",
|
|
3729
3773
|
size: 12,
|
|
3730
|
-
color: "var(--cmp-checkbox-checked-icon-default)"
|
|
3774
|
+
color: o.disabled ? "var(--cmp-checkbox-checked-icon-disabled)" : "var(--cmp-checkbox-checked-icon-default)"
|
|
3731
3775
|
}
|
|
3732
3776
|
)
|
|
3733
3777
|
}
|