@exem-ui/react 0.3.4-next.20260609073805 → 0.3.4-next.20260611020341

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/index.d.mts CHANGED
@@ -463,7 +463,15 @@ type TextAreaLabelProps = {
463
463
  required?: boolean;
464
464
  className?: string;
465
465
  };
466
- type TextAreaFieldProps = Omit<React$1.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'disabled' | 'id' | 'value' | 'onChange' | 'maxLength'>;
466
+ type TextAreaBottomRightSlot = React$1.ReactNode;
467
+ type TextAreaFieldProps = Omit<React$1.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'disabled' | 'id' | 'value' | 'onChange' | 'maxLength'> & {
468
+ /**
469
+ * Field 우측 하단에 표시할 슬롯입니다.
470
+ * disabled 상태와 별개로 렌더되므로 필요 시 slot 요소에 직접 disabled를 전달하세요.
471
+ * 입력 텍스트와 겹치지 않도록 Field에 우측/하단 padding을 함께 지정하는 것을 권장합니다.
472
+ */
473
+ bottomRightSlot?: TextAreaBottomRightSlot;
474
+ };
467
475
  type TextAreaDescriptionProps = {
468
476
  children?: React$1.ReactNode;
469
477
  showCounter?: boolean;
@@ -649,6 +657,91 @@ type ModalComponent = typeof DialogPrimitive.Root & {
649
657
  */
650
658
  declare const Modal: ModalComponent;
651
659
 
660
+ type SheetSide = 'top' | 'right' | 'bottom' | 'left';
661
+ type SheetRootProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;
662
+ type SheetTriggerProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
663
+ type SheetPortalProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>;
664
+ type SheetOverlayProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>;
665
+ type SheetContentProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {
666
+ /**
667
+ * Sheet가 열리는 방향
668
+ * @default 'right'
669
+ */
670
+ side?: SheetSide;
671
+ };
672
+ type SheetCloseProps = ButtonProps;
673
+ type SheetHeaderProps = React__default.HTMLAttributes<HTMLDivElement> & {
674
+ /**
675
+ * 하단 구분선 표시 여부
676
+ * @default true
677
+ */
678
+ line?: boolean;
679
+ /**
680
+ * 헤더 우측 영역(rightSlot).
681
+ * - 미지정(`undefined`): 기본 닫기(X) 버튼을 렌더링하며 클릭 시 Sheet를 닫는다.
682
+ * - `null` / `false`: 우측 영역을 숨긴다.
683
+ * - ReactNode: 전달한 노드를 그대로 렌더링한다. 닫기 동작이 필요하면 `Sheet.Close`로 감싼다.
684
+ */
685
+ rightSlot?: React__default.ReactNode;
686
+ };
687
+ type SheetBodyProps = React__default.HTMLAttributes<HTMLDivElement>;
688
+ type SheetFooterProps = React__default.HTMLAttributes<HTMLDivElement> & {
689
+ /**
690
+ * 상단 구분선 표시 여부
691
+ * @default true
692
+ */
693
+ line?: boolean;
694
+ };
695
+ type SheetFooterDescriptionProps = React__default.HTMLAttributes<HTMLDivElement> & {
696
+ /** 에러 상태 표시 여부 */
697
+ error?: boolean;
698
+ /** 설명 앞에 표시할 아이콘 요소 */
699
+ icon?: React__default.ReactNode;
700
+ };
701
+ type SheetActionsProps = React__default.HTMLAttributes<HTMLDivElement>;
702
+ type SheetTitleProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>;
703
+ type SheetDescriptionProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>;
704
+ type SheetComponent = typeof DialogPrimitive.Root & {
705
+ Trigger: typeof DialogPrimitive.Trigger;
706
+ Portal: typeof DialogPrimitive.Portal;
707
+ Close: typeof DialogPrimitive.Close;
708
+ Overlay: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetOverlayProps> & React__default.RefAttributes<React__default.ComponentRef<typeof DialogPrimitive.Overlay>>>;
709
+ Content: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetContentProps> & React__default.RefAttributes<React__default.ComponentRef<typeof DialogPrimitive.Content>>>;
710
+ Header: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetHeaderProps> & React__default.RefAttributes<HTMLDivElement>>;
711
+ Body: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetBodyProps> & React__default.RefAttributes<HTMLDivElement>>;
712
+ Footer: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetFooterProps> & React__default.RefAttributes<HTMLDivElement>>;
713
+ FooterDescription: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetFooterDescriptionProps> & React__default.RefAttributes<HTMLDivElement>>;
714
+ Actions: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetActionsProps> & React__default.RefAttributes<HTMLDivElement>>;
715
+ Title: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetTitleProps> & React__default.RefAttributes<React__default.ComponentRef<typeof DialogPrimitive.Title>>>;
716
+ Description: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetDescriptionProps> & React__default.RefAttributes<React__default.ComponentRef<typeof DialogPrimitive.Description>>>;
717
+ };
718
+ /**
719
+ * 화면 가장자리에서 슬라이드되어 열리는 패널 컴포넌트입니다.
720
+ * Radix UI Dialog 기반이며 Compound Component 패턴으로 사용합니다.
721
+ *
722
+ * @example
723
+ * ```tsx
724
+ * <Sheet>
725
+ * <Sheet.Trigger>열기</Sheet.Trigger>
726
+ * <Sheet.Content side="right">
727
+ * <Sheet.Header>
728
+ * <Sheet.Title>제목</Sheet.Title>
729
+ * </Sheet.Header>
730
+ * <Sheet.Body>내용</Sheet.Body>
731
+ * <Sheet.Footer>
732
+ * <Sheet.Actions>
733
+ * <Sheet.Close>닫기</Sheet.Close>
734
+ * <Button>확인</Button>
735
+ * </Sheet.Actions>
736
+ * </Sheet.Footer>
737
+ * </Sheet.Content>
738
+ * </Sheet>
739
+ * ```
740
+ *
741
+ * @see {@link SheetContentProps} Content props 상세
742
+ */
743
+ declare const Sheet: SheetComponent;
744
+
652
745
  type MessageBoxVariant = 'default' | 'critical';
653
746
  type MessageBoxRootProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;
654
747
  type MessageBoxTriggerProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
@@ -931,4 +1024,4 @@ declare const buttonize: (fn: (e: React__default.MouseEvent<HTMLElement> | React
931
1024
  onKeyDown: (event: React__default.KeyboardEvent<HTMLDivElement>) => void;
932
1025
  };
933
1026
 
934
- export { Avatar, type AvatarComponent, type AvatarProps, Badge, type BadgeComponent, type BadgeProps, Breadcrumb, type BreadcrumbComponent, type BreadcrumbEllipsisProps, type BreadcrumbItemProps, type BreadcrumbLinkProps, type BreadcrumbListProps, type BreadcrumbPageProps, type BreadcrumbPathProps, type BreadcrumbRootProps, type BreadcrumbSeparatorProps, Button, type ButtonComponent, ButtonGroup, type ButtonGroupComponent, type ButtonGroupItem, type ButtonGroupProps, type ButtonProps, Checkbox, type CheckboxComponent, type CheckboxProps, DatePicker, type DatePickerProps, DoubleTag, type DoubleTagProps, Dropdown, type DropdownComponent, type DropdownContentProps, type DropdownGroupProps, type DropdownItemProps, type DropdownLabelProps, type DropdownRootProps, type DropdownSeparatorProps, type DropdownTriggerProps, type ExtendedExternalToast, IconButton, type IconButtonComponent, type IconButtonProps, Loading, type LoadingComponent, type LoadingProps, MessageBox, type MessageBoxActionProps, type MessageBoxActionsProps, type MessageBoxCancelProps, type MessageBoxComponent, type MessageBoxContentProps, type MessageBoxDescriptionProps, type MessageBoxRootProps, type MessageBoxTitleProps, type MessageBoxTriggerProps, type MessageBoxVariant, Modal, type ModalActionProps, type ModalActionsProps, type ModalBodyProps, type ModalCloseProps, type ModalComponent, type ModalContentProps, type ModalDescriptionProps, type ModalFooterDescriptionProps, type ModalFooterProps, type ModalHeaderProps, type ModalOverlayProps, type ModalPortalProps, type ModalRootProps, type ModalTitleProps, type ModalTriggerProps, Progress, type ProgressComponent, type ProgressProps, Radio, type RadioComponent, type RadioItemProps, type RadioRootProps, ScrollArea, type ScrollAreaProps, ScrollBar, type Options as SonnerToastOptions, Star, type StarComponent, type StarProps, Switch, type SwitchComponent, type SwitchProps, Tag, type TagColor, type TagComponent, type TagProps, TextArea, type TextAreaComponent, type TextAreaDescriptionProps, type TextAreaFieldProps, type TextAreaLabelProps, type TextAreaRootProps, TextField, type TextFieldComponent, type TextFieldDescriptionProps, type TextFieldInputProps, type TextFieldLabelProps, type TextFieldRootProps, type ToastAction, type ToastInput, type ToastOptions, ToastProvider, type ToastProviderProps, Toaster, type ToasterActionProps, type ToasterComponent, type ToasterContainerProps, type ToasterDescriptionProps, type ToasterIconProps, type ToasterRootProps, type ToasterTitleProps, buttonize, toast, useToast };
1027
+ export { Avatar, type AvatarComponent, type AvatarProps, Badge, type BadgeComponent, type BadgeProps, Breadcrumb, type BreadcrumbComponent, type BreadcrumbEllipsisProps, type BreadcrumbItemProps, type BreadcrumbLinkProps, type BreadcrumbListProps, type BreadcrumbPageProps, type BreadcrumbPathProps, type BreadcrumbRootProps, type BreadcrumbSeparatorProps, Button, type ButtonComponent, ButtonGroup, type ButtonGroupComponent, type ButtonGroupItem, type ButtonGroupProps, type ButtonProps, Checkbox, type CheckboxComponent, type CheckboxProps, DatePicker, type DatePickerProps, DoubleTag, type DoubleTagProps, Dropdown, type DropdownComponent, type DropdownContentProps, type DropdownGroupProps, type DropdownItemProps, type DropdownLabelProps, type DropdownRootProps, type DropdownSeparatorProps, type DropdownTriggerProps, type ExtendedExternalToast, IconButton, type IconButtonComponent, type IconButtonProps, Loading, type LoadingComponent, type LoadingProps, MessageBox, type MessageBoxActionProps, type MessageBoxActionsProps, type MessageBoxCancelProps, type MessageBoxComponent, type MessageBoxContentProps, type MessageBoxDescriptionProps, type MessageBoxRootProps, type MessageBoxTitleProps, type MessageBoxTriggerProps, type MessageBoxVariant, Modal, type ModalActionProps, type ModalActionsProps, type ModalBodyProps, type ModalCloseProps, type ModalComponent, type ModalContentProps, type ModalDescriptionProps, type ModalFooterDescriptionProps, type ModalFooterProps, type ModalHeaderProps, type ModalOverlayProps, type ModalPortalProps, type ModalRootProps, type ModalTitleProps, type ModalTriggerProps, Progress, type ProgressComponent, type ProgressProps, Radio, type RadioComponent, type RadioItemProps, type RadioRootProps, ScrollArea, type ScrollAreaProps, ScrollBar, Sheet, type SheetActionsProps, type SheetBodyProps, type SheetCloseProps, type SheetComponent, type SheetContentProps, type SheetDescriptionProps, type SheetFooterDescriptionProps, type SheetFooterProps, type SheetHeaderProps, type SheetOverlayProps, type SheetPortalProps, type SheetRootProps, type SheetSide, type SheetTitleProps, type SheetTriggerProps, type Options as SonnerToastOptions, Star, type StarComponent, type StarProps, Switch, type SwitchComponent, type SwitchProps, Tag, type TagColor, type TagComponent, type TagProps, TextArea, type TextAreaBottomRightSlot, type TextAreaComponent, type TextAreaDescriptionProps, type TextAreaFieldProps, type TextAreaLabelProps, type TextAreaRootProps, TextField, type TextFieldComponent, type TextFieldDescriptionProps, type TextFieldInputProps, type TextFieldLabelProps, type TextFieldRootProps, type ToastAction, type ToastInput, type ToastOptions, ToastProvider, type ToastProviderProps, Toaster, type ToasterActionProps, type ToasterComponent, type ToasterContainerProps, type ToasterDescriptionProps, type ToasterIconProps, type ToasterRootProps, type ToasterTitleProps, buttonize, toast, useToast };
package/dist/index.d.ts CHANGED
@@ -463,7 +463,15 @@ type TextAreaLabelProps = {
463
463
  required?: boolean;
464
464
  className?: string;
465
465
  };
466
- type TextAreaFieldProps = Omit<React$1.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'disabled' | 'id' | 'value' | 'onChange' | 'maxLength'>;
466
+ type TextAreaBottomRightSlot = React$1.ReactNode;
467
+ type TextAreaFieldProps = Omit<React$1.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'disabled' | 'id' | 'value' | 'onChange' | 'maxLength'> & {
468
+ /**
469
+ * Field 우측 하단에 표시할 슬롯입니다.
470
+ * disabled 상태와 별개로 렌더되므로 필요 시 slot 요소에 직접 disabled를 전달하세요.
471
+ * 입력 텍스트와 겹치지 않도록 Field에 우측/하단 padding을 함께 지정하는 것을 권장합니다.
472
+ */
473
+ bottomRightSlot?: TextAreaBottomRightSlot;
474
+ };
467
475
  type TextAreaDescriptionProps = {
468
476
  children?: React$1.ReactNode;
469
477
  showCounter?: boolean;
@@ -649,6 +657,91 @@ type ModalComponent = typeof DialogPrimitive.Root & {
649
657
  */
650
658
  declare const Modal: ModalComponent;
651
659
 
660
+ type SheetSide = 'top' | 'right' | 'bottom' | 'left';
661
+ type SheetRootProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;
662
+ type SheetTriggerProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
663
+ type SheetPortalProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>;
664
+ type SheetOverlayProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>;
665
+ type SheetContentProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {
666
+ /**
667
+ * Sheet가 열리는 방향
668
+ * @default 'right'
669
+ */
670
+ side?: SheetSide;
671
+ };
672
+ type SheetCloseProps = ButtonProps;
673
+ type SheetHeaderProps = React__default.HTMLAttributes<HTMLDivElement> & {
674
+ /**
675
+ * 하단 구분선 표시 여부
676
+ * @default true
677
+ */
678
+ line?: boolean;
679
+ /**
680
+ * 헤더 우측 영역(rightSlot).
681
+ * - 미지정(`undefined`): 기본 닫기(X) 버튼을 렌더링하며 클릭 시 Sheet를 닫는다.
682
+ * - `null` / `false`: 우측 영역을 숨긴다.
683
+ * - ReactNode: 전달한 노드를 그대로 렌더링한다. 닫기 동작이 필요하면 `Sheet.Close`로 감싼다.
684
+ */
685
+ rightSlot?: React__default.ReactNode;
686
+ };
687
+ type SheetBodyProps = React__default.HTMLAttributes<HTMLDivElement>;
688
+ type SheetFooterProps = React__default.HTMLAttributes<HTMLDivElement> & {
689
+ /**
690
+ * 상단 구분선 표시 여부
691
+ * @default true
692
+ */
693
+ line?: boolean;
694
+ };
695
+ type SheetFooterDescriptionProps = React__default.HTMLAttributes<HTMLDivElement> & {
696
+ /** 에러 상태 표시 여부 */
697
+ error?: boolean;
698
+ /** 설명 앞에 표시할 아이콘 요소 */
699
+ icon?: React__default.ReactNode;
700
+ };
701
+ type SheetActionsProps = React__default.HTMLAttributes<HTMLDivElement>;
702
+ type SheetTitleProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>;
703
+ type SheetDescriptionProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>;
704
+ type SheetComponent = typeof DialogPrimitive.Root & {
705
+ Trigger: typeof DialogPrimitive.Trigger;
706
+ Portal: typeof DialogPrimitive.Portal;
707
+ Close: typeof DialogPrimitive.Close;
708
+ Overlay: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetOverlayProps> & React__default.RefAttributes<React__default.ComponentRef<typeof DialogPrimitive.Overlay>>>;
709
+ Content: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetContentProps> & React__default.RefAttributes<React__default.ComponentRef<typeof DialogPrimitive.Content>>>;
710
+ Header: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetHeaderProps> & React__default.RefAttributes<HTMLDivElement>>;
711
+ Body: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetBodyProps> & React__default.RefAttributes<HTMLDivElement>>;
712
+ Footer: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetFooterProps> & React__default.RefAttributes<HTMLDivElement>>;
713
+ FooterDescription: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetFooterDescriptionProps> & React__default.RefAttributes<HTMLDivElement>>;
714
+ Actions: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetActionsProps> & React__default.RefAttributes<HTMLDivElement>>;
715
+ Title: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetTitleProps> & React__default.RefAttributes<React__default.ComponentRef<typeof DialogPrimitive.Title>>>;
716
+ Description: React__default.ForwardRefExoticComponent<React__default.PropsWithoutRef<SheetDescriptionProps> & React__default.RefAttributes<React__default.ComponentRef<typeof DialogPrimitive.Description>>>;
717
+ };
718
+ /**
719
+ * 화면 가장자리에서 슬라이드되어 열리는 패널 컴포넌트입니다.
720
+ * Radix UI Dialog 기반이며 Compound Component 패턴으로 사용합니다.
721
+ *
722
+ * @example
723
+ * ```tsx
724
+ * <Sheet>
725
+ * <Sheet.Trigger>열기</Sheet.Trigger>
726
+ * <Sheet.Content side="right">
727
+ * <Sheet.Header>
728
+ * <Sheet.Title>제목</Sheet.Title>
729
+ * </Sheet.Header>
730
+ * <Sheet.Body>내용</Sheet.Body>
731
+ * <Sheet.Footer>
732
+ * <Sheet.Actions>
733
+ * <Sheet.Close>닫기</Sheet.Close>
734
+ * <Button>확인</Button>
735
+ * </Sheet.Actions>
736
+ * </Sheet.Footer>
737
+ * </Sheet.Content>
738
+ * </Sheet>
739
+ * ```
740
+ *
741
+ * @see {@link SheetContentProps} Content props 상세
742
+ */
743
+ declare const Sheet: SheetComponent;
744
+
652
745
  type MessageBoxVariant = 'default' | 'critical';
653
746
  type MessageBoxRootProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;
654
747
  type MessageBoxTriggerProps = React__default.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
@@ -931,4 +1024,4 @@ declare const buttonize: (fn: (e: React__default.MouseEvent<HTMLElement> | React
931
1024
  onKeyDown: (event: React__default.KeyboardEvent<HTMLDivElement>) => void;
932
1025
  };
933
1026
 
934
- export { Avatar, type AvatarComponent, type AvatarProps, Badge, type BadgeComponent, type BadgeProps, Breadcrumb, type BreadcrumbComponent, type BreadcrumbEllipsisProps, type BreadcrumbItemProps, type BreadcrumbLinkProps, type BreadcrumbListProps, type BreadcrumbPageProps, type BreadcrumbPathProps, type BreadcrumbRootProps, type BreadcrumbSeparatorProps, Button, type ButtonComponent, ButtonGroup, type ButtonGroupComponent, type ButtonGroupItem, type ButtonGroupProps, type ButtonProps, Checkbox, type CheckboxComponent, type CheckboxProps, DatePicker, type DatePickerProps, DoubleTag, type DoubleTagProps, Dropdown, type DropdownComponent, type DropdownContentProps, type DropdownGroupProps, type DropdownItemProps, type DropdownLabelProps, type DropdownRootProps, type DropdownSeparatorProps, type DropdownTriggerProps, type ExtendedExternalToast, IconButton, type IconButtonComponent, type IconButtonProps, Loading, type LoadingComponent, type LoadingProps, MessageBox, type MessageBoxActionProps, type MessageBoxActionsProps, type MessageBoxCancelProps, type MessageBoxComponent, type MessageBoxContentProps, type MessageBoxDescriptionProps, type MessageBoxRootProps, type MessageBoxTitleProps, type MessageBoxTriggerProps, type MessageBoxVariant, Modal, type ModalActionProps, type ModalActionsProps, type ModalBodyProps, type ModalCloseProps, type ModalComponent, type ModalContentProps, type ModalDescriptionProps, type ModalFooterDescriptionProps, type ModalFooterProps, type ModalHeaderProps, type ModalOverlayProps, type ModalPortalProps, type ModalRootProps, type ModalTitleProps, type ModalTriggerProps, Progress, type ProgressComponent, type ProgressProps, Radio, type RadioComponent, type RadioItemProps, type RadioRootProps, ScrollArea, type ScrollAreaProps, ScrollBar, type Options as SonnerToastOptions, Star, type StarComponent, type StarProps, Switch, type SwitchComponent, type SwitchProps, Tag, type TagColor, type TagComponent, type TagProps, TextArea, type TextAreaComponent, type TextAreaDescriptionProps, type TextAreaFieldProps, type TextAreaLabelProps, type TextAreaRootProps, TextField, type TextFieldComponent, type TextFieldDescriptionProps, type TextFieldInputProps, type TextFieldLabelProps, type TextFieldRootProps, type ToastAction, type ToastInput, type ToastOptions, ToastProvider, type ToastProviderProps, Toaster, type ToasterActionProps, type ToasterComponent, type ToasterContainerProps, type ToasterDescriptionProps, type ToasterIconProps, type ToasterRootProps, type ToasterTitleProps, buttonize, toast, useToast };
1027
+ export { Avatar, type AvatarComponent, type AvatarProps, Badge, type BadgeComponent, type BadgeProps, Breadcrumb, type BreadcrumbComponent, type BreadcrumbEllipsisProps, type BreadcrumbItemProps, type BreadcrumbLinkProps, type BreadcrumbListProps, type BreadcrumbPageProps, type BreadcrumbPathProps, type BreadcrumbRootProps, type BreadcrumbSeparatorProps, Button, type ButtonComponent, ButtonGroup, type ButtonGroupComponent, type ButtonGroupItem, type ButtonGroupProps, type ButtonProps, Checkbox, type CheckboxComponent, type CheckboxProps, DatePicker, type DatePickerProps, DoubleTag, type DoubleTagProps, Dropdown, type DropdownComponent, type DropdownContentProps, type DropdownGroupProps, type DropdownItemProps, type DropdownLabelProps, type DropdownRootProps, type DropdownSeparatorProps, type DropdownTriggerProps, type ExtendedExternalToast, IconButton, type IconButtonComponent, type IconButtonProps, Loading, type LoadingComponent, type LoadingProps, MessageBox, type MessageBoxActionProps, type MessageBoxActionsProps, type MessageBoxCancelProps, type MessageBoxComponent, type MessageBoxContentProps, type MessageBoxDescriptionProps, type MessageBoxRootProps, type MessageBoxTitleProps, type MessageBoxTriggerProps, type MessageBoxVariant, Modal, type ModalActionProps, type ModalActionsProps, type ModalBodyProps, type ModalCloseProps, type ModalComponent, type ModalContentProps, type ModalDescriptionProps, type ModalFooterDescriptionProps, type ModalFooterProps, type ModalHeaderProps, type ModalOverlayProps, type ModalPortalProps, type ModalRootProps, type ModalTitleProps, type ModalTriggerProps, Progress, type ProgressComponent, type ProgressProps, Radio, type RadioComponent, type RadioItemProps, type RadioRootProps, ScrollArea, type ScrollAreaProps, ScrollBar, Sheet, type SheetActionsProps, type SheetBodyProps, type SheetCloseProps, type SheetComponent, type SheetContentProps, type SheetDescriptionProps, type SheetFooterDescriptionProps, type SheetFooterProps, type SheetHeaderProps, type SheetOverlayProps, type SheetPortalProps, type SheetRootProps, type SheetSide, type SheetTitleProps, type SheetTriggerProps, type Options as SonnerToastOptions, Star, type StarComponent, type StarProps, Switch, type SwitchComponent, type SwitchProps, Tag, type TagColor, type TagComponent, type TagProps, TextArea, type TextAreaBottomRightSlot, type TextAreaComponent, type TextAreaDescriptionProps, type TextAreaFieldProps, type TextAreaLabelProps, type TextAreaRootProps, TextField, type TextFieldComponent, type TextFieldDescriptionProps, type TextFieldInputProps, type TextFieldLabelProps, type TextFieldRootProps, type ToastAction, type ToastInput, type ToastOptions, ToastProvider, type ToastProviderProps, Toaster, type ToasterActionProps, type ToasterComponent, type ToasterContainerProps, type ToasterDescriptionProps, type ToasterIconProps, type ToasterRootProps, type ToasterTitleProps, buttonize, toast, useToast };
package/dist/index.js CHANGED
@@ -1269,6 +1269,8 @@ var textAreaVariants = {
1269
1269
  defaultVariants: { variant: "fill", size: "medium", state: "default" }
1270
1270
  }
1271
1271
  ),
1272
+ fieldWrapper: "relative w-full",
1273
+ bottomRightSlot: "absolute right-0 bottom-0 flex items-center justify-center",
1272
1274
  descriptionContainer: utils.cva("flex flex-row items-center justify-between", {
1273
1275
  variants: {
1274
1276
  size: {
@@ -1330,7 +1332,7 @@ TextArea.Label = React__namespace.forwardRef(
1330
1332
  }
1331
1333
  );
1332
1334
  TextArea.Field = React__namespace.forwardRef(
1333
- ({ className, onFocus, onBlur, ...props }, ref) => {
1335
+ ({ className, onFocus, onBlur, bottomRightSlot, ...props }, ref) => {
1334
1336
  const {
1335
1337
  variant,
1336
1338
  size,
@@ -1352,7 +1354,7 @@ TextArea.Field = React__namespace.forwardRef(
1352
1354
  };
1353
1355
  const state = disabled ? "disabled" : error ? "error" : focused ? "focused" : "default";
1354
1356
  const isControlled = contextValue !== void 0;
1355
- return /* @__PURE__ */ jsxRuntime.jsx(
1357
+ const field = /* @__PURE__ */ jsxRuntime.jsx(
1356
1358
  "textarea",
1357
1359
  {
1358
1360
  ref,
@@ -1369,6 +1371,13 @@ TextArea.Field = React__namespace.forwardRef(
1369
1371
  ...props
1370
1372
  }
1371
1373
  );
1374
+ if (!bottomRightSlot) {
1375
+ return field;
1376
+ }
1377
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: textAreaVariants.fieldWrapper, children: [
1378
+ field,
1379
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: textAreaVariants.bottomRightSlot, children: bottomRightSlot })
1380
+ ] });
1372
1381
  }
1373
1382
  );
1374
1383
  TextArea.Description = React__namespace.forwardRef(
@@ -1910,6 +1919,197 @@ Modal.Actions.displayName = "Modal.Actions";
1910
1919
  Modal.Action.displayName = "Modal.Action";
1911
1920
  Modal.Title.displayName = "Modal.Title";
1912
1921
  Modal.Description.displayName = "Modal.Description";
1922
+ var SHEET_EDGE_GAP = "[--sheet-edge-gap:40px]";
1923
+ var SHEET_SIDE_CLASSES = {
1924
+ right: "inset-y-0 right-0 h-full w-[800px] max-w-[calc(100vw-var(--sheet-edge-gap))] border-l data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right",
1925
+ left: "inset-y-0 left-0 h-full w-[800px] max-w-[calc(100vw-var(--sheet-edge-gap))] border-r data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left",
1926
+ top: "inset-x-0 top-0 w-full h-auto max-h-[calc(100vh-var(--sheet-edge-gap))] border-b data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top",
1927
+ bottom: "inset-x-0 bottom-0 w-full h-auto max-h-[calc(100vh-var(--sheet-edge-gap))] border-t data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom"
1928
+ };
1929
+ var SheetContext = React.createContext({ side: "right" });
1930
+ var Sheet = DialogPrimitive__namespace.Root;
1931
+ Sheet.Trigger = DialogPrimitive__namespace.Trigger;
1932
+ Sheet.Portal = DialogPrimitive__namespace.Portal;
1933
+ Sheet.Close = DialogPrimitive__namespace.Close;
1934
+ Sheet.Overlay = React.forwardRef(
1935
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1936
+ DialogPrimitive__namespace.Overlay,
1937
+ {
1938
+ ref,
1939
+ className: utils.cn(
1940
+ "fixed inset-0 z-50 bg-component-dim data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1941
+ className
1942
+ ),
1943
+ ...props
1944
+ }
1945
+ )
1946
+ );
1947
+ Sheet.Content = React.forwardRef(
1948
+ ({ className, children, side = "right", onInteractOutside, ...props }, ref) => {
1949
+ const shouldPreventDismissForSelect = (target) => {
1950
+ const isSelectOpen = Boolean(
1951
+ document.querySelector('[data-radix-select-content][data-state="open"]')
1952
+ );
1953
+ if (isSelectOpen) {
1954
+ return true;
1955
+ }
1956
+ if (!(target instanceof Element)) {
1957
+ return false;
1958
+ }
1959
+ return Boolean(
1960
+ target.closest("[data-radix-select-content]") || target.closest("[data-radix-select-viewport]")
1961
+ );
1962
+ };
1963
+ const handleInteractOutside = (event) => {
1964
+ if (shouldPreventDismissForSelect(event.target)) {
1965
+ event.preventDefault();
1966
+ }
1967
+ onInteractOutside?.(event);
1968
+ };
1969
+ return /* @__PURE__ */ jsxRuntime.jsx(SheetContext.Provider, { value: { side }, children: /* @__PURE__ */ jsxRuntime.jsxs(Sheet.Portal, { children: [
1970
+ /* @__PURE__ */ jsxRuntime.jsx(Sheet.Overlay, {}),
1971
+ /* @__PURE__ */ jsxRuntime.jsx(
1972
+ DialogPrimitive__namespace.Content,
1973
+ {
1974
+ ref,
1975
+ className: utils.cn(
1976
+ // 공통 스타일 (Modal Content 토큰, radius 제외)
1977
+ "fixed z-50 flex flex-col border-border-primary bg-elevation-elevation-0 shadow-strong data-[state=open]:duration-300 data-[state=closed]:duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1978
+ // 가장자리 여백 CSS 변수 정의 (side 클래스의 max-w/max-h가 참조)
1979
+ SHEET_EDGE_GAP,
1980
+ // side별 위치/크기/슬라이드
1981
+ SHEET_SIDE_CLASSES[side],
1982
+ className
1983
+ ),
1984
+ ...props,
1985
+ onInteractOutside: handleInteractOutside,
1986
+ children
1987
+ }
1988
+ )
1989
+ ] }) });
1990
+ }
1991
+ );
1992
+ Sheet.Header = React.forwardRef(
1993
+ ({ className, line = true, rightSlot, children, ...props }, ref) => {
1994
+ const rightElement = rightSlot === void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
1995
+ DialogPrimitive__namespace.Close,
1996
+ {
1997
+ className: utils.cn(
1998
+ "flex shrink-0 items-center justify-center size-8 rounded-medium text-icon-secondary transition-colors hover:bg-elevation-elevation-2 focus:outline-none disabled:pointer-events-none"
1999
+ ),
2000
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkTAZFRRWT_js.X, { type: "regular", size: 20 })
2001
+ }
2002
+ ) : rightSlot;
2003
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2004
+ "div",
2005
+ {
2006
+ ref,
2007
+ className: utils.cn(
2008
+ "flex shrink-0 flex-row items-center gap-2 h-12 pl-4 pr-2",
2009
+ line && "border-b border-border-primary",
2010
+ className
2011
+ ),
2012
+ ...props,
2013
+ children: [
2014
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 flex-1 flex-row items-center gap-1", children }),
2015
+ rightElement ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 flex-row items-center", children: rightElement }) : null
2016
+ ]
2017
+ }
2018
+ );
2019
+ }
2020
+ );
2021
+ Sheet.Body = React.forwardRef(
2022
+ ({ className, children, ...props }, ref) => {
2023
+ const { side } = React.useContext(SheetContext);
2024
+ const disableHorizontalScroll = side === "left" || side === "right";
2025
+ return /* @__PURE__ */ jsxRuntime.jsx(
2026
+ "div",
2027
+ {
2028
+ ref,
2029
+ className: utils.cn(
2030
+ "flex-1 flex flex-col min-h-0 h-full",
2031
+ "[&_[data-slot=scroll-area-viewport]>div]:h-full"
2032
+ ),
2033
+ ...props,
2034
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2035
+ ScrollArea,
2036
+ {
2037
+ className: "h-full flex flex-col",
2038
+ disableHorizontalScroll,
2039
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("p-4", className), children })
2040
+ }
2041
+ )
2042
+ }
2043
+ );
2044
+ }
2045
+ );
2046
+ Sheet.Footer = React.forwardRef(
2047
+ ({ className, line = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2048
+ "div",
2049
+ {
2050
+ ref,
2051
+ className: utils.cn(
2052
+ "flex flex-row items-center justify-between h-14 gap-3 px-4 py-3",
2053
+ line && "border-t border-border-primary",
2054
+ className
2055
+ ),
2056
+ ...props
2057
+ }
2058
+ )
2059
+ );
2060
+ Sheet.FooterDescription = React.forwardRef(
2061
+ ({ className, error = false, icon, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
2062
+ "div",
2063
+ {
2064
+ ref,
2065
+ className: utils.cn(
2066
+ "flex flex-row items-center gap-1 text-body-3",
2067
+ error ? "text-text-critical" : "text-text-tertiary",
2068
+ className
2069
+ ),
2070
+ ...props,
2071
+ children: [
2072
+ icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 size-4 items-center justify-center [&>svg]:size-4", children: icon }),
2073
+ children
2074
+ ]
2075
+ }
2076
+ )
2077
+ );
2078
+ Sheet.Actions = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn("ml-auto flex flex-row items-center gap-2", className), ...props }));
2079
+ Sheet.Title = React.forwardRef(
2080
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2081
+ DialogPrimitive__namespace.Title,
2082
+ {
2083
+ ref,
2084
+ className: utils.cn(
2085
+ "text-body-1 font-semibold leading-none tracking-tight text-text-primary",
2086
+ className
2087
+ ),
2088
+ ...props
2089
+ }
2090
+ )
2091
+ );
2092
+ Sheet.Description = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2093
+ DialogPrimitive__namespace.Description,
2094
+ {
2095
+ ref,
2096
+ className: utils.cn("text-body-2 text-text-tertiary", className),
2097
+ ...props
2098
+ }
2099
+ ));
2100
+ Sheet.displayName = "Sheet";
2101
+ Sheet.Trigger.displayName = "Sheet.Trigger";
2102
+ Sheet.Portal.displayName = "Sheet.Portal";
2103
+ Sheet.Close.displayName = "Sheet.Close";
2104
+ Sheet.Overlay.displayName = "Sheet.Overlay";
2105
+ Sheet.Content.displayName = "Sheet.Content";
2106
+ Sheet.Header.displayName = "Sheet.Header";
2107
+ Sheet.Body.displayName = "Sheet.Body";
2108
+ Sheet.Footer.displayName = "Sheet.Footer";
2109
+ Sheet.FooterDescription.displayName = "Sheet.FooterDescription";
2110
+ Sheet.Actions.displayName = "Sheet.Actions";
2111
+ Sheet.Title.displayName = "Sheet.Title";
2112
+ Sheet.Description.displayName = "Sheet.Description";
1913
2113
  var MessageBoxContext = React.createContext({ variant: "default" });
1914
2114
  var MessageBoxRoot = (props) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { ...props });
1915
2115
  var MessageBox = MessageBoxRoot;
@@ -2497,6 +2697,7 @@ exports.Progress = Progress;
2497
2697
  exports.Radio = Radio;
2498
2698
  exports.ScrollArea = ScrollArea;
2499
2699
  exports.ScrollBar = ScrollBar;
2700
+ exports.Sheet = Sheet;
2500
2701
  exports.Star = Star;
2501
2702
  exports.Switch = Switch;
2502
2703
  exports.Tag = Tag;