@flood-md/react 0.2.2 → 0.2.4

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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type ButtonHTMLAttributes, type InputHTMLAttributes, type TextareaHTMLAttributes, type AnchorHTMLAttributes, type ReactNode, type HTMLAttributes } from "react";
1
+ import { type ButtonHTMLAttributes, type InputHTMLAttributes, type TextareaHTMLAttributes, type SelectHTMLAttributes, type AnchorHTMLAttributes, type ReactNode, type HTMLAttributes, type CSSProperties, type LabelHTMLAttributes, type FieldsetHTMLAttributes, type RefCallback, type RefObject, type TableHTMLAttributes, type ImgHTMLAttributes } from "react";
2
2
  export type ControlSize = "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
3
3
  export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
4
4
  variant?: "solid" | "subtle" | "outline" | "ghost";
@@ -6,39 +6,389 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
6
6
  loading?: boolean;
7
7
  }
8
8
  export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
9
+ export type FieldStatus = "error" | "warning" | "success" | "info";
10
+ export type ContentSize = "sm" | "md" | "lg";
11
+ export interface KbdProps extends HTMLAttributes<HTMLElement> {
12
+ size?: ContentSize;
13
+ }
14
+ /** @since 0.2.4 */
15
+ export declare const Kbd: import("react").ForwardRefExoticComponent<KbdProps & import("react").RefAttributes<HTMLElement>>;
16
+ export interface ToolbarProps extends Omit<HTMLAttributes<HTMLDivElement>, "role"> {
17
+ label: string;
18
+ orientation?: "horizontal" | "vertical";
19
+ loop?: boolean;
20
+ }
21
+ /** @since 0.2.4 */
22
+ export declare const Toolbar: import("react").ForwardRefExoticComponent<ToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
23
+ export type DataDensity = "compact" | "comfortable";
24
+ export interface DescriptionItem {
25
+ id: string;
26
+ term: string;
27
+ description: ReactNode;
28
+ }
29
+ export interface DescriptionListProps extends Omit<HTMLAttributes<HTMLDListElement>, "children"> {
30
+ items: readonly DescriptionItem[];
31
+ layout?: "inline" | "stacked";
32
+ density?: DataDensity;
33
+ dividers?: boolean;
34
+ }
35
+ /** @since 0.2.4 */
36
+ export declare const DescriptionList: import("react").ForwardRefExoticComponent<DescriptionListProps & import("react").RefAttributes<HTMLDListElement>>;
37
+ export interface TableProps extends Omit<TableHTMLAttributes<HTMLTableElement>, "children"> {
38
+ caption: string;
39
+ children: ReactNode;
40
+ hideCaption?: boolean;
41
+ density?: DataDensity;
42
+ striped?: boolean;
43
+ scrollLabel?: string;
44
+ }
45
+ /** @since 0.2.4 */
46
+ export declare const Table: import("react").ForwardRefExoticComponent<TableProps & import("react").RefAttributes<HTMLTableElement>>;
47
+ export type SemanticTone = "neutral" | "accent" | "error" | "warning" | "success" | "info";
48
+ export type BadgeTone = SemanticTone;
49
+ export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
50
+ size?: ContentSize;
51
+ tone?: BadgeTone;
52
+ variant?: "subtle" | "outline";
53
+ }
54
+ /** @since 0.2.4 */
55
+ export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLSpanElement>>;
56
+ export interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children" | "role" | "aria-label" | "aria-hidden"> {
57
+ size?: ContentSize;
58
+ label?: string;
59
+ decorative?: boolean;
60
+ }
61
+ /** @since 0.2.4 */
62
+ export declare const Spinner: import("react").ForwardRefExoticComponent<SpinnerProps & import("react").RefAttributes<HTMLSpanElement>>;
63
+ export interface SkeletonProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children" | "role" | "tabIndex" | "aria-label" | "aria-hidden"> {
64
+ shape?: "text" | "rounded" | "circle";
65
+ width?: CSSProperties["width"];
66
+ height?: CSSProperties["height"];
67
+ animate?: boolean;
68
+ }
69
+ /** @since 0.2.4 */
70
+ export declare const Skeleton: import("react").ForwardRefExoticComponent<SkeletonProps & import("react").RefAttributes<HTMLSpanElement>>;
71
+ export interface AvatarProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children" | "role" | "aria-label" | "aria-hidden"> {
72
+ name: string;
73
+ src?: string;
74
+ fallback?: string;
75
+ size?: ContentSize;
76
+ shape?: "circle" | "rounded";
77
+ decorative?: boolean;
78
+ }
79
+ /** @since 0.2.4 */
80
+ export declare const Avatar: import("react").ForwardRefExoticComponent<AvatarProps & import("react").RefAttributes<HTMLSpanElement>>;
81
+ export interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "role"> {
82
+ label: string;
83
+ value?: number;
84
+ max?: number;
85
+ valueText?: string;
86
+ size?: ContentSize;
87
+ tone?: SemanticTone;
88
+ hideLabel?: boolean;
89
+ }
90
+ /** @since 0.2.4 */
91
+ export declare const Progress: import("react").ForwardRefExoticComponent<ProgressProps & import("react").RefAttributes<HTMLDivElement>>;
92
+ export interface MeterProps extends Omit<ProgressProps, "value"> {
93
+ value: number;
94
+ min?: number;
95
+ }
96
+ /** @since 0.2.4 */
97
+ export declare const Meter: import("react").ForwardRefExoticComponent<MeterProps & import("react").RefAttributes<HTMLDivElement>>;
98
+ export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "role" | "aria-live"> {
99
+ title?: string;
100
+ tone?: "neutral" | FieldStatus;
101
+ icon?: ReactNode;
102
+ announcement?: "off" | "polite" | "assertive";
103
+ }
104
+ /** @since 0.2.4 */
105
+ export declare const Alert: import("react").ForwardRefExoticComponent<AlertProps & import("react").RefAttributes<HTMLDivElement>>;
106
+ export interface TabItem {
107
+ value: string;
108
+ label: string;
109
+ content: ReactNode;
110
+ icon?: ReactNode;
111
+ disabled?: boolean;
112
+ }
113
+ export interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "defaultValue" | "onChange"> {
114
+ label: string;
115
+ items: readonly TabItem[];
116
+ value?: string;
117
+ defaultValue?: string;
118
+ onValueChange?: (value: string) => void;
119
+ activationMode?: "automatic" | "manual";
120
+ orientation?: "horizontal" | "vertical";
121
+ controlSize?: "sm" | "md" | "lg" | "xl";
122
+ disabled?: boolean;
123
+ iconOnly?: boolean;
124
+ }
125
+ export declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<HTMLDivElement>>;
126
+ export interface BreadcrumbItem {
127
+ label: string;
128
+ href?: string;
129
+ }
130
+ export interface BreadcrumbProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
131
+ items: readonly BreadcrumbItem[];
132
+ label?: string;
133
+ separator?: string;
134
+ }
135
+ export declare const Breadcrumb: import("react").ForwardRefExoticComponent<BreadcrumbProps & import("react").RefAttributes<HTMLElement>>;
136
+ export interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, "children" | "onChange"> {
137
+ page: number;
138
+ pageCount: number;
139
+ onPageChange?: (page: number) => void;
140
+ getHref?: (page: number) => string;
141
+ siblingCount?: 0 | 1 | 2;
142
+ controlSize?: "sm" | "md" | "lg" | "xl";
143
+ disabled?: boolean;
144
+ label?: string;
145
+ previousLabel?: string;
146
+ nextLabel?: string;
147
+ pageLabel?: (page: number) => string;
148
+ }
149
+ export declare const Pagination: import("react").ForwardRefExoticComponent<PaginationProps & import("react").RefAttributes<HTMLElement>>;
150
+ export interface OverlayTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
151
+ ref: RefCallback<HTMLButtonElement>;
152
+ }
153
+ export interface MenuActionItem {
154
+ id: string;
155
+ type?: "item";
156
+ label: string;
157
+ icon?: ReactNode;
158
+ shortcut?: string;
159
+ disabled?: boolean;
160
+ tone?: "default" | "danger";
161
+ }
162
+ export interface MenuSeparator {
163
+ id: string;
164
+ type: "separator";
165
+ }
166
+ export type MenuItem = MenuActionItem | MenuSeparator;
167
+ export interface MenuProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "role"> {
168
+ label: string;
169
+ trigger: (props: OverlayTriggerProps) => ReactNode;
170
+ items: readonly MenuItem[];
171
+ onAction?: (id: string) => void;
172
+ open?: boolean;
173
+ defaultOpen?: boolean;
174
+ onOpenChange?: (open: boolean) => void;
175
+ disabled?: boolean;
176
+ side?: "top" | "bottom" | "left" | "right";
177
+ align?: "start" | "center" | "end";
178
+ controlSize?: "sm" | "md" | "lg" | "xl";
179
+ }
180
+ /** @since 0.2.4 */
181
+ export declare const Menu: import("react").ForwardRefExoticComponent<MenuProps & import("react").RefAttributes<HTMLDivElement>>;
182
+ export interface TooltipProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "content" | "title" | "role"> {
183
+ content: string;
184
+ trigger: (props: OverlayTriggerProps) => ReactNode;
185
+ side?: "top" | "bottom" | "left" | "right";
186
+ align?: "start" | "center" | "end";
187
+ delay?: number;
188
+ disabled?: boolean;
189
+ }
190
+ export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & import("react").RefAttributes<HTMLDivElement>>;
191
+ export interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "title" | "role"> {
192
+ title: string;
193
+ trigger: (props: OverlayTriggerProps) => ReactNode;
194
+ children?: ReactNode;
195
+ open?: boolean;
196
+ defaultOpen?: boolean;
197
+ onOpenChange?: (open: boolean) => void;
198
+ disabled?: boolean;
199
+ side?: "top" | "bottom" | "left" | "right";
200
+ align?: "start" | "center" | "end";
201
+ closeLabel?: string;
202
+ initialFocusRef?: RefObject<HTMLElement | null>;
203
+ }
204
+ export declare const Popover: import("react").ForwardRefExoticComponent<PopoverProps & import("react").RefAttributes<HTMLDivElement>>;
205
+ export interface DialogProps extends Omit<HTMLAttributes<HTMLDialogElement>, "children" | "title" | "role"> {
206
+ title: string;
207
+ description?: string;
208
+ trigger: (props: OverlayTriggerProps) => ReactNode;
209
+ children?: ReactNode;
210
+ open?: boolean;
211
+ defaultOpen?: boolean;
212
+ onOpenChange?: (open: boolean) => void;
213
+ disabled?: boolean;
214
+ closeLabel?: string;
215
+ closeOnOutsideClick?: boolean;
216
+ initialFocusRef?: RefObject<HTMLElement | null>;
217
+ }
218
+ export declare const Dialog: import("react").ForwardRefExoticComponent<DialogProps & import("react").RefAttributes<HTMLDialogElement>>;
219
+ export interface CollapsibleProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "onChange"> {
220
+ title: string;
221
+ open?: boolean;
222
+ defaultOpen?: boolean;
223
+ onOpenChange?: (open: boolean) => void;
224
+ disabled?: boolean;
225
+ controlSize?: "sm" | "md" | "lg" | "xl";
226
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
227
+ }
228
+ export declare const Collapsible: import("react").ForwardRefExoticComponent<CollapsibleProps & import("react").RefAttributes<HTMLDivElement>>;
229
+ export interface AccordionItem {
230
+ value: string;
231
+ title: string;
232
+ content: ReactNode;
233
+ disabled?: boolean;
234
+ }
235
+ export interface AccordionProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "role" | "defaultValue" | "onChange"> {
236
+ label: string;
237
+ items: readonly AccordionItem[];
238
+ expansionMode?: "single" | "multiple";
239
+ value?: readonly string[];
240
+ defaultValue?: readonly string[];
241
+ onValueChange?: (value: string[]) => void;
242
+ disabled?: boolean;
243
+ controlSize?: "sm" | "md" | "lg" | "xl";
244
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
245
+ }
246
+ export declare const Accordion: import("react").ForwardRefExoticComponent<AccordionProps & import("react").RefAttributes<HTMLDivElement>>;
247
+ export interface ToggleProps extends Omit<ButtonProps, "aria-pressed" | "type" | "role" | "defaultValue"> {
248
+ pressed?: boolean;
249
+ defaultPressed?: boolean;
250
+ onPressedChange?: (pressed: boolean) => void;
251
+ iconOnly?: boolean;
252
+ }
253
+ /** A native toggle button; its accessible name stays stable when pressed. */
254
+ export declare const Toggle: import("react").ForwardRefExoticComponent<ToggleProps & import("react").RefAttributes<HTMLButtonElement>>;
255
+ export interface ToggleOption {
256
+ value: string;
257
+ label: string;
258
+ icon?: ReactNode;
259
+ disabled?: boolean;
260
+ }
261
+ export interface ToggleGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, "role" | "children" | "defaultValue" | "onChange"> {
262
+ label: string;
263
+ options: readonly ToggleOption[];
264
+ selectionMode?: "single" | "multiple";
265
+ value?: readonly string[];
266
+ defaultValue?: readonly string[];
267
+ onValueChange?: (value: string[]) => void;
268
+ orientation?: "horizontal" | "vertical";
269
+ size?: ControlSize;
270
+ variant?: "solid" | "subtle" | "outline" | "ghost";
271
+ disabled?: boolean;
272
+ iconOnly?: boolean;
273
+ }
274
+ /** Optional selections exposed as pressed buttons, not radios, tabs or a toolbar. */
275
+ export declare const ToggleGroup: import("react").ForwardRefExoticComponent<ToggleGroupProps & import("react").RefAttributes<HTMLDivElement>>;
276
+ export interface ButtonGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, "role"> {
277
+ label: string;
278
+ orientation?: "horizontal" | "vertical";
279
+ }
280
+ /** Connected actions keep their ordinary Tab order; this is not a toolbar. */
281
+ export declare const ButtonGroup: import("react").ForwardRefExoticComponent<ButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>;
9
282
  export interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
