@jfrader/ui 0.2.0 → 0.4.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 (167) hide show
  1. package/dist/accordion-Bd-j04hW.js +198 -0
  2. package/dist/accordion.js +1 -1
  3. package/dist/alert-BBqaKI4k.js +135 -0
  4. package/dist/alert.js +1 -1
  5. package/dist/avatar-BahDVO9t.js +132 -0
  6. package/dist/avatar.js +1 -1
  7. package/dist/badge-B_sLygxU.js +108 -0
  8. package/dist/badge.js +1 -1
  9. package/dist/breadcrumbs-DVAOxfvL.js +141 -0
  10. package/dist/breadcrumbs.js +1 -1
  11. package/dist/button-P2e7_44z.js +200 -0
  12. package/dist/button.js +1 -1
  13. package/dist/calendar-C9Yad_-w.js +394 -0
  14. package/dist/calendar.js +1 -1
  15. package/dist/card-D-aI2QHx.js +158 -0
  16. package/dist/card.js +1 -1
  17. package/dist/checkbox-COYG6L7d.js +140 -0
  18. package/dist/checkbox.js +1 -1
  19. package/dist/{choice-control-ByFogYcT.js → choice-control-5kJkLXgv.js} +1 -1
  20. package/dist/{collection-registry-1l9f3XJZ.js → collection-registry-BTYi6zGh.js} +1 -1
  21. package/dist/combobox-DiMC2g_u.js +327 -0
  22. package/dist/combobox.js +1 -1
  23. package/dist/command-palette-V_2pEay7.js +379 -0
  24. package/dist/command-palette.js +1 -1
  25. package/dist/container-BOaSptJa.js +41 -0
  26. package/dist/container.js +1 -1
  27. package/dist/date-picker-C29Uo4Tx.js +250 -0
  28. package/dist/date-picker.js +1 -1
  29. package/dist/dialog-xaydbXl2.js +218 -0
  30. package/dist/dialog.js +1 -1
  31. package/dist/divider-DYoJf0I_.js +84 -0
  32. package/dist/divider.js +1 -1
  33. package/dist/field-anatomy-D2ToMeRa.js +109 -0
  34. package/dist/flex-Dh-_J5-U.js +28 -0
  35. package/dist/flex.js +1 -1
  36. package/dist/{icon-wrapper-CFWzew5m.js → icon-wrapper-stN8sD7R.js} +1 -1
  37. package/dist/index.js +38 -37
  38. package/dist/kbd-C3ACoMoE.js +71 -0
  39. package/dist/kbd.js +1 -1
  40. package/dist/{layout-style-7ZTOiWGR.js → layout-style-Cbd1Vilw.js} +1 -1
  41. package/dist/{loading-ring-BpdB0aFi.js → loading-ring-B8-30Dl1.js} +1 -1
  42. package/dist/menu-CGPTNRnF.js +216 -0
  43. package/dist/menu.js +1 -1
  44. package/dist/navigation-DhnKriOp.js +197 -0
  45. package/dist/navigation.js +1 -1
  46. package/dist/pagination-DYdwsxwe.js +156 -0
  47. package/dist/pagination.js +1 -1
  48. package/dist/pill-DO2gHzMb.js +56 -0
  49. package/dist/pill.js +1 -1
  50. package/dist/popover-CdRXjQqI.js +113 -0
  51. package/dist/popover.js +1 -1
  52. package/dist/progress-BpJswTG4.js +90 -0
  53. package/dist/progress.js +1 -1
  54. package/dist/radio-group-Ce0_IWQr.js +145 -0
  55. package/dist/radio-group.js +1 -1
  56. package/dist/select-BgG7WgSh.js +286 -0
  57. package/dist/select.js +1 -1
  58. package/dist/skeleton-OoFlOEXO.js +54 -0
  59. package/dist/skeleton.js +1 -1
  60. package/dist/spinner-C2YDoiMn.js +56 -0
  61. package/dist/spinner.js +1 -1
  62. package/dist/stack-DC3IbtWk.js +27 -0
  63. package/dist/stack.js +1 -1
  64. package/dist/switch-Dr-qjmT4.js +142 -0
  65. package/dist/switch.js +1 -1
  66. package/dist/sx-Dx9JUKp5.js +23 -0
  67. package/dist/tabs-CK_g1RKa.js +203 -0
  68. package/dist/tabs.js +1 -1
  69. package/dist/{text-field-8PQAqRpM.js → text-field-D60ok14S.js} +19 -18
  70. package/dist/text-field.js +1 -1
  71. package/dist/{textarea-CcGWuntL.js → textarea-DyfjtP0A.js} +19 -18
  72. package/dist/textarea.js +1 -1
  73. package/dist/theme-root-BbTBuLMQ.js +46 -0
  74. package/dist/theme-root.js +1 -1
  75. package/dist/theme-scope-t7nAKc2c.js +27 -0
  76. package/dist/toast-CjmELMZZ.js +283 -0
  77. package/dist/toast.js +1 -1
  78. package/dist/toggle-group-CI0e7hFm.js +166 -0
  79. package/dist/toggle-group.js +1 -1
  80. package/dist/tooltip-CaL3rKbV.js +108 -0
  81. package/dist/tooltip.js +1 -1
  82. package/dist/{trigger-style-B1GFmH7M.js → trigger-style-B1KVC8O1.js} +1 -1
  83. package/dist/types/components/accordion/accordion.d.ts +9 -8
  84. package/dist/types/components/alert/alert.d.ts +3 -2
  85. package/dist/types/components/avatar/avatar.d.ts +3 -2
  86. package/dist/types/components/badge/badge.d.ts +3 -2
  87. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +5 -4
  88. package/dist/types/components/button/button.d.ts +3 -2
  89. package/dist/types/components/calendar/calendar.d.ts +7 -6
  90. package/dist/types/components/card/card.d.ts +13 -12
  91. package/dist/types/components/checkbox/checkbox.d.ts +3 -2
  92. package/dist/types/components/combobox/combobox.d.ts +8 -7
  93. package/dist/types/components/command-palette/command-palette.d.ts +15 -14
  94. package/dist/types/components/container/container.d.ts +3 -2
  95. package/dist/types/components/date-picker/date-picker.d.ts +3 -2
  96. package/dist/types/components/dialog/dialog.d.ts +11 -10
  97. package/dist/types/components/divider/divider.d.ts +3 -2
  98. package/dist/types/components/field/field-anatomy.d.ts +3 -2
  99. package/dist/types/components/flex/flex.d.ts +3 -2
  100. package/dist/types/components/kbd/kbd.d.ts +5 -4
  101. package/dist/types/components/menu/menu.d.ts +9 -8
  102. package/dist/types/components/navigation/navigation.d.ts +7 -6
  103. package/dist/types/components/pagination/pagination.d.ts +3 -2
  104. package/dist/types/components/pill/pill.d.ts +3 -2
  105. package/dist/types/components/popover/popover.d.ts +5 -4
  106. package/dist/types/components/progress/progress.d.ts +3 -2
  107. package/dist/types/components/radio-group/radio-group.d.ts +5 -4
  108. package/dist/types/components/select/select.d.ts +9 -8
  109. package/dist/types/components/skeleton/skeleton.d.ts +3 -2
  110. package/dist/types/components/spinner/spinner.d.ts +3 -2
  111. package/dist/types/components/stack/stack.d.ts +1 -1
  112. package/dist/types/components/switch/switch.d.ts +3 -2
  113. package/dist/types/components/tabs/tabs.d.ts +9 -8
  114. package/dist/types/components/text-field/text-field.d.ts +3 -2
  115. package/dist/types/components/textarea/textarea.d.ts +3 -2
  116. package/dist/types/components/theme-provider/theme-provider.d.ts +11 -0
  117. package/dist/types/components/theme-root/theme-root.d.ts +11 -4
  118. package/dist/types/components/toast/toast.d.ts +3 -2
  119. package/dist/types/components/toggle-group/toggle-group.d.ts +5 -4
  120. package/dist/types/components/tooltip/tooltip.d.ts +5 -4
  121. package/dist/types/index.d.ts +4 -0
  122. package/dist/types/overlay/overlay-portal.d.ts +7 -0
  123. package/dist/types/styling/css.d.ts +3 -2
  124. package/dist/types/styling/styled.d.ts +1 -0
  125. package/dist/types/styling/sx.d.ts +16 -0
  126. package/dist/types/styling/theme-scope.d.ts +19 -0
  127. package/dist/types/styling/theme.d.ts +98 -0
  128. package/dist/use-overlay-floating-Bit-f0FU.js +31 -0
  129. package/dist/{visually-hidden-DCWhf0Cb.js → visually-hidden-BJdvqqvn.js} +1 -1
  130. package/package.json +3 -2
  131. package/dist/accordion-CkOZ-tvs.js +0 -178
  132. package/dist/alert-Dsjx14UW.js +0 -131
  133. package/dist/avatar-BRGKkoSr.js +0 -127
  134. package/dist/badge-DLxUMsCx.js +0 -104
  135. package/dist/breadcrumbs-694hF_hm.js +0 -131
  136. package/dist/button-CoaIcykB.js +0 -190
  137. package/dist/calendar-Doj7PTdG.js +0 -379
  138. package/dist/card-2IM71XZj.js +0 -134
  139. package/dist/checkbox-B7xGNFzp.js +0 -136
  140. package/dist/combobox-Bjhxv5U3.js +0 -311
  141. package/dist/command-palette-BhJwm6cS.js +0 -344
  142. package/dist/container-BhnrGPu-.js +0 -36
  143. package/dist/css-Cgj6sCHn.js +0 -2
  144. package/dist/date-picker-Jk8SpoiO.js +0 -245
  145. package/dist/dialog-fhS07G41.js +0 -187
  146. package/dist/divider-v_78HYF5.js +0 -79
  147. package/dist/field-anatomy-BzGw1Ch9.js +0 -105
  148. package/dist/flex-COZzFqI8.js +0 -22
  149. package/dist/kbd-CeP8Kfvp.js +0 -61
  150. package/dist/menu-B6KCbLCr.js +0 -196
  151. package/dist/navigation-BDht6S2-.js +0 -182
  152. package/dist/pagination-B50PCaDU.js +0 -151
  153. package/dist/pill-2_XzBdkD.js +0 -51
  154. package/dist/popover-DRHbeIVq.js +0 -103
  155. package/dist/progress-CpsskKTD.js +0 -85
  156. package/dist/radio-group-DPI5KUCj.js +0 -136
  157. package/dist/select-C1xGrOhT.js +0 -266
  158. package/dist/skeleton-DitdP-yz.js +0 -49
  159. package/dist/spinner-CFq5HPoo.js +0 -51
  160. package/dist/stack-D_g6NJzo.js +0 -21
  161. package/dist/switch-B5TTU-oJ.js +0 -138
  162. package/dist/tabs-C26PWl2c.js +0 -183
  163. package/dist/theme-root-BRLIA4eb.js +0 -22
  164. package/dist/toast-B1PXuwZ4.js +0 -277
  165. package/dist/toggle-group-N_owicT0.js +0 -156
  166. package/dist/tooltip-BJPisf60.js +0 -98
  167. package/dist/use-overlay-floating-efeqppiw.js +0 -19
