import { OmitInternalProps } from '../../type-utils/omit-props'; import { HTMLChakraProps, SlotRecipeProps } from '@chakra-ui/react/styled-system'; import { AriaProgressBarProps } from 'react-aria'; type ProgressBarRecipeProps = { /** * Size variant of the progress bar * @default "md" */ size?: SlotRecipeProps<"nimbusProgressBar">["size"]; /** * Whether the progress bar represents an active, ongoing process. * Set to `true` for dynamic progress (e.g., file uploads, downloads). * Set to `false` for static progress indicators (e.g., step 3 of 5 in a wizard). * @default true */ isDynamic?: SlotRecipeProps<"nimbusProgressBar">["isDynamic"]; /** * Whether the progress is indeterminate (unknown duration) * @default false */ isIndeterminate?: SlotRecipeProps<"nimbusProgressBar">["isIndeterminate"]; /** * Visual style variant of the progress bar * @default "solid" */ variant?: SlotRecipeProps<"nimbusProgressBar">["variant"]; /** * Layout configuration for label and value positioning * @default "stacked" */ layout?: SlotRecipeProps<"nimbusProgressBar">["layout"]; }; export type ProgressBarRootSlotProps = Omit, "translate"> & Omit & AriaProgressBarProps & { [key: `data-${string}`]: string; translate?: "yes" | "no"; }; export type ProgressBarTrackSlotProps = HTMLChakraProps<"div">; export type ProgressBarFillSlotProps = HTMLChakraProps<"div">; export type ProgressBarLabelSlotProps = HTMLChakraProps<"span">; export type ProgressBarValueSlotProps = HTMLChakraProps<"span">; export type ProgressBarProps = OmitInternalProps & { /** * Ref forwarding to the root element */ ref?: React.Ref; /** * Format options for the progress bar value display * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat * @default { style: "percent" } */ formatOptions?: ProgressBarRootSlotProps["formatOptions"]; }; export {};