283
+ status?: FieldStatus;
10
284
  invalid?: boolean;
11
285
  controlSize?: "sm" | "md" | "lg" | "xl";
12
286
  }
13
287
  export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
288
+ export interface InputGroupProps extends Omit<InputProps, "children" | "type"> {
289
+ type?: "text" | "email" | "password" | "search" | "tel" | "url" | "number";
290
+ start?: ReactNode;
291
+ end?: ReactNode;
292
+ }
293
+ /** One real Input with host-owned logical start/end adornments. Ref and native attributes target the input. */
294
+ export declare const InputGroup: import("react").ForwardRefExoticComponent<InputGroupProps & import("react").RefAttributes<HTMLInputElement>>;
14
295
  export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
296
+ status?: FieldStatus;
15
297
  invalid?: boolean;
16
298
  controlSize?: "sm" | "md" | "lg" | "xl";
17
299
  }
18
300
  export declare const Textarea: import("react").ForwardRefExoticComponent<TextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
301
+ export interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
302
+ status?: FieldStatus;
303
+ invalid?: boolean;
304
+ controlSize?: "sm" | "md" | "lg" | "xl";
305
+ }
306
+ /** Native select and option semantics with an independent visual control size. */
307
+ export declare const Select: import("react").ForwardRefExoticComponent<SelectProps & import("react").RefAttributes<HTMLSelectElement>>;
19
308
  export interface ChoiceProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "size"> {
20
309
  label: ReactNode;
21
310
  }
