diff --git a/docs/components/example/index.json b/docs/components/example/index.json index 0f2509a64..7917f551e 100644 --- a/docs/components/example/index.json +++ b/docs/components/example/index.json @@ -106,10 +106,10 @@ "inline-banner-text-only": "import { InlineBanner, InlineBannerLabel } from \"seed-design/ui/inline-banner\";\n\nexport default function InlineBannerTextOnly() {\n return (\n \n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", "inline-banner-warning-solid": "import { InlineBanner, InlineBannerLabel } from \"seed-design/ui/inline-banner\";\nimport { IconExclamationmarkCircleFill } from \"@daangn/react-monochrome-icon\";\n\nexport default function InlineBannerWarningSolid() {\n return (\n }>\n 사업자 정보를 등록해주세요.\n \n );\n}", "inline-banner-warning-weak": "import { InlineBanner, InlineBannerLabel } from \"seed-design/ui/inline-banner\";\nimport { IconExclamationmarkCircleFill } from \"@daangn/react-monochrome-icon\";\n\nexport default function InlineBannerWarningWeak() {\n return (\n }>\n 사업자 정보를 등록해주세요.\n \n );\n}", - "inline-banner-with-all": "import { IconILowercaseSerifCircleFill } from \"@daangn/react-monochrome-icon\";\nimport {\n InlineBanner,\n InlineBannerLabel,\n InlineBannerLink,\n InlineBannerTitle,\n} from \"seed-design/ui/inline-banner\";\n\nexport default function InlineBannerWithAll() {\n return (\n }\n endElement={ {}}>자세히 보기}\n >\n 예약\n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", + "inline-banner-with-all": "import { IconILowercaseSerifCircleFill } from \"@daangn/react-monochrome-icon\";\nimport {\n InlineBanner,\n InlineBannerLabel,\n InlineBannerLink,\n InlineBannerTitle,\n} from \"seed-design/ui/inline-banner\";\n\nexport default function InlineBannerWithAll() {\n return (\n }\n suffixElement={ {}}>자세히 보기}\n >\n 예약\n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", "inline-banner-with-icon": "import { InlineBanner, InlineBannerLabel } from \"seed-design/ui/inline-banner\";\nimport { IconILowercaseSerifCircleFill } from \"@daangn/react-monochrome-icon\";\n\nexport default function InlineBannerWithIcon() {\n return (\n }>\n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", - "inline-banner-with-link-as-child": "import { InlineBanner, InlineBannerLabel, InlineBannerLink } from \"seed-design/ui/inline-banner\";\n\nexport default function InlineBannerWithLinkAsChild() {\n return (\n \n \n 자세히 보기\n \n \n }\n >\n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", - "inline-banner-with-link": "import { InlineBanner, InlineBannerLabel, InlineBannerLink } from \"seed-design/ui/inline-banner\";\n\nexport default function InlineBannerWithLink() {\n return (\n {}}>자세히 보기}\n >\n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", + "inline-banner-with-link-as-child": "import { InlineBanner, InlineBannerLabel, InlineBannerLink } from \"seed-design/ui/inline-banner\";\n\nexport default function InlineBannerWithLinkAsChild() {\n return (\n \n \n 자세히 보기\n \n \n }\n >\n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", + "inline-banner-with-link": "import { InlineBanner, InlineBannerLabel, InlineBannerLink } from \"seed-design/ui/inline-banner\";\n\nexport default function InlineBannerWithLink() {\n return (\n {}}>자세히 보기}\n >\n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", "inline-banner-with-title-text": "import { InlineBanner, InlineBannerLabel, InlineBannerTitle } from \"seed-design/ui/inline-banner\";\n\nexport default function InlineBannerWithTitleText() {\n return (\n \n 예약\n 다른 사람과 예약된 물품이 있어요.\n \n );\n}", "segmented-control-disabled": "import { SegmentedControl, Segment } from \"seed-design/ui/segmented-control\";\n\nexport default function SegmentedControlPreview() {\n return (\n \n Hot\n New\n \n );\n}", "segmented-control-fixed-width": "import { SegmentedControl, Segment } from \"seed-design/ui/segmented-control\";\n\nexport default function SegmentedControlFixedWidth() {\n return (\n \n New\n Hot\n \n );\n}", diff --git a/docs/components/example/inline-banner-with-all.tsx b/docs/components/example/inline-banner-with-all.tsx index 8ed780194..a49918155 100644 --- a/docs/components/example/inline-banner-with-all.tsx +++ b/docs/components/example/inline-banner-with-all.tsx @@ -13,7 +13,7 @@ export default function InlineBannerWithAll() { } - endElement={ {}}>자세히 보기} + suffixElement={ {}}>자세히 보기} > 예약 다른 사람과 예약된 물품이 있어요. diff --git a/docs/components/example/inline-banner-with-link-as-child.tsx b/docs/components/example/inline-banner-with-link-as-child.tsx index be2d6645d..b9c397e9e 100644 --- a/docs/components/example/inline-banner-with-link-as-child.tsx +++ b/docs/components/example/inline-banner-with-link-as-child.tsx @@ -6,7 +6,7 @@ export default function InlineBannerWithLinkAsChild() { return ( 자세히 보기 diff --git a/docs/components/example/inline-banner-with-link.tsx b/docs/components/example/inline-banner-with-link.tsx index 6e414c3ff..6b393dd11 100644 --- a/docs/components/example/inline-banner-with-link.tsx +++ b/docs/components/example/inline-banner-with-link.tsx @@ -6,7 +6,7 @@ export default function InlineBannerWithLink() { return ( {}}>자세히 보기} + suffixElement={ {}}>자세히 보기} > 다른 사람과 예약된 물품이 있어요. diff --git a/docs/public/__registry__/ui/inline-banner.json b/docs/public/__registry__/ui/inline-banner.json index e9e835183..0dec4bb77 100644 --- a/docs/public/__registry__/ui/inline-banner.json +++ b/docs/public/__registry__/ui/inline-banner.json @@ -7,7 +7,7 @@ { "name": "inline-banner.tsx", "type": "ui", - "content": "\"use client\";\n\nimport \"@seed-design/stylesheet/inlineBanner.css\";\n\nimport * as React from \"react\";\nimport clsx from \"clsx\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n inlineBanner,\n type InlineBannerVariantProps,\n} from \"@seed-design/recipe/inlineBanner\";\n\nconst InlineBannerContext = React.createContext<{\n variantProps: InlineBannerVariantProps;\n} | null>(null);\n\nconst useInlineBannerContext = () => {\n const context = React.useContext(InlineBannerContext);\n if (!context)\n throw new Error(\n \"Parts of InlineBanner cannot be rendered outside the InlineBanner\",\n );\n\n return context;\n};\n\nexport const InlineBannerTitle = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes\n>(({ children, className, ...otherProps }, ref) => {\n const {\n variantProps: { variant },\n } = useInlineBannerContext();\n const classNames = inlineBanner({ variant });\n\n return (\n <>\n \n {children}\n \n \n {\" \"}\n \n \n );\n});\nInlineBannerTitle.displayName = \"InlineBannerTitle\";\n\nexport const InlineBannerLabel = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes\n>(({ children, className, ...otherProps }, ref) => {\n const {\n variantProps: { variant },\n } = useInlineBannerContext();\n const classNames = inlineBanner({ variant });\n\n return (\n \n {children}\n \n );\n});\nInlineBannerLabel.displayName = \"InlineBannerLabel\";\n\nexport const InlineBannerLink = React.forwardRef<\n HTMLButtonElement,\n React.HTMLAttributes & {\n /**\n * @default false\n */\n asChild?: boolean;\n }\n>(({ asChild = false, children, className, ...otherProps }, ref) => {\n const {\n variantProps: { variant },\n } = useInlineBannerContext();\n const classNames = inlineBanner({ variant });\n\n const Comp = asChild ? Slot : \"button\";\n\n return (\n \n {children}\n \n );\n});\nInlineBannerLink.displayName = \"InlineBannerLink\";\n\nexport interface InlineBannerProps extends InlineBannerVariantProps {\n icon?: React.ReactNode;\n endElement?: React.ReactNode;\n}\n\ntype ReactInlineBannerProps = React.HTMLAttributes &\n InlineBannerProps;\n\nexport const InlineBanner = React.forwardRef<\n HTMLDivElement,\n ReactInlineBannerProps\n>(\n (\n {\n children,\n className,\n variant = \"neutralWeak\",\n icon,\n endElement,\n ...otherProps\n },\n ref,\n ) => {\n const classNames = inlineBanner({ variant });\n\n return (\n \n \n
\n {icon && {icon}}\n
{children}
\n
\n {endElement}\n
\n \n );\n },\n);\nInlineBanner.displayName = \"InlineBanner\";\n" + "content": "\"use client\";\n\nimport \"@seed-design/stylesheet/inlineBanner.css\";\n\nimport * as React from \"react\";\nimport clsx from \"clsx\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n inlineBanner,\n type InlineBannerVariantProps,\n} from \"@seed-design/recipe/inlineBanner\";\n\nconst InlineBannerContext = React.createContext<{\n variantProps: InlineBannerVariantProps;\n} | null>(null);\n\nconst useInlineBannerContext = () => {\n const context = React.useContext(InlineBannerContext);\n if (!context)\n throw new Error(\n \"Parts of InlineBanner cannot be rendered outside the InlineBanner\",\n );\n\n return context;\n};\n\nexport const InlineBannerTitle = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes\n>(({ children, className, ...otherProps }, ref) => {\n const {\n variantProps: { variant },\n } = useInlineBannerContext();\n const classNames = inlineBanner({ variant });\n\n return (\n <>\n \n {children}\n \n \n {\" \"}\n \n \n );\n});\nInlineBannerTitle.displayName = \"InlineBannerTitle\";\n\nexport const InlineBannerLabel = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes\n>(({ children, className, ...otherProps }, ref) => {\n const {\n variantProps: { variant },\n } = useInlineBannerContext();\n const classNames = inlineBanner({ variant });\n\n return (\n \n {children}\n \n );\n});\nInlineBannerLabel.displayName = \"InlineBannerLabel\";\n\nexport const InlineBannerLink = React.forwardRef<\n HTMLButtonElement,\n React.HTMLAttributes & {\n /**\n * @default false\n */\n asChild?: boolean;\n }\n>(({ asChild = false, children, className, ...otherProps }, ref) => {\n const {\n variantProps: { variant },\n } = useInlineBannerContext();\n const classNames = inlineBanner({ variant });\n\n const Comp = asChild ? Slot : \"button\";\n\n return (\n \n {children}\n \n );\n});\nInlineBannerLink.displayName = \"InlineBannerLink\";\n\nexport interface InlineBannerProps extends InlineBannerVariantProps {\n icon?: React.ReactNode;\n suffixElement?: React.ReactNode;\n}\n\ntype ReactInlineBannerProps = React.HTMLAttributes &\n InlineBannerProps;\n\nexport const InlineBanner = React.forwardRef<\n HTMLDivElement,\n ReactInlineBannerProps\n>(\n (\n {\n children,\n className,\n variant = \"neutralWeak\",\n icon,\n suffixElement,\n ...otherProps\n },\n ref,\n ) => {\n const classNames = inlineBanner({ variant });\n\n return (\n \n \n
\n {icon && {icon}}\n
{children}
\n
\n {suffixElement}\n
\n \n );\n },\n);\nInlineBanner.displayName = \"InlineBanner\";\n" } ] } \ No newline at end of file diff --git a/docs/registry/ui/inline-banner.tsx b/docs/registry/ui/inline-banner.tsx index a9bba3023..953dbf515 100644 --- a/docs/registry/ui/inline-banner.tsx +++ b/docs/registry/ui/inline-banner.tsx @@ -105,7 +105,7 @@ InlineBannerLink.displayName = "InlineBannerLink"; export interface InlineBannerProps extends InlineBannerVariantProps { icon?: React.ReactNode; - endElement?: React.ReactNode; + suffixElement?: React.ReactNode; } type ReactInlineBannerProps = React.HTMLAttributes & @@ -121,7 +121,7 @@ export const InlineBanner = React.forwardRef< className, variant = "neutralWeak", icon, - endElement, + suffixElement, ...otherProps }, ref, @@ -139,7 +139,7 @@ export const InlineBanner = React.forwardRef< {icon && {icon}}
{children}
- {endElement} + {suffixElement} ); diff --git a/docs/stories/InlineBanner.stories.tsx b/docs/stories/InlineBanner.stories.tsx index 3615753f1..a2b7cb9cc 100644 --- a/docs/stories/InlineBanner.stories.tsx +++ b/docs/stories/InlineBanner.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/react"; -import { InlineBanner, InlineBannerLabel, InlineBannerTitle } from "seed-design/ui/inline-banner"; +import { InlineBanner, InlineBannerLabel } from "seed-design/ui/inline-banner"; import { inlineBannerVariantMap } from "@seed-design/recipe/inlineBanner"; import { VariantTable } from "./components/variant-table";