@brycks/core-front 0.11.0 → 0.12.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 (61) hide show
  1. package/dist/components/data/VirtualList/VirtualList.js +1 -1
  2. package/dist/components/data.cjs +1 -1
  3. package/dist/components/data.d.ts +387 -2
  4. package/dist/components/data.js +26 -26
  5. package/dist/components/feedback/Toast/ToastContext.js +3 -3
  6. package/dist/components/feedback.cjs +1 -1
  7. package/dist/components/feedback.d.ts +317 -2
  8. package/dist/components/feedback.js +21 -21
  9. package/dist/components/form/DropZone/DropZone.cjs.map +1 -1
  10. package/dist/components/form/DropZone/DropZone.js.map +1 -1
  11. package/dist/components/form/FileInput/FileInput.cjs.map +1 -1
  12. package/dist/components/form/FileInput/FileInput.js.map +1 -1
  13. package/dist/components/form/FileUpload/FileUpload.cjs +2 -0
  14. package/dist/components/form/FileUpload/FileUpload.cjs.map +1 -0
  15. package/dist/components/form/FileUpload/FileUpload.js +223 -0
  16. package/dist/components/form/FileUpload/FileUpload.js.map +1 -0
  17. package/dist/components/form/FileUpload/fileUpload.utils.cjs +2 -0
  18. package/dist/components/form/FileUpload/fileUpload.utils.cjs.map +1 -0
  19. package/dist/components/form/FileUpload/fileUpload.utils.js +43 -0
  20. package/dist/components/form/FileUpload/fileUpload.utils.js.map +1 -0
  21. package/dist/components/form/FormGroup/FormGroup.cjs +1 -1
  22. package/dist/components/form/FormGroup/FormGroup.js +1 -1
  23. package/dist/components/form/Slider/Slider.cjs +1 -1
  24. package/dist/components/form/Slider/Slider.js +2 -2
  25. package/dist/components/form/TagInput/TagInput.cjs +1 -1
  26. package/dist/components/form/TagInput/TagInput.js +8 -8
  27. package/dist/components/form.cjs +1 -1
  28. package/dist/components/form.d.ts +889 -2
  29. package/dist/components/form.js +51 -45
  30. package/dist/components/form.js.map +1 -1
  31. package/dist/components/layout.cjs +1 -1
  32. package/dist/components/layout.d.ts +587 -2
  33. package/dist/components/layout.js +30 -30
  34. package/dist/components/media/Video/Video.cjs +1 -1
  35. package/dist/components/media/Video/Video.cjs.map +1 -1
  36. package/dist/components/media/Video/Video.js +54 -54
  37. package/dist/components/media/Video/Video.js.map +1 -1
  38. package/dist/components/navigation/ContextMenu/ContextMenu.cjs +1 -1
  39. package/dist/components/navigation/ContextMenu/ContextMenu.js +5 -5
  40. package/dist/components/navigation/Stepper/Stepper.js +4 -4
  41. package/dist/components/navigation/Tabs/Tabs.js +4 -4
  42. package/dist/components/navigation.cjs +1 -1
  43. package/dist/components/navigation.d.ts +436 -2
  44. package/dist/components/navigation.js +22 -22
  45. package/dist/components/typography/Text/Text.cjs +1 -1
  46. package/dist/components/typography/Text/Text.js +1 -1
  47. package/dist/components/utility.cjs +1 -1
  48. package/dist/components/utility.d.ts +278 -2
  49. package/dist/components/utility.js +28 -28
  50. package/dist/index.cjs +1 -1
  51. package/dist/index.d.ts +87 -0
  52. package/dist/index.js +279 -275
  53. package/dist/index.js.map +1 -1
  54. package/dist/styles.css +1 -1
  55. package/package.json +116 -115
  56. package/dist/data.d.ts +0 -387
  57. package/dist/feedback.d.ts +0 -317
  58. package/dist/form.d.ts +0 -772
  59. package/dist/layout.d.ts +0 -587
  60. package/dist/navigation.d.ts +0 -436
  61. package/dist/utility.d.ts +0 -278
