diff --git a/.changeset/young-cats-notice.md b/.changeset/young-cats-notice.md new file mode 100644 index 0000000..d0c47fc --- /dev/null +++ b/.changeset/young-cats-notice.md @@ -0,0 +1,5 @@ +--- +"@openfun/cunningham-react": minor +--- + +add the possibility to hide select label diff --git a/packages/react/src/components/Forms/LabelledBox/index.scss b/packages/react/src/components/Forms/LabelledBox/index.scss index 4d94d19..f56587c 100644 --- a/packages/react/src/components/Forms/LabelledBox/index.scss +++ b/packages/react/src/components/Forms/LabelledBox/index.scss @@ -28,4 +28,14 @@ padding: 1.5rem 0 0 0; display: flex; } + + &--no-label { + display: flex; + align-items: center; + + .labelled-box__children { + padding-top: 0; + flex-grow: 1; + } + } } diff --git a/packages/react/src/components/Forms/LabelledBox/index.stories.tsx b/packages/react/src/components/Forms/LabelledBox/index.stories.tsx index f73a3f7..ccdf783 100644 --- a/packages/react/src/components/Forms/LabelledBox/index.stories.tsx +++ b/packages/react/src/components/Forms/LabelledBox/index.stories.tsx @@ -7,17 +7,43 @@ export default { component: LabelledBox, } as Meta; -const Template: StoryFn = (args) => ( -
- -
-); +const DebugContainer = ({ children }: React.PropsWithChildren<{}>) => { + const style: React.CSSProperties = { + height: "3.5rem", + // A grid background + backgroundImage: `linear-gradient(to right, #eee 1px, transparent 1px), linear-gradient(to bottom, #eee 1px, transparent 1px)`, + border: "solid #eee", + backgroundSize: "1rem 1rem", + }; + return
{children}
; +}; +const Template: StoryFn = (args) => ( + + + +); export const Default = { render: Template, - args: { label: "Your label here", children: Hello world, }, }; + +export const LabelAsPlaceholder = { + render: Template, + args: { + label: "Your label here", + labelAsPlaceholder: true, + }, +}; + +export const NoLabel = { + render: Template, + args: { + label: "Your label here", + hideLabel: true, + children: Hello world, + }, +}; diff --git a/packages/react/src/components/Forms/LabelledBox/index.tsx b/packages/react/src/components/Forms/LabelledBox/index.tsx index 5079ee9..22e92fe 100644 --- a/packages/react/src/components/Forms/LabelledBox/index.tsx +++ b/packages/react/src/components/Forms/LabelledBox/index.tsx @@ -1,10 +1,12 @@ import React, { PropsWithChildren } from "react"; +import classNames from "classnames"; export interface Props extends PropsWithChildren { label?: string; labelAsPlaceholder?: boolean; htmlFor?: string; labelId?: string; + hideLabel?: boolean; } export const LabelledBox = ({ @@ -13,12 +15,20 @@ export const LabelledBox = ({ labelAsPlaceholder, htmlFor, labelId, + hideLabel, }: Props) => { return ( -
+
{label && (