@liner-fe/prism 3.4.11 → 3.4.12
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/lib/index.css +34 -0
- package/lib/index.d.ts +43 -2
- package/lib/index.js +137 -79
- package/package.json +5 -5
package/lib/index.css
CHANGED
|
@@ -1918,6 +1918,40 @@
|
|
|
1918
1918
|
border: 1px solid var(--accent-label-pink);
|
|
1919
1919
|
}
|
|
1920
1920
|
|
|
1921
|
+
/* esbuild-sass-plugin:css-chunk:src/components/Avatar/style.module.scss */
|
|
1922
|
+
._avatar_1tgi1_1 {
|
|
1923
|
+
display: inline-flex;
|
|
1924
|
+
align-items: center;
|
|
1925
|
+
justify-content: center;
|
|
1926
|
+
box-sizing: border-box;
|
|
1927
|
+
flex-shrink: 0;
|
|
1928
|
+
overflow: hidden;
|
|
1929
|
+
border-radius: 9999px;
|
|
1930
|
+
background: var(--neutral-container-lowest);
|
|
1931
|
+
}
|
|
1932
|
+
._small_1tgi1_12 {
|
|
1933
|
+
width: 18px;
|
|
1934
|
+
height: 18px;
|
|
1935
|
+
}
|
|
1936
|
+
._medium_1tgi1_17 {
|
|
1937
|
+
width: 24px;
|
|
1938
|
+
height: 24px;
|
|
1939
|
+
}
|
|
1940
|
+
._xlarge_1tgi1_22 {
|
|
1941
|
+
width: 60px;
|
|
1942
|
+
height: 60px;
|
|
1943
|
+
}
|
|
1944
|
+
._image_1tgi1_27 {
|
|
1945
|
+
width: 100%;
|
|
1946
|
+
height: 100%;
|
|
1947
|
+
object-fit: cover;
|
|
1948
|
+
}
|
|
1949
|
+
._fallback_1tgi1_33 {
|
|
1950
|
+
display: flex;
|
|
1951
|
+
width: 100%;
|
|
1952
|
+
height: 100%;
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1921
1955
|
/* esbuild-sass-plugin:css-chunk:src/components/AlertDialog/style.module.scss */
|
|
1922
1956
|
@keyframes _overlayShow_6ipeu_1 {
|
|
1923
1957
|
from {
|
package/lib/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { IconProps, IconComponentType } from '@liner-fe/icon';
|
|
|
7
7
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
8
|
import * as _artsy_fresnel_dist_Media from '@artsy/fresnel/dist/Media';
|
|
9
9
|
import { breakpointOrigin } from '@liner-fe/design-token';
|
|
10
|
-
import { Popover as Popover$1, Tooltip as Tooltip$1, Checkbox as Checkbox$1, RadioGroup, Select as Select$1, Label as Label$1, AlertDialog as AlertDialog$1, Dialog as Dialog$1 } from 'radix-ui';
|
|
10
|
+
import { Popover as Popover$1, Tooltip as Tooltip$1, Checkbox as Checkbox$1, RadioGroup, Select as Select$1, Label as Label$1, Avatar as Avatar$1, AlertDialog as AlertDialog$1, Dialog as Dialog$1 } from 'radix-ui';
|
|
11
11
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
12
12
|
import { PopoverProps, PopoverPortalProps } from '@radix-ui/react-popover';
|
|
13
13
|
import { Drawer } from 'vaul';
|
|
@@ -642,6 +642,47 @@ type BadgeBaseProps = ComponentPropsWithoutRef<'span'> & {
|
|
|
642
642
|
type BadgeProps = BadgeBaseProps & BadgeVariantColorProps;
|
|
643
643
|
declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
|
|
644
644
|
|
|
645
|
+
type AvatarSize = 'small' | 'medium' | 'xlarge';
|
|
646
|
+
/**
|
|
647
|
+
* 이미지 로딩 상태(`'idle' | 'loading' | 'loaded' | 'error'`).
|
|
648
|
+
* union 을 직접 정의하지 않고 radix-ui Avatar.Image 의 타입을 그대로 파생해 재사용합니다(drift 방지).
|
|
649
|
+
*/
|
|
650
|
+
type AvatarLoadingStatus = Parameters<NonNullable<ComponentPropsWithoutRef<typeof Avatar$1.Image>['onLoadingStatusChange']>>[0];
|
|
651
|
+
type AvatarProps = ComponentPropsWithoutRef<typeof Avatar$1.Root> & {
|
|
652
|
+
/** 아바타 크기. */
|
|
653
|
+
size?: AvatarSize;
|
|
654
|
+
/**
|
|
655
|
+
* 사용자 이미지 URL. prop 전달은 필수이지만 값으로 `undefined` 를 허용합니다(`src?:` 옵셔널 아님).
|
|
656
|
+
* 호출부가 src 를 깜빡 누락하는 것은 막되, 사진이 없으면 `undefined` 를 명시적으로 넘길 수 있습니다.
|
|
657
|
+
* `undefined`/빈 문자열이거나 로드에 실패하면 fallback 이미지를 표시합니다.
|
|
658
|
+
*/
|
|
659
|
+
src: string | undefined;
|
|
660
|
+
/** 이미지 대체 텍스트(접근성). 사용자 이름 등을 전달합니다. 장식용이면 빈 문자열(`''`)을 넘기세요. */
|
|
661
|
+
alt: string;
|
|
662
|
+
/** 이미지 로딩 상태가 바뀔 때 호출됩니다. (idle → loading → loaded | error) */
|
|
663
|
+
onLoadingStatusChange?: (status: AvatarLoadingStatus) => void;
|
|
664
|
+
};
|
|
665
|
+
/**
|
|
666
|
+
* 사용자/엔티티를 원형 이미지로 표현하는 Avatar.
|
|
667
|
+
*
|
|
668
|
+
* radix-ui Avatar 를 래핑합니다. `src` 이미지가 로드되기 전·로드에 실패했을 때(빈 URL 포함)는
|
|
669
|
+
* fallback placeholder 이미지를 보여줍니다. 로딩 중 깨진 이미지가 잠깐 보이는 현상이 없습니다.
|
|
670
|
+
*/
|
|
671
|
+
declare const Avatar: react.ForwardRefExoticComponent<Omit<Avatar$1.AvatarProps & react.RefAttributes<HTMLSpanElement>, "ref"> & {
|
|
672
|
+
/** 아바타 크기. */
|
|
673
|
+
size?: AvatarSize;
|
|
674
|
+
/**
|
|
675
|
+
* 사용자 이미지 URL. prop 전달은 필수이지만 값으로 `undefined` 를 허용합니다(`src?:` 옵셔널 아님).
|
|
676
|
+
* 호출부가 src 를 깜빡 누락하는 것은 막되, 사진이 없으면 `undefined` 를 명시적으로 넘길 수 있습니다.
|
|
677
|
+
* `undefined`/빈 문자열이거나 로드에 실패하면 fallback 이미지를 표시합니다.
|
|
678
|
+
*/
|
|
679
|
+
src: string | undefined;
|
|
680
|
+
/** 이미지 대체 텍스트(접근성). 사용자 이름 등을 전달합니다. 장식용이면 빈 문자열(`''`)을 넘기세요. */
|
|
681
|
+
alt: string;
|
|
682
|
+
/** 이미지 로딩 상태가 바뀔 때 호출됩니다. (idle → loading → loaded | error) */
|
|
683
|
+
onLoadingStatusChange?: (status: AvatarLoadingStatus) => void;
|
|
684
|
+
} & react.RefAttributes<HTMLSpanElement>>;
|
|
685
|
+
|
|
645
686
|
/**
|
|
646
687
|
* AlertDialogRoot
|
|
647
688
|
*
|
|
@@ -841,4 +882,4 @@ interface RatioProps extends react.HTMLAttributes<HTMLDivElement> {
|
|
|
841
882
|
*/
|
|
842
883
|
declare const Ratio: react.ForwardRefExoticComponent<RatioProps & react.RefAttributes<HTMLDivElement>>;
|
|
843
884
|
|
|
844
|
-
export { AlertDialog, type AlertDialogAction, type AlertDialogConfirmAction, type AlertDialogContentProps, Badge, type BadgeColor, type BadgeIconProps, type BadgeProps, type BadgeSize, type BadgeVariant, BottomSheet, type BottomSheetAction, type BottomSheetConfirmAction, type BottomSheetContentProps, type BottomSheetMode, type BreakPointsKey, Button, type ButtonIconProps, type ButtonProps, type ButtonSizeType, Caption, Checkbox, CoachMark, type CoachMarkContentProps, type CommonButtonProps, CompactCoachMark, type CompactCoachMarkContentProps, DEFAULT_LEVEL_OPTIONS, DEFAULT_SIZE_OPTIONS, DefaultButton, type DefaultButtonProps, type DefaultLevelType, Dialog, type DialogAction, type DialogConfirmAction, type DialogContentProps, Display, Heading, ICON_LEVEL_OPTIONS, ICON_SIZE_OPTIONS, type ICaptionProps, type IDisplayProps, type IHeadingProps, type IPropsAccent, type IPropsAnswer, type IPropsNormal, type IPropsNormalBold, type IPropsPost, type ITitleProps, IconButton, type IconButtonProps, type ItemProps, LOGOS, Label, List, Loading, type LoadingLevelType, Logo, type LogoCategory, type LogoName, type LogoProps, Media, MediaContextProvider, Paragraph, type ParagraphProps, Popover, type PopoverContentProps, PrimitiveCoachMark, type PrimitiveCoachMarkContentProps, type PrimitiveCoachMarkRootProps, type PromiseToastOptions, RATIO, Radio, Ratio, type RatioProps, Select, type SelectItemProps, type SelectProps, TEXT_LEVEL_OPTIONS, TEXT_SIZE_OPTIONS, Tag, TextButton, type TextButtonProps, type TextSizeType, Textfield, type TextfieldButtonProps, type TextfieldLabelType, type TextfieldProps, Title, type ToastOptions, type ToastType, Toaster, Tooltip, Typography, arrayToStyleObject, isEmptyObject, objectToArray, rootMediaStyle, toast };
|
|
885
|
+
export { AlertDialog, type AlertDialogAction, type AlertDialogConfirmAction, type AlertDialogContentProps, Avatar, type AvatarLoadingStatus, type AvatarProps, type AvatarSize, Badge, type BadgeColor, type BadgeIconProps, type BadgeProps, type BadgeSize, type BadgeVariant, BottomSheet, type BottomSheetAction, type BottomSheetConfirmAction, type BottomSheetContentProps, type BottomSheetMode, type BreakPointsKey, Button, type ButtonIconProps, type ButtonProps, type ButtonSizeType, Caption, Checkbox, CoachMark, type CoachMarkContentProps, type CommonButtonProps, CompactCoachMark, type CompactCoachMarkContentProps, DEFAULT_LEVEL_OPTIONS, DEFAULT_SIZE_OPTIONS, DefaultButton, type DefaultButtonProps, type DefaultLevelType, Dialog, type DialogAction, type DialogConfirmAction, type DialogContentProps, Display, Heading, ICON_LEVEL_OPTIONS, ICON_SIZE_OPTIONS, type ICaptionProps, type IDisplayProps, type IHeadingProps, type IPropsAccent, type IPropsAnswer, type IPropsNormal, type IPropsNormalBold, type IPropsPost, type ITitleProps, IconButton, type IconButtonProps, type ItemProps, LOGOS, Label, List, Loading, type LoadingLevelType, Logo, type LogoCategory, type LogoName, type LogoProps, Media, MediaContextProvider, Paragraph, type ParagraphProps, Popover, type PopoverContentProps, PrimitiveCoachMark, type PrimitiveCoachMarkContentProps, type PrimitiveCoachMarkRootProps, type PromiseToastOptions, RATIO, Radio, Ratio, type RatioProps, Select, type SelectItemProps, type SelectProps, TEXT_LEVEL_OPTIONS, TEXT_SIZE_OPTIONS, Tag, TextButton, type TextButtonProps, type TextSizeType, Textfield, type TextfieldButtonProps, type TextfieldLabelType, type TextfieldProps, Title, type ToastOptions, type ToastType, Toaster, Tooltip, Typography, arrayToStyleObject, isEmptyObject, objectToArray, rootMediaStyle, toast };
|
package/lib/index.js
CHANGED
|
@@ -2775,13 +2775,70 @@ var Tag = forwardRef20(
|
|
|
2775
2775
|
}
|
|
2776
2776
|
);
|
|
2777
2777
|
|
|
2778
|
+
// src/components/Avatar/index.tsx
|
|
2779
|
+
import { forwardRef as forwardRef21 } from "react";
|
|
2780
|
+
import { Avatar as RadixAvatar } from "radix-ui";
|
|
2781
|
+
import { cva as cva12 } from "cva";
|
|
2782
|
+
import clsx22 from "clsx";
|
|
2783
|
+
|
|
2784
|
+
// src/components/Avatar/fallbackImage.ts
|
|
2785
|
+
var FALLBACK_IMAGE_SRC = "https://assets.getliner.com/web/prism/fallback-profile.webp";
|
|
2786
|
+
|
|
2787
|
+
// src/components/Avatar/style.module.scss
|
|
2788
|
+
var style_module_default20 = {
|
|
2789
|
+
"avatar": "_avatar_1tgi1_1",
|
|
2790
|
+
"small": "_small_1tgi1_12",
|
|
2791
|
+
"medium": "_medium_1tgi1_17",
|
|
2792
|
+
"xlarge": "_xlarge_1tgi1_22",
|
|
2793
|
+
"image": "_image_1tgi1_27",
|
|
2794
|
+
"fallback": "_fallback_1tgi1_33"
|
|
2795
|
+
};
|
|
2796
|
+
|
|
2797
|
+
// src/components/Avatar/index.tsx
|
|
2798
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2799
|
+
var avatarBase = cva12({
|
|
2800
|
+
base: style_module_default20.avatar,
|
|
2801
|
+
variants: {
|
|
2802
|
+
size: {
|
|
2803
|
+
small: style_module_default20.small,
|
|
2804
|
+
medium: style_module_default20.medium,
|
|
2805
|
+
xlarge: style_module_default20.xlarge
|
|
2806
|
+
}
|
|
2807
|
+
}
|
|
2808
|
+
});
|
|
2809
|
+
var Avatar = forwardRef21(
|
|
2810
|
+
({ size = "medium", src, alt, className, onLoadingStatusChange, ...rest }, ref) => {
|
|
2811
|
+
return /* @__PURE__ */ jsxs16(RadixAvatar.Root, { ref, className: clsx22(avatarBase({ size }), className), ...rest, children: [
|
|
2812
|
+
src ? /* @__PURE__ */ jsx29(
|
|
2813
|
+
RadixAvatar.Image,
|
|
2814
|
+
{
|
|
2815
|
+
className: style_module_default20.image,
|
|
2816
|
+
src,
|
|
2817
|
+
alt,
|
|
2818
|
+
onLoadingStatusChange
|
|
2819
|
+
}
|
|
2820
|
+
) : null,
|
|
2821
|
+
/* @__PURE__ */ jsx29(RadixAvatar.Fallback, { className: style_module_default20.fallback, children: /* @__PURE__ */ jsx29(
|
|
2822
|
+
"img",
|
|
2823
|
+
{
|
|
2824
|
+
className: style_module_default20.image,
|
|
2825
|
+
src: FALLBACK_IMAGE_SRC,
|
|
2826
|
+
alt,
|
|
2827
|
+
"aria-hidden": alt ? void 0 : true
|
|
2828
|
+
}
|
|
2829
|
+
) })
|
|
2830
|
+
] });
|
|
2831
|
+
}
|
|
2832
|
+
);
|
|
2833
|
+
Avatar.displayName = "Avatar";
|
|
2834
|
+
|
|
2778
2835
|
// src/components/AlertDialog/index.tsx
|
|
2779
2836
|
import { AlertDialog as AlertDialogPrimitive } from "radix-ui";
|
|
2780
|
-
import { clsx as
|
|
2781
|
-
import { cva as
|
|
2837
|
+
import { clsx as clsx23 } from "clsx";
|
|
2838
|
+
import { cva as cva13 } from "cva";
|
|
2782
2839
|
|
|
2783
2840
|
// src/components/AlertDialog/style.module.scss
|
|
2784
|
-
var
|
|
2841
|
+
var style_module_default21 = {
|
|
2785
2842
|
"overlay": "_overlay_6ipeu_20",
|
|
2786
2843
|
"overlayShow": "_overlayShow_6ipeu_1",
|
|
2787
2844
|
"content": "_content_6ipeu_30",
|
|
@@ -2793,13 +2850,13 @@ var style_module_default20 = {
|
|
|
2793
2850
|
};
|
|
2794
2851
|
|
|
2795
2852
|
// src/components/AlertDialog/index.tsx
|
|
2796
|
-
import { jsx as
|
|
2797
|
-
var titleVariants =
|
|
2798
|
-
var descriptionVariants =
|
|
2799
|
-
base: [
|
|
2853
|
+
import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2854
|
+
var titleVariants = cva13({ base: [style_module_default21.title, "lp-sys-typo-title4-accent-bold"] });
|
|
2855
|
+
var descriptionVariants = cva13({
|
|
2856
|
+
base: [style_module_default21.description, "lp-sys-typo-paragraph2-post-regular"]
|
|
2800
2857
|
});
|
|
2801
|
-
var AlertDialogRoot = /* @__PURE__ */ __name((props) => /* @__PURE__ */
|
|
2802
|
-
var AlertDialogTrigger = /* @__PURE__ */ __name(({ by }) => /* @__PURE__ */
|
|
2858
|
+
var AlertDialogRoot = /* @__PURE__ */ __name((props) => /* @__PURE__ */ jsx30(AlertDialogPrimitive.Root, { ...props }), "AlertDialogRoot");
|
|
2859
|
+
var AlertDialogTrigger = /* @__PURE__ */ __name(({ by }) => /* @__PURE__ */ jsx30(AlertDialogPrimitive.Trigger, { asChild: true, children: by }), "AlertDialogTrigger");
|
|
2803
2860
|
var AlertDialogContent = /* @__PURE__ */ __name(({
|
|
2804
2861
|
title,
|
|
2805
2862
|
description,
|
|
@@ -2811,24 +2868,24 @@ var AlertDialogContent = /* @__PURE__ */ __name(({
|
|
|
2811
2868
|
ref,
|
|
2812
2869
|
...props
|
|
2813
2870
|
}) => {
|
|
2814
|
-
return /* @__PURE__ */
|
|
2815
|
-
/* @__PURE__ */
|
|
2816
|
-
/* @__PURE__ */
|
|
2871
|
+
return /* @__PURE__ */ jsxs17(AlertDialogPrimitive.Portal, { container, children: [
|
|
2872
|
+
/* @__PURE__ */ jsx30(AlertDialogPrimitive.Overlay, { className: style_module_default21.overlay }),
|
|
2873
|
+
/* @__PURE__ */ jsxs17(
|
|
2817
2874
|
AlertDialogPrimitive.Content,
|
|
2818
2875
|
{
|
|
2819
2876
|
ref,
|
|
2820
|
-
className:
|
|
2877
|
+
className: clsx23(style_module_default21.content, className),
|
|
2821
2878
|
onEscapeKeyDown: (event) => event.preventDefault(),
|
|
2822
2879
|
...props,
|
|
2823
2880
|
children: [
|
|
2824
|
-
/* @__PURE__ */
|
|
2825
|
-
title && /* @__PURE__ */
|
|
2826
|
-
/* @__PURE__ */
|
|
2881
|
+
/* @__PURE__ */ jsxs17("div", { className: style_module_default21.contents, children: [
|
|
2882
|
+
title && /* @__PURE__ */ jsx30(AlertDialogPrimitive.Title, { className: titleVariants(), children: title }),
|
|
2883
|
+
/* @__PURE__ */ jsx30(AlertDialogPrimitive.Description, { className: descriptionVariants(), children: description })
|
|
2827
2884
|
] }),
|
|
2828
2885
|
children,
|
|
2829
|
-
/* @__PURE__ */
|
|
2830
|
-
/* @__PURE__ */
|
|
2831
|
-
/* @__PURE__ */
|
|
2886
|
+
/* @__PURE__ */ jsxs17("div", { className: style_module_default21.actions, children: [
|
|
2887
|
+
/* @__PURE__ */ jsx30(AlertDialogPrimitive.Cancel, { asChild: true, children: /* @__PURE__ */ jsx30(Button, { level: "tertiary", size: "l", onClick: dismiss.onClick, children: dismiss.label }) }),
|
|
2888
|
+
/* @__PURE__ */ jsx30(AlertDialogPrimitive.Action, { asChild: true, children: /* @__PURE__ */ jsx30(Button, { level: confirm.level ?? "primary", size: "l", onClick: confirm.onClick, children: confirm.label }) })
|
|
2832
2889
|
] })
|
|
2833
2890
|
]
|
|
2834
2891
|
}
|
|
@@ -2842,15 +2899,15 @@ var AlertDialog = Object.assign(AlertDialogRoot, {
|
|
|
2842
2899
|
|
|
2843
2900
|
// src/components/Dialog/index.tsx
|
|
2844
2901
|
import { Dialog as DialogPrimitive3 } from "radix-ui";
|
|
2845
|
-
import { clsx as
|
|
2902
|
+
import { clsx as clsx24 } from "clsx";
|
|
2846
2903
|
import { IconClose as IconClose2 } from "@liner-fe/icon";
|
|
2847
2904
|
|
|
2848
2905
|
// src/components/Dialog/Header.tsx
|
|
2849
2906
|
import { Dialog as DialogPrimitive } from "radix-ui";
|
|
2850
|
-
import { cva as
|
|
2907
|
+
import { cva as cva14 } from "cva";
|
|
2851
2908
|
|
|
2852
2909
|
// src/components/Dialog/style.module.scss
|
|
2853
|
-
var
|
|
2910
|
+
var style_module_default22 = {
|
|
2854
2911
|
"overlay": "_overlay_424hi_20",
|
|
2855
2912
|
"overlayShow": "_overlayShow_424hi_1",
|
|
2856
2913
|
"content": "_content_424hi_30",
|
|
@@ -2867,36 +2924,36 @@ var style_module_default21 = {
|
|
|
2867
2924
|
};
|
|
2868
2925
|
|
|
2869
2926
|
// src/components/Dialog/Header.tsx
|
|
2870
|
-
import { jsx as
|
|
2871
|
-
var titleVariants2 =
|
|
2872
|
-
var descriptionVariants2 =
|
|
2873
|
-
base: [
|
|
2927
|
+
import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2928
|
+
var titleVariants2 = cva14({ base: [style_module_default22.title, "lp-sys-typo-title4-accent-bold"] });
|
|
2929
|
+
var descriptionVariants2 = cva14({
|
|
2930
|
+
base: [style_module_default22.description, "lp-sys-typo-paragraph2-post-regular"]
|
|
2874
2931
|
});
|
|
2875
|
-
var DialogHeader = /* @__PURE__ */ __name(({ title, description }) => /* @__PURE__ */
|
|
2876
|
-
/* @__PURE__ */
|
|
2877
|
-
description && /* @__PURE__ */
|
|
2932
|
+
var DialogHeader = /* @__PURE__ */ __name(({ title, description }) => /* @__PURE__ */ jsxs18("div", { className: style_module_default22.header, children: [
|
|
2933
|
+
/* @__PURE__ */ jsx31(DialogPrimitive.Title, { className: titleVariants2(), children: title }),
|
|
2934
|
+
description && /* @__PURE__ */ jsx31(DialogPrimitive.Description, { className: descriptionVariants2(), children: description })
|
|
2878
2935
|
] }), "DialogHeader");
|
|
2879
2936
|
|
|
2880
2937
|
// src/components/Dialog/Footer.tsx
|
|
2881
2938
|
import { Dialog as DialogPrimitive2 } from "radix-ui";
|
|
2882
|
-
import { jsx as
|
|
2939
|
+
import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2883
2940
|
var DialogFooter = /* @__PURE__ */ __name(({ dismiss, confirm, extra }) => {
|
|
2884
2941
|
const hasActions = Boolean(dismiss || confirm);
|
|
2885
2942
|
const hasFooter = hasActions || Boolean(extra);
|
|
2886
2943
|
if (!hasFooter) return null;
|
|
2887
|
-
return /* @__PURE__ */
|
|
2888
|
-
hasActions && /* @__PURE__ */
|
|
2889
|
-
dismiss && /* @__PURE__ */
|
|
2890
|
-
confirm && /* @__PURE__ */
|
|
2944
|
+
return /* @__PURE__ */ jsxs19("div", { className: style_module_default22.footer, children: [
|
|
2945
|
+
hasActions && /* @__PURE__ */ jsxs19("div", { className: style_module_default22.actions, children: [
|
|
2946
|
+
dismiss && /* @__PURE__ */ jsx32(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx32(Button, { level: "tertiary", size: "cta", onClick: dismiss.onClick, children: dismiss.label }) }),
|
|
2947
|
+
confirm && /* @__PURE__ */ jsx32(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx32(Button, { level: confirm.level ?? "primary", size: "cta", onClick: confirm.onClick, children: confirm.label }) })
|
|
2891
2948
|
] }),
|
|
2892
|
-
extra && /* @__PURE__ */
|
|
2949
|
+
extra && /* @__PURE__ */ jsx32("div", { className: style_module_default22.extra, children: /* @__PURE__ */ jsx32(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx32(TextButton, { level: "tertiary", size: "xs", onClick: extra.onClick, children: extra.label }) }) })
|
|
2893
2950
|
] });
|
|
2894
2951
|
}, "DialogFooter");
|
|
2895
2952
|
|
|
2896
2953
|
// src/components/Dialog/index.tsx
|
|
2897
|
-
import { jsx as
|
|
2898
|
-
var DialogRoot = /* @__PURE__ */ __name((props) => /* @__PURE__ */
|
|
2899
|
-
var DialogTrigger = /* @__PURE__ */ __name(({ by }) => /* @__PURE__ */
|
|
2954
|
+
import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2955
|
+
var DialogRoot = /* @__PURE__ */ __name((props) => /* @__PURE__ */ jsx33(DialogPrimitive3.Root, { ...props }), "DialogRoot");
|
|
2956
|
+
var DialogTrigger = /* @__PURE__ */ __name(({ by }) => /* @__PURE__ */ jsx33(DialogPrimitive3.Trigger, { asChild: true, children: by }), "DialogTrigger");
|
|
2900
2957
|
var DialogContent = /* @__PURE__ */ __name(({
|
|
2901
2958
|
illust,
|
|
2902
2959
|
title,
|
|
@@ -2911,23 +2968,23 @@ var DialogContent = /* @__PURE__ */ __name(({
|
|
|
2911
2968
|
ref,
|
|
2912
2969
|
...props
|
|
2913
2970
|
}) => {
|
|
2914
|
-
return /* @__PURE__ */
|
|
2915
|
-
/* @__PURE__ */
|
|
2916
|
-
/* @__PURE__ */
|
|
2917
|
-
showClose && /* @__PURE__ */
|
|
2971
|
+
return /* @__PURE__ */ jsxs20(DialogPrimitive3.Portal, { container, children: [
|
|
2972
|
+
/* @__PURE__ */ jsx33(DialogPrimitive3.Overlay, { className: style_module_default22.overlay }),
|
|
2973
|
+
/* @__PURE__ */ jsxs20(DialogPrimitive3.Content, { ref, className: clsx24(style_module_default22.content, className), ...props, children: [
|
|
2974
|
+
showClose && /* @__PURE__ */ jsx33(DialogPrimitive3.Close, { asChild: true, children: /* @__PURE__ */ jsx33(
|
|
2918
2975
|
IconButton,
|
|
2919
2976
|
{
|
|
2920
|
-
className:
|
|
2977
|
+
className: style_module_default22.close,
|
|
2921
2978
|
"aria-label": "\uB2EB\uAE30",
|
|
2922
2979
|
level: "quinary",
|
|
2923
2980
|
size: "m",
|
|
2924
2981
|
icon: { icon: IconClose2, type: "neutral-label-secondary" }
|
|
2925
2982
|
}
|
|
2926
2983
|
) }),
|
|
2927
|
-
illust && /* @__PURE__ */
|
|
2928
|
-
/* @__PURE__ */
|
|
2929
|
-
children && /* @__PURE__ */
|
|
2930
|
-
/* @__PURE__ */
|
|
2984
|
+
illust && /* @__PURE__ */ jsx33("div", { className: style_module_default22.illust, children: illust }),
|
|
2985
|
+
/* @__PURE__ */ jsx33(DialogHeader, { title, description }),
|
|
2986
|
+
children && /* @__PURE__ */ jsx33("div", { className: style_module_default22.body, children }),
|
|
2987
|
+
/* @__PURE__ */ jsx33(DialogFooter, { dismiss, confirm, extra })
|
|
2931
2988
|
] })
|
|
2932
2989
|
] });
|
|
2933
2990
|
}, "DialogContent");
|
|
@@ -2939,14 +2996,14 @@ var Dialog = Object.assign(DialogRoot, {
|
|
|
2939
2996
|
// src/components/BottomSheet/index.tsx
|
|
2940
2997
|
import * as React4 from "react";
|
|
2941
2998
|
import { Drawer as Drawer3 } from "vaul";
|
|
2942
|
-
import { clsx as
|
|
2999
|
+
import { clsx as clsx25 } from "clsx";
|
|
2943
3000
|
|
|
2944
3001
|
// src/components/BottomSheet/Header.tsx
|
|
2945
3002
|
import { Drawer } from "vaul";
|
|
2946
|
-
import { cva as
|
|
3003
|
+
import { cva as cva15 } from "cva";
|
|
2947
3004
|
|
|
2948
3005
|
// src/components/BottomSheet/style.module.scss
|
|
2949
|
-
var
|
|
3006
|
+
var style_module_default23 = {
|
|
2950
3007
|
"overlay": "_overlay_ifftf_2",
|
|
2951
3008
|
"content": "_content_ifftf_9",
|
|
2952
3009
|
"inner": "_inner_ifftf_18",
|
|
@@ -2962,47 +3019,47 @@ var style_module_default22 = {
|
|
|
2962
3019
|
};
|
|
2963
3020
|
|
|
2964
3021
|
// src/components/BottomSheet/Header.tsx
|
|
2965
|
-
import { jsx as
|
|
2966
|
-
var titleVariants3 =
|
|
2967
|
-
var descriptionVariants3 =
|
|
2968
|
-
base: [
|
|
3022
|
+
import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3023
|
+
var titleVariants3 = cva15({ base: [style_module_default23.title, "lp-sys-typo-title4-accent-bold"] });
|
|
3024
|
+
var descriptionVariants3 = cva15({
|
|
3025
|
+
base: [style_module_default23.description, "lp-sys-typo-paragraph2-post-regular"]
|
|
2969
3026
|
});
|
|
2970
|
-
var BottomSheetHeader = /* @__PURE__ */ __name(({ title, description }) => /* @__PURE__ */
|
|
2971
|
-
/* @__PURE__ */
|
|
2972
|
-
description && /* @__PURE__ */
|
|
3027
|
+
var BottomSheetHeader = /* @__PURE__ */ __name(({ title, description }) => /* @__PURE__ */ jsxs21("div", { className: style_module_default23.header, children: [
|
|
3028
|
+
/* @__PURE__ */ jsx34(Drawer.Title, { className: titleVariants3(), children: title }),
|
|
3029
|
+
description && /* @__PURE__ */ jsx34(Drawer.Description, { className: descriptionVariants3(), children: description })
|
|
2973
3030
|
] }), "BottomSheetHeader");
|
|
2974
3031
|
|
|
2975
3032
|
// src/components/BottomSheet/Footer.tsx
|
|
2976
3033
|
import { Drawer as Drawer2 } from "vaul";
|
|
2977
|
-
import { jsx as
|
|
3034
|
+
import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2978
3035
|
var BottomSheetFooter = /* @__PURE__ */ __name(({ dismiss, confirm, extra }) => {
|
|
2979
3036
|
const hasActions = Boolean(dismiss || confirm);
|
|
2980
3037
|
const hasFooter = hasActions || Boolean(extra);
|
|
2981
3038
|
if (!hasFooter) return null;
|
|
2982
|
-
return /* @__PURE__ */
|
|
2983
|
-
hasActions && /* @__PURE__ */
|
|
2984
|
-
dismiss && /* @__PURE__ */
|
|
2985
|
-
confirm && /* @__PURE__ */
|
|
3039
|
+
return /* @__PURE__ */ jsxs22("div", { className: style_module_default23.footer, children: [
|
|
3040
|
+
hasActions && /* @__PURE__ */ jsxs22("div", { className: style_module_default23.actions, children: [
|
|
3041
|
+
dismiss && /* @__PURE__ */ jsx35(Drawer2.Close, { asChild: true, children: /* @__PURE__ */ jsx35(Button, { level: "tertiary", size: "l", onClick: dismiss.onClick, children: dismiss.label }) }),
|
|
3042
|
+
confirm && /* @__PURE__ */ jsx35(Drawer2.Close, { asChild: true, children: /* @__PURE__ */ jsx35(Button, { level: confirm.level ?? "primary", size: "l", onClick: confirm.onClick, children: confirm.label }) })
|
|
2986
3043
|
] }),
|
|
2987
|
-
extra && /* @__PURE__ */
|
|
3044
|
+
extra && /* @__PURE__ */ jsx35("div", { className: style_module_default23.extra, children: /* @__PURE__ */ jsx35(Drawer2.Close, { asChild: true, children: /* @__PURE__ */ jsx35(TextButton, { level: "tertiary", size: "xs", onClick: extra.onClick, children: extra.label }) }) })
|
|
2988
3045
|
] });
|
|
2989
3046
|
}, "BottomSheetFooter");
|
|
2990
3047
|
|
|
2991
3048
|
// src/components/BottomSheet/index.tsx
|
|
2992
|
-
import { jsx as
|
|
3049
|
+
import { jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2993
3050
|
var SNAP_POINTS = [0.5, 1];
|
|
2994
3051
|
var BottomSheetContext = React4.createContext({
|
|
2995
3052
|
mode: "auto"
|
|
2996
3053
|
});
|
|
2997
3054
|
var BottomSheetRoot = /* @__PURE__ */ __name(({ mode = "auto", children, ...props }) => {
|
|
2998
3055
|
const value = React4.useMemo(() => ({ mode }), [mode]);
|
|
2999
|
-
return /* @__PURE__ */
|
|
3056
|
+
return /* @__PURE__ */ jsx36(BottomSheetContext.Provider, { value, children: mode === "snap" ? /* @__PURE__ */ jsx36(Drawer3.Root, { snapPoints: SNAP_POINTS, fadeFromIndex: SNAP_POINTS.length - 1, ...props, children }) : (
|
|
3000
3057
|
// auto: handle이 없으므로 handleOnly로 드래그 닫기를 막고, overlay·ESC 닫기는 Content에서 막는다.
|
|
3001
3058
|
// dismissible은 유지(false면 vaul이 Drawer.Close까지 막는다) → footer 액션 버튼으로만 닫힌다.
|
|
3002
|
-
/* @__PURE__ */
|
|
3059
|
+
/* @__PURE__ */ jsx36(Drawer3.Root, { handleOnly: true, ...props, children })
|
|
3003
3060
|
) });
|
|
3004
3061
|
}, "BottomSheetRoot");
|
|
3005
|
-
var BottomSheetTrigger = /* @__PURE__ */ __name(({ by }) => /* @__PURE__ */
|
|
3062
|
+
var BottomSheetTrigger = /* @__PURE__ */ __name(({ by }) => /* @__PURE__ */ jsx36(Drawer3.Trigger, { asChild: true, children: by }), "BottomSheetTrigger");
|
|
3006
3063
|
var BottomSheetContent = /* @__PURE__ */ __name(({
|
|
3007
3064
|
illust,
|
|
3008
3065
|
title,
|
|
@@ -3024,23 +3081,23 @@ var BottomSheetContent = /* @__PURE__ */ __name(({
|
|
|
3024
3081
|
onEscapeKeyDown: /* @__PURE__ */ __name((e) => e.preventDefault(), "onEscapeKeyDown"),
|
|
3025
3082
|
onInteractOutside: /* @__PURE__ */ __name((e) => e.preventDefault(), "onInteractOutside")
|
|
3026
3083
|
} : {};
|
|
3027
|
-
return /* @__PURE__ */
|
|
3028
|
-
/* @__PURE__ */
|
|
3029
|
-
/* @__PURE__ */
|
|
3084
|
+
return /* @__PURE__ */ jsxs23(Drawer3.Portal, { container, children: [
|
|
3085
|
+
/* @__PURE__ */ jsx36(Drawer3.Overlay, { className: style_module_default23.overlay }),
|
|
3086
|
+
/* @__PURE__ */ jsx36(
|
|
3030
3087
|
Drawer3.Content,
|
|
3031
3088
|
{
|
|
3032
3089
|
ref,
|
|
3033
3090
|
"data-mode": mode,
|
|
3034
|
-
className:
|
|
3091
|
+
className: clsx25(style_module_default23.content, className),
|
|
3035
3092
|
style: styleProp,
|
|
3036
3093
|
...autoCloseGuards,
|
|
3037
3094
|
...props,
|
|
3038
|
-
children: /* @__PURE__ */
|
|
3039
|
-
resolvedShowHandle && /* @__PURE__ */
|
|
3040
|
-
illust && /* @__PURE__ */
|
|
3041
|
-
/* @__PURE__ */
|
|
3042
|
-
children && /* @__PURE__ */
|
|
3043
|
-
/* @__PURE__ */
|
|
3095
|
+
children: /* @__PURE__ */ jsxs23("div", { className: style_module_default23.inner, children: [
|
|
3096
|
+
resolvedShowHandle && /* @__PURE__ */ jsx36(Drawer3.Handle, { className: style_module_default23.handle }),
|
|
3097
|
+
illust && /* @__PURE__ */ jsx36("div", { className: style_module_default23.illust, children: illust }),
|
|
3098
|
+
/* @__PURE__ */ jsx36(BottomSheetHeader, { title, description }),
|
|
3099
|
+
children && /* @__PURE__ */ jsx36("div", { className: style_module_default23.body, children }),
|
|
3100
|
+
/* @__PURE__ */ jsx36(BottomSheetFooter, { dismiss, confirm, extra })
|
|
3044
3101
|
] })
|
|
3045
3102
|
}
|
|
3046
3103
|
)
|
|
@@ -3054,7 +3111,7 @@ var BottomSheet = Object.assign(BottomSheetRoot, {
|
|
|
3054
3111
|
// src/components/Ratio/index.tsx
|
|
3055
3112
|
import * as React5 from "react";
|
|
3056
3113
|
import { AspectRatio as AspectRatioPrimitive } from "radix-ui";
|
|
3057
|
-
import { jsx as
|
|
3114
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
3058
3115
|
var RATIO = {
|
|
3059
3116
|
"1/1": 1,
|
|
3060
3117
|
"3/4": 3 / 4,
|
|
@@ -3065,11 +3122,12 @@ var RATIO = {
|
|
|
3065
3122
|
"21/9": 21 / 9
|
|
3066
3123
|
};
|
|
3067
3124
|
var Ratio = React5.forwardRef(
|
|
3068
|
-
({ ratio = 1, children, ...props }, ref) => /* @__PURE__ */
|
|
3125
|
+
({ ratio = 1, children, ...props }, ref) => /* @__PURE__ */ jsx37(AspectRatioPrimitive.Root, { ref, ratio, ...props, children })
|
|
3069
3126
|
);
|
|
3070
3127
|
Ratio.displayName = "Ratio";
|
|
3071
3128
|
export {
|
|
3072
3129
|
AlertDialog,
|
|
3130
|
+
Avatar,
|
|
3073
3131
|
Badge2 as Badge,
|
|
3074
3132
|
BottomSheet,
|
|
3075
3133
|
Button,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liner-fe/prism",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"dependencies": {
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"react-dom": "^19.1.0",
|
|
18
18
|
"jotai": "2.18.0",
|
|
19
19
|
"vaul": "1.1.2",
|
|
20
|
-
"@liner-fe/design-token": "^3.0.
|
|
21
|
-
"@liner-fe/
|
|
22
|
-
"@liner-fe/
|
|
23
|
-
"@liner-fe/
|
|
20
|
+
"@liner-fe/design-token": "^3.0.5",
|
|
21
|
+
"@liner-fe/icon": "^2.0.23",
|
|
22
|
+
"@liner-fe/illust": "^1.0.1",
|
|
23
|
+
"@liner-fe/design-token-primitive": "^0.2.50"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@chromatic-com/storybook": "^1.5.0",
|