@jfrader/ui 0.0.0-stage → 0.1.1

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 (194) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +123 -2
  3. package/dist/accordion-Dl-kvgPQ.js +168 -0
  4. package/dist/accordion.js +1 -0
  5. package/dist/alert-BzntPa_5.js +129 -0
  6. package/dist/alert.js +1 -0
  7. package/dist/avatar-Dk2ES3ru.js +124 -0
  8. package/dist/avatar.js +1 -0
  9. package/dist/badge-DZefC7rm.js +102 -0
  10. package/dist/badge.js +1 -0
  11. package/dist/breadcrumbs-5MCZ_Jr3.js +125 -0
  12. package/dist/breadcrumbs.js +1 -0
  13. package/dist/button-qy-50NPd.js +187 -0
  14. package/dist/button.js +1 -0
  15. package/dist/calendar-DcCAiN3b.js +372 -0
  16. package/dist/calendar.js +1 -0
  17. package/dist/card-L-Z_1vZN.js +120 -0
  18. package/dist/card.js +1 -0
  19. package/dist/checkbox-B7em7B-6.js +134 -0
  20. package/dist/checkbox.js +1 -0
  21. package/dist/choice-control-DCyQ_hVw.js +35 -0
  22. package/dist/collection-registry-C2jnQa7X.js +97 -0
  23. package/dist/combobox-DQcXR94r.js +301 -0
  24. package/dist/combobox.js +1 -0
  25. package/dist/command-palette-BRJ8A5De.js +328 -0
  26. package/dist/command-palette.js +1 -0
  27. package/dist/container-COHiEjI8.js +34 -0
  28. package/dist/container.js +1 -0
  29. package/dist/css-CW_HG55W.js +1 -0
  30. package/dist/date-picker-D1GwiRB9.js +239 -0
  31. package/dist/date-picker.js +1 -0
  32. package/dist/dialog-CYf9fCZO.js +175 -0
  33. package/dist/dialog.js +1 -0
  34. package/dist/disclosure-caret-BC6P8AsM.js +13 -0
  35. package/dist/divider-bi7OgCI5.js +76 -0
  36. package/dist/divider.js +1 -0
  37. package/dist/field-anatomy-DKkB268x.js +104 -0
  38. package/dist/flex-CDFDDaiu.js +21 -0
  39. package/dist/flex.js +1 -0
  40. package/dist/focus-ring-qOS3rPlM.js +11 -0
  41. package/dist/icon-wrapper-BKo4FI-O.js +12 -0
  42. package/dist/index.js +37 -0
  43. package/dist/kbd-DpiJgDJ2.js +55 -0
  44. package/dist/kbd.js +1 -0
  45. package/dist/layout-style-B_6YHQ6Q.js +56 -0
  46. package/dist/loading-ring-CTpT-IrT.js +18 -0
  47. package/dist/media-8K3xDAxM.js +4 -0
  48. package/dist/menu-A9fZUaAG.js +186 -0
  49. package/dist/menu.js +1 -0
  50. package/dist/navigation-Cemnmc_J.js +174 -0
  51. package/dist/navigation.js +1 -0
  52. package/dist/pagination-orCjUsn_.js +148 -0
  53. package/dist/pagination.js +1 -0
  54. package/dist/part-id-Bg1LSlk7.js +4 -0
  55. package/dist/pill-Dg2JJHHW.js +49 -0
  56. package/dist/pill.js +1 -0
  57. package/dist/popover-D_YU34WS.js +97 -0
  58. package/dist/popover.js +1 -0
  59. package/dist/progress-XdvBG0Vv.js +83 -0
  60. package/dist/progress.js +1 -0
  61. package/dist/radio-group-CxMJ2Vq7.js +130 -0
  62. package/dist/radio-group.js +1 -0
  63. package/dist/renderable-DwPvt1I8.js +6 -0
  64. package/dist/roving-focus-DeEZ55-T.js +35 -0
  65. package/dist/select-mwFbmzsn.js +256 -0
  66. package/dist/select.js +1 -0
  67. package/dist/skeleton-qas9ZKK9.js +47 -0
  68. package/dist/skeleton.js +1 -0
  69. package/dist/spinner-ros2CfIf.js +49 -0
  70. package/dist/spinner.js +1 -0
  71. package/dist/stack-Hs8THnIL.js +20 -0
  72. package/dist/stack.js +1 -0
  73. package/dist/surface-Bo_aSQOb.js +18 -0
  74. package/dist/switch-E375Bz4X.js +135 -0
  75. package/dist/switch.js +1 -0
  76. package/dist/tabs-CBwRiuul.js +173 -0
  77. package/dist/tabs.js +1 -0
  78. package/dist/text-field-BlP8qGn_.js +73 -0
  79. package/dist/text-field.js +1 -0
  80. package/dist/textarea-CUG26CH2.js +83 -0
  81. package/dist/textarea.js +1 -0
  82. package/dist/theme-root-CrdzwfSo.js +20 -0
  83. package/dist/theme-root.js +1 -0
  84. package/dist/toast-D_dnqnn-.js +270 -0
  85. package/dist/toast.js +1 -0
  86. package/dist/toggle-group-B7gXCea8.js +150 -0
  87. package/dist/toggle-group.js +1 -0
  88. package/dist/tooltip-BJ2hLV1b.js +92 -0
  89. package/dist/tooltip.js +1 -0
  90. package/dist/trigger-style-f54idgjT.js +35 -0
  91. package/dist/types/components/accordion/accordion.d.ts +33 -0
  92. package/dist/types/components/accordion/index.d.ts +2 -0
  93. package/dist/types/components/alert/alert.d.ts +23 -0
  94. package/dist/types/components/alert/index.d.ts +2 -0
  95. package/dist/types/components/avatar/avatar.d.ts +23 -0
  96. package/dist/types/components/avatar/index.d.ts +2 -0
  97. package/dist/types/components/badge/badge.d.ts +36 -0
  98. package/dist/types/components/badge/index.d.ts +2 -0
  99. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +15 -0
  100. package/dist/types/components/breadcrumbs/index.d.ts +2 -0
  101. package/dist/types/components/button/button.d.ts +34 -0
  102. package/dist/types/components/button/index.d.ts +2 -0
  103. package/dist/types/components/calendar/calendar.d.ts +28 -0
  104. package/dist/types/components/calendar/calendar.styles.d.ts +9 -0
  105. package/dist/types/components/calendar/calendar.utils.d.ts +37 -0
  106. package/dist/types/components/calendar/index.d.ts +2 -0
  107. package/dist/types/components/card/card.d.ts +34 -0
  108. package/dist/types/components/card/index.d.ts +2 -0
  109. package/dist/types/components/checkbox/checkbox.d.ts +21 -0
  110. package/dist/types/components/checkbox/index.d.ts +2 -0
  111. package/dist/types/components/combobox/combobox.d.ts +44 -0
  112. package/dist/types/components/combobox/index.d.ts +2 -0
  113. package/dist/types/components/command-palette/command-palette.d.ts +47 -0
  114. package/dist/types/components/command-palette/command-palette.styles.d.ts +8 -0
  115. package/dist/types/components/command-palette/index.d.ts +2 -0
  116. package/dist/types/components/container/container.d.ts +14 -0
  117. package/dist/types/components/container/index.d.ts +3 -0
  118. package/dist/types/components/date-picker/date-picker.d.ts +39 -0
  119. package/dist/types/components/date-picker/index.d.ts +2 -0
  120. package/dist/types/components/dialog/dialog.d.ts +61 -0
  121. package/dist/types/components/dialog/index.d.ts +2 -0
  122. package/dist/types/components/divider/divider.d.ts +14 -0
  123. package/dist/types/components/divider/index.d.ts +2 -0
  124. package/dist/types/components/field/field-anatomy.d.ts +49 -0
  125. package/dist/types/components/flex/flex.d.ts +4 -0
  126. package/dist/types/components/flex/index.d.ts +3 -0
  127. package/dist/types/components/kbd/index.d.ts +2 -0
  128. package/dist/types/components/kbd/kbd.d.ts +6 -0
  129. package/dist/types/components/menu/index.d.ts +2 -0
  130. package/dist/types/components/menu/menu.d.ts +29 -0
  131. package/dist/types/components/navigation/index.d.ts +2 -0
  132. package/dist/types/components/navigation/navigation.d.ts +24 -0
  133. package/dist/types/components/pagination/index.d.ts +2 -0
  134. package/dist/types/components/pagination/pagination.d.ts +14 -0
  135. package/dist/types/components/pill/index.d.ts +2 -0
  136. package/dist/types/components/pill/pill.d.ts +6 -0
  137. package/dist/types/components/popover/index.d.ts +2 -0
  138. package/dist/types/components/popover/popover.d.ts +19 -0
  139. package/dist/types/components/progress/index.d.ts +2 -0
  140. package/dist/types/components/progress/progress.d.ts +19 -0
  141. package/dist/types/components/radio-group/index.d.ts +2 -0
  142. package/dist/types/components/radio-group/radio-group.d.ts +29 -0
  143. package/dist/types/components/select/index.d.ts +2 -0
  144. package/dist/types/components/select/select.d.ts +38 -0
  145. package/dist/types/components/skeleton/index.d.ts +2 -0
  146. package/dist/types/components/skeleton/skeleton.d.ts +11 -0
  147. package/dist/types/components/spinner/index.d.ts +2 -0
  148. package/dist/types/components/spinner/spinner.d.ts +8 -0
  149. package/dist/types/components/stack/index.d.ts +3 -0
  150. package/dist/types/components/stack/stack.d.ts +7 -0
  151. package/dist/types/components/switch/index.d.ts +2 -0
  152. package/dist/types/components/switch/switch.d.ts +20 -0
  153. package/dist/types/components/tabs/index.d.ts +2 -0
  154. package/dist/types/components/tabs/tabs.d.ts +22 -0
  155. package/dist/types/components/text-field/index.d.ts +2 -0
  156. package/dist/types/components/text-field/text-field.d.ts +14 -0
  157. package/dist/types/components/textarea/index.d.ts +2 -0
  158. package/dist/types/components/textarea/textarea.d.ts +17 -0
  159. package/dist/types/components/theme-root/index.d.ts +2 -0
  160. package/dist/types/components/theme-root/theme-root.d.ts +7 -0
  161. package/dist/types/components/toast/index.d.ts +2 -0
  162. package/dist/types/components/toast/toast.d.ts +37 -0
  163. package/dist/types/components/toggle-group/index.d.ts +2 -0
  164. package/dist/types/components/toggle-group/toggle-group.d.ts +29 -0
  165. package/dist/types/components/tooltip/index.d.ts +2 -0
  166. package/dist/types/components/tooltip/tooltip.d.ts +23 -0
  167. package/dist/types/index.d.ts +36 -0
  168. package/dist/types/overlay/use-native-dialog.d.ts +39 -0
  169. package/dist/types/overlay/use-overlay-floating.d.ts +11 -0
  170. package/dist/types/overlay/use-scroll-lock.d.ts +5 -0
  171. package/dist/types/styling/choice-control.d.ts +8 -0
  172. package/dist/types/styling/css.d.ts +2 -0
  173. package/dist/types/styling/disclosure-caret.d.ts +9 -0
  174. package/dist/types/styling/focus-ring.d.ts +10 -0
  175. package/dist/types/styling/icon-wrapper.d.ts +1 -0
  176. package/dist/types/styling/input-control.d.ts +1 -0
  177. package/dist/types/styling/layout-style.d.ts +26 -0
  178. package/dist/types/styling/listbox-style.d.ts +12 -0
  179. package/dist/types/styling/loading-ring.d.ts +14 -0
  180. package/dist/types/styling/media.d.ts +2 -0
  181. package/dist/types/styling/surface.d.ts +19 -0
  182. package/dist/types/styling/trigger-style.d.ts +1 -0
  183. package/dist/types/styling/visually-hidden.d.ts +1 -0
  184. package/dist/types/utils/collection-registry.d.ts +41 -0
  185. package/dist/types/utils/part-id.d.ts +2 -0
  186. package/dist/types/utils/renderable.d.ts +3 -0
  187. package/dist/types/utils/roving-focus.d.ts +18 -0
  188. package/dist/types/utils/use-controlled-state.d.ts +7 -0
  189. package/dist/types/utils/use-latest-callback.d.ts +10 -0
  190. package/dist/use-controlled-state-DQXkiTQI.js +20 -0
  191. package/dist/use-native-dialog-BCp1chwO.js +83 -0
  192. package/dist/use-overlay-floating-CsZd3qxa.js +18 -0
  193. package/dist/visually-hidden-BXVyhj0y.js +16 -0
  194. package/package.json +198 -3
