diff --git a/app/client/packages/design-system/widgets/src/components/Checkbox/chromatic/Checkbox.chromatic.stories.tsx b/app/client/packages/design-system/widgets/src/components/Checkbox/chromatic/Checkbox.chromatic.stories.tsx index f2a9def2a6..66f7a53573 100644 --- a/app/client/packages/design-system/widgets/src/components/Checkbox/chromatic/Checkbox.chromatic.stories.tsx +++ b/app/client/packages/design-system/widgets/src/components/Checkbox/chromatic/Checkbox.chromatic.stories.tsx @@ -28,9 +28,12 @@ export const LightMode: Story = { ))} - + Readonly + + Is Required + ), }; diff --git a/app/client/packages/design-system/widgets/src/components/Checkbox/src/Checkbox.tsx b/app/client/packages/design-system/widgets/src/components/Checkbox/src/Checkbox.tsx index 0cd0ebb4a2..df5cea5d67 100644 --- a/app/client/packages/design-system/widgets/src/components/Checkbox/src/Checkbox.tsx +++ b/app/client/packages/design-system/widgets/src/components/Checkbox/src/Checkbox.tsx @@ -25,7 +25,19 @@ const _Checkbox = (props: CheckboxProps, ref: HeadlessCheckboxRef) => { inlineLabelStyles["inline-label"], )} > - {Boolean(children) && {children}} + {Boolean(children) && ( + <> + {children} + {Boolean(props.isRequired) && ( + + * + + )} + + )} ); }; diff --git a/app/client/packages/design-system/widgets/src/components/Checkbox/src/styles.module.css b/app/client/packages/design-system/widgets/src/components/Checkbox/src/styles.module.css index 06da0adfa5..7cb25ebd87 100644 --- a/app/client/packages/design-system/widgets/src/components/Checkbox/src/styles.module.css +++ b/app/client/packages/design-system/widgets/src/components/Checkbox/src/styles.module.css @@ -30,6 +30,11 @@ --checkbox-border-color: var(--color-bd-neutral-hover); } + & [data-inline-label-necessity-indicator-icon] { + color: var(--color-fg-negative); + margin-inline-start: var(--inner-spacing-1); + } + /** * ---------------------------------------------------------------------------- * LABEL POSITION @@ -86,10 +91,10 @@ } /** - * ---------------------------------------------------------------------------- - * ERROR ( INVALID ) - *----------------------------------------------------------------------------- - */ + * ---------------------------------------------------------------------------- + * ERROR ( INVALID ) + *----------------------------------------------------------------------------- + */ &[data-invalid] [data-icon] { --checkbox-border-color: var(--color-bd-negative); } diff --git a/app/client/packages/design-system/widgets/src/components/Checkbox/stories/Checkbox.stories.tsx b/app/client/packages/design-system/widgets/src/components/Checkbox/stories/Checkbox.stories.tsx index 576cbadf75..18a8a856e1 100644 --- a/app/client/packages/design-system/widgets/src/components/Checkbox/stories/Checkbox.stories.tsx +++ b/app/client/packages/design-system/widgets/src/components/Checkbox/stories/Checkbox.stories.tsx @@ -64,3 +64,11 @@ export const CustomIcon: Story = { ), }; + +export const IsRequired: Story = { + render: () => ( + + Required + + ), +}; diff --git a/app/client/packages/design-system/widgets/src/styles/src/field.module.css b/app/client/packages/design-system/widgets/src/styles/src/field.module.css index d1cbd6944a..59cca9f620 100644 --- a/app/client/packages/design-system/widgets/src/styles/src/field.module.css +++ b/app/client/packages/design-system/widgets/src/styles/src/field.module.css @@ -41,7 +41,7 @@ */ & [data-field-necessity-indicator-icon] { color: var(--color-fg-negative); - margin-left: var(--inner-spacing-1); + margin-inline-start: var(--inner-spacing-1); } /**