@telepix-lab/telepix-ui 0.6.8 → 0.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/button/index.d.ts +12 -0
- package/dist/cjs/button/types.d.ts +1 -0
- package/dist/cjs/client.js +146 -60
- package/dist/cjs/date-picker/index.d.ts +17 -3
- package/dist/cjs/index.d.ts +11 -11
- package/dist/cjs/index.js +139 -102
- package/dist/cjs/input/index.d.ts +5 -2
- package/dist/cjs/input/types.d.ts +6 -0
- package/dist/client.d.ts +17 -3
- package/dist/esm/button/index.d.ts +12 -0
- package/dist/esm/button/types.d.ts +1 -0
- package/dist/esm/client.js +147 -61
- package/dist/esm/date-picker/index.d.ts +17 -3
- package/dist/esm/index.d.ts +11 -11
- package/dist/esm/index.js +138 -103
- package/dist/esm/input/index.d.ts +5 -2
- package/dist/esm/input/types.d.ts +6 -0
- package/dist/index.d.ts +134 -112
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -24,3 +24,15 @@ export interface ButtonProps extends React.DetailedHTMLProps<React.ButtonHTMLAtt
|
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
26
|
export declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
27
|
+
/**
|
|
28
|
+
* Text Dim 스타일의 버튼 컴포넌트입니다.<br/>
|
|
29
|
+
* 텍스트 중심의 보조 액션(secondary / subtle action)에 적합한 low-emphasis 스타일을 제공합니다.<br/>
|
|
30
|
+
* 기본적으로 낮은 명도의 텍스트를 사용하며, hover 시 명도가 상승하고 selected 시 accent 색상으로 강조됩니다.<br/>
|
|
31
|
+
* <br/>
|
|
32
|
+
* ### 사용 예시
|
|
33
|
+
* ```tsx
|
|
34
|
+
* <ButtonTextDim>자세히 보기</ButtonTextDim>
|
|
35
|
+
* <ButtonTextDim aria-selected="true">선택됨</ButtonTextDim>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare const ButtonTextDim: React.ForwardRefExoticComponent<Omit<Omit<ButtonProps, "variant">, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -15,5 +15,6 @@ export declare const BUTTON_VARIANTS: {
|
|
|
15
15
|
readonly OUTLINE_ACCENT: "outline_accent";
|
|
16
16
|
readonly GHOST_ACCENT: "ghost_accent";
|
|
17
17
|
readonly GHOST_DIM: "ghost_dim";
|
|
18
|
+
readonly TEXT_DIM: "text_dim";
|
|
18
19
|
};
|
|
19
20
|
export type ButtonVariant = (typeof BUTTON_VARIANTS)[keyof typeof BUTTON_VARIANTS];
|
package/dist/cjs/client.js
CHANGED
|
@@ -12099,7 +12099,7 @@ const StateColorContainer = ({ groupName = "state", isInverted, className, }) =>
|
|
|
12099
12099
|
const group = groupName || "state";
|
|
12100
12100
|
const mode = isInverted ? "invert" : "normal";
|
|
12101
12101
|
const actionClass = fillClassMap[group]?.[mode] ?? fillClassMap.state[mode];
|
|
12102
|
-
return (jsxRuntime.jsx("div", { className: cn("absolute left-0 top-0 right-0 bottom-0 inset-0 pointer-events-none z-0", actionClass, className) }));
|
|
12102
|
+
return (jsxRuntime.jsx("div", { className: cn("absolute left-0 top-0 right-0 bottom-0 inset-0 pointer-events-none z-0 rounded-[inherit]", actionClass, className) }));
|
|
12103
12103
|
};
|
|
12104
12104
|
|
|
12105
12105
|
const RadioGroupContext = React.createContext({ value: "", disabled: false });
|
|
@@ -12129,7 +12129,7 @@ const RadioItem = React.forwardRef(({ label, labelClassName, wrapperClassName, .
|
|
|
12129
12129
|
const randomId = id ?? React.useId();
|
|
12130
12130
|
const isSelected = React.useContext(RadioGroupContext).value === value;
|
|
12131
12131
|
const isDisabled = React.useContext(RadioGroupContext).disabled || disabled || false;
|
|
12132
|
-
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(
|
|
12132
|
+
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(isDisabled &&
|
|
12133
12133
|
"bg-fill-disabled group-hover/state:bg-fill-disabled group-active/state:bg-fill-disabled") })] }));
|
|
12134
12134
|
});
|
|
12135
12135
|
RadioGroup.displayName = "RadioGroup";
|
|
@@ -12345,11 +12345,19 @@ const Checkbox = React.forwardRef(({ label, labelClassName, wrapperClassName, ..
|
|
|
12345
12345
|
setChecked(value);
|
|
12346
12346
|
onChange?.(value);
|
|
12347
12347
|
};
|
|
12348
|
-
|
|
12348
|
+
const handleWrapperClick = (e) => {
|
|
12349
|
+
// CheckboxRadix.Root와 label은 자체 클릭 핸들러를 가지고 있으므로
|
|
12350
|
+
// wrapper 영역(StateColorContainer 포함)을 직접 클릭한 경우에만 토글
|
|
12351
|
+
if (disabled || e.target !== e.currentTarget)
|
|
12352
|
+
return;
|
|
12353
|
+
const currentChecked = defaultChecked ? checked : isChecked;
|
|
12354
|
+
const newValue = !currentChecked;
|
|
12355
|
+
onCheckedChange(newValue);
|
|
12356
|
+
};
|
|
12357
|
+
return (jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2.5 pl-1.5 py-1 relative group/state", !label ? "pr-1.5 rounded-sm" : "pr-3 rounded-lg", !disabled && "cursor-pointer", wrapperClassName), onClick: handleWrapperClick, 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) }), label && (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(disabled
|
|
12349
12358
|
? "bg-fill-default group-hover/state:bg-fill-default group-active/state:bg-fill-default"
|
|
12350
12359
|
: "") })] }));
|
|
12351
12360
|
});
|
|
12352
|
-
Checkbox.displayName = "Checkbox";
|
|
12353
12361
|
|
|
12354
12362
|
/**
|
|
12355
12363
|
* 카드 컴포넌트는 콘텐츠를 그룹화하고 시각적으로 구분하는 데 사용됩니다.<br/>
|
|
@@ -12469,7 +12477,7 @@ const SelectTrigger = ({ placeholder, textValue, variant = "outline", size = "re
|
|
|
12469
12477
|
"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 &&
|
|
12470
12478
|
"py-1.5 px-1 text-label font-medium leading-label-compact gap-1", size === SELECT_TRIGGER_SIZES.REGULAR &&
|
|
12471
12479
|
"py-1.5 px-2 text-body font-medium leading-body-compact gap-2", size === SELECT_TRIGGER_SIZES.LARGE &&
|
|
12472
|
-
"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, asChild: !!textValue, children: textValue && jsxRuntime.jsx("span", { children: textValue }) }), 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: "
|
|
12480
|
+
"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, asChild: !!textValue, children: textValue && jsxRuntime.jsx("span", { children: textValue }) }), 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: "group-data-disabled/state:bg-fill-default" })] }));
|
|
12473
12481
|
};
|
|
12474
12482
|
const SelectContent = ({ children, viewportClassName, viewportWrapperClassName, ...rest }) => {
|
|
12475
12483
|
const { className, position, sideOffset, ...otherProps } = rest;
|
|
@@ -12486,7 +12494,7 @@ const SelectItem = ({ indicator, ...rest }) => {
|
|
|
12486
12494
|
const { className, textValue, ...otherProps } = rest;
|
|
12487
12495
|
return (jsxRuntime.jsxs(Item, { className: cn(`relative group/state flex items-center justify-between gap-2 py-1.5 px-2 cursor-pointer text-comp-mono-default text-body font-medium leading-body-compact outline-none rounded-sm
|
|
12488
12496
|
[&:is([data-disabled])]:text-comp-disabled [&:is([data-disabled])]:cursor-not-allowed
|
|
12489
|
-
`, className), ...otherProps, children: [jsxRuntime.jsx(ItemText, { children: textValue ?? otherProps.value }), indicator && (jsxRuntime.jsx(ItemIndicator, { className: "w-4 flex items-center justify-center", children: indicator })), jsxRuntime.jsx(StateColorContainer, { className: "
|
|
12497
|
+
`, className), ...otherProps, children: [jsxRuntime.jsx(ItemText, { children: textValue ?? otherProps.value }), indicator && (jsxRuntime.jsx(ItemIndicator, { className: "w-4 flex items-center justify-center", children: indicator })), jsxRuntime.jsx(StateColorContainer, { className: "group-data-disabled/state:bg-fill-default" })] }));
|
|
12490
12498
|
};
|
|
12491
12499
|
Select.displayName = "Select";
|
|
12492
12500
|
SelectTrigger.displayName = "SelectTrigger";
|
|
@@ -12536,7 +12544,7 @@ const VerticalMenu = React.forwardRef(({ disabled, value, label, icon, variant =
|
|
|
12536
12544
|
rest.onClick?.(e);
|
|
12537
12545
|
};
|
|
12538
12546
|
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 &&
|
|
12539
|
-
`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("
|
|
12547
|
+
`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("group-disabled/state:bg-fill-default", variant === VERTICAL_MENU_VARIANTS.ACCENT &&
|
|
12540
12548
|
"group-aria-selected:bg-fill-default") })] }));
|
|
12541
12549
|
});
|
|
12542
12550
|
VerticalMenu.displayName = "VerticalMenu";
|
|
@@ -12573,7 +12581,7 @@ const HorizontalTab = React.forwardRef(({ value, label, className, icon, size =
|
|
|
12573
12581
|
return;
|
|
12574
12582
|
setSelectedTab(value);
|
|
12575
12583
|
};
|
|
12576
|
-
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
|
|
12584
|
+
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" })] }));
|
|
12577
12585
|
});
|
|
12578
12586
|
|
|
12579
12587
|
const ModeTabContext = React.createContext({
|
|
@@ -12603,7 +12611,7 @@ const ModeTab = React.forwardRef(({ label, icon, value, className, ...rest }, re
|
|
|
12603
12611
|
return;
|
|
12604
12612
|
setSelectedTab(value);
|
|
12605
12613
|
};
|
|
12606
|
-
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, {
|
|
12614
|
+
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, {})] }));
|
|
12607
12615
|
});
|
|
12608
12616
|
|
|
12609
12617
|
const TOOLTIP_SHORT_VARIANTS = {
|
|
@@ -12665,17 +12673,12 @@ const Tag = React.forwardRef(({ icon, value, variant = "filled", size = "regular
|
|
|
12665
12673
|
`bg-page-l4 text-comp-mono-subtle-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, variant === "accent" &&
|
|
12666
12674
|
`bg-page-accent-l0 text-comp-accent-default data-disabled:text-comp-disabled data-disabled:bg-page-l-null`, size === "regular" &&
|
|
12667
12675
|
"text-body font-medium leading-body-compact px-2 py-1 gap-2", size === "small" &&
|
|
12668
|
-
"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(
|
|
12676
|
+
"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(useSelectedStyle
|
|
12669
12677
|
? ""
|
|
12670
12678
|
: "group-active/state:bg-fill-default group-active/state:border-transparent group-disabled/state:bg-fill-default"), isInverted: variant === "accent" })] }));
|
|
12671
12679
|
});
|
|
12672
12680
|
Tag.displayName = "Tag";
|
|
12673
12681
|
|
|
12674
|
-
const INPUT_SIZES = {
|
|
12675
|
-
REGULAR: "regular",
|
|
12676
|
-
LARGE: "large",
|
|
12677
|
-
};
|
|
12678
|
-
|
|
12679
12682
|
const TEXT_VARIANTS = {
|
|
12680
12683
|
BOLD3XLARGEBOLD: "bold3XLargeBold",
|
|
12681
12684
|
BOLD2XLARGEBOLDCOMPACT: "bold2XLargeBoldCompact",
|
|
@@ -12884,10 +12887,21 @@ const Text = ({ children, className, size, weight, align, variant = "regularBase
|
|
|
12884
12887
|
};
|
|
12885
12888
|
Text.displayName = "Text";
|
|
12886
12889
|
|
|
12890
|
+
const INPUT_SIZES = {
|
|
12891
|
+
SMALL: "small",
|
|
12892
|
+
REGULAR: "regular",
|
|
12893
|
+
LARGE: "large",
|
|
12894
|
+
};
|
|
12895
|
+
const INPUT_VARIANTS = {
|
|
12896
|
+
OUTLINED: "outlined",
|
|
12897
|
+
FILLED: "filled",
|
|
12898
|
+
};
|
|
12899
|
+
|
|
12887
12900
|
/**
|
|
12888
12901
|
* 다양한 크기와 아이콘을 지원하는 입력 필드 컴포넌트입니다.<br/>
|
|
12889
|
-
* 사용자는 크기(size), 왼쪽 아이콘(leftIcon), 오른쪽 아이콘(rightIcon) 등을 지정할 수 있습니다.<br/>
|
|
12902
|
+
* 사용자는 크기(size), 변형(variant), 왼쪽 아이콘(leftIcon), 오른쪽 아이콘(rightIcon) 등을 지정할 수 있습니다.<br/>
|
|
12890
12903
|
* 기본적으로 regular 크기를 가지며, large 크기도 선택할 수 있습니다.<br/>
|
|
12904
|
+
* 기본적으로 outlined 변형을 가지며, filled 변형도 선택할 수 있습니다.<br/>
|
|
12891
12905
|
* input의 너비는 부모 요소에 따라 결정됩니다.<br/>
|
|
12892
12906
|
* input 자체의 클래스는 `className` 속성을 통해 추가할 수 있습니다.<br/>
|
|
12893
12907
|
* wrapperClassName을 통해 input을 감싸는 div의 클래스도 추가할 수 있습니다.<br/>
|
|
@@ -12896,6 +12910,7 @@ Text.displayName = "Text";
|
|
|
12896
12910
|
* ```tsx
|
|
12897
12911
|
* <Input
|
|
12898
12912
|
* size="large"
|
|
12913
|
+
* variant="outlined"
|
|
12899
12914
|
* leftIcon={<SearchIcon />}
|
|
12900
12915
|
* rightIcon={<ClearIcon />}
|
|
12901
12916
|
* placeholder="Search..."
|
|
@@ -12903,7 +12918,7 @@ Text.displayName = "Text";
|
|
|
12903
12918
|
* />
|
|
12904
12919
|
* ```
|
|
12905
12920
|
*/
|
|
12906
|
-
const Input = React.forwardRef(({ size = "regular", leftIcon, rightIcon, wrapperClassName, isError = false, useHoverStyle = true, errorMessage, useIndicator = false, ...rest }, ref) => {
|
|
12921
|
+
const Input = React.forwardRef(({ size = "regular", variant = "outlined", leftIcon, rightIcon, wrapperClassName, isError = false, useHoverStyle = true, errorMessage, useIndicator = false, ...rest }, ref) => {
|
|
12907
12922
|
const innerRef = React.useRef(null);
|
|
12908
12923
|
const mergedRef = (node) => {
|
|
12909
12924
|
if (typeof ref === "function")
|
|
@@ -12912,13 +12927,17 @@ const Input = React.forwardRef(({ size = "regular", leftIcon, rightIcon, wrapper
|
|
|
12912
12927
|
ref.current = node;
|
|
12913
12928
|
innerRef.current = node;
|
|
12914
12929
|
};
|
|
12915
|
-
return (jsxRuntime.jsxs(React.Fragment, { 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
|
|
12930
|
+
return (jsxRuntime.jsxs(React.Fragment, { children: [jsxRuntime.jsxs("div", { "aria-disabled": rest.disabled, className: cn("relative group/state flex items-center justify-center rounded-lg border bg-Page-l-null border-border-bound focus-within:border-border-focused has-[input:disabled]:border-transparent", variant === INPUT_VARIANTS.OUTLINED &&
|
|
12931
|
+
"border border-border-bound focus-within:border-border-focused", variant === INPUT_VARIANTS.FILLED &&
|
|
12932
|
+
"bg-page-l3 border-transparent focus-within:border-transparent", size === INPUT_SIZES.SMALL &&
|
|
12933
|
+
"py-1.5 px-2 text-label leading-label-compact font-medium gap-1", size === INPUT_SIZES.REGULAR &&
|
|
12916
12934
|
"py-1.5 px-2 text-body leading-body-compact font-medium gap-2", size === INPUT_SIZES.LARGE &&
|
|
12917
12935
|
"py-[11px] px-4 text-base leading-base-compact font-medium gap-3", isError &&
|
|
12918
12936
|
"border-comp-chroma-error focus-within:border-comp-chroma-error", wrapperClassName), onClick: () => {
|
|
12919
12937
|
innerRef.current?.focus();
|
|
12920
12938
|
}, 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 min-w-0 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 &&
|
|
12921
|
-
"hover:placeholder:text-comp-mono-subtle-hovered", size === INPUT_SIZES.
|
|
12939
|
+
"hover:placeholder:text-comp-mono-subtle-hovered", size === INPUT_SIZES.SMALL &&
|
|
12940
|
+
"text-label leading-label-compact font-medium", size === INPUT_SIZES.REGULAR &&
|
|
12922
12941
|
"text-body leading-body-compact font-medium", size === INPUT_SIZES.LARGE &&
|
|
12923
12942
|
"text-base leading-base-compact font-medium", isError &&
|
|
12924
12943
|
"placeholder:text-comp-chroma-error text-comp-chroma-error hover:placeholder:text-comp-error focus:placeholder:text-comp-error", rest.type === "number" &&
|
|
@@ -13041,7 +13060,7 @@ const MultipleSelectItem = React.forwardRef(({ option, indicator, className, ...
|
|
|
13041
13060
|
setSelectedValues(newValues);
|
|
13042
13061
|
};
|
|
13043
13062
|
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 &&
|
|
13044
|
-
"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, {
|
|
13063
|
+
"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, {})] }));
|
|
13045
13064
|
});
|
|
13046
13065
|
|
|
13047
13066
|
const Table = React.forwardRef(({ className, ...rest }, ref) => {
|
|
@@ -13090,7 +13109,7 @@ const InteractiveListItemContext = React.createContext({
|
|
|
13090
13109
|
});
|
|
13091
13110
|
const InteractiveListItem = React.forwardRef(({ isSelected, disabled, showHoverActions = true, children, className, ...rest }, ref) => {
|
|
13092
13111
|
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/wrapper flex items-center gap-1 p-1.5 rounded-sm cursor-pointer text-comp-mono-default bg-page-l-null order border-transparent", isSelected && "bg-fill-mono-selected border-border-selected", disabled &&
|
|
13093
|
-
"cursor-not-allowed text-comp-disabled bg-fill-disabled", className), ...rest, children: [children, jsxRuntime.jsx(StateColorContainer, {
|
|
13112
|
+
"cursor-not-allowed text-comp-disabled bg-fill-disabled", className), ...rest, children: [children, jsxRuntime.jsx(StateColorContainer, { groupName: "wrapper" })] }) }));
|
|
13094
13113
|
});
|
|
13095
13114
|
const InteractiveListItemIcon = React.forwardRef(({ children, className, ...props }, ref) => {
|
|
13096
13115
|
return (jsxRuntime.jsx("span", { className: cn("flex items-center justify-center size-6 p-1", className), ...props, ref: ref, children: children }));
|
|
@@ -13117,6 +13136,7 @@ const Calendar = ({ className, classNames, showOutsideDays = true, ...props }) =
|
|
|
13117
13136
|
weekday: "text-comp-mono-subtle-default text-body font-normal leading-body size-9 p-1",
|
|
13118
13137
|
day: "p-1 bg-transparent",
|
|
13119
13138
|
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",
|
|
13139
|
+
disabled: "[&_button]:text-comp-disabled [&_button]:cursor-not-allowed [&_button]:hover:bg-transparent",
|
|
13120
13140
|
selected: cn("[&_button]:bg-page-accent-l0 bg-transparent", props.mode === "single" &&
|
|
13121
13141
|
"[&_button]:text-comp-accent-default [&_button]:hover:bg-page-accent-l0"),
|
|
13122
13142
|
outside: "[&_button]:text-comp-disabled",
|
|
@@ -13130,12 +13150,21 @@ const Calendar = ({ className, classNames, showOutsideDays = true, ...props }) =
|
|
|
13130
13150
|
Dropdown: (props) => {
|
|
13131
13151
|
const { options, className, classNames, components, ...rest } = props;
|
|
13132
13152
|
const selectedOption = options?.find(({ value }) => value === rest.value);
|
|
13133
|
-
return (jsxRuntime.jsxs("div", { className: cn("group/state flex px-2 py-1 rounded-lg relative cursor-pointer", props["aria-label"]?.includes("Month") ? "w-28" : "w-20"), children: [jsxRuntime.jsx("select", { ...rest, className: cn("text-body leading-body-compact font-medium text-comp-mono-default focus:outline-none z-[1] opacity-0 appearance-none absolute inset-0 w-full", className), name: props["aria-label"], children: options?.map((option) => (jsxRuntime.jsx("option", { value: option.value, children: option.label }, option.value))) }), jsxRuntime.jsxs(Text, { variant: "medBodyMedCompact", className: "flex gap-0.5 items-center justify-end w-full text-comp-mono-default leading-3.5 cursor-pointer", "aria-hidden": true, children: [jsxRuntime.jsx("span", { className: "inline-block px-1 py-1.5 flex-1 text-right", children: selectedOption?.label }), jsxRuntime.jsx(ChevronDown, { size: 16 })] }), jsxRuntime.jsx(StateColorContainer, {
|
|
13153
|
+
return (jsxRuntime.jsxs("div", { className: cn("group/state flex px-2 py-1 rounded-lg relative cursor-pointer", props["aria-label"]?.includes("Month") ? "w-28" : "w-20"), children: [jsxRuntime.jsx("select", { ...rest, className: cn("text-body leading-body-compact font-medium text-comp-mono-default focus:outline-none z-[1] opacity-0 appearance-none absolute inset-0 w-full", className), name: props["aria-label"], children: options?.map((option) => (jsxRuntime.jsx("option", { value: option.value, children: option.label }, option.value))) }), jsxRuntime.jsxs(Text, { variant: "medBodyMedCompact", className: "flex gap-0.5 items-center justify-end w-full text-comp-mono-default leading-3.5 cursor-pointer", "aria-hidden": true, children: [jsxRuntime.jsx("span", { className: "inline-block px-1 py-1.5 flex-1 text-right", children: selectedOption?.label }), jsxRuntime.jsx(ChevronDown, { size: 16 })] }), jsxRuntime.jsx(StateColorContainer, {})] }));
|
|
13134
13154
|
},
|
|
13135
13155
|
Chevron: (args) => (jsxRuntime.jsx(ChevronLeft, { ...args, size: 20, "data-orientation": args.orientation, className: "text-comp-mono-default [&:is([data-orientation='right'])]:rotate-180 [&:is([data-orientation='up'])]:rotate-90 [&:is([data-orientation='down'])]:-rotate-90" })),
|
|
13136
13156
|
}, ...props }));
|
|
13137
13157
|
};
|
|
13138
13158
|
|
|
13159
|
+
var dayjs_min = {exports: {}};
|
|
13160
|
+
|
|
13161
|
+
(function (module, exports) {
|
|
13162
|
+
!function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,true),this.parse(t),this.$x=this.$x||t.x||{},this[p]=true;}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return b},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,false)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case "YY":return String(e.$y).slice(-2);case "YYYY":return b.s(e.$y,4,"0");case "M":return a+1;case "MM":return b.s(a+1,2,"0");case "MMM":return h(n.monthsShort,a,c,3);case "MMMM":return h(c,a);case "D":return e.$D;case "DD":return b.s(e.$D,2,"0");case "d":return String(e.$W);case "dd":return h(n.weekdaysMin,e.$W,o,2);case "ddd":return h(n.weekdaysShort,e.$W,o,3);case "dddd":return o[e.$W];case "H":return String(s);case "HH":return b.s(s,2,"0");case "h":return d(1);case "hh":return d(2);case "a":return $(s,u,true);case "A":return $(s,u,false);case "m":return String(u);case "mm":return b.s(u,2,"0");case "s":return String(e.$s);case "ss":return b.s(e.$s,2,"0");case "SSS":return b.s(e.$ms,3,"0");case "Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g;}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,true);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=true),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
|
|
13163
|
+
} (dayjs_min));
|
|
13164
|
+
|
|
13165
|
+
var dayjs_minExports = dayjs_min.exports;
|
|
13166
|
+
var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports);
|
|
13167
|
+
|
|
13139
13168
|
const BUTTON_SIZES = {
|
|
13140
13169
|
REGULAR: "regular",
|
|
13141
13170
|
SMALL: "small",
|
|
@@ -13143,7 +13172,9 @@ const BUTTON_SIZES = {
|
|
|
13143
13172
|
};
|
|
13144
13173
|
const BUTTON_VARIANTS = {
|
|
13145
13174
|
ACCENT: "accent",
|
|
13146
|
-
THUMBNAIL_GHOST: "thumbnail_ghost"
|
|
13175
|
+
THUMBNAIL_GHOST: "thumbnail_ghost",
|
|
13176
|
+
TEXT_DIM: "text_dim",
|
|
13177
|
+
};
|
|
13147
13178
|
|
|
13148
13179
|
/**
|
|
13149
13180
|
* 다양한 스타일과 속성을 지원하는 버튼 컴포넌트입니다.<br/>
|
|
@@ -13161,6 +13192,13 @@ const BUTTON_VARIANTS = {
|
|
|
13161
13192
|
*/
|
|
13162
13193
|
const Button = React.forwardRef(({ variant = "accent", size = "regular", fullWidth = false, isLoading = false, leftIcon, rightIcon, children, disabled, className, stateContainerClassName, ...rest }, ref) => {
|
|
13163
13194
|
const getClassName = (size, variant) => {
|
|
13195
|
+
// text_dim variant는 size에 관계없이 고정된 스타일 사용
|
|
13196
|
+
if (variant === BUTTON_VARIANTS.TEXT_DIM) {
|
|
13197
|
+
return [
|
|
13198
|
+
"h-auto py-0.5 px-0 text-body leading-body-compact gap-1.5",
|
|
13199
|
+
"bg-page-l-null text-comp-mono-subtle-default hover:text-comp-mono-default aria-selected:text-comp-mono-default disabled:bg-page-l-null disabled:text-comp-disabled disabled:hover:text-comp-disabled",
|
|
13200
|
+
];
|
|
13201
|
+
}
|
|
13164
13202
|
const sizeClassName = {
|
|
13165
13203
|
small: "h-7 py-0 px-1 text-label leading-label-compact gap-1",
|
|
13166
13204
|
regular: "h-9 py-0 px-2 text-body leading-body-compact gap-1.5",
|
|
@@ -13177,6 +13215,7 @@ const Button = React.forwardRef(({ variant = "accent", size = "regular", fullWid
|
|
|
13177
13215
|
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",
|
|
13178
13216
|
ghost_accent: "bg-page-l-null disabled:bg-page-l-null text-comp-accent-default disabled:text-comp-disabled",
|
|
13179
13217
|
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",
|
|
13218
|
+
text_dim: "", // 위에서 처리되므로 여기서는 빈 문자열
|
|
13180
13219
|
}[variant];
|
|
13181
13220
|
return [sizeClassName, variantClassName];
|
|
13182
13221
|
};
|
|
@@ -13194,46 +13233,91 @@ const Button = React.forwardRef(({ variant = "accent", size = "regular", fullWid
|
|
|
13194
13233
|
return "size-5";
|
|
13195
13234
|
return "size-6"; // 기본값은 regular 크기
|
|
13196
13235
|
};
|
|
13197
|
-
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", 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 &&
|
|
13236
|
+
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", className), ...rest, children: [variant !== BUTTON_VARIANTS.TEXT_DIM && (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 &&
|
|
13198
13237
|
"size-4 top-[calc(50%-8px)] left-[calc(50%-8px)]", size === BUTTON_SIZES.REGULAR &&
|
|
13199
13238
|
"size-5 top-[calc(50%-10px)] left-[calc(50%-10px)]", size === BUTTON_SIZES.LARGE &&
|
|
13200
13239
|
"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 &&
|
|
13201
13240
|
"aspect-square [&_img]:rounded-sm", getThumbnailSize(variant, size)), children: leftIcon })), children && (jsxRuntime.jsx("div", { className: "flex-1", style: { visibility: isLoading ? "hidden" : "visible" }, children: children })), rightIcon && (jsxRuntime.jsx("div", { className: cn("flex items-center justify-center relative", getThumbnailSize(variant, size)), children: rightIcon }))] }));
|
|
13202
13241
|
});
|
|
13203
13242
|
Button.displayName = "Button";
|
|
13204
|
-
|
|
13205
|
-
|
|
13206
|
-
|
|
13207
|
-
|
|
13208
|
-
|
|
13209
|
-
|
|
13210
|
-
|
|
13211
|
-
|
|
13212
|
-
|
|
13213
|
-
|
|
13214
|
-
|
|
13215
|
-
|
|
13216
|
-
|
|
13243
|
+
/**
|
|
13244
|
+
* Text Dim 스타일의 버튼 컴포넌트입니다.<br/>
|
|
13245
|
+
* 텍스트 중심의 보조 액션(secondary / subtle action)에 적합한 low-emphasis 스타일을 제공합니다.<br/>
|
|
13246
|
+
* 기본적으로 낮은 명도의 텍스트를 사용하며, hover 시 명도가 상승하고 selected 시 accent 색상으로 강조됩니다.<br/>
|
|
13247
|
+
* <br/>
|
|
13248
|
+
* ### 사용 예시
|
|
13249
|
+
* ```tsx
|
|
13250
|
+
* <ButtonTextDim>자세히 보기</ButtonTextDim>
|
|
13251
|
+
* <ButtonTextDim aria-selected="true">선택됨</ButtonTextDim>
|
|
13252
|
+
* ```
|
|
13253
|
+
*/
|
|
13254
|
+
const ButtonTextDim = React.forwardRef((props, ref) => {
|
|
13255
|
+
return jsxRuntime.jsx(Button, { ref: ref, variant: "text_dim", ...props });
|
|
13256
|
+
});
|
|
13257
|
+
ButtonTextDim.displayName = "ButtonTextDim";
|
|
13258
|
+
|
|
13259
|
+
const DatePicker = ({ size = "regular", placeholder = "Pick a date", format = "YYYY. MM. DD.", value, mode = "single", onChange, isInstantClose = false, open: openProp, onOpenChange: onOpenChangeProp, disabled, popoverContentClassName, minDate, maxDate, disabledDates, ...rest }) => {
|
|
13260
|
+
// Determine if component is in controlled mode
|
|
13261
|
+
// Using useRef to track initial controlled state (React's recommended approach)
|
|
13262
|
+
const isControlledRef = React.useRef(value !== undefined);
|
|
13263
|
+
const isControlled = isControlledRef.current;
|
|
13264
|
+
const [internalValue, setInternalValue] = React.useState(value);
|
|
13265
|
+
const [internalOpen, setInternalOpen] = React.useState(openProp ?? false);
|
|
13266
|
+
// Use controlled value if provided, otherwise use internal state
|
|
13267
|
+
const displayValue = isControlled ? value : internalValue;
|
|
13268
|
+
const displayOpen = openProp !== undefined ? openProp : internalOpen;
|
|
13217
13269
|
const handleSelect = (date) => {
|
|
13218
|
-
|
|
13219
|
-
|
|
13220
|
-
|
|
13221
|
-
|
|
13222
|
-
|
|
13223
|
-
const value = date;
|
|
13224
|
-
onChange?.(value);
|
|
13225
|
-
}
|
|
13226
|
-
else if (mode === "range") {
|
|
13227
|
-
const value = date;
|
|
13228
|
-
onChange?.(value);
|
|
13270
|
+
// Always call onChange to notify parent
|
|
13271
|
+
onChange?.(date);
|
|
13272
|
+
// Only update internal state in uncontrolled mode
|
|
13273
|
+
if (!isControlled) {
|
|
13274
|
+
setInternalValue(date);
|
|
13229
13275
|
}
|
|
13230
|
-
|
|
13276
|
+
// Close popover if instant close is enabled (single mode only)
|
|
13231
13277
|
if (isInstantClose && mode === "single") {
|
|
13232
13278
|
handleOpenChange(false);
|
|
13233
13279
|
}
|
|
13234
13280
|
};
|
|
13281
|
+
// Calculate disabled dates based on minDate, maxDate, range validation, and custom disabled dates
|
|
13282
|
+
// Using react-day-picker's native Matcher format for better performance
|
|
13283
|
+
const isCalendarDisabled = React.useMemo(() => {
|
|
13284
|
+
const matchers = [];
|
|
13285
|
+
// Add minDate constraint using native 'before' matcher
|
|
13286
|
+
if (minDate) {
|
|
13287
|
+
matchers.push({ before: minDate });
|
|
13288
|
+
}
|
|
13289
|
+
// Add maxDate constraint using native 'after' matcher
|
|
13290
|
+
if (maxDate) {
|
|
13291
|
+
matchers.push({ after: maxDate });
|
|
13292
|
+
}
|
|
13293
|
+
// Range mode: when only 'from' is selected, disable all dates before it
|
|
13294
|
+
if (mode === "range" &&
|
|
13295
|
+
displayValue &&
|
|
13296
|
+
typeof displayValue === "object" &&
|
|
13297
|
+
"from" in displayValue) {
|
|
13298
|
+
const rangeValue = displayValue;
|
|
13299
|
+
if (rangeValue.from && !rangeValue.to) {
|
|
13300
|
+
matchers.push({ before: rangeValue.from });
|
|
13301
|
+
}
|
|
13302
|
+
}
|
|
13303
|
+
// Add custom disabled dates
|
|
13304
|
+
if (disabledDates) {
|
|
13305
|
+
if (Array.isArray(disabledDates)) {
|
|
13306
|
+
matchers.push(...disabledDates);
|
|
13307
|
+
}
|
|
13308
|
+
else {
|
|
13309
|
+
matchers.push(disabledDates);
|
|
13310
|
+
}
|
|
13311
|
+
}
|
|
13312
|
+
// Return combined matchers (react-day-picker handles OR logic automatically)
|
|
13313
|
+
return matchers.length > 0 ? matchers : undefined;
|
|
13314
|
+
}, [minDate, maxDate, mode, displayValue, disabledDates]);
|
|
13235
13315
|
const handleOpenChange = (open) => {
|
|
13236
|
-
|
|
13316
|
+
// Update internal state only in uncontrolled mode
|
|
13317
|
+
if (openProp === undefined) {
|
|
13318
|
+
setInternalOpen(open);
|
|
13319
|
+
}
|
|
13320
|
+
// Always notify parent
|
|
13237
13321
|
onOpenChangeProp?.(open);
|
|
13238
13322
|
};
|
|
13239
13323
|
const getDateToFormatString = (date) => {
|
|
@@ -13243,15 +13327,17 @@ const DatePicker = ({ size = "regular", placeholder = "Pick a date", format = "Y
|
|
|
13243
13327
|
else if (Array.isArray(date)) {
|
|
13244
13328
|
return date.map((d) => dayjs(d).format(format)).join(", ");
|
|
13245
13329
|
}
|
|
13246
|
-
else if (date &&
|
|
13247
|
-
|
|
13248
|
-
|
|
13249
|
-
|
|
13250
|
-
return
|
|
13330
|
+
else if (date && typeof date === "object" && "from" in date) {
|
|
13331
|
+
if (date.to) {
|
|
13332
|
+
return `${dayjs(date.from).format(format)} - ${dayjs(date.to).format(format)}`;
|
|
13333
|
+
}
|
|
13334
|
+
return dayjs(date.from).format(format);
|
|
13251
13335
|
}
|
|
13252
13336
|
return placeholder ?? "";
|
|
13253
13337
|
};
|
|
13254
|
-
return (jsxRuntime.jsxs(Root2$2, { open:
|
|
13338
|
+
return (jsxRuntime.jsxs(Root2$2, { open: displayOpen, 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": displayOpen, disabled: disabled, stateContainerClassName: displayOpen
|
|
13339
|
+
? "group-aria-selected/state:bg-fill-default"
|
|
13340
|
+
: undefined, children: getDateToFormatString(displayValue) }) }), jsxRuntime.jsx(Content2$2, { sideOffset: 10, align: "start", className: cn("z-10", popoverContentClassName), ...rest, children: mode === "single" ? (jsxRuntime.jsx(Calendar, { mode: "single", ...rest, selected: displayValue, onSelect: handleSelect, disabled: isCalendarDisabled })) : mode === "multiple" ? (jsxRuntime.jsx(Calendar, { mode: "multiple", ...rest, selected: Array.isArray(displayValue) ? displayValue : [], onSelect: handleSelect, disabled: isCalendarDisabled })) : (jsxRuntime.jsx(Calendar, { mode: "range", ...rest, selected: displayValue, onSelect: handleSelect, disabled: isCalendarDisabled })) })] }));
|
|
13255
13341
|
};
|
|
13256
13342
|
|
|
13257
13343
|
const ContextMenu = Root2$3;
|
|
@@ -13265,7 +13351,7 @@ const ContextMenuLabel = (props) => {
|
|
|
13265
13351
|
};
|
|
13266
13352
|
const ContextMenuItem = ({ leftIcon, rightSlot, textValue, ...rest }) => {
|
|
13267
13353
|
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
|
|
13268
|
-
[&: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: "
|
|
13354
|
+
[&: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: "group-aria-disabled/state:bg-fill-default group-[data-state='open']/state:bg-fill-selected" })] }));
|
|
13269
13355
|
};
|
|
13270
13356
|
const ContextMenuGroup = Group2;
|
|
13271
13357
|
const ContextMenuSub = Sub2;
|
|
@@ -13405,7 +13491,7 @@ const FilledSwitch = (props) => {
|
|
|
13405
13491
|
const { size, checked, thumbClassName, ...rest } = props;
|
|
13406
13492
|
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 &&
|
|
13407
13493
|
"size-6 left-1.5 data-[state=checked]:left-[37px]", size === SWITCH_SIZES.SMALL &&
|
|
13408
|
-
"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, {
|
|
13494
|
+
"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, {})] }));
|
|
13409
13495
|
};
|
|
13410
13496
|
const OutlinedSwitch = (props) => {
|
|
13411
13497
|
const { size, checked, thumbClassName, ...rest } = props;
|
|
@@ -13417,13 +13503,13 @@ const OutlinedSwitch = (props) => {
|
|
|
13417
13503
|
? "boldBodyBoldCompact"
|
|
13418
13504
|
: "boldLabelBoldCompact", className: "text-comp-accent-default pl-2 text-left", as: "div", children: "ON" })) : (jsxRuntime.jsx(Text, { variant: size === SWITCH_SIZES.REGULAR
|
|
13419
13505
|
? "medBodyMedCompact"
|
|
13420
|
-
: "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, {
|
|
13506
|
+
: "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, {})] }));
|
|
13421
13507
|
};
|
|
13422
13508
|
const SlideSwitch = (props) => {
|
|
13423
13509
|
const { size, checked, thumbClassName, leftIcon, rightIcon, ...rest } = props;
|
|
13424
13510
|
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 &&
|
|
13425
13511
|
"size-7 data-[state=checked]:left-[36px]", size === SWITCH_SIZES.SMALL &&
|
|
13426
|
-
"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, {
|
|
13512
|
+
"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, {})] }));
|
|
13427
13513
|
};
|
|
13428
13514
|
const Switch = (props) => {
|
|
13429
13515
|
const { defaultChecked, checked: isChecked } = props;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Popover } from "radix-ui";
|
|
2
|
+
import { DateRange, Matcher } from "react-day-picker";
|
|
2
3
|
import { CalendarProps } from "../calendar";
|
|
3
|
-
import { DateRange } from "react-day-picker";
|
|
4
4
|
type AllDatePickerTypes = Date | undefined | DateRange | Date[];
|
|
5
5
|
interface DatePicker {
|
|
6
6
|
size: "regular" | "large";
|
|
@@ -11,7 +11,21 @@ interface DatePicker {
|
|
|
11
11
|
isInstantClose?: boolean;
|
|
12
12
|
disabled?: boolean;
|
|
13
13
|
popoverContentClassName?: string;
|
|
14
|
+
minDate?: Date;
|
|
15
|
+
maxDate?: Date;
|
|
16
|
+
/**
|
|
17
|
+
* Custom disabled dates matcher.
|
|
18
|
+
* Note: For optimal performance, memoize this prop in the parent component
|
|
19
|
+
* to avoid unnecessary recalculations.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const disabledDates = useMemo(() => [
|
|
23
|
+
* new Date(2025, 0, 15),
|
|
24
|
+
* { from: new Date(2025, 1, 10), to: new Date(2025, 1, 15) }
|
|
25
|
+
* ], []);
|
|
26
|
+
*/
|
|
27
|
+
disabledDates?: Matcher | Matcher[];
|
|
14
28
|
}
|
|
15
|
-
export type DatePickerProps = DatePicker & CalendarProps & Popover.PopoverProps & Omit<Popover.PopoverContentProps, "className">;
|
|
16
|
-
export declare const DatePicker: ({ size, placeholder, format, value, mode, onChange, isInstantClose, open: openProp, onOpenChange: onOpenChangeProp, disabled, popoverContentClassName, ...rest }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export type DatePickerProps = DatePicker & Omit<CalendarProps, "disabled" | "selected" | "onSelect"> & Popover.PopoverProps & Omit<Popover.PopoverContentProps, "className">;
|
|
30
|
+
export declare const DatePicker: ({ size, placeholder, format, value, mode, onChange, isInstantClose, open: openProp, onOpenChange: onOpenChangeProp, disabled, popoverContentClassName, minDate, maxDate, disabledDates, ...rest }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
31
|
export {};
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export { Button } from "./button";
|
|
1
|
+
export { Button, ButtonTextDim } from "./button";
|
|
2
2
|
export { BUTTON_SIZES, BUTTON_VARIANTS } from "./button/types";
|
|
3
3
|
export type { ButtonSize, ButtonVariant } from "./button/types";
|
|
4
|
-
export { Text } from "./text";
|
|
5
|
-
export { TEXT_SIZES, TEXT_VARIANTS, TEXT_ALIGNMENTS, FONT_WEIGHTS, } from "./text/types";
|
|
6
|
-
export type { TextSize, FontWeight, TextAlignment, TextVariant, } from "./text/types";
|
|
7
|
-
export { Input } from "./input";
|
|
8
|
-
export { INPUT_SIZES } from "./input/types";
|
|
9
|
-
export type { InputSize } from "./input/types";
|
|
10
|
-
export { TextArea } from "./textarea";
|
|
11
4
|
export { Card, CardBody, CardContent, CardFooter, CardHeader } from "./card";
|
|
5
|
+
export { Input } from "./input";
|
|
6
|
+
export { INPUT_SIZES, INPUT_VARIANTS } from "./input/types";
|
|
7
|
+
export type { InputSize, InputVariant } from "./input/types";
|
|
8
|
+
export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from "./pagination";
|
|
9
|
+
export { StateColorContainer } from "./state-color-container";
|
|
10
|
+
export type { StateGroupName } from "./state-color-container/types";
|
|
12
11
|
export { Tag } from "./tag";
|
|
13
12
|
export { TAG_SIZES, TAG_VARIANTS } from "./tag/types";
|
|
14
13
|
export type { TagSize, TagVariant } from "./tag/types";
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export type {
|
|
14
|
+
export { Text } from "./text";
|
|
15
|
+
export { FONT_WEIGHTS, TEXT_ALIGNMENTS, TEXT_SIZES, TEXT_VARIANTS, } from "./text/types";
|
|
16
|
+
export type { FontWeight, TextAlignment, TextSize, TextVariant, } from "./text/types";
|
|
17
|
+
export { TextArea } from "./textarea";
|