@@ -0,0 +1,14 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {
3
+ page: number;
4
+ totalPages: number;
5
+ onPageChange?: (page: number) => void;
6
+ /** Pages shown on each side of the current page. */
7
+ siblingCount?: number;
8
+ /** Accessible name of the navigation landmark. */
9
+ label?: string;
10
+ previousLabel?: string;
11
+ nextLabel?: string;
12
+ locale?: string;
13
+ }
14
+ export declare const Pagination: import("react").ForwardRefExoticComponent<PaginationProps & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,2 @@
1
+ export { Pill } from './pill';
2
+ export type { PillProps, PillTone } from './pill';
@@ -0,0 +1,6 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export type PillTone = 'neutral' | 'accent' | 'success' | 'warning' | 'danger';
3
+ export interface PillProps extends HTMLAttributes<HTMLSpanElement> {
4
+ tone?: PillTone;
5
+ }
6
+ export declare const Pill: import("react").ForwardRefExoticComponent<PillProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,2 @@
1
+ export { Popover } from './popover';
2
+ export type { PopoverContentProps, PopoverProps, PopoverTriggerProps } from './popover';
@@ -0,0 +1,19 @@
1
+ import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type Placement } from '@floating-ui/react';
3
+ export interface PopoverProps {
4
+ open?: boolean;
5
+ defaultOpen?: boolean;
6
+ onOpenChange?: (open: boolean) => void;
7
+ placement?: Placement;
8
+ children?: ReactNode;
9
+ }
10
+ export interface PopoverTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
11
+ }
12
+ export interface PopoverContentProps extends HTMLAttributes<HTMLDivElement> {
13
+ }
14
+ declare function PopoverRoot({ open: openProp, defaultOpen, onOpenChange, placement, children, }: PopoverProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
+ export declare const Popover: typeof PopoverRoot & {
16
+ Trigger: import("react").ForwardRefExoticComponent<PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
17
+ Content: import("react").ForwardRefExoticComponent<PopoverContentProps & import("react").RefAttributes<HTMLDivElement>>;
18
+ };
19
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Progress } from './progress';
2
+ export type { ProgressPartProps, ProgressProps } from './progress';
@@ -0,0 +1,19 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ export interface ProgressPartProps {
4
+ className?: string;
5
+ css?: Interpolation<Theme>;
6
+ }
7
+ export interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
8
+ /** Current value in `0..max`; leave undefined for indeterminate progress. */
9
+ value?: number;
10
+ max?: number;
11
+ /** Accessible name, rendered visually hidden. */
12
+ label?: ReactNode;
13
+ /** Human-readable value for assistive tech (aria-valuetext). */
14
+ getValueLabel?: (value: number, max: number) => string;
15
+ slotProps?: {
16
+ indicator?: ProgressPartProps;
17
+ };
18
+ }
19
+ export declare const Progress: import("react").ForwardRefExoticComponent<ProgressProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { RadioGroup } from './radio-group';
2
+ export type { RadioGroupOrientation, RadioGroupProps, RadioGroupRadioPartProps, RadioGroupRadioProps, } from './radio-group';
@@ -0,0 +1,29 @@
1
+ import { type HTMLAttributes, type InputHTMLAttributes, type ReactNode } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ export type RadioGroupOrientation = 'vertical' | 'horizontal';
4
+ export interface RadioGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
5
+ value?: string;
6
+ defaultValue?: string;
7
+ onValueChange?: (value: string) => void;
8
+ name?: string;
9
+ disabled?: boolean;
10
+ orientation?: RadioGroupOrientation;
11
+ }
12
+ export interface RadioGroupRadioPartProps {
13
+ className?: string;
14
+ css?: Interpolation<Theme>;
15
+ }
16
+ export interface RadioGroupRadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'name' | 'checked' | 'defaultChecked' | 'size'> {
17
+ value: string;
18
+ label?: ReactNode;
19
+ description?: ReactNode;
20
+ slotProps?: {
21
+ root?: RadioGroupRadioPartProps;
22
+ label?: RadioGroupRadioPartProps;
23
+ control?: RadioGroupRadioPartProps;
24
+ description?: RadioGroupRadioPartProps;
25
+ };
26
+ }
27
+ export declare const RadioGroup: import("react").ForwardRefExoticComponent<RadioGroupProps & import("react").RefAttributes<HTMLDivElement>> & {
28
+ Radio: import("react").ForwardRefExoticComponent<RadioGroupRadioProps & import("react").RefAttributes<HTMLInputElement>>;
29
+ };
@@ -0,0 +1,2 @@
1
+ export { Select } from './select';
2
+ export type { SelectContentProps, SelectItemProps, SelectProps, SelectTriggerProps, SelectValueProps } from './select';
@@ -0,0 +1,38 @@
1
+ import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type Placement } from '@floating-ui/react';
3
+ export interface SelectProps {
4
+ value?: string;
5
+ defaultValue?: string;
6
+ /** Fires once per accepted selection with the option's `value`. */
7
+ onValueChange?: (value: string) => void;
8
+ open?: boolean;
9
+ defaultOpen?: boolean;
10
+ onOpenChange?: (open: boolean) => void;
11
+ placement?: Placement;
12
+ disabled?: boolean;
13
+ /** Renders a hidden input so the value takes part in native form submission. */
14
+ name?: string;
15
+ children?: ReactNode;
16
+ }
17
+ export interface SelectTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
18
+ id?: string;
19
+ }
20
+ export interface SelectValueProps extends HTMLAttributes<HTMLSpanElement> {
21
+ /** Shown when no option matches the selected value. */
22
+ placeholder?: ReactNode;
23
+ }
24
+ export interface SelectContentProps extends HTMLAttributes<HTMLDivElement> {
25
+ }
26
+ export interface SelectItemProps extends HTMLAttributes<HTMLDivElement> {
27
+ /** Unique within the select. */
28
+ value: string;
29
+ disabled?: boolean;
30
+ }
31
+ declare function SelectRoot({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, placement, disabled, name, children, }: SelectProps): import("@emotion/react/jsx-runtime").JSX.Element;
32
+ export declare const Select: typeof SelectRoot & {
33
+ Trigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
34
+ Value: import("react").ForwardRefExoticComponent<SelectValueProps & import("react").RefAttributes<HTMLSpanElement>>;
35
+ Content: import("react").ForwardRefExoticComponent<SelectContentProps & import("react").RefAttributes<HTMLDivElement>>;
36
+ Item: import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLDivElement>>;
37
+ };
38
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Skeleton } from './skeleton';
2
+ export type { SkeletonProps } from './skeleton';
@@ -0,0 +1,11 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ type Length = number | string;
3
+ export interface SkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
4
+ width?: Length;
5
+ height?: Length;
6
+ /** Round placeholder; height follows width unless `height` is given. */
7
+ circle?: boolean;
8
+ radius?: Length;
9
+ }
10
+ export declare const Skeleton: import("react").ForwardRefExoticComponent<SkeletonProps & import("react").RefAttributes<HTMLDivElement>>;
11
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Spinner } from './spinner';
2
+ export type { SpinnerProps, SpinnerSize } from './spinner';
@@ -0,0 +1,8 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export type SpinnerSize = 'sm' | 'md' | 'lg';
3
+ export interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
4
+ size?: SpinnerSize;
5
+ /** Accessible text announced for the status region. */
6
+ label?: string;
7
+ }
8
+ export declare const Spinner: import("react").ForwardRefExoticComponent<SpinnerProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,3 @@
1
+ export { Stack } from './stack';
2
+ export type { StackAlign, StackProps } from './stack';
3
+ export type { FlexJustify, LayoutSpace } from '../../styling/layout-style';
@@ -0,0 +1,7 @@
1
+ import { type FlexAlign } from '../../styling/layout-style';
2
+ import type { FlexProps } from '../flex';
3
+ export type StackAlign = Exclude<FlexAlign, 'baseline'>;
4
+ export interface StackProps extends Omit<FlexProps, 'direction' | 'inline' | 'align'> {
5
+ align?: StackAlign;
6
+ }
7
+ export declare const Stack: import("react").ForwardRefExoticComponent<StackProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { Switch } from './switch';
2
+ export type { SwitchProps, SwitchPartProps, SwitchSize } from './switch';
@@ -0,0 +1,20 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ export type SwitchSize = 'sm' | 'md';
4
+ export interface SwitchPartProps {
5
+ className?: string;
6
+ css?: Interpolation<Theme>;
7
+ }
8
+ export interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
9
+ label?: ReactNode;
10
+ description?: ReactNode;
11
+ size?: SwitchSize;
12
+ onCheckedChange?: (checked: boolean) => void;
13
+ slotProps?: {
14
+ root?: SwitchPartProps;
15
+ label?: SwitchPartProps;
16
+ control?: SwitchPartProps;
17
+ description?: SwitchPartProps;
18
+ };
19
+ }
20
+ export declare const Switch: import("react").ForwardRefExoticComponent<SwitchProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,2 @@
1
+ export { Tabs } from './tabs';
2
+ export type { TabsActivation, TabsListProps, TabsOrientation, TabsPanelProps, TabsProps, TabsTabProps } from './tabs';
@@ -0,0 +1,22 @@
1
+ import { type ButtonHTMLAttributes, type HTMLAttributes } from 'react';
2
+ export type TabsOrientation = 'horizontal' | 'vertical';
3
+ export type TabsActivation = 'auto' | 'manual';
4
+ export interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
5
+ value?: string;
6
+ defaultValue?: string;
7
+ onValueChange?: (value: string) => void;
8
+ orientation?: TabsOrientation;
9
+ activation?: TabsActivation;
10
+ }
11
+ export type TabsListProps = HTMLAttributes<HTMLDivElement>;
12
+ export interface TabsTabProps extends ButtonHTMLAttributes<HTMLButtonElement> {
13
+ value: string;
14
+ }
15
+ export interface TabsPanelProps extends HTMLAttributes<HTMLDivElement> {
16
+ value: string;
17
+ }
18
+ export declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<HTMLDivElement>> & {
19
+ List: import("react").ForwardRefExoticComponent<TabsListProps & import("react").RefAttributes<HTMLDivElement>>;
20
+ Tab: import("react").ForwardRefExoticComponent<TabsTabProps & import("react").RefAttributes<HTMLButtonElement>>;
21
+ Panel: import("react").ForwardRefExoticComponent<TabsPanelProps & import("react").RefAttributes<HTMLDivElement>>;
22
+ };
@@ -0,0 +1,2 @@
1
+ export { TextField } from './text-field';
2
+ export type { TextFieldPartProps, TextFieldProps, TextFieldSize } from './text-field';
@@ -0,0 +1,14 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from 'react';
2
+ import { type FieldPartProps, type FieldSlotProps } from '../field/field-anatomy';
3
+ export type TextFieldSize = 'sm' | 'md' | 'lg';
4
+ export interface TextFieldPartProps extends FieldPartProps {
5
+ }
6
+ export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
7
+ label?: ReactNode;
8
+ description?: ReactNode;
9
+ error?: ReactNode;
10
+ size?: TextFieldSize;
11
+ onValueChange?: (value: string) => void;
12
+ slotProps?: FieldSlotProps<TextFieldPartProps>;
13
+ }
14
+ export declare const TextField: import("react").ForwardRefExoticComponent<TextFieldProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,2 @@
1
+ export { Textarea } from './textarea';
2
+ export type { TextareaPartProps, TextareaProps, TextareaResize, TextareaSize } from './textarea';
@@ -0,0 +1,17 @@
1
+ import { type ReactNode, type TextareaHTMLAttributes } from 'react';
2
+ import { type FieldPartProps, type FieldSlotProps } from '../field/field-anatomy';
3
+ export type TextareaSize = 'sm' | 'md' | 'lg';
4
+ export type TextareaResize = 'none' | 'vertical';
5
+ export interface TextareaPartProps extends FieldPartProps {
6
+ }
7
+ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
8
+ label?: ReactNode;
9
+ description?: ReactNode;
10
+ error?: ReactNode;
11
+ size?: TextareaSize;
12
+ resize?: TextareaResize;
13
+ autoResize?: boolean;
14
+ onValueChange?: (value: string) => void;
15
+ slotProps?: FieldSlotProps<TextareaPartProps>;
16
+ }
17
+ export declare const Textarea: import("react").ForwardRefExoticComponent<TextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
@@ -0,0 +1,2 @@
1
+ export { ThemeRoot } from './theme-root';
2
+ export type { ThemeName, ThemeRootProps } from './theme-root';
@@ -0,0 +1,7 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ export type ThemeName = 'dark' | 'light';
3
+ export interface ThemeRootProps extends HTMLAttributes<HTMLDivElement> {
4
+ theme?: ThemeName;
5
+ children?: ReactNode;
6
+ }
7
+ export declare const ThemeRoot: import("react").ForwardRefExoticComponent<ThemeRootProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { Toast, useToast } from './toast';
2
+ export type { ToastAction, ToastApi, ToastOptions, ToastProviderProps, ToastTone, ToastViewportProps, } from './toast';
@@ -0,0 +1,37 @@
1
+ import { type HTMLAttributes, type MouseEvent, type ReactNode } from 'react';
2
+ export type ToastTone = 'neutral' | 'success' | 'danger';
3
+ export interface ToastAction {
4
+ label: string;
5
+ /** Runs on click; the toast then dismisses unless the handler calls `event.preventDefault()`. */
6
+ onClick: (event: MouseEvent<HTMLButtonElement>) => void;
7
+ }
8
+ export interface ToastOptions {
9
+ title?: ReactNode;
10
+ description?: ReactNode;
11
+ tone?: ToastTone;
12
+ /** Milliseconds before auto-dismiss; `null` persists until dismissed. Defaults to the provider's. */
13
+ duration?: number | null;
14
+ action?: ToastAction;
15
+ }
16
+ export interface ToastProviderProps {
17
+ children?: ReactNode;
18
+ /** Maximum toasts kept; adding past it removes the oldest immediately. */
19
+ max?: number;
20
+ /** Default delay, captured at enqueue time; changes do not retime existing toasts. */
21
+ duration?: number;
22
+ /** Accessible label for each toast's close button. */
23
+ dismissLabel?: string;
24
+ }
25
+ export interface ToastViewportProps extends HTMLAttributes<HTMLDivElement> {
26
+ }
27
+ export interface ToastApi {
28
+ toast: (options: ToastOptions) => string;
29
+ dismiss: (id: string) => void;
30
+ }
31
+ export declare function useToast(): ToastApi;
32
+ declare function ToastProvider({ children, max, duration, dismissLabel, }: ToastProviderProps): import("@emotion/react/jsx-runtime").JSX.Element;
33
+ export declare const Toast: typeof ToastProvider & {
34
+ Provider: typeof ToastProvider;
35
+ Viewport: import("react").ForwardRefExoticComponent<ToastViewportProps & import("react").RefAttributes<HTMLDivElement>>;
36
+ };
37
+ export {};
@@ -0,0 +1,2 @@
1
+ export { ToggleGroup } from './toggle-group';
2
+ export type { ToggleGroupItemProps, ToggleGroupMultipleProps, ToggleGroupOrientation, ToggleGroupProps, ToggleGroupSingleProps, ToggleGroupType, } from './toggle-group';
@@ -0,0 +1,29 @@
1
+ import { type ButtonHTMLAttributes, type HTMLAttributes } from 'react';
2
+ export type ToggleGroupType = 'single' | 'multiple';
3
+ export type ToggleGroupOrientation = 'horizontal' | 'vertical';
4
+ interface ToggleGroupBaseProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
5
+ orientation?: ToggleGroupOrientation;
6
+ disabled?: boolean;
7
+ allowEmpty?: boolean;
8
+ label?: string;
9
+ }
10
+ export interface ToggleGroupSingleProps extends ToggleGroupBaseProps {
11
+ type?: 'single';
12
+ value?: string;
13
+ defaultValue?: string;
14
+ onValueChange?: (value: string) => void;
15
+ }
16
+ export interface ToggleGroupMultipleProps extends ToggleGroupBaseProps {
17
+ type: 'multiple';
18
+ value?: string[];
19
+ defaultValue?: string[];
20
+ onValueChange?: (value: string[]) => void;
21
+ }
22
+ export type ToggleGroupProps = ToggleGroupSingleProps | ToggleGroupMultipleProps;
23
+ export interface ToggleGroupItemProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value'> {
24
+ value: string;
25
+ }
26
+ export declare const ToggleGroup: import("react").ForwardRefExoticComponent<ToggleGroupProps & import("react").RefAttributes<HTMLDivElement>> & {
27
+ Item: import("react").ForwardRefExoticComponent<ToggleGroupItemProps & import("react").RefAttributes<HTMLButtonElement>>;
28
+ };
29
+ export {};
@@ -0,0 +1,2 @@
1
+ export { Tooltip } from './tooltip';
2
+ export type { TooltipContentProps, TooltipProps, TooltipTriggerProps } from './tooltip';
@@ -0,0 +1,23 @@
1
+ import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type Placement } from '@floating-ui/react';
3
+ export interface TooltipProps {
4
+ open?: boolean;
5
+ defaultOpen?: boolean;
6
+ onOpenChange?: (open: boolean) => void;
7
+ placement?: Placement;
8
+ /** Hover delay before opening, in ms. Keyboard focus opens immediately. */
9
+ openDelay?: number;
10
+ /** Delay before closing after the pointer leaves trigger and content, in ms. */
11
+ closeDelay?: number;
12
+ children?: ReactNode;
13
+ }
14
+ export interface TooltipTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
15
+ }
16
+ export interface TooltipContentProps extends HTMLAttributes<HTMLDivElement> {
17
+ }
18
+ declare function TooltipRoot({ open: openProp, defaultOpen, onOpenChange, placement, openDelay, closeDelay, children, }: TooltipProps): import("@emotion/react/jsx-runtime").JSX.Element;
19
+ export declare const Tooltip: typeof TooltipRoot & {
20
+ Trigger: import("react").ForwardRefExoticComponent<TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
21
+ Content: import("react").ForwardRefExoticComponent<TooltipContentProps & import("react").RefAttributes<HTMLDivElement>>;
22
+ };
23
+ export {};
@@ -0,0 +1,36 @@
1
+ export * from './components/accordion';
2
+ export * from './components/alert';
3
+ export * from './components/avatar';
4
+ export * from './components/badge';
5
+ export * from './components/breadcrumbs';
6
+ export * from './components/button';
7
+ export * from './components/calendar';
8
+ export * from './components/card';
9
+ export * from './components/checkbox';
10
+ export * from './components/command-palette';
11
+ export * from './components/combobox';
12
+ export * from './components/container';
13
+ export * from './components/date-picker';
14
+ export * from './components/dialog';
15
+ export * from './components/divider';
16
+ export * from './components/flex';
17
+ export * from './components/kbd';
18
+ export * from './components/menu';
19
+ export * from './components/navigation';
20
+ export * from './components/pagination';
21
+ export * from './components/pill';
22
+ export * from './components/popover';
23
+ export * from './components/progress';
24
+ export * from './components/radio-group';
25
+ export * from './components/select';
26
+ export * from './components/skeleton';
27
+ export * from './components/spinner';
28
+ export * from './components/stack';
29
+ export * from './components/switch';
30
+ export * from './components/tabs';
31
+ export * from './components/text-field';
32
+ export * from './components/textarea';
33
+ export * from './components/theme-root';
34
+ export * from './components/toast';
35
+ export * from './components/toggle-group';
36
+ export * from './components/tooltip';
@@ -0,0 +1,39 @@
1
+ import { type ForwardedRef, type MouseEvent, type MouseEventHandler, type MutableRefObject, type ReactEventHandler, type SyntheticEvent } from 'react';
2
+ /** What Content needs from its Root; both Roots expose it through their context. */
3
+ export interface NativeDialogController {
4
+ open: boolean;
5
+ setOpen: (open: boolean) => void;
6
+ requestClose: () => void;
7
+ repairToken: number;
8
+ setDialogElement: (element: HTMLDialogElement | null) => void;
9
+ }
10
+ export interface NativeDialogHandlers {
11
+ onCancel?: ReactEventHandler<HTMLDialogElement>;
12
+ onClick?: MouseEventHandler<HTMLDialogElement>;
13
+ onClose?: ReactEventHandler<HTMLDialogElement>;
14
+ }
15
+ export declare function requestNativeDialogClose(dialog: HTMLDialogElement | null, setOpen: (open: boolean) => void): void;
16
+ /** Root half: logical open requests, the repair token and the registered dialog element. */
17
+ export declare function useNativeDialogRoot(open: boolean, requestOpenChange: (open: boolean) => void): {
18
+ dialogElementRef: import("react").RefObject<HTMLDialogElement | null>;
19
+ setDialogElement: (element: HTMLDialogElement | null) => void;
20
+ setOpen: (next: boolean) => void;
21
+ requestClose: () => void;
22
+ repairToken: number;
23
+ };
24
+ /** Root owns logical openness: a native `open` prop passed to Content is deliberately ignored. */
25
+ export declare function omitNativeOpen<P extends object>(props: P & {
26
+ open?: unknown;
27
+ }): Omit<P & {
28
+ open?: unknown;
29
+ }, "open">;
30
+ /**
31
+ * Content half: syncs the native dialog to the logical `open`, and returns the `ref` and
32
+ * event handlers to spread on the <dialog> (after the consumer's props).
33
+ */
34
+ export declare function useNativeDialog({ open, setOpen, requestClose, repairToken, setDialogElement }: NativeDialogController, { onCancel, onClick, onClose }: NativeDialogHandlers, forwardedRef: ForwardedRef<HTMLDialogElement>, contentRef?: MutableRefObject<HTMLDialogElement | null>): {
35
+ ref: (element: HTMLDialogElement | null) => void;
36
+ onCancel: (event: SyntheticEvent<HTMLDialogElement>) => void;
37
+ onClick: (event: MouseEvent<HTMLDialogElement>) => void;
38
+ onClose: (event: SyntheticEvent<HTMLDialogElement>) => void;
39
+ };
@@ -0,0 +1,11 @@
1
+ import { type OpenChangeReason, type Placement, type UseFloatingReturn } from '@floating-ui/react';
2
+ export interface OverlayFloatingOptions {
3
+ open: boolean;
4
+ onOpenChange: (open: boolean, event?: Event, reason?: OpenChangeReason) => void;
5
+ placement: Placement;
6
+ }
7
+ /**
8
+ * Shared positioning for Popover, Tooltip and Menu. `autoUpdate` only runs while both
9
+ * elements are mounted, so a closed (unmounted) surface does no positioning work.
10
+ */
11
+ export declare function useOverlayFloating({ open, onOpenChange, placement, }: OverlayFloatingOptions): UseFloatingReturn<HTMLButtonElement>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Blocks page scrolling while `active` is true.
3
+ * Pass `getDocument` for overlays mounted in another document (iframes).
4
+ */
5
+ export declare function useScrollLock(active: boolean, getDocument?: () => Document | undefined): void;
@@ -0,0 +1,8 @@
1
+ /** Column root layout and the checked accent fill on the visual span. */
2
+ export declare const choiceRootStyle: import("@emotion/react").SerializedStyles;
3
+ /** Focus ring on the visual span and the disabled look. */
4
+ export declare const choiceRootStateStyle: import("@emotion/react").SerializedStyles;
5
+ /** Row holding the input, the visual span and the label. */
6
+ export declare const choiceRowStyle: import("@emotion/react").SerializedStyles;
7
+ /** Transparent native input that stays operable and focusable. */
8
+ export declare const choiceInputStyle: import("@emotion/react").SerializedStyles;
@@ -0,0 +1,2 @@
1
+ export { css, keyframes } from '@emotion/react';
2
+ export type { Interpolation, SerializedStyles, Theme } from '@emotion/react';
@@ -0,0 +1,9 @@
1
+ export declare const disclosureCaret: {
2
+ content: string;
3
+ flexShrink: number;
4
+ borderBlock: string;
5
+ borderInlineStart: string;
6
+ transitionProperty: string;
7
+ transitionDuration: "var(--ui-motion-duration-base)";
8
+ transitionTimingFunction: "var(--ui-motion-ease-standard)";
9
+ };
@@ -0,0 +1,10 @@
1
+ /** Ring drawn outside the element's border box. */
2
+ export declare const focusRingOutset: {
3
+ outline: string;
4
+ outlineOffset: string;
5
+ };
6
+ /** Ring drawn inside the element's border box, for items packed edge to edge. */
7
+ export declare const focusRingInset: {
8
+ outline: string;
9
+ outlineOffset: string;
10
+ };
@@ -0,0 +1 @@
1
+ export declare const iconWrapperStyle: import("@emotion/react").SerializedStyles;
@@ -0,0 +1 @@
1
+ export declare const inputControlStyle: import("@emotion/react").SerializedStyles;
@@ -0,0 +1,26 @@
1
+ import { type SerializedStyles } from './css';
2
+ export declare const LAYOUT_SPACES: readonly ['none', 'xs', 'sm', 'md', 'lg', 'xl'];
3
+ export type LayoutSpace = (typeof LAYOUT_SPACES)[number];
4
+ export type FlexDirection = 'row' | 'column';
5
+ export type FlexAlign = 'start' | 'center' | 'end' | 'baseline' | 'stretch';
6
+ export type FlexJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
7
+ export interface LayoutProps {
8
+ direction?: FlexDirection;
9
+ wrap?: boolean;
10
+ inline?: boolean;
11
+ align?: FlexAlign;
12
+ justify?: FlexJustify;
13
+ gap?: LayoutSpace;
14
+ }
15
+ /** Layout space step → `vars.space` key (xs 4px, sm 8px, md 16px, lg 24px, xl 32px); `none` is 0. */
16
+ export declare const LAYOUT_SPACE_TOKEN: {
17
+ readonly xs: 1;
18
+ readonly sm: 2;
19
+ readonly md: 4;
20
+ readonly lg: 6;
21
+ readonly xl: 8;
22
+ };
23
+ /** One precomputed style per space step for `property`. Call at module scope. */
24
+ export declare function spaceStyles(property: 'gap' | 'paddingInline'): Record<LayoutSpace, SerializedStyles>;
25
+ /** The flex recipe with its defaults; components pass only the options they own. */
26
+ export declare function flexLayoutStyles({ direction, wrap, inline, align, justify, gap, }: LayoutProps): (false | SerializedStyles)[];
@@ -0,0 +1,12 @@
1
+ /** Popup surface of Menu, Select and Combobox. */
2
+ export declare const listboxSurfaceStyle: import("@emotion/react").SerializedStyles;
3
+ /** A surface that stays mounted while closed and scrolls past its maximum height. */
4
+ export declare const listboxScrollStyle: import("@emotion/react").SerializedStyles;
5
+ /** Virtual-focus option: the active option carries the focus ring. */
6
+ export declare const listboxItemStyle: import("@emotion/react").SerializedStyles;
7
+ /** Hover/active highlight that skips disabled items, and the disabled look. */
8
+ export declare const listboxItemStateStyle: import("@emotion/react").SerializedStyles;
9
+ /** Selectable option with a text part and a trailing check. */
10
+ export declare const listboxOptionStyle: import("@emotion/react").SerializedStyles;
11
+ export declare const listboxOptionTextStyle: import("@emotion/react").SerializedStyles;
12
+ export declare const listboxOptionCheckStyle: import("@emotion/react").SerializedStyles;
@@ -0,0 +1,14 @@
1
+ /** Opacity pulse that replaces the rotation under reduced motion. */
2
+ export declare const loadingRingPulse: {
3
+ name: string;
4
+ styles: string;
5
+ anim: 1;
6
+ toString: () => string;
7
+ } & string;
8
+ export declare const loadingRing: {
9
+ display: string;
10
+ border: string;
11
+ borderInlineEndColor: string;
12
+ borderRadius: "var(--ui-radius-full)";
13
+ animation: string;
14
+ };
@@ -0,0 +1,2 @@
1
+ export declare const REDUCED_MOTION = "@media (prefers-reduced-motion: reduce)";
2
+ export declare const FORCED_COLORS = "@media (forced-colors: active)";