22
- export declare const Checkbox: import("react").ForwardRefExoticComponent<ChoiceProps & import("react").RefAttributes<HTMLInputElement>>;
311
+ export interface CheckboxProps extends ChoiceProps {
312
+ indeterminate?: boolean;
313
+ }
314
+ export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
23
315
  export declare const Radio: import("react").ForwardRefExoticComponent<ChoiceProps & import("react").RefAttributes<HTMLInputElement>>;
24
316
  export declare const Switch: import("react").ForwardRefExoticComponent<ChoiceProps & import("react").RefAttributes<HTMLInputElement>>;
317
+ export interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
318
+ required?: boolean;
319
+ }
320
+ /** A native label; the required marker never substitutes for the control's required prop. */
321
+ export declare const Label: import("react").ForwardRefExoticComponent<LabelProps & import("react").RefAttributes<HTMLLabelElement>>;
322
+ export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
323
+ legend: ReactNode;
324
+ /** @since 0.2.3 */
325
+ hideLabel?: boolean;
326
+ hint?: ReactNode;
327
+ error?: ReactNode;
328
+ message?: ReactNode;
329
+ status?: FieldStatus;
330
+ }
331
+ /** A native group: disabled, form ownership and nested fieldsets retain browser behavior. */
332
+ export declare const Fieldset: import("react").ForwardRefExoticComponent<FieldsetProps & import("react").RefAttributes<HTMLFieldSetElement>>;
333
+ export interface ChoiceOption {
334
+ value: string;
335
+ label: ReactNode;
336
+ disabled?: boolean;
337
+ }
338
+ export interface RadioGroupProps extends Omit<FieldsetProps, "children" | "defaultValue" | "role"> {
339
+ name: string;
340
+ options: readonly ChoiceOption[];
341
+ value?: string;
342
+ defaultValue?: string;
343
+ onValueChange?: (value: string) => void;
344
+ orientation?: "vertical" | "horizontal";
345
+ required?: boolean;
346
+ }
347
+ export declare const RadioGroup: import("react").ForwardRefExoticComponent<RadioGroupProps & import("react").RefAttributes<HTMLFieldSetElement>>;
348
+ export interface SegmentedControlProps extends Omit<RadioGroupProps, "legend" | "options"> {
349
+ label: string;
350
+ options: readonly ToggleOption[];
351
+ controlSize?: "sm" | "md" | "lg" | "xl";
352
+ iconOnly?: boolean;
353
+ fullWidth?: boolean;
354
+ }
355
+ /** A segmented presentation of native single-choice inputs, retaining forms and reset. */
356
+ export declare const SegmentedControl: import("react").ForwardRefExoticComponent<SegmentedControlProps & import("react").RefAttributes<HTMLFieldSetElement>>;
357
+ export interface CheckboxGroupProps extends Omit<FieldsetProps, "children" | "defaultValue" | "role"> {
358
+ name: string;
359
+ options: readonly ChoiceOption[];
360
+ value?: readonly string[];
361
+ defaultValue?: readonly string[];
362
+ onValueChange?: (value: string[]) => void;
363
+ orientation?: "vertical" | "horizontal";
364
+ }
365
+ export declare const CheckboxGroup: import("react").ForwardRefExoticComponent<CheckboxGroupProps & import("react").RefAttributes<HTMLFieldSetElement>>;
25
366
  export interface FieldControlProps {
26
367
  id: string;
27
368
  "aria-describedby"?: string;
28
369
  "aria-invalid"?: true;
370
+ status?: FieldStatus;
29
371
  required?: boolean;
30
372
  }