@@ -1,9 +1,10 @@
1
1
  import type { ComponentPropsWithRef } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
2
3
  export type PillTone = 'neutral' | 'accent' | 'success' | 'warning' | 'danger';
3
- export interface PillProps extends ComponentPropsWithRef<'span'> {
4
+ export interface PillProps extends ComponentPropsWithRef<'span'>, SxProps {
4
5
  tone?: PillTone;
5
6
  }
6
- export declare function Pill({ ref, tone, ...rest }: PillProps): import("@emotion/react/jsx-runtime").JSX.Element;
7
+ export declare function Pill({ ref, tone, className, sx, ...rest }: PillProps): import("@emotion/react/jsx-runtime").JSX.Element;
7
8
  export declare namespace Pill {
8
9
  var displayName: string;
9
10
  }
@@ -1,5 +1,6 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Placement } from '@floating-ui/react';
3
+ import { type SxProps } from '../../styling/sx';
3
4
  export interface PopoverProps {
4
5
  open?: boolean;
5
6
  defaultOpen?: boolean;
@@ -7,13 +8,13 @@ export interface PopoverProps {
7
8
  placement?: Placement;
8
9
  children?: ReactNode;
9
10
  }
10
- export interface PopoverTriggerProps extends ComponentPropsWithRef<'button'> {
11
+ export interface PopoverTriggerProps extends ComponentPropsWithRef<'button'>, SxProps {
11
12
  }
12
- export interface PopoverContentProps extends ComponentPropsWithRef<'div'> {
13
+ export interface PopoverContentProps extends ComponentPropsWithRef<'div'>, SxProps {
13
14
  }
14
15
  declare function PopoverRoot({ open: openProp, defaultOpen, onOpenChange, placement, children, }: PopoverProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
- declare function PopoverTrigger({ ref, ...props }: PopoverTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
16
- declare function PopoverContent({ ref, style, ...rest }: PopoverContentProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
16
+ declare function PopoverTrigger({ ref, className, sx, ...props }: PopoverTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
17
+ declare function PopoverContent({ ref, style, className, sx, ...rest }: PopoverContentProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
17
18
  export declare const Popover: typeof PopoverRoot & {
18
19
  Trigger: typeof PopoverTrigger;
19
20
  Content: typeof PopoverContent;
@@ -1,10 +1,11 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
3
4
  export interface ProgressPartProps {
4
5
  className?: string;
5
6
  css?: Interpolation<Theme>;
6
7
  }
7
- export interface ProgressProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {
8
+ export interface ProgressProps extends Omit<ComponentPropsWithRef<'div'>, 'children'>, SxProps {
8
9
  /** Current value in `0..max`; leave undefined for indeterminate progress. */
9
10
  value?: number;
10
11
  max?: number;
@@ -16,7 +17,7 @@ export interface ProgressProps extends Omit<ComponentPropsWithRef<'div'>, 'child
16
17
  indicator?: ProgressPartProps;
17
18
  };
18
19
  }
19
- export declare function Progress({ ref, value, max, label, getValueLabel, slotProps, 'aria-labelledby': ariaLabelledByProp, ...rest }: ProgressProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
+ export declare function Progress({ ref, value, max, label, getValueLabel, slotProps, 'aria-labelledby': ariaLabelledByProp, className, sx, ...rest }: ProgressProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
21
  export declare namespace Progress {
21
22
  var displayName: string;
22
23
  }
@@ -1,7 +1,8 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
3
4
  export type RadioGroupOrientation = 'vertical' | 'horizontal';
4
- export interface RadioGroupProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'defaultValue'> {
5
+ export interface RadioGroupProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'defaultValue'>, SxProps {
5
6
  value?: string;
6
7
  defaultValue?: string;
7
8
  onValueChange?: (value: string) => void;
@@ -13,7 +14,7 @@ export interface RadioGroupRadioPartProps {
13
14
  className?: string;
14
15
  css?: Interpolation<Theme>;
15
16
  }
16
- export interface RadioGroupRadioProps extends Omit<ComponentPropsWithRef<'input'>, 'type' | 'value' | 'name' | 'checked' | 'defaultChecked' | 'size'> {
17
+ export interface RadioGroupRadioProps extends Omit<ComponentPropsWithRef<'input'>, 'type' | 'value' | 'name' | 'checked' | 'defaultChecked' | 'size'>, SxProps {
17
18
  value: string;
18
19
  label?: ReactNode;
19
20
  description?: ReactNode;
@@ -24,8 +25,8 @@ export interface RadioGroupRadioProps extends Omit<ComponentPropsWithRef<'input'
24
25
  description?: RadioGroupRadioPartProps;
25
26
  };
26
27
  }
27
- declare function RadioGroupRoot({ ref, value: valueProp, defaultValue, onValueChange, name: nameProp, disabled, orientation, ...rest }: RadioGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
28
- declare function RadioGroupRadio({ ref, value, label, description, disabled: disabledProp, onChange, slotProps, className, 'aria-labelledby': ariaLabelledByProp, 'aria-describedby': ariaDescribedByProp, ...rest }: RadioGroupRadioProps): import("@emotion/react/jsx-runtime").JSX.Element;
28
+ declare function RadioGroupRoot({ ref, value: valueProp, defaultValue, onValueChange, name: nameProp, disabled, orientation, className, sx, ...rest }: RadioGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
29
+ declare function RadioGroupRadio({ ref, value, label, description, disabled: disabledProp, onChange, slotProps, className, sx, 'aria-labelledby': ariaLabelledByProp, 'aria-describedby': ariaDescribedByProp, ...rest }: RadioGroupRadioProps): import("@emotion/react/jsx-runtime").JSX.Element;
29
30
  export declare const RadioGroup: typeof RadioGroupRoot & {
30
31
  Radio: typeof RadioGroupRadio;
31
32
  };
@@ -1,5 +1,6 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Placement } from '@floating-ui/react';
3
+ import { type SxProps } from '../../styling/sx';
3
4
  export interface SelectProps {
4
5
  value?: string;
5
6
  defaultValue?: string;
@@ -14,25 +15,25 @@ export interface SelectProps {
14
15
  name?: string;
15
16
  children?: ReactNode;
16
17
  }
17
- export interface SelectTriggerProps extends ComponentPropsWithRef<'button'> {
18
+ export interface SelectTriggerProps extends ComponentPropsWithRef<'button'>, SxProps {
18
19
  id?: string;
19
20
  }
20
- export interface SelectValueProps extends ComponentPropsWithRef<'span'> {
21
+ export interface SelectValueProps extends ComponentPropsWithRef<'span'>, SxProps {
21
22
  /** Shown when no option matches the selected value. */
22
23
  placeholder?: ReactNode;
23
24
  }
24
- export interface SelectContentProps extends ComponentPropsWithRef<'div'> {
25
+ export interface SelectContentProps extends ComponentPropsWithRef<'div'>, SxProps {
25
26
  }
26
- export interface SelectItemProps extends ComponentPropsWithRef<'div'> {
27
+ export interface SelectItemProps extends ComponentPropsWithRef<'div'>, SxProps {
27
28
  /** Unique within the select. */
28
29
  value: string;
29
30
  disabled?: boolean;
30
31
  }
31
32
  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;
33
+ declare function SelectTrigger({ ref, id: idProp, disabled: disabledProp, onKeyDown, className, sx, ...rest }: SelectTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
34
+ declare function SelectValue({ ref, placeholder, className, sx, ...rest }: SelectValueProps): import("@emotion/react/jsx-runtime").JSX.Element;
35
+ declare function SelectContent({ ref, style, onMouseDown, children, className, sx, ...rest }: SelectContentProps): import("@emotion/react/jsx-runtime").JSX.Element;
36
+ declare function SelectItem({ ref, value, disabled, onClick, children, className, sx, ...rest }: SelectItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
36
37
  export declare const Select: typeof SelectRoot & {
37
38
  Trigger: typeof SelectTrigger;
38
39
  Value: typeof SelectValue;
@@ -1,13 +1,14 @@
1
1
  import type { ComponentPropsWithRef } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
2
3
  type Length = number | string;
3
- export interface SkeletonProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {
4
+ export interface SkeletonProps extends Omit<ComponentPropsWithRef<'div'>, 'children'>, SxProps {
4
5
  width?: Length;
5
6
  height?: Length;
6
7
  /** Round placeholder; height follows width unless `height` is given. */
7
8
  circle?: boolean;
8
9
  radius?: Length;
9
10
  }
10
- export declare function Skeleton({ ref, width, height, circle, radius, style, ...rest }: SkeletonProps): import("@emotion/react/jsx-runtime").JSX.Element;
11
+ export declare function Skeleton({ ref, width, height, circle, radius, style, className, sx, ...rest }: SkeletonProps): import("@emotion/react/jsx-runtime").JSX.Element;
11
12
  export declare namespace Skeleton {
12
13
  var displayName: string;
13
14
  }
@@ -1,11 +1,12 @@
1
1
  import type { ComponentPropsWithRef } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
2
3
  export type SpinnerSize = 'sm' | 'md' | 'lg';
3
- export interface SpinnerProps extends Omit<ComponentPropsWithRef<'span'>, 'children'> {
4
+ export interface SpinnerProps extends Omit<ComponentPropsWithRef<'span'>, 'children'>, SxProps {
4
5
  size?: SpinnerSize;
5
6
  /** Accessible text announced for the status region. */
6
7
  label?: string;
7
8
  }
8
- export declare function Spinner({ ref, size, label, ...rest }: SpinnerProps): import("@emotion/react/jsx-runtime").JSX.Element;
9
+ export declare function Spinner({ ref, size, label, className, sx, ...rest }: SpinnerProps): import("@emotion/react/jsx-runtime").JSX.Element;
9
10
  export declare namespace Spinner {
10
11
  var displayName: string;
11
12
  }
@@ -4,7 +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 function Stack({ ref, gap, align, justify, wrap, ...rest }: StackProps): import("@emotion/react/jsx-runtime").JSX.Element;
7
+ export declare function Stack({ ref, gap, align, justify, wrap, className, sx, ...rest }: StackProps): import("@emotion/react/jsx-runtime").JSX.Element;
8
8
  export declare namespace Stack {
9
9
  var displayName: string;
10
10
  }
@@ -1,11 +1,12 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
3
4
  export type SwitchSize = 'sm' | 'md';
4
5
  export interface SwitchPartProps {
5
6
  className?: string;
6
7
  css?: Interpolation<Theme>;
7
8
  }
8
- export interface SwitchProps extends Omit<ComponentPropsWithRef<'input'>, 'size' | 'type'> {
9
+ export interface SwitchProps extends Omit<ComponentPropsWithRef<'input'>, 'size' | 'type'>, SxProps {
9
10
  label?: ReactNode;
10
11
  description?: ReactNode;
11
12
  size?: SwitchSize;
@@ -17,7 +18,7 @@ export interface SwitchProps extends Omit<ComponentPropsWithRef<'input'>, 'size'
17
18
  description?: SwitchPartProps;
18
19
  };
19
20
  }
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 function Switch({ ref, label, description, size, onChange, onCheckedChange, slotProps, className, sx, dir, 'aria-labelledby': ariaLabelledByProp, 'aria-describedby': ariaDescribedByProp, ...rest }: SwitchProps): import("@emotion/react/jsx-runtime").JSX.Element;
21
22
  export declare namespace Switch {
22
23
  var displayName: string;
23
24
  }
@@ -1,24 +1,25 @@
1
1
  import { type ComponentPropsWithRef } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
2
3
  export type TabsOrientation = 'horizontal' | 'vertical';
3
4
  export type TabsActivation = 'auto' | 'manual';
4
- export interface TabsProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'defaultValue'> {
5
+ export interface TabsProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'defaultValue'>, SxProps {
5
6
  value?: string;
6
7
  defaultValue?: string;
7
8
  onValueChange?: (value: string) => void;
8
9
  orientation?: TabsOrientation;
9
10
  activation?: TabsActivation;
10
11
  }
11
- export type TabsListProps = ComponentPropsWithRef<'div'>;
12
- export interface TabsTabProps extends ComponentPropsWithRef<'button'> {
12
+ export type TabsListProps = ComponentPropsWithRef<'div'> & SxProps;
13
+ export interface TabsTabProps extends ComponentPropsWithRef<'button'>, SxProps {
13
14
  value: string;
14
15
  }
15
- export interface TabsPanelProps extends ComponentPropsWithRef<'div'> {
16
+ export interface TabsPanelProps extends ComponentPropsWithRef<'div'>, SxProps {
16
17
  value: string;
17
18
  }
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;
19
+ declare function TabsRoot({ ref, value: valueProp, defaultValue, onValueChange, orientation, activation, className, sx, ...rest }: TabsProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
+ declare function TabsList({ ref, onKeyDown, className, sx, ...rest }: TabsListProps): import("@emotion/react/jsx-runtime").JSX.Element;
21
+ declare function TabsTab({ ref, value, disabled, onClick, onFocus, className, sx, ...rest }: TabsTabProps): import("@emotion/react/jsx-runtime").JSX.Element;
22
+ declare function TabsPanel({ ref, value, tabIndex, 'aria-labelledby': ariaLabelledByProp, className, sx, ...rest }: TabsPanelProps): import("@emotion/react/jsx-runtime").JSX.Element;
22
23
  export declare const Tabs: typeof TabsRoot & {
23
24
  List: typeof TabsList;
24
25
  Tab: typeof TabsTab;
@@ -1,9 +1,10 @@
1
1
  import type { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import type { SxProps } from '../../styling/sx';
2
3
  import { type FieldPartProps, type FieldSlotProps } from '../field/field-anatomy';
3
4
  export type TextFieldSize = 'sm' | 'md' | 'lg';
4
5
  export interface TextFieldPartProps extends FieldPartProps {
5
6
  }
6
- export interface TextFieldProps extends Omit<ComponentPropsWithRef<'input'>, 'size'> {
7
+ export interface TextFieldProps extends Omit<ComponentPropsWithRef<'input'>, 'size'>, SxProps {
7
8
  label?: ReactNode;
8
9
  description?: ReactNode;
9
10
  error?: ReactNode;
@@ -11,7 +12,7 @@ export interface TextFieldProps extends Omit<ComponentPropsWithRef<'input'>, 'si
11
12
  onValueChange?: (value: string) => void;
12
13
  slotProps?: FieldSlotProps<TextFieldPartProps>;
13
14
  }
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 function TextField({ ref, label, description, error, size, onChange, onValueChange, slotProps, className, sx, required, id: idProp, 'aria-describedby': ariaDescribedByProp, 'aria-invalid': ariaInvalidProp, ...rest }: TextFieldProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
16
  export declare namespace TextField {
16
17
  var displayName: string;
17
18
  }
@@ -1,10 +1,11 @@
1
1
  import type { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import type { SxProps } from '../../styling/sx';
2
3
  import { type FieldPartProps, type FieldSlotProps } from '../field/field-anatomy';
3
4
  export type TextareaSize = 'sm' | 'md' | 'lg';
4
5
  export type TextareaResize = 'none' | 'vertical';
5
6
  export interface TextareaPartProps extends FieldPartProps {
6
7
  }
7
- export interface TextareaProps extends ComponentPropsWithRef<'textarea'> {
8
+ export interface TextareaProps extends ComponentPropsWithRef<'textarea'>, SxProps {
8
9
  label?: ReactNode;
9
10
  description?: ReactNode;
10
11
  error?: ReactNode;
@@ -14,7 +15,7 @@ export interface TextareaProps extends ComponentPropsWithRef<'textarea'> {
14
15
  onValueChange?: (value: string) => void;
15
16
  slotProps?: FieldSlotProps<TextareaPartProps>;
16
17
  }
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 function Textarea({ ref, label, description, error, size, resize, autoResize, rows, onChange, onValueChange, slotProps, className, sx, required, id: idProp, 'aria-describedby': ariaDescribedByProp, 'aria-invalid': ariaInvalidProp, ...rest }: TextareaProps): import("@emotion/react/jsx-runtime").JSX.Element;
18
19
  export declare namespace Textarea {
19
20
  var displayName: string;
20
21
  }
@@ -0,0 +1,11 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type JfraderTheme } from '../../styling/theme';
3
+ export interface ThemeProviderProps {
4
+ theme?: JfraderTheme;
5
+ children?: ReactNode;
6
+ }
7
+ export declare function ThemeProvider({ theme, children }: ThemeProviderProps): import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export declare namespace ThemeProvider {
9
+ var displayName: string;
10
+ }
11
+ export declare function useTheme(): JfraderTheme;
@@ -1,10 +1,17 @@
1
- import type { ComponentPropsWithRef, ReactNode } from 'react';
2
- export type ThemeName = 'dark' | 'light';
3
- export interface ThemeRootProps extends ComponentPropsWithRef<'div'> {
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
3
+ import { type ThemeName } from '../../styling/theme-scope';
4
+ export type { ThemeName };
5
+ export interface ThemeRootProps extends ComponentPropsWithRef<'div'>, SxProps {
4
6
  theme?: ThemeName;
7
+ /**
8
+ * Where overlays inside this root portal to. Omitted: the enclosing ThemeRoot's container, else
9
+ * the default (`body`). `null`: overlays wait until the host element is set.
10
+ */
11
+ portalContainer?: HTMLElement | null;
5
12
  children?: ReactNode;
6
13
  }
7
- export declare function ThemeRoot({ ref, theme, ...rest }: ThemeRootProps): import("@emotion/react/jsx-runtime").JSX.Element;
14
+ export declare function ThemeRoot({ ref, theme, portalContainer, className, sx, ...rest }: ThemeRootProps): import("@emotion/react/jsx-runtime").JSX.Element;
8
15
  export declare namespace ThemeRoot {
9
16
  var displayName: string;
10
17
  }
@@ -1,4 +1,5 @@
1
1
  import { type ComponentPropsWithRef, type MouseEvent, type ReactNode } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
2
3
  export type ToastTone = 'neutral' | 'success' | 'danger';
3
4
  export interface ToastAction {
4
5
  label: string;
@@ -22,7 +23,7 @@ export interface ToastProviderProps {
22
23
  /** Accessible label for each toast's close button. */
23
24
  dismissLabel?: string;
24
25
  }
25
- export interface ToastViewportProps extends ComponentPropsWithRef<'div'> {
26
+ export interface ToastViewportProps extends ComponentPropsWithRef<'div'>, SxProps {
26
27
  }
27
28
  export interface ToastApi {
28
29
  toast: (options: ToastOptions) => string;
@@ -30,7 +31,7 @@ export interface ToastApi {
30
31
  }
31
32
  export declare function useToast(): ToastApi;
32
33
  declare function ToastProvider({ children, max, duration, dismissLabel, }: ToastProviderProps): import("@emotion/react/jsx-runtime").JSX.Element;
33
- declare function ToastViewport({ ref, ...props }: ToastViewportProps): import("@emotion/react/jsx-runtime").JSX.Element;
34
+ declare function ToastViewport({ ref, className, sx, ...props }: ToastViewportProps): import("@emotion/react/jsx-runtime").JSX.Element;
34
35
  declare function ToastRoot(props: ToastProviderProps): import("@emotion/react/jsx-runtime").JSX.Element;
35
36
  export declare const Toast: typeof ToastRoot & {
36
37
  Provider: typeof ToastProvider;
@@ -1,7 +1,8 @@
1
1
  import { type ComponentPropsWithRef } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
2
3
  export type ToggleGroupType = 'single' | 'multiple';
3
4
  export type ToggleGroupOrientation = 'horizontal' | 'vertical';
4
- interface ToggleGroupBaseProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'defaultValue'> {
5
+ interface ToggleGroupBaseProps extends Omit<ComponentPropsWithRef<'div'>, 'onChange' | 'defaultValue'>, SxProps {
5
6
  orientation?: ToggleGroupOrientation;
6
7
  disabled?: boolean;
7
8
  allowEmpty?: boolean;
@@ -20,11 +21,11 @@ export interface ToggleGroupMultipleProps extends ToggleGroupBaseProps {
20
21
  onValueChange?: (value: string[]) => void;
21
22
  }
22
23
  export type ToggleGroupProps = ToggleGroupSingleProps | ToggleGroupMultipleProps;
23
- export interface ToggleGroupItemProps extends Omit<ComponentPropsWithRef<'button'>, 'value'> {
24
+ export interface ToggleGroupItemProps extends Omit<ComponentPropsWithRef<'button'>, 'value'>, SxProps {
24
25
  value: string;
25
26
  }
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;
27
+ declare function ToggleGroupRoot({ ref, type, value: valueProp, defaultValue, onValueChange, orientation, disabled, allowEmpty, label, 'aria-label': ariaLabelProp, onKeyDown, className, sx, ...rest }: ToggleGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
28
+ declare function ToggleGroupItem({ ref, value, disabled: disabledProp, onClick, onFocus, className, sx, ...rest }: ToggleGroupItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
28
29
  export declare const ToggleGroup: typeof ToggleGroupRoot & {
29
30
  Item: typeof ToggleGroupItem;
30
31
  };
@@ -1,5 +1,6 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Placement } from '@floating-ui/react';
3
+ import { type SxProps } from '../../styling/sx';
3
4
  export interface TooltipProps {
4
5
  open?: boolean;
5
6
  defaultOpen?: boolean;
@@ -11,13 +12,13 @@ export interface TooltipProps {
11
12
  closeDelay?: number;
12
13
  children?: ReactNode;
13
14
  }
14
- export interface TooltipTriggerProps extends ComponentPropsWithRef<'button'> {
15
+ export interface TooltipTriggerProps extends ComponentPropsWithRef<'button'>, SxProps {
15
16
  }
16
- export interface TooltipContentProps extends ComponentPropsWithRef<'div'> {
17
+ export interface TooltipContentProps extends ComponentPropsWithRef<'div'>, SxProps {
17
18
  }
18
19
  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;
20
+ declare function TooltipTrigger({ ref, 'aria-describedby': ariaDescribedByProp, className, sx, ...rest }: TooltipTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
21
+ declare function TooltipContent({ ref, style, className, sx, ...rest }: TooltipContentProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
21
22
  export declare const Tooltip: typeof TooltipRoot & {
22
23
  Trigger: typeof TooltipTrigger;
23
24
  Content: typeof TooltipContent;
@@ -30,7 +30,11 @@ export * from './components/switch';
30
30
  export * from './components/tabs';
31
31
  export * from './components/text-field';
32
32
  export * from './components/textarea';
33
+ export { ThemeProvider, useTheme, type ThemeProviderProps } from './components/theme-provider/theme-provider';
33
34
  export * from './components/theme-root';
34
35
  export * from './components/toast';
35
36
  export * from './components/toggle-group';
36
37
  export * from './components/tooltip';
38
+ export { styled } from './styling/styled';
39
+ export type { SxProps } from './styling/sx';
40
+ export { theme, type JfraderTheme } from './styling/theme';
@@ -0,0 +1,7 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare function OverlayPortal({ children }: {
3
+ children?: ReactNode;
4
+ }): import("@emotion/react/jsx-runtime").JSX.Element;
5
+ export declare namespace OverlayPortal {
6
+ var displayName: string;
7
+ }
@@ -1,2 +1,3 @@
1
- export { css, keyframes } from '@emotion/react';
2
- export type { Interpolation, SerializedStyles, Theme } from '@emotion/react';
1
+ export { ClassNames, css, keyframes, ThemeProvider as EmotionThemeProvider, useTheme as useEmotionTheme, } from '@emotion/react';
2
+ export type { ClassNamesContent, Interpolation, SerializedStyles, Theme } from '@emotion/react';
3
+ export type { JfraderTheme } from './theme';
@@ -0,0 +1 @@
1
+ export { default as styled } from '@emotion/styled';
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type Interpolation, type Theme } from './css';
3
+ export interface SxProps {
4
+ /** Consumer style overrides, identical to `css` and applied after it (`sx` is the MUI-style spelling). */
5
+ sx?: Interpolation<Theme>;
6
+ }
7
+ interface ClassNameProps {
8
+ className?: string;
9
+ children: (className: string | undefined) => ReactNode;
10
+ }
11
+ interface WithSxProps extends SxProps, ClassNameProps {
12
+ /** The part's own styles, merged first. */
13
+ styles?: Interpolation<Theme>;
14
+ }
15
+ export declare function WithSx({ className, styles, sx, children }: WithSxProps): import("@emotion/react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,19 @@
1
+ import { type ReactNode } from 'react';
2
+ export type ThemeName = 'dark' | 'light';
3
+ export interface ThemeScope {
4
+ theme: ThemeName;
5
+ /** `undefined` keeps default portal routing; `null` holds portals until the host exists. */
6
+ portalContainer: HTMLElement | null | undefined;
7
+ }
8
+ export declare const ThemeScopeContext: import("react").Context<ThemeScope | null>;
9
+ /** The nearest ThemeRoot's scope, or `null` outside any ThemeRoot (page theme applies). */
10
+ export declare function useThemeScope(): ThemeScope | null;
11
+ /** What a `data-theme` scope root sets besides the attribute: inherited text color and color-scheme. */
12
+ export declare const themeScopeStyle: import("@emotion/react").SerializedStyles;
13
+ /** Re-applies the nearest ThemeRoot's theme around portaled content; renders children bare outside one. */
14
+ export declare function ThemeBoundary({ children }: {
15
+ children?: ReactNode;
16
+ }): string | number | bigint | boolean | import("@emotion/react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
17
+ export declare namespace ThemeBoundary {
18
+ var displayName: string;
19
+ }
@@ -0,0 +1,98 @@
1
+ export declare const theme: {
2
+ readonly color: {
3
+ readonly bg: "var(--ui-color-bg)";
4
+ readonly bgSoft: "var(--ui-color-bg-soft)";
5
+ readonly surface: "var(--ui-color-surface)";
6
+ readonly surfaceRaised: "var(--ui-color-surface-raised)";
7
+ readonly surfaceHover: "var(--ui-color-surface-hover)";
8
+ readonly surfaceInset: "var(--ui-color-surface-inset)";
9
+ readonly border: "var(--ui-color-border)";
10
+ readonly borderSubtle: "var(--ui-color-border-subtle)";
11
+ readonly borderStrong: "var(--ui-color-border-strong)";
12
+ readonly borderControl: "var(--ui-color-border-control)";
13
+ readonly text: "var(--ui-color-text)";
14
+ readonly textMuted: "var(--ui-color-text-muted)";
15
+ readonly textSubtle: "var(--ui-color-text-subtle)";
16
+ readonly accent: "var(--ui-color-accent)";
17
+ readonly accentHover: "var(--ui-color-accent-hover)";
18
+ readonly accentContrast: "var(--ui-color-accent-contrast)";
19
+ readonly accentText: "var(--ui-color-accent-text)";
20
+ readonly accentSoft: "var(--ui-color-accent-soft)";
21
+ readonly accentSoftHover: "var(--ui-color-accent-soft-hover)";
22
+ readonly accentBorder: "var(--ui-color-accent-border)";
23
+ readonly danger: "var(--ui-color-danger)";
24
+ readonly dangerHover: "var(--ui-color-danger-hover)";
25
+ readonly dangerContrast: "var(--ui-color-danger-contrast)";
26
+ readonly dangerText: "var(--ui-color-danger-text)";
27
+ readonly dangerSoft: "var(--ui-color-danger-soft)";
28
+ readonly dangerSoftHover: "var(--ui-color-danger-soft-hover)";
29
+ readonly dangerBorder: "var(--ui-color-danger-border)";
30
+ readonly warning: "var(--ui-color-warning)";
31
+ readonly warningSoft: "var(--ui-color-warning-soft)";
32
+ readonly success: "var(--ui-color-success)";
33
+ readonly successSoft: "var(--ui-color-success-soft)";
34
+ readonly info: "var(--ui-color-info)";
35
+ readonly infoSoft: "var(--ui-color-info-soft)";
36
+ readonly focusRing: "var(--ui-color-focus-ring)";
37
+ readonly scrim: "var(--ui-color-scrim)";
38
+ };
39
+ readonly shadow: {
40
+ readonly raised: "var(--ui-shadow-raised)";
41
+ readonly overlay: "var(--ui-shadow-overlay)";
42
+ readonly floating: "var(--ui-shadow-floating)";
43
+ };
44
+ readonly radius: {
45
+ readonly sm: "var(--ui-radius-sm)";
46
+ readonly md: "var(--ui-radius-md)";
47
+ readonly lg: "var(--ui-radius-lg)";
48
+ readonly xl: "var(--ui-radius-xl)";
49
+ readonly full: "var(--ui-radius-full)";
50
+ };
51
+ readonly space: {
52
+ readonly "1": "var(--ui-space-1)";
53
+ readonly "2": "var(--ui-space-2)";
54
+ readonly "3": "var(--ui-space-3)";
55
+ readonly "4": "var(--ui-space-4)";
56
+ readonly "5": "var(--ui-space-5)";
57
+ readonly "6": "var(--ui-space-6)";
58
+ readonly "8": "var(--ui-space-8)";
59
+ readonly "10": "var(--ui-space-10)";
60
+ readonly "12": "var(--ui-space-12)";
61
+ };
62
+ readonly textSize: {
63
+ readonly xs: "var(--ui-text-size-xs)";
64
+ readonly sm: "var(--ui-text-size-sm)";
65
+ readonly md: "var(--ui-text-size-md)";
66
+ readonly lg: "var(--ui-text-size-lg)";
67
+ readonly xl: "var(--ui-text-size-xl)";
68
+ readonly "2xl": "var(--ui-text-size-2xl)";
69
+ readonly "3xl": "var(--ui-text-size-3xl)";
70
+ };
71
+ readonly lineHeight: {
72
+ readonly tight: "var(--ui-line-height-tight)";
73
+ readonly base: "var(--ui-line-height-base)";
74
+ readonly relaxed: "var(--ui-line-height-relaxed)";
75
+ };
76
+ readonly fontWeight: {
77
+ readonly regular: "var(--ui-font-weight-regular)";
78
+ readonly medium: "var(--ui-font-weight-medium)";
79
+ readonly semibold: "var(--ui-font-weight-semibold)";
80
+ };
81
+ readonly font: {
82
+ readonly sans: "var(--ui-font-sans)";
83
+ readonly mono: "var(--ui-font-mono)";
84
+ };
85
+ readonly motion: {
86
+ readonly duration: {
87
+ readonly fast: "var(--ui-motion-duration-fast)";
88
+ readonly base: "var(--ui-motion-duration-base)";
89
+ readonly slow: "var(--ui-motion-duration-slow)";
90
+ };
91
+ readonly easeStandard: "var(--ui-motion-ease-standard)";
92
+ };
93
+ };
94
+ export type JfraderTheme = typeof theme;
95
+ declare module '@emotion/react' {
96
+ interface Theme extends JfraderTheme {
97
+ }
98
+ }
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ import { i as e, t } from "./theme-scope-t7nAKc2c.js";
3
+ import { jsx as n } from "@emotion/react/jsx-runtime";
4
+ import { FloatingPortal as r, autoUpdate as i, flip as a, offset as o, shift as s, useFloating as c } from "@floating-ui/react";
5
+ //#region src/overlay/overlay-portal.tsx
6
+ function l({ children: i }) {
7
+ let a = e();
8
+ return /* @__PURE__ */ n(r, {
9
+ root: a?.portalContainer,
10
+ children: /* @__PURE__ */ n(t, { children: i })
11
+ });
12
+ }
13
+ l.displayName = "OverlayPortal";
14
+ //#endregion
15
+ //#region src/overlay/use-overlay-floating.ts
16
+ var u = 8, d = 8;
17
+ function f({ open: e, onOpenChange: t, placement: n }) {
18
+ return c({
19
+ open: e,
20
+ onOpenChange: t,
21
+ placement: n,
22
+ middleware: [
23
+ o(u),
24
+ a({ padding: d }),
25
+ s({ padding: d })
26
+ ],
27
+ whileElementsMounted: i
28
+ });
29
+ }
30
+ //#endregion
31
+ export { l as n, f as t };
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { t as e } from "./css-Cgj6sCHn.js";
2
+ import { r as e } from "./sx-Dx9JUKp5.js";
3
3
  //#region src/styling/visually-hidden.ts
4
4
  var t = e({
5
5
  position: "absolute",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jfrader/ui",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "React components styled with Emotion and themed through CSS custom properties.",
5
5
  "keywords": [
6
6
  "react",
@@ -176,8 +176,9 @@
176
176
  },
177
177
  "dependencies": {
178
178
  "@emotion/react": "^11.14.0",
179
+ "@emotion/styled": "^11.14.0",
179
180
  "@floating-ui/react": "^0.27.20",
180
- "@jfrader/tokens": "0.2.0"
181
+ "@jfrader/tokens": "0.4.0"
181
182
  },
182
183
  "peerDependencies": {
183
184
  "react": "^19.0.0",