{"version":3,"file":"stepper.types.mjs","names":[],"sources":["../../../../package/common/stepper/stepper.types.ts"],"sourcesContent":["import type React from 'react';\nimport type { IconContent } from '../types/icon.types';\nimport type { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types';\nimport type { ColorValue } from '../themeProvider/color.types';\n\n/** Direction the steps run in. */\nexport enum StepperOrientation {\n  Horizontal = 'horizontal',\n  Vertical = 'vertical',\n}\n\n/** How the step markers are drawn. */\nexport enum StepperStyleType {\n  /** Numbered markers, filled solid on completion. The default. */\n  Filled = 'filled',\n  /** Numbered markers that stay ringed when completed, with a check in the colour. */\n  Outlined = 'outlined',\n  /** Minimal dots without numbers, for a compact onboarding or carousel style. */\n  Dots = 'dots',\n}\n\n/**\n * Which step bodies (`step.content`) are expanded. Only affects vertical\n * steppers with per-step `content`; ignored otherwise.\n */\nexport enum StepperCollapse {\n  /** Every step body stays expanded. */\n  None = 'none',\n  /** Only the current step's body is expanded (classic vertical wizard). */\n  ActiveOnly = 'activeOnly',\n  /** Completed (past) step bodies collapse; current and upcoming stay expanded. */\n  Completed = 'completed',\n}\n\n/**\n * Where the label block sits relative to the marker. Horizontal steppers use\n * `Top`/`Bottom`; vertical steppers use `Left`/`Right`. An out-of-orientation\n * value falls back to that orientation's default.\n */\nexport enum StepperLabelPlacement {\n  Top = 'top',\n  Bottom = 'bottom',\n  Left = 'left',\n  Right = 'right',\n}\n\nexport type StepperSlots =\n  | 'root'\n  | 'entry'\n  | 'entryNumber'\n  | 'entryLabel'\n  | 'connector'\n  | 'description'\n  | 'content'\n  | 'optional'\n  | 'icon';\n\nexport interface StepperLabels {\n  /** Hint under the label of a step with `optional: true`. */\n  optional?: string;\n  /** Status of a completed step, read out by screen readers. */\n  completed?: string;\n  /** Status of a step not reached yet, read out by screen readers. */\n  notCompleted?: string;\n  /** Status of a step with `error`, read out by screen readers. */\n  error?: string;\n}\n\nexport interface StepperStep {\n  /** Primary label for the step. */\n  label: React.ReactNode;\n  /** Secondary line shown under the label. */\n  description?: React.ReactNode;\n  /** Collapsible body content, rendered under the label (vertical only). */\n  content?: React.ReactNode;\n  /** Icon shown in the marker instead of the step number — a FontAwesome icon or any node. */\n  icon?: IconContent;\n  /** Marks the step as errored, drawing its marker in the theme's `--error-color`. */\n  error?: boolean;\n  /** `true` renders the `optional` label as a hint; a node renders custom hint text. */\n  optional?: boolean | React.ReactNode;\n  /** Disables this step: never clickable, dimmed. */\n  disabled?: boolean;\n}\n\nexport interface StepperProps extends HtmlProps<HTMLOListElement> {\n  steps?: StepperStep[];\n  /** Zero-based index of the current step. `steps.length` marks every step completed. */\n  currentStep?: number;\n  /** Direction the steps run in (default `Horizontal`). */\n  orientation?: StepperOrientation;\n  onStepClicked?: ((index: number) => void) | null;\n  /** Allow clicking any step, not just completed ones. */\n  nonLinear?: boolean;\n  /** Hide each step's label, description and hint visually. Screen readers still read them. */\n  hideLabels?: boolean;\n  /** How the markers are drawn (default `Filled`). */\n  styleType?: StepperStyleType;\n  /** A `ThemeColor` (default `Primary`) or any CSS colour, such as `'var(--brand)'`. */\n  color?: ColorValue;\n  /** Which step bodies are expanded. Vertical `content` only (default `None`). */\n  collapse?: StepperCollapse;\n  /** Label position relative to the marker (default: horizontal `Bottom`, vertical `Right`). */\n  labelPlacement?: StepperLabelPlacement;\n  labels?: StepperLabels;\n  className?: string;\n  style?: React.CSSProperties;\n  classNames?: SlotClassNames<StepperSlots>;\n  styles?: SlotStyles<StepperSlots>;\n}\n"],"mappings":"aAMA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,WAAA,aACA,EAAA,SAAA,YACF,EAAA,CAAA,CAAA,EAGY,EAAL,SAAA,EAAA,OAEL,GAAA,OAAA,SAEA,EAAA,SAAA,WAEA,EAAA,KAAA,QACF,EAAA,CAAA,CAAA,EAMY,EAAL,SAAA,EAAA,OAEL,GAAA,KAAA,OAEA,EAAA,WAAA,aAEA,EAAA,UAAA,aACF,EAAA,CAAA,CAAA,EAOY,EAAL,SAAA,EAAA,OACL,GAAA,IAAA,MACA,EAAA,OAAA,SACA,EAAA,KAAA,OACA,EAAA,MAAA,SACF,EAAA,CAAA,CAAA"}