@@ -1,2 +1,278 @@
1
- export * from './utility/index'
2
- export {}
1
+ import { ButtonHTMLAttributes } from 'react';
2
+ import { CSSProperties } from 'react';
3
+ import { ForwardRefExoticComponent } from 'react';
4
+ import { HTMLAttributes } from 'react';
5
+ import { JSX } from 'react/jsx-runtime';
6
+ import { ReactNode } from 'react';
7
+ import { RefAttributes } from 'react';
8
+
9
+ export declare const Avatar: ForwardRefExoticComponent<AvatarProps & RefAttributes<HTMLButtonElement | HTMLDivElement>>;
10
+
11
+ export declare interface AvatarProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
12
+ /** Size of the avatar */
13
+ size?: AvatarSize;
14
+ /** Name to display initials from */
15
+ name?: string;
16
+ /** Image source URL */
17
+ src?: string;
18
+ /** Alt text for the image */
19
+ alt?: string;
20
+ /** Custom content to render inside */
21
+ children?: ReactNode;
22
+ /** Whether the avatar is interactive (button) or static (div) */
23
+ interactive?: boolean;
24
+ /** Custom class name */
25
+ className?: string;
26
+ /** Test ID */
27
+ testId?: string;
28
+ }
29
+
30
+ export declare type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
31
+
32
+ export declare const Badge: ForwardRefExoticComponent<BadgeProps & RefAttributes<HTMLSpanElement>>;
33
+
34
+ export declare type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info';
35
+
36
+ export declare interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
37
+ /** Visual variant */
38
+ variant?: BadgeVariant;
39
+ /** Color intent */
40
+ intent?: BadgeIntent;
41
+ /** Size */
42
+ size?: BadgeSize;
43
+ /** Show a leading status dot in the intent color (a non-color status cue) */
44
+ dot?: boolean;
45
+ /** Leading icon (e.g. a HugeIcon). Prefer this over emoji as a label icon */
46
+ leftIcon?: ReactNode;
47
+ /** Custom class name */
48
+ className?: string;
49
+ /** Test ID */
50
+ testId?: string;
51
+ /** Badge content */
52
+ children?: ReactNode;
53
+ }
54
+
55
+ export declare type BadgeSize = 'sm' | 'md' | 'lg';
56
+
57
+ export declare type BadgeVariant = 'solid' | 'subtle' | 'outline';
58
+
59
+ export declare const Divider: ForwardRefExoticComponent<DividerProps & RefAttributes<HTMLDivElement>>;
60
+
61
+ export declare type DividerOrientation = 'horizontal' | 'vertical';
62
+
63
+ export declare interface DividerProps extends HTMLAttributes<HTMLDivElement> {
64
+ /** Divider orientation */
65
+ orientation?: DividerOrientation;
66
+ /** Visual variant */
67
+ variant?: DividerVariant;
68
+ /** Label text in the middle */
69
+ label?: ReactNode;
70
+ /** Label position */
71
+ labelPosition?: 'start' | 'center' | 'end';
72
+ /** Custom class name */
73
+ className?: string;
74
+ /** Test ID */
75
+ testId?: string;
76
+ }
77
+
78
+ export declare type DividerVariant = 'solid' | 'dashed' | 'dotted';
79
+
80
+ export declare const EmptyState: ForwardRefExoticComponent<EmptyStateProps & RefAttributes<HTMLDivElement>>;
81
+
82
+ /** Default empty state icon */
83
+ export declare function EmptyStateIcon({ size }: {
84
+ size?: number;
85
+ }): JSX.Element;
86
+
87
+ export declare namespace EmptyStateIcon {
88
+ var displayName: string;
89
+ }
90
+
91
+ export declare interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
92
+ /** Icon or illustration */
93
+ icon?: ReactNode;
94
+ /** Title text */
95
+ title?: ReactNode;
96
+ /** Description text */
97
+ description?: ReactNode;
98
+ /** Action element (button, link) */
99
+ action?: ReactNode;
100
+ /** Secondary action */
101
+ secondaryAction?: ReactNode;
102
+ /** Custom class name */
103
+ className?: string;
104
+ /** Test ID */
105
+ testId?: string;
106
+ }
107
+
108
+ export declare const FocusTrap: ForwardRefExoticComponent<FocusTrapProps & RefAttributes<HTMLDivElement>>;
109
+
110
+ export declare interface FocusTrapProps {
111
+ /** Content to trap focus within */
112
+ children: ReactNode;
113
+ /** Whether the focus trap is active */
114
+ enabled?: boolean;
115
+ /** Whether to auto-focus the first element */
116
+ autoFocus?: boolean;
117
+ /** Whether to restore focus on unmount */
118
+ restoreFocus?: boolean;
119
+ /** Initial element to focus (selector) */
120
+ initialFocus?: string;
121
+ /** Custom class name */
122
+ className?: string;
123
+ /** Custom inline styles */
124
+ style?: CSSProperties;
125
+ }
126
+
127
+ export declare const Kbd: ForwardRefExoticComponent<KbdProps & RefAttributes<HTMLElement>>;
128
+
129
+ export declare interface KbdProps extends HTMLAttributes<HTMLElement> {
130
+ /** Size */
131
+ size?: KbdSize;
132
+ /** Custom class name */
133
+ className?: string;
134
+ /** Test ID */
135
+ testId?: string;
136
+ /** Key content */
137
+ children?: ReactNode;
138
+ }
139
+
140
+ export declare type KbdSize = 'sm' | 'md';
141
+
142
+ export declare const Loader: ForwardRefExoticComponent<LoaderProps & RefAttributes<HTMLDivElement>>;
143
+
144
+ export declare interface LoaderProps extends HTMLAttributes<HTMLDivElement> {
145
+ /** Loader size */
146
+ size?: LoaderSize;
147
+ /** Loader variant */
148
+ variant?: LoaderVariant;
149
+ /** Color (CSS value) */
150
+ color?: string;
151
+ /** Accessible label */
152
+ label?: string;
153
+ /** Custom class name */
154
+ className?: string;
155
+ /** Test ID */
156
+ testId?: string;
157
+ }
158
+
159
+ export declare type LoaderSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
160
+
161
+ export declare type LoaderVariant = 'spinner' | 'dots' | 'pulse';
162
+
163
+ export declare const Logo: ForwardRefExoticComponent<LogoProps & RefAttributes<HTMLDivElement>>;
164
+
165
+ export declare interface LogoProps extends HTMLAttributes<HTMLDivElement> {
166
+ /** Size of the logo */
167
+ size?: LogoSize;
168
+ /** Content to display (usually a letter or icon) */
169
+ children?: ReactNode;
170
+ /** Custom class name */
171
+ className?: string;
172
+ /** Test ID */
173
+ testId?: string;
174
+ }
175
+
176
+ export declare type LogoSize = 'sm' | 'md' | 'lg' | 'xl';
177
+
178
+ export declare const Overlay: ForwardRefExoticComponent<OverlayProps & RefAttributes<HTMLDivElement>>;
179
+
180
+ export declare interface OverlayProps extends HTMLAttributes<HTMLDivElement> {
181
+ /** Whether the overlay is visible */
182
+ isOpen: boolean;
183
+ /** Callback when overlay is clicked */
184
+ onClose?: () => void;
185
+ /** Whether clicking the overlay closes it */
186
+ closeOnClick?: boolean;
187
+ /** Whether to apply backdrop blur */
188
+ blur?: boolean;
189
+ /** Blur intensity (in pixels) */
190
+ blurAmount?: number;
191
+ /** Background opacity (0-1) */
192
+ opacity?: number;
193
+ /** Whether to use a portal */
194
+ usePortal?: boolean;
195
+ /** Z-index for the overlay */
196
+ zIndex?: number;
197
+ /** Custom class name */
198
+ className?: string;
199
+ /** Test ID */
200
+ testId?: string;
201
+ }
202
+
203
+ export declare function Portal({ children, container, disabled }: PortalProps): JSX.Element | null;
204
+
205
+ export declare namespace Portal {
206
+ var displayName: string;
207
+ }
208
+
209
+ export declare interface PortalProps {
210
+ /** Content to render in the portal */
211
+ children: ReactNode;
212
+ /** Container element or selector to render into */
213
+ container?: HTMLElement | string;
214
+ /** Whether the portal is disabled (renders inline) */
215
+ disabled?: boolean;
216
+ }
217
+
218
+ export declare const ScreenReaderOnly: ForwardRefExoticComponent<ScreenReaderOnlyProps & RefAttributes<HTMLSpanElement>>;
219
+
220
+ export declare interface ScreenReaderOnlyProps extends HTMLAttributes<HTMLSpanElement> {
221
+ /** Content to be read by screen readers */
222
+ children: ReactNode;
223
+ /** Whether to make content focusable (shows on focus) */
224
+ focusable?: boolean;
225
+ /** Custom class name */
226
+ className?: string;
227
+ /** Test ID */
228
+ testId?: string;
229
+ }
230
+
231
+ export declare const Skeleton: ForwardRefExoticComponent<SkeletonProps & RefAttributes<HTMLDivElement>>;
232
+
233
+ export declare interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
234
+ /** Skeleton variant */
235
+ variant?: SkeletonVariant;
236
+ /** Width */
237
+ width?: string | number;
238
+ /** Height */
239
+ height?: string | number;
240
+ /** Border radius (for rectangular variant) */
241
+ radius?: string | number;
242
+ /** Whether to animate */
243
+ animate?: boolean;
244
+ /** Custom class name */
245
+ className?: string;
246
+ /** Test ID */
247
+ testId?: string;
248
+ }
249
+
250
+ export declare function SkeletonText({ lines, gap, lastLineWidth, className, }: SkeletonTextProps): JSX.Element;
251
+
252
+ export declare namespace SkeletonText {
253
+ var displayName: string;
254
+ }
255
+
256
+ /** Text skeleton with multiple lines */
257
+ export declare interface SkeletonTextProps {
258
+ /** Number of lines */
259
+ lines?: number;
260
+ /** Gap between lines */
261
+ gap?: number;
262
+ /** Last line width percentage */
263
+ lastLineWidth?: string;
264
+ /** Custom class name */
265
+ className?: string;
266
+ }
267
+
268
+ export declare type SkeletonVariant = 'text' | 'circular' | 'rectangular';
269
+
270
+ /** Alias for Loader */
271
+ export declare const Spinner: ForwardRefExoticComponent<LoaderProps & RefAttributes<HTMLDivElement>>;
272
+
273
+ /**
274
+ * Alias for ScreenReaderOnly with a shorter name
275
+ */
276
+ export declare const SrOnly: ForwardRefExoticComponent<ScreenReaderOnlyProps & RefAttributes<HTMLSpanElement>>;
277
+
278
+ export { }
@@ -1,31 +1,31 @@
1
- import { Badge as e } from "./utility/Badge/Badge.js";
2
- import { Loader as p, Spinner as m } from "./utility/Loader/Loader.js";
3
- import { Skeleton as f, SkeletonText as a } from "./utility/Skeleton/Skeleton.js";
4
- import { Divider as S } from "./utility/Divider/Divider.js";
5
- import { EmptyState as d, EmptyStateIcon as y } from "./utility/EmptyState/EmptyState.js";
6
- import { Portal as i } from "./utility/Portal/Portal.js";
7
- import { FocusTrap as O } from "./utility/FocusTrap/FocusTrap.js";
8
- import { Overlay as k } from "./utility/Overlay/Overlay.js";
9
- import { ScreenReaderOnly as L, SrOnly as T } from "./utility/ScreenReaderOnly/ScreenReaderOnly.js";
10
- import { Avatar as s } from "./utility/Avatar/Avatar.js";
11
- import { Logo as A } from "./utility/Logo/Logo.js";
12
- import { Kbd as D } from "./utility/Kbd/Kbd.js";
1
+ import { Avatar as e } from "./utility/Avatar/Avatar.js";
2
+ import { Badge as p } from "./utility/Badge/Badge.js";
3
+ import { Divider as x } from "./utility/Divider/Divider.js";
4
+ import { EmptyState as a, EmptyStateIcon as n } from "./utility/EmptyState/EmptyState.js";
5
+ import { FocusTrap as l } from "./utility/FocusTrap/FocusTrap.js";
6
+ import { Kbd as y } from "./utility/Kbd/Kbd.js";
7
+ import { Loader as i, Spinner as v } from "./utility/Loader/Loader.js";
8
+ import { Logo as g } from "./utility/Logo/Logo.js";
9
+ import { Overlay as E } from "./utility/Overlay/Overlay.js";
10
+ import { Portal as T } from "./utility/Portal/Portal.js";
11
+ import { ScreenReaderOnly as s, SrOnly as u } from "./utility/ScreenReaderOnly/ScreenReaderOnly.js";
12
+ import { Skeleton as B, SkeletonText as D } from "./utility/Skeleton/Skeleton.js";
13
13
  export {
14
- s as Avatar,
15
- e as Badge,
16
- S as Divider,
17
- d as EmptyState,
18
- y as EmptyStateIcon,
19
- O as FocusTrap,
20
- D as Kbd,
21
- p as Loader,
22
- A as Logo,
23
- k as Overlay,
24
- i as Portal,
25
- L as ScreenReaderOnly,
26
- f as Skeleton,
27
- a as SkeletonText,
28
- m as Spinner,
29
- T as SrOnly
14
+ e as Avatar,
15
+ p as Badge,
16
+ x as Divider,
17
+ a as EmptyState,
18
+ n as EmptyStateIcon,
19
+ l as FocusTrap,
20
+ y as Kbd,
21
+ i as Loader,
22
+ g as Logo,
23
+ E as Overlay,
24
+ T as Portal,
25
+ s as ScreenReaderOnly,
26
+ B as Skeleton,
27
+ D as SkeletonText,
28
+ v as Spinner,
29
+ u as SrOnly
30
30
  };
