diff --git a/src/RadialProgress/RadialProgress.stories.tsx b/src/RadialProgress/RadialProgress.stories.tsx index 20667a5c..1a7da8c2 100644 --- a/src/RadialProgress/RadialProgress.stories.tsx +++ b/src/RadialProgress/RadialProgress.stories.tsx @@ -8,10 +8,33 @@ export default { component: RadialProgress, } as Meta -export const Default: Story = (args) => { +const Template: Story = (args) => { return {args.value}% } +export const Default = Template.bind({}) Default.args = { value: 75, } + +export const CustomColor = Template.bind({}) +CustomColor.args = { + value: 75, + color: 'primary' +} + +export const BackgroundColor = Template.bind({}) +BackgroundColor.args = { + value: 75, + className: 'bg-primary text-primary-content border-4 border-primary' +} + +export const CustomSizeAndThickness: Story = (args) => { + return ( +
+ 70% + 80% +
+ ) +} +CustomSizeAndThickness.args = {} \ No newline at end of file diff --git a/src/RadialProgress/RadialProgress.tsx b/src/RadialProgress/RadialProgress.tsx index c143e307..75bb950f 100644 --- a/src/RadialProgress/RadialProgress.tsx +++ b/src/RadialProgress/RadialProgress.tsx @@ -1,19 +1,42 @@ import React, { forwardRef } from 'react' +import clsx from 'clsx' import { twMerge } from 'tailwind-merge' -import { IComponentBaseProps } from '../types' +import { ComponentColor, IComponentBaseProps } from '../types' export type RadialProgressProps = React.HTMLAttributes & IComponentBaseProps & { value: number + size?: string + thickness?: string + color?: ComponentColor } const RadialProgress = forwardRef( - ({ value, dataTheme, className, children, ...props }, ref): JSX.Element => { - const classes = twMerge('radial-progress', className) + ({ + value, + size = '4rem', + thickness = '4px', + color, + dataTheme, + className, + children, + ...props + }, ref): JSX.Element => { + const classes = twMerge( + 'radial-progress', + className, + clsx({ + [`text-${color}`]: color, + }) + ) const displayedValue = Math.min(100, Math.max(0, value)) - const progressStyle: Record = { '--value': displayedValue } + const progressStyle: Record = { + '--value': displayedValue, + '--size': size, + '--thickness': thickness, + } return (