canny-ui-react 5.0.0 → 6.1.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 (57) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +45 -16
  2. package/dist/components/Alert/Alert.types.d.ts +7 -0
  3. package/dist/components/Autocomplete/Autocomplete.types.d.ts +11 -1
  4. package/dist/components/Avatar/Avatar.types.d.ts +7 -0
  5. package/dist/components/Badge/Badge.d.ts +7 -0
  6. package/dist/components/Breadcrumb/Breadcrumb.d.ts +7 -0
  7. package/dist/components/Button/Button.types.d.ts +7 -0
  8. package/dist/components/Button/ToggleButtonGroup.d.ts +39 -4
  9. package/dist/components/Card/Card.types.d.ts +7 -0
  10. package/dist/components/Charts/BarChart.d.ts +11 -1
  11. package/dist/components/Charts/LineChart.d.ts +10 -0
  12. package/dist/components/Charts/PieChart.d.ts +11 -1
  13. package/dist/components/Charts/ResponsiveContainer.d.ts +11 -2
  14. package/dist/components/Checkbox/Checkbox.d.ts +21 -3
  15. package/dist/components/Chip/Chip.d.ts +7 -0
  16. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +12 -2
  17. package/dist/components/DataTable/DataTable.d.ts +11 -1
  18. package/dist/components/DatePicker/DatePicker.types.d.ts +8 -0
  19. package/dist/components/Dialog/Dialog.d.ts +16 -4
  20. package/dist/components/Drawer/Drawer.d.ts +16 -4
  21. package/dist/components/Field/Field.d.ts +9 -1
  22. package/dist/components/FileUploader/FileUploader.d.ts +10 -1
  23. package/dist/components/FileUploader/useFileDrop.d.ts +29 -29
  24. package/dist/components/Input/Input.types.d.ts +8 -0
  25. package/dist/components/Layout/AspectRatio.d.ts +3 -0
  26. package/dist/components/Layout/Divider.d.ts +3 -0
  27. package/dist/components/Layout/Spacer.d.ts +5 -1
  28. package/dist/components/List/List.d.ts +7 -0
  29. package/dist/components/Menu/Menu.d.ts +34 -8
  30. package/dist/components/MultiSelect/MultiSelect.d.ts +12 -2
  31. package/dist/components/Navbar/Navbar.types.d.ts +7 -0
  32. package/dist/components/Pagination/Pagination.d.ts +9 -0
  33. package/dist/components/PanelGroup/PanelGroup.d.ts +7 -0
  34. package/dist/components/Popover/Popover.d.ts +17 -6
  35. package/dist/components/Progress/Progress.types.d.ts +13 -0
  36. package/dist/components/Radio/Radio.d.ts +24 -4
  37. package/dist/components/Scroll/Scroll.types.d.ts +7 -0
  38. package/dist/components/Select/Select.d.ts +27 -5
  39. package/dist/components/Sidebar/Sidebar.types.d.ts +7 -0
  40. package/dist/components/Skeleton/Skeleton.types.d.ts +7 -0
  41. package/dist/components/Slider/Slider.d.ts +7 -0
  42. package/dist/components/Stepper/Stepper.d.ts +7 -0
  43. package/dist/components/Switch/Switch.d.ts +20 -3
  44. package/dist/components/Tabs/Tabs.d.ts +19 -3
  45. package/dist/components/Text/Text.d.ts +7 -0
  46. package/dist/components/Textarea/Textarea.d.ts +7 -0
  47. package/dist/components/Timeline/Timeline.d.ts +7 -0
  48. package/dist/components/Toast/Toast.types.d.ts +8 -0
  49. package/dist/components/Tooltip/Tooltip.d.ts +33 -6
  50. package/dist/components/TreeView/TreeView.d.ts +8 -0
  51. package/dist/index.cjs +45 -45
  52. package/dist/index.cjs.map +1 -1
  53. package/dist/index.js +7410 -6974
  54. package/dist/index.js.map +1 -1
  55. package/dist/utils/primitiveProps.d.ts +94 -0
  56. package/dist/utils/withSx.d.ts +22 -0
  57. package/package.json +6 -5
