import { AxisKey } from '@graphysdk/viz-engine'; import { Command } from '@graphysdk/viz-engine'; import { ComponentType } from 'react'; import { DispatchOptions } from '@graphysdk/viz-engine'; import { Edge } from '@graphysdk/viz-engine'; import { EdgeSizes } from '@graphysdk/viz-engine'; import { EditorPanel } from './editable/panel/editor-panel'; import { EditTarget } from '@graphysdk/viz-engine'; import { FormattedAxis } from '@graphysdk/viz-engine'; import { FormattedHeadline } from '@graphysdk/viz-engine'; import { FormattedLegend } from '@graphysdk/viz-engine'; import { GraphLayout } from '@graphysdk/viz-engine'; import { HeadlineMeasurer } from '@graphysdk/viz-engine'; import { IntroStaggerOrder } from '@graphysdk/viz-engine'; import { JSX } from 'react/jsx-runtime'; import { LegendPosition } from '@graphysdk/viz-engine'; import { LineType } from '@graphysdk/viz-engine'; import { PANEL_ROOT_ATTRIBUTE } from './editable/panel/editor-panel'; import { PanelRootProps } from './editable/panel/editor-panel'; import { PanelRootProps as PanelRootProps_2 } from '../panel/editor-panel'; import { ReactNode } from 'react'; import { Rect } from '@graphysdk/viz-engine'; import { ResolvedHeadlineSize } from '@graphysdk/viz-engine'; import { Scene } from '@graphysdk/viz-engine'; import { SourceContent } from '@graphysdk/viz-engine'; import { TextContent } from '@graphysdk/viz-engine'; import { TextMeasurer } from '@graphysdk/viz-engine'; import { TextStyle } from '@graphysdk/viz-engine'; import { TooltipContent } from '@graphysdk/viz-engine'; /** * How round the chart's frame is, and how it pushes back the marks a highlight leaves out. The * highlight row is inert until something adds a highlight. */ export declare const AppearanceSection: ({ title, layout, preview }: OverridableSectionProps) => JSX.Element | null; /** Both axes, each switched on and off from within its own section. */ export declare const AxesPanel: ({ children, ...rootProps }: PanelProps) => JSX.Element; /** * Props for the AxisLabel slot — the axis title of every axis (e.g. "Revenue"), overridable via * `slots.AxisLabel`. `labelRects` are SVG-local, keyed by edge. The tick band is a separate slot — see * `AxisTicks`. */ declare interface AxisLabelSlotProps { formattedAxes: FormattedAxis[]; labelRects: Partial>; } /** * One axis, and the scale it carries. * * `x` and `y` stay as mapped however the chart is drawn: a flipped coord system turns a column chart * on its side without moving the value scale off y. */ export declare const AxisSection: ({ axis, title, layout, preview }: AxisSectionProps) => JSX.Element | null; export declare interface AxisSectionProps extends OverridableSectionProps { /** Which axis this section edits. */ axis: AxisKey; } /** * Props for the AxisTicks slot — the tick lines and tick labels of every axis, overridable via * `slots.AxisTicks`. `tickRects` are SVG-local, keyed by edge. The axis title is a separate slot — see * `AxisLabel`. */ declare interface AxisTicksSlotProps { formattedAxes: FormattedAxis[]; tickRects: Partial>; } /** * A bar's own shape: how thick it is and how round its corners are. * * No gap row: painted width is `step × (1 - scalePadding) × width / seriesCount`, so band padding and * this fraction shrink the group the same way. */ export declare const BarSection: ({ title, layout, preview }: OverridableSectionProps) => JSX.Element | null; /** * How the badge paints at the current frame size: * - `full` — glyph + "Made with Graphy" pill * - `mini` — circular glyph capsule (also the under-200 px ladder step) * - `hidden` — flag off, or frame below the minimum footprint */ declare type BrandMarkVisual = 'full' | 'mini' | 'hidden'; /** * A press that performs an edit rather than sets a value. * * Every press is its own undo entry, so there is no transient run to commit here — a button has no * gesture to hold open the way a drag or a run of keystrokes does. */ export declare const Button: ({ label, icon, onClick, variant, isDisabled, ariaLabel, ariaLabelledBy, id, }: ButtonControlProps) => JSX.Element; declare interface ButtonBaseProps extends ControlBaseProps { onClick: () => void; /** * `default` is a row: the icon before the label, on the section's own width. `tile` stacks the * icon above the label in a taller cell, for a grid of add-affordances read as pictures. */ variant?: 'default' | 'tile'; } /** * What the button shows, as a choice rather than two independent flags. * * A button with neither a label nor an icon is invisible and unnameable, and two optional props * make that the default rather than an error. Splitting the cases closes it, and closes the one * beside it: an icon standing alone is the only thing on the button, so it carries the accessible * name and `ariaLabel` stops being optional. */ declare type ButtonContentProps = { label: string; icon?: ReactNode; } | { label?: undefined; icon: ReactNode; ariaLabel: string; }; /** * An action rather than a value: pressing it is the whole gesture, so there is nothing to read * back. Sections use it where an edit adds or removes something instead of changing a setting. */ export declare type ButtonControlProps = ButtonBaseProps & ButtonContentProps; /** * Each tile writes a whole annotation on one press: the spec cannot hold an annotation with no * position, so there is no draw-it-on-the-chart gesture. */ export declare const CalloutsSection: ({ title, layout, preview }: OverridableSectionProps) => JSX.Element | null; /** * Whether the chart shows its caption, and what it says. * * Hiding it leaves the text intact, so it comes back without being retyped. It is also editable in * place on the chart; the field here is the second way in, not the only one. */ export declare const CaptionSection: ({ title, layout, preview }: OverridableSectionProps) => JSX.Element | null; /** Every phrase a chart can say. The editing surface adds its own — see `editable/i18n/editor-i18n`. */ declare type ChartPhrases = typeof EN_GB; /** * Which arrangement a combo's halves take: bars under the line, or lines throughout. Shown only for a * chart that is already a combo — the type picker is what makes one. */ export declare const ComboSection: ({ title, layout, preview }: OverridableSectionProps) => JSX.Element | null; /** * A control where one gesture can produce a run of changes — a drag, a burst of typing, a held * arrow key. * * `onChange` fires throughout the gesture and a section dispatches it transiently; `onCommit` fires * once the gesture ends, so a whole drag collapses into one undo entry rather * than one per frame. A control that only ever fires `onChange` still edits correctly; it just * leaves the run open for the next edit to close. */ export declare interface ContinuousControlProps extends ControlBaseProps { value: Value; onChange: (value: Value) => void; onCommit?: () => void; } /** Props every control shares. */ export declare interface ControlBaseProps { isDisabled?: boolean; /** Required unless the control is labelled by a section row, which passes `ariaLabelledBy` instead. */ ariaLabel?: string; ariaLabelledBy?: string; /** * Put on the element a row's `