31
31
  //# sourceMappingURL=utility.js.map
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const i=require("./hooks/useMediaQuery.cjs"),E=require("./hooks/useDisclosure.cjs"),V=require("./hooks/useClickOutside.cjs"),W=require("./hooks/useKeyboardNavigation.cjs"),K=require("./hooks/useFocusTrap.cjs"),D=require("./hooks/useId.cjs"),N=require("./hooks/useControllable.cjs"),n=require("./utils/styles.cjs"),T=require("./utils/lazyComponent.cjs"),t=require("./design-system/tokens/colors.cjs"),f=require("./design-system/tokens/spacing.cjs"),s=require("./design-system/tokens/typography.cjs"),b=require("./design-system/tokens/shadows.cjs"),I=require("./design-system/tokens/borders.cjs"),h=require("./design-system/tokens/breakpoints.cjs"),Q=require("./design-system/tokens/zIndex.cjs"),d=require("./design-system/tokens/motion.cjs"),r=require("./design-system/primitives/sizing.cjs"),o=require("./design-system/primitives/layout.cjs"),y=require("./design-system/primitives/focus.cjs"),c=require("./design-system/primitives/transitions.cjs"),l=require("./design-system/primitives/typography.cjs"),C=require("./design-system/primitives/opacity.cjs"),F=require("./design-system/themes/ThemeProvider.cjs"),Z=require("./design-system/themes/lightTheme.cjs"),X=require("./design-system/themes/darkTheme.cjs"),Y=require("./design-system/themes/cssVariables.cjs"),j=require("./components/layout/Box/Box.cjs"),P=require("./components/layout/Stack/Stack.cjs"),z=require("./components/layout/Grid/Grid.cjs"),$=require("./components/layout/Container/Container.cjs"),p=require("./components/layout/Card/Card.cjs"),J=require("./components/layout/Section/Section.cjs"),U=require("./components/layout/Spacer/Spacer.cjs"),k=require("./components/layout/Flex/Flex.cjs"),_=require("./components/layout/AspectRatio/AspectRatio.cjs"),ee=require("./components/media/Image/Image.cjs"),re=require("./components/media/Video/Video.cjs"),oe=require("./components/media/ImageThumbnail/ImageThumbnail.cjs"),v=require("./components/typography/Text/Text.cjs"),x=require("./components/typography/Heading/Heading.cjs"),L=require("./components/primitives/Button/Button.cjs"),te=require("./components/primitives/Icon/Icon.cjs"),ie=require("./components/primitives/Icon/iconPaths.cjs"),ne=require("./components/form/Input/Input.cjs"),se=require("./components/form/SearchInput/SearchInput.cjs"),ae=require("./components/form/TextField/TextField.cjs"),ce=require("./components/form/Select/Select.cjs"),ue=require("./components/form/Checkbox/Checkbox.cjs"),de=require("./components/form/Switch/Switch.cjs"),le=require("./components/form/Textarea/Textarea.cjs"),w=require("./components/form/Radio/Radio.cjs"),pe=require("./components/form/Slider/Slider.cjs"),me=require("./components/form/DateInput/DateInput.cjs"),ge=require("./components/form/FileInput/FileInput.cjs"),qe=require("./components/form/FormField/FormField.cjs"),Se=require("./components/form/FieldError/FieldError.cjs"),Te=require("./components/form/Form/Form.cjs"),be=require("./components/form/FormLabel/FormLabel.cjs"),Ie=require("./components/form/FormGroup/FormGroup.cjs"),he=require("./components/form/DropZone/DropZone.cjs"),ye=require("./components/form/FormCard/FormCard.cjs"),Ce=require("./components/feedback/Modal/Modal.cjs"),Fe=require("./components/feedback/Alert/Alert.cjs"),Pe=require("./components/feedback/Banner/Banner.cjs"),De=require("./components/feedback/ConfirmDialog/ConfirmDialog.cjs"),fe=require("./components/feedback/Tooltip/Tooltip.cjs"),B=require("./components/feedback/Toast/Toast.cjs"),ze=require("./components/feedback/Toast/ToastContext.cjs"),ke=require("./components/feedback/Drawer/Drawer.cjs"),ve=require("./components/feedback/Popover/Popover.cjs"),xe=require("./components/feedback/Progress/Progress.cjs"),u=require("./components/navigation/Tabs/Tabs.cjs"),m=require("./components/navigation/Accordion/Accordion.cjs"),g=require("./components/navigation/Dropdown/Dropdown.cjs"),q=require("./components/navigation/Menu/Menu.cjs"),Le=require("./components/navigation/Pagination/Pagination.cjs"),A=require("./components/navigation/Breadcrumb/Breadcrumb.cjs"),we=require("./components/navigation/SegmentedControl/SegmentedControl.cjs"),e=require("./components/data/Table/Table.cjs"),S=require("./components/data/List/List.cjs"),M=require("./components/data/InfoItem/InfoItem.cjs"),Be=require("./components/data/PieChart/PieChart.cjs"),Ae=require("./components/utility/Badge/Badge.cjs"),H=require("./components/utility/Loader/Loader.cjs"),R=require("./components/utility/Skeleton/Skeleton.cjs"),Me=require("./components/utility/Divider/Divider.cjs"),O=require("./components/utility/EmptyState/EmptyState.cjs"),He=require("./components/utility/Portal/Portal.cjs"),Re=require("./components/utility/FocusTrap/FocusTrap.cjs"),Oe=require("./components/utility/Overlay/Overlay.cjs"),G=require("./components/utility/ScreenReaderOnly/ScreenReaderOnly.cjs"),Ge=require("./components/utility/Avatar/Avatar.cjs"),Ee=require("./components/utility/Logo/Logo.cjs"),Ve=require("./components/utility/Kbd/Kbd.cjs"),a=require("./components/layout/Semantic/Semantic.cjs");exports.useIsDesktop=i.useIsDesktop;exports.useIsMobile=i.useIsMobile;exports.useIsTablet=i.useIsTablet;exports.useMediaQuery=i.useMediaQuery;exports.usePrefersDarkMode=i.usePrefersDarkMode;exports.usePrefersReducedMotion=i.usePrefersReducedMotion;exports.useDisclosure=E.useDisclosure;exports.useClickOutside=V.useClickOutside;exports.useKeyboardNavigation=W.useKeyboardNavigation;exports.useFocusTrap=K.useFocusTrap;exports.useId=D.useId;exports.useIds=D.useIds;exports.useControllable=N.useControllable;exports.buildSpacingStyles=n.buildSpacingStyles;exports.cx=n.cx;exports.generateId=n.generateId;exports.getSpacingValue=n.getSpacingValue;exports.hexToRgba=n.hexToRgba;exports.spacingToCss=n.spacingToCss;exports.createInteractionLazyComponent=T.createInteractionLazyComponent;exports.createLazyComponent=T.createLazyComponent;exports.preloadComponents=T.preloadComponents;exports.accent=t.accent;exports.colors=t.colors;exports.error=t.error;exports.info=t.info;exports.neutrals=t.neutrals;exports.primary=t.primary;exports.success=t.success;exports.warning=t.warning;exports.semanticSpacing=f.semanticSpacing;exports.spacing=f.spacing;exports.fontFamilies=s.fontFamilies;exports.fontSizes=s.fontSizes;exports.fontWeights=s.fontWeights;exports.letterSpacings=s.letterSpacings;exports.lineHeights=s.lineHeights;exports.textStyles=s.textStyles;exports.focusRings=b.focusRings;exports.glows=b.glows;exports.shadows=b.shadows;exports.borderStyles=I.borderStyles;exports.borderWidths=I.borderWidths;exports.radii=I.radii;exports.breakpoints=h.breakpoints;exports.containers=h.containers;exports.mediaQueries=h.mediaQueries;exports.zIndex=Q.zIndex;exports.animations=d.animations;exports.durations=d.durations;exports.easings=d.easings;exports.transitions=d.transitions;exports.componentGap=r.componentGap;exports.componentHeights=r.componentHeights;exports.componentPaddingX=r.componentPaddingX;exports.componentPaddingY=r.componentPaddingY;exports.controlSizes=r.controlSizes;exports.iconSizes=r.iconSizes;exports.modalWidths=r.modalWidths;exports.popoverSizing=r.popoverSizing;exports.switchSizes=r.switchSizes;exports.avatarSizes=o.avatarSizes;exports.contentPadding=o.contentPadding;exports.headerSizes=o.headerSizes;exports.iconButtonSizes=o.iconButtonSizes;exports.pageHeaderSpacing=o.pageHeaderSpacing;exports.quickActionSizes=o.quickActionSizes;exports.searchInputSizes=o.searchInputSizes;exports.sidebarSizes=o.sidebarSizes;exports.statCardSizes=o.statCardSizes;exports.focusRing=y.focusRing;exports.focusRingOffset=y.focusRingOffset;exports.focusStyles=y.focusStyles;exports.duration=c.duration;exports.easing=c.easing;exports.keyframes=c.keyframes;exports.transition=c.transition;exports.transitionProperties=c.transitionProperties;exports.componentFontSize=l.componentFontSize;exports.componentFontWeight=l.componentFontWeight;exports.componentLineHeight=l.componentLineHeight;exports.componentTypography=l.componentTypography;exports.opacity=C.opacity;exports.scale=C.scale;exports.stateOpacity=C.stateOpacity;exports.ThemeProvider=F.ThemeProvider;exports.useTheme=F.useTheme;exports.useThemeColors=F.useThemeColors;exports.lightTheme=Z.lightTheme;exports.darkTheme=X.darkTheme;exports.cssVar=Y.cssVar;exports.Box=j.Box;exports.HStack=P.HStack;exports.Stack=P.Stack;exports.VStack=P.VStack;exports.Grid=z.Grid;exports.GridItem=z.GridItem;exports.Container=$.Container;exports.Card=p.Card;exports.CardBody=p.CardBody;exports.CardFooter=p.CardFooter;exports.CardHeader=p.CardHeader;exports.Section=J.Section;exports.Spacer=U.Spacer;exports.Flex=k.Flex;exports.FlexItem=k.FlexItem;exports.AspectRatio=_.AspectRatio;exports.Image=ee.Image;exports.Video=re.Video;exports.ImageThumbnail=oe.ImageThumbnail;exports.Code=v.Code;exports.Text=v.Text;exports.Display=x.Display;exports.Heading=x.Heading;exports.Button=L.Button;exports.IconButton=L.IconButton;exports.Icon=te.Icon;exports.iconPaths=ie.iconPaths;exports.Input=ne.Input;exports.SearchInput=se.SearchInput;exports.TextField=ae.TextField;exports.Select=ce.Select;exports.Checkbox=ue.Checkbox;exports.Switch=de.Switch;exports.Textarea=le.Textarea;exports.Radio=w.Radio;exports.RadioGroup=w.RadioGroup;exports.Slider=pe.Slider;exports.DateInput=me.DateInput;exports.FileInput=ge.FileInput;exports.FormField=qe.FormField;exports.FieldError=Se.FieldError;exports.Form=Te.Form;exports.FormLabel=be.FormLabel;exports.FormGroup=Ie.FormGroup;exports.DropZone=he.DropZone;exports.FormCard=ye.FormCard;exports.Modal=Ce.Modal;exports.Alert=Fe.Alert;exports.Banner=Pe.Banner;exports.ConfirmDialog=De.ConfirmDialog;exports.Tooltip=fe.Tooltip;exports.Toast=B.Toast;exports.ToastProvider=B.ToastProvider;exports.useToast=ze.useToast;exports.Drawer=ke.Drawer;exports.Popover=ve.Popover;exports.Progress=xe.Progress;exports.Tab=u.Tab;exports.TabList=u.TabList;exports.TabPanel=u.TabPanel;exports.TabPanels=u.TabPanels;exports.Tabs=u.Tabs;exports.Accordion=m.Accordion;exports.AccordionContent=m.AccordionContent;exports.AccordionItem=m.AccordionItem;exports.AccordionTrigger=m.AccordionTrigger;exports.Dropdown=g.Dropdown;exports.DropdownDivider=g.DropdownDivider;exports.DropdownItem=g.DropdownItem;exports.DropdownLabel=g.DropdownLabel;exports.Menu=q.Menu;exports.MenuDivider=q.MenuDivider;exports.MenuGroup=q.MenuGroup;exports.MenuItem=q.MenuItem;exports.Pagination=Le.Pagination;exports.Breadcrumb=A.Breadcrumb;exports.BreadcrumbItem=A.BreadcrumbItem;exports.SegmentedControl=we.SegmentedControl;exports.Table=e.Table;exports.TableBody=e.TableBody;exports.TableCaption=e.TableCaption;exports.TableCell=e.TableCell;exports.TableEmpty=e.TableEmpty;exports.TableFoot=e.TableFoot;exports.TableHead=e.TableHead;exports.TableHeader=e.TableHeader;exports.TableRow=e.TableRow;exports.TableSkeleton=e.TableSkeleton;exports.List=S.List;exports.ListDivider=S.ListDivider;exports.ListHeader=S.ListHeader;exports.ListItem=S.ListItem;exports.InfoItem=M.InfoItem;exports.InfoList=M.InfoList;exports.PieChart=Be.PieChart;exports.Badge=Ae.Badge;exports.Loader=H.Loader;exports.Spinner=H.Spinner;exports.Skeleton=R.Skeleton;exports.SkeletonText=R.SkeletonText;exports.Divider=Me.Divider;exports.EmptyState=O.EmptyState;exports.EmptyStateIcon=O.EmptyStateIcon;exports.Portal=He.Portal;exports.FocusTrap=Re.FocusTrap;exports.Overlay=Oe.Overlay;exports.ScreenReaderOnly=G.ScreenReaderOnly;exports.SrOnly=G.SrOnly;exports.Avatar=Ge.Avatar;exports.Logo=Ee.Logo;exports.Kbd=Ve.Kbd;exports.Article=a.Article;exports.Aside=a.Aside;exports.Footer=a.Footer;exports.Header=a.Header;exports.Main=a.Main;exports.Nav=a.Nav;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const i=require("./hooks/useMediaQuery.cjs"),E=require("./hooks/useDisclosure.cjs"),V=require("./hooks/useClickOutside.cjs"),W=require("./hooks/useKeyboardNavigation.cjs"),K=require("./hooks/useFocusTrap.cjs"),f=require("./hooks/useId.cjs"),N=require("./hooks/useControllable.cjs"),n=require("./utils/styles.cjs"),T=require("./utils/lazyComponent.cjs"),d=require("./components/navigation/Accordion/Accordion.cjs"),Q=require("./components/feedback/Alert/Alert.cjs"),s=require("./components/layout/Semantic/Semantic.cjs"),U=require("./components/layout/AspectRatio/AspectRatio.cjs"),Z=require("./components/utility/Avatar/Avatar.cjs"),X=require("./components/utility/Badge/Badge.cjs"),Y=require("./components/feedback/Banner/Banner.cjs"),j=require("./components/layout/Box/Box.cjs"),D=require("./components/navigation/Breadcrumb/Breadcrumb.cjs"),z=require("./components/primitives/Button/Button.cjs"),l=require("./components/layout/Card/Card.cjs"),_=require("./components/form/Checkbox/Checkbox.cjs"),k=require("./components/typography/Text/Text.cjs"),$=require("./components/feedback/ConfirmDialog/ConfirmDialog.cjs"),J=require("./components/layout/Container/Container.cjs"),ee=require("./components/form/DateInput/DateInput.cjs"),v=require("./components/typography/Heading/Heading.cjs"),re=require("./components/utility/Divider/Divider.cjs"),oe=require("./components/feedback/Drawer/Drawer.cjs"),te=require("./components/form/DropZone/DropZone.cjs"),p=require("./components/navigation/Dropdown/Dropdown.cjs"),x=require("./components/utility/EmptyState/EmptyState.cjs"),ie=require("./components/form/FieldError/FieldError.cjs"),ne=require("./components/form/FileInput/FileInput.cjs"),se=require("./components/form/FileUpload/FileUpload.cjs"),L=require("./components/layout/Flex/Flex.cjs"),ae=require("./components/utility/FocusTrap/FocusTrap.cjs"),ce=require("./components/form/Form/Form.cjs"),ue=require("./components/form/FormCard/FormCard.cjs"),de=require("./components/form/FormField/FormField.cjs"),le=require("./components/form/FormGroup/FormGroup.cjs"),pe=require("./components/form/FormLabel/FormLabel.cjs"),B=require("./components/layout/Grid/Grid.cjs"),b=require("./components/layout/Stack/Stack.cjs"),me=require("./components/primitives/Icon/Icon.cjs"),qe=require("./components/media/Image/Image.cjs"),ge=require("./components/media/ImageThumbnail/ImageThumbnail.cjs"),w=require("./components/data/InfoItem/InfoItem.cjs"),Se=require("./components/form/Input/Input.cjs"),Te=require("./components/utility/Kbd/Kbd.cjs"),m=require("./components/data/List/List.cjs"),A=require("./components/utility/Loader/Loader.cjs"),be=require("./components/utility/Logo/Logo.cjs"),q=require("./components/navigation/Menu/Menu.cjs"),Ie=require("./components/feedback/Modal/Modal.cjs"),he=require("./components/utility/Overlay/Overlay.cjs"),ye=require("./components/navigation/Pagination/Pagination.cjs"),Ce=require("./components/data/PieChart/PieChart.cjs"),Fe=require("./components/feedback/Popover/Popover.cjs"),Pe=require("./components/utility/Portal/Portal.cjs"),fe=require("./components/feedback/Progress/Progress.cjs"),M=require("./components/form/Radio/Radio.cjs"),H=require("./components/utility/ScreenReaderOnly/ScreenReaderOnly.cjs"),De=require("./components/form/SearchInput/SearchInput.cjs"),ze=require("./components/layout/Section/Section.cjs"),ke=require("./components/navigation/SegmentedControl/SegmentedControl.cjs"),ve=require("./components/form/Select/Select.cjs"),R=require("./components/utility/Skeleton/Skeleton.cjs"),xe=require("./components/form/Slider/Slider.cjs"),Le=require("./components/layout/Spacer/Spacer.cjs"),Be=require("./components/form/Switch/Switch.cjs"),c=require("./components/navigation/Tabs/Tabs.cjs"),e=require("./components/data/Table/Table.cjs"),we=require("./components/form/TextField/TextField.cjs"),Ae=require("./components/form/Textarea/Textarea.cjs"),I=require("./design-system/themes/ThemeProvider.cjs"),O=require("./components/feedback/Toast/Toast.cjs"),Me=require("./components/feedback/Tooltip/Tooltip.cjs"),He=require("./components/media/Video/Video.cjs"),t=require("./design-system/tokens/colors.cjs"),g=require("./design-system/tokens/motion.cjs"),r=require("./design-system/primitives/layout.cjs"),h=require("./design-system/tokens/borders.cjs"),y=require("./design-system/tokens/breakpoints.cjs"),S=require("./design-system/primitives/typography.cjs"),o=require("./design-system/primitives/sizing.cjs"),Re=require("./design-system/themes/cssVariables.cjs"),Oe=require("./design-system/themes/darkTheme.cjs"),u=require("./design-system/primitives/transitions.cjs"),C=require("./design-system/primitives/focus.cjs"),F=require("./design-system/tokens/shadows.cjs"),a=require("./design-system/tokens/typography.cjs"),Ge=require("./components/form/FileUpload/fileUpload.utils.cjs"),Ee=require("./components/primitives/Icon/iconPaths.cjs"),Ve=require("./design-system/themes/lightTheme.cjs"),P=require("./design-system/primitives/opacity.cjs"),G=require("./design-system/tokens/spacing.cjs"),We=require("./components/feedback/Toast/ToastContext.cjs"),Ke=require("./design-system/tokens/zIndex.cjs");exports.useIsDesktop=i.useIsDesktop;exports.useIsMobile=i.useIsMobile;exports.useIsTablet=i.useIsTablet;exports.useMediaQuery=i.useMediaQuery;exports.usePrefersDarkMode=i.usePrefersDarkMode;exports.usePrefersReducedMotion=i.usePrefersReducedMotion;exports.useDisclosure=E.useDisclosure;exports.useClickOutside=V.useClickOutside;exports.useKeyboardNavigation=W.useKeyboardNavigation;exports.useFocusTrap=K.useFocusTrap;exports.useId=f.useId;exports.useIds=f.useIds;exports.useControllable=N.useControllable;exports.buildSpacingStyles=n.buildSpacingStyles;exports.cx=n.cx;exports.generateId=n.generateId;exports.getSpacingValue=n.getSpacingValue;exports.hexToRgba=n.hexToRgba;exports.spacingToCss=n.spacingToCss;exports.createInteractionLazyComponent=T.createInteractionLazyComponent;exports.createLazyComponent=T.createLazyComponent;exports.preloadComponents=T.preloadComponents;exports.Accordion=d.Accordion;exports.AccordionContent=d.AccordionContent;exports.AccordionItem=d.AccordionItem;exports.AccordionTrigger=d.AccordionTrigger;exports.Alert=Q.Alert;exports.Article=s.Article;exports.Aside=s.Aside;exports.Footer=s.Footer;exports.Header=s.Header;exports.Main=s.Main;exports.Nav=s.Nav;exports.AspectRatio=U.AspectRatio;exports.Avatar=Z.Avatar;exports.Badge=X.Badge;exports.Banner=Y.Banner;exports.Box=j.Box;exports.Breadcrumb=D.Breadcrumb;exports.BreadcrumbItem=D.BreadcrumbItem;exports.Button=z.Button;exports.IconButton=z.IconButton;exports.Card=l.Card;exports.CardBody=l.CardBody;exports.CardFooter=l.CardFooter;exports.CardHeader=l.CardHeader;exports.Checkbox=_.Checkbox;exports.Code=k.Code;exports.Text=k.Text;exports.ConfirmDialog=$.ConfirmDialog;exports.Container=J.Container;exports.DateInput=ee.DateInput;exports.Display=v.Display;exports.Heading=v.Heading;exports.Divider=re.Divider;exports.Drawer=oe.Drawer;exports.DropZone=te.DropZone;exports.Dropdown=p.Dropdown;exports.DropdownDivider=p.DropdownDivider;exports.DropdownItem=p.DropdownItem;exports.DropdownLabel=p.DropdownLabel;exports.EmptyState=x.EmptyState;exports.EmptyStateIcon=x.EmptyStateIcon;exports.FieldError=ie.FieldError;exports.FileInput=ne.FileInput;exports.FileUpload=se.FileUpload;exports.Flex=L.Flex;exports.FlexItem=L.FlexItem;exports.FocusTrap=ae.FocusTrap;exports.Form=ce.Form;exports.FormCard=ue.FormCard;exports.FormField=de.FormField;exports.FormGroup=le.FormGroup;exports.FormLabel=pe.FormLabel;exports.Grid=B.Grid;exports.GridItem=B.GridItem;exports.HStack=b.HStack;exports.Stack=b.Stack;exports.VStack=b.VStack;exports.Icon=me.Icon;exports.Image=qe.Image;exports.ImageThumbnail=ge.ImageThumbnail;exports.InfoItem=w.InfoItem;exports.InfoList=w.InfoList;exports.Input=Se.Input;exports.Kbd=Te.Kbd;exports.List=m.List;exports.ListDivider=m.ListDivider;exports.ListHeader=m.ListHeader;exports.ListItem=m.ListItem;exports.Loader=A.Loader;exports.Spinner=A.Spinner;exports.Logo=be.Logo;exports.Menu=q.Menu;exports.MenuDivider=q.MenuDivider;exports.MenuGroup=q.MenuGroup;exports.MenuItem=q.MenuItem;exports.Modal=Ie.Modal;exports.Overlay=he.Overlay;exports.Pagination=ye.Pagination;exports.PieChart=Ce.PieChart;exports.Popover=Fe.Popover;exports.Portal=Pe.Portal;exports.Progress=fe.Progress;exports.Radio=M.Radio;exports.RadioGroup=M.RadioGroup;exports.ScreenReaderOnly=H.ScreenReaderOnly;exports.SrOnly=H.SrOnly;exports.SearchInput=De.SearchInput;exports.Section=ze.Section;exports.SegmentedControl=ke.SegmentedControl;exports.Select=ve.Select;exports.Skeleton=R.Skeleton;exports.SkeletonText=R.SkeletonText;exports.Slider=xe.Slider;exports.Spacer=Le.Spacer;exports.Switch=Be.Switch;exports.Tab=c.Tab;exports.TabList=c.TabList;exports.TabPanel=c.TabPanel;exports.TabPanels=c.TabPanels;exports.Tabs=c.Tabs;exports.Table=e.Table;exports.TableBody=e.TableBody;exports.TableCaption=e.TableCaption;exports.TableCell=e.TableCell;exports.TableEmpty=e.TableEmpty;exports.TableFoot=e.TableFoot;exports.TableHead=e.TableHead;exports.TableHeader=e.TableHeader;exports.TableRow=e.TableRow;exports.TableSkeleton=e.TableSkeleton;exports.TextField=we.TextField;exports.Textarea=Ae.Textarea;exports.ThemeProvider=I.ThemeProvider;exports.useTheme=I.useTheme;exports.useThemeColors=I.useThemeColors;exports.Toast=O.Toast;exports.ToastProvider=O.ToastProvider;exports.Tooltip=Me.Tooltip;exports.Video=He.Video;exports.accent=t.accent;exports.colors=t.colors;exports.error=t.error;exports.info=t.info;exports.neutrals=t.neutrals;exports.primary=t.primary;exports.success=t.success;exports.warning=t.warning;exports.animations=g.animations;exports.durations=g.durations;exports.easings=g.easings;exports.transitions=g.transitions;exports.avatarSizes=r.avatarSizes;exports.contentPadding=r.contentPadding;exports.headerSizes=r.headerSizes;exports.iconButtonSizes=r.iconButtonSizes;exports.pageHeaderSpacing=r.pageHeaderSpacing;exports.quickActionSizes=r.quickActionSizes;exports.searchInputSizes=r.searchInputSizes;exports.sidebarSizes=r.sidebarSizes;exports.statCardSizes=r.statCardSizes;exports.borderStyles=h.borderStyles;exports.borderWidths=h.borderWidths;exports.radii=h.radii;exports.breakpoints=y.breakpoints;exports.containers=y.containers;exports.mediaQueries=y.mediaQueries;exports.componentFontSize=S.componentFontSize;exports.componentFontWeight=S.componentFontWeight;exports.componentLineHeight=S.componentLineHeight;exports.componentTypography=S.componentTypography;exports.componentGap=o.componentGap;exports.componentHeights=o.componentHeights;exports.componentPaddingX=o.componentPaddingX;exports.componentPaddingY=o.componentPaddingY;exports.controlSizes=o.controlSizes;exports.iconSizes=o.iconSizes;exports.modalWidths=o.modalWidths;exports.popoverSizing=o.popoverSizing;exports.switchSizes=o.switchSizes;exports.cssVar=Re.cssVar;exports.darkTheme=Oe.darkTheme;exports.duration=u.duration;exports.easing=u.easing;exports.keyframes=u.keyframes;exports.transition=u.transition;exports.transitionProperties=u.transitionProperties;exports.focusRing=C.focusRing;exports.focusRingOffset=C.focusRingOffset;exports.focusStyles=C.focusStyles;exports.focusRings=F.focusRings;exports.glows=F.glows;exports.shadows=F.shadows;exports.fontFamilies=a.fontFamilies;exports.fontSizes=a.fontSizes;exports.fontWeights=a.fontWeights;exports.letterSpacings=a.letterSpacings;exports.lineHeights=a.lineHeights;exports.textStyles=a.textStyles;exports.formatBytes=Ge.formatBytes;exports.iconPaths=Ee.iconPaths;exports.lightTheme=Ve.lightTheme;exports.opacity=P.opacity;exports.scale=P.scale;exports.stateOpacity=P.stateOpacity;exports.semanticSpacing=G.semanticSpacing;exports.spacing=G.spacing;exports.useToast=We.useToast;exports.zIndex=Ke.zIndex;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.ts CHANGED
@@ -1547,6 +1547,84 @@ export declare type FileInputSize = 'sm' | 'md' | 'lg';
1547
1547
 