@@ -45,17 +45,17 @@ export declare function useFileDrop(options?: UseFileDropOptions): {
45
45
  autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
46
46
  autoFocus?: boolean | undefined;
47
47
  className?: string | undefined;
48
- contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
48
+ contentEditable?: (boolean | "false" | "true") | "inherit" | "plaintext-only" | undefined;
49
49
  contextMenu?: string | undefined;
50
50
  dir?: string | undefined;
51
- draggable?: (boolean | "true" | "false") | undefined;
51
+ draggable?: (boolean | "false" | "true") | undefined;
52
52
  enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
53
53
  hidden?: boolean | undefined;
54
54
  id?: string | undefined;
55
55
  lang?: string | undefined;
56
56
  nonce?: string | undefined;
57
57
  slot?: string | undefined;
58
- spellCheck?: (boolean | "true" | "false") | undefined;
58
+ spellCheck?: (boolean | "false" | "true") | undefined;
59
59
  style?: import("react").CSSProperties | undefined;
60
60
  title?: string | undefined;
61
61
  translate?: "yes" | "no" | undefined;
@@ -91,11 +91,11 @@ export declare function useFileDrop(options?: UseFileDropOptions): {
91
91
  exportparts?: string | undefined;
92
92
  part?: string | undefined;
93
93
  "aria-activedescendant"?: string | undefined;
94
- "aria-atomic"?: (boolean | "true" | "false") | undefined;
94
+ "aria-atomic"?: (boolean | "false" | "true") | undefined;
95
95
  "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
96
96
  "aria-braillelabel"?: string | undefined;
97
97
  "aria-brailleroledescription"?: string | undefined;
98
- "aria-busy"?: (boolean | "true" | "false") | undefined;
98
+ "aria-busy"?: (boolean | "false" | "true") | undefined;
99
99
  "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
100
100
  "aria-colcount"?: number | undefined;
101
101
  "aria-colindex"?: number | undefined;
@@ -108,34 +108,34 @@ export declare function useFileDrop(options?: UseFileDropOptions): {
108
108
  "aria-details"?: string | undefined;
109
109
  "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
110
110
  "aria-errormessage"?: string | undefined;
111
- "aria-expanded"?: (boolean | "true" | "false") | undefined;
111
+ "aria-expanded"?: (boolean | "false" | "true") | undefined;
112
112
  "aria-flowto"?: string | undefined;
113
- "aria-grabbed"?: (boolean | "true" | "false") | undefined;
113
+ "aria-grabbed"?: (boolean | "false" | "true") | undefined;
114
114
  "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
115
- "aria-hidden"?: (boolean | "true" | "false") | undefined;
115
+ "aria-hidden"?: (boolean | "false" | "true") | undefined;
116
116
  "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
117
117
  "aria-keyshortcuts"?: string | undefined;
118
118
  "aria-label"?: string | undefined;
119
119
  "aria-labelledby"?: string | undefined;
120
120
  "aria-level"?: number | undefined;
121
121
  "aria-live"?: "off" | "assertive" | "polite" | undefined;
122
- "aria-modal"?: (boolean | "true" | "false") | undefined;
123
- "aria-multiline"?: (boolean | "true" | "false") | undefined;
124
- "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
122
+ "aria-modal"?: (boolean | "false" | "true") | undefined;
123
+ "aria-multiline"?: (boolean | "false" | "true") | undefined;
124
+ "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
125
125
  "aria-orientation"?: "horizontal" | "vertical" | undefined;
126
126
  "aria-owns"?: string | undefined;
127
127
  "aria-placeholder"?: string | undefined;
128
128
  "aria-posinset"?: number | undefined;
129
129
  "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
130
- "aria-readonly"?: (boolean | "true" | "false") | undefined;
130
+ "aria-readonly"?: (boolean | "false" | "true") | undefined;
131
131
  "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
132
- "aria-required"?: (boolean | "true" | "false") | undefined;
132
+ "aria-required"?: (boolean | "false" | "true") | undefined;
133
133
  "aria-roledescription"?: string | undefined;
134
134
  "aria-rowcount"?: number | undefined;
135
135
  "aria-rowindex"?: number | undefined;
136
136
  "aria-rowindextext"?: string | undefined;
137
137
  "aria-rowspan"?: number | undefined;
138
- "aria-selected"?: (boolean | "true" | "false") | undefined;
138
+ "aria-selected"?: (boolean | "false" | "true") | undefined;
139
139
  "aria-setsize"?: number | undefined;
140
140
  "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
141
141
  "aria-valuemax"?: number | undefined;
@@ -353,17 +353,17 @@ export declare function useFileDrop(options?: UseFileDropOptions): {
353
353
  autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
354
354
  autoFocus?: boolean | undefined;
355
355
  className?: string | undefined;
356
- contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
356
+ contentEditable?: (boolean | "false" | "true") | "inherit" | "plaintext-only" | undefined;
357
357
  contextMenu?: string | undefined;
358
358
  dir?: string | undefined;
359
- draggable?: (boolean | "true" | "false") | undefined;
359
+ draggable?: (boolean | "false" | "true") | undefined;
360
360
  enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
361
361
  hidden?: boolean | undefined;
362
362
  id?: string | undefined;
363
363
  lang?: string | undefined;
364
364
  nonce?: string | undefined;
365
365
  slot?: string | undefined;
366
- spellCheck?: (boolean | "true" | "false") | undefined;
366
+ spellCheck?: (boolean | "false" | "true") | undefined;
367
367
  tabIndex?: number | undefined;
368
368
  title?: string | undefined;
369
369
  translate?: "yes" | "no" | undefined;
@@ -400,11 +400,11 @@ export declare function useFileDrop(options?: UseFileDropOptions): {
400
400
  exportparts?: string | undefined;
401
401
  part?: string | undefined;
402
402
  "aria-activedescendant"?: string | undefined;
403
- "aria-atomic"?: (boolean | "true" | "false") | undefined;
403
+ "aria-atomic"?: (boolean | "false" | "true") | undefined;
404
404
  "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
405
405
  "aria-braillelabel"?: string | undefined;
406
406
  "aria-brailleroledescription"?: string | undefined;
407
- "aria-busy"?: (boolean | "true" | "false") | undefined;
407
+ "aria-busy"?: (boolean | "false" | "true") | undefined;
408
408
  "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
409
409
  "aria-colcount"?: number | undefined;
410
410
  "aria-colindex"?: number | undefined;
@@ -415,37 +415,37 @@ export declare function useFileDrop(options?: UseFileDropOptions): {
415
415
  "aria-describedby"?: string | undefined;
416
416
  "aria-description"?: string | undefined;
417
417
  "aria-details"?: string | undefined;
418
- "aria-disabled"?: (boolean | "true" | "false") | undefined;
418
+ "aria-disabled"?: (boolean | "false" | "true") | undefined;
419
419
  "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
420
420
  "aria-errormessage"?: string | undefined;
421
- "aria-expanded"?: (boolean | "true" | "false") | undefined;
421
+ "aria-expanded"?: (boolean | "false" | "true") | undefined;
422
422
  "aria-flowto"?: string | undefined;
423
- "aria-grabbed"?: (boolean | "true" | "false") | undefined;
423
+ "aria-grabbed"?: (boolean | "false" | "true") | undefined;
424
424
  "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
425
- "aria-hidden"?: (boolean | "true" | "false") | undefined;
425
+ "aria-hidden"?: (boolean | "false" | "true") | undefined;
426
426
  "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
427
427
  "aria-keyshortcuts"?: string | undefined;
428
428
  "aria-label"?: string | undefined;
429
429
  "aria-labelledby"?: string | undefined;
430
430
  "aria-level"?: number | undefined;
431
431
  "aria-live"?: "off" | "assertive" | "polite" | undefined;
432
- "aria-modal"?: (boolean | "true" | "false") | undefined;
433
- "aria-multiline"?: (boolean | "true" | "false") | undefined;
434
- "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
432
+ "aria-modal"?: (boolean | "false" | "true") | undefined;
433
+ "aria-multiline"?: (boolean | "false" | "true") | undefined;
434
+ "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
435
435
  "aria-orientation"?: "horizontal" | "vertical" | undefined;
436
436
  "aria-owns"?: string | undefined;
437
437
  "aria-placeholder"?: string | undefined;
438
438
  "aria-posinset"?: number | undefined;
439
439
  "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
440
- "aria-readonly"?: (boolean | "true" | "false") | undefined;
440
+ "aria-readonly"?: (boolean | "false" | "true") | undefined;
441
441
  "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
442
- "aria-required"?: (boolean | "true" | "false") | undefined;
442
+ "aria-required"?: (boolean | "false" | "true") | undefined;
443
443
  "aria-roledescription"?: string | undefined;
444
444
  "aria-rowcount"?: number | undefined;
445
445
  "aria-rowindex"?: number | undefined;
446
446
  "aria-rowindextext"?: string | undefined;
447
447
  "aria-rowspan"?: number | undefined;
448
- "aria-selected"?: (boolean | "true" | "false") | undefined;
448
+ "aria-selected"?: (boolean | "false" | "true") | undefined;
449
449
  "aria-setsize"?: number | undefined;
450
450
  "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
451
451
  "aria-valuemax"?: number | undefined;
@@ -1,4 +1,5 @@
1
1
  import type { InputHTMLAttributes, ReactNode } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export type InputColor = 'primary' | 'danger' | 'warning' | 'success';
3
4
  export type InputSize = 'sm' | 'md' | 'lg';
4
5
  export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'prefix'> {
@@ -15,4 +16,11 @@ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
15
16
  onClear?: () => void;
16
17
  /** Show a password-visibility toggle. Forces `type="password"` when hidden. */
17
18
  showPasswordToggle?: boolean;
19
+ /**
20
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
21
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
22
+ * merges into inline style; responsive sx injects a scoped class.
23
+ * Applied to the outer affix wrapper, or the input itself when no affixes.
24
+ */
25
+ sx?: SxProp;
18
26
  }
@@ -1,7 +1,10 @@
1
1
  import type { HTMLAttributes, ReactNode } from 'react';
2
+ import type { SxProp } from './sx';
2
3
  export interface AspectRatioProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
3
4
  /** Ratio = width / height. e.g. 16/9, 4/3, 1, 21/9. Default 16/9. */
4
5
  ratio?: number;
6
+ /** One-off CSS (scalar or responsive breakpoint map), like `Box`'s `sx`. */
7
+ sx?: SxProp;
5
8
  children?: ReactNode;
6
9
  }
7
10
  /**
@@ -1,7 +1,10 @@
1
1
  import type { HTMLAttributes } from 'react';
2
+ import type { SxProp } from './sx';
2
3
  export interface DividerProps extends Omit<HTMLAttributes<HTMLHRElement | HTMLSpanElement>, 'role'> {
3
4
  /** Axis. Default: `'horizontal'`. */
4
5
  orientation?: 'horizontal' | 'vertical';
6
+ /** One-off CSS (scalar or responsive breakpoint map), like `Box`'s `sx`. */
7
+ sx?: SxProp;
5
8
  }
6
9
  /**
7
10
  * Hairline divider. Renders `<hr>` when horizontal (no accessible name needed)
@@ -1,4 +1,8 @@
1
1
  import type { HTMLAttributes } from 'react';
2
- export type SpacerProps = HTMLAttributes<HTMLSpanElement>;
2
+ import type { SxProp } from './sx';
3
+ export interface SpacerProps extends HTMLAttributes<HTMLSpanElement> {
4
+ /** One-off CSS (scalar or responsive breakpoint map), like `Box`'s `sx`. */
5
+ sx?: SxProp;
6
+ }
3
7
  /** Flexible filler — `flex: 1 1 auto`. Use inside a `<Row>` or `<Stack>`. */
4
8
  export declare const Spacer: import("react").ForwardRefExoticComponent<SpacerProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -1,4 +1,5 @@
1
1
  import type { ElementType, HTMLAttributes, ReactNode, MouseEventHandler } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export type ListVariant = 'plain' | 'bordered' | 'dividers';
3
4
  export type ListSize = 'sm' | 'md' | 'lg';
4
5
  export interface ListProps extends HTMLAttributes<HTMLUListElement> {
@@ -9,6 +10,12 @@ export interface ListProps extends HTMLAttributes<HTMLUListElement> {
9
10
  /** Use this when items have explicit dividers via `<ListSeparator>` to
10
11
  * disable automatic divider rendering. */
11
12
  dense?: boolean;
13
+ /**
14
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
15
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
16
+ * merges into inline style; responsive sx injects a scoped class.
17
+ */
18
+ sx?: SxProp;
12
19
  }
13
20
  export declare const List: import("react").ForwardRefExoticComponent<ListProps & import("react").RefAttributes<HTMLUListElement>>;
14
21
  export interface ListItemProps {
@@ -1,7 +1,10 @@
1
- import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- import * as RadixMenu from '@radix-ui/react-dropdown-menu';
3
- export declare const Menu: import("react").FC<RadixMenu.DropdownMenuProps>;
4
- export declare const MenuTrigger: import("react").ForwardRefExoticComponent<RadixMenu.DropdownMenuTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
1
+ import type { ComponentPropsWithoutRef, FC, HTMLAttributes, ReactNode } from 'react';
2
+ import type { OpenStateProps, PopperContentProps, TriggerProps } from '../../utils/primitiveProps';
3
+ import type { SxProp } from '../Layout/sx';
4
+ export type MenuProps = OpenStateProps;
5
+ export declare const Menu: FC<MenuProps>;
6
+ export type MenuTriggerProps = TriggerProps;
7
+ export declare const MenuTrigger: FC<MenuTriggerProps>;
5
8
  export interface MenuContentProps extends ComponentPropsWithoutRef<'div'> {
6
9
  className?: string;
7
10
  /** Preferred side of the trigger to render against. */
@@ -14,6 +17,12 @@ export interface MenuContentProps extends ComponentPropsWithoutRef<'div'> {
14
17
  alignOffset?: number;
15
18
  /** Visual size — controls padding + font size. Default: `md`. */
16
19
  size?: 'sm' | 'md';
20
+ /**
21
+ * One-off CSS for the menu content panel, same as `Box`'s `sx`: each value
22
+ * may be a scalar or a responsive breakpoint map (`{ base, sm, md, lg, xl }`).
23
+ * Scalar-only sx merges into inline style; responsive sx injects a scoped class.
24
+ */
25
+ sx?: SxProp;
17
26
  }
18
27
  /**
19
28
  * The popup panel. Wrap in `<Menu>` and pair with `<MenuTrigger>`.
@@ -58,7 +67,13 @@ export interface MenuCheckboxItemProps extends Omit<ComponentPropsWithoutRef<'di
58
67
  shortcut?: ReactNode;
59
68
  }
60
69
  export declare const MenuCheckboxItem: import("react").ForwardRefExoticComponent<MenuCheckboxItemProps & import("react").RefAttributes<HTMLDivElement>>;
61
- export declare const MenuRadioGroup: import("react").ForwardRefExoticComponent<RadixMenu.DropdownMenuRadioGroupProps & import("react").RefAttributes<HTMLDivElement>>;
70
+ export interface MenuRadioGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
71
+ /** Controlled selected value. */
72
+ value?: string;
73
+ /** Fires when the selected value changes. */
74
+ onValueChange?: (value: string) => void;
75
+ }
76
+ export declare const MenuRadioGroup: FC<MenuRadioGroupProps>;
62
77
  export interface MenuRadioItemProps extends Omit<ComponentPropsWithoutRef<'div'>, 'onSelect'> {
63
78
  /** The value of this radio item within its group. */
64
79
  value: string;
@@ -74,8 +89,18 @@ export declare const MenuRadioItem: import("react").ForwardRefExoticComponent<Me
74
89
  export interface MenuLabelProps extends ComponentPropsWithoutRef<'div'> {
75
90
  }
76
91
  export declare const MenuLabel: import("react").ForwardRefExoticComponent<MenuLabelProps & import("react").RefAttributes<HTMLDivElement>>;
77
- export declare const MenuSeparator: import("react").ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
78
- export declare const MenuSub: import("react").FC<RadixMenu.DropdownMenuSubProps>;
92
+ export type MenuSeparatorProps = HTMLAttributes<HTMLDivElement>;
93
+ export declare const MenuSeparator: import("react").ForwardRefExoticComponent<MenuSeparatorProps & import("react").RefAttributes<HTMLDivElement>>;
94
+ export interface MenuSubProps {
95
+ /** Controlled open state of the submenu. */
96
+ open?: boolean;
97
+ /** Uncontrolled initial open state. */
98
+ defaultOpen?: boolean;
99
+ /** Fires when the submenu opens or closes. */
100
+ onOpenChange?: (open: boolean) => void;
101
+ children?: ReactNode;
102
+ }
103
+ export declare const MenuSub: FC<MenuSubProps>;
79
104
  export interface MenuSubTriggerProps extends ComponentPropsWithoutRef<'div'> {
80
105
  /** Disable opening this submenu. */
81
106
  disabled?: boolean;
@@ -84,4 +109,5 @@ export interface MenuSubTriggerProps extends ComponentPropsWithoutRef<'div'> {
84
109
  icon?: ReactNode;
85
110
  }
86
111
  export declare const MenuSubTrigger: import("react").ForwardRefExoticComponent<MenuSubTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
87
- export declare const MenuSubContent: import("react").ForwardRefExoticComponent<Omit<RadixMenu.DropdownMenuSubContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
112
+ export type MenuSubContentProps = PopperContentProps;
113
+ export declare const MenuSubContent: import("react").ForwardRefExoticComponent<PopperContentProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,4 +1,5 @@
1
- import type { ReactNode } from 'react';
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export type MultiSelectOption = {
3
4
  value: string;
4
5
  label: string;
@@ -45,10 +46,19 @@ export interface MultiSelectProps {
45
46
  'aria-label'?: string;
46
47
  /** Extra class on the trigger. */
47
48
  className?: string;
49
+ /** Inline style applied to the trigger (the inline field). */
50
+ style?: CSSProperties;
51
+ /**
52
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
53
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Applied to the
54
+ * trigger. Scalar-only sx merges into inline style; responsive sx injects
55
+ * a scoped class.
56
+ */
57
+ sx?: SxProp;
48
58
  }
49
59
  /**
50
60
  * MultiSelect — a combobox with a searchable list and chip tokens for
51
61
  * the selected values. Built on @radix-ui/react-popover (positioning +
52
62
  * focus management) and cmdk (search + filtering).
53
63
  */
54
- export declare function MultiSelect({ options, value, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyText, maxItems, size, color, disabled, id, className, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, 'aria-label': ariaLabel, }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
64
+ export declare function MultiSelect({ options, value, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyText, maxItems, size, color, disabled, id, className, style, sx, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, 'aria-label': ariaLabel, }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,13 @@
1
1
  import type { AnchorHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export interface NavbarProps extends HTMLAttributes<HTMLElement> {
3
4
  solid?: boolean;
5
+ /**
6
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
7
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
8
+ * merges into inline style; responsive sx injects a scoped class.
9
+ */
10
+ sx?: SxProp;
4
11
  children: ReactNode;
5
12
  }
6
13
  export interface NavbarBrandProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
@@ -1,3 +1,5 @@
1
+ import type { CSSProperties } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
1
3
  export interface PaginationProps {
2
4
  /** Current page (1-based). */
3
5
  page: number;
@@ -13,6 +15,13 @@ export interface PaginationProps {
13
15
  hideControls?: boolean;
14
16
  size?: 'sm' | 'md' | 'lg';
15
17
  className?: string;
18
+ style?: CSSProperties;
19
+ /**
20
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
21
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
22
+ * merges into inline style; responsive sx injects a scoped class.
23
+ */
24
+ sx?: SxProp;
16
25
  'aria-label'?: string;
17
26
  }
18
27
  /**
@@ -1,4 +1,5 @@
1
1
  import type { HTMLAttributes, PointerEvent } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export type PanelDirection = 'horizontal' | 'vertical';
3
4
  export interface PanelProps extends HTMLAttributes<HTMLDivElement> {
4
5
  /** Initial size as a percentage of the group. */
@@ -26,6 +27,12 @@ export declare const PanelResizeHandle: import("react").ForwardRefExoticComponen
26
27
  export interface PanelGroupProps extends HTMLAttributes<HTMLDivElement> {
27
28
  /** Layout axis. Default `'horizontal'`. */
28
29
  direction?: PanelDirection;
30
+ /**
31
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
32
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
33
+ * merges into inline style; responsive sx injects a scoped class.
34
+ */
35
+ sx?: SxProp;
29
36
  }
30
37
  export declare const PanelGroup: import("react").ForwardRefExoticComponent<PanelGroupProps & import("react").RefAttributes<HTMLDivElement>>;
31
38
  /** No-op kept for drop-in compatibility with `react-resizable-panels`. */
@@ -1,5 +1,6 @@
1
- import type { ComponentPropsWithoutRef } from 'react';
2
- import * as RadixPopover from '@radix-ui/react-popover';
1
+ import type { ComponentPropsWithoutRef, FC, HTMLAttributes } from 'react';
2
+ import type { AsChildProps, OpenStateProps, TriggerProps } from '../../utils/primitiveProps';
3
+ import type { SxProp } from '../Layout/sx';
3
4
  /**
4
5
  * Popover root. Controlled (`open` + `onOpenChange`) or uncontrolled.
5
6
  * Wrap a `<PopoverTrigger>` and `<PopoverContent>`.
@@ -12,10 +13,14 @@ import * as RadixPopover from '@radix-ui/react-popover';
12
13
  * </PopoverContent>
13
14
  * </Popover>
14
15
  */
15
- export declare const Popover: import("react").FC<RadixPopover.PopoverProps>;
16
- export declare const PopoverTrigger: import("react").ForwardRefExoticComponent<RadixPopover.PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
17
- export declare const PopoverAnchor: import("react").ForwardRefExoticComponent<RadixPopover.PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>>;
18
- export declare const PopoverClose: import("react").ForwardRefExoticComponent<RadixPopover.PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>;
16
+ export type PopoverProps = OpenStateProps;
17
+ export declare const Popover: FC<PopoverProps>;
18
+ export type PopoverTriggerProps = TriggerProps;
19
+ export declare const PopoverTrigger: FC<PopoverTriggerProps>;
20
+ export type PopoverAnchorProps = HTMLAttributes<HTMLDivElement> & AsChildProps;
21
+ export declare const PopoverAnchor: FC<PopoverAnchorProps>;
22
+ export type PopoverCloseProps = TriggerProps;
23
+ export declare const PopoverClose: FC<PopoverCloseProps>;
19
24
  export interface PopoverContentProps extends ComponentPropsWithoutRef<'div'> {
20
25
  className?: string;
21
26
  /** Render the small directional arrow on the popover. Default: false. */
@@ -28,5 +33,11 @@ export interface PopoverContentProps extends ComponentPropsWithoutRef<'div'> {
28
33
  align?: 'start' | 'center' | 'end';
29
34
  /** Offset in px from the aligned edge. */
30
35
  alignOffset?: number;
36
+ /**
37
+ * One-off CSS for the popover content panel, same as `Box`'s `sx`: each value
38
+ * may be a scalar or a responsive breakpoint map (`{ base, sm, md, lg, xl }`).
39
+ * Scalar-only sx merges into inline style; responsive sx injects a scoped class.
40
+ */
41
+ sx?: SxProp;
31
42
  }
32
43
  export declare const PopoverContent: import("react").ForwardRefExoticComponent<PopoverContentProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,12 +1,25 @@
1
1
  import type { HTMLAttributes } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export type ProgressColor = 'primary' | 'danger' | 'warning' | 'success' | 'info';
3
4
  export interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
4
5
  value?: number;
5
6
  color?: ProgressColor;
6
7
  indeterminate?: boolean;
8
+ /**
9
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
10
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
11
+ * merges into inline style; responsive sx injects a scoped class.
12
+ */
13
+ sx?: SxProp;
7
14
  }
8
15
  export interface ProgressRingProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
9
16
  value: number;
10
17
  size?: 'md' | 'lg';
11
18
  showLabel?: boolean;
19
+ /**
20
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
21
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
22
+ * merges into inline style; responsive sx injects a scoped class.
23
+ */
24
+ sx?: SxProp;
12
25
  }
@@ -1,7 +1,20 @@
1
- import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- import * as RadixRadio from '@radix-ui/react-radio-group';
3
- type RadioGroupProps = ComponentPropsWithoutRef<typeof RadixRadio.Root>;
4
- type RadioItemProps = ComponentPropsWithoutRef<typeof RadixRadio.Item>;
1
+ import type { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
2
+ import type { Direction, FormControlProps, ValueStateProps } from '../../utils/primitiveProps';
3
+ import type { SxProp } from '../Layout/sx';
4
+ interface RadioGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue' | 'dir'>, ValueStateProps, FormControlProps {
5
+ /** Reading direction. */
6
+ dir?: Direction;
7
+ /** Allow arrow-key navigation to wrap around. Default: true. */
8
+ loop?: boolean;
9
+ }
10
+ interface RadioItemProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'type'> {
11
+ /** Value this item submits when selected. */
12
+ value: string;
13
+ /** Disables just this option. */
14
+ disabled?: boolean;
15
+ /** Marks the option required for form validation. */
16
+ required?: boolean;
17
+ }
5
18
  export interface RadioGroupRootProps extends RadioGroupProps {
6
19
  /** Stack direction. Default: `'column'`. */
7
20
  orientation?: 'horizontal' | 'vertical';
@@ -9,6 +22,13 @@ export interface RadioGroupRootProps extends RadioGroupProps {
9
22
  export declare const RadioGroup: import("react").ForwardRefExoticComponent<RadioGroupRootProps & import("react").RefAttributes<HTMLDivElement>>;
10
23
  export interface RadioProps extends Omit<RadioItemProps, 'children'> {
11
24
  children?: ReactNode;
25
+ /**
26
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
27
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
28
+ * merges into inline style; responsive sx injects a scoped class. Applied to
29
+ * the outer label wrapper, or the radio itself when there is no label.
30
+ */
31
+ sx?: SxProp;
12
32
  }
13
33
  export declare const Radio: import("react").ForwardRefExoticComponent<RadioProps & import("react").RefAttributes<HTMLButtonElement>>;
14
34
  export {};
@@ -1,4 +1,5 @@
1
1
  import type { HTMLAttributes, ReactNode } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export type ScrollVariant = 'default' | 'thin' | 'subtle' | 'overlay' | 'expand';
3
4
  export type ScrollTone = 'neutral' | 'primary';
4
5
  export type ScrollAxis = 'both' | 'x' | 'y';
@@ -9,5 +10,11 @@ export interface ScrollProps extends HTMLAttributes<HTMLDivElement> {
9
10
  maxHeight?: number | string;
10
11
  maxWidth?: number | string;
11
12
  region?: boolean;
13
+ /**
14
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
15
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
16
+ * merges into inline style; responsive sx injects a scoped class.
17
+ */
18
+ sx?: SxProp;
12
19
  children: ReactNode;
13
20
  }
@@ -1,8 +1,20 @@
1
- import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- import * as RadixSelect from '@radix-ui/react-select';
1
+ import type { ComponentPropsWithoutRef, CSSProperties, HTMLAttributes, ReactNode } from 'react';
2
+ import type { Direction, FormControlProps, ValueStateProps } from '../../utils/primitiveProps';
3
+ import type { SxProp } from '../Layout/sx';
3
4
  export type SelectColor = 'primary' | 'danger' | 'warning' | 'success';
4
5
  export type SelectSize = 'sm' | 'md' | 'lg';
5
- type SelectRootProps = ComponentPropsWithoutRef<typeof RadixSelect.Root>;
6
+ interface SelectRootProps extends ValueStateProps, FormControlProps {
7
+ /** Controlled open state of the dropdown. */
8
+ open?: boolean;
9
+ /** Uncontrolled initial open state. */
10
+ defaultOpen?: boolean;
11
+ /** Fires when the dropdown opens or closes. */
12
+ onOpenChange?: (open: boolean) => void;
13
+ /** Reading direction. */
14
+ dir?: Direction;
15
+ /** Autocomplete hint forwarded to the hidden native select. */
16
+ autoComplete?: string;
17
+ }
6
18
  export interface SelectProps extends SelectRootProps {
7
19
  /** Placeholder shown when nothing is selected. */
8
20
  placeholder?: string;
@@ -24,6 +36,15 @@ export interface SelectProps extends SelectRootProps {
24
36
  'aria-describedby'?: string;
25
37
  /** Apply .danger/.warning/.success via Field's className thread. */
26
38
  className?: string;
39
+ /**
40
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
41
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Applied to the
42
+ * trigger (the inline field). Scalar-only sx merges into inline style;
43
+ * responsive sx injects a scoped class.
44
+ */
45
+ sx?: SxProp;
46
+ /** Inline style applied to the trigger (the inline field). */
47
+ style?: CSSProperties;
27
48
  /** `<SelectItem>` / `<SelectGroup>` / `<SelectSeparator>` / `<SelectLabel>` children. */
28
49
  children: ReactNode;
29
50
  }
@@ -37,7 +58,7 @@ export interface SelectProps extends SelectRootProps {
37
58
  * <SelectItem value="staging">Staging</SelectItem>
38
59
  * </Select>
39
60
  */
40
- export declare function Select({ placeholder, size, color, triggerIcon, triggerClassName, contentClassName, id, className, disabled, children, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, ...rootProps }: SelectProps): import("react/jsx-runtime").JSX.Element;
61
+ export declare function Select({ placeholder, size, color, triggerIcon, triggerClassName, contentClassName, id, className, style, sx, disabled, children, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, ...rootProps }: SelectProps): import("react/jsx-runtime").JSX.Element;
41
62
  export interface SelectItemProps extends ComponentPropsWithoutRef<'div'> {
42
63
  /** The value submitted when this item is selected. */
43
64
  value: string;
@@ -53,5 +74,6 @@ export declare const SelectGroup: import("react").ForwardRefExoticComponent<Sele
53
74
  export interface SelectLabelProps extends ComponentPropsWithoutRef<'div'> {
54
75
  }
55
76
  export declare const SelectLabel: import("react").ForwardRefExoticComponent<SelectLabelProps & import("react").RefAttributes<HTMLDivElement>>;
56
- export declare const SelectSeparator: import("react").ForwardRefExoticComponent<Omit<RadixSelect.SelectSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
77
+ export type SelectSeparatorProps = HTMLAttributes<HTMLDivElement>;
78
+ export declare const SelectSeparator: import("react").ForwardRefExoticComponent<SelectSeparatorProps & import("react").RefAttributes<HTMLDivElement>>;
57
79
  export {};
@@ -1,10 +1,17 @@
1
1
  import type { AnchorHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export type SidebarWidth = 'thin' | 'default' | 'wide';
3
4
  export interface SidebarProps extends HTMLAttributes<HTMLElement> {
4
5
  width?: SidebarWidth;
5
6
  sticky?: boolean;
6
7
  collapsed?: boolean;
7
8
  responsive?: boolean;
9
+ /**
10
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
11
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
12
+ * merges into inline style; responsive sx injects a scoped class.
13
+ */
14
+ sx?: SxProp;
8
15
  children: ReactNode;
9
16
  }
10
17
  export interface SidebarSectionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
@@ -1,7 +1,14 @@
1
1
  import type { HTMLAttributes } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export type SkeletonShape = 'text' | 'title' | 'avatar' | 'button';
3
4
  export interface SkeletonProps extends HTMLAttributes<HTMLSpanElement> {
4
5
  shape?: SkeletonShape;
5
6
  width?: number | string;
6
7
  height?: number | string;
8
+ /**
9
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
10
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
11
+ * merges into inline style; responsive sx injects a scoped class.
12
+ */
13
+ sx?: SxProp;
7
14
  }
@@ -1,4 +1,5 @@
1
1
  import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import type { SxProp } from '../Layout/sx';
2
3
  export interface SliderProps extends Omit<ComponentPropsWithoutRef<'span'>, 'defaultValue' | 'dir' | 'onChange'> {
3
4
  /** Controlled value (one entry per thumb). */
4
5
  value?: number[];
@@ -30,6 +31,12 @@ export interface SliderProps extends Omit<ComponentPropsWithoutRef<'span'>, 'def
30
31
  showValue?: boolean;
31
32
  /** Format value for the bubble. Default: `String(v)`. */
32
33
  formatValue?: (v: number) => ReactNode;
34
+ /**
35
+ * One-off CSS, same as `Box`'s `sx`: each value may be a scalar or a
36
+ * responsive breakpoint map (`{ base, sm, md, lg, xl }`). Scalar-only sx
37
+ * merges into inline style; responsive sx injects a scoped class.
38
+ */
39
+ sx?: SxProp;
33
40
  }
34
41
  /**
35
42
  * Slider — single or range value picker. Pass an array length 1 for single,