/*! Strand UI | MIT License | dillingerstaffing.com */ import type { JSX } from "preact"; import { forwardRef } from "preact/compat"; import { cx, styled } from "../../internal/index.js"; /** Proportional bars visualising the container width tiers. */ export const ContainerScale = styled("div", "strand-container-scale", "ContainerScale"); export const ContainerScaleRow = styled("div", "strand-container-scale__row", "ContainerScaleRow"); export const ContainerScaleLabel = styled("div", "strand-container-scale__label", "ContainerScaleLabel"); export const ContainerScaleCaption = styled("span", "strand-container-scale__caption", "ContainerScaleCaption"); export const ContainerScaleTrack = styled("div", "strand-container-scale__track", "ContainerScaleTrack"); export const ContainerScalePx = styled("span", "strand-container-scale__px", "ContainerScalePx"); export const ContainerScaleAxis = styled("div", "strand-container-scale__axis", "ContainerScaleAxis"); export type ContainerScaleProps = JSX.HTMLAttributes; export type ContainerScaleRowProps = JSX.HTMLAttributes; export type ContainerScaleLabelProps = JSX.HTMLAttributes; export type ContainerScaleCaptionProps = JSX.HTMLAttributes; export type ContainerScaleTrackProps = JSX.HTMLAttributes; export type ContainerScalePxProps = JSX.HTMLAttributes; export type ContainerScaleAxisProps = JSX.HTMLAttributes; export interface ContainerScaleBarProps extends JSX.HTMLAttributes { /** Bar width, e.g. "60%" or "640px". */ width?: string; } /** A bar whose width is the tier it represents. */ export const ContainerScaleBar = forwardRef( ({ width, style, className = "", children, ...rest }, ref) => (
) }} {...rest} > {children}
), ); ContainerScaleBar.displayName = "ContainerScaleBar";