sellmate-design-system-react 9.0.0-beta.93 → 9.0.0-beta.94
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/AGENTS.md +1 -0
- package/dist/components/SButton/button.config.d.ts +2 -1
- package/dist/components/SChatAttachedFile/chatAttachedFile.config.d.ts +2 -2
- package/dist/components/SChatFile/chatFile.config.d.ts +2 -2
- package/dist/components/SChipFilter/README.md +2 -0
- package/dist/components/SGhostButton/README.md +2 -0
- package/dist/components/SGnb/gnb.config.d.ts +6 -0
- package/dist/components/SIcon/README.md +3 -1
- package/dist/components/SIcon/SIcon.d.ts +1 -1
- package/dist/components/SLauncherListBox/launcherListBox.config.d.ts +2 -7
- package/dist/components/SLoadingModal/README.md +2 -2
- package/dist/components/SRadioCard/README.md +3 -0
- package/dist/components/SRadioCard/SRadioCard.d.ts +7 -2
- package/dist/components/SRadioCard/SRadioCardGroup.d.ts +3 -1
- package/dist/components/SSelect/README.md +1 -1
- package/dist/components/SSelect/SSelect.d.ts +1 -1
- package/dist/components/SStepper/stepper.config.d.ts +9 -3
- package/dist/components/STabs/tabs.config.d.ts +3 -8
- package/dist/components/STag/tag.config.d.ts +10 -9
- package/dist/components/STimePicker/timepicker.config.d.ts +3 -0
- package/dist/components/STree/README.md +2 -0
- package/dist/index.cjs +804 -647
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +804 -647
- package/dist/index.js.map +1 -1
- package/dist/lib/list-box-item.d.ts +16 -0
- package/dist/lib/tree-row.d.ts +20 -2
- package/dist/llms-full.txt +12 -4
- package/dist/llms.txt +1 -0
- package/dist/styles.css +228 -80
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3695,16 +3695,21 @@ var SIcon = /* @__PURE__ */ forwardRef(function SIcon2({ name, size = 24, color,
|
|
|
3695
3695
|
const Svg = ICONS[name];
|
|
3696
3696
|
if (!Svg) return null;
|
|
3697
3697
|
const rotateClass = rotate ? { 90: "rotate-90", 180: "rotate-180", 270: "-rotate-90" }[rotate] : void 0;
|
|
3698
|
+
const cssSize = typeof size === "string" && /var\(|calc\(/.test(size);
|
|
3698
3699
|
return /* @__PURE__ */ jsx(
|
|
3699
3700
|
"span",
|
|
3700
3701
|
{
|
|
3701
3702
|
ref,
|
|
3702
3703
|
className: cn("inline-flex items-center justify-center", rotateClass, className),
|
|
3703
|
-
style: {
|
|
3704
|
+
style: {
|
|
3705
|
+
color: resolveColor(color),
|
|
3706
|
+
...cssSize && { width: size, height: size },
|
|
3707
|
+
...style
|
|
3708
|
+
},
|
|
3704
3709
|
role: label ? "img" : void 0,
|
|
3705
3710
|
"aria-label": label,
|
|
3706
3711
|
"aria-hidden": label ? void 0 : true,
|
|
3707
|
-
children: /* @__PURE__ */ jsx(Svg, { size })
|
|
3712
|
+
children: /* @__PURE__ */ jsx(Svg, { size: cssSize ? "100%" : size })
|
|
3708
3713
|
}
|
|
3709
3714
|
);
|
|
3710
3715
|
});
|
|
@@ -4107,7 +4112,7 @@ var SBadge = /* @__PURE__ */ forwardRef(function SBadge2({ color = "blue", class
|
|
|
4107
4112
|
return /* @__PURE__ */ jsx("span", { ref, className: cn("inline-flex items-center justify-center", className), ...rest, children: /* @__PURE__ */ jsx(
|
|
4108
4113
|
"span",
|
|
4109
4114
|
{
|
|
4110
|
-
className: "rounded-
|
|
4115
|
+
className: "rounded-(--cmp-badge-radius)",
|
|
4111
4116
|
style: {
|
|
4112
4117
|
width: "var(--cmp-badge-size, 6px)",
|
|
4113
4118
|
height: "var(--cmp-badge-size, 6px)",
|
|
@@ -4174,7 +4179,8 @@ var BUTTON_SIZE_CONFIG = {
|
|
|
4174
4179
|
height: "var(--cmp-button-xs-height)",
|
|
4175
4180
|
paddingX: "var(--cmp-button-xs-paddingX)",
|
|
4176
4181
|
gap: "var(--cmp-button-xs-gap)",
|
|
4177
|
-
iconSize:
|
|
4182
|
+
iconSize: "var(--cmp-button-xs-icon)",
|
|
4183
|
+
iconOnlyWidth: "var(--cmp-button-iconOnly-xs-width)",
|
|
4178
4184
|
fontSize: 12,
|
|
4179
4185
|
fontWeight: 500,
|
|
4180
4186
|
radius: "var(--cmp-button-radius-sm)",
|
|
@@ -4184,7 +4190,8 @@ var BUTTON_SIZE_CONFIG = {
|
|
|
4184
4190
|
height: "var(--cmp-button-sm-height)",
|
|
4185
4191
|
paddingX: "var(--cmp-button-sm-paddingX)",
|
|
4186
4192
|
gap: "var(--cmp-button-sm-gap)",
|
|
4187
|
-
iconSize:
|
|
4193
|
+
iconSize: "var(--cmp-button-sm-icon)",
|
|
4194
|
+
iconOnlyWidth: "var(--cmp-button-iconOnly-sm-width)",
|
|
4188
4195
|
fontSize: 12,
|
|
4189
4196
|
fontWeight: 500,
|
|
4190
4197
|
radius: "var(--cmp-button-radius-sm)",
|
|
@@ -4194,7 +4201,8 @@ var BUTTON_SIZE_CONFIG = {
|
|
|
4194
4201
|
height: "var(--cmp-button-md-height)",
|
|
4195
4202
|
paddingX: "var(--cmp-button-md-paddingX)",
|
|
4196
4203
|
gap: "var(--cmp-button-md-gap)",
|
|
4197
|
-
iconSize:
|
|
4204
|
+
iconSize: "var(--cmp-button-md-icon)",
|
|
4205
|
+
iconOnlyWidth: "var(--cmp-button-iconOnly-md-width)",
|
|
4198
4206
|
fontSize: 16,
|
|
4199
4207
|
fontWeight: 500,
|
|
4200
4208
|
radius: "var(--cmp-button-radius-md)",
|
|
@@ -4204,7 +4212,8 @@ var BUTTON_SIZE_CONFIG = {
|
|
|
4204
4212
|
height: "var(--cmp-button-lg-height)",
|
|
4205
4213
|
paddingX: "var(--cmp-button-lg-paddingX)",
|
|
4206
4214
|
gap: "var(--cmp-button-lg-gap)",
|
|
4207
|
-
iconSize:
|
|
4215
|
+
iconSize: "var(--cmp-button-lg-icon)",
|
|
4216
|
+
iconOnlyWidth: "var(--cmp-button-iconOnly-lg-width)",
|
|
4208
4217
|
fontSize: 18,
|
|
4209
4218
|
fontWeight: 500,
|
|
4210
4219
|
radius: "var(--cmp-button-radius-md)",
|
|
@@ -4251,7 +4260,7 @@ var SButton = /* @__PURE__ */ forwardRef(function SButton2({
|
|
|
4251
4260
|
"--btn-border": disabled ? BUTTON_DISABLED_BORDER : preset.border,
|
|
4252
4261
|
"--btn-ring": BUTTON_FOCUS_RING,
|
|
4253
4262
|
"minHeight": s.height,
|
|
4254
|
-
"minWidth": iconOnly ? s.
|
|
4263
|
+
"minWidth": iconOnly ? s.iconOnlyWidth : hasLabel ? s.minWidth : void 0,
|
|
4255
4264
|
"padding": iconOnly ? 0 : `0 ${s.paddingX}`,
|
|
4256
4265
|
"borderRadius": s.radius,
|
|
4257
4266
|
"gap": s.gap,
|
|
@@ -4268,7 +4277,7 @@ var SButton = /* @__PURE__ */ forwardRef(function SButton2({
|
|
|
4268
4277
|
disabled,
|
|
4269
4278
|
"aria-label": ariaLabel,
|
|
4270
4279
|
className: cn(
|
|
4271
|
-
"inline-flex items-center justify-center whitespace-nowrap border border-solid leading-none transition-colors",
|
|
4280
|
+
"inline-flex items-center justify-center whitespace-nowrap border-[length:var(--cmp-button-border-width-default)] border-solid leading-none transition-colors",
|
|
4272
4281
|
"border-[color:var(--btn-border)] bg-[var(--btn-bg)]",
|
|
4273
4282
|
"outline-none focus-visible:shadow-[0_0_0_2px_var(--btn-ring)]",
|
|
4274
4283
|
disabled ? "cursor-not-allowed" : "cursor-pointer hover:bg-[var(--btn-bg-hover)]",
|
|
@@ -4386,34 +4395,28 @@ var TAG_COLORS = [
|
|
|
4386
4395
|
];
|
|
4387
4396
|
var TAG_SIZE_CONFIG = {
|
|
4388
4397
|
xs: {
|
|
4389
|
-
height:
|
|
4390
|
-
paddingX:
|
|
4391
|
-
gap:
|
|
4392
|
-
radius:
|
|
4393
|
-
iconSize:
|
|
4394
|
-
|
|
4395
|
-
fontWeight: 500,
|
|
4396
|
-
lineHeight: 18
|
|
4398
|
+
height: "var(--cmp-tag-xs-height)",
|
|
4399
|
+
paddingX: "var(--cmp-tag-xs-paddingX)",
|
|
4400
|
+
gap: "var(--cmp-tag-xs-gap)",
|
|
4401
|
+
radius: "var(--cmp-tag-xs-radius)",
|
|
4402
|
+
iconSize: "var(--cmp-tag-xs-icon)",
|
|
4403
|
+
typography: "typo-feedback-xs"
|
|
4397
4404
|
},
|
|
4398
4405
|
sm: {
|
|
4399
|
-
height:
|
|
4400
|
-
paddingX:
|
|
4401
|
-
gap:
|
|
4402
|
-
radius:
|
|
4403
|
-
iconSize:
|
|
4404
|
-
|
|
4405
|
-
fontWeight: 600,
|
|
4406
|
-
lineHeight: 20
|
|
4406
|
+
height: "var(--cmp-tag-sm-height)",
|
|
4407
|
+
paddingX: "var(--cmp-tag-sm-paddingX)",
|
|
4408
|
+
gap: "var(--cmp-tag-sm-gap)",
|
|
4409
|
+
radius: "var(--cmp-tag-sm-radius)",
|
|
4410
|
+
iconSize: "var(--cmp-tag-sm-icon)",
|
|
4411
|
+
typography: "typo-feedback-sm-semibold"
|
|
4407
4412
|
},
|
|
4408
4413
|
md: {
|
|
4409
|
-
height:
|
|
4410
|
-
paddingX:
|
|
4411
|
-
gap:
|
|
4412
|
-
radius:
|
|
4413
|
-
iconSize:
|
|
4414
|
-
|
|
4415
|
-
fontWeight: 700,
|
|
4416
|
-
lineHeight: 24
|
|
4414
|
+
height: "var(--cmp-tag-md-height)",
|
|
4415
|
+
paddingX: "var(--cmp-tag-md-paddingX)",
|
|
4416
|
+
gap: "var(--cmp-tag-md-gap)",
|
|
4417
|
+
radius: "var(--cmp-tag-md-radius)",
|
|
4418
|
+
iconSize: "var(--cmp-tag-md-icon)",
|
|
4419
|
+
typography: "typo-feedback-md-bold"
|
|
4417
4420
|
}
|
|
4418
4421
|
};
|
|
4419
4422
|
var STag = /* @__PURE__ */ forwardRef(function STag2({
|
|
@@ -4441,16 +4444,14 @@ var STag = /* @__PURE__ */ forwardRef(function STag2({
|
|
|
4441
4444
|
"aria-label": label || "tag",
|
|
4442
4445
|
className: cn(
|
|
4443
4446
|
"box-border inline-flex w-fit select-none items-center justify-center whitespace-nowrap",
|
|
4447
|
+
s.typography,
|
|
4444
4448
|
className
|
|
4445
4449
|
),
|
|
4446
4450
|
style: {
|
|
4447
4451
|
minHeight: s.height,
|
|
4448
|
-
padding: `0 ${s.paddingX}
|
|
4452
|
+
padding: `0 ${s.paddingX}`,
|
|
4449
4453
|
gap: s.gap,
|
|
4450
4454
|
borderRadius: shape === "pill" ? 999 : s.radius,
|
|
4451
|
-
fontSize: s.fontSize,
|
|
4452
|
-
fontWeight: s.fontWeight,
|
|
4453
|
-
lineHeight: `${s.lineHeight}px`,
|
|
4454
4455
|
background: bgColor,
|
|
4455
4456
|
color: contentColor,
|
|
4456
4457
|
...resolvedWidth != null ? { width: resolvedWidth } : {},
|
|
@@ -4470,11 +4471,11 @@ var STag = /* @__PURE__ */ forwardRef(function STag2({
|
|
|
4470
4471
|
);
|
|
4471
4472
|
});
|
|
4472
4473
|
var SIZE = {
|
|
4473
|
-
xxs: { icon:
|
|
4474
|
-
xs: { icon:
|
|
4475
|
-
sm: { icon:
|
|
4476
|
-
md: { icon:
|
|
4477
|
-
lg: { icon:
|
|
4474
|
+
xxs: { icon: "var(--cmp-ghostButton-xxs-icon)", radius: "sm" },
|
|
4475
|
+
xs: { icon: "var(--cmp-ghostButton-xs-icon)", radius: "sm" },
|
|
4476
|
+
sm: { icon: "var(--cmp-ghostButton-sm-icon)", radius: "sm" },
|
|
4477
|
+
md: { icon: "var(--cmp-ghostButton-md-icon)", radius: "md" },
|
|
4478
|
+
lg: { icon: "var(--cmp-ghostButton-lg-icon)", radius: "md" }
|
|
4478
4479
|
};
|
|
4479
4480
|
var TOOLTIP_HIDE_DELAY_MS = 100;
|
|
4480
4481
|
var SGhostButton = /* @__PURE__ */ forwardRef(function SGhostButton2({
|
|
@@ -4549,7 +4550,7 @@ var SGhostButton = /* @__PURE__ */ forwardRef(function SGhostButton2({
|
|
|
4549
4550
|
"span",
|
|
4550
4551
|
{
|
|
4551
4552
|
"aria-hidden": true,
|
|
4552
|
-
className: "pointer-events-none absolute inset-0 rounded-[inherit] opacity-0 transition-opacity duration-200 group-hover/ghost-button:opacity-
|
|
4553
|
+
className: "pointer-events-none absolute inset-0 rounded-[inherit] opacity-0 transition-opacity duration-200 group-hover/ghost-button:opacity-(--cmp-ghostButton-hover-opacity)",
|
|
4553
4554
|
style: { background: `var(--cmp-ghostButton-${intent}-hover-bg)` }
|
|
4554
4555
|
}
|
|
4555
4556
|
),
|
|
@@ -4773,7 +4774,9 @@ var STooltipImpl = /* @__PURE__ */ forwardRef(function STooltip({
|
|
|
4773
4774
|
...restContentProps
|
|
4774
4775
|
} = contentProps ?? {};
|
|
4775
4776
|
const contentClass = cn(
|
|
4776
|
-
"z-50 w-fit max-w-[var(--radix-popover-content-available-width)] rounded-
|
|
4777
|
+
"z-50 w-fit max-w-[var(--radix-popover-content-available-width)] rounded-(--cmp-tooltip-radius) px-(--cmp-tooltip-paddingX) py-(--cmp-tooltip-paddingY) shadow-normal-sm",
|
|
4778
|
+
// default 500, danger/warning/accent 700 — tooltip.<type>.typography
|
|
4779
|
+
tooltipType === "default" ? "typo-feedback-sm-medium" : "typo-feedback-sm-bold",
|
|
4777
4780
|
FLOATING_SLIDE_ANIM,
|
|
4778
4781
|
className,
|
|
4779
4782
|
contentPropsClassName
|
|
@@ -4781,7 +4784,6 @@ var STooltipImpl = /* @__PURE__ */ forwardRef(function STooltip({
|
|
|
4781
4784
|
const contentStyle = {
|
|
4782
4785
|
background: bg,
|
|
4783
4786
|
color: fg,
|
|
4784
|
-
fontWeight: tooltipType === "default" ? 500 : 700,
|
|
4785
4787
|
...style,
|
|
4786
4788
|
...contentPropsStyle
|
|
4787
4789
|
};
|
|
@@ -4822,7 +4824,7 @@ var STooltipImpl = /* @__PURE__ */ forwardRef(function STooltip({
|
|
|
4822
4824
|
onMouseLeave: isHover ? startHide : void 0,
|
|
4823
4825
|
...restContentProps,
|
|
4824
4826
|
children: [
|
|
4825
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-
|
|
4827
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-(--cmp-tooltip-gap)", children: [
|
|
4826
4828
|
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: body }),
|
|
4827
4829
|
showClose && !isNone && /* @__PURE__ */ jsx(
|
|
4828
4830
|
SGhostButton,
|
|
@@ -4877,16 +4879,20 @@ var FIELD_SIZE = {
|
|
|
4877
4879
|
height: 28,
|
|
4878
4880
|
radius: 4,
|
|
4879
4881
|
fieldGap: 12,
|
|
4880
|
-
|
|
4882
|
+
labelHeight: "var(--cmp-field-label-sm-height)",
|
|
4883
|
+
labelGap: "var(--cmp-field-label-sm-gap)",
|
|
4881
4884
|
labelTypo: "typo-field-sm-bold",
|
|
4885
|
+
labelIcon: "var(--cmp-field-label-sm-icon)",
|
|
4882
4886
|
icon: 16
|
|
4883
4887
|
},
|
|
4884
4888
|
md: {
|
|
4885
4889
|
height: 36,
|
|
4886
4890
|
radius: 6,
|
|
4887
4891
|
fieldGap: 16,
|
|
4888
|
-
|
|
4892
|
+
labelHeight: "var(--cmp-field-label-md-height)",
|
|
4893
|
+
labelGap: "var(--cmp-field-label-md-gap)",
|
|
4889
4894
|
labelTypo: "typo-field-md-bold",
|
|
4895
|
+
labelIcon: "var(--cmp-field-label-md-icon)",
|
|
4890
4896
|
icon: 16
|
|
4891
4897
|
}
|
|
4892
4898
|
};
|
|
@@ -5013,7 +5019,7 @@ var SField = /* @__PURE__ */ forwardRef(function SField2({
|
|
|
5013
5019
|
// 라벨과 컨트롤 사이가 간격 토큰보다 넓어진다. 줄 세우기용 labelWidth 도
|
|
5014
5020
|
// 뜻이 없다(아래에 컨트롤이 제 폭으로 선다).
|
|
5015
5021
|
...labelOnTop ? {} : {
|
|
5016
|
-
height: cssLen(labelHeight) ?? s.
|
|
5022
|
+
height: cssLen(labelHeight) ?? s.labelHeight,
|
|
5017
5023
|
marginRight: s.fieldGap,
|
|
5018
5024
|
width: cssLen(labelWidth)
|
|
5019
5025
|
}
|
|
@@ -5023,7 +5029,7 @@ var SField = /* @__PURE__ */ forwardRef(function SField2({
|
|
|
5023
5029
|
SIcon,
|
|
5024
5030
|
{
|
|
5025
5031
|
name: icon,
|
|
5026
|
-
size: s.
|
|
5032
|
+
size: s.labelIcon,
|
|
5027
5033
|
color: iconColor,
|
|
5028
5034
|
style: { marginRight: s.labelGap }
|
|
5029
5035
|
}
|
|
@@ -5103,7 +5109,7 @@ var SField = /* @__PURE__ */ forwardRef(function SField2({
|
|
|
5103
5109
|
effectiveAddonLabel !== "" && /* @__PURE__ */ jsxs(
|
|
5104
5110
|
"div",
|
|
5105
5111
|
{
|
|
5106
|
-
className: "flex shrink-0 items-center gap-(--cmp-field-addonLabel-gap) whitespace-nowrap border-r border-solid px-(--cmp-field-addonLabel-paddingX)
|
|
5112
|
+
className: "flex shrink-0 items-center gap-(--cmp-field-addonLabel-gap) whitespace-nowrap border-r-(length:--cmp-field-addonLabel-border-width) border-solid px-(--cmp-field-addonLabel-paddingX) typo-field-sm-medium",
|
|
5107
5113
|
style: {
|
|
5108
5114
|
// 원본 sd-field: labelWidth가 addon 폭(--sd-field-addon-width)에도 적용됨
|
|
5109
5115
|
width: cssLen(labelWidth),
|
|
@@ -5123,7 +5129,7 @@ var SField = /* @__PURE__ */ forwardRef(function SField2({
|
|
|
5123
5129
|
]
|
|
5124
5130
|
}
|
|
5125
5131
|
),
|
|
5126
|
-
showError ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) px-(--cmp-field-message-paddingX)
|
|
5132
|
+
showError ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) px-(--cmp-field-message-paddingX) typo-field-sm-default text-(--cmp-field-errorMessage-color)", children: errorMessage }) : hint !== "" ? /* @__PURE__ */ jsx("div", { className: "mt-(--cmp-field-contents-gap) px-(--cmp-field-message-paddingX) typo-field-sm-default text-(--cmp-field-hint-color)", children: hint }) : null
|
|
5127
5133
|
]
|
|
5128
5134
|
}
|
|
5129
5135
|
)
|
|
@@ -5450,8 +5456,8 @@ var CHAT_ATTACHED_FILE_CONFIG = {
|
|
|
5450
5456
|
contentGap: "gap-(--cmp-chatAttachedFile-content-gap)",
|
|
5451
5457
|
/** 클립 아이콘이 앉는 칩 — 내부 패딩·면·라운드 (높이는 아이콘+패딩이 정한다) */
|
|
5452
5458
|
tile: "p-(--cmp-chatAttachedFile-icon-wrapper-padding) rounded-(--cmp-chatAttachedFile-icon-wrapper-radius) bg-(--cmp-chatAttachedFile-icon-wrapper-bg)",
|
|
5453
|
-
/** 칩 안 클립 아이콘 크기
|
|
5454
|
-
iconSize:
|
|
5459
|
+
/** 칩 안 클립 아이콘 크기 */
|
|
5460
|
+
iconSize: "var(--cmp-chatAttachedFile-icon-size)",
|
|
5455
5461
|
/** 파일명 타이포 프리셋 */
|
|
5456
5462
|
nameTypo: "typo-body-sm-default",
|
|
5457
5463
|
/** 파일명 텍스트색 */
|
|
@@ -5529,8 +5535,8 @@ var CHAT_FILE_CONFIG = {
|
|
|
5529
5535
|
* 디자인팀에 `icon.wrapper.bg.hover` 를 요청해 나오는 대로 갈아끼운다.
|
|
5530
5536
|
*/
|
|
5531
5537
|
tile: "p-(--cmp-chatFile-icon-wrapper-padding) rounded-(--cmp-chatFile-icon-wrapper-radius) bg-(--cmp-chatFile-icon-wrapper-bg) group-hover/chat-file:bg-(--sys-color-bg-frame)",
|
|
5532
|
-
/** 칩 안 클립 아이콘 크기
|
|
5533
|
-
iconSize:
|
|
5538
|
+
/** 칩 안 클립 아이콘 크기 */
|
|
5539
|
+
iconSize: "var(--cmp-chatFile-icon-size)",
|
|
5534
5540
|
/** 파일명 타이포 프리셋 */
|
|
5535
5541
|
nameTypo: "typo-body-md-bold",
|
|
5536
5542
|
/** 파일명·부가정보 텍스트색 */
|
|
@@ -5883,7 +5889,7 @@ var SDraggableItemView = /* @__PURE__ */ forwardRef(
|
|
|
5883
5889
|
paddingYClass,
|
|
5884
5890
|
// 항목 사이 구분선은 리스트가 그린다.
|
|
5885
5891
|
bordered && cn(
|
|
5886
|
-
"rounded-(--cmp-listDraggableItem-radius-bordered) border border-(--cmp-listDraggableItem-border-default)",
|
|
5892
|
+
"rounded-(--cmp-listDraggableItem-radius-bordered) border-(length:--cmp-listDraggableItem-border-width-default) border-(--cmp-listDraggableItem-border-default)",
|
|
5887
5893
|
!disabled && !selected && !dragging && cn(
|
|
5888
5894
|
"hover:border-(--cmp-listDraggableItem-bordered-border-hover)",
|
|
5889
5895
|
"[[data-drag-active]_&]:hover:border-(--cmp-listDraggableItem-border-default)"
|
|
@@ -6755,7 +6761,7 @@ var SExpansionItem = /* @__PURE__ */ forwardRef(
|
|
|
6755
6761
|
"gap-(--cmp-listExpansionItem-title-gap)",
|
|
6756
6762
|
// 헤더 액션이 있으면 오른쪽 끝 여백은 액션 칸이 갖고, 버튼은 액션과의 간격만 남긴다
|
|
6757
6763
|
hasHeaderAction ? "pr-(--cmp-listExpansionItem-title-gap)" : "pr-(--cmp-listExpansionItem-title-paddingX)",
|
|
6758
|
-
depth === 2 ? "pl-[36px]" : depth === 3 ? "pl-[56px]" : "pl-
|
|
6764
|
+
depth === 2 ? "pl-[36px]" : depth === 3 ? "pl-[56px]" : "pl-(--cmp-listExpansionItem-title-paddingX)",
|
|
6759
6765
|
isExpanded && "text-(--cmp-listExpansionItem-title-text-expanded)"
|
|
6760
6766
|
),
|
|
6761
6767
|
children: [
|
|
@@ -6766,7 +6772,14 @@ var SExpansionItem = /* @__PURE__ */ forwardRef(
|
|
|
6766
6772
|
"flex transition-transform duration-200 ease-out motion-reduce:transition-none",
|
|
6767
6773
|
isExpanded && "rotate-180"
|
|
6768
6774
|
),
|
|
6769
|
-
children: /* @__PURE__ */ jsx(
|
|
6775
|
+
children: /* @__PURE__ */ jsx(
|
|
6776
|
+
SIcon,
|
|
6777
|
+
{
|
|
6778
|
+
name: "caretDown",
|
|
6779
|
+
size: "var(--cmp-listExpansionItem-title-icon)",
|
|
6780
|
+
color: "var(--sys-color-fg-quaternary)"
|
|
6781
|
+
}
|
|
6782
|
+
)
|
|
6770
6783
|
}
|
|
6771
6784
|
),
|
|
6772
6785
|
leadingNode,
|
|
@@ -6804,10 +6817,9 @@ var SExpansionItem = /* @__PURE__ */ forwardRef(
|
|
|
6804
6817
|
className: cn(
|
|
6805
6818
|
"group/expansion-item relative overflow-hidden bg-(--cmp-listExpansionItem-title-bg-default)",
|
|
6806
6819
|
// 항목 사이 구분선은 리스트가 그린다.
|
|
6807
|
-
// 보더
|
|
6808
|
-
|
|
6809
|
-
bordered &&
|
|
6810
|
-
bordered && isExpanded && "!border-border-accentLight",
|
|
6820
|
+
// 보더 색: 기본 → hover → 펼침 순으로 listExpansionItem.border 토큰을 쓴다.
|
|
6821
|
+
bordered && "rounded-(--cmp-listExpansionItem-bordered-radius) border border-(--cmp-listExpansionItem-border-default) hover:border-(--cmp-listExpansionItem-border-hover) [&:has(>button:hover)]:border-(--cmp-listExpansionItem-border-hover)",
|
|
6822
|
+
bordered && isExpanded && "!border-(--cmp-listExpansionItem-border-expanded)",
|
|
6811
6823
|
className
|
|
6812
6824
|
),
|
|
6813
6825
|
...rest,
|
|
@@ -6816,7 +6828,7 @@ var SExpansionItem = /* @__PURE__ */ forwardRef(
|
|
|
6816
6828
|
"span",
|
|
6817
6829
|
{
|
|
6818
6830
|
"aria-hidden": "true",
|
|
6819
|
-
className: "pointer-events-none absolute bottom-[-1px] left-0 top-0 z-[1] w-(--cmp-
|
|
6831
|
+
className: "pointer-events-none absolute bottom-[-1px] left-0 top-0 z-[1] w-(--cmp-listExpansionItem-accentStripe-width) bg-(--cmp-listExpansionItem-accentStripe-color)"
|
|
6820
6832
|
}
|
|
6821
6833
|
),
|
|
6822
6834
|
hasHeaderAction ? (
|
|
@@ -6923,9 +6935,9 @@ var SListItemImpl = /* @__PURE__ */ forwardRef(function SListItem({
|
|
|
6923
6935
|
dense ? "py-(--cmp-listItem-paddingY-dense)" : "py-(--cmp-listItem-paddingY-normal)",
|
|
6924
6936
|
"gap-(--cmp-listItem-gap)",
|
|
6925
6937
|
"pr-(--cmp-listItem-paddingX)",
|
|
6926
|
-
depth === 2 ? "pl-[36px]" : depth === 3 ? "pl-[56px]" : "pl-
|
|
6938
|
+
depth === 2 ? "pl-[36px]" : depth === 3 ? "pl-[56px]" : "pl-(--cmp-listItem-paddingX)",
|
|
6927
6939
|
bordered && cn(
|
|
6928
|
-
"overflow-hidden rounded-(--cmp-listItem-radius-bordered) border border-(--cmp-listItem-border-default)",
|
|
6940
|
+
"overflow-hidden rounded-(--cmp-listItem-radius-bordered) border-(length:--cmp-listItem-border-width-default) border-(--cmp-listItem-border-default)",
|
|
6929
6941
|
isSelected ? "border-(--cmp-listItem-bordered-border-selected)" : isInteractive && "hover:border-(--cmp-listItem-bordered-border-hover)"
|
|
6930
6942
|
),
|
|
6931
6943
|
className
|
|
@@ -7615,7 +7627,7 @@ function SCheckbox({
|
|
|
7615
7627
|
};
|
|
7616
7628
|
const boxBg = disabled ? "var(--cmp-checkbox-bg-disabled)" : inverse ? "transparent" : isChecked ? "var(--cmp-checkbox-checked-bg-default)" : "var(--cmp-checkbox-unchecked-bg-default)";
|
|
7617
7629
|
const boxBorder = disabled ? "var(--cmp-checkbox-border-disabled)" : inverse ? "var(--cmp-checkbox-checked-border-inverse)" : isChecked ? "var(--cmp-checkbox-checked-bg-default)" : "var(--cmp-checkbox-unchecked-border-default)";
|
|
7618
|
-
const iconColor = disabled ? "var(--cmp-checkbox-checked-icon-disabled)" : "var(--cmp-checkbox-checked-icon-default)";
|
|
7630
|
+
const iconColor = disabled ? "var(--cmp-checkbox-checked-icon-disabled)" : inverse ? "var(--cmp-checkbox-checked-icon-inverse)" : "var(--cmp-checkbox-checked-icon-default)";
|
|
7619
7631
|
const labelColor = disabled ? "var(--cmp-checkbox-label-disabled)" : inverse ? "var(--cmp-checkbox-label-inverse)" : "var(--cmp-checkbox-label-default)";
|
|
7620
7632
|
return /* @__PURE__ */ jsxs(
|
|
7621
7633
|
"label",
|
|
@@ -7644,7 +7656,7 @@ function SCheckbox({
|
|
|
7644
7656
|
SIcon,
|
|
7645
7657
|
{
|
|
7646
7658
|
name: state2 === "indeterminate" ? "checkboxIndeterminate" : "checkboxCheck",
|
|
7647
|
-
size:
|
|
7659
|
+
size: "var(--cmp-checkbox-icon)",
|
|
7648
7660
|
color: iconColor
|
|
7649
7661
|
}
|
|
7650
7662
|
) })
|
|
@@ -7656,11 +7668,19 @@ function SCheckbox({
|
|
|
7656
7668
|
// 찌그러진다 — 띄어쓰기에서만 끊고, 끊을 자리가 없는 긴 토큰만 흘려보낸다
|
|
7657
7669
|
// (SRadio·SSwitch 라벨과 같은 규칙). 두 사본에 함께 걸려야 하므로 바깥 grid 에 준다.
|
|
7658
7670
|
/* @__PURE__ */ jsxs("span", { className: "grid break-keep wrap-break-word", style: { color: labelColor }, children: [
|
|
7659
|
-
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "typo-body-sm-medium invisible", style: { gridArea: "1 / 1" }, children: label }),
|
|
7660
7671
|
/* @__PURE__ */ jsx(
|
|
7661
7672
|
"span",
|
|
7662
7673
|
{
|
|
7663
|
-
|
|
7674
|
+
"aria-hidden": true,
|
|
7675
|
+
className: "typo-field-sm-medium invisible",
|
|
7676
|
+
style: { gridArea: "1 / 1" },
|
|
7677
|
+
children: label
|
|
7678
|
+
}
|
|
7679
|
+
),
|
|
7680
|
+
/* @__PURE__ */ jsx(
|
|
7681
|
+
"span",
|
|
7682
|
+
{
|
|
7683
|
+
className: isChecked ? "typo-field-sm-medium" : "typo-field-sm-default",
|
|
7664
7684
|
style: { gridArea: "1 / 1" },
|
|
7665
7685
|
children: label
|
|
7666
7686
|
}
|
|
@@ -7672,18 +7692,18 @@ function SCheckbox({
|
|
|
7672
7692
|
}
|
|
7673
7693
|
var TREE_LABEL_TYPOGRAPHY = {
|
|
7674
7694
|
sm: {
|
|
7675
|
-
default: "typo-
|
|
7676
|
-
selected: "typo-
|
|
7695
|
+
default: "typo-item-sm-default",
|
|
7696
|
+
selected: "typo-item-sm-selected",
|
|
7677
7697
|
rowHeight: "h-[28px]"
|
|
7678
7698
|
},
|
|
7679
7699
|
md: {
|
|
7680
|
-
default: "typo-
|
|
7681
|
-
selected: "typo-
|
|
7700
|
+
default: "typo-item-md-default",
|
|
7701
|
+
selected: "typo-item-md-selected",
|
|
7682
7702
|
rowHeight: "h-[32px]"
|
|
7683
7703
|
}
|
|
7684
7704
|
};
|
|
7685
7705
|
var TREE_ROW_CLASS = "group/tree-item box-border flex w-full items-center gap-(--cmp-tree-item-rowGap) overflow-hidden bg-(--cmp-tree-item-bg-default) px-(--cmp-tree-item-paddingX) text-left hover:bg-(--cmp-tree-item-bg-hover)";
|
|
7686
|
-
var TREE_ROW_BORDER_CLASS = "border-b border-(--cmp-tree-item-border-default)";
|
|
7706
|
+
var TREE_ROW_BORDER_CLASS = "border-b-(length:--cmp-tree-item-border-width-default) border-(--cmp-tree-item-border-default)";
|
|
7687
7707
|
var TREE_ROW_ACTIVE_CLASS = "bg-(--cmp-tree-item-bg-hover)";
|
|
7688
7708
|
var TREE_CONTENT_CLASS = "box-border flex min-w-0 flex-1 items-center gap-(--cmp-tree-item-contentGap)";
|
|
7689
7709
|
function treeLabelClass(size, {
|
|
@@ -7693,12 +7713,49 @@ function treeLabelClass(size, {
|
|
|
7693
7713
|
}) {
|
|
7694
7714
|
const typography = TREE_LABEL_TYPOGRAPHY[size];
|
|
7695
7715
|
return cn(
|
|
7696
|
-
"block min-w-0
|
|
7716
|
+
"block min-w-0 truncate py-(--cmp-tree-item-paddingY) text-(--cmp-tree-item-text-default)",
|
|
7697
7717
|
emphasized ? typography.selected : typography.default,
|
|
7698
7718
|
disabled && "opacity-60",
|
|
7699
|
-
disabled ? "cursor-not-allowed" : selectable ? "cursor-pointer" : void 0
|
|
7719
|
+
disabled ? "cursor-not-allowed" : selectable ? "cursor-pointer" : void 0,
|
|
7720
|
+
selectable && !disabled && "group-hover/tree-label:underline"
|
|
7721
|
+
);
|
|
7722
|
+
}
|
|
7723
|
+
function TreeSelectZone({
|
|
7724
|
+
selectable,
|
|
7725
|
+
disabled = false,
|
|
7726
|
+
control,
|
|
7727
|
+
children
|
|
7728
|
+
}) {
|
|
7729
|
+
return /* @__PURE__ */ jsxs(
|
|
7730
|
+
"span",
|
|
7731
|
+
{
|
|
7732
|
+
"data-tree-label": true,
|
|
7733
|
+
className: cn(
|
|
7734
|
+
"flex min-w-0 items-center gap-(--cmp-tree-item-contentGap)",
|
|
7735
|
+
selectable && (disabled ? "cursor-not-allowed" : "group/tree-label cursor-pointer")
|
|
7736
|
+
),
|
|
7737
|
+
children: [
|
|
7738
|
+
control,
|
|
7739
|
+
/* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-sd-8", children: [
|
|
7740
|
+
children,
|
|
7741
|
+
selectable && !disabled && /* @__PURE__ */ jsx(
|
|
7742
|
+
SIcon,
|
|
7743
|
+
{
|
|
7744
|
+
name: "chevronRight",
|
|
7745
|
+
size: 12,
|
|
7746
|
+
color: "var(--sys-color-fg-quaternary)",
|
|
7747
|
+
className: "hidden shrink-0 group-hover/tree-label:inline-flex"
|
|
7748
|
+
}
|
|
7749
|
+
)
|
|
7750
|
+
] })
|
|
7751
|
+
]
|
|
7752
|
+
}
|
|
7700
7753
|
);
|
|
7701
7754
|
}
|
|
7755
|
+
function isRowSelectClick(event) {
|
|
7756
|
+
const zone = event.target.closest("[data-tree-label]");
|
|
7757
|
+
return zone != null && event.currentTarget.contains(zone);
|
|
7758
|
+
}
|
|
7702
7759
|
function isRowControlClick(event) {
|
|
7703
7760
|
const control = event.target.closest("[data-tree-control]");
|
|
7704
7761
|
return control != null && event.currentTarget.contains(control);
|
|
@@ -7932,7 +7989,7 @@ var STreeItemImpl = /* @__PURE__ */ forwardRef(function STreeItem({
|
|
|
7932
7989
|
};
|
|
7933
7990
|
const handleRowClick = (event) => {
|
|
7934
7991
|
if (isRowControlClick(event)) return;
|
|
7935
|
-
if (selectable && event
|
|
7992
|
+
if (selectable && isRowSelectClick(event)) {
|
|
7936
7993
|
handleSelect(event);
|
|
7937
7994
|
return;
|
|
7938
7995
|
}
|
|
@@ -7973,35 +8030,41 @@ var STreeItemImpl = /* @__PURE__ */ forwardRef(function STreeItem({
|
|
|
7973
8030
|
/* @__PURE__ */ jsxs("div", { className: TREE_CONTENT_CLASS, children: [
|
|
7974
8031
|
hasChildren ? /* @__PURE__ */ jsx(TreeCaret, { expanded, onToggle: (event) => onToggle?.(node, event) }) : /* @__PURE__ */ jsx(TreeCaretSpacer, {}),
|
|
7975
8032
|
leadingNode,
|
|
7976
|
-
|
|
7977
|
-
|
|
8033
|
+
/* @__PURE__ */ jsx(
|
|
8034
|
+
TreeSelectZone,
|
|
7978
8035
|
{
|
|
7979
|
-
|
|
7980
|
-
|
|
7981
|
-
|
|
8036
|
+
selectable,
|
|
8037
|
+
disabled: node.disabled,
|
|
8038
|
+
control: selectable && /* @__PURE__ */ jsx(
|
|
8039
|
+
"span",
|
|
8040
|
+
{
|
|
8041
|
+
"data-tree-control": true,
|
|
8042
|
+
className: "flex shrink-0",
|
|
8043
|
+
"aria-hidden": node.disabled ? "true" : void 0,
|
|
8044
|
+
children: /* @__PURE__ */ jsx(
|
|
8045
|
+
SCheckbox,
|
|
8046
|
+
{
|
|
8047
|
+
value: checkboxValue,
|
|
8048
|
+
disabled: node.disabled,
|
|
8049
|
+
onValueChange: () => handleSelect()
|
|
8050
|
+
}
|
|
8051
|
+
)
|
|
8052
|
+
}
|
|
8053
|
+
),
|
|
7982
8054
|
children: /* @__PURE__ */ jsx(
|
|
7983
|
-
|
|
8055
|
+
"span",
|
|
7984
8056
|
{
|
|
7985
|
-
|
|
7986
|
-
|
|
7987
|
-
|
|
8057
|
+
className: treeLabelClass(size, {
|
|
8058
|
+
emphasized: selected || indeterminate,
|
|
8059
|
+
disabled: Boolean(node.disabled),
|
|
8060
|
+
selectable
|
|
8061
|
+
}),
|
|
8062
|
+
children: node.label
|
|
7988
8063
|
}
|
|
7989
8064
|
)
|
|
7990
8065
|
}
|
|
7991
8066
|
),
|
|
7992
|
-
/* @__PURE__ */ jsx(
|
|
7993
|
-
"span",
|
|
7994
|
-
{
|
|
7995
|
-
"data-tree-label": true,
|
|
7996
|
-
className: treeLabelClass(size, {
|
|
7997
|
-
emphasized: selected || indeterminate,
|
|
7998
|
-
disabled: Boolean(node.disabled),
|
|
7999
|
-
selectable
|
|
8000
|
-
}),
|
|
8001
|
-
children: node.label
|
|
8002
|
-
}
|
|
8003
|
-
),
|
|
8004
|
-
trailingNode
|
|
8067
|
+
trailingNode != null && /* @__PURE__ */ jsx("span", { className: "ml-auto flex shrink-0", children: trailingNode })
|
|
8005
8068
|
] })
|
|
8006
8069
|
]
|
|
8007
8070
|
}
|
|
@@ -8279,7 +8342,7 @@ var SSectionHeaderCardHeaderImpl = /* @__PURE__ */ forwardRef(
|
|
|
8279
8342
|
"span",
|
|
8280
8343
|
{
|
|
8281
8344
|
className: cn(
|
|
8282
|
-
"min-w-0 truncate text-(--
|
|
8345
|
+
"min-w-0 truncate text-(--cmp-sectionHeaderCard-title-color)",
|
|
8283
8346
|
titleSizeClass[titleSize]
|
|
8284
8347
|
),
|
|
8285
8348
|
children: title
|
|
@@ -8289,7 +8352,7 @@ var SSectionHeaderCardHeaderImpl = /* @__PURE__ */ forwardRef(
|
|
|
8289
8352
|
SIcon,
|
|
8290
8353
|
{
|
|
8291
8354
|
name: "asterisk",
|
|
8292
|
-
size:
|
|
8355
|
+
size: "var(--cmp-sectionHeaderCard-required-icon)",
|
|
8293
8356
|
color: "var(--sys-color-fg-accent)",
|
|
8294
8357
|
className: "shrink-0"
|
|
8295
8358
|
}
|
|
@@ -8306,7 +8369,7 @@ var SSectionHeaderCardHeaderImpl = /* @__PURE__ */ forwardRef(
|
|
|
8306
8369
|
}
|
|
8307
8370
|
)
|
|
8308
8371
|
] }),
|
|
8309
|
-
subtitle && /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate
|
|
8372
|
+
subtitle && /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate typo-body-sm-default text-(--cmp-sectionHeaderCard-subtitle-color)", children: subtitle }),
|
|
8310
8373
|
/* @__PURE__ */ jsx("div", { className: "ml-auto flex min-h-sd-6 min-w-0 flex-1 items-center justify-end", children: slot })
|
|
8311
8374
|
]
|
|
8312
8375
|
}
|
|
@@ -8342,7 +8405,7 @@ var SSectionHeaderCardRootImpl = /* @__PURE__ */ forwardRef(
|
|
|
8342
8405
|
{
|
|
8343
8406
|
ref,
|
|
8344
8407
|
className: cn(
|
|
8345
|
-
"box-border flex w-full flex-col items-stretch overflow-hidden rounded-
|
|
8408
|
+
"box-border flex w-full flex-col items-stretch overflow-hidden rounded-(--cmp-sectionHeaderCard-radius) border border-(--cmp-sectionHeaderCard-border) bg-(--cmp-sectionHeaderCard-body-bg)",
|
|
8346
8409
|
className
|
|
8347
8410
|
),
|
|
8348
8411
|
...rest,
|
|
@@ -8894,18 +8957,25 @@ var SCallout = /* @__PURE__ */ forwardRef(function SCallout2({ type = "default",
|
|
|
8894
8957
|
hasDangerTitle && /* @__PURE__ */ jsxs(
|
|
8895
8958
|
"div",
|
|
8896
8959
|
{
|
|
8897
|
-
className: "flex shrink-0 flex-col items-center justify-center gap-[var(--cmp-callout-danger-title-gap)] px-[var(--cmp-callout-danger-title-paddingX)] py-[8px]
|
|
8960
|
+
className: "typo-heading-md flex shrink-0 flex-col items-center justify-center gap-[var(--cmp-callout-danger-title-gap)] px-[var(--cmp-callout-danger-title-paddingX)] py-[8px]",
|
|
8898
8961
|
style: {
|
|
8899
8962
|
background: "var(--cmp-callout-danger-title-bg)",
|
|
8900
8963
|
color: "var(--cmp-callout-danger-title-color)"
|
|
8901
8964
|
},
|
|
8902
8965
|
children: [
|
|
8903
|
-
/* @__PURE__ */ jsx(
|
|
8966
|
+
/* @__PURE__ */ jsx(
|
|
8967
|
+
SIcon,
|
|
8968
|
+
{
|
|
8969
|
+
name: "warningFill",
|
|
8970
|
+
size: "var(--cmp-callout-danger-title-icon)",
|
|
8971
|
+
color: "var(--cmp-callout-danger-title-color)"
|
|
8972
|
+
}
|
|
8973
|
+
),
|
|
8904
8974
|
/* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: DANGER_TITLE_LABEL })
|
|
8905
8975
|
]
|
|
8906
8976
|
}
|
|
8907
8977
|
),
|
|
8908
|
-
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 flex-col justify-center gap-[var(--cmp-callout-body-gap)] px-[var(--cmp-callout-body-paddingX)] py-[var(--cmp-callout-body-paddingY)]
|
|
8978
|
+
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 flex-col justify-center gap-[var(--cmp-callout-body-gap)] px-[var(--cmp-callout-body-paddingX)] py-[var(--cmp-callout-body-paddingY)] typo-feedback-sm-regular", children: children ?? /* @__PURE__ */ jsx("ul", { className: "m-0 flex list-none flex-col justify-center gap-[var(--cmp-callout-body-gap)] p-0", children: renderItems(message) }) })
|
|
8909
8979
|
]
|
|
8910
8980
|
}
|
|
8911
8981
|
);
|
|
@@ -8976,7 +9046,7 @@ var SContextAlert = /* @__PURE__ */ forwardRef(function SContextAlert2({ intent
|
|
|
8976
9046
|
className: "shrink-0"
|
|
8977
9047
|
}
|
|
8978
9048
|
),
|
|
8979
|
-
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 flex-col
|
|
9049
|
+
/* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 flex-col typo-feedback-sm-regular text-[color:var(--cmp-contextAlert-content)]", children: messages.map((m, i) => (
|
|
8980
9050
|
// 메시지는 HTML 문자열을 허용하되, sanitizeInlineHtml 로 살균 후 innerHTML 렌더 (XSS 방어)
|
|
8981
9051
|
/* @__PURE__ */ jsx(
|
|
8982
9052
|
"p",
|
|
@@ -9221,20 +9291,20 @@ var loading = {
|
|
|
9221
9291
|
};
|
|
9222
9292
|
var SIZE_CONFIG = {
|
|
9223
9293
|
sm: {
|
|
9224
|
-
gap:
|
|
9225
|
-
iconSize:
|
|
9294
|
+
gap: "var(--cmp-textLink-sm-gap)",
|
|
9295
|
+
iconSize: "var(--cmp-textLink-sm-icon)",
|
|
9226
9296
|
typo: "typo-control-xs-medium",
|
|
9227
9297
|
underlineTypo: "typo-control-xs-underline"
|
|
9228
9298
|
},
|
|
9229
9299
|
md: {
|
|
9230
|
-
gap:
|
|
9231
|
-
iconSize:
|
|
9300
|
+
gap: "var(--cmp-textLink-md-gap)",
|
|
9301
|
+
iconSize: "var(--cmp-textLink-md-icon)",
|
|
9232
9302
|
typo: "typo-control-sm-default",
|
|
9233
9303
|
underlineTypo: "typo-control-sm-underline"
|
|
9234
9304
|
},
|
|
9235
9305
|
lg: {
|
|
9236
|
-
gap:
|
|
9237
|
-
iconSize:
|
|
9306
|
+
gap: "var(--cmp-textLink-lg-gap)",
|
|
9307
|
+
iconSize: "var(--cmp-textLink-lg-icon)",
|
|
9238
9308
|
typo: "typo-control-md-default",
|
|
9239
9309
|
underlineTypo: "typo-control-md-underline"
|
|
9240
9310
|
}
|
|
@@ -9296,15 +9366,23 @@ var STextLink = /* @__PURE__ */ forwardRef(function STextLink2({
|
|
|
9296
9366
|
children: label || children
|
|
9297
9367
|
}
|
|
9298
9368
|
),
|
|
9299
|
-
rightArrow !== "none" &&
|
|
9300
|
-
|
|
9369
|
+
rightArrow !== "none" && // 화살표 칸은 좌측 아이콘과 같은 크기다(textLink.<size>.icon 이 leadingIcon·trailingArrow 공유)
|
|
9370
|
+
/* @__PURE__ */ jsx(
|
|
9371
|
+
"span",
|
|
9301
9372
|
{
|
|
9302
|
-
|
|
9303
|
-
|
|
9304
|
-
|
|
9305
|
-
|
|
9373
|
+
className: "inline-flex items-center justify-center",
|
|
9374
|
+
style: { width: s.iconSize, height: s.iconSize },
|
|
9375
|
+
children: /* @__PURE__ */ jsx(
|
|
9376
|
+
SIcon,
|
|
9377
|
+
{
|
|
9378
|
+
name: rightArrow === "chevron" ? "chevronRight" : "caretRight",
|
|
9379
|
+
size: 12,
|
|
9380
|
+
color: disabled ? "var(--cmp-textLink-icon-disabled)" : "var(--color-grey-65)",
|
|
9381
|
+
rotate: rightArrowRotate
|
|
9382
|
+
}
|
|
9383
|
+
)
|
|
9306
9384
|
}
|
|
9307
|
-
)
|
|
9385
|
+
)
|
|
9308
9386
|
]
|
|
9309
9387
|
}
|
|
9310
9388
|
);
|
|
@@ -9377,24 +9455,38 @@ function DropdownMenuContent({
|
|
|
9377
9455
|
) });
|
|
9378
9456
|
}
|
|
9379
9457
|
var SIZE2 = {
|
|
9380
|
-
xs: {
|
|
9458
|
+
xs: {
|
|
9459
|
+
height: "var(--cmp-button-xs-height)",
|
|
9460
|
+
paddingX: "var(--cmp-button-xs-paddingX)",
|
|
9461
|
+
gap: "var(--cmp-button-dropdown-xs-gap)",
|
|
9462
|
+
arrow: "var(--cmp-button-dropdown-xs-arrow)",
|
|
9463
|
+
toggleWidth: "var(--cmp-button-iconOnly-xs-width)",
|
|
9464
|
+
fontSize: 12,
|
|
9465
|
+
minWidth: 64,
|
|
9466
|
+
splitMinWidth: 72,
|
|
9467
|
+
radius: "var(--cmp-button-radius-sm)"
|
|
9468
|
+
},
|
|
9381
9469
|
sm: {
|
|
9382
|
-
height:
|
|
9383
|
-
paddingX:
|
|
9384
|
-
gap:
|
|
9385
|
-
arrow:
|
|
9470
|
+
height: "var(--cmp-button-sm-height)",
|
|
9471
|
+
paddingX: "var(--cmp-button-sm-paddingX)",
|
|
9472
|
+
gap: "var(--cmp-button-dropdown-sm-gap)",
|
|
9473
|
+
arrow: "var(--cmp-button-dropdown-sm-arrow)",
|
|
9474
|
+
toggleWidth: "var(--cmp-button-iconOnly-sm-width)",
|
|
9386
9475
|
fontSize: 12,
|
|
9387
9476
|
minWidth: 72,
|
|
9388
|
-
splitMinWidth: 88
|
|
9477
|
+
splitMinWidth: 88,
|
|
9478
|
+
radius: "var(--cmp-button-radius-sm)"
|
|
9389
9479
|
},
|
|
9390
9480
|
md: {
|
|
9391
|
-
height:
|
|
9392
|
-
paddingX:
|
|
9393
|
-
gap:
|
|
9394
|
-
arrow:
|
|
9481
|
+
height: "var(--cmp-button-md-height)",
|
|
9482
|
+
paddingX: "var(--cmp-button-md-paddingX)",
|
|
9483
|
+
gap: "var(--cmp-button-dropdown-md-gap)",
|
|
9484
|
+
arrow: "var(--cmp-button-dropdown-md-arrow)",
|
|
9485
|
+
toggleWidth: "var(--cmp-button-iconOnly-md-width)",
|
|
9395
9486
|
fontSize: 16,
|
|
9396
9487
|
minWidth: 100,
|
|
9397
|
-
splitMinWidth: 106
|
|
9488
|
+
splitMinWidth: 106,
|
|
9489
|
+
radius: "var(--cmp-button-radius-md)"
|
|
9398
9490
|
}
|
|
9399
9491
|
};
|
|
9400
9492
|
function splitDivider(color, outline) {
|
|
@@ -9476,7 +9568,7 @@ var SDropdownButtonImpl = /* @__PURE__ */ forwardRef(
|
|
|
9476
9568
|
);
|
|
9477
9569
|
const splitIcon = /* @__PURE__ */ jsx(SIcon, { name: "etc", size: s.arrow, color: "var(--dd-icon)" });
|
|
9478
9570
|
const triggerBase = cn(
|
|
9479
|
-
"box-border inline-flex items-center whitespace-nowrap border border-solid outline-none transition-colors",
|
|
9571
|
+
"box-border inline-flex items-center whitespace-nowrap border-[length:var(--cmp-button-border-width-default)] border-solid outline-none transition-colors",
|
|
9480
9572
|
"border-[color:var(--dd-border)] bg-[var(--dd-bg)] text-[color:var(--dd-text)]",
|
|
9481
9573
|
disabled ? "cursor-not-allowed" : "cursor-pointer hover:bg-[var(--dd-bg-hover)]"
|
|
9482
9574
|
);
|
|
@@ -9515,10 +9607,12 @@ var SDropdownButtonImpl = /* @__PURE__ */ forwardRef(
|
|
|
9515
9607
|
type: "button",
|
|
9516
9608
|
disabled,
|
|
9517
9609
|
onClick: onLabelClick,
|
|
9518
|
-
className: cn(triggerBase, "flex-1 justify-center
|
|
9610
|
+
className: cn(triggerBase, "flex-1 justify-center border-r-0"),
|
|
9519
9611
|
style: {
|
|
9612
|
+
borderTopLeftRadius: s.radius,
|
|
9613
|
+
borderBottomLeftRadius: s.radius,
|
|
9520
9614
|
minHeight: s.height,
|
|
9521
|
-
padding: `0 ${s.paddingX}
|
|
9615
|
+
padding: `0 ${s.paddingX}`,
|
|
9522
9616
|
fontSize: s.fontSize,
|
|
9523
9617
|
...colorVars
|
|
9524
9618
|
},
|
|
@@ -9532,10 +9626,15 @@ var SDropdownButtonImpl = /* @__PURE__ */ forwardRef(
|
|
|
9532
9626
|
type: "button",
|
|
9533
9627
|
disabled,
|
|
9534
9628
|
"aria-label": "\uBA54\uB274 \uC5F4\uAE30",
|
|
9535
|
-
className: cn(
|
|
9629
|
+
className: cn(
|
|
9630
|
+
triggerBase,
|
|
9631
|
+
"justify-center border-l-[length:var(--cmp-button-border-width-default)]"
|
|
9632
|
+
),
|
|
9536
9633
|
style: {
|
|
9634
|
+
borderTopRightRadius: s.radius,
|
|
9635
|
+
borderBottomRightRadius: s.radius,
|
|
9537
9636
|
minHeight: s.height,
|
|
9538
|
-
minWidth: s.
|
|
9637
|
+
minWidth: s.toggleWidth,
|
|
9539
9638
|
borderLeftColor: disabled ? "var(--cmp-button-border-disabled)" : splitDivider(color, outline),
|
|
9540
9639
|
...colorVars
|
|
9541
9640
|
},
|
|
@@ -9549,11 +9648,12 @@ var SDropdownButtonImpl = /* @__PURE__ */ forwardRef(
|
|
|
9549
9648
|
{
|
|
9550
9649
|
type: "button",
|
|
9551
9650
|
disabled,
|
|
9552
|
-
className: cn(triggerBase, "justify-between rounded-
|
|
9651
|
+
className: cn(triggerBase, "justify-between rounded-(--dd-radius)", className),
|
|
9553
9652
|
style: {
|
|
9653
|
+
...{ "--dd-radius": s.radius },
|
|
9554
9654
|
minWidth: s.minWidth,
|
|
9555
9655
|
minHeight: s.height,
|
|
9556
|
-
padding: `0 ${s.paddingX}
|
|
9656
|
+
padding: `0 ${s.paddingX}`,
|
|
9557
9657
|
gap: s.gap,
|
|
9558
9658
|
fontSize: s.fontSize,
|
|
9559
9659
|
...colorVars,
|
|
@@ -9663,13 +9763,13 @@ function SSwitch({
|
|
|
9663
9763
|
style
|
|
9664
9764
|
}) {
|
|
9665
9765
|
const right = rightLabel;
|
|
9666
|
-
const renderLabel = (text) => text ? /* @__PURE__ */ jsx("span", { className: "typo-
|
|
9766
|
+
const renderLabel = (text) => text ? /* @__PURE__ */ jsx("span", { className: "typo-field-sm-medium break-keep wrap-break-word", children: text }) : null;
|
|
9667
9767
|
const trackBg = disabled ? value ? "var(--cmp-switch-bg-disabled-on)" : "var(--cmp-switch-bg-disabled-off)" : value ? "var(--cmp-switch-bg-on)" : "var(--cmp-switch-bg-off)";
|
|
9668
9768
|
return /* @__PURE__ */ jsxs(
|
|
9669
9769
|
"label",
|
|
9670
9770
|
{
|
|
9671
9771
|
className: cn(
|
|
9672
|
-
"inline-flex items-center gap-
|
|
9772
|
+
"inline-flex items-center gap-(--cmp-switch-gap)",
|
|
9673
9773
|
disabled ? "cursor-not-allowed" : "cursor-pointer",
|
|
9674
9774
|
className
|
|
9675
9775
|
),
|
|
@@ -9683,14 +9783,14 @@ function SSwitch({
|
|
|
9683
9783
|
disabled,
|
|
9684
9784
|
onCheckedChange: (v) => onValueChange?.(v),
|
|
9685
9785
|
className: cn(
|
|
9686
|
-
"relative h-
|
|
9786
|
+
"relative h-(--cmp-switch-height) w-(--cmp-switch-width) flex-shrink-0 rounded-(--cmp-switch-radius) p-(--cmp-switch-paddingXY) outline-none transition-colors duration-200",
|
|
9687
9787
|
disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
9688
9788
|
),
|
|
9689
9789
|
style: { background: trackBg },
|
|
9690
9790
|
children: /* @__PURE__ */ jsx(
|
|
9691
9791
|
RSwitch.Thumb,
|
|
9692
9792
|
{
|
|
9693
|
-
className: "block h-
|
|
9793
|
+
className: "block h-(--cmp-switch-knob-size) w-(--cmp-switch-knob-size) rounded-full shadow-[0_2px_4px_rgba(0,0,0,0.16)] transition-transform duration-200 data-[state=checked]:translate-x-[calc(var(--cmp-switch-width)_-_var(--cmp-switch-knob-size)_-_var(--cmp-switch-paddingXY)_*_2)]",
|
|
9694
9794
|
style: {
|
|
9695
9795
|
background: disabled ? "var(--cmp-switch-knob-disabled)" : "var(--cmp-switch-knob-default)"
|
|
9696
9796
|
}
|
|
@@ -10418,8 +10518,8 @@ var SSystemActionButton = /* @__PURE__ */ forwardRef(
|
|
|
10418
10518
|
}
|
|
10419
10519
|
);
|
|
10420
10520
|
var SIZE_CLASSES = {
|
|
10421
|
-
xs: "h-
|
|
10422
|
-
sm: "h-
|
|
10521
|
+
xs: "h-(--cmp-toggle-xs-height) px-(--cmp-toggle-xs-paddingX) typo-control-xs-default",
|
|
10522
|
+
sm: "h-(--cmp-toggle-sm-height) px-(--cmp-toggle-sm-paddingX) typo-control-sm-default"
|
|
10423
10523
|
};
|
|
10424
10524
|
function SToggle({
|
|
10425
10525
|
value = false,
|
|
@@ -10441,7 +10541,7 @@ function SToggle({
|
|
|
10441
10541
|
"aria-pressed": value,
|
|
10442
10542
|
onClick: () => !disabled && onValueChange?.(!value),
|
|
10443
10543
|
className: cn(
|
|
10444
|
-
"box-border inline-flex items-center justify-center whitespace-nowrap rounded-
|
|
10544
|
+
"box-border inline-flex items-center justify-center whitespace-nowrap rounded-(--cmp-toggle-radius) border-(length:--cmp-toggle-border-width) border-solid transition-colors",
|
|
10445
10545
|
SIZE_CLASSES[size],
|
|
10446
10546
|
disabled ? "cursor-not-allowed" : "cursor-pointer",
|
|
10447
10547
|
// 미선택(off) hover 시 파란 채움 + 흰 글자
|
|
@@ -10527,10 +10627,17 @@ function SPopover({
|
|
|
10527
10627
|
menuTitle && /* @__PURE__ */ jsxs(
|
|
10528
10628
|
"div",
|
|
10529
10629
|
{
|
|
10530
|
-
className: "flex items-center gap-[var(--cmp-popover-title-gap)]
|
|
10630
|
+
className: "typo-feedback-md-bold flex items-center gap-[var(--cmp-popover-title-gap)]",
|
|
10531
10631
|
style: { color: titleColor },
|
|
10532
10632
|
children: [
|
|
10533
|
-
titleIcon && /* @__PURE__ */ jsx(
|
|
10633
|
+
titleIcon && /* @__PURE__ */ jsx(
|
|
10634
|
+
SIcon,
|
|
10635
|
+
{
|
|
10636
|
+
name: titleIcon,
|
|
10637
|
+
size: "var(--cmp-popover-title-leadingIcon)",
|
|
10638
|
+
color: titleColor
|
|
10639
|
+
}
|
|
10640
|
+
),
|
|
10534
10641
|
/* @__PURE__ */ jsx("span", { className: "min-w-0", children: menuTitle })
|
|
10535
10642
|
]
|
|
10536
10643
|
}
|
|
@@ -10667,14 +10774,14 @@ function SGuide({
|
|
|
10667
10774
|
}
|
|
10668
10775
|
setOpen((o) => !o);
|
|
10669
10776
|
},
|
|
10670
|
-
className: "inline-flex h-[var(--cmp-guide-button-height)] cursor-pointer items-center gap-[var(--cmp-guide-button-gap)] whitespace-nowrap rounded-[var(--cmp-guide-button-radius)] border-[length:var(--cmp-guide-button-border-width)] border-solid px-[var(--cmp-guide-button-paddingX)]
|
|
10777
|
+
className: "inline-flex h-[var(--cmp-guide-button-height)] cursor-pointer items-center gap-[var(--cmp-guide-button-gap)] whitespace-nowrap rounded-[var(--cmp-guide-button-radius)] border-[length:var(--cmp-guide-button-border-width)] border-solid px-[var(--cmp-guide-button-paddingX)] typo-control-xs-medium transition-colors",
|
|
10671
10778
|
style: {
|
|
10672
10779
|
borderColor: active ? activeBg : "var(--cmp-guide-button-border-default)",
|
|
10673
10780
|
background: active ? activeBg : "var(--cmp-guide-button-bg-default)",
|
|
10674
10781
|
color: active ? "var(--cmp-guide-button-text-active)" : "var(--cmp-guide-button-text-default)"
|
|
10675
10782
|
},
|
|
10676
10783
|
children: [
|
|
10677
|
-
/* @__PURE__ */ jsx(SIcon, { name: iconName, size:
|
|
10784
|
+
/* @__PURE__ */ jsx(SIcon, { name: iconName, size: "var(--cmp-guide-button-icon-size)", color: iconColor }),
|
|
10678
10785
|
label || defaultLabel
|
|
10679
10786
|
]
|
|
10680
10787
|
}
|
|
@@ -10724,11 +10831,11 @@ function SGuide({
|
|
|
10724
10831
|
color: isNotion ? "var(--sys-color-fg-primary)" : "var(--cmp-guide-contents-icon)"
|
|
10725
10832
|
}
|
|
10726
10833
|
),
|
|
10727
|
-
/* @__PURE__ */ jsx("h3", { className: "m-0 break-keep text-[
|
|
10834
|
+
/* @__PURE__ */ jsx("h3", { className: "typo-heading-md m-0 break-keep text-[color:var(--cmp-guide-contents-typography-color)]", children: popupTitle || defaultLabel })
|
|
10728
10835
|
]
|
|
10729
10836
|
}
|
|
10730
10837
|
),
|
|
10731
|
-
/* @__PURE__ */ jsx("ul", { className: "m-0 mt-[var(--cmp-guide-contents-gap)] flex w-full list-none flex-col gap-[var(--cmp-guide-contents-body-gap)] p-0
|
|
10838
|
+
/* @__PURE__ */ jsx("ul", { className: "m-0 mt-[var(--cmp-guide-contents-gap)] flex w-full list-none flex-col gap-[var(--cmp-guide-contents-body-gap)] p-0 typo-field-sm-default text-[color:var(--cmp-guide-contents-typography-color)]", children: messages.map((m, i) => /* @__PURE__ */ jsx(
|
|
10732
10839
|
"li",
|
|
10733
10840
|
{
|
|
10734
10841
|
className: cn(
|
|
@@ -10999,15 +11106,22 @@ function SConfirmModal({
|
|
|
10999
11106
|
showClose: true,
|
|
11000
11107
|
onClose: () => settle(onClose),
|
|
11001
11108
|
className: "w-fit min-w-[min(520px,calc(100dvw-48px))]",
|
|
11002
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-auto flex-col items-center gap-
|
|
11003
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full min-h-0 flex-col items-center gap-
|
|
11004
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-
|
|
11005
|
-
iconName && /* @__PURE__ */ jsx(
|
|
11109
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-auto flex-col items-center gap-(--cmp-modal-confirm-gap) px-(--cmp-modal-confirm-paddingX) py-(--cmp-modal-confirm-paddingY)", children: [
|
|
11110
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full min-h-0 flex-col items-center gap-(--cmp-modal-confirm-body-gap) overflow-y-auto", children: [
|
|
11111
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-(--cmp-modal-confirm-title-gap)", children: [
|
|
11112
|
+
iconName && /* @__PURE__ */ jsx(
|
|
11113
|
+
SIcon,
|
|
11114
|
+
{
|
|
11115
|
+
name: iconName,
|
|
11116
|
+
size: "var(--cmp-modal-confirm-title-icon)",
|
|
11117
|
+
color: TYPE_ICON_COLOR[type]
|
|
11118
|
+
}
|
|
11119
|
+
),
|
|
11006
11120
|
/* @__PURE__ */ jsx(
|
|
11007
11121
|
"h2",
|
|
11008
11122
|
{
|
|
11009
11123
|
className: cn(
|
|
11010
|
-
"
|
|
11124
|
+
"typo-heading-lg text-center text-[color:var(--cmp-modal-confirm-title-color)]",
|
|
11011
11125
|
titleClassName
|
|
11012
11126
|
),
|
|
11013
11127
|
children: modalTitle
|
|
@@ -11096,7 +11210,7 @@ function SOverlayHeader({
|
|
|
11096
11210
|
{
|
|
11097
11211
|
className: cn(
|
|
11098
11212
|
"m-0 overflow-hidden text-ellipsis whitespace-nowrap",
|
|
11099
|
-
"
|
|
11213
|
+
"typo-heading-md",
|
|
11100
11214
|
titleClassName
|
|
11101
11215
|
),
|
|
11102
11216
|
style: { color: "var(--cmp-overlay-header-title-color)" },
|
|
@@ -11191,8 +11305,8 @@ function SLoadingModal({
|
|
|
11191
11305
|
showButton = false,
|
|
11192
11306
|
buttonLabel,
|
|
11193
11307
|
onButtonClick,
|
|
11194
|
-
width =
|
|
11195
|
-
height =
|
|
11308
|
+
width = "var(--cmp-modal-loading-width)",
|
|
11309
|
+
height = "var(--cmp-modal-loading-height)"
|
|
11196
11310
|
}) {
|
|
11197
11311
|
const resolvedMessage = message ?? DEFAULT_MESSAGE[state2];
|
|
11198
11312
|
const lines = Array.isArray(resolvedMessage) ? resolvedMessage : resolvedMessage ? [resolvedMessage] : [];
|
|
@@ -11208,8 +11322,15 @@ function SLoadingModal({
|
|
|
11208
11322
|
ariaTitle: lines[0] || "\uB85C\uB529 \uC911",
|
|
11209
11323
|
width,
|
|
11210
11324
|
height,
|
|
11211
|
-
children: /* @__PURE__ */ jsx("div", { className: "flex min-h-0 flex-auto flex-col overflow-y-auto px-[32px]", children: /* @__PURE__ */ jsxs("div", { className: "m-auto flex flex-col items-center gap-
|
|
11212
|
-
state2 === "loading" ? progress !== void 0 ? /* @__PURE__ */ jsx(SCircleProgress, { value: progress }) : /* @__PURE__ */ jsx(SCircleProgress, { indeterminate: true }) : /* @__PURE__ */ jsx(
|
|
11325
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex min-h-0 flex-auto flex-col overflow-y-auto px-[32px]", children: /* @__PURE__ */ jsxs("div", { className: "m-auto flex flex-col items-center gap-(--cmp-modal-loading-gap)", children: [
|
|
11326
|
+
state2 === "loading" ? progress !== void 0 ? /* @__PURE__ */ jsx(SCircleProgress, { value: progress }) : /* @__PURE__ */ jsx(SCircleProgress, { indeterminate: true }) : /* @__PURE__ */ jsx(
|
|
11327
|
+
SIcon,
|
|
11328
|
+
{
|
|
11329
|
+
name: "warningOutline",
|
|
11330
|
+
size: "var(--cmp-modal-loading-content)",
|
|
11331
|
+
color: "var(--cmp-modal-confirm-negative-icon)"
|
|
11332
|
+
}
|
|
11333
|
+
),
|
|
11213
11334
|
lines.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[2px]", children: lines.map((m, i) => /* @__PURE__ */ jsx(
|
|
11214
11335
|
"p",
|
|
11215
11336
|
{
|
|
@@ -11997,13 +12118,8 @@ var LAUNCHER_LIST_BOX_LAYOUT = {
|
|
|
11997
12118
|
radius: gnb("launcher-listBox-radius"),
|
|
11998
12119
|
/** 패널 상하좌우 여백 */
|
|
11999
12120
|
padding: gnb("launcher-listBox-paddingAll"),
|
|
12000
|
-
/**
|
|
12001
|
-
|
|
12002
|
-
* 토큰(`component.gnb.launcher.listBox.shadow` = `{shadow.floating}`)은 값이 배열이라
|
|
12003
|
-
* `--cmp-*` 로 나오지 않는다 — 생성기가 스칼라만 내보내기 때문이다. 그래서 그 별칭이
|
|
12004
|
-
* 가리키는 스케일 토큰을 직접 쓴다(같은 값이다).
|
|
12005
|
-
*/
|
|
12006
|
-
shadow: "var(--shadow-floating)",
|
|
12121
|
+
/** 패널 그림자 */
|
|
12122
|
+
shadow: gnb("launcher-listBox-shadow"),
|
|
12007
12123
|
/** 줄 왼쪽 여백 */
|
|
12008
12124
|
itemPaddingLeft: gnb("launcher-button-paddingLeft"),
|
|
12009
12125
|
/** 줄 오른쪽 여백 — 왼쪽보다 좁다(오른쪽 끝은 hover 아이콘 자리다) */
|
|
@@ -12374,20 +12490,19 @@ var GNB_MENU = {
|
|
|
12374
12490
|
depth3PaddingLeft: box2("item-depth3-paddingLeft"),
|
|
12375
12491
|
depth1Icon: box2("item-depth1-icon"),
|
|
12376
12492
|
// box 는 depth1 전용 타이포 토큰이 없어 depth1 도 selected 타이포를 따른다
|
|
12493
|
+
depth1Typo: "typo-navigation-lg-semibold",
|
|
12494
|
+
// token: gnb.box.item.typography.selected
|
|
12495
|
+
itemTypo: "typo-navigation-lg-medium",
|
|
12496
|
+
// token: gnb.box.item.typography.default
|
|
12497
|
+
itemTypoSelected: "typo-navigation-lg-semibold",
|
|
12498
|
+
// token: gnb.box.item.typography.selected
|
|
12377
12499
|
depth1FontSize: 14,
|
|
12378
|
-
// token: gnb.box.item.typography.selected.fontSize
|
|
12379
12500
|
depth1LineHeight: 24,
|
|
12380
|
-
// token: gnb.box.item.typography.selected.lineHeight
|
|
12381
12501
|
depth1FontWeight: 600,
|
|
12382
|
-
// token: gnb.box.item.typography.selected.fontWeight
|
|
12383
12502
|
itemFontSize: 14,
|
|
12384
|
-
// token: gnb.box.item.typography.default.fontSize
|
|
12385
12503
|
itemLineHeight: 24,
|
|
12386
|
-
// token: gnb.box.item.typography.default.lineHeight
|
|
12387
12504
|
itemFontWeight: 500,
|
|
12388
|
-
// token: gnb.box.item.typography.default.fontWeight
|
|
12389
12505
|
itemFontWeightSelected: 600
|
|
12390
|
-
// token: gnb.box.item.typography.selected.fontWeight
|
|
12391
12506
|
},
|
|
12392
12507
|
belt: {
|
|
12393
12508
|
bodyPaddingY: gnb2("body-padding"),
|
|
@@ -12404,20 +12519,19 @@ var GNB_MENU = {
|
|
|
12404
12519
|
depth3PaddingLeft: belt("item-depth3-paddingLeft"),
|
|
12405
12520
|
depth1Icon: belt("item-depth1-icon"),
|
|
12406
12521
|
// belt 전용 depth1 아이콘 토큰(16)
|
|
12522
|
+
depth1Typo: "typo-navigation-md-bold",
|
|
12523
|
+
// token: gnb.belt.item.depth1.typography
|
|
12524
|
+
itemTypo: "typo-navigation-sm-medium",
|
|
12525
|
+
// token: gnb.belt.item.typography.default
|
|
12526
|
+
itemTypoSelected: "typo-navigation-sm-bold",
|
|
12527
|
+
// token: gnb.belt.item.typography.selected
|
|
12407
12528
|
depth1FontSize: 13,
|
|
12408
|
-
// token: gnb.belt.item.depth1.typography.fontSize
|
|
12409
12529
|
depth1LineHeight: 22,
|
|
12410
|
-
// token: gnb.belt.item.depth1.typography.lineHeight
|
|
12411
12530
|
depth1FontWeight: 700,
|
|
12412
|
-
// token: gnb.belt.item.depth1.typography.fontWeight
|
|
12413
12531
|
itemFontSize: 12,
|
|
12414
|
-
// token: gnb.belt.item.typography.default.fontSize
|
|
12415
12532
|
itemLineHeight: 20,
|
|
12416
|
-
// token: gnb.belt.item.typography.default.lineHeight
|
|
12417
12533
|
itemFontWeight: 500,
|
|
12418
|
-
// token: gnb.belt.item.typography.default.fontWeight
|
|
12419
12534
|
itemFontWeightSelected: 700
|
|
12420
|
-
// token: gnb.belt.item.typography.selected.fontWeight
|
|
12421
12535
|
}
|
|
12422
12536
|
};
|
|
12423
12537
|
var GNB_COLORS = {
|
|
@@ -12462,15 +12576,16 @@ var GNB_RAIL = {
|
|
|
12462
12576
|
itemPaddingBottom: gnb2("rail-item-paddingBottom"),
|
|
12463
12577
|
itemRadius: gnb2("rail-item-radius"),
|
|
12464
12578
|
itemIcon: gnb2("rail-item-icon"),
|
|
12465
|
-
// 타이포
|
|
12579
|
+
// 타이포 — 토큰이 가리키는 typo-* 클래스
|
|
12580
|
+
itemTypo: "typo-navigation-xs-medium",
|
|
12581
|
+
// token: gnb.rail.item.typography.default
|
|
12582
|
+
itemTypoSelected: "typo-navigation-xs-bold",
|
|
12583
|
+
// token: gnb.rail.item.typography.selected
|
|
12584
|
+
// 아래 숫자는 공개 export 라 남겨 둔 같은 값이다 — 렌더에는 쓰지 않는다
|
|
12466
12585
|
itemFontSize: 11,
|
|
12467
|
-
// token: gnb.rail.item.typography.default.fontSize
|
|
12468
12586
|
itemLineHeight: 18,
|
|
12469
|
-
// token: gnb.rail.item.typography.default.lineHeight
|
|
12470
12587
|
itemFontWeight: 500,
|
|
12471
|
-
// token: gnb.rail.item.typography.default.fontWeight
|
|
12472
12588
|
itemFontWeightSelected: 700
|
|
12473
|
-
// token: gnb.rail.item.typography.selected.fontWeight
|
|
12474
12589
|
};
|
|
12475
12590
|
var GNB_RAIL_WIDTH = 68;
|
|
12476
12591
|
var GNB_FOLD_MS = 200;
|
|
@@ -12704,7 +12819,10 @@ var SGnb = /* @__PURE__ */ forwardRef(function SGnb2({
|
|
|
12704
12819
|
type: "button",
|
|
12705
12820
|
disabled: item4.disabled,
|
|
12706
12821
|
"aria-current": isActive ? "true" : void 0,
|
|
12707
|
-
className:
|
|
12822
|
+
className: cn(
|
|
12823
|
+
"box-border flex select-none flex-col items-center border-none bg-transparent transition-colors duration-150",
|
|
12824
|
+
isActive ? GNB_RAIL.itemTypoSelected : GNB_RAIL.itemTypo
|
|
12825
|
+
),
|
|
12708
12826
|
style: {
|
|
12709
12827
|
width: GNB_RAIL.itemWidth,
|
|
12710
12828
|
paddingTop: GNB_RAIL.itemPaddingTop,
|
|
@@ -12714,9 +12832,6 @@ var SGnb = /* @__PURE__ */ forwardRef(function SGnb2({
|
|
|
12714
12832
|
color: isActive ? C.itemColorActive : C.railFgDefault,
|
|
12715
12833
|
// <button> 의 UA 폰트를 끊고 앱 폰트를 잇는다 (메뉴 아이템과 같은 이유)
|
|
12716
12834
|
fontFamily: "inherit",
|
|
12717
|
-
fontSize: GNB_RAIL.itemFontSize,
|
|
12718
|
-
lineHeight: `${GNB_RAIL.itemLineHeight}px`,
|
|
12719
|
-
fontWeight: isActive ? GNB_RAIL.itemFontWeightSelected : GNB_RAIL.itemFontWeight,
|
|
12720
12835
|
opacity: item4.disabled ? 0.4 : 1,
|
|
12721
12836
|
cursor: item4.disabled ? "not-allowed" : "pointer"
|
|
12722
12837
|
},
|
|
@@ -12755,9 +12870,6 @@ var SGnb = /* @__PURE__ */ forwardRef(function SGnb2({
|
|
|
12755
12870
|
color: isSelected ? C.itemColorActive : isHovered ? C.itemColorHover : C.itemColorDefault,
|
|
12756
12871
|
// <button> 의 UA 폰트(Arial 13.3px)를 끊고 앱 폰트를 잇는다
|
|
12757
12872
|
fontFamily: "inherit",
|
|
12758
|
-
fontSize: depth === 1 ? M.depth1FontSize : M.itemFontSize,
|
|
12759
|
-
lineHeight: `${depth === 1 ? M.depth1LineHeight : M.itemLineHeight}px`,
|
|
12760
|
-
fontWeight: depth === 1 ? M.depth1FontWeight : isSelected ? M.itemFontWeightSelected : M.itemFontWeight,
|
|
12761
12873
|
opacity: item4.disabled ? 0.4 : 1,
|
|
12762
12874
|
cursor: item4.disabled ? "not-allowed" : "pointer"
|
|
12763
12875
|
};
|
|
@@ -12772,7 +12884,10 @@ var SGnb = /* @__PURE__ */ forwardRef(function SGnb2({
|
|
|
12772
12884
|
disabled: item4.disabled,
|
|
12773
12885
|
"aria-expanded": hasChildren ? isExpanded : void 0,
|
|
12774
12886
|
"aria-current": isSelected ? "page" : void 0,
|
|
12775
|
-
className:
|
|
12887
|
+
className: cn(
|
|
12888
|
+
"box-border flex select-none items-center border-none bg-transparent text-left transition-colors duration-150",
|
|
12889
|
+
depth === 1 ? M.depth1Typo : isSelected ? M.itemTypoSelected : M.itemTypo
|
|
12890
|
+
),
|
|
12776
12891
|
style: itemStyle,
|
|
12777
12892
|
onClick: () => handleItemClick(item4),
|
|
12778
12893
|
...rowHoverProps(item4),
|
|
@@ -13958,8 +14073,10 @@ var SPageHeader = /* @__PURE__ */ withDisplayName(
|
|
|
13958
14073
|
);
|
|
13959
14074
|
|
|
13960
14075
|
// src/components/STabs/tabs.config.ts
|
|
13961
|
-
var TAB_MAIN_SIZE = {
|
|
13962
|
-
|
|
14076
|
+
var TAB_MAIN_SIZE = {
|
|
14077
|
+
height: "var(--cmp-tab-main-height)",
|
|
14078
|
+
paddingX: "var(--cmp-tab-main-paddingX)"
|
|
14079
|
+
};
|
|
13963
14080
|
var TAB_MAIN_COLORS = {
|
|
13964
14081
|
selected: {
|
|
13965
14082
|
bg: "var(--cmp-tab-main-selected-bg)",
|
|
@@ -14004,7 +14121,7 @@ function STabs({
|
|
|
14004
14121
|
// main(가로): baseline(하단 divider)이 100% 너비로 채워지도록 w-full
|
|
14005
14122
|
sub ? "inline-flex w-fit" : "flex w-full",
|
|
14006
14123
|
isVertical ? "flex-col items-stretch" : "flex-row",
|
|
14007
|
-
sub ? isVertical ? "gap-
|
|
14124
|
+
sub ? isVertical ? "gap-(--cmp-tab-sub-gap-vertical)" : "gap-(--cmp-tab-sub-gap-horizontal)" : "gap-(--cmp-tab-main-container-gap)",
|
|
14008
14125
|
className
|
|
14009
14126
|
),
|
|
14010
14127
|
style: containerStyle,
|
|
@@ -14014,30 +14131,26 @@ function STabs({
|
|
|
14014
14131
|
let tabStyle;
|
|
14015
14132
|
if (sub) {
|
|
14016
14133
|
tabStyle = {
|
|
14017
|
-
height:
|
|
14018
|
-
paddingBottom:
|
|
14019
|
-
fontSize: TAB_TYPOGRAPHY.fontSize,
|
|
14020
|
-
lineHeight: `${TAB_TYPOGRAPHY.lineHeight}px`,
|
|
14134
|
+
height: "var(--cmp-tab-sub-item-height)",
|
|
14135
|
+
paddingBottom: "var(--cmp-tab-sub-content-gap)",
|
|
14021
14136
|
color: selected ? TAB_SUB_COLORS.selected.text : TAB_SUB_COLORS.default.text,
|
|
14022
|
-
borderBottom: `
|
|
14137
|
+
borderBottom: `var(--cmp-tab-sub-border-width) solid ${selected ? TAB_SUB_COLORS.selected.line : "transparent"}`
|
|
14023
14138
|
};
|
|
14024
14139
|
} else {
|
|
14025
14140
|
const border = selected ? TAB_MAIN_COLORS.selected.border : TAB_MAIN_COLORS.default.border;
|
|
14026
14141
|
const selectedBg = TAB_MAIN_COLORS.selected.bg;
|
|
14027
14142
|
tabStyle = {
|
|
14028
14143
|
height: TAB_MAIN_SIZE.height,
|
|
14029
|
-
padding: `0 ${TAB_MAIN_SIZE.paddingX}
|
|
14030
|
-
fontSize: TAB_TYPOGRAPHY.fontSize,
|
|
14031
|
-
lineHeight: `${TAB_TYPOGRAPHY.lineHeight}px`,
|
|
14144
|
+
padding: `0 ${TAB_MAIN_SIZE.paddingX}`,
|
|
14032
14145
|
background: selected ? TAB_MAIN_COLORS.selected.bg : TAB_MAIN_COLORS.default.bg,
|
|
14033
14146
|
color: selected ? TAB_MAIN_COLORS.selected.text : TAB_MAIN_COLORS.default.text,
|
|
14034
|
-
border: `
|
|
14147
|
+
border: `var(--cmp-tab-main-border-width) solid ${border}`,
|
|
14035
14148
|
// 폴더형: 미선택 탭은 baseline 위에, 선택 탭은 baseline(파란선)을 1px 덮어 연결된 것처럼 보이게
|
|
14036
|
-
borderTopLeftRadius:
|
|
14037
|
-
borderTopRightRadius:
|
|
14149
|
+
borderTopLeftRadius: "var(--cmp-tab-main-radius)",
|
|
14150
|
+
borderTopRightRadius: "var(--cmp-tab-main-radius)",
|
|
14038
14151
|
borderBottomLeftRadius: 0,
|
|
14039
14152
|
borderBottomRightRadius: 0,
|
|
14040
|
-
borderBottom: selected ? `
|
|
14153
|
+
borderBottom: selected ? `var(--cmp-tab-main-border-width) solid ${selectedBg}` : "none",
|
|
14041
14154
|
marginBottom: selected ? -1 : 0
|
|
14042
14155
|
};
|
|
14043
14156
|
}
|
|
@@ -14074,12 +14187,17 @@ function STabs({
|
|
|
14074
14187
|
moveTo(tabs.length - 1);
|
|
14075
14188
|
}
|
|
14076
14189
|
},
|
|
14077
|
-
className:
|
|
14190
|
+
className: cn(
|
|
14191
|
+
"relative box-border inline-flex cursor-pointer select-none items-center justify-center whitespace-nowrap outline-none transition-[color,background-color] duration-200",
|
|
14192
|
+
sub ? "gap-[8px]" : "gap-(--cmp-tab-main-gap)",
|
|
14193
|
+
// 타이포 (token: tab.<main|sub>.<selected|default>.typography)
|
|
14194
|
+
selected ? "typo-navigation-sm-bold" : "typo-navigation-sm-default"
|
|
14195
|
+
),
|
|
14078
14196
|
style: tabStyle,
|
|
14079
14197
|
children: [
|
|
14080
14198
|
/* @__PURE__ */ jsxs("span", { className: "grid", children: [
|
|
14081
14199
|
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "invisible font-bold", style: { gridArea: "1 / 1" }, children: tab.label }),
|
|
14082
|
-
/* @__PURE__ */ jsx("span", { style: { gridArea: "1 / 1"
|
|
14200
|
+
/* @__PURE__ */ jsx("span", { style: { gridArea: "1 / 1" }, children: tab.label })
|
|
14083
14201
|
] }),
|
|
14084
14202
|
tab.badge !== void 0 && tab.badge !== null && tab.badge !== "" && /* @__PURE__ */ jsx(
|
|
14085
14203
|
STag,
|
|
@@ -14130,7 +14248,7 @@ function SPagination({
|
|
|
14130
14248
|
"aria-label": aria,
|
|
14131
14249
|
onClick,
|
|
14132
14250
|
className: "flex h-[var(--cmp-pagination-height)] w-[var(--cmp-pagination-height)] cursor-pointer items-center justify-center rounded-[var(--cmp-pagination-radius)] border-none bg-transparent hover:bg-[var(--cmp-pagination-item-bg-hover)]",
|
|
14133
|
-
children: /* @__PURE__ */ jsx(SIcon, { name: icon, size:
|
|
14251
|
+
children: /* @__PURE__ */ jsx(SIcon, { name: icon, size: "var(--cmp-pagination-icon)", color: "var(--color-grey-65)" })
|
|
14134
14252
|
}
|
|
14135
14253
|
);
|
|
14136
14254
|
const prevButtons = simple ? currentPage > 1 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -14154,8 +14272,8 @@ function SPagination({
|
|
|
14154
14272
|
style,
|
|
14155
14273
|
children: [
|
|
14156
14274
|
/* @__PURE__ */ jsx("div", { className: "flex min-w-[calc(var(--cmp-pagination-height)*2+var(--cmp-pagination-move-gap))] items-center justify-end gap-[var(--cmp-pagination-move-gap)]", children: prevButtons }),
|
|
14157
|
-
simple ? /* @__PURE__ */ jsxs("div", { className: "flex h-[var(--cmp-pagination-height)] items-center gap-[var(--cmp-pagination-simple-gap)] px-[var(--cmp-pagination-paddingX)]
|
|
14158
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
14275
|
+
simple ? /* @__PURE__ */ jsxs("div", { className: "flex h-[var(--cmp-pagination-height)] items-center gap-[var(--cmp-pagination-simple-gap)] px-[var(--cmp-pagination-paddingX)] typo-control-xs-medium text-[color:var(--cmp-pagination-item-content-default)]", children: [
|
|
14276
|
+
/* @__PURE__ */ jsx("span", { className: "typo-control-xs-bold text-[color:var(--cmp-pagination-item-content-selected)]", children: currentPage }),
|
|
14159
14277
|
/* @__PURE__ */ jsx("span", { children: "/" }),
|
|
14160
14278
|
/* @__PURE__ */ jsx("span", { children: lastPage })
|
|
14161
14279
|
] }) : /* @__PURE__ */ jsx("div", { className: "flex items-center gap-[var(--cmp-pagination-move-gap)]", children: pageNumbers.map((n) => {
|
|
@@ -14167,8 +14285,8 @@ function SPagination({
|
|
|
14167
14285
|
"aria-current": selected ? "page" : void 0,
|
|
14168
14286
|
onClick: () => go(n),
|
|
14169
14287
|
className: cn(
|
|
14170
|
-
"box-border flex h-[var(--cmp-pagination-height)] cursor-pointer items-center justify-center rounded-[var(--cmp-pagination-radius)] border-none px-[var(--cmp-pagination-paddingX)]
|
|
14171
|
-
selected ? "bg-[var(--cmp-pagination-item-bg-selected)]
|
|
14288
|
+
"box-border flex h-[var(--cmp-pagination-height)] cursor-pointer items-center justify-center rounded-[var(--cmp-pagination-radius)] border-none px-[var(--cmp-pagination-paddingX)]",
|
|
14289
|
+
selected ? "bg-[var(--cmp-pagination-item-bg-selected)] typo-control-xs-bold text-[color:var(--cmp-pagination-item-content-selected)]" : "bg-transparent typo-control-xs-medium text-[color:var(--cmp-pagination-item-content-default)] hover:bg-[var(--cmp-pagination-item-bg-hover)] hover:text-[color:var(--cmp-pagination-item-content-hover)]"
|
|
14172
14290
|
),
|
|
14173
14291
|
style: { width: itemWidth },
|
|
14174
14292
|
children: n
|
|
@@ -14191,15 +14309,18 @@ var STEPPER_SIZE_CONFIG = {
|
|
|
14191
14309
|
sequenceSize: V2("sm-sequence-size"),
|
|
14192
14310
|
fontSize: "12px",
|
|
14193
14311
|
lineHeight: "20px",
|
|
14194
|
-
|
|
14195
|
-
|
|
14312
|
+
typoDefault: "typo-navigation-sm-medium",
|
|
14313
|
+
typoActive: "typo-navigation-sm-bold",
|
|
14314
|
+
fontWeightActive: 700
|
|
14196
14315
|
},
|
|
14197
14316
|
lg: {
|
|
14198
14317
|
sequenceSize: V2("lg-sequence-size"),
|
|
14199
14318
|
fontSize: "14px",
|
|
14200
14319
|
lineHeight: "24px",
|
|
14201
|
-
|
|
14202
|
-
|
|
14320
|
+
typoDefault: "typo-navigation-lg-medium",
|
|
14321
|
+
// 토큰(navigation.lg.semibold)은 600 인데 지금 700 으로 그린다 — 값이 달라 토큰을 쓰지 않는다
|
|
14322
|
+
typoActive: null,
|
|
14323
|
+
fontWeightActive: 700
|
|
14203
14324
|
}
|
|
14204
14325
|
};
|
|
14205
14326
|
var STEPPER_LAYOUT = {
|
|
@@ -14225,7 +14346,9 @@ var STEPPER_COLORS = {
|
|
|
14225
14346
|
sequenceText: {
|
|
14226
14347
|
active: V2("sequence-text-active"),
|
|
14227
14348
|
default: V2("sequence-text-default"),
|
|
14228
|
-
|
|
14349
|
+
// 완료 시퀀스의 체크 아이콘 색은 전용 토큰이 없다(stepper.sequence.text 에 completed 가 없음).
|
|
14350
|
+
// 진행 중 시퀀스 숫자와 같은 accent 색을 시맨틱 토큰으로 직접 쓴다.
|
|
14351
|
+
completed: "var(--sys-color-fg-accent)"
|
|
14229
14352
|
},
|
|
14230
14353
|
text: {
|
|
14231
14354
|
active: V2("text-active"),
|
|
@@ -14240,14 +14363,15 @@ var STEPPER_HORIZONTAL_COMPLETED_COLORS = {
|
|
|
14240
14363
|
text: STEPPER_COLORS.text.completed
|
|
14241
14364
|
};
|
|
14242
14365
|
var STEPPER_VERTICAL_LAYOUT = {
|
|
14243
|
-
|
|
14366
|
+
/** 세로형 폭. 대응 토큰이 없어 디자인 값을 그대로 쓴다(stepper.vertical 에 width 가 없음). */
|
|
14367
|
+
width: "240px",
|
|
14244
14368
|
itemGap: VF("vertical-item-gap", "12px"),
|
|
14245
14369
|
itemPaddingX: VF("vertical-item-paddingX", "16px"),
|
|
14246
14370
|
itemPaddingY: VF("vertical-item-paddingY", "8px"),
|
|
14247
14371
|
titlePaddingTop: VF("vertical-title-paddingTop", "12px"),
|
|
14248
14372
|
titlePaddingBottom: VF("vertical-title-paddingBottom", "4px"),
|
|
14249
|
-
|
|
14250
|
-
|
|
14373
|
+
/** 구간 제목 타이포 — stepper.vertical.title.typography (= heading.xxs) */
|
|
14374
|
+
titleTypo: "typo-heading-xxs",
|
|
14251
14375
|
accentStripeWidth: VF("vertical-item-accentStripe-width", "2px"),
|
|
14252
14376
|
accentStripeColor: VF("vertical-item-accentStripe-color", "#64ABFF")
|
|
14253
14377
|
};
|
|
@@ -14257,6 +14381,7 @@ var STEPPER_VERTICAL_COLORS = {
|
|
|
14257
14381
|
hover: VF("vertical-item-bg-hover", "#F6F6F6"),
|
|
14258
14382
|
selected: VF("vertical-item-bg-selected", "#EFF6FF")
|
|
14259
14383
|
},
|
|
14384
|
+
titleBg: V2("vertical-title-bg"),
|
|
14260
14385
|
titleText: VF("vertical-title-text", "#004290"),
|
|
14261
14386
|
textDefault: STEPPER_COLORS.text.default,
|
|
14262
14387
|
textCompleted: STEPPER_COLORS.text.completed,
|
|
@@ -14264,9 +14389,10 @@ var STEPPER_VERTICAL_COLORS = {
|
|
|
14264
14389
|
sequenceBgActive: STEPPER_COLORS.sequenceBg.active,
|
|
14265
14390
|
sequenceTextActive: STEPPER_COLORS.sequenceText.active,
|
|
14266
14391
|
sequenceTextDefault: STEPPER_COLORS.sequenceText.default,
|
|
14267
|
-
|
|
14268
|
-
|
|
14269
|
-
|
|
14392
|
+
// 세로형 전용 completed 토큰은 없다 — 가로형과 같은 sequence.*.completed 를 쓴다.
|
|
14393
|
+
sequenceBorderCompleted: STEPPER_COLORS.sequenceBorder.completed,
|
|
14394
|
+
sequenceBgCompleted: STEPPER_COLORS.sequenceBg.completed,
|
|
14395
|
+
sequenceIconCompleted: STEPPER_COLORS.sequenceText.completed,
|
|
14270
14396
|
errorBadge: "#FB4444"
|
|
14271
14397
|
};
|
|
14272
14398
|
var ERROR_TOOLTIP_MESSAGE = "\uD655\uC778\uC774 \uD544\uC694\uD55C \uD56D\uBAA9\uC774 \uC788\uC2B5\uB2C8\uB2E4.";
|
|
@@ -14429,10 +14555,12 @@ var SStepper = /* @__PURE__ */ forwardRef(function SStepper2({
|
|
|
14429
14555
|
if (isHorizontalCompleted) return STEPPER_HORIZONTAL_COMPLETED_COLORS.sequenceIcon;
|
|
14430
14556
|
return STEPPER_COLORS.sequenceText[state2];
|
|
14431
14557
|
})();
|
|
14558
|
+
const emphasized = state2 === "active" || isVertical && hovered;
|
|
14559
|
+
const itemTypo = emphasized ? config.typoActive : config.typoDefault;
|
|
14432
14560
|
const itemStyle = {
|
|
14433
14561
|
gap: STEPPER_LAYOUT.itemGap,
|
|
14434
14562
|
color: itemColor,
|
|
14435
|
-
fontWeight:
|
|
14563
|
+
fontWeight: itemTypo ? void 0 : config.fontWeightActive
|
|
14436
14564
|
};
|
|
14437
14565
|
const sequenceStyle = {
|
|
14438
14566
|
width: config.sequenceSize,
|
|
@@ -14449,7 +14577,7 @@ var SStepper = /* @__PURE__ */ forwardRef(function SStepper2({
|
|
|
14449
14577
|
{
|
|
14450
14578
|
role: roleListItem ? "listitem" : void 0,
|
|
14451
14579
|
"aria-current": roleListItem && state2 === "active" ? "step" : void 0,
|
|
14452
|
-
className: "inline-flex items-center whitespace-nowrap",
|
|
14580
|
+
className: cn("inline-flex items-center whitespace-nowrap", itemTypo),
|
|
14453
14581
|
style: itemStyle,
|
|
14454
14582
|
children: [
|
|
14455
14583
|
/* @__PURE__ */ jsx(
|
|
@@ -14495,7 +14623,7 @@ var SStepper = /* @__PURE__ */ forwardRef(function SStepper2({
|
|
|
14495
14623
|
className: cn("relative inline-flex flex-col items-start", className),
|
|
14496
14624
|
style: {
|
|
14497
14625
|
width: STEPPER_VERTICAL_LAYOUT.width,
|
|
14498
|
-
// 폭은
|
|
14626
|
+
// 폭은 디자인 값(전용 토큰 없음)이되 부모보다 넓어지지 않는다 — 부모가 세로 스크롤바만큼 좁아지면 따라 줄어
|
|
14499
14627
|
// 가로 넘침(가로 스크롤바)이 생기지 않는다
|
|
14500
14628
|
maxWidth: "100%",
|
|
14501
14629
|
fontSize: config.fontSize,
|
|
@@ -14527,18 +14655,18 @@ var SStepper = /* @__PURE__ */ forwardRef(function SStepper2({
|
|
|
14527
14655
|
group.group && /* @__PURE__ */ jsx(
|
|
14528
14656
|
"div",
|
|
14529
14657
|
{
|
|
14530
|
-
className:
|
|
14658
|
+
className: cn(
|
|
14659
|
+
"flex w-full items-center overflow-hidden",
|
|
14660
|
+
STEPPER_VERTICAL_LAYOUT.titleTypo
|
|
14661
|
+
),
|
|
14531
14662
|
style: {
|
|
14532
14663
|
gap: STEPPER_VERTICAL_LAYOUT.itemGap,
|
|
14533
14664
|
paddingLeft: STEPPER_VERTICAL_LAYOUT.itemPaddingX,
|
|
14534
14665
|
paddingRight: STEPPER_VERTICAL_LAYOUT.itemPaddingX,
|
|
14535
14666
|
paddingTop: STEPPER_VERTICAL_LAYOUT.titlePaddingTop,
|
|
14536
14667
|
paddingBottom: STEPPER_VERTICAL_LAYOUT.titlePaddingBottom,
|
|
14537
|
-
background: STEPPER_VERTICAL_COLORS.
|
|
14538
|
-
color: STEPPER_VERTICAL_COLORS.titleText
|
|
14539
|
-
fontSize: STEPPER_VERTICAL_LAYOUT.titleFontSize,
|
|
14540
|
-
lineHeight: STEPPER_VERTICAL_LAYOUT.titleLineHeight,
|
|
14541
|
-
fontWeight: 700
|
|
14668
|
+
background: STEPPER_VERTICAL_COLORS.titleBg,
|
|
14669
|
+
color: STEPPER_VERTICAL_COLORS.titleText
|
|
14542
14670
|
},
|
|
14543
14671
|
children: /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: group.group })
|
|
14544
14672
|
}
|
|
@@ -15117,8 +15245,8 @@ var CalendarDayCard = /* @__PURE__ */ forwardRef(function CalendarDayCard2({
|
|
|
15117
15245
|
{
|
|
15118
15246
|
className: cn(
|
|
15119
15247
|
"inline-flex size-(--cmp-calendarBoard-daySequence-size) items-center justify-center rounded-(--cmp-calendarBoard-daySequence-radius)",
|
|
15120
|
-
isToday ? "typo-
|
|
15121
|
-
"typo-
|
|
15248
|
+
isToday ? "typo-item-md-selected bg-(--cmp-calendarBoard-daySequence-bg-today) text-(--cmp-calendarBoard-daySequence-text-today)" : cn(
|
|
15249
|
+
"typo-item-md-default",
|
|
15122
15250
|
inCurrentMonth ? "text-(--cmp-calendarBoard-daySequence-text-default)" : "text-(--cmp-calendarBoard-daySequence-text-otherMonth)"
|
|
15123
15251
|
),
|
|
15124
15252
|
// 오늘이 아니면서 선택된 날은 테두리 원으로 표시한다 (오늘은 이미 채운 원이라 겹치지 않는다).
|
|
@@ -15676,14 +15804,12 @@ function clampToAvailableHeight(value, availableHeight) {
|
|
|
15676
15804
|
}
|
|
15677
15805
|
var FONT = {
|
|
15678
15806
|
sm: {
|
|
15679
|
-
|
|
15680
|
-
lineHeight: 20,
|
|
15807
|
+
typo: "typo-field-sm-default",
|
|
15681
15808
|
paddingX: "var(--cmp-textinput-sm-paddingX)",
|
|
15682
15809
|
gap: "var(--cmp-textinput-sm-gap)"
|
|
15683
15810
|
},
|
|
15684
15811
|
md: {
|
|
15685
|
-
|
|
15686
|
-
lineHeight: 24,
|
|
15812
|
+
typo: "typo-field-md-default",
|
|
15687
15813
|
paddingX: "var(--cmp-textinput-md-paddingX)",
|
|
15688
15814
|
gap: "var(--cmp-textinput-md-gap)"
|
|
15689
15815
|
}
|
|
@@ -15722,12 +15848,10 @@ var SSearchInput = /* @__PURE__ */ forwardRef(function SSearchInput2({
|
|
|
15722
15848
|
children: /* @__PURE__ */ jsxs(
|
|
15723
15849
|
"div",
|
|
15724
15850
|
{
|
|
15725
|
-
className: "flex h-full w-full items-center",
|
|
15851
|
+
className: cn("flex h-full w-full items-center", f.typo),
|
|
15726
15852
|
style: {
|
|
15727
15853
|
gap: f.gap,
|
|
15728
|
-
padding: `0 ${f.paddingX}
|
|
15729
|
-
fontSize: f.fontSize,
|
|
15730
|
-
lineHeight: `${f.lineHeight}px`
|
|
15854
|
+
padding: `0 ${f.paddingX}`
|
|
15731
15855
|
},
|
|
15732
15856
|
children: [
|
|
15733
15857
|
/* @__PURE__ */ jsx(
|
|
@@ -15788,6 +15912,18 @@ var SSearchInput = /* @__PURE__ */ forwardRef(function SSearchInput2({
|
|
|
15788
15912
|
);
|
|
15789
15913
|
});
|
|
15790
15914
|
|
|
15915
|
+
// src/lib/list-box-item.ts
|
|
15916
|
+
var LIST_BOX_ITEM_PADDING_LEFT = {
|
|
15917
|
+
1: "var(--cmp-listBoxItem-paddingLeft-depth1)",
|
|
15918
|
+
2: "var(--cmp-listBoxItem-paddingLeft-depth2)",
|
|
15919
|
+
3: "var(--cmp-listBoxItem-paddingLeft-depth3)"
|
|
15920
|
+
};
|
|
15921
|
+
var LIST_BOX_ITEM_PADDING_Y_RIGHT = {
|
|
15922
|
+
paddingTop: "var(--cmp-listBoxItem-paddingY)",
|
|
15923
|
+
paddingBottom: "var(--cmp-listBoxItem-paddingY)",
|
|
15924
|
+
paddingRight: "var(--cmp-listBoxItem-paddingRight)"
|
|
15925
|
+
};
|
|
15926
|
+
|
|
15791
15927
|
// src/components/SSelect/select.config.ts
|
|
15792
15928
|
function flattenOptions(options, depth = 1, inheritDisabled = true) {
|
|
15793
15929
|
const out = [];
|
|
@@ -16061,6 +16197,14 @@ var SSelectImpl = /* @__PURE__ */ forwardRef(function SSelect({
|
|
|
16061
16197
|
}, [insideModal, pendingOpen, portalContainer]);
|
|
16062
16198
|
const requestOpenRef = useRef(requestOpen);
|
|
16063
16199
|
requestOpenRef.current = requestOpen;
|
|
16200
|
+
useEffect(() => {
|
|
16201
|
+
if (!label || effectiveDisabled) return;
|
|
16202
|
+
const labelEl = document.getElementById(fieldLabelId(triggerId));
|
|
16203
|
+
if (!labelEl) return;
|
|
16204
|
+
const toggle = () => requestOpenRef.current(!open);
|
|
16205
|
+
labelEl.addEventListener("click", toggle);
|
|
16206
|
+
return () => labelEl.removeEventListener("click", toggle);
|
|
16207
|
+
}, [label, effectiveDisabled, triggerId, open]);
|
|
16064
16208
|
useImperativeHandle(
|
|
16065
16209
|
ref,
|
|
16066
16210
|
() => ({
|
|
@@ -16342,6 +16486,7 @@ var SSelectImpl = /* @__PURE__ */ forwardRef(function SSelect({
|
|
|
16342
16486
|
const handleClear = () => {
|
|
16343
16487
|
emit3([]);
|
|
16344
16488
|
if (rules && rules.length > 0) setRuleError(runRules(multi ? [] : "", rules));
|
|
16489
|
+
triggerRef.current?.focus();
|
|
16345
16490
|
};
|
|
16346
16491
|
const handleRemoveChip = (targets) => {
|
|
16347
16492
|
const remove = new Set(targets);
|
|
@@ -16537,6 +16682,15 @@ var SSelectImpl = /* @__PURE__ */ forwardRef(function SSelect({
|
|
|
16537
16682
|
commitOpen(false);
|
|
16538
16683
|
}
|
|
16539
16684
|
};
|
|
16685
|
+
const handleTriggerKeyDown = (event) => {
|
|
16686
|
+
if (event.target !== event.currentTarget || effectiveDisabled) return;
|
|
16687
|
+
if (event.key === " " || !open && event.key === "Enter") {
|
|
16688
|
+
event.preventDefault();
|
|
16689
|
+
requestOpen(!open);
|
|
16690
|
+
return;
|
|
16691
|
+
}
|
|
16692
|
+
handleKeyDown(event);
|
|
16693
|
+
};
|
|
16540
16694
|
return /* @__PURE__ */ jsxs(
|
|
16541
16695
|
SField,
|
|
16542
16696
|
{
|
|
@@ -16564,23 +16718,28 @@ var SSelectImpl = /* @__PURE__ */ forwardRef(function SSelect({
|
|
|
16564
16718
|
children: [
|
|
16565
16719
|
name && /* @__PURE__ */ jsx("input", { type: "hidden", name, value: selected.join(",") }),
|
|
16566
16720
|
/* @__PURE__ */ jsxs(
|
|
16567
|
-
"
|
|
16721
|
+
"div",
|
|
16568
16722
|
{
|
|
16569
16723
|
ref: triggerRef,
|
|
16570
16724
|
id: triggerId,
|
|
16571
|
-
|
|
16572
|
-
|
|
16573
|
-
"aria-
|
|
16725
|
+
role: "combobox",
|
|
16726
|
+
tabIndex: effectiveDisabled ? -1 : 0,
|
|
16727
|
+
"aria-disabled": effectiveDisabled || void 0,
|
|
16728
|
+
"aria-labelledby": label ? `${fieldLabelId(triggerId)} ${triggerId}` : triggerId,
|
|
16574
16729
|
"aria-haspopup": isTree ? "tree" : "listbox",
|
|
16575
16730
|
"aria-expanded": open,
|
|
16576
16731
|
"aria-controls": open ? listboxId : void 0,
|
|
16577
16732
|
"aria-activedescendant": open && focusedIndex >= 0 ? activeOptionId : void 0,
|
|
16578
16733
|
"aria-busy": showTriggerSpinner || void 0,
|
|
16579
|
-
onClick: () =>
|
|
16580
|
-
|
|
16734
|
+
onClick: () => {
|
|
16735
|
+
if (effectiveDisabled) return;
|
|
16736
|
+
requestOpen(!open);
|
|
16737
|
+
},
|
|
16738
|
+
onKeyDown: handleTriggerKeyDown,
|
|
16581
16739
|
className: cn(
|
|
16582
|
-
"flex h-full w-full
|
|
16583
|
-
|
|
16740
|
+
"flex h-full w-full items-center justify-between bg-transparent text-left outline-none",
|
|
16741
|
+
effectiveDisabled ? "cursor-not-allowed" : "cursor-pointer",
|
|
16742
|
+
size === "md" ? "typo-field-md-default gap-(--cmp-select-md-gap) px-(--cmp-select-md-paddingX)" : "typo-field-sm-default gap-(--cmp-select-sm-gap) px-(--cmp-select-sm-paddingX)"
|
|
16584
16743
|
),
|
|
16585
16744
|
style: {
|
|
16586
16745
|
// 칩 한 줄이 기본 높이 안에서 세로 가운데에 오는 여백. 줄이 늘면 같은 여백을 유지한 채 트리거가 커진다.
|
|
@@ -16702,7 +16861,7 @@ var SSelectImpl = /* @__PURE__ */ forwardRef(function SSelect({
|
|
|
16702
16861
|
"div",
|
|
16703
16862
|
{
|
|
16704
16863
|
ref: searchBarRef,
|
|
16705
|
-
className: "sticky top-0 z-[1] bg-[var(--cmp-listBox-bg)] px-(--cmp-listBoxItem-search-paddingX) py-(--cmp-listBoxItem-search-paddingY)",
|
|
16864
|
+
className: "sticky top-0 z-[1] border-b-(length:--border-width-1) border-solid border-[color:var(--sys-color-divider-default)] bg-[var(--cmp-listBox-bg)] px-(--cmp-listBoxItem-search-paddingX) py-(--cmp-listBoxItem-search-paddingY)",
|
|
16706
16865
|
children: /* @__PURE__ */ jsx(
|
|
16707
16866
|
SSearchInput,
|
|
16708
16867
|
{
|
|
@@ -16737,7 +16896,6 @@ var SSelectImpl = /* @__PURE__ */ forwardRef(function SSelect({
|
|
|
16737
16896
|
groupLeafValues,
|
|
16738
16897
|
focusedValue: navigableItems[focusedIndex]?.key,
|
|
16739
16898
|
showSelectAll: selectAllVisible,
|
|
16740
|
-
searchVisible,
|
|
16741
16899
|
selectAllLabel: allSelectedLabel,
|
|
16742
16900
|
selectAllSelected: allSelected,
|
|
16743
16901
|
onSelectAll: handleSelectAll,
|
|
@@ -16794,7 +16952,6 @@ function ItemList({
|
|
|
16794
16952
|
groupLeafValues,
|
|
16795
16953
|
focusedValue,
|
|
16796
16954
|
showSelectAll,
|
|
16797
|
-
searchVisible,
|
|
16798
16955
|
selectAllLabel,
|
|
16799
16956
|
selectAllSelected,
|
|
16800
16957
|
onSelectAll,
|
|
@@ -16805,7 +16962,7 @@ function ItemList({
|
|
|
16805
16962
|
const selectedSet = useMemo(() => new Set(selected), [selected]);
|
|
16806
16963
|
const checkboxShiftRef = useRef(false);
|
|
16807
16964
|
const itemBase = cn(
|
|
16808
|
-
"group/select-item flex w-full cursor-pointer select-none items-center gap-
|
|
16965
|
+
"group/select-item flex w-full cursor-pointer select-none items-center gap-(--cmp-listBoxItem-gap) border-none bg-transparent text-left typo-field-sm-default outline-none",
|
|
16809
16966
|
"text-[color:var(--cmp-listBoxItem-content-default)]",
|
|
16810
16967
|
"disabled:cursor-not-allowed disabled:text-[color:var(--cmp-listBoxItem-content-disabled)]"
|
|
16811
16968
|
);
|
|
@@ -16842,7 +16999,7 @@ function ItemList({
|
|
|
16842
16999
|
itemBase,
|
|
16843
17000
|
focusedValue === "__select_all__" && "bg-[var(--cmp-listBoxItem-bg-hover)] text-[color:var(--cmp-listBoxItem-content-hover)]"
|
|
16844
17001
|
),
|
|
16845
|
-
style: {
|
|
17002
|
+
style: { ...LIST_BOX_ITEM_PADDING_Y_RIGHT, paddingLeft: LIST_BOX_ITEM_PADDING_LEFT[1] },
|
|
16846
17003
|
onMouseEnter: () => onHoverValue("__select_all__"),
|
|
16847
17004
|
onMouseLeave: () => onHoverValue(null),
|
|
16848
17005
|
onClick: onSelectAll,
|
|
@@ -16855,7 +17012,7 @@ function ItemList({
|
|
|
16855
17012
|
topSpacer > 0 && /* @__PURE__ */ jsx("div", { "aria-hidden": true, style: { height: topSpacer } }),
|
|
16856
17013
|
items.map((o, windowIndex) => {
|
|
16857
17014
|
const idx = windowIndex + indexOffset;
|
|
16858
|
-
const padLeft = o.depth === 1 ?
|
|
17015
|
+
const padLeft = LIST_BOX_ITEM_PADDING_LEFT[o.depth === 1 ? 1 : o.depth === 2 ? 2 : 3];
|
|
16859
17016
|
const rowKey = `${o.value}-${idx}`;
|
|
16860
17017
|
if (tree) {
|
|
16861
17018
|
const togglesLeaves = multi && o.isGroup;
|
|
@@ -16897,15 +17054,20 @@ function ItemList({
|
|
|
16897
17054
|
TREE_LABEL_TYPOGRAPHY.sm.rowHeight,
|
|
16898
17055
|
TREE_ROW_BORDER_CLASS,
|
|
16899
17056
|
"select-none",
|
|
16900
|
-
|
|
17057
|
+
o.isGroup && "cursor-pointer",
|
|
16901
17058
|
focused && TREE_ROW_ACTIVE_CLASS
|
|
16902
17059
|
),
|
|
16903
17060
|
onMouseEnter: () => onHoverValue(focusKey),
|
|
16904
17061
|
onMouseLeave: () => onHoverValue(null),
|
|
16905
17062
|
onClick: (event) => {
|
|
16906
|
-
if (isRowControlClick(event)
|
|
16907
|
-
if (
|
|
16908
|
-
|
|
17063
|
+
if (isRowControlClick(event)) return;
|
|
17064
|
+
if (isRowSelectClick(event)) {
|
|
17065
|
+
if (rowDisabled) return;
|
|
17066
|
+
if (togglesLeaves) onToggleGroup(leafValues);
|
|
17067
|
+
else onSelect(o.value, idx, event.shiftKey);
|
|
17068
|
+
return;
|
|
17069
|
+
}
|
|
17070
|
+
if (o.isGroup) onToggleExpand(o.value);
|
|
16909
17071
|
},
|
|
16910
17072
|
children: [
|
|
16911
17073
|
/* @__PURE__ */ jsx(
|
|
@@ -16924,27 +17086,41 @@ function ItemList({
|
|
|
16924
17086
|
// 비활성 그룹도 접고 편다 — 그룹이 비활성이어도 아래에 고를 수 있는 자식이 있을 수 있다.
|
|
16925
17087
|
/* @__PURE__ */ jsx(TreeCaret, { expanded, onToggle: () => onToggleExpand(o.value) })
|
|
16926
17088
|
) : /* @__PURE__ */ jsx(TreeCaretSpacer, {}),
|
|
16927
|
-
multi && /* @__PURE__ */ jsx(
|
|
16928
|
-
"span",
|
|
16929
|
-
{
|
|
16930
|
-
"data-tree-control": true,
|
|
16931
|
-
className: "flex shrink-0",
|
|
16932
|
-
onPointerDownCapture: (event) => {
|
|
16933
|
-
checkboxShiftRef.current = event.shiftKey;
|
|
16934
|
-
},
|
|
16935
|
-
children: /* @__PURE__ */ jsx(SCheckbox, { value: checkState, disabled: rowDisabled, onValueChange: toggle })
|
|
16936
|
-
}
|
|
16937
|
-
),
|
|
16938
17089
|
/* @__PURE__ */ jsx(
|
|
16939
|
-
|
|
17090
|
+
TreeSelectZone,
|
|
16940
17091
|
{
|
|
16941
|
-
|
|
16942
|
-
|
|
16943
|
-
|
|
16944
|
-
|
|
16945
|
-
|
|
16946
|
-
|
|
16947
|
-
|
|
17092
|
+
selectable: true,
|
|
17093
|
+
disabled: rowDisabled,
|
|
17094
|
+
control: multi && /* @__PURE__ */ jsx(
|
|
17095
|
+
"span",
|
|
17096
|
+
{
|
|
17097
|
+
"data-tree-control": true,
|
|
17098
|
+
className: "flex shrink-0",
|
|
17099
|
+
onPointerDownCapture: (event) => {
|
|
17100
|
+
checkboxShiftRef.current = event.shiftKey;
|
|
17101
|
+
},
|
|
17102
|
+
children: /* @__PURE__ */ jsx(
|
|
17103
|
+
SCheckbox,
|
|
17104
|
+
{
|
|
17105
|
+
value: checkState,
|
|
17106
|
+
disabled: rowDisabled,
|
|
17107
|
+
onValueChange: toggle
|
|
17108
|
+
}
|
|
17109
|
+
)
|
|
17110
|
+
}
|
|
17111
|
+
),
|
|
17112
|
+
children: /* @__PURE__ */ jsx(
|
|
17113
|
+
OptionLabel,
|
|
17114
|
+
{
|
|
17115
|
+
label: o.label,
|
|
17116
|
+
className: treeLabelClass("sm", {
|
|
17117
|
+
// 고른 줄은 굵게 — multi_tree 는 일부만 고른 그룹도 굵다 (STree 와 같다)
|
|
17118
|
+
emphasized: checkState !== false,
|
|
17119
|
+
disabled: rowDisabled,
|
|
17120
|
+
selectable: true
|
|
17121
|
+
})
|
|
17122
|
+
}
|
|
17123
|
+
)
|
|
16948
17124
|
}
|
|
16949
17125
|
)
|
|
16950
17126
|
] })
|
|
@@ -16956,7 +17132,7 @@ function ItemList({
|
|
|
16956
17132
|
}
|
|
16957
17133
|
if (o.isGroup) {
|
|
16958
17134
|
const isDepth1 = o.depth === 1;
|
|
16959
|
-
const isFirstRow = idx === 0 && !showSelectAll
|
|
17135
|
+
const isFirstRow = idx === 0 && !showSelectAll;
|
|
16960
17136
|
const groupTone = cn(
|
|
16961
17137
|
isDepth1 ? "bg-[var(--cmp-listBoxItem-depth1-bg-default)] font-bold" : "bg-[var(--cmp-listBoxItem-depth2-middle-bg)] font-medium",
|
|
16962
17138
|
isDepth1 && !isFirstRow && "border-t border-solid border-[color:var(--cmp-listBoxItem-depth1-border-color)]"
|
|
@@ -16981,7 +17157,7 @@ function ItemList({
|
|
|
16981
17157
|
"data-select-focused": groupFocused ? "true" : void 0,
|
|
16982
17158
|
"data-select-active": groupFocused ? "true" : void 0,
|
|
16983
17159
|
className: cn(
|
|
16984
|
-
"flex w-full select-none items-center gap-
|
|
17160
|
+
"flex w-full select-none items-center gap-(--cmp-listBoxItem-gap) border-none py-(--cmp-listBoxItem-paddingY) pr-(--cmp-listBoxItem-paddingRight) text-left typo-field-sm-default text-[color:var(--cmp-listBoxItem-content-default)]",
|
|
16985
17161
|
groupTone,
|
|
16986
17162
|
groupDisabled ? "cursor-not-allowed text-[color:var(--cmp-listBoxItem-content-disabled)]" : "cursor-pointer",
|
|
16987
17163
|
groupDisabled && isDepth1 && "bg-[var(--cmp-listBoxItem-depth1-bg-disabled)]",
|
|
@@ -17022,7 +17198,7 @@ function ItemList({
|
|
|
17022
17198
|
"data-select-row": true,
|
|
17023
17199
|
"data-index": idx,
|
|
17024
17200
|
className: cn(
|
|
17025
|
-
"select-none py-
|
|
17201
|
+
"select-none py-(--cmp-listBoxItem-paddingY) pr-(--cmp-listBoxItem-paddingRight) typo-field-sm-default text-[color:var(--cmp-listBoxItem-content-default)]",
|
|
17026
17202
|
groupTone,
|
|
17027
17203
|
// 하위가 전부 비활성이면(select.config 에서 bubble-up) 어미 그룹도 비활성 처리:
|
|
17028
17204
|
// 텍스트는 회색(#888), depth1 그룹은 파란 배경 대신 회색(#EEE)으로 (depth2 는 #F6F6F6 유지)
|
|
@@ -17058,7 +17234,7 @@ function ItemList({
|
|
|
17058
17234
|
// (:hover 는 disabled 버튼에도 매칭되므로 클래스 자체를 붙이지 않아야 한다)
|
|
17059
17235
|
!o.disabled && activeClass
|
|
17060
17236
|
),
|
|
17061
|
-
style: {
|
|
17237
|
+
style: { ...LIST_BOX_ITEM_PADDING_Y_RIGHT, paddingLeft: padLeft },
|
|
17062
17238
|
onMouseEnter: () => onHoverValue(o.value),
|
|
17063
17239
|
onMouseLeave: () => onHoverValue(null),
|
|
17064
17240
|
onClick: (event) => onSelect(o.value, idx, event.shiftKey),
|
|
@@ -17087,40 +17263,17 @@ function TriggerLabel({ label }) {
|
|
|
17087
17263
|
return /* @__PURE__ */ jsx(OptionLabel, { label, className: "truncate" });
|
|
17088
17264
|
}
|
|
17089
17265
|
function TriggerRemoveButton({ ariaLabel, onRemove }) {
|
|
17090
|
-
return /* @__PURE__ */
|
|
17091
|
-
|
|
17266
|
+
return /* @__PURE__ */ jsx(
|
|
17267
|
+
SGhostButton,
|
|
17092
17268
|
{
|
|
17093
|
-
|
|
17094
|
-
|
|
17095
|
-
|
|
17096
|
-
className: "
|
|
17097
|
-
style: {
|
|
17098
|
-
width: "var(--cmp-ghostButton-xxs-size)",
|
|
17099
|
-
height: "var(--cmp-ghostButton-xxs-size)",
|
|
17100
|
-
borderRadius: "var(--cmp-ghostButton-radius-sm)"
|
|
17101
|
-
},
|
|
17269
|
+
icon: "close",
|
|
17270
|
+
size: "xxs",
|
|
17271
|
+
ariaLabel,
|
|
17272
|
+
className: "shrink-0",
|
|
17102
17273
|
onClick: (event) => {
|
|
17103
|
-
event.preventDefault();
|
|
17104
|
-
event.stopPropagation();
|
|
17105
|
-
onRemove();
|
|
17106
|
-
},
|
|
17107
|
-
onKeyDown: (event) => {
|
|
17108
|
-
if (event.key !== "Enter" && event.key !== " ") return;
|
|
17109
|
-
event.preventDefault();
|
|
17110
17274
|
event.stopPropagation();
|
|
17111
17275
|
onRemove();
|
|
17112
|
-
}
|
|
17113
|
-
children: [
|
|
17114
|
-
/* @__PURE__ */ jsx(
|
|
17115
|
-
"span",
|
|
17116
|
-
{
|
|
17117
|
-
"aria-hidden": true,
|
|
17118
|
-
className: "pointer-events-none absolute inset-0 rounded-[inherit] opacity-0 transition-opacity duration-200 group-hover/select-remove:opacity-5",
|
|
17119
|
-
style: { background: "var(--cmp-ghostButton-default-hover-bg)" }
|
|
17120
|
-
}
|
|
17121
|
-
),
|
|
17122
|
-
/* @__PURE__ */ jsx(SIcon, { name: "close", size: 12, color: "var(--cmp-ghostButton-default-content)" })
|
|
17123
|
-
]
|
|
17276
|
+
}
|
|
17124
17277
|
}
|
|
17125
17278
|
);
|
|
17126
17279
|
}
|
|
@@ -17134,7 +17287,7 @@ function CheckboxBox({
|
|
|
17134
17287
|
"span",
|
|
17135
17288
|
{
|
|
17136
17289
|
className: cn(
|
|
17137
|
-
"flex
|
|
17290
|
+
"flex size-(--cmp-checkbox-size) flex-shrink-0 items-center justify-center rounded-(--cmp-checkbox-radius) border-(length:--cmp-checkbox-borderWidth) border-solid",
|
|
17138
17291
|
disabled ? (
|
|
17139
17292
|
// 비활성: 회색 채움(#E1E1E1) + 회색 테두리(#CCCCCC)
|
|
17140
17293
|
"cursor-not-allowed border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]"
|
|
@@ -17144,7 +17297,7 @@ function CheckboxBox({
|
|
|
17144
17297
|
SIcon,
|
|
17145
17298
|
{
|
|
17146
17299
|
name: state2 === null ? "checkboxIndeterminate" : "checkboxCheck",
|
|
17147
|
-
size:
|
|
17300
|
+
size: "var(--cmp-checkbox-icon)",
|
|
17148
17301
|
color: disabled ? "var(--cmp-checkbox-checked-icon-disabled)" : "var(--cmp-checkbox-checked-icon-default)"
|
|
17149
17302
|
}
|
|
17150
17303
|
)
|
|
@@ -17777,7 +17930,7 @@ var STableImpl = /* @__PURE__ */ forwardRef(function STable({
|
|
|
17777
17930
|
"span",
|
|
17778
17931
|
{
|
|
17779
17932
|
onMouseDown: (e) => startResize(i, e),
|
|
17780
|
-
className: "absolute right-0 top-1/2 z-[5] flex h-[
|
|
17933
|
+
className: "absolute right-0 top-1/2 z-[5] flex h-[var(--cmp-table-header-resizingBar-height)] w-[9px] -translate-y-1/2 cursor-col-resize items-center justify-end",
|
|
17781
17934
|
"aria-hidden": true,
|
|
17782
17935
|
children: /* @__PURE__ */ jsx("span", { className: "h-full w-[4px] border-x border-solid border-[color:var(--cmp-table-header-resizingBar-color)]" })
|
|
17783
17936
|
},
|
|
@@ -17840,7 +17993,7 @@ var STableImpl = /* @__PURE__ */ forwardRef(function STable({
|
|
|
17840
17993
|
colSpan: group.colSpan,
|
|
17841
17994
|
rowSpan: group.rowSpan,
|
|
17842
17995
|
className: cn(
|
|
17843
|
-
"relative border-b border-r border-solid border-[color:var(--cmp-table-border-color)] bg-[var(--cmp-table-header-bg)] px-[
|
|
17996
|
+
"relative border-b border-r border-solid border-[color:var(--cmp-table-border-color)] bg-[var(--cmp-table-header-bg)] px-[var(--cmp-table-header-paddingX)] typo-table-header text-[color:var(--sys-color-fg-primary)]",
|
|
17844
17997
|
group.firstIndex + group.colSpan === visibleCols.length && "border-r-0",
|
|
17845
17998
|
group.rowSpan === 2 && "border-b-0",
|
|
17846
17999
|
group.className
|
|
@@ -17882,7 +18035,7 @@ var STableImpl = /* @__PURE__ */ forwardRef(function STable({
|
|
|
17882
18035
|
"span",
|
|
17883
18036
|
{
|
|
17884
18037
|
"aria-hidden": true,
|
|
17885
|
-
className: "pointer-events-none absolute right-0 top-1/2 h-[
|
|
18038
|
+
className: "pointer-events-none absolute right-0 top-1/2 h-[var(--cmp-table-header-resizingBar-height)] w-px -translate-y-1/2 bg-[var(--cmp-table-header-resizingBar-color)]"
|
|
17886
18039
|
}
|
|
17887
18040
|
)
|
|
17888
18041
|
]
|
|
@@ -17903,7 +18056,7 @@ var STableImpl = /* @__PURE__ */ forwardRef(function STable({
|
|
|
17903
18056
|
// 세로 가운데도 어긋난다. 글자 줄높이는 아래 th__content 가 다시 준다.
|
|
17904
18057
|
headerGroupInfo && "border-r border-solid border-[color:var(--cmp-table-border-color)]",
|
|
17905
18058
|
headerGroupInfo && i === visibleCols.length - 1 && "border-r-0",
|
|
17906
|
-
"relative bg-[var(--cmp-table-header-bg)] px-[
|
|
18059
|
+
"relative bg-[var(--cmp-table-header-bg)] px-[var(--cmp-table-header-paddingX)] typo-table-header leading-[0] text-[color:var(--sys-color-fg-primary)]",
|
|
17907
18060
|
stickyInfo(i).isSticky && "z-[6]",
|
|
17908
18061
|
col.thClass
|
|
17909
18062
|
),
|
|
@@ -17922,7 +18075,7 @@ var STableImpl = /* @__PURE__ */ forwardRef(function STable({
|
|
|
17922
18075
|
// 원본 th__content: align에 따라 justify-content 적용 (th도 정렬 반영)
|
|
17923
18076
|
// th 가 leading-[0] 이므로 글자 줄높이는 여기서 준다 (truncate 가
|
|
17924
18077
|
// overflow-hidden 이라 줄높이가 0이면 라벨이 잘려 사라진다).
|
|
17925
|
-
"inline-flex w-full min-w-0 items-center gap-[
|
|
18078
|
+
"inline-flex w-full min-w-0 items-center gap-[var(--cmp-table-header-gap)] leading-[20px]",
|
|
17926
18079
|
col.align === "center" && "justify-center",
|
|
17927
18080
|
col.align === "right" && "justify-end"
|
|
17928
18081
|
),
|
|
@@ -18820,8 +18973,8 @@ function useTruncatedValueTooltip({
|
|
|
18820
18973
|
};
|
|
18821
18974
|
}
|
|
18822
18975
|
var FONT2 = {
|
|
18823
|
-
sm: {
|
|
18824
|
-
md: {
|
|
18976
|
+
sm: { typo: "typo-field-sm-default", paddingX: "var(--cmp-textinput-sm-paddingX)" },
|
|
18977
|
+
md: { typo: "typo-field-md-default", paddingX: "var(--cmp-textinput-md-paddingX)" }
|
|
18825
18978
|
};
|
|
18826
18979
|
var SInput = /* @__PURE__ */ forwardRef(function SInput2({
|
|
18827
18980
|
value,
|
|
@@ -18914,12 +19067,11 @@ var SInput = /* @__PURE__ */ forwardRef(function SInput2({
|
|
|
18914
19067
|
{
|
|
18915
19068
|
className: cn(
|
|
18916
19069
|
"flex h-full w-full items-center",
|
|
19070
|
+
f.typo,
|
|
18917
19071
|
size === "md" ? "gap-[var(--cmp-textinput-md-gap)]" : "gap-[var(--cmp-textinput-sm-gap)]"
|
|
18918
19072
|
),
|
|
18919
19073
|
style: {
|
|
18920
|
-
padding: `0 ${f.paddingX}
|
|
18921
|
-
fontSize: f.fontSize,
|
|
18922
|
-
lineHeight: `${f.lineHeight}px`
|
|
19074
|
+
padding: `0 ${f.paddingX}`
|
|
18923
19075
|
},
|
|
18924
19076
|
children: [
|
|
18925
19077
|
prefix != null && /* @__PURE__ */ jsx("span", { className: "flex flex-shrink-0 items-center", children: prefix }),
|
|
@@ -18993,8 +19145,8 @@ var SInput = /* @__PURE__ */ forwardRef(function SInput2({
|
|
|
18993
19145
|
);
|
|
18994
19146
|
});
|
|
18995
19147
|
var PAD2 = {
|
|
18996
|
-
sm: {
|
|
18997
|
-
md: {
|
|
19148
|
+
sm: { typo: "typo-field-sm-default", icon: 12 },
|
|
19149
|
+
md: { typo: "typo-field-md-default", icon: 14 }
|
|
18998
19150
|
};
|
|
18999
19151
|
var toNumber = (val) => {
|
|
19000
19152
|
if (val === null || val === void 0 || val === "") return null;
|
|
@@ -19229,7 +19381,7 @@ var SNumberInput = /* @__PURE__ */ forwardRef(function SNumberInput2({
|
|
|
19229
19381
|
onClick: dir === "inc" ? increment : decrement,
|
|
19230
19382
|
className: cn(
|
|
19231
19383
|
"flex flex-shrink-0 items-center justify-center border border-solid border-transparent transition-colors",
|
|
19232
|
-
off ? "cursor-not-allowed" : "cursor-pointer hover:border-[var(--
|
|
19384
|
+
off ? "cursor-not-allowed" : "cursor-pointer hover:border-[var(--cmp-numberInput-stepper-border-default)]"
|
|
19233
19385
|
),
|
|
19234
19386
|
style: {
|
|
19235
19387
|
width: `var(--cmp-numberInput-stepper-${size}-size)`,
|
|
@@ -19278,13 +19430,11 @@ var SNumberInput = /* @__PURE__ */ forwardRef(function SNumberInput2({
|
|
|
19278
19430
|
children: /* @__PURE__ */ jsxs(
|
|
19279
19431
|
"div",
|
|
19280
19432
|
{
|
|
19281
|
-
className: "flex h-full w-full items-center",
|
|
19433
|
+
className: cn("flex h-full w-full items-center", p.typo),
|
|
19282
19434
|
style: {
|
|
19283
19435
|
// 원본 sd-number-input: content gap = padding-x 토큰 (gap 토큰 아님)
|
|
19284
19436
|
gap: `var(--cmp-numberInput-${size}-paddingX)`,
|
|
19285
|
-
padding: `0 ${showButton ? padX : `calc(${padX} * 2)`}
|
|
19286
|
-
fontSize: p.fontSize,
|
|
19287
|
-
lineHeight: `${p.lineHeight}px`
|
|
19437
|
+
padding: `0 ${showButton ? padX : `calc(${padX} * 2)`}`
|
|
19288
19438
|
},
|
|
19289
19439
|
children: [
|
|
19290
19440
|
showButton && stepper("dec"),
|
|
@@ -19570,7 +19720,7 @@ function SCalendar({
|
|
|
19570
19720
|
onClick: () => view(y - 1, m)
|
|
19571
19721
|
}
|
|
19572
19722
|
),
|
|
19573
|
-
/* @__PURE__ */ jsx("span", { className: "inline-flex min-w-[40px] items-center justify-center text-center
|
|
19723
|
+
/* @__PURE__ */ jsx("span", { className: "inline-flex min-w-[40px] items-center justify-center text-center typo-field-md-medium", children: y }),
|
|
19574
19724
|
/* @__PURE__ */ jsx(
|
|
19575
19725
|
SGhostButton,
|
|
19576
19726
|
{
|
|
@@ -19595,7 +19745,7 @@ function SCalendar({
|
|
|
19595
19745
|
}
|
|
19596
19746
|
}
|
|
19597
19747
|
),
|
|
19598
|
-
/* @__PURE__ */ jsxs("span", { className: "inline-flex w-full min-w-[40px] items-center justify-center text-center
|
|
19748
|
+
/* @__PURE__ */ jsxs("span", { className: "inline-flex w-full min-w-[40px] items-center justify-center text-center typo-field-md-medium", children: [
|
|
19599
19749
|
m,
|
|
19600
19750
|
"\uC6D4"
|
|
19601
19751
|
] }),
|
|
@@ -19672,7 +19822,7 @@ function SCalendar({
|
|
|
19672
19822
|
}) }),
|
|
19673
19823
|
legend.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
19674
19824
|
/* @__PURE__ */ jsx(SDivider, {}),
|
|
19675
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-center gap-x-[var(--cmp-datepicker-calendar-legend-group-gap)] gap-y-[4px]
|
|
19825
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-center gap-x-[var(--cmp-datepicker-calendar-legend-group-gap)] gap-y-[4px] typo-field-xs-default", children: legend.map((item4) => /* @__PURE__ */ jsxs(
|
|
19676
19826
|
"span",
|
|
19677
19827
|
{
|
|
19678
19828
|
className: "inline-flex items-center gap-[var(--cmp-datepicker-calendar-legend-gap)]",
|
|
@@ -19700,10 +19850,10 @@ function SCalendar({
|
|
|
19700
19850
|
var MODE_LIST_HEIGHT = 240;
|
|
19701
19851
|
var MODE_ITEM_HEIGHT = 28;
|
|
19702
19852
|
var modeListItemClass = (selected, disabled) => cn(
|
|
19703
|
-
"flex w-full items-center justify-center gap-[var(--cmp-datepicker-mode-item-gap)] border-0 px-[var(--cmp-datepicker-mode-item-paddingX)] py-[var(--cmp-datepicker-mode-item-paddingY)] text-center
|
|
19704
|
-
disabled && "cursor-not-allowed bg-[var(--cmp-datepicker-mode-item-bg-default)]
|
|
19705
|
-
!disabled && !selected && "cursor-pointer bg-[var(--cmp-datepicker-mode-item-bg-default)]
|
|
19706
|
-
!disabled && selected && "cursor-pointer bg-[var(--cmp-datepicker-mode-item-bg-default)]
|
|
19853
|
+
"flex w-full items-center justify-center gap-[var(--cmp-datepicker-mode-item-gap)] border-0 px-[var(--cmp-datepicker-mode-item-paddingX)] py-[var(--cmp-datepicker-mode-item-paddingY)] text-center",
|
|
19854
|
+
disabled && "typo-field-sm-medium cursor-not-allowed bg-[var(--cmp-datepicker-mode-item-bg-default)] text-[color:var(--cmp-datepicker-mode-item-content-disabled)]",
|
|
19855
|
+
!disabled && !selected && "typo-field-sm-medium cursor-pointer bg-[var(--cmp-datepicker-mode-item-bg-default)] text-[color:var(--cmp-datepicker-mode-item-content-default)] hover:bg-[var(--cmp-datepicker-mode-item-bg-hover)] hover:text-[color:var(--cmp-datepicker-mode-item-content-hover)]",
|
|
19856
|
+
!disabled && selected && "typo-field-sm-bold cursor-pointer bg-[var(--cmp-datepicker-mode-item-bg-default)] text-[color:var(--cmp-datepicker-mode-item-content-selected)]"
|
|
19707
19857
|
);
|
|
19708
19858
|
var MODE_NOUN = {
|
|
19709
19859
|
date: "\uB0A0\uC9DC",
|
|
@@ -20013,9 +20163,9 @@ function SDatePicker({
|
|
|
20013
20163
|
const resolvedError = error || ruleError !== "";
|
|
20014
20164
|
const resolvedStatus = status ?? (rules && rules.length > 0 ? ruleError !== "" ? "error" : void 0 : void 0);
|
|
20015
20165
|
const baseDims = size === "md" ? {
|
|
20016
|
-
padX:
|
|
20017
|
-
gap:
|
|
20018
|
-
icon:
|
|
20166
|
+
padX: "var(--cmp-datepicker-md-paddingX)",
|
|
20167
|
+
gap: "var(--cmp-datepicker-md-gap)",
|
|
20168
|
+
icon: "var(--cmp-datepicker-md-icon)",
|
|
20019
20169
|
minW: 104,
|
|
20020
20170
|
fieldMinW: 168,
|
|
20021
20171
|
// 값 길이가 YYYY-MM-DD 로 정해져 있어, width="100%" 를 받아도 행 전체로
|
|
@@ -20023,19 +20173,20 @@ function SDatePicker({
|
|
|
20023
20173
|
// px 가 아니라 등급이라 --cmp-field-width-* 가 바뀌면 함께 따라간다.
|
|
20024
20174
|
// 이 기본 상한이 걸리적거리는 자리(폭이 이미 좁게 정해진 팝오버 등)는 maxWidth prop 으로 덮는다
|
|
20025
20175
|
fieldMaxW: "lg",
|
|
20176
|
+
// 요일 폭 계산에 숫자가 필요해 남긴다. 렌더 타이포는 typo 가 맡는다
|
|
20026
20177
|
fontSize: 14,
|
|
20027
|
-
|
|
20028
|
-
radius:
|
|
20178
|
+
typo: "typo-field-md-default",
|
|
20179
|
+
radius: "var(--cmp-datepicker-md-radius)"
|
|
20029
20180
|
} : {
|
|
20030
|
-
padX:
|
|
20031
|
-
gap:
|
|
20032
|
-
icon:
|
|
20181
|
+
padX: "var(--cmp-datepicker-sm-paddingX)",
|
|
20182
|
+
gap: "var(--cmp-datepicker-sm-gap)",
|
|
20183
|
+
icon: "var(--cmp-datepicker-sm-icon)",
|
|
20033
20184
|
minW: 80,
|
|
20034
20185
|
fieldMinW: 128,
|
|
20035
20186
|
fieldMaxW: "md",
|
|
20036
20187
|
fontSize: 12,
|
|
20037
|
-
|
|
20038
|
-
radius:
|
|
20188
|
+
typo: "typo-field-sm-default",
|
|
20189
|
+
radius: "var(--cmp-datepicker-sm-radius)"
|
|
20039
20190
|
};
|
|
20040
20191
|
const weekdayW = weekday ? weekdaySuffixWidth(baseDims.fontSize) : 0;
|
|
20041
20192
|
const dims = {
|
|
@@ -20106,7 +20257,7 @@ function SDatePicker({
|
|
|
20106
20257
|
"flex h-full w-full items-center overflow-hidden bg-transparent outline-none",
|
|
20107
20258
|
disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
20108
20259
|
),
|
|
20109
|
-
style: { padding: `0 ${dims.padX}
|
|
20260
|
+
style: { padding: `0 ${dims.padX}`, gap: dims.gap, borderRadius: dims.radius },
|
|
20110
20261
|
children: [
|
|
20111
20262
|
/* @__PURE__ */ jsx(
|
|
20112
20263
|
SIcon,
|
|
@@ -20121,11 +20272,9 @@ function SDatePicker({
|
|
|
20121
20272
|
"span",
|
|
20122
20273
|
{
|
|
20123
20274
|
id: triggerTextId,
|
|
20124
|
-
className: "flex-1 truncate text-center",
|
|
20275
|
+
className: cn("flex-1 truncate text-center", dims.typo),
|
|
20125
20276
|
style: {
|
|
20126
20277
|
minWidth: dims.minW,
|
|
20127
|
-
fontSize: dims.fontSize,
|
|
20128
|
-
lineHeight: `${dims.lineHeight}px`,
|
|
20129
20278
|
color: disabled ? "var(--cmp-datepicker-text-disabled)" : hasValue ? "var(--cmp-datepicker-text-default)" : "var(--cmp-field-hint-color)"
|
|
20130
20279
|
},
|
|
20131
20280
|
children: hasValue ? weekday ? withWeekday(value) : value : resolvedPlaceholder
|
|
@@ -20336,7 +20485,7 @@ function RangeCalendar({
|
|
|
20336
20485
|
className: cn(!isLeft && "invisible pointer-events-none")
|
|
20337
20486
|
}
|
|
20338
20487
|
),
|
|
20339
|
-
/* @__PURE__ */ jsxs("span", { className: "inline-flex min-w-[40px] flex-1 items-center justify-center text-center
|
|
20488
|
+
/* @__PURE__ */ jsxs("span", { className: "inline-flex min-w-[40px] flex-1 items-center justify-center text-center typo-field-md-medium", children: [
|
|
20340
20489
|
gy,
|
|
20341
20490
|
".",
|
|
20342
20491
|
String(gm).padStart(2, "0")
|
|
@@ -20404,14 +20553,14 @@ function RangeCalendar({
|
|
|
20404
20553
|
const hour = which === "start" ? sH : eH;
|
|
20405
20554
|
const minute = which === "start" ? sM : eM;
|
|
20406
20555
|
const num = (n, strip) => active && n !== "" ? strip ? String(Number(n)) : n : "-";
|
|
20407
|
-
const INPUT_CLS = "h-[var(--cmp-datepicker-sm-height)] w-[40px] rounded-[var(--cmp-datepicker-sm-radius)] border border-solid border-[color:var(--cmp-datepicker-border-default)] bg-[var(--cmp-datepicker-bg-default)] text-center
|
|
20556
|
+
const INPUT_CLS = "h-[var(--cmp-datepicker-sm-height)] w-[40px] rounded-[var(--cmp-datepicker-sm-radius)] border-[length:var(--cmp-datepicker-border-width)] border-solid border-[color:var(--cmp-datepicker-border-default)] bg-[var(--cmp-datepicker-bg-default)] text-center typo-field-sm-medium text-[color:var(--cmp-datepicker-text-default)] outline-none placeholder:text-[color:var(--cmp-datepicker-text-disabled)] focus:border-[color:var(--cmp-datepicker-border-focus)] disabled:cursor-not-allowed";
|
|
20408
20557
|
const LABEL = "text-[color:var(--cmp-datepicker-calendar-time-date-label)]";
|
|
20409
20558
|
const UNIT = "text-[color:var(--cmp-datepicker-calendar-time-date-unit)]";
|
|
20410
20559
|
return /* @__PURE__ */ jsxs(
|
|
20411
20560
|
"div",
|
|
20412
20561
|
{
|
|
20413
20562
|
className: cn(
|
|
20414
|
-
"flex flex-1 items-center justify-center gap-[var(--cmp-datepicker-calendar-time-section-gap)] rounded-[var(--cmp-datepicker-calendar-time-radius)] px-[var(--cmp-datepicker-calendar-time-paddingX)] py-[var(--cmp-datepicker-calendar-time-paddingY)]
|
|
20563
|
+
"flex flex-1 items-center justify-center gap-[var(--cmp-datepicker-calendar-time-section-gap)] rounded-[var(--cmp-datepicker-calendar-time-radius)] px-[var(--cmp-datepicker-calendar-time-paddingX)] py-[var(--cmp-datepicker-calendar-time-paddingY)] typo-field-sm-medium",
|
|
20415
20564
|
active ? "bg-[var(--cmp-datepicker-calendar-time-bg-selected)]" : "bg-[var(--cmp-datepicker-calendar-time-bg-default)]"
|
|
20416
20565
|
),
|
|
20417
20566
|
children: [
|
|
@@ -20473,7 +20622,7 @@ function RangeCalendar({
|
|
|
20473
20622
|
),
|
|
20474
20623
|
children: [
|
|
20475
20624
|
/* @__PURE__ */ jsxs("div", { className: "relative flex items-center justify-center", children: [
|
|
20476
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-[var(--cmp-datepicker-calendar-gap)]
|
|
20625
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-[var(--cmp-datepicker-calendar-gap)] typo-field-md-medium", children: [
|
|
20477
20626
|
/* @__PURE__ */ jsx(SGhostButton, { icon: "chevronLeft", size: "xxs", ariaLabel: "prevYear", onClick: goPrevYear }),
|
|
20478
20627
|
/* @__PURE__ */ jsx("span", { className: "inline-flex min-w-[40px] items-center justify-center text-center", children: y }),
|
|
20479
20628
|
/* @__PURE__ */ jsx(SGhostButton, { icon: "chevronRight", size: "xxs", ariaLabel: "nextYear", onClick: goNextYear })
|
|
@@ -20570,28 +20719,29 @@ function SDateRangePicker({
|
|
|
20570
20719
|
const resolvedError = error || ruleError !== "";
|
|
20571
20720
|
const resolvedStatus = status ?? (rules && rules.length > 0 ? ruleError !== "" ? "error" : void 0 : void 0);
|
|
20572
20721
|
const baseDims = size === "md" ? {
|
|
20573
|
-
padX:
|
|
20574
|
-
gap:
|
|
20575
|
-
icon:
|
|
20722
|
+
padX: "var(--cmp-datepicker-md-paddingX)",
|
|
20723
|
+
gap: "var(--cmp-datepicker-md-gap)",
|
|
20724
|
+
icon: "var(--cmp-datepicker-md-icon)",
|
|
20576
20725
|
minW: 104,
|
|
20577
20726
|
fieldMinW: 260,
|
|
20578
20727
|
// xl — 값이 `YYYY-MM-DD ~ YYYY-MM-DD` 라 단일 날짜의 두 배가 넘는다.
|
|
20579
20728
|
// 최소너비(260)가 이미 lg 를 넘으므로 상한도 한 등급 위여야 한다
|
|
20580
20729
|
fieldMaxW: "xl",
|
|
20730
|
+
// 요일 폭 계산에 숫자가 필요해 남긴다. 렌더 타이포는 typo 가 맡는다
|
|
20581
20731
|
fontSize: 14,
|
|
20582
|
-
|
|
20583
|
-
radius:
|
|
20732
|
+
typo: "typo-field-md-default",
|
|
20733
|
+
radius: "var(--cmp-datepicker-md-radius)"
|
|
20584
20734
|
} : {
|
|
20585
|
-
padX:
|
|
20586
|
-
gap:
|
|
20587
|
-
icon:
|
|
20735
|
+
padX: "var(--cmp-datepicker-sm-paddingX)",
|
|
20736
|
+
gap: "var(--cmp-datepicker-sm-gap)",
|
|
20737
|
+
icon: "var(--cmp-datepicker-sm-icon)",
|
|
20588
20738
|
minW: 80,
|
|
20589
20739
|
fieldMinW: 216,
|
|
20590
20740
|
// lg — 최소너비 216 이 md 를 넘어 md 로는 담기지 않는다
|
|
20591
20741
|
fieldMaxW: "lg",
|
|
20592
20742
|
fontSize: 12,
|
|
20593
|
-
|
|
20594
|
-
radius:
|
|
20743
|
+
typo: "typo-field-sm-default",
|
|
20744
|
+
radius: "var(--cmp-datepicker-sm-radius)"
|
|
20595
20745
|
};
|
|
20596
20746
|
const weekdayW = showWeekday ? weekdaySuffixWidth(baseDims.fontSize) * 2 : 0;
|
|
20597
20747
|
const dims = {
|
|
@@ -20668,7 +20818,7 @@ function SDateRangePicker({
|
|
|
20668
20818
|
"flex h-full w-full items-center overflow-hidden bg-transparent outline-none",
|
|
20669
20819
|
disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
20670
20820
|
),
|
|
20671
|
-
style: { padding: `0 ${dims.padX}
|
|
20821
|
+
style: { padding: `0 ${dims.padX}`, gap: dims.gap, borderRadius: dims.radius },
|
|
20672
20822
|
children: [
|
|
20673
20823
|
/* @__PURE__ */ jsx(
|
|
20674
20824
|
SIcon,
|
|
@@ -20685,12 +20835,11 @@ function SDateRangePicker({
|
|
|
20685
20835
|
id: triggerTextId,
|
|
20686
20836
|
className: cn(
|
|
20687
20837
|
"flex-1 items-center",
|
|
20838
|
+
dims.typo,
|
|
20688
20839
|
hasDisplay ? "flex" : "block truncate text-center"
|
|
20689
20840
|
),
|
|
20690
20841
|
style: {
|
|
20691
20842
|
minWidth: dims.minW,
|
|
20692
|
-
fontSize: dims.fontSize,
|
|
20693
|
-
lineHeight: `${dims.lineHeight}px`,
|
|
20694
20843
|
color: disabled ? "var(--cmp-datepicker-text-disabled)" : hasDisplay ? "var(--cmp-datepicker-text-default)" : "var(--cmp-field-hint-color)"
|
|
20695
20844
|
},
|
|
20696
20845
|
children: hasDisplay ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -20845,8 +20994,9 @@ var SChipImpl = /* @__PURE__ */ forwardRef(function SChip({
|
|
|
20845
20994
|
{
|
|
20846
20995
|
"aria-disabled": disabled ? "true" : void 0,
|
|
20847
20996
|
className: cn(
|
|
20848
|
-
"box-border inline-flex h-[var(--cmp-chip-height)] max-w-full items-center justify-center gap-[var(--cmp-chip-gap)] overflow-hidden whitespace-nowrap border-[length:var(--cmp-chip-border-width)] border-solid px-[var(--cmp-chip-paddingX)]
|
|
20849
|
-
|
|
20997
|
+
"box-border inline-flex h-[var(--cmp-chip-height)] max-w-full items-center justify-center gap-[var(--cmp-chip-gap)] overflow-hidden whitespace-nowrap border-[length:var(--cmp-chip-border-width)] border-solid px-[var(--cmp-chip-paddingX)] select-none",
|
|
20998
|
+
// chip.typography.focus / .default
|
|
20999
|
+
editing ? "typo-control-xs-default" : "typo-control-xs-medium",
|
|
20850
21000
|
disabled ? "cursor-not-allowed" : "",
|
|
20851
21001
|
className
|
|
20852
21002
|
),
|
|
@@ -21018,7 +21168,7 @@ function SFilePicker({
|
|
|
21018
21168
|
const resolvedError = error || ruleError !== "";
|
|
21019
21169
|
const resolvedStatus = status ?? (rules?.length ? ruleError !== "" ? "error" : void 0 : void 0);
|
|
21020
21170
|
const padX = size === "md" ? "var(--cmp-filepicker-md-paddingX)" : "var(--cmp-filepicker-sm-paddingX)";
|
|
21021
|
-
const iconSize = size === "md" ?
|
|
21171
|
+
const iconSize = size === "md" ? "var(--cmp-filepicker-md-icon)" : "var(--cmp-filepicker-sm-icon)";
|
|
21022
21172
|
const gapCls = size === "md" ? "gap-[var(--cmp-filepicker-md-gap)]" : "gap-[var(--cmp-filepicker-sm-gap)]";
|
|
21023
21173
|
const inlinePlaceholder = inline && !disabled && !hasFiles;
|
|
21024
21174
|
const showListbox = multiple && showMultipleListBox;
|
|
@@ -21072,7 +21222,8 @@ function SFilePicker({
|
|
|
21072
21222
|
{
|
|
21073
21223
|
id: displayTextId,
|
|
21074
21224
|
className: cn(
|
|
21075
|
-
"min-w-0 flex-1 truncate
|
|
21225
|
+
"min-w-0 flex-1 truncate",
|
|
21226
|
+
size === "md" ? "typo-field-md-default" : "typo-field-sm-default",
|
|
21076
21227
|
inlinePlaceholder && "text-[color:var(--cmp-filepicker-text-placeholder)] transition-colors group-hover/filepicker:text-[color:var(--cmp-filepicker-text-default)]"
|
|
21077
21228
|
),
|
|
21078
21229
|
style: inlinePlaceholder ? void 0 : {
|
|
@@ -21246,10 +21397,10 @@ function SKeyValueTable({
|
|
|
21246
21397
|
skipOccupied();
|
|
21247
21398
|
maxCols = Math.max(maxCols, col, occupied.length);
|
|
21248
21399
|
});
|
|
21249
|
-
const radiusClass = radius === "full" ? "rounded-none" : radius === "useTop" ? "rounded-b-[
|
|
21400
|
+
const radiusClass = radius === "full" ? "rounded-none" : radius === "useTop" ? "rounded-b-[var(--cmp-table-radius)] rounded-t-none" : "rounded-[var(--cmp-table-radius)]";
|
|
21250
21401
|
const frameClass = cn(
|
|
21251
21402
|
"overflow-hidden",
|
|
21252
|
-
bordered && "border border-solid border-[color:var(--cmp-table-border-color)]",
|
|
21403
|
+
bordered && "border-[length:var(--cmp-table-border-width)] border-solid border-[color:var(--cmp-table-border-color)]",
|
|
21253
21404
|
radiusClass
|
|
21254
21405
|
);
|
|
21255
21406
|
const table = /* @__PURE__ */ jsxs(
|
|
@@ -21285,7 +21436,7 @@ function SKeyValueTable({
|
|
|
21285
21436
|
paddingBottom: cellPadY
|
|
21286
21437
|
},
|
|
21287
21438
|
children: /* @__PURE__ */ jsxs("div", { className: "flex h-full w-full items-center justify-between gap-[var(--cmp-table-header-gap)]", children: [
|
|
21288
|
-
/* @__PURE__ */ jsxs("div", { className: "inline-flex items-center gap-[
|
|
21439
|
+
/* @__PURE__ */ jsxs("div", { className: "inline-flex items-center gap-[var(--cmp-table-content-gap)]", children: [
|
|
21289
21440
|
/* @__PURE__ */ jsx("span", { className: "text-[12px] font-bold leading-[20px] text-[color:var(--sys-color-fg-primary)]", children: f.label }),
|
|
21290
21441
|
f.required && /* @__PURE__ */ jsx(SIcon, { name: "asterisk", size: 12, color: "var(--sys-color-fg-accent)" })
|
|
21291
21442
|
] }),
|
|
@@ -23393,22 +23544,15 @@ function SToast({
|
|
|
23393
23544
|
...style
|
|
23394
23545
|
},
|
|
23395
23546
|
children: [
|
|
23396
|
-
icon && /* @__PURE__ */ jsx(SIcon, { name: icon, size:
|
|
23397
|
-
/* @__PURE__ */ jsx(
|
|
23398
|
-
"span",
|
|
23399
|
-
{
|
|
23400
|
-
className: "text-[14px] font-medium leading-[24px] text-nowrap",
|
|
23401
|
-
style: { color: content },
|
|
23402
|
-
children: message
|
|
23403
|
-
}
|
|
23404
|
-
),
|
|
23547
|
+
icon && /* @__PURE__ */ jsx(SIcon, { name: icon, size: "var(--cmp-toast-icon)", color: iconColor }),
|
|
23548
|
+
/* @__PURE__ */ jsx("span", { className: "typo-feedback-md-medium text-nowrap", style: { color: content }, children: message }),
|
|
23405
23549
|
link && /* @__PURE__ */ jsx(
|
|
23406
23550
|
"a",
|
|
23407
23551
|
{
|
|
23408
23552
|
href: link,
|
|
23409
23553
|
target: "_blank",
|
|
23410
23554
|
rel: "noopener noreferrer",
|
|
23411
|
-
className: "
|
|
23555
|
+
className: "typo-feedback-md-underline text-nowrap",
|
|
23412
23556
|
style: { color: linkColor },
|
|
23413
23557
|
children: linkLabel || link
|
|
23414
23558
|
}
|
|
@@ -23951,9 +24095,9 @@ var SForm = /* @__PURE__ */ forwardRef(function SForm2({ formClassName, onSubmit
|
|
|
23951
24095
|
) });
|
|
23952
24096
|
});
|
|
23953
24097
|
var SIZE_CONFIG2 = {
|
|
23954
|
-
xs: {
|
|
23955
|
-
sm: {
|
|
23956
|
-
md: {
|
|
24098
|
+
xs: { typo: "typo-control-xs-medium", radius: "var(--cmp-radioButton-radius-sm)" },
|
|
24099
|
+
sm: { typo: "typo-control-xs-medium", radius: "var(--cmp-radioButton-radius-sm)" },
|
|
24100
|
+
md: { typo: "typo-control-sm-default", radius: "var(--cmp-radioButton-radius-md)" }
|
|
23957
24101
|
};
|
|
23958
24102
|
function SRadioButton({
|
|
23959
24103
|
options = [],
|
|
@@ -24002,8 +24146,9 @@ function SRadioButton({
|
|
|
24002
24146
|
onFocus: tooltip ? () => setHoveredValue(o.value) : void 0,
|
|
24003
24147
|
onBlur: tooltip ? () => setHoveredValue(null) : void 0,
|
|
24004
24148
|
className: cn(
|
|
24005
|
-
"relative box-border grow inline-flex items-center justify-center whitespace-nowrap border border-solid
|
|
24006
|
-
|
|
24149
|
+
"relative box-border grow inline-flex items-center justify-center whitespace-nowrap border-(length:--cmp-radioButton-border-width) border-solid transition-colors",
|
|
24150
|
+
s.typo,
|
|
24151
|
+
first ? "" : "ml-(--cmp-radioButton-group-gap)",
|
|
24007
24152
|
selected ? "z-10" : "",
|
|
24008
24153
|
!od && !ro && !selected && "hover:!bg-[var(--cmp-radioButton-bg-hover)] hover:!text-[color:var(--cmp-radioButton-content-hover)] hover:!border-[color:var(--cmp-radioButton-bg-hover)] hover:z-10",
|
|
24009
24154
|
od ? "cursor-not-allowed" : ro ? "cursor-default" : "cursor-pointer"
|
|
@@ -24011,8 +24156,6 @@ function SRadioButton({
|
|
|
24011
24156
|
style: {
|
|
24012
24157
|
height: `var(--cmp-radioButton-${size}-height)`,
|
|
24013
24158
|
padding: `0 var(--cmp-radioButton-${size}-paddingX)`,
|
|
24014
|
-
fontSize: `${s.fontSize}px`,
|
|
24015
|
-
lineHeight: `${s.lineHeight}px`,
|
|
24016
24159
|
borderRadius: [
|
|
24017
24160
|
first ? s.radius : "0",
|
|
24018
24161
|
last ? s.radius : "0",
|
|
@@ -24049,6 +24192,7 @@ function SRadioCard({
|
|
|
24049
24192
|
value,
|
|
24050
24193
|
label,
|
|
24051
24194
|
subtitle,
|
|
24195
|
+
children,
|
|
24052
24196
|
tag,
|
|
24053
24197
|
disabled = false,
|
|
24054
24198
|
name,
|
|
@@ -24076,72 +24220,85 @@ function SRadioCard({
|
|
|
24076
24220
|
};
|
|
24077
24221
|
const textColor = disabled ? "text-(--sys-color-disabled-text)" : null;
|
|
24078
24222
|
return /* @__PURE__ */ jsxs(
|
|
24079
|
-
"
|
|
24223
|
+
"div",
|
|
24080
24224
|
{
|
|
24081
|
-
...cardInteractiveProps,
|
|
24082
|
-
"aria-disabled": disabled || void 0,
|
|
24083
24225
|
className: cn(
|
|
24084
|
-
"box-border flex w-full flex-col rounded-(--cmp-radioCard-radius) border-(length:--cmp-radioCard-border-width) border-solid
|
|
24085
|
-
disabled ? "
|
|
24226
|
+
"box-border flex w-full flex-col rounded-(--cmp-radioCard-radius) border-(length:--cmp-radioCard-border-width) border-solid transition-colors",
|
|
24227
|
+
disabled ? "border-(--cmp-radioCard-border-default) bg-(--cmp-radioCard-bg-disabled)" : checked ? "border-(--cmp-radioCard-border-selected) bg-(--cmp-radioCard-bg-selected)" : "border-(--cmp-radioCard-border-default) bg-(--cmp-radioCard-bg-default) hover:border-(--cmp-radioCard-border-hover) hover:bg-(--cmp-radioCard-bg-hover)",
|
|
24086
24228
|
className
|
|
24087
24229
|
),
|
|
24088
24230
|
style,
|
|
24089
24231
|
children: [
|
|
24090
|
-
/* @__PURE__ */ jsxs(
|
|
24091
|
-
|
|
24092
|
-
|
|
24093
|
-
|
|
24094
|
-
|
|
24095
|
-
|
|
24096
|
-
|
|
24097
|
-
|
|
24098
|
-
|
|
24099
|
-
|
|
24100
|
-
className: "
|
|
24101
|
-
|
|
24102
|
-
|
|
24103
|
-
|
|
24104
|
-
|
|
24105
|
-
|
|
24106
|
-
|
|
24107
|
-
|
|
24108
|
-
|
|
24109
|
-
|
|
24110
|
-
|
|
24111
|
-
|
|
24232
|
+
/* @__PURE__ */ jsxs(
|
|
24233
|
+
"label",
|
|
24234
|
+
{
|
|
24235
|
+
...cardInteractiveProps,
|
|
24236
|
+
"aria-disabled": disabled || void 0,
|
|
24237
|
+
className: cn(
|
|
24238
|
+
"box-border flex w-full flex-col px-(--cmp-radioCard-paddingX) py-(--cmp-radioCard-paddingY)",
|
|
24239
|
+
disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
24240
|
+
),
|
|
24241
|
+
children: [
|
|
24242
|
+
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-(--cmp-radioCard-gap)", children: [
|
|
24243
|
+
native && /* @__PURE__ */ jsx(
|
|
24244
|
+
"input",
|
|
24245
|
+
{
|
|
24246
|
+
type: "radio",
|
|
24247
|
+
name,
|
|
24248
|
+
value: valStr,
|
|
24249
|
+
checked,
|
|
24250
|
+
disabled,
|
|
24251
|
+
onChange: () => onValueChange?.(val),
|
|
24252
|
+
className: "sr-only"
|
|
24253
|
+
}
|
|
24254
|
+
),
|
|
24255
|
+
/* @__PURE__ */ jsx(
|
|
24256
|
+
"span",
|
|
24257
|
+
{
|
|
24258
|
+
className: "flex h-(--cmp-radio-size) w-(--cmp-radio-size) shrink-0 items-center justify-center rounded-(--cmp-radio-radius) border-(length:--cmp-radio-borderWidth) border-solid border-(--rc-dot-border) bg-(--rc-dot-bg)",
|
|
24259
|
+
style: {
|
|
24260
|
+
"--rc-dot-bg": disabled ? "var(--cmp-radio-bg-disabled)" : "var(--cmp-radio-bg-default)",
|
|
24261
|
+
"--rc-dot-border": disabled ? "var(--cmp-radio-border-disabled)" : checked ? "var(--cmp-radio-border-active)" : "var(--cmp-radio-border-default)"
|
|
24262
|
+
},
|
|
24263
|
+
children: checked && /* @__PURE__ */ jsx(
|
|
24264
|
+
"span",
|
|
24265
|
+
{
|
|
24266
|
+
className: "h-(--cmp-radio-dot-size) w-(--cmp-radio-dot-size) rounded-(--cmp-radio-radius) bg-(--rc-dot-fill)",
|
|
24267
|
+
style: {
|
|
24268
|
+
"--rc-dot-fill": disabled ? "var(--cmp-radio-dot-disabled)" : "var(--cmp-radio-dot-default)"
|
|
24269
|
+
}
|
|
24270
|
+
}
|
|
24271
|
+
)
|
|
24272
|
+
}
|
|
24273
|
+
),
|
|
24274
|
+
/* @__PURE__ */ jsxs("span", { className: cn("grid min-w-0", textColor ?? "text-(--cmp-radioCard-label-color)"), children: [
|
|
24275
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "typo-body-md-bold invisible", style: { gridArea: "1 / 1" }, children: label }),
|
|
24276
|
+
/* @__PURE__ */ jsx(
|
|
24277
|
+
"span",
|
|
24278
|
+
{
|
|
24279
|
+
className: checked ? "typo-body-md-bold" : "typo-body-md-semibold",
|
|
24280
|
+
style: { gridArea: "1 / 1" },
|
|
24281
|
+
children: label
|
|
24282
|
+
}
|
|
24283
|
+
)
|
|
24284
|
+
] }),
|
|
24285
|
+
tag && /* @__PURE__ */ jsx(STag, { ...tag, size: "xs", className: "ml-auto" })
|
|
24286
|
+
] }),
|
|
24287
|
+
subtitle && /* @__PURE__ */ jsx(
|
|
24112
24288
|
"span",
|
|
24113
24289
|
{
|
|
24114
|
-
className:
|
|
24115
|
-
|
|
24116
|
-
|
|
24117
|
-
|
|
24290
|
+
className: cn(
|
|
24291
|
+
"typo-body-sm-default pl-(--cmp-radioCard-subtitle-paddingLeft)",
|
|
24292
|
+
textColor ?? "text-(--cmp-radioCard-subtitle-color)"
|
|
24293
|
+
),
|
|
24294
|
+
children: subtitle
|
|
24118
24295
|
}
|
|
24119
24296
|
)
|
|
24120
|
-
|
|
24121
|
-
),
|
|
24122
|
-
/* @__PURE__ */ jsxs("span", { className: cn("grid min-w-0", textColor ?? "text-(--cmp-radioCard-label-color)"), children: [
|
|
24123
|
-
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "typo-body-md-bold invisible", style: { gridArea: "1 / 1" }, children: label }),
|
|
24124
|
-
/* @__PURE__ */ jsx(
|
|
24125
|
-
"span",
|
|
24126
|
-
{
|
|
24127
|
-
className: checked ? "typo-body-md-bold" : "typo-body-md-semibold",
|
|
24128
|
-
style: { gridArea: "1 / 1" },
|
|
24129
|
-
children: label
|
|
24130
|
-
}
|
|
24131
|
-
)
|
|
24132
|
-
] }),
|
|
24133
|
-
tag && /* @__PURE__ */ jsx(STag, { ...tag, size: "xs", className: "ml-auto" })
|
|
24134
|
-
] }),
|
|
24135
|
-
subtitle && /* @__PURE__ */ jsx(
|
|
24136
|
-
"span",
|
|
24137
|
-
{
|
|
24138
|
-
className: cn(
|
|
24139
|
-
"typo-body-sm-default pl-(--cmp-radioCard-subtitle-paddingLeft)",
|
|
24140
|
-
textColor ?? "text-(--cmp-radioCard-subtitle-color)"
|
|
24141
|
-
),
|
|
24142
|
-
children: subtitle
|
|
24297
|
+
]
|
|
24143
24298
|
}
|
|
24144
|
-
)
|
|
24299
|
+
),
|
|
24300
|
+
children != null && children !== false && // 라벨 왼쪽 끝(카드 여백 + 서브타이틀 들여쓰기)에 맞춘다. 서브타이틀과의 간격은 label 의 아래 여백이다
|
|
24301
|
+
/* @__PURE__ */ jsx("div", { className: "box-border w-full pr-(--cmp-radioCard-paddingX) pb-(--cmp-radioCard-paddingY) pl-[calc(var(--cmp-radioCard-paddingX)+var(--cmp-radioCard-subtitle-paddingLeft))]", children })
|
|
24145
24302
|
]
|
|
24146
24303
|
}
|
|
24147
24304
|
);
|
|
@@ -24176,7 +24333,8 @@ function SRadioCardGroup({
|
|
|
24176
24333
|
tag: o.tag,
|
|
24177
24334
|
name: groupName,
|
|
24178
24335
|
disabled: disabled || o.disabled,
|
|
24179
|
-
onValueChange
|
|
24336
|
+
onValueChange,
|
|
24337
|
+
children: o.content
|
|
24180
24338
|
},
|
|
24181
24339
|
String(o.value)
|
|
24182
24340
|
))
|
|
@@ -26515,6 +26673,7 @@ var CHIPFILTER = {
|
|
|
26515
26673
|
dividerHeight: "var(--cmp-chipFilter-divider-height)",
|
|
26516
26674
|
chipHeight: "var(--cmp-chipFilter-chip-height)",
|
|
26517
26675
|
chipRadius: "var(--cmp-chipFilter-chip-radius)",
|
|
26676
|
+
chipPaddingX: "var(--cmp-chipFilter-chip-paddingX)",
|
|
26518
26677
|
chipGap: "var(--cmp-chipFilter-chip-gap)",
|
|
26519
26678
|
chipDefaultBg: "var(--cmp-chipFilter-chip-default-bg)",
|
|
26520
26679
|
chipDefaultBorder: "var(--cmp-chipFilter-chip-default-border)",
|
|
@@ -26525,7 +26684,7 @@ var CHIPFILTER = {
|
|
|
26525
26684
|
chipAppliedBg: "var(--cmp-chipFilter-chip-applied-bg)",
|
|
26526
26685
|
chipAppliedBorder: "var(--cmp-chipFilter-chip-applied-border)",
|
|
26527
26686
|
chipAppliedLabel: "var(--cmp-chipFilter-chip-applied-text-label)",
|
|
26528
|
-
chipAppliedValue: "var(--
|
|
26687
|
+
chipAppliedValue: "var(--cmp-chipFilter-chip-applied-text-data)",
|
|
26529
26688
|
chipDisabledBg: "var(--cmp-chipFilter-chip-disabled-bg)",
|
|
26530
26689
|
chipDisabledBorder: "var(--cmp-chipFilter-chip-disabled-border)",
|
|
26531
26690
|
chipDisabledText: "var(--cmp-chipFilter-chip-disabled-text)",
|
|
@@ -27160,20 +27319,13 @@ var SChipFilter = /* @__PURE__ */ forwardRef(function SChipFilter2({
|
|
|
27160
27319
|
onValueChange: (next) => emitValueAndSearch(field.key, next)
|
|
27161
27320
|
}),
|
|
27162
27321
|
addable && !disabled && !field.disabled && showClear && /* @__PURE__ */ jsx(
|
|
27163
|
-
|
|
27322
|
+
SGhostButton,
|
|
27164
27323
|
{
|
|
27165
|
-
|
|
27166
|
-
"
|
|
27167
|
-
|
|
27168
|
-
|
|
27169
|
-
|
|
27170
|
-
SIcon,
|
|
27171
|
-
{
|
|
27172
|
-
name: "close",
|
|
27173
|
-
size: 12,
|
|
27174
|
-
color: "var(--cmp-ghostButton-default-content)"
|
|
27175
|
-
}
|
|
27176
|
-
)
|
|
27324
|
+
icon: "close",
|
|
27325
|
+
size: "xxs",
|
|
27326
|
+
ariaLabel: `${field.label} \uD544\uD130 \uC81C\uAC70`,
|
|
27327
|
+
className: "shrink-0",
|
|
27328
|
+
onClick: handleClear
|
|
27177
27329
|
}
|
|
27178
27330
|
)
|
|
27179
27331
|
] }, field.key) : /* @__PURE__ */ jsx(
|
|
@@ -27216,7 +27368,7 @@ var SChipFilter = /* @__PURE__ */ forwardRef(function SChipFilter2({
|
|
|
27216
27368
|
{
|
|
27217
27369
|
type: "button",
|
|
27218
27370
|
disabled: disabled || inactiveFields.length === 0,
|
|
27219
|
-
className: "inline-flex shrink-0 cursor-pointer items-center justify-center gap-[var(--cmp-chipFilter-addButton-gap)] whitespace-nowrap border border-solid bg-[var(--cmp-chipFilter-addButton-bg)] px-[var(--cmp-chipFilter-addButton-paddingX)]
|
|
27371
|
+
className: "inline-flex shrink-0 cursor-pointer items-center justify-center gap-[var(--cmp-chipFilter-addButton-gap)] whitespace-nowrap border border-solid bg-[var(--cmp-chipFilter-addButton-bg)] px-[var(--cmp-chipFilter-addButton-paddingX)] typo-control-xs-medium outline-none disabled:cursor-not-allowed",
|
|
27220
27372
|
style: {
|
|
27221
27373
|
minHeight: "var(--cmp-chipFilter-addButton-height)" ,
|
|
27222
27374
|
borderRadius: "var(--cmp-chipFilter-addButton-radius)" ,
|
|
@@ -27228,7 +27380,7 @@ var SChipFilter = /* @__PURE__ */ forwardRef(function SChipFilter2({
|
|
|
27228
27380
|
SIcon,
|
|
27229
27381
|
{
|
|
27230
27382
|
name: "add",
|
|
27231
|
-
size:
|
|
27383
|
+
size: "var(--cmp-chipFilter-addButton-icon)",
|
|
27232
27384
|
color: disabled || inactiveFields.length === 0 ? CHIPFILTER.addTextDisabled : CHIPFILTER.addText
|
|
27233
27385
|
}
|
|
27234
27386
|
),
|
|
@@ -27264,9 +27416,9 @@ var SChipFilter = /* @__PURE__ */ forwardRef(function SChipFilter2({
|
|
|
27264
27416
|
onClick: reset,
|
|
27265
27417
|
className: cn(
|
|
27266
27418
|
"shrink-0",
|
|
27267
|
-
// 부모 flex gap(
|
|
27268
|
-
// 부족한 만큼(
|
|
27269
|
-
hasAddButton && "ml-[calc(
|
|
27419
|
+
// 부모 flex gap(chip-group)은 칩 사이 간격 기준이라, 필터 추가 버튼과의 bar-gap 간격을 맞추려면
|
|
27420
|
+
// 부족한 만큼(bar-gap - chip-group)을 추가로 띄운다. 필터 추가가 없을 땐 divider와 이미 bar-gap이라 불필요.
|
|
27421
|
+
hasAddButton && "ml-[calc(var(--cmp-chipFilter-bar-gap)_-_var(--cmp-chipFilter-chip-group))]"
|
|
27270
27422
|
)
|
|
27271
27423
|
}
|
|
27272
27424
|
)
|
|
@@ -27320,7 +27472,7 @@ function Divider({ inset, top } = {}) {
|
|
|
27320
27472
|
className: cn(
|
|
27321
27473
|
"inline-flex w-px shrink-0 bg-[var(--chipfilter-bar-border)]",
|
|
27322
27474
|
top ? "mt-[2px] self-start" : "my-auto",
|
|
27323
|
-
inset && "mx-[calc(
|
|
27475
|
+
inset && "mx-[calc(var(--cmp-chipFilter-bar-gap)_-_var(--cmp-chipFilter-chip-group))]"
|
|
27324
27476
|
),
|
|
27325
27477
|
style: { height: "var(--chipfilter-divider-height)" }
|
|
27326
27478
|
}
|
|
@@ -27360,87 +27512,97 @@ function FilterChip({
|
|
|
27360
27512
|
const border = disabled ? CHIPFILTER.chipDisabledBorder : warning ? CHIPFILTER.chipWarningBorder : applied ? active ? "var(--color-blue-strong)" : CHIPFILTER.chipAppliedBorder : active ? CHIPFILTER.chipActiveBorder : CHIPFILTER.chipDefaultBorder;
|
|
27361
27513
|
const background = disabled ? CHIPFILTER.chipDisabledBg : applied ? CHIPFILTER.chipAppliedBg : CHIPFILTER.chipDefaultBg;
|
|
27362
27514
|
const textColor = disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipDefaultText;
|
|
27515
|
+
const hasClear = !disabled && showClear && (applied || showClearWhenEmpty);
|
|
27363
27516
|
return /* @__PURE__ */ jsxs(
|
|
27364
|
-
"
|
|
27517
|
+
"div",
|
|
27365
27518
|
{
|
|
27366
|
-
ref: refCallback,
|
|
27367
|
-
type: "button",
|
|
27368
|
-
disabled,
|
|
27369
|
-
"aria-expanded": active,
|
|
27370
27519
|
onPointerDown: (event) => event.stopPropagation(),
|
|
27371
|
-
|
|
27372
|
-
className: "group/chip-filter inline-flex max-w-full shrink-0 cursor-pointer items-center justify-center whitespace-nowrap border border-solid px-[var(--cmp-chipFilter-chip-paddingX)] text-[12px] leading-[20px] outline-none disabled:cursor-not-allowed",
|
|
27520
|
+
className: "inline-flex max-w-full shrink-0 items-stretch whitespace-nowrap border border-solid",
|
|
27373
27521
|
style: {
|
|
27374
27522
|
minHeight: CHIPFILTER.chipHeight,
|
|
27375
27523
|
gap: CHIPFILTER.chipGap,
|
|
27376
27524
|
borderRadius: CHIPFILTER.chipRadius,
|
|
27377
27525
|
borderColor: border,
|
|
27378
27526
|
background,
|
|
27379
|
-
|
|
27527
|
+
paddingRight: hasClear ? CHIPFILTER.chipPaddingX : void 0
|
|
27380
27528
|
},
|
|
27381
27529
|
children: [
|
|
27382
|
-
|
|
27383
|
-
|
|
27530
|
+
/* @__PURE__ */ jsxs(
|
|
27531
|
+
"button",
|
|
27384
27532
|
{
|
|
27385
|
-
|
|
27386
|
-
|
|
27387
|
-
|
|
27533
|
+
ref: refCallback,
|
|
27534
|
+
type: "button",
|
|
27535
|
+
disabled,
|
|
27536
|
+
"aria-expanded": active,
|
|
27537
|
+
onClick: onOpen,
|
|
27538
|
+
className: "inline-flex min-w-0 cursor-pointer items-center justify-center border-none bg-transparent p-0 typo-body-sm-default outline-none disabled:cursor-not-allowed",
|
|
27539
|
+
style: {
|
|
27540
|
+
gap: CHIPFILTER.chipGap,
|
|
27541
|
+
paddingLeft: CHIPFILTER.chipPaddingX,
|
|
27542
|
+
paddingRight: hasClear ? void 0 : CHIPFILTER.chipPaddingX,
|
|
27543
|
+
color: textColor
|
|
27544
|
+
},
|
|
27545
|
+
children: [
|
|
27546
|
+
field.required && /* @__PURE__ */ jsx(
|
|
27547
|
+
SIcon,
|
|
27548
|
+
{
|
|
27549
|
+
name: "asterisk",
|
|
27550
|
+
size: "var(--cmp-chipFilter-chip-icon-essential)",
|
|
27551
|
+
color: disabled ? CHIPFILTER.chipDisabledText : "var(--cmp-tag-darkblue-content)"
|
|
27552
|
+
}
|
|
27553
|
+
),
|
|
27554
|
+
applied ? /* @__PURE__ */ jsxs("span", { className: "inline-flex min-w-0 items-center gap-[4px] truncate", children: [
|
|
27555
|
+
/* @__PURE__ */ jsx(
|
|
27556
|
+
"span",
|
|
27557
|
+
{
|
|
27558
|
+
className: "typo-body-sm-bold",
|
|
27559
|
+
style: {
|
|
27560
|
+
color: disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipAppliedLabel
|
|
27561
|
+
},
|
|
27562
|
+
children: field.label
|
|
27563
|
+
}
|
|
27564
|
+
),
|
|
27565
|
+
/* @__PURE__ */ jsx(
|
|
27566
|
+
"span",
|
|
27567
|
+
{
|
|
27568
|
+
style: {
|
|
27569
|
+
color: disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipAppliedLabel
|
|
27570
|
+
},
|
|
27571
|
+
children: ":"
|
|
27572
|
+
}
|
|
27573
|
+
),
|
|
27574
|
+
/* @__PURE__ */ jsx(
|
|
27575
|
+
"span",
|
|
27576
|
+
{
|
|
27577
|
+
className: "min-w-0 truncate typo-body-sm-bold",
|
|
27578
|
+
style: {
|
|
27579
|
+
color: disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipAppliedValue
|
|
27580
|
+
},
|
|
27581
|
+
children: valueText
|
|
27582
|
+
}
|
|
27583
|
+
)
|
|
27584
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
27585
|
+
/* @__PURE__ */ jsx("span", { className: cn("min-w-0 truncate", active && "typo-body-sm-bold"), children: field.label }),
|
|
27586
|
+
/* @__PURE__ */ jsx(
|
|
27587
|
+
SIcon,
|
|
27588
|
+
{
|
|
27589
|
+
name: "caretDown",
|
|
27590
|
+
size: "var(--cmp-chipFilter-chip-icon-caret)",
|
|
27591
|
+
color: disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipCaret
|
|
27592
|
+
}
|
|
27593
|
+
)
|
|
27594
|
+
] })
|
|
27595
|
+
]
|
|
27388
27596
|
}
|
|
27389
27597
|
),
|
|
27390
|
-
|
|
27391
|
-
|
|
27392
|
-
"span",
|
|
27393
|
-
{
|
|
27394
|
-
className: "font-bold",
|
|
27395
|
-
style: { color: disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipAppliedLabel },
|
|
27396
|
-
children: field.label
|
|
27397
|
-
}
|
|
27398
|
-
),
|
|
27399
|
-
/* @__PURE__ */ jsx(
|
|
27400
|
-
"span",
|
|
27401
|
-
{
|
|
27402
|
-
style: { color: disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipAppliedLabel },
|
|
27403
|
-
children: ":"
|
|
27404
|
-
}
|
|
27405
|
-
),
|
|
27406
|
-
/* @__PURE__ */ jsx(
|
|
27407
|
-
"span",
|
|
27408
|
-
{
|
|
27409
|
-
className: "min-w-0 truncate font-bold",
|
|
27410
|
-
style: { color: disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipAppliedValue },
|
|
27411
|
-
children: valueText
|
|
27412
|
-
}
|
|
27413
|
-
)
|
|
27414
|
-
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
27415
|
-
/* @__PURE__ */ jsx("span", { className: cn("min-w-0 truncate", active && "font-bold"), children: field.label }),
|
|
27416
|
-
/* @__PURE__ */ jsx(
|
|
27417
|
-
SIcon,
|
|
27418
|
-
{
|
|
27419
|
-
name: "caretDown",
|
|
27420
|
-
size: 12,
|
|
27421
|
-
color: disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipCaret
|
|
27422
|
-
}
|
|
27423
|
-
)
|
|
27424
|
-
] }),
|
|
27425
|
-
!disabled && showClear && (applied || showClearWhenEmpty) && /* @__PURE__ */ jsx(
|
|
27426
|
-
"span",
|
|
27598
|
+
hasClear && /* @__PURE__ */ jsx(
|
|
27599
|
+
SGhostButton,
|
|
27427
27600
|
{
|
|
27428
|
-
|
|
27429
|
-
|
|
27430
|
-
|
|
27431
|
-
className: "
|
|
27432
|
-
onClick:
|
|
27433
|
-
event.preventDefault();
|
|
27434
|
-
event.stopPropagation();
|
|
27435
|
-
onClear();
|
|
27436
|
-
},
|
|
27437
|
-
onKeyDown: (event) => {
|
|
27438
|
-
if (event.key !== "Enter" && event.key !== " ") return;
|
|
27439
|
-
event.preventDefault();
|
|
27440
|
-
event.stopPropagation();
|
|
27441
|
-
onClear();
|
|
27442
|
-
},
|
|
27443
|
-
children: /* @__PURE__ */ jsx(SIcon, { name: "close", size: 12, color: "var(--cmp-ghostButton-default-content)" })
|
|
27601
|
+
icon: "close",
|
|
27602
|
+
size: "xxs",
|
|
27603
|
+
ariaLabel: `${field.label} \uD544\uD130 \uC9C0\uC6B0\uAE30`,
|
|
27604
|
+
className: "shrink-0 self-center",
|
|
27605
|
+
onClick: onClear
|
|
27444
27606
|
}
|
|
27445
27607
|
)
|
|
27446
27608
|
]
|
|
@@ -27820,47 +27982,18 @@ function InlineDatePresetFilter({
|
|
|
27820
27982
|
const badgeBackground = disabled ? CHIPFILTER.chipDisabledBg : CHIPFILTER.chipAppliedBg;
|
|
27821
27983
|
const badgeLabelColor = disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipAppliedLabel;
|
|
27822
27984
|
const badgeValueColor = disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipAppliedValue;
|
|
27823
|
-
const
|
|
27824
|
-
|
|
27825
|
-
|
|
27826
|
-
|
|
27827
|
-
|
|
27828
|
-
|
|
27829
|
-
|
|
27830
|
-
|
|
27831
|
-
|
|
27832
|
-
|
|
27833
|
-
|
|
27834
|
-
|
|
27835
|
-
children: [
|
|
27836
|
-
/* @__PURE__ */ jsxs("span", { className: "font-bold", children: [
|
|
27837
|
-
field.label,
|
|
27838
|
-
":"
|
|
27839
|
-
] }),
|
|
27840
|
-
/* @__PURE__ */ jsx("span", { className: "font-bold", style: { color: badgeValueColor }, children: displayValue(field, value) }),
|
|
27841
|
-
!disabled && showClear && /* @__PURE__ */ jsx(
|
|
27842
|
-
"span",
|
|
27843
|
-
{
|
|
27844
|
-
role: "button",
|
|
27845
|
-
tabIndex: 0,
|
|
27846
|
-
"aria-label": `${field.label} \uD544\uD130 \uC9C0\uC6B0\uAE30`,
|
|
27847
|
-
className: "inline-flex size-[16px] items-center justify-center rounded-[var(--cmp-ghostButton-radius-sm)]",
|
|
27848
|
-
onClick: (event) => {
|
|
27849
|
-
event.stopPropagation();
|
|
27850
|
-
onClear();
|
|
27851
|
-
},
|
|
27852
|
-
onKeyDown: (event) => {
|
|
27853
|
-
if (event.key !== "Enter" && event.key !== " ") return;
|
|
27854
|
-
event.preventDefault();
|
|
27855
|
-
event.stopPropagation();
|
|
27856
|
-
onClear();
|
|
27857
|
-
},
|
|
27858
|
-
children: /* @__PURE__ */ jsx(SIcon, { name: "close", size: 12, color: "var(--cmp-ghostButton-default-content)" })
|
|
27859
|
-
}
|
|
27860
|
-
)
|
|
27861
|
-
]
|
|
27862
|
-
}
|
|
27863
|
-
);
|
|
27985
|
+
const hasClear = !disabled && showClear;
|
|
27986
|
+
const badgeTextStyle = {
|
|
27987
|
+
paddingLeft: CHIPFILTER.chipPaddingX,
|
|
27988
|
+
paddingRight: hasClear ? void 0 : CHIPFILTER.chipPaddingX
|
|
27989
|
+
};
|
|
27990
|
+
const badgeText = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
27991
|
+
/* @__PURE__ */ jsxs("span", { className: "typo-body-sm-bold", children: [
|
|
27992
|
+
field.label,
|
|
27993
|
+
":"
|
|
27994
|
+
] }),
|
|
27995
|
+
/* @__PURE__ */ jsx("span", { className: "typo-body-sm-bold", style: { color: badgeValueColor }, children: displayValue(field, value) })
|
|
27996
|
+
] });
|
|
27864
27997
|
return /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-[8px]", children: [
|
|
27865
27998
|
/* @__PURE__ */ jsx(
|
|
27866
27999
|
SRadioButton,
|
|
@@ -27872,43 +28005,71 @@ function InlineDatePresetFilter({
|
|
|
27872
28005
|
onValueChange: (next) => selectPreset(String(next))
|
|
27873
28006
|
}
|
|
27874
28007
|
),
|
|
27875
|
-
applied && (
|
|
27876
|
-
|
|
27877
|
-
|
|
27878
|
-
|
|
27879
|
-
|
|
27880
|
-
|
|
27881
|
-
|
|
27882
|
-
|
|
27883
|
-
|
|
27884
|
-
|
|
27885
|
-
|
|
27886
|
-
|
|
27887
|
-
|
|
27888
|
-
|
|
27889
|
-
|
|
27890
|
-
|
|
27891
|
-
|
|
27892
|
-
|
|
27893
|
-
|
|
27894
|
-
|
|
27895
|
-
|
|
27896
|
-
|
|
27897
|
-
|
|
27898
|
-
|
|
27899
|
-
|
|
27900
|
-
|
|
27901
|
-
onSelect: (range) => {
|
|
27902
|
-
setSelectedId(null);
|
|
27903
|
-
onValueChange(range);
|
|
27904
|
-
setPickerOpen(false);
|
|
28008
|
+
applied && // 뱃지 모양(테두리·배경)은 바깥이 맡고, 라벨·값 칸과 지우기 × 를 형제로 둔다 — FilterChip 과
|
|
28009
|
+
// 같은 이유로, 캘린더를 여는 버튼 안에 × 를 넣지 않는다.
|
|
28010
|
+
/* @__PURE__ */ jsxs(
|
|
28011
|
+
"span",
|
|
28012
|
+
{
|
|
28013
|
+
className: "inline-flex shrink-0 items-stretch gap-[4px] whitespace-nowrap border border-solid typo-body-sm-default",
|
|
28014
|
+
style: {
|
|
28015
|
+
minHeight: CHIPFILTER.chipHeight,
|
|
28016
|
+
borderRadius: CHIPFILTER.chipRadius,
|
|
28017
|
+
borderColor: badgeBorder,
|
|
28018
|
+
background: badgeBackground,
|
|
28019
|
+
color: badgeLabelColor,
|
|
28020
|
+
paddingRight: hasClear ? CHIPFILTER.chipPaddingX : void 0
|
|
28021
|
+
},
|
|
28022
|
+
children: [
|
|
28023
|
+
rangeValue ? (
|
|
28024
|
+
// 눌렀을 때 캘린더가 열려 기간을 직접 다시 고를 수 있게 한다. 직접 고르면 프리셋 선택은 해제된다.
|
|
28025
|
+
/* @__PURE__ */ jsxs(RPopover13.Root, { open: pickerOpen, onOpenChange: setPickerOpen, children: [
|
|
28026
|
+
/* @__PURE__ */ jsx(RPopover13.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
28027
|
+
"button",
|
|
28028
|
+
{
|
|
28029
|
+
type: "button",
|
|
28030
|
+
disabled,
|
|
28031
|
+
className: "inline-flex cursor-pointer items-center gap-[4px] border-none bg-transparent p-0 outline-none disabled:cursor-not-allowed",
|
|
28032
|
+
style: badgeTextStyle,
|
|
28033
|
+
children: badgeText
|
|
27905
28034
|
}
|
|
27906
|
-
}
|
|
27907
|
-
|
|
27908
|
-
|
|
27909
|
-
|
|
27910
|
-
|
|
27911
|
-
|
|
28035
|
+
) }),
|
|
28036
|
+
/* @__PURE__ */ jsx(RPopover13.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
|
|
28037
|
+
RPopover13.Content,
|
|
28038
|
+
{
|
|
28039
|
+
side: "bottom",
|
|
28040
|
+
align: "start",
|
|
28041
|
+
sideOffset: 4,
|
|
28042
|
+
className: cn("z-50", FLOATING_SLIDE_ANIM),
|
|
28043
|
+
children: /* @__PURE__ */ jsx(
|
|
28044
|
+
RangeCalendar,
|
|
28045
|
+
{
|
|
28046
|
+
value: rangeValue,
|
|
28047
|
+
selectable: field.selectable,
|
|
28048
|
+
maxRange: field.maxRange,
|
|
28049
|
+
onSelect: (range) => {
|
|
28050
|
+
setSelectedId(null);
|
|
28051
|
+
onValueChange(range);
|
|
28052
|
+
setPickerOpen(false);
|
|
28053
|
+
}
|
|
28054
|
+
}
|
|
28055
|
+
)
|
|
28056
|
+
}
|
|
28057
|
+
) })
|
|
28058
|
+
] })
|
|
28059
|
+
) : /* @__PURE__ */ jsx("span", { className: "inline-flex items-center gap-[4px]", style: badgeTextStyle, children: badgeText }),
|
|
28060
|
+
hasClear && /* @__PURE__ */ jsx(
|
|
28061
|
+
SGhostButton,
|
|
28062
|
+
{
|
|
28063
|
+
icon: "close",
|
|
28064
|
+
size: "xxs",
|
|
28065
|
+
ariaLabel: `${field.label} \uD544\uD130 \uC9C0\uC6B0\uAE30`,
|
|
28066
|
+
className: "shrink-0 self-center",
|
|
28067
|
+
onClick: onClear
|
|
28068
|
+
}
|
|
28069
|
+
)
|
|
28070
|
+
]
|
|
28071
|
+
}
|
|
28072
|
+
)
|
|
27912
28073
|
] });
|
|
27913
28074
|
}
|
|
27914
28075
|
var MATCH_MODE_OPTIONS = [
|
|
@@ -27997,7 +28158,7 @@ function KeywordEditor({
|
|
|
27997
28158
|
/* @__PURE__ */ jsx(
|
|
27998
28159
|
"span",
|
|
27999
28160
|
{
|
|
28000
|
-
className: "shrink-0 whitespace-nowrap
|
|
28161
|
+
className: "shrink-0 whitespace-nowrap typo-body-sm-medium",
|
|
28001
28162
|
style: { color: CHIPFILTER.listboxLabel },
|
|
28002
28163
|
children: "\uAC80\uC0C9 \uC870\uAC74 :"
|
|
28003
28164
|
}
|
|
@@ -28057,7 +28218,7 @@ function KeywordEntryRow({
|
|
|
28057
28218
|
return /* @__PURE__ */ jsxs(
|
|
28058
28219
|
"div",
|
|
28059
28220
|
{
|
|
28060
|
-
className: "group flex w-full items-center justify-between gap-[8px]
|
|
28221
|
+
className: "group flex w-full items-center justify-between gap-[8px] typo-body-sm-default",
|
|
28061
28222
|
style: {
|
|
28062
28223
|
paddingTop: CHIPFILTER.itemPaddingY,
|
|
28063
28224
|
paddingBottom: CHIPFILTER.itemPaddingY,
|
|
@@ -28068,13 +28229,13 @@ function KeywordEntryRow({
|
|
|
28068
28229
|
children: [
|
|
28069
28230
|
/* @__PURE__ */ jsx("span", { className: cn("min-w-0 truncate", !disabled && "group-hover:font-bold"), children: label }),
|
|
28070
28231
|
!disabled && /* @__PURE__ */ jsx(
|
|
28071
|
-
|
|
28232
|
+
SGhostButton,
|
|
28072
28233
|
{
|
|
28073
|
-
|
|
28074
|
-
"
|
|
28075
|
-
|
|
28076
|
-
|
|
28077
|
-
|
|
28234
|
+
icon: "close",
|
|
28235
|
+
size: "xxs",
|
|
28236
|
+
ariaLabel: `${label} \uC0AD\uC81C`,
|
|
28237
|
+
className: "invisible shrink-0 group-hover:visible",
|
|
28238
|
+
onClick: onRemove
|
|
28078
28239
|
}
|
|
28079
28240
|
)
|
|
28080
28241
|
]
|
|
@@ -28083,7 +28244,7 @@ function KeywordEntryRow({
|
|
|
28083
28244
|
}
|
|
28084
28245
|
var OPTION_SEARCH_THRESHOLD = 11;
|
|
28085
28246
|
var filterFlatOptions = (flat, query) => filterDepthRows(flat, (option) => option.label.toLowerCase().includes(query));
|
|
28086
|
-
var depthPaddingLeft = (depth) => depth === 1 ?
|
|
28247
|
+
var depthPaddingLeft = (depth) => LIST_BOX_ITEM_PADDING_LEFT[depth === 1 ? 1 : depth === 2 ? 2 : 3];
|
|
28087
28248
|
function OptionList({
|
|
28088
28249
|
field,
|
|
28089
28250
|
value,
|
|
@@ -28299,14 +28460,14 @@ function OptionCheckbox({ checked, disabled }) {
|
|
|
28299
28460
|
"span",
|
|
28300
28461
|
{
|
|
28301
28462
|
className: cn(
|
|
28302
|
-
"inline-flex size-
|
|
28463
|
+
"inline-flex size-(--cmp-checkbox-size) shrink-0 items-center justify-center rounded-(--cmp-checkbox-radius) border-(length:--cmp-checkbox-borderWidth) border-solid",
|
|
28303
28464
|
disabled ? "border-[color:var(--cmp-checkbox-border-disabled)] bg-[var(--cmp-checkbox-bg-disabled)]" : filled ? "border-[color:var(--cmp-checkbox-checked-bg-default)] bg-[var(--cmp-checkbox-checked-bg-default)]" : "border-[color:var(--cmp-checkbox-unchecked-border-default)] bg-[var(--cmp-checkbox-unchecked-bg-default)]"
|
|
28304
28465
|
),
|
|
28305
28466
|
children: filled && /* @__PURE__ */ jsx(
|
|
28306
28467
|
SIcon,
|
|
28307
28468
|
{
|
|
28308
28469
|
name: checked === null ? "checkboxIndeterminate" : "checkboxCheck",
|
|
28309
|
-
size:
|
|
28470
|
+
size: "var(--cmp-checkbox-icon)",
|
|
28310
28471
|
color: disabled ? "var(--cmp-checkbox-checked-icon-disabled)" : "var(--cmp-checkbox-checked-icon-default)"
|
|
28311
28472
|
}
|
|
28312
28473
|
)
|
|
@@ -28351,8 +28512,8 @@ function MenuItem({
|
|
|
28351
28512
|
onMouseEnter,
|
|
28352
28513
|
onClick,
|
|
28353
28514
|
className: cn(
|
|
28354
|
-
"flex w-full min-w-0 cursor-pointer items-center gap-[8px] border-none bg-transparent text-left
|
|
28355
|
-
selected ? "
|
|
28515
|
+
"flex w-full min-w-0 cursor-pointer items-center gap-[8px] border-none bg-transparent text-left outline-none disabled:cursor-not-allowed",
|
|
28516
|
+
selected ? "typo-body-sm-bold" : "typo-body-sm-default",
|
|
28356
28517
|
!disabled && "hover:font-bold"
|
|
28357
28518
|
),
|
|
28358
28519
|
style: {
|
|
@@ -28589,7 +28750,7 @@ var SChipInput = /* @__PURE__ */ forwardRef(function SChipInput2({
|
|
|
28589
28750
|
labelPosition,
|
|
28590
28751
|
subLabel,
|
|
28591
28752
|
labelWidth,
|
|
28592
|
-
labelHeight: `calc(var(--cmp-chipInput-${size}-minHeight) +
|
|
28753
|
+
labelHeight: `calc(var(--cmp-chipInput-${size}-minHeight) + var(--cmp-chipInput-borderWidth) * 2)`,
|
|
28593
28754
|
icon,
|
|
28594
28755
|
iconColor,
|
|
28595
28756
|
labelTooltip,
|
|
@@ -28674,8 +28835,8 @@ var SChipInput = /* @__PURE__ */ forwardRef(function SChipInput2({
|
|
|
28674
28835
|
{
|
|
28675
28836
|
"aria-hidden": true,
|
|
28676
28837
|
className: cn(
|
|
28677
|
-
"invisible col-start-1 row-start-1 whitespace-pre
|
|
28678
|
-
size === "md" ? "
|
|
28838
|
+
"invisible col-start-1 row-start-1 whitespace-pre",
|
|
28839
|
+
size === "md" ? "typo-field-md-default" : "typo-field-sm-default"
|
|
28679
28840
|
),
|
|
28680
28841
|
children: inputValue !== "" ? inputValue : values.length === 0 ? placeholder : ""
|
|
28681
28842
|
}
|
|
@@ -28694,9 +28855,9 @@ var SChipInput = /* @__PURE__ */ forwardRef(function SChipInput2({
|
|
|
28694
28855
|
"aria-activedescendant": showDropdown && activeIndex >= 0 ? activeOptionId : void 0,
|
|
28695
28856
|
"aria-autocomplete": "list",
|
|
28696
28857
|
className: cn(
|
|
28697
|
-
"s-chip-input__input col-start-1 row-start-1 w-full border-0 bg-transparent p-0
|
|
28858
|
+
"s-chip-input__input col-start-1 row-start-1 w-full border-0 bg-transparent p-0 text-(--cmp-chip-content-focus) outline-none placeholder:text-(--cmp-chipInput-text-placeholder) disabled:cursor-not-allowed",
|
|
28698
28859
|
AUTOFILL_RESET_CLASS,
|
|
28699
|
-
size === "md" ? "
|
|
28860
|
+
size === "md" ? "typo-field-md-default" : "typo-field-sm-default"
|
|
28700
28861
|
),
|
|
28701
28862
|
style: {
|
|
28702
28863
|
minWidth: "1ch",
|
|
@@ -28866,7 +29027,7 @@ var SChipInput = /* @__PURE__ */ forwardRef(function SChipInput2({
|
|
|
28866
29027
|
"aria-selected": selected || active,
|
|
28867
29028
|
tabIndex: -1,
|
|
28868
29029
|
className: cn(
|
|
28869
|
-
"s-chip-input__suggestion-item flex shrink-0 cursor-pointer items-center gap-
|
|
29030
|
+
"s-chip-input__suggestion-item flex shrink-0 cursor-pointer items-center gap-(--cmp-listBoxItem-gap) overflow-hidden text-ellipsis whitespace-nowrap py-(--cmp-listBoxItem-paddingY) pl-(--cmp-listBoxItem-paddingLeft-depth1) pr-(--cmp-listBoxItem-paddingRight) typo-field-sm-default",
|
|
28870
29031
|
selected ? "cursor-default overflow-visible font-bold text-(--cmp-listBoxItem-content-selected)" : active ? "bg-(--cmp-listBoxItem-bg-hover) font-medium text-(--cmp-listBoxItem-content-hover)" : "text-(--cmp-listBoxItem-content-default)"
|
|
28871
29032
|
),
|
|
28872
29033
|
onMouseDown: (e) => {
|
|
@@ -29075,7 +29236,7 @@ var TIMEPICKER_SIZE_CONFIG = {
|
|
|
29075
29236
|
gap: V4("sm-gap"),
|
|
29076
29237
|
icon: V4("sm-icon"),
|
|
29077
29238
|
radius: V4("sm-radius"),
|
|
29078
|
-
|
|
29239
|
+
typography: "typo-field-sm-default",
|
|
29079
29240
|
fontSize: 12,
|
|
29080
29241
|
lineHeight: 20,
|
|
29081
29242
|
minWidth: 80,
|
|
@@ -29088,7 +29249,7 @@ var TIMEPICKER_SIZE_CONFIG = {
|
|
|
29088
29249
|
gap: V4("md-gap"),
|
|
29089
29250
|
icon: V4("md-icon"),
|
|
29090
29251
|
radius: V4("md-radius"),
|
|
29091
|
-
|
|
29252
|
+
typography: "typo-field-md-default",
|
|
29092
29253
|
fontSize: 14,
|
|
29093
29254
|
lineHeight: 24,
|
|
29094
29255
|
minWidth: 96,
|
|
@@ -29419,11 +29580,9 @@ function STimePicker({
|
|
|
29419
29580
|
"span",
|
|
29420
29581
|
{
|
|
29421
29582
|
id: triggerTextId,
|
|
29422
|
-
className: "flex-1 truncate text-center",
|
|
29583
|
+
className: cn("flex-1 truncate text-center", dims.typography),
|
|
29423
29584
|
style: {
|
|
29424
29585
|
minWidth: dims.minWidth,
|
|
29425
|
-
fontSize: dims.fontSize,
|
|
29426
|
-
lineHeight: `${dims.lineHeight}px`,
|
|
29427
29586
|
color: disabled ? "var(--cmp-timepicker-text-disabled)" : hasValue ? "var(--cmp-timepicker-text-default)" : "var(--cmp-field-hint-color)"
|
|
29428
29587
|
},
|
|
29429
29588
|
children: hasValue ? displayText : placeholder
|
|
@@ -29527,7 +29686,7 @@ function RangeTimeSelector({
|
|
|
29527
29686
|
className: "flex flex-col items-center",
|
|
29528
29687
|
style: { gap: "var(--cmp-timepicker-selector-range-heading-gap)" },
|
|
29529
29688
|
children: [
|
|
29530
|
-
/* @__PURE__ */ jsx("div", { className: "whitespace-nowrap text-center
|
|
29689
|
+
/* @__PURE__ */ jsx("div", { className: "whitespace-nowrap text-center typo-field-sm-bold text-[var(--cmp-timepicker-selector-range-heading-color)]", children: title }),
|
|
29531
29690
|
/* @__PURE__ */ jsx(
|
|
29532
29691
|
TimeListbox,
|
|
29533
29692
|
{
|
|
@@ -29694,11 +29853,9 @@ function STimeRangePicker({
|
|
|
29694
29853
|
"span",
|
|
29695
29854
|
{
|
|
29696
29855
|
id: triggerTextId,
|
|
29697
|
-
className: "flex-1 truncate text-center",
|
|
29856
|
+
className: cn("flex-1 truncate text-center", dims.typography),
|
|
29698
29857
|
style: {
|
|
29699
29858
|
minWidth: dims.minWidth,
|
|
29700
|
-
fontSize: dims.fontSize,
|
|
29701
|
-
lineHeight: `${dims.lineHeight}px`,
|
|
29702
29859
|
color: disabled ? "var(--cmp-timepicker-text-disabled)" : hasValue ? "var(--cmp-timepicker-text-default)" : "var(--cmp-field-hint-color)"
|
|
29703
29860
|
},
|
|
29704
29861
|
children: hasValue ? displayText : placeholder
|