@jfrader/ui 0.1.2 → 0.2.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 (144) hide show
  1. package/README.md +1 -1
  2. package/dist/accordion-CkOZ-tvs.js +178 -0
  3. package/dist/accordion.js +1 -1
  4. package/dist/alert-Dsjx14UW.js +131 -0
  5. package/dist/alert.js +1 -1
  6. package/dist/avatar-BRGKkoSr.js +127 -0
  7. package/dist/avatar.js +1 -1
  8. package/dist/badge-DLxUMsCx.js +104 -0
  9. package/dist/badge.js +1 -1
  10. package/dist/breadcrumbs-694hF_hm.js +131 -0
  11. package/dist/breadcrumbs.js +1 -1
  12. package/dist/button-CoaIcykB.js +190 -0
  13. package/dist/button.js +1 -1
  14. package/dist/calendar-Doj7PTdG.js +379 -0
  15. package/dist/calendar.js +1 -1
  16. package/dist/card-2IM71XZj.js +134 -0
  17. package/dist/card.js +1 -1
  18. package/dist/checkbox-B7xGNFzp.js +136 -0
  19. package/dist/checkbox.js +1 -1
  20. package/dist/combobox-Bjhxv5U3.js +311 -0
  21. package/dist/combobox.js +1 -1
  22. package/dist/{command-palette-6c158eH1.js → command-palette-BhJwm6cS.js} +144 -129
  23. package/dist/command-palette.js +1 -1
  24. package/dist/container-BhnrGPu-.js +36 -0
  25. package/dist/container.js +1 -1
  26. package/dist/date-picker-Jk8SpoiO.js +245 -0
  27. package/dist/date-picker.js +1 -1
  28. package/dist/dialog-fhS07G41.js +187 -0
  29. package/dist/dialog.js +1 -1
  30. package/dist/divider-v_78HYF5.js +79 -0
  31. package/dist/divider.js +1 -1
  32. package/dist/flex-COZzFqI8.js +22 -0
  33. package/dist/flex.js +1 -1
  34. package/dist/index.js +36 -36
  35. package/dist/kbd-CeP8Kfvp.js +61 -0
  36. package/dist/kbd.js +1 -1
  37. package/dist/menu-B6KCbLCr.js +196 -0
  38. package/dist/menu.js +1 -1
  39. package/dist/navigation-BDht6S2-.js +182 -0
  40. package/dist/navigation.js +1 -1
  41. package/dist/{pagination-BIKYsxK1.js → pagination-B50PCaDU.js} +58 -56
  42. package/dist/pagination.js +1 -1
  43. package/dist/pill-2_XzBdkD.js +51 -0
  44. package/dist/pill.js +1 -1
  45. package/dist/popover-DRHbeIVq.js +103 -0
  46. package/dist/popover.js +1 -1
  47. package/dist/{progress-C8bgujFI.js → progress-CpsskKTD.js} +37 -36
  48. package/dist/progress.js +1 -1
  49. package/dist/radio-group-DPI5KUCj.js +136 -0
  50. package/dist/radio-group.js +1 -1
  51. package/dist/select-C1xGrOhT.js +266 -0
  52. package/dist/select.js +1 -1
  53. package/dist/skeleton-DitdP-yz.js +49 -0
  54. package/dist/skeleton.js +1 -1
  55. package/dist/{spinner-CSFiP0Oi.js → spinner-CFq5HPoo.js} +24 -23
  56. package/dist/spinner.js +1 -1
  57. package/dist/stack-D_g6NJzo.js +21 -0
  58. package/dist/stack.js +1 -1
  59. package/dist/switch-B5TTU-oJ.js +138 -0
  60. package/dist/switch.js +1 -1
  61. package/dist/tabs-C26PWl2c.js +183 -0
  62. package/dist/tabs.js +1 -1
  63. package/dist/text-field-8PQAqRpM.js +75 -0
  64. package/dist/text-field.js +1 -1
  65. package/dist/textarea-CcGWuntL.js +85 -0
  66. package/dist/textarea.js +1 -1
  67. package/dist/theme-root-BRLIA4eb.js +22 -0
  68. package/dist/theme-root.js +1 -1
  69. package/dist/toast-B1PXuwZ4.js +277 -0
  70. package/dist/toast.js +1 -1
  71. package/dist/toggle-group-N_owicT0.js +156 -0
  72. package/dist/toggle-group.js +1 -1
  73. package/dist/tooltip-BJPisf60.js +98 -0
  74. package/dist/tooltip.js +1 -1
  75. package/dist/types/components/accordion/accordion.d.ts +13 -9
  76. package/dist/types/components/alert/alert.d.ts +6 -3
  77. package/dist/types/components/avatar/avatar.d.ts +6 -3
  78. package/dist/types/components/badge/badge.d.ts +6 -3
  79. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +8 -5
  80. package/dist/types/components/button/button.d.ts +6 -3
  81. package/dist/types/components/calendar/calendar.d.ts +11 -7
  82. package/dist/types/components/card/card.d.ts +20 -13
  83. package/dist/types/components/checkbox/checkbox.d.ts +6 -3
  84. package/dist/types/components/combobox/combobox.d.ts +12 -8
  85. package/dist/types/components/command-palette/command-palette.d.ts +22 -15
  86. package/dist/types/components/container/container.d.ts +6 -3
  87. package/dist/types/components/date-picker/date-picker.d.ts +6 -4
  88. package/dist/types/components/dialog/dialog.d.ts +16 -11
  89. package/dist/types/components/divider/divider.d.ts +6 -3
  90. package/dist/types/components/flex/flex.d.ts +6 -3
  91. package/dist/types/components/kbd/kbd.d.ts +8 -5
  92. package/dist/types/components/menu/menu.d.ts +13 -9
  93. package/dist/types/components/navigation/navigation.d.ts +11 -7
  94. package/dist/types/components/pagination/pagination.d.ts +6 -3
  95. package/dist/types/components/pill/pill.d.ts +6 -3
  96. package/dist/types/components/popover/popover.d.ts +7 -5
  97. package/dist/types/components/progress/progress.d.ts +6 -3
  98. package/dist/types/components/radio-group/radio-group.d.ts +8 -5
  99. package/dist/types/components/select/select.d.ts +13 -9
  100. package/dist/types/components/skeleton/skeleton.d.ts +6 -3
  101. package/dist/types/components/spinner/spinner.d.ts +6 -3
  102. package/dist/types/components/stack/stack.d.ts +4 -1
  103. package/dist/types/components/switch/switch.d.ts +6 -3
  104. package/dist/types/components/tabs/tabs.d.ts +14 -9
  105. package/dist/types/components/text-field/text-field.d.ts +6 -3
  106. package/dist/types/components/textarea/textarea.d.ts +6 -3
  107. package/dist/types/components/theme-root/theme-root.d.ts +6 -3
  108. package/dist/types/components/toast/toast.d.ts +6 -4
  109. package/dist/types/components/toggle-group/toggle-group.d.ts +7 -5
  110. package/dist/types/components/tooltip/tooltip.d.ts +7 -5
  111. package/dist/types/overlay/use-native-dialog.d.ts +2 -2
  112. package/package.json +4 -4
  113. package/dist/accordion-C3YbYFBi.js +0 -169
  114. package/dist/alert-CA9ZlIZp.js +0 -130
  115. package/dist/avatar-IUW4yJl0.js +0 -125
  116. package/dist/badge-Bru30HEn.js +0 -103
  117. package/dist/breadcrumbs-CQaviWRc.js +0 -126
  118. package/dist/button-Cmixur4Q.js +0 -188
  119. package/dist/calendar-DUgS0xmp.js +0 -373
  120. package/dist/card-D9CHtouU.js +0 -121
  121. package/dist/checkbox-DKa5BCdy.js +0 -135
  122. package/dist/combobox-Dq3V88Zt.js +0 -302
  123. package/dist/container-xUEIoZzj.js +0 -35
  124. package/dist/date-picker-DrHJMt2p.js +0 -240
  125. package/dist/dialog-C2NSOOP-.js +0 -176
  126. package/dist/divider-yF5EmhhT.js +0 -77
  127. package/dist/flex-5-NI5SSy.js +0 -22
  128. package/dist/kbd-B03_qIwQ.js +0 -56
  129. package/dist/menu-bvKRJOhJ.js +0 -187
  130. package/dist/navigation-xPoqh_Iz.js +0 -175
  131. package/dist/pill-CrVqffKM.js +0 -50
  132. package/dist/popover-CVAZ_C1a.js +0 -98
  133. package/dist/radio-group-CvQ4x8ii.js +0 -131
  134. package/dist/select-CNNiUhKB.js +0 -257
  135. package/dist/skeleton-gJ4ImO5u.js +0 -48
  136. package/dist/stack-mEAryjKz.js +0 -21
  137. package/dist/switch-2hm2WnWt.js +0 -136
  138. package/dist/tabs-GBppQabg.js +0 -174
  139. package/dist/text-field-DDPqQu29.js +0 -74
  140. package/dist/textarea-OP8_3IUR.js +0 -84
  141. package/dist/theme-root-eLka0ZP1.js +0 -21
  142. package/dist/toast-D3Y6OAsg.js +0 -271
  143. package/dist/toggle-group-BxzJ-6Cp.js +0 -151
  144. package/dist/tooltip-CVl8HS4S.js +0 -93
