@kazee-ds/react 0.5.5 → 0.6.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.
Files changed (53) hide show
  1. package/README.md +3 -1
  2. package/dist/index.js +2457 -620
  3. package/dist/index.js.map +1 -1
  4. package/dist/types/Alert.d.ts +20 -4
  5. package/dist/types/Badge.d.ts +2 -1
  6. package/dist/types/Breadcrumb.d.ts +24 -2
  7. package/dist/types/Button.d.ts +3 -2
  8. package/dist/types/ButtonGroup.d.ts +4 -3
  9. package/dist/types/Card.d.ts +27 -2
  10. package/dist/types/Chart.d.ts +13 -2
  11. package/dist/types/Checkbox.d.ts +11 -2
  12. package/dist/types/Combobox.d.ts +13 -3
  13. package/dist/types/DataTable.d.ts +23 -2
  14. package/dist/types/DateRangePicker.d.ts +20 -2
  15. package/dist/types/Dialog.d.ts +20 -2
  16. package/dist/types/DropdownMenu.d.ts +21 -2
  17. package/dist/types/Empty.d.ts +12 -2
  18. package/dist/types/FieldComponent.d.ts +3 -2
  19. package/dist/types/Form.d.ts +3 -2
  20. package/dist/types/Input.d.ts +12 -2
  21. package/dist/types/Label.d.ts +4 -3
  22. package/dist/types/Listbox.d.ts +11 -2
  23. package/dist/types/NumberField.d.ts +12 -2
  24. package/dist/types/Pagination.d.ts +29 -2
  25. package/dist/types/Popover.d.ts +19 -2
  26. package/dist/types/RadioGroup.d.ts +12 -2
  27. package/dist/types/Select.d.ts +17 -5
  28. package/dist/types/SelectGroup.d.ts +3 -2
  29. package/dist/types/Separator.d.ts +2 -1
  30. package/dist/types/Sidebar.d.ts +16 -2
  31. package/dist/types/Skeleton.d.ts +2 -1
  32. package/dist/types/Spinner.d.ts +3 -2
  33. package/dist/types/Switch.d.ts +11 -2
  34. package/dist/types/Table.d.ts +16 -2
  35. package/dist/types/Tabs.d.ts +36 -3
  36. package/dist/types/Textarea.d.ts +13 -2
  37. package/dist/types/Toast.d.ts +31 -7
  38. package/dist/types/ToggleButton.d.ts +3 -2
  39. package/dist/types/ToggleButtonGroup.d.ts +2 -1
  40. package/dist/types/ToggleGroup.d.ts +18 -3
  41. package/dist/types/Tooltip.d.ts +12 -2
  42. package/dist/types/choice-composition.d.ts +32 -0
  43. package/dist/types/combobox-composition.d.ts +22 -0
  44. package/dist/types/control-composition.d.ts +72 -0
  45. package/dist/types/date-range-composition.d.ts +46 -0
  46. package/dist/types/field.d.ts +6 -1
  47. package/dist/types/index.d.ts +27 -0
  48. package/dist/types/label-context.d.ts +8 -0
  49. package/dist/types/layout-parts.d.ts +44 -0
  50. package/dist/types/number-composition.d.ts +24 -0
  51. package/dist/types/structural-parts.d.ts +56 -0
  52. package/dist/types/styling.d.ts +8 -0
  53. package/package.json +1 -1
@@ -1,7 +1,9 @@
1
- import type { ReactNode } from 'react';
1
+ import { type StylingProps } from './styling.js';
2
+ import type { ReactNode, HTMLAttributes } from 'react';
2
3
  import type { BadgeTone } from './Badge.js';