31
373
  export interface FieldProps {
374
+ status?: FieldStatus;
375
+ message?: ReactNode;
32
376
  id?: string;
33
377
  label: ReactNode;
378
+ /** @since 0.2.3 */
379
+ hideLabel?: boolean;
34
380
  hint?: ReactNode;
35
381
  error?: ReactNode;
36
382
  required?: boolean;
37
383
  describedBy?: string;
38
384
  children: (props: FieldControlProps) => ReactNode;
39
385
  }
40
- export declare function Field({ id: explicitId, label, hint, error, required, describedBy, children, }: FieldProps): import("react").JSX.Element;
41
- export declare const Link: import("react").ForwardRefExoticComponent<AnchorHTMLAttributes<HTMLAnchorElement> & import("react").RefAttributes<HTMLAnchorElement>>;
386
+ export declare function Field({ status, message, id: explicitId, label, hideLabel, hint, error, required, describedBy, children, }: FieldProps): import("react").JSX.Element;
387
+ export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
388
+ variant?: "text" | "solid" | "subtle" | "outline" | "ghost";
389
+ size?: ControlSize;
390
+ }
391
+ export declare const Link: import("react").ForwardRefExoticComponent<LinkProps & import("react").RefAttributes<HTMLAnchorElement>>;
42
392
  /** Explicit opt-in to the dark foundations profile; no global theme mutation. */
