diff --git a/packages/frontend/component/src/ui/radio/radio.stories.tsx b/packages/frontend/component/src/ui/radio/radio.stories.tsx index 9f589fca1b..9392d93085 100644 --- a/packages/frontend/component/src/ui/radio/radio.stories.tsx +++ b/packages/frontend/component/src/ui/radio/radio.stories.tsx @@ -1,5 +1,6 @@ import { AiIcon, FrameIcon, TocIcon, TodayIcon } from '@blocksuite/icons/rc'; import { cssVar } from '@toeverything/theme'; +import { cssVarV2 } from '@toeverything/theme/v2'; import { useState } from 'react'; import { ResizePanel } from '../resize-panel/resize-panel'; @@ -147,3 +148,31 @@ export const CustomizeActiveStyle = () => { /> ); }; + +const shapes = [ + 'Square', + 'Ellipse', + 'Diamond', + 'Triangle', + 'Rounded ', + 'Rectangle', +]; +export const ShapeSelectorDemo = () => { + const [shape, setShape] = useState(shapes[0]); + return ( + + ); +}; diff --git a/packages/frontend/component/src/ui/radio/radio.tsx b/packages/frontend/component/src/ui/radio/radio.tsx index f445b53817..db73cbbbad 100644 --- a/packages/frontend/component/src/ui/radio/radio.tsx +++ b/packages/frontend/component/src/ui/radio/radio.tsx @@ -69,6 +69,7 @@ export const RadioGroup = memo(function RadioGroup({ items, value, width, + className, style, padding = 2, gap = 4, @@ -78,6 +79,8 @@ export const RadioGroup = memo(function RadioGroup({ animationEasing = 'cubic-bezier(.18,.22,0,1)', activeItemClassName, activeItemStyle, + indicatorClassName, + indicatorStyle, iconMode, onChange, }: RadioProps) { @@ -152,7 +155,7 @@ export const RadioGroup = memo(function RadioGroup({ @@ -179,8 +182,9 @@ export const RadioGroup = memo(function RadioGroup({ > {customRender?.(item, index) ?? item.label ?? item.value} diff --git a/packages/frontend/component/src/ui/radio/types.ts b/packages/frontend/component/src/ui/radio/types.ts index 1d30f63220..ca538be9ce 100644 --- a/packages/frontend/component/src/ui/radio/types.ts +++ b/packages/frontend/component/src/ui/radio/types.ts @@ -47,6 +47,10 @@ export interface RadioProps extends RadioGroupItemProps { activeItemClassName?: string; /** Customize active item's style */ activeItemStyle?: CSSProperties; + /** Customize indicator's className */ + indicatorClassName?: string; + /** Customize indicator's style */ + indicatorStyle?: CSSProperties; /** * This prop is used to use a different color scheme */