1548
1548
  export declare type FileInputVariant = 'default' | 'dropzone';
1549
1549
 
1550
+ export declare interface FileRejection {
1551
+ file: File;
1552
+ reason: FileRejectionReason;
1553
+ }
1554
+
1555
+ /** Why a file was refused. */
1556
+ export declare type FileRejectionReason = 'type' | 'size';
1557
+
1558
+ export declare const FileUpload: ForwardRefExoticComponent<FileUploadProps & RefAttributes<HTMLInputElement>>;
1559
+
1560
+ /**
1561
+ * Every user-facing string, so the host app supplies its own translations.
1562
+ * The library ships English defaults and stays i18n-free.
1563
+ */
1564
+ export declare interface FileUploadLabels {
1565
+ /** Text of the button in the `compact` variant. */
1566
+ trigger?: string;
1567
+ /** Shown next to the trigger while nothing is selected (`compact`). */
1568
+ placeholder?: string;
1569
+ /** Main call to action inside the dropzone. */
1570
+ prompt?: ReactNode;
1571
+ /** Shown while a drag is hovering the dropzone. */
1572
+ dropPrompt?: string;
1573
+ /** Accessible label of the per-file remove button. */
1574
+ remove?: string;
1575
+ /** Error for a file whose type is not accepted. */
1576
+ invalidType?: (fileName: string) => string;
1577
+ /** Error for a file above `maxSize`. */
1578
+ tooLarge?: (fileName: string, maxSizeLabel: string) => string;
1579
+ }
1580
+
1581
+ export declare interface FileUploadProps {
1582
+ /** Selected files (controlled). */
1583
+ files: File[];
1584
+ /** Called with the next selection whenever files are added or removed. */
1585
+ onFilesChange: (files: File[]) => void;
1586
+ /** Layout. */
1587
+ variant?: FileUploadVariant;
1588
+ /** Size. */
1589
+ size?: FileUploadSize;
1590
+ /** Accepted types, e.g. `".pfx,.p12"` or `"application/pdf"`. */
1591
+ accept?: string;
1592
+ /** Allow selecting more than one file. */
1593
+ multiple?: boolean;
1594
+ /** Cap on the number of files when `multiple`. */
1595
+ maxFiles?: number;
1596
+ /** Maximum size per file, in bytes. Rejections are reported, never silent. */
1597
+ maxSize?: number;
1598
+ /** Helper text under the prompt (e.g. accepted formats). */
1599
+ hint?: ReactNode;
1600
+ /** Error message from the host app (e.g. a failed upload). */
1601
+ error?: ReactNode;
1602
+ /** Render the field as invalid without a message. */
1603
+ isInvalid?: boolean;
1604
+ /** Disable selection and removal. */
1605
+ disabled?: boolean;
1606
+ /** Icon shown in the dropzone. */
1607
+ icon?: ReactNode;
1608
+ /** Notified when files are refused by `accept`/`maxSize`. */
1609
+ onReject?: (rejections: FileRejection[]) => void;
1610
+ /** Overridable user-facing strings. */
1611
+ labels?: FileUploadLabels;
1612
+ /** Id of the underlying input, to pair with an external label. */
1613
+ id?: string;
1614
+ /** Custom class name. */
1615
+ className?: string;
1616
+ /** Test ID. */
1617
+ testId?: string;
1618
+ }
1619
+
1620
+ export declare type FileUploadSize = 'sm' | 'md' | 'lg';
1621
+
1622
+ /**
1623
+ * `dropzone` — generous dashed target, best for documents and images.
1624
+ * `compact` — a single row (button + selected file), fits inline in a form.
1625
+ */
1626
+ export declare type FileUploadVariant = 'dropzone' | 'compact';
1627
+
1550
1628
  export declare const Flex: ForwardRefExoticComponent<FlexProps & RefAttributes<HTMLDivElement>>;
1551
1629
 
1552
1630
  declare type FlexAlign = 'start' | 'end' | 'center' | 'baseline' | 'stretch';
@@ -1777,6 +1855,15 @@ export declare interface FooterProps extends SemanticProps {
1777
1855
 
1778
1856
  export declare const Form: ForwardRefExoticComponent<FormProps & RefAttributes<HTMLFormElement>>;
1779
1857
 
1858
+ /**
1859
+ * FileUpload — pure helpers
1860
+ *
1861
+ * Framework-free selection logic so it can be reasoned about and tested
1862
+ * without rendering anything.
1863
+ */
1864
+ /** Human-readable file size, e.g. `1.4 MB`. */
1865
+ export declare function formatBytes(bytes: number): string;
1866
+
1780
1867
  export declare const FormCard: ForwardRefExoticComponent<FormCardProps & RefAttributes<HTMLDivElement>>;
1781
1868
 
1782
1869
  export declare type FormCardIntent = 'neutral' | 'primary' | 'success' | 'warning' | 'error' | 'info';