3
- export interface AlertProps {
4
- title: string;
4
+ export type AlertPart = 'root' | 'title' | 'description' | 'actions';
5
+ export interface AlertProps extends StylingProps<AlertPart> {
6
+ title?: string;
5
7
  description?: string;
6
8
  tone?: BadgeTone;
7
9
  announcement?: 'off' | 'polite' | 'assertive';
@@ -9,4 +11,18 @@ export interface AlertProps {
9
11
  actions?: ReactNode;
10
12
  id?: string;
11
13
  }
12
- export declare function Alert({ title, description, tone, announcement, children, actions, id, }: AlertProps): import("react").JSX.Element;
14
+ declare function AlertRoot({ className, style, classNames, title, description, tone, announcement, children, actions, id, }: AlertProps): import("react").JSX.Element;
15
+ export declare function AlertTitle({ className, ...props }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
16
+ export declare function AlertDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
17
+ export declare function AlertContent({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
18
+ export declare function AlertActions({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
19
+ export declare function AlertIndicator({ className, ...props }: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
20
+ export declare const Alert: typeof AlertRoot & {
21
+ Root: typeof AlertRoot;
22
+ Title: typeof AlertTitle;
23
+ Description: typeof AlertDescription;
24
+ Content: typeof AlertContent;
25
+ Actions: typeof AlertActions;
26
+ Indicator: typeof AlertIndicator;
27
+ };
28
+ export {};
@@ -1,7 +1,8 @@
1
1
  import type { HTMLAttributes } from 'react';
2
2
  export type BadgeTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
3
3
  export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
4
+ classNames?: Partial<Record<'root', string>>;
4
5
  tone?: BadgeTone;
5
6
  }
6
7
  /** Static status text. Dynamic announcements belong in an application-owned live region. */
7
- export declare function Badge({ tone, className, ...props }: BadgeProps): import("react").JSX.Element;
8
+ export declare function Badge({ tone, className, classNames, ...props }: BadgeProps): import("react").JSX.Element;
@@ -1,8 +1,30 @@
1
+ import { type StylingProps } from './styling.js';
1
2
  import type { BreadcrumbItem } from './dashboard-types.js';
2
- export interface BreadcrumbProps {
3
+ import type { HTMLAttributes, AnchorHTMLAttributes } from 'react';
4
+ export type BreadcrumbPart = 'root' | 'list' | 'item' | 'separator' | 'link' | 'current';
5
+ export interface BreadcrumbProps extends StylingProps<BreadcrumbPart> {
3
6
  items: BreadcrumbItem[];
4
7
  label?: string;
5
8
  dir?: 'ltr' | 'rtl';
6
9
  id?: string;
7
10
  }
8
- export declare function Breadcrumb({ items, label, dir, id }: BreadcrumbProps): import("react").JSX.Element;
11
+ export declare function BreadcrumbRoot({ className, label, ...props }: HTMLAttributes<HTMLElement> & {
12
+ label?: string;
13
+ }): import("react").JSX.Element;
14
+ export declare function BreadcrumbList(props: HTMLAttributes<HTMLOListElement>): import("react").JSX.Element;
15
+ export declare function BreadcrumbItemPart(props: HTMLAttributes<HTMLLIElement>): import("react").JSX.Element;
16
+ export declare function BreadcrumbLink({ children, ...props }: AnchorHTMLAttributes<HTMLAnchorElement>): import("react").JSX.Element;
17
+ export declare function BreadcrumbCurrent(props: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
18
+ export declare function BreadcrumbSeparator({ className, children, ...props }: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
19
+ declare function BreadcrumbComponent(props: BreadcrumbProps | (HTMLAttributes<HTMLElement> & {
20
+ label?: string;
21
+ })): import("react").JSX.Element;
22
+ export declare const Breadcrumb: typeof BreadcrumbComponent & {
23
+ Root: typeof BreadcrumbRoot;
24
+ List: typeof BreadcrumbList;
25
+ Item: typeof BreadcrumbItemPart;
26
+ Link: typeof BreadcrumbLink;
27
+ Current: typeof BreadcrumbCurrent;
28
+ Separator: typeof BreadcrumbSeparator;
29
+ };
30
+ export {};
@@ -1,3 +1,4 @@
1
+ import { type StylingProps } from './styling.js';
1
2
  import { type ButtonProps as AriaButtonProps } from 'react-aria-components/Button';
2
3
  import { type ReactNode } from 'react';
3
4
  export type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'outline' | 'tertiary' | 'ghost' | 'danger-soft' | 'ai';
@@ -17,7 +18,7 @@ export interface ButtonRenderProps {
17
18
  * The props the design system supports on `Button`. Anything not listed here is not part of the
18
19
  * public API, even if the underlying React Aria button would accept it.
19
20
  */
20
- export interface ButtonProps {
21
+ export interface ButtonProps extends StylingProps {
21
22
  /** Label or content of the button. */
22
23
  children?: ReactNode | ((state: ButtonRenderProps) => ReactNode);
23
24
  /** Square icon button. Supply aria-label or aria-labelledby. */
@@ -50,4 +51,4 @@ export interface ButtonProps {
50
51
  /** Focuses the button when it first renders. */
51
52
  autoFocus?: boolean;
52
53
  }
53
- export declare function Button({ variant, size, isIconOnly, isPending, isDisabled, fullWidth, type, children, ...props }: ButtonProps): import("react").JSX.Element;
54
+ export declare function Button({ variant, size, isIconOnly, isPending, isDisabled, fullWidth, type, children, className: consumerClassName, classNames, style, ...props }: ButtonProps): import("react").JSX.Element;
@@ -1,6 +1,7 @@
1
+ import { type StylingProps } from './styling.js';
1
2
  import { type ReactNode } from 'react';
2
3
  import { type ButtonSize, type ButtonVariant } from './Button.js';
3
- export interface ButtonGroupProps {
4
+ export interface ButtonGroupProps extends StylingProps {
4
5
  label: string;
5
6
  children: ReactNode;
6
7
  variant?: ButtonVariant;
@@ -10,8 +11,8 @@ export interface ButtonGroupProps {
10
11
  orientation?: 'horizontal' | 'vertical';
11
12
  dir?: 'ltr' | 'rtl';
12
13
  }
13
- export declare function ButtonGroupSeparator(): import("react").JSX.Element;
14
- declare function Root({ children, label, variant, size, isDisabled, fullWidth, orientation, dir, }: ButtonGroupProps): import("react").JSX.Element;
14
+ export declare function ButtonGroupSeparator({ className, style, classNames }?: StylingProps): import("react").JSX.Element;
15
+ declare function Root({ children, label, variant, size, isDisabled, fullWidth, orientation, dir, className, style, classNames, }: ButtonGroupProps): import("react").JSX.Element;
15
16
  export declare const ButtonGroup: typeof Root & {
16
17
  Separator: typeof ButtonGroupSeparator;
17
18
  };
@@ -1,5 +1,7 @@
1
1
  import type { HTMLAttributes, ReactNode } from 'react';
2
- export interface CardProps extends HTMLAttributes<HTMLDivElement> {
2
+ import { type StylingProps } from './styling.js';
3
+ export type CardPart = 'root' | 'header' | 'heading' | 'titleRow' | 'title' | 'description' | 'actions' | 'content' | 'footer';
4
+ export interface CardProps extends HTMLAttributes<HTMLDivElement>, StylingProps<CardPart> {
3
5
  title?: string;
4
6
  description?: string;
5
7
  headingLevel?: 2 | 3 | 4 | 5 | 6;
@@ -11,4 +13,27 @@ export interface CardProps extends HTMLAttributes<HTMLDivElement> {
11
13
  footer?: ReactNode;
12
14
  }
13
15
  /** A content container; place links and buttons inside rather than making it clickable. */
14
- export declare function Card({ title, description, headingLevel, actions, header, titleExtras, footer, children, className, ...props }: CardProps): import("react").JSX.Element;
16
+ declare function CompactCard({ title, description, headingLevel, actions, header, titleExtras, footer, children, className, classNames, ...props }: CardProps): import("react").JSX.Element;
17
+ export declare function CardRoot({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
18
+ export declare function CardHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
19
+ export declare function CardHeading({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
20
+ export declare function CardTitleRow({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
21
+ export declare function CardTitle({ className, headingLevel, ...props }: HTMLAttributes<HTMLHeadingElement> & {
22
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
23
+ }): import("react").JSX.Element;
24
+ export declare function CardDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
25
+ export declare function CardActions({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
26
+ export declare function CardContent({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
27
+ export declare function CardFooter({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
28
+ export declare const Card: typeof CompactCard & {
29
+ Root: typeof CardRoot;
30
+ Header: typeof CardHeader;
31
+ Heading: typeof CardHeading;
32
+ TitleRow: typeof CardTitleRow;
33
+ Title: typeof CardTitle;
34
+ Description: typeof CardDescription;
35
+ Actions: typeof CardActions;
36
+ Content: typeof CardContent;
37
+ Footer: typeof CardFooter;
38
+ };
39
+ export {};
@@ -1,5 +1,9 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ import { ChartRoot, ChartTitle, ChartDescription, ChartPlot } from './layout-parts.js';
3
+ import { type StylingProps } from './styling.js';
1
4
  import type { ChartDatum } from './dashboard-types.js';
2
- export interface ChartProps {
5
+ export type ChartPart = 'root' | 'title' | 'description' | 'plot' | 'axis' | 'line' | 'bar' | 'label' | 'table' | 'empty';
6
+ export interface ChartProps extends StylingProps<ChartPart> {
3
7
  label: string;
4
8
  data: ChartDatum[];
5
9
  type?: 'bar' | 'line';
@@ -12,4 +16,11 @@ export interface ChartProps {
12
16
  id?: string;
13
17
  dir?: 'ltr' | 'rtl';
14
18
  }
15
- export declare function Chart({ label, data, type, description, locale, formatOptions, categoryLabel, valueLabel, emptyMessage, id, dir, }: ChartProps): import("react").JSX.Element;
19
+ declare function ChartComponent(props: ChartProps | HTMLAttributes<HTMLElement>): import("react").JSX.Element;
20
+ export declare const Chart: typeof ChartComponent & {
21
+ Root: typeof ChartRoot;
22
+ Title: typeof ChartTitle;
23
+ Description: typeof ChartDescription;
24
+ Plot: typeof ChartPlot;
25
+ };
26
+ export {};
@@ -1,5 +1,7 @@
1
+ import { CheckboxComposition, CheckboxControl, CheckboxIndicator, ChoiceContent, type CheckboxCompositionProps } from './choice-composition.js';
2
+ import { type StylingProps } from './styling.js';
1
3
  import { type FieldFeedbackProps } from './field.js';
2
- export interface CheckboxProps extends FieldFeedbackProps {
4
+ export interface CheckboxProps extends FieldFeedbackProps, StylingProps<'root' | 'choice' | 'control' | 'indicator' | 'dash' | 'label' | 'description' | 'error'> {
3
5
  label: string;
4
6
  isSelected?: boolean;
5
7
  defaultSelected?: boolean;
@@ -13,4 +15,11 @@ export interface CheckboxProps extends FieldFeedbackProps {
13
15
  id?: string;
14
16
  dir?: 'ltr' | 'rtl';
15
17
  }
16
- export declare function Checkbox({ label, description, errorMessage, isInvalid, isSelected, defaultSelected, onChange, isDisabled, isRequired, isIndeterminate, name, value, id, dir, }: CheckboxProps): import("react").JSX.Element;
18
+ declare function CheckboxRoot(props: CheckboxProps | CheckboxCompositionProps): import("react").JSX.Element;
19
+ export declare const Checkbox: typeof CheckboxRoot & {
20
+ Root: typeof CheckboxComposition;
21
+ Control: typeof CheckboxControl;
22
+ Indicator: typeof CheckboxIndicator;
23
+ Content: typeof ChoiceContent;
24
+ };
25
+ export type { CheckboxCompositionProps } from './choice-composition.js';
@@ -1,6 +1,8 @@
1
+ import { ComboboxComposition, ComboboxInputGroup, ComboboxInput, ComboboxTrigger, ComboboxPopover, ComboboxClearButton, type ComboboxCompositionProps } from './combobox-composition.js';
2
+ import { type StylingProps } from './styling.js';
1
3
  import { type ReactNode } from 'react';
2
4
  import { type SelectOption } from './selection-options.js';
3
- export interface ComboboxProps {
5
+ export interface ComboboxProps extends StylingProps<'root' | 'label' | 'required' | 'control' | 'leading' | 'input' | 'clearButton' | 'clearIcon' | 'trigger' | 'indicator' | 'popover' | 'list' | 'empty' | 'item' | 'itemLabel' | 'itemDescription' | 'itemIndicator' | 'description' | 'error'> {
4
6
  label: string;
5
7
  options: SelectOption[];
6
8
  value?: string | null;
@@ -23,5 +25,13 @@ export interface ComboboxProps {
23
25
  dir?: 'ltr' | 'rtl';
24
26
  renderOption?: (option: SelectOption) => ReactNode;
25
27
  }
26
- /** Searchable single selection. Draft text is never submitted as a value. */
27
- export declare function Combobox(props: ComboboxProps): import("react").JSX.Element;
28
+ declare function ComboboxRoot(props: ComboboxProps | ComboboxCompositionProps): import("react").JSX.Element;
29
+ export declare const Combobox: typeof ComboboxRoot & {
30
+ Root: typeof ComboboxComposition;
31
+ InputGroup: typeof ComboboxInputGroup;
32
+ Input: typeof ComboboxInput;
33
+ Trigger: typeof ComboboxTrigger;
34
+ Popover: typeof ComboboxPopover;
35
+ ClearButton: typeof ComboboxClearButton;
36
+ };
37
+ export type { ComboboxCompositionProps } from './combobox-composition.js';
@@ -1,6 +1,10 @@
1
+ import { TableRoot, TableHeader, TableBody, TableFooter, TableRow, TableCell, TableCaption, TableScrollContainer } from './structural-parts.js';
2
+ import { DataTableRoot, DataTableSortButton, DataTableStatus, DataTableError, DataTableColumn as DataTableColumnPart, DataTableEmpty } from './layout-parts.js';
3
+ import { type StylingProps } from './styling.js';
1
4
  import type { ReactNode } from 'react';
2
5
  import type { DataTableColumn, DataTableRow, TableSort } from './data-table-types.js';
3
- export interface DataTableProps {
6
+ export type DataTablePart = 'root' | 'table' | 'scroll' | 'caption' | 'header' | 'body' | 'row' | 'column' | 'cell' | 'sort' | 'empty' | 'status' | 'error';
7
+ export interface DataTableProps extends StylingProps<DataTablePart> {
4
8
  caption: string;
5
9
  columns: DataTableColumn[];
6
10
  rows: DataTableRow[];
@@ -15,4 +19,21 @@ export interface DataTableProps {
15
19
  dir?: 'ltr' | 'rtl';
16
20
  id?: string;
17
21
  }
18
- export declare function DataTable({ caption, columns, rows, sort, onSortChange, isLoading, isDisabled, emptyMessage, loadingMessage, errorMessage, renderCell, dir, id, }: DataTableProps): import("react").JSX.Element;
22
+ declare function DataTableComponent(props: DataTableProps | import('./layout-parts.js').DataTableRootProps): import("react").JSX.Element;
23
+ export declare const DataTable: typeof DataTableComponent & {
24
+ Root: typeof DataTableRoot;
25
+ SortButton: typeof DataTableSortButton;
26
+ Status: typeof DataTableStatus;
27
+ Error: typeof DataTableError;
28
+ Table: typeof TableRoot;
29
+ Header: typeof TableHeader;
30
+ Body: typeof TableBody;
31
+ Footer: typeof TableFooter;
32
+ Row: typeof TableRow;
33
+ Column: typeof DataTableColumnPart;
34
+ Empty: typeof DataTableEmpty;
35
+ Cell: typeof TableCell;
36
+ Caption: typeof TableCaption;
37
+ ScrollContainer: typeof TableScrollContainer;
38
+ };
39
+ export {};
@@ -1,7 +1,11 @@
1
+ import { DateRangeTrigger, DateRangeValue, DateRangeIndicator, DateRangePopover, DateRangeContent, DateRangeCalendar, DateRangeInput, DateRangeApplyButton, DateRangeClearButton, DateRangeCancelButton } from './date-range-composition.js';
2
+ import { type StylingProps } from './styling.js';
3
+ import { type ReactNode } from 'react';
1
4
  import { type DateRange, type DateRangeOptions } from './date-range-model.js';
2
- export interface DateRangePickerProps extends DateRangeOptions {
5
+ export interface DateRangePickerProps extends DateRangeOptions, StylingProps<'root' | 'content' | 'intro' | 'summary' | 'body' | 'presets' | 'preset' | 'main' | 'inputs' | 'field' | 'input' | 'inputLabel' | 'monthSelect' | 'yearInput' | 'title' | 'draftError' | 'jump' | 'calendar' | 'navigation' | 'navigationButton' | 'months' | 'month' | 'heading' | 'grid' | 'weekday' | 'day' | 'validation' | 'footer' | 'clearButton' | 'cancelButton' | 'applyButton' | 'label' | 'panel' | 'trigger' | 'icon' | 'value' | 'chevron' | 'dialog' | 'description' | 'error'> {
3
6
  value?: DateRange | null;
4
7
  onChange?: (value: DateRange | null) => void;
8
+ children?: ReactNode;
5
9
  onApply?: (value: DateRange | null) => void;
6
10
  onOpenChange?: (open: boolean) => void;
7
11
  isDisabled?: boolean;
@@ -9,4 +13,18 @@ export interface DateRangePickerProps extends DateRangeOptions {
9
13
  isRequired?: boolean;
10
14
  isInvalid?: boolean;
11
15
  }
12
- export declare function DateRangePicker(props: DateRangePickerProps): import("react").JSX.Element;
16
+ declare function DateRangePickerRoot(props: DateRangePickerProps): import("react").JSX.Element;
17
+ export declare const DateRangePicker: typeof DateRangePickerRoot & {
18
+ Root: typeof DateRangePickerRoot;
19
+ Trigger: typeof DateRangeTrigger;
20
+ Value: typeof DateRangeValue;
21
+ Indicator: typeof DateRangeIndicator;
22
+ Popover: typeof DateRangePopover;
23
+ Content: typeof DateRangeContent;
24
+ Calendar: typeof DateRangeCalendar;
25
+ Input: typeof DateRangeInput;
26
+ ApplyButton: typeof DateRangeApplyButton;
27
+ ClearButton: typeof DateRangeClearButton;
28
+ CancelButton: typeof DateRangeCancelButton;
29
+ };
30
+ export {};
@@ -1,7 +1,11 @@
1
+ import type { DialogRootProps } from './structural-parts.js';
2
+ import { OverlayHeading, DialogCloseButton, DialogRoot, DialogContent, OverlayDescription } from './structural-parts.js';
3
+ import { type StylingProps } from './styling.js';
1
4
  import { type ReactNode } from 'react';
2
5
  import type { ButtonVariant } from './Button.js';
3
6
  import type { DialogSize, DialogPlacement, DialogScroll, DialogBackdrop } from './overlay-model.js';
4
- export interface DialogProps {
7
+ export type DialogPart = 'root' | 'trigger' | 'backdrop' | 'panel' | 'content' | 'header' | 'title' | 'description' | 'body' | 'footer' | 'close' | 'footerClose';
8
+ export interface DialogProps extends StylingProps<DialogPart> {
5
9
  triggerLabel: string;
6
10
  title: string;
7
11
  description?: string;
@@ -26,4 +30,18 @@ export interface DialogProps {
26
30
  showFooterClose?: boolean;
27
31
  closeIconLabel?: string;
28
32
  }
29
- export declare function Dialog(props: DialogProps): import("react").JSX.Element;
33
+ declare function DialogComponent(props: DialogProps | DialogRootProps): import("react").JSX.Element;
34
+ export declare const Dialog: typeof DialogComponent & {
35
+ Root: typeof DialogRoot;
36
+ Trigger: ({ className, ...props }: import("react-aria-components").ButtonProps & import("react").RefAttributes<HTMLButtonElement>) => import("react").ReactElement<import("react-aria-components").ButtonProps & import("react").RefAttributes<HTMLButtonElement>, string | import("react").JSXElementConstructor<any>>;
37
+ Backdrop: ({ className, ...props }: import("react-aria-components").ModalOverlayProps & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<import("react-aria-components").ModalOverlayProps & import("react").RefAttributes<HTMLDivElement>, string | import("react").JSXElementConstructor<any>>;
38
+ Panel: ({ className, ...props }: import("react-aria-components").ModalOverlayProps & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<import("react-aria-components").ModalOverlayProps & import("react").RefAttributes<HTMLDivElement>, string | import("react").JSXElementConstructor<any>>;
39
+ Content: typeof DialogContent;
40
+ Header: ({ className, ...props }: import("react").HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
41
+ Heading: typeof OverlayHeading;
42
+ Description: typeof OverlayDescription;
43
+ Body: ({ className, ...props }: import("react").HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
44
+ Footer: ({ className, ...props }: import("react").HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
45
+ CloseButton: typeof DialogCloseButton;
46
+ };
47
+ export {};
@@ -1,8 +1,13 @@
1
+ import { DropdownItemIndicator, DropdownSubmenuIndicator, type DropdownRootProps } from './structural-parts.js';
2
+ import { DropdownRoot, DropdownList } from './structural-parts.js';
3
+ import { type StylingProps } from './styling.js';
1
4
  import { type ReactNode } from 'react';
5
+ import { type PopoverProps } from 'react-aria-components/Popover';
2
6
  import { type MenuSelectionMode, type MenuPlacement } from './overlay-model.js';
3
7
  import type { DropdownMenuItem } from './dashboard-types.js';
4
8
  import type { ButtonVariant } from './Button.js';
5
- export interface DropdownMenuProps {
9
+ export type DropdownMenuPart = 'root' | 'trigger' | 'panel' | 'list' | 'item' | 'check' | 'icon' | 'text' | 'description' | 'shortcut' | 'arrow' | 'separator' | 'heading' | 'section';
10
+ export interface DropdownMenuProps extends StylingProps<DropdownMenuPart> {
6
11
  triggerLabel: string;
7
12
  items: DropdownMenuItem[];
8
13
  onAction?: (id: string) => void;
@@ -22,4 +27,18 @@ export interface DropdownMenuProps {
22
27
  closeOnSelect?: boolean;
23
28
  placement?: MenuPlacement;
24
29
  }
25
- export declare function DropdownMenu(props: DropdownMenuProps): import("react").JSX.Element;
30
+ declare function DropdownMenuComponent(props: DropdownMenuProps | DropdownRootProps): import("react").JSX.Element;
31
+ export declare const DropdownMenu: typeof DropdownMenuComponent & {
32
+ Root: typeof DropdownRoot;
33
+ Trigger: ({ className, ...props }: import("react-aria-components").ButtonProps & import("react").RefAttributes<HTMLButtonElement>) => import("react").ReactElement<import("react-aria-components").ButtonProps & import("react").RefAttributes<HTMLButtonElement>, string | import("react").JSXElementConstructor<any>>;
34
+ Popover: ({ className, ...props }: PopoverProps & import("react").RefAttributes<HTMLElement>) => import("react").ReactElement<PopoverProps & import("react").RefAttributes<HTMLElement>, string | import("react").JSXElementConstructor<any>>;
35
+ Menu: typeof DropdownList;
36
+ Item: ({ className, ...props }: import("react-aria-components").MenuItemProps<unknown> & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<import("react-aria-components").MenuItemProps<unknown> & import("react").RefAttributes<HTMLDivElement>, string | import("react").JSXElementConstructor<any>>;
37
+ Section: <T>(props: import("react-aria-components").MenuSectionProps<T> & React.RefAttributes<HTMLElement>) => import("react").ReactElement | null;
38
+ Heading: ({ className, ...props }: import("react-aria-components").HeaderProps & import("react").RefAttributes<HTMLElement>) => import("react").ReactElement<import("react-aria-components").HeaderProps & import("react").RefAttributes<HTMLElement>, string | import("react").JSXElementConstructor<any>>;
39
+ Separator: ({ className, ...props }: import("react-aria-components").SeparatorProps & import("react").RefAttributes<HTMLElement>) => import("react").ReactElement<import("react-aria-components").SeparatorProps & import("react").RefAttributes<HTMLElement>, string | import("react").JSXElementConstructor<any>>;
40
+ ItemIndicator: typeof DropdownItemIndicator;
41
+ SubmenuTrigger: (props: import("react-aria-components").SubmenuTriggerProps & React.RefAttributes<HTMLDivElement>) => import("react").ReactElement | null;
42
+ SubmenuIndicator: typeof DropdownSubmenuIndicator;
43
+ };
44
+ export {};
@@ -1,5 +1,8 @@
1
+ import { EmptyRoot, EmptyTitle, EmptyDescription, EmptyActions } from './layout-parts.js';
2
+ import { type StylingProps } from './styling.js';
1
3
  import type { ReactNode } from 'react';
2
- export interface EmptyProps {
4
+ export type EmptyPart = 'root' | 'title' | 'description' | 'actions';
5
+ export interface EmptyProps extends StylingProps<EmptyPart> {
3
6
  title: string;
4
7
  description?: string;
5
8
  headingLevel?: 2 | 3 | 4 | 5 | 6;
@@ -7,4 +10,11 @@ export interface EmptyProps {
7
10
  children?: ReactNode;
8
11
  id?: string;
9
12
  }
10
- export declare function Empty({ title, description, headingLevel, actions, children, id }: EmptyProps): import("react").JSX.Element;
13
+ declare function CompactEmpty({ className, style, classNames, title, description, headingLevel, actions, children, id, }: EmptyProps): import("react").JSX.Element;
14
+ export declare const Empty: typeof CompactEmpty & {
15
+ Root: typeof EmptyRoot;
16
+ Title: typeof EmptyTitle;
17
+ Description: typeof EmptyDescription;
18
+ Actions: typeof EmptyActions;
19
+ };
20
+ export {};
@@ -1,3 +1,4 @@
1
+ import { type StylingProps } from './styling.js';
1
2
  import { type ReactNode } from 'react';
2
3
  /** Bind these props to exactly one native input, textarea, or select. */
3
4
  export interface FieldControlProps {
@@ -17,7 +18,7 @@ export interface FieldRenderProps {
17
18
  errorMessage: string | undefined;
18
19
  }
19
20
  /** Experimental composition API; the application owns the control value. */
20
- export interface FieldProps {
21
+ export interface FieldProps extends StylingProps<'root' | 'description' | 'error' | 'label' | 'input'> {
21
22
  label: string;
22
23
  name: string;
23
24
  children: (field: FieldRenderProps) => ReactNode;
@@ -30,4 +31,4 @@ export interface FieldProps {
30
31
  isRequired?: boolean;
31
32
  dir?: 'ltr' | 'rtl';
32
33
  }
33
- export declare function Field({ label, name, children, id, description, errorMessage, isInvalid, isDisabled, isReadOnly, isRequired, dir, }: FieldProps): import("react").JSX.Element;
34
+ export declare function Field({ label, name, children, id, description, errorMessage, isInvalid, isDisabled, isReadOnly, isRequired, dir, className, style, classNames, }: FieldProps): import("react").JSX.Element;
@@ -1,7 +1,8 @@
1
+ import { type StylingProps } from './styling.js';
1
2
  import type { FormEvent, ReactNode } from 'react';
2
3
  import { type ValidationErrors } from './form-context.js';
3
4
  /** Experimental client form. Submission always prevents page navigation. */
4
- export interface FormProps {
5
+ export interface FormProps extends StylingProps<'root'> {
5
6
  children: ReactNode;
6
7
  validationErrors?: ValidationErrors;
7
8
  onSubmit?: (data: FormData, event: FormEvent<HTMLFormElement>) => void;
@@ -14,4 +15,4 @@ export interface FormProps {
14
15
  'aria-labelledby'?: string;
15
16
  dir?: 'ltr' | 'rtl';
16
17
  }
17
- export declare function Form({ children, validationErrors, onSubmit, onReset, noValidate, id, 'aria-label': ariaLabel, 'aria-labelledby': labelledBy, dir, }: FormProps): import("react").JSX.Element;
18
+ export declare function Form({ children, validationErrors, onSubmit, onReset, noValidate, id, 'aria-label': ariaLabel, 'aria-labelledby': labelledBy, dir, className, style, classNames, }: FormProps): import("react").JSX.Element;
@@ -1,3 +1,5 @@
1
+ import { InputRoot, InputGroup, InputPrefix, InputSuffix, type InputCompositionProps } from './control-composition.js';
2
+ import { type StylingProps } from './styling.js';
1
3
  import { type FocusEventHandler, type KeyboardEventHandler, type ReactNode } from 'react';
2
4
  export type InputSize = 'sm' | 'md' | 'lg';
3
5
  export type InputType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url';
@@ -5,7 +7,7 @@ export type InputVariant = 'primary' | 'secondary';
5
7
  export type InputMode = 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';
6
8
  export type InputEnterKeyHint = 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';
7
9
  /** A labeled single-line string field. Numeric/date parsing is a separate contract. */
8
- export interface InputProps {
10
+ export interface InputProps extends StylingProps<'root' | 'input' | 'control' | 'label' | 'boundary' | 'prefix' | 'suffix' | 'description' | 'error' | 'group'> {
9
11
  label: string;
10
12
  value?: string;
11
13
  defaultValue?: string;
@@ -44,4 +46,12 @@ export interface InputProps {
44
46
  onKeyUp?: KeyboardEventHandler<HTMLInputElement>;
45
47
  dir?: 'ltr' | 'rtl';
46
48
  }
47
- export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
49
+ export declare const Input: import("react").ForwardRefExoticComponent<(InputCompositionProps | InputProps) & import("react").RefAttributes<HTMLInputElement>> & {
50
+ Root: typeof InputRoot;
51
+ Control: import("react").ForwardRefExoticComponent<Omit<import("react-aria-components").InputProps, "className"> & {
52
+ className?: string;
53
+ } & import("react").RefAttributes<HTMLInputElement>>;
54
+ Group: typeof InputGroup;
55
+ Prefix: typeof InputPrefix;
56
+ Suffix: typeof InputSuffix;
57
+ };
@@ -1,8 +1,9 @@
1
- import type { ReactNode } from 'react';
2
- export interface LabelProps {
1
+ import { type StylingProps } from './styling.js';
2
+ import { type ReactNode } from 'react';
3
+ export interface LabelProps extends StylingProps<'root'> {
3
4
  children: ReactNode;
4
5
  htmlFor?: string;
5
6
  id?: string;
6
7
  }
7
8
  /** Associates visible text with a separately rendered control. */
8
- export declare function Label({ children, htmlFor, id }: LabelProps): import("react").JSX.Element;
9
+ export declare function Label({ children, htmlFor, id, className, style, classNames }: LabelProps): import("react").JSX.Element;
@@ -1,6 +1,8 @@
1
+ import { ListBoxRoot, ListBoxItemPart, ListBoxSectionPart, ListBoxItemIndicator } from './control-composition.js';
2
+ import { type StylingProps } from './styling.js';
1
3
  import { type FieldFeedbackProps } from './field.js';
2
4
  import { type ListboxOption, type ListboxSelectionMode } from './listbox-selection.js';
3
- export interface ListboxProps extends FieldFeedbackProps {
5
+ export interface ListboxProps extends FieldFeedbackProps, StylingProps<'root' | 'label' | 'list' | 'empty' | 'item' | 'itemLabel' | 'indicator' | 'description' | 'error'> {
4
6
  label: string;
5
7
  options: ListboxOption[];
6
8
  /** Always an array; empty selection is []. */
@@ -14,4 +16,11 @@ export interface ListboxProps extends FieldFeedbackProps {
14
16
  dir?: 'ltr' | 'rtl';
15
17
  emptyMessage?: string;
16
18
  }
17
- export declare function Listbox({ label, options, value, defaultValue, onChange, selectionMode, isDisabled, description, errorMessage, isInvalid, name, id, dir, emptyMessage, }: ListboxProps): import("react").JSX.Element;
19
+ declare function ListboxRoot(props: ListboxProps | Parameters<typeof ListBoxRoot>[0]): import("react").JSX.Element;
20
+ export declare const Listbox: typeof ListboxRoot & {
21
+ Root: typeof ListBoxRoot;
22
+ Item: typeof ListBoxItemPart;
23
+ Section: typeof ListBoxSectionPart;
24
+ ItemIndicator: typeof ListBoxItemIndicator;
25
+ };
26
+ export {};
@@ -1,4 +1,6 @@
1
- export interface NumberFieldProps {
1
+ import { NumberFieldComposition, NumberFieldGroup, NumberFieldInput, NumberFieldIncrement, NumberFieldDecrement, type NumberFieldCompositionProps } from './number-composition.js';
2
+ import { type StylingProps } from './styling.js';
3
+ export interface NumberFieldProps extends StylingProps<'root' | 'label' | 'group' | 'input' | 'button' | 'decrementButton' | 'incrementButton' | 'description' | 'error'> {
2
4
  label: string;
3
5
  value?: number | null;
4
6
  defaultValue?: number | null;
@@ -21,4 +23,12 @@ export interface NumberFieldProps {
21
23
  incrementLabel?: string;
22
24
  decrementLabel?: string;
23
25
  }
24
- export declare function NumberField({ label, value, defaultValue, onChange, min, max, step, locale, formatOptions, description, errorMessage, isInvalid, isDisabled, isReadOnly, isRequired, name, id, dir, incrementLabel, decrementLabel, }: NumberFieldProps): import("react").JSX.Element;
26
+ declare function NumberFieldRoot(props: NumberFieldProps | NumberFieldCompositionProps): import("react").JSX.Element;
27
+ export declare const NumberField: typeof NumberFieldRoot & {
28
+ Root: typeof NumberFieldComposition;
29
+ Group: typeof NumberFieldGroup;
30
+ Input: typeof NumberFieldInput;
31
+ IncrementButton: typeof NumberFieldIncrement;
32
+ DecrementButton: typeof NumberFieldDecrement;
33
+ };
34
+ export type { NumberFieldCompositionProps } from './number-composition.js';
@@ -1,4 +1,7 @@
1
- export interface PaginationProps {
1
+ import { type StylingProps } from './styling.js';
2
+ import { type HTMLAttributes, type ButtonHTMLAttributes, type ReactNode } from 'react';
3
+ export type PaginationPart = 'root' | 'button' | 'gap' | 'summary';
4
+ export interface PaginationProps extends StylingProps<PaginationPart> {
2
5
  totalItems: number;
3
6
  pageSize?: number;
4
7
  value?: number;
@@ -13,4 +16,28 @@ export interface PaginationProps {
13
16
  dir?: 'ltr' | 'rtl';
14
17
  id?: string;
15
18
  }
16
- export declare function Pagination({ totalItems, pageSize, value, defaultValue, onChange, isDisabled, siblingCount, label, previousLabel, nextLabel, pageLabel, dir, id, }: PaginationProps): import("react").JSX.Element;
19
+ export interface PaginationRootProps extends Omit<PaginationProps, 'previousLabel' | 'nextLabel' | 'pageLabel'> {
20
+ children?: ReactNode;
21
+ }
22
+ export declare function PaginationRoot({ totalItems, pageSize, value, defaultValue, onChange, isDisabled, siblingCount, label, className, classNames, style, dir, id, children, }: PaginationRootProps): import("react").JSX.Element;
23
+ export declare function PaginationPageButton({ page, className, onClick, disabled, ...props }: ButtonHTMLAttributes<HTMLButtonElement> & {
24
+ page: number;
25
+ }): import("react").JSX.Element;
26
+ export declare function PaginationPrevious(props: ButtonHTMLAttributes<HTMLButtonElement>): import("react").JSX.Element;
27
+ export declare function PaginationNext(props: ButtonHTMLAttributes<HTMLButtonElement>): import("react").JSX.Element;
28
+ export declare function PaginationSummary({ className, children, ...props }: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
29
+ export declare function PaginationContent(props: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
30
+ export declare function PaginationItem(props: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
31
+ export declare function PaginationEllipsis({ className, children, ...props }: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
32
+ declare function PaginationComponent(props: PaginationProps | PaginationRootProps): import("react").JSX.Element;
33
+ export declare const Pagination: typeof PaginationComponent & {
34
+ Root: typeof PaginationRoot;
35
+ Content: typeof PaginationContent;
36
+ Item: typeof PaginationItem;
37
+ PageButton: typeof PaginationPageButton;
38
+ Previous: typeof PaginationPrevious;
39
+ Next: typeof PaginationNext;
40
+ Summary: typeof PaginationSummary;
41
+ Ellipsis: typeof PaginationEllipsis;
42
+ };
43
+ export {};
@@ -1,5 +1,9 @@
1
+ import type { DialogRootProps } from './structural-parts.js';
2
+ import { PopoverDialog, OverlayHeading, DialogRoot, PopoverCloseButton, OverlayDescription } from './structural-parts.js';
3
+ import { type StylingProps } from './styling.js';
1
4
  import { type ReactNode } from 'react';
2
- export interface PopoverProps {
5
+ export type PopoverPart = 'root' | 'trigger' | 'panel' | 'content' | 'title' | 'description' | 'body' | 'footer' | 'close';
6
+ export interface PopoverProps extends StylingProps<PopoverPart> {
3
7
  triggerLabel: string;
4
8
  title: string;
5
9
  description?: string;
@@ -11,4 +15,17 @@ export interface PopoverProps {
11
15
  closeLabel?: string;
12
16
  dir?: 'ltr' | 'rtl';
13
17
  }
14
- export declare function Popover({ triggerLabel, title, description, children, open, defaultOpen, onOpenChange, isDisabled, closeLabel, dir, }: PopoverProps): import("react").JSX.Element;
18
+ declare function PopoverComponent(props: PopoverProps | DialogRootProps): import("react").JSX.Element;
19
+ export declare const Popover: typeof PopoverComponent & {
20
+ Root: typeof DialogRoot;
21
+ Trigger: ({ className, ...props }: import("react-aria-components").ButtonProps & import("react").RefAttributes<HTMLButtonElement>) => import("react").ReactElement<import("react-aria-components").ButtonProps & import("react").RefAttributes<HTMLButtonElement>, string | import("react").JSXElementConstructor<any>>;
22
+ Content: ({ className, ...props }: import("react-aria-components").PopoverProps & import("react").RefAttributes<HTMLElement>) => import("react").ReactElement<import("react-aria-components").PopoverProps & import("react").RefAttributes<HTMLElement>, string | import("react").JSXElementConstructor<any>>;
23
+ Dialog: typeof PopoverDialog;
24
+ Heading: typeof OverlayHeading;
25
+ Description: typeof OverlayDescription;
26
+ Header: ({ className, ...props }: import("react").HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
27
+ Body: ({ className, ...props }: import("react").HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
28
+ Footer: ({ className, ...props }: import("react").HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
29
+ CloseButton: typeof PopoverCloseButton;
30
+ };
31
+ export {};