import { type ColorTokens, type LayoutStyle } from "../../style/index.js"; import { type IconGlyphProps, type IconName, type IconCategory } from "./icon.glyphs.js"; /** * Kit-internal Icon paint channel, kept OFF the published prop surface (hidden from * the generated prop table via OMIT_MEMBER_INTERFACES in tools/docgen/extract-props). * This is the raw-string escape hatch the "No styling escape hatches" directive bans * from the public API; it exists only so kit composites can tint a glyph to match a * computed color they already own (e.g. a `Chip` tinting its remove "×" to its label * color). Consumer-facing code picks hues with the semantic color booleans instead. */ export interface IconInternalProps { /** * An explicit glyph color (a theme or palette value), for the hues the semantic * color booleans do not name. The semantic booleans take precedence; this replaces * the default `foreground` when none is set. Kit-internal only. */ color?: string; } export interface IconProps extends IconGlyphProps, IconInternalProps { /** Rotate the glyph as an Argus disclosure indicator. */ disclosure?: boolean; /** Open state of a disclosure indicator. */ expanded?: boolean; /** Strong action/link stroke from the Argus reference. */ heavyStroke?: boolean; /** Standard emphasized metadata stroke. */ boldStroke?: boolean; /** The medium toolbar stroke. */ mediumStroke?: boolean; /** The fine navigation stroke. */ regularStroke?: boolean; primary?: boolean; /** Contrast color for a glyph on a primary surface (e.g. a primary button). */ primaryForeground?: boolean; destructive?: boolean; /** Positive/green status (matches Alert's success tone, scheme-aware). */ success?: boolean; /** Caution/amber status (the warning token, scheme-aware; matches Alert/Toast warning). */ warning?: boolean; /** The third ink (`subtle-foreground`, the hand-off's `--tx3`): a glyph that recedes. */ muted?: boolean; /** The second ink (`muted-foreground`, the hand-off's `--tx2`), as Typography's `subtle`. */ subtle?: boolean; /** * The glyph centred in a square cell that fills its parent (a Grid tile of a glyph * gallery) at a 10 px corner. On the web a hovered cell takes the accent's soft wash and * its glyph the accent ink. */ cell?: boolean; size?: number; /** * Accessible name for a MEANINGFUL standalone icon (one that conveys * information not repeated in adjacent text, e.g. an icon-only button's glyph). * Marks the glyph `role="img"` with this label on web and native. */ accessibilityLabel?: string; /** * Mark a DECORATIVE/ornamental glyph (one paired with a text label, a separator * chevron, an empty-state illustration) so assistive tech skips it. Hides it via * aria-hidden on web and importantForAccessibility on native. */ decorative?: boolean; /** E2E hook forwarded to the root element. */ testID?: string; /** Composition within a parent only, never a restyle hook and never a width: the parent layout container provides the bounds. */ style?: LayoutStyle; } export type { IconName, IconCategory } from "./icon.glyphs.js"; /** * Every Canvas glyph in gallery order (alphabetical): its prop `key` (an `IconName`), its * typed `label` and its `category` (one of `ICON_CATEGORIES`), for an icon picker or * catalog. Render one with ``. */ export declare const ICON_NAMES: readonly { readonly key: IconName; readonly label: string; readonly category: IconCategory; }[]; /** The glyph categories in menu order, for filtering `ICON_NAMES` by `category`. */ export declare const ICON_CATEGORIES: readonly IconCategory[]; export declare function nameOf(p: IconProps): string; export declare function strokeOf(p: IconProps, tokens: ColorTokens, ink?: string): string; export declare function strokeWidthOf(p: IconProps): number; /** An outline glyph from the kit's icon set, sized and colored by props. */ export declare function Icon(props: IconProps): import("react").JSX.Element; //# sourceMappingURL=icon.shared.d.ts.map