@telepix-lab/telepix-ui 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/button/index.d.ts +1 -0
- package/dist/cjs/button/types.d.ts +5 -1
- package/dist/cjs/client.js +90 -87
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +44 -28
- package/dist/cjs/select/types.d.ts +2 -0
- package/dist/cjs/state-color-container/index.d.ts +6 -0
- package/dist/client.d.ts +2 -0
- package/dist/color.css +1 -1
- package/dist/esm/button/index.d.ts +1 -0
- package/dist/esm/button/types.d.ts +5 -1
- package/dist/esm/client.js +90 -87
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +46 -31
- package/dist/esm/select/types.d.ts +2 -0
- package/dist/esm/state-color-container/index.d.ts +6 -0
- package/dist/index.d.ts +13 -2
- package/dist/styles.css +1 -25
- package/dist/theme.css +1 -7
- package/package.json +1 -1
|
@@ -7,9 +7,13 @@ export type ButtonSize = (typeof BUTTON_SIZES)[keyof typeof BUTTON_SIZES];
|
|
|
7
7
|
export declare const BUTTON_VARIANTS: {
|
|
8
8
|
readonly ACCENT: "accent";
|
|
9
9
|
readonly OUTLINE: "outline";
|
|
10
|
+
readonly OUTLINE_TO_ACCENT: "outline_to_accent";
|
|
10
11
|
readonly GHOST: "ghost";
|
|
11
12
|
readonly THUMBNAIL_GHOST: "thumbnail_ghost";
|
|
13
|
+
readonly GHOST_TO_ACCENT: "ghost_to_accent";
|
|
12
14
|
readonly SUBTLE_FILLED: "subtle_filled";
|
|
13
|
-
readonly
|
|
15
|
+
readonly OUTLINE_ACCENT: "outline_accent";
|
|
16
|
+
readonly GHOST_ACCENT: "ghost_accent";
|
|
17
|
+
readonly GHOST_DIM: "ghost_dim";
|
|
14
18
|
};
|
|
15
19
|
export type ButtonVariant = (typeof BUTTON_VARIANTS)[keyof typeof BUTTON_VARIANTS];
|
package/dist/cjs/client.js
CHANGED
|
@@ -12069,6 +12069,12 @@ function cn(...inputs) {
|
|
|
12069
12069
|
return twMerge(clsx(inputs));
|
|
12070
12070
|
}
|
|
12071
12071
|
|
|
12072
|
+
const StateColorContainer = ({ isInverted, className, }) => {
|
|
12073
|
+
return (jsxRuntime.jsx("div", { className: cn("absolute left-0 top-0 right-0 bottom-0 inset-0 pointer-events-none z-0", isInverted
|
|
12074
|
+
? "group-hover/state:bg-fill-invert-hovered group-active/state:bg-fill-invert-pressed bg-fill-invert-default group-aria-selected/state:bg-fill-invert-selected"
|
|
12075
|
+
: "group-hover/state:bg-fill-hovered bg-fill-default group-active/state:bg-fill-pressed group-aria-selected/state:bg-fill-selected", className) }));
|
|
12076
|
+
};
|
|
12077
|
+
|
|
12072
12078
|
const RadioGroupContext = React.createContext({ value: "", disabled: false });
|
|
12073
12079
|
/**
|
|
12074
12080
|
* 라디오 버튼 그룹을 생성하는 컴포넌트입니다.<br/>
|
|
@@ -12096,7 +12102,8 @@ const RadioItem = React.forwardRef(({ label, labelClassName, wrapperClassName, .
|
|
|
12096
12102
|
const randomId = id ?? React.useId();
|
|
12097
12103
|
const isSelected = React.useContext(RadioGroupContext).value === value;
|
|
12098
12104
|
const isDisabled = React.useContext(RadioGroupContext).disabled || disabled || false;
|
|
12099
|
-
return (jsxRuntime.jsxs("div", { className: cn("flex items-center gap-1.5 cursor-pointer bg-transparent border-none", wrapperClassName), children: [jsxRuntime.jsx(Item2, { ...restProps, id: randomId, ref: ref, value: value, disabled: isDisabled, className: cn("bg-transparent border-none p-
|
|
12105
|
+
return (jsxRuntime.jsxs("div", { className: cn("flex items-center gap-1.5 cursor-pointer bg-transparent border-none py-1 pr-2 group/state relative", wrapperClassName), children: [jsxRuntime.jsx(Item2, { ...restProps, id: randomId, ref: ref, value: value, disabled: isDisabled, className: cn("bg-transparent border-none p-1.5 flex items-center outline-none justify-center cursor-pointer", className), children: isDisabled ? (jsxRuntime.jsx(CircleBackslashIcon, { className: "text-comp-disabled" })) : isSelected ? (jsxRuntime.jsx(RadiobuttonIcon, { className: "text-comp-mono-default" })) : (jsxRuntime.jsx(CircleIcon, { className: "text-comp-mono-default" })) }), label && (jsxRuntime.jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", isDisabled && "text-comp-disabled cursor-default", labelClassName), htmlFor: randomId, children: label })), jsxRuntime.jsx(StateColorContainer, { className: cn("rounded-lg", isDisabled &&
|
|
12106
|
+
"bg-fill-disabled group-hover/state:bg-fill-disabled group-active/state:bg-fill-disabled") })] }));
|
|
12100
12107
|
});
|
|
12101
12108
|
RadioGroup.displayName = "RadioGroup";
|
|
12102
12109
|
RadioItem.displayName = "RadioItem";
|
|
@@ -12303,7 +12310,7 @@ const Checkbox = React.forwardRef(({ label, labelClassName, wrapperClassName, ..
|
|
|
12303
12310
|
return (jsxRuntime.jsx(SquareMinus, { className: "size-full fill-transparent text-comp-disabled cursor-default" }));
|
|
12304
12311
|
}
|
|
12305
12312
|
else if (checked) {
|
|
12306
|
-
return (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "size-full fill-transparent text-comp-mono-
|
|
12313
|
+
return (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "size-full fill-transparent text-comp-mono-default", children: jsxRuntime.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M1 2.1821C1 1.52924 1.52925 1 2.1821 1H13.6879C14.3408 1 14.87 1.52925 14.87 2.1821V13.6879C14.87 14.3408 14.3408 14.87 13.6879 14.87H2.1821C1.52924 14.87 1 14.3408 1 13.6879V2.1821ZM11.3429 4.58303C11.6121 4.76774 11.6805 5.13566 11.4958 5.4048L7.38613 11.393C7.28127 11.5457 7.11082 11.6405 6.9257 11.6489C6.74058 11.6574 6.56222 11.5785 6.44391 11.4359L4.0914 8.59999C3.88299 8.34876 3.9177 7.97614 4.16894 7.76772C4.42018 7.55931 4.79279 7.59403 5.00121 7.84526L6.85419 10.079L10.5211 4.73591C10.7059 4.46676 11.0738 4.39832 11.3429 4.58303Z", fill: "currentColor" }) }));
|
|
12307
12314
|
}
|
|
12308
12315
|
return (jsxRuntime.jsx(BoxIcon, { className: "size-full fill-transparent text-comp-mono-default" }));
|
|
12309
12316
|
};
|
|
@@ -12311,7 +12318,9 @@ const Checkbox = React.forwardRef(({ label, labelClassName, wrapperClassName, ..
|
|
|
12311
12318
|
setChecked(value);
|
|
12312
12319
|
onChange?.(value);
|
|
12313
12320
|
};
|
|
12314
|
-
return (jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2.5", wrapperClassName), children: [jsxRuntime.jsx(Checkbox$1, { ref: ref, id: id ?? randomId, ...rest, checked: defaultChecked ? checked : isChecked, className: cn("size-4 p-0 cursor-pointer border-transparent bg-transparent", className), onCheckedChange: onCheckedChange, children: renderCheckboxIcon(defaultChecked ? checked : isChecked, disabled) }), jsxRuntime.jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", disabled && "text-comp-disabled cursor-default", labelClassName), htmlFor: id ?? randomId, "aria-disabled": disabled, children: label })
|
|
12321
|
+
return (jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2.5 pr-3 pl-1.5 py-1 relative group/state rounded-lg", wrapperClassName), children: [jsxRuntime.jsx(Checkbox$1, { ref: ref, id: id ?? randomId, ...rest, checked: defaultChecked ? checked : isChecked, className: cn("size-4 p-0 cursor-pointer border-transparent bg-transparent", className), onCheckedChange: onCheckedChange, children: renderCheckboxIcon(defaultChecked ? checked : isChecked, disabled) }), jsxRuntime.jsx("label", { className: cn("text-body leading-body-compact text-comp-mono-default font-medium cursor-pointer", disabled && "text-comp-disabled cursor-default", labelClassName), htmlFor: id ?? randomId, "aria-disabled": disabled, children: label }), jsxRuntime.jsx(StateColorContainer, { className: cn("rounded-lg", disabled
|
|
12322
|
+
? "bg-fill-default group-hover/state:bg-fill-default group-active/state:bg-fill-default"
|
|
12323
|
+
: "") })] }));
|
|
12315
12324
|
});
|
|
12316
12325
|
Checkbox.displayName = "Checkbox";
|
|
12317
12326
|
|
|
@@ -12381,7 +12390,7 @@ const DialogTrigger = (props) => {
|
|
|
12381
12390
|
const DialogPortal = Portal$3;
|
|
12382
12391
|
const DialogClose = Close;
|
|
12383
12392
|
const DialogContent = ({ className, overlayClassName, children, ...rest }) => {
|
|
12384
|
-
return (jsxRuntime.jsxs(Portal$3, { children: [jsxRuntime.jsx(Overlay, { className: cn("fixed top-0 bottom-0 left-0 right-0 bg-
|
|
12393
|
+
return (jsxRuntime.jsxs(Portal$3, { children: [jsxRuntime.jsx(Overlay, { className: cn("fixed top-0 bottom-0 left-0 right-0 bg-page-fade inset-0 z-[1000] animate-fade-in", overlayClassName) }), jsxRuntime.jsxs(Content$1, { className: cn("fixed top-1/2 left-1/2 z-[1001] animate-content-fade-in", className), ...rest, children: [jsxRuntime.jsx(Title, { "data-slot": "dialog-title", ...rest, children: jsxRuntime.jsx(Root$4, {}) }), jsxRuntime.jsx(Description, {}), jsxRuntime.jsx(Card, { children: children })] })] }));
|
|
12385
12394
|
};
|
|
12386
12395
|
const DialogDescription = (props) => {
|
|
12387
12396
|
return jsxRuntime.jsx(CardBody, { ...props, children: props.children });
|
|
@@ -12397,8 +12406,10 @@ const DialogBody = ({ className, ...rest }) => {
|
|
|
12397
12406
|
const SELECT_TRIGGER_VARIANTS = {
|
|
12398
12407
|
OUTLINE: "outline",
|
|
12399
12408
|
GHOST: "ghost",
|
|
12409
|
+
FILLED: "filled",
|
|
12400
12410
|
};
|
|
12401
12411
|
const SELECT_TRIGGER_SIZES = {
|
|
12412
|
+
COMPACT: "compact",
|
|
12402
12413
|
REGULAR: "regular",
|
|
12403
12414
|
LARGE: "large",
|
|
12404
12415
|
};
|
|
@@ -12425,15 +12436,13 @@ const SELECT_TRIGGER_SIZES = {
|
|
|
12425
12436
|
const Select = (props) => jsxRuntime.jsx(Root2, { ...props });
|
|
12426
12437
|
const SelectTrigger = ({ placeholder, variant = "outline", size = "regular", icon, ...rest }) => {
|
|
12427
12438
|
const { className, ...otherProps } = rest;
|
|
12428
|
-
return (jsxRuntime.jsxs(Trigger$1, { className: cn(
|
|
12429
|
-
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
"border border-border-bound [&:not(:is([data-placeholder]))]:border-border-focused [&:is([data-disabled])]:border-transparent rounded-sm py-0 px-2", variant === SELECT_TRIGGER_VARIANTS.GHOST &&
|
|
12434
|
-
"border border-transparent py-0 px-2 has-[button:has([data-placeholder])]:border-comp-mono-subtle-default", size === SELECT_TRIGGER_SIZES.REGULAR &&
|
|
12439
|
+
return (jsxRuntime.jsxs(Trigger$1, { className: cn("relative group/state flex items-center justify-between w-full bg-page-l-null outline-none cursor-pointer text-comp-mono-default data-[placeholder]:not-disabled:text-comp-mono-subtle-default data-disabled:text-comp-disabled rounded-md", variant === SELECT_TRIGGER_VARIANTS.OUTLINE &&
|
|
12440
|
+
"border border-border-bound [&:not(:is([data-placeholder]))]:border-border-focused data-disabled:border-transparent py-0 px-2", variant === SELECT_TRIGGER_VARIANTS.GHOST &&
|
|
12441
|
+
"border border-transparent py-0 px-2 [&:not(:is([data-placeholder]))]:border-border-focused data-disabled:border-transparent", variant === SELECT_TRIGGER_VARIANTS.FILLED &&
|
|
12442
|
+
"border border-transparent py-0 px-2 bg-page-l3 [&:not(:is([data-placeholder]))]:border-border-focused [&:not(:is([data-placeholder]))]:bg-page-l2 data-disabled:border-transparent data-disabled:bg-page-l-null", size === SELECT_TRIGGER_SIZES.COMPACT &&
|
|
12443
|
+
"py-1.5 px-1 text-label font-medium leading-label-compact gap-1", size === SELECT_TRIGGER_SIZES.REGULAR &&
|
|
12435
12444
|
"py-1.5 px-2 text-body font-medium leading-body-compact gap-2", size === SELECT_TRIGGER_SIZES.LARGE &&
|
|
12436
|
-
"py-3 px-4 text-base leading-base-compact font-medium gap-3", className), ...otherProps, children: [icon && jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: icon }), jsxRuntime.jsx(Value, { placeholder: placeholder }), jsxRuntime.jsx(Icon$1, { className: "flex items-center justify-center", children: jsxRuntime.jsx(CaretDownIcon, {}) })] }));
|
|
12445
|
+
"py-3 px-4 text-base leading-base-compact font-medium gap-3", className), ...otherProps, children: [icon && jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: icon }), jsxRuntime.jsx(Value, { placeholder: placeholder }), jsxRuntime.jsx(Icon$1, { className: "flex items-center justify-center text-comp-mono-default group-disabled/state:text-comp-disabled", children: jsxRuntime.jsx(CaretDownIcon, {}) }), jsxRuntime.jsx(StateColorContainer, { className: "rounded-md" })] }));
|
|
12437
12446
|
};
|
|
12438
12447
|
const SelectContent = ({ children, viewportClassName, viewportWrapperClassName, ...rest }) => {
|
|
12439
12448
|
const { className, position, sideOffset, ...otherProps } = rest;
|
|
@@ -12501,13 +12510,9 @@ const VerticalMenu = React.forwardRef(({ disabled, value, label, icon, variant =
|
|
|
12501
12510
|
context.setSelectedMenu?.(value);
|
|
12502
12511
|
rest.onClick?.(e);
|
|
12503
12512
|
};
|
|
12504
|
-
return (jsxRuntime.jsxs("button", { ref: ref, className: cn("w-full flex items-center rounded-md text-body leading-body-compact font-medium bg-transparent border-none cursor-pointer text-comp-mono-default", size === VERTICAL_MENU_SIZES.SMALL && "gap-3 p-1", size === VERTICAL_MENU_SIZES.REGULAR && "gap-[18px] p-2.5", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
|
|
12505
|
-
`
|
|
12506
|
-
|
|
12507
|
-
disabled:text-comp-disabled disabled:bg-fill-disabled disabled:cursor-not-allowed`, variant === VERTICAL_MENU_VARIANTS.GHOST &&
|
|
12508
|
-
`hover:not-[:is([data-selected='true'])]:not-disabled:text-comp-mono-hovered hover:not-[:is([data-selected='true'])]:not-disabled:bg-fill-mono-hovered active:not-disabled:text-comp-mono-pressed active:not-disabled:bg-fill-mono-pressed
|
|
12509
|
-
[&:is([data-selected='true'])]:text-comp-mono-selected [&:is([data-selected='true'])]:bg-fill-mono-selected [&:is([data-selected='true'])]:font-semibold
|
|
12510
|
-
disabled:text-comp-disabled disabled:bg-fill-disabled disabled:cursor-not-allowed`, rest.className), ...rest, disabled: isDisabled, value: value, "data-selected": isSelected, onClick: onClick, children: [icon && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label] }));
|
|
12513
|
+
return (jsxRuntime.jsxs("button", { ref: ref, className: cn("group/state relative w-full flex items-center rounded-md text-body leading-body-compact font-medium bg-transparent border-none cursor-pointer data-[selected=true]:font-semibold data-disabled:text-comp-disabled text-comp-mono-default", size === VERTICAL_MENU_SIZES.SMALL && "gap-3 p-1", size === VERTICAL_MENU_SIZES.REGULAR && "gap-[18px] p-2.5", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
|
|
12514
|
+
`bg-page-l-null data-[selected=true]:bg-page-accent-l0 data-[selected=true]:text-comp-accent-default`, rest.className), ...rest, disabled: isDisabled, value: value, "data-selected": isSelected, "aria-selected": isSelected, onClick: onClick, children: [icon && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label, jsxRuntime.jsx(StateColorContainer, { className: cn("rounded-md group-disabled/state:bg-fill-default", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
|
|
12515
|
+
"group-aria-selected:bg-fill-default") })] }));
|
|
12511
12516
|
});
|
|
12512
12517
|
VerticalMenu.displayName = "VerticalMenu";
|
|
12513
12518
|
|
|
@@ -12543,11 +12548,7 @@ const HorizontalTab = React.forwardRef(({ value, label, className, icon, size =
|
|
|
12543
12548
|
return;
|
|
12544
12549
|
setSelectedTab(value);
|
|
12545
12550
|
};
|
|
12546
|
-
return (jsxRuntime.jsxs("button", { ref: ref, className: cn(
|
|
12547
|
-
hover:not([data-selected='true']):not(:disabled):text-comp-mono-subtle-hovered
|
|
12548
|
-
active:not(:disabled):text-comp-mono-subtle-pressed
|
|
12549
|
-
disabled:text-comp-disabled disabled:cursor-not-allowed
|
|
12550
|
-
`, isSelected && "text-comp-mono-subtle-selected font-bold", className), onClick: handleClick, disabled: isDisabled, "data-selected": isSelected, ...rest, children: [jsxRuntime.jsxs("div", { className: cn("flex items-center justify-center gap-2", size === HORIZONTAL_TAB_SIZES.SMALL && "py-1 px-2", size === HORIZONTAL_TAB_SIZES.REGULAR && "py-2.5 px-2"), children: [icon && (jsxRuntime.jsx("span", { className: cn("flex items-center justify-center size-5", size === HORIZONTAL_TAB_SIZES.SMALL && "size-4"), children: icon })), label] }), jsxRuntime.jsx("div", { className: cn("bg-comp-mono-subtle-default mt-[3px] h-[1px] w-full", isSelected && "bg-comp-mono-subtle-selected h-0.5 mt-0.5"), "data-selected": isSelected })] }));
|
|
12551
|
+
return (jsxRuntime.jsxs("button", { ref: ref, className: cn("relative group/state p-0 flex flex-col items-center justify-center flex-nowrap text-comp-mono-subtle-default text-body font-medium leading-body-compact bg-transparent border-none cursor-pointer disabled:cursor-not-allowed", isSelected && "font-bold", className), onClick: handleClick, disabled: isDisabled, "data-selected": isSelected, "aria-selected": isSelected, ...rest, children: [jsxRuntime.jsxs("div", { className: cn("flex items-center justify-center gap-2", size === HORIZONTAL_TAB_SIZES.SMALL && "py-1 px-2", size === HORIZONTAL_TAB_SIZES.REGULAR && "py-2.5 px-2"), children: [icon && (jsxRuntime.jsx("span", { className: cn("flex items-center justify-center size-5", size === HORIZONTAL_TAB_SIZES.SMALL && "size-4"), children: icon })), label] }), jsxRuntime.jsx("div", { className: cn("bg-comp-mono-subtle-default mt-[3px] h-[1px] w-full", isSelected && "h-0.5 mt-0.5"), "data-selected": isSelected }), jsxRuntime.jsx(StateColorContainer, { className: "group-aria-selected/state:bg-fill-default rounded-sm" })] }));
|
|
12551
12552
|
});
|
|
12552
12553
|
|
|
12553
12554
|
const ModeTabContext = React.createContext({
|
|
@@ -12577,7 +12578,7 @@ const ModeTab = React.forwardRef(({ label, icon, value, className, ...rest }, re
|
|
|
12577
12578
|
return;
|
|
12578
12579
|
setSelectedTab(value);
|
|
12579
12580
|
};
|
|
12580
|
-
return (jsxRuntime.jsxs("button", { ref: ref, className: cn("px-2 py-1 flex items-center justify-center gap-2.5 flex-1 text-comp-mono-subtle-default text-body leading-body-compact font-medium cursor-pointer bg-transparent border-none rounded-sm hover:text-comp-mono-subtle-hovered active:text-comp-mono-subtle-pressed", isSelected && "
|
|
12581
|
+
return (jsxRuntime.jsxs("button", { ref: ref, className: cn("relative group/state shadow-basic px-2 py-1 flex items-center justify-center gap-2.5 flex-1 text-comp-mono-subtle-default aria-selected:text-comp-mono-default text-body leading-body-compact font-medium cursor-pointer bg-transparent border-none rounded-sm hover:text-comp-mono-subtle-hovered active:text-comp-mono-subtle-pressed", isSelected && "bg-page-l0", isDisabled && "text-comp-disabled cursor-not-allowed", className), "data-selected": isSelected, "aria-selected": isSelected, disabled: isDisabled, onClick: handleClick, ...rest, children: [icon && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-5", children: icon })), label, jsxRuntime.jsx(StateColorContainer, { className: "rounded-sm" })] }));
|
|
12581
12582
|
});
|
|
12582
12583
|
|
|
12583
12584
|
const TOOLTIP_SHORT_VARIANTS = {
|
|
@@ -12597,14 +12598,14 @@ const TooltipTrigger = Trigger;
|
|
|
12597
12598
|
const TooltipContent = ({ type, ...rest }) => {
|
|
12598
12599
|
const { className, ...otherProps } = rest;
|
|
12599
12600
|
if (type === "default") {
|
|
12600
|
-
return (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx(Content2, { className: cn("py-4 px-5 flex flex-col gap-1 bg-page-
|
|
12601
|
+
return (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx(Content2, { className: cn("py-4 px-5 flex flex-col gap-1 bg-page-translucent-l2 rounded-lg border border-border-overlay shadow-glass-medium backdrop-blur-sm", className), ...otherProps, children: rest.children }) }));
|
|
12601
12602
|
}
|
|
12602
12603
|
const { variant = "default", size = "regular" } = rest;
|
|
12603
12604
|
return (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx(Content2, { className: cn("shadow-basic rounded-lg", type === "short" &&
|
|
12604
12605
|
variant === TOOLTIP_SHORT_VARIANTS.DEFAULT &&
|
|
12605
|
-
"border border-border-overlay bg-page-
|
|
12606
|
+
"border border-border-overlay bg-page-translucent-l2 text-comp-mono-default", type === "short" &&
|
|
12606
12607
|
variant === TOOLTIP_SHORT_VARIANTS.ACCENT &&
|
|
12607
|
-
"bg-page-accent text-comp-accent-default", type === "short" &&
|
|
12608
|
+
"bg-page-accent-l0 text-comp-accent-default", type === "short" &&
|
|
12608
12609
|
size === TOOLTIP_SHORT_SIZES.REGULAR &&
|
|
12609
12610
|
"py-2 px-3 text-body font-medium leading-body-compact", type === "short" &&
|
|
12610
12611
|
size === TOOLTIP_SHORT_SIZES.SMALL &&
|
|
@@ -12635,22 +12636,13 @@ const Tag = React.forwardRef(({ icon, value, variant = "filled", size = "regular
|
|
|
12635
12636
|
event.stopPropagation();
|
|
12636
12637
|
onDeleteClick?.(value, event);
|
|
12637
12638
|
};
|
|
12638
|
-
return (jsxRuntime.jsxs("button", { ref: ref, className: cn("flex items-center justify-center rounded-sm bg-transparent", variant === "filled" &&
|
|
12639
|
-
`bg-
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
|
|
12644
|
-
|
|
12645
|
-
`bg-fill-mono-subtle-selected text-comp-mono-subtle-selected border-border-selected`, variant === "accent" &&
|
|
12646
|
-
`bg-fill-accent-default text-comp-accent-default hover:bg-fill-accent-hovered hover:text-comp-accent-hovered
|
|
12647
|
-
disabled:bg-fill-disabled disabled:text-comp-disabled`, variant === "accent" &&
|
|
12648
|
-
useSelectedStyle &&
|
|
12649
|
-
"active:bg-fill-accent-pressed active:text-comp-accent-pressed", variant === "accent" &&
|
|
12650
|
-
isSelected &&
|
|
12651
|
-
`bg-fill-accent-selected text-comp-accent-selected`, size === "regular" &&
|
|
12652
|
-
"text-body font-medium leading-body-compact px-1 py-0.5 gap-2", size === "small" &&
|
|
12653
|
-
"text-label font-medium leading-label-compact p-0.5 gap-1.5", className), onClick: handleClick, "data-selected": isSelected, ...props, children: [icon && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0", children: icon })), jsxRuntime.jsx("span", { className: "flex-1 text-nowrap overflow-hidden text-ellipsis text-inherit text-size-inherit leading-inherit font-inherit", children: value.label }), onDeleteClick && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0 cursor-pointer", onClick: handleDeleteClick, children: jsxRuntime.jsx(X, {}) }))] }));
|
|
12639
|
+
return (jsxRuntime.jsxs("button", { ref: ref, className: cn("flex items-center justify-center rounded-sm bg-transparent relative group/state", variant === "filled" &&
|
|
12640
|
+
`bg-page-l4 text-comp-mono-subtle-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, variant === "accent" &&
|
|
12641
|
+
`bg-page-accent-l0 text-comp-accent-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, size === "regular" &&
|
|
12642
|
+
"text-body font-medium leading-body-compact px-2 py-1 gap-2", size === "small" &&
|
|
12643
|
+
"text-label font-medium leading-label-compact px-1.5 py-0.5 gap-1.5", className), onClick: handleClick, "data-selected": isSelected, "aria-selected": isSelected, ...props, children: [icon && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0", children: icon })), jsxRuntime.jsx("span", { className: "flex-1 text-nowrap overflow-hidden text-ellipsis text-inherit text-size-inherit leading-inherit font-inherit", children: value.label }), onDeleteClick && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-4 border-none bg-transparent outline-none p-0 cursor-pointer text-comp-mono-default group-disabled/state:text-comp-disabled", onClick: handleDeleteClick, children: jsxRuntime.jsx(X, {}) })), jsxRuntime.jsx(StateColorContainer, { className: cn("rounded-sm", useSelectedStyle
|
|
12644
|
+
? ""
|
|
12645
|
+
: "group-active/state:bg-fill-default group-active/state:border-transparent group-disabled/state:bg-fill-default"), isInverted: variant === "accent" })] }));
|
|
12654
12646
|
});
|
|
12655
12647
|
Tag.displayName = "Tag";
|
|
12656
12648
|
|
|
@@ -12872,10 +12864,20 @@ Text.displayName = "Text";
|
|
|
12872
12864
|
* ```
|
|
12873
12865
|
*/
|
|
12874
12866
|
const Input = React.forwardRef(({ size = "regular", leftIcon, rightIcon, wrapperClassName, isError = false, useHoverStyle = true, errorMessage, ...rest }, ref) => {
|
|
12875
|
-
|
|
12867
|
+
const innerRef = React.useRef(null);
|
|
12868
|
+
const mergedRef = (node) => {
|
|
12869
|
+
if (typeof ref === "function")
|
|
12870
|
+
ref(node);
|
|
12871
|
+
else if (ref)
|
|
12872
|
+
ref.current = node;
|
|
12873
|
+
innerRef.current = node;
|
|
12874
|
+
};
|
|
12875
|
+
return (jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [jsxRuntime.jsxs("div", { "aria-disabled": rest.disabled, className: cn("relative group/state flex items-center justify-center rounded-lg bg-Page-l-null border border-border-bound focus-within:border-border-focused has-[input:disabled]:border-transparent", size === INPUT_SIZES.REGULAR &&
|
|
12876
12876
|
"py-1.5 px-2 text-body leading-body-compact font-medium gap-2", size === INPUT_SIZES.LARGE &&
|
|
12877
12877
|
"py-[11px] px-4 text-base leading-base-compact font-medium gap-3", isError &&
|
|
12878
|
-
"border-comp-chroma-error focus-within:border-comp-chroma-error", wrapperClassName),
|
|
12878
|
+
"border-comp-chroma-error focus-within:border-comp-chroma-error", wrapperClassName), onClick: () => {
|
|
12879
|
+
innerRef.current?.focus();
|
|
12880
|
+
}, children: [jsxRuntime.jsx(StateColorContainer, { className: cn("group-focus-within/state:bg-page-l-null", (!useHoverStyle || rest.disabled) && "hover:bg-fill-default") }), leftIcon && (jsxRuntime.jsx("div", { className: cn("flex items-center justify-center text-comp-mono-default", isError && "text-comp-chroma-error"), children: leftIcon })), jsxRuntime.jsx("input", { ref: mergedRef, className: cn("border-none outline-none p-0 flex-1 bg-transparent text-comp-mono-default placeholder:text-comp-mono-subtle-default focus:placeholder:text-comp-mono-subtle-selected disabled:text-comp-disabled disabled:placeholder:text-comp-disabled", useHoverStyle &&
|
|
12879
12881
|
"hover:placeholder:text-comp-mono-subtle-hovered", size === INPUT_SIZES.REGULAR &&
|
|
12880
12882
|
"text-body leading-body-compact font-medium", size === INPUT_SIZES.LARGE &&
|
|
12881
12883
|
"text-base leading-base-compact font-medium", isError &&
|
|
@@ -12928,7 +12930,7 @@ const MultipleSelectTrigger = React.forwardRef(({ size = "regular", children, ..
|
|
|
12928
12930
|
setIsOpen(value);
|
|
12929
12931
|
onClick?.(e);
|
|
12930
12932
|
};
|
|
12931
|
-
return (jsxRuntime.jsxs("div", { ref: ref, className: cn("flex items-center justify-between rounded-lg cursor-pointer border border-border-bound bg-
|
|
12933
|
+
return (jsxRuntime.jsxs("div", { ref: ref, className: cn("relative group/state flex items-center justify-between rounded-lg cursor-pointer border border-border-bound bg-page-l-null text-comp-mono-default aria-selected:border-border-focused", disabled && "border-transparent cursor-not-allowed", size === MULTIPLE_SELECT_SIZES.REGULAR && "py-1.5 px-3 gap-2", size === MULTIPLE_SELECT_SIZES.LARGE && "py-3 pr-4 pl-3 gap-3", className), "data-disabled": disabled, "data-selected": isOpen, "aria-selected": isOpen, onClick: handleTriggerClick, ...otherProps, children: [children, jsxRuntime.jsx("span", { className: "flex items-center justify-center size-4 text-comp-mono-default", children: jsxRuntime.jsx(ChevronDown, { size: 16 }) }), jsxRuntime.jsx(StateColorContainer, { className: "group-aria-selected/state:bg-fill-default" })] }));
|
|
12932
12934
|
});
|
|
12933
12935
|
const MultipleSelectValue = React.forwardRef(({ placeholder, className, ...rest }, ref) => {
|
|
12934
12936
|
const { values, disabled, setSelectedValues } = React.useContext(MultipleSelectContext);
|
|
@@ -12982,7 +12984,7 @@ const MultipleSelectContent = React.forwardRef(({ useSearch, options: optionsPro
|
|
|
12982
12984
|
window.removeEventListener("resize", close);
|
|
12983
12985
|
};
|
|
12984
12986
|
}, [setIsOpen]);
|
|
12985
|
-
return (isOpen && (jsxRuntime.jsxs("div", { ref: composedRefs, className: cn("flex-1 absolute top-[calc(100%+4px)] left-0 z-[1000] w-[calc(100%-16px)] bg-page-l1 rounded-xl
|
|
12987
|
+
return (isOpen && (jsxRuntime.jsxs("div", { ref: composedRefs, className: cn("flex-1 absolute top-[calc(100%+4px)] left-0 z-[1000] w-[calc(100%-16px)] bg-page-translucent-l1 shadow-glass-medium backdrop-blur-sm rounded-xl p-2 border border-border-overlay", className), ...rest, children: [useSearch && (jsxRuntime.jsx("div", { className: "pb-2 mb-2 border-b border-b-border-divider", children: jsxRuntime.jsx(Input, { onChange: handleSearchChange, leftIcon: jsxRuntime.jsx(MagnifyingGlassIcon, { width: 20, height: 20 }), placeholder: "Enter any characters..." }) })), jsxRuntime.jsx("ul", { className: "p-0 m-0 flex flex-col gap-1 list-none", children: options.map((option) => (jsxRuntime.jsx(MultipleSelectItem, { option: option, indicator: indicator }, option.value))) })] })));
|
|
12986
12988
|
});
|
|
12987
12989
|
const MultipleSelectItem = React.forwardRef(({ option, indicator, className, ...rest }, ref) => {
|
|
12988
12990
|
const { values, setSelectedValues } = React.useContext(MultipleSelectContext);
|
|
@@ -12996,8 +12998,8 @@ const MultipleSelectItem = React.forwardRef(({ option, indicator, className, ...
|
|
|
12996
12998
|
: [...values, option];
|
|
12997
12999
|
setSelectedValues(newValues);
|
|
12998
13000
|
};
|
|
12999
|
-
return (jsxRuntime.jsxs("li", { ref: ref, "data-selected": isSelected, "data-disabled": option.disabled, className: cn("py-2 px-3 cursor-pointer flex items-center justify-between gap-2 text-body text-comp-mono-default leading-body-compact font-medium rounded-sm
|
|
13000
|
-
"bg-fill-disabled text-comp-disabled cursor-not-allowed", className), onClick: handleClick, ...rest, children: [jsxRuntime.jsx("span", { className: "flex-1 overflow-ellipsis overflow-x-hidden whitespace-nowrap text-inherit text-size-inherit leading-inherit font-inherit", children: option.label }), indicator && isSelected && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-4", children: indicator }))] }));
|
|
13001
|
+
return (jsxRuntime.jsxs("li", { ref: ref, "data-selected": isSelected, "aria-selected": isSelected, "data-disabled": option.disabled, className: cn("group/state relative py-2 px-3 cursor-pointer flex items-center justify-between gap-2 text-body text-comp-mono-default leading-body-compact font-medium rounded-sm", isSelected && "bg-fill-mono-selected text-comp-mono-default", option.disabled &&
|
|
13002
|
+
"bg-fill-disabled text-comp-disabled cursor-not-allowed", className), onClick: handleClick, ...rest, children: [jsxRuntime.jsx("span", { className: "flex-1 overflow-ellipsis overflow-x-hidden whitespace-nowrap text-inherit text-size-inherit leading-inherit font-inherit", children: option.label }), indicator && isSelected && (jsxRuntime.jsx("span", { className: "flex items-center justify-center size-4", children: indicator })), jsxRuntime.jsx(StateColorContainer, { className: "rounded-sm" })] }));
|
|
13001
13003
|
});
|
|
13002
13004
|
|
|
13003
13005
|
const Table = React.forwardRef(({ className, ...rest }, ref) => {
|
|
@@ -13045,8 +13047,8 @@ const InteractiveListItemContext = React.createContext({
|
|
|
13045
13047
|
disabled: false,
|
|
13046
13048
|
});
|
|
13047
13049
|
const InteractiveListItem = React.forwardRef(({ isSelected, disabled, showHoverActions = true, children, className, ...rest }, ref) => {
|
|
13048
|
-
return (jsxRuntime.jsx(InteractiveListItemContext, { value: { disabled: !!disabled }, children: jsxRuntime.
|
|
13049
|
-
"cursor-not-allowed text-comp-disabled bg-fill-disabled", className), ...rest, children: children }) }));
|
|
13050
|
+
return (jsxRuntime.jsx(InteractiveListItemContext, { value: { disabled: !!disabled }, children: jsxRuntime.jsxs("div", { ref: ref, "aria-selected": isSelected, "data-selected": isSelected, "data-disabled": disabled, "data-hover-actions": showHoverActions, className: cn("relative group/state flex items-center gap-1 p-1.5 rounded-sm cursor-pointer text-comp-mono-default bg-fill-mono-default border border-transparent hover:bg-fill-mono-hovered active:bg-fill-mono-pressed", isSelected && "bg-fill-mono-selected border-border-selected", disabled &&
|
|
13051
|
+
"cursor-not-allowed text-comp-disabled bg-fill-disabled", className), ...rest, children: [children, jsxRuntime.jsx(StateColorContainer, {})] }) }));
|
|
13050
13052
|
});
|
|
13051
13053
|
const InteractiveListItemIcon = React.forwardRef(({ children, className, ...props }, ref) => {
|
|
13052
13054
|
return (jsxRuntime.jsx("span", { className: cn("flex items-center justify-center size-6 p-1", className), ...props, ref: ref, children: children }));
|
|
@@ -13072,12 +13074,12 @@ const Calendar = ({ className, classNames, showOutsideDays = true, ...props }) =
|
|
|
13072
13074
|
month_grid: "border-separate border-spacing-0",
|
|
13073
13075
|
weekday: "text-comp-mono-subtle-default text-body font-normal leading-body size-9 p-1",
|
|
13074
13076
|
day: "p-1 bg-transparent",
|
|
13075
|
-
day_button: "size-8 rounded-md hover:bg-fill-
|
|
13076
|
-
selected: cn("[&_button]:bg-
|
|
13077
|
-
"[&_button]:text-comp-accent-default [&_button]:hover:bg-
|
|
13078
|
-
range_start: "[&_button]:bg-
|
|
13079
|
-
range_middle: "[&_button]:bg-
|
|
13080
|
-
range_end: "[&_button]:bg-
|
|
13077
|
+
day_button: "size-8 rounded-md hover:bg-fill-hovered focus:outline-none text-body leading-3.5 font-medium text-comp-mono-default cursor-pointer",
|
|
13078
|
+
selected: cn("[&_button]:bg-page-accent-l0 bg-transparent", props.mode === "single" &&
|
|
13079
|
+
"[&_button]:text-comp-accent-default [&_button]:hover:bg-page-accent-l0"),
|
|
13080
|
+
range_start: "[&_button]:bg-page-accent-l0 bg-transparent [&_button]:text-comp-accent-default [&_button]:hover:bg-page-accent-l0",
|
|
13081
|
+
range_middle: "[&_button]:bg-page-l3 bg-transparent [&_button]:hover:bg-fill-mono-subtle-default",
|
|
13082
|
+
range_end: "[&_button]:bg-page-accent-l0 bg-transparent [&_button]:text-comp-accent-default [&_button]:hover:bg-page-accent-l0",
|
|
13081
13083
|
button_next: cn(reactDayPicker.getDefaultClassNames().button_next, "h-9 py-0 px-2 text-body leading-body-compact !bg-fill-mono-default hover:!bg-fill-mono-hovered active:!bg-fill-mono-pressed disabled:!bg-fill-disabled disabled:text-comp-disabled rounded-md"),
|
|
13082
13084
|
button_previous: cn(reactDayPicker.getDefaultClassNames().button_previous, "h-9 py-0 px-2 text-body leading-body-compact !bg-fill-mono-default hover:!bg-fill-mono-hovered active:!bg-fill-mono-pressed disabled:!bg-fill-disabled disabled:text-comp-disabled rounded-md"),
|
|
13083
13085
|
...classNames,
|
|
@@ -13097,6 +13099,7 @@ const BUTTON_SIZES = {
|
|
|
13097
13099
|
LARGE: "large",
|
|
13098
13100
|
};
|
|
13099
13101
|
const BUTTON_VARIANTS = {
|
|
13102
|
+
ACCENT: "accent",
|
|
13100
13103
|
THUMBNAIL_GHOST: "thumbnail_ghost"};
|
|
13101
13104
|
|
|
13102
13105
|
/**
|
|
@@ -13113,7 +13116,7 @@ const BUTTON_VARIANTS = {
|
|
|
13113
13116
|
* </Button>
|
|
13114
13117
|
* ```
|
|
13115
13118
|
*/
|
|
13116
|
-
const Button = React.forwardRef(({ variant = "accent", size = "regular", fullWidth = false, isLoading = false, leftIcon, rightIcon, children, disabled, className, ...rest }, ref) => {
|
|
13119
|
+
const Button = React.forwardRef(({ variant = "accent", size = "regular", fullWidth = false, isLoading = false, leftIcon, rightIcon, children, disabled, className, stateContainerClassName, ...rest }, ref) => {
|
|
13117
13120
|
const getClassName = (size, variant) => {
|
|
13118
13121
|
const sizeClassName = {
|
|
13119
13122
|
small: "h-7 py-0 px-1.5 text-label leading-label-compact",
|
|
@@ -13126,12 +13129,16 @@ const Button = React.forwardRef(({ variant = "accent", size = "regular", fullWid
|
|
|
13126
13129
|
large: "px-1.5",
|
|
13127
13130
|
}[size];
|
|
13128
13131
|
const variantClassName = {
|
|
13129
|
-
accent: "bg-
|
|
13130
|
-
outline: "bg-
|
|
13131
|
-
|
|
13132
|
-
|
|
13133
|
-
|
|
13134
|
-
|
|
13132
|
+
accent: "bg-page-accent-l0 disabled:bg-pure-transparent text-comp-accent-default disabled:text-comp-disabled",
|
|
13133
|
+
outline: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent aria-selected:border-border-selected",
|
|
13134
|
+
outline_to_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled border border-border-bound disabled:border-pure-transparent aria-selected:border-border-selected aria-selected:bg-page-accent-l0 aria-selected:text-comp-accent-default",
|
|
13135
|
+
ghost: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled",
|
|
13136
|
+
thumbnail_ghost: "bg-page-l-null disabled:bg-fill-disabled text-comp-mono-default disabled:text-comp-disabled",
|
|
13137
|
+
ghost_to_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-default disabled:text-comp-disabled aria-selected:bg-page-accent-l0 aria-selected:text-comp-accent-default",
|
|
13138
|
+
subtle_filled: "bg-page-l3 disabled:bg-fill-disabled text-comp-mono-subtle-default disabled:text-comp-disabled aria-selected:text-comp-mono-default",
|
|
13139
|
+
outline_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-accent-default disabled:text-comp-disabled border border-border-accent-bound disabled:border-pure-transparent aria-selected:border-border-accent-selected",
|
|
13140
|
+
ghost_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-accent-default disabled:text-comp-disabled",
|
|
13141
|
+
ghost_dim: "bg-page-l-null disabled:bg-page-l-null text-comp-mono-subtle-default disabled:text-comp-disabled aria-selected:text-comp-mono-default",
|
|
13135
13142
|
}[variant];
|
|
13136
13143
|
return [
|
|
13137
13144
|
sizeClassName,
|
|
@@ -13160,7 +13167,7 @@ const Button = React.forwardRef(({ variant = "accent", size = "regular", fullWid
|
|
|
13160
13167
|
return "px-1.5";
|
|
13161
13168
|
return "px-2"; // 기본값은 regular 크기
|
|
13162
13169
|
};
|
|
13163
|
-
return (jsxRuntime.jsxs("button", { ref: ref, disabled: disabled ?? isLoading, className: cn("flex items-center justify-center relative box-border m-0 border-transparent outline-none cursor-pointer select-none align-middle appearance-none text-center transition-normal font-medium w-auto rounded-md overflow-hidden pointer-events-auto disabled:pointer-events-none disabled:cursor-not-allowed", ...getClassName(size, variant), fullWidth && "w-full", !children && (leftIcon || rightIcon) && getPaddingOnlyIcon(size), className), ...rest, children: [isLoading && (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: cn("lucide lucide-loader-circle-icon lucide-loader-circle absolute animate-spin", size === BUTTON_SIZES.SMALL &&
|
|
13170
|
+
return (jsxRuntime.jsxs("button", { ref: ref, disabled: disabled ?? isLoading, className: cn("flex group/state items-center justify-center relative box-border m-0 border-transparent outline-none cursor-pointer select-none align-middle appearance-none text-center transition-normal font-medium w-auto rounded-md overflow-hidden pointer-events-auto disabled:pointer-events-none disabled:cursor-not-allowed", ...getClassName(size, variant), fullWidth && "w-full", !children && (leftIcon || rightIcon) && getPaddingOnlyIcon(size), className), ...rest, children: [jsxRuntime.jsx(StateColorContainer, { isInverted: variant === BUTTON_VARIANTS.ACCENT, className: stateContainerClassName }), isLoading && (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: cn("lucide lucide-loader-circle-icon lucide-loader-circle absolute animate-spin", size === BUTTON_SIZES.SMALL &&
|
|
13164
13171
|
"size-4 top-[calc(50%-8px)] left-[calc(50%-8px)]", size === BUTTON_SIZES.REGULAR &&
|
|
13165
13172
|
"size-5 top-[calc(50%-10px)] left-[calc(50%-10px)]", size === BUTTON_SIZES.LARGE &&
|
|
13166
13173
|
"size-6 top-[calc(50%-12px)] left-[calc(50%-12px)]"), children: jsxRuntime.jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) })), leftIcon && (jsxRuntime.jsx("div", { className: cn("flex items-center justify-center relative", variant === BUTTON_VARIANTS.THUMBNAIL_GHOST &&
|
|
@@ -13217,7 +13224,7 @@ const DatePicker = ({ size = "regular", placeholder = "Pick a date", format = "Y
|
|
|
13217
13224
|
}
|
|
13218
13225
|
return placeholder ?? "";
|
|
13219
13226
|
};
|
|
13220
|
-
return (jsxRuntime.jsxs(Root2$2, { open: open, onOpenChange: handleOpenChange, children: [jsxRuntime.jsx(Trigger$2, { asChild: true, children: jsxRuntime.jsx(Button, { size: size, fullWidth: true, variant: "outline", leftIcon: jsxRuntime.jsx(Calendar$1, { size: 20 }), className: "justify-start", disabled: disabled, children: getDateToFormatString(inputValue) }) }), jsxRuntime.jsx(Content2$2, { sideOffset: 10, align: "start", className: cn("z-10", popoverContentClassName), ...rest, children: mode === "single" ? (jsxRuntime.jsx(Calendar, { mode: "single", ...rest, selected: inputValue, onSelect: handleSelect })) : mode === "multiple" ? (jsxRuntime.jsx(Calendar, { mode: "multiple", ...rest, selected: Array.isArray(inputValue) ? inputValue : [], onSelect: handleSelect })) : (jsxRuntime.jsx(Calendar, { mode: "range", ...rest, selected: inputValue, onSelect: handleSelect })) })] }));
|
|
13227
|
+
return (jsxRuntime.jsxs(Root2$2, { open: open, onOpenChange: handleOpenChange, children: [jsxRuntime.jsx(Trigger$2, { asChild: true, children: jsxRuntime.jsx(Button, { size: size, fullWidth: true, variant: "outline", leftIcon: jsxRuntime.jsx(Calendar$1, { size: 20 }), className: "justify-start", "aria-selected": open, disabled: disabled, stateContainerClassName: open ? "group-aria-selected/state:bg-fill-default" : undefined, children: getDateToFormatString(inputValue) }) }), jsxRuntime.jsx(Content2$2, { sideOffset: 10, align: "start", className: cn("z-10", popoverContentClassName), ...rest, children: mode === "single" ? (jsxRuntime.jsx(Calendar, { mode: "single", ...rest, selected: inputValue, onSelect: handleSelect })) : mode === "multiple" ? (jsxRuntime.jsx(Calendar, { mode: "multiple", ...rest, selected: Array.isArray(inputValue) ? inputValue : [], onSelect: handleSelect })) : (jsxRuntime.jsx(Calendar, { mode: "range", ...rest, selected: inputValue, onSelect: handleSelect })) })] }));
|
|
13221
13228
|
};
|
|
13222
13229
|
|
|
13223
13230
|
const ContextMenu = Root2$3;
|
|
@@ -13230,12 +13237,8 @@ const ContextMenuLabel = (props) => {
|
|
|
13230
13237
|
return (jsxRuntime.jsx(Label2, { ...props, children: props.children }));
|
|
13231
13238
|
};
|
|
13232
13239
|
const ContextMenuItem = ({ leftIcon, rightSlot, textValue, ...rest }) => {
|
|
13233
|
-
return (jsxRuntime.jsxs(Item2$1, { ...rest, className: cn(`group outline-none p-2 flex items-center justify-between gap-2 text-body leading-body-compact font-medium text-comp-mono-default bg-
|
|
13234
|
-
|
|
13235
|
-
active:not-[:is([data-disabled])]:bg-fill-mono-pressed active:not-[:is([data-disabled])]:text-comp-mono-pressed
|
|
13236
|
-
[&:is([data-state='open'])]:bg-fill-mono-selected [&:is([data-state='open'])]:text-comp-mono-selected
|
|
13237
|
-
[&:is([data-disabled])]:bg-fill-disabled [&:is([data-disabled])]:text-comp-disabled [&:is([data-disabled])]:cursor-not-allowed`, rest.className), children: [jsxRuntime.jsxs("div", { className: "flex-1 flex items-center gap-2 text-size-inherit font-inherit leading-inherit overflow-hidden", children: [jsxRuntime.jsx("div", { className: "size-4 flex items-center justify-center text-size-inherit leading-inherit font-inherit bg-transparent", children: leftIcon }), jsxRuntime.jsx("span", { className: "overflow-ellipsis overflow-hidden whitespace-nowrap", children: textValue })] }), rightSlot && (jsxRuntime.jsx("div", { className: `flex items-center justify-center text-size-inherit leading-inherit font-inherit text-comp-mono-subtle-default
|
|
13238
|
-
group-hover:not-[data-disabled]:text-comp-mono-subtle-hovered group-[data-state="open"]:text-comp-mono-subtle-selected group-[data-disabled]:text-comp-disabled`, children: rightSlot }))] }));
|
|
13240
|
+
return (jsxRuntime.jsxs(Item2$1, { ...rest, className: cn(`relative group/state outline-none p-2 flex items-center justify-between gap-2 text-body leading-body-compact font-medium text-comp-mono-default bg-page-l-null rounded-sm
|
|
13241
|
+
[&:is([data-disabled])]:bg-fill-disabled [&:is([data-disabled])]:text-comp-disabled [&:is([data-disabled])]:cursor-not-allowed`, rest.className), children: [jsxRuntime.jsxs("div", { className: "flex-1 flex items-center gap-2 text-size-inherit font-inherit leading-inherit overflow-hidden", children: [jsxRuntime.jsx("div", { className: "size-4 flex items-center justify-center text-size-inherit leading-inherit font-inherit bg-transparent text-comp-mono-subtle-default group-aria-disabled/state:text-comp-disabled", children: leftIcon }), jsxRuntime.jsx("span", { className: "overflow-ellipsis overflow-hidden whitespace-nowrap", children: textValue })] }), rightSlot && (jsxRuntime.jsx("div", { className: `flex items-center justify-center text-size-inherit leading-inherit font-inherit text-comp-mono-subtle-default group-aria-disabled/state:text-comp-disabled`, children: rightSlot })), jsxRuntime.jsx(StateColorContainer, { className: "rounded-sm group-aria-disabled/state:bg-fill-default group-[data-state='open']/state:bg-fill-selected" })] }));
|
|
13239
13242
|
};
|
|
13240
13243
|
const ContextMenuGroup = Group2;
|
|
13241
13244
|
const ContextMenuSub = Sub2;
|
|
@@ -13244,7 +13247,7 @@ const ContextMenuSubContent = (props) => {
|
|
|
13244
13247
|
return (jsxRuntime.jsx(Portal2, { children: jsxRuntime.jsx(SubContent2, { ...props, className: cn("p-2 bg-page-l1 shadow-medium rounded-lg w-[320px] border border-border-overlay", props.className), children: props.children }) }));
|
|
13245
13248
|
};
|
|
13246
13249
|
const ContextMenuSeparator = (props) => {
|
|
13247
|
-
return (jsxRuntime.jsx(Separator2, { ...props, className: cn("h-[1px] bg-border-
|
|
13250
|
+
return (jsxRuntime.jsx(Separator2, { ...props, className: cn("h-[1px] bg-border-divider my-1", props.className) }));
|
|
13248
13251
|
};
|
|
13249
13252
|
const ContextMenuCheckboxItem = CheckboxItem2;
|
|
13250
13253
|
const ContextMenuRadioGroup = RadioGroup2;
|
|
@@ -13255,8 +13258,8 @@ const ContextMenuItemIndicator = (props) => {
|
|
|
13255
13258
|
|
|
13256
13259
|
const AutocompleteContentItem = ({ inputValue, item, index, displayValue, highlightedIndex, onClick, className = "", }) => {
|
|
13257
13260
|
const isHighlighted = index === highlightedIndex;
|
|
13258
|
-
return (jsxRuntime.jsx("li", { id: `suggestion-item-${index}`, className: cn("rounded-sm p-2 text-comp-mono-default text-body leading-body-compact font-medium list-none hover:bg-fill-
|
|
13259
|
-
.split(new RegExp(`(${inputValue})`, "gi"))
|
|
13261
|
+
return (jsxRuntime.jsx("li", { id: `suggestion-item-${index}`, className: cn("rounded-sm p-2 text-comp-mono-default text-body leading-body-compact font-medium list-none hover:bg-fill-hovered", isHighlighted && "bg-fill-selected", className), onClick: (e) => onClick(item, e), role: "option", "aria-selected": isHighlighted, children: displayValue(item)
|
|
13262
|
+
.split(new RegExp(`(${inputValue.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")})`, "gi"))
|
|
13260
13263
|
.map((part, i) => part.toLowerCase() === inputValue.toLowerCase() ? (jsxRuntime.jsx("span", { className: "font-bold text-comp-chroma-error", children: part }, i)) : (jsxRuntime.jsx("span", { children: part }, i))) }));
|
|
13261
13264
|
};
|
|
13262
13265
|
const Autocomplete = ({ placeholder, data, value, displayValue, onSelect, onChange, noResultsMessage = "검색 결과가 없습니다.", maxResults = 10, debounceTime = 300, wrapperClassName, contentClassName, itemClassName, }) => {
|
|
@@ -13373,27 +13376,27 @@ const SWITCH_SIZES = {
|
|
|
13373
13376
|
|
|
13374
13377
|
const FilledSwitch = (props) => {
|
|
13375
13378
|
const { size, checked, thumbClassName, ...rest } = props;
|
|
13376
|
-
return (jsxRuntime.jsxs(Root, { className: cn("flex items-center gap-1 bg-page-l2 rounded-lg relative", size === SWITCH_SIZES.REGULAR && "p-1.5 w-[68px] h-9", size === SWITCH_SIZES.SMALL && "p-1 w-[59px] h-7"), checked: checked, ...rest, children: [jsxRuntime.jsx(Thumb, { className: cn("
|
|
13379
|
+
return (jsxRuntime.jsxs(Root, { className: cn("group/state flex items-center gap-1 bg-page-l2 rounded-lg relative", size === SWITCH_SIZES.REGULAR && "p-1.5 w-[68px] h-9", size === SWITCH_SIZES.SMALL && "p-1 w-[59px] h-7"), checked: checked, ...rest, children: [jsxRuntime.jsx(Thumb, { className: cn("absolute transition-all duration-100 rounded-sm border border-border-divider", size === SWITCH_SIZES.REGULAR &&
|
|
13377
13380
|
"size-6 left-1.5 data-[state=checked]:left-[37px]", size === SWITCH_SIZES.SMALL &&
|
|
13378
|
-
"size-5 left-1 data-[state=checked]:left-[35px]", checked ? "bg-
|
|
13381
|
+
"size-5 left-1 data-[state=checked]:left-[35px]", checked ? "bg-page-accent-l0" : "bg-page-l3", thumbClassName) }), checked ? (jsxRuntime.jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-mono-default py-1 px-[5px] text-left w-full", as: "div", children: "ON" })) : (jsxRuntime.jsx(Text, { variant: "medLabelMedCompact", className: "text-comp-mono-subtle-default py-1 px-0.5 text-right w-full", as: "div", children: "OFF" })), jsxRuntime.jsx(StateColorContainer, { className: "rounded-lg" })] }));
|
|
13379
13382
|
};
|
|
13380
13383
|
const OutlinedSwitch = (props) => {
|
|
13381
13384
|
const { size, checked, thumbClassName, ...rest } = props;
|
|
13382
|
-
return (jsxRuntime.jsxs(Root, { className: cn("group border shadow-inner p-1 relative rounded-[20px]", checked
|
|
13383
|
-
? "bg-
|
|
13384
|
-
: "bg-
|
|
13385
|
-
"size-7 data-[state=checked]:left-[42px]
|
|
13386
|
-
"size-5 data-[state=checked]:left-[36px]
|
|
13385
|
+
return (jsxRuntime.jsxs(Root, { className: cn("group/state border shadow-inner p-1 relative rounded-[20px]", checked
|
|
13386
|
+
? "bg-page-accent-l0 border-transparent"
|
|
13387
|
+
: "bg-page-l-null border-border-divider", size === SWITCH_SIZES.REGULAR && "w-[74px] h-9", size === SWITCH_SIZES.SMALL && "w-[60px] h-7"), checked: checked, ...rest, children: [jsxRuntime.jsx(Thumb, { className: cn("absolute transition-all duration-100 top-[3px] rounded-full left-1 bg-page-l3 border border-border-bound shadow-basic", size === SWITCH_SIZES.REGULAR &&
|
|
13388
|
+
"size-7 data-[state=checked]:left-[42px]", size === SWITCH_SIZES.SMALL &&
|
|
13389
|
+
"size-5 data-[state=checked]:left-[36px]", thumbClassName) }), checked ? (jsxRuntime.jsx(Text, { variant: size === SWITCH_SIZES.REGULAR
|
|
13387
13390
|
? "boldBodyBoldCompact"
|
|
13388
|
-
: "boldLabelBoldCompact", className: "text-comp-accent-default pl-2 text-left
|
|
13391
|
+
: "boldLabelBoldCompact", className: "text-comp-accent-default pl-2 text-left", as: "div", children: "ON" })) : (jsxRuntime.jsx(Text, { variant: size === SWITCH_SIZES.REGULAR
|
|
13389
13392
|
? "medBodyMedCompact"
|
|
13390
|
-
: "medLabelMedCompact", className: cn("text-comp-mono-subtle-default text-right
|
|
13393
|
+
: "medLabelMedCompact", className: cn("text-comp-mono-subtle-default text-right", size === SWITCH_SIZES.REGULAR && "pr-1.5", size === SWITCH_SIZES.SMALL && "pr-[3px]"), as: "div", children: "OFF" })), jsxRuntime.jsx(StateColorContainer, { className: "rounded-[20px]" })] }));
|
|
13391
13394
|
};
|
|
13392
13395
|
const SlideSwitch = (props) => {
|
|
13393
13396
|
const { size, checked, thumbClassName, leftIcon, rightIcon, ...rest } = props;
|
|
13394
|
-
return (jsxRuntime.jsxs(Root, { className: cn("group border shadow-inner p-1 relative rounded-[20px] border-border-bound bg-
|
|
13397
|
+
return (jsxRuntime.jsxs(Root, { className: cn("group/state border shadow-inner p-1 relative rounded-[20px] border-border-bound bg-page-l-null", size === SWITCH_SIZES.REGULAR && "w-[70px] h-9", size === SWITCH_SIZES.SMALL && "w-[54px] h-7"), checked: checked, ...rest, children: [jsxRuntime.jsx(Thumb, { className: cn("absolute transition-all duration-100 top-[3px] rounded-full left-1 bg-page-l3 shadow-basic border border-border-bound", size === SWITCH_SIZES.REGULAR &&
|
|
13395
13398
|
"size-7 data-[state=checked]:left-[36px]", size === SWITCH_SIZES.SMALL &&
|
|
13396
|
-
"size-5 data-[state=checked]:left-[28px]", thumbClassName) }), leftIcon && (jsxRuntime.jsx("div", { className: cn("absolute top-1/2 -translate-y-1/2 transition-opacity text-comp-mono-subtle-default", size === SWITCH_SIZES.SMALL && "left-[8px] size-4", size === SWITCH_SIZES.REGULAR && "left-[10px] size-5", checked ? "opacity-100" : "opacity-0"), children: leftIcon })), rightIcon && (jsxRuntime.jsx("div", { className: cn("absolute top-1/2 -translate-y-1/2 transition-opacity text-comp-mono-subtle-default", size === SWITCH_SIZES.SMALL && "right-[8px] size-4", size === SWITCH_SIZES.REGULAR && "right-[10px] size-5", !checked ? "opacity-100" : "opacity-0"), children: rightIcon }))] }));
|
|
13399
|
+
"size-5 data-[state=checked]:left-[28px]", thumbClassName) }), leftIcon && (jsxRuntime.jsx("div", { className: cn("absolute top-1/2 -translate-y-1/2 transition-opacity text-comp-mono-subtle-default", size === SWITCH_SIZES.SMALL && "left-[8px] size-4", size === SWITCH_SIZES.REGULAR && "left-[10px] size-5", checked ? "opacity-100" : "opacity-0"), children: leftIcon })), rightIcon && (jsxRuntime.jsx("div", { className: cn("absolute top-1/2 -translate-y-1/2 transition-opacity text-comp-mono-subtle-default", size === SWITCH_SIZES.SMALL && "right-[8px] size-4", size === SWITCH_SIZES.REGULAR && "right-[10px] size-5", !checked ? "opacity-100" : "opacity-0"), children: rightIcon })), jsxRuntime.jsx(StateColorContainer, { className: "rounded-[20px]" })] }));
|
|
13397
13400
|
};
|
|
13398
13401
|
const Switch = (props) => {
|
|
13399
13402
|
const { defaultChecked, checked: isChecked } = props;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -13,3 +13,4 @@ export { Tag } from "./tag";
|
|
|
13
13
|
export { TAG_SIZES, TAG_VARIANTS } from "./tag/types";
|
|
14
14
|
export type { TagSize, TagVariant } from "./tag/types";
|
|
15
15
|
export { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis, } from "./pagination";
|
|
16
|
+
export { StateColorContainer } from "./state-color-container";
|