43
393
  export declare const FloodRoot: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
44
394
  export interface TextProps extends HTMLAttributes<HTMLElement> {
@@ -66,6 +416,66 @@ export interface SurfaceProps extends HTMLAttributes<HTMLDivElement> {
66
416
  padding?: Space;
67
417
  }
68
418
  export declare const Surface: import("react").ForwardRefExoticComponent<SurfaceProps & import("react").RefAttributes<HTMLDivElement>>;
419
+ export interface ContainerProps extends HTMLAttributes<HTMLDivElement> {
420
+ size?: "sm" | "md" | "lg" | "full";
421
+ gutter?: Space;
422
+ }
423
+ /** Centered content with logical gutters; max width includes padding. @since 0.2.4 */
424
+ export declare const Container: import("react").ForwardRefExoticComponent<ContainerProps & import("react").RefAttributes<HTMLDivElement>>;
425
+ export interface GridProps extends HTMLAttributes<HTMLDivElement> {
426
+ columns?: 1 | 2 | 3 | 4 | 6 | 12;
427
+ minItemWidth?: string;
428
+ gap?: Space;
429
+ }
430
+ /** Auto-fit by default; explicit columns retain their count at every width. @since 0.2.4 */
431
+ export declare const Grid: import("react").ForwardRefExoticComponent<GridProps & import("react").RefAttributes<HTMLDivElement>>;
432
+ export interface VisuallyHiddenProps extends HTMLAttributes<HTMLElement> {
433
+ as?: "span" | "div";
434
+ focusable?: boolean;
435
+ }
436
+ /** Nonvisual content, with optional reveal when a descendant receives focus. @since 0.2.4 */
437
+ export declare const VisuallyHidden: import("react").ForwardRefExoticComponent<VisuallyHiddenProps & import("react").RefAttributes<HTMLElement>>;
438
+ export interface AspectRatioProps extends HTMLAttributes<HTMLDivElement> {
439
+ ratio?: number;
440
+ }
441
+ /** Reserve media geometry. Child content may overflow rather than being clipped. @since 0.2.4 */
442
+ export declare const AspectRatio: import("react").ForwardRefExoticComponent<AspectRatioProps & import("react").RefAttributes<HTMLDivElement>>;
443
+ export interface ImageProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, "alt"> {
444
+ alt: string;
445
+ fit?: "cover" | "contain";
446
+ }
447
+ /** Native image semantics, explicit alternative text and bounded media fitting. @since 0.2.4 */
448
+ export declare const Image: import("react").ForwardRefExoticComponent<ImageProps & import("react").RefAttributes<HTMLImageElement>>;
449
+ export interface ListProps extends Omit<HTMLAttributes<HTMLUListElement | HTMLOListElement>, "role"> {
450
+ ordered?: boolean;
451
+ start?: number;
452
+ reversed?: boolean;
453
+ marker?: boolean;
454
+ gap?: Space;
455
+ }
456
+ /** Native list items supplied by the host; hidden markers retain list semantics. @since 0.2.4 */
457
+ export declare const List: import("react").ForwardRefExoticComponent<ListProps & import("react").RefAttributes<HTMLOListElement | HTMLUListElement>>;
458
+ export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "children"> {
459
+ title: string;
460
+ description?: ReactNode;
461
+ icon?: ReactNode;
462
+ actions?: ReactNode;
463
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
464
+ density?: "compact" | "comfortable";
465
+ }
466
+ /** Static empty content, not loading, an error boundary or a live announcement. @since 0.2.4 */
467
+ export declare const EmptyState: import("react").ForwardRefExoticComponent<EmptyStateProps & import("react").RefAttributes<HTMLDivElement>>;
468
+ export interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
469
+ title?: ReactNode;
470
+ description?: ReactNode;
471
+ actions?: ReactNode;
472
+ footer?: ReactNode;
473
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
474
+ density?: "compact" | "comfortable";
475
+ elevation?: "default" | "raised";
476
+ }
477
+ /** A structured content surface, not an interactive wrapper. @since 0.2.4 */
478
+ export declare const Card: import("react").ForwardRefExoticComponent<CardProps & import("react").RefAttributes<HTMLDivElement>>;
69
479
  export interface IconSlotProps extends HTMLAttributes<HTMLSpanElement> {
70
480
  size?: ControlSize;
71
481
  label?: string;
@@ -79,7 +489,14 @@ export declare const IconButton: import("react").ForwardRefExoticComponent<IconB
79
489
  export declare const Divider: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLHRElement> & import("react").RefAttributes<HTMLHRElement>>;
80
490
  export interface CodeSnippetProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
81
491
  code: string;
492
+ codeDirection?: "ltr" | "rtl" | "auto";
82
493
  action?: ReactNode;
83
494
  }
84
495
  /** Selectable code with an optional host-owned action; no clipboard side effects. */
85
496
  export declare const CodeSnippet: import("react").ForwardRefExoticComponent<CodeSnippetProps & import("react").RefAttributes<HTMLDivElement>>;
497
+ export interface ScrollAreaProps extends HTMLAttributes<HTMLDivElement> {
498
+ orientation?: "vertical" | "horizontal" | "both";
499
+ contentInset?: "none" | "scrollbar";
500
+ }
501
+ /** Native scrolling with inset overlay tracks; the ref targets the scrollable viewport. */
502
+ export declare const ScrollArea: import("react").ForwardRefExoticComponent<ScrollAreaProps & import("react").RefAttributes<HTMLDivElement>>;