@shoplflow/base 0.13.9 → 0.15.0

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.cts CHANGED
@@ -8,9 +8,11 @@ import { IconSource as IconSource$1 } from '@shoplflow/hada-assets';
8
8
  import * as _emotion_styled from '@emotion/styled';
9
9
  import * as _emotion_react from '@emotion/react';
10
10
  import { $Values } from '@shoplflow/utils';
11
- import { Middleware } from '@floating-ui/react-dom';
12
11
  import { AutoPlacementOptions, Placement } from '@floating-ui/react';
12
+ export { arrow, flip, hide, inline, offset, shift, size } from '@floating-ui/react';
13
+ import { Middleware } from '@floating-ui/react-dom';
13
14
  import { OffsetOptions } from '@floating-ui/core';
15
+ import { positionValues } from 'react-custom-scrollbars-2';
14
16
 
15
17
  declare type DomainType = 'SHOPL' | 'HADA';
16
18
 
@@ -568,8 +570,8 @@ interface PopperTriggerProps extends ChildrenProps, HTMLAttributes<HTMLDivElemen
568
570
  * popper가 열려있는지 여부를 결정합니다.
569
571
  */
570
572
  isOpen?: boolean;
571
- width?: string;
572
- height?: string;
573
+ width?: CSSProperties['width'];
574
+ height?: CSSProperties['height'];
573
575
  }