@@ -1,4 +1,4 @@
1
- import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Placement } from '@floating-ui/react';
3
3
  export interface SelectProps {
4
4
  value?: string;
@@ -14,25 +14,29 @@ export interface SelectProps {
14
14
  name?: string;
15
15
  children?: ReactNode;
16
16
  }
17
- export interface SelectTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
17
+ export interface SelectTriggerProps extends ComponentPropsWithRef<'button'> {
18
18
  id?: string;
19
19
  }
20
- export interface SelectValueProps extends HTMLAttributes<HTMLSpanElement> {
20
+ export interface SelectValueProps extends ComponentPropsWithRef<'span'> {
21
21
  /** Shown when no option matches the selected value. */
22
22
  placeholder?: ReactNode;
23
23
  }
24
- export interface SelectContentProps extends HTMLAttributes<HTMLDivElement> {
24
+ export interface SelectContentProps extends ComponentPropsWithRef<'div'> {
25
25
  }
26
- export interface SelectItemProps extends HTMLAttributes<HTMLDivElement> {
26
+ export interface SelectItemProps extends ComponentPropsWithRef<'div'> {
27
27
  /** Unique within the select. */
28
28
  value: string;
29
29
  disabled?: boolean;
30
30
  }
31
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
+ declare function SelectTrigger({ ref, id: idProp, disabled: disabledProp, onKeyDown, ...rest }: SelectTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
33
+ declare function SelectValue({ ref, placeholder, ...rest }: SelectValueProps): import("@emotion/react/jsx-runtime").JSX.Element;
34
+ declare function SelectContent({ ref, style, onMouseDown, children, ...rest }: SelectContentProps): import("@emotion/react/jsx-runtime").JSX.Element;
35
+ declare function SelectItem({ ref, value, disabled, onClick, children, ...rest }: SelectItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
32
36
  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
+ Trigger: typeof SelectTrigger;
38
+ Value: typeof SelectValue;
39
+ Content: typeof SelectContent;
40
+ Item: typeof SelectItem;
37
41
  };
38
42
  export {};
@@ -1,11 +1,14 @@
1
- import { type HTMLAttributes } from 'react';
1
+ import type { ComponentPropsWithRef } from 'react';
2
2
  type Length = number | string;
3
- export interface SkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
3
+ export interface SkeletonProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {
4
4
  width?: Length;
5
5
  height?: Length;
6
6
  /** Round placeholder; height follows width unless `height` is given. */
7
7
  circle?: boolean;
8
8
  radius?: Length;
9
9
  }
10
- export declare const Skeleton: import("react").ForwardRefExoticComponent<SkeletonProps & import("react").RefAttributes<HTMLDivElement>>;
10
+ export declare function Skeleton({ ref, width, height, circle, radius, style, ...rest }: SkeletonProps): import("@emotion/react/jsx-runtime").JSX.Element;
11
+ export declare namespace Skeleton {
12
+ var displayName: string;
13
+ }
11
14
  export {};
@@ -1,8 +1,11 @@
1
- import { type HTMLAttributes } from 'react';
1
+ import type { ComponentPropsWithRef } from 'react';
2
2
  export type SpinnerSize = 'sm' | 'md' | 'lg';
3
- export interface SpinnerProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
3
+ export interface SpinnerProps extends Omit<ComponentPropsWithRef<'span'>, 'children'> {
4
4
  size?: SpinnerSize;
5
5
  /** Accessible text announced for the status region. */
6
6
  label?: string;
7
7
  }
8
- export declare const Spinner: import("react").ForwardRefExoticComponent<SpinnerProps & import("react").RefAttributes<HTMLSpanElement>>;
8
+ export declare function Spinner({ ref, size, label, ...rest }: SpinnerProps): import("@emotion/react/jsx-runtime").JSX.Element;
9
+ export declare namespace Spinner {
10
+ var displayName: string;
11
+ }
@@ -4,4 +4,7 @@ export type StackAlign = Exclude<FlexAlign, 'baseline'>;
4
4
  export interface StackProps extends Omit<FlexProps, 'direction' | 'inline' | 'align'> {
5
5
  align?: StackAlign;
6
6
  }
7
- export declare const Stack: import("react").ForwardRefExoticComponent<StackProps & import("react").RefAttributes<HTMLDivElement>>;
7
+ export declare function Stack({ ref, gap, align, justify, wrap, ...rest }: StackProps): import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export declare namespace Stack {
9
+ var displayName: string;
10
+ }
@@ -1,11 +1,11 @@
1
- import { type InputHTMLAttributes, type ReactNode } from 'react';
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Interpolation, type Theme } from '../../styling/css';
3
3
  export type SwitchSize = 'sm' | 'md';
4
4
  export interface SwitchPartProps {
5
5
  className?: string;
6
6
  css?: Interpolation<Theme>;
7
7
  }
8
- export interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
8
+ export interface SwitchProps extends Omit<ComponentPropsWithRef<'input'>, 'size' | 'type'> {
9
9
  label?: ReactNode;
10
10
  description?: ReactNode;
11
11
  size?: SwitchSize;
@@ -17,4 +17,7 @@ export interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
17
17
  description?: SwitchPartProps;
18
18
  };
19
19
  }
20
- export declare const Switch: import("react").ForwardRefExoticComponent<SwitchProps & import("react").RefAttributes<HTMLInputElement>>;
20
+ export declare function Switch({ ref, label, description, size, onChange, onCheckedChange, slotProps, className, dir, 'aria-labelledby': ariaLabelledByProp, 'aria-describedby': ariaDescribedByProp, ...rest }: SwitchProps): import("@emotion/react/jsx-runtime").JSX.Element;
21
+ export declare namespace Switch {
22
+ var displayName: string;
23
+ }
@@ -1,22 +1,27 @@
1
- import { type ButtonHTMLAttributes, type HTMLAttributes } from 'react';
1
+ import { type ComponentPropsWithRef } from 'react';
2
2
  export type TabsOrientation = 'horizontal' | 'vertical';
3
3
  export type TabsActivation = 'auto' | 'manual';
4
- export interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
4
+ export interface TabsProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'defaultValue'> {
5
5
  value?: string;
6
6
  defaultValue?: string;
7
7
  onValueChange?: (value: string) => void;
8
8
  orientation?: TabsOrientation;
9
9
  activation?: TabsActivation;
10
10
  }
11
- export type TabsListProps = HTMLAttributes<HTMLDivElement>;
12
- export interface TabsTabProps extends ButtonHTMLAttributes<HTMLButtonElement> {
11
+ export type TabsListProps = ComponentPropsWithRef<'div'>;
12
+ export interface TabsTabProps extends ComponentPropsWithRef<'button'> {
13
13
  value: string;
14
14
  }
15
- export interface TabsPanelProps extends HTMLAttributes<HTMLDivElement> {
15
+ export interface TabsPanelProps extends ComponentPropsWithRef<'div'> {
16
16
  value: string;
17
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>>;
18
+ declare function TabsRoot({ ref, value: valueProp, defaultValue, onValueChange, orientation, activation, ...rest }: TabsProps): import("@emotion/react/jsx-runtime").JSX.Element;
19
+ declare function TabsList({ ref, onKeyDown, ...rest }: TabsListProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
+ declare function TabsTab({ ref, value, disabled, onClick, onFocus, ...rest }: TabsTabProps): import("@emotion/react/jsx-runtime").JSX.Element;
21
+ declare function TabsPanel({ ref, value, tabIndex, 'aria-labelledby': ariaLabelledByProp, ...rest }: TabsPanelProps): import("@emotion/react/jsx-runtime").JSX.Element;
22
+ export declare const Tabs: typeof TabsRoot & {
23
+ List: typeof TabsList;
24
+ Tab: typeof TabsTab;
25
+ Panel: typeof TabsPanel;
22
26
  };
27
+ export {};
@@ -1,9 +1,9 @@
1
- import { type InputHTMLAttributes, type ReactNode } from 'react';
1
+ import type { ComponentPropsWithRef, ReactNode } from 'react';
2
2
  import { type FieldPartProps, type FieldSlotProps } from '../field/field-anatomy';
3
3
  export type TextFieldSize = 'sm' | 'md' | 'lg';
4
4
  export interface TextFieldPartProps extends FieldPartProps {
5
5
  }
6
- export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
6
+ export interface TextFieldProps extends Omit<ComponentPropsWithRef<'input'>, 'size'> {
7
7
  label?: ReactNode;
8
8
  description?: ReactNode;
9
9
  error?: ReactNode;
@@ -11,4 +11,7 @@ export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElemen
11
11
  onValueChange?: (value: string) => void;
12
12
  slotProps?: FieldSlotProps<TextFieldPartProps>;
13
13
  }
14
- export declare const TextField: import("react").ForwardRefExoticComponent<TextFieldProps & import("react").RefAttributes<HTMLInputElement>>;
14
+ export declare function TextField({ ref, label, description, error, size, onChange, onValueChange, slotProps, className, required, id: idProp, 'aria-describedby': ariaDescribedByProp, 'aria-invalid': ariaInvalidProp, ...rest }: TextFieldProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
+ export declare namespace TextField {
16
+ var displayName: string;
17
+ }
@@ -1,10 +1,10 @@
1
- import { type ReactNode, type TextareaHTMLAttributes } from 'react';
1
+ import type { ComponentPropsWithRef, ReactNode } from 'react';
2
2
  import { type FieldPartProps, type FieldSlotProps } from '../field/field-anatomy';
3
3
  export type TextareaSize = 'sm' | 'md' | 'lg';
4
4
  export type TextareaResize = 'none' | 'vertical';
5
5
  export interface TextareaPartProps extends FieldPartProps {
6
6
  }
7
- export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
7
+ export interface TextareaProps extends ComponentPropsWithRef<'textarea'> {
8
8
  label?: ReactNode;
9
9
  description?: ReactNode;
10
10
  error?: ReactNode;
@@ -14,4 +14,7 @@ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElemen
14
14
  onValueChange?: (value: string) => void;
15
15
  slotProps?: FieldSlotProps<TextareaPartProps>;
16
16
  }
17
- export declare const Textarea: import("react").ForwardRefExoticComponent<TextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
17
+ export declare function Textarea({ ref, label, description, error, size, resize, autoResize, rows, onChange, onValueChange, slotProps, className, required, id: idProp, 'aria-describedby': ariaDescribedByProp, 'aria-invalid': ariaInvalidProp, ...rest }: TextareaProps): import("@emotion/react/jsx-runtime").JSX.Element;
18
+ export declare namespace Textarea {
19
+ var displayName: string;
20
+ }
@@ -1,7 +1,10 @@
1
- import { type HTMLAttributes, type ReactNode } from 'react';
1
+ import type { ComponentPropsWithRef, ReactNode } from 'react';
2
2
  export type ThemeName = 'dark' | 'light';
3
- export interface ThemeRootProps extends HTMLAttributes<HTMLDivElement> {
3
+ export interface ThemeRootProps extends ComponentPropsWithRef<'div'> {
4
4
  theme?: ThemeName;
5
5
  children?: ReactNode;
6
6
  }
7
- export declare const ThemeRoot: import("react").ForwardRefExoticComponent<ThemeRootProps & import("react").RefAttributes<HTMLDivElement>>;
7
+ export declare function ThemeRoot({ ref, theme, ...rest }: ThemeRootProps): import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export declare namespace ThemeRoot {
9
+ var displayName: string;
10
+ }
@@ -1,4 +1,4 @@
1
- import { type HTMLAttributes, type MouseEvent, type ReactNode } from 'react';
1
+ import { type ComponentPropsWithRef, type MouseEvent, type ReactNode } from 'react';
2
2
  export type ToastTone = 'neutral' | 'success' | 'danger';
3
3
  export interface ToastAction {
4
4
  label: string;
@@ -22,7 +22,7 @@ export interface ToastProviderProps {
22
22
  /** Accessible label for each toast's close button. */
23
23
  dismissLabel?: string;
24
24
  }
25
- export interface ToastViewportProps extends HTMLAttributes<HTMLDivElement> {
25
+ export interface ToastViewportProps extends ComponentPropsWithRef<'div'> {
26
26
  }
27
27
  export interface ToastApi {
28
28
  toast: (options: ToastOptions) => string;
@@ -30,8 +30,10 @@ export interface ToastApi {
30
30
  }
31
31
  export declare function useToast(): ToastApi;
32
32
  declare function ToastProvider({ children, max, duration, dismissLabel, }: ToastProviderProps): import("@emotion/react/jsx-runtime").JSX.Element;
33
- export declare const Toast: typeof ToastProvider & {
33
+ declare function ToastViewport({ ref, ...props }: ToastViewportProps): import("@emotion/react/jsx-runtime").JSX.Element;
34
+ declare function ToastRoot(props: ToastProviderProps): import("@emotion/react/jsx-runtime").JSX.Element;
35
+ export declare const Toast: typeof ToastRoot & {
34
36
  Provider: typeof ToastProvider;
35
- Viewport: import("react").ForwardRefExoticComponent<ToastViewportProps & import("react").RefAttributes<HTMLDivElement>>;
37
+ Viewport: typeof ToastViewport;
36
38
  };
37
39
  export {};
@@ -1,7 +1,7 @@
1
- import { type ButtonHTMLAttributes, type HTMLAttributes } from 'react';
1
+ import { type ComponentPropsWithRef } from 'react';
2
2
  export type ToggleGroupType = 'single' | 'multiple';
3
3
  export type ToggleGroupOrientation = 'horizontal' | 'vertical';
4
- interface ToggleGroupBaseProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
4
+ interface ToggleGroupBaseProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'defaultValue'> {
5
5
  orientation?: ToggleGroupOrientation;
6
6
  disabled?: boolean;
7
7
  allowEmpty?: boolean;
@@ -20,10 +20,12 @@ export interface ToggleGroupMultipleProps extends ToggleGroupBaseProps {
20
20
  onValueChange?: (value: string[]) => void;
21
21
  }
22
22
  export type ToggleGroupProps = ToggleGroupSingleProps | ToggleGroupMultipleProps;
23
- export interface ToggleGroupItemProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value'> {
23
+ export interface ToggleGroupItemProps extends Omit<ComponentPropsWithRef<'button'>, 'value'> {
24
24
  value: string;
25
25
  }
26
- export declare const ToggleGroup: import("react").ForwardRefExoticComponent<ToggleGroupProps & import("react").RefAttributes<HTMLDivElement>> & {
27
- Item: import("react").ForwardRefExoticComponent<ToggleGroupItemProps & import("react").RefAttributes<HTMLButtonElement>>;
26
+ declare function ToggleGroupRoot({ ref, type, value: valueProp, defaultValue, onValueChange, orientation, disabled, allowEmpty, label, 'aria-label': ariaLabelProp, onKeyDown, ...rest }: ToggleGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
27
+ declare function ToggleGroupItem({ ref, value, disabled: disabledProp, onClick, onFocus, ...rest }: ToggleGroupItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
28
+ export declare const ToggleGroup: typeof ToggleGroupRoot & {
29
+ Item: typeof ToggleGroupItem;
28
30
  };
29
31
  export {};
@@ -1,4 +1,4 @@
1
- import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Placement } from '@floating-ui/react';
3
3
  export interface TooltipProps {
4
4
  open?: boolean;
@@ -11,13 +11,15 @@ export interface TooltipProps {
11
11
  closeDelay?: number;
12
12
  children?: ReactNode;
13
13
  }
14
- export interface TooltipTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
14
+ export interface TooltipTriggerProps extends ComponentPropsWithRef<'button'> {
15
15
  }
16
- export interface TooltipContentProps extends HTMLAttributes<HTMLDivElement> {
16
+ export interface TooltipContentProps extends ComponentPropsWithRef<'div'> {
17
17
  }
18
18
  declare function TooltipRoot({ open: openProp, defaultOpen, onOpenChange, placement, openDelay, closeDelay, children, }: TooltipProps): import("@emotion/react/jsx-runtime").JSX.Element;
19
+ declare function TooltipTrigger({ ref, 'aria-describedby': ariaDescribedByProp, ...rest }: TooltipTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
+ declare function TooltipContent({ ref, style, ...rest }: TooltipContentProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
19
21
  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
+ Trigger: typeof TooltipTrigger;
23
+ Content: typeof TooltipContent;
22
24
  };
23
25
  export {};
@@ -1,4 +1,4 @@
1
- import { type ForwardedRef, type MouseEvent, type MouseEventHandler, type MutableRefObject, type ReactEventHandler, type SyntheticEvent } from 'react';
1
+ import { type MouseEvent, type MouseEventHandler, type MutableRefObject, type ReactEventHandler, type Ref, type SyntheticEvent } from 'react';
2
2
  /** What Content needs from its Root; both Roots expose it through their context. */
3
3
  export interface NativeDialogController {
4
4
  open: boolean;
@@ -31,7 +31,7 @@ export declare function omitNativeOpen<P extends object>(props: P & {
31
31
  * Content half: syncs the native dialog to the logical `open`, and returns the `ref` and
32
32
  * event handlers to spread on the <dialog> (after the consumer's props).
33
33
  */
34
- export declare function useNativeDialog({ open, setOpen, requestClose, repairToken, setDialogElement }: NativeDialogController, { onCancel, onClick, onClose }: NativeDialogHandlers, forwardedRef: ForwardedRef<HTMLDialogElement>, contentRef?: MutableRefObject<HTMLDialogElement | null>): {
34
+ export declare function useNativeDialog({ open, setOpen, requestClose, repairToken, setDialogElement }: NativeDialogController, { onCancel, onClick, onClose }: NativeDialogHandlers, forwardedRef: Ref<HTMLDialogElement> | undefined, contentRef?: MutableRefObject<HTMLDialogElement | null>): {
35
35
  ref: (element: HTMLDialogElement | null) => void;
36
36
  onCancel: (event: SyntheticEvent<HTMLDialogElement>) => void;
37
37
  onClick: (event: MouseEvent<HTMLDialogElement>) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jfrader/ui",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "React components styled with Emotion and themed through CSS custom properties.",
5
5
  "keywords": [
6
6
  "react",
@@ -177,11 +177,11 @@
177
177
  "dependencies": {
178
178
  "@emotion/react": "^11.14.0",
179
179
  "@floating-ui/react": "^0.27.20",
180
- "@jfrader/tokens": "0.1.2"
180
+ "@jfrader/tokens": "0.2.0"
181
181
  },
182
182
  "peerDependencies": {
183
- "react": ">=18.2.0",
184
- "react-dom": ">=18.2.0"
183
+ "react": "^19.0.0",
184
+ "react-dom": "^19.0.0"
185
185
  },
186
186
  "devDependencies": {
187
187
  "@storybook/react-vite": "^10.6.1",
@@ -1,169 +0,0 @@
1
- 'use client';
2
- import { t as e } from "./css-Cgj6sCHn.js";
3
- import { t } from "./disclosure-caret-C5T3fcl6.js";
4
- import { t as n } from "./focus-ring-BK5W5_NY.js";
5
- import { n as r } from "./media-D_eA_I-e.js";
6
- import { n as i } from "./roving-focus-CYlo_Kf8.js";
7
- import { t as a } from "./use-controlled-state-CVXDa-qM.js";
8
- import { createContext as o, forwardRef as s, useContext as c, useId as l, useMemo as u } from "react";
9
- import { vars as d } from "@jfrader/tokens/vars";
10
- import { jsx as f } from "@emotion/react/jsx-runtime";
11
- //#region src/components/accordion/accordion.tsx
12
- var p = o(null), m = o(null);
13
- function h(e) {
14
- let t = c(p);
15
- if (!t) throw Error(`Accordion.${e} must be rendered inside <Accordion>.`);
16
- return t;
17
- }
18
- function g(e) {
19
- let t = c(m);
20
- if (!t) throw Error(`Accordion.${e} must be rendered inside <Accordion.Item>.`);
21
- return t;
22
- }
23
- var _ = "", v = {
24
- itemSelector: "[data-ui=\"accordion-trigger\"]:not([disabled])",
25
- ownerSelector: "[data-ui=\"accordion\"]"
26
- }, y = (e, t) => {
27
- if (t === "multiple" && Array.isArray(e)) return e;
28
- let n = Array.isArray(e) ? e[0] : e;
29
- return n === void 0 || n === _ ? [] : [n];
30
- }, b = e({
31
- borderBlockEnd: `1px solid ${d.color.border}`,
32
- "&:first-of-type": { borderBlockStart: `1px solid ${d.color.border}` }
33
- }), x = e({
34
- margin: 0,
35
- font: "inherit"
36
- }), S = e({
37
- appearance: "none",
38
- display: "flex",
39
- alignItems: "center",
40
- justifyContent: "space-between",
41
- gap: d.space[3],
42
- inlineSize: "100%",
43
- border: 0,
44
- background: "transparent",
45
- cursor: "pointer",
46
- paddingBlock: d.space[3],
47
- paddingInline: d.space[4],
48
- font: "inherit",
49
- fontSize: d.textSize.sm,
50
- fontWeight: d.fontWeight.medium,
51
- color: d.color.text,
52
- textAlign: "start",
53
- transitionProperty: "background-color",
54
- transitionDuration: d.motion.duration.fast,
55
- transitionTimingFunction: d.motion.easeStandard,
56
- "&::after": { ...t },
57
- "&[aria-expanded=\"true\"]::after": { transform: "rotate(90deg)" },
58
- "&[aria-expanded=\"true\"]:dir(rtl)::after": { transform: "rotate(-90deg)" },
59
- "&:hover:not(:disabled):not([aria-disabled=\"true\"])": { backgroundColor: d.color.surfaceHover },
60
- "&[aria-disabled=\"true\"]": { cursor: "default" },
61
- "&:disabled": {
62
- opacity: .55,
63
- cursor: "not-allowed"
64
- },
65
- "&:focus-visible": { ...n },
66
- [r]: {
67
- transitionDuration: "0s",
68
- "&::after": { transitionDuration: "0s" }
69
- }
70
- }), C = e({
71
- paddingBlock: d.space[3],
72
- paddingInline: d.space[4],
73
- color: d.color.textMuted,
74
- lineHeight: d.lineHeight.relaxed,
75
- "&[hidden]": { display: "none" }
76
- }), w = s(function({ value: e, defaultValue: t, onValueChange: n, type: r = "single", collapsible: o = !0, onKeyDown: s, ...c }, l) {
77
- let [d, m] = a(e, t, n), h = u(() => {
78
- let e = y(d, r), t = o || e.length > 1;
79
- return {
80
- openValues: e,
81
- toggle: (n) => {
82
- let i = e.includes(n);
83
- (!i || t) && m(r === "multiple" ? i ? e.filter((e) => e !== n) : [...e, n] : i ? _ : n);
84
- },
85
- canCollapse: t
86
- };
87
- }, [
88
- d,
89
- m,
90
- r,
91
- o
92
- ]), g = (e) => {
93
- s?.(e), !e.defaultPrevented && i(e, e.currentTarget, "vertical", v);
94
- };
95
- return /* @__PURE__ */ f(p.Provider, {
96
- value: h,
97
- children: /* @__PURE__ */ f("div", {
98
- ...c,
99
- ref: l,
100
- "data-ui": "accordion",
101
- onKeyDown: g
102
- })
103
- });
104
- }), T = s(function({ value: e, disabled: t = !1, ...n }, r) {
105
- let { openValues: i } = h("Item"), a = l(), o = i.includes(e), s = u(() => ({
106
- value: e,
107
- disabled: t,
108
- expanded: o,
109
- triggerId: `${a}-trigger`,
110
- panelId: `${a}-panel`
111
- }), [
112
- e,
113
- t,
114
- o,
115
- a
116
- ]);
117
- return /* @__PURE__ */ f(m.Provider, {
118
- value: s,
119
- children: /* @__PURE__ */ f("div", {
120
- ...n,
121
- ref: r,
122
- "data-ui": "accordion-item",
123
- "data-state": o ? "open" : "closed",
124
- "data-disabled": t ? "" : void 0,
125
- css: b
126
- })
127
- });
128
- }), E = s(function({ onClick: e, disabled: t, ...n }, r) {
129
- let { toggle: i, canCollapse: a } = h("Trigger"), { value: o, disabled: s, expanded: c, triggerId: l, panelId: u } = g("Trigger"), d = c && !a, p = (t) => {
130
- e?.(t), !t.defaultPrevented && i(o);
131
- };
132
- return /* @__PURE__ */ f("h3", {
133
- "data-ui": "accordion-heading",
134
- css: x,
135
- children: /* @__PURE__ */ f("button", {
136
- ...n,
137
- ref: r,
138
- type: "button",
139
- id: l,
140
- "data-ui": "accordion-trigger",
141
- "data-state": c ? "open" : "closed",
142
- "aria-expanded": c,
143
- "aria-controls": u,
144
- "aria-disabled": d || void 0,
145
- disabled: s || t,
146
- onClick: p,
147
- css: S
148
- })
149
- });
150
- }), D = s(function({ "aria-labelledby": e, ...t }, n) {
151
- let { expanded: r, triggerId: i, panelId: a } = g("Panel"), o = [e, i].filter(Boolean).join(" ");
152
- return /* @__PURE__ */ f("div", {
153
- ...t,
154
- ref: n,
155
- role: "region",
156
- id: a,
157
- "aria-labelledby": o,
158
- hidden: !r,
159
- "data-ui": "accordion-panel",
160
- "data-state": r ? "open" : "closed",
161
- css: C
162
- });
163
- }), O = Object.assign(w, {
164
- Item: T,
165
- Trigger: E,
166
- Panel: D
167
- });
168
- //#endregion
169
- export { O as t };
@@ -1,130 +0,0 @@
1
- 'use client';
2
- import { t as e } from "./css-Cgj6sCHn.js";
3
- import { n as t } from "./focus-ring-BK5W5_NY.js";
4
- import { n } from "./media-D_eA_I-e.js";
5
- import { t as r } from "./visually-hidden-DCWhf0Cb.js";
6
- import { t as i } from "./renderable-DzcIj1Lo.js";
7
- import { forwardRef as a } from "react";
8
- import { vars as o } from "@jfrader/tokens/vars";
9
- import { jsx as s, jsxs as c } from "@emotion/react/jsx-runtime";
10
- //#region src/components/alert/alert.tsx
11
- var l = {
12
- info: "Information",
13
- success: "Success",
14
- warning: "Warning",
15
- danger: "Error"
16
- }, u = e({
17
- display: "grid",
18
- gap: o.space[1],
19
- boxSizing: "border-box",
20
- backgroundColor: o.color.surfaceRaised,
21
- border: `1px solid ${o.color.border}`,
22
- borderInlineStartWidth: "3px",
23
- borderInlineStartStyle: "solid",
24
- borderRadius: o.radius.md,
25
- paddingBlock: o.space[3],
26
- paddingInline: o.space[4],
27
- fontFamily: o.font.sans,
28
- lineHeight: o.lineHeight.base
29
- }), d = e({
30
- gridTemplateColumns: "minmax(0, 1fr) auto",
31
- columnGap: o.space[3]
32
- }), f = e({
33
- display: "grid",
34
- gap: o.space[1],
35
- minInlineSize: 0,
36
- gridColumn: 1,
37
- gridRow: 1
38
- }), p = {
39
- info: e({ borderInlineStartColor: o.color.info }),
40
- success: e({ borderInlineStartColor: o.color.success }),
41
- warning: e({ borderInlineStartColor: o.color.warning }),
42
- danger: e({ borderInlineStartColor: o.color.dangerText })
43
- }, m = e({
44
- gridColumn: 1,
45
- fontSize: o.textSize.sm,
46
- fontWeight: o.fontWeight.semibold,
47
- color: o.color.text
48
- }), h = e({
49
- gridColumn: 1,
50
- fontSize: o.textSize.sm,
51
- color: o.color.textMuted
52
- }), g = e({
53
- gridColumn: 2,
54
- gridRow: 1,
55
- alignSelf: "start",
56
- appearance: "none",
57
- display: "inline-flex",
58
- alignItems: "center",
59
- justifyContent: "center",
60
- minInlineSize: "24px",
61
- minBlockSize: "24px",
62
- margin: 0,
63
- padding: 0,
64
- border: "1px solid transparent",
65
- borderRadius: o.radius.sm,
66
- backgroundColor: "transparent",
67
- fontFamily: "inherit",
68
- fontSize: o.textSize.md,
69
- lineHeight: 1,
70
- color: o.color.textMuted,
71
- cursor: "pointer",
72
- transitionProperty: "background-color, color",
73
- transitionDuration: o.motion.duration.fast,
74
- transitionTimingFunction: o.motion.easeStandard,
75
- "&:hover": {
76
- backgroundColor: o.color.surfaceHover,
77
- color: o.color.text
78
- },
79
- "&:focus-visible": { ...t },
80
- [n]: { transitionDuration: "0s" }
81
- }), _ = a(function({ tone: e = "info", toneLabel: t = l[e], title: n, children: a, onDismiss: o, dismissLabel: _ = "Dismiss", slotProps: v, className: y, ...b }, x) {
82
- let S = o !== void 0;
83
- return /* @__PURE__ */ c("div", {
84
- ...b,
85
- ref: x,
86
- "data-ui": "alert",
87
- "data-tone": e,
88
- className: [y, v?.root?.className].filter(Boolean).join(" ") || void 0,
89
- css: [
90
- u,
91
- p[e],
92
- S && d,
93
- v?.root?.css
94
- ],
95
- children: [/* @__PURE__ */ c("div", {
96
- role: e === "danger" ? "alert" : "status",
97
- "aria-atomic": "true",
98
- css: f,
99
- children: [
100
- /* @__PURE__ */ s("span", {
101
- css: r,
102
- children: t
103
- }),
104
- i(n) && /* @__PURE__ */ s("div", {
105
- className: v?.title?.className,
106
- css: [m, v?.title?.css],
107
- children: n
108
- }),
109
- i(a) && /* @__PURE__ */ s("div", {
110
- className: v?.body?.className,
111
- css: [h, v?.body?.css],
112
- children: a
113
- })
114
- ]
115
- }), S && /* @__PURE__ */ s("button", {
116
- type: "button",
117
- "data-ui": "alert-dismiss",
118
- "aria-label": _,
119
- onClick: () => o?.(),
120
- className: v?.dismiss?.className,
121
- css: [g, v?.dismiss?.css],
122
- children: /* @__PURE__ */ s("span", {
123
- "aria-hidden": !0,
124
- children: "×"
125
- })
126
- })]
127
- });
128
- });
129
- //#endregion
130
- export { _ as t };