@takeoff-ui/react-spar 0.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1352 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import { HTMLAttributes, ElementType, ComponentPropsWithoutRef, ReactNode, Ref } from 'react';
4
+ import { PolymorphicProps, AccordionProps as AccordionProps$1, AccordionItemProps as AccordionItemProps$1, AccordionHeaderProps as AccordionHeaderProps$1, AccordionContentProps as AccordionContentProps$1, ButtonProps as ButtonProps$1, CheckboxRenderProps as CheckboxRenderProps$1, CheckboxProps as CheckboxProps$1, DialogProps, DialogTriggerProps, DialogOverlayProps, DialogContentProps, DialogTitleProps, DialogCloseProps, FieldProps as FieldProps$1, FieldLabelProps as FieldLabelProps$1, FieldDescriptionProps as FieldDescriptionProps$1, FieldErrorMessageProps as FieldErrorMessageProps$1, InputProps as InputProps$1, InputFieldProps as InputFieldProps$1, RadioProps as RadioProps$1, RadioItemRenderProps, RadioItemProps as RadioItemProps$1, PopoverProps as PopoverProps$1, PopoverTriggerProps as PopoverTriggerProps$1, PopoverContentProps as PopoverContentProps$1, PopoverCloseProps as PopoverCloseProps$1, SelectProps as SelectProps$1, SelectTriggerProps as SelectTriggerProps$1, SelectValueProps as SelectValueProps$1, SelectContentProps as SelectContentProps$1, SelectItemProps as SelectItemProps$1, SelectGroupProps as SelectGroupProps$1, SelectLabelProps as SelectLabelProps$1, SelectItemTextProps as SelectItemTextProps$1, SelectSeparatorProps as SelectSeparatorProps$1, SwitchRenderProps as SwitchRenderProps$1, SwitchProps as SwitchProps$1, TooltipTriggerProps as TooltipTriggerProps$1, TooltipContentProps as TooltipContentProps$1, TooltipProps as TooltipProps$1, TooltipProviderProps as TooltipProviderProps$1 } from '@turkish-technology/spar';
5
+
6
+ /** Per-slot class map declared by a component base. Every slot is required. */
7
+ type SlotClassNames<TSlot extends string> = Record<TSlot, string>;
8
+ /** Per-slot className override map. Consumers only fill the slots they extend. */
9
+ type ClassNamesMap<TSlot extends string> = Partial<Record<TSlot, string>>;
10
+ /**
11
+ * Per-slot HTML-attribute override map. Defaults to a generic `HTMLAttributes`
12
+ * shape; components with element-specific slots may narrow `TAttrs`.
13
+ */
14
+ type SlotPropsMap<TSlot extends string, TAttrs extends object = HTMLAttributes<HTMLElement>> = Partial<Record<TSlot, TAttrs>>;
15
+ /**
16
+ * Native HTML props that every takeoff-v2 wrapper owns — the wrapper-typed
17
+ * versions (`classNames`, `slotProps`) always replace the native names. Apply
18
+ * via {@link TakeoffHTMLProps} as the base for wrapper Props interfaces.
19
+ *
20
+ * Component-specific extra omits (e.g. native `defaultValue`/`onChange` when
21
+ * a headless prop owns the same name) are added at the call site.
22
+ */
23
+ type TakeoffSlotOverrides = 'classNames' | 'slotProps';
24
+ /**
25
+ * Native props of `T` minus the props takeoff-v2 always owns. The shared base
26
+ * for wrapper Props interfaces — pairs with `Pick<SparXxxProps, ...>` to form
27
+ * the public boundary.
28
+ */
29
+ type TakeoffHTMLProps<T extends ElementType> = Omit<ComponentPropsWithoutRef<T>, TakeoffSlotOverrides>;
30
+
31
+ type KebabCase<S extends string> = S extends `${infer First}${infer Rest}` ? First extends Lowercase<First> ? `${First}${KebabCase<Rest>}` : `-${Lowercase<First>}${KebabCase<Rest>}` : S;
32
+ type DataSlotName<TSlot extends string> = KebabCase<TSlot>;
33
+
34
+ /**
35
+ * Per-component override config carried on the provider's `components` map.
36
+ * The provider applies its layers below the instance, so an instance prop
37
+ * always wins on conflict and the canonical `tk-*` class is never dropped.
38
+ *
39
+ * @typeParam TProps Public props of the component this entry targets.
40
+ * @typeParam TSlot Slot key union; defaults to `'root'` for single-slot entries.
41
+ * @typeParam TSlotProps Per-slot attribute map; narrow per element type when needed.
42
+ */
43
+ interface ComponentThemeConfig<TProps = unknown, TSlot extends string = 'root', TSlotProps extends SlotPropsMap<TSlot, object> = SlotPropsMap<TSlot>> {
44
+ /** Applied only when the instance does not set the prop. */
45
+ defaultProps?: Partial<TProps>;
46
+ /** Shortcut equivalent to `classNames.root`; concatenated, never replaces the canonical class. */
47
+ className?: string;
48
+ /** Per-slot extra classes; concatenated, never replaces the canonical class. */
49
+ classNames?: ClassNamesMap<TSlot>;
50
+ /** Per-slot HTML-attribute overrides; shallow-merged below the wrapper's canonical attrs. */
51
+ slotProps?: TSlotProps;
52
+ }
53
+ /**
54
+ * Provider override config for **state-only roots** — components whose root
55
+ * renders no DOM (e.g. `Drawer`, `Tooltip`). Styling layers (`className`,
56
+ * `classNames`, `slotProps`) have no DOM target on a state-only root and
57
+ * would be silently dropped, so this variant exposes only `defaultProps`.
58
+ *
59
+ * Use this in the registry for any root whose JSX is a pure context
60
+ * provider. Children parts (e.g. `Drawer.Panel`, `Tooltip.Content`) still
61
+ * use {@link ComponentThemeConfig} because they render real DOM.
62
+ *
63
+ * @typeParam TProps Public props of the state-only root.
64
+ */
65
+ interface StateOnlyComponentThemeConfig$1<TProps = unknown> {
66
+ /** Applied only when the instance does not set the prop. */
67
+ defaultProps?: Partial<TProps>;
68
+ }
69
+ /**
70
+ * Registry of every component name the provider can override. Declared as
71
+ * `interface` so consumers can augment it via TypeScript declaration merging.
72
+ */
73
+ interface ComponentThemeRegistry {
74
+ }
75
+ type ComponentName = keyof ComponentThemeRegistry;
76
+ /** Provider-facing override map. Each entry is optional. */
77
+ type ComponentsThemeMap = {
78
+ [K in ComponentName]?: ComponentThemeRegistry[K];
79
+ };
80
+
81
+ type ColorMode = 'light' | 'dark';
82
+ interface TakeoffSparProviderValue {
83
+ colorMode: ColorMode;
84
+ locale?: string;
85
+ components?: ComponentsThemeMap;
86
+ }
87
+ interface ThemeValue {
88
+ colorMode: ColorMode;
89
+ }
90
+ interface TakeoffSparProviderProps extends Partial<TakeoffSparProviderValue> {
91
+ children: ReactNode;
92
+ }
93
+ /**
94
+ * Top-level provider for Takeoff React components. Writes `data-theme` and
95
+ * `lang` to `document.documentElement` so styling and language attributes
96
+ * propagate to portal-mounted descendants (Dialog, Popover, Tooltip, …) and
97
+ * are picked up by global CSS selectors.
98
+ *
99
+ * Renders no DOM of its own — only a React context. For SSR apps, set
100
+ * `<html data-theme="…" lang="…">` on the server (e.g. with a small inline
101
+ * script that reads stored preferences) to avoid a first-paint flash before
102
+ * the provider's effect runs.
103
+ */
104
+ declare const TakeoffSparProvider: ({ children, colorMode, locale, components }: TakeoffSparProviderProps) => react_jsx_runtime.JSX.Element;
105
+ /**
106
+ * Read the active theme value. The provider is **optional**: when no
107
+ * `TakeoffSparProvider` ancestor is present, the default theme
108
+ * (`{ colorMode: 'light' }`) is returned and a one-time dev-mode warning is
109
+ * emitted. Wrap the app in `TakeoffSparProvider` to customize `colorMode` or
110
+ * `locale`.
111
+ */
112
+ declare const useTheme: () => ThemeValue;
113
+ /**
114
+ * Read the provider override config for a known component name. The return
115
+ * type narrows by key: `useComponentTheme('Accordion')` returns
116
+ * `ComponentThemeConfig<AccordionProps> | undefined`. Unknown names are a
117
+ * compile-time error.
118
+ *
119
+ * The provider is **optional** — when no `TakeoffSparProvider` ancestor is
120
+ * present, this hook returns `undefined` silently and the component falls
121
+ * back to its author defaults. No warning is emitted because the absence of
122
+ * a provider-level override is a legitimate use case (component used
123
+ * standalone).
124
+ */
125
+ declare const useComponentTheme: <K extends ComponentName>(componentName: K) => ComponentThemeRegistry[K] | undefined;
126
+
127
+ /**
128
+ * Visual grouping vocabulary mirrored from Takeoff Core (`tk-accordion`).
129
+ */
130
+ type AccordionType = 'grouped' | 'divided';
131
+ /**
132
+ * Density mode. `'compact'` reduces vertical rhythm; pairs with any
133
+ * {@link AccordionType}. Default `'default'`.
134
+ */
135
+ type AccordionMode = 'default' | 'compact';
136
+ type AccordionSize = 'base' | 'large';
137
+ type AccordionHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
138
+ type AccordionValue = string | number;
139
+ /**
140
+ * Current panel identifier(s). Scalar in single mode, array when
141
+ * `multiple` is set.
142
+ */
143
+ type AccordionCurrentValue = AccordionValue | AccordionValue[];
144
+ type AccordionValueChangeHandler = (next: AccordionCurrentValue) => void;
145
+ type AccordionSlot = 'root';
146
+ type AccordionItemSlot = 'root';
147
+ type AccordionHeaderSlot = 'root';
148
+ type AccordionTriggerSlot = 'root' | 'startContent' | 'title';
149
+ type AccordionIndicatorSlot = 'root';
150
+ type AccordionContentSlot = 'root';
151
+ /**
152
+ * State surface delivered to {@link AccordionIndicatorProps.children} when
153
+ * passed as a render function. Lets consumers swap icons by open state without
154
+ * pulling the item context themselves.
155
+ */
156
+ interface AccordionIndicatorRenderState {
157
+ isOpen: boolean;
158
+ }
159
+ /**
160
+ * Visual + slot props owned by takeoff-v2 for the Accordion root. Cascades to
161
+ * descendants through the visual context (`type`, `mode`, `size`, arrows).
162
+ */
163
+ interface AccordionOwnProps {
164
+ /**
165
+ * Visual grouping.
166
+ * @defaultValue 'grouped'
167
+ */
168
+ type?: AccordionType;
169
+ /**
170
+ * Density mode. Pairs with any {@link AccordionType}.
171
+ * @defaultValue 'default'
172
+ */
173
+ mode?: AccordionMode;
174
+ /**
175
+ * Size scale.
176
+ * @defaultValue 'base'
177
+ */
178
+ size?: AccordionSize;
179
+ /** Per-slot class name overrides. */
180
+ classNames?: ClassNamesMap<AccordionSlot>;
181
+ /** Per-slot HTML attribute overrides. */
182
+ slotProps?: SlotPropsMap<AccordionSlot>;
183
+ }
184
+ /**
185
+ * Public props for the Accordion root. Polymorphic via `as`; ref and the
186
+ * native attributes of the rendered element are inherited from Spar's
187
+ * `PolymorphicProps`.
188
+ */
189
+ type AccordionProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, AccordionOwnProps & Pick<AccordionProps$1, 'multiple' | 'value' | 'defaultValue' | 'onValueChange' | 'collapsible' | 'disabled' | 'orientation'>>;
190
+ interface AccordionItemOwnProps {
191
+ /** Per-slot class name overrides. */
192
+ classNames?: ClassNamesMap<AccordionItemSlot>;
193
+ /** Per-slot HTML attribute overrides. */
194
+ slotProps?: SlotPropsMap<AccordionItemSlot>;
195
+ }
196
+ type AccordionItemProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, AccordionItemOwnProps & Pick<AccordionItemProps$1, 'value' | 'disabled'>>;
197
+ interface AccordionHeaderOwnProps {
198
+ /** Per-slot class name overrides. */
199
+ classNames?: ClassNamesMap<AccordionHeaderSlot>;
200
+ /** Per-slot HTML attribute overrides. */
201
+ slotProps?: SlotPropsMap<AccordionHeaderSlot>;
202
+ }
203
+ type AccordionHeaderProps<T extends ElementType = 'h3'> = PolymorphicProps<'h3', T, AccordionHeaderOwnProps & Pick<AccordionHeaderProps$1, 'level'>>;
204
+ interface AccordionTriggerOwnProps {
205
+ /**
206
+ * Leading content rendered before the title — typically an icon, but
207
+ * accepts any node. The wrapper element (class + `data-slot`) is invariant;
208
+ * only the inner node is consumer-supplied.
209
+ */
210
+ startContent?: ReactNode;
211
+ /** Per-slot class name overrides. */
212
+ classNames?: ClassNamesMap<AccordionTriggerSlot>;
213
+ /** Per-slot HTML attribute overrides. */
214
+ slotProps?: SlotPropsMap<AccordionTriggerSlot>;
215
+ }
216
+ type AccordionTriggerProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, AccordionTriggerOwnProps>;
217
+ interface AccordionIndicatorOwnProps {
218
+ /**
219
+ * Override the default chevron. Accepts a ReactNode (rendered in every
220
+ * state) or a render function receiving the live `{ isOpen }` state — use
221
+ * the render-prop form to swap icons by open state without consuming the
222
+ * item context manually.
223
+ */
224
+ children?: ReactNode | ((state: AccordionIndicatorRenderState) => ReactNode);
225
+ /** Per-slot class name overrides. */
226
+ classNames?: ClassNamesMap<AccordionIndicatorSlot>;
227
+ /** Per-slot HTML attribute overrides. */
228
+ slotProps?: SlotPropsMap<AccordionIndicatorSlot>;
229
+ }
230
+ type AccordionIndicatorProps<T extends ElementType = 'span'> = PolymorphicProps<'span', T, AccordionIndicatorOwnProps>;
231
+ interface AccordionContentOwnProps {
232
+ /** Per-slot class name overrides. */
233
+ classNames?: ClassNamesMap<AccordionContentSlot>;
234
+ /** Per-slot HTML attribute overrides. */
235
+ slotProps?: SlotPropsMap<AccordionContentSlot>;
236
+ }
237
+ type AccordionContentProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, AccordionContentOwnProps & Pick<AccordionContentProps$1, 'forceMount' | 'onBeforeMatch'>>;
238
+ declare module '../../core/theme' {
239
+ interface ComponentThemeRegistry {
240
+ Accordion: ComponentThemeConfig<AccordionProps>;
241
+ AccordionItem: ComponentThemeConfig<AccordionItemProps>;
242
+ AccordionHeader: ComponentThemeConfig<AccordionHeaderProps>;
243
+ AccordionTrigger: ComponentThemeConfig<AccordionTriggerProps, AccordionTriggerSlot>;
244
+ AccordionIndicator: ComponentThemeConfig<AccordionIndicatorProps, AccordionIndicatorSlot>;
245
+ AccordionContent: ComponentThemeConfig<AccordionContentProps>;
246
+ }
247
+ }
248
+
249
+ declare const Accordion: {
250
+ <T extends react.ElementType = "div">(props: AccordionProps<T>): react_jsx_runtime.JSX.Element;
251
+ displayName: string;
252
+ } & {
253
+ Item: {
254
+ <T extends react.ElementType = "div">(props: AccordionItemProps<T>): react_jsx_runtime.JSX.Element;
255
+ displayName: string;
256
+ };
257
+ Header: {
258
+ <T extends react.ElementType = "h3">(props: AccordionHeaderProps<T>): react_jsx_runtime.JSX.Element;
259
+ displayName: string;
260
+ };
261
+ Trigger: {
262
+ <T extends react.ElementType = "button">(props: AccordionTriggerProps<T>): react_jsx_runtime.JSX.Element;
263
+ displayName: string;
264
+ };
265
+ Indicator: {
266
+ <T extends react.ElementType = "span">(props: AccordionIndicatorProps<T>): react_jsx_runtime.JSX.Element;
267
+ displayName: string;
268
+ };
269
+ Content: {
270
+ <T extends react.ElementType = "div">(props: AccordionContentProps<T>): react_jsx_runtime.JSX.Element;
271
+ displayName: string;
272
+ };
273
+ };
274
+
275
+ type BadgeVariant = 'primary' | 'secondary' | 'neutral' | 'info' | 'success' | 'danger' | 'warning' | 'verified' | 'purple' | 'cyan' | 'business';
276
+ type BadgeAppearance = 'filled' | 'filledLight' | 'outlined' | 'text';
277
+ type BadgeSize = 'small' | 'base' | 'large';
278
+ type BadgeSlot = 'root' | 'label' | 'icon';
279
+ interface BadgeProps extends Omit<TakeoffHTMLProps<'span'>, 'children'> {
280
+ /**
281
+ * Color variant.
282
+ * @defaultValue 'primary'
283
+ */
284
+ variant?: BadgeVariant;
285
+ /**
286
+ * Visual appearance.
287
+ * @defaultValue 'filled'
288
+ */
289
+ appearance?: BadgeAppearance;
290
+ /**
291
+ * Size scale.
292
+ * @defaultValue 'base'
293
+ */
294
+ size?: BadgeSize;
295
+ /**
296
+ * Renders a pill-shaped badge with fully rounded corners.
297
+ * @defaultValue false
298
+ */
299
+ rounded?: boolean;
300
+ /**
301
+ * Renders a minimal colored dot (6×6px) with no content.
302
+ * When true, children, startContent, and endContent are ignored.
303
+ * @defaultValue false
304
+ */
305
+ dot?: boolean;
306
+ /**
307
+ * Content rendered before children — typically an icon.
308
+ */
309
+ startContent?: ReactNode;
310
+ /**
311
+ * Content rendered after children.
312
+ */
313
+ endContent?: ReactNode;
314
+ /** Badge content. */
315
+ children?: ReactNode;
316
+ /** Ref forwarded to the root span element. */
317
+ ref?: Ref<HTMLSpanElement>;
318
+ /** Per-slot extra classes. */
319
+ classNames?: ClassNamesMap<BadgeSlot>;
320
+ /** Per-slot HTML-attribute overrides. */
321
+ slotProps?: SlotPropsMap<BadgeSlot>;
322
+ }
323
+ declare module '../../core/theme' {
324
+ interface ComponentThemeRegistry {
325
+ Badge: ComponentThemeConfig<BadgeProps, BadgeSlot>;
326
+ }
327
+ }
328
+
329
+ declare const Badge: {
330
+ (props: BadgeProps): react_jsx_runtime.JSX.Element;
331
+ displayName: string;
332
+ };
333
+
334
+ type ButtonVariant = 'primary' | 'secondary' | 'neutral' | 'info' | 'success' | 'danger' | 'warning' | 'white' | 'black';
335
+ type ButtonAppearance = 'filled' | 'filledLight' | 'outlined' | 'text';
336
+ type ButtonSize = 'small' | 'base' | 'large';
337
+ type ButtonSlot = 'root' | 'content' | 'label' | 'spinner';
338
+ /**
339
+ * Visual + slot props owned by takeoff-v2 (not exposed by Spar).
340
+ */
341
+ interface ButtonOwnProps {
342
+ /**
343
+ * Color variant.
344
+ * @defaultValue 'primary'
345
+ */
346
+ variant?: ButtonVariant;
347
+ /**
348
+ * Visual appearance.
349
+ * @defaultValue 'filled'
350
+ */
351
+ appearance?: ButtonAppearance;
352
+ /**
353
+ * Size scale.
354
+ * @defaultValue 'base'
355
+ */
356
+ size?: ButtonSize;
357
+ /**
358
+ * Renders a pill-shaped (circular) button. Ideal for icon-only actions.
359
+ * @defaultValue false
360
+ */
361
+ rounded?: boolean;
362
+ /**
363
+ * Content rendered before children — typically an icon, but accepts any node
364
+ * (spinner, badge, kbd, etc.). Wrapped in the `icon` slot.
365
+ */
366
+ startContent?: ReactNode;
367
+ /**
368
+ * Content rendered after children. Same shape as `startContent`.
369
+ */
370
+ endContent?: ReactNode;
371
+ /** Per-slot extra classes. */
372
+ classNames?: ClassNamesMap<ButtonSlot>;
373
+ /** Per-slot HTML-attribute overrides. */
374
+ slotProps?: SlotPropsMap<ButtonSlot>;
375
+ }
376
+ /**
377
+ * Public props for the Button. Polymorphic via `as` (e.g. render as `<a>` for
378
+ * link-styled buttons) — `as`, ref, and the native attributes of the rendered
379
+ * element are inherited from Spar's `PolymorphicProps`.
380
+ */
381
+ type ButtonProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, ButtonOwnProps & Pick<ButtonProps$1, 'isPressed' | 'onPressedChange' | 'isLoading'>>;
382
+ declare module '../../core/theme' {
383
+ interface ComponentThemeRegistry {
384
+ Button: ComponentThemeConfig<ButtonProps, ButtonSlot>;
385
+ }
386
+ }
387
+
388
+ declare const Button: {
389
+ <T extends ElementType = "button">(props: ButtonProps<T>): react_jsx_runtime.JSX.Element;
390
+ displayName: string;
391
+ };
392
+
393
+ type CheckboxSize = 'small' | 'base';
394
+ type CheckboxType = 'default' | 'card';
395
+ type CheckboxSlot = 'root' | 'indicator' | 'icon';
396
+ /**
397
+ * Render props passed to the root `Checkbox` render-prop child. Re-exports
398
+ * Spar's shape verbatim — `checked` is the tri-state `CheckedState` here.
399
+ * Compound consumers should reach for `Checkbox.Indicator` instead so they
400
+ * receive the takeoff-spar `boolean` + `indeterminate` split.
401
+ */
402
+ type CheckboxRenderProps = CheckboxRenderProps$1;
403
+ /**
404
+ * Render props passed to `Checkbox.Indicator` function-children. Exposes the
405
+ * takeoff-spar split rather than Spar's tri-state, matching the example in
406
+ * `packages/react-spar/docs/coding-standards.md`.
407
+ */
408
+ interface CheckboxIndicatorRenderProps {
409
+ checked: boolean;
410
+ indeterminate: boolean;
411
+ }
412
+ interface CheckboxOwnProps {
413
+ /**
414
+ * Controlled checked state. Pair with `onChange`.
415
+ * @remarks `indeterminate` overrides this when set to `true`.
416
+ */
417
+ checked?: boolean;
418
+ /**
419
+ * Uncontrolled initial checked state.
420
+ * @defaultValue false
421
+ * @remarks `indeterminate` overrides this when set to `true`.
422
+ */
423
+ defaultChecked?: boolean;
424
+ /**
425
+ * Indeterminate (mixed) visual + ARIA state. Overrides `checked` /
426
+ * `defaultChecked` when `true`; emits `aria-checked="mixed"`.
427
+ *
428
+ * Dynamic toggling of `indeterminate` is only fully reactive in controlled
429
+ * mode. In uncontrolled mode, set it at the initial render and clear it
430
+ * from your own state in response to `onChange`.
431
+ * @defaultValue false
432
+ */
433
+ indeterminate?: boolean;
434
+ /**
435
+ * Fired when the user toggles the checkbox. Indeterminate transitions to
436
+ * `true` on the first toggle, so the callback's argument is always a
437
+ * plain `boolean`.
438
+ */
439
+ onChange?: (checked: boolean) => void;
440
+ /**
441
+ * Marks the checkbox as visually invalid.
442
+ * @defaultValue false
443
+ */
444
+ invalid?: boolean;
445
+ /**
446
+ * Size scale.
447
+ * @defaultValue 'base'
448
+ */
449
+ size?: CheckboxSize;
450
+ /**
451
+ * Visual appearance. `'card'` mirrors Takeoff Core's bordered card variant
452
+ * for opt-in card-style selection rows.
453
+ * @defaultValue 'default'
454
+ */
455
+ type?: CheckboxType;
456
+ /** Per-slot extra classes. */
457
+ classNames?: ClassNamesMap<CheckboxSlot>;
458
+ /** Per-slot HTML-attribute overrides. */
459
+ slotProps?: SlotPropsMap<CheckboxSlot>;
460
+ /**
461
+ * Compound children for the checkbox anatomy, or a render function
462
+ * exposing Spar's state. Compound children are the canonical composition
463
+ * path; the render-prop is preserved for parity with Spar's leaf primitive.
464
+ */
465
+ children?: ReactNode | ((state: CheckboxRenderProps$1) => ReactNode);
466
+ }
467
+ /**
468
+ * Public props for `Checkbox`. Polymorphic via `as` — defaults to the Spar
469
+ * primitive's `<span role="checkbox">` element.
470
+ */
471
+ type CheckboxProps<T extends ElementType = 'span'> = PolymorphicProps<'span', T, CheckboxOwnProps & Pick<CheckboxProps$1, 'disabled' | 'readOnly' | 'required' | 'name' | 'value' | 'form' | 'autoFocus'>>;
472
+ interface CheckboxIndicatorProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {
473
+ /**
474
+ * Indicator content. When omitted, the built-in placeholder check / dash
475
+ * glyph is rendered inside an `icon` slot (driven by `indeterminate`).
476
+ * When a function, receives the current `checked` and `indeterminate`
477
+ * state from the root and its return value replaces the default slot.
478
+ * Passing a `ReactNode` likewise replaces the inner slot entirely — the
479
+ * consumer becomes responsible for any `data-slot="icon"` wrapper they
480
+ * need for theming.
481
+ */
482
+ children?: ReactNode | ((state: CheckboxIndicatorRenderProps) => ReactNode);
483
+ ref?: Ref<HTMLSpanElement>;
484
+ }
485
+ declare module '../../core/theme' {
486
+ interface ComponentThemeRegistry {
487
+ Checkbox: ComponentThemeConfig<CheckboxProps, CheckboxSlot>;
488
+ }
489
+ }
490
+
491
+ declare const Checkbox: {
492
+ <T extends react.ElementType = "span">(props: CheckboxProps<T>): react_jsx_runtime.JSX.Element;
493
+ displayName: string;
494
+ } & {
495
+ Indicator: {
496
+ (props: CheckboxIndicatorProps): react_jsx_runtime.JSX.Element;
497
+ displayName: string;
498
+ };
499
+ };
500
+
501
+ /**
502
+ * Side from which the drawer slides in.
503
+ * @defaultValue 'right'
504
+ */
505
+ type DrawerPlacement = 'left' | 'right' | 'top' | 'bottom' | 'full-screen';
506
+ type DrawerOverlaySlot = 'root';
507
+ type DrawerPanelSlot = 'root';
508
+ type DrawerHeaderSlot = 'root';
509
+ type DrawerTitleSlot = 'root';
510
+ type DrawerDescriptionSlot = 'root';
511
+ type DrawerBodySlot = 'root';
512
+ type DrawerFooterSlot = 'root';
513
+ type DrawerCloseButtonSlot = 'root';
514
+ /**
515
+ * Public props for the Drawer root. Wraps Spar's Dialog in modal mode to
516
+ * create a slide-in side panel. State-only — renders no DOM, so no
517
+ * polymorphic `as`, no native HTML props, no `className` / `classNames` /
518
+ * `slotProps` (state-driven styling lives on the Panel/Overlay/Header
519
+ * children, which read shared values from context).
520
+ */
521
+ interface DrawerProps extends Pick<DialogProps, 'id' | 'open' | 'defaultOpen' | 'onOpenChange' | 'disabled'> {
522
+ /** Side the drawer slides in from. */
523
+ placement?: DrawerPlacement;
524
+ /** Whether the drawer can be dismissed by clicking outside or pressing Escape. @defaultValue true */
525
+ dismissable?: boolean;
526
+ children?: ReactNode;
527
+ }
528
+ interface DrawerTriggerOwnProps {
529
+ classNames?: ClassNamesMap<'root'>;
530
+ slotProps?: SlotPropsMap<'root'>;
531
+ }
532
+ type DrawerTriggerProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, DrawerTriggerOwnProps & Pick<DialogTriggerProps, 'children'>>;
533
+ type DrawerOverlayIntensity = 'lightest' | 'light' | 'base' | 'dark' | 'darkest';
534
+ interface DrawerOverlayOwnProps {
535
+ /** When true, the overlay is rendered but visually invisible. @defaultValue false */
536
+ invisible?: boolean;
537
+ /** Overlay backdrop intensity. @defaultValue 'base' */
538
+ intensity?: DrawerOverlayIntensity;
539
+ classNames?: ClassNamesMap<DrawerOverlaySlot>;
540
+ slotProps?: SlotPropsMap<DrawerOverlaySlot>;
541
+ }
542
+ type DrawerOverlayProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, DrawerOverlayOwnProps & Pick<DialogOverlayProps, 'container'>>;
543
+ interface DrawerPanelOwnProps {
544
+ classNames?: ClassNamesMap<DrawerPanelSlot>;
545
+ slotProps?: SlotPropsMap<DrawerPanelSlot>;
546
+ }
547
+ type DrawerPanelProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, DrawerPanelOwnProps & Pick<DialogContentProps, 'container' | 'trapFocus' | 'restoreFocus' | 'initialFocus' | 'finalFocus' | 'onOpenAutoFocus' | 'onCloseAutoFocus' | 'onEscapeKeyDown' | 'onPointerDownOutside' | 'onInteractOutside'>>;
548
+ type DrawerHeaderType = 'basic' | 'divided' | 'light' | 'dark' | 'primary';
549
+ interface DrawerHeaderOwnProps {
550
+ /** Type of the header. @defaultValue 'basic' */
551
+ headerType?: DrawerHeaderType;
552
+ classNames?: ClassNamesMap<DrawerHeaderSlot>;
553
+ slotProps?: SlotPropsMap<DrawerHeaderSlot>;
554
+ }
555
+ type DrawerHeaderProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, DrawerHeaderOwnProps>;
556
+ interface DrawerTitleOwnProps {
557
+ classNames?: ClassNamesMap<DrawerTitleSlot>;
558
+ slotProps?: SlotPropsMap<DrawerTitleSlot>;
559
+ }
560
+ type DrawerTitleProps<T extends ElementType = 'h2'> = PolymorphicProps<'h2', T, DrawerTitleOwnProps & Pick<DialogTitleProps, 'level'>>;
561
+ interface DrawerDescriptionOwnProps {
562
+ classNames?: ClassNamesMap<DrawerDescriptionSlot>;
563
+ slotProps?: SlotPropsMap<DrawerDescriptionSlot>;
564
+ }
565
+ type DrawerDescriptionProps<T extends ElementType = 'p'> = PolymorphicProps<'p', T, DrawerDescriptionOwnProps>;
566
+ interface DrawerBodyOwnProps {
567
+ classNames?: ClassNamesMap<DrawerBodySlot>;
568
+ slotProps?: SlotPropsMap<DrawerBodySlot>;
569
+ }
570
+ type DrawerBodyProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, DrawerBodyOwnProps>;
571
+ type DrawerFooterType = 'basic' | 'divided' | 'light';
572
+ interface DrawerFooterOwnProps {
573
+ /** Type of the footer. @defaultValue 'basic' */
574
+ footerType?: DrawerFooterType;
575
+ classNames?: ClassNamesMap<DrawerFooterSlot>;
576
+ slotProps?: SlotPropsMap<DrawerFooterSlot>;
577
+ }
578
+ type DrawerFooterProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, DrawerFooterOwnProps>;
579
+ interface DrawerCloseButtonOwnProps {
580
+ classNames?: ClassNamesMap<DrawerCloseButtonSlot>;
581
+ slotProps?: SlotPropsMap<DrawerCloseButtonSlot>;
582
+ }
583
+ type DrawerCloseButtonProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, DrawerCloseButtonOwnProps & Pick<DialogCloseProps, 'children'>>;
584
+ declare module '../../core/theme' {
585
+ interface ComponentThemeRegistry {
586
+ Drawer: StateOnlyComponentThemeConfig<DrawerProps>;
587
+ DrawerTrigger: ComponentThemeConfig<DrawerTriggerProps>;
588
+ DrawerOverlay: ComponentThemeConfig<DrawerOverlayProps>;
589
+ DrawerPanel: ComponentThemeConfig<DrawerPanelProps>;
590
+ DrawerHeader: ComponentThemeConfig<DrawerHeaderProps>;
591
+ DrawerTitle: ComponentThemeConfig<DrawerTitleProps>;
592
+ DrawerDescription: ComponentThemeConfig<DrawerDescriptionProps>;
593
+ DrawerBody: ComponentThemeConfig<DrawerBodyProps>;
594
+ DrawerFooter: ComponentThemeConfig<DrawerFooterProps>;
595
+ DrawerCloseButton: ComponentThemeConfig<DrawerCloseButtonProps>;
596
+ }
597
+ }
598
+
599
+ declare const Drawer: {
600
+ (props: DrawerProps): react_jsx_runtime.JSX.Element;
601
+ displayName: string;
602
+ } & {
603
+ Trigger: {
604
+ <T extends react.ElementType = "button">(props: DrawerTriggerProps<T>): react_jsx_runtime.JSX.Element;
605
+ displayName: string;
606
+ };
607
+ Overlay: {
608
+ <T extends react.ElementType = "div">(props: DrawerOverlayProps<T>): react_jsx_runtime.JSX.Element;
609
+ displayName: string;
610
+ };
611
+ Panel: {
612
+ <T extends react.ElementType = "div">(props: DrawerPanelProps<T>): react_jsx_runtime.JSX.Element;
613
+ displayName: string;
614
+ };
615
+ Header: {
616
+ <T extends react.ElementType = "div">(props: DrawerHeaderProps<T>): react_jsx_runtime.JSX.Element;
617
+ displayName: string;
618
+ };
619
+ Title: {
620
+ <T extends react.ElementType = "h2">(props: DrawerTitleProps<T>): react_jsx_runtime.JSX.Element;
621
+ displayName: string;
622
+ };
623
+ Description: {
624
+ <T extends react.ElementType = "p">(props: DrawerDescriptionProps<T>): react_jsx_runtime.JSX.Element;
625
+ displayName: string;
626
+ };
627
+ Body: {
628
+ <T extends react.ElementType = "div">(props: DrawerBodyProps<T>): react_jsx_runtime.JSX.Element;
629
+ displayName: string;
630
+ };
631
+ Footer: {
632
+ <T extends react.ElementType = "div">(props: DrawerFooterProps<T>): react_jsx_runtime.JSX.Element;
633
+ displayName: string;
634
+ };
635
+ CloseButton: {
636
+ <T extends react.ElementType = "button">(props: DrawerCloseButtonProps<T>): react_jsx_runtime.JSX.Element;
637
+ displayName: string;
638
+ };
639
+ };
640
+
641
+ type FieldSlot = 'root';
642
+ type FieldLabelSlot = 'root' | 'asterisk';
643
+ type FieldDescriptionSlot = 'root';
644
+ type FieldErrorMessageSlot = 'root';
645
+ interface FieldOwnProps {
646
+ classNames?: ClassNamesMap<FieldSlot>;
647
+ slotProps?: SlotPropsMap<FieldSlot>;
648
+ }
649
+ /**
650
+ * Public props for the Field root. Provides shared ARIA context for nested
651
+ * form controls (Input, Switch, Checkbox, etc.) plus styled label, helper
652
+ * text, and error message slots.
653
+ */
654
+ type FieldProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, FieldOwnProps & Pick<FieldProps$1, 'id' | 'invalid' | 'disabled' | 'required' | 'readOnly' | 'children'>>;
655
+ interface FieldLabelOwnProps {
656
+ classNames?: ClassNamesMap<FieldLabelSlot>;
657
+ slotProps?: SlotPropsMap<FieldLabelSlot>;
658
+ }
659
+ type FieldLabelProps<T extends ElementType = 'label'> = PolymorphicProps<'label', T, FieldLabelOwnProps & Pick<FieldLabelProps$1, 'children'>>;
660
+ interface FieldDescriptionOwnProps {
661
+ classNames?: ClassNamesMap<FieldDescriptionSlot>;
662
+ slotProps?: SlotPropsMap<FieldDescriptionSlot>;
663
+ }
664
+ type FieldDescriptionProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, FieldDescriptionOwnProps & Pick<FieldDescriptionProps$1, 'children'>>;
665
+ interface FieldErrorMessageOwnProps {
666
+ classNames?: ClassNamesMap<FieldErrorMessageSlot>;
667
+ slotProps?: SlotPropsMap<FieldErrorMessageSlot>;
668
+ }
669
+ type FieldErrorMessageProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, FieldErrorMessageOwnProps & Pick<FieldErrorMessageProps$1, 'children'>>;
670
+ declare module '../../core/theme' {
671
+ interface ComponentThemeRegistry {
672
+ Field: ComponentThemeConfig<FieldProps, FieldSlot>;
673
+ FieldLabel: ComponentThemeConfig<FieldLabelProps, FieldLabelSlot>;
674
+ FieldDescription: ComponentThemeConfig<FieldDescriptionProps, FieldDescriptionSlot>;
675
+ FieldErrorMessage: ComponentThemeConfig<FieldErrorMessageProps, FieldErrorMessageSlot>;
676
+ }
677
+ }
678
+
679
+ declare const Field: {
680
+ <T extends react.ElementType = "div">(props: FieldProps<T>): react_jsx_runtime.JSX.Element;
681
+ displayName: string;
682
+ } & {
683
+ Label: {
684
+ <T extends react.ElementType = "label">(props: FieldLabelProps<T>): react_jsx_runtime.JSX.Element;
685
+ displayName: string;
686
+ };
687
+ Description: {
688
+ <T extends react.ElementType = "div">(props: FieldDescriptionProps<T>): react_jsx_runtime.JSX.Element;
689
+ displayName: string;
690
+ };
691
+ ErrorMessage: {
692
+ <T extends react.ElementType = "div">(props: FieldErrorMessageProps<T>): react_jsx_runtime.JSX.Element;
693
+ displayName: string;
694
+ };
695
+ };
696
+
697
+ type InputSize = 'small' | 'base' | 'large';
698
+ type InputSlot = 'root';
699
+ type InputContainerSlot = 'root' | 'startContent' | 'endContent';
700
+ type InputFieldSlot = 'root';
701
+ type InputPrefixSlot = 'root';
702
+ type InputSuffixSlot = 'root';
703
+ /**
704
+ * Visual + slot props owned by takeoff-v2 for the Input root. The `size`
705
+ * cascades to descendants through a visual context so InputField renders at
706
+ * the same scale without consumers having to repeat the prop.
707
+ */
708
+ interface InputOwnProps {
709
+ /**
710
+ * Size scale.
711
+ * @defaultValue 'base'
712
+ */
713
+ size?: InputSize;
714
+ /** Per-slot class name overrides. */
715
+ classNames?: ClassNamesMap<InputSlot>;
716
+ /** Per-slot HTML attribute overrides. */
717
+ slotProps?: SlotPropsMap<InputSlot>;
718
+ }
719
+ /**
720
+ * Public props for the Input root. Polymorphic via `as`; ref and the native
721
+ * attributes of the rendered element are inherited from Spar's
722
+ * `PolymorphicProps`.
723
+ */
724
+ type InputProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, InputOwnProps & Pick<InputProps$1, 'id' | 'invalid' | 'disabled' | 'required' | 'readOnly'>>;
725
+ interface InputFieldOwnProps {
726
+ /** Per-slot class name overrides. */
727
+ classNames?: ClassNamesMap<InputFieldSlot>;
728
+ /** Per-slot HTML attribute overrides. */
729
+ slotProps?: SlotPropsMap<InputFieldSlot>;
730
+ }
731
+ type InputFieldProps<T extends ElementType = 'input'> = PolymorphicProps<'input', T, InputFieldOwnProps & Pick<InputFieldProps$1, 'autoFocus'>>;
732
+ /**
733
+ * Visual row wrapping the field plus optional prefix, suffix, leading/trailing
734
+ * icons. Mirrors the SCSS `.tk-input-container` and is where state attributes
735
+ * (`data-invalid`, `data-disabled`, `data-readonly`) land for styling the
736
+ * bordered input row.
737
+ */
738
+ interface InputContainerOwnProps {
739
+ /**
740
+ * Content rendered before the field — typically an icon, but accepts any
741
+ * node (chip, button, etc.). Rendered inside the `startContent` slot
742
+ * (`.tk-input-start-content`).
743
+ */
744
+ startContent?: ReactNode;
745
+ /**
746
+ * Content rendered after the field. Same shape as `startContent`, rendered
747
+ * inside the `endContent` slot (`.tk-input-end-content`).
748
+ */
749
+ endContent?: ReactNode;
750
+ /** Per-slot class name overrides. */
751
+ classNames?: ClassNamesMap<InputContainerSlot>;
752
+ /** Per-slot HTML attribute overrides. */
753
+ slotProps?: SlotPropsMap<InputContainerSlot>;
754
+ children?: ReactNode;
755
+ }
756
+ type InputContainerProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, InputContainerOwnProps>;
757
+ interface InputPrefixOwnProps {
758
+ /** Per-slot class name overrides. */
759
+ classNames?: ClassNamesMap<InputPrefixSlot>;
760
+ /** Per-slot HTML attribute overrides. */
761
+ slotProps?: SlotPropsMap<InputPrefixSlot>;
762
+ children?: ReactNode;
763
+ }
764
+ type InputPrefixProps<T extends ElementType = 'span'> = PolymorphicProps<'span', T, InputPrefixOwnProps>;
765
+ interface InputSuffixOwnProps {
766
+ /** Per-slot class name overrides. */
767
+ classNames?: ClassNamesMap<InputSuffixSlot>;
768
+ /** Per-slot HTML attribute overrides. */
769
+ slotProps?: SlotPropsMap<InputSuffixSlot>;
770
+ children?: ReactNode;
771
+ }
772
+ type InputSuffixProps<T extends ElementType = 'span'> = PolymorphicProps<'span', T, InputSuffixOwnProps>;
773
+ declare module '../../core/theme' {
774
+ interface ComponentThemeRegistry {
775
+ Input: ComponentThemeConfig<InputProps, InputSlot>;
776
+ InputContainer: ComponentThemeConfig<InputContainerProps, InputContainerSlot>;
777
+ InputField: ComponentThemeConfig<InputFieldProps, InputFieldSlot>;
778
+ InputPrefix: ComponentThemeConfig<InputPrefixProps, InputPrefixSlot>;
779
+ InputSuffix: ComponentThemeConfig<InputSuffixProps, InputSuffixSlot>;
780
+ }
781
+ }
782
+
783
+ declare const Input: {
784
+ <T extends react.ElementType = "div">(props: InputProps<T>): react_jsx_runtime.JSX.Element;
785
+ displayName: string;
786
+ } & {
787
+ Container: {
788
+ <T extends react.ElementType = "div">(props: InputContainerProps<T>): react_jsx_runtime.JSX.Element;
789
+ displayName: string;
790
+ };
791
+ Field: {
792
+ <T extends react.ElementType = "input">(props: InputFieldProps<T>): react_jsx_runtime.JSX.Element;
793
+ displayName: string;
794
+ };
795
+ Prefix: {
796
+ <T extends react.ElementType = "span">(props: InputPrefixProps<T>): react_jsx_runtime.JSX.Element;
797
+ displayName: string;
798
+ };
799
+ Suffix: {
800
+ <T extends react.ElementType = "span">(props: InputSuffixProps<T>): react_jsx_runtime.JSX.Element;
801
+ displayName: string;
802
+ };
803
+ };
804
+
805
+ type RadioSize = 'small' | 'base' | 'large';
806
+ type RadioType = 'default' | 'card';
807
+ type RadioPosition = 'left' | 'right';
808
+ type RadioSlot = 'root';
809
+ type RadioItemSlot = 'root';
810
+ type RadioIndicatorSlot = 'root' | 'icon';
811
+ type RadioLabelSlot = 'root';
812
+ /**
813
+ * Render-prop state surface exposed by `Radio.Item` children.
814
+ *
815
+ * This is a callback-parameter shape, not a wrapper prop surface — but the
816
+ * spar-pick guard matches any `Spar*Props` identifier outside a `Pick<>` so
817
+ * we list the keys explicitly. Keep them in sync with Spar's
818
+ * `RadioItemRenderProps`.
819
+ */
820
+ type RadioRenderProps = Pick<RadioItemRenderProps, 'isChecked' | 'select' | 'disabled' | 'isFocused'>;
821
+ interface RadioOwnProps {
822
+ /**
823
+ * Size scale. Cascades to descendant `Radio.Item`s via context.
824
+ * @defaultValue 'base'
825
+ */
826
+ size?: RadioSize;
827
+ /**
828
+ * Visual variant. Cascades to descendant `Radio.Item`s via context.
829
+ * @defaultValue 'default'
830
+ */
831
+ type?: RadioType;
832
+ /**
833
+ * Marks the group as visually invalid. Cascades to descendant `Radio.Item`s.
834
+ * When nested inside a `<Field>` with `invalid`, this is inherited
835
+ * automatically; a direct prop on `<Radio>` always wins. Maps to Spar's
836
+ * `invalid` for ARIA wiring (`aria-invalid`).
837
+ * @defaultValue false
838
+ */
839
+ invalid?: boolean;
840
+ /**
841
+ * Stretches each item to share the group axis equally. Layout intent only —
842
+ * styling is recipe-side via `[data-spread] > [data-slot="root"]`.
843
+ * @defaultValue false
844
+ */
845
+ spread?: boolean;
846
+ /**
847
+ * Default placement of an item's indicator relative to its label. Cascades
848
+ * to descendant `Radio.Item`s; per-item `position` overrides the group value.
849
+ * @defaultValue 'left'
850
+ */
851
+ position?: RadioPosition;
852
+ /** Per-slot class name overrides. */
853
+ classNames?: ClassNamesMap<RadioSlot>;
854
+ /** Per-slot HTML attribute overrides. */
855
+ slotProps?: SlotPropsMap<RadioSlot>;
856
+ }
857
+ type RadioProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, RadioOwnProps & Pick<RadioProps$1, 'id' | 'value' | 'defaultValue' | 'onChange' | 'name' | 'disabled' | 'readOnly' | 'required' | 'orientation' | 'selectOnFocus' | 'autoFocus'>>;
858
+ interface RadioItemOwnProps {
859
+ /**
860
+ * Override the group-level `position` for this item only.
861
+ * @defaultValue inherited from group
862
+ */
863
+ position?: RadioPosition;
864
+ /** Per-slot class name overrides. */
865
+ classNames?: ClassNamesMap<RadioItemSlot>;
866
+ /** Per-slot HTML attribute overrides. */
867
+ slotProps?: SlotPropsMap<RadioItemSlot>;
868
+ /** Compound children, or a render function exposing Spar's per-item state. */
869
+ children?: ReactNode | ((state: RadioRenderProps) => ReactNode);
870
+ }
871
+ type RadioItemProps<T extends ElementType = 'label'> = PolymorphicProps<'label', T, RadioItemOwnProps & Pick<RadioItemProps$1, 'value' | 'disabled'>>;
872
+ interface RadioIndicatorOwnProps {
873
+ /** Per-slot class name overrides — supports `root` and the internal `icon` slot. */
874
+ classNames?: ClassNamesMap<RadioIndicatorSlot>;
875
+ /** Per-slot HTML attribute overrides — supports `root` and the internal `icon` slot. */
876
+ slotProps?: SlotPropsMap<RadioIndicatorSlot>;
877
+ /**
878
+ * Optional custom content for the indicator. When omitted, the wrapper
879
+ * auto-renders the internal `icon` slot (the default dot). When provided,
880
+ * the children replace the default slot entirely — useful for swapping in
881
+ * a check icon or animated marker. The consumer owns checked/unchecked
882
+ * visibility (typically via the `[data-state="checked"]` ancestor selector
883
+ * emitted by Spar on `Radio.Item`).
884
+ */
885
+ children?: ReactNode;
886
+ }
887
+ type RadioIndicatorProps<T extends ElementType = 'span'> = PolymorphicProps<'span', T, RadioIndicatorOwnProps>;
888
+ interface RadioLabelOwnProps {
889
+ /** Per-slot class name overrides. */
890
+ classNames?: ClassNamesMap<RadioLabelSlot>;
891
+ /** Per-slot HTML attribute overrides. */
892
+ slotProps?: SlotPropsMap<RadioLabelSlot>;
893
+ children?: ReactNode;
894
+ }
895
+ type RadioLabelProps<T extends ElementType = 'span'> = PolymorphicProps<'span', T, RadioLabelOwnProps>;
896
+ declare module '../../core/theme' {
897
+ interface ComponentThemeRegistry {
898
+ Radio: ComponentThemeConfig<RadioProps, RadioSlot>;
899
+ RadioItem: ComponentThemeConfig<RadioItemProps, RadioItemSlot>;
900
+ RadioIndicator: ComponentThemeConfig<RadioIndicatorProps, RadioIndicatorSlot>;
901
+ RadioLabel: ComponentThemeConfig<RadioLabelProps, RadioLabelSlot>;
902
+ }
903
+ }
904
+
905
+ declare const Radio: {
906
+ <T extends react.ElementType = "div">(props: RadioProps<T>): react_jsx_runtime.JSX.Element;
907
+ displayName: string;
908
+ } & {
909
+ Item: {
910
+ <T extends react.ElementType = "label">(props: RadioItemProps<T>): react_jsx_runtime.JSX.Element;
911
+ displayName: string;
912
+ };
913
+ Indicator: {
914
+ <T extends react.ElementType = "span">(props: RadioIndicatorProps<T>): react_jsx_runtime.JSX.Element;
915
+ displayName: string;
916
+ };
917
+ Label: {
918
+ <T extends react.ElementType = "span">(props: RadioLabelProps<T>): react_jsx_runtime.JSX.Element;
919
+ displayName: string;
920
+ };
921
+ };
922
+
923
+ /**
924
+ * Visual variant of the popover content.
925
+ * @defaultValue 'dark'
926
+ */
927
+ type PopoverVariant = 'dark' | 'white' | 'info' | 'success' | 'warning' | 'danger' | 'neutral';
928
+ type PopoverTriggerSlot = 'root';
929
+ type PopoverContentSlot = 'root';
930
+ type PopoverHeaderSlot = 'root';
931
+ type PopoverDescriptionSlot = 'root';
932
+ type PopoverArrowSlot = 'root';
933
+ type PopoverCloseSlot = 'root';
934
+ /**
935
+ * Public props for the Popover root. State-only — renders no DOM, so no
936
+ * polymorphic `as` and no native HTML props.
937
+ */
938
+ type PopoverProps = Pick<PopoverProps$1, 'id' | 'open' | 'defaultOpen' | 'onOpenChange' | 'modal' | 'disabled' | 'children'>;
939
+ interface PopoverTriggerOwnProps {
940
+ /** Per-slot extra classes. */
941
+ classNames?: ClassNamesMap<PopoverTriggerSlot>;
942
+ /** Per-slot HTML-attribute overrides. */
943
+ slotProps?: SlotPropsMap<PopoverTriggerSlot>;
944
+ }
945
+ type PopoverTriggerProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, PopoverTriggerOwnProps & Pick<PopoverTriggerProps$1, 'children'>>;
946
+ interface PopoverContentOwnProps {
947
+ /**
948
+ * Color variant.
949
+ * @defaultValue 'dark'
950
+ */
951
+ variant?: PopoverVariant;
952
+ /** Per-slot extra classes. */
953
+ classNames?: ClassNamesMap<PopoverContentSlot>;
954
+ /** Per-slot HTML-attribute overrides. */
955
+ slotProps?: SlotPropsMap<PopoverContentSlot>;
956
+ }
957
+ type PopoverContentProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, PopoverContentOwnProps & Pick<PopoverContentProps$1, 'side' | 'align' | 'container' | 'trapFocus' | 'onOpenAutoFocus' | 'onCloseAutoFocus' | 'onEscapeKeyDown' | 'onPointerDownOutside' | 'onFocusOutside' | 'onInteractOutside'>>;
958
+ interface PopoverHeaderOwnProps {
959
+ /** Per-slot extra classes. */
960
+ classNames?: ClassNamesMap<PopoverHeaderSlot>;
961
+ /** Per-slot HTML-attribute overrides. */
962
+ slotProps?: SlotPropsMap<PopoverHeaderSlot>;
963
+ }
964
+ type PopoverHeaderProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, PopoverHeaderOwnProps>;
965
+ interface PopoverDescriptionOwnProps {
966
+ /** Per-slot extra classes. */
967
+ classNames?: ClassNamesMap<PopoverDescriptionSlot>;
968
+ /** Per-slot HTML-attribute overrides. */
969
+ slotProps?: SlotPropsMap<PopoverDescriptionSlot>;
970
+ }
971
+ type PopoverDescriptionProps<T extends ElementType = 'p'> = PolymorphicProps<'p', T, PopoverDescriptionOwnProps>;
972
+ interface PopoverArrowOwnProps {
973
+ /** Per-slot extra classes. */
974
+ classNames?: ClassNamesMap<PopoverArrowSlot>;
975
+ /** Per-slot HTML-attribute overrides. */
976
+ slotProps?: SlotPropsMap<PopoverArrowSlot>;
977
+ }
978
+ type PopoverArrowProps<T extends ElementType = 'svg'> = PolymorphicProps<'svg', T, PopoverArrowOwnProps>;
979
+ interface PopoverCloseOwnProps {
980
+ /** Per-slot extra classes. */
981
+ classNames?: ClassNamesMap<PopoverCloseSlot>;
982
+ /** Per-slot HTML-attribute overrides. */
983
+ slotProps?: SlotPropsMap<PopoverCloseSlot>;
984
+ }
985
+ type PopoverCloseProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, PopoverCloseOwnProps & Pick<PopoverCloseProps$1, 'children'>>;
986
+ declare module '../../core/theme' {
987
+ interface ComponentThemeRegistry {
988
+ Popover: StateOnlyComponentThemeConfig<PopoverProps>;
989
+ PopoverTrigger: ComponentThemeConfig<PopoverTriggerProps, PopoverTriggerSlot>;
990
+ PopoverContent: ComponentThemeConfig<PopoverContentProps, PopoverContentSlot>;
991
+ PopoverHeader: ComponentThemeConfig<PopoverHeaderProps, PopoverHeaderSlot>;
992
+ PopoverDescription: ComponentThemeConfig<PopoverDescriptionProps, PopoverDescriptionSlot>;
993
+ PopoverArrow: ComponentThemeConfig<PopoverArrowProps, PopoverArrowSlot>;
994
+ PopoverClose: ComponentThemeConfig<PopoverCloseProps, PopoverCloseSlot>;
995
+ }
996
+ }
997
+
998
+ declare const Popover: {
999
+ (props: PopoverProps): react_jsx_runtime.JSX.Element;
1000
+ displayName: string;
1001
+ } & {
1002
+ Trigger: {
1003
+ <T extends react.ElementType = "button">(props: PopoverTriggerProps<T>): react_jsx_runtime.JSX.Element;
1004
+ displayName: string;
1005
+ };
1006
+ Content: {
1007
+ <T extends react.ElementType = "div">(props: PopoverContentProps<T>): react_jsx_runtime.JSX.Element;
1008
+ displayName: string;
1009
+ };
1010
+ Header: {
1011
+ <T extends react.ElementType = "div">(props: PopoverHeaderProps<T>): react_jsx_runtime.JSX.Element;
1012
+ displayName: string;
1013
+ };
1014
+ Description: {
1015
+ <T extends react.ElementType = "p">(props: PopoverDescriptionProps<T>): react_jsx_runtime.JSX.Element;
1016
+ displayName: string;
1017
+ };
1018
+ Arrow: {
1019
+ <T extends react.ElementType = "svg">(props: PopoverArrowProps<T>): react_jsx_runtime.JSX.Element;
1020
+ displayName: string;
1021
+ };
1022
+ Close: {
1023
+ <T extends react.ElementType = "button">(props: PopoverCloseProps<T>): react_jsx_runtime.JSX.Element;
1024
+ displayName: string;
1025
+ };
1026
+ };
1027
+
1028
+ type SelectSize = 'small' | 'base' | 'large';
1029
+ type SelectSlot = 'root';
1030
+ type SelectTriggerSlot = 'root';
1031
+ type SelectValueSlot = 'root';
1032
+ type SelectContentSlot = 'root';
1033
+ type SelectItemSlot = 'root';
1034
+ type SelectGroupSlot = 'root';
1035
+ type SelectLabelSlot = 'root';
1036
+ type SelectItemTextSlot = 'root';
1037
+ type SelectSeparatorSlot = 'root';
1038
+ /**
1039
+ * Visual + slot props owned by takeoff-v2 for the Select root. `size` and
1040
+ * `invalid` cascade to the Trigger through a visual context so consumers
1041
+ * declare them once on the root.
1042
+ */
1043
+ interface SelectOwnProps {
1044
+ /**
1045
+ * Size scale.
1046
+ * @defaultValue 'base'
1047
+ */
1048
+ size?: SelectSize;
1049
+ /**
1050
+ * Invalid state for form validation styling.
1051
+ * @defaultValue false
1052
+ */
1053
+ invalid?: boolean;
1054
+ /** Per-slot class name overrides. */
1055
+ classNames?: ClassNamesMap<SelectSlot>;
1056
+ /** Per-slot HTML attribute overrides. */
1057
+ slotProps?: SlotPropsMap<SelectSlot>;
1058
+ }
1059
+ /**
1060
+ * Public props for the Select root. Polymorphic via `as`; ref and the native
1061
+ * attributes of the rendered element are inherited from Spar's
1062
+ * `PolymorphicProps`.
1063
+ */
1064
+ type SelectProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, SelectOwnProps & Pick<SelectProps$1, 'id' | 'value' | 'defaultValue' | 'onChange' | 'open' | 'defaultOpen' | 'onOpenChange' | 'disabled' | 'readOnly' | 'required' | 'name' | 'autoFocus'>>;
1065
+ interface SelectTriggerOwnProps {
1066
+ /** Per-slot class name overrides. */
1067
+ classNames?: ClassNamesMap<SelectTriggerSlot>;
1068
+ /** Per-slot HTML attribute overrides. */
1069
+ slotProps?: SlotPropsMap<SelectTriggerSlot>;
1070
+ }
1071
+ type SelectTriggerProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, SelectTriggerOwnProps & Pick<SelectTriggerProps$1, 'children'>>;
1072
+ interface SelectValueOwnProps {
1073
+ /** Per-slot class name overrides. */
1074
+ classNames?: ClassNamesMap<SelectValueSlot>;
1075
+ /** Per-slot HTML attribute overrides. */
1076
+ slotProps?: SlotPropsMap<SelectValueSlot>;
1077
+ }
1078
+ type SelectValueProps<T extends ElementType = 'span'> = PolymorphicProps<'span', T, SelectValueOwnProps & Pick<SelectValueProps$1, 'placeholder'>>;
1079
+ interface SelectContentOwnProps {
1080
+ /** Per-slot class name overrides. */
1081
+ classNames?: ClassNamesMap<SelectContentSlot>;
1082
+ /** Per-slot HTML attribute overrides. */
1083
+ slotProps?: SlotPropsMap<SelectContentSlot>;
1084
+ }
1085
+ type SelectContentProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, SelectContentOwnProps & Pick<SelectContentProps$1, 'side' | 'align' | 'container' | 'onEscapeKeyDown' | 'onPointerDownOutside' | 'onCloseAutoFocus'>>;
1086
+ interface SelectItemOwnProps {
1087
+ /** Per-slot class name overrides. */
1088
+ classNames?: ClassNamesMap<SelectItemSlot>;
1089
+ /** Per-slot HTML attribute overrides. */
1090
+ slotProps?: SlotPropsMap<SelectItemSlot>;
1091
+ }
1092
+ type SelectItemProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, SelectItemOwnProps & Pick<SelectItemProps$1, 'value' | 'disabled' | 'textValue' | 'children'>>;
1093
+ interface SelectGroupOwnProps {
1094
+ /** Per-slot class name overrides. */
1095
+ classNames?: ClassNamesMap<SelectGroupSlot>;
1096
+ /** Per-slot HTML attribute overrides. */
1097
+ slotProps?: SlotPropsMap<SelectGroupSlot>;
1098
+ }
1099
+ type SelectGroupProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, SelectGroupOwnProps & Pick<SelectGroupProps$1, 'children'>>;
1100
+ interface SelectLabelOwnProps {
1101
+ /** Per-slot class name overrides. */
1102
+ classNames?: ClassNamesMap<SelectLabelSlot>;
1103
+ /** Per-slot HTML attribute overrides. */
1104
+ slotProps?: SlotPropsMap<SelectLabelSlot>;
1105
+ }
1106
+ type SelectLabelProps<T extends ElementType = 'label'> = PolymorphicProps<'label', T, SelectLabelOwnProps & Pick<SelectLabelProps$1, 'children'>>;
1107
+ interface SelectItemTextOwnProps {
1108
+ /** Per-slot class name overrides. */
1109
+ classNames?: ClassNamesMap<SelectItemTextSlot>;
1110
+ /** Per-slot HTML attribute overrides. */
1111
+ slotProps?: SlotPropsMap<SelectItemTextSlot>;
1112
+ }
1113
+ type SelectItemTextProps<T extends ElementType = 'span'> = PolymorphicProps<'span', T, SelectItemTextOwnProps & Pick<SelectItemTextProps$1, 'children'>>;
1114
+ interface SelectSeparatorOwnProps {
1115
+ /** Per-slot class name overrides. */
1116
+ classNames?: ClassNamesMap<SelectSeparatorSlot>;
1117
+ /** Per-slot HTML attribute overrides. */
1118
+ slotProps?: SlotPropsMap<SelectSeparatorSlot>;
1119
+ }
1120
+ type SelectSeparatorProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, SelectSeparatorOwnProps & Pick<SelectSeparatorProps$1, 'children'>>;
1121
+ declare module '../../core/theme' {
1122
+ interface ComponentThemeRegistry {
1123
+ Select: ComponentThemeConfig<SelectProps, SelectSlot>;
1124
+ SelectTrigger: ComponentThemeConfig<SelectTriggerProps, SelectTriggerSlot>;
1125
+ SelectValue: ComponentThemeConfig<SelectValueProps, SelectValueSlot>;
1126
+ SelectContent: ComponentThemeConfig<SelectContentProps, SelectContentSlot>;
1127
+ SelectItem: ComponentThemeConfig<SelectItemProps, SelectItemSlot>;
1128
+ SelectGroup: ComponentThemeConfig<SelectGroupProps, SelectGroupSlot>;
1129
+ SelectLabel: ComponentThemeConfig<SelectLabelProps, SelectLabelSlot>;
1130
+ SelectItemText: ComponentThemeConfig<SelectItemTextProps, SelectItemTextSlot>;
1131
+ SelectSeparator: ComponentThemeConfig<SelectSeparatorProps, SelectSeparatorSlot>;
1132
+ }
1133
+ }
1134
+
1135
+ declare const Select: {
1136
+ <T extends react.ElementType = "div">(props: SelectProps<T>): react_jsx_runtime.JSX.Element;
1137
+ displayName: string;
1138
+ } & {
1139
+ Trigger: {
1140
+ <T extends react.ElementType = "button">(props: SelectTriggerProps<T>): react_jsx_runtime.JSX.Element;
1141
+ displayName: string;
1142
+ };
1143
+ Value: {
1144
+ <T extends react.ElementType = "span">(props: SelectValueProps<T>): react_jsx_runtime.JSX.Element;
1145
+ displayName: string;
1146
+ };
1147
+ Content: {
1148
+ <T extends react.ElementType = "div">(props: SelectContentProps<T>): react_jsx_runtime.JSX.Element;
1149
+ displayName: string;
1150
+ };
1151
+ Item: {
1152
+ <T extends react.ElementType = "div">(props: SelectItemProps<T>): react_jsx_runtime.JSX.Element;
1153
+ displayName: string;
1154
+ };
1155
+ ItemText: {
1156
+ <T extends react.ElementType = "span">(props: SelectItemTextProps<T>): react_jsx_runtime.JSX.Element;
1157
+ displayName: string;
1158
+ };
1159
+ Group: {
1160
+ <T extends react.ElementType = "div">(props: SelectGroupProps<T>): react_jsx_runtime.JSX.Element;
1161
+ displayName: string;
1162
+ };
1163
+ Label: {
1164
+ <T extends react.ElementType = "label">(props: SelectLabelProps<T>): react_jsx_runtime.JSX.Element;
1165
+ displayName: string;
1166
+ };
1167
+ Separator: {
1168
+ <T extends react.ElementType = "div">(props: SelectSeparatorProps<T>): react_jsx_runtime.JSX.Element;
1169
+ displayName: string;
1170
+ };
1171
+ };
1172
+
1173
+ type SwitchSize = 'xlarge' | 'large' | 'base' | 'small' | 'xsmall';
1174
+ type SwitchVariant = 'info' | 'success';
1175
+ type SwitchSlot = 'root' | 'indicator' | 'thumb';
1176
+ /**
1177
+ * Render props passed to the root `Switch` render-prop child. Re-exports
1178
+ * Spar's shape verbatim — consumers reading the state inside compound
1179
+ * children should use `Switch.Indicator` render-prop instead, which receives
1180
+ * the takeoff-spar split via context.
1181
+ */
1182
+ type SwitchRenderProps = SwitchRenderProps$1;
1183
+ /**
1184
+ * Render props passed to `Switch.Indicator` function-children. Mirrors the
1185
+ * shape used by `Checkbox.Indicator`.
1186
+ */
1187
+ interface SwitchIndicatorRenderProps {
1188
+ checked: boolean;
1189
+ disabled: boolean;
1190
+ readOnly: boolean;
1191
+ }
1192
+ interface SwitchOwnProps {
1193
+ /**
1194
+ * Size scale.
1195
+ * @defaultValue 'base'
1196
+ */
1197
+ size?: SwitchSize;
1198
+ /**
1199
+ * Color variant used while checked.
1200
+ * @defaultValue 'info'
1201
+ */
1202
+ variant?: SwitchVariant;
1203
+ /**
1204
+ * Marks the switch as visually invalid. When inside a `<Field>`, Spar
1205
+ * inherits the Field's invalid state automatically — pass this prop only
1206
+ * to override.
1207
+ * @defaultValue false
1208
+ */
1209
+ invalid?: boolean;
1210
+ /** Per-slot extra classes. */
1211
+ classNames?: ClassNamesMap<SwitchSlot>;
1212
+ /** Per-slot HTML-attribute overrides. */
1213
+ slotProps?: SlotPropsMap<SwitchSlot>;
1214
+ /**
1215
+ * Compound children for the switch anatomy, or a render function exposing
1216
+ * Spar's state. Compound children are the canonical composition path; the
1217
+ * render-prop is preserved for parity with Spar's leaf primitive.
1218
+ */
1219
+ children?: ReactNode | ((state: SwitchRenderProps$1) => ReactNode);
1220
+ }
1221
+ /**
1222
+ * Public props for `Switch`. Polymorphic via `as` — defaults to Spar's
1223
+ * `<button role="switch">` element.
1224
+ */
1225
+ type SwitchProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, SwitchOwnProps & Pick<SwitchProps$1, 'checked' | 'defaultChecked' | 'onChange' | 'disabled' | 'readOnly' | 'required' | 'name' | 'value' | 'form' | 'autoFocus'>>;
1226
+ interface SwitchIndicatorProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {
1227
+ /**
1228
+ * Indicator content. When omitted, the built-in track + thumb anatomy is
1229
+ * rendered automatically (a `thumb` slot is mounted inside the indicator
1230
+ * span). When a function, receives the current `checked` / `disabled` /
1231
+ * `readOnly` state from the root and its return value replaces the inner
1232
+ * slot. Passing a `ReactNode` likewise replaces the inner slot entirely —
1233
+ * the consumer becomes responsible for any `data-slot="thumb"` wrapper
1234
+ * they need for theming.
1235
+ */
1236
+ children?: ReactNode | ((state: SwitchIndicatorRenderProps) => ReactNode);
1237
+ ref?: Ref<HTMLSpanElement>;
1238
+ }
1239
+ declare module '../../core/theme' {
1240
+ interface ComponentThemeRegistry {
1241
+ Switch: ComponentThemeConfig<SwitchProps, SwitchSlot>;
1242
+ }
1243
+ }
1244
+
1245
+ declare const Switch: {
1246
+ <T extends react.ElementType = "button">(props: SwitchProps<T>): react_jsx_runtime.JSX.Element;
1247
+ displayName: string;
1248
+ } & {
1249
+ Indicator: {
1250
+ (props: SwitchIndicatorProps): react_jsx_runtime.JSX.Element;
1251
+ displayName: string;
1252
+ };
1253
+ };
1254
+
1255
+ type TooltipVariant = 'dark' | 'white' | 'info' | 'success' | 'warning' | 'danger' | 'neutral';
1256
+ type TooltipTriggerSlot = 'root';
1257
+ type TooltipContentSlot = 'root';
1258
+ type TooltipHeaderSlot = 'root';
1259
+ type TooltipDescriptionSlot = 'root';
1260
+ type TooltipArrowSlot = 'root';
1261
+ /**
1262
+ * Public props for the Tooltip root. State-only — renders no DOM, so no
1263
+ * polymorphic `as` and no native HTML props.
1264
+ */
1265
+ type TooltipProps = Pick<TooltipProps$1, 'id' | 'open' | 'defaultOpen' | 'onOpenChange' | 'delay' | 'hideDelay' | 'disabled' | 'children'>;
1266
+ /**
1267
+ * Public props for the Tooltip provider. State-only — renders no DOM.
1268
+ * Shares delay configuration across multiple sibling tooltips so that moving
1269
+ * between them within `skipDelayDuration` opens the next one instantly (WCAG 1.4.13).
1270
+ */
1271
+ type TooltipProviderProps = Pick<TooltipProviderProps$1, 'children' | 'delayDuration' | 'skipDelayDuration' | 'disableHoverableContent'>;
1272
+ interface TooltipTriggerOwnProps {
1273
+ /** Per-slot extra classes. */
1274
+ classNames?: ClassNamesMap<TooltipTriggerSlot>;
1275
+ /** Per-slot HTML-attribute overrides. */
1276
+ slotProps?: SlotPropsMap<TooltipTriggerSlot>;
1277
+ }
1278
+ type TooltipTriggerProps<T extends ElementType = 'button'> = PolymorphicProps<'button', T, TooltipTriggerOwnProps & Pick<TooltipTriggerProps$1, 'children'>>;
1279
+ interface TooltipContentOwnProps {
1280
+ /**
1281
+ * Color variant.
1282
+ * @defaultValue 'dark'
1283
+ */
1284
+ variant?: TooltipVariant;
1285
+ /** Per-slot extra classes. */
1286
+ classNames?: ClassNamesMap<TooltipContentSlot>;
1287
+ /** Per-slot HTML-attribute overrides. */
1288
+ slotProps?: SlotPropsMap<TooltipContentSlot>;
1289
+ }
1290
+ type TooltipContentProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, TooltipContentOwnProps & Pick<TooltipContentProps$1, 'side' | 'align' | 'container' | 'onEscapeKeyDown' | 'onPointerDownOutside' | 'onOpenAutoFocus' | 'onCloseAutoFocus'>>;
1291
+ interface TooltipHeaderOwnProps {
1292
+ /** Per-slot extra classes. */
1293
+ classNames?: ClassNamesMap<TooltipHeaderSlot>;
1294
+ /** Per-slot HTML-attribute overrides. */
1295
+ slotProps?: SlotPropsMap<TooltipHeaderSlot>;
1296
+ }
1297
+ type TooltipHeaderProps<T extends ElementType = 'div'> = PolymorphicProps<'div', T, TooltipHeaderOwnProps>;
1298
+ interface TooltipDescriptionOwnProps {
1299
+ /** Per-slot extra classes. */
1300
+ classNames?: ClassNamesMap<TooltipDescriptionSlot>;
1301
+ /** Per-slot HTML-attribute overrides. */
1302
+ slotProps?: SlotPropsMap<TooltipDescriptionSlot>;
1303
+ }
1304
+ type TooltipDescriptionProps<T extends ElementType = 'p'> = PolymorphicProps<'p', T, TooltipDescriptionOwnProps>;
1305
+ interface TooltipArrowOwnProps {
1306
+ /** Per-slot extra classes. */
1307
+ classNames?: ClassNamesMap<TooltipArrowSlot>;
1308
+ /** Per-slot HTML-attribute overrides. */
1309
+ slotProps?: SlotPropsMap<TooltipArrowSlot>;
1310
+ }
1311
+ type TooltipArrowProps<T extends ElementType = 'svg'> = PolymorphicProps<'svg', T, TooltipArrowOwnProps>;
1312
+ declare module '../../core/theme' {
1313
+ interface ComponentThemeRegistry {
1314
+ TooltipTrigger: ComponentThemeConfig<TooltipTriggerProps, TooltipTriggerSlot>;
1315
+ TooltipContent: ComponentThemeConfig<TooltipContentProps, TooltipContentSlot>;
1316
+ TooltipHeader: ComponentThemeConfig<TooltipHeaderProps, TooltipHeaderSlot>;
1317
+ TooltipDescription: ComponentThemeConfig<TooltipDescriptionProps, TooltipDescriptionSlot>;
1318
+ TooltipArrow: ComponentThemeConfig<TooltipArrowProps, TooltipArrowSlot>;
1319
+ }
1320
+ }
1321
+
1322
+ declare const Tooltip: {
1323
+ ({ children, id, open, defaultOpen, onOpenChange, delay, hideDelay, disabled }: TooltipProps): react_jsx_runtime.JSX.Element;
1324
+ displayName: string;
1325
+ } & {
1326
+ Provider: {
1327
+ ({ children, delayDuration, skipDelayDuration, disableHoverableContent }: TooltipProviderProps): react_jsx_runtime.JSX.Element;
1328
+ displayName: string;
1329
+ };
1330
+ Trigger: {
1331
+ <T extends react.ElementType = "button">(props: TooltipTriggerProps<T>): react_jsx_runtime.JSX.Element;
1332
+ displayName: string;
1333
+ };
1334
+ Content: {
1335
+ <T extends react.ElementType = "div">(props: TooltipContentProps<T>): react_jsx_runtime.JSX.Element;
1336
+ displayName: string;
1337
+ };
1338
+ Header: {
1339
+ <T extends react.ElementType = "div">(props: TooltipHeaderProps<T>): react_jsx_runtime.JSX.Element;
1340
+ displayName: string;
1341
+ };
1342
+ Description: {
1343
+ <T extends react.ElementType = "p">(props: TooltipDescriptionProps<T>): react_jsx_runtime.JSX.Element;
1344
+ displayName: string;
1345
+ };
1346
+ Arrow: {
1347
+ <T extends react.ElementType = "svg">(props: TooltipArrowProps<T>): react_jsx_runtime.JSX.Element;
1348
+ displayName: string;
1349
+ };
1350
+ };
1351
+
1352
+ export { Accordion, type AccordionContentProps, type AccordionCurrentValue, type AccordionHeaderProps, type AccordionHeadingLevel, type AccordionIndicatorProps, type AccordionIndicatorRenderState, type AccordionItemProps, type AccordionMode, type AccordionProps, type AccordionSize, type AccordionTriggerProps, type AccordionType, type AccordionValue, type AccordionValueChangeHandler, Badge, type BadgeAppearance, type BadgeProps, type BadgeSize, type BadgeSlot, type BadgeVariant, Button, type ButtonAppearance, type ButtonProps, type ButtonSize, type ButtonSlot, type ButtonVariant, Checkbox, type CheckboxIndicatorProps, type CheckboxIndicatorRenderProps, type CheckboxProps, type CheckboxRenderProps, type CheckboxSize, type CheckboxSlot, type CheckboxType, type ClassNamesMap, type ColorMode, type ComponentName, type ComponentThemeConfig, type ComponentThemeRegistry, type ComponentsThemeMap, type DataSlotName, Drawer, type DrawerBodyProps, type DrawerCloseButtonProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerHeaderProps, type DrawerOverlayProps, type DrawerPanelProps, type DrawerPlacement, type DrawerProps, type DrawerTitleProps, type DrawerTriggerProps, Field, type FieldDescriptionProps, type FieldDescriptionSlot, type FieldErrorMessageProps, type FieldErrorMessageSlot, type FieldLabelProps, type FieldLabelSlot, type FieldProps, type FieldSlot, Input, type InputContainerProps, type InputFieldProps, type InputPrefixProps, type InputProps, type InputSize, type InputSuffixProps, Popover, type PopoverArrowProps, type PopoverArrowSlot, type PopoverCloseProps, type PopoverCloseSlot, type PopoverContentProps, type PopoverContentSlot, type PopoverDescriptionProps, type PopoverDescriptionSlot, type PopoverHeaderProps, type PopoverHeaderSlot, type PopoverProps, type PopoverTriggerProps, type PopoverTriggerSlot, type PopoverVariant, Radio, type RadioIndicatorProps, type RadioItemProps, type RadioItemSlot, type RadioLabelProps, type RadioPosition, type RadioProps, type RadioRenderProps, type RadioSize, type RadioSlot, type RadioType, Select, type SelectContentProps, type SelectGroupProps, type SelectItemProps, type SelectItemTextProps, type SelectLabelProps, type SelectProps, type SelectSeparatorProps, type SelectSize, type SelectTriggerProps, type SelectValueProps, type SlotClassNames, type SlotPropsMap, type StateOnlyComponentThemeConfig$1 as StateOnlyComponentThemeConfig, Switch, type SwitchIndicatorProps, type SwitchIndicatorRenderProps, type SwitchProps, type SwitchRenderProps, type SwitchSize, type SwitchSlot, type SwitchVariant, TakeoffSparProvider, type TakeoffSparProviderProps, type TakeoffSparProviderValue, type ThemeValue, Tooltip, type TooltipArrowProps, type TooltipArrowSlot, type TooltipContentProps, type TooltipContentSlot, type TooltipDescriptionProps, type TooltipDescriptionSlot, type TooltipHeaderProps, type TooltipHeaderSlot, type TooltipProps, type TooltipProviderProps, type TooltipTriggerProps, type TooltipTriggerSlot, type TooltipVariant, useComponentTheme, useTheme };