574
576
  interface PopperPortalProps extends ChildrenProps, HTMLAttributes<HTMLDivElement> {
575
577
  /**
@@ -596,6 +598,93 @@ declare const StyledPopper: _emotion_styled.StyledComponent<{
596
598
  as?: React$1.ElementType<any> | undefined;
597
599
  } & Pick<PopperTriggerProps, "height" | "width">, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
598
600
 
601
+ interface ScrollAreaProps extends ScrollAreaOptionProps, ChildrenProps {
602
+ }
603
+ interface ScrollAreaOptionProps {
604
+ id?: string;
605
+ /**
606
+ * (Function) 스크롤 이벤트 핸들러
607
+ */
608
+ onScroll?: React$1.UIEventHandler<any>;
609
+ /**
610
+ * (Function) 애니메이션 프레임 내에서 실행됩니다.
611
+ */
612
+ onScrollFrame?: (values: positionValues) => void;
613
+ /**
614
+ * 스크롤이 시작될 때 호출됩니다.
615
+ */
616
+ onScrollStart?: () => void;
617
+ /**
618
+ * 스크롤이 멈출 때 호출됩니다.
619
+ */
620
+ onScrollStop?: () => void;
621
+ /**
622
+ * 컴포넌트가 업데이트될 때마다 호출됩니다. 애니메이션 프레임 내에서 실행됩니다.
623
+ */
624
+ onUpdate?: (values: positionValues) => void;
625
+ /**
626
+ * 콘텐츠가 렌더링될 요소
627
+ */
628
+ renderView?: React$1.ComponentType<any>;
629
+ /**
630
+ * 수평 트랙 요소
631
+ */
632
+ renderTrackHorizontal?: React$1.ComponentType<any>;
633
+ /**
634
+ * 수직 트랙 요소
635
+ */
636
+ renderTrackVertical?: React$1.ComponentType<any>;
637
+ /**
638
+ * 수평 스크롤 바 요소
639
+ */
640
+ renderThumbHorizontal?: React$1.ComponentType<any>;
641
+ /**
642
+ * 수직 스크롤 바 요소
643
+ */
644
+ renderThumbVertical?: React$1.ComponentType<any>;
645
+ tagName?: string;
646
+ /**
647
+ * 컨테이너가 오버플로되지 않을 때 트랙을 숨깁니다
648
+ */
649
+ hideTracksWhenNotNeeded?: boolean;
650
+ autoHide?: boolean;
651
+ /**
652
+ * 숨김 지연 시간(ms). (기본값: 1000)
653
+ */
654
+ autoHideTimeout?: number;
655
+ /**
656
+ * 숨김 지속 시간(ms). (기본값: 200)
657
+ */
658
+ autoHideDuration?: number;
659
+ /**
660
+ * 스크롤 바의 고정 크기를 px 단위로 설정합니다.
661
+ */
662
+ thumbSize?: number;
663
+ /**
664
+ * 최소 스크롤 바 크기를 px 단위로 설정합니다. (기본값: 30)
665
+ */
666
+ thumbMinSize?: number;
667
+ /**
668
+ * 범용 렌더링 활성화 (기본값: false)
669
+ */
670
+ universal?: boolean;
671
+ /**
672
+ * 자동 높이 모드 활성화. (기본값: true)
673
+ */
674
+ autoHeight?: boolean;
675
+ /**
676
+ * 자동 높이 모드의 최소 높이 설정 (기본값: 0)
677
+ */
678
+ autoHeightMin?: number | string;
679
+ /**
680
+ * 자동 높이 모드의 최대 높이 설정 (기본값: 200)
681
+ */
682
+ autoHeightMax?: number | string;
683
+ style?: React$1.CSSProperties;
684
+ }
685
+
686
+ declare const ScrollArea: ({ children, ...rest }: ScrollAreaProps) => react_jsx_runtime.JSX.Element;
687
+
599
688
  declare const dropdownOptionVar: {
600
689
  readonly CLICK: "CLICK";
601
690
  readonly OUTSIDE_CLICK: "OUTSIDE_CLICK";
@@ -609,8 +698,8 @@ interface DropdownOptionProps {
609
698
  * 외부에서 `isOpen`을 제어할 수 있습니다.
610
699
  */
611
700
  isOpen?: boolean;
612
- content: ReactNode;
613
- trigger: ReactNode;
701
+ trigger?: ReactNode;
702
+ popper?: ReactNode;
614
703
  /**
615
704
  * 드롭다운이 어떻게 닫힐 수 있는지 옵션을 설정합니다.
616
705
  *
@@ -620,8 +709,9 @@ interface DropdownOptionProps {
620
709
  * NONE: 클릭으로 닫히지 않습니다.
621
710
  */
622
711
  option?: DropdownOptionVar;
712
+ width?: CSSProperties['width'];
623
713
  }
624
- interface DropdownContentProps extends ChildrenProps, HTMLAttributes<HTMLDivElement> {
714
+ interface DropdownContentProps extends HTMLAttributes<HTMLDivElement>, ChildrenProps {
625
715
  /**
626
716
  * 컨텐츠가 부모 `width`를 따라갈지, 고정될지 결정합니다.
627
717
  */
@@ -642,9 +732,6 @@ interface DropdownButtonProps extends HTMLAttributes<HTMLButtonElement>, Disable
642
732
  * placeholder를 설정합니다.
643
733
  */
644
734
  placeholder?: string;
645
- /**
646
- * 선택된 값을 노출합니다.
647
- */
648
735
  value?: string;
649
736
  /**
650
737
  * width를 설정합니다.
@@ -653,9 +740,9 @@ interface DropdownButtonProps extends HTMLAttributes<HTMLButtonElement>, Disable
653
740
  }
654
741
 
655
742
  declare const Dropdown: {
656
- ({ isOpen: initialIsOpen, trigger, content, option }: DropdownProps): react_jsx_runtime.JSX.Element;
743
+ ({ isOpen: initialIsOpen, trigger, popper, option, width, }: DropdownProps): react_jsx_runtime.JSX.Element;
657
744
  Button: React__default.ForwardRefExoticComponent<DropdownButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
658
- Content: React__default.ForwardRefExoticComponent<DropdownContentProps & React__default.RefAttributes<HTMLDivElement>>;
745
+ Content: ({ children, width: initialWidth, type, onClick, ...rest }: DropdownContentProps) => react_jsx_runtime.JSX.Element;
659
746
  };
660
747
 
661
748
  declare const getDropdownHeightBySizeVar: (size: DropdownSizeVariantType) => "40px" | "32px";
@@ -665,6 +752,8 @@ declare const getDropdownIconSizeBySizeVar: (size: DropdownSizeVariantType) => _
665
752
  declare const StyledDropdown: _emotion_styled.StyledComponent<{
666
753
  theme?: _emotion_react.Theme | undefined;
667
754
  as?: React$1.ElementType<any> | undefined;
755
+ } & {
756
+ width: CSSProperties['width'];
668
757
  }, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
669
758
  declare const StyledDropdownContent: _emotion_styled.StyledComponent<{
670
759
  theme?: _emotion_react.Theme | undefined;
@@ -1038,4 +1127,4 @@ interface MinusBoxOptionProps {
1038
1127
 
1039
1128
  declare const MinusButton: React__default.ForwardRefExoticComponent<MinusBoxProps & React__default.RefAttributes<HTMLButtonElement>>;
1040
1129
 
1041
- export { BackDropOptionProps, BackDropProps, BorderRadiusTokens, BoxShadowTokens, Button, ButtonComponent, ButtonOptionProps, ButtonProps, ButtonSizeVar, ButtonStyleVar, Callout, CalloutOptionProps, CalloutProps, CalloutType, CalloutTypes, ChipButton, ChipButtonOptionProps, ChipButtonProps, ChipButtonSizeVariantType, ChipButtonSizeVariants, ChipButtonStyleVariantType, ChipButtonStyleVariants, ChipToggle, ChipToggleOptionProps, ChipToggleProps, ChipToggleSizeVariantType, ChipToggleSizeVariants, ChipToggleStyleVariantType, ChipToggleStyleVariants, ColorTokens, Dropdown, DropdownButtonIcon, DropdownButtonProps, DropdownContentProps, DropdownOptionProps, DropdownOptionVar, DropdownProps, DropdownSizeVariantType, FontWeightTokens, Icon, IconButton, IconButtonComponent, IconButtonOptionProps, IconButtonProps, IconButtonSizeVar, IconButtonStyleVar, IconOptionProps, IconProps, IconSizeVariants, IconSizeVariantsType, Input, InputButton, InputButtonOptionProps, InputButtonProps, InputOptionProps, InputProps, MODAL_FOOTER_KEY, MODAL_HEADER_KEY, MinusBoxOptionProps, MinusBoxProps, MinusButton, Modal, ModalBodyOptionProps, ModalBodyProps, ModalContainerOptionProps, ModalContainerProps, ModalFooterOptionProps, ModalFooterProps, ModalFooterType, ModalHeaderOptionProps, ModalHeaderProps, ModalHeaderType, ModalPortal as ModalProvider, ModalSize, ModalSizeType, MotionStack, MotionStackComponentType, Popper, PopperOptionProps, PopperPortal, PopperPortalProps, PopperProps, PopperTrigger, PopperTriggerProps, ShoplflowProvider, ShoplflowProviderProps, SpacingTokens, Stack, StackComponentType, StackGenericProps, StackOptionProps, StackProps, StyledDropdown, StyledDropdownButton, StyledDropdownContent, StyledIcon, StyledInputButton, StyledPopper, StyledStack, Switch, SwitchOptionProps, SwitchProps, Text, TextArea, TextAreaOptionProps, TextAreaProps, TextOptionProps, TextProps, TypographyTokens, borderRadiusTokens, boxShadowTokens, buttonSizeVar, buttonStyleVar, colorTokens, fontWeightTokens, getDomain, getDropdownFontSizeBySizeVar, getDropdownHeightBySizeVar, getDropdownIconSizeBySizeVar, getDropdownStyleBySizeVar, iconButtonSizeVar, iconButtonStyleVar, spacingTokens, typographyTokens, useDomain, useHandleModal, useModalValue };
1130
+ export { BackDropOptionProps, BackDropProps, BorderRadiusTokens, BoxShadowTokens, Button, ButtonComponent, ButtonOptionProps, ButtonProps, ButtonSizeVar, ButtonStyleVar, Callout, CalloutOptionProps, CalloutProps, CalloutType, CalloutTypes, ChipButton, ChipButtonOptionProps, ChipButtonProps, ChipButtonSizeVariantType, ChipButtonSizeVariants, ChipButtonStyleVariantType, ChipButtonStyleVariants, ChipToggle, ChipToggleOptionProps, ChipToggleProps, ChipToggleSizeVariantType, ChipToggleSizeVariants, ChipToggleStyleVariantType, ChipToggleStyleVariants, ColorTokens, Dropdown, DropdownButtonIcon, DropdownButtonProps, DropdownContentProps, DropdownOptionProps, DropdownOptionVar, DropdownProps, DropdownSizeVariantType, FontWeightTokens, Icon, IconButton, IconButtonComponent, IconButtonOptionProps, IconButtonProps, IconButtonSizeVar, IconButtonStyleVar, IconOptionProps, IconProps, IconSizeVariants, IconSizeVariantsType, Input, InputButton, InputButtonOptionProps, InputButtonProps, InputOptionProps, InputProps, MODAL_FOOTER_KEY, MODAL_HEADER_KEY, MinusBoxOptionProps, MinusBoxProps, MinusButton, Modal, ModalBodyOptionProps, ModalBodyProps, ModalContainerOptionProps, ModalContainerProps, ModalFooterOptionProps, ModalFooterProps, ModalFooterType, ModalHeaderOptionProps, ModalHeaderProps, ModalHeaderType, ModalPortal as ModalProvider, ModalSize, ModalSizeType, MotionStack, MotionStackComponentType, Popper, PopperOptionProps, PopperPortal, PopperPortalProps, PopperProps, PopperTrigger, PopperTriggerProps, ScrollArea, ScrollAreaOptionProps, ScrollAreaProps, ShoplflowProvider, ShoplflowProviderProps, SpacingTokens, Stack, StackComponentType, StackGenericProps, StackOptionProps, StackProps, StyledDropdown, StyledDropdownButton, StyledDropdownContent, StyledIcon, StyledInputButton, StyledPopper, StyledStack, Switch, SwitchOptionProps, SwitchProps, Text, TextArea, TextAreaOptionProps, TextAreaProps, TextOptionProps, TextProps, TypographyTokens, borderRadiusTokens, boxShadowTokens, buttonSizeVar, buttonStyleVar, colorTokens, fontWeightTokens, getDomain, getDropdownFontSizeBySizeVar, getDropdownHeightBySizeVar, getDropdownIconSizeBySizeVar, getDropdownStyleBySizeVar, iconButtonSizeVar, iconButtonStyleVar, spacingTokens, typographyTokens, useDomain, useHandleModal, useModalValue };
package/dist/index.d.ts CHANGED
@@ -8,9 +8,11 @@ import { IconSource as IconSource$1 } from '@shoplflow/hada-assets';
8
8
  import * as _emotion_styled from '@emotion/styled';
9
9
  import * as _emotion_react from '@emotion/react';
10
10
  import { $Values } from '@shoplflow/utils';
11
- import { Middleware } from '@floating-ui/react-dom';
12
11
  import { AutoPlacementOptions, Placement } from '@floating-ui/react';
12
+ export { arrow, flip, hide, inline, offset, shift, size } from '@floating-ui/react';
13
+ import { Middleware } from '@floating-ui/react-dom';
13
14
  import { OffsetOptions } from '@floating-ui/core';
15
+ import { positionValues } from 'react-custom-scrollbars-2';
14
16
 
15
17
  declare type DomainType = 'SHOPL' | 'HADA';
16
18
 
@@ -568,8 +570,8 @@ interface PopperTriggerProps extends ChildrenProps, HTMLAttributes<HTMLDivElemen
568
570
  * popper가 열려있는지 여부를 결정합니다.
569
571
  */
570
572
  isOpen?: boolean;
571
- width?: string;
572
- height?: string;
573
+ width?: CSSProperties['width'];
574
+ height?: CSSProperties['height'];
573
575
  }
574
576
  interface PopperPortalProps extends ChildrenProps, HTMLAttributes<HTMLDivElement> {
575
577
  /**
@@ -596,6 +598,93 @@ declare const StyledPopper: _emotion_styled.StyledComponent<{
596
598
  as?: React$1.ElementType<any> | undefined;
597
599
  } & Pick<PopperTriggerProps, "height" | "width">, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
598
600
 
601
+ interface ScrollAreaProps extends ScrollAreaOptionProps, ChildrenProps {
602
+ }
603
+ interface ScrollAreaOptionProps {
604
+ id?: string;
605
+ /**
606
+ * (Function) 스크롤 이벤트 핸들러
607
+ */
608
+ onScroll?: React$1.UIEventHandler<any>;
609
+ /**
610
+ * (Function) 애니메이션 프레임 내에서 실행됩니다.
611
+ */
612
+ onScrollFrame?: (values: positionValues) => void;
613
+ /**
614
+ * 스크롤이 시작될 때 호출됩니다.
615
+ */
616
+ onScrollStart?: () => void;
617
+ /**
618
+ * 스크롤이 멈출 때 호출됩니다.
619
+ */
620
+ onScrollStop?: () => void;
621
+ /**
622
+ * 컴포넌트가 업데이트될 때마다 호출됩니다. 애니메이션 프레임 내에서 실행됩니다.
623
+ */
624
+ onUpdate?: (values: positionValues) => void;
625
+ /**
626
+ * 콘텐츠가 렌더링될 요소
627
+ */
628
+ renderView?: React$1.ComponentType<any>;
629
+ /**
630
+ * 수평 트랙 요소
631
+ */
632
+ renderTrackHorizontal?: React$1.ComponentType<any>;
633
+ /**
634
+ * 수직 트랙 요소
635
+ */
636
+ renderTrackVertical?: React$1.ComponentType<any>;
637
+ /**
638
+ * 수평 스크롤 바 요소
639
+ */
640
+ renderThumbHorizontal?: React$1.ComponentType<any>;
641
+ /**
642
+ * 수직 스크롤 바 요소
643
+ */
644
+ renderThumbVertical?: React$1.ComponentType<any>;
645
+ tagName?: string;
646
+ /**
647
+ * 컨테이너가 오버플로되지 않을 때 트랙을 숨깁니다
648
+ */
649
+ hideTracksWhenNotNeeded?: boolean;
650
+ autoHide?: boolean;
651
+ /**
652
+ * 숨김 지연 시간(ms). (기본값: 1000)
653
+ */
654
+ autoHideTimeout?: number;
655
+ /**
656
+ * 숨김 지속 시간(ms). (기본값: 200)
657
+ */
658
+ autoHideDuration?: number;
659
+ /**
660
+ * 스크롤 바의 고정 크기를 px 단위로 설정합니다.
661
+ */
662
+ thumbSize?: number;
663
+ /**
664
+ * 최소 스크롤 바 크기를 px 단위로 설정합니다. (기본값: 30)
665
+ */
666
+ thumbMinSize?: number;
667
+ /**
668
+ * 범용 렌더링 활성화 (기본값: false)
669
+ */
670
+ universal?: boolean;
671
+ /**
672
+ * 자동 높이 모드 활성화. (기본값: true)
673
+ */
674
+ autoHeight?: boolean;
675
+ /**
676
+ * 자동 높이 모드의 최소 높이 설정 (기본값: 0)
677
+ */
678
+ autoHeightMin?: number | string;
679
+ /**
680
+ * 자동 높이 모드의 최대 높이 설정 (기본값: 200)
681
+ */
682
+ autoHeightMax?: number | string;
683
+ style?: React$1.CSSProperties;
684
+ }
685
+
686
+ declare const ScrollArea: ({ children, ...rest }: ScrollAreaProps) => react_jsx_runtime.JSX.Element;
687
+
599
688
  declare const dropdownOptionVar: {
600
689
  readonly CLICK: "CLICK";
601
690
  readonly OUTSIDE_CLICK: "OUTSIDE_CLICK";
@@ -609,8 +698,8 @@ interface DropdownOptionProps {
609
698
  * 외부에서 `isOpen`을 제어할 수 있습니다.
610
699
  */
611
700
  isOpen?: boolean;
612
- content: ReactNode;
613
- trigger: ReactNode;
701
+ trigger?: ReactNode;
702
+ popper?: ReactNode;
614
703
  /**
615
704
  * 드롭다운이 어떻게 닫힐 수 있는지 옵션을 설정합니다.
616
705
  *
@@ -620,8 +709,9 @@ interface DropdownOptionProps {
620
709
  * NONE: 클릭으로 닫히지 않습니다.
621
710
  */
622
711
  option?: DropdownOptionVar;
712
+ width?: CSSProperties['width'];
623
713
  }
624
- interface DropdownContentProps extends ChildrenProps, HTMLAttributes<HTMLDivElement> {
714
+ interface DropdownContentProps extends HTMLAttributes<HTMLDivElement>, ChildrenProps {
625
715
  /**
626
716
  * 컨텐츠가 부모 `width`를 따라갈지, 고정될지 결정합니다.
627
717
  */
@@ -642,9 +732,6 @@ interface DropdownButtonProps extends HTMLAttributes<HTMLButtonElement>, Disable
642
732
  * placeholder를 설정합니다.
643
733
  */
644
734
  placeholder?: string;
645
- /**
646
- * 선택된 값을 노출합니다.
647
- */
648
735
  value?: string;
649
736
  /**
650
737
  * width를 설정합니다.
@@ -653,9 +740,9 @@ interface DropdownButtonProps extends HTMLAttributes<HTMLButtonElement>, Disable
653
740
  }
654
741
 
655
742
  declare const Dropdown: {
656
- ({ isOpen: initialIsOpen, trigger, content, option }: DropdownProps): react_jsx_runtime.JSX.Element;
743
+ ({ isOpen: initialIsOpen, trigger, popper, option, width, }: DropdownProps): react_jsx_runtime.JSX.Element;
657
744
  Button: React__default.ForwardRefExoticComponent<DropdownButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
658
- Content: React__default.ForwardRefExoticComponent<DropdownContentProps & React__default.RefAttributes<HTMLDivElement>>;
745
+ Content: ({ children, width: initialWidth, type, onClick, ...rest }: DropdownContentProps) => react_jsx_runtime.JSX.Element;
659
746
  };
660
747
 
661
748
  declare const getDropdownHeightBySizeVar: (size: DropdownSizeVariantType) => "40px" | "32px";
@@ -665,6 +752,8 @@ declare const getDropdownIconSizeBySizeVar: (size: DropdownSizeVariantType) => _
665
752
  declare const StyledDropdown: _emotion_styled.StyledComponent<{
666
753
  theme?: _emotion_react.Theme | undefined;
667
754
  as?: React$1.ElementType<any> | undefined;
755
+ } & {
756
+ width: CSSProperties['width'];
668
757
  }, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
669
758
  declare const StyledDropdownContent: _emotion_styled.StyledComponent<{
670
759
  theme?: _emotion_react.Theme | undefined;
@@ -1038,4 +1127,4 @@ interface MinusBoxOptionProps {
1038
1127
 
1039
1128
  declare const MinusButton: React__default.ForwardRefExoticComponent<MinusBoxProps & React__default.RefAttributes<HTMLButtonElement>>;
1040
1129
 
1041
- export { BackDropOptionProps, BackDropProps, BorderRadiusTokens, BoxShadowTokens, Button, ButtonComponent, ButtonOptionProps, ButtonProps, ButtonSizeVar, ButtonStyleVar, Callout, CalloutOptionProps, CalloutProps, CalloutType, CalloutTypes, ChipButton, ChipButtonOptionProps, ChipButtonProps, ChipButtonSizeVariantType, ChipButtonSizeVariants, ChipButtonStyleVariantType, ChipButtonStyleVariants, ChipToggle, ChipToggleOptionProps, ChipToggleProps, ChipToggleSizeVariantType, ChipToggleSizeVariants, ChipToggleStyleVariantType, ChipToggleStyleVariants, ColorTokens, Dropdown, DropdownButtonIcon, DropdownButtonProps, DropdownContentProps, DropdownOptionProps, DropdownOptionVar, DropdownProps, DropdownSizeVariantType, FontWeightTokens, Icon, IconButton, IconButtonComponent, IconButtonOptionProps, IconButtonProps, IconButtonSizeVar, IconButtonStyleVar, IconOptionProps, IconProps, IconSizeVariants, IconSizeVariantsType, Input, InputButton, InputButtonOptionProps, InputButtonProps, InputOptionProps, InputProps, MODAL_FOOTER_KEY, MODAL_HEADER_KEY, MinusBoxOptionProps, MinusBoxProps, MinusButton, Modal, ModalBodyOptionProps, ModalBodyProps, ModalContainerOptionProps, ModalContainerProps, ModalFooterOptionProps, ModalFooterProps, ModalFooterType, ModalHeaderOptionProps, ModalHeaderProps, ModalHeaderType, ModalPortal as ModalProvider, ModalSize, ModalSizeType, MotionStack, MotionStackComponentType, Popper, PopperOptionProps, PopperPortal, PopperPortalProps, PopperProps, PopperTrigger, PopperTriggerProps, ShoplflowProvider, ShoplflowProviderProps, SpacingTokens, Stack, StackComponentType, StackGenericProps, StackOptionProps, StackProps, StyledDropdown, StyledDropdownButton, StyledDropdownContent, StyledIcon, StyledInputButton, StyledPopper, StyledStack, Switch, SwitchOptionProps, SwitchProps, Text, TextArea, TextAreaOptionProps, TextAreaProps, TextOptionProps, TextProps, TypographyTokens, borderRadiusTokens, boxShadowTokens, buttonSizeVar, buttonStyleVar, colorTokens, fontWeightTokens, getDomain, getDropdownFontSizeBySizeVar, getDropdownHeightBySizeVar, getDropdownIconSizeBySizeVar, getDropdownStyleBySizeVar, iconButtonSizeVar, iconButtonStyleVar, spacingTokens, typographyTokens, useDomain, useHandleModal, useModalValue };
1130
+ export { BackDropOptionProps, BackDropProps, BorderRadiusTokens, BoxShadowTokens, Button, ButtonComponent, ButtonOptionProps, ButtonProps, ButtonSizeVar, ButtonStyleVar, Callout, CalloutOptionProps, CalloutProps, CalloutType, CalloutTypes, ChipButton, ChipButtonOptionProps, ChipButtonProps, ChipButtonSizeVariantType, ChipButtonSizeVariants, ChipButtonStyleVariantType, ChipButtonStyleVariants, ChipToggle, ChipToggleOptionProps, ChipToggleProps, ChipToggleSizeVariantType, ChipToggleSizeVariants, ChipToggleStyleVariantType, ChipToggleStyleVariants, ColorTokens, Dropdown, DropdownButtonIcon, DropdownButtonProps, DropdownContentProps, DropdownOptionProps, DropdownOptionVar, DropdownProps, DropdownSizeVariantType, FontWeightTokens, Icon, IconButton, IconButtonComponent, IconButtonOptionProps, IconButtonProps, IconButtonSizeVar, IconButtonStyleVar, IconOptionProps, IconProps, IconSizeVariants, IconSizeVariantsType, Input, InputButton, InputButtonOptionProps, InputButtonProps, InputOptionProps, InputProps, MODAL_FOOTER_KEY, MODAL_HEADER_KEY, MinusBoxOptionProps, MinusBoxProps, MinusButton, Modal, ModalBodyOptionProps, ModalBodyProps, ModalContainerOptionProps, ModalContainerProps, ModalFooterOptionProps, ModalFooterProps, ModalFooterType, ModalHeaderOptionProps, ModalHeaderProps, ModalHeaderType, ModalPortal as ModalProvider, ModalSize, ModalSizeType, MotionStack, MotionStackComponentType, Popper, PopperOptionProps, PopperPortal, PopperPortalProps, PopperProps, PopperTrigger, PopperTriggerProps, ScrollArea, ScrollAreaOptionProps, ScrollAreaProps, ShoplflowProvider, ShoplflowProviderProps, SpacingTokens, Stack, StackComponentType, StackGenericProps, StackOptionProps, StackProps, StyledDropdown, StyledDropdownButton, StyledDropdownContent, StyledIcon, StyledInputButton, StyledPopper, StyledStack, Switch, SwitchOptionProps, SwitchProps, Text, TextArea, TextAreaOptionProps, TextAreaProps, TextOptionProps, TextProps, TypographyTokens, borderRadiusTokens, boxShadowTokens, buttonSizeVar, buttonStyleVar, colorTokens, fontWeightTokens, getDomain, getDropdownFontSizeBySizeVar, getDropdownHeightBySizeVar, getDropdownIconSizeBySizeVar, getDropdownStyleBySizeVar, iconButtonSizeVar, iconButtonStyleVar, spacingTokens, typographyTokens, useDomain, useHandleModal, useModalValue };
package/dist/index.js CHANGED
@@ -7,8 +7,9 @@ import { createPortal } from 'react-dom';
7
7
  import { noop, OutSideClick, useParentElementClick, useResizeObserver, isNullOrUndefined } from '@shoplflow/utils';
8
8
  import { css } from '@emotion/react';
9
9
  import Scrollbars from 'react-custom-scrollbars-2';
10
- import { useFloating } from '@floating-ui/react-dom';
11
10
  import { FloatingPortal, autoUpdate, offset, autoPlacement } from '@floating-ui/react';
11
+ export { arrow, flip, hide, inline, offset, shift, size } from '@floating-ui/react';
12
+ import { useFloating } from '@floating-ui/react-dom';
12
13
  import * as ShoplAssets from '@shoplflow/shopl-assets';
13
14
  import { DownArrowSolidXsmallIcon } from '@shoplflow/shopl-assets';
14
15
  import * as HadaAssets from '@shoplflow/hada-assets';
@@ -552,8 +553,8 @@ var MODAL_SIZE_M = 640;
552
553
  var MODAL_SIZE_L = 768;
553
554
  var MODAL_SIZE_XL = 1040;
554
555
  var MODAL_SIZE_XXL = 1280;
555
- var getModalWidthFromSize = (size) => {
556
- switch (size) {
556
+ var getModalWidthFromSize = (size2) => {
557
+ switch (size2) {
557
558
  case "XXS":
558
559
  return MODAL_SIZE_XXS;
559
560
  case "XS":
@@ -619,14 +620,21 @@ var BodyContainer = styled5.div`
619
620
  flex: 1;
620
621
  ${({ isIncludeHeader }) => getModalBodyTopBottomPadding(isIncludeHeader)}
621
622
  `;
623
+ var ModalBodyContainerInner = styled5.div`
624
+ display: grid;
625
+ align-self: stretch;
626
+ flex-direction: column;
627
+ flex-grow: 1;
628
+ //스크롤 생성시 하단 padding 적용하기 위한 설정
629
+ height: calc(100%);
630
+ box-sizing: border-box;
631
+ `;
622
632
  var ModalBodyContent = styled5.div`
623
633
  display: flex;
624
634
  flex-direction: column;
625
- width: 100%;
626
- max-width: ${({ sizeVar }) => getModalWidthFromSize(sizeVar)}px;
635
+ height: 100%;
627
636
  box-sizing: border-box;
628
637
  padding: 0 24px;
629
- overflow: hidden;
630
638
  background: ${colorTokens.neutral0};
631
639
  `;
632
640
  var FooterContainer = styled5.div`
@@ -692,6 +700,11 @@ var ModalFooter = ({ children }) => {
692
700
  };
693
701
  ModalFooter[MODAL_FOOTER_KEY] = true;
694
702
  var ModalFooter_default = ModalFooter;
703
+ var ScrollArea = (_a) => {
704
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
705
+ return /* @__PURE__ */ jsx(Scrollbars, __spreadProps(__spreadValues({ autoHide: true, autoHideTimeout: 1e3, autoHideDuration: 200 }, rest), { "data-shoplflow": "ScrollArea", children }));
706
+ };
707
+ var ScrollArea_default = ScrollArea;
695
708
  var ModalBody = ({
696
709
  children,
697
710
  isIncludeHeader = false,
@@ -726,20 +739,18 @@ var ModalBody = ({
726
739
  const heightUnderMaxHeight = windowHeight - topBottomMargin - headerFooterHeight;
727
740
  const heightOverMaxHeight = 1200 - topBottomMargin - headerFooterHeight;
728
741
  return /* @__PURE__ */ jsx(BodyContainer, { isIncludeHeader, height: setAutoHeightMin(), children: /* @__PURE__ */ jsx(
729
- Scrollbars,
742
+ ScrollArea_default,
730
743
  {
731
744
  id: `scrollbar`,
745
+ universal: true,
732
746
  autoHeight: !modalContainerHeight,
733
747
  autoHeightMin: setAutoHeightMin(),
734
748
  autoHeightMax: windowHeight > 1200 ? heightOverMaxHeight : heightUnderMaxHeight,
735
- autoHide: true,
736
- autoHideTimeout: 1e3,
737
- autoHideDuration: 200,
738
749
  style: {
739
750
  height: "100%",
740
751
  overflow: "hidden"
741
752
  },
742
- children: /* @__PURE__ */ jsx(ModalBodyContent, { isIncludeHeader, sizeVar, children })
753
+ children: /* @__PURE__ */ jsx(ModalBodyContainerInner, { children: /* @__PURE__ */ jsx(ModalBodyContent, { isIncludeHeader, sizeVar, children }) })
743
754
  }
744
755
  ) });
745
756
  };
@@ -1400,10 +1411,8 @@ var CalloutTypes = {
1400
1411
  ALERT: "ALERT"
1401
1412
  };
1402
1413
  var StyledPopper = styled5.div`
1403
- display: flex;
1404
- flex-direction: row;
1405
1414
  width: ${({ width }) => width != null ? width : "fit-content"};
1406
- height: ${({ height }) => height != null ? height : "fit-content"};
1415
+ height: ${({ height }) => height && height};
1407
1416
  `;
1408
1417
  var PopperContext = createContext(null);
1409
1418
  var usePopper = () => {
@@ -1492,8 +1501,8 @@ var PopperPortal2 = forwardRef(
1492
1501
  Popper.Trigger = PopperTrigger;
1493
1502
  Popper.Portal = PopperPortal2;
1494
1503
  var Popper_default = Popper;
1495
- var getDropdownHeightBySizeVar = (size) => {
1496
- switch (size) {
1504
+ var getDropdownHeightBySizeVar = (size2) => {
1505
+ switch (size2) {
1497
1506
  case "M":
1498
1507
  return "40px";
1499
1508
  case "S":
@@ -1502,8 +1511,8 @@ var getDropdownHeightBySizeVar = (size) => {
1502
1511
  return "40px";
1503
1512
  }
1504
1513
  };
1505
- var getDropdownFontSizeBySizeVar = (size) => {
1506
- switch (size) {
1514
+ var getDropdownFontSizeBySizeVar = (size2) => {
1515
+ switch (size2) {
1507
1516
  case "M":
1508
1517
  return "body1_400";
1509
1518
  case "S":
@@ -1512,8 +1521,8 @@ var getDropdownFontSizeBySizeVar = (size) => {
1512
1521
  return "body1_400";
1513
1522
  }
1514
1523
  };
1515
- var getDropdownStyleBySizeVar = (size) => {
1516
- switch (size) {
1524
+ var getDropdownStyleBySizeVar = (size2) => {
1525
+ switch (size2) {
1517
1526
  case "M":
1518
1527
  return css`
1519
1528
  padding: 4px 4px 4px 12px;
@@ -1528,8 +1537,8 @@ var getDropdownStyleBySizeVar = (size) => {
1528
1537
  `;
1529
1538
  }
1530
1539
  };
1531
- var getDropdownIconSizeBySizeVar = (size) => {
1532
- switch (size) {
1540
+ var getDropdownIconSizeBySizeVar = (size2) => {
1541
+ switch (size2) {
1533
1542
  case "S":
1534
1543
  return css`
1535
1544
  height: 24px;
@@ -1554,10 +1563,7 @@ var getDropdownIconSizeBySizeVar = (size) => {
1554
1563
  }
1555
1564
  };
1556
1565
  var StyledDropdown = styled5.div`
1557
- display: flex;
1558
- width: fit-content;
1559
- height: fit-content;
1560
- flex-direction: row;
1566
+ width: ${({ width }) => width};
1561
1567
  `;
1562
1568
  var StyledDropdownContent = styled5.div`
1563
1569
  display: flex;
@@ -1638,8 +1644,8 @@ var IconSizeVariants = {
1638
1644
  };
1639
1645
 
1640
1646
  // src/components/Icon/Icon.styled.ts
1641
- var getIconSize = (size) => {
1642
- switch (size) {
1647
+ var getIconSize = (size2) => {
1648
+ switch (size2) {
1643
1649
  case IconSizeVariants.XS:
1644
1650
  return "12px";
1645
1651
  case IconSizeVariants.S:
@@ -1735,32 +1741,37 @@ var DropdownButton = forwardRef(
1735
1741
  );
1736
1742
  }
1737
1743
  );
1738
- var DropdownContent = forwardRef(
1739
- ({ children, width: initialWidth, onClick, type = "FIXED" }, ref) => {
1740
- const { width, setIsOpen, option } = useDropdown();
1741
- const isFillType = type === "FILL";
1742
- const contentWidth = isFillType ? `${width}px` : initialWidth;
1743
- const returnCallbackByOption = () => {
1744
- if (option === "OUTSIDE_CLICK") {
1745
- return () => setIsOpen(false);
1746
- }
1747
- if (option === "CLICK") {
1748
- return () => setIsOpen(false);
1749
- }
1750
- return noop;
1751
- };
1752
- const handleClick = (e) => {
1753
- onClick && onClick(e);
1754
- if (option === "CLICK") {
1755
- setIsOpen(false);
1756
- }
1757
- };
1758
- return /* @__PURE__ */ jsx(OutSideClick, { outsideClick: returnCallbackByOption(), children: /* @__PURE__ */ jsx(StyledDropdownContent, { ref, width: contentWidth, onClick: handleClick, children }) });
1759
- }
1760
- );
1761
- var Dropdown = ({ isOpen: initialIsOpen, trigger, content, option = "OUTSIDE_CLICK" }) => {
1744
+ var DropdownContent = (_a) => {
1745
+ var _b = _a, { children, width: initialWidth, type, onClick } = _b, rest = __objRest(_b, ["children", "width", "type", "onClick"]);
1746
+ const { width, setIsOpen, option } = useDropdown();
1747
+ const isFillType = type === "FILL";
1748
+ const contentWidth = isFillType ? `${width}px` : initialWidth;
1749
+ const returnCallbackByOption = () => {
1750
+ if (option === "OUTSIDE_CLICK") {
1751
+ return () => setIsOpen(false);
1752
+ }
1753
+ if (option === "CLICK") {
1754
+ return () => setIsOpen(false);
1755
+ }
1756
+ return noop;
1757
+ };
1758
+ const handleClick = (e) => {
1759
+ onClick && onClick(e);
1760
+ if (option === "CLICK") {
1761
+ setIsOpen(false);
1762
+ }
1763
+ };
1764
+ return /* @__PURE__ */ jsx(OutSideClick, { outsideClick: returnCallbackByOption(), children: /* @__PURE__ */ jsx(StyledDropdownContent, __spreadProps(__spreadValues({ width: contentWidth, onClick: handleClick }, rest), { children })) });
1765
+ };
1766
+ var Dropdown = ({
1767
+ isOpen: initialIsOpen = false,
1768
+ trigger,
1769
+ popper,
1770
+ option = "CLICK",
1771
+ width = "100%"
1772
+ }) => {
1762
1773
  const [triggerRef, setTriggerRef] = useState(null);
1763
- const [size, setSize] = useState({ width: 0, height: 0 });
1774
+ const [size2, setSize] = useState({ width: 0, height: 0 });
1764
1775
  const [isOpen, setIsOpen] = useState(false);
1765
1776
  useEffect(() => {
1766
1777
  if (triggerRef) {
@@ -1776,15 +1787,16 @@ var Dropdown = ({ isOpen: initialIsOpen, trigger, content, option = "OUTSIDE_CLI
1776
1787
  }
1777
1788
  setIsOpen(initialIsOpen);
1778
1789
  }, [initialIsOpen]);
1779
- return /* @__PURE__ */ jsx(StyledDropdown, { "data-shoplflow": "Dropdown", children: /* @__PURE__ */ jsx(DropdownContext.Provider, { value: __spreadProps(__spreadValues({}, size), { isOpen, setIsOpen, option }), children: /* @__PURE__ */ jsxs(
1790
+ return /* @__PURE__ */ jsx(StyledDropdown, { "data-shoplflow": "Dropdown", width, children: /* @__PURE__ */ jsx(DropdownContext.Provider, { value: __spreadProps(__spreadValues({}, size2), { isOpen, setIsOpen, option }), children: /* @__PURE__ */ jsxs(
1780
1791
  Popper_default,
1781
1792
  {
1793
+ offset: 4,
1782
1794
  autoPlacement: {
1783
1795
  allowedPlacements: ["bottom-start", "top-start"]
1784
1796
  },
1785
1797
  children: [
1786
- /* @__PURE__ */ jsx(Popper_default.Trigger, { ref: setTriggerRef, isOpen, children: trigger }),
1787
- /* @__PURE__ */ jsx(Popper_default.Portal, { children: content })
1798
+ /* @__PURE__ */ jsx(Popper_default.Trigger, { ref: setTriggerRef, isOpen, width, children: trigger }),
1799
+ /* @__PURE__ */ jsx(Popper_default.Portal, { children: popper })
1788
1800
  ]
1789
1801
  }
1790
1802
  ) }) });
@@ -2266,6 +2278,6 @@ var MinusButton = forwardRef((_a, ref) => {
2266
2278
  });
2267
2279
  var MinusButton_default = MinusButton;
2268
2280
 
2269
- export { Button_default as Button, Callout_default as Callout, CalloutTypes, ChipButton_default as ChipButton, ChipButtonSizeVariants, ChipButtonStyleVariants, ChipToggle_default as ChipToggle, ChipToggleSizeVariants, ChipToggleStyleVariants, Dropdown_default as Dropdown, DropdownButtonIcon, Icon_default as Icon, IconButton_default as IconButton, IconSizeVariants, Input_default as Input, InputButton_default as InputButton, MODAL_FOOTER_KEY, MODAL_HEADER_KEY, MinusButton_default as MinusButton, Modal, ModalPortal_default as ModalProvider, ModalSize, MotionStack, Popper_default as Popper, PopperPortal2 as PopperPortal, PopperTrigger, ShoplflowProvider_default as ShoplflowProvider, Stack_default as Stack, StyledDropdown, StyledDropdownButton, StyledDropdownContent, StyledIcon, StyledInputButton, StyledPopper, StyledStack, Switch_default as Switch, Text_default as Text, TextArea_default as TextArea, borderRadiusTokens, boxShadowTokens, buttonSizeVar, buttonStyleVar, colorTokens, fontWeightTokens, getDomain, getDropdownFontSizeBySizeVar, getDropdownHeightBySizeVar, getDropdownIconSizeBySizeVar, getDropdownStyleBySizeVar, iconButtonSizeVar, iconButtonStyleVar, spacingTokens, typographyTokens, useDomain, useHandleModal, useModalValue };
2281
+ export { Button_default as Button, Callout_default as Callout, CalloutTypes, ChipButton_default as ChipButton, ChipButtonSizeVariants, ChipButtonStyleVariants, ChipToggle_default as ChipToggle, ChipToggleSizeVariants, ChipToggleStyleVariants, Dropdown_default as Dropdown, DropdownButtonIcon, Icon_default as Icon, IconButton_default as IconButton, IconSizeVariants, Input_default as Input, InputButton_default as InputButton, MODAL_FOOTER_KEY, MODAL_HEADER_KEY, MinusButton_default as MinusButton, Modal, ModalPortal_default as ModalProvider, ModalSize, MotionStack, Popper_default as Popper, PopperPortal2 as PopperPortal, PopperTrigger, ScrollArea_default as ScrollArea, ShoplflowProvider_default as ShoplflowProvider, Stack_default as Stack, StyledDropdown, StyledDropdownButton, StyledDropdownContent, StyledIcon, StyledInputButton, StyledPopper, StyledStack, Switch_default as Switch, Text_default as Text, TextArea_default as TextArea, borderRadiusTokens, boxShadowTokens, buttonSizeVar, buttonStyleVar, colorTokens, fontWeightTokens, getDomain, getDropdownFontSizeBySizeVar, getDropdownHeightBySizeVar, getDropdownIconSizeBySizeVar, getDropdownStyleBySizeVar, iconButtonSizeVar, iconButtonStyleVar, spacingTokens, typographyTokens, useDomain, useHandleModal, useModalValue };
2270
2282
  //# sourceMappingURL=out.js.map
2271
2283
  //# sourceMappingURL=index.js.map